ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IGFhNWY3NDIuLmRmMTc0ZWQgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtNjYsNiArNjYsNyBAQAogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogbGlidG9vbAogbG9jYWwvc25tcGNoZWNrCitsb2NhbC9zbm1wY29uZgogTWFrZWZpbGUKIG1hbi8qLlsxMzU4XQogbWFuL2RlZmF1bHRfc3RvcmUuMy5oCmRpZmYgLS1naXQgYS9DSEFOR0VTIGIvQ0hBTkdFUwppbmRleCBkMDI1NzhmLi5lZWJlYjEyIDEwMDY0NAotLS0gYS9DSEFOR0VTCisrKyBiL0NIQU5HRVMKQEAgLTMsMTE4ICszLDYyNiBAQAogYSBzdW1tYXJ5IG9mIHRoZSBtYWpvciBjaGFuZ2VzLCBhbmQgdGhlIENoYW5nZUxvZyBmaWxlIGZvciBhIGNvbXByZWhlbnNpdmUKIGxpc3Rpbmcgb2YgYWxsIGNoYW5nZXMgbWFkZSB0byB0aGUgY29kZS4KIAotCi0qNS42LjIqCi0KKyo1LjcuMyoKICAgICBzbm1wbGliOgotICAgICAgLSBbUEFUQ0ggMjgzNTU3N106IFJlcGxhY2UgU05NUF9aRVJPIG9mIGFycmF5cyB3aXRoIGEgbWVtc2V0LgotICAgICAgLSBbUEFUQ0ggMzUxMDQ1NF06IEFsbG93IHRoZSB1c2Ugb2YgMC4wLjAuMC8wIGFzIGFsaWFzIGZvciBkZWZhdWx0Ci0gICAgICAtIFtQQVRDSCAzNTI2NTk5XTogRG9uJ3QgaGFuZyBvbiByZXRyaWVkIGZhaWxpbmcgU05NUHYzIHJlc3BvbnNlcwotICAgICAgLSBbQlVHIDMxMzQzMjNdOiBGaXggY3Jhc2ggd2hlbiBjb21wYXJpbmcgaW52YWxpZCBPSURzCi0gICAgICAtIEF2b2lkIHVubmVjZXNzYXJ5IGNhc3RzIHdoZW4gdXNpbmcgbmV0c25tcF9zZXRfcm93X2NvbHVtbigpCi0gICAgICAtIEVsaW1pbmF0ZSBhc3NvcnRlZCBkZWFkIHZhcmlhYmxlcworICAgICAgLSBGaXhlZCBjcmFzaCB3aGVuIE1ENSBoYXNoIGlzIG5vdCBzdXBwb3J0ZWQgYnkgT3BlblNTTC4KKyAgICAgIC0gRml4ZWQgcGFyc2luZyBvZiBzZXF1ZW5jZXMuIERvbid0IG92ZXJ3cml0ZSAnZGF0YScgdmFyaWFibGUsIGl0J3MKKwl1c2VkIHdoZW4gcGFyc2luZyBidWxrIHJlc3BvbnNlcy4KKyAgICAgIC0gW0JVRyAxMjY3IF06IHNubXBsaWI6IHJlZ2lzdGVyX21pYl9jb250ZXh0KCkgZml4IGZvciByZWFkLW9ubHkKKwl2YXJpYWJsZXMgICBUaGlzIGlzIGEgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZiBhIHBhdGNoIGZyb20KKwlIYXJzaGEgU2hpdmFubmEuCisKKyAgICBzbm1wOgorICAgICAgLSBVc20tZGgtb2JqZWN0cy1taWI6IEF2b2lkIHRyaWdnZXJpbmcgYW4gYXNzZXJ0IHN0YXRlbWVudCBpbgorCW5ldHNubXBfcmVhZHlfbW9ub3RvbmljKCkgVGhlIGNhY2hlIHRpbWVvdXQgZm9yCisJc25tcC11c20tZGgtb2JqZWN0cy1taWIgaXMgLTEuIEFueSBjYWNoZSB0aW1lb3V0IHZhbHVlIDwgMCBkaXNhYmxlcworCWNhY2hpbmcuIEhvd2V2ZXIsIHN0cmljdGx5IG5lZ2F0aXZlIHZhbHVlcyB0cmlnZ2VyIHRoZSBhc3NlcnQKKwlzdGF0ZW1lbnQgaW4gbmV0c25tcF9yZWFkeV9tb25vdG9uaWMoKS4gQXZvaWQgdHJpZ2dlcmluZyB0aGF0CisJYXNzZXJ0IHN0YXRlbWVudC4KKyAgICAgIC0gRml4ZWQgbW9uaXRvcmluZyBiYXNlZCBvbiBub24tZGVsdGEgdHJpZ2dlci4gICBzbm1wZCBjcmFzaGVkIHdpdAorCWZvbGxvd2luZyBzbm1wZC5jb25mOiBtb25pdG9yIC1zIC1EIC1yIDEwIC1lIExPR01BVENIIC1vCisJbG9nTWF0Y2hDdXJyZW50Q291bnQgIkxvZyBNYXRjaCIgIT0gbG9nTWF0Y2hDdXJyZW50Q291bnQgbG9nbWF0Y2gKKwlMb2dpbkZhaWx1cmUxIC92YXIvbG9nL3NlY3VyZSAxMCBzdTogLipmYWlsLiogVGhlIHJlYXNvbiB3YXMKKwl1bml0aWFsaXplZCB2YXJpYWJsZSBzeXNVVF92YXIgaW4gbXRlVHJpZ2dlcl9ydW4oKSwgaXQgd2FzIGZpbGxlZAorCW9ubHkgaWYgdGhlIHRyaWdnZXIgd2FzIGRlbHRhLXZhbHVlZCwgd2hpbGUgaXRzIHZhbHVlIHdhcyB1c2VkIGZvcgorCWFsbCB0cmlnZ2Vycy4gV2l0aCB0aGlzIHBhdGNoLCBzeXNVVF92YXIgaXMgZmlsbGVkIGZvciBhbGwgY29kZQorCWJyYW5jaGVzIHdoZXJlIGl0IGlzIG5lZWRlZC4KIAogICAgIHNubXBkOgotICAgICAgLSBbUEFUQ0ggMjk0MTgxMV06IEhhbmRsZSBzdWNjZXNzZnVsIHJlcXVlc3RzIHdpdGggcmVxSUQgMAotICAgICAgLSBbUEFUQ0ggMzA5NjcyNV06IHN5c09SVGFibGUgcmVnaXN0YXRpb24gZm9yIG5vdGlmaWNhdGlvbiBsb2cgbWliCi0gICAgICAtIFtQQVRDSCAzNDc5NzQwXTogRml4IGhyU1dSdW5QZXJmIHN0YXRpc3RpY3MKLSAgICAgIC0gW1BBVENIIDM0ODc4NjddOiBEb24ndCBza2lwIG1pc3NpbmcgaWZYVGFibGUgZW50cmllcyAoaWZDb25uZWN0b3JQcmVzZW50IEZBTFNFKQotICAgICAgLSBbUEFUQ0ggMzQ4NzkxOV06IEZpeCBjb21waWxhdGlvbiB3aGVuIGNhY2hpbmcgaXMgZGlzYWJsZWQKLSAgICAgIC0gW1BBVENIIDM0OTU2OTddOiBTdG9yZSBwZXJzaXN0ZW50IHNubXBUYXJnZXQgdGFibGUgY2hhbmdlcwotICAgICAgLSBbQlVHIDM1MjY1NDldOiBDVkUtMjAxMi0yMTQxIEFycmF5IGluZGV4IGVycm9yIGxlYWRpbmcgdG8gY3Jhc2gKLSAgICAgIC0gW0JVRyAzNTMyMDkwXTogRml4IGhpZ2ggaWZJbmRleCB2YWx1ZXMgY3Jhc2hpbmcgaHJEZXZpY2VEZXNjcgotICAgICAgLSBBZGRlZCBPQ0ZTMiAoT3JhY2xlIENsdXN0ZXIgRlMpIHRvIGhyU3RvcmFnZVRhYmxlIGFuZCBockZTVGFibGUKLSAgICAgIC0gRWxpbWluYXRlIGFzc29ydGVkIGRlYWQgdmFyaWFibGVzCi0gICAgICAtIFVEUC1NSUI6IFJlcG9ydCBwcm9wZXIgdWRwTG9jYWxBZGRyZXNzIChpbnN0ZWFkIG9mIDAuMC4wLjApCisgICAgICAtIEFkZCBhIG1pc3NpbmcgZnVuY3Rpb24gZGVjbGFyYXRpb24KKyAgICAgIC0gQWRkZWQgYnRyZnMgc3VwcG9ydCB0byBockZTVGFibGUKKyAgICAgIC0gQ29ycmVjdCB0aGUgc2l6ZSBvZiBvZiB0aGUgRVhBTVBMRUlQQUREUkVTUyB2YWx1ZSBvbiBMNjQgaG9zdHMKKyAgICAgIC0gRml4ZWQgY3Jhc2ggaW4gVUNELVNOTVAtTUlCOjpleHRUYWJsZSBzbm1wZCBjcmFzaGVkIHdoZW4gdGhlCisJY29tbWFuZCB0byBleGVjdXRlIGhhZCBubyBhcmd1bWVudHMsIGkuZS4gZXh0ZW5kLT5hcmdzIHdhcyBOVUxMLgorICAgICAgLSBGaXhlZCB2YWx1ZSBvZiBVQ0QtU05NUC1NSUI6OmV4dENvbW1hbmQgdG8gY29udGFpbiBmdWxsIGNvbW1hbmQKKwlsaW5lLiBNSUIgZGVzY3JpcHRpb24gb2YgVUNELVNOTVAtTUlCOjpleHRDb21tYW5kIHN1Z2dlc3RzIGl0CisJc2hvdWxkIGNvbnRhaWwgZnVsbCBjb21tYW5kIGxpbmUuIEFsc28gaW4gTmV0LVNOTVAgNS4zLjIuMiwgd2hvbGUKKwljb21tYW5kIGxpbmUgd2FzIHNob3duLgorICAgICAgLSBNYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSBOVUwgY2hhcmFjdGVycyBpbiB0aGUgaW5kaWNlcyBmb3IKKwlzbm1wVGFyZ2V0QWRkclRhYmxlCisgICAgICAtIFBBVENIIDI0NzI6IGZyb20gU3VuaWw6IGRvbid0IHVzZSBIQktUIGFzIGhlYXJ0YmVhdCBpbnRlcnZhbCBpbgorCVNDVFAtTUlCOjpzY3RwQXNzb2NUYWJsZS4KKyAgICAgIC0gUmVtb3ZlIHNvbWUgdW51c2VkIGluY2x1ZGVzCisgICAgICAtIFNob3cgTGludXgga2VybmVsIHRocmVhZHMgaW4gaHJTV1J1blRhYmxlLgorICAgICAgLSBVc2UgMCBmb3IgdGhlIGlnbm9yZWQgbnVtdmFycyBhcmd1bWVudCB0byBuZXRzbm1wX3JlZ2lzdGVyX21pYiBUaGUKKwludW12YXJzIGFyZ3VtZW50IG9mIG5ldHNubXBfcmVnaXN0ZXJfbWliIGlzIGlnbm9yZWQgaWYgdGhlIHZhcgorCWFyZ3VtZW50IGlzIE5VTEwuIEluIG9yZGVyIHRvIHVuaWZ5IHRoaXMgdXNlIG9mIGl0IHdpdGggYWxsIG90aGVyCisJb25lcywgY2hhbmdlIGl0IGZyb20gMSB0byAwCisgICAgICAtIFNFQ1VSSVRZOiBhIGRlbmlhbCBvZiBzZXJ2aWNlIGF0dGFjayB2ZWN0b3Igd2FzIGRpc2NvdmVyZWQgb24KKyAgICAgICAgdGhlIGxpbnV4IGltcGxlbWVudGF0aW9uIG9mIHRoZSBJQ01QLU1JQi4gIFRoaXMgcmVsZWFzZSBmaXhlcworICAgICAgICB0aGlzIGJ1ZyBhbmQgYWxsIHVzZXJzIGFyZSBlbmNvdXJhZ2VkIHRvIHVwZGF0ZSB0aGVpciBTTk1QCisgICAgICAgIGFnZW50IGlmIHRoZXkgbWFrZSB1c2Ugb2YgdGhlIElDTVAtTUlCIHRhYmxlIG9iamVjdHMuCisgICAgICAtIFBBVENIOiAxMjc1OiBmcm9tIFZpbGlhbSBQw7rEjWlrOiBmaXhlZCBQZXJsIHRyYXAgaGFuZGxlciB3aGVuCisJcHJvY2Vzc2luZyB0cmFwIHdpdGggZW1wdHkgY29tbXVuaXR5IHN0cmluZy4KIAotICAgIHNubXBkeDoKLSAgICAgIC0gW1BBVENIIDM0NDU0MzddOiBMb2cgQWdlbnRYIGRpc2Nvbm5lY3Rpb25zIChpbiBsaW5lIHdpdGggY29ubmVjdGlvbnMpCisgICAgc25tcGQsIHNubXB0cmFwZCBhbmQgYXBwczoKKyAgICAgIC0gTWFrZSBFTlZfU0VQQVJBVE9SX0NIQVIgY29uZmlndXJhYmxlCiAKICAgICBzbm1wdHJhcGQ6Ci0gICAgICAtIFtCVUcgMzE1MTI1NF06IEZpeCBjcmFzaCB3aXRoIGludmFsaWQgdHJhcGhhbmRsZSBkaXJlY3RpdmUKLSAgICAgIC0gQXZvaWQgY3Jhc2ggZHVyaW5nIHNodXRkb3duIGR1ZSB0byBpbnZva2luZyBwZXJsX2Rlc3RydWN0KE5VTEwpCi0gICAgICAtIERvbid0IGludm9rZSBzaHV0ZG93bl9wZXJsKCkgZnJvbSBTSUdURVJNIGhhbmRsZXIKLSAgICAgIC0gSGFuZGxlIGNoYW5nZXMgdG8gbGlibXlzcWxjbGllbnQgQVBJIChhZmZlY3RzIEZlZG9yYSAxNS8xNikKLSAgICAgIC0gUmVtb3ZlIHN1cGVyZmx1b3VzIGNhc3RzCiAKICAgICBhcHBzOgotICAgICAgLSBbUEFUQ0ggMjgzNTU3N106IFJlcGxhY2UgU05NUF9aRVJPIG9mIGFycmF5cyB3aXRoIGEgbWVtc2V0LgorICAgICAgLSBTdG9wIGFnZW50eHRyYXAgZnJvbSBhY2Nlc3NpbmcgdGhlIHBlcnNpc3RlbnQgY29uZmlndXJhdGlvbiBUaGlzIGlzCisJbmVlZGVkIHRvIHByZXZlbnQgbW9hbmluZyBhYm91dCBub3QgYmVlaW5nIGFsbG93ZWQgdG8gd3JpdGUgdGhvc2UKKwlmaWxlcyBkdWUgdG8gYmFkIHBlcm1pc3Npb25zLgorICAgICAgLSBTdG9wIHVzaW5nIHNubXBfcGVycm9yIHdoZW4gbG9nZ2luZyBhZnRlciBmdW5jdGlvbnMgdGhhdCBkb24ndCBzZXQKKwlzbm1wX2Vycm5vLgogCi0gICAgYnVpbGQvaW5zdGFsbDoKLSAgICAgIC0gW0JVRyAzMTUyODQxXTogSW5zdGFsbCB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMKLSAgICAgIC0gT3BlbkJTRDogRml4IG9yZGVyIG9mIGhlYWRlcnMgd2hlbiBjaGVja2luZyA8bmV0aW5ldC9pbl9wY2IuaD4KLSAgICAgIC0gQWRkIHRhcmdldCB0byBidWlsZCBhZ2VudHh0cmFwIGZyb20gdGhlIHRvcGxldmVsCi0gICAgICAtIEJ1aWxkIGZpeCBmb3Igc3lzdGVtcyBsYWNraW5nIGZpZWxkIG1zZ19jb250cm9sIGluIHN0cnVjdCBtc2doZHIKLSAgICAgIC0gRml4IHN0YXRpYyBidWlsZHMgdXNpbmcgbmV0LXNubXAtY29uZmlnIGFuZCAtKmxpYnMgZmxhZ3MKKyAgICBidWlsZGluZzoKKyAgICAgIC0gTWFrZSB0aGUgLXdpdGhvdXQgb3B0aW9ucyB0byBycG1idWlsZCB3b3JrCisgICAgICAtIEF2b2lkIGR1cGxpY2F0ZSBhbmQgdHJhaWxpbmcgc3BhY2VzIGluIHRoZSBkZXBlbmRlbmN5IGZpbGVzLgogCi0gICAgbWFuOgotICAgICAgLSBbQlVHIDMxOTA3MjVdOiBEb2N1bWVudCBzbm1weyxfc2Vzc31zeW5jaF9yZXNwb25zZSBhbmQgc25tcF9hc3luY19zZW5kCi0KLSAgICBtaWIyYzoKLSAgICAgIC0gTWFrZSB0aGUgbWliMmMgZm9yZWFjaCByYW5nZXMgd29yayBhcyBhZHZlcnRpc2VkIGluIHRoZSBjb21tZW50cy4KKyAgICBkb2N1bWVudGF0aW9uOgorICAgICAgLSBGcm9tICJFcmljIFMuIFJheW1vbmQiOiBDb3JyZWN0IG1hbiBwYWdlIG1hcmt1cCBwcm9ibGVtIEFtYmlndW91cworCW9yIGludmFsaWQgYmFja3NsYXNoLiAgVGhpcyBkb2Vzbid0IGNhdXNlIGdyb2ZmIGEgcHJvYmxlbS4gYnV0IGl0CisJY29uZnVzZXMgZG9jbGlmdGVyIGFuZCBtYXkgY29uZnVzZSBvbGRlciB0cm9mZiBpbXBsZW1lbnRhdGlvbnMuCiAKICAgICBwZXJsOgotICAgICAgLSBGaXggc3BlbGxpbmcgaW4gdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIFNOTVAgbW9kdWxlCi0gICAgICAtIEZpeGVkIHNlZ21lbnRhdGlvbiBmYXVsdCB3aGVuIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZhaWxzLgotICAgICAgLSBEb24ndCBvcGVuIHN0ZGVyciB1bm5lY2Vzc2FyaWx5IChhZmZlY3RzIGVtYmVkZGVkIGFnZW50KQorICAgICAgLSBCVUc6IDI0MDI6IEFkZCBzdXBwb3J0IGZvciBTTk1QdjMgdHJhcHMKIAogICAgIHB5dGhvbjoKLSAgICAgIC0gW1BBVENIIDMxODUwODVdOiBGaXggc2VnZmF1bHQgb24gNjQtYml0IHN5c3RlbXMKKyAgICAgIC0gRml4ZWQgSVBBRERSRVNTIHNpemUgb24gNjRiaXQgc3lzdGVtcy4KKyAgICAgIC0gRml4ZWQgcmV0dXJuaW5nIG9mIGVtcHR5IHN0cmluZ3MuIFZhcmJpbmQgdHlwZSAoU05NUF9OT1NVQ0hPQkpFQ1QKKwlldGMuKSBzaG91bGQgYmUgdXNlZCB0byBkZXRlY3QgZXJyb3JzIGluc3RlYWQgb2YgbGVuZ3RoIG9mIHRoZQorCXZhcmlhYmxlIC0gaXQgY2FuIGJlIGVtcHR5IHN0cmluZy4KKyAgICAgIC0gW1BBVENIIDEyMzldOiBGaXggbWVtb3J5IGxlYWsKIAogICAgIHRlc3Rpbmc6Ci0gICAgICAtIFtCVUcgMzQ3NDU5MF06IERvbid0IG1hdGNoIHVuZGVyc2NvcmVzIHdpdGhpbiB0aGUgc291cmNlIHJvb3QgZmlsZW5hbWUKLSAgICAgIC0gQWRkIGEgdGVzdCBmb3Igc2Vfc3RvcmVfbGlzdCgpCi0gICAgICAtIEZpeCBQZXJsIHJlZ3Jlc3Npb24gdGVzdCBmYWlsdXJlcwotICAgICAgLSBEb24ndCBmYWlsIHNraXBwZWQgUGVybCB0ZXN0cy4KLSAgICAgIC0gUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKKyAgICAgIC0gTWFrZSBzdXJlIFRlc3Q6Okhhcm5lc3MgaXMgb2YgYXQgbGVhc3QgdmVyc2lvbiAxLjIxIFRlc3Q6Okhhcm5lc3MKKwkxLjIxIGlzIHRoZSBmaXJzdCB2ZXJzaW9uIHRoYXQgaW1wbGVtZW50cyBUQVAgdjEyIHdoaWNoIGFsbG93cworCXB1dHRpbmcgdGhlIGhlYWRlciAoMS4uTikgYWZ0ZXIgdGhlIHRlc3RzIGFuZCBzaW5jZSBvdXIgdGVzdHMKKwl1dGlsaXplIHRoYXQgd2Ugc2hvdWxkIG1ha2Ugc3VyZSB0aGF0IHRoZSB0ZXN0IHJ1bm5lciBzdXBwb3J0cyBpdC4KKworICAgIHVuc3BlY2lmaWVkOgorICAgICAgLSBBZGRlZCBzaW1mcyAoT3BlblZaIGZpbGVzeXN0ZW0pIHRvIGhyU3RvcmFnZVRhYmxlIGFuZCBockZTVGFibGUuCisgICAgICAtIFVwcG9ydCBuZXcgTUlCIHN0cnVjdHVyZXMgYW5kIE1GRCByZXdyaXRlcyB1bmRlciBEYXJ3aW4KKyAgICAgIC0gW0JVRyAyNDcwXTogQWNjZXB0IDY1NTM1IGFzIGEgdmFsaWQgSVB2NiBwb3J0IG51bWJlcgorICAgICAgLSBbQlVHIDI0NzZdOiBzbm1wZCBmYWlscyB0byBzdGFydCBvbiBBSVggT24gYW4gQUlYIHN5c3RlbSB0aGVyZSBpcworCW5vIDxrdm0uaD4gaGVhZGVyIGZpbGUgbm9yIGRvIHRoZSAvZGV2L2RtZW0gb3IgL2Rldi9kcnVtIGRldmljZXMKKwlleGlzdCBhbmQgaGVuY2UgRE1FTV9MT0MgaXMgbm90IGRlZmluZWQuIEF2b2lkIHRoYXQgaW5pdF9rbWVtKCkKKwlmYWlscyBpbiB0aGF0IGNhc2UuCiAKICAgICBBSVg6Ci0gICAgICAtIEVsaW1pbmF0ZSBjb25maWd1cmUgd2FybmluZyByZWdhcmRpbmcgbGlicGVyZnN0YXQuaCAoQUlYIDYuMWZmKQorICAgICAgLSBNYWtlIHRjcC1taWIgYnVpbGQKKyAgICAgIC0gTWFrZSB1ZHAtbWliIGJ1aWxkCisKKyAgICBMaW51eDoKKyAgICAgIC0gQlVHOiAyMjM4OiBBZGQgbGlibmwzIHN1cHBvcnQKKyAgICAgIC0gUkVTT1VSQ0VTLU1JQiwgaHJTV1J1biB0YWJsZTogUGFyc2UgL3Byb2MvPHBpZD4vc3RhdCBjb3JyZWN0bHkgb24KKwlMaW51eCBUaGlzIGlzc3VlIHdhcyByZXBvcnRlZCBieSBWaW5jZW50IEJlcm5hdAorCTx2aW5jZW50LmJlcm5hdEBkYWlseW1vdGlvbi5jb20+LiBTZWUgYWxzbworCWh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9uZXQtc25tcC9wYXRjaGVzLzEyNTcvLgorCisgICAgV2luMzI6CisgICAgICAtIFBlcmw6IEJVRzogMjQ4ODogQXZvaWQgIkZyZWUgdG8gd3JvbmcgcG9vbCIgZXJyb3IKKyAgICAgIC0gUGVybDogQlVHOiAyNDg4OiBBdm9pZCAiRnJlZSB0byB3cm9uZyBwb29sIiBlcnJvciIgVGhpcyByZXZlcnRzCisJY29tbWl0IGIyNzI1OTY0YmRlOTIxYjYyODVlM2E1OWE1MTI1NTJjYWUwYTBjYTUuCisKKyAgICBXaW5kb3dzOgorICAgICAgLSBBZGQgbXVsdGlob21pbmcgc3VwcG9ydCBPbiBXaW5kb3dzIFZpc3RhIC8gV2luZG93cyBTZXJ2ZXIgMjAwOCBhbmQKKwlsYXRlciBpdCBpcyBwb3NzaWJsZSB0byBhZGQgbXVsdGlob21pbmcgc3VwcG9ydCBieSB1c2luZyB0aGUKKwlJUF9QS1RJTkZPIHNvY2tldCBvcHRpb24uIENvbmZsaWN0czoKKwlzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYworICAgICAgLSBNYWtlIHdpbkV4dERMTCB3b3JrIG9uIDY0LWJpdCBXaW5kb3dzIHN5c3RlbXMKKyAgICAgIC0gUG9ydCBiYXRjaCBidWlsZCBpbmZyYXN0cnVjdHVyZSB0byBWaXN1YWwgU3R1ZGlvIDIwMTAgYW5kIGxhdGVyCisJRnJvbSBWaXN1YWwgU3R1ZGlvIDIwMTAgb24gaXQgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlIHRvIHNwZWNpZnkKKwlpbmNsdWRlIG9yIGxpYnJhcnkgZGlyZWN0b3JpZXMgZ2xvYmFsbHkgLSB0aGVzZSBoYXZlIHRvIGJlCisJc3BlY2lmaWVkIHBlciBwcm9qZWN0LiBIZW5jZSB0d28gYWRkaXRpb25hbCBtZW51IGVudHJpZXMgaW4KKwlidWlsZC5iYXQgdGhhdCBhbGxvdyB0byBzcGVjaWZ5IHRoZXNlIGRpcmVjdG9yaWVzLgorICAgICAgLSBQb3J0ZWQgdWNkLXNubXAvZGxtb2QgdG8gTWluR1cgLyBNU1ZDCisKKyo1LjcuMioKKworICAgIHNubXBsaWI6CisgICAgICAtIEFkZCBEb3h5Z2VuLXN0eWxlIGZ1bmN0aW9uIGhlYWRlciBmb3IKKwluZXRzbm1wX3JlZ2lzdGVyX2RlZmF1bHRfdGFyZ2V0KCkgYW5kCisJbmV0c25tcF9jbGVhcl9kZWZhdWx0X3RhcmdldCgpLgorICAgICAgLSBBZGQgbmV0c25tcF9zZXRlbnYoKS4KKyAgICAgIC0gQXZvaWQgdGhhdCBzeXN0ZW0gY2xvY2sgY2hhbmdlcyAoZS5nLiBieSBudHBkKSBhZmZlY3QgY29kZSB0aGF0CisJbmVlZHMgcmVsYXRpdmUgdGltZSBNYWtlIHN1cmUgdGhhdCB0aGUgcmFuZ2Ugb2YgdGhlIFNOTVB2MyB2YXJpYWJsZQorCXNubXBFbmdpbmVUaW1lIGlzIDAuLjIxNDc0ODM2NDcgb24gYWxsIHN1cHBvcnRlZCBzeXN0ZW1zIGluc3RlYWQgb2YKKwkwLi40Mjk0OTY3MiBvbiBzb21lIHN5c3RlbXMgKGkuZS4gd3JhcGFyb3VuZCBhZnRlciA0OTcgZGF5cykgQWRkCisJbmV0c25tcF9nZXRfbW9ub3RvbmljX2Nsb2NrKCksIG5ldHNubXBfc2V0X21vbm90b25pY19tYXJrZXIoKSwKKwluZXRzbm1wX3JlYWR5X21vbm90b25pYygpLCBuZXRzbm1wX2dldF9hZ2VudF9ydW50aW1lKCkKKyAgICAgIC0gQXZvaWQgdGhhdCBzeXN0ZW0gY2xvY2sgY2hhbmdlcyAoZS5nLiBieSBudHBkKSBhZmZlY3QgY29kZSB0aGF0CisJbmVlZHMgcmVsYXRpdmUgdGltZSBNYWtlIHN1cmUgdGhhdCB0aGUgcmFuZ2Ugb2YgdGhlIFNOTVB2MyB2YXJpYWJsZQorCXNubXBFbmdpbmVUaW1lIGlzIDAuLjIxNDc0ODM2NDcgb24gYWxsIHN1cHBvcnRlZCBzeXN0ZW1zIGluc3RlYWQgb2YKKwkwLi40Mjk0OTY3MiBvbiBzb21lIHN5c3RlbXMgKGkuZS4gd3JhcGFyb3VuZCBhZnRlciA0OTcgZGF5cykgQWRkCisJbmV0c25tcF9nZXRfbW9ub3RvbmljX2Nsb2NrKCksIG5ldHNubXBfc2V0X21vbm90b25pY19tYXJrZXIoKSwKKwluZXRzbm1wX3JlYWR5X21vbm90b25pYygpLCBuZXRzbm1wX2dldF9hZ2VudF9ydW50aW1lKCkgRGVwcmVjYXRlCisJYXRpbWVfZGlmZigpLCBhdGltZV9uZXdNYXJrZXIoKSwgYXRpbWVfcmVhZHkoKSwgYXRpbWVfc2V0TWFya2VyKCksCisJbWFya2VyX3R0aWNrcygpLCBuZXRzbm1wX21hcmtlcl91cHRpbWUoKSwgbmV0c25tcF90aW1ldmFsX3VwdGltZSgpLAorCXRpbWV2YWxfdHRpY2tzKCksIHVhdGltZV9kaWZmKCksIHVhdGltZV9oZGlmZigpIGFuZCB1YXRpbWVfcmVhZHkoKS4KKyAgICAgIC0gQXZvaWQgd2FpdGluZyBpbmRlZmluaXRlbHkgaWYgYSBzZXNzaW9uIGhhcyB0aW1lb3V0IHplcm8KKyAgICAgIC0gRGVjbGFyZSAidHlwZSIgYXJndW1lbnQgb2Ygc2Vfc3RvcmVfbGlzdCgpIC8gc2Vfc3RvcmVfc2xpc3QoKSAvCisJc2Vfc3RvcmVfZW51bV9saXN0KCkgY29uc3QKKyAgICAgIC0gTWFrZSBpdCBleHBsaWNpdCB0aGF0IE1BWF9TVUJJRCBpcyBhbiB1bnNpZ25lZCBjb25zdGFudAorICAgICAgLSBNYWtlIG5ldHNubXBfY2FsbGJhY2tfYWNjZXB0KCkgcmV0dXJuIC0xIChmYWlsdXJlKSBpbnN0ZWFkIG9mIDAKKwkoU1RESU5fRklMRU5PKQorICAgICAgLSBNYWtlIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpIHJvYnVzdCBhZ2FpbnN0IG1lbW9yeSBhbGxvY2F0aW9uCisJZmFpbHVyZXMuIE1ha2UgTkVUU05NUF9MQVJHRV9GRF9aRVJPKCkgdXNlIG1lbXNldCgpIG9uIFVuaXggc3lzdGVtcworCWluc3RlYWQgb2YgYW4gZXhwbGljaXQgbG9vcC4KKyAgICAgIC0gTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSByb2J1c3QgYWdhaW5zdCBtZW1vcnkgYWxsb2NhdGlvbgorCWZhaWx1cmVzLiBNYWtlIE5FVFNOTVBfTEFSR0VfRkRfWkVSTygpIHVzZSBtZW1zZXQoKSBvbiBVbml4IHN5c3RlbXMKKwlpbnN0ZWFkIG9mIGFuIGV4cGxpY2l0IGxvb3AuIE1ha2Ugc3VyZSB0aGF0IG9uIFVuaXggc3lzdGVtcworCW5ldHNubXBfbGFyZ2VfZmRfY2xyKCkgZG9lc24ndCB0cnkgdG8gcmVhZCBtZW1vcnkgaXQgaXNuJ3QgYWxsb3dlZAorCXRvIHJlYWQgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGVxdWFscyAtMSAoYSB2YWx1ZSB0aGF0IHNob3VsZG4ndCBiZQorCXBhc3NlZCBieSB0aGUgY2FsbGVyKS4KKyAgICAgIC0gTWVyZ2UgdG9nZXRoZXIgdGhlIExpbnV4IGFuZCAqQlNEIHZlcnNpb24gb2Ygc3JjIHBvcnQgc2VuZGluZy4KKyAgICAgIC0gT25seSB0cmFuc2Zvcm0gdGhlIGFkZHJlc3MgdG8gcHJpbnRhYmxlIGZvcm0gd2hlbiBuZWVkZWQuCisgICAgICAtIFBBVENIIDM1MTA0NTQ6IEFsbG93IHRoZSB1c2Ugb2YgMC4wLjAuMC8wIGFzIGFsaWFzIGZvciBkZWZhdWx0CisgICAgICAtIFByZXZlbnQgZ2NjIHBlZC13YXJuaW5nIGZvciBORVRTTk1QX1JFTU9WRV9DT05TVCBnaXQtc3ZuLWlkOgorCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDEKKwk4MDUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorICAgICAgLSBSZWR1Y2Ugb3ZlcmhlYWQgb2YgY29uZmlnIGZpbGUgcGFyc2luZworICAgICAgLSBSZW1vdmUgb2Jzb2xldGUgc25tcF9nZXRfZmRfZm9yX3Nlc3Npb24oKSBkZWNsYXJhdGlvbgorICAgICAgLSBTZXBhcmF0ZSBvdXQgdGhlIGNtZXNnIGJ1ZmZlciBzaXplCisgICAgICAtIFNldCB0aGUgcnBhdGggZm9yIGxpYnBlcmwuc28gaW4gbGlibmV0c25tcG1pYnMuc28gc3VjaCB0aGF0IHRoZQorCWR5bmFtaWMgbGlua2VyIGNhbiBmaW5kIGxpYnBlcmwuc28gd2l0aG91dCByZXF1aXJpbmcgdGhlIHVzZXIgdG8KKwltb2RpZnkgdGhlIGR5bmFtaWMgbGlua2VyIHNldHRpbmdzLiBUaGlzIGNoYW5nZSBpbgorCWFnZW50L01ha2VmaWxlLmluIGlzIG5lY2Vzc2FyeSBvbiB0aGUgNS41IGJyYW5jaCBhbmQgbGF0ZXIgYnV0IG5vdAorCW9uIHRoZSA1LjQgYnJhbmNoLiBUaGF0IGlzIGJlY2F1c2UgdGhlIDUuNCBicmFuY2ggdXNlcyBhbiBvbGRlcgorCXZlcnNpb24gb2YgbGlidG9vbCB0aGF0IHByb3BhZ2F0ZXMgdGhlIHJwYXRoIG9mIGRlcGVuZGVudAorCWxpYnJhcmllcy4gVGhpcyBpcyBjYWxsZWQgaW50ZXItbGlicmFyeSBkZXBlbmRlbmN5IHRyYWNraW5nIGluIHRoZQorCWxpYnRvb2wgbWFudWFsLiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgcHJlc2VudCBpbiBsaWJ0b29sIHZlcnNpb24gMQorCWJ1dCBub3QgaW4gbGlidG9vbCB2ZXJzaW9uIDIuIEZvciBtb3JlIGJhY2tncm91bmQgaW5mb3JtYXRpb24gYWJvdXQKKwlkeW5hbWljIGxpYnJhcmllcyBhbmQgcnBhdGhzLCBzZWUgYWxzbyB0aGUgZG9jdW1lbnQgd2l0aCB0aGUgdGl0bGUKKwkiUnBhdGhJc3N1ZSIgb24gdGhlIERlYmlhbiB3aWtpCisJKGh0dHA6Ly93aWtpLmRlYmlhbi5vcmcvUnBhdGhJc3N1ZSkuCisgICAgICAtIFNpbXBsaWZ5IGltcGxlbWVudGF0aW9uIG9mIGZ1bmN0aW9ucyBtYW5pcHVsYXRpbmcgNjQtYml0IG51bWJlcnMuCisgICAgICAtIFNpbXBsaWZ5IHRoZSBzZV9zdG9yZV9lbnVtX2xpc3QoKSBpbXBsZW1lbnRhdGlvbgorICAgICAgLSBVc2UgU05NUF9BTExPQ19UWVBFREVGIHRvIGFsbG9jYXRlIHRyYW5zcG9ydHMgaW4gb3JkZXIgdG8gYXZvaWQgdGhlCisJc2VwYXJhdGUgY2FsbCB0byBtZW1zZXQuCisgICAgICAtIFtQQVRDSCAzNDE0NzczXTogRW5jb2RlIGludGVnZXIgdmFsdWUgdXNpbmcgQVNOX0lOVEVHRVIKKyAgICAgIC0gW1BBVENIIDM1MjY1OTldOiBEb24ndCBoYW5nIG9uIHJldHJpZWQgZmFpbGluZyBTTk1QdjMgcmVzcG9uc2VzCisgICAgICAtIFBBVENIIDM1NjA0NzM6IGZyb20gZmVubmVyOiBIYW5kbGUgVGltZVRpY2tzIHdoZW4gcHJldHR5LXByaW50aW5nCisJT0lEICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisgICAgICAtIEFkZCB0aGUgc3ltYm9sIE5FVFNOTVBfUFJJbyB0byBoZWxwIGluIHByaW50aW5nIG9pZCB2YWx1ZXMuCisgICAgICAtIERvIG5vdCBjcmFzaCBmcm9tIGVtcHR5IHZhbHVlcyBpbiAtLXRva2VuPXZhbHVlIGFyZ3VtZW50cworICAgICAgLSBEbyBub3QgY3Jhc2ggb24gaW5jb21wbGV0ZSBjb25maWd1cmF0aW9uIHRva2Vucy4KKyAgICAgIC0gRG8gbm90IHRydW5jYXRlIHNpbmdsZSBkZWZhdWx0IHRyYW5zcG9ydCBkb21haW5zCisgICAgICAtIE1vdmUgdGhlIGNoZWNrIHRoYXQgdGhlIHBkdSB2YXJpYWJsZSBpcyBub24tTlVMTCB0byBiZWZvcmUgdGhlCisJZmlyc3QgZGVyZWZlcmVuY2Ugb2YgaXQuCisKKyAgICBzbm1wbGliICsgc25tcGQgKyBzbm1wd2FsazoKKyAgICAgIC0gQXZvaWQgdGhhdCBzeXN0ZW0gY2xvY2sgY2hhbmdlcyAoZS5nLiBieSBudHBkKSBhZmZlY3QgY29kZSB0aGF0CisJbmVlZHMgcmVsYXRpdmUgdGltZQorCisgICAgc25tcGxpYiwgc25tcGQsIHBlcmw6CisgICAgICAtIEVsaW1pbmF0ZSBkZWFkIHZhcmlhYmxlcyBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKKwlhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jCisJYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjYworCWVzcy5jIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYworCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jCisJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMKKwlhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYworCWFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYworCWFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MKKwkuYyBhcHBzL3NubXB0bHMuYyBhcHBzL3NubXB0cmFwZF9sb2cuYyBzbm1wbGliL2Rpcl91dGlscy5jCisJc25tcGxpYi9zbm1wX2NsaWVudC5jIHNubXBsaWIvc25tcF9vcGVuc3NsLmMKKwlzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jCisgICAgICAtIEJVRzogMzUxNzAzMDogRW5zdXJlIGxhcmdlIHRhYmxlcyBhcmUgd2Fsa2VkIHByb3Blcmx5CisgICAgICAtIEJVRzogMzU0MTAxMjogRml4IGhhbmRsaW5nIG9mIGdldHRhYmxlIGNvbHVtbnMKKyAgICAgIC0gW1BBVENIIDM1Mjk1NDFdOiBEb24ndCByZWZlciB0byBpbnRlcm5hbCAnbXknIHZhcmlhYmxlcyBmcm9tCisJZXh0ZXJuYWwgc2NyaXB0cyBGaXggcHJvdmlkZWQgYnkgTGV6eiBHaWxlcworCisgICAgc25tcDoKKyAgICAgIC0gQnJpZGdlLW1pYjogRml4IGluZGV4IGludGVycHJldGF0aW9uLiBUaGlzIHBhdGNoIGNvcnJlY3RzIGEgd3JvbmcKKwlkYXRhIGludGVycHJldGF0aW9uLiBzbm1wLWJyaWRnZS1taWIgb2J0YWlucyB0aGUgaWZpbmRleCB2YWx1ZSBmcm9tCisJdGhlIHN5c2ZzIGF0dHJpYnV0ZSAnaWZpbmRleCcgVGhlIHZhbHVlIGdpdmVuIGJ5IHRoZSBzeXNmcworCWF0dHJpYnV0ZSBpcyBhbiBpbnRlZ2VyLCB3aGljaCBpcyBoYW5kbGVkIGFzIGhleCBhbmQgbGVhZHMgdG8KKwlpbmNvcnJlY3QgZGF0YSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuIGUuZy4gJCA+IHNubXB3YWxrIGxvY2FsaG9zdAorCUJSSURHRS1NSUI6OmRvdDFkQmFzZVBvcnRJZkluZGV4LjIKKwlCUklER0UtTUlCOjpkb3QxZEJhc2VQb3J0SWZJbmRleC4yID0gSU5URUdFUjogNTQgYWNjb3JkaW5nIHRvIHRoZQorCXN5c2ZzIGF0dHJpYnV0ZSB0aGUgdmFsdWUgaXMgMzYgJCA+IGNhdAorCS9zeXMvY2xhc3MvbmV0LzxkZXZpY2U+L2lmaW5kZXggMzYgU2lnbmVkLW9mZi1ieTogTWlqbyBTYWZyYWRpbgorCTxzYWZyYWRpbkBsaW51eC52bmV0LmlibS5jb20+CisKKyAgICBzbm1wZDoKKyAgICAgIC0gTG93ZXJlZCBzZXZlcml0eSBvZiAnRXJyb3IgZXhwYW5kaW5nIFhYWCB0byA2NGJpdHMnIG1lc3NhZ2VzLgorICAgICAgLSBSZW1vdmVkIGVycm9yIGxvZyBtZXNzYWdlcyB3aGVuIElQdjYgaXMgZGlzYWJsZWQuCisgICAgICAtIEFkZCBtaXNzaW5nIGRlYnVnIHRhZworICAgICAgLSBBZGQgbmV0c25tcF9nZXRfbmV4dF9hbGFybV90aW1lKCkKKyAgICAgIC0gQXZvaWQgdGhhdCBzeXN0ZW0gY2xvY2sgY2hhbmdlcyAoZS5nLiBieSBudHBkKSBhZmZlY3QgY29kZSB0aGF0CisJbmVlZHMgcmVsYXRpdmUgdGltZSBNYWtlIHN1cmUgdGhhdCB0aGUgcmFuZ2Ugb2YgdGhlIFNOTVB2MyB2YXJpYWJsZQorCXNubXBFbmdpbmVUaW1lIGlzIDAuLjIxNDc0ODM2NDcgb24gYWxsIHN1cHBvcnRlZCBzeXN0ZW1zIGluc3RlYWQgb2YKKwkwLi40Mjk0OTY3MiBvbiBzb21lIHN5c3RlbXMgKGkuZS4gd3JhcGFyb3VuZCBhZnRlciA0OTcgZGF5cykKKyAgICAgIC0gQlVHIDM1NDIxODg6IENvcnJlY3Qgc3lzT1JEZXNjciBmb3Igc25tcFVzbU1JQi4gVGhhbmtzIHRvIERhdmUKKwlWdWNpY2ggZm9yIHJlcG9ydGluZyB0aGlzLgorICAgICAgLSBCVUcgMzU0MjMwNzogQ29ycmVjdCBzeXNPUklEIGZvciBzbm1wTVBEU3RhdHMuIFRoYW5rcyB0byBEYXZlCisJVnVjaWNoIGZvciByZXBvcnRpbmcgdGhpcy4KKyAgICAgIC0gQlVHOiAzNDM5MjM0OiBDb3JyZWN0IHRoZSBkZXBlbmRlbmNpZXMgb2YgdWNkLXNubXAvcGFzcyBhbmQKKwl1Y2Qtc25tcC9wYXNzX3BlcnNpc3QKKyAgICAgIC0gQlVHOiAzNDM5MjM0OiBNb3ZlIG5ldHNubXBfcGFzc19zdHJfdG9fZXJybm8gdG8gcGFzc19jb21tb24gYW5kCisJcmVuYW1lIGl0IHRvIG5ldHNubXBfaW50ZXJuYWxfcGFzc19zdHJfdG9fZXJybm8KKyAgICAgIC0gQlVHOiAzNDYzNzY3OiBIYW5kbGUgcGFyc2luZyBzdWJpZGVudGlmaWVycyA+IDJeMzEKKyAgICAgIC0gQlVHOiAzNTMyMDkwOiBGaXggaGlnaCBpZkluZGV4IHZhbHVlcyBjcmFzaGluZyBockRldmljZURlc2NyCisgICAgICAtIENhbGwgc25tcF9vaWR0cmVlX2NvbXBhcmUgaW5zdGVhZCBvZiBzbm1wX29pZF9taW5fY29tcGFyZQorICAgICAgLSBESVNNQU4tUElORy1NSUI6IEF2b2lkIGRhbmdsaW5nIHBvaW50ZXJzIChiYXNlZCBvbiBwYXRjaCAzNTAzMjU5KQorICAgICAgLSBESVNNQU4tUElORy1NSUI6IEF2b2lkIHJlYWRpbmcgZnJlZWQgbWVtb3J5IHdoZW4gZGVsZXRpbmcgYSByb3cKKwlmcm9tIGEgdGFibGUKKyAgICAgIC0gRElTTUFOLVBJTkctTUlCOiBEbyBub3Qgc2VuZCB0aGUgY29udGVudHMgb2YgdGhlIHN0YWNrIG92ZXIgdGhlCisJbmV0d29yaworICAgICAgLSBESVNNQU4tUElORy1NSUI6IERvbid0IGNhbGwgZXhpdCgpIHVwb24gbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZQorICAgICAgLSBESVNNQU4tUElORy1NSUI6IEZpeCBJUHY2IHNvY2tldCBsZWFrIGluIGVycm9yIHBhdGhzCisgICAgICAtIERJU01BTi1QSU5HLU1JQjogRml4IGEgc29ja2V0IGxlYWsgdHJpZ2dlcmVkIGJ5IHBpbmdpbmcgYSByZW1vdGUKKwlob3N0CisgICAgICAtIERJU01BTi1QSU5HLU1JQjogRml4IG1vcmUgbWVtb3J5IGxlYWtzCisgICAgICAtIERJU01BTi1QSU5HLU1JQjogRml4IHNldmVyYWwgbWVtb3J5IGxlYWtzCisgICAgICAtIERJU01BTi1QSU5HLU1JQjogTWFrZSBwaW5nIGltcGxlbWVudGF0aW9uIGluZGVwZW5kZW50IG9mIG50cGQgY2xvY2sKKwlqdW1wcworICAgICAgLSBESVNNQU4tUElORy1NSUI6IE1ha2UgcGluZ2luZyBsb2NhbCBpbnRlcmZhY2UgYWRkcmVzc2VzIHdvcmsKKyAgICAgIC0gRElTTUFOLVNDSEVEVUxFUi1NSUI6IEhhbmRsZSAzMi1jaGFyYWN0ZXIgc2NoZWRDb250ZXh0TmFtZSB2YWx1ZXMKKwljb3JyZWN0bHkuIFNlZSBhbHNvIGNvbW1pdAorCWIzYzQ5ODI1NDJlMGFiMTUxZmIzODg0NzU0Y2RmYmNiNDcyZGE1MmQuCisgICAgICAtIERpc2FibGUgdGhlIHN1cHBvcnQgZm9yIGludGVnZXI2NCBpbiBwYXNzIHNjcmlwdHMgaWYgY29tcGlsaW5nCisJd2l0aG91dCBvcGFxdWUtc3BlY2lhbC10eXBlcy4KKyAgICAgIC0gRmFjdG9yIG91dCBhc2MyYmluIGFuZCBiaW4yYXNjLiBBZGQgYSBuZXRzbm1wX2ludGVybmFsXyBwcmVmaXggdG8KKwl0aGVtCisgICAgICAtIEZpeGVkIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgYWZ0ZXIgMzAgZGF5cyBvZiB1cHRpbWUuIEFmdGVyIDMwCisJZGF5cywgdmFsdWVzIGZyb20gL3Byb2Mvc3RhdCAob24gTGludXgpIGNhbiBnZXQgYmlnZ2VyIHRoYW4gMzJiaXRzCisJYW5kIHNubXBkIGNhbGN1bGF0aW9ucyBtaWdodCByZW5kZXIgY291bnRlcnMgbGlrZSBzc0NwdVVzZXIKKwluZWdhdGl2ZSBvciB6ZXJvLCB3aGlsZSB0aGUgcmVhbCB2YWx1ZSBpcyBoaWdoZXIuIFRoZXJlZm9yZSB0aGUKKwljb3VudGVycyBzaG91bGQgYmUgdHJhY2tlZCBhcyB0aGUgbGFyZ2VzdCBpbnRlZ2VyIGF2YWlsYWJsZS4KKyAgICAgIC0gRml4ZWQgc25tcGQgJy1kJyBvcHRpb24uIE5vdyBpdCBkdW1wcyBwYWNrZXRzIGFnYWluLgorICAgICAgLSBJRi1NSUI6OmlmVHlwZTogUmVwb3J0IHR5cGUgImluZmluaWJhbmQgKDE5OSkiIGZvciBJbmZpbmlCYW5kCisJaW50ZXJmYWNlcyBpbnN0ZWFkIG9mIHR5cGUgIm90aGVyICgxKSIuCisgICAgICAtIEluaXRfYWdlbnQoKSArIGluaXRfa21lbSgpOiBSZXR1cm4gYW4gZXJyb3IgdmFsdWUgaW5zdGVhZCBvZgorCWludm9raW5nIGV4aXQoKSBpZiBhY2Nlc3MgdG8ga2VybmVsIHZpcnR1YWwgbWVtb3J5IGlzIGRlbmllZAorICAgICAgLSBNYWtlIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBkbG1vZCBtb2R1bGUgZmFpbCByYXRoZXIgdGhhbgorCWdlbmVyYXRlIGEgZHVtbXkgbW9kdWxlIGlmIHRoZSBkbG9wZW4gZnVuY3Rpb24gaXNuJ3QgYXZhaWxhYmxlLgorICAgICAgLSBNYXRjaCBlYWNoIGdldHB3bmFtKCkvZ2V0cHd1aWQoKSBjYWxsIHdpdGggYW4gZW5kcHdlbnQoKSBjYWxsIGFuZAorCWVhY2ggZ2V0Z3JlbnQoKSBjYWxsIHdpdGggYW4gZW5kZ3JlbnQoKSBjYWxsLgorICAgICAgLSBQQVRDSCAzNDAyMzc2OiBmcm9tIExlb25hcmRvIENoaXF1aXR0bzogUmVjb2duaXNlIFJlaXNlckZTIEFsc28KKwltb3ZlIHZhcmlvdXMgRlNUeXBlIGRlZmluaXRpb25zIHRvIHRoZSBhcHByb3ByaWF0ZSBibG9ja3MKKyAgICAgIC0gUEFUQ0ggMzQ1Mzg2ODogZnJvbSAiQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+IjogRmFjdG9yIGNvbW1vbgorCWNvZGUgaW50byBwYXNzX2NvbW1vbiBNb3ZlIHRoZSBjb2RlIGZvciBwb3JtYXR0aW5nIGFuZCBwcmludGluZworCXZhbHVlcyBmcm9tIHBhc3MgYW5kIHBhc3NfcGVyc2lzdCBpbnRvIHBhc3NfY29tbW9uLgorICAgICAgLSBQQVRDSDogMzQ4Nzg2NzogRG9uJ3Qgc2tpcCBtaXNzaW5nIGlmWFRhYmxlIGVudHJpZXMKKwkoaWZDb25uZWN0b3JQcmVzZW50IEZBTFNFKQorICAgICAgLSBQYXNzX3BlcnNpc3Q6ICBGaXhlcyBhIHJhY2UgY29uZGl0aW9uIGludHJvZHVjZWQgaW4gY29tbWl0CisJMzFmYTA3Y2Q5ZmZkZTQ2ZDQxZDJiNTgzOGMzZmM0ZDAxNTQ4YmZiNS4gVGhlIGZvbGxvd2luZyByYWNlCisJY29uZGl0aW9uIGNvdWxkIGhhcHBlbjogLSBBIHN5c3RlbSBjYWxsIGZhaWxzIGFuZCBlcnJubyBpcyBzZXQKKwlhY2NvcmRpbmdseSBieSB0aGUgQyBsaWJyYXJ5LiAtIFNJR0NITEQgaGFuZGxlciBpbnZva2VzIGEgc3lzdGVtCisJY2FsbCB0aGF0IGZhaWxzIGFuZCBoZW5jZSBvdmVyd3JpdGVzIGVycm5vLiAtIFNJR0NITEQgaGFuZGxlcgorCWxlYXZlcy4gLSBvcmlnaW5hbCBjb250ZXh0IGNoZWNrcyBlcnJubyBhbmQgZmluZHMgdGhlIHZhbHVlIGZyb20KKwl0aGUgc3lzdGVtIGNhbGwgaW52b2tlZCBieSB0aGUgU0lHQ0hMRCBoYW5kbGVyIGluc3RlYWQgb2YgdGhlCisJc3lzdGVtIGNhbGwgdGhhdCBmYWlsZWQgb3JpZ2luYWxseS4gT3RoZXIgZml4ZXMgaW5jbHVkZWQgaW4gdGhpcworCXBhdGNoOiAtIFJlbmFtZWQgZGVpbml0X3Bhc3NfcGVyc2lzdCgpIGludG8gc2h1dGRvd25fcGFzc19wZXJzaXN0KCkKKwlzdWNoIHRoYXQgdGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCBkdXJpbmcgYWdlbnQgc2h1dGRvd24uIC0gTWFkZQorCXN1cmUgdGhhdCBzaHV0ZG93bl9wYXNzX3BlcnNpc3QoKSBpcyBjYWxsZWQgYnkgdGhlIFdpbmRvd3MKKwlzbm1wZC5leGUgdG9vLiAtIFdpbmRvd3M6IGF2b2lkIGNhbGxpbmcKKwlDbG9zZUhhbmRsZShJTlZBTElEX0hBTkRMRV9WQUxVRSkuIC0gV2luZG93czogYXZvaWQgdGhhdCBjbG9zaW5nIGEKKwlwYXNzX3BlcnNpc3QgcGlwZSB0cmlnZ2VycyBhIGNyYXNoLiAtIFdpbmRvd3M6IHBhc3NfcGVyc2lzdDogY2xvc2UKKwloYW5kbGVzIG9mIGZpbmlzaGVkIHByb2Nlc3Nlcy4KKwlhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYyB3aW4zMi9taWJfbW9kdWxlX3NodXRkb3duLmgKKyAgICAgIC0gU211eDogc2ltcGxpZnkgc211eF9saXN0X2RldGFjaCgpCisgICAgICAtIFVEUC1NSUI6IFJlcG9ydCB0aGUgcHJvcGVyIGFkZHJlc3MgaW4gdWRwTG9jYWxBZGRyZXNzIGluc3RlYWQgb2YKKwkwLjAuMC4wLiBNYWtlcyB0ZXN0IFQxNjBzbm1wbmV0c3RhdCBwYXNzIGFnYWluLiBGaXhlcyBhIGJ1ZworCWludHJvZHVjZWQgaW4gY29tbWl0IGM3NmZiOTZmNjVlMzNiYTJmZDIxMmE5MjFlOGMzODYxNTVlZTVjN2EuCisgICAgICAtIFtCVUcgMzQ2MDM2NF06IEZpeCB1c2Ugb2YgYmxvY2sgZmFjdG9yIHdoZW4gZGV0ZWN0aW5nIGVycm9yCisJY29uZGl0aW9ucworICAgICAgLSBbQlVHIDM0ODk2MzFdOiBGaXggaW5jb3JyZWN0IGhhbmRsaW5nIG9mIFVDRCBtb25pdG9yaW5nIGZsYWcKKyAgICAgIC0gW1BBVENIIDM0MTAwNTBdOiBTa2lwIGFscmVhZHktJ3Byb2Nlc3NlZCcgdmFyYmluZHMgQmFzZWQgb24gbWliMmMKKwlwYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIFR1cm5lcgorICAgICAgLSBbUEFUQ0ggMzQxMDA1OV06IEZpeCBzcGFyc2VseSBhdWdtZW50aW5nIHRyaWdnZXIgdGFibGVzIFBhdGNoCisJcHJvdmlkZWQgYnkgU3RlcGhlbiBUdXJuZXIKKyAgICAgIC0gW1BBVENIIDM0NDc0NDRdOiBGaXggU0lHX1BJUEUgaGFuZGxpbmcgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbAorCUZlbm5lcgorICAgICAgLSBbUEFUQ0ggMzQ0NzY3MV06IEZpeCBvdmVycmlkZSBoYW5kbGluZyBvZiBPSUQgdmFsdWVzIFBhdGNoIHN1cHBsaWVkCisJYnkgUGhpbGxpcCBPJ0Rvbm5lbGwKKyAgICAgIC0gW1BBVENIIDM0Nzk3NDBdOiBGaXggaHJTV1J1blBlcmYgc3RhdGlzdGljcworICAgICAgLSBbUEFUQ0ggMzQ4NzkxOV06IEZpeCBjb21waWxhdGlvbiB3aGVuIGNhY2hpbmcgaXMgZGlzYWJsZWQKKyAgICAgIC0gW1BBVENIIDM0OTU2OTddOiBTdG9yZSBwZXJzaXN0ZW50IHNubXBUYXJnZXQgdGFibGUgY2hhbmdlcworICAgICAgLSBCVUcgMzU0MjE4ODogQ29ycmVjdCBzeXNPUkRlc2NyIGZvciBzbm1wVXNtTUlCLiBUaGFua3MgdG8gRGF2ZQorCVZ1Y2ljaCBmb3IgcmVwb3J0aW5nIHRoaXMuCisgICAgICAtIEJVRyAzNTQyMzA3OiBDb3JyZWN0IHN5c09SSUQgZm9yIHNubXBNUERTdGF0cy4gVGhhbmtzIHRvIERhdmUKKwlWdWNpY2ggZm9yIHJlcG9ydGluZyB0aGlzLgorICAgICAgLSBCVUc6IDM1NDM4NjQ6IFJlbW92ZSBleHRyYW5lb3VzIGZ1bmN0aW9uIHR5cGUgKGFuZCBmaXggYSByZWxhdGVkCisJdHlwbykKKyAgICAgIC0gUmVtb3ZlZCBsaW1pdCBvZiAnZXhlYycgYW5kICdzaCcgZW50cmllcyBpbiBzbm1wZC5jb25mIFVzZSBkeW5hbWljCisJKHJlKWFsbG9jYXRpb24gaW5zdGVhZC4KKyAgICAgIC0gW1BBVENIIDM1NDMwMDBdOiBWYXJpb3VzIGZpeGVzIHRvIFJtb24gY29kZSBTdXBwbGllZCBieSBQYXRyaWNrCisJUml0dGVyCisKKyAgICBzbm1wZHg6CisgICAgICAtIFtQQVRDSCAzNDQ1NDM3XTogTG9nIEFnZW50WCBkaXNjb25uZWN0aW9ucyAoaW4gbGluZSB3aXRoCisJY29ubmVjdGlvbnMpIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCisKKyAgICBzbm1wdHJhcGQ6CisgICAgICAtIEF2b2lkIGNyYXNoIGR1cmluZyBzaHV0ZG93biBkdWUgdG8gaW52b2tpbmcgcGVybF9kZXN0cnVjdChOVUxMKQorICAgICAgLSBEbyBub3QgaW52b2tlIHNodXRkb3duX3BlcmwoKSBmcm9tIGluc2lkZSB0aGUgU0lHVEVSTSBoYW5kbGVyIHNpbmNlCisJdGhhdCBmYWlscyBpZiBTSUdURVJNIGlzIHJlY2VpdmVkIHdoaWxlIGEgUGVybCBoYW5kbGVyIGlzIGFjdGl2ZS4KKwlCYXNlZCBvbiBhIHBhdGNoIHBvc3RlZCBieSBKb2VsIEF2bmkgPGphdm5pQGFydWJhbmV0d29ya3MuY29tPgorICAgICAgLSBFbGltaW5hdGUgYW4gdW51c2VkIHZhcmlhYmxlIChOb3cpCisgICAgICAtIE1vdmUgdGhlIG1haW4gbG9vcCBjb2RlIGludG8gYSBuZXcgZnVuY3Rpb24KKyAgICAgIC0gUmVtb3ZlIHN1cGVyZmx1b3VzIGNhc3RzCisKKyAgICBzbm1wdHJhcGRfc3FsOgorICAgICAgLSBBdm9pZCB0aGF0IGEgbGlua2VyIGVycm9yIGlzIHRyaWdnZXJlZCBvbiBzeXN0ZW1zIHdoZXJlIG15X3Byb2duYW1lCisJaXMgbWlzc2luZyBpbiBsaWJteXNxbGNsaWVudCAoZS5nLiBGZWRvcmEgMTUgYW5kIDE2KS4gVGhpcyBpcyBhCisJYmFja3BvcnQgb2YgY29tbWl0IDlmNjUzZjcuCisKKyAgICBhaXg6CisgICAgICAtIEVsaW1pbmF0ZSBjb25maWd1cmUgd2FybmluZyByZWdhcmRpbmcgbGlicGVyZnN0YXQuaCBvbiBBSVggNi4xIGFuZAorCXVwCisgICAgICAtIFBBVENIIDM0MDM0MzM6IGZyb20gYmxlbnR6OiBJc3N1ZXMgd2l0aCBoclNXUnVuTmFtZSBhbmQgUGFyYW1ldGVycworCW9uIEFJWAkgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyCisJPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgIGFwcHMsIHNubXBsaWI6CisgICAgICAtIFBBVENIOiAyODM1NTc3OiBpZGVudGlmaWVkIGJ5ICJCYXJ0IFZhbiBBc3NjaGUiOiBSZXBsYWNlIFNOTVBfWkVSTworCW9mIGFycmF5cyB3aXRoIGEgbWVtc2V0LiBnaXQtc3ZuLWlkOgorCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDEKKwk3Nzk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorICAgICAgLSBCVUc6IDM1Mjk3Njg6IEJlIG1vcmUgY2FyZWZ1bCB3aGVuIHN0cmlwcGluZyBvZmYgbnVtZXJpYyBzdWZmaXhlcworCisgICAgYnVpbGQ6CisgICAgICAtIERvIG5vdCBnZW5lcmF0ZSBhbiBvdXRwdXQgZmlsZSBvbiBmYWlsdXJlIG1ha2Ugc3VwcG9zZXMgdGhhdCBubworCW91dHB1dCBpcyBnZW5lcmF0ZWQgaWYgdGhlIGNvbW1hbmQgZmFpbGVkLiBDaGFuZ2UgZmVhdHVyZS1yZW1vdmUgdG8KKwlmb2xsb3cgdGhhdCBwcmVzdW1wdGlvbi4KKyAgICAgIC0gQlVHOiAzNTMyMjM0OiBGaXggdHlwbyBpbiBsaWJ0b29sIHNjcmlwdCAoYWRkcmVzc2VkIHByb3Blcmx5IGluCisJbGlidG9vbCAyLjQuMikKKworICAgIGJ1aWxkaW5nOgorICAgICAgLSBBZGQgZGVwZW5kZW5jaWVzIG9uIEBGRUFUVVJFVEFSR1NAIHRvIG1ha2UgdGhlIHN1YnRhcmdldCB3b3JrIGFzCisJd2VsbC4KKyAgICAgIC0gQWRkIG1pc3NpbmcgZW5kIGNvbW1lbnRzIHRvIGZlYXR1cmUgaWZuZGVmcy4KKyAgICAgIC0gQWRkIHRhcmdldCB0byBidWlsZCBhZ2VudHh0cmFwIGZyb20gdGhlIHRvcGxldmVsCisgICAgICAtIEJ1aWxkIGZpeCBmb3Igc3lzdGVtcyBsYWNraW5nIGZpZWxkIG1zZ19mbGFncyBpbiBzdHJ1Y3QgbXNnaGRyCisJKGUuZy4gSVJJWCkKKyAgICAgIC0gQnVpbGQgZml4IGZvciBzeXN0ZW1zIGxhY2tpbmcgZmllbGRzIG1zZ19jb250cm9sL21zZ19mbGFncyBpbgorCXN0cnVjdCBtc2doZHIgKGJhY2twb3J0KQorICAgICAgLSBDb3JyZWN0IGRlcGVuZGVuY2llcyAtIHNpbmNlCisJYmY3NGZlYTY5ZjI0ZGM2ZTg1ZjkwOGYzZjQxZDE0MjZiMmUwOTY4OCBzbm1wY29uZiBpcyBsb2NhdGVkIGluCisJYnVpbGRkaXIsIG5vdCBzcmNkaXIKKyAgICAgIC0gQ29ycmVjdCBkZXBlbmRlbmNpZXMgLSBzaW5jZQorCWJmNzRmZWE2OWYyNGRjNmU4NWY5MDhmM2Y0MWQxNDI2YjJlMDk2ODggc25tcGNvbmYgaXMgbG9jYXRlZCBpbgorCWJ1aWxkZGlyLCBub3Qgc3JjZGlyIiBUaGlzIHJldmVydHMgY29tbWl0CisJOWVmYTQ2N2E5NzJiYjZlMWM3ZmJkYWYyZTI3NDI5ZDI5ZjRhYjg5ZS4KKyAgICAgIC0gTWFrZSB0aGUgdHJhbnNwb3J0IGNvbmZpZ3VyYXRpb24gY29kZSB3b3JrIGFnYWluIFByZXZpb3VzbHkgdGhlCisJdHJhbnNwb3J0IGluaGVyaXRhbmNlIHByb2Nlc3NpbmcgY29kZSByYW4gd2l0aAorCU5FVFNOTVBfRkVBVFVSRV9DSEVDS0lORyBzZXQuIEluIHRoaXMgbW9kZSB0aGUgZmlsZQorCW5ldC1zbm1wL2ZlYXR1cmUtZGV0YWlscy5oIGlzIHJlcXVpZXJlZC4gVGhhdCBmaWxlIGlzIGNyZWF0ZWQKKwlkdXJpbmcgdGhlIGZpcnN0IG1ha2UgcnVuLCBhbmQgdGhhdCBoYXBwZW5zIGFmdGVyIGNvbmZpZ3VyZSBpcyBydW4uCisJQ2hhbmdlIHRoaXMgdG8gdW5kZWZpbmUgTkVUU05NUF9NSU5JTUFMX0NPREUsIGVmZmVjdGl2ZWx5IHR1cm5pbmcKKwlvZmYgZmVhdHVyZSBzdXBwb3J0IGR1cmluZyB0cmFuc3BvcnQgY29uZmlndXJhdGlvbiBpbiBvcmRlciB0byBtYWtlCisJaXQgd29yayBhdCBhbGwuCisgICAgICAtIFJ1biBsaWJ0b29sIC0tbW9kZT1maW5pc2ggb24gdGhlIHJpZ2h0IGRpcmVjdG9yeQorCisgICAgbGlibmV0c25tcDoKKyAgICAgIC0gUEFUQ0ggMzM5NDU4NjogZnJvbSByd2EtY286IGZpbGUgZGVzY3JpcHRvciBsZWFrIGluIHJlYWRfY29uZmlnCisJKCtmaXgpIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAgbGlic25tcDoKKyAgICAgIC0gQ2hhbmdlZCB0aGUgdHlwZSBvZiB0aGUgZm91cnRoIGFyZ3VtZW50IG9mIG5ldHNubXBfc2V0X3Jvd19jb2x1bW4oKQorCWZyb20gY29uc3QgY2hhciogdG8gY29uc3Qgdm9pZCogc3VjaCB0aGF0IG5vIGNhc3QgaXMgbmVjZXNzYXJ5IHdoZW4KKwlwYXNzaW5nIGFub3RoZXIgZGF0YXR5cGUgdGhlbiBjaGFyKiBvciBjb25zdCBjaGFyKi4KKworICAgIG1hbjoKKyAgICAgIC0gW0JVRyAzNDkwNzA4XTogQ2xhcmlmeSB1c2Ugb2YgY29tbW9uIGNvbW1hbmQtbGluZSBvcHRpb25zCisgICAgICAtIEJVRzogMzUzNTI2OTogRG9jdW1lbnQgdXNlIG9mIFtzbm1wXSBmb3IgY2xpZW50LXNpZGUgdG9vbHMuCisKKyAgICBwYXNzOgorCisgICAgcGVybDoKKyAgICAgIC0gQWRkIGFnZW50Ojp1cHRpbWUoKQorICAgICAgLSBFbmFibGUgc2VuZGluZyBTTk1QdjIgdHJhcHMgd2l0aCBhbiBlbXB0eSB2YXJiaW5kIGxpc3QKKyAgICAgIC0gRml4IHNwZWxsaW5nIGluIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBTTk1QIG1vZHVsZQorICAgICAgLSBGaXhlZCBzZWdtZW50YXRpb24gZmF1bHQgd2hlbiBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlscy4gV2hlbgorCW5ldHNubXBfcmVnaXN0ZXJfaGFuZGxlciBmYWlscywgaXQgZnJlZXMgaXRzIHJlZ2luZm8gLT4KKwluc2Focl9ERVNUUk9ZIChhbmQgYW55IG90aGVyIGZ1bmN0aW9uKSBtdXN0IG5vdCBkZXJlZmVyZW5jZSBpdC4KKyAgICAgIC0gUGVybDogTWFrZSBzdXJlIHRoYXQgdGhlIGNvbnN0YW50IFNOTVBfREVGQVVMVF9SRVRSSUVTIGlzCisJcmVjb2duaXplZC4gU05NUCBtb2R1bGU6IEFkZCBjb25zdGFudHMKKwlORVRTTk1QX0NBTExCQUNLX09QX1JFQ0VJVkVEX01FU1NBR0UgYW5kCisJTkVUU05NUF9DQUxMQkFDS19PUF9USU1FRF9PVVQuIFdoZW4gdGhlIE5ldC1TTk1QIFBlcmwgbW9kdWxlcyBhcmUKKwlidWlsdCBvbiBXaW5kb3dzIHdpdGggTVNWQyBvciBNaW5HVyBpdCBpcyBwb3NzaWJsZSB0aGF0IGVhY2ggdGhlc2UKKwlhcmUgbGlua2VkIHdpdGggYW5vdGhlciB2ZXJzaW9uIG9mIHRoZSBNU1ZDIHJ1bnRpbWUgbGlicmFyeSB0aGFuCisJdGhlIFBlcmwgaW50ZXJwcmV0ZXIgaXRzZWxmLiBJbiB0aGF0IGNhc2UgdGhlICJlcnJubyIgdmFyaWFibGUgdXNlZAorCWluc2lkZSAueHMgc291cmNlIGZpbGVzIGlzIGFub3RoZXIgdmFyaWFibGUgdGhhbiB0aGUgJCEgdmFyaWFibGUgaW4KKwkucG0gZmlsZXMuIE9yOiBhc3NpZ25tZW50cyB0byAiZXJybm8iIGluIGEgLnhzIGZpbGUgZG8gbm90IG1vZGlmeQorCXRoZSAiJCEiIFBlcmwgdmFyaWFibGUgVGhpcyBwYXRjaCBhdm9pZHMgdXNpbmcgImVycm5vIiBieSBtb2RpZnlpbmcKKwl0aGUgZGlmZmVyZW50IGNvbnN0YW50KCkgZnVuY3Rpb25zIHN1Y2ggdGhhdCB0aGVzZSByZXR1cm4gYQorCXR3by1lbGVtZW50IGFycmF5IGluc3RlYWQgb2YgcmV0dXJuaW5nIGEgc2NhbGFyIGFuZCBzZXR0aW5nIGVycm5vLgorCisgICAgcHl0aG9uOgorICAgICAgLSBBdm9pZCB0aGF0IGFuIFNOTVAgc2V0IHdpdGggVXNlRW51bXMgZW5hYmxlZCBjYXVzZXMgYSBzZWdtZW50YXRpb24KKwlmYXVsdAorICAgICAgLSBbUEFUQ0ggMzQzMzg0Nl06IEZpeCBmb3IgdXNlIHdpdGggcHl0aG9uIDIuNAorICAgICAgLSBCVUc6IDM1MzU5Njc6IEZpeCBtZW1vcnkgbGVhayAtIHNubXBfe3Nlc3NffWVycm9yIGFsbG9jYXRlcyB0aGUKKwlvdXRwdXQgYnVmZmVyCisKKyAgICB0ZXN0aW5nOgorICAgICAgLSBBZGQgYSB0ZXN0IGZvciBzZV9zdG9yZV9saXN0KCkKKyAgICAgIC0gQWRkIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1NGRpc21hbnBpbmdtaWJfc2ltcGxlCisgICAgICAtIEF2b2lkIGZhbHNlIG5lZ2F0aXZlIGZvciBUMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGUgY2F1c2VkIGJ5IHRoZQorCXRlc3QgcmVzdWx0IGJlaW5nIHByZXNlbnQgaW4gdGhlIGhleCBkdW1wICgibW9zdGx5X2hhcm1sZXNzIikKKyAgICAgIC0gQ29udmVydCBzbm1wbGliL3Rlc3RfYmluYXJ5X2FycmF5LmMgaW50byB0d28gdW5pdCB0ZXN0cworICAgICAgLSBGaXggUGVybCByZWdyZXNzaW9uIHRlc3QgZmFpbHVyZXMgQWxsIFBlcmwgcmVncmVzc2lvbiB0ZXN0cyBwYXNzCisJbm93IG9uIExpbnV4IGFuZCBvbiBXaW5kb3dzIChNU1ZDKS4KKyAgICAgIC0gTWFrZSB0aGUgYXNuMSB0ZXN0IHBhc3MgZXZlbiBpZiBzdXBwb3J0IGZvciBvcGFxdWUgdHlwZXMgYXJlCisJcmVtb3ZlZC4KKyAgICAgIC0gUGVybCByZWdyZXNzaW9uIHRlc3RzOiBEb24ndCBmYWlsIHNraXBwZWQgdGVzdHMuCisgICAgICAtIFByb3RlY3QgdGhlIHVzZSBvZiAkT1NUWVBFIHRvIGVuc3VyZSB0aGF0ICd0ZXN0JyBnZXQgZW5vdWdoCisJcGFyYW1ldGVycy4KKyAgICAgIC0gUmVtb3ZlIGFuIGluY29ycmVjdCBjb21tZW50IGZyb20gc2ltcGxlX2V2YWxfdG9vbHMuc2gKKyAgICAgIC0gUmVtb3ZlIHVudXNlZCB2YXJpYWJsZQorICAgICAgLSBSZXF1aXJlIGEgc2VtaWNvbG9uIGFmdGVyIE9LKCksIE9LRigpIGFuZCBQTEFOKCkgQWxzbywgbGV0IE9LRigpCisJZW1pdCBhIHNpbmdsZSBsaW5lIG9mIG91dHB1dCBzdWNoIHRoYXQgYWxsIG91dHB1dCBpdCBwcm9kdWNlcyBpcworCXZpc2libGUgaW4gdGhlIG91dHB1dCBvZiAibWFrZSB0ZXN0Ii4KKyAgICAgIC0gW0JVRyAzNDc0NTkwXTogRG9uJ3QgbWF0Y2ggdW5kZXJzY29yZXMgd2l0aGluIHRoZSBzb3VyY2Ugcm9vdAorCWZpbGVuYW1lCisgICAgICAtIEFkZCB0ZXN0IGNhc2VzIGZvciBzbm1wX3NlcnZpY2UKKworICAgIHVuc3BlY2lmaWVkOgorICAgICAgLSBBZGRlZCBDVkZTIChDZW50cmFWaXNpb24gRmlsZSBTeXN0ZW0pIHRvIGhyU3RvcmFnZVRhYmxlIGFuZAorCWhyRlNUYWJsZS4KKyAgICAgIC0gUmVtb3ZlZCBjb3VudGVyLTY0IGVycm9yIG1lc3NhZ2VzLiAgIFRoZXNlIG1lc3NhZ2VzIGRvIG5vdCBzYXkKKwllbnl0aGluZyB1c2VmdWwsIGNhbGxlciBzaG91bGQgY2hlY2sgdGhlaXIgcmV0dXJuIHZhbHVlIGFuZCByZXBvcnQKKwlpdC4KKyAgICAgIC0gQWRkZWQgT0NGUzIgKE9yYWNsZSBDbHVzdGVyIEZTKSB0byBoclN0b3JhZ2VUYWJsZSBhbmQgaHJGU1RhYmxlCisgICAgICAtIFtCVUcgMzQ0NDkzOV06IEJVRzogMTc5Njg4Njogc25tcGxpYjogQXZvaWQgdGhhdAorCXNwcmludF9yZWFsbG9jX29jdGV0X3N0cmluZygpIGVtYmVkcyB1bnByaW50YWJsZSBjb250cm9sIGNoYXJhY3RlcnMKKwlvciBiaW5hcnkgemVyb2VzIGluIGl0cyBvdXRwdXQuIFRoaXMgYmVoYXZpb3IgY291bGQgY2F1c2UgdHJ1bmNhdGVkCisJb3V0cHV0IGluIHNubXB0cmFwZC4KKyAgICAgIC0gW0JVRyAzNDUyMDY5XTogRml4IHNubXB0cmFwX29pZCBkZWNsYXJhdGlvbiBpbiBtaWIyYyBnZW5lcmF0ZWQgY29kZQorCVRoaXMgYnVnIHdhcyBpbnRyb2R1Y2VkIGNvbnNpZGVyYWJsZSB0aW1lIGFnby4gSXQgZGlkIGFscmVhZHkgZXhpc3QKKwlhdCB0aGUgdGltZSB0aGUgNS42IGJyYW5jaCB3YXMgY3JlYXRlZCAoc2VlIGFsc28gY29tbWl0CisJMGVjMDg4YWZhMjdjZmRhNGU2ZWE3OGFhZTdjZmM1NTA3NTY0ZWRkZSkuCisgICAgICAtIFtCVUcgMzQ1NDE2OF06IGNvbmZpZ3VyZTogRml4IGJ1aWxkaW5nIHdpdGggLS1lbmFibGUtcmVhZC1vbmx5CisgICAgICAtIFtQQVRDSCAzNDE4NjQ5XTogSE9TVC1SRVNPVVJDRVMtTUlCOiBVc2UgcGNsb3NlKCkgaW5zdGVhZCBvZgorCWZjbG9zZSgpIHRvIGNsb3NlIGEgcGlwZS4KKyAgICAgIC0gW0JVRyAzNTQwNjIxXTogZGlzdDogQWRkIG1pc3NpbmcgUHJvdmlkZXM6IHRvIG5ldC1zbm1wLXBlcmxtb2RzIFJQTQorCXNwZWMKKworICAgIEJTRDoKKworICAgIEJ1ZyAzMTUyODQxOgorICAgICAgLSBEbyBub3QgaW5zdGFsbCB0aGUgdXRpbF9mdW5jcyBzdWJoZWFkZXJzIHRoYXQgd2VyZSByZW1vdmVkIGluIDUuNworICAgICAgLSBJbnN0YWxsIHV0aWxfZnVuY3Mgc3ViaGVhZGVycworICAgICAgLSBJbnN0YWxsIHV0aWxfZnVuY3Mgc3ViaGVhZGVycyBpbnRyb2R1Y2VkIGluIDUuNgogCiAgICAgQ3lnd2luOgogICAgICAgLSBNYWtlIGRhdGVfbl90aW1lKCkgcHJvZHVjZSB0aW1lIHpvbmUgaW5mb3JtYXRpb24KLSAgICAgIC0gRml4IGdldF91cHRpbWUoKSAvIGhyU3lzdGVtVXB0aW1lIGltcGxlbWVudGF0aW9uCisKKyAgICBDeXdpbjoKKyAgICAgIC0gQWdlbnQ6IEltcGxlbWVudCBnZXRfdXB0aW1lKCkgc3VjaCB0aGF0IHF1ZXJ5aW5nCisJSE9TVC1SRVNPVVJDRVMtTUlCOjpoclN5c3RlbVVwdGltZSByZXR1cm5zIGEgbm9uLXplcm8gdmFsdWUuCiAKICAgICBGcmVlQlNEOgotICAgICAgLSBbUEFUQ0ggMzQ4OTM4N106IEluc3RhbGwgRnJlZUJTRCAxMCBoZWFkZXIgZmlsZSAocGx1cyBvdGhlciBtaXNzaW5nIHZlcnNpb25zKQogICAgICAgLSBSZXN0b3JlIElQX1JFQ1ZEU1RBRERSIGZ1bmN0aW9uYWxpdHkuCisgICAgICAtIFNubXBkICsgYXBwczogU2VuZGluZyBVRFAgcGFja2V0cyB3b3JrcyBhZ2FpbiBmb3Igbm9uLXJvb3QgdXNlcnMKKyAgICAgIC0gW1BBVENIIDM0ODkzODddOiBJbnN0YWxsIEZyZWVCU0QgMTAgaGVhZGVyIGZpbGUgKHBsdXMgb3RoZXIgbWlzc2luZworCXZlcnNpb25zKQogCiAgICAgTGludXg6Ci0gICAgICAtIFtQQVRDSCAzMjA1ODExXTogT3B0aW9uIHRvIHNraXAgZmQvbG9vcC9yYW0gZGV2aWNlcyBpbiBkaXNrSU9UYWJsZQotICAgICAgLSBbUEFUQ0ggMzUyNTk5OF06IERvbid0IHVzZSBhbiB1bmluaXRpYWxpc2VkIHZhbHVlIGluIGVycm9yIG1lc3NhZ2UKKyAgICAgIC0gUEFUQ0g6IDM1MjU5OTg6IERvbid0IHVzZSBhbiB1bmluaXRpYWxpc2VkIHZhbHVlIGluIGVycm9yIG1lc3NhZ2UKKyAgICAgIC0gW1BBVENIIDM1MzY0MjBdOiBFbnN1cmUgc25kL3JjdiBtZW1vcnkgYnVmZmVycyBhcmUgc3VpdGFibHkgYWxpZ25lZAorCVBhdGNoIHByb3ZpZGVkIGJ5IFR5bGVyIE9sbXN0ZWFkCiAKICAgICBNaW5HVzoKLSAgICAgIC0gQXZvaWQgInByYWdtYSBjb21tZW50IiB3YXJuaW5ncyBpbiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+Ci0gICAgICAtIE1hZGUgcmVncmVzc2lvbiB0ZXN0IG91dHB1dCBpbmRlcGVuZGVudCBvZiBXaW5kb3dzIHJlZ2lzdHJ5IHNldHRpbmdzCisgICAgICAtIE5ldC1TTk1QIFBlcmwgbW9kdWxlcyBidWlsZCBhZ2Fpbi4KKyAgICAgIC0gU3VwcG9ydCB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZSBvZiByZWNlbnQgU2hpbmluZyBMaWdodCBPcGVuU1NMCisJYmluYXJ5IGRpc3RyaWJ1dGlvbnMKKyAgICAgIC0gVGVzdGluZzogRml4IGEgcmFjZSBjb25kaXRpb24gaW4gdGhlIHRlc3QgZnJhbWV3b3JrCisgICAgICAtIFRlc3Rpbmc6IEZpeCBhIHJhY2UgY29uZGl0aW9uIGluIHRoZSB0ZXN0IHJ1bm5lcgorICAgICAgLSBUZXN0aW5nOiBNYWtlIHRlc3QgVDEzMHNubXB2MXZhY21nZXRfc2ltcGxlIHBhc3MKKyAgICAgIC0gVGVzdGluZzogTWFrZSB0aG9zZSByZWdyZXNzaW9uIHRlc3RzIHBhc3MgZm9yIHdoaWNoIFNOTVBDT05GUEFUSAorCWFuZC9vciBTTk1QX1BFUlNJU1RFTlRfRElSIG1hdHRlcgorICAgICAgLSBUZXN0aW5nOiBNYWtlIHVuaXQtdGVzdHMvVDAxNGdldGhvc3RieWFkZHJfY2xpYiBwYXNzCisgICAgICAtIFRlc3Rpbmc6IE1ha2UgdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIgcGFzcy4KKyAgICAgIC0gVGVzdGluZzogT2J0YWluIHRoZSBNU1lTIHBhdGggZnJvbSB0aGUgZW52aXJvbm1lbnQKIAotICAgIE5ldEJTRDoKLSAgICAgIC0gVXBkYXRlIG1lbW9yeSBhbmQgQ1BVIHN0YXRpc3RpY3MgaGFuZGxpbmcKLQotICAgIE9wZW5CU0Q6Ci0gICAgICAtIFN1cHBvcnQgdXBkYXRpbmcgdGhlIHJvdXRpbmcgdGFibGUKKyAgICBXaW4zMjoKKyAgICAgIC0gQXZvaWQgdGhhdCBjb21waWxpbmcgdGhlIGhlYWRlciBmaWxlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKwl3aXRoIHRoZSBNaW5HVyBnY2MgY29tcGlsZXIgdHJpZ2dlcnMgd2FybmluZ3MgYWJvdXQgInByYWdtYQorCWNvbW1lbnQiLgorICAgICAgLSBBdm9pZCB0aGF0IHRoZSBQQUNLQUdFXyogbWFjcm9zIGRlZmluZWQgaW4KKwk8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNhdXNlIHRyb3VibGUgd2hlbiBpbmNsdWRpbmcgdGhpcworCWhlYWRlciBpbiBhIHBhY2thZ2UgdGhhdCB1c2VzIHRoZSBHTlUgYXV0b3Rvb2xzLgorICAgICAgLSBCdWlsZGluZzogQnVpbGRzIG5vdyBjb3JyZWN0bHkgd2l0aCBhIDY0LWJpdCBjb21waWxlci4gZ2l0LXN2bi1pZDoKKwlmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxCisJOTQ1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICAgIC0gU25tcGQ6IFJlbW92ZSBkbG1vZAogCiAgICAgV2luZG93czoKLSAgICAgIC0gQXZvaWQgcHJvYmxlbXMgaWYgTmV0LVNOTVAgUGVybCBtb2R1bGVzIGFyZSBidWlsdCB3aXRoIGEgZGlmZmVyZW50Ci0JdmVyc2lvbiBvZiBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyB0aGFuIHRoYXQgdXNlZCBmb3IgQWN0aXZlUGVybAotICAgICAgLSBBdm9pZCBwcm9ibGVtcyB3aXRoIFBBQ0tBR0VfKiBtYWNyb3Mgd2hlbiB1c2luZyBHTlUgYXV0b3Rvb2xzLgotICAgICAgLSBOb3cgYnVpbGRzIGNvcnJlY3RseSB3aXRoIGEgNjQtYml0IGNvbXBpbGVyLgotICAgICAgLSBidWlsZC5iYXQ6IEdlbmVyYXRlIFBEQiBmaWxlcyBpbiByZWxlYXNlIG1vZGUuCi0gICAgICAtIGJ1aWxkLmJhdDogSW5zdGFsbCBuZXRzbm1wLmRsbCBiZWZvcmUgcnVubmluZyBQZXJsIHJlZ3Jlc3Npb24gdGVzdHMKLSAgICAgIC0gRGVwcmVjYXRlZCBsaWJzbm1wLmRlZiAtIHVzZSBORVRTTk1QX0lNUE9SVCBpbnN0ZWFkCi0gICAgICAtIEZpeCB3aW5FeHRETEwgY29tcGlsZXIgd2FybmluZ3MgKGZvbGxvd2luZyB1X2xvbmcgb2lkIHR5cGVkZWYpCi0gICAgICAtIE1ha2UgbGlua2luZyB3aXRoIHJlY2VudCBPcGVuU1NMIGJpbmFyaWVzIHN1Y2NlZWQuCi0gICAgICAtIE1ha2UgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkgcm9idXN0IGFnYWluc3QgbWVtYWxsb2MgZmFpbHVyZXMuCi0gICAgICAtIFBlcmwgbW9kdWxlcyBidWlsZCBub3cgd2l0aCBJUHY2IGVuYWJsZWQuCi0gICAgICAtIFNubXBkOiBSZW1vdmUgZGxtb2QKKyAgICAgIC0gQnVpbGRpbmcgKGJ1aWxkLmJhdCk6IEluc3RhbGwgbmV0c25tcC5kbGwgYmVmb3JlIHJ1bm5pbmcgdGhlIFBlcmwKKwlyZWdyZXNzaW9uIHRlc3RzIHN1Y2ggdGhhdCB0aGUgcmVncmVzc2lvbiB0ZXN0cyBhcmUgcnVuIHdpdGggdGhlCisJY29ycmVjdCB2ZXJzaW9uIG9mIG5ldHNubXAuZGxsLgorICAgICAgLSBNU1ZDOiBBdm9pZCB0aGF0IHRoZSB0eXBlZGVmcyBpbiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisJY29uZmxpY3Qgd2l0aCB0aG9zZSBpbiA8c3RkaW50Lmg+IGZyb20gdGhlIG1zaW50dHlwZXMgcHJvamVjdAorICAgICAgLSBNU1ZDOiBMaW5rIHdpdGggcHJvcGVyIGxpYmVheTMyIGxpYnJhcnkKKyAgICAgIC0gTVNWQzogV2hlbiBsaW5raW5nIHdpdGggT3BlblNTTCwgbGluayB3aXRoIHVzZXIzMi5saWIgdG9vCisgICAgICAtIE1ha2UgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkgcm9idXN0IGFnYWluc3QgbWVtb3J5IGFsbG9jYXRpb24KKwlmYWlsdXJlcy4gTWFrZSBORVRTTk1QX0xBUkdFX0ZEX1pFUk8oKSB1c2UgbWVtc2V0KCkgb24gVW5peCBzeXN0ZW1zCisJaW5zdGVhZCBvZiBhbiBleHBsaWNpdCBsb29wLiBNYWtlIHN1cmUgdGhhdCBvbiBVbml4IHN5c3RlbXMKKwluZXRzbm1wX2xhcmdlX2ZkX2NscigpIGRvZXNuJ3QgdHJ5IHRvIHJlYWQgbWVtb3J5IGl0IGlzbid0IGFsbG93ZWQKKwl0byByZWFkIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBlcXVhbHMgLTEgKGEgdmFsdWUgdGhhdCBzaG91bGRuJ3QgYmUKKwlwYXNzZWQgYnkgdGhlIGNhbGxlcikuIE1ha2UgbmV0c25tcF9sYXJnZV9mZF9pc19zZXQoKSByZXR1cm4gZmFsc2UKKwlvbiBVbml4IHN5c3RlbXMgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGVxdWFscyAtMSAoYSB2YWx1ZSB0aGF0CisJc2hvdWxkbid0IGJlIHBhc3NlZCBieSB0aGUgY2FsbGVyKS4gTWFrZQorCW5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpIHNocmluayBiZWhhdmlvciBjb3JyZWN0LgorICAgICAgLSBQZXJsIChidWlsZC5iYXQpOiBXaGVuIGluc3RhbGxpbmcgZGV2ZWxvcG1lbnQgZmlsZXMsIGluc3RhbGwgdGhlCisJUERCIGZpbGVzIHRvby4KKyAgICAgIC0gUmVtb3ZlIHN1cGVyZmx1b3VzIGxpbmsgbGlicmFyaWVzIGZyb20gcHJvamVjdCBmaWxlcyAoKi5kc3ApCiAgICAgICAtIFNubXB0cmFwZDogTWFrZSB0aGUgSVAgYWRkcmVzcyB0byBob3N0bmFtZSBjb252ZXJzaW9uIHdvcmsKKyAgICAgIC0gVGVzdGluZzogcGVybDogRml4IGFuIGluY29ycmVjdCBtZXNzYWdlIHByaW50ZWQgd2hpbGUgcnVubmluZyB0aGUKKwlQZXJsIG1vZHVsZSByZWdyZXNzaW9uIHRlc3RzCiAKIAotKjUuNi4xKgogCi0gICAgZ2VuZXJhbDoKLSAgICAgIC0gVXBncmFkZWQgRFRMUyBzdXBwb3J0IGZyb20gYWxwaGEgdG8gZnVsbDsgbWVudGlvbiB0aGF0IHRzbSBpcwotCW5lZWRlZCBmb3IgVExTIHRvbwogCisqNS43LjEqCisKKyAgICBzbm1wbGliOgorICAgICAgLSBGaXggYSBjcmFzaCB0aGF0IGNvdWxkIGJlCisgICAgICAtIHR3ZWFrIHBhdGNoIDMwNDQ4ODggdG8gcmVzdG9yZQorCisgICAgc25tcGQ6CisgICAgICAtIFtQQVRDSCAzMzg2NjMzXTogZml4IGludGVnZXIgb3ZlcmZsb3cgaW4gZGlzayBwZXJjZW50IGNhbGN1bGF0aW9ucworICAgICAgLSBNYWtlCisgICAgICAtIFJlc3RvcmUgc3RvcmFnZSB0YWJsZXMgb24gTGludXgKKyAgICAgIC0gcnVuIHNpZ25hbCBoYW5kbGVycyB3aGVuIHNlbGVjdCgpCisKKyAgICBzbm1wdHJhcGQ6CisgICAgICAtIEFkZCBtaXNzaW5nIG5ld2xpbmUKKyAgICAgIC0gSW52b2tlIHNodXRkb3duX3BlcmwoKSB3aGVuCisKKyAgICBidWlsZGluZzoKKyAgICAgIC0gW1BBVENIIDMzODM5NTFdOiBGaXggLVd1bnVzZWQgY29tcGlsZSB3YXJuaW5ncyB3aXRoIEZyZWVCU0QvTmV0QlNECisJU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisgICAgICAtIGJ1aWxkIGZpeAorICAgICAgLSBidWlsZCBmaXggZm9yIHN5c3RlbXMgbGFja2luZworCisgICAgbGlibmV0c25tcDoKKyAgICAgIC0gW1BBVENIIDMzODcxMzldOiBmcm9tCisKKyAgICBtYW46CisgICAgICAtIFtQQVRDSCAzMzEyODYxXTogTWFuIHBhZ2VzCisKKyAgICB0ZXN0aW5nOgorICAgICAgLSBDaGFuZ2VkCisgICAgICAtIENoZWNrIFBJRCBmaWxlIGV4aXN0ZW5jZSBhZnRlciBoYXZpbmcgcmVhZCBpdCBpbnN0ZWFkIG9mIGJlZm9yZS4KKwlUaGlzIGZpeGVzIHRoZSByYWNlIGNvbmRpdGlvbiB3aGVyZSB0aGUgUElEIGZpbGUgZGlzYXBwZWFyZWQgYWZ0ZXIKKwl0aGUgZXhpc3RlbmNlIGNoZWNrIGFuZCBiZWZvcmUgaXQgd2FzIHJlYWQuCisgICAgICAtIE1ha2UgdGhlIFNOTVBfVkVSQk9TRT0xIG91dHB1dCBldmVuIG1vcmUgdmVyYm9zZS4KKworICAgIHVuc3BlY2lmaWVkOgorICAgICAgLSBtaW5vciBORVdTIHBvbGlzaAorCisgICAgUGVybDoKKyAgICAgIC0gUmVtb3ZlIGZpbGUgcGVybC9OZXRTTk1QLnhzCisKKyAgICBXaW4zMjoKKyAgICAgIC0gQWRkIHN1cHBvcnQgZm9yCisgICAgICAtIERvY3VtZW50IGhvdyB0byBidWlsZCA2NC1iaXQKKyAgICAgIC0gRG9jdW1lbnRlZCBob3cgdG8gdXNlIGJ1aWxkLmJhdCB3aXRoCisgICAgICAtIHdpbkV4dERMTDogSW52b2tlCisKKyAgICBXaW5kb3dzOgorICAgICAgLSBBdm9pZCB0aGF0IGlmCisgICAgICAtIFJlbW92ZSBvdXRkYXRlZCBpbnN0cnVjdGlvbnMgYWJvdXQKKworKjUuNyoKICAgICBzbm1wbGliOgogICAgICAgLSBBZGRlZCBmdW5jdGlvbiBuZXRzbm1wX2RlbGV0ZV90YWJsZV9kYXRhX3NldCgpLgogICAgICAgLSBBZGRlZCBmdW5jdGlvbiBuZXRzbm1wX2RlbGV0ZV90YWJsZV9kYXRhX3NldCgpLiBBZGRlZCBkZWNsYXJhdGlvbgpAQCAtMTIzLDIwICs2MzEsMzkgQEAKICAgICAgIC0gQWRkZWQgZnVuY3Rpb24gbmV0c25tcF9kZWxldGVfdGFibGVfZGF0YV9zZXQoKS4gQWRkZWQgZGVjbGFyYXRpb24KIAlmb3IgdGhlIGZ1bmN0aW9uIG5ldHNubXBfdGFibGVfZGF0YV9kZWxldGVfdGFibGUoKSBpbiBhIHB1YmxpYwogCWFnZW50IGhlYWRlciBmaWxlLiBGaXhlZCBtZW1vcnkgbGVhayBpbgotCW5ldHNubXBfdGFibGVfZGF0YV9kZWxldGVfdGFibGUoKS4gKEJhY2twb3J0ZWQgcjE5NDUwIGFuZCByMTk0NTQKLQlmcm9tIHRydW5rLikKKwluZXRzbm1wX3RhYmxlX2RhdGFfZGVsZXRlX3RhYmxlKCkuCisgICAgICAtIEFkZGVkIGZ1bmN0aW9uIG5ldHNubXBfZGVsZXRlX3RhYmxlX2RhdGFfc2V0KCkuIEFkZGVkIGRlY2xhcmF0aW9uCisJZm9yIHRoZSBmdW5jdGlvbiBuZXRzbm1wX3RhYmxlX2RhdGFfZGVsZXRlX3RhYmxlKCkgaW4gYSBwdWJsaWMKKwlhZ2VudCBoZWFkZXIgZmlsZS4gRml4ZWQgbWVtb3J5IGxlYWsgaW4KKwluZXRzbm1wX3RhYmxlX2RhdGFfZGVsZXRlX3RhYmxlKCkuIEZpeGVkIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieQorCXVucmVnaXN0ZXJpbmcgYSB0YWJsZSBoYW5kbGVyLgogICAgICAgLSBBZGRlZCBtYWNybyBuZXRzbm1wX3N0YXRpY19hc3NlcnQoKS4KKyAgICAgIC0gQWRkZWQgbmV0c25tcF9taWJfaGFuZGxlci5kYXRhX2Nsb25lLCBhIGZ1bmN0aW9uIHBvaW50ZXIgdGhhdAorCWRlZmluZXMgaG93IHRvIGNsb25lIG5ldHNubXBfbWliX2hhbmRsZXIubXl2b2lkLiBNdXN0IGJlIGRlZmluZWQgaWYKKwlhbmQgb25seSBpZiBkYXRhX2ZyZWUgaXMgc2V0LiBUaGUgZnVuY3Rpb24gbmV0c25tcF9oYW5kbGVyX2R1cCgpCisJZG9lcyBub3cgY2xvbmUgTUlCIGhhbmRsZXIgcHJpdmF0ZSBkYXRhIGlmIGRhdGFfY2xvbmUoKSBpcyBzZXQuCisJUHJldmlvdXNseSBhZnRlciBkdXBsaWNhdGluZyBhIE1JQiBoYW5kbGVyIGFuZCB1bnJlZ2lzdGVyaW5nIG9uZSBvZgorCXRoZSB0d28gTUlCIGhhbmRsZXJzLCB0aGUgcHJpdmF0ZSBkYXRhIHBvaW50ZXIgKG15dm9pZCkgb2YgdGhlCisJb3RoZXIgYmVjYW1lIGEgZGFuZ2xpbmcgcG9pbnRlci4gTm90ZTogYWRkaXRpb24gb2YKKwluZXRzbm1wX21pYl9oYW5kbGVyLmRhdGFfY2xvbmUgaXMgYW4gQUJJIGNoYW5nZS4KICAgICAgIC0gQWRkZWQgc25tcF9zZXNzX3Nlc3Npb25fbG9va3VwKCkuCisgICAgICAtIEFkZGVkIHRoZSBmdW5jdGlvbiBuZXRzbm1wX2NoZWNrX2RlZmluZWRuZXNzKCksIHdoaWNoIGhlbHBzIHRvIGZpbmQKKwl0aGUgY2F1c2Ugb2YgdW5kZWZpbmVkIHZhbHVlIGVycm9ycyBhcyByZXBvcnRlZCBieSBWYWxncmluZC4KICAgICAgIC0gQXZvaWQgdGhhdCBWYWxncmluZCBjb21wbGFpbnMgYWJvdXQgdW5pbml0aWFsaXplZCBkYXRhIGZvciB0aGUKIAlidWZmZXJzIHJldHVybmVkIGJ5IG5ldHNubXBfY2FsbGJhY2tfcmVjdigpIGFuZAogCW5ldHNubXBfY2FsbGJhY2tfaG9va19idWlsZCgpLgogICAgICAgLSBCZSBjb25zdCBjb3JyZWN0IG92ZXIgY2FsbHMgdG8gc3RyKiBmdW5jdGlvbnMuCiAgICAgICAtIENoYW5nZWQgdGhlIGFyZ3VtZW50IHR5cGUgb2YgZGVidWdfcmVnaXN0ZXJfdG9rZW5zKCkgZnJvbSBjaGFyICoKLQlpbnRvIGNvbnN0IGNoYXIgKi4gKEJhY2twb3J0ZWQgcjE5NjY1IGFuZCByMTk2NjYgZnJvbSB0aGUgdHJ1bmsuKQorCWludG8gY29uc3QgY2hhciAqLgorICAgICAgLSBDaGVjayB0aGF0IHRoZSBhcmd1bWVudCB0byBuZXRzbm1wX3RyYW5zcG9ydF9jb3B5IGlzIG5vbi1OVUxMCiAgICAgICAtIENoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2Ygc3RyZHVwIGluIG5ldHNubXBfY3JlYXRlX2RhdGFfbGlzdCBhbmQKIAlmYWlsIGlmIHN0cmR1cCBmYWlscy4KICAgICAgIC0gQ29ycmVjdCB0aGUgZXh0ZXJuICJDIiBkZWNsYXJhdGlvbnMgdG8gYmUgY29uc2lzdGVudC4gUmVtb3ZlCiAJY29tbWVudGVkIG91dCBjb2RlLgorICAgICAgLSBGZW5uZXI6IGZpeCBzZW5kaW5nIG9mIFVEUCByZXNwb25zZXMgZnJvbSBtdWx0aWhvbWVkIGFnZW50cy4gVHJ5IHRvCisJc2VuZCB0aGUgcmVzcG9uc2UgYXMgaXQgd2FzIGJlZm9yZSBOZXQtU05NUCA1LjYgKGFzc3VtaW5nIHRoZQorCWFwcHJvcHJpYXRlIHJlcXVlc3Qgd2FzIHVuaWNhc3QpIGFuZCBvbmx5IGlmIGl0IGZhaWxzIHRyeSB0byBzZXQKKwlpZl9pbmRleCAodGhlIHJlcXVlc3QgbXVzdCBiZSBicm9hZGNhc3QpLgogICAgICAgLSBGaXhlZCBidWdzIGluIGFzbl9wYXJzZV91bnNpZ25lZF9pbnQ2NCgpLAogCWFzbl9idWlsZF91bnNpZ25lZF9pbnQ2NCgpLCBhc25fcGFyc2Vfc2lnbmVkX2ludDY0KCkgYW5kCiAJYXNuX2J1aWxkX3NpZ25lZF9pbnQ2NCgpLiBNb3N0IGJ1dCBub3QgYWxsIG9mIHRoZXNlIGJ1Z3Mgd2VyZQpAQCAtMTYxLDI0ICs2ODgsMTAxIEBACiAJYnkgdGhlICh1bmRvY3VtZW50ZWQpIHNubXBkLmNvbmYgImVudW0iIGtleXdvcmQgaGFuZGxlciAtIHN0b3JpbmcKIAlwb2ludGVycyB0byBzdHJpbmdzIGFsbG9jYXRlZCBvbiB0aGUgc3RhY2sgaW4gYSBnbG9iYWwgbGlzdCBkb2VzCiAJbm90IHdvcmsuCi0gICAgICAtIEludm9raW5nIHNlX2NsZWFyX3NsaXN0KCkgZG9lcyBubyBsb25nZXIgY3JlYXRlIGEgZGFuZ2xpbmcgcG9pbnRlci4KLQlGaXhlZCBsZWFrcy1hdC1leGl0IHRyaWdnZXJlZCBieSB1c2luZyB0aGUgc25tcF9lbnVtIGNvZGUuCi0JRG9jdW1lbnRlZCBiZWhhdmlvciBvZiBzZV9hZGRfcGFpcigpLCBzZV9hZGRfcGFpcl90b19zbGlzdCgpIGFuZAotCWNsZWFyX3NubXBfZW51bSgpLiBNYWRlIHNubXBfZW51bSBleGFtcGxlIGNvbnNpc3RlbnQgd2l0aCB0aGUgcmVzdAotCW9mIHRoZSBjb2RlIGJ5IGFkZGluZyBzdHJkdXAoKSBjYWxscyBhbmQgYWRkZWQgYSBjYWxsIHRvCi0Jc2VfY2xlYXJfYWxsX2xpc3RzKCkuIEZpeGVkIGEgbWVtb3J5IGNvcnJ1cHRpb24gcHJvYmxlbSB0cmlnZ2VyZWQKLQlieSB0aGUgKHVuZG9jdW1lbnRlZCkgc25tcGQuY29uZiAiZW51bSIga2V5d29yZCBoYW5kbGVyIC0gc3RvcmluZwotCXBvaW50ZXJzIHRvIHN0cmluZ3MgYWxsb2NhdGVkIG9uIHRoZSBzdGFjayBpbiBhIGdsb2JhbCBsaXN0IGRvZXMKLQlub3Qgd29yay4gCisgICAgICAtIFJlbW92ZSB0aGUgc3VwcG9ydCBmb3IgQ01VIGNvbXBhdGliaWxpdHkgc2luY2UgdGhlcmUgaXMgbm8gd2F5IHRvCisJZW5hYmxlIGl0IGFuZCBub2JvZHkgaGF2ZSBtaXNzZWQgaXQuCisgICAgICAtIFtCVUcgMzEzNDMyM106IEZpeCBjcmFzaCB3aGVuIGNvbXBhcmluZyBpbnZhbGlkIE9JRHMKKyAgICAgIC0gW1BBVENIIDMxNjU4NzhdOiBDYXRjaCBidWZmZXIgb3ZlcnJ1biBvbiA2NC1iaXQgc3lzdGVtcworICAgICAgLSBbUEFUQ0ggMzE5NTUzN106IE1pbm9yIGJpbmFyeV9hcnJheSBjb250YWluZXIgc29ydCBvcHRpbWl6YXRpb24KKyAgICAgIC0gW1BBVENIIDMyMDM4MDZdOiBBZGQgdGhlIGZ1bmN0aW9uIG5ldHNubXBfbGFyZ2Vfc2VsZWN0KCkuCisgICAgICAtIFtQQVRDSCAzMjAzODA2XTogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSBjbGVhciBhbGwKKwlyZWxldmFudCBmaWxlIGRlc2NyaXB0b3JzLgorICAgICAgLSBbUEFUQ0ggMzIwMzgwNl06IE1pbm9yIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiBvZgorCW5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpLgorICAgICAgLSBhZGQgSVB2NiBzdXBwb3J0IHRvIERUTFNVRFAgdHJhbnNwb3J0CisgICAgICAtIGFkZCBJUHY2IHN1cHBvcnQgdG8gRFRMU1VEUCB0cmFuc3BvcnQgdXNlIG5ldworCW5ldHNubXBfc29ja2FkZHJfc3RvcmFnZSBpbiBuZXRzbm1wX2FkZHJfcGFpcgorICAgICAgLSBhZGQgSVB2NiBzdXBwb3J0IHRvIERUTFNVRFAgdHJhbnNwb3J0IHVzZSBuZXcKKwluZXRzbm1wX3NvY2thZGRyX3N0b3JhZ2UgaW4gbmV0c25tcF9hZGRyX3BhaXIgYWRkIGJhc2VfdHJhbnNwb3J0CisJcHRyIGZvciB0dW5uZWxlZCB0cmFuc3BvcnRzCisgICAgICAtIGFkZCBtb3JlIG9wZW5zc2wgZXJyb3IgY2FzZXMgd2hlcmUgd2UgY2hlY2sgZm9yIGxvY2FsIGNlcnQKKyAgICAgIC0gYWRkIG5ldyB0cmFuc3BvcnQgY29uZmlnIHRva2VucyBsb2NhbENlcnQvcGVlckNlcnQsIGRlcHJlY2F0ZQorCW91cl9pZGVudGl0eSwgdGhlaXJfaWRlbnRpdHkKKyAgICAgIC0gYWRkIG9wdGlvbmFsIHN1cHBvcnQgZm9yIGxvY2FsIEROU1NFQyB2YWxpZGF0aW9uIG9mIGhvc3RuYW1lcwktCisJb3B0aW9uYWwgYXQgY29uZmlndXJlIHRpbWU6IC0td2l0aC1sb2NhbC1kbnNzZWMtdmFsaWRhdGlvbiAtCisJcmVxdWlyZXMgRE5TU0VDLVRvb2wgdmFsaWRhdGlvbiBsaWJyYXJpZXMgLSBpbml0aWFsIHN1cHBvcnQsIGZvcgorCXN5c3RlbXMgd2l0aCBnZXRhZGRyaW5mby4gc3VwcG9ydCBmb3IgYWRkaXRpb25hbCByZXNvbHZlcgorCWludGVyZmFjZXMgY29taW5nIHNvb24uIC0gYWxzbyBUT0RPOiBmbGFnIGZvciBpZ25vcmluZyB2YWxpZGF0b2luCisJZXJyb3JzIChsb2cgJiBjb250aW51ZSkKKyAgICAgIC0gZG9udCByZXR1cm4gZW1wdHkgYXJyYXkKICAgICAgIC0gZm9yY2UgYSA7IGF0IHRoZSBlbmQgb2YgdGhlIHN0YXRpY19hc3NlcnQgbWFjcm8uCisgICAgICAtIGludHJvZHVjZSBuZXcgbG9jYWxDZXJ0L3BlZXJDZXJ0LCBkZXByZWNhdGUgc2VydmVyQ2VydCwgY2xpZW50Q2VydCwKKwlkZWZYNTA5U2VydmVyUHViLCBkZWZYNTA5Q2xpZW50UHViCiAgICAgICAtIG5ldHNubXBfaGFuZGxlcl9kdXAoKTogZnJlZWluZyB0aGUgZHVwbGljYXRlZCBoYW5kbGVyIG5vIGxvbmdlcgogCWNhdXNlcyBhIGNyYXNoIChkb3VibGUgZnJlZSkgd2hlbiBoYW5kbGVyLT5teXZvaWQgb2YgdGhlIG9yaWdpbmFsCiAJaGFuZGxlciB3YXMgbm9uLU5VTEwuCisgICAgICAtIHJlYWxsb2MraW5pdCBpbnN0ZWFkIG9mIGNhbGxvYyBpbnNwaXJlZCBieSBwYXRjaCAzMTk1NTMyIGZyb20KKwlTdGVwaGVuIEhlbW1pbmdlcgorICAgICAgLSByZWZpbmUgY2VydCBkZWJ1Z2dpbmc7IHJlbW92ZSB1bnVzZWQgZnVuY3Rpb24KKyAgICAgIC0gcmVtb3ZlIGlubGluZSB2ZXJzaW9ucyBvZiBjb250YWluZXIgZnVuY3MKKyAgICAgIC0gc25tcF9zaHV0ZG93bigpOiBhZGRlZCBjYWxsIHRvIG5ldHNubXBfY2VydHNfc2h1dGRvd24oKS4KKyAgICAgIC0gMCBBcHBsaWVkIHRoZSBpbnRlbnQgb2YgcGF0Y2ggMzA0NDg4OCB0byBhbGxvdyBhcHBsaWNhdGlvbnMgdG8gcmVhZAorCXRoZSBlcnJvciBtZXNzYWdlcyBvZiBhIE1JQiBwYXJzaW5nIGZhaWx1cmUuCisgICAgICAtIEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4gc25tcF9mcmVlX3Nlc3Npb24oKS4KKyAgICAgIC0gW0JVRyAzMTg0Njk3XTogRG9uJ3QgcmVmZXJlbmNlIGludGVybmFsIE1ENSB3aGVuIGl0J3MgZXhwbGljaXRseQorCWRpc2FibGVkCisgICAgICAtIFtCVUcgMzIzNDc1NF06IEVuc3VyZSBvbGQgZl9jcmVhdGVfZnJvbV90c3RyaW5nIGhvb2sgaXMgaW5pdGlhbGl6ZWQKKwl0byBOVUxMCisgICAgICAtIFtCVUcgMzI2NDg1Ml06IFJlY29nbmlzZSBtaXNzaW5nIHJlcG9ydCB0eXBlcworCShzbm1we1VuYXZhaWxhYmxlLFVua25vd259Q29udGV4dHMsc25tcFVua25vd25QRFVIYW5kbGVycykKKyAgICAgIC0gX21pYmluZGV4X2FkZCgpIG5vIGxvbmdlciByZWFkcyBwYXN0IHRoZSBlbmQgb2YgdGhlIGR5bmFtaWNhbGx5CisJYWxsb2NhdGVkIGFycmF5IF9taWJpbmRleGVzLgorICAgICAgLSBbQlVHIDMxNTE4NDVdOiBmaXggbXVsdGlwbGUgcmVnaXN0cmF0aW9ucyBvZiBzbm1wIHRyYW5zcG9ydCBoYW5kbGVyCisKKyAgICBzbm1wOgorICAgICAgLSBwYXRjaDogMzA5NjcyNTogc3lzT1JUYWJsZSByZWdpc3RhdGlvbiBmb3Igbm90aWZpY2F0aW9uIGxvZyBtaWIKKwlvcmlnaW5hbCBwYXRjaCBmaXhlZCBzZXZlcmFsIGlzc3Vlcywgb3RoZXIgcGFydHMgYXBwbGllZCBlYXJsaWVyCiAKICAgICBzbm1wZDoKLSAgICAgIC0gUGF0Y2ggMzE0MTQ2MjogZnJvbSBmZW5uZXI6IGZpeCBhZ2VudHggc3ViYWdlbnQgaXNzdWVzIHdpdGgKLQltdWx0aXBsZS1vYmplY3QgcmVxdWVzdHMKLSAgICAgIC0gUGF0Y2ggZnJvbSBOaWVscyB0byBmaXggVkFDTSBwZXJzaXN0YW50IHN0b3JhZ2UuCisgICAgICAtIEFkZCBtaXNzaW5nIGZ1bmN0aW9uIGRlY2xhcmF0aW9uCisgICAgICAtIEFkZGVkIGZ1bmN0aW9ucyBuZXRzbm1wX2hhbmRsZXJfb3duc190YWJyZXEoKSwKKwluZXRzbm1wX3JlZ2lzdHJhdGlvbl9vd25zX3RhYnJlcSgpLCBuZXRzbm1wX2l0ZXJhdG9yX2Nsb25lKCkuCisJRXhwb3J0ZWQgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19jbG9uZSgpLgorICAgICAgLSBBZGRlZCBmdW5jdGlvbnMgbmV0c25tcF9oYW5kbGVyX293bnNfdGFicmVxKCksCisJbmV0c25tcF9yZWdpc3RyYXRpb25fb3duc190YWJyZXEoKSwgbmV0c25tcF9pdGVyYXRvcl9jbG9uZSgpLgorCUV4cG9ydGVkIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fY2xvbmUoKS4gTW9kaWZpZWQKKwluZXRzbm1wX2l0ZXJhdG9yX2RlbGV0ZV90YWJsZSgpIHN1Y2ggdGhhdCBpdCBmcmVlcyB0aGUgdGFibGUKKwlyZWdpc3RyYXRpb24gaW5mb3JtYXRpb24gc3RvcmVkIGluIGEgdGFibGUgaXRlcmF0b3IgdG9vLiBNb2RpZmllZAorCW5ldHNubXBfZ2V0X3RhYmxlX2l0ZXJhdG9yX2hhbmRsZXIoKSBzdWNoIHRoYXQgdGhlIHRhYmxlIGl0ZXJhdG9yCisJcGFzc2VkIHRvIHRoaXMgZnVuY3Rpb24gaXMgZnJlZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBoYW5kbGVyIGlzCisJZnJlZWQuIFJlc3RvcmVkIHRoZSBiZWhhdmlvciBvZiBuZXRzbm1wX2dldF90YWJsZV9oYW5kbGVyKCkgdG8gdGhhdAorCW9mIHIxOTQ0OSwgdGhhdCBpcywgbm90IHNldHRpbmcgdXAgdGhlIGRhdGFfZnJlZSBwb2ludGVyIGJlY2F1c2UKKwlub3QgYWxsIGNhbGxlcnMgb2YgbmV0c25tcF9nZXRfdGFibGVfaGFuZGxlcigpIGV4cGVjdCB0aGF0IHRhYmxlCisJcmVnaXN0cmF0aW9uIGluZm9ybWF0aW9uIGlzIGZyZWVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgaGFuZGxlciBpcworCWZyZWVkLgorICAgICAgLSBBZGRlZCBuZXRzbm1wX2dldF90YWJsZV9pdGVyYXRvcjIoKS4KKyAgICAgIC0gQWRkZWQgbmV0c25tcF9nZXRfdGFibGVfaXRlcmF0b3IyKCkuIEFkZGVkCisJbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9pdGVyYXRvcjIoKS4KKyAgICAgIC0gQWRkZWQgbmV0c25tcF9nZXRfdGFibGVfaXRlcmF0b3IyKCkuIEFkZGVkCisJbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9pdGVyYXRvcjIoKS4gQWRkZWQKKwluZXRzbm1wX2hhbmRsZXJfb3duc19pdGVyYXRvcl9pbmZvKCkuCisgICAgICAtIEFkZGVkIG5ldHNubXBfZ2V0X3RhYmxlX2l0ZXJhdG9yMigpLiBBZGRlZAorCW5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IyKCkuIEFkZGVkCisJbmV0c25tcF9oYW5kbGVyX293bnNfaXRlcmF0b3JfaW5mbygpLiBGaXhlZCBsZWFrLWF0LWV4aXQgdHJpZ2dlcmVkCisJYnkgc25tcE5vdGlmeVRhYmxlLgorICAgICAgLSBBZGRlZCBuZXRzbm1wX2dldF90YWJsZV9pdGVyYXRvcjIoKS4gQWRkZWQKKwluZXRzbm1wX3JlZ2lzdGVyX3RhYmxlX2l0ZXJhdG9yMigpLiBBZGRlZAorCW5ldHNubXBfaGFuZGxlcl9vd25zX2l0ZXJhdG9yX2luZm8oKS4gRml4ZWQgbGVhay1hdC1leGl0IHRyaWdnZXJlZAorCWJ5IHNubXBOb3RpZnlUYWJsZS4gRml4ZWQgbGVhay1hdC1leGl0IHRyaWdnZXJlZCBieQorCXNubXBUYXJnZXRBZGRyVGFibGUuIEFsc28sIHJlc3RvcmVkIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG9mCisJbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9pdGVyYXRvcigpLgorICAgICAgLSBBZGRlZCBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfaW5zdGFuY2UyKCksCisJbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX3NjYWxhcjIoKSwgbmV0c25tcF9jbG9uZV93YXRjaGVyX2luZm8oKQorCWFuZCBuZXRzbm1wX293bnNfd2F0Y2hlcl9pbmZvKCkuIFNlZSBhbHNvIHRoZSBEb3h5Z2VuIGNvbW1lbnRzIGZvcgorCW1vcmUgaW5mby4KKyAgICAgIC0gQWRkZWQgbmV0c25tcF91bnJlZ2lzdGVyX2F1dG9fZGF0YV90YWJsZSgpLgorICAgICAgLSBBZGRlZCByZWZlcmVuY2UgY291bnQgaW4gdGhlIG5ldHNubXBfYmFieV9zdGVwc19tb2RlcyBkYXRhCisJc3RydWN0dXJlIGFuZCBtYWRlIHN1cmUgdGhhdCB0aGlzIGRhdGEgc3RydWN0dXJlIGlzIGF1dG9tYXRpY2FsbHkKKwlmcmVlZCB3aGVuIHRoZSBoYW5kbGVyIHRoYXQgb3ducyBpdCBpcyB1bnJlZ2lzdGVyZWQuCiAgICAgICAtIEFkZGVkIHNubXBfc2Vzc19zZXNzaW9uX2xvb2t1cCgpLiBDYWxsIHNodXRkb3duX21hc3Rlcl9hZ2VudCgpIGFuZAogCXNodXRkb3duX2FnZW50KCkgZHVyaW5nIHNodXRkb3duLgogICAgICAgLSBBZGRlZCBzbm1wX3Nlc3Nfc2Vzc2lvbl9sb29rdXAoKS4gQ2FsbCBzaHV0ZG93bl9tYXN0ZXJfYWdlbnQoKSBhbmQKQEAgLTIwMywxMCArODA3LDY5IEBACiAJc3VjaCB0aGF0IGl0IG5ldmVyIGV4YW1pbmVzIHNlc3Npb25zIHRoYXQgYWxyZWFkeSBoYXZlIGJlZW4gY2xvc2VkLgogCUl0IGlzIGZvciB0aGlzIGNoYW5nZSB0aGF0IGl0IHdhcyBuZWNlc3NhcnkgdG8gaW50cm9kdWNlIHRoZSBuZXcKIAlmdW5jdGlvbiBzbm1wX3Nlc3Nfc2Vzc2lvbl9sb29rdXAoKS4KKyAgICAgIC0gQWRkZWQgdGhlIGZ1bmN0aW9ucyBuZXRzbm1wX2R1cGxpY2F0ZV92YXJpYWJsZSgpIGFuZAorCW5ldHNubXBfY2FjaGVfaGFuZGxlcl9vd25zX2NhY2hlKCkuCisgICAgICAtIEFkZGVkIHRoZSBmdW5jdGlvbnMgbmV0c25tcF9kdXBsaWNhdGVfdmFyaWFibGUoKSBhbmQKKwluZXRzbm1wX2NhY2hlX2hhbmRsZXJfb3duc19jYWNoZSgpLiBNZW1vcnkgYWxsb2NhdGVkIGJ5CisJbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkgZm9yIHN0b3JpbmcgU05NUCB2YXJpYWJsZXMgaXMgbm93IGZyZWVkCisJd2hlbiB0aGUgYXNzb2NpYXRlZCBoYW5kbGVyIGlzIHVucmVnaXN0ZXJlZC4KKyAgICAgIC0gQWRkZWQgdGhlIGZ1bmN0aW9ucyBuZXRzbm1wX2R1cGxpY2F0ZV92YXJpYWJsZSgpIGFuZAorCW5ldHNubXBfY2FjaGVfaGFuZGxlcl9vd25zX2NhY2hlKCkuIE1lbW9yeSBhbGxvY2F0ZWQgYnkKKwluZXRzbm1wX3JlZ2lzdGVyX29sZF9hcGkoKSBmb3Igc3RvcmluZyBTTk1QIHZhcmlhYmxlcyBpcyBub3cgZnJlZWQKKwl3aGVuIHRoZSBhc3NvY2lhdGVkIGhhbmRsZXIgaXMgdW5yZWdpc3RlcmVkLiBDYWxsYmFjayBmdW5jdGlvbiBkYXRhCisJZGVhbGxvY2F0aW9uIGRvZXMgbm8gbG9uZ2VyIGZyZWUgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgZm9yIHRoZQorCUFnZW50WCBzZXNzaW9uIC0gdGhlIG1lbW9yeSB0aGF0IHdhcyBhbGxvY2F0ZWQgZm9yIEFnZW50WCBzZXNzaW9ucworCWlzIG5vdyBkZWFsbG9jYXRlZCBqdXN0IGFzIHRoYXQgZm9yIGFueSBvdGhlciBzZXNzaW9uLiBUaGlzIGZpeGVzIGEKKwlsZWFrLWF0LWV4aXQuCisgICAgICAtIEFkZGVkIHRoZSBmdW5jdGlvbnMgbmV0c25tcF9kdXBsaWNhdGVfdmFyaWFibGUoKSBhbmQKKwluZXRzbm1wX2NhY2hlX2hhbmRsZXJfb3duc19jYWNoZSgpLiBNZW1vcnkgYWxsb2NhdGVkIGJ5CisJbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkgZm9yIHN0b3JpbmcgU05NUCB2YXJpYWJsZXMgaXMgbm93IGZyZWVkCisJd2hlbiB0aGUgYXNzb2NpYXRlZCBoYW5kbGVyIGlzIHVucmVnaXN0ZXJlZC4gQ2FsbGJhY2sgZnVuY3Rpb24gZGF0YQorCWRlYWxsb2NhdGlvbiBkb2VzIG5vIGxvbmdlciBmcmVlIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGZvciB0aGUKKwlBZ2VudFggc2Vzc2lvbiAtIHRoZSBtZW1vcnkgdGhhdCB3YXMgYWxsb2NhdGVkIGZvciBBZ2VudFggc2Vzc2lvbnMKKwlpcyBub3cgZGVhbGxvY2F0ZWQganVzdCBhcyB0aGF0IGZvciBhbnkgb3RoZXIgc2Vzc2lvbi4gVGhpcyBmaXhlcyBhCisJbGVhay1hdC1leGl0LiBOb3RpZnkgZmlsdGVyIHRhYmxlOiBDYWxsYmFjayBmdW5jdGlvbiBkYXRhCisJZGVhbGxvY2F0aW9uIGRvZXMgbm8gbG9uZ2VyIGZyZWUgdGhlIGRhdGEgaW4gKgkgIAorCSpzbm1wTm90aWZ5RmlsdGVyVGFibGVfaWZfY3R4LmNvbnRhaW5lciAtIHRoaXMgaXMgbm93IGRvbmUgYnkgIAorCXNodXRkb3duX3NubXBOb3RpZnlGaWx0ZXJUYWJsZSgpIGFuZAorICAgICAgLSBBdXRvbWF0aWNhbGx5IGZyZWUgdGhlIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmUgYWxsb2NhdGVkIGJ5CisJbmV0c25tcF9jb250YWluZXJfdGFibGVfaGFuZGxlcl9nZXQoKS4KKyAgICAgIC0gQnVpbGRzIHdpdGggbW9zdCByZWNlbnQgTWluR1cgKGhhdmluZyAjZGVmaW5lIGxvY2FsdGltZV9yKS4KKyAgICAgIC0gQ291bnQgdGhlIG51bWJlciBvZiB1c2VycyBvZiBhIG5ldHNubXBfY2FjaGUgZGF0YSBzdHJ1Y3R1cmUgaW5zdGVhZAorCW9mIGR1cGxpY2F0aW5nIGl0LgorICAgICAgLSBEZWNsYXJlIHRoZSBPSUQgYXJndW1lbnQgdHlwZSBvZiBNSUIgcmVnaXN0cmF0aW9uIGZ1bmN0aW9ucyBhcworCSdjb25zdCBvaWQgKicgaW5zdGVhZCBvZiAnb2lkIConIHNpbmNlIHRoZXNlIGZ1bmN0aW9ucyBkbyBub3QKKwltb2RpZnkgdGhlIE9JRC4KKyAgICAgIC0gRG8gbm90IGxlYWsgdGhlIGxpbWl0cyBvZiBzY2FsYXJfZ3JvdXAgb2JqZWN0cyBvbiBzaHV0ZG93bi4KKyAgICAgIC0gRXh0ZW5kIHRoZSBkb2N1bWVudGF0aW9uIGZvciBkYXRhX2Nsb25lIGFuZCBkYXRhX2ZyZWUKKyAgICAgIC0gRmFjdG9yIG91dCBjb21tb24gY29uZmlnX2FkZF9taWIgc3RhdG1lbnRzCisgICAgICAtIEZpbmQgb3V0IHdoZXRoZXIgbGlicnBtIGlzIGF2YWlsYWJsZSBiZWZvcmUgY29uZmlndXJpbmcgdGhlIGFnZW50CisJbW9kdWxlcyBiZWNhdXNlIGhvc3QvZGF0YS9hY2Nlc3Mvc3dpbnN0IG5lZWRzIHN5bWJvbCBIQVZFX0xJQlJQTS4KKwlBcyBhIHJlc3VsdCwgY29uZmlndXJlIGhhcyB0byBiZSBydW4gb25seSBvbmNlIGluc3RlYWQgb2YgdHdpY2UgdG8KKwllbmFibGUgdGhlIGhyU1dJbnN0YWxsZWQgdGFibGUgb24gc3lzdGVtcyB0aGF0IGhhdmUgbGlicnBtLgogICAgICAgLSBGaXhlZCBhIGRvdWJsZSBmcmVlIGF0IGV4aXQgdGhhdCB3YXMgdHJpZ2dlcmVkIGJ5IGNsZWFuaW5nIHVwIHRoZQogCWRhdGEgc3RydWN0dXJlcyB1c2VkIGZvciBlbWJlZGRlZCBQZXJsIHN1cHBvcnQuCi0gICAgICAtIEZpeGVkIG9yZGVyIG9mIHJwbWxpYiBkZXRlY3Rpb24gYW5kIGFnZW50IG1vZHVsZSBjb25maWd1cmF0aW9uCi0JKGJhY2twb3J0ZWQgcjE5NjIxIGZyb20gdHJ1bmspLgorICAgICAgLSBGaXhlZCBhIHllYXItMjAzOCBidWcgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIGlwUm91dGVUYWJsZS4KKyAgICAgIC0gSW50cm9kdWNlZCBuZXRzbm1wX3BpZF90LgorICAgICAgLSBNSUItc3BlY2lmaWMgbGVhay1hdC1leGl0IGZpeGVzLgorICAgICAgLSBNYWtlIGl0IHBvc3NpYmxlIHRvIGNvcHkgd2F0Y2hlZCBkYXRhIGl0ZW1zIHdpdGhvdXQgbWVtb3J5IGxlYWtzLgorICAgICAgLSBNYWtlIHRoZSBzZXR0aW5nIG9mIHRoZSBhcmd2cmVzdGFydCogdmFyaWFibGVzIG9wdGlvbmFsIG9uCisJVVNJTkdfVVRJTF9GVU5DU19SRVNUQVJUX01PRFVMRS4KKyAgICAgIC0gTWFrZSB0aGUgc2V0dGluZyBvZiB0aGUgYXJndnJlc3RhcnQqIHZhcmlhYmxlcyBvcHRpb25hbCBvbgorCVVTSU5HX1VUSUxfRlVOQ1NfUkVTVEFSVF9NT0RVTEUuIFJlbW92ZSB1dGlsX2Z1bmNzL3Jlc3RhcnQgZnJvbSB0aGUKKwlyZXF1aXJlbWVudCBzZXRzIG9mIHV0aWxfZnVuY3MgYW5kIGRlZmF1bHRfbW9kdWxlcy4KKyAgICAgIC0gTWFrZSB0aGUgc2V0dGluZyBvZiB0aGUgYXJndnJlc3RhcnQqIHZhcmlhYmxlcyBvcHRpb25hbCBvbgorCVVTSU5HX1VUSUxfRlVOQ1NfUkVTVEFSVF9NT0RVTEUuIFJlbW92ZSB1dGlsX2Z1bmNzL3Jlc3RhcnQgZnJvbSB0aGUKKwlyZXF1aXJlbWVudCBzZXRzIG9mIHV0aWxfZnVuY3MgYW5kIGRlZmF1bHRfbW9kdWxlcy4gQWRkCisJdXRpbF9mdW5jcy9yZXN0YXJ0IHRvIHRoZSByZXF1aXJlbWVudCBzZXQgb2YgdWNkLXNubXAvdmVyc2lvbmluZm8uCisgICAgICAtIFBhdGNoIDMxNDE0NjI6IGZyb20gZmVubmVyOiBmaXggYWdlbnR4IHN1YmFnZW50IGlzc3VlcyB3aXRoCisJbXVsdGlwbGUtb2JqZWN0IHJlcXVlc3RzCisgICAgICAtIFBhdGNoIGZyb20gTmllbHMgdG8gZml4IFZBQ00gcGVyc2lzdGFudCBzdG9yYWdlLgorICAgICAgLSBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIGNtcAorICAgICAgLSBSZW1vdmUgdXRpbF9mdW5jcy9FeGl0IGZyb20gdGhlIHJlcXVpcmVtZW50IHNldHMgb2YgdXRpbF9mdW5jcyBhbmQKKwlkZWZhdWx0X21vZHVsZXMuCisgICAgICAtIFJlbW92ZSB1dGlsX2Z1bmNzL0V4aXQgZnJvbSB0aGUgcmVxdWlyZW1lbnQgc2V0cyBvZiB1dGlsX2Z1bmNzIGFuZAorCWRlZmF1bHRfbW9kdWxlcy4gTmV2ZXIgdXNlIEV4aXQgdG8gdGVybWluYXRlIHRoZSBhZ2VudC4KICAgICAgIC0gUmVtb3ZpbmcgdGhlIGxhc3QgY2FjaGUgdmlhIG5ldHNubXBfY2FjaGVfcmVtb3ZlKCkgZG9lcyBubyBsb25nZXIKIAl0cmlnZ2VyIGEgY3Jhc2guCiAgICAgICAtIFVwZGF0ZSB0aGUgbGVuZ3RoIG9mIHN5c09iamVjdElEIGFzIHdlbGwgYXMgdGhlIGRhdGEgd2hlbiBpdCBpcyBzZXQKQEAgLTIxOCwyNiArODgxLDU0IEBACiAgICAgICAtIFtCVUcgMzA1ODEwMV06IFdyaXRlYWJsZSAnbG9uZycgaW5zdGFuY2VzIHdvcmsgb24gNjQtYml0IHN5c3RlbXMsCiAJYnV0IG5vdCB3cml0YWJsZSAnaW50J3MKICAgICAgIC0gW0JVRyAzMDYyNTM4XTogRml4IGNvbTJzZWMqIGhhbmRsaW5nIG9mIG5vbi1kZWZhdWx0IGNvbnRleHRzCisgICAgICAtIFtCVUcgMzIwNTc2NV06IGhhbmRsZSByZWNvbmZpZyBmb3IgY2VydFNlY05hbWUgdG9rZW4KICAgICAgIC0gW0JVRyBdOiBlbmZvcmNlIG1heCBsZW5ndGggb24gVExTIHNlY05hbWUgbWFwcworICAgICAgLSBbQlVHIF06IGVuZm9yY2UgbWF4IGxlbmd0aCBvbiBUTFMgc2VjTmFtZSBtYXBzIGFkZCBwcmlvcml0eSB0bworCXNlY25hbWUgZGVidWdnaW5nCiAgICAgICAtIFtQQVRDSCAyMTE5NzI1XTogRml4IHNraXBORlNJbkhvc3RSZXNvdXJjZXMgaGFuZGxpbmcgb2YKIAloclN0b3JhZ2VUYWJsZQorICAgICAgLSBbUEFUQ0ggMjk0MTgxMV06IEhhbmRsZSBzdWNjZXNzZnVsIHJlcXVlc3RzIHdpdGggcmVxSUQgMAorICAgICAgLSBbUEFUQ0ggMjk3NTI1NF06IEF2b2lkIGNhbGxiYWNrIHJlLXVzZSBvZiBjbG9zZWQgc2Vzc2lvbnMgUW46CisJU2hvdWxkIHRoaXMgYWxzbyBiZSBhcHBsaWVkIHdoZW4gbWFpbiBzZXNzaW9uIGlzIE5VTEw/CiAgICAgICAtIFtQQVRDSCAzMDUzNDM2XTogZnJvbTogdGFrZXZvczogZml4OiB0Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MKIAlpbnZhbGlkIG1lbW9yeSBhY2Nlc3MKICAgICAgIC0gW1BBVENIIDMwNTcwOTBdOiBtYWtlIGV0aHRvb2wgc3VwcG9ydCBvbiBsaW51eCB1c2UgdGhlIGhpZ2ggc3BlZWQKIAlzdHJ1Y3QgaW5mbyBmb3IgMTAwRysuCisgICAgICAtIFtQQVRDSCAzMDU3MDkzXTogYWxsb3cgbGludXggdG8gdXNlIGxpYnBjaSBmb3IgY3JlYXRpbmcgdXNlZnVsCisJaWZEZXNjciBzdHJpbmdzCiAgICAgICAtIFtQQVRDSCAzMDk2NzI1XTogRG9uJ3QgcmVnaXN0ZXIgdjFUcmFwIGNhbGxiYWNrLCBpZiBTTk1QdjEgaXMgbm90CiAJc3VwcG9ydGVkCiAgICAgICAtIFtQQVRDSCAzMDk2NzI1XTogSW5jbHVkZSBTTk1QdjEgdHJhcCBPSURzIGluIG5sbUxvZ05vdGlmaWNhdGlvbklECiAJY29sdW1uCisgICAgICAtIFtQQVRDSCAzMTI1OTZdOiBsaXN0ZW4gZm9yIG5ldGxpbmsgY2hhbmdlIGV2ZW50cyBmb3IgdGhlCisJYXJwLXJlbGF0ZWQgdGFibGVzCisgICAgICAtIFtQQVRDSCAzMTUyNDEyXTogSGFuZGxlIChhbmQgcmVwb3J0KSBwcm9ibGVtcyByZWFkaW5nIC9wcm9jL3Ztc3RhdAorICAgICAgLSBbUEFUQ0ggMzIwMzgwNl06IEF2b2lkIHRoYXQgdGhlIG1haW4gYWdlbnQgcHJvY2Vzc2luZyBsb29wIC0gd2hlbgorCXVzaW5nIG1vcmUgdGhhbiBGRF9TRVRTSVpFIGZpbGUgZGVzY3JpcHRvcnMgLSBjYW4gY2F1c2UgbWVtb3J5CisJY29ycnVwdGlvbiBieSBpbnZva2luZyBzZWxlY3QoKS4KKyAgICAgIC0gW1BBVENIIF06IG9wdGltaXphdGlvbnMgZm9yIGxhcmdlIHJvdXRlIHRhYmxlcyBmcm9tIFN0ZXBoZW4KKwlIZW1taW5nZXIgYXBwbGllZCBwYXJ0cyAxLTMgb2YgNCBmcm9tIGhpbSAobXNncyB0byBjb2RlcnMgb24KKwkyLzI4LzExOyBzdWJqZWN0IGlwLWZvcndhcmQtbWliIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50czsgcGFydCA0CisJbmVlZHMgbW9yZSB3b3JrCiAgICAgICAtIGFkZCBkZWJ1ZyBmb3IgY2VydCBmaW5kIGhpbnQgYXMgc3RyaW5nL2ludAotICAgICAgLSBhZGQgZGVidWcgZm9yIHNzbCBjaXBoZXJzLCBjbGFyaWZ5IGZpbmdlcnByaW50IG1hdGNoIGRlYnVnCisgICAgICAtIGFkZCBuZXdseSBjcmVhdGVkL2Rlc3Ryb3llZCBpbnRlcmZhY2VzIHRvIGlwdjZJZlRhYmxlIFRoZSBsaXN0IG9mCisJaW50ZXJmYWNlcyB3YXMgbmV2ZXIgcmVmcmVzaGVkLCBub3cgaXQgaXMgcmVsb2FkZWQgZXZlcnkgdGltZSB0aGUKKwl0YWJsZSBpcyBhY2Nlc3NlZC4gSSd2ZSBhbHNvIGZpeGVkIGEgbWVtb3J5IGxlYWsgYW5kIG9wdGltaXplZCB0aGUKKwlsb2FkaW5nIG9mIHRoZSBsaXN0IGEgYml0LgogICAgICAgLSBjb20yc2VjNiBkaXJlY3RpdmU6IElmIGNvbmZpZ3VyZSBoYXMgbm90IGZvdW5kIGdldGFkZHJpbmZvKCksCiAJbm9uLW51bWVyaWMgSVB2NiBhZGRyZXNzZXMgZG8gbm93IHRyaWdnZXIgYW4gZXJyb3IgbWVzc2FnZS4KLQkoQmFja3BvcnRlZCByMTk2NTAuKQotICAgICAgLSBkb24ndCBzZWNvbmQtZ3Vlc3MgY2FjaGUgaGFuZGxlciAgICh3YXZlcyBoYW5kKSB0aGlzIGlzIG5vdCB0aGUKKyAgICAgIC0gZG9uJ3Qgc2Vjb25kLWd1ZXNzIGNhY2hlIGhhbmRsZXIgKHdhdmVzIGhhbmQpIHRoaXMgaXMgbm90IHRoZQogCWZ1bmN0aW9uIHlvdSBhcmUgbG9va2luZyBmb3IuIG5ldHNubXBfY2FjaGVfaXNfdmFsaWQoKSBpcyBub3QgbWVhbnQKIAlmb3IgbWliIG1vZHVsZXMKKyAgICAgIC0gZXhhbXBsZSBNSUI6IEFkZGVkIHNodXRkb3duIGZ1bmN0aW9uIHRoYXQgZnJlZXMgYWxsIG1lbW9yeSBvd25lZCBieQorCXRoaXMgTUlCIGltcGxlbWVudGF0aW9uLgogICAgICAgLSBmaXggZG91YmxlIGZyZWUgaW4gVExTIGVycm9yIGhhbmRsaW5nCisgICAgICAtIGZpeGVkIHRoZSBhZ2VudCB3cml0aW5nICdsb29rcyBsaWtlIGEgNjRiaXQgd3JhcCwgYnV0IHByZXYhPW5ldycgaW4KKwlzeXNsb2cgd2hlbiBjb21wdXRpbmcgaXBTeXN0ZW1TdGF0cyBXaXRob3V0IHRoZSBtZW1jcHksCisJcHJldl92YWxzLT5zdGF0cyBhbmQgbmV3X3ZhbHMtPnN0YXRzIGNvdWxkIGdldCBkaWZmZXJlbnQsIHdoaWNoCisJY291bGQgbXVjaCBtdWNoIGxhdGVyICh3aGVuIGEgY291bnRlciBnZXRzIGJpZ2dlciB0aGFuIDMyIGJpdHMpCisJcmVzdWx0IGluICdwcmV2IT1uZXcnIG1lc3NhZ2UgaW4gc3lzbG9nLiBUeXBpY2FsbHkgdGhpcyBoYXBwZW5zCisJYWZ0ZXIgbG9uZyB0aW1lIG9mIHVwdGltZSBhbmQgaXQgaXMgdmVyeSBoYXJkIHRvIHJlcHJvZHVjZS4KICAgICAgIC0gaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluCiAJbmV0c25tX3N3aW5zdF9hcmNoX2luaXQoKS4KICAgICAgIC0gaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtOiBQYXNzIGNvcnJlY3QgcGF0aCB0byBycG1kYk9wZW4oKSBzdWNoCkBAIC0yNDksMTcgKzk0MCw0MSBAQAogCWluaXRzIHRvIG5ldyBhZ2VudCBjZXJ0IGluaXQgZnVuY3Rpb24sIGNhbGxlZCBmcm9tIGluaXRfYWdlbnQuCiAgICAgICAtIG5ldHNubXBfY2FjaGVfZnJlZSgpOiBBIG1vcmUgZGV0YWlsZWQgbWVzc2FnZSBpcyBub3cgbG9nZ2VkIHdoZW4KIAlhdHRlbXB0aW5nIHRvIGZyZWUgYSBjYWNoZSB0aGF0IGlzIHN0aWxsIGluIHRoZSBjYWNoZSBsaXN0LgotCShCYWNrcG9ydGVkIHIxOTUyNC4pCisgICAgICAtIHJld29ya2VkIGhyU3RvcmFnZVRhYmxlIHRvIHN1cHBvcnQgbGFyZ2UgZmlsZXN5c3RlbXMuIFRoZQorCWhyU3RvcmFnZUFsbG9jYXRpb25Vbml0cyBkb2VzIG5vdCByZXBvcnQgcmVhbCBhbGxvY2F0aW9uIHVuaXQgc2l6ZSwKKwlidXQgc29tZSBjYWxjdWxhdGVkIHZhbHVlIHNvIGhyU3RvcmFnZUFsbG9jYXRpb25Vbml0cyAqCisJaHJTdG9yYWdlU2l6ZSBnaXZlcyByZWFsIHNpemUgb2YgdGhlIGZpbGVzeXN0ZW0uIFRoaXMgY2FsY3VsYXRpb24KKwloYXBwZW5zIG9ubHkgd2hlbiBoclN0b3JhZ2VTaXplIGlzIHRvbyBzbWFsbCAoMzJiaXRzKSBmb3IKKwlmaWxlc3lzdGVtIHNpemUsIGUuZy4gZmlsZXN5c3RlbXMgbGFyZ2VyIHRoYW4gOFRCIHdpdGggNDA5NiBieXRlcworCWJsb2NrIHNpemUuIFRoaXMgY2FsY3VsYXRpb24gY2FuIGJlIHR1cm5lZCBvZmYgYnkKKwkncmVhbFN0b3JhZ2VVbml0cycgY29uZmlnIG9wdGlvbi4KKyAgICAgIC0gc2tpcCBub24tQUZfSU5FVCBpbnRlcmZhY2VzIHdoZW4gbG9hZGluZyBpcHY0IGFkZHJzCiAgICAgICAtIHNubXBkIGlzIGFnYWluIHNpbmdsZS10aHJlYWRlZC4gW1BBVENIIDI5NTk4MTFdOiBTYWZyYW5lazoKIAlSZWltcGxlbWVudCBMaW51eCBOZXRsaW5rIElQdjYgcHJlZml4IGxpc3RlbmVyLgotICAgICAgLSB1c2UgY2FjaGUtdW5pcXVlIGlkIGluc3RlYWQgb2YgaGFuZGxlciBuYW1lIGZvciBzaGFyZWQgY2FjaGUgcmVsb2FkCi0JcHJvdGVjdGlvbgotICAgICAgLSBQYXRjaCBmcm9tIENsYXVzIEtsZWluIHRvIGZpeCBlbmdpbmVpZCBnZW5lcmF0aW9uIG9uIG91dGdvaW5nIHYzCi0JdHJhcHMgZnJvbSB0aGUgYWdlbnQKLSAgICAgIC0gYWRkIG5ld2x5IGNyZWF0ZWQvZGVzdHJveWVkIGludGVyZmFjZXMgdG8gaXB2NklmVGFibGUJVGhlIGxpc3Qgb2YKLQlpbnRlcmZhY2VzIHdhcyBuZXZlciByZWZyZXNoZWQsIG5vdyBpdCBpcyByZWxvYWRlZCBldmVyeSB0aW1lIHRoZQotCXRhYmxlIGlzIGFjY2Vzc2VkLiBJJ3ZlIGFsc28gZml4ZWQgYSBtZW1vcnkgbGVhayBhbmQgb3B0aW1pemVkIHRoZQotCWxvYWRpbmcgb2YgdGhlIGxpc3QgYSBiaXQuCisgICAgICAtIEZpeGVkIG1lbW9yeSBsZWFrIGluIFRDUC1NSUIgdGFibGVzIGludHJvZHVjZWQgYnkgcGF0Y2ggIzMwNTM0MzYuCisgICAgICAtIEZpeGVkIG1lbW9yeSBsZWFrIGluIFRDUC1NSUIgdGFibGVzIGludHJvZHVjZWQgYnkgcGF0Y2ggIzMwNTM0MzYuIgorCVtQQVRDSCAzMDUzNDM2XTogZnJvbTogdGFrZXZvczogZml4OiB0Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MKKwlpbnZhbGlkIG1lbW9yeSBhY2Nlc3MiIHRoZSBidWcgMzA1MzQzNiBpcyBmaXhpbmcgd2FzIGludHJvZHVjZWQgaW4KKwlyMTc3MTksIGFuZCBmaXhlZCBpbiByMTc4NjEuCisgICAgICAtIFVzZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmllciBpbiBkZWJ1ZyBzdGF0ZW1lbnRzIGZvciBwcmludGluZyB2YWx1ZXMKKwlvZiB0eXBlICdvaWQnLgorICAgICAgLSBbUEFUQ0ggMzA2Njg2Ml06IGZpeCB0aGUgYWdlbnQgZm9yIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzCisJb2YgdGhlIGRpc2sgYW5kIGV4dGVuZCB0YWJsZXMuCisgICAgICAtIGZpeGVkIGhyU1dSdW5QYXRoIG9mIHN3YXBwZWQtb3V0IHByb2Nlc3NlcyBvbiBMaW51eC4gICBmZ2V0cygpCisJcmV0dXJucyBOVUxMIGJvdGggd2hlbiAvcHJvYy9QSUQvY21kbGluZSBpcyBlbXB0eSAoPSBzd2FwcGVkIG91dCkKKwlhbmQgd2hlbiB0aGUgcHJvY2VzcyBleGl0ZWQgYWZ0ZXIgZm9wZW4oKSwgc28gY2hlY2sKKwkvcHJvYy9QSUQvc3RhdHVzIGluIGJvdGggY2FzZXMuCisgICAgICAtIGZpeGVkIHJhY2UgY29uZGl0aW9uIGluIGhyU1dSdW5UYWJsZSBUcmVhdCB0aGUgcmVhZHMgZnJvbQorCS9wcm9jLzxwaWQ+LyogY2FyZWZ1bHksIHByb2Nlc3NlcyBjYW4gZXhpdCBpbiB0aGUgbWlkZGxlIG9mCisJcHJvY2Vzc2luZy4gKGFscmVhZHkgZml4ZWQgaW4gVjUtNS1wYXRjaGVzIGFuZCBWNS00LXBhdGNoZXMgaW4gU1ZOCisJcmV2LiAyMDExNSwgZHVubm8gd2h5IEkgZGlkIG5vdCBwYXRjaCB0cnVuaykKKyAgICAgIC0gcGF0Y2ggMzEzMTM5NzogZnJvbSB0YWtldm9zOiBodWdlIHNwZWVkdXBzIG9mIHRoZSBUQ1AvVURQIFRhYmxlcworICAgICAgLSBwYXRjaCAzMjk5Mzg0OiBmaXggSU5GT1JNcyBzbyB0aGV5IHJldHJ5IHByb2JpbmcgZm9yIGFuIGVuZ2luZUlELgorICAgICAgLSBwYXRjaCAzMzA2NDc2OiBmcm9tIHRpbnlweXJhbWlkczogZml4IG1lbW9yeSBsZWFrIGluIHRoZSBzd3J1bgorCWNvbnRhaW5lciBsb2FkaW5nCisgICAgICAtIHVjZF9zbm1wIGJ1aWxkcyBhZ2FpbiBvbiBNaW5HVyBhbmQgQ3lnd2luLgorICAgICAgLSBwYXRjaCAzMzEwMjUwOiBmcm9tIGZlbm5lcjogbWlzYyBmaXhlcyBmb3IgZGVidWdnaW5nIG91dHB1dCBvZgorCWFnZW50eAogCiAgICAgc25tcHRyYXBkOgogICAgICAgLSBGaXhlZCBhIGRvdWJsZSBmcmVlIGF0IGV4aXQgdGhhdCB3YXMgdHJpZ2dlcmVkIGJ5IGNsZWFuaW5nIHVwIHRoZQpAQCAtMjc2LDIyICs5OTEsOTMgQEAKIAlfX3NlbGVjdF9ub2NhbmNlbCAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKSBieSAweDQwNEUyMDogbWFpbgogCShzbm1wdHJhcGQuYzoxMjU4KQogCi0gICAgc25tcGluZm9ybToKLSAgICAgIC0gZml4IGNvbnRleHRFbmdpbmVJRHMgZm9yIG91dGdvaW5nIGluZm9ybXMgZnJvbSBzbm1waW5mb3JtIHRvCi0gICAgICAgIGJlIHRoZSBsb2NhbCBlbmdpbmVJRAorICAgIGFwcHM6CisgICAgICAtIFtQQVRDSCAzMDU0ODE3XTogQWRkcyBwZXItdmFyaWFibGUgdGltZWQgb3V0cHV0IHN1cHBvcnQgdG8gc25tcHdhbGsKKwl1c2luZyAtQ1QKKyAgICAgIC0gYWRkIHNubXAuY29uZiB0b2tlbnMgZm9yIHRpbWVvdXRzIGFuZCByZXRyaWVzCiAKICAgICBidWlsZDoKICAgICAgIC0gW0JVRyAzMDg4MzYwXTogRW5zdXJlIHB5dGhvbiBtb2R1bGVzIGFyZSBidWlsdCBhZ2FpbnN0IHRoZSBjb3JyZWN0CiAJbGlicmFyaWVzCiAKICAgICBidWlsZGluZzoKKyAgICAgIC0gRml4IC0td2l0aC1zZWN1cml0eS1tb2R1bGVzIGhhbmRsaW5nIEFsbG93IHJlcGVhdGVkIG1vZHVsZXMKKwkodHNtLHRzbSkgYXMgd2VsbCBhcyBkZWZhaWx0IG1vZHVsZXMgKHVzbSkgTW92ZSB0aGUgZ2VuZXJhdGlvbiBvZgorCXRoZSBmaWxlcyBhZnRlciB0aGUgY2hlY2tpbmcKKyAgICAgIC0gTWFrZSBpdCBwb3NzaWJsZSB0byByZWdlbmVyYXRlIHVzaW5nIGF1dG9jb25mIDIuNjguCiAgICAgICAtIFNvbWUgc3lzdGVtcyBkbyBub3Qgc3VwcG9ydCB0aGUgLUUgZmxhZyB0byBncmVwLCB1c2UgYXV0b2NvbmYgdG8KIAlmaW5kIHRoZSByaWdodCBlZ3JlcCBhdCBhbGwgdGltZXMuCisgICAgICAtIGNoZWNrIGZvciAvZGV2L2ttZW0gaW5zdGVhZCBvZiBhc3N1bWluZyBpdCBleGlzdHMgYW5kIGhhcmRjb2RpbmcKKwl3aGVuIGl0IGlzIG5vdCB0aGVyZQorCisgICAgbGlibmV0c25tcDoKKyAgICAgIC0gbWFkZSB0aGUgU1NIIHRyYW5zcG9ydCBjb25maWd1cmFibGUgYXMgaXQgc2hvdWxkIGJlLgorCisgICAgbGlibmV0c25tcG1pYnM6CisgICAgICAtIE1ha2UgYWxsIGZ1bmN0aW9ucyBpbiB0aGUgZGxtb2QgbW9kdWxlIHRoYXQgZG9uJ3QgaGF2ZSB0byBiZSBwdWJsaWMKKwlzdGF0aWMKKworICAgIG1pYjJjOgorICAgICAgLSBbUEFUQ0ggMzE3NTMyM106IEZpeCBoYW5kbGluZyBvZiAnd2hpbGUgKGZhbHNlKScgYmxvY2tzCisgICAgICAtIFtQQVRDSCAzMjA0ODgzXTogRml4IGhhbmRsaW5nIG9mIG5vbi10YWJsZSBvYmplY3RzIG5hbWVkIGZvb1RhYmxlCisgICAgICAtIFtQQVRDSCAzMjExNDg0XTogU3VwcG9ydCBlbnVtZXJhdGlvbnMgaW4gbm90aWZpY2F0aW9uIHZhcmJpbmRzCisgICAgICAtIG1ha2UgdGhlIG1pYjJjIGZvcmVhY2ggcmFuZ2VzIHdvcmsgYXMgYWR2ZXJ0aXNlZCBpbiB0aGUgY29tbWVudHMuCisKKyAgICBwYWNrYWdpbmc6CisgICAgICAtIEVuYWJsZSBtaWNyby1hbmQtbWFjcm8tZmVhdHVyZSBtYW5hZ2VtZW50IHdpdGhpbiBOZXQtU05NUDsgdGhpcworCWFkZHMgYSBudW1iZXIgb2YgbmV3IGZsYWdzIHRvIGNvbmZpZ3VyZSAoLS1lbmFibGUtbWluaW1hbGlzdCBhbmQKKwktLWVuYWJsZS1yZWFkLW9ubHkpLiBUaGVzZSBjaGFuZ2VzIGFyZSBkZXNpZ25lZCB0byByZW1vdmUgbXVjaCBvZgorCXRoZSBpbmxpbmUgY29kZSB0aGF0IGlzbid0IGFsd2F5cyBuZWNlc3Nhcnkgb3IgZGVzaXJlZC4gU2NyaXB0cworCWV4aXN0IChhbmQgd2lsbCBiZSBpbXByb3ZlZCkgdG8gc3RpcCBvdXQgdW51c2VkIGNvbXBvbmVudHMgZnJvbSB0aGUKKwljb2RlIGVudGlyZWx5IHRvIGVuYWJsZSBhIHNob3J0ZXIgcmV2aWV3IHByb2Nlc3MgZm9yIHVwZ3JhZGluZyB0bworCW5ldyByZWxlYXNlcy4gVGhpcyB3b3JrIHdhcyBkb25lIGJ5IFdlcyBIYXJkYWtlciBhbmQgTWljaGFlbCBCYWVyCisJZnJvbSBTUEFSVEEsIEluYy4gYnV0IGlzIGJlaW5nIGNoZWNrZWQgaW4gYXMgYSBsYXJnZSBwYXRjaCBzaW5jZQorCWNvbnZlcnRpbmcgdGhlIG1pY3JvIHBhdGNoZXMgZnJvbSBnaXQgdG8gc3ZuIHR1cmVuZCBvdXQgdG8gYmUKKwlpbXBvc3NpYmxlCisKKyAgICBwYXRjaCAzMTQwODMzOgorICAgICAgLSBmaXggcHJveHkgR0VUTkVYVCByZXF1ZXN0cyBXaGVuIE9JRHMgcmVxdWVzdGVkIGFyZSBiZWxvdyB0aGUgcHJveHkKKwlyZXF1ZXN0IHJlbWFwLCB3ZSBuZWVkIHRvIG5vdCBpbmNsdWRlIGFueSBPSURzIHRoYXQgbWlnaHQgYmUgaW4gdGhlCisJc3BhY2UgYmV0d2VlbiB0aGUgb3JpZ2luYWwgT0lEIGFuZCB0aGUgcmVtYXBwZWQgT0lELiBUaGlzIHBhdGNoCisJZnVkZ2VzIHRoZSByZXF1ZXN0IHNvIHRoYXQgaXQgZml4ZXMgdGhlIHJlcXVlc3QgT0lEIHNvIGl0J3MganVzdAorCWJlZm9yZSB0aGUgcmVtYXBwZWQgcHJveHkgcmFuZ2UuCisKKyAgICBwYXRjaCAzMTg0MDI2OgorICAgICAgLSBBdm9pZCBjb25zdGFudCByZWZyZXNoIG9mIGludGVyZmFjZSBzdGF0aXN0aWNzCiAKICAgICBwZXJsOgotICAgICAgLSAwIHBhdGNoIDMwNDkwMjk6IGZyb20gZmVubmVjOiBmaXggYSBtZW1vcnkgbGVhayB3aXRoIHNubXAgYnVsa3dhbGtzCisgICAgICAtIHBhdGNoIDMwNDkwMjk6IGZyb20gZmVubmVjOiBmaXggYSBtZW1vcnkgbGVhayB3aXRoIHNubXAgYnVsa3dhbGtzCisgICAgICAtIHBhdGNoIGZyb20gTWFydGluIEJ1Y2s6IGRvbid0IGFsd2F5cyBvcGVuIHN0ZGVyciBhcyB0aGUgY2FsbHMgdG8KKwlzbm1wX2xvZyBhbHJlYWR5IGRvIHRoaXMgYW5kIGl0IG1lc3NlcyB1cCB0aGUgYWdlbnQgd2hlbiBlbWJlZGRlZAorCisgICAgcHl0aG9uOgorICAgICAgLSBbUEFUQ0ggMzE4NTA4NV06IEZpeCBzZWdmYXVsdCBvbiA2NC1iaXQgc3lzdGVtcworICAgICAgLSBbQlVHIDMyOTU0MDddOiBGaXggaGFuZGxpbmcgb2Ygdm9pZCBwb2ludGVyCiAKICAgICB0ZXN0aW5nOgorICAgICAgLSBBZGQgbWlzc2luZyBwcmVjb25kaXRpb25zCisgICAgICAtIEFkZGVkIGZ1bmN0aW9uIG5ldHNubXBfZGVsZXRlX3RhYmxlX2RhdGFfc2V0KCkuIEFkZGVkIGRlY2xhcmF0aW9uCisJZm9yIHRoZSBmdW5jdGlvbiBuZXRzbm1wX3RhYmxlX2RhdGFfZGVsZXRlX3RhYmxlKCkgaW4gYSBwdWJsaWMKKwlhZ2VudCBoZWFkZXIgZmlsZS4gRml4ZWQgbWVtb3J5IGxlYWsgaW4KKwluZXRzbm1wX3RhYmxlX2RhdGFfZGVsZXRlX3RhYmxlKCkuIEZpeGVkIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieQorCXVucmVnaXN0ZXJpbmcgYSB0YWJsZSBoYW5kbGVyLiBVbml0IHRlc3RzIGNhbiBub3cgaW52b2tlIGZ1bmN0aW9ucworCWZyb20gbGliYWdlbnQuCisgICAgICAtIEFkZGVkIGZ1bmN0aW9uIG5ldHNubXBfZGVsZXRlX3RhYmxlX2RhdGFfc2V0KCkuIEFkZGVkIGRlY2xhcmF0aW9uCisJZm9yIHRoZSBmdW5jdGlvbiBuZXRzbm1wX3RhYmxlX2RhdGFfZGVsZXRlX3RhYmxlKCkgaW4gYSBwdWJsaWMKKwlhZ2VudCBoZWFkZXIgZmlsZS4gRml4ZWQgbWVtb3J5IGxlYWsgaW4KKwluZXRzbm1wX3RhYmxlX2RhdGFfZGVsZXRlX3RhYmxlKCkuIEZpeGVkIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieQorCXVucmVnaXN0ZXJpbmcgYSB0YWJsZSBoYW5kbGVyLiBVbml0IHRlc3RzIGNhbiBub3cgaW52b2tlIGZ1bmN0aW9ucworCWZyb20gbGliYWdlbnQuIEFkZGVkIHVuaXQgdGVzdCBmb3IgdGFibGVfZGF0YXNldC4KKyAgICAgIC0gQWRkZWQgaW5ldF9udG9wKCkgYW5kIGluZXRfcHRvbigpIHVuaXQgdGVzdC4KKyAgICAgIC0gQWRkZWQgbmV0c25tcF9taWJfaGFuZGxlci5kYXRhX2Nsb25lLCBhIGZ1bmN0aW9uIHBvaW50ZXIgdGhhdAorCWRlZmluZXMgaG93IHRvIGNsb25lIG5ldHNubXBfbWliX2hhbmRsZXIubXl2b2lkLiBNdXN0IGJlIGRlZmluZWQgaWYKKwlhbmQgb25seSBpZiBkYXRhX2ZyZWUgaXMgc2V0LiBUaGUgZnVuY3Rpb24gbmV0c25tcF9oYW5kbGVyX2R1cCgpCisJZG9lcyBub3cgY2xvbmUgTUlCIGhhbmRsZXIgcHJpdmF0ZSBkYXRhIGlmIGRhdGFfY2xvbmUoKSBpcyBzZXQuCisJUHJldmlvdXNseSBhZnRlciBkdXBsaWNhdGluZyBhIE1JQiBoYW5kbGVyIGFuZCB1bnJlZ2lzdGVyaW5nIG9uZSBvZgorCXRoZSB0d28gTUlCIGhhbmRsZXJzLCB0aGUgcHJpdmF0ZSBkYXRhIHBvaW50ZXIgKG15dm9pZCkgb2YgdGhlCisJb3RoZXIgYmVjYW1lIGEgZGFuZ2xpbmcgcG9pbnRlci4gTm90ZTogYWRkaXRpb24gb2YKKwluZXRzbm1wX21pYl9oYW5kbGVyLmRhdGFfY2xvbmUgaXMgYW4gQUJJIGNoYW5nZS4gYWRkZWQgbW9yZSB0ZXN0CisJY2FzZXMgdG8gdGhlIGhhbmRsZXIgcmVnaXN0cmF0aW9uIHRlc3QuCiAgICAgICAtIEdlbmVyYXRlIGEgbm9ybWFsICNsaW5lIGRpcmVjdGl2ZSBhcyBwZXIgQzk5IGluc3RlYWQgb2YgdGhlCiAJY29tcGlsZXItc3BlY2lmaWMgIzxuPi1kaXJlY3RpdmUuCiAgICAgICAtIEludHJvZHVjZWQgbmV3IHRlc3QgdHlwZSBuZXh0IHRvIGNhcHAgYW5kIGNsaWI6IGNhZ2VudGxpYi4KQEAgLTMwMywyMyArMTA4OSwzMiBAQAogCURZTkFNSUNfQU5BTFlaRVI9InZhbGdyaW5kIC0tdHJhY2UtY2hpbGRyZW49eWVzIC0tbGVhay1jaGVjaz1mdWxsIjsKIAljZCB0ZXN0aW5nICYmIC4vUlVORlVMTFRFU1RTIC1nIHVuaXQtdGVzdHMpCiAgICAgICAtIFRlc3QgNzEgKGNvbTJzZWM2X3NpbXBsZSkgZG9lcyBub3cgc3VjY2VlZCBldmVuIGlmIElQdjYgRE5TCi0JcmVzb2x1dGlvbiBpcyBub3QgYXZhaWxhYmxlLiAoQmFja3BvcnRlZCByMTk2NDguKQorCXJlc29sdXRpb24gaXMgbm90IGF2YWlsYWJsZS4KICAgICAgIC0gVGVzdCBUMDMwIGRvZXMgbm93IHBhc3Mgb24gTWluR1cuCi0gICAgICAtIFVuaXQgdGVzdHMgY2FuIG5vdyBpbnZva2UgZnVuY3Rpb25zIGZyb20gbGliYWdlbnQuCi0gICAgICAtIFVuaXQgdGVzdHMgY2FuIG5vdyBpbnZva2UgZnVuY3Rpb25zIGZyb20gbGliYWdlbnQuIEFkZGVkIHVuaXQgdGVzdAotCWZvciB0YWJsZV9kYXRhc2V0LiAoQmFja3BvcnRlZCBmcm9tIHIxOTQ1MCBmcm9tIHRoZSB0cnVuay4pCisgICAgICAtIGF1dG8tY3JlYXRlIHVzZXIgc3BlY2lmaWVkIFNOTVBfVE1QRElSIGFuZCBTTk1QX1RNUF9QRVJTSVNURU5URElSCisJdG9vOyBkZWZhdWx0IFNOTVBfVE1QX1BFUlNJU1RFTkRJUiBiYXNlZCBvbiBTTk1QX1RNUERJUiBmb3IgdXNlcgorCXNwZWNpZmllZCBTTk1QX1RNUERJUgogCi0gICAgdW5zcGVjaWZpZWQ6CisgICAgbWFuOgorICAgICAgLSBbQlVHIDMxOTA3MjVdOiBEb2N1bWVudCBzbm1weyxfc2Vzc31zeW5jaF9yZXNwb25zZSBhbmQKKwlzbm1wX2FzeW5jX3NlbmQKKworICAgIEdlbmVyaWM6CisgICAgICAtIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgc3RhdGljIGFwcGxpY2F0aW9ucyB1c2luZyBuZXQtc25tcC1jb25maWcKKwlhbmQgdGhlIC0qbGlicyBmbGFncyBvbmNlIG1vcmUuCiAgICAgICAtIFtCVUcgMzEwMjkwNF06IEFsbCBOZXQtU05NUCBDIHNvdXJjZSBmaWxlcyBhcmUgbm93IGNvbXBpbGVkIHdpdGgKIAktZm5vLXN0IHJpY3QtYWxpYXNpbmcsIGF0IGxlYXN0IGlmIHRoZSBjb25maWd1cmVkIGNvbXBpbGVyIHN1cHBvcnRzCiAJdGhpcyBmbGFnLgogICAgICAgLSBbUEFUQ0ggMzA3NDkxOF06IGZyb20gd2Vpemhlbmc6IGNoZWNrIGZvciBDT05UQUlORVJfSU5TRVJUIGZhaWx1cmVzCiAJYW5kIHJlYWN0IGFwcHJvcHJpYXRlbHkgdG8gYXZvaWQgbWVtb3J5IGxlYWtzCisgICAgICAtIFtQQVRDSCAzMTY3MzI1XTogZnJvbSBrcmlzenRvZm9ybzogVUNELVNOTVAvU3lzdGVtU3RhdHM6IGFkZAorCXZhcmlhYmxlcyB0byByZXBvcnQgY3B1c3RlYWwsIGNwdWd1ZXN0LCBjcHVndWVzdG5pY2UKIAogICAgIEN5Z3dpbjoKIAogICAgIExpbnV4OgogICAgICAgLSBbUEFUQ0ggMzA4MzAyN106IEZpeCBSUE0gc3BlYyBmaWxlIHRvIHN1cHBvcnQgQ2VudE9TCisgICAgICAtIFtQQVRDSCAzMjA1ODExXTogT3B0aW9uIHRvIHNraXAgZmQvbG9vcC9yYW0gZGV2aWNlcyBpbiBkaXNrSU9UYWJsZQogICAgICAgLSBhZ2VudDogaXBOZXRUb1BoeXNpY2FsVGFibGU6IERvIG5vdCBsb2cgYW4gZXJyb3IgbWVzc2FnZSBpZiBvbmUgb3IKIAltb3JlIGludGVyZmFjZXMgYXJlIHByZXNlbnQgdGhhdCBkbyBub3QgaGF2ZSBzdWNoIGluZm9ybWF0aW9uCiAJKE5VRF9OT0FSUCksIGUuZy4gdHVubmVscy4gUmVwb3J0ZWQgYnkgU3RlcGhlbiBIZW1taW5nZXIuIFNlZSBhbHNvCkBAIC0zMjcsMzAgKzExMjIsNTQgQEAKICAgICAgIC0gc25tcGQgaXMgYWdhaW4gc2luZ2xlLXRocmVhZGVkLgogCiAgICAgTWluR1c6CisgICAgICAtIE1hZGUgcmVncmVzc2lvbiB0ZXN0IG91dHB1dCBpbmRlcGVuZGVudCBvZiB0aGUgTmV0LVNOTVAgdmFyaWFibGVzCisJZGVmaW5lZCBpbiB0aGUgV2luZG93cyByZWdpc3RyeS4gU29tZSB0ZXN0cyB0aGF0IGZhaWxlZCBwcmV2aW91c2x5CisJYWZ0ZXIgdGhlIE5ldC1TTk1QIGJpbmFyaWVzIChNU1ZDIGJ1aWxkKSBoYWQgYmVlbiBpbnN0YWxsZWQgZG8gbm93CisJcGFzcy4KICAgICAgIC0gY29uZmlndXJlOiBEZXRlY3Rpb24gb2YgdGhlIGZ1bmN0aW9ucyBnYWlfc3RyZXJyb3IoKSwKLQlnZXRhZGRyaW5mbygpLCBnZXRob3N0bmFtZSgpIGFuZCBnZXRob3N0bmFtZSgpIGRvZXMgbm93IHN1Y2NlZWQuCi0JKEJhY2twb3J0ZWQgcjE5NjQ2IGZyb20gdGhlIHRydW5rLikKKwlnZXRhZGRyaW5mbygpLCBnZXRob3N0YnluYW1lKCkgYW5kIGdldGhvc3RuYW1lKCkgZG9lcyBub3cgc3VjY2VlZC4KICAgICAgIC0gdGVzdGluZzogSWYgdGhlIGFnZW50IGhhcyBiZWVuIGFza2VkIHRvIHN0b3AsIHdhaXQgdW50aWwgdGhlIHNubXBkCiAJcHJvY2VzcyBkaXNhcHBlYXJlZCBiZWZvcmUgcHJvY2VlZGluZy4KKyAgICAgIC0gVGVzdHMgMDI1IGFuZCAwMjYgcGFzcyBvbiBNaW5HVyBldmVuIGlmIHdpbkV4dERMTCBoYXMgYmVlbiBlbmFibGVkLgorCisgICAgTmV0QlNEOgorICAgICAgLSBEcmFnb25GbHkgc3VwcG9ydCBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KKworICAgIE9wZW5CU0Q6CisgICAgICAtIFVwZGF0ZSBTV1J1biBjb2RlIHRvIHVzZSBrdm1fZ2V0cHJvYzIgW0Zyb20gT3BlbkJTRCBwYXRjaCBhcmNoaXZlXQogCiAgICAgV2luMzI6CiAgICAgICAtIEF2b2lkIHRoYXQgTVNWQyByZXBvcnRzIGEgd2FybmluZyBtZXNzYWdlIGFib3V0IHJlZGVmaW5pdGlvbiBvZiB0aGUKIAltYWxsb2MoKSBtYWNybyBkdXJpbmcgYnVpbGRpbmcgdGhlIE5ldC1TTk1QIHNvdXJjZSBjb2RlLgorICAgICAgLSBEZXByZWNhdGVkIGxpYnNubXAuZGVmIC0gYWRkIE5FVFNOTVBfSU1QT1JUIHRvIGZ1bmN0aW9uCisJZGVjbGFyYXRpb25zIGluc3RlYWQgdG8gZXhwb3J0IGEgZnVuY3Rpb24gZnJvbSBuZXRzbm1wLmRsbC4KKyAgICAgIC0gR3VhcmQgbmV0c25tcF91ZHBfcmVjdmZyb20oKSBldGMuIGRlY2xhcmF0aW9ucyBjb25zaXN0ZW50bHkuIEJ1aWxkcworCXdpdGggVmlzdWFsIFN0dWRpbyAyMDEwLgorICAgICAgLSBJbnRyb2R1Y2VkIG5ldHNubXBfcGlkX3QuIEVsaW1pbmF0ZWQgY2FzdHMgYmV0d2VlbiBpbnQgYW5kIEhBTkRMRQorCWluIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYyBhbmQKKwlhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYy4KICAgICAgIC0gV2hlbiBzbm1wZC5leGUgaXMgc3RhcnRlZCBpbiBhIGNvbW1hbmQgcHJvbXB0IHdpbmRvdywgdGhlIHNubXBkCiAJcHJvY2VzcyBub3cgc3RvcHMgdXBvbiB0aGUgZmlyc3Qga2V5IHByZXNzLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0bwogCWRlYnVnIHNubXBkLmV4ZSBmb3IgbWVtb3J5IGxlYWtzLgogICAgICAgLSBbUEFUQ0ggMzA4NTE4N106IEJ1aWxkaW5nIHZpYSB0aGUgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gcHJvamVjdAogCWZpbGUgKC5kc3cvLmRzcCkgd29ya3MgYWdhaW4uCisgICAgICAtIFtQQVRDSCAzMjkzODQyXTogRWxpbWluYXRlIHJlZ2lzdHJ5IGFyZ3VtZW50IGxpbWl0IG9mIDEyNworCWNoYXJhY3RlcnMgKHRoaXMgbGltaXRhdGlvbiB3YXMgcmVwb3J0ZWQgYnkgU3lsdmFpbiBEZXJ5KS4KICAgICAgIC0gYnVpbGRpbmc6IEF2b2lkIHRoYXQgTVNWQyAyMDEwIHByaW50cyBhIHdhcm5pbmcgbWVzc2FnZSBhYm91dAogCXJlZGVmaW5pbmcgRUFERFJJTlVTRS4KICAgICAgIC0gYnVpbGRpbmc6IEJ1aWxkcyBub3cgY29ycmVjdGx5IHdpdGggYSA2NC1iaXQgY29tcGlsZXIuCiAgICAgICAtIGJ1aWxkaW5nOiBiYXRjaCBidWlsZCB3aXRoIE9wZW5TU0wgZW5hYmxlZCBhbmQgd2l0aCByZWNlbnQgT3BlblNTTAogCWRldmVsb3BtZW50IGZpbGVzIHdvcmtzIGFnYWluLgotICAgICAgLSBzaHV0ZG93bl9zbm1wTm90aWZ5RmlsdGVyVGFibGUoKSBhbmQgc2h1dGRvd25fd2luRXh0RExMKCkgYXJlIG5vdwotCWludm9rZWQgd2hlbiB0aGUgTmV0LVNOTVAgc2VydmljZSBpcyBzdG9wcGVkLiAoUGFydGlhbGx5IGJhY2twb3J0ZWQKLQlyMTk1MTUgZnJvbSB0aGUgdHJ1bmsuKQorICAgICAgLSBoZWFkZXIgZmlsZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNhbiBub3cgYmUgdXNlZCBpbiB0aGUKKwlNaW5HVyBlbnZpcm9ubWVudC4KICAgICAgIC0gdGVzdGluZzogQXZvaWQgdGhhdCBUMjAwIGZhaWxzIG9uIGtub3duIE1pY3Jvc29mdCBTTk1QIGV4dGVuc2lvbgogCURMTCBidWdzLgorICAgICAgLSBCdWlsZCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMgb25seSBpZgorCU5FVFNOTVBfRU5BQkxFX0lQVjYgaGFzIGJlZW4gZGVmaW5lZC4KKyAgICAgIC0gRml4ZWQgYSBtZW1vcnkgbGVhayBpbiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uCisJb2YgdGhlIE1JQi1JSSBpcE5ldFRvTWVkaWFUYWJsZS4KKyAgICAgIC0gTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW86IExpbmsgd2l0aCBnZGkzMi5saWIgaWYgT3BlblNTTCBoYXMgYmVlbgorCWVuYWJsZWQgYmVjYXVzZSBnZGkzMi5saWIgaXMgYSBkZXBlbmRlbmN5IG9mIE9wZW5TU0wuCiAKICo1LjYqCiAKQEAgLTE2MjMsNiArMjQ0Miw3IEBACiAgICAgICAtIFtQQVRDSCAxNjAwNDUzXTogT1MgWCBjb21waWxlLXRpbWUgZW5kaWFuIGRldGVybWluYXRpb24KICAgICAgIC0gW1BBVENIIDE2MDA1MjJdOiBDUFUgSEFMIGltcGxlbWVudGF0aW9uIGZvciBtYWNoL2RhcndpbgogICAgICAgLSBJbXByb3ZlIG1lbW9yeSByZXBvcnRpbmcgKHBhdGNoIGZyb20gQXBwbGUpCisgICAgICAtIFBhdGNoOiAzNTE0MDQ5IGZyb20gdHdvYml0cy1naXRodWI6IGZpeCBjb21waWxhdGlvbiBvbiBkYXJ3aW4xMQogCiAgICAgU29sYXJpczoKICAgICAgIC0gW0JVRyAxNjI2MTUzXTogTm8gaHJTV1J1biBpbmZvcm1hdGlvbnMgb24gU29sYXJpcyB6b25lcwpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDc5Zjk0OGIuLjQ2NTFjMTQgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsNiArMSwzODQzIEBACisjIC0qLSB0ZXh0IC0qLQorCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLUNoYW5nZXM6IFY1LjYuMSAtPiBWNS42LjIKK0NoYW5nZXM6IFY1LjcuMy5wcmU0IC0+IFY1LjcuMy5wcmU1CisKK2NvbW1pdCBmM2YzNzFiMjc2ZDI2NWI0NTVmYzQ5MGZjZTE5NDdkYWRmODllOWMyCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgQXVnIDggMTk6NDk6MDYgMjAxNCAtMDcwMAorCisgICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4zLnByZTUKKworY29tbWl0IDQxODEzMmY0M2NjNDMyMzE5NjZhOGI5NjcyYzYyNmY2MGI5OTEwMzkKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBBdWcgOCAxNDoyNDo1MiAyMDE0IC0wNzAwCisKKyAgICBmaXggdGhlIHJ1bi1hdXRvY29uZiBwcm9ncmFtCisKK2NvbW1pdCA3ZGI3OTU5NDkwNzVlZmI0ODkzNzNmNTFmNzA2NjM2ZmU1NGE5ODM1CitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgQXVnIDggMTQ6MjQ6NTIgMjAxNCAtMDcwMAorCisgICAgZml4IHRoZSBydW4tYXV0b2NvbmYgcHJvZ3JhbQorCitjb21taXQgNzhmMWVmODE2ZGRhZDA4ZTdkN2M5ZTFiMTFlNGI0YWIyNmY2ZTRiMAorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEF1ZyA4IDEzOjI4OjQ3IDIwMTQgLTA3MDAKKworICAgIHVzZWQgdGhlIHJpZ2h0IGF1dG9jb25mCisKK2NvbW1pdCAxZWFlYWM4MDFhMzYyNWI3MmIwOWM3ZGE1ODAzODQwOWNkOGRjNjgxCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgQXVnIDggMTM6MjY6MTEgMjAxNCAtMDcwMAorCisgICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMy5wcmU1CisKK2NvbW1pdCA3ZWNmZDNlZGUxOWU5YzIyMThjOWJmNTk1OWMwOTVjZTlmYTZjOGFiCitBdXRob3I6IEJyaWFuIFNpcG9zIDxic2lwb3Nya2ZAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgQXVnIDYgMTA6MzA6NTQgMjAxNCAtMDcwMAorCisgICAgRml4IGRldGVjdGlvbiBvZiBzaGEyMjQgYW5kIHNoYTM4NCwgcGF0Y2ggZnJvbSBCcmlhbiBTaXBvcworICAgIAorICAgIGh0dHBzOi8vc291cmNlZm9yZ2UubmV0L3AvbmV0LXNubXAvYnVncy8yNTY0LworICAgIAorICAgIEx1Y2tpbHkgbm9ib2R5J3MgbmVlZGVkIHRvIGJ1aWxkIHVzaW5nIGFuIE9wZW5TU0wgdmVyc2lvbgorICAgIHRoYXQgZG9lc24ndCBzdXBwb3J0IHNoYTIyNCBvciBzaGEzODQsIHNpbmNlIHRoZSBpbnZlcnNpb24KKyAgICBvZiB0aGUgdGVzdCBoZXJlIHdvdWxkIHRyeSB0byB1c2Ugc2hhMjI0L3NoYTM4NCBzdXBwb3J0IG9ubHkKKyAgICBvbiBPcGVuU1NMIHZlcnNpb25zIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGVtIQorCitjb21taXQgYTkzOTkxZWFmNTNiMTk5YjE5YzU4MmI2MzBkYTI1MTU4MzAwYTlkMQorQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUBsb2NhbGhvc3Q+CitEYXRlOiAgIEZyaSBBdWcgMSAxMDowNzo0NSAyMDE0IC0wNDAwCisKKyAgICBmaXggIzI0ODIgc25tcCByZXNwb25zZTogVG9vIGxvbmcKKworY29tbWl0IDlmNDFkMzBiMDllN2M4NWI4MjY4MTAzY2EzMjBhYzZjYzMyZDViMDQKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFNhdCBKdWwgMjYgMDg6Mjg6NDMgMjAxNCArMDIwMAorCisgICAgRml4IGJ1ZyAyNTQ2OiBuZXRzbm1wX3Rkb21haW5fdHJhbnNwb3J0X2Z1bGwgdXNlcyB3cm9uZyBwb3J0IGZvciBzbm1wdHJhcCArIHVkcDYKKworY29tbWl0IGRiMWYyMTc1NDFlMDBiNTM4MTNkOTRmNmJlZmI5YTQyZDQ4MzhlOTUKK0F1dGhvcjogSmVmZiBHZWhsYmFjaCA8amVmZmdAb3Blbm5tcy5vcmc+CitEYXRlOiAgIEZyaSBKdWwgMjUgMTY6MTE6MjMgMjAxNCAtMDQwMAorCisgICAgRml4IGJ1ZyAyNTYyOiBXaW5kb3dzIHg2NCBidWlsZCBicm9rZW4gb24gNS43LjMucHJlNAorCitjb21taXQgOTc0MWYwOGU3NWI0MTYyYmIzYzhiNDQ5Mjc5ZjE4MmQ5NDlkYTM3MworQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KK0RhdGU6ICAgVGh1IEp1bCAyNCAwODoxMDo0MCAyMDE0IC0wNDAwCisKKyAgICBVc2UgdGhlIHN0YW5kYXJkIGV4cHIgIjoiIHN5bnRheAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0NoYW5nZXM6IFY1LjcuMy5wcmUzIC0+IFY1LjcuMy5wcmU0CisKK2NvbW1pdCA4NjRhYmI1YmExZWIzMjRlNDIzMTU3ZGI1ZmIxNzIzZjg1NTk3M2IyCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSnVsIDIzIDE1OjA3OjQxIDIwMTQgLTA3MDAKKworICAgIG1ha2UgZGVwZW5kIGZvciA1LjcuMy5wcmU0CisKK2NvbW1pdCA1ZmM4Zjk5YzlmNzdkZGFkZWVhY2VkYWU3ZjA2ZmVhMTc2N2Q0YTlmCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSnVsIDIzIDE1OjAyOjE5IDIwMTQgLTA3MDAKKworICAgIGZpeCBDKysgc3R5bGUgY29tbWVudAorCitjb21taXQgNTRhNGE5MGE1NTI5ZWE1OGFkZDllNmFmNmE3ZThhZDA2NTQ0MDgyOAorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEp1bCAyMyAxNDo0OTo0MSAyMDE0IC0wNzAwCisKKyAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4zLnByZTQKKworY29tbWl0IGMwZDY2ODI2YjcxZjA1NDAzZjM2YzdmODIzNGZmOGY3ZWNiZDE1OTAKK0F1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CitEYXRlOiAgIFR1ZSBKdWwgMjIgMDY6NDk6MjggMjAxNCAtMDcwMAorCisgICAgV2hlbiBlbmxhcmdpbmcgYSBsYXJnZV9mZF9zZXQsIHVzZSBGRF9aRVJPIGlmIHBvc3NpYmxlCisgICAgCisgICAgVGhlIG1vc3QgY29tbW9uIGNhc2Ugb2YgY3JlYXRpbmcgYSBsYXJnZV9mZF9zZXQgb24gVU5JWAorICAgIGlzIHRvIGNyZWF0ZSBpdCB3aXRoIHNpemUgemVybywgYW5kIHRoZW4gaW1tZWRpYXRlbHkgZW5sYXJnZQorICAgIGl0IHRvIHNpemUgRkRfU0VUU0laRS4gIEluc3RlYWQgb2YgbG9vcGluZyBhbmQgY2FsbGluZworICAgIEZEX0NMUigpLCB3ZSBjYW4gb3B0aW1pemUgdGhpcyBjb21tb24gY2FzZSB3aXRoIHRoZSBPUydzCisgICAgRkRfWkVSTy4KKworY29tbWl0IGRjYWQzMWFlYjQ0MjM2OWE2ZmI1MmY0ZGM3ZDRmNzgxYmM1NjAwNmMKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKdWwgMTcgMjM6NDA6MTMgMjAxNCArMDIwMAorCisgICAgU29sYXJpcyBkb2VzIG5vdCBsaWtlICJncmVwIC1FIiBvciAiaWYgISIuCisgICAgUHJvcGFnYXRlIGNvbmZpZ3VyZXMgRUdSRVAgdG8gbWFuL01ha2VmaWxlLmluIGFuZCBhbHNvIHVzZWQgY29uZmlndXJlZCBTRUQuCisKK2NvbW1pdCBhNTFjYmVkZjdkMWQ0MjQzNDJhYjVjYTNhNGI2NzIxN2EzNjQ0MDlhCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSnVsIDE1IDIxOjQ1OjU0IDIwMTQgKzAyMDAKKworICAgIHNubXBuZXRzdGF0L2lmLmM6IHByb3Blcmx5IGRldGVjdCBzbm1wIGV4Y2VwdGlvbnMKKworY29tbWl0IGVlZTkyNTE5ZjM4ZTkzN2YyMjdiZWE3NzAxZGRiMTE1N2M4YmNjY2MKK0F1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CitEYXRlOiAgIFR1ZSBKdWwgMTUgMDc6Mjc6MTggMjAxNCAtMDcwMAorCisgICAgQ2xvc2UgcGlwZXMgd2hlbiBmcmVlaW5nIGNvbmZpZyBhbmQga2lsbCBjaGlsZCBwcm9jZXNzIG9uIGVycm9yCisgICAgCisgICAgV2hlbiBmcmVlaW5nIHRoZSBjb25maWcsIGNsb3NlIHRoZSBwaXBlcyBjb3JyZXNwb25kaW5nIHRvIHRoYXQKKyAgICBjb25maWcsIHNvIHRoZXkgZG9uJ3QgZ2V0IGxlYWtlZC4gIEFsc28sIGlmIHdlIGhhdmUgYW4gZXJyb3IsCisgICAgc2VuZCBhIFNJR0tJTEwgdG8gdGhlIGNoaWxkIHByb2Nlc3MgaW4gY2FzZSBpdCBpcyBibG9ja2VkIGFuZAorICAgIHdvbid0IGRpZSBqdXN0IGJlY2F1c2Ugd2UgY2xvc2VkIHRoZSBwaXBlcyB0byBpdC4KKworY29tbWl0IDg0MzFmOTEzNTU0ZTBjY2NjNDhiZWRjZTFmZDRhOGEyODhiNmMyN2QKK0F1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CitEYXRlOiAgIFR1ZSBKdWwgMTUgMDc6MTk6MzMgMjAxNCAtMDcwMAorCisgICAgSWYgdGhlIGFzcCBsb29rdXAgcmV0dXJucyBOVUxMLCBkb24ndCB0cnkgdG8gdXNlIGl0CisgICAgCisgICAgSWYgdGhlcmUgaXMgbm8gY29ycmVzcG9uZGluZyBhc3AsIHdlIHNldCB0aGUgcmVzdWx0IHByb3Blcmx5CisgICAgYnV0IHN0aWxsIGZhbGwgdGhyb3VnaCBhbmQgYXR0ZW1wdCB0byB1c2UgaXQuICBJbnN0ZWFkLCBqdXN0CisgICAgY29udGludWUuCisKK2NvbW1pdCAxNDZmYTM4NGQ4YjA1ZTFlNWEyYzY3Zjg4ZDBlY2EwYTMwNGZhMWYwCitBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgorRGF0ZTogICBNb24gSnVsIDE0IDE1OjI2OjE0IDIwMTQgLTA3MDAKKworICAgIEZpeCBkZXBlbmRlbmNpZXMgZm9yIGF1dG8tZ2VuZXJhdGVkIG1hbiBwYWdlcworICAgIAorICAgIEFsc28gbWFrZSBzdXJlIHRoYXQgdGhlIGF1dG8tZ2VuZXJhdGVkIC5zbyBmaWxlcyBhcmUgbGlzdGVkCisgICAgaW4gdGhlIHJpZ2h0IE1ha2VmaWxlIHZhcmlhYmxlcywgYW5kIHVwZGF0ZSB0aGUgdmFyaWFibGVzCisgICAgdG8gaW5jbHVkZSB0aGUgb25lcyB0aGF0IGhhZCBiZWVuIGxlZnQgb3V0IGFscmVhZHkuCisKK2NvbW1pdCA0NDMxNzI4Y2Y3YTA5NTBhZWQyOTNkNDhjMDJlNjkwMDBmNWI4M2U4CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTdW4gSnVsIDEzIDAzOjA3OjIxIDIwMTQgLTA3MDAKKworICAgIEFJWDogRml4IG1vcmUgY29tcGlsZXIgd2FybmluZ3MKKyAgICAKKyAgICBBdm9pZCB0aGF0IHRoZSBjb21waWxlciBjb21wbGFpbnMgYWJvdXQgY2FzdGluZyBhd2F5IGNvbnN0LCBhYm91dAorICAgIHVudXNlZCB2YXJpYWJsZXMgb3IgZnVuY3Rpb25zLCBhYm91dCBtaXNzaW5nIGZ1bmN0aW9uIHByb3RvdHlwZXMKKyAgICBhbmQgYWxzbyBhdm9pZCB0aGF0IHRoZSBjb21waWxlciBjb21wbGFpbnMgdGhhdCB0aGUgdHlwZSBvZiB0aGUKKyAgICB0aGlyZCBhcmd1bWVudCBvZiBtbnRjdGwoKSBpcyB3cm9uZy4KKworY29tbWl0IDQyYTY1ZjExZTNlZDU2OTYzZjc4YTVjMTU2MWVkZDY3NjU4Y2NkMDAKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFN1biBKdWwgMTMgMDk6NDc6MjYgMjAxNCArMDIwMAorCisgICAgUmVtb3ZlIEM5OSBsZW5ndGggc3BlY2lmaWVyICd6JyBhbmQgdXNlIGEgY2FzdCBpbnN0ZWFkCisgICAgCisgICAgU2VlIGFsc28gY29tbWl0IGI0ZWFiMTExMzllYjEyMmM5YWQzYzEzYWI4Yjk0NTNlMDRlNDY4NDIuCisKK2NvbW1pdCAzNWQwZjU5Y2RkODg5NGI4ZmJiYWQ2NTM3MGI1ZTMwMWUzNzdhMzdmCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgSnVsIDExIDIxOjI2OjMzIDIwMTQgKzAyMDAKKworICAgIFVwZGF0ZWQgRE9DUy1JRi1NSUIgcmVmZXJlbmNlCisKK2NvbW1pdCA3YTRkMmVhMmIzZTE2M2ZkZDk4ZjA2N2FlNDQwZmFhMzE1MmM4MGM2CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgSnVsIDExIDIxOjI1OjI3IDIwMTQgKzAyMDAKKworICAgIFVwZGF0ZWQgSUFOQSBtaWJzCisKK2NvbW1pdCAwMWIzYjY2NDY0MTNjMTRhMDUwNzQyNzI2Yjk3Y2YzMDhiOGZlMDliCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSnVsIDkgMjM6NTE6MjcgMjAxNCArMDIwMAorCisgICAgQWRkIFJGQyA3MjU3IHZwbHMgbWlicworCitjb21taXQgYjBiZTFkOGFkMmNjYmNhYTI5ZmZjN2NmODg0ZDAyNDM4YzRjMTY2NQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEp1bCA5IDIzOjUwOjIxIDIwMTQgKzAyMDAKKworICAgIGFkanVzdCBkZWJ1ZyB0b2tlbiBmb3IgbmV0c25tcF9zb2NrYWRkcl9pbjZfMgorCitjb21taXQgOTkyMGU5ZTc2N2IxMGYwMjlhYjRiMDIwZTgyNTk2NzZkMWEzMmIyZgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIEp1bCA4IDEwOjI1OjIyIDIwMTQgKzAyMDAKKworICAgIEFJWDogU3VwcHJlc3MgYSBjb25maWd1cmUgd2FybmluZworICAgIAorICAgIEF2b2lkIHRoYXQgdGhlICdzb3J0JyBjb21tYW5kIGNvbXBsYWlucyBkdXJpbmcgdGhlIGNvbmZpZ3VyZSBwcm9jZXNzCisgICAgdGhhdCBpdHMgaW5wdXQgaXMgbm90IHRlcm1pbmF0ZWQgYnkgYSBuZXdsaW5lLiBTZWUgYWxzbyBjb21taXQKKyAgICBhNjNlMzgxZDljMWM5Yzg3MjEwYmYyYjAyMmUzZDZhYzcxZDI3YTdlLgorCitjb21taXQgYjRlYWIxMTEzOWViMTIyYzlhZDNjMTNhYjhiOTQ1M2UwNGU0Njg0MgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIEp1bCA3IDE0OjA0OjQ1IDIwMTQgLTA3MDAKKworICAgIEFJWDogRml4IGEgZmV3IGNvbXBpbGVyIHdhcm5pbmdzCisgICAgCisgICAgQXZvaWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbXBpbGVyIHdhcm5pbmdzIGFyZSByZXBvcnRlZDoKKyAgICAtIEFzc2lnbm1lbnQgZGlzY2FyZHMgY29uc3QuCisgICAgLSBVbnVzZWQgbG9jYWwgdmFyaWFibGUuCisgICAgLSBNaXNtYXRjaCBiZXR3ZWVuIGZvcm1hdCBzdHJpbmcgYW5kIGFyZ3VtZW50IGxpc3QuCisgICAgCisgICAgQWxzbyBjb3JyZWN0IHRoZSBpbmRlbnRhdGlvbiBvZiB0d28gU29sYXJpcy1zcGVjaWZpYyBjb2RlIHN0YXRlbWVudHMuCisKK2NvbW1pdCAwZGQyNzgzYjc0N2ZiOTZkNzQ5NzhlMTFjODJhNTA0YzBkZjFkNTU1CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTdW4gSnVsIDYgMTE6MTI6MzAgMjAxNCArMDIwMAorCisgICAgSFAgVVgsIENQVSBzdGF0aXN0aWNzOiBGaXggYW4gaW52YWxpZCBwb2ludGVyIGRlcmVmZXJlbmNlCisgICAgCisgICAgU2VlIGFsc28gY29tbWl0IDAwMzQ1ODFkZWIzZTY3NmQzMjg4MjRjODc2MzdhYWNhMzE4NTBjNmEuCisKK2NvbW1pdCBkYmQ1OTMxMzJmNzE5Y2MzZDliYjUwMTdlYzhiYzVjOGNiYjA2M2I3CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSnVsIDMgMjM6MjM6MjkgMjAxNCArMDIwMAorCisgICAgVDA3MWNvbTJzZWM2X3NpbXBsZTogdXNlIHByaXZhdGUgaG9zdCB0byBjaGVjayBpcHY2IGFkZHJlc3MgcmVzb2x1dGlvbiB0byBtYWtlIHN1cmUgd2UgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQKKworY29tbWl0IDAwMzQ1ODFkZWIzZTY3NmQzMjg4MjRjODc2MzdhYWNhMzE4NTBjNmEKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBKdW4gMzAgMjI6MDg6MzQgMjAxNCArMDIwMAorCisgICAgQlVHICNhMjU1MTogZml4IG5vbi1zZXF1ZW50aWFsIGNwdSBudW1iZXJzIG9uIEhQLVVYLgorICAgIFRoYW5rcyB0byBEYXZlIE9sa2VyLgorCitjb21taXQgYjBmNDliYTIxZmI4MTBlZmNiMDk5MmYwMWM0ZmM1ZmQzMGNmNjlhZgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEp1biAyNiAyMTo0Mjo0OCAyMDE0ICswMjAwCisKKyAgICBjcHVfcHN0YXQuYzogZml4IG1pc3NpbmcgYnJlYWsocykgaW4gc3dpdGNoIHN0YXRlbWVudAorCitjb21taXQgYTYzZTM4MWQ5YzFjOWM4NzIxMGJmMmIwMjJlM2Q2YWM3MWQyN2E3ZQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEp1biAyMCAxMDo1NzozOSAyMDE0ICswMjAwCisKKyAgICBSZWNlbnQgcGF0Y2ggZnJvbSBCYXJ0IChEaXNwbGF5IG1vZHVsZSBuYW1lcyBzb3J0ZWQpIG1ha2UgY29uZmlndXJlIGxvc2UgYWxsIG1vZHVsZSBuYW1lcyBvbiBTb2xhcmlzIDggYW5kIDEwLgorICAgIFRoaXMgY2hhbmdlcyB0aGUgd2F5IHRoZSBzb3J0aW5nIGlzIGRvbmUuCisKK2NvbW1pdCA2MGNmNmEwNmZmNzNhZTdkNGYyNDU0ZjJlZjQwYzU2ZmNkMzk0YmZhCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSnVuIDE4IDIyOjE5OjMyIDIwMTQgKzAyMDAKKworICAgIG1ha2UgdGVzdDogYmFpbCBvdXQgaWYgbmV0c3RhdCBub3QgZm91bmQuCisKK2NvbW1pdCBjMTBmMmFjYmZjYzM4MzRjZDkzODY0MWRjMWEyYzcyYWNhN2Y3ODQ1CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSnVuIDEwIDE2OjA2OjU5IDIwMTQgKzAyMDAKKworICAgIEZpeCBzdHVwaWQgYnVnIGluIHBrZy1uZyBwYXRjaAorCitjb21taXQgZTJkYTU0ODljM2JiODI5NzYyNjA0YzlkNDFmMDhjYjNhZWRmZDhhNgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEp1biAyIDE1OjQxOjU2IDIwMTQgKzAyMDAKKworICAgIFBBVENIICNhMTI4MzogUmVjb2duaXplIE9yYWNsZSBBQ0ZTIGZpbGUgc3lzdGVtIChUaGFua3MgSm9obiBIYXhieSkKKworY29tbWl0IDU0YzJjYzI2NTVjMWI2YzU0ODVkOTk0NDFhZWQyYWMxNjllZWU1ZjkKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBKdW4gMiAxNToyNjowMCAyMDE0ICswMjAwCisKKyAgICBJbnN0YWxsIFNOTVAtVFNNLU1JQiBhbmQgU05NUC1UTFMtVE0tTUlCCisKK2NvbW1pdCBjZTMwOTFjYmM0OGJjNDA1YzZlYjFhZjdkZGFlYjM3MGVkNzg2NDcxCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gSnVuIDIgMTU6MjM6MjQgMjAxNCArMDIwMAorCisgICAgQlVHICNhMjUzNzogU3VwcG9ydCAqQlNEIHBrZy1uZworCitjb21taXQgNDllNGU0OWIxMmFhZTBkOGY3NTcyODM5MzY1ZDQ2Y2Y5MzJiZmVjOQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEp1biAyIDE1OjE4OjQ2IDIwMTQgKzAyMDAKKworICAgIEZpeCBGcmVlQlNEIHN5c3RlbSBkZWZpbmUgY2hhaW4KKworY29tbWl0IDNjNWU3MTI0YjM1ZmQ2YWNhNDI4NGVhYzM2NWQ3NGI2OTgxMDc4NWEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFN1biBKdW4gMSAxMToyNzoyNSAyMDE0ICswMjAwCisKKyAgICBDSEFOR0VTOiBCVUc6IDEyNjcgc25tcGxpYjogcmVnaXN0ZXJfbWliX2NvbnRleHQoKSBmaXggZm9yIHJlYWQtb25seSB2YXJpYWJsZXMKKyAgICAKKyAgICBUaGlzIGlzIGEgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZiBhIHBhdGNoIGZyb20gSGFyc2hhIFNoaXZhbm5hLgorCitjb21taXQgNTZlY2M0MzNiMDllOTg1ZjFmZGQ3ODZhYWU2MGIwNjFmZmFjMDM4MgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU3VuIEp1biAxIDExOjEyOjQ3IDIwMTQgKzAyMDAKKworICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5jOiBGaXggY29tcGlsZXIgd2FybmluZ3MKKworY29tbWl0IGM5Y2Y4ZmQ4NjlmMzc5MWE1OGE3MWI4YTYzZjVkNjFkNjcyOTFmYWUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFN1biBKdW4gMSAxMDowOToyOCAyMDE0ICswMjAwCisKKyAgICBjb25maWd1cmU6IERpc3BsYXkgbW9kdWxlcyBuYW1lcyBzb3J0ZWQKKworY29tbWl0IDI3YTE2MDU0ZDY1NmViMTBhYmQwMzJkYmFjNjhlYmJjMjZjNzYwMDcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFN1biBKdW4gMSAwOToyMjo1MiAyMDE0ICswMjAwCisKKyAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9saW51eDogUmV3b3JrIG5ldGxpbmsgYnVmZmVyIGFsaWdubWVudAorICAgIAorICAgIEJhc2VkIG9uIGEgcGF0Y2ggZnJvbSBKb3NodWEgSG9rZS4gU2VlIGFsc28KKyAgICBodHRwczovL3NvdXJjZWZvcmdlLm5ldC9wL25ldC1zbm1wL2J1Z3MvMjU0Ny8uCisKK2NvbW1pdCBiZDEzZjAwNGY2ZGMxNmRiZTU2ZWE1MzgxNjYyNDk1NzQ1ZDkzN2UxCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTYXQgTWF5IDMxIDIwOjE2OjIwIDIwMTQgKzAyMDAKKworICAgIFdpbmRvd3M6IDY0LWJpdCBmaXggZm9yIGJ1aWxkLWJpbmFyeS5wbAorCitjb21taXQgMWZhNGRhMWM2Y2Y5Njc2MDYzMzNmN2U3N2U0MDhiN2Y1MWVmNjI1NgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIE1heSAzMCAxNzo0MjowNyAyMDE0ICswMjAwCisKKyAgICBXaW5kb3dzOiBTdXBwcmVzcyBWaXN1YWwgU3R1ZGlvIDIwMTMgd2FybmluZ3MgYWJvdXQgc3RydG91bGwoKQorCitjb21taXQgYjMxYWVkZTljOGI2MzQ2MWI1MDkyZTE2ZDYyNmE2NzZiMTcyZjhhYQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IE1heSAyMiAyMzowNToxOSAyMDE0ICswMjAwCisKKyAgICBQQVRDSCAjMTI3NzogRml4IGlmc3BlZWQgZm9yIFNvbGFyaXMgem9uZXMuIFRoYW5rcyB0byBsaWpvCisKK2NvbW1pdCA4NjlmNzg1NTQxYTFlYTNiNDI3ODE0NTg2N2IxNTJiZWM1MGQzZWIwCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgQXByIDMwIDE0OjUyOjMxIDIwMTQgKzAyMDAKKworICAgIHdpbkV4dERMTDogVHJhbnNsYXRlIFNubXBFeHRlbnNpb25RdWVyeSgpIFBEVSB0eXBlIGNvcnJlY3RseQorCitjb21taXQgZTAxMDdjMjZiM2EwZTMwYWU4MzIzNWJiMjI1ZmViNzhhMWExNTYzOAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEFwciAzMCAxNTozODo1NSAyMDE0ICswMjAwCisKKyAgICBXaW5kb3dzOiBTaWxlbmNlIGEgY29tcGlsZXIgd2FybmluZworCitjb21taXQgM2E5Zjg3NTQyM2NjYWE4YmFlZTdlMTY0YmI4YTc1ZGQ4ZTBiNzM0MworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIE1heSA2IDA2OjI3OjEwIDIwMTQgKzAyMDAKKworICAgIFBBVENIICMxMjc5OiBNb2RpZmllZCBwYXRjaCBmcm9tIE1vaGFuIGZvciBjb3JlZHVtcCBhZnRlciBjYWxsaW5nCisgICAgZnJlZSB3aXRoIGEgYmFkIHJlZ2V4LgorCitjb21taXQgNTEzMDJiYTU3Mjg1ZDRkNDc5OTJlZDE1YTQ2MDU4MDExMmEzZTkyNAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIE1heSA2IDA2OjIxOjI0IDIwMTQgKzAyMDAKKworICAgIEJVRyAjMjUyMTogQUlYOiBkb250IGRpZSB3aGVuIENQVSBpcyBkeW5hbWljYWxseSBhZGRlZCB0byBzeXN0ZW0uCisKK2NvbW1pdCAxMzFjOTNiYTkyZTQ2ZGRkZWM0ZWIzYTgyMDhhYjVhM2MxMDI2NTA4CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgTWF5IDYgMDY6MjA6MjggMjAxNCArMDIwMAorCisgICAgQ29tcGxhaW4gYWJvdXQgLUQgb3B0aW9uIGlmIGRlYnVnZ2luZyBpcyBkaXNhYmxlZC4KKworY29tbWl0IDk2YTdhNmE4Njg5NWZkYmY4OTE3OTllMzc2OWIyN2E3ZTU0YWYwODQKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBNYXkgNiAwNjoxOTo0MiAyMDE0ICswMjAwCisKKyAgICBzbm1wdHJhcGQuODogYWRkIHNvbWUgbWlzc2luZyBmb3JtYXQgdG9rZW5zIHRvIG1hbiBwYWdlLgorCitjb21taXQgODBiZTkwN2JlOWY0ZjFkZjZhMTQ3MGZlYWZhYTkxNmI5YzljNDk5MQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU3VuIEFwciAyNyAxNToyNTozMCAyMDE0ICswMjAwCisKKyAgICBGaXggYnVnIDIzMTMgZm9yIGNyb3NzIGNvbXBpbGF0aW9uLgorCitjb21taXQgOWFlNTk4MTUzMGZkMmJkZDlmMmE1Yzg2YjdkNjk5NGI4NzMwMzNkNworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU2F0IEFwciAyNiAyMjozNjoyNiAyMDE0ICswMjAwCisKKyAgICBQcmVwYXJlIGZvciBGcmVlQlNEIDExIGFuZCAxMgorCitjb21taXQgZTMyZjcwYjEyZjU3ZDI2ZDY5ZDQ5MWYxYzc0MmIwMTMyYWNhNzY2MAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU2F0IEFwciAyNiAyMTo0MjoyMSAyMDE0ICswMjAwCisKKyAgICBGaXggYSBjb3VwbGUgb2Ygc3RydWN0IHNpemVzIHRvIGJldHRlciBtYXRjaCBkZWNsYXJhdGlvbi4KKworY29tbWl0IDdjYzJkZWI1ZDkxNWQyNTcyMzI4MzE3ZDM3MDFkMzVkODYxZDNkOTIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFNhdCBBcHIgMjYgMjE6MzQ6MjYgMjAxNCArMDIwMAorCisgICAgVXNlIGluZXRfcHRvbiBvbnBsYWNlIG9mIGluZXRfYXRvbiB0byBoZWxwIHBvcnRhYmlsaXR5LgorCitjb21taXQgYTA4N2ZjOWYxNjQwMjNkZTQxNGIwOWJmZDM3NDdjNzJmMWJjYTA3ZgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU2F0IEFwciAyNiAyMTozMDo1NCAyMDE0ICswMjAwCisKKyAgICBVcGRhdGUgdG8gY3VycmVudCBJQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCIGFuZCBjdXJyZW50IFJGQ3MuCisKK2NvbW1pdCA4NTcwMzdhOGQyNDU3YWM5YWEyYTUyNTEwOTU3NjQ3OTcxYTQ2NjM0CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTYXQgQXByIDI2IDIxOjI4OjAwIDIwMTQgKzAyMDAKKworICAgIFByZXBhcmUgZm9yIEZyZWVCU0QgMTEgYW5kIDEyLgorCitjb21taXQgYjk5MzA4NDE3ZDRiZTdlMTM5ZjYxMDNkNDRmMTFiNTU0MzNhNmJmMQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU3VuIE1hciAxNiAwODowNDoxNSAyMDE0ICswMTAwCisKKyAgICBCZXR0ZXIgZG9jdW1lbnRhdGlvbiBmb3IgdHJhcCBsb2dnaW5nIGZvcm1hdHMuCisKK2NvbW1pdCBhNmU0ZWIyNmY1YzA0ZDE1NzYxY2VhZjkyNDU4MGUwYzQwZjcyZGZlCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTdW4gTWFyIDkgMDg6NDY6NTcgMjAxNCArMDEwMAorCisgICAgc3dydW5fKjogU2ltcGxpZnkgY29tbWl0IGRhMDBiYTEKKworY29tbWl0IDM3YWY3OTIzYjgzMmYyZWM4MDgzN2ZhMjhlZGNhYzhlYjBjN2U4ZWEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFN1biBNYXIgOSAwODozNDoxMiAyMDE0ICswMTAwCisKKyAgICBzd3J1bl8qOiBSZXN0b3JlIGJ1ZmZlciBvdmVyZmxvdyBwcmV2ZW50aW9uIGNvZGUgdGhhdCB3YXMgcmVtb3ZlZCBpbiBkYTAwYmExCisKK2NvbW1pdCBmNDM2Y2UyOGZkYTNlZGM3MDEwY2Q4NmVjZjNjMzg2YzVhZjUyMTk2CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTYXQgTWFyIDggMTQ6MDc6NTcgMjAxNCArMDEwMAorCisgICAgdXRpbF9mdW5jOiBmaXggc2tpcHBpbmcgb2YgZGlnaXRzIHdoaWNoIHdvdWxkIHJ1biBvbmUgdG9vIGZhcgorCitjb21taXQgZGEwMGJhMTQyZDZiNTA0MjU1ODg5ZjA5ZWI5ZjdkMjIyZWY0MGFkYQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU2F0IE1hciA4IDE0OjA0OjE5IDIwMTQgKzAxMDAKKworICAgIHN3cnVuXyo6IHNucHJpbnQgbWF5IGhhdmUgc2V0IGEgdG9vIGxvbmcgc3RyaW5nIGxlbmd0aC4gRml4IGl0IGlmIG5lZWRlZC4KKworY29tbWl0IDNiMjAyZWIwNWVjNGU1ZjZmOGY1NGJjOGFjYjQzNzM3M2U2YjVkMDMKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFNhdCBNYXIgOCAxNDowMjoxOCAyMDE0ICswMTAwCisKKyAgICBzd2luc3RfYXB0OiBlbnN1cmUgcm9vbSBmb3Igc3RyaW5nIHRlcm1pbmF0b3IKKworY29tbWl0IDhhNjY4MTRlZGFkNWEyOGZkYmM4NjQ1ZmIwZTE0NDU5YmY5MTVkYTAKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFNhdCBNYXIgOCAxNDowMDoyOCAyMDE0ICswMTAwCisKKyAgICBtdGFfc2VuZG1haWw6IGlzc3BhY2UgY2Fubm90IHRha2UgYSBjaGFyIGFyZ3VtZW50CisKK2NvbW1pdCAzZTczNGZiM2JkZGYxMWI5OWI2YmE3ZGRjYjMwYWU5MzJkOGJhM2IxCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTYXQgTWFyIDggMTM6NTg6MDcgMjAxNCArMDEwMAorCisgICAgZXhwRXhwcmVzc2lvbkNvbmYsIGV4cFZhbHVlOiBpc3NwYWNlIGNhbm5vdCB0YWtlIGEgY2hhciBhcmd1bWVudC4KKworY29tbWl0IDc2ZThkNmQxMDAzMjA2MjlkOGEyM2JlNGIwMTI4NjE5NjAwYzkxOWQKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgTWFyIDYgMDk6MjE6NTEgMjAxNCArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxMjc1OiBmcm9tIFZpbGlhbSBQw7rEjWlrOiBmaXhlZCBQZXJsIHRyYXAgaGFuZGxlciB3aGVuIHByb2Nlc3NpbmcgdHJhcCB3aXRoIGVtcHR5IGNvbW11bml0eSBzdHJpbmcuCisKK2NvbW1pdCA1ZDA2YTVmYmI1ZWQzY2EyYjU4MjBlOGVmMmQ1YjViODhiOWQ3ZGY4CitBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgorRGF0ZTogICBNb24gRmViIDMgMTE6NTg6MDMgMjAxNCAtMDgwMAorCisgICAgQWxsb3cgdGhlIG5vZGVtYXAgdG8gY29udGFpbiBtdWx0aXBsZSBub2RlcyBmb3IgbWlicyBsaWtlIElGLU1JQgorICAgIAorICAgIEluIHRoZSBJRi1NSUIsICJpbnRlcmZhY2VzIiBhbmQgImlmTUlCT2JqZWN0cyIgYm90aCBjb250YWluCisgICAgc2lnbmlmaWNhbnQgc3VidHJlZXMuICBBbGxvdyBub2RlbWFwIHRvIGNvbnRhaW4gYSBjb21tYS1zZXBhcmF0ZWQKKyAgICBsaXN0IG9mIG5vZGVzLCB0byBoYW5kbGUgTUlCcyBsaWtlIHRoaXMuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQ2hhbmdlczogVjUuNy4zLnByZTIgLT4gVjUuNy4zLnByZTMKKworY29tbWl0IDU0MTY2Y2Y2YzdhOThiZjhlNWQwZGJhYmY5YjVlNWEyNTVjNGM0MjEKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBGZWIgMjUgMTI6NDU6MTQgMjAxNCAtMDgwMAorCisgICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4zLnByZTMKKworY29tbWl0IDNkNGUzYTY2YmQwOTdlMzcyMGZlNWRlMmYyZTA1NzQxYjMzMDYzMDUKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBGZWIgMjUgMTE6NDI6MTUgMjAxNCAtMDgwMAorCisgICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMy5wcmUzCisKK2NvbW1pdCBhMWZkNjQ3MTZmNjc5NGM1NWMzNGQ3N2U2MTgyMTAyMzhhNzNiZmExCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgRmViIDE5IDE1OjIxOjU3IDIwMTQgLTA4MDAKKworICAgIGJ1ZyBmaXggZnJvbSBmZW5uZXI6IGZpeCBJQ01QIG1pYiB0YWJsZSBoYW5kbGluZyBvbiBsaW51eAorCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQ2hhbmdlczogVjUuNy4zLnByZTEgLT4gVjUuNy4zLnByZTIKKworY29tbWl0IGJmMGExYzM3ZDhiOGM2NDRlODM3MDQxZDA5MGFhYmU4ZmQ4MTMxZTgKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBGZWIgMjUgMDc6NDk6MDQgMjAxNCAtMDgwMAorCisgICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4zLnByZTIKKworY29tbWl0IGRlY2ZkOGQ3OWI1NGQyOThkZWQ5NzQzOWVmYjcxMGU4ZjZiYTUyNGMKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBGZWIgMjUgMDc6MzM6NTIgMjAxNCAtMDgwMAorCisgICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMy5wcmUyCisKK2NvbW1pdCA4YWVjY2VmMzliYmFlYjhiODAyNWE2OGVjNDc2MWJjODJlYzlhZWFhCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgRmViIDI1IDA3OjI3OjQ3IDIwMTQgLTA4MDAKKworICAgIE5FV1M6IHNubXBkOiBwYXRjaCAyNTI1OiBmcm9tIFJ5YW4gU3RlaW5tZXR6OiBGaXggYXJndW1lbnQgbGVuZ3RoIHBhcnNpbmcgb2YgdGhlIGhvc3QgcmVzb3VyY2VzIG1pYgorCitjb21taXQgYjIyMmU3YTNlZWY1OWNiYjY4YTQ1MzQ3NmNiMzY0MzQyYzc0ZTY0MAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEZlYiAxOSAyMjoyNjowOCAyMDE0ICswMTAwCisKKyAgICBGaXggc3BlbGluZyBlcnJvcgorCitjb21taXQgZjhmY2IzYmMzODE4OGNjYmU5YmFjZWU1OGQ2ZmQyYjk4M2QwOTkyNworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEZlYiAxOSAyMjoyNDoyNiAyMDE0ICswMTAwCisKKyAgICBGaXggc3BlbGluZyBlcnJvcgorCitjb21taXQgZDIxNGQ3MGM0NTI0ZTYyZmNjYWYxMDgzYWJjNWJhMWE0MzlhNDYzZQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEZlYiAxOSAyMjoyMTo1NSAyMDE0ICswMTAwCisKKyAgICBzbm1wc3RhdHVzOiBkZXRlY3QgU05NUCBleGNlcHRpb24gcmVzcG9uc2VzLgorCitjb21taXQgYmY3NWVjNjY5NjVkMTU3Y2IwNDQyZjdkZmY1NjU2Zjk5Y2Q3MDYzNQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEZlYiAxOSAyMjoyMDowNSAyMDE0ICswMTAwCisKKyAgICBGaXggdGVzdCBmb3IgY29tMnNlYzYgYWNjZXNzLgorCitjb21taXQgNjU2N2EzN2ZhMzAxYjhmYTFiNjgwMDlkNWEwYjNhM2NiZmI5ZThmMQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEZlYiAxNyAyMTo0OToxMyAyMDE0ICswMTAwCisKKyAgICB0ZXN0aW5nL01ha2VmaWxlLmluOiBtYWtlIHN1cmUgJyQnIHN1cnZpdmVzIGZvciBwZXJsIHRlc3QuCisKK2NvbW1pdCAwNWI1NTFiYzMzMTE4NWVkYTFjMDgxZDMxMzhkMGFjNjI1YjA3ZDZhCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gRmViIDE3IDIxOjM2OjQ4IDIwMTQgKzAxMDAKKworICAgIEZpeCBzb21lIG1hbiBwYWdlIHNwZWxsaW5ncy4KKworY29tbWl0IDhiMDU1NWQ5NWNiYzIzOGNiZTk4MzY0MzliODgwNzBjODBhOWNhNWUKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBGZWIgMTcgMjE6MzU6MjggMjAxNCArMDEwMAorCisgICAgc25tcG5ldHN0YXQ6IGZpeCBjYWxsIG9mIG1lbWNweSB3aXRoIG92ZXJsYXBwaW5nIGFyZWFzLgorCitjb21taXQgM2M2YTdhNmM5NDc0MjQ4MjRlNzI0ZTI5NDQ4M2E3ZWNkNzBkOWQ0MQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEZlYiAxNyAyMTozMzo0NyAyMDE0ICswMTAwCisKKyAgICByb3V0ZV9pb2N0bC5jOiBzZXQgcHJvcGVyIG1hc2sgYmVmb3JlIFNJT0NERUxSVC4KKworY29tbWl0IGY5OWVmNWNlZjIwM2VhMzc4NTUzYTJhYjQ5MjVmY2Q4NjllN2Y1YTMKK0F1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CitEYXRlOiAgIFR1ZSBGZWIgMTEgMDg6NDc6NTEgMjAxNCAtMDgwMAorCisgICAgRGF2aWQgSmFydmllJ3MgcGF0Y2ggZm9yIGJ1ZyAyNTA3CisKK2NvbW1pdCBkNzBmMmU5MWUyYzcyNThlNzY4ZTMyYjY4M2Q4MTRhOTQxNTY0YWMxCitBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgorRGF0ZTogICBNb24gRmViIDMgMTE6NTg6MDMgMjAxNCAtMDgwMAorCisgICAgQWxsb3cgdGhlIG5vZGVtYXAgdG8gY29udGFpbiBtdWx0aXBsZSBub2RlcyBmb3IgbWlicyBsaWtlIElGLU1JQgorICAgIAorICAgIEluIHRoZSBJRi1NSUIsICJpbnRlcmZhY2VzIiBhbmQgImlmTUlCT2JqZWN0cyIgYm90aCBjb250YWluCisgICAgc2lnbmlmaWNhbnQgc3VidHJlZXMuICBBbGxvdyBub2RlbWFwIHRvIGNvbnRhaW4gYSBjb21tYS1zZXBhcmF0ZWQKKyAgICBsaXN0IG9mIG5vZGVzLCB0byBoYW5kbGUgTUlCcyBsaWtlIHRoaXMuCisKK2NvbW1pdCA5ODc4MWFlM2RhNDNiN2IxNTgzZWNkZTNlMjFiYjY1MjVhMmMwYjgwCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gSmFuIDI3IDIyOjI0OjE4IDIwMTQgKzAxMDAKKworICAgIHJvdXRlX2lvY3RsLmM6IEZpeCBzZXR0aW5nIHRoZSBuZXRtYXNrIHdoZW4gY3JlYXRpbmcgcm91dGUgdGhyb3VnaAorICAgIGluZXRDaWRyUm91dGVUYWJsZSBhbmQgaXBDaWRyUm91dGVUYWJsZS4KKworY29tbWl0IDJlOTQ3Nzc2OTNmMTg1MzQ3OWRlZDY3MGJlMzA3ZWNlNzEzOGZlYjUKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBKYW4gMjcgMjI6MTM6MDUgMjAxNCArMDEwMAorCisgICAgRml4IGNvbXBpbGUgZm9yIFNvbGFyaXMgd2l0aG91dCBJUHY2LgorCitjb21taXQgOGY2OTkxYTIxMTRmZDIxYmE1NTE5ZWU5NTc2YmViMDgyZjYwM2RlYworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEphbiAyMyAxNjozMDo0NiAyMDE0ICswMTAwCisKKyAgICBzbm1wbmV0c3RhdDogc2VhcmNoIGlmTmFtZSBhbmQgaWZBbGlhcyB3aGVuIGxvb2tpbmcgZm9yIGludGVyZmFjZQorICAgIG5hbWUgZnJvbSAtQ0kgb3B0aW9uLgorCitjb21taXQgNGEzNjAxMDQ2NTljMTY5Y2UyMzIyNTZlMTM4ZDkzOGQ5NGU0MzVmOQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEphbiAyMyAxNjoyODozMiAyMDE0ICswMTAwCisKKyAgICBsb2dtYXRjaDogZml4IG91dC1vZi1ib3VuZHMgYWNjZXNzLiBUaGFua3MgdG8gZ2NjIG9yIGNsYW5nCisgICAgd2l0aCAtZnNhbml0aXplPWFkZHJlc3MgKHJlY29tbWVuZGVkISkKKworY29tbWl0IGVlZjJmNjRiNDYzNTdiMzUzYzc5NTA0YmM1OTM1MzVlYmU3NDIxZTcKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMjMgMTY6Mjc6MDcgMjAxNCArMDEwMAorCisgICAgY3B1X2xpbnV4OiBzdXBwb3J0IHN5c3RlbXMgd2l0aCBtb3JlIHRoYW4gMTAwIGNwdXMuCisKK2NvbW1pdCAzYmQ2ODNjOTZkNmE4ODY0ZmJkODA3ODU3NGFlZThjZDQzMWNlMzAyCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDE1IDE4OjM2OjAxIDIwMTQgKzAxMDAKKworICAgIFVwZGF0ZSBvcHRpb25zIGxpc3RzIGluIG1hbnVhbCBwYWdlcyBhbmQgY29tbWFuZHMgaGVscC4KKworY29tbWl0IGE1ZWZlOGRmMTdkZGM0ZjY2OTNjN2RhOWE1MmM0MDFmNGRiMmJlNjMKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBKYW4gMTUgMTg6Mjg6MjQgMjAxNCArMDEwMAorCisgICAgdGVzdCBUMDI3OiBtYWtlIHN1cmUgaXQgd29ya3MgYWxzbyB3aGVuIGNvbmZpZ3VyZWQgd2l0aCAtLXdpdGgtZGVmYXVsdC1zbm1wLXZlcnNpb24gIT0gMy4KKworY29tbWl0IDU3ZDEwODI5MDBmOWFjOTMxNDQ0MzE2YTZmOTVmMTllZGEwNjkwNzQKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBKYW4gMTUgMTg6MjY6MjQgMjAxNCArMDEwMAorCisgICAgY3B1X2xpbnV4OiByZW1vdmUgcmVkdW5kYW50IGNhc3RzLgorCitjb21taXQgOWY0YzU3MjYxNDA5MTQwNGRlY2JhMGQ0ZWYxYTRjYmFmOWZjNWJkMgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gOSAxMzozNToyNyAyMDE0ICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgbW9uaXRvcmluZyBiYXNlZCBvbiBub24tZGVsdGEgdHJpZ2dlci4KKyAgICAKKyAgICBzbm1wZCBjcmFzaGVkIHdpdCBmb2xsb3dpbmcgc25tcGQuY29uZjoKKyAgICAgICAgbW9uaXRvciAtcyAtRCAtciAxMCAtZSBMT0dNQVRDSCAtbyBsb2dNYXRjaEN1cnJlbnRDb3VudCAiTG9nIE1hdGNoIiAhPSBsb2dNYXRjaEN1cnJlbnRDb3VudAorICAgICAgICBsb2dtYXRjaCBMb2dpbkZhaWx1cmUxIC92YXIvbG9nL3NlY3VyZSAxMCBzdTogLipmYWlsLioKKyAgICAKKyAgICBUaGUgcmVhc29uIHdhcyB1bml0aWFsaXplZCB2YXJpYWJsZSBzeXNVVF92YXIgaW4gbXRlVHJpZ2dlcl9ydW4oKSwgaXQgd2FzCisgICAgZmlsbGVkIG9ubHkgaWYgdGhlIHRyaWdnZXIgd2FzIGRlbHRhLXZhbHVlZCwgd2hpbGUgaXRzIHZhbHVlIHdhcyB1c2VkIGZvciBhbGwKKyAgICB0cmlnZ2Vycy4KKyAgICAKKyAgICBXaXRoIHRoaXMgcGF0Y2gsIHN5c1VUX3ZhciBpcyBmaWxsZWQgZm9yIGFsbCBjb2RlIGJyYW5jaGVzIHdoZXJlIGl0IGlzIG5lZWRlZC4KKworY29tbWl0IGM3NTEyYWZlNTY0M2VjYWFlOTc0NWFjMTk5YjgzOWMzYWFkODQ1N2IKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBEZWMgMjkgMTc6MzQ6NTEgMjAxMyArMDEwMAorCisgICAgUmVnZW5lcmF0ZSBkZXBlbmRlbmNpZXMKKworY29tbWl0IGM5MWY4NDBkODM5ODFmNjYwYjc1Mjc0ZGJjYzM4N2NiNWM1Zjk5YWYKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBEZWMgMjkgMTc6Mjk6MjYgMjAxMyArMDEwMAorCisgICAgUmVnZW5lcmF0ZSBkZXBlbmRlbmNpZXMKKworY29tbWl0IDJkZDdkYmE3NmQxZDBiNGY4NjY4MzRlMGZkNjAxNDhjMjgxYTE1M2MKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBEZWMgMjkgMTc6MjU6MDUgMjAxMyArMDEwMAorCisgICAgUmVnZW5lcmF0ZSBkZXBlbmRlbmNpZXMKKworY29tbWl0IDU5MTQzMWY3OTkxZjgzZDIzODVhZGJjNWEyMmM0YTg5NTc2YmMzMTMKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBEZWMgMjkgMTc6MjE6NTYgMjAxMyArMDEwMAorCisgICAgUmVnZW5lcmF0ZSBjb25maWd1cmUgdXNpbmcgdGhlIHJpZ2h0IGF1dG9jb25mIHZlcnNpb24KKworY29tbWl0IDg1YmI0YjVjOWY0ODk2ODc2NzE1Y2IxZjE0ZjRmMWI1ODJkMjIzYmQKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBEZWMgMjkgMTc6MTI6MDMgMjAxMyArMDEwMAorCisgICAgUmVnZW5lcmF0ZSBkZXBlbmRlbmNpZXMKKworY29tbWl0IGQyNTVjYTQyNmQxZTNkNGJjNDhiOGYzZGI5Mzc0MzU3ODg5MzRjNDIKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBEZWMgMjkgMTI6MzU6MzAgMjAxMyArMDEwMAorCisgICAgQ0hBTkdFUzogYnVpbGRpbmc6IEF2b2lkIGR1cGxpY2F0ZSBhbmQgdHJhaWxpbmcgc3BhY2VzIGluIHRoZSBkZXBlbmRlbmN5IGZpbGVzLgorCitjb21taXQgZDE1Y2QyYjk3NDNjY2NiNTAyZGVhZmQxNDNhZGUwYWE5MGNmMzFlNAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU2F0IFNlcCAyMSAwOTowNToxMyAyMDEzICswMjAwCisKKyAgICBNaW5HVzogQnVpbGQgZml4CisgICAgCisgICAgQXBwYXJlbnRseSB3aXRoIHJlY2VudCBNaW5HVyBoZWFkZXIgZmlsZXMgPHdpbnNvY2syLmg+IHNob3VsZCBiZQorICAgIGluY2x1ZGVkIGluc3RlYWQgb2YgPHdpbnNvY2suaD4uIE1vZGlmeSA8bmV0LXNubXAvdHlwZXMuaD4gYWNjb3JkaW5nbHkuCisKK2NvbW1pdCA3YmEyM2U1NzA3NjQ5OWVmOGVlYjIzODg1MzgzNDczY2NmNDQ3MzY1CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTdW4gRGVjIDE1IDEwOjU4OjI1IDIwMTMgKzAxMDAKKworICAgIFdpbjMyOiBiYXRjaCBidWlsZDogQ2hlY2sgd2hldGhlciBQZXJsIGFyY2hpdGVjdHVyZSBtYXRjaGVzIHRhcmdldCBhcmNoaXRlY3R1cmUKKyAgICAKKyAgICBCdWlsZGluZyB0aGUgUGVybCBtb2R1bGVzIGZhaWxzIGluIGEgc3VidGxlIHdheSBpZiBlLmcuIGEgMzItYml0IFBlcmwKKyAgICBpbnRlcnByZXRlciBpcyBwcmVzZW50IGluICVQQVRIJSBhbmQgYSA2NC1iaXQgQyBjb21waWxlciBvciB2aWNlIHZlcnNhLgorICAgIEhlbmNlIGNoZWNrIHdoZXRoZXIgUGVybCBpbnRlcnByZXRlciBhbmQgQyBjb21waWxlciB0YXJnZXQgYXJjaGl0ZWN0dXJlCisgICAgbWF0Y2ggYmVmb3JlIHN0YXJ0aW5nIGEgYnVpbGQuCisKK2NvbW1pdCA2YjcwNmM1M2Q0Y2Y3NTFlNDk1YWFiNjZmZTM5ZmQ1MWMzMmNlOTMwCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTdW4gRGVjIDE1IDEwOjA2OjIxIDIwMTMgKzAxMDAKKworICAgIFdpbjMyOiBWaXN1YWwgU3R1ZGlvIDIwMTMgYnVpbGQgZml4CisgICAgCisgICAgQXBwYXJlbnRseSBWaXN1YWwgU3R1ZGlvIDIwMTMgZG9lcyBub3Qgc3VwcG9ydCBnb3RvIDx0eXBlZGVmIG5hbWU+LgorICAgIEhlbmNlIHJlbmFtZSB0aGUgVUlOVCBsYWJlbC4gRm9yIGNvbnNpc3RlbmN5IHJlYXNvbnMsIGFsc28gcmVuYW1lCisgICAgdGhlIE9DVCBsYWJlbC4KKworY29tbWl0IDEzYzg1OTBlMzgyNjlhOTI2NWVhZDVjODVmMDVjODg5NGU4NmQ4NGMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFN1biBEZWMgMTUgMDk6MzE6NDQgMjAxMyArMDEwMAorCisgICAgUmVtb3ZlIHRoZSBORVRTTk1QX0RPTlRXQUlUIC8gTkVUU05NUF9OT1NJR05BTCBhbGlhc2VzIGZvciBzZW5kdG8vc2VuZG1zZyBmbGFncworICAgIAorICAgIE5vdGU6IHRoaXMgcGF0Y2ggaXMgYSBtb3JlIGVsYWJvcmF0ZSB2ZXJzaW9uIG9mIHRoZSBWNS03LXBhdGNoZXMgY29tbWl0CisgICAgODlhNTA0ZmUzMzFlMDlhNTRmNmIwMWMyODc3Y2YwMjI5MDA3MDVhOCAoMjAxMS0xMi0xOSkuCisKK2NvbW1pdCBlMGVhZDJkNTRlYmY0MzUzM2U1NjJjMzQwMmUxMjE4OGNmZGMwNzllCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTYXQgRGVjIDE0IDE4OjU0OjAxIDIwMTMgKzAxMDAKKworICAgIHdpbjMyL2J1aWxkLnBsOiBBZGQgc3VwcG9ydCBmb3IgdGhlIFZpc3VhbCBTdHVkaW8gMjAxMyBjb21tYW5kLWxpbmUgZW52aXJvbm1lbnQKKworY29tbWl0IDg4ODYwOTVhOTkwOTAyOTNiMDZhMDcxOWU3Yjg2OGYxZWRjMTQ5MzMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFNhdCBEZWMgMTQgMTg6Mjk6MDEgMjAxMyArMDEwMAorCisgICAgbGliYWdlbnQ6IFdpbjMyIGJ1aWxkIGZpeCAoc2VlIGFsc28gY29tbWl0IDAxNzIzYzYpCisKK2NvbW1pdCA1ZjMyYjRhYWE4YmNkMjJlYmE5YzY0OTIyM2ZlMDgwZDU0NzliYzhlCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTYXQgRGVjIDE0IDE3OjE3OjMwIDIwMTMgKzAxMDAKKworICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oOiBBZGQgYSBtaXNzaW5nIGRlY2xhcmF0aW9uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQ2hhbmdlczogVjUuNy4yIC0+IFY1LjcuMy5wcmUxCisKK2NvbW1pdCBkMDExN2FkZWU4NGVmY2I1OGE1ZTQxODNmN2Q3Y2M2ZTcwMGYwMjY0CitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgRGVjIDUgMjM6MzM6NTEgMjAxMyAtMDgwMAorCisgICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4zLnByZTEKKworY29tbWl0IGIxZGJkYThiYmNjYTgyMzc3NjY0ZGNhOWNiNmJiMDZmOWNlNjM3YTIKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBEZWMgNSAyMzozMzozNyAyMDEzIC0wODAwCisKKyAgICBSZXBsYWNlIC8vIGNvbW1lbnRzIHdpdGggLyogY29tbWVudHMKKworY29tbWl0IDllZTM5NmNlYzE4MTE1MTJmYmNiMjQ0OTBiM2JlMGI5NzBmNjlmZmIKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBEZWMgNSAyMzowNjoxMyAyMDEzIC0wODAwCisKKyAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4zLnByZTEKKworY29tbWl0IDZjMzkyZmVkNmNkNWQ3YTMyZWQxMGM4MTcwYWVkODUxY2VlNzc5ODUKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBEZWMgNSAyMzowNDoyNSAyMDEzIC0wODAwCisKKyAgICBpbmNyZW1lbnQgdGhlIHJldmlzaW9uCisKK2NvbW1pdCBmNTQwM2U3NTY3ZWIwNzFiZWQ4ZGFkYmEzOGEyY2RhNjAzMzJiOGZjCitBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgorRGF0ZTogICBTdW4gRGVjIDEgMTg6MjQ6MTIgMjAxMyAtMDgwMAorCisgICAgRG9uJ3Qgc2V0IHRoZSBpZmluZGV4IHdoZW4gc2VuZGluZyBhIG5vcm1hbCByZXBseS4KKyAgICAKKyAgICBTZXR0aW5nIHRoZSBpZmluZGV4IGluIHRoZSBJUF9QS1RJTkZPIHJlc3VsdHMgaW4gc2V0dGluZworICAgIHRoZSBzb3VyY2UgYWRkcmVzcyB0b28gKGlnbm9yaW5nIHRoZSBzb3VyY2UgYWRkcmVzcyB0aGF0CisgICAgd2UgYWxzbyBzdXBwbHkpLiAgVGhlIHNlcXVlbmNlIGhlcmUgaXMgdGhhdCB3ZSBzZW5kIHdpdGgKKyAgICBubyBpbnRlcmZhY2Ugc3BlY2lmaWVkIGJ1dCB0aGUgcmVxdWVzdCdzIGRlc3RpbmF0aW9uCisgICAgc3BlY2lmaWVkIGFzIG91ciBzb3VyY2UuICBJZiB3ZSBnZXQgRUlOVkFMLCBpdCdzIGJlY2F1c2UKKyAgICB0aGUgcmVxdWVzdCdzIGRlc3RpbmF0aW9uIHdhcyBhIGJyb2FkY2FzdCBhZGRyZXNzIHdoaWNoCisgICAgaXMgYW4gaW52YWxpZCBzb3VyY2UgYWRkcmVzcywgc28gd2UgdHJ5IGFnYWluIHdpdGggdGhlCisgICAgaW5jb21pbmcgaW50ZXJmYWNlJ3MgaWZfaW5kZXggYW5kIHNwZWNpZnkgdGhlIHNvdXJjZQorICAgIGFzIElOQUREUl9BTlkuCisgICAgCisgICAgSWYgd2Ugc3VwcGx5IHRoZSBpZmluZGV4IGluIHRoZSBmaXJzdCBjYWxsLCBhIHJlcGx5IGZyb20KKyAgICBhIG11bHRpLWhvbWVkIGFnZW50IG1heSBjb21lIGZyb20gYSBkaWZmZXJlbnQgc291cmNlIGFkZHJlc3MKKyAgICB0aGFuIHRoZSByZXF1ZXN0IHdhcyBzZW50IHRvLCBwb3RlbnRpYWxseSBjb25mdXNpbmcgYSBtYW5hZ2VyLgorICAgIFRoaXMgYnVnIHdhcyBmaXJzdCBpbnRyb2R1Y2VkIGluIFNWTiByMTc4NTUgYW5kIHdhcyBmaXhlZAorICAgIGluIFNWTiByMTk3Njc7IGFsc28gc2VlIHRoZSBtYWlsaW5nIGxpc3QgdGhyZWFkCisgICAgaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9tYWlsYXJjaGl2ZS9mb3J1bS5waHA/dGhyZWFkX25hbWU9QUFOTGtUaW0zN0g3TTdCYTAxMExtZGsxWUdZS3dQVGtEeVJLb0RyNzZ1cURUJTQwbWFpbC5nbWFpbC5jb20mZm9ydW1fbmFtZT1uZXQtc25tcC1jb2RlcnMKKworY29tbWl0IDE0NGExMzIwOGI0ZmE2ZjBhMWNkOTcxZjQxYTcyNzk3MTZiMjdlZWUKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBOb3YgMjkgMDg6MDc6MjggMjAxMyArMDEwMAorCisgICAgc25tcG5ldHN0YXQ6IGZpeGluZyB0aGUgc3RhdHMgb3V0cHV0IGJyb2tlIHRoZSBjb25uIG91dHB1dCA6LSguIEZpeGVkLgorCitjb21taXQgZjRlNWVlNmYzOTYzMGI3M2Y4YWQ5OTQ2Yzk5MGU5NjkwNTgwZDdjZgorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgV2VkIE5vdiAyNyAwMToxMjowMCAyMDEzICswMTAwCisKKyAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgdGVzdHMgZm9yIGFzbl9yZWFsbG9jX3JidWlsZF8qaW50KiBhbmQgdGVzdHMgZm9yIG9wYXF1ZSB1bnNpZ25lZCA2NC1iaXQgdHlwZXMuCisKK2NvbW1pdCAyMGU0YjM3OTMyYTllOWNjNTZiMzYwYTIzNmU5ZDgxODA3OTNhMjk3CitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBXZWQgTm92IDI3IDAwOjU0OjU4IDIwMTMgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBsaWI6IENvcnJlY3QgdGhlIHR5cGUgY2hlY2sgZm9yIG9wYXF1ZSB2YXJpYWJsZXMgd2hlbiBkZWNvZGluZyBjb3VudGVyNjQgdmFsdWVzLgorICAgIAorICAgIFRoYW5rcyB0byBya2pAc29mdGhvbWUubmV0IGZvciByZXBvcnRpbmcgdGhpcyBpc3N1ZS4KKworY29tbWl0IDZlNzZjYmJiMmEwNzgzZjIyZjU4ZmI3ZDMyM2U5ZjcyMTdjYzYwNGEKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFdlZCBOb3YgMjcgMDE6MDE6MDQgMjAxMyArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogQXZvaWQgZmFpbHVyZSB0byB0cmlnZ2VyIHNpZ24gZXh0ZW5zaW9uIGR1ZSB0byBvdmVybG9uZyB0eXBlcworICAgIAorICAgIEluIGFzbl9yZWFsbG9jX3JidWlsZF9zaWduZWRfaW50NjQgdGhlIGFsZ29yaXRobSBhc3N1bWVzIHRoYXQgc2hpZnRpbmcKKyAgICB2YWx1ZXMgZ3JlYXRlciB0aGFuIDB4N2ZmZmZmZmYgcmlnaHQgaXMgYW4gYXJpdGhtZXRpYyBzaGlmdCB0aGF0IHdpbGwKKyAgICBzaGlmdCBpbiAxJ3MuIE9uIGhvc3RzIHdoZXJlIGxvbmcgaXMgbW9yZSB0aGFuIDMyIGJpdHMgdGhlIHVzZSBvZiBsb25nCisgICAgZm9yICdsb3cnIGFuZCAnaGlnaCcgbWFrZXMgdGhpcyBhc3N1bXB0aW9uIGZhbHNlLgorICAgIAorICAgIFRoYW5rcyB0byBya2pAc29mdGhvbWUubmV0IGZvciByZXBvcnRpbmcgdGhpcyBpc3N1ZS4KKworY29tbWl0IDRhNGI3OGU2M2RkNjg4ODkyYjczOTliNTg0ZTI2ZTA0N2QzNjc1MDEKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBOb3YgMjcgMjI6MTY6NDQgMjAxMyArMDEwMAorCisgICAgQWRkaXRpb25hbCBmaXggZm9yIGRhcndpbjEzCisKK2NvbW1pdCA5MWJkNWQ0YzVmNDFiNTRjNDYyNDI4ODNkYjkyYWE0ZTQ5NDU1Mjk0CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTm92IDI3IDIyOjEzOjAzIDIwMTMgKzAxMDAKKworICAgIHNubXBuZXRzdGF0OiBmaXggdHJ1bmNhdGVkIHN0YXRpc3RpY3Mgd2hlbiB1c2luZyAtdjEKKworY29tbWl0IDBjYjE0ZDRlNWMzOWEwN2M3ODQ3NDg4MWU2YzczZmE2MTc1MDdiZGIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBOb3YgMjcgMjI6MDY6NTggMjAxMyArMDEwMAorCisgICAgc25tcG5ldHN0YXQ6IGZpeCBzdGF0aXN0aWNzIGZvciBpcHY2CisKK2NvbW1pdCAyZDRkZWZlNzdiZGViYmJjMWE3NzNlYjhkNDg0OThiNmYyNTU4ZjIzCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBUdWUgTm92IDUgMDY6NDk6MzUgMjAxMyArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IFVzZSAwIGZvciB0aGUgaWdub3JlZCBudW12YXJzIGFyZ3VtZW50IHRvIG5ldHNubXBfcmVnaXN0ZXJfbWliCisgICAgCisgICAgVGhlIG51bXZhcnMgYXJndW1lbnQgb2YgbmV0c25tcF9yZWdpc3Rlcl9taWIgaXMgaWdub3JlZCBpZiB0aGUgdmFyCisgICAgYXJndW1lbnQgaXMgTlVMTC4gSW4gb3JkZXIgdG8gdW5pZnkgdGhpcyB1c2Ugb2YgaXQgd2l0aCBhbGwgb3RoZXIgb25lcywKKyAgICBjaGFuZ2UgaXQgZnJvbSAxIHRvIDAKKworY29tbWl0IGI5OTMzZTYxODNiMTcxNWM5MGQ3Y2Y2ZGZhYzE4OTEwMDA3OTZiY2UKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIEZyaSBOb3YgMjIgMjM6MDQ6MDggMjAxMyArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IFJlbW92ZSBzb21lIHVudXNlZCBpbmNsdWRlcworCitjb21taXQgYTc4MzA3MDM4YmYwYjQ4NTllMTFiZDg2Y2EzMDQ5YzMzOWFiZTEyNgorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IE5vdiAyMyAwOTo0OTowMSAyMDEzICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogQWRkIGEgbWlzc2luZyBmdW5jdGlvbiBkZWNsYXJhdGlvbgorCitjb21taXQgZDhkNjA3OGIzZTY1YjViYTEzMWRmODQyZDkyYzc3NDM3MzdmZjk1NQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgVHVlIE5vdiAxOSAwODowNjozNCAyMDEzICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBNYXJrIHJlZ2lzdGVyX3NpZ25hbCBhbmQgdW5yZWdpc3Rlcl9zaWduYWwgYXMgdW51c2VkLgorCitjb21taXQgYmYwODNmNWI2OWNjYjk1ZmY3MGUyYTI4YTdjNjRmZWM3ZDdlNDIyZQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE5vdiAxOCAyMjo0MToyOCAyMDEzICswMTAwCisKKyAgICBQYXRjaCBhMTI3MDogbWFuIHBhZ2UgZml4dXBzICh0aG5rcyBBbGVrc2FuZHJzIFNhdmVsamV2cykKKworY29tbWl0IDYyYTYzNGNlNjcxYzM4YWRlOTc5MTcwNzcwMzllMzRhZTNkOTI3MzQKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFN1biBOb3YgMyAxNjowMjozOSAyMDEzIC0wODAwCisKKyAgICBXaW4zMjogVW5icmVhayB0aGUgYnVpbGQgKHNlZSBhbHNvIGNvbW1pdCAyNTNmOTA3NDMpCisKK2NvbW1pdCBhODEzYjUxMTEyNTVmNzVmZWY2OTQ0Y2VkZDY0OGRiZjhjMzRhOWFkCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gTm92IDExIDE3OjU0OjQ0IDIwMTMgKzAxMDAKKworICAgIFdpbjMyOiBwZXJsOiBBdm9pZCB0cmFuc3BvcnQgaW5pdGlhbGl6YXRpb24gZmFpbHVyZSBpbiBQZXJsIFNOTVAgYWdlbnRzCisgICAgCisgICAgQXZvaWQgdGhhdCB0aGUgZm9sbG93aW5nbiBtZXNzYWdlIGlzIHByaW50ZWQgZHVyaW5nIHN0YXJ0dXAgb2YgYSBQZXJsIFNOTVAKKyAgICBhZ2VudDoKKyAgICAKKyAgICBuZXRzbm1wX2Fzc2VydCBzICE9ICgtMSkgZmFpbGVkIC4uXC4uXHNubXBsaWJcdHJhbnNwb3J0c1xzbm1wVURQQmFzZURvbWFpbi5jOjQ4NAorICAgIAorICAgIFNlZSBhbHNvIGNvbW1pdCAzNmE3ZGU3MjMwZmJiYmI1MmNjMzdjYmJlZDI4MWViNTU5NDA0YmU5LgorCitjb21taXQgYTJhM2ExYWE2N2ZmMzhkYWE4ZjEzOTUxOGFiYjM1NDg0NzVlZDU5MQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIE5vdiA4IDIyOjMyOjI5IDIwMTMgKzAxMDAKKworICAgIHNubXBuZXRzdGF0OiBmaXggdXNhZ2UgbWVzc2FnZSB0byBiZSBjbG9zZXIgdG8gcmVhbGl0eS4gRml4IGhhbmRsaW5nIG9mIC1DcCBhbmQgLUNmIG9wdGlvbnMgd2l0aCBuZXcgdGFibGVzLgorCitjb21taXQgNzI3NzQwMDEwMmRmY2E5MjFlYWMwYmQ5Y2VmODZiMzJmNTk4MDAzZAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIE5vdiA4IDIyOjMwOjE0IDIwMTMgKzAxMDAKKworICAgIENsZWFuIHVwIHNubXBuZXRzdGF0IG1hbiBwYWdlLCByZW1vdmluZyBzb21lIGxlZnQgb3ZlciBjcnVmdCBtYW4KKyAgICBvcmlnaW5hbCBic2QgbmV0c3RhdCBwYWdlLgorCitjb21taXQgZWIwMzc5ZGIzODUzZmFkMTM4ZjkyZjQ3OTJhODAzNDE3N2Q5NjI5YQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE5vdiA0IDIyOjA5OjU1IDIwMTMgKzAxMDAKKworICAgIEZpeCBsZW5ndGggb2YgZGVmYXVsdCByb3V0ZXIgYWRkZHJlc3MgdXNpbmcgc3lzY3RsLgorCitjb21taXQgOGZhNDZmMjk2MTNjMTc5MmM0YTE0NDMyOTQ0MjczYjZkNzRlM2YzYworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE5vdiA0IDIyOjA3OjU2IDIwMTMgKzAxMDAKKworICAgIEZpeCBoYW5kbGluZyBvZiBjb21tYW5kIG5hbWVzIHdpdGggYmxhbmtzIG9uIExpbnV4LgorCitjb21taXQgNmZjYjM4MWRjZDQ2MGI3OTU1NjMzOWViMzZmYmU1NzliZjQ5ZGMwMworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE5vdiA0IDIyOjA1OjU2IDIwMTMgKzAxMDAKKworICAgIEFkZCBMSVNQLU1JQiB0byByZmNsaXN0LgorCitjb21taXQgMWM1MTA0NzQxMDcwMjE5ZjEzODAwZDc2YWZkNTdhMGQ2MzZjMjQzYgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE5vdiA0IDIxOjU0OjM2IDIwMTMgKzAxMDAKKworICAgIEZpeCBwYWdpbmcgc3RhdGlzdGljcyBmb3IgT3BlbkJTRCA1LjQKKworY29tbWl0IDJmNTdiODA0ZTgzYjhmODliODk2OTYzN2Y4M2Q4ODg2MDEwODM4ZmYKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBPY3QgMzAgMjE6MzU6MzMgMjAxMyArMDEwMAorCisgICAgQWRkIGRhcndpbjEzIHN1cHBvcnQgZmlsZQorCitjb21taXQgODIzZDUxZjc5Yjg0ZTEzNTkzZTViMWFjOWI0MDc2MzRjNTQzNDZmNAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE9jdCAyMSAyMDo0OTo1MyAyMDEzICswMjAwCisKKyAgICBGaXggbWFrZSBpbnN0YWxsIGluIG1hbiBkaXJlY3RvcnkgZm9yIFNvbGFyaXMgY2F1c2VkIGJ5IFZQQVRIIG9kZGl0eS4KKworY29tbWl0IGM1NzUyMDRhMDIwNTkxOTk0MjhjZTEzNWJjMTJlY2IzODVlMzY3NjMKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBPY3QgMjEgMjA6NDc6MzEgMjAxMyArMDIwMAorCisgICAgQ2hhbmdlIGFuIG9jY3VycmVuY2VvZiBzcHJpbnRmIHRvIHNucHJpbnRmLgorCitjb21taXQgYTJiZGE5OTQwMTkyODAyNzhiZWRlZDc5MTdjODc3ZmNiNDQ4ODczZAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE9jdCAyMSAyMDo0NjozMCAyMDEzICswMjAwCisKKyAgICBCZXR0ZXIgd29yZGluZyBmb3Igc3RhdGlzdGljIGVudHJ5LgorCitjb21taXQgNjY0NGIwNWQzY2YzNDEyM2NlZGE3NGI3Yjg0ZjE2OTQ0MzU5ZTdjYQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE9jdCAyMSAyMDo0NToxNSAyMDEzICswMjAwCisKKyAgICBGaXggd2FybmluZ3MgZm9yIGxpYm5sMS4KKworY29tbWl0IDk0MDgxNmUwMTkxNzFhMDQxNGVlMDBhNDZjZGE0Y2U2MGJjMDFmNzEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFNhdCBPY3QgNSAxMTowNToxMiAyMDEzICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTI2NTogRml4IGEgYnVmZmVyIG92ZXJmbG93IGluIGR1bXBfcmVhbGxvY19vaWRfdG9faW5ldGFkZHJlc3MoKQorCitjb21taXQgMDk5MmVjZjhmYzVkODc4MzcwMDZkNGJjM2E4NjgxZTU3MzZlMzU3MworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IE9jdCAxNyAwNzoxNjoyMyAyMDEzICswMjAwCisKKyAgICBwYXNzX3BlcnNpc3Q6IHphcCBwb3NzaWJsZSBDUiBhdCBlbmQgb2YgbGluZS4KKworY29tbWl0IGViODhlMDI0YjRjMjY3OTk0ZGU0MDQwMWU4YjdkNzdlMzJkZWM2Y2YKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBPY3QgMTUgMjE6MzM6NTYgMjAxMyArMDIwMAorCisgICAgTWFpbnRhaW4gYnl0ZSBvcmRlciBmb3IgSVB2NiBwb3J0IG51bWJlcnMgaW4gdHJhbnNwb3J0IGRhdGEgKHByb2JsZW0gc3VyZmFjZWQgaW4gc25tcFRhcmdldEFkZHJFbnRyeSkKKworY29tbWl0IGYyZTU3YjhlNjM4YTFmY2RjODVmZDBmZDJmNjU1MmEzM2ZjYWIzZjgKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBPY3QgMTUgMjE6MTc6MjEgMjAxMyArMDIwMAorCisgICAgc25tcG5ldHN0YXQ6IGJldHRlciBoYW5kbGluZyBvZiBzbm1wIGV4Y2VwdGlvbnMuCisKK2NvbW1pdCBlMDI4MDI5NGU3ZTZiZWJkNjJmYmFiOTkyOGIxYjVmMDFiNzM1ZTcyCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgT2N0IDE1IDIxOjE1OjM5IDIwMTMgKzAyMDAKKworICAgIEZpeCBESVNQTEFZLUhJTlQgZm9yIG5lZ2F0aXZlIHZhbHVlcyBhbmQgaGludCAiZC1uIi4KKworY29tbWl0IDFhYmI1YTA5NGQyNzUxNGI4MTQ3YjExMjhkYjJjZGRjYjE3MDNiYjgKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIEZyaSBOb3YgMiAxNDo0NTo0MiAyMDEyICswMTAwCisKKyAgICBVc2UgTkVUU05NUF9QUkl6IHRvIHByaW50IHNpemVfdCB2YWx1ZXMgaW4gX3Nlc3NfcmVhZAorCitjb21taXQgYWNiNzI1ODlhY2IzMDE4ZTQ0M2Y1ZTNmNjU0ZGQwM2Y3YzI2MzE2YQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIE9jdCAxIDE4OjQxOjUxIDIwMTMgKzAyMDAKKworICAgIEFkZCBmb3Jnb3R0ZW4gaWNtcE91dEVjaG9zIHRvIGljbXBNc2dUYWJsZS4KKworY29tbWl0IDI1M2Y5MDc0MzkxNTEwMjNhOTJhM2FjNDNhOWYzMTdlM2E0ZTE3ZmEKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBTZXAgMzAgMjI6MTM6NDMgMjAxMyArMDIwMAorCisgICAgU29sYXJpczogc3VwcG9ydCBpY21wTXNnU3RhdHNUYWJsZQorCitjb21taXQgNmVlOTFmMDZiNWJkMGUwY2JkMmI2OWYzZGFlMGJmNjE0MWNjOTU1NgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIFNlcCAzMCAwNjo1OToxMCAyMDEzICswMjAwCisKKyAgICBTb2xhcmlzIHN1cHBvcnQgZm9yIElQLUZPUldBUkQtTUlCCisKK2NvbW1pdCA0ZWJkZjNmYjA0NDVmOTA2N2VjYjM4Mzk0YzJkZjJiZDNiNzM4MTgyCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gU2VwIDMwIDA2OjU0OjI4IDIwMTMgKzAyMDAKKworICAgIFByb3Blcmx5IGhhbmRsZSB0aGUgJ2InIGRpc3BsYXkgaGludC4KKworY29tbWl0IDdmMmVkYmY2ODM0OGNhYmVhZjk5NWFhYmExYjJhNzg5M2QxOGM1ZTcKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIEZyaSBBdWcgMzAgMDg6NTA6MDkgMjAxMyArMDIwMAorCisgICAgUmVtb3ZlIHNvbWUgY29tbWVudGVkIG91dCBkZWZpbmVzCisKK2NvbW1pdCA0MzVlZTFmNDAyM2NiMDAyMjQ1YzNhNTZkYmVhYmEzN2EzZDNlZGJlCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTYXQgU2VwIDI4IDE0OjI2OjEwIDIwMTMgKzAyMDAKKworICAgIFBhdGNoIGExMjU5IChidWcgYTI0NTYpOiBwcm9ibGVtcyB3aXRoIGlwQ2lkclJvdXRlVGFibGUgb24gNjQtYml0IGJpZ2VuZGlhbiBtYWNoaW5lcy4gVGhhbmtzIHRvIENocmlzdG9waGVyIFd1LgorCitjb21taXQgOWE2ZjU2NjM5MmEzY2YxMmRhYjQ4OGE3NmQ2OWZjODczZGJlYzJhYworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU3VuIEF1ZyAyNSAxMDoxODo1MyAyMDEzICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBSZW5hbWUgbWVtZHVwKCkgaW50byBuZXRzbm1wX21lbWR1cCgpCisgICAgCisgICAgUmVuYW1lIHRoZSBmdW5jdGlvbiBtZW1kdXAoKSBkZWZpbmVkIGluIGxpYm5ldHNubXAuc28gaW50bworICAgIG5ldHNubXBfbWVtZHVwKCkuIFRoaXMgYXZvaWRzIGNvbmZsaWN0cyB3aXRoIG1lbWR1cCgpIGZ1bmN0aW9ucworICAgIGRlZmluZWQgaW4gb3RoZXIgbGlicmFyaWVzIHRoYXQgZGVmaW5lIGEgZnVuY3Rpb24gd2l0aCB0aGUgc2FtZQorICAgIG5hbWUuIEFzIGFuIGV4YW1wbGUsIGlmIFdJTlMgbmFtZSByZXNvbHV0aW9uIGhhcyBiZWVuIGVuYWJsZWQgdmlhCisgICAgL2V0Yy9uc3N3aXRjaC5jb25mIHRoZW4gcGVyZm9ybWluZyBhIGhvc3QgbmFtZSBsb29rdXAgY2FuIHRyaWdnZXIKKyAgICBhIGNyYXNoIGluIHRoZSBTQU1CQSBXSU5TIG5hbWUgbG9va3VwIGxpYnJhcnkgYmVjYXVzZSBjYWxscyB0bworICAgIG1lbWR1cCgpIGZyb20gdGhhdCBsaWJyYXJ5IGdldCByZWRpcmVjdGVkIHRvIHRoZSBpbmNvbXBhdGlibGUKKyAgICBOZXQtU05NUCBtZW1kdXAoKSBmdW5jdGlvbi4gU2VlIGFsc28KKyAgICBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTEwMDA3ODAgZm9yIHRoZSBkZXRhaWxzLgorICAgIFRoaXMgcGF0Y2ggaW50ZW50aW9uYWxseSBjaGFuZ2VzIHRoZSBOZXQtU05NUCBBQkkuCisKK2NvbW1pdCAzZGRlNDE5OTg2MjVmZTBlMjQxMTlhMmUxZjQ1MDliYTNiYTJmZDlhCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgU2VwIDUgMjA6Mjc6MjIgMjAxMyArMDIwMAorCisgICAgQ0hBTkdFUzogTGludXg6IEJVRzogMjIzODogQWRkIGxpYm5sMyBzdXBwb3J0CisKK2NvbW1pdCBhMzc5NTdiZWU5Zjc5ZGIxOWJiYTkzZjExZmFhMDM3OTIxZDZlNTg0CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gU2VwIDIzIDIyOjI0OjE1IDIwMTMgKzAyMDAKKworICAgIHJvdXRlX3N5c2N0bC5jOiBGaXggZm9yIGxpbmtsb2NhbCByb3V0ZXMgb24gRnJlZUJTRCAxMAorCitjb21taXQgZDlhN2Y5ZmM2Nzk0NTViMGZhMzI4ZmJhZTY3ZWMyZWUyOTA2Yjk0YgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU3VuIFNlcCAyMiAxOTo0Mjo1MSAyMDEzICswMjAwCisKKyAgICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogQXV0b21hdGUgYnVpbGRpbmcgdGhlIGluc3RhbGxlcgorCitjb21taXQgZWIxYTE2NDE1MDBkNmJjZjM5ZjliODQ3YTJjMDZjOWVkYTBjODhjNAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU3VuIFNlcCAyMiAxOTozMjozMSAyMDEzICswMjAwCisKKyAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgYW4gaW5zdGFsbGVyIHdpdGhvdXQgYWRtaW5pc3RyYXRpdmUgcHJpdmlsZWdlcworCitjb21taXQgYTk3NzdlYzlhZmIzN2NhNjQ0MjE2NjA3OWJkNWIyZTAzNDliZTNlMworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU3VuIFNlcCAyMiAxODozNTo1NSAyMDEzICswMjAwCisKKyAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IEZpeCBPcGVuU1NMIHZlcnNpb24gY2hlY2sKKworY29tbWl0IDVjYjJjYzdhYjIwYjI5MGE2Yzc0NTg1Zjk4NWY5YzkxMmNkZWM4Y2UKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFN1biBTZXAgMjIgMTA6MjU6MDAgMjAxMyArMDIwMAorCisgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOiBSZW1vdmUgTVNWQyByZWRpc3RyaWJ1dGFibGUgZmlsZXMgZnJvbSB0aGUgaW5zdGFsbGVyCisKK2NvbW1pdCAxNzgxMjAwNjFlY2U0OGNjZDk3YTNhZTM2Yjg4MGRhNmIxMDk1MjA3CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTdW4gU2VwIDIyIDA5OjUwOjE4IDIwMTMgKzAyMDAKKworICAgIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LmJhdDogR2VuZXJhbGl6ZQorCitjb21taXQgODVhMWM1MDI2ZjEwZmYxNDNmNDM3ZjAwMzg5NGE2YzRhYTE4N2E5NgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU3VuIFNlcCAyMiAxODo0MzowNSAyMDEzICswMjAwCisKKyAgICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogRml4IHg2NCBkZXRlY3Rpb24KKworY29tbWl0IGEwYzJhN2FiNDI5OTc0MzNlNzA3YzEwZjhhY2Y2MWY5MTI0NDJmNzAKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFN1biBTZXAgMjIgMTc6Mjg6NTQgMjAxMyArMDIwMAorCisgICAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IEV4YW1pbmUgdHdvIGxvY2F0aW9ucyBmb3IgTWluR1cgYmluIGRpcgorCitjb21taXQgY2YxMDA2ZTY3ZjljNzdmYmRhOTRkNDUyMWU3OGYwMDk4YzhhMGUxOQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU3VuIFNlcCAyMiAxMDoxMToxMyAyMDEzICswMjAwCisKKyAgICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogRml4IFNTTCBidWlsZAorCitjb21taXQgYjQ3ZjEzNmJlYThlZjU0NjhhMjBkOTQ1MmIxMjMxOGRiNmMzNDllYgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU3VuIFNlcCAyMiAxNzowNTozNyAyMDEzICswMjAwCisKKyAgICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogQWRkIFdTREsgc3VwcG9ydAorCitjb21taXQgMGUxOGEyMDZhYWE0OTBmZGViMmM3MGEwZTZlNTJjOTFlYjVmM2VkOQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU3VuIFNlcCAyMiAwOTo0ODowNiAyMDEzICswMjAwCisKKyAgICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogUmVkdWNlIGNvZGUgZHVwbGljYXRpb24KKworY29tbWl0IDg1ZGYwMmI4MzYzMjBjYzQ1ZTVkMmRiNDU0ODNiYzUwODYzMTQ0NmMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFN1biBTZXAgMjIgMTA6MDI6MjEgMjAxMyArMDIwMAorCisgICAgd2luMzIvQ29uZmlndXJlOiBGaXggYnVpbGQgd2l0aG91dCBPcGVuU1NMCisKK2NvbW1pdCAzZjlhZGI5ODdiNWJmNWQyZDA5NWNmZDZlYTJkYTljZDgxZDFiZWM0CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTdW4gU2VwIDIyIDA5OjE1OjQxIDIwMTMgKzAyMDAKKworICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOiBXaW4zMiBidWlsZCBmaXgKKworY29tbWl0IGE2ZTE4NTFmYmU3NDdjZjE1ZWQwNzU4MDc3ODFjZTg5YTM0ZTk2YzIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFNhdCBTZXAgMjEgMTk6NTU6MDIgMjAxMyArMDIwMAorCisgICAgUmVzdG9yZSAiQ0hBTkdFUzogV2luMzI6IHBlcmw6IEJVRzogMjQ4ODogQXZvaWQgIkZyZWUgdG8gd3JvbmcgcG9vbCIgZXJyb3IiCisgICAgCisgICAgVGhpcyByZXZlcnRzIGNvbW1pdCBiMjcyNTk2NGJkZTkyMWI2Mjg1ZTNhNTlhNTEyNTUyY2FlMGEwY2E1LgorCitjb21taXQgYjI3MjU5NjRiZGU5MjFiNjI4NWUzYTU5YTUxMjU1MmNhZTBhMGNhNQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU2F0IFNlcCAyMSAxOTo0OTo1OCAyMDEzICswMjAwCisKKyAgICBSZXZlcnQgIkNIQU5HRVM6IFdpbjMyOiBwZXJsOiBCVUc6IDI0ODg6IEF2b2lkICJGcmVlIHRvIHdyb25nIHBvb2wiIGVycm9yIgorICAgIAorICAgIFRoaXMgcGF0Y2ggaXMgbm90IGFwcHJvcHJpYXRlIGZvciB0aGUgdjUuNCBicmFuY2guCisKK2NvbW1pdCA2NDUzNzE3ZjZhYzY2NWJmNTMyNzQ0YTg2Y2RiODk4YWFmODNkNmJmCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTYXQgU2VwIDIxIDE5OjM0OjI1IDIwMTMgKzAyMDAKKworICAgIEFkZCByZXByb2R1Y2VyIGZvciBidWcgMjQ4OAorCitjb21taXQgMGQwYTQ2Mjk3MDJlYjlmOWZlOTk1NmMxYmFjNGI0NDU2MTBmZjNjNworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU2F0IEF1ZyAzMSAxNzoyMToyMiAyMDEzICswMjAwCisKKyAgICBTaW1wbGlmeSBzbm1wVGFyZ2V0QWRkcl9yb3dTdGF0dXNDaGVjaygpCisKK2NvbW1pdCA0Yjg3ZTNjYjRkMzY3OWFiNjBjMzUzYmE0ZmYzMDFmNjg0MmI4NGJjCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTYXQgU2VwIDIxIDE2OjM3OjA5IDIwMTMgKzAyMDAKKworICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2OGV4ZWNmaXhfc2ltcGxlOiBTaW1wbGlmeQorCitjb21taXQgNjVjODhlMmVjZjVkZTkzNjVjODNjNDZlZjNiYjRjZDg5Y2RjNDRlOAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU3VuIFNlcCAxNSAxMToxMTo0MyAyMDEzICswMjAwCisKKyAgICBDSEFOR0VTOiBXaW4zMjogcGVybDogQlVHOiAyNDg4OiBBdm9pZCAiRnJlZSB0byB3cm9uZyBwb29sIiBlcnJvcgorCitjb21taXQgMWE0ODU1ZGE0YjFkZDY5M2EyYjAzNzdiOTFlOWMzM2UzYzdmMmE0ZAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU2F0IFNlcCAyMSAxNzoxMTo0NSAyMDEzICswMjAwCisKKyAgICBDSEFOR0VTOiBwZXJsOiBCVUc6IDI0MDI6IEFkZCBzdXBwb3J0IGZvciBTTk1QdjMgdHJhcHMKKworY29tbWl0IDNkMDUxNTY5M2Y2YTBkMjlkMzlkZDBjODY4ZDM3OGM3NGJjNGY4N2MKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFNhdCBTZXAgMjEgMDk6MTY6MzMgMjAxMyArMDIwMAorCisgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY4ZXhlY2ZpeF9zaW1wbGU6IFBvcnQgdG8gTWluR1cgYW5kIEZyZWVCU0QKKworY29tbWl0IDViNmU0MzFkOWY2NjNhM2MzMjdkNzFkYWM5NTM5MmNmZDg2YjMyOTEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFNhdCBTZXAgMjEgMDk6MDM6NTkgMjAxMyArMDIwMAorCisgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOiBGaXggY29tcGlsZXIgd2FybmluZ3MKKworY29tbWl0IDlmMmU4ZmM4ZDlhMjZmNTdhYjA4OWFiYTNkMWFlMjZiM2U4ZjJkNTQKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBTZXAgMTcgMjI6MzA6MzggMjAxMyArMDIwMAorCisgICAgRml4IGRlcGVuZGVuY3kgZm9yIEZyZWVCU0QxMAorCitjb21taXQgYTUwNmVmZGQxZGI4MjRhOWVlZWUwM2QwMDIxYzkwZmFmM2I2MjkyNAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIFNlcCAxNyAyMjoyOTozNCAyMDEzICswMjAwCisKKyAgICBzbm1wZGYgbWFuIHBhZ2U6IGZpeCBmb3JtYXR0aW5nIG9mIC1DaC8tQ0ggb3B0aW9ucworCitjb21taXQgYTJlOTdiZWJmYzUyMTcwZjllYzEwMzZkMjRhYTg0ZjU5Y2YyZTUwOAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIFNlcCAxNyAyMjoyNzo0OSAyMDEzICswMjAwCisKKyAgICBVcGRhdGUgdGhlIEJTRCBtdWx0aS1jcHUgY291bnRlcnMgY29kZSB0byB3b3JrIHdpdGhvdXQgY29uZmlndXJlIGhlbHAuCisKK2NvbW1pdCBjODVkNjRkNTRiMDY4NzlhM2E2OTFkYWRmZmMwM2JmYjFmNTkwOTZkCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBUdWUgU2VwIDE3IDA2OjM3OjE4IDIwMTMgKzAyMDAKKworICAgIE9ubHkgdGVzdCB0aGUgZXhlY2ZpeCBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZSBpZiBpdCBpcyBlbmFibGVkCisKK2NvbW1pdCBlZDhiNjk3Y2VhMDY3OWRlN2JlNWIzZjVkNDY5MTM0ZTFjZGFlZDU2CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTYXQgU2VwIDcgMTA6Mjc6MDIgMjAxMyArMDIwMAorCisgICAgbTQvYWNfYWRkX3NlYXJjaF9wYXRoLm00OiBGaXggYSBjb21tZW50CisKK2NvbW1pdCBmNzc5YzVlOTQ2Nzg4NTg1MmYxNmM1NTQxYTM4MDExMWY5ZWFkMDYxCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTYXQgU2VwIDcgMjA6Mjg6MjkgMjAxMyArMDIwMAorCisgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfYXB0LmM6IEZpeCBjb21waWxlciB3YXJuaW5ncworICAgIAorICAgIFJlbW92ZSB0aGUgdW51c2VkIHZhcmlhYmxlICdyYycgYW5kIGZpeCBhIGZvcm1hdCBzdHJpbmcuCisKK2NvbW1pdCBjNjQzOTYyN2QwOWY1MDNmZGM4Y2ZhMzJkODg0ZTgzNDczODMxNzU0CitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgTWFyIDggMDA6MTM6MDUgMjAxMSArMDAwMAorCisgICAgYWxsb3cgZm9yIHYyYyBTRVQgc3VwcG9ydCB0ZXN0aW5nCisgICAgCisgICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwODQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKK2NvbW1pdCA1Y2JkNTQzNDFhMmE3OWJmODUzNzM3N2QxMTM3MjQ4M2YwODY0N2FkCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTYXQgU2VwIDE0IDE0OjI4OjIxIDIwMTMgKzAyMDAKKworICAgIHJlZ3Jlc3Npb24gdGVzdHM6IEFkZCBhIHRlc3QgZm9yIHRoZSBleGVjZml4IGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlCisKK2NvbW1pdCAxYzc1NjM0OWU0ZDMxZDM5ZWMyZmM1M2M2NDQwYWU1M2IzYjAzZGYwCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTYXQgU2VwIDcgMjA6Mjg6NTYgMjAxMyArMDIwMAorCisgICAgc25tcGQ6IHVjZC1zbm1wOiBGaXggYSBwb3RlbnRpYWwgY3Jhc2ggaW4gZml4RXhlY0Vycm9yKCkKKyAgICAKKyAgICBEbyBub3QgaW50ZXJwcmV0IGEgY29tbWFuZCBzcGVjaWZpZWQgdmlhIHRoZSBleGVjZml4IGNvbmZpZ3VyYXRpb24KKyAgICBkaXJlY3RpdmUgYXMgYSBwcmludGYoKSBmb3JtYXQgc3RyaW5nLgorCitjb21taXQgOGIxNDBkMDk2NWUxMWY1OTIxNzY4YmYwNWQwYzJiMTk0MWMwZDMzNQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU2F0IEF1ZyAzMSAxNzoxMDo1NSAyMDEzICswMjAwCisKKyAgICBTTk1QLVRBUkdFVC1NSUI6IERlY2xhcmUgbG9jYWwgdmFyaWFibGVzIGF0IGZpbGUgc2NvcGUgc3RhdGljCisgICAgCisgICAgQWxzbywgZGVjbGFyZSB0aG9zZSB2YXJpYWJsZXMgY29uc3QgdGhhdCBhcmUgbm90IG1vZGlmaWVkLgorCitjb21taXQgN2I4MmM2MWU3NTNlMTU3YzRiODY5ODIxOTAwNmYyZjgzZGY1MjgwMQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU2F0IEF1ZyAzMSAxNjo1MToxNSAyMDEzICswMjAwCisKKyAgICBTTk1QLVRBUkdFVC1NSUI6IEVsaW1pbmF0ZSB0d28gc3VwZXJmbHVvdXMgY2FzdHMKKworY29tbWl0IGRiY2Y0N2RkNGZlNTI2MmFkMGZhZDdjOTc3NDUyMDk1ODk1NDBjNDAKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgU2VwIDExIDEwOjIxOjMyIDIwMTMgKzAyMDAKKworICAgIFJld29yZCB0aGUgaW5jbHVkZUZpbGUgc2VhcmNoIHByb2Nlc3MgdG8gZml0IHRoZSBpbXBsZW1lbnRhdGlvbi4KKworY29tbWl0IDg1MDczMDg1ZDY3ZWQ2NmFiNzQ2MTFjOGU1ZjgxMDE5MjQ5MWJhNjgKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBTZXAgOSAyMjoyNjoyMyAyMDEzICswMjAwCisKKyAgICBQYXRjaCBhMTI2MzogTWFrZSBkYXRhYmFzZSBuYW1lIGNvbmZpZ3VyYWJsZSBmb3IgdHJhcGQgc3FsIGxvZ2dpbmcuCisgICAgVGhhbmtzIHRvIFJvYmluIFNvbmVmb3JzLgorCitjb21taXQgN2U3MjU4ZWY4YjMyZjk3NDA0OGYzZmQwOThhOWRhNTI2ZGEyZTYxMworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIFNlcCA5IDIyOjE3OjE1IDIwMTMgKzAyMDAKKworICAgIFBhdGNoIGExMjYyOiBGaXggbWVtb3J5IGVycm9yIGNhdXNlZCBieSBjb25mdXNpbmcgc2l6ZSBvZiBwb2ludGVyCisgICAgd2l0aCBzaXV6ZSBvZiBwb2ludGVkIGFyZWEuIFRoYW5rcyB0byBSb2JpbiBTb25lZm9ycy4KKworY29tbWl0IDU4NmUwN2I4ZGU1MWIwNTQwMGQ1ODJmYWNkOTFkNDQxMGRkMzc3MDMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFNhdCBBdWcgMzEgMTc6MDk6NTkgMjAxMyArMDIwMAorCisgICAgc25tcGQ6IENvbnN0aWZ5IGEgZmV3IGFyZ3VtZW50cyBvZiBNSUIgcmVnaXN0cmF0aW9uIGZ1bmN0aW9ucworICAgIAorICAgIE5vdGU6IHRoaXMgcGF0Y2ggZG9lcyBub3QgY2hhbmdlIHRoZSBBQkkuCisKK2NvbW1pdCA0NGMzNjcxZGQ5M2ZlMGYwODI5OWU2MWQwYTQyMmZkMDcyYjQ5MGU2CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTdW4gU2VwIDggMDc6MzU6NDYgMjAxMyArMDIwMAorCisgICAgUnVuIGF1dG9yZWNvbmYKKworY29tbWl0IDYyZGFkZWZhMWIyNjg4YzAyNzkyZTlmZDJkM2ZjMzFjNzllZDExYzMKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBTZXAgNiAxMTo1NDoxMyAyMDEzICswMjAwCisKKyAgICBzd3J1bl9kYXJ3aW46IEZpeCBidWZmZXIgb3ZlcnJ1biB3aGVuIGNvbGxlY3RpbmcgaHJTV1J1blBhcmFtZXRlcnMKKworY29tbWl0IDFlMDUyNmY4NWVkNjE1NjdjYTZlYTUzYjU2NmM3NzI5OTIxMTFjOWUKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBTZXAgNCAyMjozMDo0MCAyMDEzICswMjAwCisKKyAgICBBZGQgYSBjb3VwbGUgb2YgY29udHJpYnV0b3JzIHRvIFJFQURNRQorCitjb21taXQgZWRjNjA4ZWJkNWQwMjE5ODYzYmM1ZjY1NmQxNzdiMWQ1NjEwNDhjMgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIFNlcCA0IDIxOjU5OjE4IDIwMTMgKzAyMDAKKworICAgIEZpeCBhIHByaW50ZiBmb3JtYXQgd2FybmluZy4KKworY29tbWl0IGZiMjRmNzMzY2IzMTZjMzVjY2ZkYzU5ZjQ4N2I2NWUwY2Q5NzRjNjgKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBTZXAgNCAyMTo1NDoyNyAyMDEzICswMjAwCisKKyAgICBzbm1wbmV0c3RhdDogSW5kZW50IElDTVAgaGlzdG9ncmFtIGZvciByZWFkYWJpbGl0eS4KKworY29tbWl0IGY3OTQzYTVkNThhNmY5NTNjNzlmYjU1YWI4OTdjODQ5MjI4ZWRiOGEKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBTZXAgNCAyMTo0NToxOSAyMDEzICswMjAwCisKKyAgICBSZWNvZ25pemUgemZzIGZpbGUgc3lzdGVtcworCitjb21taXQgYWI0MzcwYmFmNWNjYzE0NmY4ZDFjODM5YmIwZjQxOWVlMzdlNzFjMgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIFNlcCAyIDIxOjIxOjI1IDIwMTMgKzAyMDAKKworICAgIFBhdGNoIGExMjYxIChCaWxsIEZlbm5lcik6IEZpeCBjcmFzaCB3aGVuIG1pYi1pbmRleGVzIGFyZSBub3QgYWxsIHJlYWRhYmxlCisKK2NvbW1pdCBjNmNhYTMwMDdmNjBmNmNkZWFhMTM0MTUyNzU4NjQ1YTczYTdmZTY0CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gU2VwIDIgMTk6Mzk6MTQgMjAxMyArMDIwMAorCisgICAgc25tcG5ldHN0YXQ6IFByb3BlciB0ZXN0cyBmb3IgdjIvdjMgZXhjZXB0aW9uIHJlc3VsdHMgKEJ1ZyBhMjQ3NykKKworY29tbWl0IDM5NDIwYmQ0MGI3YTFiYTcyMGE5Y2JiOTIyNjRkM2Y5Y2MwYTdlMmYKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBBdWcgMjEgMjI6MDg6NDEgMjAxMyArMDIwMAorCisgICAgUEFUQ0ggYTEyNjA6IFN1cHBvcnQgbXVsdGktY3B1IHVzYWdlIGZvciBGcmVlL05ldC9PcGVuLUJTRC4KKyAgICBUaGFua3MgdG8gUGFibG8gQ2FyYm9uaSBmb3IgZmlyc3Qgc3RhYiBhdCB0aGlzLgorCitjb21taXQgNjIzMDVjZDAyOGQ4YWJmNDMwMTIxZTkwMDhhY2M4ZjBkMTg3MWUxYworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEF1ZyAyMSAyMjowODo0MSAyMDEzICswMjAwCisKKyAgICBQQVRDSCBhMTI2MDogU3VwcG9ydCBtdWx0aS1jcHUgdXNhZ2UgZm9yIEZyZWUvTmV0L09wZW4tQlNELgorICAgIFRoYW5rcyB0byBQYWJsbyBDYXJib25pIGZvciBmaXJzdCBzdGFiIGF0IHRoaXMuCisKK2NvbW1pdCBjYzJmZTZiZGU2YTNjMjhiM2MxYWQxNjVjOWJhM2ZjMWQ1ODNjMjUzCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTdW4gQXVnIDI1IDA4OjIzOjQzIDIwMTMgKzAyMDAKKworICAgIElQLU1JQjogRml4IERveHlnZW4gaGVhZGVyIG9mIG5ldHNubXBfaXBhZGRyZXNzX2lwdjRfcHJlZml4X2xlbigpCisKK2NvbW1pdCA5NjMwMmFmN2ZjMzEwOGMyMDgyMjc0MzJmMGYwYjc1ZjNlN2I5MDZkCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBXZWQgQXVnIDI4IDEwOjU5OjA1IDIwMTMgKzAyMDAKKworICAgIENvcnJlY3QgY29udmVyc2lvbiBmYWN0b3IgZnJvbSBtaWNyb3NlY29uZHMgdG8gY2VudGlzZWNvbmRzLgorCitjb21taXQgZThjZjc2NmUwODM4MzRhZjdmZGZlZDg3N2RiZTg4MTBiZjAwYTRlYQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEF1ZyAxOSAyMjoxNzoxMSAyMDEzICswMjAwCisKKyAgICBGaXggbmV0c25tcF9pcGFkZHJlc3NfaXB2NF9wcmVmaXhfbGVuIHRvIHRha2UgYW4gYXJndW1lbnQgaW4gbmV0d29yayBieXRlIG9yZGVyIGFzIGRva3VtZW50ZXQKKworY29tbWl0IGEwYzU5YTNiNDU4ZThhOGRmYjA1OWE2Mjc5MmQyNWE0YzVjOWZjOWUKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBBdWcgMTkgMjI6MTQ6MTUgMjAxMyArMDIwMAorCisgICAgRml4IG5ldHNubXBfaXBhZGRyZXNzX2lwdjRfcHJlZml4X2xlbiB0byB0YWtlIGFuIGFyZ3VtZW50IGluIG5ldHdvcmsgYnl0ZSBvcmRlciBhcyBkb2t1bWVudGV0CisKK2NvbW1pdCA2NmI5YmZiYTRlYWU4NDk0NGFiZjRlNmQwNzQ4OTRhY2QwNTEzYzZiCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gQXVnIDE5IDIyOjEyOjU3IDIwMTMgKzAyMDAKKworICAgIEZpeCBuZXRzbm1wX2lwYWRkcmVzc19pcHY0X3ByZWZpeF9sZW4gdG8gdGFrZSBhbiBhcmd1bWVudCBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIgYXMgZG9rdW1lbnRldAorCitjb21taXQgZWM5NmIzNWQ1MDYwYzA5YjlmNTNkNGRlYzczZmI3OTY1YzJhYzE0NQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEF1ZyAxOSAyMjoxMTozNiAyMDEzICswMjAwCisKKyAgICBGaXggbmV0c25tcF9pcGFkZHJlc3NfaXB2NF9wcmVmaXhfbGVuIHRvIHRha2UgYW4gYXJndW1lbnQgaW4gbmV0d29yayBieXRlIG9yZGVyIGFzIGRva3VtZW50ZXQKKworY29tbWl0IGIyN2I0N2I1Nzk4NDY5ZTlhYjViZDRiNTFhYzM5ZDQzZmNkOTU2MDgKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBBdWcgMTcgMTA6MTI6MTQgMjAxMyArMDIwMAorCisgICAgQ0hBTkdFUzogdGVzdGluZzogTWFrZSBzdXJlIFRlc3Q6Okhhcm5lc3MgaXMgb2YgYXQgbGVhc3QgdmVyc2lvbiAxLjIxCisgICAgCisgICAgVGVzdDo6SGFybmVzcyAxLjIxIGlzIHRoZSBmaXJzdCB2ZXJzaW9uIHRoYXQgaW1wbGVtZW50cyBUQVAgdjEyIHdoaWNoIGFsbG93cworICAgIHB1dHRpbmcgdGhlIGhlYWRlciAoMS4uTikgYWZ0ZXIgdGhlIHRlc3RzIGFuZCBzaW5jZSBvdXIgdGVzdHMgdXRpbGl6ZSB0aGF0CisgICAgd2Ugc2hvdWxkIG1ha2Ugc3VyZSB0aGF0IHRoZSB0ZXN0IHJ1bm5lciBzdXBwb3J0cyBpdC4KKworY29tbWl0IDE0ZjhkNGFkNmYwNmQwOWQ4NzA5NmRkNjgxMzdhMTI1YTAzOWM1NjIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFNhdCBKdW4gMjkgMTc6NDI6NTQgMjAxMyArMDIwMAorCisgICAgQ0hBTkdFUzogQUlYOiBNYWtlIHVkcC1taWIgYnVpbGQKKworY29tbWl0IDM4ZDc3YzdjMjBhM2U3OTc5YzA5YzUxNDRmODY5MzRlZDQ2NTQwZGMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFNhdCBKdW4gMjkgMTc6Mzk6MzggMjAxMyArMDIwMAorCisgICAgQ0hBTkdFUzogQUlYOiBNYWtlIHRjcC1taWIgYnVpbGQKKworY29tbWl0IDU4ZmQyM2I3MTEwYzkzZWU0OTZmZmFmZTg2ODUzOWMyYWY4NTQzYmQKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBBdWcgMTYgMTA6Mzk6MDMgMjAxMyArMDIwMAorCisgICAgV2luMzI6IEJ1aWxkIGZpeDogRXhwb3J0IHNraXBfd2hpdGVfY29uc3QoKSwgc2tpcF9ub3Rfd2hpdGVfY29uc3QoKSBhbmQgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmdfY29uc3QoKQorCitjb21taXQgMGFiOWNkMTY1NWQ0NmY5NjhkYzEyYmQ2NzE0YWMxN2I5YmNlNWU3MQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIEF1ZyAxNiAwODoyODowOCAyMDEzICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYjogQXZvaWQgdHJpZ2dlcmluZyBhbiBhc3NlcnQgc3RhdGVtZW50IGluIG5ldHNubXBfcmVhZHlfbW9ub3RvbmljKCkKKyAgICAKKyAgICBUaGUgY2FjaGUgdGltZW91dCBmb3Igc25tcC11c20tZGgtb2JqZWN0cy1taWIgaXMgLTEuIEFueSBjYWNoZSB0aW1lb3V0CisgICAgdmFsdWUgPCAwIGRpc2FibGVzIGNhY2hpbmcuIEhvd2V2ZXIsIHN0cmljdGx5IG5lZ2F0aXZlIHZhbHVlcyB0cmlnZ2VyCisgICAgdGhlIGFzc2VydCBzdGF0ZW1lbnQgaW4gbmV0c25tcF9yZWFkeV9tb25vdG9uaWMoKS4gQXZvaWQgdHJpZ2dlcmluZyB0aGF0CisgICAgYXNzZXJ0IHN0YXRlbWVudC4KKworY29tbWl0IDFmYTU4NGIyMjJjNTY3MjQzNzhmNWM4NTk5M2VlZWU2NTE1MjYwYWIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBBdWcgMTYgMTA6MDI6NDcgMjAxMyArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogRml4IE5FVFNOTVBfRkRfU0VUX0JZVEVTKCkKKyAgICAKKyAgICBUaGlzIHBhdGNoIGF2b2lkcyB0aGF0IHVuaXQgdGVzdCBUMDA5bGFyZ2VfZmRfc2V0X2NsaWIgY3Jhc2hlcyBvbiBBSVguCisKK2NvbW1pdCA5NWFjMTkwYjUyNmRiYTUyMDU2Mzc0MTFhODkyYjUyYjllZDZiOTRjCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTdW4gSnVsIDIxIDE3OjE2OjQyIDIwMTMgKzAyMDAKKworICAgIENIQU5HRVM6IEJVRzogMjQ3Njogc25tcGQgZmFpbHMgdG8gc3RhcnQgb24gQUlYCisgICAgCisgICAgT24gYW4gQUlYIHN5c3RlbSB0aGVyZSBpcyBubyA8a3ZtLmg+IGhlYWRlciBmaWxlIG5vciBkbyB0aGUgL2Rldi9kbWVtCisgICAgb3IgL2Rldi9kcnVtIGRldmljZXMgZXhpc3QgYW5kIGhlbmNlIERNRU1fTE9DIGlzIG5vdCBkZWZpbmVkLiBBdm9pZAorICAgIHRoYXQgaW5pdF9rbWVtKCkgZmFpbHMgaW4gdGhhdCBjYXNlLgorCitjb21taXQgNTA0ODFiNzY5ZTI5ZmM1Y2U2YjFlNDBjZTU2ODE4NWJiMDg5ODQ1OAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIEF1ZyAxNiAwNzoyMjowMiAyMDEzICswMjAwCisKKyAgICBzbm1wZDogUmVmYWN0b3IgaW5pdF9rbWVtKCkKKyAgICAKKyAgICBUaGlzIHBhdGNoIGRvZXMgbm90IGNoYW5nZSBhbnkgZnVuY3Rpb25hbGl0eS4KKworY29tbWl0IGNkN2VmN2JlMzkxMDM1ZDlkZjA1ZWRjNmFjOWU2ZjM1MTliNDZmOGIKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFdlZCBBdWcgMTQgMjM6Mzg6MjEgMjAxMyArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogQmUgbW9yZSByb2J1c3QgaWYgY2xvY2tfZ2V0dGltZSBmYWlscy4KKyAgICAKKyAgICBPbiBSSEVMMyBpdCBzZWVtcyBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgKSBhbHdheXMgcmV0dXJucyBFSU5WQUwgYnV0CisgICAgaXQgd29ya3MgZm9yIHRoZSBvdGhlciBjbG9ja3MuCisgICAgCisgICAgRnVydGhlciwgdGhlIG9sZCBjb2RlIHdoaWNoIHJldHVybmVkIGEgY29uc3RhbnQgeyAwLCAwIH0gY2F1c2VkIHRoZSB0ZXN0IHN1aXRlCisgICAgdG8gZ2V0IHN0dWNrIGluIGEgbG9vcCBpZiBubyByZXNwb25zZSBhcnJpdmVkIC0gdGh1cyB0aGlzIGNvZGUgaGF2ZSB0aGUKKyAgICBhZHZhbnRhZ2Ugb2Ygd29ya2luZyBsZXNzIGJhZC4KKworY29tbWl0IDlkNzFmZWVhMjcxZjkxY2M5YjdhZGVlNjYxM2FmMTllYmE3ZWM2Y2QKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgQXVnIDE0IDE1OjU2OjU2IDIwMTMgKzAyMDAKKworICAgIEZpeGVkIHJldHVybiB2YWx1ZSBvbiBlcnJvci4KKworY29tbWl0IDk2MjFmNGNkYzVhMTljZWU0ZTExYmYyNzA5NGFiZjMzMzlkZGMzMGUKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgQXVnIDE0IDE1OjQ4OjM5IDIwMTMgKzAyMDAKKworICAgIFJlbW92aW5nIHVzZWxlc3MgY2hlY2ssIGVudHJ5LT5kX25hbWUgaXMgYXJyYXkgYW5kIGNhbid0IGJlIE5VTEwuCisKK2NvbW1pdCBlNDFjMmY1NzRjMjVkOGRkMjczZjI0MDZlZWVhYzE5YmMyYWUxNmRiCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEF1ZyAxMiAxNDozMDo1MSAyMDEzICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBwYXJzaW5nIG9mIHNlcXVlbmNlcy4KKyAgICAKKyAgICBEb24ndCBvdmVyd3JpdGUgJ2RhdGEnIHZhcmlhYmxlLCBpdCdzIHVzZWQgd2hlbiBwYXJzaW5nIGJ1bGsgcmVzcG9uc2VzLgorCitjb21taXQgMzkwMzAzMDU5ZmJkOThiMWVlNzYyMWRkZDRhZDRjMTFkMTAwZmZmOQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIEp1bCAyOCAyMToyODoxNCAyMDEzICswMjAwCisKKyAgICBSZXZlcnQgNzhkYWM2ZTM3OTQzZDFhZDk5ODQxODk4ODA2ZWE2MGIwZWVkZTYzNiBhbmQgcmVzb2x2ZSBhMjQ3OCBpbiBhIHdheSB0aGF0IGF2b2lkcyB0cnVuY2F0aW5nIHNubXBUYXJnZXRBZGRyVGltZW91dC4KKworY29tbWl0IGU1OWQ1ZGI2ZDZlNzJkMTM0NTkxYmJhYWE2ZmFhNTliMjkzMzgxOTEKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBKdWwgMjggMjE6MTc6NTggMjAxMyArMDIwMAorCisgICAgQ2hlY2sgdGhhdCB0aGUgdGltZW91dCB2YWx1ZSBpcyBpbiByYW5nZS4KKworY29tbWl0IDRlY2IzNmE3YWJhM2FiMGVmYTg5MzUxNjUwY2UwNTNlYmNmNDhiNmEKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIE1vbiBKdWwgMjkgMjE6NTQ6MjUgMjAxMyArMDIwMAorCisgICAgQ2hlY2sgdGhhdCBzbm1wVGFyZ2V0QWRkclRpbWVvdXQgaGFuZGxlcyBzZXR0aW5nIHByb3Blcmx5CisKK2NvbW1pdCAxYWU4NWI2NzJlYjA3ZDBjMDFhNTRlMDZkM2RkZDRmNGRjNThmZjJlCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gSnVsIDI4IDEwOjQzOjE3IDIwMTMgKzAyMDAKKworICAgIEFkZCBzb21lIG1vcmUgdGVzdHMgZm9yIHNubXBUYXJnZXRBZGRyCisgICAgKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNmUxM2ViYjg1ZTQ0MDQ5ODQ2ZWFlN2Y2MGUwNTAzNzVmOWFjZjU4ZSkKKyAgICBTYW5pdGl6ZWQKKworY29tbWl0IDZhNWEwNDdjYmMxMWQ2MmRmMDRhOTY2NjkwOGY3NjUyYjIxN2MxYWEKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFRodSBBdWcgMSAyMzoxOTozNCAyMDEzICswMjAwCisKKyAgICBSZWluc3RhdGUgdGhlIGNoZWNrIGZvciBjcmVhdGlvbiBvZiBlbnRyaWVzIHdpdGggZW1iZWRkZWQgTlVMJ3MgaW4gdGhlIG5hbWUKKworY29tbWl0IDUzM2JiODBhNWE0MzA1YjM1ZGJiNzk3NDQ0YmQ1OTZkN2Q1OTk1MWMKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFRodSBBdWcgMSAyMjo1NTo0NSAyMDEzICswMjAwCisKKyAgICBTYW5pdGl6ZS4KKyAgICAKKyAgICBDaGFuZ2UgdG8gdXNlIFNOTVB2MyBzaW5jZSB0aGF0IGlzIHdyaXRlYWJsZSBpbiBWNS02LXBhdGNoZXMuCisgICAgQ2hhbmdlIHRvIGNoZWNrIHZhbHVlcyBvbiBpbmRleCAnQScKKyAgICBSZW1vdmUgdGhlIGNoZWNrIGZvciBlbWJlZGRlZCBOVUwgaW4gaW5kaWNlcy4KKworY29tbWl0IGIyNGJmNDYyMjBhYWFmNTc5NGU5NDBmNWQ0NjczZGI3MTMzOWY5YzAKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBKdWwgMjAgMTI6Mzk6NTkgMjAxMyArMDIwMAorCisgICAgQWRkIHRlc3RzIGZvciBzbm1wVGFyZ2V0QWRkcgorICAgIChjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDcxZjMxOWNkMjM0NDVjNmUyMmE2MGExYTg1ZjMxYzJiNjkwNGIzZmIpCisKK2NvbW1pdCA2ZTEzZWJiODVlNDQwNDk4NDZlYWU3ZjYwZTA1MDM3NWY5YWNmNThlCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gSnVsIDI4IDEwOjQzOjE3IDIwMTMgKzAyMDAKKworICAgIEFkZCBzb21lIG1vcmUgdGVzdHMgZm9yIHNubXBUYXJnZXRBZGRyCisKK2NvbW1pdCAwNzY5ZjQyMGQ4ZjQyNzk5M2IxMzQwZmRiN2VjYjNiYzA0OWQzZjZjCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBUaHUgSnVsIDI1IDA4OjE1OjMyIDIwMTMgKzAyMDAKKworICAgIEZpcnN0IHNob3Qgb24gaGFuZGxpbmcgY2VydGlmaWNhdGVzIHdpdGggZW1iZWRkZWQgbnVsIGNoYXJhY3RlcnMKKworY29tbWl0IGQ4MzNiMGM4YmU1MDliZmEzYjgwMDFhZTZmNTUyMjg5Y2U5NTY3ZDAKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBKdWwgMjAgMTI6NDE6NDAgMjAxMyArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IE1ha2UgaXQgcG9zc2libGUgdG8gdXNlIE5VTCBjaGFyYWN0ZXJzIGluIHRoZSBpbmRpY2VzIGZvciBzbm1wVGFyZ2V0QWRkclRhYmxlCisKK2NvbW1pdCA3MWYzMTljZDIzNDQ1YzZlMjJhNjBhMWE4NWYzMWMyYjY5MDRiM2ZiCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTYXQgSnVsIDIwIDEyOjM5OjU5IDIwMTMgKzAyMDAKKworICAgIEFkZCB0ZXN0cyBmb3Igc25tcFRhcmdldEFkZHIKKworY29tbWl0IGVhMzllMzY3NjY2NWI3ZThjYzVkZmViNWJiYmNkMGFkNDM0YWQ5MTIKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFRodSBKdWwgMTggMDE6MzY6MjYgMjAxMyArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSB0aGUgZGF0YSBhcmd1bWVudCB0byByZWFkX2NvbmZpZ19zYXZlX29jdGV0X3N0cmluZyBhY2NlcHQgY29uc3RhbnQgdmFsdWVzCisKK2NvbW1pdCA3OGRhYzZlMzc5NDNkMWFkOTk4NDE4OTg4MDZlYTYwYjBlZWRlNjM2CitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gSnVsIDIyIDEyOjM5OjAwIDIwMTMgLTA3MDAKKworICAgIGZpeCBidWcgbnVtYmVyICNhMjQ3ODogZml4IG1pYiByZXByZXNlbnRhdGlvbiBvZiB0aW1lb3V0IHZhbHVlcworCitjb21taXQgYTdlM2JjOGRkYmUzODdlYmY2ZjNmNmIwNTBlMjk5Mjk1NmJkMmU2MQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEp1bCAxMSAyMDoxNDo0NyAyMDEzICswMjAwCisKKyAgICBGaXhlcyBmb3IgbWVtb3J5IHN0YXRpc3RpY3MgZnJvbSAqQlNECisKK2NvbW1pdCA5ZGJlMTI0MDNjZWFhZmU2MTdmN2Q0OTk5MzMxNmEyNDlmY2JiOTlhCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSnVsIDExIDIwOjEzOjM2IDIwMTMgKzAyMDAKKworICAgIEZpeCBhIG1pc3NpbmcgbmV3ZmlsZSBpbiBhIGRlYnVnIG1lc3NhZ2UKKworY29tbWl0IDA0MWRlZWRmODE1MzdiYzYxNjkyOTg3NTNmOWRjYTNmNmNkNjFhMzUKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKdWwgMTEgMjA6MTI6MTIgMjAxMyArMDIwMAorCisgICAgTWFrZSBzdXJlIHdlIGRvbid0IG1ha2UgSVB2NiBtYXNrIGxvbmdlciB0aGVuIDEyOAorCitjb21taXQgYzY3Yzc4OTQwMzM5ZmFlYWI0MmIxYjFhMGE2YmU2Y2Q2ZGZlMmUyMgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEp1bCAxMSAyMDowNjozMSAyMDEzICswMjAwCisKKyAgICBJbXBsYW1lbnQgaXBBZGRyZXNzVGFibGUgZm9yICpCU0QKKworY29tbWl0IGIxODFlNDNhNmQxZjU2N2JmZDEwNzE3YTc3ZGYxODQ4ZTNiYjBmNDMKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKdWwgMTEgMjA6MDU6MDggMjAxMyArMDIwMAorCisgICAgTWFyayBPUyB0aHJlYWRzIGFzIHN1Y2guCisKK2NvbW1pdCBlMzZhNWNjNWYyMDI3MmFmZmY0MjI4ZTdlNDM5MWRkNWU2YzA2M2IzCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSnVsIDExIDIwOjAzOjM2IDIwMTMgKzAyMDAKKworICAgIEZpYyBzb21lIG1hbiBwYWdlIGNyb3NzIHJlZmVyZW5jZXMKKworY29tbWl0IGVjZjg2ODJkODY0ZDJmMDg1MjUwNzg1NDM4NThkMzYxYjNhZGNhNWMKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSnVsIDEwIDEwOjQ3OjMzIDIwMTMgKzAyMDAKKworICAgIExvd2VyIGltcG9ydGFuY2Ugb2YgZGVidWdnaW5nIG1lc3NhZ2VzLCB0aGV5IHNwYW0gc3lzbG9nLgorCitjb21taXQgZWY5NjMwNjNkZTQ5NDg1YmQ5MWMxMjllMDUzZjA2ZDA3NDQ0ODNlMQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKdWwgNCAxMTozNDoyNSAyMDEzICswMjAwCisKKyAgICBGaXhlZCBzaXplIG9mIG5ldGxpbmsgbWVzc2FnZS4KKyAgICAKKyAgICBQcmV2ZW50aW5nIGtlcm5lbCB0byBsb2cgJ25ldGxpbms6IDEyIGJ5dGVzIGxlZnRvdmVyIGFmdGVyIHBhcnNpbmcgYXR0cmlidXRlcy4nIG1lc3NhZ2UuCisKK2NvbW1pdCAyZTBkMTA4NzMxM2IwZmEwODNlMmIxY2E0ODk1ZmJmMjQ4ZDYzY2E5CitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBUaHUgSnVsIDQgMjI6MDQ6MTIgMjAxMyArMDIwMAorCisgICAgUnVuIGF1dG9yZWNvbmYKKworY29tbWl0IGM3ZmJhNzhlMTIyNTI1NGEwZjY1NjA1ZjM4MWFlZGQ3ZDhhMjEyY2EKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFRodSBKdWwgNCAyMTo0NzowOSAyMDEzICswMjAwCisKKyAgICBSdW4gYXV0b3JlY29uZgorCitjb21taXQgNTcxYmQ0MDdmOGJlOWM5NGNjNTUyZDRkM2I3ZjViNmIwOTg0ZDIzNworQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgVGh1IEp1bCA0IDIxOjM5OjU5IDIwMTMgKzAyMDAKKworICAgIFJ1biBhdXRvcmVjb25mCisKK2NvbW1pdCA4YWE1MGVkYmE3YTJkOTY2ZDhkZmM3ZmY0ZDdjNzhlZmRkZThjNWJkCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBUaHUgSnVsIDQgMDg6NTM6NTYgMjAxMyArMDIwMAorCisgICAgVXNlIEFDX0xJTktfSUZFTFNFIGluc3RlYWQgb2YgQUNfVFJZX0xJTksgYXMgdGhlIGxhdHRlciBpcyBkZXByZWNhdGVkCisKK2NvbW1pdCA1OWM2YWUzNDYyNWVlMDRhY2UzODI0ZWM0MDQ2MTNlMGI1MWRjMWIwCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBUdWUgSnVsIDIgMTc6NDA6NTQgMjAxMyArMDIwMAorCisgICAgVXNlIHRoZSBjcHAgYW5kIGxpbmtlciBmbGFncyBmcm9tIG15c3FsX2NvbmZpZyB3aGVuIGNoZWNraW5nIGZvciBteXNxbCBoZWFkZXJzLgorCitjb21taXQgZjg5Y2ZjYWZkYWUyMWZhYjUwYTcwYmRkZjE1OGZmZDllNGUwMDFkMgorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgVHVlIEp1bCAyIDE3OjM5OjI1IDIwMTMgKzAyMDAKKworICAgIFVzZSB0aGUgb3V0cHV0IG9mIG15c3FsX2NvbmZpZyAtLWluY2x1ZGUgaW5zdHJlYWQgb2YgdGhlIG91dHB1dCBvZiBteXNxbF9jb25maWcgLS1jZmxhZ3MgaXRvIGZpbmQgaW5jbHVkZSBmaWxlcy4KKyAgICAKKyAgICBBY2NvcmRpbmcgdG8gdGhlIG15c3FsX2NvbmZpZyBtYW4gcGFnZSwgLS1pbmNsdWRlIGlzIHJlY29tbWVuZGVkIGZvciBncmVhdGVyCisgICAgcG9ydGFiaWxpdHkgc2luY2UgLS1jZmxhZ3MgbWlnaHQgY29udGFpbiBjb21waWxlciBmbGFncyBmb3IgdGhlIGNvbXBpbGVyIHRoYXQKKyAgICB3YXMgdXNlZCB0byBidWlsZCBsaWJteXNxbGNsaWVudCB3aGljaCBtaWdodCBjbGFzaCB3aXRoIHRoZSBvbmVzIHVzZWQgdG8KKyAgICBidWlsZCB0aGUgYXBwbGljYXRpb24uCisKK2NvbW1pdCA2OGE2YTFjYTZkYzRjYTg5MDFiYWNhYjU5ODMyNmFmNzNiNDQ0NjU0CitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBUdWUgSnVsIDIgMTc6MzA6MjkgMjAxMyArMDIwMAorCisgICAgT25seSBjaGVjayBmb3IgbXlzcWwvbXlzcWwuaCBvbmNlLiBSZW1vdmUgSEFWRV9NWVNRTF9NWVNRTF9IIHNpbmNlIG5vdGhpbmcgdXNlcyBpdC4KKworY29tbWl0IGFkODdiYjYwOGIzMDU1NjdhM2M1ZWFmMDQ2YjdjOThlYTNlNGJkZDUKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSnVsIDQgMTE6MzA6MDQgMjAxMyArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIIDI0NzI6IGZyb20gU3VuaWw6IGRvbid0IHVzZSBIQktUIGFzIGhlYXJ0YmVhdCBpbnRlcnZhbCBpbiBTQ1RQLU1JQjo6c2N0cEFzc29jVGFibGUuCisKK2NvbW1pdCA0YzRhNDI4MWZkNWIyYzYxNTZjNTEyMGY5YTJlOGI3MDhmNDY2Y2NkCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEp1bCA0IDExOjA4OjQ4IDIwMTMgKzAyMDAKKworICAgIGluY2x1ZGVEaXIgaXMgbm90IHByZWRpY3RhYmxlIHdpdGggcmVsYXRpdmUgcGF0aHMKKworY29tbWl0IDc5ZThkZDJhMzcyYTIwZWU5N2RlMWM3MTA3YjU5YWQ0YWFmODlhMzYKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSnVsIDQgMTA6NDc6MjkgMjAxMyArMDIwMAorCisgICAgVXBkYXRlIGNvbmZpZ3VyYXRpb24gZG9jdW1lbnRhdGlvbiB3aXRoIGluY2x1ZGVGaWxlIGFuZCBpbmNsdWRlRGlyLgorCitjb21taXQgZTBlODA0NDgyYmVjNzBmNGM0MTZhMzVmY2IzMjNhNDE2OTk2NWM1ZgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEp1bCAzIDE1OjA4OjE0IDIwMTMgKzAyMDAKKworICAgIENIQU5HRVM6IEJVRzogMjQ3MDogQWNjZXB0IDY1NTM1IGFzIGEgdmFsaWQgSVB2NiBwb3J0IG51bWJlcgorCitjb21taXQgZGQzMzJhMDM1ZTg1M2M3MmE4MzI3NDg0NjliYWI3Yjg4MmUyN2I3YworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEp1bCAyIDA3OjAwOjUxIDIwMTMgKzAyMDAKKworICAgIEJVRyBhIzI0NjM6IEZpeCBjb25maWd1cmUgdG8gcmVzcGVjdCBkYXRhIGZyb20gbXlzcWxfY29uZmlnLgorCitjb21taXQgNDA4Y2M5NzMyYzM0NjExMWZjMWZkYTIzZTEzNmQ2MDg4M2NkYjdlNAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBKdWwgMSAxNDoyNTo0MSAyMDEzICswMjAwCisKKyAgICBDSEFOR0VTOiBweXRob246IGNvcnJlY3RseSByZXBvcnQgZXJyb3Igd2hlbiBwYXJzaW5nIG1hbGZvcm1lZCBPSUQuCisKK2NvbW1pdCA5YTJiZmM4Zjk1ZDZlOTI2ZGNiZjE2ZmY0NGI1M2IyN2UzOGM4NDM3CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEp1bCAxIDEzOjU0OjM4IDIwMTMgKzAyMDAKKworICAgIENIQU5HRVM6IHB5dGhvbjogRml4ZWQgcmV0dXJuaW5nIG9mIGVtcHR5IHN0cmluZ3MuCisgICAgCisgICAgVmFyYmluZCB0eXBlIChTTk1QX05PU1VDSE9CSkVDVCBldGMuKSBzaG91bGQgYmUgdXNlZCB0byBkZXRlY3QgZXJyb3JzIGluc3RlYWQgb2YgbGVuZ3RoIG9mIHRoZSB2YXJpYWJsZSAtIGl0IGNhbiBiZSBlbXB0eSBzdHJpbmcuCisKK2NvbW1pdCAxYTBmMDc1NzRhODBkMWQ2YTY3ODhjYWViMzkxYTFkMmZlZjk1NzEwCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEp1biAyOCAxMDozNzo0NiAyMDEzICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogc2hvdyBMaW51eCBrZXJuZWwgdGhyZWFkcyBpbiBoclNXUnVuVGFibGUuCisKK2NvbW1pdCAyNjU5YzBmNmJkODZmMDE3MTg2OWQzNGZmOGE3ZDQ4MTk0ZWE0YjMxCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIE1heSAyMSAwOToxMzo0MSAyMDEzICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogQWRkZWQgYnRyZnMgc3VwcG9ydCB0byBockZTVGFibGUKKworY29tbWl0IGE4NDAzOWQwYTFkNmY1NTBiNDczZDI5NTkyMTAxMGQ4MGUxOGQ4M2YKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKdW4gMjUgMTQ6NTU6MjYgMjAxMyArMDIwMAorCisgICAgc25tcF9zdHJjYXQ6IGRvbnQgdGVzdCAqYnVmIGJlZm9yZSB3ZSBoYXZlIHRyaWVkIHJlYWxsb2MKKworY29tbWl0IDU1NTNlZjQzNjJkNTI0YTA4OGI1MTllMTM1NTYxNThlNWQ2MjVlYzQKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBKdW4gMyAwMjo0ODowNiAyMDEyICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBEbyBub3QgcHJpbnRmKCIlcyIsIE5VTEwpIGFzIHRoYXQgaXMgdW5kZWZpbmVkIGJlaGF2aW91ci4KKworY29tbWl0IDg5NDE2ZTc5ZjVjNTA1NjhlOTljMDdmYWIwNmE5YWU5Zjk3NmJiZWYKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIE1vbiBKdW4gMjQgMjI6MjI6MDMgMjAxMyArMDIwMAorCisgICAgQlVHOiBBMjQ0MTogQ29ycmVjdCBjb21tZW50CisKK2NvbW1pdCAxYTNhZTY0NzdiODE2M2ExYjQzYjgzNGFiYjMwYjFmMDMxNDVhYjYyCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTYXQgSnVuIDIyIDIwOjI3OjM0IDIwMTMgKzAyMDAKKworICAgIENIQU5HRVM6IEhPU1QtUkVTT1VSQ0VTLU1JQiwgaHJTV1J1biB0YWJsZTogUGFyc2UgL3Byb2MvPHBpZD4vc3RhdCBjb3JyZWN0bHkgb24gTGludXgKKyAgICAKKyAgICBUaGlzIGlzc3VlIHdhcyByZXBvcnRlZCBieSBWaW5jZW50IEJlcm5hdCA8dmluY2VudC5iZXJuYXRAZGFpbHltb3Rpb24uY29tPi4KKyAgICBTZWUgYWxzbyBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvbmV0LXNubXAvcGF0Y2hlcy8xMjU3Ly4KKworY29tbWl0IGY5MmZmZTkxN2EzMDBjNDFlYmUwN2UyNGM2NDE4ODU1ZTc1OWY5MzgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFNhdCBKdW4gMjIgMTk6Mzc6MDMgMjAxMyArMDIwMAorCisgICAgc25tcHRyYXBkOiBGaXggYSBkb3VibGUgZnJlZSBpbiBhbiBlcnJvciBwYXRoCisgICAgCisgICAgRGV0ZWN0ZWQgYnkgQ292ZXJpdHkuIFNlZSBhbHNvIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9uZXQtc25tcC9wYXRjaGVzLzEyNTEvLgorCitjb21taXQgYzVmM2ExZDhiYjU4MDQ3OTliNjAyZDI3NjliMDMxZDZmYWY1ZjBlZAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU2F0IEp1biAyMiAxNzo1MTo0MyAyMDEzICswMjAwCisKKyAgICBzbm1wbGliOiBoZXhfdG9fYmluYXJ5MigpOiBSZXR1cm4gLTEgaWYgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHMKKworY29tbWl0IGY4ZjA4ZTFkNmQzZWM4MTk0ZmFiZDZhYjAwMmFiOTE3YWZiYTkxYTMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFNhdCBKdW4gMjIgMTc6MTM6MDEgMjAxMyArMDIwMAorCisgICAgc25tcGxpYjogU2ltcGxpZnkgdGhlIGNvZGUgZm9yIGRlbGV0aW5nIGEgcmVxdWVzdCBmcm9tIHRoZSByZXF1ZXN0IGxpc3QKKyAgICAKKyAgICBUaGUgZ29hbCBpcyAoaG9wZWZ1bGx5KSB0aGF0IHRoZSBuZXcgaW1wbGVtZW50YXRpb24gZG9lcyBub3QgY29uZnVzZQorICAgIENvdmVyaXR5IGFueW1vcmUuIFNlZSBhbHNvIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9uZXQtc25tcC9wYXRjaGVzLzEyNTEvLgorCitjb21taXQgZWY2ZDVjN2EwMzEzMjQ3YTZjOTQ3MzI2MTc3N2U5NjNmN2E0OTUyOQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU2F0IEp1biAyMiAxNDo0ODoyMiAyMDEzICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBzbm1wX3N0cmNhdCgpOiBDaGVjayAqYnVmIGJlZm9yZSB1c2luZyBpdAorICAgIAorICAgIERldGVjdGVkIGJ5IENvdmVyaXR5LiBTZWUgYWxzbyBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvbmV0LXNubXAvcGF0Y2hlcy8xMjUxLy4KKworY29tbWl0IDI1NjZiODNlYmViMGUzNGVlYTkwNzkyOGM1NGMyYjRlNzRmZjM3ZjgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFNhdCBKdW4gMjIgMTQ6MjM6MzMgMjAxMyArMDIwMAorCisgICAgaHJTV0luc3RhbGxlZCB0YWJsZTogQ2hlY2sgc3RhdCgpIHJldHVybiB2YWx1ZSAoMi8yKQorICAgIAorICAgIERldGVjdGVkIGJ5IENvdmVyaXR5LiBTZWUgYWxzbyBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvbmV0LXNubXAvcGF0Y2hlcy8xMjUxLy4KKworY29tbWl0IDQ5Y2ZlNGQ4NDBjNThlMTIwMmZhMjcxZmJlNzYwYmQ3NTI2YTgzYTgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFNhdCBKdW4gMjIgMTQ6MjM6MDMgMjAxMyArMDIwMAorCisgICAgaHJTV0luc3RhbGxlZCB0YWJsZTogQ2hlY2sgc3RhdCgpIHJldHVybiB2YWx1ZSAoMS8yKQorICAgIAorICAgIERldGVjdGVkIGJ5IENvdmVyaXR5LiBTZWUgYWxzbyBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvbmV0LXNubXAvcGF0Y2hlcy8xMjUxLy4KKworY29tbWl0IDVkZjU0NjI2MzlmMjQzZDU5MjlmYTliYTE0ZDIwYjM3MTFmN2NhY2UKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFNhdCBKdW4gMjIgMTQ6MjE6MTggMjAxMyArMDIwMAorCisgICAgdWNkLXNubXA6IGZpbmRfZGV2aWNlKCk6IFJlbW92ZSBhbiB1bnVzZWQgdmFyaWFibGUKKyAgICAKKyAgICBEZXRlY3RlZCBieSBDb3Zlcml0eS4gU2VlIGFsc28gaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wL25ldC1zbm1wL3BhdGNoZXMvMTI1MS8KKworY29tbWl0IDEzY2UxOTk2YTgyZTBiNDU4YjI2YWUzOWFiZjIwMTJkYjU5YzhhNTUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFNhdCBKdW4gMjIgMTQ6MjA6MTUgMjAxMyArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogX2luc2VydF9uc2ZpbGUoKTogQ2hlY2sgc3RhdCgpIHJldHVybiB2YWx1ZQorICAgIAorICAgIERldGVjdGVkIGJ5IENvdmVyaXR5LiBTZWUgYWxzbyBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvbmV0LXNubXAvcGF0Y2hlcy8xMjUxLy4KKworY29tbWl0IDgxYTBkODU5MTYzZjhkNTQ5MDg1MjViNTIyNDMyOTVkN2I0MTQ1NTAKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFNhdCBKdW4gMjIgMTQ6MDc6MzcgMjAxMyArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogRml4IGEgYmFkIGZyZWUoKQorICAgIAorICAgIERldGVjdGVkIGJ5IENvdmVyaXR5LiBTZWUgYWxzbyBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvbmV0LXNubXAvcGF0Y2hlcy8xMjUxLy4KKworY29tbWl0IGQzNGM4M2U5MzQyNDE5YWVlY2ZmNWZmZDdkZWFiODM5ODdkYmViY2EKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFNhdCBKdW4gMjIgMTQ6MDA6MzkgMjAxMyArMDIwMAorCisgICAgZXRoZXJsaWtlLW1pYiwgcm1vbi1taWI6IEZpeCBtYWxsb2MoLi4uKSA8IDAgdGVzdHMKKyAgICAKKyAgICBEZXRlY3RlZCBieSBDb3Zlcml0eS4gU2VlIGFsc28gaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wL25ldC1zbm1wL3BhdGNoZXMvMTI1MS8uCisKK2NvbW1pdCA0M2M0NDAxNzZiM2U0ZjljZTk5NWU0ODJlYzY5NzViYTBjODU5YmYzCitBdXRob3I6IE1pY2hhZWwgU2hjd2FyY3ogPE1pY2hhZWwuU2hjd2FyY3pAY29tcGFzcy1lb3MuY29tPgorRGF0ZTogICBTYXQgSnVuIDIyIDEyOjQ2OjA0IDIwMTMgKzAyMDAKKworICAgIENIQU5HRVM6IHNubXB0cmFwZDogRml4IGEgZG91YmxlIGZyZWUgYXQgZXhpdAorICAgIAorICAgIEEgcXVvdGUgZnJvbSBhIG1lc3NhZ2UgZnJvbSBNaWNoYWVsIFNoY3dhcmN6OgorICAgIAorICAgIEkgYW0gcnVubmluZyBuZXQtc25tcCA1LjcuMiBhbmQgaXQgbG9va3MgbGlrZSB0aGVyZSBpcyBhIGRvdWJsZQorICAgIGZyZWUgcHJvYmxlbSBpbiBzbm1wdHJhcGQsIGluIGZyZWVfdHJhcGRfYWRkcmVzcygpIGFuZAorICAgIHBhcnNlX3RyYXBkX2FkZHJlc3MoKS4gSSBnZXQgYSBTSUdBQk9SVCBvbiB0aGUgc2Vjb25kIFNJR0hVUAorICAgIChsb29rcyBsaWtlIGl0IGRvZXMgYSBkb3VibGUgZnJlZSBvbiB0aGUgZmlyc3QgU0lHSFVQIGFuZCBvbgorICAgIHRoZSBzZWNvbmQgaXQgY3Jhc2hlcykuCisgICAgCisgICAgSSBoYXZlIHRoaXMgc25tcHRyYXBkLmNvbmYgY29uZmlndXJhdGlvbjoKKyAgICAgIHNubXBUcmFwZEFkZHIgdWRwOjE2Mix1ZHA2OjE2MgorICAgICAgYXV0aENvbW11bml0eSBsb2csZXhlY3V0ZSxuZXQgcHVibGljCisgICAgCisgICAgQW5kIHRoaXMgaXMgdGhlIGJhY2stdHJhY2UgZnJvbSBnZGI6CisgICAgKioqIGdsaWJjIGRldGVjdGVkICoqKiAvb3B0L2NvbXBhc3MvYmluL3NubXB0cmFwZDogZnJlZSgpOiBpbnZhbGlkIG5leHQgc2l6ZSAoZmFzdCk6IDB4MDgwYzE3YTggKioqCisgICAgPT09PT09PSBCYWNrdHJhY2U6ID09PT09PT09PQorICAgIC9saWIvbGliYy5zby42WzB4ZjcyMDQ4NDVdCisgICAgL2xpYi9saWJjLnNvLjYoY2ZyZWUrMHg5YylbMHhmNzIwNjZlY10KKyAgICAvb3B0L2NvbXBhc3MvYmluL3NubXB0cmFwZChmcmVlX3RyYXBkX2FkZHJlc3MrMHgyYSlbMHg4MDRhNmJhXQorICAgIC91c3IvbGliL2xpYm5ldHNubXAuc28uMzAoZnJlZV9jb25maWcrMHgzMilbMHhmNzRhZTRjMl0KKyAgICAvb3B0L2NvbXBhc3MvYmluL3NubXB0cmFwZFsweDgwNGE1NTddCisgICAgL29wdC9jb21wYXNzL2Jpbi9zbm1wdHJhcGRbMHg4MDRiZmE5XQorICAgIC9saWIvbGliYy5zby42KF9fbGliY19zdGFydF9tYWluKzB4ZTUpWzB4ZjcxYjA0NTVdCisgICAgCisgICAgSSBoYXZlIGEgcGF0Y2ggdGhhdCBmaXhlcyB0aGlzIGlzc3VlLCBoZXJlIGlzIHRoZSBkaWZmOgorICAgIEBAIC00NDYsNiArNDQ2LDcgQEAgZnJlZV90cmFwZF9hZGRyZXNzKHZvaWQpCisgICAgeworICAgICAgICAgaWYgKGRlZmF1bHRfcG9ydCAhPSBkZGVmYXVsdF9wb3J0KSB7CisgICAgICAgICAgICBmcmVlKGRlZmF1bHRfcG9ydCk7CisgICAgKyAgICAgICBkZWZhdWx0X3BvcnQgPSBkZGVmYXVsdF9wb3J0OworICAgICAgICAgfQorICAgIH0KKworY29tbWl0IDJkYjU0ODVmYzFjY2NlMzllZmE2OWEzNzdiYjhkNmY2MjMxZWIwYjIKK0F1dGhvcjogRXJpYyBTLiBSYXltb25kIDxlc3JAdGh5cnN1cy5jb20+CitEYXRlOiAgIEZyaSBKdW4gMjEgMTA6NDc6MzIgMjAxMyArMDIwMAorCisgICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogZnJvbSAiRXJpYyBTLiBSYXltb25kIjogQ29ycmVjdCBtYW4gcGFnZSBtYXJrdXAgcHJvYmxlbQorICAgIEFtYmlndW91cyBvciBpbnZhbGlkIGJhY2tzbGFzaC4gIFRoaXMgZG9lc24ndCBjYXVzZSBncm9mZiBhIHByb2JsZW0uCisgICAgYnV0IGl0IGNvbmZ1c2VzIGRvY2xpZnRlciBhbmQgbWF5IGNvbmZ1c2Ugb2xkZXIgdHJvZmYgaW1wbGVtZW50YXRpb25zLgorCitjb21taXQgZDY3NzE0NjRmMTZkYzZmZTY0ZGQyNGMwOGFmNGJlNzI1ODg1YWRhZAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgVHVlIEp1biAxOCAyMzo0NToyOCAyMDEzICswMjAwCisKKyAgICBDSEFOR0VTOiBhcHBzOiBTdG9wIGFnZW50eHRyYXAgZnJvbSBhY2Nlc3NpbmcgdGhlIHBlcnNpc3RlbnQgY29uZmlndXJhdGlvbgorICAgIFRoaXMgaXMgbmVlZGVkIHRvIHByZXZlbnQgbW9hbmluZyBhYm91dCBub3QgYmVlaW5nIGFsbG93ZWQgdG8gd3JpdGUgdGhvc2UKKyAgICBmaWxlcyBkdWUgdG8gYmFkIHBlcm1pc3Npb25zLgorCitjb21taXQgMTRhYzVkNWQyYzRkOWYzYTc5OWQ0MDFjYzFlNDAzYThhMjkyZDQyNQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEp1biAxMiAyMjozNzoyMyAyMDEzICswMjAwCisKKyAgICBEYXJ3aW4gZml4ZXM6IFVEUCBhbmQgVENQIHRhYmxlcywgbWVtb3J5IGRhdGEsIGFuZCBzb21lIGVycm9yIGNoZWNraW5nLgorCitjb21taXQgYmFiZDMxZDEwNDllMjMzYzQ1NGYxY2JkODhiYmE3NWYyZjQwNzgxZQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEp1biAxMiAyMjoyNToxOSAyMDEzICswMjAwCisKKyAgICBGaXggc29tZSBtYW4gcGFnZXMgcmVmZXJlbmNlcyB0byBvdGhlciBwYWdlcworCitjb21taXQgYmRlZmNlMDZhMWVhMWMxNDMwODAyNzE0ZmM4MzdiNTU4ZTFhNjc1YQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEp1biAxMiAyMjoyMzo1NyAyMDEzICswMjAwCisKKyAgICBVcGRhdGVkIEVOVElUWS1NSUIgaW4gcmZjIDY5MzMKKworY29tbWl0IGRmODYzYTUzNDhhYWJmNzFiYmNhN2JmZWZjZjhiZWI4YmI5ZTc3NjIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBKdW4gMTIgMjI6MTc6NDYgMjAxMyArMDIwMAorCisgICAgRml4IEJ1ZyAjMjQyNzogQ2Fubm90IHJlc29sdmUgSVB2NiBvbmx5IGhvc3RuYW1lcywgYnkgYWNjZXB0aW5nIGEgbGlzdAorICAgIG9mIHRyYW5zcG9ydCBkb21haW5zLgorCitjb21taXQgZGExZmVmMzgyNTkxZmY0NWRjOTJlYjNiOTVhNmJmZWZmOWVjZmE0ZgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBNYXkgMjEgMDk6MTM6NDEgMjAxMyArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IEFkZGVkIGJ0cmZzIHN1cHBvcnQgdG8gaHJGU1RhYmxlCisKK2NvbW1pdCA5MzFjODdhMDVmNWY2NjI4OTYxM2ZlZDc3YWM3ODg0NGI2MWNiNzlmCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTWF5IDE1IDIwOjE4OjE0IDIwMTMgKzAyMDAKKworICAgIEJVRyAyNDU4OiBGaXggbWlzc2luZyBpbml0aWFsaXphdGlvbiBvZiBhdXRvX25saXN0IHN0cnVjdHVyZSAoVGhhbmtzIFJ5YW4gU3RlaW5tZXR6KQorCitjb21taXQgOTEwNGUyYTNmMTk1NTA2YTQ3NzMzOTgzZDhjYmEzOGVkNTkyYTk4OAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE1heSAxNSAyMDoxMzowNSAyMDEzICswMjAwCisKKyAgICBQQVRDSCAxMjUzOiBGaXggcGFyc2luZyBvZiBERUZWQUwgQklUUyAoVGhhbmtzIE1pa2UpCisKK2NvbW1pdCA4NTVlNTRlMzQ1YzU1ZWEyMmI3ZTdhYzEyYTI0OWQ3NDA5ZmJiMzA5CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTWF5IDE1IDIwOjExOjI5IDIwMTMgKzAyMDAKKworICAgIHJmY2xpc3Q6IGFkZCBSRkMgNjk0NQorCitjb21taXQgMzY1MjdjZDhjY2E2NTA3MTNjODVlMDMyOGMwYzJhMWNkMDk1YzM1OAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU3VuIE1heSAxMiAxMDowNDowOCAyMDEzICswMjAwCisKKyAgICBXaW5kb3dzLCBWaXN1YWwgU3R1ZGlvOiBVbmJyZWFrIGNvbXBpbGF0aW9uIHdpdGggdGhlIFdpbmRvd3MgWFAgUGxhdGZvcm0gU0RLCisgICAgCisgICAgVGhpcyB3YXMgcmVwb3J0ZWQgYnkgV2ltIERldm9zCisKK2NvbW1pdCA1MTdhNTUxMjEwMmQzMzk0ODljOWE3MGVhOGQwODdhMGUxMDAzNWE5CitBdXRob3I6IFdpbSBEZXZvcyA8V2ltLkRldm9zQG1ldWNjaS1zb2x1dGlvbnMuY29tPgorRGF0ZTogICBTdW4gTWF5IDEyIDA5OjQwOjUzIDIwMTMgKzAyMDAKKworICAgIFdpbmRvd3M6IFVuYnJlYWsgdGhlIFZpc3VhbCBTdHVkaW8gYnVpbGQKKyAgICAKKyAgICAic3RhdGljIE5FVFNOTVBfSU5MSU5FIiB0cmlnZ2VycyB0aGUgZXJyb3IgbWVzc2FnZSAiZXJyb3IgQzIxNTk6IG1vcmUKKyAgICB0aGFuIG9uZSBzdG9yYWdlIGNsYXNzIHNwZWNpZmllZCIsIHNvIHVzZSBORVRTTk1QX1NUQVRJQ19JTkxJTkUgaW5zdGVhZC4KKworY29tbWl0IDRkZjAyZjk2N2QwYjlkMTZjYTEyYjU4MjE1ZTk4MzViYzlmMzkxY2EKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBNYXkgNCAxNDo1NDo0OCAyMDEzICswMjAwCisKKyAgICBSZW1vdmUgY29tcGlsZXIgd2FybmluZyBhYm91dCBtaXNzaW5nIHByb3RvdHlwZQorCitjb21taXQgMThkYWZhNThkODEyMTk2MWIwNThkNmQ0MTY3MDdkZjFkNmEwNDJhYworQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IE1heSA0IDE0OjUzOjEwIDIwMTMgKzAyMDAKKworICAgIFJlbW92ZSBvbmUgY29weSBvZiB0aGUgbGludXhfc3RhdGVzIGFycmF5LiBNYWtlIHRoZSB3aG9sZSB0aGluZyBjb25zdC4KKworY29tbWl0IDAyYWQ4MWVhMmRlMmQ0Njg3Nzk0MDU3ZTJlODEwNGE2NTIzOTI1NGQKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIEZyaSBNYXkgMyAwODowODowMSAyMDEzICswMjAwCisKKyAgICBSZXZlcnQgdGhlIGZ1bmN0aW9uYWwgY2hhbmdlcyBmcm9tICdGaXggbWl4aW5nIG9mIGNvZGUgYW5kIGRlY2xhcmF0aW9ucydbMV0KKyAgICBpbiBvcmRlciB0byBub3QgdXNlIHZhcmlhYmxlcyBiZWZvcmUgdGhleSBhcmUgc2V0IGFuZCBub3QgaW5jcmVhc2UgdGhlCisgICAgcHJvYmFiaWxpdHkgZm9yIG1lbW9yeSBsZWFrcy4KKyAgICAKKyAgICAxKSByZXYgZWVmYzI1Y2E2NzA1YTJkMWE4ZjUyMTYwNzZmNDM5ZTBkM2UzZWY3NgorCitjb21taXQgNGZkMDUyNWQ2YTY1YWNmZWEzZDdiNDMxYzk3ODkzZGM0NzkyN2RhOAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IE1heSAyIDIyOjQ1OjUxIDIwMTMgKzAyMDAKKworICAgIGF1dG9jb25mCisKK2NvbW1pdCA1NWRkZDgyOTVhZTY1ZTQ3ZjIyMGY0ODA3Nzk0ZmJhYzliNjlmMGZhCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgTWF5IDIgMjI6MjA6NDYgMjAxMyArMDIwMAorCisgICAgdGVzdGluZzogRG9jdW1lbnQgd2h5IHdlIHNraXAgdGVzdHMKKworY29tbWl0IGVlZmMyNWNhNjcwNWEyZDFhOGY1MjE2MDc2ZjQzOWUwZDNlM2VmNzYKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBNYXkgMiAyMjoxMzo0MiAyMDEzICswMjAwCisKKyAgICBGaXggbWl4aW5nIG9mIGNvZGUgYW5kIGRlY2xhcmF0aW9ucy4KKworY29tbWl0IGI5NGI3MzRkZDM1M2JjZjc5M2M4YjY1YTI3M2ExMzg3YmZkMjU2ZWEKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBNYXkgMiAyMjoxMjoxMSAyMDEzICswMjAwCisKKyAgICBEYXJ3aW46IHN1cHBvcnQgNjQtYml0IGNvdW50ZXJzIGZvciBkaXNraW8gdGFibGUKKworY29tbWl0IDhkODQxYzFkOWIxYjRlZWMyNjRkNjgyYWMxMjYwMzJhYTA4ZjJlODIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBNYXkgMiAyMjowOToxNyAyMDEzICswMjAwCisKKyAgICBDSEFOR0VTOiBTdXBwb3J0IG5ldyBNSUIgc3RydWN0dXJlcyBhbmQgTUZEIHJld3JpdGVzIHVuZGVyIERhcndpbgorCitjb21taXQgMjc2NDBmY2ZiMjA1MjZiZWYyZjZlYjQwYzJhNTQ1NjZkZmM2YzRjNgorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IEFwciAyNyAxMDo1ODoyOSAyMDEzICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogQ29ycmVjdCB0aGUgc2l6ZSBvZiBvZiB0aGUgRVhBTVBMRUlQQUREUkVTUyB2YWx1ZSBvbiBMNjQgaG9zdHMKKworY29tbWl0IGViYmUyYTM5OTBlZjZkY2JkY2I5OWEzOWFkZDQ2NTM5ODM1NGMzNGMKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFR1ZSBBcHIgMjMgMDc6MjU6MjEgMjAxMyArMDIwMAorCisgICAgYnVpbGRpbmc6IE1ha2UgLS1lbmFibGUtbWluaW1hbGlzdCBjb21waWxhdGlvbiB3b3JrIGFnYWluCisKK2NvbW1pdCA0YmQ3ZDczYjFmZTYwYmI1MzZiZjM5ZWI0YTM4NTk2ZTg5NjVjM2YzCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gQXByIDIyIDIyOjI1OjM4IDIwMTMgKzAyMDAKKworICAgIHR5cGVjYXN0IHRvIHNpbGVuY2Ugd2FybmluZyBmb3IgZm9ybWF0CisKK2NvbW1pdCBkYjA3MWQwYTZmNDg3NDIxNzY5YjY5ZjIyY2NmMDljYzI0MmQ5NDU0CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gQXByIDIyIDIyOjIzOjUyIDIwMTMgKzAyMDAKKworICAgIE9ubHkgZGVjbGFyZSBIUlBfbWF4bmFtZXMgd2hlbiBuZWVkZWQKKworY29tbWl0IGZhZjAwY2UzYjBmZWI0ZDM3ZmFiZWY2ZDQxMzVlMzY4MDNiMDAzNzkKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBBcHIgMjIgMjI6MjI6MjQgMjAxMyArMDIwMAorCisgICAgaXAuYzogZml4IGluY29uc2lzdGVucyBkZWNsYXJhdGlvbnMgb2YgaXBfbW9kdWxlX29pZF9sZW4KKworY29tbWl0IDdmNmI1OTUzM2NkZmEwNjQ1MGFlZTQxNTcwMjIzYjFjZGQyY2E2YjgKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBBcHIgMjIgMjI6MTk6NDQgMjAxMyArMDIwMAorCisgICAgUmVjb3ZlciBmcm9tIGZhaWx1cmVzIGluIGxpYnBjaQorCitjb21taXQgNDA5MzhhNjI2MTk1OTBiNGVhMDcxYWU4NWJhYTJmNDJhMGI3ZmNiMgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBBcHIgMjIgMTU6MDA6MDAgMjAxMyArMDIwMAorCisgICAgQ2hlY2sgaWYgJ2Fzbl9wYXJzZV8qICcgYWN0dWFsbHkgc3VjY2VlZGVkLgorICAgIAorICAgIElmIG5vdCwgZGlzY2FyZCB0aGUgcGFja2V0IGluc3RlYWQgb2YgdXNpbmcgd3JvbmcgZGF0YS4KKworY29tbWl0IGFhNGZiOTQ5MDEyZDdjMDIyYTQzNjk5MmFjMjAzYzA2NWZkNzQyMGEKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gQXByIDIyIDE0OjU4OjQxIDIwMTMgKzAyMDAKKworICAgIEludGVnZXIgdmFsdWVzIGVuY29kZWQgaW4gQkVSIG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyLgorICAgIAorICAgIElmIGFzbl9sZW5ndGggPT0gMCwgd2Ugd291bGQgcmVhZCB0aGUgZmlyc3QgYnl0ZSBvZiB0aGUgbmV4dCB2YXJiaW5kIG9uIG5leHQgbGluZToKKyAgICAgICAgaWYgKCpidWZwICYgMHg4MCkKKyAgICAtPiByZWFkaW5nIHBhc3QgdGhlIGJ1ZmZlciBpZiB0aGVyZSBpcyBubyBzdWNoIHZhcmlhYmxlIC0+IHNpZ3NlZ3YuCisKK2NvbW1pdCBmNmVlZDZlMjM4NGNiZjg1Nzc2OGYwZWU4YzY2MDJlYjdjZDJmMDNhCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBNb24gQXByIDIyIDA4OjE4OjU0IDIwMTMgKzAyMDAKKworICAgIFJlZ2VuZXJhdGUgY29uZmlndXJlCisKK2NvbW1pdCBhNTg3ZDExZmI2N2ZhZDNhZjI0NTE3YTQwOGFiYzM3MDA1NjVlZGY1CitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBNb24gQXByIDIyIDA4OjE4OjM1IDIwMTMgKzAyMDAKKworICAgIFJlZ2VuZXJhdGUgY29uZmlndXJlCisKK2NvbW1pdCBjZTNjOTIxNDEyOGIxY2RiZWJkMjk3NWRhMGYzNmE1NWUyNTg0ZmEwCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBNb24gQXByIDIyIDA4OjE2OjAyIDIwMTMgKzAyMDAKKworICAgIFJlcG9ydCB0aGUgcmVzdWx0IG9mIHRoZSBQT1NJWCBzaGVsbCB0ZXN0LCBub3QgYSBjb25zdGFudCB5ZXMKKworY29tbWl0IDBjODcwZjc0YjJlNDMzN2I0YmYzYjdmMTFmNTViMTJlODBkZjQ5ZmYKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIE1vbiBBcHIgMjIgMDg6MDA6MzIgMjAxMyArMDIwMAorCisgICAgQ2hhbmdlIHRoZSBjaGVjayBvZiBwZXJsIHNoZWxsIGRldGVjdGlvbiB0byB3b3JrIHdpdGggQUlYIHNoIGFzIHdlbGwKKworY29tbWl0IDVmMDgxOWYxMDJkMWNkZTM4OTlkMDg3MDhjOWMxMjYyNjg4OTkzMTgKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIE1vbiBBcHIgMSAwNzozODowOSAyMDEzICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSB1cGRhdGUtY29udHJvbGxlZCBjaGFuZ2VzIHRyaWdnZXIgcGVyaW9kaWMgc2F2ZXMuIFRoYW5rcyB0byBDbGF1cyBLbGVpbiBmb3Igbm90aWNpbmcgdGhhdCB0aGlzIHdhcyBtaXNzaW5nLgorCitjb21taXQgYThmZjI2ODgzZDYzODYxZDg3Njk4NWRkZTg5ZjM4OTE1NzdkNjAyNgorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIE1hciAzMSAxMzozMzowMiAyMDEzICswMjAwCisKKyAgICBzbm1wZDogTWFrZSB0aGUgdXBkYXRlIGhhbmRsZXIgY2FsbCBhbnkgY2hpbGQgaGFuZGxlcnMKKworY29tbWl0IDJiYzYyYjk3MmEyYmQwYjkxZGRkNGY3YzExZDQ3ZGJlNWJmNmZmMDMKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBNYXIgMzEgMTM6MzI6MjkgMjAxMyArMDIwMAorCisgICAgc25tcGQ6IERvIG5vdCBsZWFrIG1lbW9yeSBpZiBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlscy4KKworY29tbWl0IGFlOTE0OGI1MWI5YjAyMjcwZmRkYmI3NDExMWJhMmMwMmE4ZWE2N2MKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBBcHIgMTYgMjI6MDM6MDAgMjAxMyArMDIwMAorCisgICAgZXh0ZW5kLmM6IGZpeCBtaXNzaW5nIHNlbWljb2xvbiBhbmQgd2FybmluZworCitjb21taXQgNDY0MjJkMTdkZmRiNDE2ZWIyNGFkN2RiNzQ1M2VjNDczZGIyMDgyMAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBBcHIgMTYgMTM6NDg6MjYgMjAxMyArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIGNyYXNoIGluIFVDRC1TTk1QLU1JQjo6ZXh0VGFibGUKKyAgICAKKyAgICBzbm1wZCBjcmFzaGVkIHdoZW4gdGhlIGNvbW1hbmQgdG8gZXhlY3V0ZSBoYWQgbm8gYXJndW1lbnRzLCBpLmUuIGV4dGVuZC0+YXJncyB3YXMgTlVMTC4KKworY29tbWl0IDhiNTdiZGIwYTA5NDcyYTE2ZDNhZjY5ZmQyYjEzNzRjMDllNmEzYWQKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBBcHIgOCAyMDozNjozNSAyMDEzICswMjAwCisKKyAgICByZXJ1biBhdXRvaGVhZGVyL2F1dG9jb25mCisKK2NvbW1pdCA5YTllYTI1N2U2ZWI0NzgwMGQzNGYxYTg2ZWMwYTJhNmU5MDg1ZjMxCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gQXByIDggMjA6MzU6MjQgMjAxMyArMDIwMAorCisgICAgcmVydW4gYXV0b2hlYWRlci9hdXRvY29uZgorCitjb21taXQgNTlhMzIxNDM5OGJjZWIyMmM0OGQ1OGMwZmU5YzU1MmIyZTFlY2I4YworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEFwciA4IDIwOjMxOjQ5IDIwMTMgKzAyMDAKKworICAgIHJlcnVuIGF1dG9oZWFkZXIvYXV0b2NvbmYKKworY29tbWl0IGU0ZDcyZGIxMWQzZmI3YTQ0NDI1MDk3YjVlYzI2YjlmOTE3YTljODIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBBcHIgOCAxOToxNDowNCAyMDEzICswMjAwCisKKyAgICBzbm1wa3NtOiBoYW5kbGUgZGVwcmVjYXRlZCBrcmI1X2F1dGhfY29uX2dldHtsb2NhbCxyZW1vdGV9c3Via2V5CisKK2NvbW1pdCA5OWZmOTUzNjczZjczNjE0NDYzYWNlMTIxMGM0YWMwNzNhMWYyYTgxCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gQXByIDggMTk6MDU6NDcgMjAxMyArMDIwMAorCisgICAgc25tcGtzbTogZml4IHNvbWUgY29uc3QgY2FzdCB3YXJuaW5ncworCitjb21taXQgY2YwZDRlZjIyNGJhZDAwMDk5NTM3MDQ4M2E1Yzk4ZGMxNzgzOWE0MQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEFwciA1IDIyOjA1OjMzIDIwMTMgKzAyMDAKKworICAgIEluaXRpYWxpemUgYSBjb3VwbGUgb2YgdmFyaWFibGVzIHRvIHBsZWFzZSBjbGFuZworCitjb21taXQgNzFmNTllOWU2Yzk4ZThkYmZhYjFmZmIwZDFlNDY4YzEyZTNkOTJjZQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEFwciA1IDIxOjM4OjQ0IDIwMTMgKzAyMDAKKworICAgIE1ha2Ugc3VyZSBzbm1wa3NtIGluY2x1ZGVzIGNvbV9lcnIuaCAod2hlcmV2ZXIgaXQgaXMpIHRvIGRlY2xhcmUgZXJyb3JfbWVzc2FnZQorCitjb21taXQgOGMwMWY2NDcyOGE0MzY1NmRjM2FjNWZiZWZkZjhlY2VjOGRhMTUwNgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEFwciA1IDIxOjEzOjMwIDIwMTMgKzAyMDAKKworICAgIE1pbm9yIGZpeCB0byBpbmxpbmUgdG8gYWxsb3cgY29tcGlsYXRpb24gd2l0aCBjbGFuZworCitjb21taXQgMmRiMTJmNjg4ZTFmMmVlZWJiNTg5ZWM3M2RhODJlYjg5N2YzNGJkMQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgTW9uIE1hciAxOCAwODo1NDo0OSAyMDEzICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSB0aGUgbG9jYWwgdHJ1dGh2YWx1ZSBoYW5kbGVyIGNhbGwgYW55IHN1YmhhbmRsZXJzIGl0IG1pZ2h0IGhhdmUuIFRoYW5rcyB0byBDbGF1cyBLbGVpbiBmb3Igbm90aWNpbmcgdGhpcyBwcm9ibGVtLgorCitjb21taXQgOTA1MTJhMzJiZDFjMmJlNWQxN2IyM2YxMDk1NjI3ODM5NWRlMzc1NAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIE1hciAxOSAyMjoyODozNCAyMDEzICswMTAwCisKKyAgICBQYXRjaCAxMjUwIGZyb20gc3RoZW46IGluY2x1ZGUgPHN5cy9wcm9jLmg+IGluIHN3cnVuX2tpbmZvLmMgZm9yIE9wZW5CU0QgNS4zCisKK2NvbW1pdCAzOTE5MzYwMGVjMzhkZWI1MTM3OWExMDk2NDhkNjllN2U5MDAxNzAyCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgTWFyIDcgMjE6NDQ6NTkgMjAxMyArMDEwMAorCisgICAgc25tcG5ldHN0YXQ6IHByb3RvdHlwZSByb3V0ZTZwcgorCitjb21taXQgYWNjZTgyOTZkYzViNjhkMjEyZjc0MDRlZGMyYWZkYjhiMDI4MTdjMAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IE1hciA3IDIxOjM5OjE2IDIwMTMgKzAxMDAKKworICAgIGNsZWFuIHRhYnMgdHAgc3BhY2VzCisKK2NvbW1pdCA0MDJiZGFlOTZhNmQ3OWIzYjYzYjY3MjYxYjM3YTg0N2FiNDgxN2UzCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgTWFyIDcgMjE6Mzc6NDMgMjAxMyArMDEwMAorCisgICAgc25tcG5ldHN0YXQ6IGZhbGwgYmFjayB0byBpcHY0Um91dGVUYWJsZSAoVGhhbmtzIHRvIGZlbm5lcikKKworY29tbWl0IGU2OTE3ZTM3MmEwNmRkZDc3NjFiMzEwM2IzMjliY2Y2OTZlOTNhMWYKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBNYXIgNyAyMToyOTo0NCAyMDEzICswMTAwCisKKyAgICBzbm1wbmV0c3RhdDogc2hvdyBBUyBpbiByb3V0aW5nIHRhYmxlIGlmIGF2YWlsYWJsZSAoVGhhbmtzIHRvIGZlbm5lcikKKworY29tbWl0IDllYjhkMGY5MDdlZDhkNzhkZTkwZGNmNjYyM2MzMzA2MDk5M2YyYTAKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBNYXIgNyAyMToyODoyNiAyMDEzICswMTAwCisKKyAgICBzbm1wbmV0c3RhdDogZWFybHkgZGV0ZWN0IGlmIHdlIHdhbnQgaXB2NCByb3V0ZSB0YWJsZSAoVGhhbmtzIHRvIGZlbm5lcikKKworY29tbWl0IDQwODM3MzRlZjdmNGJlYWYxYjlhMTMyNTczOGJhMTg1ZWI3Y2M3MTYKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBNYXIgNyAyMToyNTo1MyAyMDEzICswMTAwCisKKyAgICBGaXggbWlzcGxhY2VkIG5ld2xpbmVzIGluIGVycm9yIG1lc3NhZ2VzCisKK2NvbW1pdCA1YjBlZDNiNzZmNmU0NjY5ZjIzOGI1YzgyY2QzY2M2Y2I2Y2FhNWNkCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgTWFyIDUgMTc6MTY6MjYgMjAxMyArMDEwMAorCisgICAgVW5pdCB0ZXN0IFQwMTQ6IEZpeCBhIEN5Z3dpbiBidWlsZCB3YXJuaW5nCisKK2NvbW1pdCAxMDZhZDI0NTBmMmI3ODg0OGYyOTJhZDAzNDQ1YTk3YzdmODdlNmY0CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgTWFyIDUgMTc6MTc6MDUgMjAxMyArMDEwMAorCisgICAgVW5pdCB0ZXN0IFQwMTQ6IEluaXRpYWxpemUgdmFyaWFibGVzIHByb3Blcmx5CisKK2NvbW1pdCBhN2RlYTU3MzQ4NTkzMTU2MTA1MWEyMDE5MDI3ZDdlZDA5ZDE1NTY1CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gTWFyIDQgMjI6MzU6MDYgMjAxMyArMDEwMAorCisgICAgcmZjbGlzdDogYWRkIEc5OTh4IG1pYnMKKworY29tbWl0IDQ2MDRjZjYxZTdjZjZlYTY0ZTc4MmY0YTNkNzJkNGZiMDI0YzFmOWIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBNYXIgNCAyMjoyMzoyMyAyMDEzICswMTAwCisKKyAgICBzbm1wbmV0c3RhdCAtQ3M6IGNvbnNpc3RlbnQgZmllbGQgd2lkdGhzIGZvciBzdGF0aXN0aWNzLiBEb2N1bWVudAorICAgIHNubXBuZXRzdGF0IC1Dc3MgdmFyaWFudC4KKworY29tbWl0IDRhYTkyMTU3Y2U1NWQxZTUyOGQ3ZGU1MjQ5MWQzZWI3MDIwODY5ZTcKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBNYXIgNCAyMjoxNzoxOSAyMDEzICswMTAwCisKKyAgICBzbm1wbmV0c3RhdC4xOiByZW1vdmUgaW52YWxpZCByZWZlcmVuY2VzIHRvIHJvdXRpbmcgc3RhdGlzdGljcyBvdXRwdXQuCisKK2NvbW1pdCA3NTFmNGE2YzdmYzg5YTVjZjJiMjg3OWY2ZjkxNWIzMTQ2NmEwNGI3CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gTWFyIDQgMjI6MTQ6MjkgMjAxMyArMDEwMAorCisgICAgc25tcG5ldHN0YXQ6IGZhbGwgYmFjayBmaXJzdCB0byBpcENpZHJSb3V0ZVRhYmxlLiBUaGFua3MgdG8KKyAgICBCaWxsIEZlbm5lciBmb3IgaW5pdGlhbCBwYXRjaCBmb3IgdGhpcy4KKworY29tbWl0IDkzYzg2ZTZlMWNmMzAxYmQyNjlmZGZmYjVlOWFhYWNlOGFhMTkzZjQKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFR1ZSBKYW4gMyAwNzoyMTowMyAyMDEyICswMTAwCisKKyAgICBEbyBub3QgbGVhayBtZW1vcnkgb24gZXJyb3IKKyAgICAKKyAgICBJZiBhbGxvY2F0aW9uIG9mIGlpbmZvIGZhaWxzIHRoZW4gdGFibGVfaW5mbyBpcyBsZWFrZWQuCisgICAgRGVhbGxvY2F0ZSB0YWJsZV9pbmZvIGluIHRoaXMgY2FzZS4KKworY29tbWl0IDM2YTdkZTcyMzBmYmJiYjUyY2MzN2NiYmVkMjgxZWI1NTk0MDRiZTkKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBGZWIgMjUgMjA6NDA6MDkgMjAxMyArMDEwMAorCisgICAgQ0hBTkdFUzogV2luZG93czogQWRkIG11bHRpaG9taW5nIHN1cHBvcnQKKyAgICAKKyAgICBPbiBXaW5kb3dzIFZpc3RhIC8gV2luZG93cyBTZXJ2ZXIgMjAwOCBhbmQgbGF0ZXIgaXQgaXMgcG9zc2libGUgdG8gYWRkCisgICAgbXVsdGlob21pbmcgc3VwcG9ydCBieSB1c2luZyB0aGUgSVBfUEtUSU5GTyBzb2NrZXQgb3B0aW9uLgorICAgIAorICAgIENvbmZsaWN0czoKKyAgICAJc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMKKworY29tbWl0IDdiYmFiYWIyMzYyZGFhNmQ3NmFkNzMwMzNiM2YzMmIyY2JhNzI1M2YKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBGZWIgMjIgMTg6NTU6NDcgMjAxMyArMDEwMAorCisgICAgUmV3b3JrIElQX1BLVElORk8gLyBJUF9SRUNWRFNUQUREUiBkZXRlY3Rpb24KKyAgICAKKyAgICBEZXRlY3QgSVBfUEtUSU5GTyAvIElQX1JFQ1ZEU1RBRERSIHN1cHBvcnQgZHVyaW5nIHRoZSBjb25maWd1cmUKKyAgICBwaGFzZSBpbnN0ZWFkIG9mIHJlcGVhdGluZyB0aGUgZm9sbG93aW5nIHRlc3QgaW4gZWlnaHQgZGlmZmVyZW50CisgICAgcGxhY2VzOgorICAgIAorICAgICAjaWYgKGRlZmluZWQobGludXgpICYmIGRlZmluZWQoSVBfUEtUSU5GTykpIFwKKyAgICAgICAgIHx8IGRlZmluZWQoSVBfUkVDVkRTVEFERFIpICYmIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0ZMQUdTCisgICAgIC4uLgorICAgICAjZW5kaWYKKyAgICAKKyAgICBUd28gc2lkZS1lZmZlY3RzIG9mIHRoaXMgcGF0Y2ggYXJlOgorICAgICogSVBfUEtUSU5GTyBzdXBwb3J0IGlzIGVuYWJsZWQgb24gQ3lnd2luLgorICAgICogc2V0c29ja29wdChJUF9SRUNWRFNUQUREUikgaXMgbm8gbG9uZ2VyIGludm9rZWQgb24gV2luZG93cyB3aGVuCisgICAgICBidWlsdCB3aXRoIFZpc3VhbCBTdHVkaW8gb3IgTWluR1ctZ2NjLgorCitjb21taXQgMWExOTZhZDlmMTUxNzg2OGI5M2E2YmVjOTNhMGNmZTFkMjllMjgzYgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU2F0IEZlYiAyMyAxNDowMzoyOSAyMDEzICswMTAwCisKKyAgICBUZXN0aW5nOiBNYWtlIHVuaXQgdGVzdCBUMDE0IG1vcmUgcm9idXN0CisKK2NvbW1pdCA5YmUyMmFhYWY4MzkzNzEzZmJjMzkwMjVmNzAyMTExZjUwZjFlNGVhCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTYXQgRmViIDIzIDExOjAzOjIwIDIwMTMgKzAxMDAKKworICAgIFdpbmRvd3M6IEF2b2lkIGNvbGxpc2lvbnMgd2l0aCB0aGUgV2luZG93cyBWaXN0YSBvciBsYXRlciBTREsKKworY29tbWl0IDBiNmJmZWYyY2E5YWU5ZTFjMmJlYWZlNzAwMTAwZmFlNWY2ZjRjMWEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFNhdCBGZWIgMjMgMTE6MjA6MjMgMjAxMyArMDEwMAorCisgICAgaW5ldF9udG9wKCkgLyBpbmV0X3B0b24oKTogQ29udmVydCBwcm90b3R5cGVzIGZyb20gSyZSIHRvIEFOU0kgQworCitjb21taXQgMmJiNTFkNzFlZWM0ZTc4OTk4MmMyYTc0MTE4NmRjZTZkZjIzODU0MgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEZlYiAyMSAyMDo1OToyNSAyMDEzICswMTAwCisKKyAgICBSZWR1Y2UgdGhlIHRpbWUgbmVlZGVkIHRvIHJ1biB0aGUgcmVncmVzc2lvbiB0ZXN0cyAod2FzIGVubGFyZ2VkIGJ5IGNvbW1pdCBiM2Q1ZWQ4NykKKworY29tbWl0IGNmNjQwY2NkNjhlOTYzNjgwNWI3NTA3OTkyOGM3Mjc3ZmEyNjA4M2IKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBGZWIgMjEgMTE6NTU6MDMgMjAxMyArMDAwMAorCisgICAgVW5pdCB0ZXN0IFQwMTQ6IEFjY2VwdCAibG9jYWxob3N0LmxvY2FsZG9tYWluIiB0b28KKworY29tbWl0IGJkYTQzNTczNzVhZDI5OWNmMTg0NzU3OWUxYTFiYzNjNjExODk1YzMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBGZWIgMjEgMTY6MDc6NDEgMjAxMyArMDEwMAorCisgICAgUmVncmVzc2lvbiB0ZXN0IFQwNjA6IEVzY2FwZSBiYWNrc2xhc2hlcyBwYXNzZWQgdG8gQ09ORklHVFJBUEQKKworY29tbWl0IDZiNWQ3ODRmNGQ2ZDAwMDM5MDAxNGQxMjBmMTViOTM3MzYyZjhjMDcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBGZWIgMjEgMjA6MzM6MDIgMjAxMyArMDEwMAorCisgICAgUHl0aG9uIGJpbmRpbmdzOiBGaXggYSByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmcKKworY29tbWl0IDZkMjU4ZWZhMmFjY2FkZmNjYzUwZDg2YmQ0NjM3OTc0NTQ0OWNhNGEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBGZWIgMjEgMTU6Mjc6MTkgMjAxMyArMDEwMAorCisgICAgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogUmVtb3ZlIHN1cGVyZmx1b3VzIGNhc3RzCisKK2NvbW1pdCAyYzJlMWY0MTYzOTNkNDg1ZjlhYzkwYzg3ZjcyMDY1YzY2OGI3MzIxCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgRmViIDIxIDE1OjQ4OjM0IDIwMTMgKzAxMDAKKworICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcKKworY29tbWl0IDFiYzc5OWRlNmNhYjAxMGIyNWMwYzRkM2Y1MTU1YjVmYmFmNTI3ZjAKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBGZWIgMjEgMjA6MDU6MTQgMjAxMyArMDEwMAorCisgICAgUHl0aG9uIGJpbmRpbmdzOiBGaXggdGhlIG91dC1vZi1ib3VuZHMgd3JpdGUKKyAgICAKKyAgICBTZWUgYWxzbyBjb21taXQgMjM0MTU4YjhlODRjYzIwNGNiYWM5NmU2ZTliZTY5NTk2MzU0MDRiOAorCitjb21taXQgNGY0ZWFlYjkyMGFkMTVjOTI5YzY2NzgyY2MwYTY0MjkxMmNhYmQwNgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTcgMTI6MjQ6MjYgMjAxMyArMDEwMAorCisgICAgQ0hBTkdFUzogcHl0aG9uOiBmaXhlZCBJUEFERFJFU1Mgc2l6ZSBvbiA2NGJpdCBzeXN0ZW1zLgorCitjb21taXQgNDg2ZjExZGRlZTlmMWMyZGQ4MDU2NDQ5ZTkwMzFlMjRiODY0Njg3MgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBGZWIgMjEgMTA6MDY6MTIgMjAxMyArMDEwMAorCisgICAgQWRkZWQgSUVURiBCU0QgbGljZW5zZSBmb3IgTUlCIGZpbGVzLgorICAgIAorICAgIE1JQnMgaW5jbHVkZWQgaW4gTmV0LVNOTVAgdGFrZW4gZnJvbSBJRVRGIERvY3VtZW50cyBhcmUgY29uc2lkZXJlZAorICAgIENvZGUgQ29tcG9uZW50cyBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIElFVEYgVHJ1c3QgTGljZW5zZSBQb2xpY3ksIGFzIGZvdW5kCisgICAgaGVyZToKKyAgICAKKyAgICBodHRwOi8vdHJ1c3RlZS5pZXRmLm9yZy9saWNlbnNlLWluZm8vCisKK2NvbW1pdCBkMjRlZmIwNDc3OGQ4NzBlZmEyNzM5NDkzOTQ5ZGI2NWYzZmRkNGYzCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgRmViIDEyIDIwOjQ0OjQ2IDIwMTMgKzAxMDAKKworICAgIFNvbGFyaXM6IEZpeCBmZXRjaGluZyBvZiBsYXJnZSBjaHVua3Mgb2YgZGF0YSAobGFyZ2VyIHRoYW4gb25lIGJ1ZmZlcikKKyAgICBUaGlzIGZpeGVzIHByb2JsZW0gd2l0aCBtYW55IGludGVyZmFjZXMsIGJ1dCBjb3VsZCBhbHNvIGZpeCBvdGhlciBsYXJnZSB0YWJsZXMuCisKK2NvbW1pdCA0NTAwMWZkOThjNzI5ZGY5ZmYwNTM2MjdjNDE2YWI1ZjJlNGM2MGYzCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgRmViIDEyIDIwOjM5OjUwIDIwMTMgKzAxMDAKKworICAgIEZpeCBidWcgMjI4NiwyNDM5OiBCb3VuZCBidWZmZXJzaXplIGZvciBzd3J1biBkYXRhIG9uIEZyZWVCU0QKKworY29tbWl0IDliZDA0MTNiZmJkY2Q4NDU0MTNjMTM1YmJmZjg3NzFmYTcxMzA4MDkKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gRmViIDExIDExOjU3OjAxIDIwMTMgKzAxMDAKKworICAgIEV4cGxpY2l0bHkgZW51bWVyYXRlIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisgICAgCisgICAgVGhlIGdlbmVyaWMgY29uZiBhbmQgbG9jYWwuY29uZiBleHRlbnNpb25zIHdlcmUgaW50ZXJwcmV0ZWQgYXMgbXkuc25tcC5jb25mIGFuZCBteS5vdGhlci5zbm1wLmxvY2FsLmNvbmYgYnkgc29tZSBjdXN0b21lcnMuCisKK2NvbW1pdCAwYmRkMDk4ODlkMDgxMWY4NjRkZjEzMWI4NDRmMjBiMDAzOTIwNjJiCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgRmViIDcgMDA6MDU6MDMgMjAxMyArMDEwMAorCisgICAgc25tcF9jbGllbnQuYzo6bmV0c25tcF9xdWVyeV93YWxrOiBoYW5kbGUgU05NUHYyIGV4Y2VwdGlvbiByZXN1bHRzCisKK2NvbW1pdCA4NjRiNGFjYThkZmE0ODBhNzhiNzQ1ZmFlMjA5MWVkYzUzNzNhMGM2CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgRmViIDYgMTY6MDA6NTQgMjAxMyArMDEwMAorCisgICAgc25tcHRyYXBkOiBBZGQgLVggb3B0aW9uIHRvIGRpc2FibGUgQWdlbnRYCisKK2NvbW1pdCAxMTJmM2Q0ZmE1MzZiMmM1MzFkMDc4MDY3NjE5ODkxNWExZjU4MTc5CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgRmViIDYgMTU6NTk6NTMgMjAxMyArMDEwMAorCisgICAgcmZjbGlzdDogQWRkIFJCUklER0UtTUlCCisKK2NvbW1pdCBjMGE2NTQ5NTk3OTQ3ZjI5YzM2ZWZhZGIwNDkyN2ZmNjkwMTg5ZWJhCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDMwIDE1OjUzOjE1IDIwMTMgKzAxMDAKKworICAgIFJVTlRFU1RTOiBkb24ndCB0cmFwIG9uIFNJR0NITEQuIEl0IGNvbmZ1c2VzIGRhc2gsIG1rc2ggYW5kIG1heWJlIG90aGVyIHNoZWxscy4KKyAgICAoZGFzaCBpcyAvYmluL3NoIG9uIFVidW50dSkKKworY29tbWl0IGI5NWFjMzg2ZTZjMjM1NmExZWMyOWYxYzQwOWIyZWMzZTkwMTU5YzMKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMjkgMDg6NTk6MDEgMjAxMyArMDEwMAorCisgICAgcmZjbGlzdDogYWRkIFRFRC1NSUIKKworY29tbWl0IDIzYmRmNmQyNmY0MzM3ZDA3ZWE2ZTk5MDFhNzczOGQxMTg2ZDE2ZDQKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMjkgMDg6NTg6MDcgMjAxMyArMDEwMAorCisgICAgc25tcGRmOiBhZGQgLUNIIGFzIGFsdGVybmF0aXZlIHRvIC1DaAorCitjb21taXQgNDAyNThlOWMwNjBhZWNhYzY1NTVhZWRmZjNlNzBiZGU3ZDJhYjg0NgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEphbiAyOCAxNzowNTowOCAyMDEzICswMTAwCisKKyAgICBUMDcyY29tMnNlY3VuaXhfc2ltcGxlOiBhd2sgc3RyaW5nIGluZGljZXMgc3RhcnQgYXQgMSEKKyAgICBGaXggdGVzdCB0byB3b3JrIHdpdGggbWF3ayAoZGVmYXVsdCBmb3IgRGViaWFuL1VidW50dSkKKworY29tbWl0IGUzN2YyYjZiZGZmYTdhZmFhMWRjMGI4YWVlNTY1YTRkYTgyZDZmZTQKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBKYW4gMjUgMTY6MjQ6MTAgMjAxMyArMDEwMAorCisgICAgc25tcGRmOiBBZGQgLUNoIChodW1hbiB1bml0cykgb3B0aW9uCisKK2NvbW1pdCA3YTQwN2FkMzQ1MDVlZDRkYmFhMmU4NGUwNmExZGJmNDhjM2M3N2U1CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgSmFuIDI1IDE1OjI4OjQzIDIwMTMgKzAxMDAKKworICAgIHNubXBkZjogSGFuZGxlIFNOTVAgKHYyYy92MykgZXhjZXB0aW9ucworCitjb21taXQgYzczOWNiMzg3NWZiNWQ0Y2FkNDEzODY2MWNjMGE0MTcxMzg0YzM0MQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEphbiAyNSAxMDoxNDowMiAyMDEzICswMTAwCisKKyAgICBBcHBseSBwYXRjaCMxMjQ2OiBGaXggcGFzc2luZyBhIFNFVCBvZiBhIHN0cmluZyB0byBub3QgY3V0IGl0IGF0CisgICAgZm91ciBjaGFyYWN0ZXJzIHRvIGEgcGFzcy9wYXNzX3BlcnNpc3QgaGVscGVyLgorCitjb21taXQgMjM0MTU4YjhlODRjYzIwNGNiYWM5NmU2ZTliZTY5NTk2MzU0MDRiOAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTcgMTI6MjQ6MjYgMjAxMyArMDEwMAorCisgICAgQ0hBTkdFUzogcHl0aG9uOiBmaXhlZCBJUEFERFJFU1Mgc2l6ZSBvbiA2NGJpdCBzeXN0ZW1zLgorCitjb21taXQgOWUwYTBlMzVkOGQxYjM2ZmE0N2NlYzkzOGQ2Yzg3NGRlMDA3MWJiNgorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFdlZCBKYW4gOSAyMjozNzo0NyAyMDEzICswMDAwCisKKyAgICBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDEyMzk6IEZpeCBtZW1vcnkgbGVhaworCitjb21taXQgNTU2MDVlZTM0NTJhZWY1YWFiZTRlZDE1YTgzMzc0YTk3NzI4ZTY0YQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBKYW4gOSAwOToyNjo1NiAyMDEzICswMTAwCisKKyAgICBGaXhlZCBtZW1vcnkgbGVhayBvbiBmYWlsZWQgcmVhbGxvYy4KKworY29tbWl0IGEzMmNhOTNhOWI5MTY3NGE4YzFlODllMWEzODNhNzYxMzZiOGFjMzgKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgSmFuIDggMTY6NDI6NTQgMjAxMyArMDAwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDEyNDA6IEZpeCBkZWFsbG9jYXRpb24gb2YgaW50ZWdlciBpbmRleGVzCisKK2NvbW1pdCA4NzY4MWYwZmIyODVhMDIxNjM2ZTA2YTZmMjM1MWQ3NjQwOWVlYmM4CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTYXQgSmFuIDUgMTU6MDY6MTIgMjAxMyArMDEwMAorCisgICAgQXZvaWQgdXNpbmcgImxvY2FsIiBzaW5jZSBTb2xhcmlzJyAvYmluL3NoIGRvZXMgbm90IHVuZGVyc3RhbmQgaXQKKworY29tbWl0IDU5YjRkNDBmMzk3MGJhODJmM2RmMmEzOTk5NzEyNTRiMDQ4Mjc0NDMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBKYW4gNCAxODowMDo1MyAyMDEzICswMTAwCisKKyAgICBDSEFOR0VTOiBXaW5kb3dzOiBNYWtlIHdpbkV4dERMTCB3b3JrIG9uIDY0LWJpdCBXaW5kb3dzIHN5c3RlbXMKKworY29tbWl0IDM5NTk3MTA2MDM4ZjZlMWM1ZWQ0OWIzZmNlMDAyMWE2YzU5ZWMxZmUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBKYW4gNCAxODowNTozOCAyMDEzICswMTAwCisKKyAgICB3aW5FeHRETEw6IEFkZCBtb3JlIGRlYnVnZ2luZworCitjb21taXQgODVjZTkwNjI5MTFkMzFiNDJlMGMxZTEzNWFiZDNiZGE4MTNlMzAwMworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIEphbiA0IDE4OjAyOjMwIDIwMTMgKzAxMDAKKworICAgIHdpbkV4dERMTDogSW52b2tlIFNubXBFeHRlbnNpb25DbG9zZSgpIGJlZm9yZSB1bmxvYWRpbmcgYW4gZXh0ZW5zaW9uIGFnZW50CisKK2NvbW1pdCA3ZTAzMTIyOTU0MzU3OWQzN2IwMDYyOTZlMmY0NDU0ODJkMDUxMmNiCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTYXQgSmFuIDUgMTM6MDQ6MDIgMjAxMyArMDEwMAorCisgICAgd2luRXh0RExMOiBSZW1vdmUgc291cmNlIGZpbGUgd2luMzIvTWdtdEFwaS13aW5FeHRETEwuaAorCitjb21taXQgMmU4OTYyNGU1NWU3MzU1Nzg2MjU5NGYxZjUyNWY5ZGZmYzgyNzk4NgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEphbiA0IDIyOjI2OjQ3IDIwMTMgKzAxMDAKKworICAgIFNvbGFyaXMgL2Jpbi9zaCBkb2VzIG5vdCB1bmRlcnN0YW5kICdsb2NhbCcgYnVpbHRpbi4KKworY29tbWl0IDYyNTdkZWE0ODI3ZTg1YzdhZjg0NWFlOWNkZWQ0OGQ0NGFhN2JiM2QKK0F1dGhvcjogSmFuIFBva29ybu++g++9vSA8anBva29ybnlAcmVkaGF0LmNvbT4KK0RhdGU6ICAgVGh1IERlYyAyMCAxNDo0NTo0NSAyMDEyICswMTAwCisKKyAgICBGaXggY29tbWVudCB0eXBvcyBpbiBleGFtcGxlLmMKKyAgICAKKyAgICBQYXRjaCBmcm9tIFBva29ybu++g++9vSA8anBva29ybnkgYXQgcmVkaGF0LmNvbT4KKworY29tbWl0IDlkZmM0NGM5MWQ3YTI5YTRjNDNmNzc5MDg1ZGRlMzRjNWZlNmQ1YWIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBKYW4gMyAxMDozMDoyNyAyMDEzICswMTAwCisKKyAgICBNaW5HVywgdGVzdCBoYXJuZXNzOiBGaXggYSBsb2cgbWVzc2FnZQorCitjb21taXQgMWQwOTljN2I5MTllZjI1ZWZhMDNjMTRhYTc3Y2NiZWM4ZTViYjAwOQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEphbiAzIDEwOjI0OjQ4IDIwMTMgKzAxMDAKKworICAgIGFwcHMvYWdlbnR4dHJhcC5jLCBXaW5kb3dzOiBGaXggdXNhZ2UgdGV4dAorCitjb21taXQgZjAyMWU2ZmQ0YmMyYWNiNmZmYWMzMzlkM2YzOGU0YzE1YmI1YmQ3ZAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIEphbiAxIDE3OjUzOjE2IDIwMTMgKzAxMDAKKworICAgIE1pbkdXOiBVcGRhdGUgdGVzdCBoYXJuZXNzLiBJbnN0YWxsYXRpb24gb2YgcHNsaXN0LmV4ZSBpcyBub3cgcmVxdWlyZWQuCisKK2NvbW1pdCA0YmMzYzA1NDdlMGIzM2VlYTcxZjNjMWEwOWVmZGQ1OTY5ZDdlMjc4CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gRGVjIDMxIDE3OjI0OjMzIDIwMTIgKzAxMDAKKworICAgIHVjZC1zbm1wL2RsbW9kOiBFbmFibGUgaW4gTVNWQyBiYXRjaCBidWlsZAorCitjb21taXQgZTllZmIyMDA5NTQ2OGU2NDE1N2I4NGYxOGI2Y2NkOTkxZTEwODJlMworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIEphbiAxIDE1OjA0OjM3IDIwMTMgKzAxMDAKKworICAgIFdpbmRvd3M6IExpbmsgd2l0aCBzbm1wYXBpLmxpYiBhbmQgbWdtdGFwaS5saWIgZXZlbiBpZiBub3QgdXNpbmcgdGhlIHBsYXRmb3JtIFNESworCitjb21taXQgOTAwYWFlOGVhNjkzZmI4NDBkNTc1MjZmYjY3MWQyMTVmODY1YmVkYgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIEphbiAxIDAxOjMzOjAxIDIwMTMgLTA4MDAKKworICAgIHVjZC1zbm1wL2RsbW9kOiBGaXggYW4gTVNWQyBjb21waWxlciB3YXJuaW5nCisKK2NvbW1pdCAzNjNlM2ZhMWE0M2NhNjIyM2ZlM2IwODA4ZTY2Mjk1YjNkOTM4NmI4CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgSmFuIDEgMDE6Mjc6NDIgMjAxMyAtMDgwMAorCisgICAgdWNkLXNubXAvZGxtb2Q6IEFkZCBkbG1vZC5jIHRvIE1TVkMgcHJvamVjdAorCitjb21taXQgZTM1NDJjMDRhODQ2MTc4NTc2ODhhYjhlODcxOGNkYzRjNmE2OGNmNQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIEphbiAxIDA5OjE0OjMzIDIwMTMgKzAxMDAKKworICAgIHVjZC1zbm1wL2RsbW9kOiBSZW1vdmUgbW9yZSBzdXBlcmZsdW91cyBjYXN0cworCitjb21taXQgMWUzYjBhZTJiMDJjZjFmYWNjYWQ0ODk2YmMzYmRiZWExZGI0YTY4ZgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIERlYyAzMSAxMzoxOTozNiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBXaW5kb3dzOiBQb3J0ZWQgdWNkLXNubXAvZGxtb2QgdG8gTWluR1cgLyBNU1ZDCisKK2NvbW1pdCA5ODZmYjliODVlMTM4M2I4MWVhZWE0MGQyY2I3YzE0NDkyZGRiZGFjCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gRGVjIDMxIDEyOjMyOjU2IDIwMTIgKzAxMDAKKworICAgIE1pbkdXOiBBdm9pZCBjb25mdXNpb24gYmV0d2VlbiBNaW5HVydzIGtpbGwuZXhlIGFuZCB0aGUgU3lzSW50ZXJuYWxzIHBza2lsbC5leGUgKGJhY2twb3J0IGNvbW1pdCA5YjQyN2IzNTNmMWNlYjhmZTg3ZTZmYzhlZDNiNmNmYWIzY2U3ZjIwKQorCitjb21taXQgNzk4YjczY2Y1OWUzNjg3ZjY1YmQ1NGE3YThhYzI5ZmUyNDk4YzY5ZgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IERlYyAxNyAxMzowNTo1MyAyMDA5ICswMDAwCisKKyAgICBVbmJyZWFrIHRoZSBNaW5HVyBidWlsZCBmb3IgdGhlIDUuNCBicmFuY2ggLSB0aW1lcmFkZCgpIGlzIG5vdCBBTlNJIEMKKyAgICAKKyAgICBSZW1vdmUgRElGRlRJTUVWQUwoKSBiZWNhdXNlIGl0J3MgYnVnZ3k6IGluICJkaWZmLnR2X3VzZWMgPiAxMDAwMDAwTCIgdGhlICI+IgorICAgIHNob3VsZCBoYXZlIGJlZW4gIj49IiBpbnN0ZWFkLgorICAgIAorICAgIFRoaXMgaXMgYSBwYXJ0aWFsIGJhY2twb3J0IG9mIGNvbW1pdCA4NTg1MDljOWUxOTk4ZjZkMjZlOTBjYjYyMmU0YjE3ZWIyNDg4YTRmLgorCitjb21taXQgMWU1NTZjYzc3NDBjMDYzNjdmZjMzNjFhYTk2YmY0NTMzOWMyZThhMgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU3VuIERlYyAzMCAxNzo1OTo0NCAyMDEyICswMTAwCisKKyAgICB1Y2Qtc25tcC9kbG1vZDogUmVtb3ZlIHN1cGVyZmx1b3VzIGNhc3RzCisKK2NvbW1pdCA1MWRmYTZlNjdmZDg0ODdiODg4MmMxNjMyZTgxMTE5NWQ5NDk2ZTQxCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTdW4gRGVjIDMwIDEwOjQyOjE2IDIwMTIgKzAxMDAKKworICAgIHVjZC1zbm1wL2RsbW9kOiBNZW50aW9uIGxpYnJhcnkgcGF0aCBpbiBlcnJvciBtZXNzYWdlcworCitjb21taXQgMDJhMzU3ZDZiOTUzOGE0ODg5NjM2ODkwMGJiYjU5M2RiYjRkYzM3NAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU3VuIERlYyAzMCAxMDo0MDo1NSAyMDEyICswMTAwCisKKyAgICB1Y2Qtc25tcC9kbG1vZDogUmVtb3ZlIGEgc3VwZXJmbHVvdXMgaW5pdGlhbGl6ZXIKKworY29tbWl0IGVmNzQ4ODQ1YjE0YzA5NTA0OWVkNTQ4MDNlYTc0Y2Y0NTdlZmQxODkKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFN1biBEZWMgMzAgMDk6NTc6MzggMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogV2luZG93czogRml4IGVudmlyb25tZW50IHNlcGFyYXRvciBpbiBzbm1wZC9zbm1wdHJhcGQvc25tcHRyYW5zbGF0ZSBoZWxwIHRleHQuIFJlcG9ydGVkIGJ5IEphc29uIE1jQ29sbHVtIDxqbWNjb2xsdW1AY29tdGVjaGVmZGF0YS5jb20+LgorCitjb21taXQgYmMwYWJhZTU1ZGQ4NjdkYmJmNGU0MmU2N2EzNjIzNDA4OGM5Mzc3MQorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiAyIDA5OjI1OjMzIDIwMTMgLTA4MDAKKworICAgIGNvcHlyaWdodCB1cGRhdGUKKworY29tbWl0IDQwODZhZjk1YjI5OGYxY2YxMzBkMDhkZWI3ZTA5MDA1OGIzMjFhZjkKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBEZWMgMjAgMDc6Mzc6MTQgMjAxMiArMDEwMAorCisgICAgRml4IHRoZSBNSUIgbmFtZXMgdG8gYWN0dWFsbHkgd29yaworCitjb21taXQgNzk1Mjc0ZmMyMWUxYmEwM2VmYmU5YjYwNDJjNmEzNTEzZDg5ZGViZgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IERlYyAyMCAwNzoyNDo0NyAyMDEyICswMTAwCisKKyAgICBDbGVhbiB1cCBhbmQgdmFsdWUgY2hlY2tpbmcgZm9yIGlwRGVmYXVsdFRUTCwgaXB2NklwRGVmYXVsdEhvcExpbWl0CisKK2NvbW1pdCA0MzlkNTBjNjc5ZTlmMDliMTA2YmZkZjY0ZjhjYzc2NjQxOWUxMzQ0CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgRGVjIDIwIDA3OjI0OjE2IDIwMTIgKzAxMDAKKworICAgIEZpeCBpY21wTXNnU3RhdHNUYWJsZSBmb3IgU29sYXJpcworCitjb21taXQgMDA3YTdkMjRiYzVmMjc5MzkyZmQwZWM0MzYxNDc3Y2Q4ZjE0ZTVhZgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIERlYyAxOSAyMjoxNDowNiAyMDEyICswMTAwCisKKyAgICBnaXQgaWdub3JlIHRpbGRlIGZpbGVzCisKK2NvbW1pdCBhZmYwMmYyNGUxOThhMjkyMzEyNzNkNDk0ODIwZGQ2ZTM1NDE1NWNhCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gRGVjIDE3IDIyOjQ0OjE4IDIwMTIgKzAxMDAKKworICAgIFJ1bm5pbmcgYXV0b2hlYWRlci9hdXRvY29uZgorCitjb21taXQgOWNmZDY4MGYyZjJmNDVjZjc2Y2Q0MjE2NjkzYjg2MmZhYTI3Y2JjMQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIERlYyAxNyAyMjo0MjowMCAyMDEyICswMTAwCisKKyAgICBDb25maWcgY2hlY2sgZm9yIEJTRCB1ZHBzdGF0LnVkcHNfaXBhY2tldHMKKworY29tbWl0IDUzYzJmZGQ1YjY2MDIxMTQ0YWQyNjUzOWI1M2JlOWMxNTkzYjQ4ODQKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBEZWMgMTcgMjI6Mjc6MDMgMjAxMiArMDEwMAorCisgICAgQWRkIFNEIHN1cHBvcnQgZm9yIGlwLWZvcndhcmQtbWliCisKK2NvbW1pdCBjYTdiMTdhNDFkNGQxNmJkMjdhYWNmOTIxMTZiZWEzNTYyZWVlYTM2CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIERlYyAxNyAxMjo0MDozMiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogdXNlIGNhY2hlIGZvciBkc2tUYWJsZSB0byBzcGVlZCBpdCB1cC4KKyAgICAKKyAgICBVQ0QtU05NUDo6ZHNrVGFibGUgd2FzIHNsb3cgb24gTkZTIG1vdW50cy4gTm93IGl0IHVzZXMgZnN5cyBjYWNoZQorICAgIHRvIHJlbG9hZCBtb3VudHMgZXZlcnkgNSBzZWNvbmRzLgorCitjb21taXQgMGI3MTgxODRlMDcwZDI1NzRjMDliMThmNTY4OTUwYThjOWZmNzY1OQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIERlYyAxNiAyMDo1NzoyOSAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBhcHBzOiBTdG9wIHVzaW5nIHNubXBfcGVycm9yIHdoZW4gbG9nZ2luZyBhZnRlciBmdW5jdGlvbnMgdGhhdCBkb24ndCBzZXQgc25tcF9lcnJuby4KKworY29tbWl0IDdlZGNlMGMzMTFhN2RkNTQyOGUwZWRiNzAxZGFiZTlkYzc5ZDA5NjcKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBEZWMgMTUgMTI6NDA6MTAgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgdGhlIC13aXRob3V0IG9wdGlvbnMgdG8gcnBtYnVpbGQgd29yaworCitjb21taXQgYzYwMzc1NDhmYjRiNDc5OTYzMzBmZTFiYzFlODI2NWFjZWE1ZGQ1NAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIERlYyAxMCAwMDo0MTo0MiAyMDEyICswMTAwCisKKyAgICBUaGUgcHJvcGVyIHJvdXRlciBmaWxlcyBmb3IgQlNECisKK2NvbW1pdCAyYjM1OWU0NTA5ODZiYjg3NDRiYmZmMjFlMGNhYjQ5M2FjYWNlYTk4CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTdW4gRGVjIDkgMjM6MDI6MDIgMjAxMiArMDEwMAorCisgICAgU3VwcG9ydCBmb3IgaXBTeXN0ZW1TdGF0c1RhYmxlIGZvciAqQlNELiBNb3N0IG9mIHRoZSBjb2RlIGJ5IEdhcnJldHQKKyAgICBDb29wZXIuIFBhcnRpYWxseSBmdW5kZWQgYnkgQ2lzY28gSXJvbnBvcnQuCisKK2NvbW1pdCA5YTA0NDEyOGU4YjMzMTc5NjIyMTE2NjM1ODc2OWViMDUzNWRmYzFmCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTdW4gRGVjIDkgMjI6MzY6MjEgMjAxMiArMDEwMAorCisgICAgU3VwcG9ydCBmb3IgaXBOZXRUb01lZGlhVGFibGUgZm9yICpCU0QuIE1vc3Qgb2YgdGhlIGNvZGUgYnkgR2FycmV0dCBDb29wZXIuCisgICAgUGFydGlhbGx5IGZ1bmRlZCBieSBDaXNjbyBJcm9ucG9ydC4KKworY29tbWl0IGY5Y2IyOThkZDIwZWY2ZDRiYzY4M2NlMDY3ZjIzMzA3MzdiZTRlMDkKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFN1biBEZWMgOSAyMjoxNzoyMiAyMDEyICswMTAwCisKKyAgICBTdXBwb3J0IGZvciBpcERlZmF1bHRSb3V0ZXJUYWJsZSBmb3IgKkJTRC4gTW9zdCBvZiB0aGUgY29kZSBieSBHYXJyZXR0CisgICAgQ29vcGVyLiBQYXJ0aWFsbHkgZnVuZGVkIGJ5IENpc2NvIElyb25wb3J0LgorCitjb21taXQgMWRlZTQxNTYyYzU0ZTBiNTRiMzAxYTM3ODM4YjNiYTY1MDlkY2MzOAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU3VuIERlYyA5IDIxOjU0OjE0IDIwMTIgKzAxMDAKKworICAgIFN1cHBvcnQgZm9yIGlwU3lzdGVtU3RhdHNUYWJsZSBmb3IgKkJTRC4gTW9zdCBvZiB0aGUgY29kZSBieSBHYXJyZXR0IENvb3Blci4KKyAgICBQYXJ0aWFsbHkgZnVuZGVkIGJ5IENpc2NvIElyb25wb3J0LgorCitjb21taXQgM2RiYWJjOTcwNjhiNmM2OTBiM2ZkZjk3YjVhYjNhZTBkOWVhYjI4YworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU3VuIERlYyA5IDIxOjQ3OjQ1IDIwMTIgKzAxMDAKKworICAgIENoYW5nZSBzb21lIGRlYnVnIG91dHB1dCBpbnRvIGVycm9yIGxvZ2dpbmcuIEZhaWx1cmUgdG8gZXhwYW5kIDMyIHRvIDY0CisgICAgSVMgYW4gZXJyb3IuCisKK2NvbW1pdCA5MDczNjBlMDlmZmYzMzkwZDYyNjlmOGNiNDc0MGJkYmNkOTU4MTY2CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTdW4gRGVjIDkgMjE6NDU6NDQgMjAxMiArMDEwMAorCisgICAgRml4IHNvbWUgbGFiZWxzIGZvciBuZXRzdGF0IGljbXAgb3V0cHV0LgorCitjb21taXQgOWYyZjA1NDA1YzdiYjQ5OWViZTA4MzliMGQ3OWJhMjVjNjFjMGY1NQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIERlYyA3IDA5OjQ5OjUxIDIwMTIgKzAxMDAKKworICAgIFJ1bm5pbmcgYXV0b2NvbmYKKworY29tbWl0IGQyN2YzNjQ1MjU4M2QyOTFmMjU1ZWYwOTBlMmFlYWVhZjM5YTllMGUKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBEZWMgNyAwOTo0OTowMiAyMDEyICswMTAwCisKKyAgICBSdW5uaW5nIGF1dG9jb25mCisKK2NvbW1pdCA1NjM1MmMyZWJlOTU0MWY2YWJmOWQyYjllYmM0NzA1ZDgxOGQ4OWI4CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgRGVjIDcgMDk6NDg6MjEgMjAxMiArMDEwMAorCisgICAgUnVubmluZyBhdXRvY29uZgorCitjb21taXQgMzk3OTIzZTBhYWUxMzg1YTBhZjNhODAzZTYwZWJlODEyNGY5NjFkMgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIERlYyA3IDA5OjI2OjIxIDIwMTIgKzAxMDAKKworICAgIEZpeGVzIGZvciBjb25maWd1cmUgb2Yga3NtIG1vZHVsZS4gUHJldmlvdXNseSBrc20gaGFkIHRvIGJlIHRoZQorICAgIGZpcnN0IHNlY3VyaXR5IG1vZHVsZSBpbiBsaXN0IHRvIGJlIGluY2x1ZGVkLgorCitjb21taXQgNDMwZDEwZDI5NmI4ZDhjOThhM2FhZmQyN2E4YzZmZjRmNjQwODExNAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIERlYyA3IDA5OjI0OjM5IDIwMTIgKzAxMDAKKworICAgIEZpeCBzcGVsaW5nIHdoaWNoIGhhcyBwcmV2ZW50ZWQga3NtIG1vZHVsZSBmcm9tIGNvbXBpbGluZyBmb3IgbWFueSB5ZWFycyA6LSgKKyAgICBBbHNvIHNvbWUgZml4ZXMgdG8gc3VwcG9ydCBIZWltZGFsIEtlcmJlcm9zLiBUaGlzIHN1cHBvcnRzIEZyZWUvTmV0QlNELgorCitjb21taXQgYmZmODMyYWIyNDhlMDg2MjhiZTQ2ZWJmNzYxMTE5MTFlN2YzOWU1MgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIERlYyA3IDA5OjE3OjIyIDIwMTIgKzAxMDAKKworICAgIEFkYXB0IGZvciBsb25nZXIgbGluZXMgZnJvbSAvcHJvYy9uZXQvdGNwNi4gQW5kIGlzc3VlIGFuIGVycm9yIGlmCisgICAgaXQgaGFwcGVucyB0byBmYWlsIGFnYWluLiBQYXRjaCBmcm9tIGJ1ZyAjMjQyNSAoVGhhbmtzIFpoaXh1IExpdSkKKworY29tbWl0IDk2ODdlNGQ1MDc4MWJhMDE2ODQxNmYxNWM0ZjJkOWZjODM3MTA1MGEKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBEZWMgNyAwOToxNTo0OCAyMDEyICswMTAwCisKKyAgICBpY21wIHN1cHBvcnQgZmlsZXMgZm9yICpCU0QgKGV4Y2VwdE5ldEJTRCkKKworY29tbWl0IGYyMTViYTFlMzdhOGMzZTA3Njk1OGVmZDgzYzBmNWQzOTNhMTRjMjIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBEZWMgNyAwOToxMzoyNCAyMDEyICswMTAwCisKKyAgICBTdXBwb3J0IGZvciBpY21wU3RhdHNUYWJsZS9pY21wTXNnU3RhdHNUYWJsZSBmb3IgKkJTRCBhbmQgU29sYXJpcworCitjb21taXQgYTdiN2MzYzBjM2JlM2Y2Y2YyZDA5ZjY0NzBkM2ZhMDg2MTUzZDAzNgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIE5vdiAzMCAxNTozNTozMyAyMDEyICswMTAwCisKKyAgICBTaHVmZmxlIGluIHByZXBhcmF0aW9uIGZvciBicm9hZGVyIHN1cHBvcnQgZm9yIGljbXBTdGF0cy9pY21wTXNnU3RhdHMKKworY29tbWl0IGJkMjk2YWMxODQyMzUwM2VkYThlZmZlYjg2YWZiMTllMDAxNDM4ODkKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBOb3YgMzAgMTU6MzQ6NTIgMjAxMiArMDEwMAorCisgICAgU2h1ZmZsZSBpbiBwcmVwYXJhdGlvbiBmb3IgYnJvYWRlciBzdXBwb3J0IGZvciBpY21wU3RhdHMvaWNtcE1zZ1N0YXRzCisKK2NvbW1pdCAyZTIzZWEwZjI5M2JiOGU5Y2VhZjU2MzZkYjdiN2QwN2Y2ZDYyYzdhCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgTm92IDIwIDIzOjMzOjU4IDIwMTIgKzAxMDAKKworICAgIEFkZCBtaXNzaW5nIHNzSU9SYXdTZW50L3JlY2VpdmVkIGZvciBTb2xhcmlzLgorCitjb21taXQgNTllZWJjNDFhOTQzNTgxMTA3M2ZlYzUwZDc2ZGQ2YWVmOWRkNThhNworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIE5vdiAyMCAyMzozMjo1MyAyMDEyICswMTAwCisKKyAgICBBZGQgc29tZSBlcnJvciBjaGVja2luZyB0byBnaXR0b29scworCitjb21taXQgODBiMTgzNzU4MjY2NTM2MjZjMmQ3MDQ1MWMyYjU0YTFjNTBhM2NlNgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIE5vdiAxMyAxMzo1NTo0NyAyMDEyICswMTAwCisKKyAgICBSZW1lbWJlciB0byBpbml0IHRoZSBzeXN0ZW1zdGF0cyBwcm92aWRlcgorCitjb21taXQgNzQzY2I2NjcxODkwNDk3OWY1NTg5NTQ3MjUwMTU4NGMzMGM2NmYxMAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBOb3YgMTIgMTU6NDk6MTUgMjAxMiArMDEwMAorCisgICAgRml4ZWQgY3Jhc2ggd2hlbiBNRDUgYW5kL29yIFNIQS0xIGhhc2ggaXMgbm90IHN1cHBvcnRlZCBieSBPcGVuU1NMLgorCitjb21taXQgMTg5OGNmYzcxYmRiM2Y0YTE2ODVjNmQyMWI1NGRkMWEzNDgyNTkxYworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE5vdiAxMiAxNTo0ODoxNSAyMDEyICswMTAwCisKKyAgICBPcGVuQlNEIDUuMiBzdXBwb3J0LgorCitjb21taXQgZGQ1M2ZmYmFmZWIzMWNkZTYxNmE4OTk0OWU3MGUzZDVmZTBjYzFiMworQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBOb3YgMTIgMTU6NDY6NDMgMjAxMiArMDEwMAorCisgICAgRmFsbCBiYWNrIHRvIFNIQS0xIGlmIE1ENSBpcyBub3QgYXZhaWxhYmxlLgorICAgIAorICAgIE9uIHBhcmFub2lkIHN5c3RlbXMgd2hlcmUgTUQ1IGlzIGRpc2FibGVkIHVzZSBTSEEtMSBpbnN0ZWFkIG9mIE1ENSBhbmQgZG9uJ3QgY3Jhc2guCisKK2NvbW1pdCBlYThmNzRjODFmODJjMTA1YjlmYzAxOTY1YWRjZTE0YjBkODE4NmRhCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gTm92IDEyIDE1OjQ2OjM0IDIwMTIgKzAxMDAKKworICAgIEZpeCBOZXRCU0QgbWVtb3J5IGRhdGEgdHlwaW5nCisKK2NvbW1pdCBkZGUzYTM1YmFhZWI2ODNjZjE0NDFhMTZhMTU0NDFmOGI0NTZjNTIwCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE5vdiAxMiAxNTo0NToyNyAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBjcmFzaCB3aGVuIE1ENSBoYXNoIGlzIG5vdCBzdXBwb3J0ZWQgYnkgT3BlblNTTC4KKworY29tbWl0IGI3N2I2N2Q4ZDYyOWY3ODU2MzllNDAyZmE0ZmJlZTZjY2ZlMThmYTUKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBOb3YgMTIgMTU6NDQ6NDkgMjAxMiArMDEwMAorCisgICAgS2VybmVsIHByb2Nlc3NlcyBpbiBEcmFnb25GbHksIGFuZCBmaXhlZCBjcHUgdXNhZ2UgZGF0YQorCitjb21taXQgZDZjNjIwMTJjODA4MmZjODg2Zjc0N2UwZTJjOWJiOGE2YzY2YzY2MworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE5vdiAxMiAxNTo0MTo1NSAyMDEyICswMTAwCisKKyAgICBEaXNraW8gZm9yIE9wZW5CU0QsIGFuZCBzb21lIGNsZWFuLXVwIGZvciBGcmVlQlNEL0RyYWdvbkZseQorCitjb21taXQgNGE1ZTBmNGM5NWZiNmNkMTIzYTQ5MDE3ODczNzZlNDQ3ZDMzMmMwMgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBPY3QgOSAxNDoyMzo0OCAyMDEyICswMjAwCisKKyAgICBDSEFOR0VTOiBhZGRlZCBzaW1mcyAoT3BlblZaIGZpbGVzeXN0ZW0pIHRvIGhyU3RvcmFnZVRhYmxlIGFuZCBockZTVGFibGUuCisKK2NvbW1pdCAyYTBjZDM1YWNmMzMyNWE2ZmRjMGExMDQyM2Y1NGNiOGI1Y2U1MjJiCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IFNlcCAxMyAxNToyNTo1MiAyMDEyICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgaW5maW5pdGUgbG9vcCB3aGVuIFNJR1RFTSBhcnJpdmVzIGluIG1pZGRsZSBvZiBpbnRlcm5hbCBxdWVyeSBwcm9jZXNzaW5nLgorICAgIAorICAgIFdoZW4gc25tcGQgc3RhcnRzIGludGVybmFsIHF1ZXJ5LCBlLmcuIGZvciAnbW9uaXRvcicgY29uZmlnIG9wdGlvbnMsIGl0IGNhbGxzCisgICAgbmV0c25tcF9xdWVyeV93YWxrKCkuIFRoaXMgZnVuY3Rpb24gbG9vcHMgdW50aWwgZWl0aGVyIGVycm9yIG9jY3VycyBvciB0aGUKKyAgICBpbnRlcm5hbCByZXF1ZXN0IGlzIHByb2Nlc3NlZC4gQW5kIGlmIFNJR1RFUk0gY29tZXMgdG8gdGhpcyBsb29wLCB0aGUgcmVxdWVzdAorICAgIGlzIG5vdCBtYXJrZWQgYXMgZmFpbGVkLgorICAgIAorICAgIFBhdGNoIG9yaWdpbmFsbHkgZnJvbSBNYXNhaGlybyBNYXRzdXlhLCBtbWF0c3V5YSBbYXRdIHJlZGhhdC5jb20KKworY29tbWl0IGJjNDQ5YzBmODVhZTlmYTA4YWM0ZmNlNjcyODJmNDhlYjdhYjE5ODQKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gU2VwIDEwIDEzOjI1OjM4IDIwMTIgKzAyMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCB2YWx1ZSBvZiBVQ0QtU05NUC1NSUI6OmV4dENvbW1hbmQgdG8gY29udGFpbiBmdWxsIGNvbW1hbmQgbGluZS4KKyAgICAKKyAgICBNSUIgZGVzY3JpcHRpb24gb2YgVUNELVNOTVAtTUlCOjpleHRDb21tYW5kIHN1Z2dlc3RzIGl0IHNob3VsZCBjb250YWlsIGZ1bGwgY29tbWFuZCBsaW5lLgorICAgIEFsc28gaW4gTmV0LVNOTVAgNS4zLjIuMiwgd2hvbGUgY29tbWFuZCBsaW5lIHdhcyBzaG93bi4KKworY29tbWl0IGEzOTc4ZjJjYzIwNTZjOTdhNGMzZjMzOGY3MDlhMjAyOTFhZWQ0NzIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBOb3YgMTIgMDY6NDg6MzcgMjAxMiArMDEwMAorCisgICAgUHJvcGVyIGhhbmRsaW5nIG9mIGNvbmZpZ3VyZS1nZW5lcmF0ZWQgc25tcGNvbmYKKworY29tbWl0IDBmNDY5OTI5MjRkZTVhNGFiMDc2M2E4ZDQ0YTFjZWNlNGE5OTFkODAKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBOb3YgNSAyMToxNjozNyAyMDEyICswMTAwCisKKyAgICBQYXRjaCBmb3IgT3BlbkJTRCA1LjIgKFBhdGNoIDM1NTk0MjApCisKK2NvbW1pdCA5ZWQwYjJlMGFjMGM4ZTU0OWI4ZjlhNTg0NWU5ZDFmYWFjYWI3M2M1CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gTm92IDUgMjA6MDg6NDEgMjAxMiArMDEwMAorCisgICAgcmZjNjc3OQorCitjb21taXQgYWVmNzZjYTBjYmEyY2E1NmY2YWExZGI1YzViNThhNTQ5MzlmMzg5YgorQXV0aG9yOiBxcXNoa2EgPHFxc2hrYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBPY3QgMzEgMjA6MDA6MDQgMjAxMiArMDEwMAorCisgICAgQWdlbnRYLCBJUFg6IFJlc3RvcmUgZGVmYXVsdCBwb3J0IChidWcgIzM1ODIyODMpLgorICAgIAorICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgN2I5ZTAzNDQxYzNkYzNhMDc2NzBlZDAxZjVkMDQ3OTFhODJjNzUwYy4KKworY29tbWl0IGQ3ZDk4ZTVhYTllZThjYTc5MThiNzY3NTA0M2Q0NzljZjc3YjgzYzQKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBTZXAgMSAxMDozMzowNiAyMDExICswMjAwCisKKyAgICAuZ2l0aWdub3JlOiBBZGQgbG9jYWwvc25tcGNvbmYKKworY29tbWl0IDcxZDgzYmE0MTE3YTJjZmI3ODc0ZTkxODMyZTQ1OTczZGE0MmVlOTgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBTZXAgMSAxMDozNDozMCAyMDExICswMjAwCisKKyAgICBXaW4zMiwgTVNWQzogTWFrZSBidWlsZC5iYXQgd29yayBhZ2FpbiBub3cgdGhhdCBFTlZfU0VQQVJBVE9SIGlzIGNvbmZpZ3VyYWJsZQorCitjb21taXQgNWU1MDAwODI3MjhmNDUzNTk1ZjUwMjRkMjQxMjA4YzUxZjA4ZDIyYworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIE9jdCAyOSAxODoxMjo0MSAyMDEyICswMTAwCisKKyAgICBSRUFETUUud2luMzI6IFJlbW92ZSByZWZlcmVuY2UgdG8gdGhlIG5vIGxvbmdlciBzdXBwb3J0ZWQgQ3lnd2luIGNvbXBpbGVyIG9wdGlvbiAtLW1uby1jeWd3aW4KKworY29tbWl0IDFhMzZkZWUxNjViOGJkN2RmM2VmNjk0YjdjM2YyNjIxYTU0NDlkYWEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBBdWcgMzAgMjA6NTQ6MDAgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGQsIHNubXB0cmFwZCBhbmQgYXBwczogTWFrZSBFTlZfU0VQQVJBVE9SX0NIQVIgY29uZmlndXJhYmxlCisKK2NvbW1pdCAwZTFjYTQ1YTZmOGQ4YWNmNDRhYTIxYTAwOWE5ZTUxMTkyZTg0NzgzCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTdW4gT2N0IDI4IDEwOjExOjIyIDIwMTIgLTA3MDAKKworICAgIHNubXBuZXRzdGF0OiBGaXggTVNWQyBjb21waWxlciB3YXJuaW5ncworCitjb21taXQgNGE2ZDAzNzhhMzkxNjU3MWNlNzYwNGM0YTNkNTRhOGM5NmE4ZjgwNworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU3VuIE9jdCAyOCAwOTo1NDoxMiAyMDEyIC0wNzAwCisKKyAgICBXaW5kb3dzOiBWaXN1YWwgU3R1ZGlvIDYgYnVpbGQgZml4IGZvciBzdHJsY2F0KCkKKworY29tbWl0IDQxYjQ4YTYzNzA5NTJiZjRiMTJkMzRmYjA1ZWM1NWZiMDcwMmU4Y2YKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFN1biBPY3QgMjggMTQ6Mzc6NTIgMjAxMiArMDEwMAorCisgICAgV2luZG93czogTWFrZSBzbm1wbmV0c3RhdCBidWlsZCBhZ2FpbgorCitjb21taXQgMjQ1MWY4MjY0Nzk4ODFhNDkyNmZjZjg4ODU1ZjU4MjU4NWViODEzYgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU3VuIE9jdCAyOCAxMDoyMzoxNyAyMDEyICswMTAwCisKKyAgICB3aW4zMi9idWlsZC5wbDogUmVkdWNlIGNvZGUgcmVkdW5kYW5jeQorCitjb21taXQgNmU5OTM4ODY4M2E2Yzg1NDAzNWYwNDJhOWQwN2MwNzIzMTE3ZThhNgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU3VuIE9jdCAyOCAwOTo0MToyMCAyMDEyICswMTAwCisKKyAgICBXaW5kb3dzLCBiYXRjaCBidWlsZDogUmVtb3ZlIHRoZSBvYnNvbGV0ZSB2YXJpYWJsZSAiU1NMIgorCitjb21taXQgNzU0NGFkYzVhMWM3Njg4OWU0YTllZDUxZTk2ZDIyZDAyZmQ1Njk1ZQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEF1ZyAyMiAxNTozNTowNCAyMDEyICswMDAwCisKKyAgICBORVdTOiBXaW5kb3dzOiBQb3J0IGJhdGNoIGJ1aWxkIGluZnJhc3RydWN0dXJlIHRvIFZpc3VhbCBTdHVkaW8gMjAxMCBhbmQgbGF0ZXIKKyAgICAKKyAgICBGcm9tIFZpc3VhbCBTdHVkaW8gMjAxMCBvbiBpdCBpcyBubyBsb25nZXIgcG9zc2libGUgdG8gc3BlY2lmeQorICAgIGluY2x1ZGUgb3IgbGlicmFyeSBkaXJlY3RvcmllcyBnbG9iYWxseSAtIHRoZXNlIGhhdmUgdG8gYmUgc3BlY2lmaWVkCisgICAgcGVyIHByb2plY3QuIEhlbmNlIHR3byBhZGRpdGlvbmFsIG1lbnUgZW50cmllcyBpbiBidWlsZC5iYXQgdGhhdAorICAgIGFsbG93IHRvIHNwZWNpZnkgdGhlc2UgZGlyZWN0b3JpZXMuCisKK2NvbW1pdCAxYjhhNzljMWMyZWIxM2Y4YjIwN2MxMmFhNmU3MWEyOWZmMDAzOTZmCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgQXVnIDIyIDE5OjEwOjA3IDIwMTIgKzAwMDAKKworICAgIHdpbjMyL0NvbmZpZ3VyZTogRmFjdG9yIG91dCBjb21tb24gY29kZQorCitjb21taXQgMmFmN2E3M2IwY2E4Y2RiZDM2YTdmMTlkZDhlNTU3NjRjODQ5ODU1MgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU2F0IE9jdCAyNyAxODoyNzo0MiAyMDEyICswMjAwCisKKyAgICBXaW5kb3dzOiBNYWtlIHNubXBuZXRzdGF0IGJ1aWxkIGFnYWluIChzZWUgYWxzbyBjb21taXQgYWE1OTEyYjg5ODZjZGU3NDA5MGJhMTViZTE5NjQyNjMwOWExZTFmMCkKKworY29tbWl0IGZhOThiNGNiZDZkYzE1YWE5MjYxNjZlZWYwNGQ1YmM4ZGZiYWFhZDYKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBPY3QgMjYgMDc6NTY6MDYgMjAxMiArMDIwMAorCisgICAgQ29wZSB3aXRoIGFkZGl0aW9uYWwgc3RhdGlzdGljcyBpbiAvcHJvYy9uZXQvc2N0cC9zbm1wIGluIFJINgorCitjb21taXQgNTQyOTBiZWRlMzM4MTY0Y2E2NWEzZWVkMjI0ZmE1MDQwZDdkZDg1NworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIE9jdCAyNiAwNzo1MDoxMSAyMDEyICswMjAwCisKKyAgICBCZXR0ZXIgY2xlYW51cCBvZiAiZXhlYyIgY29uZmlnIHRvIGF2b2lkIGNyYXNoIGR1cmluZyByZWxvYWQgb2YgY29uZmlnCisKK2NvbW1pdCA4MmFhMjQ2NjcxMTk0ZjA0YmU1MmM2MjFlOWY4M2QwZmFiZDI0ZmE1CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgT2N0IDI0IDE1OjMwOjExIDIwMTIgKzAyMDAKKworICAgIERvbid0IG1peCBjb2RlIGFuZCBkZWNsYXJhdGlvbnMhCisKK2NvbW1pdCA0ZTllYTg0NTU5MmZmZjhiMmFhZTVkMzE4ZGNhYmY0MWY5NTcwNjMyCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgT2N0IDI0IDE1OjI1OjM1IDIwMTIgKzAyMDAKKworICAgIERvbid0IG1peCBjb2RlIGFuZCBkZWNsYXJhdGlvbnMhCisKK2NvbW1pdCAyMWQ1YzY3ODVlOTE2YjUxMDE0NDBlZDFhNGY3MWI0MWJhMmViODA5CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgT2N0IDI0IDA5OjI3OjIzIDIwMTIgKzAyMDAKKworICAgIFJlbWVtYmVyIHRvIGZyZWUgdGhlIGRlc2NyaXB0aW9uIChpZiBzYXZlZCkgZHVyaW5nIHVubG9hZF9hbGxfbWlicworICAgIChwYXRjaCAzNTY1OTIyKQorCitjb21taXQgMmI5OTQwY2E1NmZjOGQzZDYxMGVmZDJlYmE5YWU0ZWJiNzQxZTY3MQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE9jdCAyNCAwNjo0MTo0NiAyMDEyICswMjAwCisKKyAgICBDbGVhbiB1cCBkaXNraW8gY29uZmlnIGJlZm9yZSByZWxvYWRpbmcuCisKK2NvbW1pdCBmNzc2OGZiNjQzYmUyODJkNjM1Mjg5YjU3Zjg4YTA3ZDA3MDQ4N2IwCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgT2N0IDIzIDExOjQ4OjMxIDIwMTIgKzAyMDAKKworICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldHguYzogRWxpbWluYXRlIGRlYWQgY29kZSAoc2VlIGFsc28gY29tbWl0IGFhNTkxMmI4KQorCitjb21taXQgNjRjNTZmMjdjNWVkNDMyY2U4ZGU0NGUyNTc5Y2EwYzgwNmE1MTdlYQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEF1ZyAyMiAxNzo0NToxOSAyMDEyICswMDAwCisKKyAgICBidWlsZC5wbDogRWxpbWluYXRlIGEgdGVtcG9yYXJ5IHZhcmlhYmxlCisKK2NvbW1pdCAzMGE1ZDAxM2E4MGU5ZmQ1MGI4ZmQwZjcwZmZkOTZmZjI2YjZlNDU0CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gT2N0IDIyIDIwOjI5OjA5IDIwMTIgKzAyMDAKKworICAgIFVwZGF0ZSB0byBjdXJyZW50IElBTkEgdmVyc2lvbgorCitjb21taXQgZjQwZDQ0MDY4OTA2N2VmNmM0ZGE3ZGRhZGZiMzczYTQ1MjE5N2ZiZAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIE9jdCAyMiAxOTo0NzowNiAyMDEyICswMjAwCisKKyAgICB3aW4zMi9Db25maWd1cmU6IFN0cmlwIHRyYWlsaW5nIHdoaXRlc3BhY2UKKworY29tbWl0IGQzNGUwNTc3NzljYjMyZTk0MzI0MDg5ZGM0NjI1NjM4MzA5Y2ZlODkKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBPY3QgMjIgMTg6MzY6NTkgMjAxMiArMDIwMAorCisgICAgd2luMzIvYnVpbGQucGw6IFN0cmlwIHRyYWlsaW5nIHdoaXRlc3BhY2UKKworY29tbWl0IDMwZGFlZjE4NjAzOTdmMDQ1YzQwNTVjZDYxZDY2M2QyOTBkZDQ3ZjIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBPY3QgMjIgMTg6MzI6MzggMjAxMiArMDIwMAorCisgICAgRml4IE1TWVMga2lsbC9wc2tpbGwgY29uZnVzaW9uCisKK2NvbW1pdCAxNGJlOTEzMmI5MTE1OGIwNTEyMDcxMGIxZmY2YTRiMmFjY2M1MzFkCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gT2N0IDIyIDE4OjEwOjQ0IDIwMTIgKzAyMDAKKworICAgIEZpeCBuZXQwL25ldHggY29uZnVzaW9uCisKK2NvbW1pdCA4MTA3YTYzNTJkZjI0Nzg2NjA5OTRlZjEwM2Q1MjgwMWE2NjA3Y2M5CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gT2N0IDIyIDE3OjAzOjQ3IDIwMTIgKzAyMDAKKworICAgIEZpeCBzcGVsaW5nIGVycm9ycworCitjb21taXQgYWE1OTEyYjg5ODZjZGU3NDA5MGJhMTViZTE5NjQyNjMwOWExZTFmMAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE9jdCAyMiAxNjo1ODo1MCAyMDEyICswMjAwCisKKyAgICBJbXBsZW1lbnQgdGhlIG1vZGVybiBJUCB2ZXJzaW9uIGFnbm9zdGljIHRhYmxlIGluIHNubXBuZXRzdGF0LgorICAgIElmIHRoZSBtb2Rlcm4gdGFibGUgaXMgbm90IGF2YWlsYWJsZSAob3IgdGhlIC1DTCBvcHRpb24gaXMgdXNlZCkKKyAgICBmYWxsIGJhY2sgdG8gdGhlIGxlZ2FjeSB0YWJsZXMuCisKK2NvbW1pdCAxYTM0ZDIyNDllZjBkMjIxNWU1ODg2ZjliM2M5N2VjZmE3ZWI1MTkwCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gT2N0IDIyIDE2OjM5OjQxIDIwMTIgKzAyMDAKKworICAgIFBpY2sgdXAgaWZEZXNjciBmcm9tIGlmWFRhYmxlIHdoZW4gYXZhaWxhYmxlLCBhbmQgdXNlIHRoYXQgYXMgdGhlIG5hbWUuCisgICAgVmVyeSB1c2VmdWwgaWYgcGNpLXV0aWxzIHdlcmUgYXZhbGFibGUgd2hlbiBjb21waWxpbmcgdGhlIGFnZW50IGFzIHRoZQorICAgIG5hbWUgb3RoZXJ3aXNlIHdpbGwgYmUgdGhlIHZlcnkgb2JzY3VyZSBjaGlwIG5hbWUKKworY29tbWl0IGI0Y2FmNTQzY2ZmN2RiYThmOWFjY2EyYjllYTg4YzliNzlkYzM5ZWUKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBPY3QgMjIgMTY6MzI6MTIgMjAxMiArMDIwMAorCisgICAgUGljayB1cCBIQyBvY3RldHMgYW5kIE1jYXN0T2N0ZXRzIGZyb20gL3Byb2MvbmV0L25ldHN0YXQgb2YgY3VycmVudCBSSEVMNgorICAgIGFuZCBGZWRvcmEga2VybmVscy4KKworY29tbWl0IGM2NTVmY2U3ODQ1MzJhNTIzZjdkYjU4MmQwY2QwN2RlZTRhZDdhYzUKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBPY3QgMjIgMTY6MjU6NTkgMjAxMiArMDIwMAorCisgICAgVHJ5IHRvIGJldHRlciBjbGFzc2lmeSBMaW51eCBrZXJuZWwgdGhyZWFkcyBhcyBoclNXUnVuVHlwZT1PcworCitjb21taXQgZTFhOGM5NWNhNTVmNTY5NTg1Yzg4ZTE3NGE0M2Y2ZDQxMjljNDM5ZAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IE9jdCAyMCAwOTo1OTo0MSAyMDEyICswMjAwCisKKyAgICBDb3JyZWN0IHRoZSBuZXN0aW5nIG9yZGVyIG9mIHRoZSBkb3h5Z2VuIGVuZCBzZWN0aW9uIGNvbW1lbnQgYW5kIHRoZSBmZWF0dXJlIHJlbW92YWwgZW5kaWYuCisKK2NvbW1pdCBmNjdhZGYyYTM3YThjMTgyZWFjYmNmZTUyZDViNzg5MTkxYTY1OTI5CitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgT2N0IDkgMTY6MzI6NDcgMjAxMiAtMDcwMAorCisgICAgcmVtb3ZlIHJlbGVhc2UgcmVxdWlyZW1lbnRzCisKK2NvbW1pdCAzZTU0MzMwMzkzY2NjODY1MjVlZDZmYjlhMGZjMTljMDY4MzA2NjEwCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVAcmVkaGF0LmNvbT4KK0RhdGU6ICAgVHVlIE9jdCA5IDA2OjM0OjEwIDIwMTIgLTA3MDAKKworICAgIGZpeCBkb3VibGUtbmVnYXRpdmUgdHlwbworICAgIAorICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0NoYW5nZXM6IFY1LjcuMi5yYzMgLT4gVjUuNy4yCisKK2NvbW1pdCA1MDU0YjU3MDYxOWRmMGE4MTk1OGEwNDViZWYxMzViMjAyMDVmMDM2CitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgT2N0IDkgMTU6MjY6MDUgMjAxMiAtMDcwMAorCisgICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4yCisKK2NvbW1pdCA1NmE3OTdmZjNlNzFkYzg4NjQ2N2QxN2NlMDI1YjAyMzdjOGMxY2MzCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgT2N0IDkgMTQ6NDI6MjMgMjAxMiAtMDcwMAorCisgICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMgorCitjb21taXQgMDgxM2Y4YjYyZGYwZTg0NDBmZmVmMTYxY2UxMzRmZjk0NTVlN2RlOQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5lQHJlZGhhdC5jb20+CitEYXRlOiAgIFR1ZSBPY3QgOSAwNjozMzo1OCAyMDEyIC0wNzAwCisKKyAgICBmaXggZG91YmxlLW5lZ2F0aXZlIHR5cG8KKyAgICAKKyAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworY29tbWl0IGE2YTg4OTI3NTM0Njg0ZTI3NWNjZjBlNzgwNTEzMDk0YTczZmM2YmIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBPY3QgOSAwNjozMToyMSAyMDEyIC0wNzAwCisKKyAgICBBSVggbmV0LXNubXA1LjcuMSBoclNXUnVuUGF0aCBub3QgY29tcGxldGUKKyAgICAKKyAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworY29tbWl0IDU4YTRkODgzOTAyMWY3NzJjMzVhNzMyYmQwOTZkMWUyOTBkYzBhNjIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBPY3QgOSAwNjozMDo1NyAyMDEyIC0wNzAwCisKKyAgICBBSVggbmV0LXNubXA1LjcuMSBoclNXUnVuUGF0aCBub3QgY29tcGxldGUKKyAgICAKKyAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworY29tbWl0IDYyNmVhYmVjNGVhOThlNTM1OTA4OTc5MDg1ODQ3OWE1OWEyNmNkY2IKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBTZXAgMzAgMjM6MzA6MjggMjAxMiArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogTW92ZSB0aGUgY2hlY2sgdGhhdCB0aGUgcGR1IHZhcmlhYmxlIGlzIG5vbi1OVUxMIHRvIGJlZm9yZSB0aGUgZmlyc3QgZGVyZWZlcmVuY2Ugb2YgaXQuCisKK2NvbW1pdCA2OGFhYjU3MmMyZDI3NDZiNTFhOTVlYmExMTA1NjhjMzhiMDUwODA4CitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgU2VwIDI1IDE5OjA3OjQyIDIwMTIgLTA3MDAKKworICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS03LXBhdGNoZXMKKworY29tbWl0IDBhNDE1MzNiMWI0OWYwMGQ3MzU3YTNkMmJlYTVkZmE3NWU4ZWRjZDcKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIE1vbiBTZXAgMjQgMDA6MDc6MTkgMjAxMiArMDIwMAorCisgICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIHRlc3QgY2FzZXMgZm9yIHNubXBfc2VydmljZQorCitjb21taXQgYTYxYjQ4ZDc4ZTExZDk0NWRlZjQ2ZmRlMGY3ZDU1Zjc5MTljMzM1YQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIFNlcCAyMyAwNzo1MzowOSAyMDEyICswMjAwCisKKyAgICBQcmVmZXIgY29weV9ud29yZF9jb25zdCBvdmVyIGNvcHlfbndvcmQoTkVUU05NUF9SRU1PVkVfQ09OU1QKKworY29tbWl0IDliZmZjNTQxM2QwZDg4MjM5OGIwNmY0MTA5YWM4MDdhZjJmNzgzNDcKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBTZXAgMjMgMDA6Mjk6NDQgMjAxMiArMDIwMAorCisgICAgU2ltcGxpZnkgbG9nZ2luZyB0aHJvdWdoIHRoZSB1c2Ugb2YgbmV0c25tcF9jb25maWdfZXJyb3IKKworY29tbWl0IGQwOWQ1M2EwZmE2ZGY2M2IyMWU2ZjEyNzMxYmVlNTFhMzYyNGU4NWUKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBTZXAgMjIgMjE6MzA6MDggMjAxMiArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogRG8gbm90IGNyYXNoIG9uIGluY29tcGxldGUgY29uZmlndXJhdGlvbiB0b2tlbnMuCisKK2NvbW1pdCAwMmRjZTZmNDNiOTlmODU5NDE2Mjc5MjhjMWE1MDIyZDY3MjVkMTI0CitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTYXQgU2VwIDIyIDIxOjI4OjUxIDIwMTIgKzAyMDAKKworICAgIENIQU5HRVM6IHNubXBsaWI6IERvIG5vdCB0cnVuY2F0ZSBzaW5nbGUgZGVmYXVsdCB0cmFuc3BvcnQgZG9tYWlucworCitjb21taXQgMjExZTNjNzA2MjU5NjU0NDFiMmEwMjlhNjExMzgwMjk3NDY3M2M0MworQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IFNlcCAyMiAxMToyMzoxOSAyMDEyICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBEbyBub3QgY3Jhc2ggZnJvbSBlbXB0eSB2YWx1ZXMgaW4gLS10b2tlbj12YWx1ZSBhcmd1bWVudHMKKworY29tbWl0IGFmM2QyZDk3M2IxZThlMjlkMjA1ZDhhMDdhY2Q4MmIxZjg1NDgxOWUKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBTZXAgMjIgMTA6MzA6MTYgMjAxMiArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIHRoZSBzeW1ib2wgTkVUU05NUF9QUklvIHRvIGhlbHAgaW4gcHJpbnRpbmcgb2lkIHZhbHVlcy4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitDaGFuZ2VzOiBWNS43LjIucmMyIC0+IFY1LjcuMi5yYzMKKworY29tbWl0IDhiNDUyOTIzMDFmMDM0OWZmYjY5ZDRmZDg1OTVmMmQ1YjE5OWU2YjYKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBTZXAgMjUgMTk6MzU6MzkgMjAxMiAtMDcwMAorCisgICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4yLnJjMworCitjb21taXQgMGNiZmZiNTY1ZTYyYWVmOTM3ZmM3MDBkOGQzYzNiOGM2NWRkZmE2NQorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIFNlcCAyNSAxOTowNzo0MCAyMDEyIC0wNzAwCisKKyAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4yLnJjMworCitjb21taXQgNDA1MDU5NzFhZGQ2YTNiNmY1OTU0Y2ZiZGU1MzI3NDliZmJjYjE2YQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIFNlcCAxNyAxMzozNDozNyAyMDEyIC0wNzAwCisKKyAgICBmaXggZm9yIGhpZGRlbiBDTVNHX3h4eCBtYWNyb3Mgb24gQUlYCisgICAgCisgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKK2NvbW1pdCA2MGYwYTllOTgzYWI4MjdjODI0ZTM5N2Q2MmFlZmY0OGE2MGYwMTMzCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gU2VwIDE3IDEzOjMxOjEyIDIwMTIgLTA3MDAKKworICAgIEZpeCBwc3RhdCBtZW1vcnkgbGVhayBvbiBocHV4IDExaQorICAgIAorICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCitjb21taXQgMTNiZDRkNTZiYWE5ODg2MDE4YTAwNDc3ZTMyMTRlYmUwMjcwNWZmZQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIFNlcCAxNyAxMzozMTowNCAyMDEyIC0wNzAwCisKKyAgICBGaXggcHN0YXQgbWVtb3J5IGxlYWsgb24gaHB1eCAxMWkKKyAgICAKKyAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworY29tbWl0IDA4MDU0MjA4MTNkZTE1NmM3ZmM1MTQyNTM0ZmI0MjBhMGZjYzM1NzIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBTZXAgMTcgMTM6Mjg6NTkgMjAxMiAtMDcwMAorCisgICAgZml4ZXMgQVQgY29kZSBvbiBocHV4IDExaQorICAgIAorICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCitjb21taXQgYmRiM2IxNDYzODBkYjEzMTZjYWJkNThiNzA0NDM2ZTdlZWNkZDlmNQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIFNlcCAxNyAxMzoyODo1MCAyMDEyIC0wNzAwCisKKyAgICBmaXhlcyBBVCBjb2RlIG9uIGhwdXggMTFpCisgICAgCisgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKK2NvbW1pdCBlOTM2Y2Y4MTBhNDczNzkxNTZkOTEzYTcxNGUzODE2MTgxYTBkM2RiCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gU2VwIDE3IDEzOjI1OjIwIDIwMTIgLTA3MDAKKworICAgIGZpeGVzIGRpc0F2YWlsIG9uIEZyZWVCU0QgdWZzCisgICAgCisgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKK2NvbW1pdCA2MDhhYjU3ODg3ZTU1NjZlNjM1MDlhM2Y3ZTVkMGEzZTI4OTJmNGE3CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gU2VwIDE3IDEzOjI1OjAyIDIwMTIgLTA3MDAKKworICAgIGZpeGVzIGRpc0F2YWlsIG9uIEZyZWVCU0QgdWZzCisgICAgCisgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQ2hhbmdlczogVjUuNy4yLnJjMSAtPiBWNS43LjIucmMyCisKK2NvbW1pdCAwN2Y5MTQ1NjRlMDk3MjI0ZDY3NzUxNWMyZjVmZDFmM2MwYzllYjQyCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTYXQgU2VwIDEgMDk6NTQ6NDIgMjAxMiAtMDcwMAorCisgICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTctcGF0Y2hlcworCitjb21taXQgYWVlMjE3YzA3ZWE5ZjM0YTMyMjY4ZTk2NmM3ZWNlZjAzNmVjNGE5NgorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU2F0IFNlcCAxIDA5OjU0OjM4IDIwMTIgLTA3MDAKKworICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjIucmMyCisKK2NvbW1pdCAxMTliMGQzY2YxMmM5N2NhM2M3NGQ2ZDFlNzIzMTk2NzBhODM3OGFhCitBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTYXQgU2VwIDEgMDk6NTE6MDggMjAxMiAtMDcwMAorCisgICAgQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzU2MDQ3MzogZnJvbSBmZW5uZXI6IEhhbmRsZSBUaW1lVGlja3Mgd2hlbiBwcmV0dHktcHJpbnRpbmcgT0lECisgICAgCisgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKK2NvbW1pdCBjOTRjNjJlYTBlZGNlYmJmYmI3M2ZhYjZlY2RkYzY3OWY3Njk0ZGFiCitBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTYXQgU2VwIDEgMDk6NTE6MDggMjAxMiAtMDcwMAorCisgICAgQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzU2MDQ3MzogZnJvbSBmZW5uZXI6IEhhbmRsZSBUaW1lVGlja3Mgd2hlbiBwcmV0dHktcHJpbnRpbmcgT0lECisgICAgCisgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKK2NvbW1pdCA2ZDdmOWViMGRlY2RiOTY4MjgzNmZmZDAzZjE5NzQyMTk3YWQ4N2RiCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgQXVnIDI5IDIxOjE0OjQ2IDIwMTIgKzAyMDAKKworICAgIEZpeCBwb3NzaWJsZSBtZW1vcnkgb3ZlcnJ1biBpbiBmc3lzX2dldGZzc3RhdHMuYyAocGF0Y2ggMzU1OTQxNykKKworY29tbWl0IGYyMzVlZThiMzJlZWQxZGUzZjFlNDIwMmVmNDViNjM3N2ZiY2UxNjMKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBBdWcgMjkgMjE6MDc6MTQgMjAxMiArMDIwMAorCisgICAgRml4IGZvciBoclN0b3JhZ2VUYWJsZSBvbiBBSVggKGJ1ZyAzNTU3MTU5KQorCitjb21taXQgNzhjYzlkNWNjZDg2YjE3MDYyMmFhYzU0M2MzNDVjMDIwNzU1Yzc4YQorQXV0aG9yOiBzdGhlbiA8c3RoZW4yMzkzNEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBBdWcgMjggMTc6MTg6MDkgMjAxMiAtMDcwMAorCisgICAgYWRkIG1pc3NpbmcgcHJvY2VzcyBzdGF0dXMgdmFsdWVzIHVuZGVyIG5ldC9vcGVuLWJzZAorICAgIAorICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCitjb21taXQgNGVmOWRjZDgwYjBiZGExZTE4YjdlMzQ5YTA4YmMwZjIyYTdlNzU1ZQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEF1ZyAyOCAxNzoxNjozNyAyMDEyIC0wNzAwCisKKyAgICBDSEFOR0VTOiBPcGVuQlNEOiBQQVRDSCAzNTU5NDE0OiBmcm9tIG5iYTogc3VwcG9ydCBPcGVuQlNEIGZvciBocl9zd2luc3QKKyAgICAKKyAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworY29tbWl0IDBiNTY5ZmNjZWE5NDE0YzUwY2ZkNmIwZTgzZTE4MzFiYTEyOTFjZTIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBBdWcgMjggMTc6MTQ6NDUgMjAxMiAtMDcwMAorCisgICAgYWRkIG1pc3NpbmcgcHJvY2VzcyBzdGF0dXMgdmFsdWVzIHVuZGVyIG5ldC9vcGVuLWJzZAorICAgIAorICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCitjb21taXQgMWQzYzdiZTdmYTdhMzhmZDNmYzM5NzIwYmI1Y2I3MGY4YmQ3MTE2MAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEF1ZyAyOCAxNzoxNDoyMiAyMDEyIC0wNzAwCisKKyAgICBhZGQgbWlzc2luZyBwcm9jZXNzIHN0YXR1cyB2YWx1ZXMgdW5kZXIgbmV0L29wZW4tYnNkCisgICAgCisgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKK2NvbW1pdCBmZjQzODQzM2FjYTA5NmJiYmVhMjlkZDMwZGZkNWM1NTIzNzYxYTcyCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgQXVnIDI4IDE2OjUwOjQ2IDIwMTIgLTA3MDAKKworICAgIEZpeCByZWFsIG1lbW9yeSByZXBvcnRpbmcgb24gQlNEIHN5c3RlbXMKKyAgICAKKyAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworY29tbWl0IGM0MjlhNGYzOTg0ZGFlNzkxZTMwN2RmNzAyMjUxZjk2ZWYwNDdkODgKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBBdWcgMjggMTY6NDk6MTAgMjAxMiAtMDcwMAorCisgICAgRml4IHJlYWwgbWVtb3J5IHJlcG9ydGluZyBvbiBCU0Qgc3lzdGVtcworICAgIAorICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCitjb21taXQgNDFkOTgwYzAxNTU2NGRiN2YyMmY3NjMxOTBmNjFhYzBkNTZiYTNiMgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIEF1ZyAyNCAxNDozNTo1MyAyMDEyICswMDAwCisKKyAgICBXaW5kb3dzOiBVbmJyZWFrIERMTCBidWlsZAorCitjb21taXQgMjc5MzkyM2JmZTJiMDI2ZmNhZWFmNTM4YWU1MDNmMTA1Y2IzMTViYworQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEphbiAzIDIyOjI2OjIwIDIwMTEgKzAwMDAKKworICAgIGFkZGVkIG1pc3NpbmcgVExTVENQIG1lbnRpb24gaW4gdGhlIGhlbHAgb3V0cHV0CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQ2hhbmdlczogVjUuNy4yLnByZTMgLT4gVjUuNy4yLnJjMQorCitjb21taXQgOWVjNWM1OTk3ODAyNTFkY2QzMTU1ZjlhYzk4MDZlY2U3ZWQ2YmEyMgorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU2F0IEF1ZyAxMSAxMjowMDozNyAyMDEyIC0wNzAwCisKKyAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjIucmMxCisKK2NvbW1pdCAzMzU4YjY1YjExZTJjMGVlNzEyZjYwOWYwMjA3MTI2MGY3NWY5YmIzCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTYXQgQXVnIDExIDExOjM5OjM4IDIwMTIgLTA3MDAKKworICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS03LXBhdGNoZXMKKworY29tbWl0IDQ4NDlhNDMwZGFhZmI5MWM3YTYxYmZiYmMxN2Y5Mjk5ZTU4ZmNmNjQKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFNhdCBBdWcgMTEgMTE6Mzk6MzUgMjAxMiAtMDcwMAorCisgICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMi5yYzEKKworY29tbWl0IDFiYzI2ODQyOGU4Mjk4NTJjOWVmMGE3OTU1MmNhNDA0NWFkZDI4YTMKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBBdWcgOSAyMjo0Mjo1MiAyMDEyICswMjAwCisKKyAgICBNYWtlIHN1cmUgd2UgaGF2ZSBhbiBpbml0aWFsaXplZCBrdm0gc3RydWN0dXJlIHdoZW4gcXVlcnlpbmcgcHJvYyB0YWJsZSBvbiBCU0QuCisKK2NvbW1pdCA3ZTY3YzUwMzhiNmFhYmZkYTE5MzllYTgxZDk0MGIyNDAwMGNmYjUxCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEF1ZyA5IDE0OjI3OjA4IDIwMTIgKzAyMDAKKworICAgIFJlbW92ZWQgZXJyb3IgbWVzc2FnZSB3aGVuIGZpbGUgY2Fubm90IGJlIG9wZW5lZC4KKyAgICAKKyAgICBUaGlzIHNob3VsZCBiZSBoYW5kbGVkIGJ5IGNhbGxlciwgbm90IGluIHRoZSBmdW5jdGlvbi4gVGhlcmUgaXMgb25seSBvbmUgY2FsbGVyIG5vdywgdWRwX2VuZHBvaW50X2xpbnV4LmMuCisKK2NvbW1pdCA1OWIwZGUwYjhmYTczZWI0MDMwMDZjZWU3NWZmODY1MWUxNTg1ZTI4CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEF1ZyA5IDE0OjIzOjE0IDIwMTIgKzAyMDAKKworICAgIEZpeCBjb21waWxhdGlvbiBlcnJvcnMgaW50cm9kdWNlZCBieSBjb21taXQgZjk1ZGY2MzQxYjFkMDYyNDk0NDNlNTE2YjU5YTQzY2RmYTNkNDc3Ny4KKyAgICAKKyAgICBUaGlzIGlzIGVtYmFyYXNzaW5nLCBJIGNvbXBpbGVkIHRoZSBzb3VyY2VzIHdpdGhvdXQgLS1lbmFibGUtaXB2Ni4gU29ycnkgZm9yIGluY29udmVuaWVuY2UuCisKK2NvbW1pdCA1ZDdlZGFkZDQ3NjE2ODBiNjZkMWRmM2JmZGU3Y2E1YjE2Y2E1YTE2CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEF1ZyA5IDEyOjQ2OjM1IDIwMTIgKzAyMDAKKworICAgIEZpeCBjb21waWxhdGlvbiBlcnJvciBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCBmOTVkZjYzNDFiMWQwNjI0OTQ0M2U1MTZiNTlhNDNjZGZhM2Q0Nzc3LgorCitjb21taXQgNDNjOTdiYmFhZjIxMWY0YzdmN2M3MDRjZmNiOTAxZGZiZjgzNDg3NAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBBdWcgOSAxMjozMDowOSAyMDEyICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogTG93ZXJlZCBzZXZlcml0eSBvZiAnRXJyb3IgZXhwYW5kaW5nIFhYWCB0byA2NGJpdHMnIG1lc3NhZ2VzLgorCitjb21taXQgOGU1Y2YyYTcyYTQ2Y2Q0ODNkMjJlNjI5MGE2YzhjNGMyNmFmNmFkMgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBBdWcgOSAxMjoyNTo0OCAyMDEyICswMjAwCisKKyAgICBDSEFOR0VTOiByZW1vdmVkIGNvdW50ZXItNjQgZXJyb3IgbWVzc2FnZXMuCisgICAgCisgICAgVGhlc2UgbWVzc2FnZXMgZG8gbm90IHNheSBlbnl0aGluZyB1c2VmdWwsIGNhbGxlciBzaG91bGQgY2hlY2sgdGhlaXIgcmV0dXJuIHZhbHVlIGFuZCByZXBvcnQgaXQuCisKK2NvbW1pdCBmOTVkZjYzNDFiMWQwNjI0OTQ0M2U1MTZiNTlhNDNjZGZhM2Q0Nzc3CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEF1ZyA5IDEyOjAxOjI1IDIwMTIgKzAyMDAKKworICAgIENIQU5HRVM6IHNubXBkOiByZW1vdmVkIGVycm9yIGxvZyBtZXNzYWdlcyB3aGVuIElQdjYgaXMgZGlzYWJsZWQuCisKK2NvbW1pdCAxOGRhY2U4ZTRhMzZiMDgzZDZlZjcxNzczNWM2M2U3ZjQwMjI0ZGI4CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEF1ZyA5IDEwOjQxOjQ1IDIwMTIgKzAyMDAKKworICAgIENIQU5HRVM6IGFkZGVkIENWRlMgKENlbnRyYVZpc2lvbiBGaWxlIFN5c3RlbSkgdG8gaHJTdG9yYWdlVGFibGUgYW5kIGhyRlNUYWJsZS4KKworY29tbWl0IDkwZjQzMWI0NWQyMTUwNjQyN2JjMGJkMWQ0ZWU2OWUwYjhlYTMwYmMKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBBdWcgOCAyMzoxMDo1MCAyMDEyICswMjAwCisKKyAgICBVcGRhdGUgdG8gY3VycmVudCBNSUIgdmVyc2lvbnMKKworY29tbWl0IDllN2EwYjllNTgwZDNiMWVhNjE5OGE3NDE0YzgxNmMyM2IxMjNiMTAKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBBdWcgOCAyMjoyNzoxNiAyMDEyICswMjAwCisKKyAgICBVc2UgYSB3cmtpbmcgYXdrIGZvciBTb2xhcmlzCisKK2NvbW1pdCAwZTM5MjJhZTIxZTRiN2VjNTM4ODY3YWZkMjJjZTc0ZDc0MWUwZjFjCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgQXVnIDggMjI6MTc6MzQgMjAxMiArMDIwMAorCisgICAgZml4IHByb3RvdHlwZSBmb3Iga2xvb2t1cAorCitjb21taXQgYTIyMTA5NzExYTZkMWVjMTRiNmEzZjFjYWMyMjFkNzAyNjNmMTA0YQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEF1ZyA4IDIyOjA4OjEzIDIwMTIgKzAyMDAKKworICAgIGZpeCBwcm90b3R5cGVzIGZvciBrbG9va3VwCisKK2NvbW1pdCBhYzA2Mjk3MmM1ODUxNzRmOTVkN2JhODdhYTVlYzU0YzQyZmRlYzU1CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgQXVnIDggMjI6MDA6MjYgMjAxMiArMDIwMAorCisgICAgZml4IHByb3RvdHlwZXMgZm9yIGtsb29rdXAKKworY29tbWl0IDdjZGQ4ZWJlZjk1MDdmZTc2NjEwN2NhOWZlZTA1NGM0NGNjMGJhYzUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFN1biBBdWcgNSAwODoxMzo1OSAyMDEyICswMDAwCisKKyAgICBNYWtlIHNubXBfYWxhcm1fcmVzZXQoKSB1c2UgdGhlIG1vbm90b25pYyBjbG9jay4gRml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQgMzdiYTdlMi4KKworY29tbWl0IDAyM2Y2MWVhNzgzYmZjYzUzZmU5MGFhNjY1NDVjNWFlYTJkYjgwNjEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBBdWcgOCAxNjoyNjo1NCAyMDEyICswMDAwCisKKyAgICBGaXggYnVpbGQgYnJlYWthZ2UgY2F1c2VkIGJ5IGNvbW1pdCAwMjg2MTRlY2YyZDY3Mzk4Njk5ZGMzYmQ3ODQwMjlmMzM2MGYyZTEzCisKK2NvbW1pdCBjZDgyMDk0OWExNDkxYWYxMDNhODU1NWY2YmRhZTA0ODUxZjNkMjg1CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgQXVnIDggMTY6MTY6NDMgMjAxMiArMDAwMAorCisgICAgVW5kbyBidWlsZCBicmVha2FnZSBjYXVzZWQgYnkgY29tbWl0IDM3YmE3ZTIwYTUyMWZiZjA0NThhMGM3N2VlYTJlNWUzNmJkN2VjMGEKKworY29tbWl0IGYxNDMwMDhjY2M1N2VhMTBjYmI4OGFiMzU1NDgyMmIxN2I2MjcwYWEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFN1biBBdWcgNSAwODo0NTo0MiAyMDEyICswMDAwCisKKyAgICBNYWtlIGdldF9leGVjX291dHB1dCgpIHdvcmsgb24gYmlnIGVuZGlhbiBzeXN0ZW1zLgorICAgIAorICAgIFVuZG8gQVBJIGJyZWFrYWdlIGludHJvZHVjZWQgYnkgY29tbWl0IDczNzRiODRmZTRjMmVmODQ5N2ZkZTNkYWU4MGE2OWFhODllYmExOWMuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQ2hhbmdlczogVjUuNy4yLnByZTIgLT4gVjUuNy4yLnByZTMKKworY29tbWl0IDg0MzIyZTBkYzJhODk3NDY0NjU0MmQ5ODgxYmMwMWI0M2RjM2ExMmQKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKdWwgMzEgMTY6MjQ6MDcgMjAxMiAtMDcwMAorCisgICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4yLnByZTMKKworY29tbWl0IDhmZWM3YTgxZDYxMzNhNWYwNWVkMzRhNWFmOTgwNmFmNWQxMjgyMjMKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKdWwgMzEgMTU6NTc6NTYgMjAxMiAtMDcwMAorCisgICAgZml4IHRoZSBhc3NlcnQgY2hlY2sgdG8gYWxsb3cgZm9yIHNvbWUga25vd24gYXNzZXJ0cworCitjb21taXQgZGZkZTZkMmRkZDUxOWM4YzJhZTE3ODg3NzRmZGY5MGQ4YmVhMDJiMQorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEp1bCAzMCAxMDowODoyNCAyMDEyIC0wNzAwCisKKyAgICBpbmNsdWRlIGVycm5vLmggYW5kIGRvbid0IHVzZSBjb250aW51ZSBvdXRzaWRlIGEgbG9vcAorCitjb21taXQgN2NmZmUwMjIyY2Q5OGEyMWUzMGY0NGMzZGY5ZjBkOTBiZjA5NmZlOQorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEp1bCAzMSAxNDoxMzo1MCAyMDEyIC0wNzAwCisKKyAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4yLnByZTMKKworY29tbWl0IDIyYWY3ZmQ0Njc3NmE4ZGIyMzYyZTg4YWNiMWI2OWIxNjVjMDM0YjYKK0F1dGhvcjogYmxlbnR6IDxibGVudHpAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSnVsIDMxIDEzOjUyOjQwIDIwMTIgLTA3MDAKKworICAgIENIQU5HRVM6IGFpeDogUEFUQ0ggMzQwMzQzMzogZnJvbSBibGVudHo6IElzc3VlcyB3aXRoIGhyU1dSdW5OYW1lIGFuZCBQYXJhbWV0ZXJzIG9uIEFJWAorICAgIAorICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCitjb21taXQgNTE2YjlmODI3NWI4ZGIwM2NkYzQxMDc4ZTY1YzIxNzAzMDlhM2Y4YgorQXV0aG9yOiBKdWxpZW4gUGlub24gPGpwaW5vbkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKdWwgMzEgMTM6MjU6MzEgMjAxMiAtMDcwMAorCisgICAgQ0hBTkdFUzogcGVybDogUEFUQ0ggMzQxMjkzOTogZnJvbSBqcGlub246IFJlcGFpciB0a21pYgorICAgIAorICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCitjb21taXQgOGYyMzBmNDAxYzY0ZDgyMjg4M2FjNDQ0NjI0YTJjMmZkNzEyOGQ4ZQorQXV0aG9yOiBIYXJzaGEgU2hpdmFubmEgPG5hYW51aHNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSnVsIDMxIDEzOjIyOjExIDIwMTIgLTA3MDAKKworICAgIENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDM1NTI3NDU6IGZyb20gbmFhbnVoczogZml4IHRvIHN1cHBvcnQgMzIgY2hhcnMgZm9yIFZBQ00gbmFtZXMgYXMgcGVyIFJGQy0yNTc1CisgICAgCisgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKK2NvbW1pdCAzNDAwOGQzMmFlZjQzZDhiYmUxMDAwZmI5YmY5NDY0MmMwNTE0ZjZmCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSnVsIDMxIDEzOjIwOjMxIDIwMTIgLTA3MDAKKworICAgIGZpeCB0aGUgYWdlbnR4IHBpbmcgcGF0Y2ggc28gaXQgd29ya3Mgd2l0aCB0aGUgbmV3ZXIgYWxhcm0gc3RydWN0dXJlIG5hbWVzCisKK2NvbW1pdCA5NjI2NzYzOTRkM2ZlNTU3ZWFkOTEwNTdiNGQ3ODAyMjZkYzBkNmIzCitBdXRob3I6IE1pam8gU2FmcmFkaW4gPG1pam9zQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEp1bCAzMSAxMjo0ODowMSAyMDEyIC0wNzAwCisKKyAgICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMzQxNDA1MTogZnJvbSBtaWpvczogc25tcC1icmlkZ2UtbWliOiBmaXggZm9yIGRvdDFkQmFzZVRhYmxlCisgICAgCisgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKK2NvbW1pdCAzN2JhN2UyMGE1MjFmYmYwNDU4YTBjNzdlZWEyZTVlMzZiZDdlYzBhCitBdXRob3I6IFZpbmNlbnQgQmVybmF0IDx2YmVybmF0QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEp1bCAzMSAxMjoyNzoyOCAyMDEyIC0wNzAwCisKKyAgICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMzQ4MTY4NjogZnJvbSB2YmVybmF0OiBEb250IHBpbmcgbWFzdGVyIGFnZW50IHVubGVzcyB0aGVyZSBpcyBubyBpbmNvbWluZyB0cmFmZmljCisgICAgCisgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKK2NvbW1pdCAyYmU1ZmVhZGIwNTQwODQ2ZTBlM2FkYTI3ZWZiOTc4OTRhNGNiZDUyCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSnVsIDMxIDA3OjI5OjE3IDIwMTIgLTA3MDAKKworICAgIGFkZGVkIGEgZGFyd2luIDEyIHZlcnNpb24KKworY29tbWl0IDFmOWJjZDIxZTdjMmQ1ZWZmYjYyYWEwMWI3Yjg3ZTQzZGM4NjIxNGMKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSnVsIDMxIDE0OjQzOjI3IDIwMTIgKzAyMDAKKworICAgIEZpeGVkIFNDVFAtTUlCOjpzY3RwQXNzb2NQcmltUHJvY2VzcywgdGhlIGxpc3Qgb2YgcHJvY2Vzc2VzIHdhcyBub3QgaW5pdGlhbGl6ZWQuCisKK2NvbW1pdCA0OGJlNWU4OWFhMDRhZGIwZGY3ZTA5NGIyZmU0NjMwMTU0MjlmYzk4CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEp1bCAzMSAxMzo0ODozMSAyMDEyICswMjAwCisKKyAgICBBZGRlZCBsb2cgbWVzc2FnZSB3aGVuIGlwVGFibGUgbWlzc2VzIHNvbWUgaW50ZXJmYWNlcy4KKworY29tbWl0IDc1MjNmMGYwMWJhNGRiNjVhYzE2NDdhMjMyMjhjZjA2YzBiNzJhMDMKK0F1dGhvcjogTWFyaXVzeiBDZWllciA8bWNlaWVyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEp1bCAzMCAxMDoxOTozMyAyMDEyIC0wNzAwCisKKyAgICBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzNTM2NjkyOiBmcm9tIG1jZWllcjogY3JlYXRlIGEgdW5pdCB0ZXN0IGZvciByZWFkX2NvbmZpZyBBUElzCisgICAgCisgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKK2NvbW1pdCBjMDdiOGQ5YjM3NzBiNjE1YzhlMTYyZGJkZjc2NDM4MDVmMzcyZDc1CitBdXRob3I6IE1hcml1c3ogQ2VpZXIgPG1jZWllckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBKdWwgMzAgMTA6MTg6NDIgMjAxMiAtMDcwMAorCisgICAgQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzUzNjY5MjogZnJvbSBtY2VpZXI6IEZpeCBmb3IgY2FsbGJhY2sgY2FsbGluZyB3aGVuIHVucmVnaXN0ZXJpbmcgY29uZmlnIGhhbmRsZXIKKyAgICAKKyAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworY29tbWl0IDVjMjQyNGYwN2Q4NWMwYzRmNzlkNmM1ZmFmNjRkN2YzZWU4NjE3MjYKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBKdWwgMzAgMTA6MDg6NDIgMjAxMiAtMDcwMAorCisgICAgZG9uJ3QgZHVwbGljYXRlIHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMgZGVmCisKK2NvbW1pdCA3Mzc0Yjg0ZmU0YzJlZjg0OTdmZGUzZGFlODBhNjlhYTg5ZWJhMTljCitBdXRob3I6IEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBKdWwgMzAgMDk6NDE6MTcgMjAxMiAtMDcwMAorCisgICAgQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM4Mzk3MDogZnJvbSB5YWJlcmF1bmV5YTogRml4IGNvbXBpbGUgZXJyb3Igb24gRnJlZUJTRCA5LngvUE9TSVhpZnkgYXV0b19ubGlzdCwgZXRjCisgICAgCisgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKK2NvbW1pdCA2NzBkOTZlNzg2NTkwZmRkMzBhMTZhMzMwMGMwZWQ1YmQ2ZTUzMjE0CitBdXRob3I6IE1hcmsgUnVzayA8dXNlcl9pZD0zNDk4OTVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTdW4gSnVsIDI5IDIzOjM5OjIyIDIwMTIgLTA3MDAKKworICAgIENIQU5HRVM6IGFnZW50OiBQQVRDSCAzNDI0OTMzOiBmcm9tIHVzZXJfaWQ9MzQ5ODk1OiBVc2UgTkVUU05NUF9EU19BR0VOVF9BR0VOVFhfVElNRU9VVCBmb3IgdGhlIGRlZmF1bHQgdGltZW91dAorICAgIAorICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCitjb21taXQgZjFlYWVjMTVlZjYwM2I4Y2U1NDI5MzJmZmRiZDg3ODhjM2QxYWNjNQorQXV0aG9yOiBEYW5pZWwgSG9iaSA8aG9iaWRAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTdW4gSnVsIDI5IDIzOjI4OjAxIDIwMTIgLTA3MDAKKworICAgIENIQU5HRVM6IGFnZW50OiBQQVRDSCAzNTMwNzk0OiBmcm9tIGhvYmlkOiBwYXNzL3Bhc3NfcGVyc2lzdDogdW5yZWdpc3RlciBNSUIgd2l0aCBjb3JyZWN0IHByaW9yaXR5CisgICAgCisgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKK2NvbW1pdCBkNzgzYWQ5OTBlOTE0YzBlZTFjOThkMGE5M2E0MjllYjJiMmY0OTk3CitBdXRob3I6IERvdWcgTWFubGV5IDx0ZWtrYW1hbmVuZGxlc3NAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTdW4gSnVsIDI5IDIzOjI1OjQwIDIwMTIgLTA3MDAKKworICAgIENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDM1MjY1OTk6IGZyb20gdGVra2FtYW5lbmRsZXNzOiBBIGJ1Z2d5IFNOTVB2MyBhZ2VudCBjYW4gY2F1c2UgYSBuZXQtc25tcCBjbGllbnQgdG8gaGFuZworICAgIAorICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCitjb21taXQgZTk4NTE1MjBjMThkN2VkMTcyNDA0YTM3ZGMwZGM3YTEzNmJmYWVkZAorQXV0aG9yOiBEYW5pZWwgRXZlcnMgPGRhbmllbC1ldmVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFN1biBKdWwgMjkgMjM6MTQ6MTkgMjAxMiAtMDcwMAorCisgICAgQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzU0ODI1NzogZnJvbSBkYW5pZWwtZXZlcnM6IGZpeCBmb3IgcmVjdXJzaXZlIHB0aHJlYWQgbXV0ZXhlcworICAgIAorICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCitjb21taXQgZTdhMzc2NzhjMmI3MzU5YWZkNDRhMzA3ZTgyNGMxZjdkN2EwYzg3ZAorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU3VuIEp1bCAyOSAyMTozNTozNSAyMDEyIC0wNzAwCisKKyAgICBORVdTOiBvc3g6IHBhdGNoOiAzNTE0MDQ5IGZyb20gdHdvYml0cy1naXRodWI6IGZpeCBjb21waWxhdGlvbiBvbiBkYXJ3aW4xMQorCitjb21taXQgMTIyMTQyNmFiYWQxNWI5YjJmY2VlOGYxZTMyYWI1MmVmMjY5Mjk1MgorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIEZyaSBKdWwgMjcgMTQ6MTg6MjQgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogcGVybDogUEFUQ0hFUzogMzUyOTU0MTogRG9uJ3QgcmVmZXIgdG8gaW50ZXJuYWwgJ215JyB2YXJpYWJsZXMgZnJvbSBleHRlcm5hbCBzY3JpcHRzCisgICAgCisgICAgRml4IHByb3ZpZGVkIGJ5IExlenogR2lsZXMKKworY29tbWl0IDljMDZjMjIwMmRjMDU2NzAzYzgwOTU5YTBlY2E5YTcxNjg0YzI4ZGUKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBGcmkgSnVsIDI3IDEzOjI5OjMwIDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IExpbnV4OiBQQVRDSEVTOiAzNTM2NDIwOiBFbnN1cmUgc25kL3JjdiBtZW1vcnkgYnVmZmVycyBhcmUgc3VpdGFibHkgYWxpZ25lZAorICAgIAorICAgIFBhdGNoIHByb3ZpZGVkIGJ5IFR5bGVyIE9sbXN0ZWFkCisKK2NvbW1pdCA4OWI4MmM1NWY5ZWZkMmU4YWI4YzZkNjVmYTU2N2M1YjFmYWMxODQzCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgRnJpIEp1bCAyNyAxMzoxNDowNyAyMDEyICswMTAwCisKKyAgICAiSWRsZSIgcHJvY2Vzc2VzIChpLmUuIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIGNyZWF0ZWQpIGFyZSBwcm9iYWJseQorICAgIGJlc3QgcmVnYXJkZWQgYXMgIndhaXRpbmcgZm9yIGFuIGV2ZW50IiB0byBiZWNvbWUgcnVubmFibGUgLSBpLmUuICdub3RSdW5uYWJsZSgzKScKKyAgICBUaGF0IGV2ZW50IGJlaW5nIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBjcmVhdGlvbiBwcm9jZXNzLgorICAgICAgIEl0J3MgYXJndWFibGUgd2hldGhlciBvciBub3QgdGhleSBhcmUgc3RyaWN0bHkgImxvYWRlZCIsIGJ1dAorICAgIHRoaXMgZmVlbHMgbGVzcyBtaXNsZWFkaW5nIHRoYW4gcmVwb3J0aW5nIHRoZW0gYXMgJ2ludmFsaWQoNCknCisKK2NvbW1pdCA2ZTc4MGE1YmYwZDY0YmY0N2RmYmY0NzlhZTdmNTZjMTBmZjgxNjZlCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgRnJpIEp1bCAyNyAxMjo1Nzo1NCAyMDEyICswMTAwCisKKyAgICBDbGFyaWZ5IG1lYW5pbmcgb2YgaHJTV1J1blN0YXR1cyAnaW52YWxpZCg0KScKKyAgICBFbnN1cmUgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGFsdGVybmF0aXZlcyBkb24ndCBjb25mdXNlIGNvZGUgc3ludGF4CisKK2NvbW1pdCA5OWIzNTNmNzI1M2E1YmIzOGI4NmYzMWMyNzA4ZTE2YjM0YTQ2Y2U3CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgRnJpIEp1bCAyNyAxMjo1MDo1MSAyMDEyICswMTAwCisKKyAgICBBZGRpdGlvbmFsIHBhdGNoIGZyb20gUGF0Y2ggSUQgIzM1NDMwMDAKKworY29tbWl0IGQwZTAzZmU0YTIzNjk0NWRhZjQyYWY3YTQ3MDk0ZTY4NmY5YmRiOWUKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBGcmkgSnVsIDI3IDEyOjQxOjAyIDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNTQzMDAwOiBWYXJpb3VzIGZpeGVzIHRvIFJtb24gY29kZQorICAgIFN1cHBsaWVkIGJ5IFBhdHJpY2sgUml0dGVyCisKK2NvbW1pdCA2NjMyYTJiOWI5ZmFkMWEwYjBkNmJhZWRmMmEyYjM5MWY1ZDRlOTE0CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IEp1bCAyNiAxNDozOTo0MiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBwZXJsOiBCVUc6IDM1MTcwMzA6IEVuc3VyZSBsYXJnZSB0YWJsZXMgYXJlIHdhbGtlZCBwcm9wZXJseQorCitjb21taXQgYjhkMTY2MDRkYmIyZjgwZWJlMjg1MjMyMmFhODMzNjFhMDMyMzc5NgorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBKdWwgMjYgMTQ6MTk6MDcgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogYXBwczogQlVHOiAzNTI5NzY4OiBCZSBtb3JlIGNhcmVmdWwgd2hlbiBzdHJpcHBpbmcgb2ZmIG51bWVyaWMgc3VmZml4ZXMKKworY29tbWl0IDBiM2FkNDRlYzRjMWI5ZjQxZGMzZWY3MGU2YTM4YTUzZWYyNjhhZGUKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgSnVsIDI2IDEzOjM0OjEwIDIwMTIgKzAxMDAKKworICAgIEZpeCBjb21tZW50cyBkZXNjcmliaW5nIEZyZWVCU0QgcmVsYXRpb25zaGlwcworCitjb21taXQgOGNmN2E4OTE4N2E5OTZmYWZmMDQwNDE0OTg2ZmZhNWQ3OGQ1NjgzZQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBKdWwgMjYgMTM6MjE6NTYgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMzUzMjIzNDogRml4IHR5cG8gaW4gbGlidG9vbCBzY3JpcHQKKyAgICAoYWRkcmVzc2VkIHByb3Blcmx5IGluIGxpYnRvb2wgMi40LjIpCisKK2NvbW1pdCA0MjU4ZDg1MmNhN2I2YWVhZTkzYWQ3MzA2NGQ0M2FhODA3ZWI2MTA0CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IEp1bCAyNiAxMzoxNjoyMCAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBkb2M6IEJVRzogMzUzNTI2OTogRG9jdW1lbnQgdXNlIG9mIFtzbm1wXSBmb3IgY2xpZW50LXNpZGUgdG9vbHMuCisKK2NvbW1pdCAyNmVkNDBjYmQwN2NmMjcxYTljZmM0NTE3ZDk2NDc3NDcxMmFkNzdjCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IEp1bCAyNiAxMjo1Nzo1NiAyMDEyICswMTAwCisKKyAgICBTdXBwb3J0IGxvY2FsIHJvbGx1cCBvZiBwYXRjaGVzIHdpdGhvdXQgZmlyc3Qgc3luY2hyb25pc2luZyB3aXRoIGV4dGVuYWwgcmVwby4KKworY29tbWl0IDkwNGM0NDJkNjBjNWI5OWFhY2Q3ZjYwMzA3YzI4Njg0ZWZhZTg1NGMKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgSnVsIDI2IDEyOjUzOjM3IDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHB5dGhvbjogQlVHOiAzNTM1OTY3OiBGaXggbWVtb3J5IGxlYWsgLSBzbm1wX3tzZXNzX31lcnJvciBhbGxvY2F0ZXMgdGhlIG91dHB1dCBidWZmZXIKKworY29tbWl0IDU5N2VjZGE2OGVlMmI1ODBiNjY2Mjg4OTc3YjA0YWExMzMyMDc1MTcKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgSnVsIDI2IDEyOjE3OjE0IDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IEJVRzogMzU0MDYyMTogZGlzdDogQWRkIG1pc3NpbmcgUHJvdmlkZXM6IHRvIG5ldC1zbm1wLXBlcmxtb2RzIFJQTSBzcGVjCisKK2NvbW1pdCA0M2Q1YmEyMjRjM2YyOWZkOGU3ZmQxZDA2MGExNzA0NWFhZDdlZmYwCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IEp1bCAyNiAxMToyNTo0MyAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBwZXJsOiBCVUc6IDM1NDEwMTI6IEZpeCBoYW5kbGluZyBvZiBnZXR0YWJsZSBjb2x1bW5zCisKK2NvbW1pdCBiYzI5M2FjYWQ4ZDM0ODdjZGRlZjNjNzBjZWE3NDM2OGYzNGQ5MzU0CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IEp1bCAyNiAxMToyMDoyMCAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNTQzODY0OiBSZW1vdmUgZXh0cmFuZW91cyBmdW5jdGlvbiB0eXBlCisgICAgKGFuZCBmaXggYSByZWxhdGVkIHR5cG8pCisKK2NvbW1pdCAwMjg2MTRlY2YyZDY3Mzk4Njk5ZGMzYmQ3ODQwMjlmMzM2MGYyZTEzCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEp1bCAyNCAxNTozNzoxNiAyMDEyICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgc25tcGQgZXhpdGluZyBzaG9ydGx5IGFmdGVyIHN0YXJ0IGR1ZSB0byBpbmNvbWluZyBzaWduYWwuCisKK2NvbW1pdCA0ZDM4ODk1ZjQ1OWExZGYyNGY2OGM0YTYwZTRjYWY2YTc3OGQ4YzFmCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEp1biAyNyAwOTozNTo0NCAyMDEyIC0wNDAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogcmVtb3ZlZCBsaW1pdCBvZiAnZXhlYycgYW5kICdzaCcgZW50cmllcyBpbiBzbm1wZC5jb25mCisgICAgCisgICAgVXNlIGR5bmFtaWMgKHJlKWFsbG9jYXRpb24gaW5zdGVhZC4KKworY29tbWl0IGRjZWVhY2M5OThmZTIzMjI4ODJlN2VlZGVjMGE3MWE3OWRjNDk0YWIKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgSnVsIDI0IDA5OjAwOjIzIDIwMTIgKzAxMDAKKworICAgIERvbid0IGJlIHN1cnByaXNlZCBpZiB0aGVyZSBhcmUgbm8gY2hhbmdlcyB0byB2YXJpb3VzIGZpbGVzCisKK2NvbW1pdCA1NmMzYzA3ODMzNmNiZjFiZjA5ZmQxYjAxMDc4YTkwMzA3MTc2MTNlCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBXZWQgSnVsIDExIDA4OjQ3OjEzIDIwMTIgKzAyMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBCVUcgMzU0MjMwNzogQ29ycmVjdCBzeXNPUklEIGZvciBzbm1wTVBEU3RhdHMuIFRoYW5rcyB0byBEYXZlIFZ1Y2ljaCBmb3IgcmVwb3J0aW5nIHRoaXMuCisKK2NvbW1pdCA2MWVjZWRjMDgzZjg4MWRiOGE5YTUwZDUwYmRlZWQzNjYyNGVkMzA3CitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBXZWQgSnVsIDExIDAwOjIxOjI3IDIwMTIgKzAyMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBCVUcgMzU0MjE4ODogQ29ycmVjdCBzeXNPUkRlc2NyIGZvciBzbm1wVXNtTUlCLiBUaGFua3MgdG8gRGF2ZSBWdWNpY2ggZm9yIHJlcG9ydGluZyB0aGlzLgorCitjb21taXQgMmY5ZWRlNDE5ZjQwZTg0OGEyNDI1Mzg5Mjg4Y2FjMGUyMzMxYjk5MgorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBKdWwgMTkgMTc6MTA6NTIgMjAxMiArMDEwMAorCisgICAgRml4IGV4YW1wbGUgJ3JzeW5jJyBjb21tYW5kIGZvciBmdWxsIHJlbGVhc2VzCisKK2NvbW1pdCA2ZGQ3ODg0ZDk5ZTc1NmUyZjIyYjY4ODgyM2NlMWIxZDUyNmFkMTY2CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgV2VkIEp1bCAxOCAxNTo1OTo1OSAyMDEyICswMTAwCisKKyAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIKIAogY29tbWl0IDk3NjY5NmExMjhlNTdiNTEyYmY3YWQ0MDBkMDAyMzY4YjRhOWE4NzEKIEF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpAQCAtNTAsMTIgKzM4ODcsNTQgQEAKIAogICAgIGRvbid0IHVzZSAtLXJlYmFzZQogCitjb21taXQgZDRjMTU0OTU5M2NlMmMyY2FlYjk4ZTVmOGFiZmQ3YTVhZTVhMDI3MworQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBKdW4gMjcgMDk6MzU6NDQgMjAxMiAtMDQwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IHJlbW92ZWQgbGltaXQgb2YgJ2V4ZWMnIGFuZCAnc2gnIGVudHJpZXMgaW4gc25tcGQuY29uZgorICAgIAorICAgIFVzZSBkeW5hbWljIChyZSlhbGxvY2F0aW9uIGluc3RlYWQuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQ2hhbmdlczogVjUuNy4yLnByZTEgLT4gVjUuNy4yLnByZTIKKworY29tbWl0IGZmY2U0OWZiMWFiNGE3OGQ0ZjI5NDdiZTA2ZDYyMGYxNDI0NTI4ZmQKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBKdWwgMTEgMTc6MTI6MzEgMjAxMiAtMDcwMAorCisgICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMi5wcmUyCisKK2NvbW1pdCBiZDdjNzI5NzE4NzgxOGU1ZWVmNzMyNzY2N2U0YTgxZjZjOWZjODliCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSnVsIDExIDE0OjU1OjM4IDIwMTIgLTA3MDAKKworICAgIGRvbid0IHVzZSAtLXJlYmFzZQorCitjb21taXQgYTcxNTMxMmUyY2U0OWQ0ZGE5M2ZjMTQwY2MzOWZjMTAwYjBiNzk3OAorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEp1bCAxMSAxNTo0NzoyMiAyMDEyIC0wNzAwCisKKyAgICB1cGRhdGVkIGZvciB0aGUgcHJldmlvdXMgNS43LjIucHJlMSByZWxlYXNlCisKIGNvbW1pdCAxNzI3NzY4OWI2MjlmNDU4NmQ1ZDcxNGQ4N2NlNmJjMTFmODg3NjY4CiBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgogRGF0ZTogICBXZWQgSnVsIDExIDE0OjU1OjM4IDIwMTIgLTA3MDAKIAogICAgIGRvbid0IHVzZSAtLXJlYmFzZQogCitjb21taXQgNjc4NmZmYzc2ZmFjZjc0NmFmYjZhZjI1MTU4Zjc5NDA2NTZhYjM5YworQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgV2VkIEp1bCAxMSAwODo0NzoxMyAyMDEyICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogQlVHIDM1NDIzMDc6IENvcnJlY3Qgc3lzT1JJRCBmb3Igc25tcE1QRFN0YXRzLiBUaGFua3MgdG8gRGF2ZSBWdWNpY2ggZm9yIHJlcG9ydGluZyB0aGlzLgorCitjb21taXQgZjBlMzVkNjFmOTI1OGRjNjA4ZGE5YmY3MThhZjE0NTdhODU5ZmExOQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgV2VkIEp1bCAxMSAwMDoyMToyNyAyMDEyICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogQlVHIDM1NDIxODg6IENvcnJlY3Qgc3lzT1JEZXNjciBmb3Igc25tcFVzbU1JQi4gVGhhbmtzIHRvIERhdmUgVnVjaWNoIGZvciByZXBvcnRpbmcgdGhpcy4KKwogY29tbWl0IDUyMDZkMjVkNGNiOTRkNGIwZGQzMzFhNWE0MTEzZDRkODc3ODJjNDIKIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiBEYXRlOiAgIE1vbiBKdWwgMiAxMjoxNDozOSAyMDEyIC0wNzAwCkBAIC03NCw2ICszOTUzLDE0IEBACiAKICAgICBhZnRlciBwdWxsaW5nIGFsbCB0aGUgYnJhbmNoZXMsIHN3aXRjaCBiYWNrIHRvIHRoZSBpbml0aWFsIG9uZQogCitjb21taXQgODI1OTZhNjlmNWNlNTNkNWE2ZjBhZjQyMTVjOThkNjE4NGRhYjRkNAorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIEZyaSBKdW4gMjIgMTQ6MDQ6NTAgMjAxMiArMDEwMAorCisgICAgVW5waWNrIG1lcmdlIGNvbmZsaWN0LgorICAgIChOb3Qgc3VyZSB3aHkgdGhpcyB3YXNuJ3QgZmxhZ2dlZCB1cCBlYXJsaWVyIC0gb3IgbWF5YmUgSSBqdXN0IG1pc3NlZCBpdCEpCisgICAgKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgYjA1YmQ3OGY5ZjIzNGJiNTdhMDBiNTRjNWJmYjFkZTMyYTA5ZjRhNCkKKwogY29tbWl0IDZhMDc1YWU0OTRjNzZiODJlZWE5NjMyN2NmNTI0MmRmMDQ4NzQzZGIKIEF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgogRGF0ZTogICBGcmkgSnVuIDIyIDE0OjIxOjA4IDIwMTIgKzAxMDAKQEAgLTg2LDI2ICszOTczLDM3IEBACiAKICAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucmMzCiAKLQotY29tbWl0IDU5NTNjZmQ4NTViN2E1NjU2NzJjZWY5NDI5NDk3MTQxYzdkOWJlMTIKK2NvbW1pdCBiMDViZDc4ZjlmMjM0YmI1N2EwMGI1NGM1YmZiMWRlMzJhMDlmNGE0CiBBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KIERhdGU6ICAgRnJpIEp1biAyMiAxNDowNDo1MCAyMDEyICswMTAwCiAKICAgICBVbnBpY2sgbWVyZ2UgY29uZmxpY3QuCiAgICAgKE5vdCBzdXJlIHdoeSB0aGlzIHdhc24ndCBmbGFnZ2VkIHVwIGVhcmxpZXIgLSBvciBtYXliZSBJIGp1c3QgbWlzc2VkIGl0ISkKIAotY29tbWl0IGU3MmUyMDVmZGNlZjc4N2VmODQwYzhjOTI4ZWQyNzM1MWE2OTU0NGIKK2NvbW1pdCA0ZDE1NzQyYzc1MGE5NmE0ZGJiM2RhODc0NzQxYWUxNTI0ODlmOGQ1CiBBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KIERhdGU6ICAgRnJpIEp1biAyMiAxMzo1ODowNyAyMDEyICswMTAwCiAKICAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNi1wYXRjaGVzCiAKLWNvbW1pdCBmZWFiZWYzZTZjYTM1YmMwZjE0MzQxZTRjZDZkYzlhZmQxOTU1YmE3Citjb21taXQgZjZiNWUzMzc2ZWQzYThlOWVhZjc0YjdkNjgyMmIzYTc2NTc3MmVlOAogQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CiBEYXRlOiAgIEZyaSBKdW4gMjIgMTM6NTc6NTYgMjAxMiArMDEwMAogCiAgICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5yYzMKIAorY29tbWl0IDVjZmIwODExMTI3YTY1M2RmZjBmNGU1M2FkNjAyOWUyMjk4YTZjNjIKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBGcmkgSnVuIDIyIDEzOjI4OjM3IDIwMTIgKzAxMDAKKworICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS01LXBhdGNoZXMKKworY29tbWl0IGU3MmUyMDVmZGNlZjc4N2VmODQwYzhjOTI4ZWQyNzM1MWE2OTU0NGIKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBGcmkgSnVuIDIyIDEzOjU4OjA3IDIwMTIgKzAxMDAKKworICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS02LXBhdGNoZXMKKwogY29tbWl0IGY3OWE1NGYyNDcyNTA4YjE2N2Q5NzdmMzY3YzM4NjRiNTYyMWU4OWQKIEF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgogRGF0ZTogICBGcmkgSnVuIDIyIDEzOjQyOjUzIDIwMTIgKzAxMDAKQEAgLTE3MSw2ICs0MDY5LDMwIEBACiAKICAgICBNb3JlIHByZWNpc2VseSBkZXNjcmliZSAtYyBvcHRpb24uCiAKK2NvbW1pdCA0OGNjMzlmMWFhMGZhNmNlOTU1ZWY3NmIyNWRiOGY5ZGNhMDZiODBkCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTYXQgSnVuIDIgMDk6Mjc6MTAgMjAxMiAtMDcwMAorCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4yLnByZTEKKworY29tbWl0IDgxMDE4NWFlMGIwY2QyYWQ0ZDQyNGExYmE3NzVlZjVjZWFmNTBmMDMKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFNhdCBKdW4gMiAwOToyNDoxOSAyMDEyIC0wNzAwCisKKyAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjIucHJlMQorCitjb21taXQgNjI3MTQ3MWUwMTI4MmYzNjc1NzI0ZWFmMTM1OGNlYjBlOTVkZGQ0ZQorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU2F0IEp1biAyIDA4OjMyOjQwIDIwMTIgLTA3MDAKKworICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjIucHJlMQorCitjb21taXQgZmNiNzgyYWE4ODkzMTM0Yzc0MTRhOTI2ZDkyNjg1OTRmNzI1YjkxNQorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU2F0IEp1biAyIDA4OjMyOjE4IDIwMTIgLTA3MDAKKworICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMi5wcmUxCisKIGNvbW1pdCBlM2JjZDg3YzcyZmNlYTc3MDZlODY4YjVhY2U3NTI5NjA5M2Y3NDk3CiBBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KIERhdGU6ICAgVGh1IE1heSAzMSAxNDowOTo0MiAyMDEyICswMTAwCkBAIC0xOTUsMjUgKzQxMTcsMzAgQEAKIAogICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzIKIAotCi1jb21taXQgNTEwOWFlNzdiNmMxZDU0OWQ5MWUzMjgyN2Y0YTJjYWMwNTM4M2Q1OAorY29tbWl0IGQ5YTE1NDQ1YWE3NGY1MzE2YmZjNzExYzE1NTg0Njc4NzJjMjk1OGMKIEF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgogRGF0ZTogICBUaHUgTWF5IDMxIDEzOjUwOjEyIDIwMTIgKzAxMDAKIAogICAgIG1ha2UgZGVwZW5kIGZvciA1LjYuMi5yYzIKIAorY29tbWl0IGJjYWJkMmM5NTQyZGJlYmQxZDMxOWI0NDk0NDEzYmRjY2EwNjYxNGUKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWF5IDMxIDEzOjM4OjM4IDIwMTIgKzAxMDAKKworICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS02LXBhdGNoZXMKKworY29tbWl0IGI0NzM4OThjMGM1YWM5ZWI0N2M3YzA1YTNmNzQ1ZTRmZjJhNzZhYWEKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWF5IDMxIDEzOjM4OjI4IDIwMTIgKzAxMDAKKworICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucmMyCisKIGNvbW1pdCAxMzE0MjllNzA2MmZiYWE2NWI4MmFmZmVkMWZiOTJkZjJjMGNjODEzCiBBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KIERhdGU6ICAgVGh1IE1heSAzMSAxMzozODozOCAyMDEyICswMTAwCiAKICAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNi1wYXRjaGVzCiAKLWNvbW1pdCAxZmJmZTVlZTNjNDI4NzM0NWM1MTQ2Mjc3NWYzOWUxYmQyNzM1ZTJiCi1BdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KLURhdGU6ICAgVGh1IE1heSAzMSAxMzozODoyOCAyMDEyICswMTAwCi0KLSAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnJjMgotCiBjb21taXQgMWM4MTEwYjMzYjgxMDVjYTYxOTA5NDVhMzVmZTdhZTkwMzI1MmQ2OAogQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CiBEYXRlOiAgIFRodSBNYXkgMzEgMTM6MjE6MzggMjAxMiArMDEwMApAQCAtMjkyLDYgKzQyMTksMTggQEAKIAogICAgIEZpeCBtaXNzaW5nIGluY2x1ZGUuIEZpeGVzIFNJR1NFR1Ygb24gRnJlZUJTRDkgeDY0CiAKK2NvbW1pdCA1ODA1ODc4NzQ5YzA4MDYyZGViZjBhOWQ3OThkMDhmYjkxNmNhYTJkCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gTWF5IDI3IDA2OjIzOjE5IDIwMTIgKzAyMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBBZGQgbWlzc2luZyBkZWJ1ZyB0YWcKKworY29tbWl0IGQxYTQyYmJjYzdiMTQ3MzBjOWE2ZDk5YzRmMDQ3MDk3ODQzYTU0OWIKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIEZyaSBNYXkgMjUgMDk6MDI6MjcgMjAxMiArMDIwMAorCisgICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJ1biBsaWJ0b29sIC0tbW9kZT1maW5pc2ggb24gdGhlIHJpZ2h0IGRpcmVjdG9yeQorCiBjb21taXQgMWZiZjMzNzExYTE5ZWFjOTczOWFkMjNmNmY2MjUxZWFjYzQxZjFjNAogQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CiBEYXRlOiAgIFR1ZSBNYXkgMjIgMTQ6NTQ6NDUgMjAxMiArMDEwMApAQCAtNDA2LDEyICs0MzQ1LDkxIEBACiAKICAgICBDaGVjayBuZWVkIGZvciAtbG0gdG8gdXNlIHJvdW5kL2V4cAogCitjb21taXQgYTA2MDljZjFmM2E2OTE3ZDI2MzcyNTczMjI0OGNkOTM3YTQ1YWQ5NAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IEFwciA3IDA4OjQwOjQ0IDIwMTIgKzAyMDAKKworICAgIFJlbW92ZSBsaW1pdGF0aW9uIG9uIGNvbmZpZ3VyYXRpb24gbGluZSBsZW5ndGguCisKK2NvbW1pdCAzMDU5NzMzMzhhNjNhZTU0YzVlMDJhODYyNmZiZTlhODA2NGRjYjdlCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTYXQgQXByIDcgMDA6MzI6MTkgMjAxMiArMDIwMAorCisgICAgUmVkdWNlIHZhcmlhYmxlIHNjb3Blcy4KKworY29tbWl0IGNjYWI0ZTlkM2VkNDI0YzM5ZDBkYzI3YmU2M2ZhNzZjNzQ2MWVhODEKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBBcHIgNyAwMDoxNToyMiAyMDEyICswMjAwCisKKyAgICBJbnRlcm5hbGl6ZSB0aGUgbmFtZSBhbmQgbGluZSBudW1iZXIgb2YgdGhlIGN1cnJldCBjb25maWd1cmF0aW9uIGZpbGUKKworY29tbWl0IGNmODc0YWQ3YjlkYWY0ZmNjMGQ0NmNkZDAzNDQ3NGI0NzgwMDUzNDEKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIEZyaSBBcHIgNiAyMTo0NzoyOCAyMDEyICswMjAwCisKKyAgICBSZXBsYWNlICNpZiAoQSkgQiAjZWxzZSBCICNlbmRpZiB3aXRoIEIuCisKK2NvbW1pdCBlZjllYTY0MWJjMjkwZWVjNTA2ODViNjA1MTliMzFiZWU4YjE0YTY5CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIEFwciA5IDIxOjA0OjA2IDIwMTIgKzAxMDAKKworICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUyCisKK2NvbW1pdCAzNWFiYTE5NTlkZTExOWYxZmI4OTIwM2MzNzEwOWFhNmYwZTIxYzU3CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIEFwciA5IDIxOjAwOjQwIDIwMTIgKzAxMDAKKworICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUyCisKIGNvbW1pdCBlNDFmYmFmZjE4YWM5MDk1Y2Y0YTczOWEwNmVjMzlhMWE2Y2NmZGMxCiBBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KIERhdGU6ICAgTW9uIEFwciA5IDIwOjM1OjM1IDIwMTIgKzAxMDAKIAogICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucHJlMgogCitjb21taXQgMTM3ZmU1ODJkNmNjNTYxMTQzMGRhYjQ2ZWYxNDRlZmQ4NGNmYzgwMworQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIEZyaSBBcHIgNiAyMDo0Njo1NiAyMDEyICswMTAwCisKKyAgICBSZXZlcnQgY29tbWl0IDFmNGE4MjliMTgyNzVlNDk1NmNhOTFlNWVjMzcwZGYwMTVmMDYxMzMKKyAgICAoc25tcF9zdG9yZV9uZWVkZWQoKSBBUEkgaXMgbm90IGF2YWlsYWJsZSBpbiA1Lls0NV0ueCkKKworY29tbWl0IDJiN2U2NDI4OGMwMWE4YTA2MjAyNmM1MjFjYTMxYTVlODg1ZjMwY2MKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gQXByIDIgMTY6MTI6MTIgMjAxMiArMDEwMAorCisgICAgRnJlZUJTRC05OiBGaXggZm9yICdjb25zdCdpZnllZCBubGlzdCBhcmd1bWVudHMKKyAgICBCYWNrcG9ydCBvZiBlZDY1ZWNhNmU3ZjljZmE3MzgwYTc4ZDU2YzAxZWQzMTQ3NDViMTY5IGZyb20gVjUtNi1wYXRjaGVzCisKK2NvbW1pdCA3ZTk1ZDgwYjY5ODA1MTI1OTY0NWMwNzRhNTNmZmQyNjRhNmZhOTE2CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIEFwciAyIDE2OjA2OjU2IDIwMTIgKzAxMDAKKworICAgIEZyZWVCU0QtOTogRml4IGZvciAnY29uc3QnaWZ5ZWQgbmxpc3QgYXJndW1lbnRzCisgICAgQmFja3BvcnQgb2YgZWQ2NWVjYTZlN2Y5Y2ZhNzM4MGE3OGQ1NmMwMWVkMzE0NzQ1YjE2OSBmcm9tIFY1LTYtcGF0Y2hlcworCitjb21taXQgMWE5YjdiN2MwMmUyZGVlZmU5OTRkNTk1YTdjYzFkZDJmZmJlZWUxZAorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBBcHIgMiAxNTo1MToyMCAyMDEyICswMTAwCisKKyAgICBGaXggY29tcGlsYXRpb24gb24gRnJlZUJTRCA5Lnggd2l0aCAncmVjZW50JyBoZWFkZXIgc2h1ZmZsaW5nCisgICAgQmFja3BvcnQgb2YgYzUzZDhjMzUyNWY1OTBmMjIxM2QzNWIwZGE5NDEyMzg2MmYzZTM2NiBmcm9tIFY1LTUtcGF0Y2hlcworICAgIChQYXRjaCAjMzM2MzMwOCAtIG9taXR0aW5nIHR3ZWFrcyB0byBjb25maWd1cmUpCisKK2NvbW1pdCAzZDlkZGI0MWUyNjNiYzFhNzhmOWY5NDQwYjhkNGFkNGY4NmM4MmUxCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIEFwciAyIDEwOjM2OjE4IDIwMTIgKzAxMDAKKworICAgIEZpeCB0eXBvCisgICAgQmFja3BvcnQgb2YgNWI3MDJiMDI0YjYwMTc2ZDdmNTY5OWI5MmU1NWRhNTBhOGRlYWU3MSBmcm9tIFY1LTYtcGF0Y2hlcworCitjb21taXQgMGQzNWM2MDk1NjRiNjZhMWZmZTgxNTU2ZDM3YWRmMDUwM2MzODljZQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBBcHIgMiAxMDoxNTowOCAyMDEyICswMTAwCisKKyAgICBQcm92aWRlIG1pc3NpbmcgZGVmaW5pdGlvbiBvZiBORVRTTk1QX1BSSW8KKyAgICAodXNlZCBpbiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyLmMpCisKIGNvbW1pdCBhNzkxNDFhNDE5OTUzZDAxMGE2OTg5ZThiODhmNGRmMTI3Mzk0ZDM4CiBBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KIERhdGU6ICAgTW9uIEFwciAyIDA5OjE5OjI2IDIwMTIgKzAxMDAKQEAgLTQxOSw2ICs0NDM3LDI2IEBACiAgICAgSGVhZGVyIGZpZGRsaW5nIGZvciBGcmVlQlNELE9wZW5CU0QsRHJhZ29uZmx5CiAgICAgQmFja3BvcnQgb2YgZjdiMGRlMTUxODAwMmM2ZThmOWI5NGVmM2RlYjg4ODJlMWU5MzM4ZSBmcm9tIFY1LTctcGF0Y2hlcwogCitjb21taXQgYWRmNzRiZjc1M2QzOTcwMzU3YWZkNjMzODAzMjU2MjQxZDljN2I4NworQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBBcHIgMiAwODoyMDo0NiAyMDEyICswMTAwCisKKyAgICBGaXggSVB2NiBUQ1AgJiBVRFAgdGFibGVzLCAqQlNEIHN1cHBvcnQgKGluY2x1ZGluZyBPcGVuQlNEKQorICAgIEJhY2twb3J0IG9mIGNvbW1pdHMgNWNkMTU3MzYyNTQ3MWMwNTgzZTkwODdhZWM2ODAyYjc3MTU3ZDVhMgorICAgICAgYW5kIDUwZDczZjBkNTZmZTIyYzU5MDUzMGIzZTMwNWQ0MWRjZGFjM2NlMDAgZnJvbSBWNS02LXBhdGNoZXMKKworY29tbWl0IGQ5NTU1YWNiOWY0N2MzYWE4ZmRlNGJjMjBhNDRkN2NhNjE4MWE4YTkKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFN1biBNYXIgMjUgMTg6NDg6MTIgMjAxMiArMDAwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQXZvaWQgZGFuZ2xpbmcgcG9pbnRlcnMgKGJhc2VkIG9uIHBhdGNoIDM1MDMyNTkpCisKK2NvbW1pdCA4MmE4YjQ3ZWU5NmU1ZDI5YTJiN2FjM2NhMDA3MjJkNzM3ZDViNDc5CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgTWFyIDI5IDIyOjMxOjU2IDIwMTIgKzAyMDAKKworICAgIFJ1bm5pbmcgYXV0b2hlYWRlciAvIGF1dG9jb25mCisKIGNvbW1pdCA5Y2E4ZDkzOWFiMzkzMzA2YTFkMGYxNDZjOWNiNzBlYTBjYjE5ZDQ5CiBBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgogRGF0ZTogICBUaHUgTWFyIDI5IDIyOjMwOjM4IDIwMTIgKzAyMDAKQEAgLTQ2MSw2ICs0NDk5LDQyIEBACiAKICAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDM0ODc4Njc6IERvbid0IHNraXAgbWlzc2luZyBpZlhUYWJsZSBlbnRyaWVzIChpZkNvbm5lY3RvclByZXNlbnQgRkFMU0UpCiAKK2NvbW1pdCAxMjkwNjU3OGFiMzBjZjc3NmQwODBjMGVmMzAyNWIzMDMzNGQ3NjU1CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gTWFyIDI2IDE2OjE3OjQ1IDIwMTIgKzAyMDAKKworICAgIERJU01BTi1QSU5HLU1JQjogRml4IGV2ZW4gbW9yZSBtZW1vcnkgbGVha3MKKworY29tbWl0IGNjZmQ1Y2E2ZmUxMDMxM2Q2MTgxZDI0YmJiMTc5NzgyNWE5N2RhMTAKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBNYXIgMjYgMTU6NTE6MTYgMjAxMiArMDIwMAorCisgICAgRElTTUFOLVBJTkctTUlCOiBFbGltaW5hdGUgZHVwbGljYXRlIGNvZGUKKworY29tbWl0IDlmZGEyNjY4NzIyZjA4ZGRiZmRkNjdhMjIzOWQ4YjAyMWRiNjRhODMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBNYXIgMjYgMTU6NDg6NDYgMjAxMiArMDIwMAorCisgICAgRElTTUFOLVBJTkctTUlCOiBXcml0ZSBhIGxvb3AgYXMgYSBsb29wCisKK2NvbW1pdCBjYmMxOGViNzYzYmE2ZGY2OWVmNzA2NjhhNTRkNzViZjM1ZTc5NTAzCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gTWFyIDI2IDE1OjI0OjA4IDIwMTIgKzAyMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEZpeCBtb3JlIG1lbW9yeSBsZWFrcworCitjb21taXQgYzc3MjUxOTI0NzhhZWMwMThmYjRhZWZhNjA5NDZlMDRhNDA2YzAwYworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIE1hciAyNiAxMzo0MzoyNCAyMDEyICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBBdm9pZCByZWFkaW5nIGZyZWVkIG1lbW9yeSB3aGVuIGRlbGV0aW5nIGEgcm93IGZyb20gYSB0YWJsZQorCitjb21taXQgYTZiZTczOTU2NmYzMTBkNzQ0MWZkN2Y1NDk4OWUzOTQ0NmY3YTE0MworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIE1hciAyNiAxMzo0MjoyOCAyMDEyICswMjAwCisKKyAgICBFeHRlbmQgRElTTUFOLVBJTkctTUlCIHRlc3QKKwogY29tbWl0IDhhOWI1NzI5MTQ1M2NiOGFlYzI4ZTc2NmM1OTQ3MDFlZDE5YzRmYzYKIEF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiBEYXRlOiAgIE1vbiBNYXIgMjYgMjE6MDM6NDEgMjAxMiArMDIwMApAQCAtNTAzLDYgKzQ1NzcsODQgQEAKIAogICAgIFByb3Blcmx5IGZpbmQgcGFzcyBoZWxwZXJzIGZvciB0ZXN0aW5nLgogCitjb21taXQgZmUyNmEzYzRmMjlmMDQ2YmY2NWVkNTJlOWQ5NDA1NGI2NzVmYmM0YgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IE1hciAyMiAwOTowNDo0MiAyMDEyICswMTAwCisKKyAgICBESVNNQU4tUElORy1NSUI6IExpbWl0IHNvdXJjZSBjb2RlIGxpbmVzIHRvIDgwIGNvbHVtbnMKKworY29tbWl0IDc0NWJhZmNkY2M5YzhlODQ2MTZkNGUyNzRkYjJhMzg0YmYyMzRkYTIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBNYXIgMjIgMDg6NTU6MDUgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogTWFrZSBwaW5nIGltcGxlbWVudGF0aW9uIGluZGVwZW5kZW50IG9mIG50cGQgY2xvY2sganVtcHMKKworY29tbWl0IGRhNjkyNWU2NzYzY2FkYmUwMmY0YThiYmZlNjhhMzYyZTUzNWFkNWUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBNYXIgMjAgMTA6Mzg6MzYgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1NGRpc21hbnBpbmdtaWJfc2ltcGxlCisKK2NvbW1pdCBmYTYwNmRkN2NhNmFmZjkzMDhkNGU4YjAxYmJjZGUxNDhmNDQxMjcxCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgTWFyIDIwIDE2OjQ5OjIxIDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IE1ha2UgcGluZ2luZyBsb2NhbCBpbnRlcmZhY2UgYWRkcmVzc2VzIHdvcmsKKworY29tbWl0IDYxN2E4M2JhNzk5NTc1Yzg0YzY2ZjZiMWM0ODBlZjYzMzE2MWE2NGMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBNYXIgMjAgMTY6Mjg6NDYgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IGEgc29ja2V0IGxlYWsgdHJpZ2dlcmVkIGJ5IHBpbmdpbmcgYSByZW1vdGUgaG9zdAorCitjb21taXQgNjI1ZjU1YzI3MmVjNjI4MWUzOGQ4ZTMwZWI1M2ZkNTE1MTZiMDBhZQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IE1hciAyMiAwOTo1NDo1NSAyMDEyICswMTAwCisKKyAgICBESVNNQU4tUElORy1NSUI6IENvbnZlcnQgYSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgdmFyaWFibGUgaW50byBhIHN0YWNrIHZhcmlhYmxlCisKK2NvbW1pdCBiNDhmMTlhZDRiNGFhNjhjM2UxNmUyYTcyZGYzN2I5YzBjZDM2YzRhCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgTWFyIDIwIDE2OjI0OjA3IDIwMTIgKzAxMDAKKworICAgIERJU01BTi1QSU5HLU1JQjogQWRkIG1vcmUgZGVidWdnaW5nIHN0YXRlbWVudHMKKworY29tbWl0IGQ3NGNiMzk2NjE3NTg5MjU2MmY1ZTNhOWIxNjgzYWNiYTJjMjJlMDcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBNYXIgMjAgMTE6NDU6MTggMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IHNldmVyYWwgbWVtb3J5IGxlYWtzCisKK2NvbW1pdCAwYjFhNzc2NzQ2NzhjYzlhMTViZTNlNzcwMGQzY2VmNjUwZWQwMmM3CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgTWFyIDIwIDEyOjAwOjMwIDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IERvIG5vdCBzZW5kIHRoZSBjb250ZW50cyBvZiB0aGUgc3RhY2sgb3ZlciB0aGUgbmV0d29yaworCitjb21taXQgMTM5MDIzY2QzYWI1MTYzMWNjMTBlMjg2NmQ3MWFiY2Y5OWFlNGMxYgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIE1hciAyMSAwODo1NjowNyAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBEb24ndCBjYWxsIGV4aXQoKSB1cG9uIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUKKworY29tbWl0IDE2OWI2YWFhN2I2MTgyN2NjMWFkMGIzYWVlYWUzYTcyMjlkZDI1ZDgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBNYXIgMjEgMDg6NTM6MjYgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IElQdjYgc29ja2V0IGxlYWsgaW4gZXJyb3IgcGF0aHMKKworY29tbWl0IGEwYmUzMmFkMDUzYTcxZmE5NjEzNGQ1NWU1NDJiYjA3ZDRmMDI5N2QKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBNYXIgMjAgMTE6NDM6NDYgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQXZvaWQgdGhhdCBob3N0IG5hbWUgcmVzb2x1dGlvbiBmYWlsdXJlIGNhdXNlcyBhIGNyYXNoCisKK2NvbW1pdCBiZjliZmY2NDU1Njc4N2Q3NjZlZTJlZjJkNTc4YWZiOTIwNzE5ZjNhCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgTWFyIDIxIDA4OjUxOjU1IDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IENvbnZlcnQgcHJpbnRmKCkgc3RhdGVtZW50cyBpbnRvIHNubXBfbG9nKCkgYW5kIERFQlVHTVNHKCktc3RhdGVtZW50cy4KKwogY29tbWl0IDVkNzRjMDEyNDU1MjNhOWQ4ZGIxZWRhMjdkMWVmYWUyZWJjMTA0ZmIKIEF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiBEYXRlOiAgIFdlZCBNYXIgMjEgMTg6NDA6MDIgMjAxMiArMDEwMApAQCAtNTU5LDYgKzQ3MTEsMTggQEAKIAogICAgIEFsbG93IGRpc3RyaWJ1dGlvbiBhcyBwYXJ0IG9mIG5vcm1hbCBOZXQtU05NUCBwYWNrYWdlcy4KIAorY29tbWl0IDU5OTlmNjBjNTc3MjNmMjNmM2MyNTRhZjU3ZmRiMTBhZjMwMWE4ZWIKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBNYXIgMTggMTk6MDM6MDggMjAxMiArMDEwMAorCisgICAgUmVnZW5lcmF0ZQorCitjb21taXQgMjc1ZDIwNDAzNmE2MDdlM2RmNTBlODQ0N2Q0YmM3NTVlOWRiMDJmZAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIEF1ZyAyOCAyMToyOTowMyAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBidWlsZGluZzogTWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgLS1kaXNhYmxlLWFwcGxpY2F0aW9ucy8tLWRpc2FibGUtYWdlbnQgdG9nZXRoZXIgd2l0aCAtLWVuYWJsZS1taW5pbWFsaXN0CisKIGNvbW1pdCBiZGNjYzg3NTcxMDI5NWFhY2Y1MGY3MWViMWMxZDJlZTk3ZjMzNmZlCiBBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgogRGF0ZTogICBGcmkgTWFyIDE2IDIwOjEwOjU4IDIwMTIgKzAxMDAKQEAgLTU3MSwxMiArNDczNSwzNyBAQAogCiAgICAgQ2hlY2sgdGhhdCB0aGUgZGF0YSBleGlzdCBiZWZvcmUgdHJ5aW5nIHRvIHJlYWQgaXQKIAorY29tbWl0IGVmYWU4NmJiYTU5NjI0OTFkNDJiNzdiOTM1MTkxYTNlYjI1ZGQ5MzkKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFdlZCBNYXIgMTQgMDE6MDU6MzMgMjAxMiArMDEwMAorCisgICAgUGFydGlhbGx5IHJldmVydCAiTWVyZ2UgcmVtb3RlIGJyYW5jaCAnb3JpZ2luL1Y1LTctcGF0Y2hlcycgaW50byBWNS03LXBhdGNoZXMiCisgICAgCisgICAgQ29tbWl0IGQzNWExODYwMjE3ZTcyM2U0Zjg2NmRkOThlZjY2MjE2NjU5MzRjNGEgYWNjaWRlbnRhbGx5IHJldmVydGVkCisgICAgCisgICAgNGEyZTViY2Q1NmNkMmFmYjM2ZWIxNWQ3NTRlMmZlZTg4OGRkNTBjMCAoaHJoX3N0b3JhZ2UgaXMgYSBwcm9wZXIgcmVwbGFjZW1lbnQgZm9yIGhyX3N0b3JhZ2UpCisgICAgMGRkMWU1NDU1N2QxYmE0OThiNTVkMDE3YjBhOTNlOGNjZjliZDUyMiAoQ0hBTkdFUzogc25tcGQ6IFVEUC1NSUI6IFJlcG9ydCB0aGUgcHJvcGVyIGFkZHJlc3MgaW4gdWRwTG9jYWxBZGRyZXNzKQorICAgIDUxMTZkNDgzNzhlY2YwM2U3MjJmMzAxMGFkNDdiZjIyYTNmYmNiOGMgKFJlZHVjZSBzY29wZSBvZiBwcmVmaXhfdmFsIHN1Y2ggdGhhdCB0aGUgY29tcGlsZXIgZG9lc24ndCB3YXJuIGFib3V0IGFuIHVuc2VkIHZhcmlhYmxlKQorICAgIDEwZjU2NmY0ZDRjYmIzZTIwNTAyM2MyMzY2OTI4OWU0YmZkMDg5Y2IgKHBlcmwvU05NUC9TTk1QLnhzOiBGaXggYSBjb21waWxlciB3YXJuaW5nKQorICAgIAorICAgIGFuZCBwYXJ0IG9mCisgICAgCisgICAgNmU3NGQ2NGY4NWE1OWQ1MGU0NjFkYjRjMzRhYzc2ZjlkZTQ2OGJmYiAoQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC1xIGFuZCAtdyBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcykKKyAgICAKKyAgICBUaGlzIHJldmVydHMgdGhvc2UgcmV2ZXJ0cy4KKwogY29tbWl0IGFhZWRkNTljYzJkYTcwMTUyN2RjMmQyNjFkNGU5Zjg1ZjE2ZTc1MDQKIEF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CiBEYXRlOiAgIFN1biBNYXIgMTEgMjA6NTc6MzggMjAxMiArMDEwMAogCiAgICAgQWxsb3cgbWFrZSB0ZXN0IHdoZXJlIHRoZSBzb3VyY2UgcGF0aCBjb250YWlucyB0aGUgc3RyaW5nIE5ldC1TTk1QIHRvIHN1Y2NlZWQuCiAKK2NvbW1pdCA0Yjk0ZDc5NjkxOGE0ZWVhZTY4YWIyMWFhNTNkNDQ0YThiNWMyOTIxCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgTWFyIDkgMDg6MDQ6NTkgMjAxMiArMDEwMAorCisgICAgVW5icmVhayBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDQKKwogY29tbWl0IDEwZmU2YjgzMzI0YWQzN2QxOGI5MzdjYzhjNmRlOTRkZTUzNGQwMzUKIEF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgogRGF0ZTogICBUaHUgTWFyIDggMTM6MDQ6MDcgMjAxMiArMDAwMApAQCAtNTk1LDYgKzQ3ODQsMTQgQEAKIAogICAgIG1ha2UgZGVwZW5kIGZvciA1LjYuMi5wcmUxCiAKK2NvbW1pdCAwZWYzNGU2NTE5ZGZjYjgyYzk3ZGY4NDI3NTQ3YzA4ZGNmODFlNjlhCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IE1hciA4IDEwOjExOjMwIDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBzbm1wZCAnLWQnIG9wdGlvbi4KKyAgICAKKyAgICBOb3cgaXQgZHVtcHMgcGFja2V0cyBhZ2Fpbi4KKwogY29tbWl0IDhlNjk3NDJmMTQzZTRmYzExMTk2ZTViMmVkNjZjOGY3ZjUzZmQwMmYKIEF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgogRGF0ZTogICBUdWUgTWFyIDYgMDk6MjQ6MjEgMjAxMiArMDAwMApAQCAtNjQ3LDYgKzQ4NDQsMTIgQEAKICAgICAKICAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTY1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKIAorY29tbWl0IGU0MWYxMTVlNDAzMDRjOTQxYmExN2Q2N2UyNDcxMDcyMmQ5MDc0MWIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBNYXIgNSAxMzozOToxNyAyMDEyICswMTAwCisKKyAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBBdm9pZCB1c2luZyBncmVwIG9wdGlvbnMgLXcgYW5kIC1xIGJlY2F1c2UgZ3JlcCBpbiBTb2xhcmlzJyBkZWZhdWx0IHBhdGggZG9lc24ndCB1bmRlcnN0YW5kIHRoZXNlLgorCiBjb21taXQgNTExNmQ0ODM3OGVjZjAzZTcyMmYzMDEwYWQ0N2JmMjJhM2ZiY2I4YwogQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KIERhdGU6ICAgTW9uIE1hciA1IDEwOjQ3OjIwIDIwMTIgKzAxMDAKQEAgLTY2NSw2ICs0ODY4LDMwIEBACiAKICAgICBwZXJsL1NOTVAvU05NUC54czogRml4IGEgY29tcGlsZXIgd2FybmluZwogCitjb21taXQgNDRhYTI2NTg5MWNkNTYzZjdmNDExNGVmMjVkY2Y3YWFmM2IxNGU5YQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCisKKyAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCisgICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcworICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgorCitjb21taXQgZGFlNGUxNmJlODYxMTc4NjFmNjNkMWEyZjk4MWFkMzYxNDE4ZjVjNgorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCisKKyAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCisgICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcworICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgorCitjb21taXQgMjhmNjIyNmYyZTIyOGI4Y2EyNDg0ODk3MzVmODY1MDJiMmNjZTBhMQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCisKKyAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCisgICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcworICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgorCiBjb21taXQgNDAwMjJhNjk3OTU4MjU5Y2NmYmIzZmVkNDRlYjNjNDcyZjVlODM3ZQogQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KIERhdGU6ICAgU3VuIE1hciA0IDEwOjM3OjQxIDIwMTIgKzAxMDAKQEAgLTY5NSw2ICs0OTIyLDEyIEBACiAKICAgICBwYXNzcGVyc2lzdCB0ZXN0IG5lZWRzIC91c3IvYmluL3BlcmwKIAorY29tbWl0IDg3MjY5OTVjN2E4YWVmNjc0YzRmMTY0YjE4NzFjMzdiYmRjZGFkNTAKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBNYXIgMiAyMTozNjo1OCAyMDEyICswMTAwCisKKyAgICBncmVwIC13IGZhaWxzIHdpdGggT3BlbkJTRCBhbmQgU29sYXJpcyAxMC02NAorCiBjb21taXQgMWViNDc0NWIyM2NjM2E4Mzk4NjRlN2Y2ZWEyODM1NWIwNTY2ZWI2NwogQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KIERhdGU6ICAgRnJpIE1hciAyIDIxOjM1OjQ5IDIwMTIgKzAxMDAKQEAgLTcwNyw2ICs0OTQwLDE4IEBACiAKICAgICBNYWtlIHN1cmUgd2UgaGF2ZSB0aGUgcHJvcGVyIHNyY2RpciBmb3Igb3V0LW9mLXNvdXJjZSBidWlsZHMKIAorY29tbWl0IDc4MzY5MDAyYmUyNzExZjBhYTg3NmI2NGE0ZTEwYjA5MGNjMjQxY2QKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBNYXIgMiAyMTozMzozMSAyMDEyICswMTAwCisKKyAgICBOb3QgYWxsIG1ha2UgdmVyc2lvbnMgZGVmaW5lICQoUk0pCisKK2NvbW1pdCA5NDI0NWIyOWEzY2RhODk0NzVjNmVhYjVkOTQ5M2M2NjU3ZmYzOGUzCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgTWFyIDIgMjE6MjQ6MjQgMjAxMiArMDEwMAorCisgICAgTWFrZSBhdXRvY29uZiAyLjY4IGhhcHB5CisKIGNvbW1pdCA0NGFjZDZjMjg1ZmI1NjE0YjRjOTYxMWIxYWJkZWNhOWRkMjhlNGJiCiBBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgogRGF0ZTogICBGcmkgTWFyIDIgMjE6MTI6NDcgMjAxMiArMDEwMApAQCAtNzQ5LDYgKzQ5OTQsMTIgQEAKIAogICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5wcmUxCiAKK2NvbW1pdCAyZTc0YWNiNmYxOWU0NzI5Y2VkZTBhYjQzZTkzMTk2MWNiMjNhYWVhCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBUaHUgTWFyIDEgMDk6MTg6MzkgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IERvIG5vdCBpbnN0YWxsIHRoZSB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMgdGhhdCB3ZXJlIHJlbW92ZWQgaW4gNS43CisKIGNvbW1pdCBiNzEwOTY0NmI5NWE3MDcxM2QxYWQ5OTFkNDFiY2NkNTdjMGJiM2ViCiBBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgogRGF0ZTogICBUaHUgTWFyIDEgMDg6NDg6NDggMjAxMiArMDEwMApAQCAtODAzLDYgKzUwNTQsMTggQEAKIAogICAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAzNDYwMzY0OiBGaXggdXNlIG9mIGJsb2NrIGZhY3RvciB3aGVuIGRldGVjdGluZyBlcnJvciBjb25kaXRpb25zCiAKK2NvbW1pdCAwMzRmMWM1NzJmNjgzZWE0Mjg1ODMwNzQ0NzFlNWQ1ZDEzYjUxODM3CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIEZlYiAyOCAxMDoyMjoyMCAyMDEyICswMDAwCisKKyAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbmZpZ3VyZWQgdXNpbmcgLS1lbmFibGUtcmVhZC1vbmx5CisKK2NvbW1pdCAzNjQyM2UyMTBiZmI2NWVmMTIxYzZhNjZhZWM0MzhjN2MyMzdkM2RmCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIEZlYiAyOCAxMDowMzoyNSAyMDEyICswMDAwCisKKyAgICBDSEFOR0VTOiBCVUc6IDM0NTQxNjg6IGNvbmZpZ3VyZTogRml4IGJ1aWxkaW5nIHdpdGggLS1lbmFibGUtcmVhZC1vbmx5CisKIGNvbW1pdCBlZWQwYmNiYzQzZmVhMTgyNTlmMGY2M2IyMDgxYjZkMTA1MzVhMDUyCiBBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KIERhdGU6ICAgVHVlIEZlYiAyOCAwOToyNzoxMSAyMDEyICswMDAwCkBAIC04MTAsNiArNTA3MywxOCBAQAogICAgIFNraXAgU0VULWJhc2VkIGJhYnktc3RlcHMgd2hlbiBjb21waWxlZCB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydC4KICAgICBJbnNwaXJlZCBieSBidWcgIzM0NTQxNjgKIAorY29tbWl0IGVjNmEyMzAzMGU1YTIwNzJjMTljMThjMWQ5YzEyNDM4N2RhNTZiN2IKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBGZWIgMjcgMTg6NDI6NTggMjAxMiArMDAwMAorCisgICAgQWRkIC1scnQgdG8gTkVUU05NUExJQlMgc3VjaCB0aGF0IGNsb2NrX2dldHRpbWUoKSBjYW4gYmUgZm91bmQKKworY29tbWl0IGYxMzMyMDUwMDI5NGJiMjQwZjYzYzZkZDdkMmU5YTIyMDhlYjc0MGQKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gRmViIDI3IDE2OjUyOjUxIDIwMTIgKzAwMDAKKworICAgIFNraXAgU0VULWJhc2VkIHRlc3RzIHdoZW4gY29tcGlsZWQgdXNpbmcgLS1kaXNhYmxlLXNldC1zdXBwb3J0CisKIGNvbW1pdCBjNDI3NmI2MjMyYzI5MTQ1YzAzOTg4NGU2YjVhNmI2ZGE0YjkzODM3CiBBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KIERhdGU6ICAgTW9uIEZlYiAyNyAxNTo1NDo0NSAyMDEyICswMDAwCkBAIC04MjMsNiArNTA5OCwxMiBAQAogICAgIE9taXQgU0VULXJlbGF0ZWQgY29kZSB3aGVuIGNvbXBpbGluZyB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAogICAgIChpbnNwaXJlZCBieSBwYXRjaCAjMzQyNDkzMCkKIAorY29tbWl0IDk0ODRkODMyMDNjNGUyZDgyMDQxNmJlNjY1ZmE4MzNhYTcwNDQ0ZDIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBGZWIgMjQgMTQ6MDA6MzIgMjAxMiArMDEwMAorCisgICAgUmV3b3JrIGNvbW1pdCBiNGExOTUwNWEwNTgxNmU5NGUwMWRlOTdiZjk5YWMzN2ZjZGM2ZDIzLgorCiBjb21taXQgMmI3ZjEzNDk1MjI4NjM1ZDgxNmU1OGIyMTc0ZGMxMjRkZDBjZjM5ZgogQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KIERhdGU6ICAgRnJpIEZlYiAyNCAwNzo0MzoyMiAyMDEyIC0wODAwCkBAIC04NDEsNiArNTEyMiwyNCBAQAogCiAgICAgUmVtb3ZlIG9ic29sZXRlIHN5bWJvbCBORVRTTk1QX0VYSVRfT05fQkFEX0tMUkVBRAogCitjb21taXQgYzM2YWI3MWE0ZTA5NmYxNmNjNWE1NTUzM2YwODBjOWE5NDAwOTkxNAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEZlYiAyMyAwODo1Mzo1NiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBGcmVlQlNEOiBzbm1wZCArIGFwcHM6IFNlbmRpbmcgVURQIHBhY2tldHMgd29ya3MgYWdhaW4gZm9yIG5vbi1yb290IHVzZXJzCisKK2NvbW1pdCBlZGViZGRiYTkzMGY4YjE0NzJmYTBiZDIwZmM0MTNlZjhjZjQ2NGEyCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgRmViIDIxIDExOjMxOjQ2IDIwMTIgKzAxMDAKKworICAgIHRlc3RpbmcvUlVOVEVTVFM6IEZpeCBhIGJhc2hpc20KKworY29tbWl0IGI0YTE5NTA1YTA1ODE2ZTk0ZTAxZGU5N2JmOTlhYzM3ZmNkYzZkMjMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBGZWIgMjAgMTY6NTg6NDcgMjAxMiArMDEwMAorCisgICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0ICVsZCB2ZXJzdXMgdGltZV90IG9uIHN5c3RlbXMgd2hlcmUgdGltZV90IGlzIGEgc3lub255bSBmb3IgbG9uZyBsb25nIGluc3RlYWQgb2YgbG9uZy4KKwogY29tbWl0IGQ4OTc4ZWNjODIxMWJlN2MxZTc5MDVmMWUyMTViYjA2ZGVkMjY2YjYKIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CiBEYXRlOiAgIFR1ZSBGZWIgMjEgMTI6MzI6MjUgMjAxMiArMDEwMApAQCAtODU5LDYgKzUxNTgsMjIgQEAKIAogICAgIEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgb24gc3lzdGVtcyB3aGVyZSBtb2RlX3QgaXMgdW5zaWduZWQKIAorY29tbWl0IGY4YTNlZjBkM2Q0ZTUzMDI3OTkwMDEwMTA0OWI4ZGU5OGE0NGE2ZmIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBGZWIgNiAxNDo0ODo1MiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliICsgc25tcGQgKyBzbm1wd2FsazogQXZvaWQgdGhhdCBzeXN0ZW0gY2xvY2sgY2hhbmdlcyAoZS5nLiBieSBudHBkKSBhZmZlY3QgY29kZSB0aGF0IG5lZWRzIHJlbGF0aXZlIHRpbWUKKyAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSBzdXJlIHRoYXQgdGhlIHJhbmdlIG9mIHRoZSBTTk1QdjMgdmFyaWFibGUgc25tcEVuZ2luZVRpbWUgaXMgMC4uMjE0NzQ4MzY0NyBvbiBhbGwgc3VwcG9ydGVkIHN5c3RlbXMgaW5zdGVhZCBvZiAwLi40Mjk0OTY3MiBvbiBzb21lIHN5c3RlbXMgKGkuZS4gd3JhcGFyb3VuZCBhZnRlciA0OTcgZGF5cykKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgbmV0c25tcF9nZXRfbW9ub3RvbmljX2Nsb2NrKCksIG5ldHNubXBfc2V0X21vbm90b25pY19tYXJrZXIoKSwgbmV0c25tcF9yZWFkeV9tb25vdG9uaWMoKSwgbmV0c25tcF9nZXRfYWdlbnRfcnVudGltZSgpCisgICAgQ0hBTkdFUzogc25tcGxpYjogRGVwcmVjYXRlIGF0aW1lX2RpZmYoKSwgYXRpbWVfbmV3TWFya2VyKCksIGF0aW1lX3JlYWR5KCksIGF0aW1lX3NldE1hcmtlcigpLCBtYXJrZXJfdHRpY2tzKCksIG5ldHNubXBfbWFya2VyX3VwdGltZSgpLCBuZXRzbm1wX3RpbWV2YWxfdXB0aW1lKCksIHRpbWV2YWxfdHRpY2tzKCksIHVhdGltZV9kaWZmKCksIHVhdGltZV9oZGlmZigpIGFuZCB1YXRpbWVfcmVhZHkoKS4KKyAgICBDSEFOR0VTOiBzbm1wbGliOiBDaGFuZ2UgdGhlIG5hbWVzIG9mIHRoZSBzdHJ1Y3QgdGltZXZhbCBtZW1iZXJzIG9mIGRhdGEgc3RydWN0dXJlcyB0aGF0IHdlcmUgdXNlZCB0byBzdG9yZSBhIHdhbGwgY2xvY2sgdGltZSBidXQgdGhhdCBkbyBub3cgY29udGFpbiBhIG1vbm90b25pYyBjbG9jayB2YWx1ZQorCitjb21taXQgYzE5NzYwZjMzMzNjOTJmYWM1ZDUwZTk3NjhjZGY5MzkyMThiYzQ4NworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEZlYiAxNSAwOTo0NTowMyAyMDEyICswMTAwCisKKyAgICBzbm1wbGliL3NubXB2My5jOiBGaXggc291cmNlIGNvZGUgaW5kZW50YXRpb24KKwogY29tbWl0IGE2ZGIyMzk5NDVlMTk1ZGU1YTkwZmExODM3MDBiMjdhNmVjYjI4ZDMKIEF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiBEYXRlOiAgIFR1ZSBGZWIgNyAwMDoxMToxNCAyMDEyICswMTAwCkBAIC04ODksNiArNTIwNCwxOCBAQAogCiAgICAgQ0hBTkdFUzogYWRkZWQgT0NGUzIgKE9yYWNsZSBDbHVzdGVyIEZTKSB0byBoclN0b3JhZ2VUYWJsZSBhbmQgaHJGU1RhYmxlCiAKK2NvbW1pdCBmYWZjOTljZDg5ZTczZWM3ZTAwYmY3MzYwZDBiNGZhNjE5NDRhNGY0CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gRmViIDYgMTE6MTg6MzQgMjAxMiArMDEwMAorCisgICAgU2ltcGxpZnkgY2FsY3VsYXRlX3RpbWVfZGlmZigpIGFuZCBjYWxjdWxhdGVfc2VjdGltZV9kaWZmKCkKKworY29tbWl0IDdhZjIwMTNkZThiZjFiMzc5YzA3NmRiNGUxMDQ1MDhlMTc4NzRkM2UKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBGZWIgNiAxNDo1NTo1OCAyMDEyICswMTAwCisKKyAgICBGaXggb3JkZXIgb2YgZmVhdHVyZSAjaWZuZGVmIGFuZCBEb3h5Z2VuIGNvbW1lbnQgYmxvY2sKKwogY29tbWl0IGJiZDY3ZjYzNTMwZjVlZjBiZmM5NDhmYzU4ZGZlNmE5M2Y4Zjg2NzkKIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CiBEYXRlOiAgIE1vbiBGZWIgNiAxNToyNTozMCAyMDEyICswMTAwCkBAIC0xMDYxLDYgKzUzODgsMzAgQEAKIAogICAgIEZpeGVkIGVycm9yIGhhbmRsaW5nIGluIGluaXRfaWNtcCgpLgogCitjb21taXQgYzMwMzU0OWE1OWZhOGMyZjIwYTlkOGJmMWU5ODVmYmM4YWJkZTZhOAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBKYW4gMjAgMTU6NDY6MjkgMjAxMiArMDEwMAorCisgICAgUmV3b3JrZWQgX3JlZ2lzdGVyX2V4dGVuZCgpIGVycm9yIGhhbmRsaW5nLgorCitjb21taXQgOWMyMGUyN2E3MDI2ZmMwMzBkYTNiMzI4YjlhMmUxYjRmMzY2NzBjZAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MjE6MjggMjAxMiArMDEwMAorCisgICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCisKK2NvbW1pdCAyMmZkMGJmYzJkZjBlMWY2MDIwZGMzYzUwYTc1M2RkZjI4YTQ1OTljCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEphbiAyMCAxNToyMDoyMiAyMDEyICswMTAwCisKKyAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KKworY29tbWl0IDVkNjFlNTdiYWY1ODBjNzgyNTJjMGFiYjAwOThjMDdiYjA1YWYxN2MKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgSmFuIDIwIDE1OjE3OjA1IDIwMTIgKzAxMDAKKworICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgorCiBjb21taXQgM2MzZWVhZTgwZDc5NmYyNzU5N2M5MDFlN2ZmMjA0NmM3NjllZjRiOAogQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiBEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDg6MDkgMjAxMiArMDEwMApAQCAtMTI4MSw2ICs1NjMyLDEyIEBACiAKICAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCiAKK2NvbW1pdCA1OTg4NGJiNGQzNWFkMTM3NDdmZmE2NzIzNDM2ZGNhNTg3YTlhYjc3CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxNyAxNzowOToxMiAyMDEyICswMTAwCisKKyAgICBJbiBhYm92ZSBjb2RlLCBvbGVuZ3RoIGlzIGNoZWNrZWQsIHNvIGxldCdzIGNoZWNrIGl0IGFsc28gaGVyZS4KKwogY29tbWl0IGJhNWQ1MjkyYjA0MzkzYjBjN2Q3ZDdlZDk2MTI0MTkyOTQxOGM2ZTQKIEF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgogRGF0ZTogICBUdWUgSmFuIDE3IDE3OjA1OjE0IDIwMTIgKzAxMDAKQEAgLTE3OTgsNiArNjE1NSwxMiBAQAogCiAgICAgQ0hBTkdFUzogQlVHOiAzNDQwNzUyOiBJRi1NSUI6IFJlcG9ydCBpbnRlcmZhY2Ugc3BlZWQgY29ycmVjdGx5IGZvciBFdGhlcm5ldCBpbnRlcmZhY2VzIGlmIG90aGVyIHRoYW4gMTAgTWJwcywgMTAwIE1icHMsIDEgR2JwcywgMi41IEdicHMgb3IgMTAgR2Jwcy4gQWRkIHN1cHBvcnQgZm9yIE5JQ3MgZmFzdGVyIHRoYW4gNjUgR2Jwcy4KIAorY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBKYW4gOSAxMzoyNjoxNyAyMDEyICswMTAwCisKKyAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMKKwogY29tbWl0IGUzMjVlY2JmY2U3N2YwMGFjNWNmNmZiZDk1N2Y5NTQ5NWY2MWM1OWIKIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CiBEYXRlOiAgIE1vbiBKYW4gOSAxMzoyNToxMCAyMDEyICswMTAwCkBAIC0xODIyLDYgKzYxODUsMTIgQEAKIAogICAgIENIQU5HRVM6IHNubXBkOiBJRi1NSUI6OmlmVHlwZTogUmVwb3J0IHR5cGUgImluZmluaWJhbmQgKDE5OSkiIGZvciBJbmZpbmlCYW5kIGludGVyZmFjZXMgaW5zdGVhZCBvZiB0eXBlICJvdGhlciAoMSkiLgogCitjb21taXQgMjY5OTMyZmEzMmM3Y2Q0Nzk1NzQ4OTY5OGUwOWJlZTMxZjYzYjdhZgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIEphbiA2IDE0OjM0OjQyIDIwMTIgKzAxMDAKKworICAgIEZpeCBhbiBNU1ZDIGNvbXBpbGVyIHdhcm5pbmcKKwogY29tbWl0IDBkMWMyMWY5OTkxZDEzMDlkMDU3ZTNlNDA1NmQ1NDdkZjdkNDBlY2YKIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CiBEYXRlOiAgIEZyaSBKYW4gNiAxNjowNjozMSAyMDEyICswMTAwCkBAIC0yMDI3LDYgKzYzOTYsMTIgQEAKIAogICAgIEZpeGVkIGEgdHlwbwogCitjb21taXQgYmVlNGQ3OWNmNGViN2UwYTQ1Mzk3ZjU5YjUyOThkYTYzM2E4ZTFiYQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBKYW4gNCAxMzoxNDo1NyAyMDEyICswMTAwCisKKyAgICBGaXhlZCByZWFkaW5nIHBhc3QgZW5kIG9mIGJ1ZmZlci4KKwogY29tbWl0IDNkYzBlMDBhMmZkOGUzNGZlMWFlMzNlY2FiZjM2ZTE0NjQ2MGEzMWYKIEF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgogRGF0ZTogICBXZWQgSmFuIDQgMTI6NDA6MDcgMjAxMiArMDEwMApAQCAtMjA3Nyw2ICs2NDUyLDEyIEBACiAgICAgCiAgICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc1NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCiAKK2NvbW1pdCBiMWVhYWYzMDIzNjlmZDQ1NTJlOGZlZTdiNmE4MDUwOTFlYzBhOWI0CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiA0IDExOjM4OjUxIDIwMTIgKzAxMDAKKworICAgIEFkZGVkIGNoZWNrIG9mIGZpbmRfc2VjX21vZCgpIHJldHVybiB2YWx1ZS4KKwogY29tbWl0IGFlZTRlODk1ZmUzYmQ1ZjRhNjFlMzQyNzViZmNhMDM2OGI1NjA1NTUKIEF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgogRGF0ZTogICBXZWQgSmFuIDQgMTE6MzE6MjIgMjAxMiArMDEwMApAQCAtMjE1MCw2ICs2NTMxLDEyIEBACiAKICAgICBDaGVjayBvcGVuKCkgcmVzdWx0LgogCitjb21taXQgNjY2NWQ1ZmUyZmM1NjlkNmZhODU0ZDFkNzhlMzQ3YmJhYzY5ZTA3MAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMyAxNDoyMjoyMiAyMDEyICswMTAwCisKKyAgICBGaXhlZCBtaXNzaW5nIGJyZWFrLgorCiBjb21taXQgYTY2NDhjNTQ1M2UxZWY4ZGFjNTdhMzhlZmNjMDBjY2U1M2JmOWU0ZgogQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiBEYXRlOiAgIFR1ZSBKYW4gMyAxNDoyMDoyNyAyMDEyICswMTAwCkBAIC0yMzQ5LDYgKzY3MzYsMTIgQEAKICAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ0NzY3MTogRml4IG92ZXJyaWRlIGhhbmRsaW5nIG9mIE9JRCB2YWx1ZXMKICAgICBQYXRjaCBzdXBwbGllZCBieSBQaGlsbGlwIE8nRG9ubmVsbAogCitjb21taXQgYmE0YTljZTUxYzk2MDBmOWZkYTE2OGYxZTZlZmYzMmExZGI2M2NiOQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBEZWMgMjcgMTM6MjQ6MjYgMjAxMSArMDAwMAorCisgICAgVHdlYWsgLS1kaXNhYmxlLXNubXAtc2V0IGNoYW5nZXMKKwogY29tbWl0IDgyN2M4YjI4ODMwMTcxZmFhOWM2MWQ1M2VmY2E5ZWI2NjAwNTYxYzIKIEF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgogRGF0ZTogICBUdWUgRGVjIDI3IDExOjI1OjQzIDIwMTEgKzAwMDAKQEAgLTIzNjEsNiArNjc1NCwxMiBAQAogCiAgICAgU2tpcCBTRVQtYmFzZWQgdGVzdHMgd2hlbiBjb25maWd1cmVkIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0CiAKK2NvbW1pdCAyMzBkZjE0Zjk0YzM3MzZmZjM0Mzc5YTRlMjgxZWVhMzUzYjQ3ZjgwCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBNb24gRGVjIDI2IDIzOjM0OjIzIDIwMTEgKzAxMDAKKworICAgIERvIG5vdCBhc3NpZ24gdG1TdGF0ZVJlZiB0d2ljZQorCiBjb21taXQgYzk2YjNiNGQ4NTMwYWQ1ZTBlZmIwM2YyNGRhYjVlNWYxYTQ2MDAzMQogQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KIERhdGU6ICAgU3VuIERlYyAyNSAxMToxODoyMSAyMDExICswMTAwCkBAIC0yNDkxLDYgKzY4OTAsMTIgQEAKIAogICAgIEZpeGVkIHJldHVybmluZyB1bmluaXRpYWxpemVkIHZhcmlhYmxlICdzdGF0dXMnIHdoZW4gc3MgPT0gTlVMTAogCitjb21taXQgNzMwNGM1M2NmOGFkZWU4ZWNjZWYxYThmMjY3NTZmYzA3ZjA5ODcyMQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIERlYyAxOCAyMzozMTo1MyAyMDExICswMTAwCisKKyAgICBPbiBzb2xhcmlzIDEwIHRlc3QgaW4gL2Jpbi9zaCBkb2Vzbid0IHN1cHBvcnQgdGhlIC1lIHRlc3QuIFJlcGxhY2UgaXQgd2l0aCAtZgorCiBjb21taXQgOGNkM2JlNjBkNjkzYzljMzZmZmI5N2QzZDliY2I0OWMxYjRhYmUzNQogQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KIERhdGU6ICAgU2F0IERlYyAxNyAwODo1MjoyNCAyMDExICswMTAwCkBAIC0yNTg4LDYgKzY5OTMsMTIgQEAKIAogICAgIEZpeCByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzCiAKK2NvbW1pdCBiN2U1MGQ1ZjlhNjc1NTk4MmQyYWYzMTkxNDczY2IzNDY0M2JjMDNmCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgRGVjIDggMDg6Mzc6MjIgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogUmVkdWNlIG92ZXJoZWFkIG9mIGNvbmZpZyBmaWxlIHBhcnNpbmcKKwogY29tbWl0IDczYzllZTQyZDI4YWZlMmUxMDdhN2Q2NjE2YjZkMDExODkwYzM2ZWEKIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CiBEYXRlOiAgIFRodSBEZWMgOCAwOTowOTo1OSAyMDExICswMTAwCkBAIC0yNjEzLDYgKzcwMjQsMjQgQEAKICAgICB0aW1lIHRoZSA1LjYgYnJhbmNoIHdhcyBjcmVhdGVkIChzZWUgYWxzbyBjb21taXQKICAgICAwZWMwODhhZmEyN2NmZGE0ZTZlYTc4YWFlN2NmYzU1MDc1NjRlZGRlKS4KIAorY29tbWl0IGQ0OTRkYjY0YzIwOGI0ZGM2MjgxMzEzMmY4ODYzYmQ1YzFhMzlkNzcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBEZWMgMSAxMDozODoxNyAyMDExICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEVsaW1pbmF0ZSBhbiB1bnVzZWQgdmFyaWFibGUgKE5vdykKKworY29tbWl0IDI4ZjI1NjFiYzI5MzVkOGUxY2JmNDZkMjgyMDE1ODE3M2U3YTRjZjQKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBEZWMgMSAxMDozNzoxMSAyMDExICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IE1vdmUgdGhlIG1haW4gbG9vcCBjb2RlIGludG8gYSBuZXcgZnVuY3Rpb24KKworY29tbWl0IDM5NmUxMjJkZGM0MmE5MTZmMDZhMDI4ODRjMGU4YTI1OGVkYmUyMzgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBEZWMgMSAwOTozMjoxNiAyMDExICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogTWF0Y2ggZWFjaCBnZXRwd25hbSgpL2dldHB3dWlkKCkgY2FsbCB3aXRoIGFuIGVuZHB3ZW50KCkgY2FsbCBhbmQgZWFjaCBnZXRncmVudCgpIGNhbGwgd2l0aCBhbiBlbmRncmVudCgpIGNhbGwuCisKIGNvbW1pdCAzZWZlZmJjMDAyNDM5OTc4NmY4YjY4YjFlOTNiMGE4ZmRkZGRjN2RhCiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgogRGF0ZTogICBUaHUgRGVjIDEgMTA6NDE6MDEgMjAxMSArMDEwMApAQCAtMjcyMCw2ICs3MTQ5LDI0IEBACiAKICAgICBDSEFOR0VTOiBGcmVlQlNEOiBSZXN0b3JlIElQX1JFQ1ZEU1RBRERSIGZ1bmN0aW9uYWxpdHkuCiAKK2NvbW1pdCA3ZjQ3ZjUyZTQ4MWJhYTlhYWZiNTc4NDI0NGIwZGQyNjUzZTdkY2ZmCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBNb24gTm92IDI4IDA4OjUxOjM5IDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBsaWI6IFVzZSBTTk1QX0FMTE9DX1RZUEVERUYgdG8gYWxsb2NhdGUgdHJhbnNwb3J0cyBpbiBvcmRlciB0byBhdm9pZCB0aGUgc2VwYXJhdGUgY2FsbCB0byBtZW1zZXQuCisKK2NvbW1pdCBjZjg2MDM5ZTMwODYyMjVjMzA4NWJiOWFkZjA4OGI4YmE1YmE2OTc5CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgTm92IDIyIDE1OjAyOjU4IDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHVuaXQtdGVzdHMvVDEwMnBkdV9idWlsZF9jbGliIHBhc3MuCisKK2NvbW1pdCAxYTg3ZTc2ZTAwZWUzZDVjZDM3YTA3YmZjM2Q4NDQ5MGQzYzJhNGVjCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgTm92IDIyIDE0OjU1OjQyIDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHVuaXQtdGVzdHMvVDAxNGdldGhvc3RieWFkZHJfY2xpYiBwYXNzCisKIGNvbW1pdCA4ODY3ZmQxZGNmZTcyYjU5ZDA3MzIyZmYzOGE2OTliNjZlYzRmMzI2CiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgogRGF0ZTogICBUdWUgTm92IDIyIDA5OjQ0OjM4IDIwMTEgKzAxMDAKQEAgLTI3MzEsNiArNzE3OCwxMiBAQAogICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgbmV0c25tcF9sYXJnZV9mZF9pc19zZXQoKSByZXR1cm4gZmFsc2Ugb24gVW5peCBzeXN0ZW1zIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBlcXVhbHMgLTEgKGEgdmFsdWUgdGhhdCBzaG91bGRuJ3QgYmUgcGFzc2VkIGJ5IHRoZSBjYWxsZXIpLgogICAgIENIQU5HRVM6IFdpbmRvd3M6IE1ha2UgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkgc2hyaW5rIGJlaGF2aW9yIGNvcnJlY3QuCiAKK2NvbW1pdCAyM2RiMGNmMDliOGIwZWFiMzdiNzQ5ZWYwYzNjM2YzMDY5MDAyNDVjCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gTm92IDIxIDIzOjAyOjU3IDIwMTEgKzAxMDAKKworICAgIEZpeCBjYXN0aW5nIHR2X3VzZWMgdG8gaW50IHdoaWNoIG1heSBiZSB0b28gc2hvcnQKKwogY29tbWl0IDgwZWU0MDIyZTUzNGU2NGFhZDVhNWYyNzE5Mjg0M2I0MmFjYjg1ZTAKIEF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CiBEYXRlOiAgIFNhdCBOb3YgMTkgMDk6MTQ6MDIgMjAxMSArMDEwMApAQCAtMjc4Miw2ICs3MjM1LDEyIEBACiAKICAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcwogCitjb21taXQgY2QzMmMyZGZmMDZiOWI0NTJjYzE4ZDU1MmQyZjIyMzQwOTJjODI5YworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE5vdiAxNiAyMzoxNzowOSAyMDExICswMTAwCisKKyAgICBGaXggZm9ybWF0IHdhcm5pbmcKKwogY29tbWl0IDg4MzEzNmMyYjJmYTA3MzlmNDM3YThjZmI2NjE0YWNjYzc2ZTI2OGUKIEF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiBEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTU6NTggMjAxMSArMDEwMApAQCAtMjc5NCw2ICs3MjUzLDEyIEBACiAKICAgICBGaXggdXNpbmcgY2hhciBhcyBhcnJheSBpbmRleCAoY3R5cGUuaCkKIAorY29tbWl0IDg0NTI5ZTYzMjBhODlkOTdmMTMxNGFlYmFkODA2MjU1ZDJhMWIxOGMKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MDA6NTcgMjAxMSArMDEwMAorCisgICAgRml4IG1pc3NpbmcgZm9ybWF0IGZvciBGcmVlQlNEIDQKKwogY29tbWl0IDRiZDAzNTI5NTVhMjU1MWJmZTAyMzA4ZGQxMzRiOTEyOGM5OGI5ZTkKIEF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiBEYXRlOiAgIFdlZCBOb3YgMTYgMjI6NTk6MzYgMjAxMSArMDEwMApAQCAtMjgwNiw2ICs3MjcxLDEyIEBACiAKICAgICBGaXggc2l6ZV90L2ludCBtaXNtYXRjaGVzCiAKK2NvbW1pdCBhNGRiOWY5ZmMxM2QyMWVjZmY0ODhlYjQxMDM3NmVkZGE2YzI4MjMyCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTm92IDE2IDEzOjQzOjM0IDIwMTEgKzAxMDAKKworICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCisKIGNvbW1pdCAzOTBjMDExNGM4ZWMwYmRiMjdiMDhiNmY3NGUzZjZlZjNhNjI5ODFiCiBBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgogRGF0ZTogICBXZWQgTm92IDE2IDEzOjM3OjQ5IDIwMTEgKzAxMDAKQEAgLTI4NDgsNiArNzMxOSwxOCBAQAogCiAgICAgRG9uJ3QgdHJ5IHRvIGluc3RhbGwgYW4gZW1wdHkgbGlzdCBvZiBtYW4gcGFnZXMgKE1BTjMpCiAKK2NvbW1pdCBiYTYxOTgwNGU1OTc4YThkZjc1NDg0NGVmY2NhNTJiNjliNTAxNWZhCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gTm92IDE0IDEzOjM0OjIwIDIwMTEgKzAxMDAKKworICAgIE1pbkdXOiBNYWtlIHN1cmUgdGhhdCB0aGUgYmFja3NsYXNoZXMgaW4gdGhlIHBza2lsbCBtZXNzYWdlIGFyZSBkaXNwbGF5ZWQuCisKK2NvbW1pdCA5MjNlZWNjNTA3Zjc1MDQzYjYwYzVlNjgwNTNhNGYzOTZhYjBiMGQyCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gTm92IDE0IDEyOjM2OjM4IDIwMTEgKzAxMDAKKworICAgIENvbXBpbGVyIHdhcm5pbmcgZml4IGZvciBzeXN0ZW1zIHdoZXJlIHVpbnQ2NF90ID0gdW5zaWduZWQgbG9uZyAoZS5nLiBSSEVMIDYuMS94ODZfNjQpCisKIGNvbW1pdCA0MzRiZmMxZjc0NTc1NTBiNmY4N2Q1YmNkNTExMjc2YjI3MGI1OTY0CiBBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KIERhdGU6ICAgTW9uIE5vdiAxNCAxMToyMjo1MyAyMDExICswMTAwCkBAIC0yODY4LDYgKzczNTEsMTIgQEAKIAogICAgIE5ldEJTRC02OiBPbmUgbW9yZSBpbnN0YW5jZSBvZiB0aW1lc3BlYyByZXBsYWNpbmcgdGltZXZhbAogCitjb21taXQgOGFkNmM1M2ZkZWM1YWRlYWU0ZTUyZjE3NTFlY2VjNGEzNDViYWIwNQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIE5vdiAxMSAxODo1OTowMSAyMDExICswMTAwCisKKyAgICBGaXggYnVpZyAjMzQzNjUyNzogYXJwX25ldGxpbms6IGZpeCBkeWluZyByZWxvYWQgb2YgY2FjaGUKKwogY29tbWl0IDM3OGZmZWQwM2JhNzlhODM0NmQ2YzYyNzgxZTJkZGY1Y2U5MmE0NzgKIEF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiBEYXRlOiAgIEZyaSBOb3YgMTEgMTg6NTU6NDMgMjAxMSArMDEwMApAQCAtMjkwNiw2ICs3Mzk1LDE0IEBACiAKICAgICBDSEFOR0VTOiB0ZXN0aW5nOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlCiAKK2NvbW1pdCBlMjIxZTY1ZmRjMWM2OGYxOTY4NjUxNzE3ZGNjOWNjZmI2NDE0NzgzCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgTm92IDMgMTU6MDU6MDAgMjAxMSArMDEwMAorCisgICAgRml4IHdhcm5pbmdzIGFib3V0IGNvbnZlcnRpbmcgc29ja2FkZHJfaW4gKiBpbnRvIHNvY2thZGRyICouCisgICAgCisgICAgVGhpcyBpcyBhIGZvbGxvdy11cCBmb3IgY29tbWl0IGEwYWYzODUuCisKIGNvbW1pdCAyZTdlOWVkYTBiMGQ2MmE3NjQ1YTlhOGY3MGVmM2ZiNmYzZGQ2OTQxCiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgogRGF0ZTogICBUaHUgTm92IDMgMTE6MTc6NDggMjAxMSArMDEwMApAQCAtMjkzMiw2ICs3NDI5LDEyIEBACiAKICAgICBkc2tJbmRleCB3YXMgb2ZmIGJ5IG9uZQogCitjb21taXQgYTViMjg4MjllNjRkNWYzYjg3ZTRiOWIxZWY4Y2MyMDRmMzNhNjFiNworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE5vdiAyIDIxOjI1OjA3IDIwMTEgKzAxMDAKKworICAgIFNvbGFyaXMgbmVlZHMgJEFXSyB0byBnZXQgYSB1c2FibGUgbmF3aworCiBjb21taXQgMjgwMWEyMTM5ZjI3MDIxZTFhYjE1ZTM2MmUyZDNkNjI0ZmZhYTQ5NAogQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KIERhdGU6ICAgTW9uIE9jdCAzMSAyMjo1NTo1MyAyMDExICswMTAwCkBAIC0yOTcxLDYgKzc0NzQsMjAgQEAKICAgICAKICAgICBUaGlzIGlzIGEgYmFja3BvcnQgb2YgY29tbWl0IDlmNjUzZjcuCiAKK2NvbW1pdCAyY2M5NTA0YjliYjg2MjViOTRiZTZjZGE3ZTYwOTkzZDA1OWNkOTI4CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgT2N0IDI2IDA5OjAxOjIzIDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzQyODUwNjogRml4IG5ldHNubXBfZ2V0aG9zdGJ5YWRkcigpCisgICAgCisgICAgVGhpcyBwYXRjaCBzaG91bGQgZml4IHRoZSByZWdyZXNzaW9ucyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCA4NWQ5NmM0IChNYXkgMTMsIDIwMTEpLgorCitjb21taXQgOWI0MjdiMzUzZjFjZWI4ZmU4N2U2ZmM4ZWQzYjZjZmFiM2NlN2YyMAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IE9jdCAyNyAwODoyMDowMCAyMDExICswMjAwCisKKyAgICBNaW5HVzogQXZvaWQgY29uZnVzaW9uIGJldHdlZW4gTWluR1cncyBraWxsLmV4ZSBhbmQgdGhlIFN5c0ludGVybmFscyBwc2tpbGwuZXhlCisKIGNvbW1pdCAyYzQ1ZjkyY2ZjYjViMDVlMDQ5MjI2YTVhNzg4M2EwYjEwNjAxMWFlCiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgogRGF0ZTogICBXZWQgT2N0IDI2IDEwOjQyOjI5IDIwMTEgKzAyMDAKQEAgLTMwMjMsNiArNzU0MCwzOSBAQAogICAgIAogICAgIFRoZSBtZXNzYWdlIGlzIHNob3dzIHVwIHdoZW4gc25tcGQgaXMgc3RhcnRlZCBhbmQgdGhlcmUgaXMgZGlmZmVyZW50IHNldCBvZiBuZXR3b3JrIGludGVyZmFjZXMgdGhhbiBpdCB3YXMgd2hlbiBzbm1wZCB3YXN0IGxhc3Qgc3RvcHBlZC4gVGhpcyBpcyBjb21tb24gb24gcHBwLXNlcnZlcnMgb3IgdmlydHVhbCBob3N0cy4KIAorY29tbWl0IDI1MGY2OThlNTllYWI5ZjFmZmQzMzJmZjU5ZmRiNzJlYTBkZjA2ZmYKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBPY3QgMjMgMDg6NTE6MjMgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgdGhlIHRyYW5zcG9ydCBjb25maWd1cmF0aW9uIGNvZGUgd29yayBhZ2FpbgorICAgIAorICAgIFByZXZpb3VzbHkgdGhlIHRyYW5zcG9ydCBpbmhlcml0YW5jZSBwcm9jZXNzaW5nIGNvZGUgcmFuIHdpdGgKKyAgICBORVRTTk1QX0ZFQVRVUkVfQ0hFQ0tJTkcgc2V0LiBJbiB0aGlzIG1vZGUgdGhlIGZpbGUgbmV0LXNubXAvZmVhdHVyZS1kZXRhaWxzLmgKKyAgICBpcyByZXF1aWVyZWQuIFRoYXQgZmlsZSBpcyBjcmVhdGVkIGR1cmluZyB0aGUgZmlyc3QgbWFrZSBydW4sIGFuZCB0aGF0IGhhcHBlbnMKKyAgICBhZnRlciBjb25maWd1cmUgaXMgcnVuLgorICAgIENoYW5nZSB0aGlzIHRvIHVuZGVmaW5lIE5FVFNOTVBfTUlOSU1BTF9DT0RFLCBlZmZlY3RpdmVseSB0dXJuaW5nIG9mZiBmZWF0dXJlCisgICAgc3VwcG9ydCBkdXJpbmcgdHJhbnNwb3J0IGNvbmZpZ3VyYXRpb24gaW4gb3JkZXIgdG8gbWFrZSBpdCB3b3JrIGF0IGFsbC4KKworY29tbWl0IDZlZjY5MDc2NDIyNDdjNjYzYjliODk2NGI5ZmQ0NGEyMTFkYmNhYTcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBPY3QgMjAgMjA6MzA6NTQgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQwODM5ODogRml4IGEgbWVtb3J5IGxlYWsgaW4gYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy4KKyAgICAKKyAgICBUaGlzIG1lbW9yeSBsZWFrIHdhcyBpbnRyb2R1Y2VkIHZpYSBjb21taXQKKyAgICA5YmYzZDk2ZDk2YThlY2Q0YTVmYzM1YzMyNmRjOTM3NDY3MDAyYjZjOiBJbml0aWFsIEhBTAorICAgIGltcGxlbWVudGF0aW9uIG9mIEZpbGVTeXN0ZW0gaW5mb3JtYXRpb24gKE1hcmNoIDcsIDIwMDgpLgorCitjb21taXQgY2Y4MmI4OTRiMjIxN2MyNmVkYzZmMTM1NjM1MWM5MzI0MTU2MDRlMgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU2F0IE9jdCAxNSAxNDo0NTowOCAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDM0MjM5MTU6IENoYW5nZSBkZWZhdWx0IG51bWJlciBvZiByZXRyaWVzIGJhY2sgZnJvbSAwIHRvIDUKKyAgICAKKyAgICBUaGlzIHBhdGNoIGZpeGVzIGEgYnVnIGludHJvZHVjZWQgdmlhIGNvbW1pdCA2Y2FjMDUwIChNYXkgNSwgMjAxMSwKKyAgICBhZGRlZCBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIHRoZSBkZWZhdWx0IG51bWJlciBvZiByZXRyaWVzIGluCisgICAgc25tcGQuY29uZikuCisKIGNvbW1pdCBjMTFhZGFhMTI5MTVhYmZlZTYyOWJiNmMwMjZjMjFmMjE4NWIyMTZlCiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgogRGF0ZTogICBNb24gT2N0IDE3IDEwOjI0OjQ2IDIwMTEgKzAyMDAKQEAgLTMwMzUsMTIgKzc1ODUsMjYgQEAKIAogICAgIENIQU5HRVM6IFdpbjMyOiBBdm9pZCB0aGF0IHRoZSBQQUNLQUdFXyogbWFjcm9zIGRlZmluZWQgaW4gPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBjYXVzZSB0cm91YmxlIHdoZW4gaW5jbHVkaW5nIHRoaXMgaGVhZGVyIGluIGEgcGFja2FnZSB0aGF0IHVzZXMgdGhlIEdOVSBhdXRvdG9vbHMuCiAKK2NvbW1pdCA2NjRkM2FlMTA3ZDc1NDA1MWI4YzQyMjc5ZDQ1OWFhNTdhMWJlMWMzCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gT2N0IDEwIDE2OjQ3OjE2IDIwMTEgKzAyMDAKKworICAgIE1pbkdXLCBod19mc3lzOiBVc2UgcHJvcGVyIGZvcm1hdCBzcGVjaWZpZXJzIGluIGEgZGVidWcgc3RhdGVtZW50LgorICAgIAorICAgIFRoaXMgcGF0Y2ggZml4ZXMgYW4gaXNzdWUgaW50cm9kdWNlZCBpbiBjb21taXQgNzZmZjI1ZC4KKwogY29tbWl0IDIxMWRjYjQ5MzA2NTYxZTM1YmEzYzIxM2JlN2NmYTI1N2I0MGE4ZTUKIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CiBEYXRlOiAgIE1vbiBPY3QgMTAgMTU6NTI6NDMgMjAxMSArMDIwMAogCiAgICAgQXZvaWQgdGhhdCBnY2MgNC42IGNvbXBsYWlucyBhYm91dCBzZXQgYnV0IG5vdCB1c2VkIHZhcmlhYmxlcwogCitjb21taXQgOWY2NTNmNzNlNWFhNzBmMGJlZjExNzQ2MzJlOTU1OTRmODdmNjY5ZgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIE9jdCAxMCAxMzowMjoyNSAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wdHJhcGRfc3FsOiBBdm9pZCB0aGF0IGEgbGlua2VyIGVycm9yIGlzIHRyaWdnZXJlZCBvbiBzeXN0ZW1zIHdoZXJlIG15X3Byb2duYW1lIGlzIG1pc3NpbmcgaW4gbGlibXlzcWxjbGllbnQgKGUuZy4gRmVkb3JhIDE1IGFuZCAxNikuCisKIGNvbW1pdCA0YzgzYjkyMjlhNzQ1NGYzNGY2ZmY3NWY2OWU2N2U0MDMwYzQxOWI1CiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgogRGF0ZTogICBGcmkgT2N0IDcgMTU6NTg6NDUgMjAxMSArMDIwMApAQCAtMzA1NiwxMiArNzYyMCw0NyBAQAogICAgIGR5bmFtaWMgbGlicmFyaWVzIGFuZCBycGF0aHMsIHNlZSBhbHNvIHRoZSBkb2N1bWVudCB3aXRoIHRoZSB0aXRsZQogICAgICJScGF0aElzc3VlIiBvbiB0aGUgRGViaWFuIHdpa2kgKGh0dHA6Ly93aWtpLmRlYmlhbi5vcmcvUnBhdGhJc3N1ZSkuCiAKK2NvbW1pdCA4OTI1YzkxMmQyNjM5NzUyYTg0YmNmZmVlZjFiNzBhODEwMjY0NDliCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgT2N0IDcgMTQ6MjE6MjggMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogYWdlbnQ6IEhPU1QtUkVTT1VSQ0VTLU1JQjogQWRkIG1pc3NpbmcgYnJhY2UgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQKKworY29tbWl0IDc2ZmYyNWQ5YmY5NzU3OWU3MjEzMTAyMDY1ZmQ1MDk2ZjA0OWE0YzUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBPY3QgNyAxNDoxMzoxOCAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogSE9TVC1SRVNPVVJDRVMtTUlCOjpoclN0b3JhZ2VUYWJsZTogZml4IGJ1ZyBpbiBoYW5kbGluZyBsYXJnZSBmaWxlc3lzdGVtcywgd2hlcmUgbGFyZ2UgbWVhbnMgYWJvdmUgOCBUQiAoPSAyKiozMSAqIDQwOTYgYnl0ZXMpLgorICAgIAorICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQKKyAgICA3MWQ4MjkzZjM4N2E2Y2Q2NmJiMGRiYjEzYzBmNTAxNzRkMmU2NzhiLgorICAgIEZvciB0aGUgb3JpZ2luYWwgYnVnIHJlcG9ydCwgc2VlIGFsc28KKyAgICBodHRwczovL3NvdXJjZWZvcmdlLm5ldC90cmFja2VyLz9mdW5jPWRldGFpbCZhdGlkPTExMjY5NCZhaWQ9MzQxOTgyNSZncm91cF9pZD0xMjY5NC4KKwogY29tbWl0IDg2NjAzM2RiOTkwNGZmYjEyMDNmMjgzZjgzODA5MmU0Y2Y2OGRlNmIKIEF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CiBEYXRlOiAgIFRodSBPY3QgNiAwNzozMzoyNyAyMDExICswMjAwCiAKICAgICBDSEFOR0VTOiBzbm1wZDogUmVtb3ZlIHNwdXJpb3VzICNlbmRpZiB0aGF0IHNlZW1zIHRvIGJlIHRoZSByZXN1bHQgb2YgYSBtaXNtZXJnZS4KIAorY29tbWl0IDIwZjRmMzI2N2VlMjBkNTU3MDViN2E0Mzc4OTg3OWMxMDNmOTY2MjAKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFRodSBPY3QgNiAwMDowODo1OSAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBidWlsZGluZzogQWRkIG1pc3NpbmcgZW5kIGNvbW1lbnRzIHRvIGZlYXR1cmUgaWZuZGVmcy4KKworY29tbWl0IGU1ZGUyY2M1N2JmMzA0ZjMzMjBjYWQwMDM0ZDJlYTJkOGFlZGM0MzYKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBPY3QgNSAwOToxNToxMCAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBhZ2VudDogTG9nIGEgbW9yZSBkZXRhaWxlZCBlcnJvciBtZXNzYWdlIGlmIGVtYmVkZGVkIHBlcmwgaW5pdGlhbGl6YXRpb24gZmFpbHMKKworY29tbWl0IDVlZWY5OTkwZGUyOGY2MzExMWU2YzA5M2JlMGYzYzdhZTJkNTEzYTEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBPY3QgNSAwODo0NTo0OSAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBwZXJsOiBBZGQgYWdlbnQ6OnVwdGltZSgpCisKIGNvbW1pdCA2ODEwZWQ0MmY5YmM1NjA3NTBkNmRiZmI3ZTUwYjZlMmFjMTE4OTljCiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgogRGF0ZTogICBGcmkgU2VwIDMwIDExOjAxOjIzIDIwMTEgKzAyMDAKQEAgLTMwNzQsNiArNzY3MywxMiBAQAogCiAgICAgQ0hBTkdFUzogUEFUQ0g6IDM0MTg2NDk6IEhPU1QtUkVTT1VSQ0VTLU1JQjogVXNlIHBjbG9zZSgpIGluc3RlYWQgb2YgZmNsb3NlKCkgdG8gY2xvc2UgYSBwaXBlLgogCitjb21taXQgNjU5MTkzN2FkYjg1MDAwYzI3MDY5YzRiZTg0Y2Y0Njg4ODM4ZWJjZAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIE9jdCAyIDE2OjE4OjAzIDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgZGVwZW5kZW5jaWVzIG9uIEBGRUFUVVJFVEFSR1NAIHRvIG1ha2UgdGhlIHN1YnRhcmdldCB3b3JrIGFzIHdlbGwuCisKIGNvbW1pdCBiOWM4MDEyZWMwMzViYzA4NGYxNzU4NzZmZWNjMzc1MTk1ZjliZTgxCiBBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgogRGF0ZTogICBTdW4gT2N0IDIgMTQ6MDI6NTggMjAxMSArMDIwMApAQCAtMzEyNiwyNCArNzczMSwyMjYgQEAKICAgICBlcnJvciBhbmQgdGhlbiBmaWd1cmVzIG91dCB0aGF0IHRoZXJlIGlzIG5vIHVzYWJsZSBubGlzdC5oIGFuZCBpZ25vcmVzIGl0CiAgICAgZm9yIHRoZSBmdXR1cmUuCiAKK2NvbW1pdCBhYzM4Y2I1MzFiZWU1MGVkYzhkNGM4MzRmMzAwNWY1OTkyYzc3MWQ4CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgU2VwIDI5IDE5OjAzOjAyIDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IHBlcmw6IEVuYWJsZSBzZW5kaW5nIFNOTVB2MiB0cmFwcyB3aXRoIGFuIGVtcHR5IHZhcmJpbmQgbGlzdAorCitjb21taXQgYTc1ZGUyOTcxNTI3YWMyZDJlODEyMDI0Mjk4NjAyYmIyNDEyZjMzNworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIFNlcCAzMCAxMDo0MTo0NCAyMDExICswMjAwCisKKyAgICBwZXJsL1NOTVAvU05NUC54czogVXBkYXRlIGVtYWNzIG1vZGVsaW5lCisKIGNvbW1pdCA4NDhmNjMwMGVmZTM4NDkyZmI0NTQ0NTFhMDMwZjBiN2U2ZmY4YzlkCiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgogRGF0ZTogICBGcmkgU2VwIDMwIDEwOjQxOjQ0IDIwMTEgKzAyMDAKIAogICAgIHBlcmwvU05NUC9TTk1QLnhzOiBVcGRhdGUgZW1hY3MgbW9kZWxpbmUKIAorY29tbWl0IGMxMzc0NDczZWNkOGVjOWUwMzEwMDEzODYxZWUxOGM4M2U1ZDZjNWIKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIEZyaSBTZXAgMzAgMDM6Mjk6MzYgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogdGVzdGluZzogUHJvdGVjdCB0aGUgdXNlIG9mICRPU1RZUEUgdG8gZW5zdXJlIHRoYXQgJ3Rlc3QnIGdldCBlbm91Z2ggcGFyYW1ldGVycy4KKworY29tbWl0IDdlOTdhMjA2MzNhNTdlYWUzOWQwMTViMjMzMzk0NjNjMzJmNWY4NDgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBTZXAgMjkgMTA6MjI6MDggMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogdGVzdGluZzogQ29udmVydCBzbm1wbGliL3Rlc3RfYmluYXJ5X2FycmF5LmMgaW50byB0d28gdW5pdCB0ZXN0cworCitjb21taXQgOWMwZGQ5ODE3NjQ1NzM0MmZmZmFhNWU3NGQ4MDJlMzE0NWVkNzBlNworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IFNlcCAyOSAwODo1NjoxNyAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgdW5pdCB0ZXN0IGZvciBuZXRzbm1wX3JlZ2lzdGVyX29sZF9hcGkoKQorCitjb21taXQgNWZkMjZlNGZhM2UwMDBlYTljODFjMzhhYjk3NWI3OTQ2ZWZlMjE1NworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIFNlcCAyOCAxNzo0OTo1NSAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBhZ2VudDogQXZvaWQgdGhhdCBuZXRzbm1wX3JlZ2lzdGVyX29sZF9hcGkoKSBmYWlsdXJlIHRyaWdnZXJzIGEgZG91YmxlIGZyZWUuCisgICAgCisgICAgRml4ZXMgYSByZWdyZXNzaW9uIGludHJvZHVjZWQgdmlhIGNvbW1pdAorICAgIGFhNGQ0N2MyNjA5ZTUyODE4YzljZGYxYThlMjIwNWRlOWEzMzVhMGEgKHN2biByMTk1MTUpLgorCitjb21taXQgZDIyNTJkMDE2NjkzODA3MzI2ZjcyYjY2MTIzNjQ5ZGVhMDBhZjkxNgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IFNlcCAyOSAxMDoyMDowOCAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiB0ZXN0aW5nOiBSZXF1aXJlIGEgc2VtaWNvbG9uIGFmdGVyIE9LKCksIE9LRigpIGFuZCBQTEFOKCkKKyAgICAKKyAgICBBbHNvLCBsZXQgT0tGKCkgZW1pdCBhIHNpbmdsZSBsaW5lIG9mIG91dHB1dCBzdWNoIHRoYXQgYWxsIG91dHB1dCBpdAorICAgIHByb2R1Y2VzIGlzIHZpc2libGUgaW4gdGhlIG91dHB1dCBvZiAibWFrZSB0ZXN0Ii4KKworY29tbWl0IDE0MjE5MjRiNDg1MjE0MjE5MmM1YmI5ZTkzZGRiZmVkNjllOTA4ZmEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBTZXAgMjEgMjI6MjA6MDggMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogQXZvaWQgd2FpdGluZyBpbmRlZmluaXRlbHkgaWYgYSBzZXNzaW9uIGhhcyB0aW1lb3V0IHplcm8KKworY29tbWl0IDVmMjdmNGY3NGFlMmJkNWJhZjUwM2NmMzA2YjRmOWEyODQxYTU3Y2YKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBTZXAgNiAxMDozMjowMyAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogRml4IGEgcmFjZSBjb25kaXRpb24gaW4gdGhlIHRlc3QgcnVubmVyCisKK2NvbW1pdCAwOTcwMzk1OGNjNWVhODQ1OTI5YWUxOWVmOWUwODA0YWVjYWE1MTJlCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgU2VwIDI3IDEyOjQyOjQxIDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IHRlc3Rpbmc6IEF2b2lkIGZhbHNlIG5lZ2F0aXZlIGZvciBUMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGUgY2F1c2VkIGJ5IHRoZSB0ZXN0IHJlc3VsdCBiZWluZyBwcmVzZW50IGluIHRoZSBoZXggZHVtcCAoIm1vc3RseV9oYXJtbGVzcyIpCisKK2NvbW1pdCA0MzkzMDAyNzlmNmYzMTQzODYzOGQyZjIyMmMyNGMzYzg0MWZhNmFiCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgU2VwIDI3IDExOjE2OjMyIDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNaWNyby1vcHRpbWl6ZSBhZ2VudCBtb2R1bGUgZGVwZW5kZW5jeSBhbmFseXNpcworICAgIAorICAgIFRoaXMgbWFrZXMgdGhlIGFnZW50IG1vZHVsZSBkZXBlbmRlbmN5IGFuYWx5c2lzIGNhcnJpZWQgb3V0IGJ5IHRoZQorICAgIGNvbmZpZ3VyZSBzY3JpcHQgc2xpZ2h0bHkgZmFzdGVyLCBlc3BlY2lhbGx5IG9uIHRob3NlIHN5c3RlbXMgd2hlcmUKKyAgICBmb3JrKCkgaXMgZXhwZW5zaXZlIChDeWd3aW4pLgorCitjb21taXQgYmJjNjgwMDA0YTEzNzYwMzhkZmRjNDE3MmRiZTdiOWUzMTFmYmE2OAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIFNlcCAyNiAxMDoxNDo0NSAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogTWFrZSB0ZXN0IFQxMzBzbm1wdjF2YWNtZ2V0X3NpbXBsZSBwYXNzCisKK2NvbW1pdCA3MGIwNmNmNzg5MjA4ZWFhODkwYmZiY2Q2MzhiZGI3NzVmODE3MDU0CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgU2VwIDIwIDA5OjUwOjU3IDIwMTEgKzAwMDAKKworICAgIENIQU5HRVM6IFdpbmRvd3M6IHRlc3Rpbmc6IHBlcmw6IEZpeCBhbiBpbmNvcnJlY3QgbWVzc2FnZSBwcmludGVkIHdoaWxlIHJ1bm5pbmcgdGhlIFBlcmwgbW9kdWxlIHJlZ3Jlc3Npb24gdGVzdHMKKworY29tbWl0IDcwYmNjOGRlMmQwZmM5MmJiYjg0ODE4MjM2MzBmYWI5YmM4N2FmNzUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBTZXAgMTYgMTY6MTQ6MjQgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE9idGFpbiB0aGUgTVNZUyBwYXRoIGZyb20gdGhlIGVudmlyb25tZW50CisKK2NvbW1pdCA2MjYyNzVlMmQxYWNhZmFlNzE0NGEzM2VkMzAxYTQwZjU5NmIzN2IwCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgU2VwIDE0IDEzOjE0OjE3IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IFdpbmRvd3M6IFJlbW92ZSBzdXBlcmZsdW91cyBsaW5rIGxpYnJhcmllcyBmcm9tIHByb2plY3QgZmlsZXMgKCouZHNwKQorCitjb21taXQgMzhmYzNjYWE5ZWViMzgwMDI1NGI0ZjZhZDZmOGY0NzY0YzBmODNkYgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIFNlcCAyMCAwOTozNDowOCAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIG5ldHNubXBfY2FsbGJhY2tfYWNjZXB0KCkgcmV0dXJuIC0xIChmYWlsdXJlKSBpbnN0ZWFkIG9mIDAgKFNURElOX0ZJTEVOTykKKworY29tbWl0IDZjOGM3ZThhY2E4ZmMyZWViNTIwMTBhZTNlOWZlZTZkZDgzZWY3ODAKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBTZXAgMTMgMDk6NTg6MjYgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogUmVtb3ZlIG9ic29sZXRlIHNubXBfZ2V0X2ZkX2Zvcl9zZXNzaW9uKCkgZGVjbGFyYXRpb24KKworY29tbWl0IDA4NjBkMTFmZDhmYzVkYmRhYWFlMjI2MWZhZTJjMDdmYjljMmM4MmQKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBTZXAgOCAxMzo1NDo1NSAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBXaW5kb3dzOiBNU1ZDOiBBdm9pZCB0aGF0IHRoZSB0eXBlZGVmcyBpbiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNvbmZsaWN0IHdpdGggdGhvc2UgaW4gPHN0ZGludC5oPiBmcm9tIHRoZSBtc2ludHR5cGVzIHByb2plY3QKKworY29tbWl0IGY4YTAzNmY2M2ZmNjhmMDgzNDM2MTIwZTBhYmQ0NzhiNjkyYTJmNjEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBTZXAgOCAxMzoyMTowNiAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBXaW5kb3dzOiBNU1ZDOiBXaGVuIGxpbmtpbmcgd2l0aCBPcGVuU1NMLCBsaW5rIHdpdGggdXNlcjMyLmxpYiB0b28KKworY29tbWl0IDgzNmEyM2UxMGNhODEwYzM4OTk5MDJkMzI1ODc2MTZhOWQxMjAzZGYKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBKdWwgMTQgMTg6Mzg6MTMgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogV2luZG93czogTVNWQzogTGluayB3aXRoIHByb3BlciBsaWJlYXkzMiBsaWJyYXJ5CisKK2NvbW1pdCA3YjA3ZmQ2Y2RlZjQ5ZWM3YmIwNGIxNjZlMmE0ZmJiMzdiNTgyODQwCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgU2VwIDYgMTE6MTA6MzggMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogdGVzdGluZzogUmVtb3ZlIGFuIGluY29ycmVjdCBjb21tZW50IGZyb20gc2ltcGxlX2V2YWxfdG9vbHMuc2gKKworY29tbWl0IDk4ZjZkMjlkOTgxZmY4ZTYwNzYwMGM2M2RhZGIyNDA1MzU2Mjk4MDcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBTZXAgNiAxMDo0OTowMyAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIElTREVGSU5FRCgpIGNoZWNrIGZvciBhbiBleGFjdCBtYXRjaCBpbnN0ZWFkIG9mIGEgcHJlZml4IG1hdGNoCisKK2NvbW1pdCA1MmNkMDAzMWEzMWY2OTJmMTMyNjNhOTRjMzM1ZDA2YmUxNDU0ODAzCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgU2VwIDYgMTA6MTI6NTkgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdGhvc2UgcmVncmVzc2lvbiB0ZXN0cyBwYXNzIGZvciB3aGljaCBTTk1QQ09ORlBBVEggYW5kL29yIFNOTVBfUEVSU0lTVEVOVF9ESVIgbWF0dGVyCisKK2NvbW1pdCBmNWNkODliZDMzNTZkZDc0ZTE1NTZjMGI1MDk2NmE2NDNmMTkyMDg1CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgU2VwIDYgMTA6MTI6NTkgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IEZpeCBhIHJhY2UgY29uZGl0aW9uIGluIHRoZSB0ZXN0IGZyYW1ld29yaworCitjb21taXQgZGVlZGQ1MmM4MzRhNjQ0ODg1MmEwNjc4NTUzNmUxMzg2NTk2OTY5NAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIFNlcCA2IDEwOjEyOjU4IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IE1pbkdXOiBTdXBwb3J0IHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlIG9mIHJlY2VudCBTaGluaW5nIExpZ2h0IE9wZW5TU0wgYmluYXJ5IGRpc3RyaWJ1dGlvbnMKKwogY29tbWl0IGQ1NWJkNGUwNTQ5ZjAzYjZmZDMyNTYyYzJhYTdmZTM5MjcyYTllZjcKIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiBEYXRlOiAgIFdlZCBTZXAgMjggMDY6NTU6MTkgMjAxMSAtMDcwMAogCiAgICAgcmVtb3ZlIHRoZSB2NS43IGZyb20gdGhlIGZyb3plbiBsaXN0CiAKK2NvbW1pdCBhYzJhZWQzYzk0YmIyZWJiNDczYWYwYTFlMjBmMDU2MWFkNjI5OTU2CitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgU2VwIDI4IDA2OjU1OjExIDIwMTEgLTA3MDAKKworICAgIHJlbW92ZSB0aGUgdjUuNyBmcm9tIHRoZSBmcm96ZW4gbGlzdAorCitjb21taXQgNDAwNzkyMDU5NjdiOGU1YWVlZGIxOWZhM2NiMmU3YjJmNzk4ODU3NworQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIFNlcCAyNyAyMTo1Mzo0NyAyMDExIC0wNzAwCisKKyAgICBtYWtlIGRlcGVuZAorCitjb21taXQgY2YxNGEyMjg1ODNhZmYzYzVhYjJmMGQ0NGMyZjRjMGZhNWJkNjZhZgorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIFNlcCAyNyAyMTo1MzoxOCAyMDExIC0wNzAwCisKKyAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjEKKworY29tbWl0IDEwMTRkZDhkZmI0OGE1YmQwNTNmMDQ1NDFlYjk3MjhmMGJlMDdmNDcKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBTZXAgMjcgMjE6NDU6MDQgMjAxMSAtMDcwMAorCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xCisKK2NvbW1pdCAxOGQxMTZiYTM4OGMxZGM5NDk1Mjg4ODRiYjAwNjk4ZjFiYWNhYTk0CitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgU2VwIDI3IDIxOjExOjUyIDIwMTEgLTA3MDAKKworICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjEKKwogY29tbWl0IDQ2ZWFjMDJlOWEyN2JmNGYzMDY4ZTc5NWNhYjg5MWYwNWE4NDg4NzAKIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CiBEYXRlOiAgIE1vbiBTZXAgMjYgMjE6NDk6MjcgMjAxMSArMDIwMAogCiAgICAgQ0hBTkdFUzogc25tcGQ6IEF2b2lkIHRoYXQgc25tcGQgY3Jhc2hlcyBpZiBzdGFydGVkIG9uIGEgc3lzdGVtIHdpdGggYW5vdGhlciBPcGVuU1NMIGxpYnJhcnkgdmVyc2lvbiB0aGFuIHRoZSBvbmUgaXQgaGFzIGJlZW4gYnVpbHQgd2l0aC4KIAorY29tbWl0IGE1ZjA2NGRkODI5OTZlMmJlM2YxZTk2MTY3MDNhZDAzOTVmYjVhYmEKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBTZXAgMjIgMDc6MzM6MDEgMjAxMSAtMDcwMAorCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xLnJjMworCitjb21taXQgNTY5Nzk0ZmNlYjk5ZWVkN2JlODE3YzY0Zjg1Y2Q5NDVjYWY5OTU5MgorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IFNlcCAyMiAwNzoyMDowNyAyMDExIC0wNzAwCisKKyAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xLnJjMworCiBjb21taXQgYzU1ZjYwOGYxNmYxNjBmNWU3OWRjMDU3Zjg4NzhkZWY0NjI5NzNlMQogQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CiBEYXRlOiAgIFRodSBTZXAgMjIgMTA6MzU6MjQgMjAxMSArMDEwMApAQCAtMzE1MSw2ICs3OTU4LDE0IEBACiAgICAgRml4IHRoZSBjb2RlIGZvciBwb3B1bGF0aW5nIHRoZSB0YWJsZV90ZGF0YSBjYWNoZSwKICAgICBhbmQgY2xhcmlmeSBhcmVhcyBuZWVkaW5nIE1JQi1zcGVjaWZpYyBhZGRpdGlvbnMuCiAKK2NvbW1pdCAxMzc2M2NmMmM3MWJmOTNmZWMwOTZlZWUwMDQ4NTdjMTViMmNmZmZmCitBdXRob3I6IFN0ZXZlIEZyaWVkbCA8c3RldmVAdW5peHdpei5uZXQ+CitEYXRlOiAgIFRodSBTZXAgMjIgMTA6MDY6NDUgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IDM0MDk2OTI6IENhbGN1bGF0ZSBkaXNrIHBlcmNlbnRhZ2UgdXNhZ2UgdmlhIGZsb2F0aW5nLXBvaW50IGFyaXRobWV0aWMKKyAgICB0byBhdm9pZCBpbnRlZ2VyIGFyaXRobWV0aWMgZXJyb3JzLgorICAgIChDb2RlIGJhc2VkIG9uIHBhdGNoLCByYXRoZXIgdGhhbiBhcHBsaWVkIHZlcmJhdGltKQorCiBjb21taXQgZWUwZDNhZGIwNzgyOTFiNzQzYzllY2I3NmQyMGI1OTFiN2IxNTk3MgogQXV0aG9yOiBTdGV2ZSBGcmllZGwgPHN0ZXZlQHVuaXh3aXoubmV0PgogRGF0ZTogICBUaHUgU2VwIDIyIDA5OjU4OjM5IDIwMTEgKzAxMDAKQEAgLTMxNTksNiArNzk3NCwyNCBAQAogICAgIHRvIGF2b2lkIGludGVnZXIgb3ZlcmZsb3cgZXJyb3JzLgogICAgIChDb2RlIGJhc2VkIG9uIHRoZSBzdWJtaXR0ZWQgcGF0Y2gsIHJhdGhlciB0aGFuIGFwcGxpZWQgdmVyYmF0aW0pCiAKK2NvbW1pdCAzNjdkYTE0ZmNkYjE0NjU5MmRlNjdjMWQ2OTk3YTA5Nzc0MjU5NjczCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgU2VwIDIyIDA4OjA5OjE3IDIwMTEgKzAyMDAKKworICAgIFRoZSBvbmx5IGNoYW5nZSBiZXR3ZWVuIFY1LjcucmMxIGFuZCBWNS43LjEucmMyIGlzIHRoZSB2ZXJzaW9uIG51bWJlci4gTWFrZSB0aGlzIGNsZWFyIGluIHRoZSBDaGFuZ2VMb2cgZmlsZS4KKworY29tbWl0IGMyNzZlZWI4ZjA0NTVhMDg3MGM0YjQ3OGRkZTY0OGU4NjUyOWFkZDMKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBTZXAgMjEgMTM6NTE6NTggMjAxMSAtMDcwMAorCisgICAgY2hhbmdlbG9nIHVwZGF0ZQorCitjb21taXQgNjMwNTA4Mzg2NjZmNjQ1ZmMzMDZkYzJlZTRmNzNmNWVmY2U2M2ZlZAorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIFNlcCAyMSAxMzozODoxOCAyMDExIC0wNzAwCisKKyAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xLnJjMgorCiBjb21taXQgYmJlMmMxOWEwMWVjZWMwMjRmNzQxZTJlNTQ3MDFhZTYyMTJmNGMzZQogQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KIERhdGU6ICAgU3VuIFNlcCA0IDE0OjQ0OjM4IDIwMTEgKzAyMDAKQEAgLTMxNzUsNiArODAwOCwzMCBAQAogCiAgICAgQ0hBTkdFUzogYnVpbGRpbmc6IENvcnJlY3QgZGVwZW5kZW5jaWVzIC0gc2luY2UgYmY3NGZlYTY5ZjI0ZGM2ZTg1ZjkwOGYzZjQxZDE0MjZiMmUwOTY4OCBzbm1wY29uZiBpcyBsb2NhdGVkIGluIGJ1aWxkZGlyLCBub3Qgc3JjZGlyCiAKK2NvbW1pdCA3ODM1OTY0ZDM1OTNlNWM2YTFhZTdkZTBiNDExNGI3ZGYxYWUwZmUxCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgQXVnIDMwIDE5OjIxOjUxIDIwMTEgLTA3MDAKKworICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMS5yYzEKKworY29tbWl0IGNiNmEwYzBiZDZmOGMyYzdjZDVmZDg2MDgwZGM2MzI0ZTdmNzM4NTgKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBBdWcgMzAgMTk6MjA6MzUgMjAxMSAtMDcwMAorCisgICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4xLnJjMQorCitjb21taXQgZTVmZjJlYjgzYmJiZWQ5MmRhYzc1MWM1YTY2NDNkNzhmODM3Y2Y5YworQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEF1ZyAzMCAxOToxOTo0NiAyMDExIC0wNzAwCisKKyAgICBmaXggQysrIGNvbW1lbnQKKworY29tbWl0IGNiMWY1Y2ZmYzZmYjUyYzJhNmMwZjdiNDA4YWZlYjQ3ZmNmZTU1ZTQKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBBdWcgMzAgMTk6MDk6NTYgMjAxMSAtMDcwMAorCisgICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMS5yYzEKKwogY29tbWl0IDQyMmIwODJhOTU5M2NhOWM2NWFhYzQ0OWU2ZDEyOGE5ZTk3ZTk0ZmIKIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiBEYXRlOiAgIFR1ZSBBdWcgMzAgMTk6MDY6NTYgMjAxMSAtMDcwMApAQCAtMzIyNSwxMiArODA4Miw3MiBAQAogCiAgICAgQXBwYXJlbnRseSBJUklYIGhhcyBhIGRpZmZlcmVudCBBUEkgZm9yIHN0YXRmcwogCitjb21taXQgZjdlMjFmMjYzMzM5MGI3YTI3YzUwMjI3YmVlNmQ4Njk2YWUzZmJjZgorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEF1ZyAyOSAxNjowMTozMSAyMDExIC0wNzAwCisKKyAgICBkb24ndCBwcm92aWRlIGEgZmVhdHVyZSB3aGVuIHlvdXIgYSBjaGlsZCBvZiBhbm90aGVyIGZlYXR1cmUKKworY29tbWl0IGNhYzIzYzBiMjU3NGU3MjgwYmQxMjhjNjIyNjg3NWFkMGY2YjRiZmMKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBBdWcgMjggMDk6Mzg6MTQgMjAxMSArMDIwMAorCisgICAgTWFrZSBzdXJlIHRoYXQgZmVhdHVyZS1kZXRhaWxzLmggZXhpc3RzIGJlZm9yZSB0cnlpbmcgdG8gaW5jbHVkZSBpdAorCitjb21taXQgNzgxZjRjZTJhY2IzNzE1NjA3OTdkOGIyOWE4OWVkMDY3NGU5MzVmOAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIEF1ZyAyOCAwOTozNjozNiAyMDExICswMjAwCisKKyAgICBVc2UgdGhlIGZlYXR1cmUgdGFyZ2V0IGluc3RlYWQgb2YgdGhlIHRhcmdldCB3aGVuIGJ1aWxkaW5nIHRoZSBmZWF0dXJlIHNldAorCitjb21taXQgMTFiZmY0NzJjYTdiMWZjZmYwYzE2MTg3YTFiOGExMzA5M2JjOTFjNAorQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEF1ZyAyOSAwMDozMzo1NSAyMDExICswMjAwCisKKyAgICB0aGUgaXJpeDYgYnVpbGQgb25seSBkZWZpbmVzIGlyaXg2LCBub3QgaXJpeAorCitjb21taXQgM2M3M2ExNDA3YTA4MWQ0MmViZGQ5MWRmYmNiMWU0ZjE1MmI3ZGY0YQorQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEF1ZyAyOSAwMDowNToxMyAyMDExICswMjAwCisKKyAgICByZS1hZGQgc29ja2FkZHJfdW4uc3VuX3BhdGggY29uZmlndXJlIGNoZWNrIChsb3N0IGluIHByZXZpb3VzIGNvbW1pdCkKKworY29tbWl0IDJlM2YwMmUwM2FlZDEyNTM4NGJhNGZlM2Q4MzQ5NGQ0M2YzYTI5ZTkKK0F1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFN1biBBdWcgMjggMjM6NTM6MzAgMjAxMSArMDIwMAorCisgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jIGRvZXNuJ3QgYnVpbGQgb24gSVJJWCB5ZXQKKwogY29tbWl0IGY5NWFhMzEzNzdkNTcyYjA0OWIwYjMxNmRiYjE2M2JmN2FjYTkzZDUKIEF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiBEYXRlOiAgIFN1biBBdWcgMjggMjM6MjU6NDAgMjAxMSArMDIwMAogCiAgICAgQ0hBTkdFUzogYnVpbGRpbmc6IGJ1aWxkIGZpeCBmb3Igc3lzdGVtcyBsYWNraW5nIGZpZWxkcyBtc2dfY29udHJvbC9tc2dfZmxhZ3MgaW4gc3RydWN0IG1zZ2hkciAoYmFja3BvcnQpCiAKK2NvbW1pdCA3ZjQ3ZDkzNzY1YWEzNWE1ODY4N2ViOWI0ZjlmNzAwZTQzNDNlMTNjCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgQXVnIDI2IDExOjExOjM1IDIwMTEgLTA3MDAKKworICAgIGFkZGVkIHJlcXVpcmVkIGZlYXR1cmVzIGZvciBtZmQgaGFuZGxpbmcKKworY29tbWl0IDliMmU0MmE2ZTA1NTBmYjc4OWM2MDdjMzUyMDg4MGQ0ZGJjMGNmMjQKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBBdWcgMjYgMTE6MDg6MDkgMjAxMSAtMDcwMAorCisgICAgYWRkZWQgLmZ0IGFuZCAuZnQuMSBmb3IgZmVhdHVyZSBmaWxlcworCitjb21taXQgMzNkY2JmNTZmYzA2MjZhM2U0ZjEzNTkwOTViZDIxN2QxYTU2Nzc5NAorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEF1ZyAyNiAxMTowNzo1OCAyMDExIC0wNzAwCisKKyAgICBub193cml0ZV9zdXBwb3J0IHN1cHBvcnRlZAorCitjb21taXQgOTdkNDJlZmQ3NjkzN2NlN2U0YmM0OGE3MmVkNWExMTBlNDIzMTAyZAorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEF1ZyAyNiAxMDowODo1MSAyMDExIC0wNzAwCisKKyAgICBoYW5kbGUgbm8td3JpdGUtc3VwcG9ydCB3aXRoIGlmZGVmcworCiBjb21taXQgZWE4YmVkNzllODFjNDJlMzNjYmYzN2NhNmYzYzAzYzU0OTk4N2IyMgogQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KIERhdGU6ICAgVGh1IEF1ZyAyNSAwNjo1NjoyMiAyMDExIC0wNzAwCkBAIC0zMjQzLDYgKzgxNjAsMjEgQEAKIAogICAgIHVzZSA+PiB0byBwcmludCB0byBzdGRlcnIKIAorY29tbWl0IGNlZTAzNTljNmZhZTJiODVkN2I5MzE4NTllNTE3ZDg5Y2UwNzIyYmIKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgQXVnIDIzIDIzOjQzOjE5IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IGJ1aWxkOiBEbyBub3QgZ2VuZXJhdGUgYW4gb3V0cHV0IGZpbGUgb24gZmFpbHVyZQorICAgIAorICAgIG1ha2Ugc3VwcG9zZXMgdGhhdCBubyBvdXRwdXQgaXMgZ2VuZXJhdGVkIGlmIHRoZSBjb21tYW5kIGZhaWxlZC4gQ2hhbmdlCisgICAgZmVhdHVyZS1yZW1vdmUgdG8gZm9sbG93IHRoYXQgcHJlc3VtcHRpb24uCisKK2NvbW1pdCBmZTM5ZTcyODhjYTkzMGQyYzlhYWE4MzAxY2M5ZDk1ZjBjMzhmMzZiCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU3VuIEF1ZyAyMSAyMTo0ODoxNyAyMDExICswMjAwCisKKyAgICBDb3JyZWN0IHR5cG8KKwogY29tbWl0IDFmMDgyYTMxY2QxMzhmMWY1ZTI3YmU2ZDkwYTFkNTc5MGRjMGZmZTQKIEF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiBEYXRlOiAgIFR1ZSBBdWcgMjMgMjM6MzU6NDIgMjAxMSArMDIwMApAQCAtMzI2Nyw2ICs4MTk5LDEyIEBACiAKICAgICBhdXRvcmVjb25mCiAKK2NvbW1pdCAxYTI2NDhlYWY3MWNiMDE4OTUxNTk2Njg5YzUxNTg4ZGNhODA2M2M1CitBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTdW4gQXVnIDIxIDAxOjQ4OjU3IDIwMTEgKzAyMDAKKworICAgIGF1dG9yZWNvbmYKKwogY29tbWl0IDNmMmY2MWIwZTYxM2Q2MTA1ZWNmMmNlYjM5NWRlMGJkZTM3ZjNjZTMKIEF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiBEYXRlOiAgIFN1biBBdWcgMjEgMDE6NDc6MTMgMjAxMSArMDIwMApAQCAtMzI4NSw2ICs4MjIzLDI0IEBACiAKICAgICBmaXggYnJva2VuIGxpbmUgd3JhcAogCitjb21taXQgNWI1OTAwYTRmN2RmZWU2ZTFlYzg2OWUzMjMxMGI4MGNhNmZiMjNmZQorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEF1ZyAxOCAxMjoyODowNyAyMDExIC0wNzAwCisKKyAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjEucHJlMgorCitjb21taXQgM2I3ZTJlMzk5NDlmODhkOWM1NmVkNWY5OTQwMjhiOTQ4MTZhYjc1YworQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEF1ZyAxOCAxMjoyMzoyOCAyMDExIC0wNzAwCisKKyAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjEucHJlMgorCitjb21taXQgZWNlNjNiZmU0OTljNjMwYmRhYWU2MjAwNjQ4ZDI5MTgwY2UzYTE3OQorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEF1ZyAxOCAxMjowMzoxNyAyMDExIC0wNzAwCisKKyAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xLnByZTIKKwogY29tbWl0IDI4YjU0MDcwNTE0NzUzZThkOGFiYjcxOGIyMjRkNjU3YWI3YThhYjgKIEF1dGhvcjogR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KIERhdGU6ICAgVGh1IEF1ZyAxOCAxMTo0OTo1NiAyMDExIC0wNzAwCkBAIC0zMzEzLDYgKzgyNjksMTggQEAKIAogICAgIGNoYW5nZWQgY2xpZW50YWRkciBzbyBpdCByZWdpc3RlcnMgYXMgcHJlLW1pYiB0byBiZSBwaWNrZWQgdXAgYmVmb3JlIHRoZSB0cmFuc3BvcnRzIGdldCBjcmVhdGVkCiAKK2NvbW1pdCBjMDIxMzFlNWIzNWQyOTY3NTViYWVjOTliZDM2MzIwNWE4NjMwN2RkCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgQXVnIDE3IDA5OjM0OjAwIDIwMTEgLTA3MDAKKworICAgIGRldGVjdCByZWFsbHkgb2xkIHZlcnNpb25zIG9mIExvbmcucG0KKworY29tbWl0IDUwMGQ2ZGUwNmFhNGZmMzMwYWVlNGQ3NDlhNGNjMzc3YmVjODllMDkKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBBdWcgMTcgMTg6MTE6NDcgMjAxMSArMDIwMAorCisgICAgRml4IHRoZSBsb2cgbWVzc2FnZSB0aGF0IHJlcG9ydHMgdGhhdCBnZXRob3N0YnlhZGRyKCkgaXMgbWlzc2luZworCiBjb21taXQgNjU4MDU1NmNjN2JkODMzYWY3MzFiNjJjZTFlZDIwMTc1NjRmZTdlYgogQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KIERhdGU6ICAgV2VkIEF1ZyAxNyAxODowODowMSAyMDExICswMjAwCkBAIC0zMzI3LDYgKzgyOTUsMTIgQEAKICAgICAKICAgICBUaGlzIHJldmVydHMgY29tbWl0IGMxYjVhMDMwZDhmMDQ4NzZjZDViOWFmMDA4Yzg3OWNjNDY4YjIxMmYuCiAKK2NvbW1pdCBkYWZmNDlkOWIzMzY5ZWZjYzg3ZjA1ZGM4NTkxMzYyZTgxYTQ1ZmRmCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBTYXQgQXVnIDEzIDE4OjQzOjQ4IDIwMTEgKzAyMDAKKworICAgIFdpbmRvd3M6IE1ha2UgdGhlIFBlcmwgYWdlbnQgbW9kdWxlIHdvcmsgYWdhaW4gd2l0aCB0aGUgb3JpZ2luYWwgU05NUF9GUkVFKCkgZGVmaW5pdGlvbi4KKwogY29tbWl0IDNjNzNiNDgzOGU2MDViMTUwYmMzMTczMTNmMTRlYjMzNDQ0NzI5ZjgKIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CiBEYXRlOiAgIFNhdCBBdWcgMTMgMTc6Mzg6MjcgMjAxMSArMDIwMApAQCAtMzQ4NiwxMyArODQ2MCw2IEBACiAKICAgICBmaXggQysrIGNvbW1lbnRzCiAKLWNvbW1pdCBkNTM4YmNiY2NlNjNlMTg5MzU3MmQ4ZjE1ODNmZGMwMmYzNTFmODRmCi1BdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KLURhdGU6ICAgTW9uIEF1ZyA4IDIyOjA3OjQzIDIwMTEgKzAxMDAKLQotICAgIERlZmluZSBfQklORF9UT19DVVJSRU5UX1ZDTElCU19WRVJTSU9OIHRva2VuCi0gICAgKGFzIHBlciBBbGV4JyBidWlsZCBpbnN0cnVjdGlvbnMpCi0KIGNvbW1pdCA0NDdkZGM2NmQ5MGRkOWU1YzMxMDViMjY4YjZhNjNiZmM1ODBiOTI0CiBBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KIERhdGU6ICAgTW9uIEF1ZyA4IDIyOjAzOjU4IDIwMTEgKzAxMDAKQEAgLTM1MDcsNTg4MyArODQ3NCwyNTg2MiBAQAogICAgIERlZmluZSBfQklORF9UT19DVVJSRU5UX1ZDTElCU19WRVJTSU9OIHRva2VuCiAgICAgKGFzIHBlciBBbGV4JyBidWlsZCBpbnN0cnVjdGlvbnMpCiAKLWNvbW1pdCBmZmEwNWIwNTFhYzNlMmIxOTcxOTVhOTk4OWNjN2E5MWZlOGQ5MjgyCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0NoYW5nZXM6IFY1LjcuMSAtPiBWNS43LjIucHJlMQorCitjb21taXQgODEwMTg1YWUwYjBjZDJhZDRkNDI0YTFiYTc3NWVmNWNlYWY1MGYwMwogQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIEF1ZyA4IDEzOjU1OjM4IDIwMTEgLTA3MDAKK0RhdGU6ICAgU2F0IEp1biAyIDA5OjI0OjE5IDIwMTIgLTA3MDAKIAotICAgIGEgbmV3IG1hY3JvIG5zYXV0b2NvbmYgdG8gcnVuIHRoZSByaWdodCB2ZXJzaW9uCisgICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4yLnByZTEKIAotY29tbWl0IGI0NTE2MDdkY2EwMTVjMTExZTk2ZmRmZWIyZGRiMDY2MWZiNGY3MjQKK2NvbW1pdCA2MjcxNDcxZTAxMjgyZjM2NzU3MjRlYWYxMzU4Y2ViMGU5NWRkZDRlCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTYXQgSnVuIDIgMDg6MzI6NDAgMjAxMiAtMDcwMAorCisgICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMi5wcmUxCisKK2NvbW1pdCBmY2I3ODJhYTg4OTMxMzRjNzQxNGE5MjZkOTI2ODU5NGY3MjViOTE1CitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTYXQgSnVuIDIgMDg6MzI6MTggMjAxMiAtMDcwMAorCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4yLnByZTEKKworY29tbWl0IGUzYmNkODdjNzJmY2VhNzcwNmU4NjhiNWFjZTc1Mjk2MDkzZjc0OTcKIEF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgotRGF0ZTogICBNb24gQXVnIDggMjE6MjA6MzIgMjAxMSArMDEwMAorRGF0ZTogICBUaHUgTWF5IDMxIDE0OjA5OjQyIDIwMTIgKzAxMDAKIAotICAgIEZpeCBjYXBpdGFsaXNhdGlvbiBvZiBOZXQtU05NUAorICAgIEZpeCBkaXN0L3JlbGVhc2UgZm9ybWF0CiAKLWNvbW1pdCBjOTQ4MTMwNDRhNGM0YTYwOGU5OGU4MDIyMzA3NWM2ZmFmMDRlZTExCitjb21taXQgZDgxM2NlMmVlZWZjNjgyMjljZmNhZjIwNjAzMjQ0Y2RkNmQwOWQzYworQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBNYXkgMzEgMTQ6MDc6NTIgMjAxMiArMDEwMAorCisgICAgRml4IGRpc3QvcmVsZWFzZSBmb3JtYXQKKworY29tbWl0IGZhN2JkNTgxZTM3ODM2ODVkYjM5YzliNGVhZjg0N2JlNWFjODZmZDMKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWF5IDMxIDEzOjUzOjEwIDIwMTIgKzAxMDAKKworICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzIKKworY29tbWl0IDA3MzllMjM4MmQzMTE0NmFjYTMyMDUyNDRjZjcwNzg4YjQwYTQyOGQKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWF5IDMxIDEzOjUxOjQ1IDIwMTIgKzAxMDAKKworICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzIKKworY29tbWl0IGQ5YTE1NDQ1YWE3NGY1MzE2YmZjNzExYzE1NTg0Njc4NzJjMjk1OGMKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWF5IDMxIDEzOjUwOjEyIDIwMTIgKzAxMDAKKworICAgIG1ha2UgZGVwZW5kIGZvciA1LjYuMi5yYzIKKworY29tbWl0IGJjYWJkMmM5NTQyZGJlYmQxZDMxOWI0NDk0NDEzYmRjY2EwNjYxNGUKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWF5IDMxIDEzOjM4OjM4IDIwMTIgKzAxMDAKKworICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS02LXBhdGNoZXMKKworY29tbWl0IGI0NzM4OThjMGM1YWM5ZWI0N2M3YzA1YTNmNzQ1ZTRmZjJhNzZhYWEKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWF5IDMxIDEzOjM4OjI4IDIwMTIgKzAxMDAKKworICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucmMyCisKK2NvbW1pdCAxMzE0MjllNzA2MmZiYWE2NWI4MmFmZmVkMWZiOTJkZjJjMGNjODEzCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IE1heSAzMSAxMzozODozOCAyMDEyICswMTAwCisKKyAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNi1wYXRjaGVzCisKK2NvbW1pdCAxYzgxMTBiMzNiODEwNWNhNjE5MDk0NWEzNWZlN2FlOTAzMjUyZDY4CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IE1heSAzMSAxMzoyMTozOCAyMDEyICswMTAwCisKKyAgICBBdm9pZCBwZXJsIHZlcnNpb25pbmcgcHJvYmxlbXMgd2hlbiBzZXR0aW5nIHVwIHRoZSBidWlsZCBlbnZpcm9ubWVudAorCitjb21taXQgNTA4ZWNlMTZlNmY2ZjQ5NTYyZGEyMDQ3OTJhZTA2NDQyNjk5OTRkMQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBNYXkgMzEgMTM6MjA6NTggMjAxMiArMDEwMAorCisgICAgRml4IGhhbmRsaW5nIG9mIGRpc3QvcmVsZWFzZSBtZXJnZQorCitjb21taXQgNWI4YTg1NDdiMWE0N2QyZjViMjA3ZjQ4ZjI0OTZlNDI0MWQ5MDJjNgorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBNYXkgMzEgMTE6MTA6NDggMjAxMiArMDEwMAorCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMgorCitjb21taXQgNmMzMjkxNGJmMjhkNjk1ZGYzNDlkY2EyNjllNDg4YjUwMTcwMDMxNgorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBNYXkgMzEgMTE6MDc6MjIgMjAxMiArMDEwMAorCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMgorCitjb21taXQgOWY1YTgyYTVhZmRiYjNkYWViMmZkNDM3YTMwOWYwYjhkMzU3Y2Y0YgorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBNYXkgMzEgMTE6MDU6MzkgMjAxMiArMDEwMAorCisgICAgbWFrZSBkZXBlbmQgZm9yIDUuNS4yLnJjMgorCitjb21taXQgMzkyMDNmMjk0NzdhM2JlZGYwMTJkNDExMzVkOGFiZDZiY2FkMDhiMQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBNYXkgMzEgMTA6NTQ6MjcgMjAxMiArMDEwMAorCisgICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMgorCitjb21taXQgMTdlNzllZjBmYWQ3OTYwOWM1YmEyZmViNGU4YjllYjVkN2RiNjg4NgorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBNYXkgMzEgMTA6NDY6MTEgMjAxMiArMDEwMAorCisgICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTUtcGF0Y2hlcworCitjb21taXQgNTgyMWJlNWJiYjQwMThkZWQyODJmYmJiZDQ4MzBjZjJlZWFkZDllMQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBNYXkgMzEgMTA6NDU6NTkgMjAxMiArMDEwMAorCisgICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5yYzIKKworY29tbWl0IDNmMjExMWRlNjczM2EwNGUxMmQ5MTBkMzA2YTM0ZDY3MWUwMDg3NjIKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWF5IDMxIDEwOjQ2OjExIDIwMTIgKzAxMDAKKworICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS01LXBhdGNoZXMKKworY29tbWl0IGNjZjhmZjJjNGRiNjAxMjJkNDEzMDJlNGFlYjcwMGUwYjg2ODEwNWYKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gTWF5IDI4IDEwOjE4OjQzIDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDM1MjY1OTk6IERvbid0IGhhbmcgb24gcmV0cmllZCBmYWlsaW5nIFNOTVB2MyByZXNwb25zZXMKKworY29tbWl0IGM4MWM4NDgzOTkwOTExZjQ3NDM1ZDMwMDUyNTVkOTFjMzdhYjkyYjIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFN1biBNYXkgMjcgMTQ6MDk6MjYgMjAxMiArMDIwMAorCisgICAgRml4IEJTRCB0aGF0IGRvd25ub3QgYWx3YXlzIGxpa2UgSVBfU0VORFNSQ0FERFIgLSBzbyByZXRyeSB3aXRob3V0CisKK2NvbW1pdCBmZmNlMWYyZGMyZjhiMzFhYmQwMWY5M2IyNmRhNzhmNDcyNmExZTY0CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTdW4gTWF5IDI3IDE0OjAzOjU4IDIwMTIgKzAyMDAKKworICAgIEZpeCBPUyBtaXNzaW5nIE1TR19ET05UV0FJVCAoQUlYKS4gQmFja3BvcnQgZnJvbSA1LjcKKworY29tbWl0IGM1NzUyMTY4NTAxODViNTY0NTRkYWQwMjUzZTMxNjQ5NzllMTM1MTMKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFN1biBNYXkgMjcgMTM6NTY6MDEgMjAxMiArMDIwMAorCisgICAgRml4IG1pc3NpbmcgaW5jbHVkZS4gRml4ZXMgU0lHU0VHViBvbiBGcmVlQlNEOSB4NjQKKworY29tbWl0IDU4MDU4Nzg3NDljMDgwNjJkZWJmMGE5ZDc5OGQwOGZiOTE2Y2FhMmQKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBNYXkgMjcgMDY6MjM6MTkgMjAxMiArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBtaXNzaW5nIGRlYnVnIHRhZworCitjb21taXQgZDFhNDJiYmNjN2IxNDczMGM5YTZkOTljNGYwNDcwOTc4NDNhNTQ5YgorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgRnJpIE1heSAyNSAwOTowMjoyNyAyMDEyICswMjAwCisKKyAgICBDSEFOR0VTOiBidWlsZGluZzogUnVuIGxpYnRvb2wgLS1tb2RlPWZpbmlzaCBvbiB0aGUgcmlnaHQgZGlyZWN0b3J5CisKK2NvbW1pdCAxZmJmMzM3MTFhMTllYWM5NzM5YWQyM2Y2ZjYyNTFlYWNjNDFmMWM0CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIE1heSAyMiAxNDo1NDo0NSAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBMaW51eDogUEFUQ0g6IDM1MjU5OTg6IERvbid0IHVzZSBhbiB1bmluaXRpYWxpc2VkIHZhbHVlIGluIGVycm9yIG1lc3NhZ2UKKworY29tbWl0IDMyYzE2ODZiNjdkYzg1YzRhMTg5NTc2MzYzMDY1NjA5ZGZlZDVlNjEKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgTWF5IDIyIDE0OjUyOjU2IDIwMTIgKzAxMDAKKworICAgIEF0dGVtcHQgdG8gbWFyayByZWxlYXNlLWNhbmRpZGF0ZSBicmFuY2hlcyBhcyBzdWNoLgorICAgIE9taXQgZmluYWwtcmVsZWFzZS1vbmx5IHN0ZXBzIHdoZW4gcHJlcGFyaW5nIHByZU4vcmNOIHJlbGVhc2VzCisgICAgKFJlbGllcyBvbiBhIHR3ZWFrIHRvIHRoZSBNYWtlcmVsZWFzZSBwZXJsIG1vZHVsZXMpCisKK2NvbW1pdCA0YzU2MzNmMTYwM2U0YmQwM2VkMDVjMzdkNzgyZWM4OTExNzU5YzQ3CitBdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QGZyZWVzbm1wLmNvbT4KK0RhdGU6ICAgTW9uIE1heSAxNCAxMTo0MDowNiAyMDEyIC0wNDAwCisKKyAgICBORVdTOiBzbm1wOiBCVUc6IDM1MjY1NDk6IENWRS0yMDEyLTIxNDEgQXJyYXkgaW5kZXggZXJyb3IgbGVhZGluZyB0byBjcmFzaAorCitjb21taXQgNjVkZDgzYzIyNTVlZTU4ZWRiZjBlMjU4NjNlNTViNThhNDExMzY3OQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBNYXkgNyAyMDozMDo0MiAyMDEyICswMTAwCisKKyAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucmMxCisKK2NvbW1pdCBhYzRiYzY1ZTI5MDlmM2JkODVmMzJmMDRiNTA0ZmE2NWQyZjY0NTUzCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIE1heSA3IDIwOjI4OjA2IDIwMTIgKzAxMDAKKworICAgIG1ha2UgZGVwZW5kIGZvciA1LjYuMi5yYzEKKworY29tbWl0IGI3NDk5NDg2NDE5NTExOWVkYjZlMTljODUxNDdmYWMwMGJjYjkzZTMKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gTWF5IDcgMjA6MTM6NDYgMjAxMiArMDEwMAorCisgICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5yYzEKKworY29tbWl0IDkxMzUwMDkyYzQ2ZTY2ZDA2ZDc0MTQzZjQ4MTY0NzNkYjRkMjUxNjAKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gTWF5IDcgMTk6NTY6MzMgMjAxMiArMDEwMAorCisgICAgTWFyayB2ZXJzaW9uLXNwZWNpZmljIGNoYW5nZXMgX2JlZm9yZV8gcHVzaGluZyB0byBjZW50cmFsIHJlcG9zaXRvcnkKKworY29tbWl0IDcyNDFhY2NkNzBiODJkMGZjZDQ0ZDVhNTIzOGIyZWU5NDQ1OTAwZGIKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gTWF5IDcgMTc6NTM6MTcgMjAxMiArMDEwMAorCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMQorCitjb21taXQgN2M3OTZhMTVhMWQxYmI4NWZlZWE5NDBiZDRlMzUxNjg3NzkyMDkxOQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBNYXkgNyAxNzo1MDo0OSAyMDEyICswMTAwCisKKyAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucmMxCisKK2NvbW1pdCAwN2UyNjhiZmI2NGIwZWM2NDViM2Y3ZTg3MjY2OTg0ZjkyMTdjZjEyCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIE1heSA3IDE3OjQ0OjM3IDIwMTIgKzAxMDAKKworICAgIG1ha2UgZGVwZW5kIGZvciA1LjUuMi5yYzEKKworY29tbWl0IDE2ZWFhZjZjM2JhMTQ1OTZjYTllZmFmNGIxMTRmMWI3MDlmNDJiNjgKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gTWF5IDcgMTc6Mjk6MDMgMjAxMiArMDEwMAorCisgICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMQorCitjb21taXQgYzcyOTQ2OWVmMTIxNTQ5MzBjZjlkMTU5NjdlMTYxODZmYjQ0NWYzMAorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBNYXkgNyAxNzoyNzoyMCAyMDEyICswMTAwCisKKyAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNS4yLnJjMQorCitjb21taXQgMTQyNTcxZDNjZWEwOGYwYzA3MmQyNGMxZDM5YTQzYzc0NDZmOGNlNworQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBNYXkgNyAxNzowMTowMyAyMDEyICswMTAwCisKKyAgICBXaGVuIGJ1aWxkaW5nIGEgbmV3IHJlbGVhc2UsIHRoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiB0aGUgcGVybAorICAgIG1vZHVsZXMgbWF5IHdlbGwgYmUgZGlmZmVyZW50IHRvIHRoZSB2ZXJzaW9uIGJlaW5nIGJ1aWx0LgorICAgIFRoYXQgc2hvdWxkIG5vdCBicmVhayB0aGUgYnVpbGQuCisKK2NvbW1pdCBlYmE4NmI2ZjdhZmYyNjFlZTBlNjEzMzRkZjcwZGU3MTU2ZTVjM2NiCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIE1heSA3IDE3OjAxOjAzIDIwMTIgKzAxMDAKKworICAgIFdoZW4gYnVpbGRpbmcgYSBuZXcgcmVsZWFzZSwgdGhlIGluc3RhbGxlZCB2ZXJzaW9uIG9mIHRoZSBwZXJsCisgICAgbW9kdWxlcyBtYXkgd2VsbCBiZSBkaWZmZXJlbnQgdG8gdGhlIHZlcnNpb24gYmVpbmcgYnVpbHQuCisgICAgVGhhdCBzaG91bGQgbm90IGJyZWFrIHRoZSBidWlsZC4KKworY29tbWl0IDVjMGY2NGQ2ZGIyYjU5M2Y3Y2MwZWQyZDRmNTViN2M1OTJiNzc0YTgKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBBcHIgMjMgMjI6MjU6MTUgMjAxMiArMDIwMAorCisgICAgT25seSBvdXRwdXQgY3B1IHdhcm5pbmdzIG9uY2UuCisKK2NvbW1pdCBlZTU4ZTQ4MjdiOWZhMTZlNjYzNWNhMDAzZThhNGYxMWRjYjVmYjdhCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gQXByIDIzIDIyOjE3OjQyIDIwMTIgKzAyMDAKKworICAgIEZpeCBzcGVsaW5nIGluIGVycm9ybWVzc2FnZS4KKworY29tbWl0IDAzZjQ4NWRmMjJmMjBlMTQ5Y2ZhZTk0YzU3Y2I4MmZlZWNiNWQ3NGIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBBcHIgMjMgMjI6MTI6MTEgMjAxMiArMDIwMAorCisgICAgTm90IGFsbCBMaW51eGVzIHVzZSBycG0gKGRlYmlhbi91YnVudHUgY29tZXMgdG8gbWluZCkKKworY29tbWl0IDkzMDgzODIyNGY3ODE2OTZiZDM1MjI1ZjIyNTY5MzQ3NDE2ZjFiMTYKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBBcHIgMjMgMjI6MTA6MTUgMjAxMiArMDIwMAorCisgICAgQ2hlY2sgbmVlZCBmb3IgLWxtIHRvIHVzZSByb3VuZC9leHAKKworY29tbWl0IGEwNjA5Y2YxZjNhNjkxN2QyNjM3MjU3MzIyNDhjZDkzN2E0NWFkOTQKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBBcHIgNyAwODo0MDo0NCAyMDEyICswMjAwCisKKyAgICBSZW1vdmUgbGltaXRhdGlvbiBvbiBjb25maWd1cmF0aW9uIGxpbmUgbGVuZ3RoLgorCitjb21taXQgMzA1OTczMzM4YTYzYWU1NGM1ZTAyYTg2MjZmYmU5YTgwNjRkY2I3ZQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IEFwciA3IDAwOjMyOjE5IDIwMTIgKzAyMDAKKworICAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZXMuCisKK2NvbW1pdCBjY2FiNGU5ZDNlZDQyNGMzOWQwZGMyN2JlNjNmYTc2Yzc0NjFlYTgxCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTYXQgQXByIDcgMDA6MTU6MjIgMjAxMiArMDIwMAorCisgICAgSW50ZXJuYWxpemUgdGhlIG5hbWUgYW5kIGxpbmUgbnVtYmVyIG9mIHRoZSBjdXJyZXQgY29uZmlndXJhdGlvbiBmaWxlCisKK2NvbW1pdCBjZjg3NGFkN2I5ZGFmNGZjYzBkNDZjZGQwMzQ0NzRiNDc4MDA1MzQxCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBGcmkgQXByIDYgMjE6NDc6MjggMjAxMiArMDIwMAorCisgICAgUmVwbGFjZSAjaWYgKEEpIEIgI2Vsc2UgQiAjZW5kaWYgd2l0aCBCLgorCitjb21taXQgZWY5ZWE2NDFiYzI5MGVlYzUwNjg1YjYwNTE5YjMxYmVlOGIxNGE2OQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBBcHIgOSAyMTowNDowNiAyMDEyICswMTAwCisKKyAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMgorCitjb21taXQgMzVhYmExOTU5ZGUxMTlmMWZiODkyMDNjMzcxMDlhYTZmMGUyMWM1NworQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBBcHIgOSAyMTowMDo0MCAyMDEyICswMTAwCisKKyAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMgorCitjb21taXQgZTQxZmJhZmYxOGFjOTA5NWNmNGE3MzlhMDZlYzM5YTFhNmNjZmRjMQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBBcHIgOSAyMDozNTozNSAyMDEyICswMTAwCisKKyAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnByZTIKKworY29tbWl0IDEzN2ZlNTgyZDZjYzU2MTE0MzBkYWI0NmVmMTQ0ZWZkODRjZmM4MDMKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBGcmkgQXByIDYgMjA6NDY6NTYgMjAxMiArMDEwMAorCisgICAgUmV2ZXJ0IGNvbW1pdCAxZjRhODI5YjE4Mjc1ZTQ5NTZjYTkxZTVlYzM3MGRmMDE1ZjA2MTMzCisgICAgKHNubXBfc3RvcmVfbmVlZGVkKCkgQVBJIGlzIG5vdCBhdmFpbGFibGUgaW4gNS5bNDVdLngpCisKK2NvbW1pdCAyYjdlNjQyODhjMDFhOGEwNjIwMjZjNTIxY2EzMWE1ZTg4NWYzMGNjCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIEFwciAyIDE2OjEyOjEyIDIwMTIgKzAxMDAKKworICAgIEZyZWVCU0QtOTogRml4IGZvciAnY29uc3QnaWZ5ZWQgbmxpc3QgYXJndW1lbnRzCisgICAgQmFja3BvcnQgb2YgZWQ2NWVjYTZlN2Y5Y2ZhNzM4MGE3OGQ1NmMwMWVkMzE0NzQ1YjE2OSBmcm9tIFY1LTYtcGF0Y2hlcworCitjb21taXQgN2U5NWQ4MGI2OTgwNTEyNTk2NDVjMDc0YTUzZmZkMjY0YTZmYTkxNgorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBBcHIgMiAxNjowNjo1NiAyMDEyICswMTAwCisKKyAgICBGcmVlQlNELTk6IEZpeCBmb3IgJ2NvbnN0J2lmeWVkIG5saXN0IGFyZ3VtZW50cworICAgIEJhY2twb3J0IG9mIGVkNjVlY2E2ZTdmOWNmYTczODBhNzhkNTZjMDFlZDMxNDc0NWIxNjkgZnJvbSBWNS02LXBhdGNoZXMKKworY29tbWl0IDFhOWI3YjdjMDJlMmRlZWZlOTk0ZDU5NWE3Y2MxZGQyZmZiZWVlMWQKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gQXByIDIgMTU6NTE6MjAgMjAxMiArMDEwMAorCisgICAgRml4IGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgOS54IHdpdGggJ3JlY2VudCcgaGVhZGVyIHNodWZmbGluZworICAgIEJhY2twb3J0IG9mIGM1M2Q4YzM1MjVmNTkwZjIyMTNkMzViMGRhOTQxMjM4NjJmM2UzNjYgZnJvbSBWNS01LXBhdGNoZXMKKyAgICAoUGF0Y2ggIzMzNjMzMDggLSBvbWl0dGluZyB0d2Vha3MgdG8gY29uZmlndXJlKQorCitjb21taXQgM2Q5ZGRiNDFlMjYzYmMxYTc4ZjlmOTQ0MGI4ZDRhZDRmODZjODJlMQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBBcHIgMiAxMDozNjoxOCAyMDEyICswMTAwCisKKyAgICBGaXggdHlwbworICAgIEJhY2twb3J0IG9mIDViNzAyYjAyNGI2MDE3NmQ3ZjU2OTliOTJlNTVkYTUwYThkZWFlNzEgZnJvbSBWNS02LXBhdGNoZXMKKworY29tbWl0IDBkMzVjNjA5NTY0YjY2YTFmZmU4MTU1NmQzN2FkZjA1MDNjMzg5Y2UKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gQXByIDIgMTA6MTU6MDggMjAxMiArMDEwMAorCisgICAgUHJvdmlkZSBtaXNzaW5nIGRlZmluaXRpb24gb2YgTkVUU05NUF9QUklvCisgICAgKHVzZWQgaW4gYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19zb2xhcmlzMi5jKQorCitjb21taXQgYTc5MTQxYTQxOTk1M2QwMTBhNjk4OWU4Yjg4ZjRkZjEyNzM5NGQzOAorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBBcHIgMiAwOToxOToyNiAyMDEyICswMTAwCisKKyAgICBIZWFkZXIgZmlkZGxpbmcgZm9yIEZyZWVCU0QsT3BlbkJTRCxEcmFnb25mbHkKKyAgICBCYWNrcG9ydCBvZiBmN2IwZGUxNTE4MDAyYzZlOGY5Yjk0ZWYzZGViODg4MmUxZTkzMzhlIGZyb20gVjUtNy1wYXRjaGVzCisKK2NvbW1pdCBhZGY3NGJmNzUzZDM5NzAzNTdhZmQ2MzM4MDMyNTYyNDFkOWM3Yjg3CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIEFwciAyIDA4OjIwOjQ2IDIwMTIgKzAxMDAKKworICAgIEZpeCBJUHY2IFRDUCAmIFVEUCB0YWJsZXMsICpCU0Qgc3VwcG9ydCAoaW5jbHVkaW5nIE9wZW5CU0QpCisgICAgQmFja3BvcnQgb2YgY29tbWl0cyA1Y2QxNTczNjI1NDcxYzA1ODNlOTA4N2FlYzY4MDJiNzcxNTdkNWEyCisgICAgICBhbmQgNTBkNzNmMGQ1NmZlMjJjNTkwNTMwYjNlMzA1ZDQxZGNkYWMzY2UwMCBmcm9tIFY1LTYtcGF0Y2hlcworCitjb21taXQgZDk1NTVhY2I5ZjQ3YzNhYThmZGU0YmMyMGE0NGQ3Y2E2MTgxYThhOQogQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KLURhdGU6ICAgTW9uIEF1ZyA4IDIxOjU2OjE1IDIwMTEgKzAyMDAKK0RhdGU6ICAgU3VuIE1hciAyNSAxODo0ODoxMiAyMDEyICswMDAwCiAKLSAgICBSZXZlcnQgIkNIQU5HRVM6IFdpbmRvd3M6IEF2b2lkIHRoYXQgaWYgdGhlIE5ldC1TTk1QIFBlcmwgbW9kdWxlcyBoYXZlIGJlZW4gYnVpbHQgd2l0aCBhbm90aGVyIHZlcnNpb24gb2YgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gdGhhbiBBY3RpdmVQZXJsIHRoYXQgdXNpbmcgb25lIG9mIHRoZXNlIFBlcmwgbW9kdWxlcyB0cmlnZ2VycyBhICJGcmVlIHRvIHdyb25nIHBvb2wiIGNyYXNoLiBUaGlzIHJlZ3Jlc3Npb24gd2FzIGNhdXNlZCBieSBjb21taXQgM2IxNGM1OWNmODI3OGQ0MTAyMDdmZjQyZGViZGEyNjM2NDI2YTQ2OCAodGhlIG5ldHNubXBfZnJlZSgpIGludG8gU05NUF9GUkVFKCkgY2hhbmdlcyBpbiB0aGUgKi54cyBmaWxlcykuIgotICAgIAotICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgN2Y0MmQwZDkzMzIwNDg0MTUyMjcxNDI3Y2M5ODA4Y2JkYTQ5YmJkMCBiZWNhdXNlIHRoYXQgY29tbWl0IGlzIG5vdCBzdWl0YWJsZSBmb3IgdGhlIDUuNCBicmFuY2guCisgICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQXZvaWQgZGFuZ2xpbmcgcG9pbnRlcnMgKGJhc2VkIG9uIHBhdGNoIDM1MDMyNTkpCiAKLWNvbW1pdCA1OGNhNzNkMDM1ODliMDk3NGQ5MjZiZGZkYzM5MjcwOTlmYmEyMTE1Ci1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gQXVnIDggMTE6MjQ6MDkgMjAxMSAtMDcwMAorY29tbWl0IDgyYThiNDdlZTk2ZTVkMjlhMmI3YWMzY2EwMDcyMmQ3MzdkNWI0NzkKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBNYXIgMjkgMjI6MzE6NTYgMjAxMiArMDIwMAogCi0gICAgZGlzcGxheSB0aGUgYnJhbmNoIHdlJ2xsIGNvbW1pdCB0bworICAgIFJ1bm5pbmcgYXV0b2hlYWRlciAvIGF1dG9jb25mCiAKLWNvbW1pdCBkNDM3MjliZWZlMTJiZGVmYzg3MDg4OWJkZmUxODJlNzY5M2YxZjNiCi1BdXRob3I6IFZsYWRpbWlyIEtvbmRyYXRpZXYgPHd1bGYyMDAxQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIEF1ZyA4IDExOjIwOjMwIDIwMTEgLTA3MDAKK2NvbW1pdCA5Y2E4ZDkzOWFiMzkzMzA2YTFkMGYxNDZjOWNiNzBlYTBjYjE5ZDQ5CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgTWFyIDI5IDIyOjMwOjM4IDIwMTIgKzAyMDAKIAotICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSCAzMzg2NjMzOiBmcm9tIHd1bGYyMDAxOiBmaXggaW50ZWdlciBvdmVyZmxvdyBpbiBkaXNrIHBlcmNlbnQgY2FsY3VsYXRpb25zCi0gICAgCi0gICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisgICAgUnVubmluZyBhdXRvaGVhZGVyIC8gYXV0b2NvbmYKIAotY29tbWl0IDNiYzU2ODMzMzRlNTY2M2M1ODkyNDE5NmVkZDY2NDk2ZmY4MTcwYzIKLUF1dGhvcjogR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIEF1ZyA4IDExOjEyOjI3IDIwMTEgLTA3MDAKK2NvbW1pdCBjZWNkNDg2OWRlYjY4ZjNkNGM3MWU3NjhkNWI0MGRkNTc2NDQ2OTI1CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgTWFyIDI5IDIyOjI5OjMxIDIwMTIgKzAyMDAKIAotICAgIENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzODcxMzk6IGZyb20geWFiZXJhdW5leWE6IEF2b2lkIHNlZ2ZhdWx0IGlmIHRyYXBzZXNzIHRyYW5zcG9ydCBlbGVtZW50IGNhbnQgYmUgcGFyc2VkCi0gICAgCi0gICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisgICAgUnVubmluZyBhdXRvaGVhZGVyIC8gYXV0b2NvbmYKIAotY29tbWl0IDFkMWJmZDVmNDUxYzJiYzQyMGI3MTBjOThjNzlkMDRiZGVmNDM5MWIKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBBdWcgOCAxMToxMDo1MiAyMDExIC0wNzAwCitjb21taXQgYTFhNDUxM2JkM2U0ZTYxNDIwMGY2ZGI1YTAyZjYxZDZjOGVlZmIzMgorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFdlZCBNYXIgMjggMDk6NDc6NDUgMjAxMiArMDEwMAogCi0gICAgbnNzZnBhdGNoYXBwbHk6IHNwbGl0IHRoZSBkaXNwbGF5ZWQgZ2l0IGNvbW1pdCBjb21tYW5kIGludG8gbXVsdGlwbGUgc2VnbWVudHMKKyAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMgKGJhY2twb3J0IG9mIGdpdCBjb21taXQgYzA5OTAzYTQyZTlkOTczMzFmZDllNDhlZTgzMWE4NWFmZGY5YzcwYSkKIAotY29tbWl0IGQzNzNjNGZkOGMzOTFhZmUwYjllMDJhNjBiNWNkNjYxYmM5MDM5ZGMKK2NvbW1pdCA5YmRiY2NhMTIyYzM3ZGEzMDRmYzZhYTY5Mzk3Mjk0NzVmOTBmNWZkCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgV2VkIE1hciAyOCAwOTozMDo0OSAyMDEyICswMTAwCisKKyAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMgKGJhY2stcG9ydCBvZiBHSVQgY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEpCisKK2NvbW1pdCAxZjRhODI5YjE4Mjc1ZTQ5NTZjYTkxZTVlYzM3MGRmMDE1ZjA2MTMzCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIE1hciAyNyAyMTo0MToyNCAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ5NTY5NzogU3RvcmUgcGVyc2lzdGVudCBzbm1wVGFyZ2V0IHRhYmxlIGNoYW5nZXMKKworY29tbWl0IDFmNzVmMzc3ZDBkYjAxNzU0YzBjMTYxZGM0NDM3MzA4MWJlZWY1MjAKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgTWFyIDI3IDIxOjE0OjA2IDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IEZyZWVCU0Q6IFBBVENIRVM6IDM0ODkzODc6IEluc3RhbGwgRnJlZUJTRCAxMCBoZWFkZXIgZmlsZSAocGx1cyBvdGhlciBtaXNzaW5nIHZlcnNpb25zKQorCitjb21taXQgM2Q3MmM5ZTc4ZjJhZDgxN2M5ZDFkODI5NzczMjdiYmIyMGQ2M2FiOQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBNYXIgMjcgMjE6MDY6MzEgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzNDg3ODY3OiBEb24ndCBza2lwIG1pc3NpbmcgaWZYVGFibGUgZW50cmllcyAoaWZDb25uZWN0b3JQcmVzZW50IEZBTFNFKQorCitjb21taXQgMTI5MDY1NzhhYjMwY2Y3NzZkMDgwYzBlZjMwMjViMzAzMzRkNzY1NQogQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KLURhdGU6ICAgTW9uIEF1ZyA4IDE3OjIzOjQzIDIwMTEgKzAyMDAKK0RhdGU6ICAgTW9uIE1hciAyNiAxNjoxNzo0NSAyMDEyICswMjAwCiAKLSAgICBDSEFOR0VTOiBzbm1wbGliOiBGaXggYSBjcmFzaCB0aGF0IGNvdWxkIGJlIHRyaWdnZXJlZCBieSBjYWxsaW5nIF9taWJpbmRleF9hZGQoKSB3aXRoIHRoZSBzZWNvbmQgYXJndW1lbnQgbm90IGVxdWFsIHRvIC0xLgorICAgIERJU01BTi1QSU5HLU1JQjogRml4IGV2ZW4gbW9yZSBtZW1vcnkgbGVha3MKIAotY29tbWl0IDhjYTdmZjFlNjkyY2FlYzQxODZiNzg4YzlhZTJkMjdiZTIxMzI5MGYKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBBdWcgOCAxMDozMzo1NiAyMDExIC0wNzAwCi0KLSAgICBmaXggYW5vdGhlciBmdW5jdGlvbiB0eXBvCi0KLWNvbW1pdCA1NTZlOTM4ZTgyYTdlZTJjMTBmYThjMGI3YzdhMzRlOWU2NWE2ZDVhCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gQXVnIDggMTA6MDU6MjAgMjAxMSAtMDcwMAotCi0gICAgZml4IGZ1bmN0aW9uIG5hbWUgdHlwbwotCi1jb21taXQgOTY5ZTg2NmFmOTgzZDk4NmEyNmJlYmNhODVmZWYwZjZjNjIzY2UyNgotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIEF1ZyA4IDA5OjU2OjQzIDIwMTEgLTA3MDAKLQotICAgIG1ha2UgbnNwdWxsL25zcHVzaCBjaGVjayBmb3IgYSBjbGVhbiByZXBvCi0KLWNvbW1pdCA3ZTZmZGM4YjJhM2Q4NmE3OTU0MzY3MzQzNTM3MTYyMWEyODU4NzM3Ci1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gQXVnIDggMDk6NTY6MTMgMjAxMSAtMDcwMAotCi0gICAgbmV3IGZ1bmN0aW9uICJuc21ha2VhbGwiIHRvIHRlc3QgYnVpbGRpbmcgb24gZXZlcnkgYnJhbmNoCi0KLWNvbW1pdCBlMjViZTdjODJkNTU0NWQ4OGFiZWExMGU0ZTI1NWM5MmJlZDNkZTZlCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gQXVnIDggMDk6NTM6MDMgMjAxMSAtMDcwMAotCi0gICAgZGVmYXVsdCB0byBtZXJnZQotCi1jb21taXQgYmNiODFiNzk2ZGQ2YTkyMTk1ZDZkYjEzMTc3YWQzMGYwNWZjNjNmNwotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIEF1ZyA4IDA5OjUxOjI2IDIwMTEgLTA3MDAKLQotICAgIHNlcGFyYXRlIG5zc3luYyBpbnRvIG5zcHVsbCBhbmQgbnNwdXNoCi0KLWNvbW1pdCBlNDZiMTcwMTE3ZmU3OGEyZmFhYmVmMWFkY2MzZDZkNGQ1Njk2MDM2Citjb21taXQgY2NmZDVjYTZmZTEwMzEzZDYxODFkMjRiYmIxNzk3ODI1YTk3ZGExMAogQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KLURhdGU6ICAgTW9uIEF1ZyA4IDE3OjIzOjQzIDIwMTEgKzAyMDAKK0RhdGU6ICAgTW9uIE1hciAyNiAxNTo1MToxNiAyMDEyICswMjAwCiAKLSAgICBDSEFOR0VTOiBzbm1wbGliOiBGaXggYSBjcmFzaCB0aGF0IGNvdWxkIGJlIHRyaWdnZXJlZCBieSBjYWxsaW5nIF9taWJpbmRleF9hZGQoKSB3aXRoIHRoZSBzZWNvbmQgYXJndW1lbnQgbm90IGVxdWFsIHRvIC0xLgorICAgIERJU01BTi1QSU5HLU1JQjogRWxpbWluYXRlIGR1cGxpY2F0ZSBjb2RlCiAKLWNvbW1pdCA3ZjQyZDBkOTMzMjA0ODQxNTIyNzE0MjdjYzk4MDhjYmRhNDliYmQwCitjb21taXQgOWZkYTI2Njg3MjJmMDhkZGJmZGQ2N2EyMjM5ZDhiMDIxZGI2NGE4MwogQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KLURhdGU6ICAgTW9uIEF1ZyA4IDA5OjUwOjUxIDIwMTEgKzAyMDAKK0RhdGU6ICAgTW9uIE1hciAyNiAxNTo0ODo0NiAyMDEyICswMjAwCiAKLSAgICBDSEFOR0VTOiBXaW5kb3dzOiBBdm9pZCB0aGF0IGlmIHRoZSBOZXQtU05NUCBQZXJsIG1vZHVsZXMgaGF2ZSBiZWVuIGJ1aWx0IHdpdGggYW5vdGhlciB2ZXJzaW9uIG9mIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIHRoYW4gQWN0aXZlUGVybCB0aGF0IHVzaW5nIG9uZSBvZiB0aGVzZSBQZXJsIG1vZHVsZXMgdHJpZ2dlcnMgYSAiRnJlZSB0byB3cm9uZyBwb29sIiBjcmFzaC4gVGhpcyByZWdyZXNzaW9uIHdhcyBjYXVzZWQgYnkgY29tbWl0IDNiMTRjNTljZjgyNzhkNDEwMjA3ZmY0MmRlYmRhMjYzNjQyNmE0NjggKHRoZSBuZXRzbm1wX2ZyZWUoKSBpbnRvIFNOTVBfRlJFRSgpIGNoYW5nZXMgaW4gdGhlICoueHMgZmlsZXMpLgorICAgIERJU01BTi1QSU5HLU1JQjogV3JpdGUgYSBsb29wIGFzIGEgbG9vcAogCi1jb21taXQgYTNiODY1NGEyMzJjNTYzYmM5N2NjOTkyNWNkOTg1OTBhMzBjNWJjNQorY29tbWl0IGNiYzE4ZWI3NjNiYTZkZjY5ZWY3MDY2OGE1NGQ3NWJmMzVlNzk1MDMKIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIE1vbiBBdWcgOCAxNzoyNDoxOCAyMDExICswMjAwCitEYXRlOiAgIE1vbiBNYXIgMjYgMTU6MjQ6MDggMjAxMiArMDIwMAogCi0gICAgRml4IGEgcmVjZW50bHkgaW50cm9kdWNlZCBNaW5HVyBjb21waWxlciB3YXJuaW5nCisgICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IG1vcmUgbWVtb3J5IGxlYWtzCiAKLWNvbW1pdCBhMGRkM2NhZjI1OTI2ZTQzNDY1NzE4YmY0MTdhNDY0YzJmYjM2MzY2Citjb21taXQgYzc3MjUxOTI0NzhhZWMwMThmYjRhZWZhNjA5NDZlMDRhNDA2YzAwYwogQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KLURhdGU6ICAgU3VuIEF1ZyA3IDEwOjE3OjAxIDIwMTEgKzAyMDAKK0RhdGU6ICAgTW9uIE1hciAyNiAxMzo0MzoyNCAyMDEyICswMjAwCiAKLSAgICBmaW5kIFwoIC1uYW1lICcqLltjaF0nIC1vIC1uYW1lICcqLmluJyAtbyAtbmFtZSAnKi5kc3AnIFwpIC1wZXJtIC11K3ggfCB4YXJncyAtciBjaG1vZCBhLXgKKyAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBBdm9pZCByZWFkaW5nIGZyZWVkIG1lbW9yeSB3aGVuIGRlbGV0aW5nIGEgcm93IGZyb20gYSB0YWJsZQogCi1jb21taXQgYTlhMjUyNTIyZmJlN2RjMWVkNzBmZjI3MjFhNGY4MTU4M2MwZDkyYQotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEF1ZyA1IDEwOjIwOjUxIDIwMTEgLTA3MDAKLQotICAgIG1ha2Ugcm9sbHVwIGFuZCBzeW5jIHN1cHBvcnQgLS1yZWJhc2UgYW5kIGNoYW5nZSB0aGUgZGVmYXVsdCBiYWNrIHRvIG1lcmdlCi0KLWNvbW1pdCA5NmY1ZjQ3YWQ0Mjc5NzJkOGQ5YTZjZTA2YzVlMTYxNDczNjIwODNiCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgQXVnIDUgMDk6MjU6MjUgMjAxMSAtMDcwMAotCi0gICAgdHJ5IGEgbXVsdGlwbGUgYnJhbmNoIHB1c2gKLQotY29tbWl0IDBkYmM4NjlmZWMwN2Q4ZTkwZGJkMWM5NTQ5M2VlN2NiYzYyM2M5NWMKK2NvbW1pdCBhNmJlNzM5NTY2ZjMxMGQ3NDQxZmQ3ZjU0OTg5ZTM5NDQ2ZjdhMTQzCiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgotRGF0ZTogICBGcmkgQXVnIDUgMTI6NDA6MzEgMjAxMSArMDIwMAorRGF0ZTogICBNb24gTWFyIDI2IDEzOjQyOjI4IDIwMTIgKzAyMDAKIAotICAgIENIQU5HRVM6IFdpbmRvd3M6IGJ1aWxkLmJhdDogR2VuZXJhdGUgUERCIGZpbGVzIGluIHJlbGVhc2UgbW9kZS4KKyAgICBFeHRlbmQgRElTTUFOLVBJTkctTUlCIHRlc3QKKworY29tbWl0IDhhOWI1NzI5MTQ1M2NiOGFlYzI4ZTc2NmM1OTQ3MDFlZDE5YzRmYzYKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBNYXIgMjYgMjE6MDM6NDEgMjAxMiArMDIwMAorCisgICAgRml4IGZvciBEcmFnb25GbHkgMworCitjb21taXQgZTVjOWEzMmY3OWVhYzJlODU1MjdjOWNmMDUwODdjZGFlOWIzNWE2YworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE1hciAyNiAyMDo1OTo1MyAyMDEyICswMjAwCisKKyAgICBEcmFnb25GbHkgbmVlZHMgX0tFUk5FTF9TVFJVQ1RVUkVTIHRvIGNvbXBpbGUgaXB2NiBjb2RlCisKK2NvbW1pdCBjZDQzYmMwOWEzOWJkOTdmZjVlNzE5YTJjZTIzMmNlNDI0NjAwYTY1CitBdXRob3I6IERhdmlkIEltaG9mZiA8ZGltaG9mZkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFNhdCBNYXIgMjQgMTU6NDc6MTcgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0ggMzUxMDQ1NDogQWxsb3cgdGhlIHVzZSBvZiAwLjAuMC4wLzAgYXMgYWxpYXMgZm9yIGRlZmF1bHQKKworY29tbWl0IGUyZmMxNWY5ZTVhNmUzZTM2YmU1ZjQ4OTYwMWNiZjZiZjczMTkxN2YKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MjE6MzggMjAxMiArMDEwMAorCisgICAgRml4IFRDUCBzdGF0ZSB2YWx1ZXMgZm9yIERyYWdvbkZseQorCitjb21taXQgNDMyZmUzZGRmNTRmMmM5OGY5MzY5NTk0NjljYjliMDE0ZDU5OWYwNgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU2F0IE1hciAyNCAxNToxMDo1MiAyMDEyICswMTAwCisKKyAgICBSZXF1aXJlIHBlcmwgdG8gZG8gcGFzc19wZXJzaXN0IHRlc3QKKworY29tbWl0IDM3ZDI3NzBjZjUwYzk4MDIzZWViYTkwZTI1ZDM3MmJmZjczMTZhZGEKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2VyLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU2F0IE1hciAyNCAxNTowNjo0MCAyMDEyICswMTAwCisKKyAgICBGaXggVENQIHN0YXRlIHZhbHVlcyBmb3IgRHJhZ29uRmx5CisKK2NvbW1pdCA4NmE5NDhkODY5MWU4ODFkNTU1OTFkY2FiZGRjMjczOWNlNzJiMzBlCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAbmJhLWxpbnV4LnNiLnN0YXRzYmlibGlvdGVrZXQuZGs+CitEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MDE6MzcgMjAxMiArMDEwMAorCisgICAgUHJvcGVybHkgZmluZCBwYXNzIGhlbHBlcnMgZm9yIHRlc3RpbmcuCisKK2NvbW1pdCBmZTI2YTNjNGYyOWYwNDZiZjY1ZWQ1MmU5ZDk0MDU0YjY3NWZiYzRiCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgTWFyIDIyIDA5OjA0OjQyIDIwMTIgKzAxMDAKKworICAgIERJU01BTi1QSU5HLU1JQjogTGltaXQgc291cmNlIGNvZGUgbGluZXMgdG8gODAgY29sdW1ucworCitjb21taXQgNzQ1YmFmY2RjYzljOGU4NDYxNmQ0ZTI3NGRiMmEzODRiZjIzNGRhMgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IE1hciAyMiAwODo1NTowNSAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBNYWtlIHBpbmcgaW1wbGVtZW50YXRpb24gaW5kZXBlbmRlbnQgb2YgbnRwZCBjbG9jayBqdW1wcworCitjb21taXQgZGE2OTI1ZTY3NjNjYWRiZTAyZjRhOGJiZmU2OGEzNjJlNTM1YWQ1ZQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIE1hciAyMCAxMDozODozNiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTU0ZGlzbWFucGluZ21pYl9zaW1wbGUKKworY29tbWl0IGZhNjA2ZGQ3Y2E2YWZmOTMwOGQ0ZThiMDFiYmNkZTE0OGY0NDEyNzEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBNYXIgMjAgMTY6NDk6MjEgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogTWFrZSBwaW5naW5nIGxvY2FsIGludGVyZmFjZSBhZGRyZXNzZXMgd29yaworCitjb21taXQgNjE3YTgzYmE3OTk1NzVjODRjNjZmNmIxYzQ4MGVmNjMzMTYxYTY0YworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIE1hciAyMCAxNjoyODo0NiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggYSBzb2NrZXQgbGVhayB0cmlnZ2VyZWQgYnkgcGluZ2luZyBhIHJlbW90ZSBob3N0CisKK2NvbW1pdCA2MjVmNTVjMjcyZWM2MjgxZTM4ZDhlMzBlYjUzZmQ1MTUxNmIwMGFlCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgTWFyIDIyIDA5OjU0OjU1IDIwMTIgKzAxMDAKKworICAgIERJU01BTi1QSU5HLU1JQjogQ29udmVydCBhIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCB2YXJpYWJsZSBpbnRvIGEgc3RhY2sgdmFyaWFibGUKKworY29tbWl0IGI0OGYxOWFkNGI0YWE2OGMzZTE2ZTJhNzJkZjM3YjljMGNkMzZjNGEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBNYXIgMjAgMTY6MjQ6MDcgMjAxMiArMDEwMAorCisgICAgRElTTUFOLVBJTkctTUlCOiBBZGQgbW9yZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cworCitjb21taXQgZDc0Y2IzOTY2MTc1ODkyNTYyZjVlM2E5YjE2ODNhY2JhMmMyMmUwNworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIE1hciAyMCAxMTo0NToxOCAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggc2V2ZXJhbCBtZW1vcnkgbGVha3MKKworY29tbWl0IDBiMWE3NzY3NDY3OGNjOWExNWJlM2U3NzAwZDNjZWY2NTBlZDAyYzcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBNYXIgMjAgMTI6MDA6MzAgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRG8gbm90IHNlbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSBzdGFjayBvdmVyIHRoZSBuZXR3b3JrCisKK2NvbW1pdCAxMzkwMjNjZDNhYjUxNjMxY2MxMGUyODY2ZDcxYWJjZjk5YWU0YzFiCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgTWFyIDIxIDA4OjU2OjA3IDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IERvbid0IGNhbGwgZXhpdCgpIHVwb24gbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZQorCitjb21taXQgMTY5YjZhYWE3YjYxODI3Y2MxYWQwYjNhZWVhZTNhNzIyOWRkMjVkOAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIE1hciAyMSAwODo1MzoyNiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggSVB2NiBzb2NrZXQgbGVhayBpbiBlcnJvciBwYXRocworCitjb21taXQgYTBiZTMyYWQwNTNhNzFmYTk2MTM0ZDU1ZTU0MmJiMDdkNGYwMjk3ZAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIE1hciAyMCAxMTo0Mzo0NiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBBdm9pZCB0aGF0IGhvc3QgbmFtZSByZXNvbHV0aW9uIGZhaWx1cmUgY2F1c2VzIGEgY3Jhc2gKKworY29tbWl0IGJmOWJmZjY0NTU2Nzg3ZDc2NmVlMmVmMmQ1NzhhZmI5MjA3MTlmM2EKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBNYXIgMjEgMDg6NTE6NTUgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQ29udmVydCBwcmludGYoKSBzdGF0ZW1lbnRzIGludG8gc25tcF9sb2coKSBhbmQgREVCVUdNU0coKS1zdGF0ZW1lbnRzLgorCitjb21taXQgNWQ3NGMwMTI0NTUyM2E5ZDhkYjFlZGEyN2QxZWZhZTJlYmMxMDRmYgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE1hciAyMSAxODo0MDowMiAyMDEyICswMTAwCisKKyAgICBOZXcgTUlCOiBWUlJQVjMtTUlCCisKK2NvbW1pdCA1YjM4ZjA2MmI5OWI2ZWYzNjcwOGUyYzdkZTQ5NjVhMzE5MjYxMmU5CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTWFyIDIxIDE4OjM0OjQ4IDIwMTIgKzAxMDAKKworICAgIEZvciBzYWZldHksIHNpemVvZiB0aGUgcmlnaHQgdmFyaWFibGUgaW4gbWVtY3B5CisKK2NvbW1pdCBlNWY4Mjc4MmRhMDVlZmE3YzBlNmRjMmJmNWE0MWVlMTE4NjhmNDY5CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTWFyIDIxIDE4OjMzOjIxIDIwMTIgKzAxMDAKKworICAgIEZpeCBmb3IgaHJTV1J1biBkYXRhIGZvciBGcmVlQlNECisKK2NvbW1pdCA4MzI3NTY1ZTgyMzI3MGQxMGE0NTA0NTY4ZWRiZTViNWFlMzIzYTU1CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTWFyIDIxIDE4OjMxOjU0IDIwMTIgKzAxMDAKKworICAgIENsZWFuIHVwIHZhcmlhYmxlcyBmb3IgT3BlbkJTRC9OZXRCU0QKKworY29tbWl0IDE3MGY2ZjAyN2JmNGY5MTc0YjcwNzM1MzBkYTRkMDdmNDAwYmJhNTgKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBNYXIgMjEgMTg6Mjg6NTggMjAxMiArMDEwMAorCisgICAgTW92ZSBkZWNsYXJhdGlvbnMgaW4gZnJvbnQgb2Ygc3RhdGVtZW50cworCitjb21taXQgZGJiNDU3M2I2OWZhZTg1Y2RjOTMxYjI4OTJiNWNlNGU1YjE2YjMyMQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE1hciAyMSAxODoyMzozNiAyMDEyICswMTAwCisKKyAgICBSZXF1aXJlIGtlcm5lbF9uZXRic2QgZm9yIE5ldEJTRDYKKworY29tbWl0IGYxMTY4MWYxNWFhZDdkOWE1MmZhMjk4MTJlY2JiNTA3ZjFiN2ZlMjQKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBXZWQgTWFyIDIxIDEyOjM2OjM4IDIwMTIgKzAwMDAKKworICAgIENoZWNrIGZvciBvbGQgdGFyYmFsbHMgKGFuZCB1bnBhY2tlZCBkaXN0cmlidXRpb25zKSBiZWZvcmUgc3RhcnRpbmcuCisgICAgVGhlc2UgY2FuIGNvbmZ1c2Ugc3RlcHMgc3VjaCBhcyAibWFrZSBkZXBlbmRjaGVjayIsIHRoYXQgZG8gYSAnZmluZCcKKyAgICBvbiB0aGUgY3VycmVudCB0cmVlLCBhbmQgd291bGQgZGVzY2VuZCBpbnRvIHN1Y2ggdW5wYWNrZWQgc291cmNlIHRyZWVzLgorCitjb21taXQgNDcwZGNkNGI2YzNmZjExZmYwYTM1MzJhNzM0MGE1NmNmZmQ2OTA5OAorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFdlZCBNYXIgMjEgMTI6MzI6MTMgMjAxMiArMDAwMAorCisgICAgRG9uJ3QgcnVuICJtYWtlIGRvY3M7IG1ha2UgbWFuY3AiIGlmIHRoZXJlJ3Mgbm8gTWFrZWZpbGUgcHJlc2VudAorCitjb21taXQgYzlhYzQyMDM0M2UxNmRmMmI3MDY1ZjViZjI3OTBkZjQ0ZTI0N2ZiYQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBNYXIgMjAgMTA6MjY6MTAgMjAxMiArMDAwMAorCisgICAgQWxsb3cgZGlzdHJpYnV0aW9uIGFzIHBhcnQgb2Ygbm9ybWFsIE5ldC1TTk1QIHBhY2thZ2VzLgorCitjb21taXQgNTk5OWY2MGM1NzcyM2YyM2YzYzI1NGFmNTdmZGIxMGFmMzAxYThlYgorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIE1hciAxOCAxOTowMzowOCAyMDEyICswMTAwCisKKyAgICBSZWdlbmVyYXRlCisKK2NvbW1pdCAyNzVkMjA0MDM2YTYwN2UzZGY1MGU4NDQ3ZDRiYzc1NWU5ZGIwMmZkCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gQXVnIDI4IDIxOjI5OjAzIDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSAtLWRpc2FibGUtYXBwbGljYXRpb25zLy0tZGlzYWJsZS1hZ2VudCB0b2dldGhlciB3aXRoIC0tZW5hYmxlLW1pbmltYWxpc3QKKworY29tbWl0IGJkY2NjODc1NzEwMjk1YWFjZjUwZjcxZWIxYzFkMmVlOTdmMzM2ZmUKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIEZyaSBNYXIgMTYgMjA6MTA6NTggMjAxMiArMDEwMAorCisgICAgRG8gbm90IGRlY2xhcmUgdGhlIGxvY2FsIHZhcmlhYmxlcyBmb3Igb3BhcXVlX3NwZWNpYWxfdHlwZXMgdW5sZXNzIHRoYXQgb3B0aW9uIGlzIHNldC4KKworY29tbWl0IGI4MGE2N2RhMDUyYWRjYTFiNWE2NDRkYjgzYTc4MmUxNWMyMjM3YzMKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIEZyaSBNYXIgMTYgMTk6NTA6MDMgMjAxMiArMDEwMAorCisgICAgQ2hlY2sgdGhhdCB0aGUgZGF0YSBleGlzdCBiZWZvcmUgdHJ5aW5nIHRvIHJlYWQgaXQKKworY29tbWl0IGVmYWU4NmJiYTU5NjI0OTFkNDJiNzdiOTM1MTkxYTNlYjI1ZGQ5MzkKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFdlZCBNYXIgMTQgMDE6MDU6MzMgMjAxMiArMDEwMAorCisgICAgUGFydGlhbGx5IHJldmVydCAiTWVyZ2UgcmVtb3RlIGJyYW5jaCAnb3JpZ2luL1Y1LTctcGF0Y2hlcycgaW50byBWNS03LXBhdGNoZXMiCiAgICAgCi0gICAgQ0hBTkdFUzogV2luZG93czogYnVpbGQuYmF0OiBXcml0ZSBQREIgZmlsZXMgdG8gdGhlIG91dHB1dCBkaXJlY3RvcnkgaW5zdGVhZCBvZiB0aGUgaW50ZXJtZWRpYXRlIGRpcmVjdG9yeS4KKyAgICBDb21taXQgZDM1YTE4NjAyMTdlNzIzZTRmODY2ZGQ5OGVmNjYyMTY2NTkzNGM0YSBhY2NpZGVudGFsbHkgcmV2ZXJ0ZWQKKyAgICAKKyAgICA0YTJlNWJjZDU2Y2QyYWZiMzZlYjE1ZDc1NGUyZmVlODg4ZGQ1MGMwIChocmhfc3RvcmFnZSBpcyBhIHByb3BlciByZXBsYWNlbWVudCBmb3IgaHJfc3RvcmFnZSkKKyAgICAwZGQxZTU0NTU3ZDFiYTQ5OGI1NWQwMTdiMGE5M2U4Y2NmOWJkNTIyIChDSEFOR0VTOiBzbm1wZDogVURQLU1JQjogUmVwb3J0IHRoZSBwcm9wZXIgYWRkcmVzcyBpbiB1ZHBMb2NhbEFkZHJlc3MpCisgICAgNTExNmQ0ODM3OGVjZjAzZTcyMmYzMDEwYWQ0N2JmMjJhM2ZiY2I4YyAoUmVkdWNlIHNjb3BlIG9mIHByZWZpeF92YWwgc3VjaCB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0IHdhcm4gYWJvdXQgYW4gdW5zZWQgdmFyaWFibGUpCisgICAgMTBmNTY2ZjRkNGNiYjNlMjA1MDIzYzIzNjY5Mjg5ZTRiZmQwODljYiAocGVybC9TTk1QL1NOTVAueHM6IEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcpCisgICAgCisgICAgYW5kIHBhcnQgb2YKKyAgICAKKyAgICA2ZTc0ZDY0Zjg1YTU5ZDUwZTQ2MWRiNGMzNGFjNzZmOWRlNDY4YmZiIChBdm9pZCB1c2luZyBncmVwIG9wdGlvbnMgLXEgYW5kIC13IGJlY2F1c2UgZ3JlcCBpbiBTb2xhcmlzKQorICAgIAorICAgIFRoaXMgcmV2ZXJ0cyB0aG9zZSByZXZlcnRzLgogCi1jb21taXQgNWIwMjkxZjkxZWQ5NDgzNWY4YWU3ZDk0MzZiMTVmNDBhZmIxOTQ3MworY29tbWl0IGFhZWRkNTljYzJkYTcwMTUyN2RjMmQyNjFkNGU5Zjg1ZjE2ZTc1MDQKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBNYXIgMTEgMjA6NTc6MzggMjAxMiArMDEwMAorCisgICAgQWxsb3cgbWFrZSB0ZXN0IHdoZXJlIHRoZSBzb3VyY2UgcGF0aCBjb250YWlucyB0aGUgc3RyaW5nIE5ldC1TTk1QIHRvIHN1Y2NlZWQuCisKK2NvbW1pdCA0Yjk0ZDc5NjkxOGE0ZWVhZTY4YWIyMWFhNTNkNDQ0YThiNWMyOTIxCiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgotRGF0ZTogICBGcmkgQXVnIDUgMTM6MTc6MTkgMjAxMSArMDIwMAorRGF0ZTogICBGcmkgTWFyIDkgMDg6MDQ6NTkgMjAxMiArMDEwMAogCi0gICAgLmdpdGlnbm9yZTogQWRkIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLmRlZiBhbmQgcGVybC9TTk1QL3QKKyAgICBVbmJyZWFrIGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgNAogCi1jb21taXQgMmY4ZDRmNTc5NmNiYzFjN2U5NjdhY2RhYTgwMTliMjRmMTUyMGEzNgorY29tbWl0IDEwZmU2YjgzMzI0YWQzN2QxOGI5MzdjYzhjNmRlOTRkZTUzNGQwMzUKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWFyIDggMTM6MDQ6MDcgMjAxMiArMDAwMAorCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTEKKworY29tbWl0IGUxMTIyZWRjMWE1ZmU3OTc2YjA2NTA0NDEzNGQzOWU3ZGI1OTg1ZWEKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWFyIDggMTI6NDM6MTkgMjAxMiArMDAwMAorCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTEKKworY29tbWl0IGE2MTNkM2E4MzQ5MTIyMDZkMWJhNTk3MWU0NDFhM2VhNmIzNmFmMjMKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWFyIDggMTI6MzM6MDMgMjAxMiArMDAwMAorCisgICAgbWFrZSBkZXBlbmQgZm9yIDUuNi4yLnByZTEKKworY29tbWl0IDBlZjM0ZTY1MTlkZmNiODJjOTdkZjg0Mjc1NDdjMDhkY2Y4MWU2OWEKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgTWFyIDggMTA6MTE6MzAgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIHNubXBkICctZCcgb3B0aW9uLgorICAgIAorICAgIE5vdyBpdCBkdW1wcyBwYWNrZXRzIGFnYWluLgorCitjb21taXQgOGU2OTc0MmYxNDNlNGZjMTExOTZlNWIyZWQ2NmM4ZjdmNTNmZDAyZgorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBNYXIgNiAwOToyNDoyMSAyMDEyICswMDAwCisKKyAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnByZTEKKworY29tbWl0IGM0ZTAwYjhjM2UxMDEwY2RjYWI1ZTZjMDJkNjBkNzVkZjljNmRjZjIKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgTWFyIDYgMDk6MjQ6MDUgMjAxMiArMDAwMAorCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTEKKworY29tbWl0IDM5NDkwMTA0YTNhYjU4MjM1YWFjZTJmOWQ4NzFjMjY2ZGM0NDg1ZWUKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gTWFyIDUgMDk6MDY6NTIgMjAxMiArMDAwMAorCisgICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bworICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKKyAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KKworY29tbWl0IDRhMmU1YmNkNTZjZDJhZmIzNmViMTVkNzU0ZTJmZWU4ODhkZDUwYzAKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBNYXIgNSAyMDo1OTozOCAyMDEyICswMTAwCisKKyAgICBocmhfc3RvcmFnZSBpcyBhIHByb3BlciByZXBsYWNlbWVudCBmb3IgaHJfc3RvcmFnZQorCitjb21taXQgY2U4NTgzMjkzMmNjZDkxNmM0MjMxOTExNGM0MDg4NWE0NjZhOWQwZQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE1hciA1IDIwOjU2OjQwIDIwMTIgKzAxMDAKKworICAgIE1vcmUgZml4ZXMgZm9yIFNvbGFyaXMgc2gKKworY29tbWl0IDBkZDFlNTQ1NTdkMWJhNDk4YjU1ZDAxN2IwYTkzZThjY2Y5YmQ1MjIKIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIEZyaSBBdWcgNSAxMjowMjo1MSAyMDExICswMjAwCitEYXRlOiAgIE1vbiBNYXIgNSAxNTowODoyNiAyMDEyICswMTAwCiAKLSAgICBDSEFOR0VTOiBXaW5kb3dzOiBBdm9pZCB0aGF0IHJ1bm5pbmcgdGhlIFBlcmwgcmVncmVzc2lvbiB0ZXN0cyBtYWtlcyBzbm1wZCBjcmFzaAorICAgIENIQU5HRVM6IHNubXBkOiBVRFAtTUlCOiBSZXBvcnQgdGhlIHByb3BlciBhZGRyZXNzIGluIHVkcExvY2FsQWRkcmVzcyBpbnN0ZWFkIG9mIDAuMC4wLjAuIE1ha2VzIHRlc3QgVDE2MHNubXBuZXRzdGF0IHBhc3MgYWdhaW4uIEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gY29tbWl0IGM3NmZiOTZmNjVlMzNiYTJmZDIxMmE5MjFlOGMzODYxNTVlZTVjN2EuCiAKLWNvbW1pdCAwYzc1MDdhMWUwMTAxZjRiMTM1YTNlZDhhOTYxNjM1Yjg3MDkzZjFhCitjb21taXQgNTE4OTE3ZTlmMzlmN2E5ZDNjM2JmM2E4NjVlOGFjMGUzMDI2ZDYwMAogQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KLURhdGU6ICAgRnJpIEF1ZyA1IDEwOjU3OjMzIDIwMTEgKzAyMDAKK0RhdGU6ICAgTW9uIE1hciA1IDE0OjA0OjU0IDIwMTIgKzAxMDAKIAotICAgIFVuYnJlYWsgdGhlIFY1LTQtcGF0Y2hlcyAtIHJldmVydCBjb21taXQgZDJjNDc2OGJkMmVmYjQ4NjY0NDM0YTgzMTQyNWMyZGRhODVkNzEzMyAoQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM2MjIzMzogZnJvbSB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUgbm9pc2UpLgorICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOiBGaXggc291cmNlIGNvZGUgaW5kZW50YXRpb24KIAotY29tbWl0IDliN2ZmNGFiZmM5NTI5YmI5ZTE4YTNiODc0MjAxNTIwYmMwZTcxNDEKK2NvbW1pdCAyNjUxOTA5Y2NjZWFiZmNmYWRhZjk0MmMwMjQ1MGUyOGZlODM3ZGM5CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgTm92IDkgMTI6MDQ6MDQgMjAxMCArMDAwMAorCisgICAgUGFzc2VzIG5vdyBvbiBNaW5HVyB0b28uCisgICAgCisgICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk2NTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKK2NvbW1pdCBlNDFmMTE1ZTQwMzA0Yzk0MWJhMTdkNjdlMjQ3MTA3MjJkOTA3NDFiCiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgotRGF0ZTogICBGcmkgQXVnIDUgMTE6MDc6NTUgMjAxMSArMDIwMAorRGF0ZTogICBNb24gTWFyIDUgMTM6Mzk6MTcgMjAxMiArMDEwMAogCi0gICAgVW5icmVhayB0aGUgVjUtNC1wYXRjaGVzIGJyYW5jaCAtIHdhcyBicm9rZW4gYnkgY29tbWl0IGJmNzE3OGIwYjIyNTg3ZDQzZDFhODBjMjY5Y2QyMTZiZDU5MzAyMTQgKGFnZW50OiBjaGFuZ2UgdHlwZSBvZiBzbm1wX2VuYWJsZWF1dGhlbnRyYXBzIHRvIGxvbmcpCisgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC13IGFuZCAtcSBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcycgZGVmYXVsdCBwYXRoIGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGVzZS4KIAotY29tbWl0IDAzMDQ5ZTEwMzZjMmMwNmNiZDZlNWVkNWZlMDg0OTk5ZDU0NjhhNWYKK2NvbW1pdCA1MTE2ZDQ4Mzc4ZWNmMDNlNzIyZjMwMTBhZDQ3YmYyMmEzZmJjYjhjCiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgotRGF0ZTogICBGcmkgQXVnIDUgMTA6NTY6NDggMjAxMSArMDIwMAorRGF0ZTogICBNb24gTWFyIDUgMTA6NDc6MjAgMjAxMiArMDEwMAogCi0gICAgVW5icmVhayB0aGUgVjUtNC1wYXRjaGVzIGJyYW5jaCAtIHdhcyBicm9rZW4gYnkgY29tbWl0IDBlNjg0MmZlMDgwY2VjODUzYjA4Y2QyMzIzMDE1YWJhYmMzODFjZTEgKENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0ggMzM4MzQ0MTogZnJvbSBzYWNoaW5zdXJlbmRyYW46IEZpeCBjcmFzaCBvbiA1LjQuNCBkdWUgdG8gYWNjZXNzIG9mIGZyZWVkIG1lbW9yeSkuCisgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOiBSZWR1Y2Ugc2NvcGUgb2YgcHJlZml4X3ZhbCBzdWNoIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXNuJ3Qgd2FybiBhYm91dCBhbiB1bnNlZCB2YXJpYWJsZSBpZiBpdCBpc24ndCBuZWVkZWQuCiAKLWNvbW1pdCAzYWE5NDlmYmRmYzFhOTRhODM0MGFkOGJhZjhiMzE0NzU2YTBiYjlkCitjb21taXQgNmU3NGQ2NGY4NWE1OWQ1MGU0NjFkYjRjMzRhYzc2ZjlkZTQ2OGJmYgogQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KLURhdGU6ICAgRnJpIEF1ZyA1IDEwOjI2OjE1IDIwMTEgKzAyMDAKK0RhdGU6ICAgTW9uIE1hciA1IDA5OjIyOjMxIDIwMTIgKzAxMDAKIAotICAgIFdpbjMyIG1ha2VmaWxlIHdoaXRlc3BhY2UgY2xlYW51cAorICAgIHRlc3RpbmcvZXZhbF90b29scy5zaDogQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC1xIGFuZCAtdyBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcycgZGVmYXVsdCBwYXRoIGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGVzZSBvcHRpb25zLgogCi1jb21taXQgOTQzOTMwZTFlMTI0Mzg1ZmQ5NDczOGI2ZGNkYTM3ZDI5ZGM3YWM3ZgotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEF1ZyA0IDEwOjQxOjQxIDIwMTEgLTA3MDAKLQotICAgIENIQU5HRVM6IGFnZW50OiBQQVRDSCAzMzI0NzY5OiBmcm9tIGhhcmRha2VyOiBGaXggLVd1bnVzZWQgd2FybmluZwotICAgIAotICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotCi1jb21taXQgOTBjMGU3NWYzZTBkZTczZDZhYWFiM2UzZDcxNDZmMThhOGY5ZTE4NworY29tbWl0IDEwZjU2NmY0ZDRjYmIzZTIwNTAyM2MyMzY2OTI4OWU0YmZkMDg5Y2IKIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIFRodSBBdWcgNCAxOToxMjoyNCAyMDExICswMjAwCitEYXRlOiAgIE1vbiBNYXIgNSAxMDo0NzozOSAyMDEyICswMTAwCiAKLSAgICBzbm1wdXNtOiBGaXggcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncworICAgIHBlcmwvU05NUC9TTk1QLnhzOiBGaXggYSBjb21waWxlciB3YXJuaW5nCiAKLWNvbW1pdCAyZGQ5ZWQwODU4ZGFhOTgyYjQxNjBiNGQyYTdkNWEyYjgwOTQ0MTcxCi1BdXRob3I6IFN0dWFydCBIZW5kZXJzb24gPHQwancyZnUwa21nQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEF1ZyA0IDEwOjA2OjU3IDIwMTEgLTA3MDAKK2NvbW1pdCA0NGFhMjY1ODkxY2Q1NjNmN2Y0MTE0ZWYyNWRjZjdhYWYzYjE0ZTlhCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKIAotICAgIENIQU5HRVM6IG9wZW5ic2Q6IFBBVENIIDMzNTc5MzI6IGZyb20gdDBqdzJmdTBrbWc6IENsZWFuaW5nIGluIG1lbW9yeV9uZXRic2QuYwotICAgIAotICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KKyAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCisgICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCiAKLWNvbW1pdCBmOGY2ZjcwNzE2NDRiN2U3NzFkZjhlNjJhOTMyMjdjZjk2MGEwNGU3Ci1BdXRob3I6IFZsYWRpbWlyIEtvbmRyYXRpZXYgPHd1bGYyMDAxQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEF1ZyA0IDA5OjU2OjI5IDIwMTEgLTA3MDAKK2NvbW1pdCBkYWU0ZTE2YmU4NjExNzg2MWY2M2QxYTJmOTgxYWQzNjE0MThmNWM2CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKIAotICAgIENIQU5HRVM6IGFnZW50OiBQQVRDSCAzMzg2MTQ3OiBmcm9tIHd1bGYyMDAxOiBmaXggVUNELVNOTVAtTUlCOjpkc2tVc2VkCi0gICAgCi0gICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisgICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bworICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKKyAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KIAotY29tbWl0IDIxMDFiYjJkN2FkNmRiMDM4Yzc1NWFhOTE5M2M4YWNlMGRiZDRmNTgKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBBdWcgNCAwOToyODowNiAyMDExIC0wNzAwCitjb21taXQgMjhmNjIyNmYyZTIyOGI4Y2EyNDg0ODk3MzVmODY1MDJiMmNjZTBhMQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCiAKLSAgICBhZGRlZCB0aGUgbWlzc2luZyBmcmVlYnNkOS5oIGZpbGUgZnJvbSB0aGUgZnJlZWJzZDkgcGF0Y2gKKyAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCisgICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcworICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgogCi1jb21taXQgYjZhNDgxZmEzMDYyODkzZTU4OWJmNjE2M2M5ZDA2ZDBmMjA1MzI0MAotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEF1ZyA0IDA5OjI3OjA1IDIwMTEgLTA3MDAKK2NvbW1pdCA0MDAyMmE2OTc5NTgyNTljY2ZiYjNmZWQ0NGViM2M0NzJmNWU4MzdlCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTdW4gTWFyIDQgMTA6Mzc6NDEgMjAxMiArMDEwMAogCi0gICAgaWdub3JlICoub3JpZyBhbmQgKi5yZWoKKyAgICBTb2xhcmlzIHNoIGRvZXMgbm90IHVuZGVyc3RhbmQgInRlc3QgLWUiCiAKLWNvbW1pdCBjYzUxMzRlNTNkMWMyMzNkYzQxZTMxZmJiNzhmYWFiMDk4ZjA5MzYxCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgQXVnIDQgMDk6MjY6NDQgMjAxMSAtMDcwMAorY29tbWl0IDc3M2FmMGM0MmUwNzdiZWJkYWVjZjFjMGNhZjM5MzI4NWE3Njg4ZjEKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFNhdCBNYXIgMyAxNzoxOTozMCAyMDEyICswMTAwCiAKLSAgICBoZWxwIG91dHB1dCBkZXNjcmliZXMgcmViYXNlIHZzIG1lcmdlIGJldHRlcgorICAgIENsZWFuIHVwIG5zcm9sbHVwIGNvbXBsaWNhdGlvbnMKIAotY29tbWl0IGIzNzJlNWFiMzBhYTE1NTc0MWU5NGRmMjJlMDc1MjUzNWM1OWU0YmIKLUF1dGhvcjogU3R1YXJ0IEhlbmRlcnNvbiA8dDBqdzJmdTBrbWdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgQXVnIDQgMDk6MjI6MjggMjAxMSAtMDcwMAorY29tbWl0IGVlNzEwNDljM2UyMWMxZDBlMzQyNDI5NzEzNjY1MmJiZTBlMzlkODUKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFNhdCBNYXIgMyAxNjo0OTo0MSAyMDEyICswMTAwCiAKLSAgICBDSEFOR0VTOiBvcGVuYnNkOiBQQVRDSCAzMzU3OTI3OiBmcm9tIHQwancyZnUwa21nOiBSZWNvZ25pc2Ugb3BlbmJzZDUKLSAgICAKLSAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKyAgICBtaWJncm91cC9pY21wLmM6IGFkanVzdCBpZmRlZnMgdG8gbWFrZSBpdCBjb21waWxlIG9uIEJTRCdzCiAKLWNvbW1pdCAwNTQ4YTRlOTdiMmExZjAzOTllNThjNGVmYzAwNGM5NDk3Mzk4Y2Q2Ci1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgQXVnIDQgMDk6MjI6MTUgMjAxMSAtMDcwMAorY29tbWl0IGNlOTYwMDM2MWU2NjVkZGUxN2FmOWQ4YWIxNmQ3Y2U4NWRjMDU2NDMKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBNYXIgMiAyMTozOTo1NSAyMDEyICswMTAwCiAKLSAgICBmaXggd2hlcmUgYXJndW1lbnRzIGFyZSBzZXQKKyAgICBkb3QzU3RhdHNUYWJsZSBoYXMgYnVncyA6LSgKIAotY29tbWl0IDNiMzc4MGJjYTlhZGVlYmY0ZWY3NTA4YWVlNmI4ZWJjYjk0ZjY1NmMKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBBdWcgNCAwOToyMDo0MCAyMDExIC0wNzAwCitjb21taXQgZGZmYWNmNmZhMDc1NWUxNzAwY2JhYzI1Yjg0NDE4NWFiZDgwN2EwYQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIE1hciAyIDIxOjM4OjEwIDIwMTIgKzAxMDAKIAotICAgIHNwbGl0IG5zc2ZwYXRjaGFwcGx5IGludG8gdHdvIHBhcnRzOiBhcHBseSBhbmQgY29tbWl0aW5nCisgICAgcGFzc3BlcnNpc3QgdGVzdCBuZWVkcyAvdXNyL2Jpbi9wZXJsCiAKLWNvbW1pdCAwNDIyNTE0YTYyYmNhYWU2MDA1MDE3ZDdlOWVkNDg1MDc1ZmU3MDFjCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgQXVnIDQgMDk6MTU6MjUgMjAxMSAtMDcwMAorY29tbWl0IDg3MjY5OTVjN2E4YWVmNjc0YzRmMTY0YjE4NzFjMzdiYmRjZGFkNTAKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBNYXIgMiAyMTozNjo1OCAyMDEyICswMTAwCiAKLSAgICBwYXRjaCB1c2luZyAtTgorICAgIGdyZXAgLXcgZmFpbHMgd2l0aCBPcGVuQlNEIGFuZCBTb2xhcmlzIDEwLTY0CiAKLWNvbW1pdCBkYzc1NWE2YWViOWI5Yzg4OTcyN2Q5ZmM4NDJmYzg5ZjcyOWU2ZWMwCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgQXVnIDQgMDg6MzM6MjUgMjAxMSAtMDcwMAorY29tbWl0IDFlYjQ3NDViMjNjYzNhODM5ODY0ZTdmNmVhMjgzNTViMDU2NmViNjcKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBNYXIgMiAyMTozNTo0OSAyMDEyICswMTAwCiAKLSAgICBhZGRlZCBzcGFjaW5nIHRvIG1hdGNoIHRoZSBsYXRlciBicmFuY2hlcworICAgIFNvbGFyaXMgbmVlZHMgL3Vzci94cGc0L2Jpbi9ncmVwIHRvIHVuZGVyc3RhbmQgLXEKIAotY29tbWl0IDdiNzI2ZTEwM2MxOTYwZjRjODYwMzg1OWM5YThkOGFhOGM0MDQ1MjAKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBBdWcgNCAwODozMjoyMyAyMDExIC0wNzAwCitjb21taXQgOTk1NGI0Yjc0MWZkOGM2M2Q2MTI4YmQwNTI3Mjk4YzhlNGU5ODlmYworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIE1hciAyIDIxOjM0OjQ1IDIwMTIgKzAxMDAKIAotICAgIHJlbW92ZWQgYWNjaWRlbnRpYWxseSBkdXBsaWNhdGVkIGNvZGUKKyAgICBNYWtlIHN1cmUgd2UgaGF2ZSB0aGUgcHJvcGVyIHNyY2RpciBmb3Igb3V0LW9mLXNvdXJjZSBidWlsZHMKIAotY29tbWl0IGVjYmFiMGE5OGEwMmZkZTZiYmNhN2RkMzcwYmNkOWMzY2E3NmFmZmUKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBBdWcgNCAwODoyNzo0MSAyMDExIC0wNzAwCitjb21taXQgNzgzNjkwMDJiZTI3MTFmMGFhODc2YjY0YTRlMTBiMDkwY2MyNDFjZAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIE1hciAyIDIxOjMzOjMxIDIwMTIgKzAxMDAKIAotICAgIG5zc3luYyBzdXBwb3J0cyAtLW1lcmdlIG5vdworICAgIE5vdCBhbGwgbWFrZSB2ZXJzaW9ucyBkZWZpbmUgJChSTSkKIAotY29tbWl0IDAwNzhlMjI0NzBlYjBmZGQ2ZGMwMmUyMDgxMzM1MWFjZGMxNTg5NjQKLUF1dGhvcjogR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEF1ZyA0IDA4OjIzOjIyIDIwMTEgLTA3MDAKK2NvbW1pdCA5NDI0NWIyOWEzY2RhODk0NzVjNmVhYjVkOTQ5M2M2NjU3ZmYzOGUzCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgTWFyIDIgMjE6MjQ6MjQgMjAxMiArMDEwMAogCi0gICAgQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM2MjIzMzogZnJvbSB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUgbm9pc2UKLSAgICAKLSAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKyAgICBNYWtlIGF1dG9jb25mIDIuNjggaGFwcHkKIAotY29tbWl0IGViNzhkYjJiNmUyNzc0YTQ0OTdkODc2OGMxMzhiNGYxNGM1ZjVhN2YKLUF1dGhvcjogR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEF1ZyA0IDA4OjE5OjE2IDIwMTEgLTA3MDAKK2NvbW1pdCA0NGFjZDZjMjg1ZmI1NjE0YjRjOTYxMWIxYWJkZWNhOWRkMjhlNGJiCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgTWFyIDIgMjE6MTI6NDcgMjAxMiArMDEwMAogCi0gICAgQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMwODogZnJvbSB5YWJlcmF1bmV5YTogRml4IGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgOS54IHdpdGggcmVjZW50IGhlYWRlciBzaHVmZmxpbmcKLSAgICAKLSAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKyAgICBGaXggc3BlbGxpbmcgb2YgbWliIG1vZHVsZSBmc3lzX2dldGZzc3RhdHMKIAotY29tbWl0IDgyMDRhNjRmMGZmMmY2OTQ1YzMyNGVlOWZjMWJlM2FmNmUxYjg1MGYKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBBdWcgNCAwODoxNToxNyAyMDExIC0wNzAwCitjb21taXQgMWZhMWZlZTM2OTNmNjdiODIwMjIzODA2YjNkNzNhZmQ0YzUwZWMxOAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgRnJpIE1hciAyIDAxOjM3OjIwIDIwMTIgKzAxMDAKIAotICAgIGFsbG93IG5zcm9sbHVwIHRvIHRha2UgYSAtLW1lcmdlIGZsYWcgZm9yIG1lcmdpbmcgaW5zdGVhZCBvZiByZWJhc2luZworICAgIFNpbGVuY2UgYSBjbGFuZyB3YXJuaW5nLgogCi1jb21taXQgOTlmNjM2MDI5NmQ0NDU5YWY5OWFmZmZmYWM4OTcwOGE1ODFjM2NlMAotQXV0aG9yOiBTYWNoaW4gU3VyZW5kcmFuIDxzYWNoaW5zdXJlbmRyYW5AdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgQXVnIDQgMDg6MTI6MDkgMjAxMSAtMDcwMAorY29tbWl0IDkzMjYzYjk4YTVkYjM0NGNmMmM0ZDQ4OWM0Mzk3MWU3YjI5Y2RiMDMKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWFyIDEgMTM6Mzc6MjAgMjAxMiArMDAwMAogCi0gICAgQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5Ci0gICAgCi0gICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKIAotY29tbWl0IGY3YTg4YmM2ZjczOGY3N2NiOWM0MzA4MWUxZjYyZjI3ZTNiNmVmOTgKLUF1dGhvcjogR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEF1ZyA0IDA4OjA5OjE4IDIwMTEgLTA3MDAKK2NvbW1pdCA1YTE3NTQyOGI5NzNkMmVhODU1M2UyOWZlY2Y5NGNmMTU2NmFhODU4CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IE1hciAxIDExOjQ4OjE4IDIwMTIgKzAwMDAKIAotICAgIENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMjg6IGZyb20geWFiZXJhdW5leWE6IEFkZCBGcmVlQlNEIDkueCB0byBzdXBwb3J0ZWQgT1NlcyBsaXN0Ci0gICAgCi0gICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKIAotY29tbWl0IGU3ZGQxYzQzN2FmZTZlMjZhNTVhYTc3MmQ0NjgwMTI2NTU3NDFkMzEKLUF1dGhvcjogR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEF1ZyA0IDA4OjIzOjIyIDIwMTEgLTA3MDAKK2NvbW1pdCAzNjQyNzZhMWM1YWE2NmNhYTIzZWI1YjdmMTExZmRlYjVhZjcxZmE3CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IE1hciAxIDExOjQ1OjEwIDIwMTIgKzAwMDAKIAotICAgIENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzNjIyMzM6IGZyb20geWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlIG5vaXNlCi0gICAgCi0gICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisgICAgbWFrZSBkZXBlbmQgZm9yIDUuNS4yLnByZTEKIAotY29tbWl0IGM1M2Q4YzM1MjVmNTkwZjIyMTNkMzViMGRhOTQxMjM4NjJmM2UzNjYKLUF1dGhvcjogR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEF1ZyA0IDA4OjE5OjE2IDIwMTEgLTA3MDAKK2NvbW1pdCA3MzU5ODM0MDE3MmVmZjc1NzI5YTZkNTcxOTJiODE3MWQ1YmJmMDBlCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IE1hciAxIDEwOjQyOjU2IDIwMTIgKzAwMDAKIAotICAgIENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMDg6IGZyb20geWFiZXJhdW5leWE6IEZpeCBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDkueCB3aXRoIHJlY2VudCBoZWFkZXIgc2h1ZmZsaW5nCi0gICAgCi0gICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisgICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5wcmUxCiAKLWNvbW1pdCAzYjhjOGI4NTA4NWFhZTJkMWExYzdjYTM1ZTdkMDY2ZDNkNzRmYTlmCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgQXVnIDQgMDg6MTU6MTcgMjAxMSAtMDcwMAorY29tbWl0IGYzMjE0NDAyNjcyY2ExOTlmZDUzMWU2NjEyMmJmOTZjNGQ5YTRlYjcKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWFyIDEgMTA6NDI6MzkgMjAxMiArMDAwMAogCi0gICAgYWxsb3cgbnNyb2xsdXAgdG8gdGFrZSBhIC0tbWVyZ2UgZmxhZyBmb3IgbWVyZ2luZyBpbnN0ZWFkIG9mIHJlYmFzaW5nCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKIAotY29tbWl0IDcxMDBhZWRmZmQ5OGNkYTRiMDUxNjRiY2NmMTc4NzYwMjAxOTZlNzkKLUF1dGhvcjogU2FjaGluIFN1cmVuZHJhbiA8c2FjaGluc3VyZW5kcmFuQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEF1ZyA0IDA4OjEyOjA5IDIwMTEgLTA3MDAKK2NvbW1pdCAyZTc0YWNiNmYxOWU0NzI5Y2VkZTBhYjQzZTkzMTk2MWNiMjNhYWVhCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBUaHUgTWFyIDEgMDk6MTg6MzkgMjAxMiArMDEwMAogCi0gICAgQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5Ci0gICAgCi0gICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisgICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IERvIG5vdCBpbnN0YWxsIHRoZSB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMgdGhhdCB3ZXJlIHJlbW92ZWQgaW4gNS43CiAKLWNvbW1pdCBkMmM0NzY4YmQyZWZiNDg2NjQ0MzRhODMxNDI1YzJkZGE4NWQ3MTMzCi1BdXRob3I6IEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBBdWcgNCAwODoyMzoyMiAyMDExIC0wNzAwCitjb21taXQgYjcxMDk2NDZiOTVhNzA3MTNkMWFkOTkxZDQxYmNjZDU3YzBiYjNlYgorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgVGh1IE1hciAxIDA4OjQ4OjQ4IDIwMTIgKzAxMDAKIAotICAgIENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzNjIyMzM6IGZyb20geWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlIG5vaXNlCi0gICAgCi0gICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisgICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IEluc3RhbGwgdXRpbF9mdW5jcyBzdWJoZWFkZXJzIGludHJvZHVjZWQgaW4gNS42CiAKLWNvbW1pdCBkMTliOGZjYTIzODQwNzdmNzMyYTMwZjI5NDZhYjBjMDNiYzBlNzM4Ci1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgQXVnIDQgMDg6MTU6MTcgMjAxMSAtMDcwMAorY29tbWl0IDQzMmNiYjdhNTUwMWFiOTBkNjZkMGE4M2U3MzFlNzM0M2JjMDRiMzcKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBGZWIgMjUgMTA6MTM6MTUgMjAxMiArMDEwMAogCi0gICAgYWxsb3cgbnNyb2xsdXAgdG8gdGFrZSBhIC0tbWVyZ2UgZmxhZyBmb3IgbWVyZ2luZyBpbnN0ZWFkIG9mIHJlYmFzaW5nCisgICAgQ29ycmVjdCB0eXBvcwogCi1jb21taXQgMGU2ODQyZmUwODBjZWM4NTNiMDhjZDIzMjMwMTVhYmFiYzM4MWNlMQotQXV0aG9yOiBTYWNoaW4gU3VyZW5kcmFuIDxzYWNoaW5zdXJlbmRyYW5AdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgQXVnIDQgMDg6MTI6MDkgMjAxMSAtMDcwMAorY29tbWl0IDZhNmM5YmJjNzU4NGYxOTZhMTE4NWNjMTkzNTIwNGYxMjA2ODExZWQKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFdlZCBGZWIgMjkgMDg6NTU6MzUgMjAxMiArMDEwMAogCi0gICAgQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5Ci0gICAgCi0gICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisgICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IEluc3RhbGwgdXRpbF9mdW5jcyBzdWJoZWFkZXJzCiAKLWNvbW1pdCBlZmEzMTM1YTI1MGFlMWZmZjMwODQ5NmQyMmU3NzgyYWJjMGMzOTFlCi1BdXRob3I6IEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBBdWcgNCAwODowNDoyNyAyMDExIC0wNzAwCitjb21taXQgZDUxNWUyYTZlNGMyYTFjNGQ4NDczNGNjN2IyZDBiMmZjNWE4OTRhZAorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBGZWIgMjggMTU6NTY6MjEgMjAxMiArMDAwMAogCi0gICAgQ0hBTkdFUzogYnVpbGRpbmc6IFBBVENIIDMzODM5NTE6IGZyb20geWFiZXJhdW5leWE6IEZpeCAtV3VudXNlZCBjb21waWxlIHdhcm5pbmdzIHdpdGggRnJlZUJTRC9OZXRCU0QKLSAgICAKLSAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKyAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ4NzkxOTogRml4IGNvbXBpbGF0aW9uIHdoZW4gY2FjaGluZyBpcyBkaXNhYmxlZAogCi1jb21taXQgMjU5ODhiZTgzNjkyNGEzMzAyMDExM2M5NGFhMDI2MTRkMWRiZjFiZQotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEF1ZyA0IDA3OjM2OjM2IDIwMTEgLTA3MDAKK2NvbW1pdCBhZjgzNjhlZDg4OThhNzhkMDg2OGI0N2FmNDZiYzlkYjA3ZDFjNzY0CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIEZlYiAyOCAxNTo1MDo1NiAyMDEyICswMDAwCiAKLSAgICBhdXRvY29uZgorICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDM0MTQ3NzM6IEVuY29kZSBpbnRlZ2VyIHZhbHVlIHVzaW5nIEFTTl9JTlRFR0VSCiAKLWNvbW1pdCA0ZGI2YjY0NTA5ZGMzNTA4MzlkNTk2ZTMyNTA0YjJkODBjYTBjN2IwCi1BdXRob3I6IEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBBdWcgNCAwNzozNjoxMCAyMDExIC0wNzAwCitjb21taXQgMTllMjcxNTgwN2ZlMDZmZDBiYWVkZjg4MTY1MDExYWVlOTMzZTc1NQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBGZWIgMjggMTQ6MDU6MzQgMjAxMiArMDAwMAogCi0gICAgQ0hBTkdFUzogYnVpbGRpbmc6IFBBVENIIDMzODM5NDk6IGZyb20geWFiZXJhdW5leWE6IEZpeCBhdXRvY29uZiB0ZXN0cyBmb3Igc3lzL21idWYuaAotICAgIAotICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorICAgIENIQU5HRVM6IG1hbjogQlVHUzogMzQ5MDcwODogQ2xhcmlmeSB1c2Ugb2YgY29tbW9uIGNvbW1hbmQtbGluZSBvcHRpb25zCiAKLWNvbW1pdCBmM2JjNTUxODRkOTZjNThkY2ZkNTg5NTM3OTZjMTBmNzM1NGRkNGE3Ci1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgQXVnIDQgMDY6NTQ6MjIgMjAxMSAtMDcwMAorY29tbWl0IDY1Zjc5NjJmOTMyYzliNzVjNWJiYmIwNDdkMWUyNmFlNjA5NzhlNTMKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgRmViIDI4IDEyOjIzOjM0IDIwMTIgKzAwMDAKIAotICAgIHByb21wdCBmb3IgcGF0Y2ggYW5kIGFuIGFyZWEsIGFuZCB1c2UgdGhlIHByb3BlciBDSEFOR0VTIGxpbmUgZm9ybWF0CisgICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDM0ODk2MzE6IEZpeCBpbmNvcnJlY3QgaGFuZGxpbmcgb2YgVUNEIG1vbml0b3JpbmcgZmxhZwogCi1jb21taXQgYWQ2OTZiYTEyNDlkM2M0YmMxMmMwZWIzODQ4MWZmMGZjNDMzZjhhMQotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEF1ZyA0IDA2OjQyOjQyIDIwMTEgLTA3MDAKK2NvbW1pdCBhYzE2NjA1MWI2YTA5MmRkNGE1OTQzMjZlYzg1ZTJmNjk5YjYyNTQ3CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIEZlYiAyOCAxMTo1Nzo0MSAyMDEyICswMDAwCiAKLSAgICBVc2UgZmV0Y2ggLS1hbGwgYW5kIHJlYmFzZSBhcyBzdWdnZXN0ZWQgYnkgQmFydCBmb3Igc3BlZWQgaW1wcm92ZW1lbnRzCisgICAgQ0hBTkdFUzogdGVzdGluZzogQlVHUzogMzQ3NDU5MDogRG9uJ3QgbWF0Y2ggdW5kZXJzY29yZXMgd2l0aGluIHRoZSBzb3VyY2Ugcm9vdCBmaWxlbmFtZQogCi1jb21taXQgNDQ5NjliNGU1N2MyNzE5NGU1YmQzNTdiYzQ1Mjc1ZmViODY5NWQyMgorY29tbWl0IDg3OWJmNzA3OWQzNGZhNDZmNmZjZjU0YTAxYzg1MDBiZWFlY2U1OWEKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgRmViIDI4IDEwOjQ0OjQxIDIwMTIgKzAwMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAzNDYwMzY0OiBGaXggdXNlIG9mIGJsb2NrIGZhY3RvciB3aGVuIGRldGVjdGluZyBlcnJvciBjb25kaXRpb25zCisKK2NvbW1pdCAwMzRmMWM1NzJmNjgzZWE0Mjg1ODMwNzQ0NzFlNWQ1ZDEzYjUxODM3CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIEZlYiAyOCAxMDoyMjoyMCAyMDEyICswMDAwCisKKyAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbmZpZ3VyZWQgdXNpbmcgLS1lbmFibGUtcmVhZC1vbmx5CisKK2NvbW1pdCAzNjQyM2UyMTBiZmI2NWVmMTIxYzZhNjZhZWM0MzhjN2MyMzdkM2RmCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIEZlYiAyOCAxMDowMzoyNSAyMDEyICswMDAwCisKKyAgICBDSEFOR0VTOiBCVUc6IDM0NTQxNjg6IGNvbmZpZ3VyZTogRml4IGJ1aWxkaW5nIHdpdGggLS1lbmFibGUtcmVhZC1vbmx5CisKK2NvbW1pdCBlZWQwYmNiYzQzZmVhMTgyNTlmMGY2M2IyMDgxYjZkMTA1MzVhMDUyCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIEZlYiAyOCAwOToyNzoxMSAyMDEyICswMDAwCisKKyAgICBTa2lwIFNFVC1iYXNlZCBiYWJ5LXN0ZXBzIHdoZW4gY29tcGlsZWQgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQuCisgICAgSW5zcGlyZWQgYnkgYnVnICMzNDU0MTY4CisKK2NvbW1pdCBlYzZhMjMwMzBlNWEyMDcyYzE5YzE4YzFkOWMxMjQzODdkYTU2YjdiCiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgotRGF0ZTogICBGcmkgSnVsIDggMjA6NTI6MjUgMjAxMSArMDIwMAorRGF0ZTogICBNb24gRmViIDI3IDE4OjQyOjU4IDIwMTIgKzAwMDAKIAotICAgIENIQU5HRVM6IFdpbjMyOiBGaXggdGhlIGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgd2luRXh0RExMIHNvdXJjZSBjb2RlIGFuZCB0aGF0IGFyZSB0cmlnZ2VyZWQgYnkgdGhlIGNoYW5nZSBvZiB0aGUgIm9pZCIgdHlwZWRlZiBmcm9tIHVpbnQzMl90IHRvIHVfbG9uZy4KKyAgICBBZGQgLWxydCB0byBORVRTTk1QTElCUyBzdWNoIHRoYXQgY2xvY2tfZ2V0dGltZSgpIGNhbiBiZSBmb3VuZAogCi1jb21taXQgZWE1OGI2N2I0ZjMxOGFjZjFmOWU4NTI1ODJiY2NhZDQ3YjRkOGU2NworY29tbWl0IGYxMzMyMDUwMDI5NGJiMjQwZjYzYzZkZDdkMmU5YTIyMDhlYjc0MGQKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gRmViIDI3IDE2OjUyOjUxIDIwMTIgKzAwMDAKKworICAgIFNraXAgU0VULWJhc2VkIHRlc3RzIHdoZW4gY29tcGlsZWQgdXNpbmcgLS1kaXNhYmxlLXNldC1zdXBwb3J0CisKK2NvbW1pdCBjNDI3NmI2MjMyYzI5MTQ1YzAzOTg4NGU2YjVhNmI2ZGE0YjkzODM3CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIEZlYiAyNyAxNTo1NDo0NSAyMDEyICswMDAwCisKKyAgICBPbWl0IFNFVC1yZWxhdGVkIGNvZGUgd2hlbiBjb21waWxpbmcgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQgKGluc3BpcmVkIGJ5IHBhdGNoICMzNDI0OTMwKQorCitjb21taXQgMDFjOTMwZWRjYzI1NzAwZDZiNWZiMDM3NmY1NWEyNjQyNWUxM2ZiMAorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBGZWIgMjcgMTU6MTc6MjIgMjAxMiArMDAwMAorCisgICAgT21pdCBTRVQtcmVsYXRlZCBjb2RlIHdoZW4gY29tcGlsaW5nIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0CisgICAgKGluc3BpcmVkIGJ5IHBhdGNoICMzNDI0OTMwKQorCitjb21taXQgOTQ4NGQ4MzIwM2M0ZTJkODIwNDE2YmU2NjVmYTgzM2FhNzA0NDRkMgogQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KLURhdGU6ICAgRnJpIEp1bCA4IDIwOjUyOjI1IDIwMTEgKzAyMDAKK0RhdGU6ICAgRnJpIEZlYiAyNCAxNDowMDozMiAyMDEyICswMTAwCiAKLSAgICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBJbnZva2UgU25tcFV0aWxPaWRGcmVlKCkgYmVmb3JlIFNubXBVdGlsT2lkQ3B5KCkuIEl0J3Mgbm90IGNsZWFyIHlldCB3aHkgdGhlIG9yaWdpbmFsIGNvZGUgZGlkIG5vdCBtYWtlIHNubXB3YWxrIHRyaWdnZXIgYSBtZW1vcnkgbGVhay4KKyAgICBSZXdvcmsgY29tbWl0IGI0YTE5NTA1YTA1ODE2ZTk0ZTAxZGU5N2JmOTlhYzM3ZmNkYzZkMjMuCiAKLWNvbW1pdCA4YTAxZWM2NDIzZDQwMGM0YTEzY2NhYzY4YTM3OTFkMDIxOGEwODg1Citjb21taXQgMmI3ZjEzNDk1MjI4NjM1ZDgxNmU1OGIyMTc0ZGMxMjRkZDBjZjM5ZgorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEZlYiAyNCAwNzo0MzoyMiAyMDEyIC0wODAwCisKKyAgICBzZXQgTUVSR0VfQVVUT0VESVQgYmVmb3JlIG1lcmdpbmcgdG8gYXZvaWQgdGhlIGZ1dHVyZSBnaXQgMS43LjEwIGZvcmNlZCBtc2cKKworY29tbWl0IGUxYjkxMGIwYmU5MzQzNTg2YWU5ZWRiYTZmNDYwNDBhZjMxNWZjZGQKIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIFRodSBBdWcgNCAxMToxOToxNyAyMDExICswMjAwCitEYXRlOiAgIFRodSBGZWIgMjMgMTA6Mjc6NTQgMjAxMiArMDEwMAogCi0gICAgQ0hBTkdFUzogV2luZG93czogTWFrZSBsaW5raW5nIHdpdGggcmVjZW50IE9wZW5TU0wgYmluYXJpZXMgc3VjY2VlZC4KKyAgICBDSEFOR0VTOiBzbm1wZDogaW5pdF9hZ2VudCgpICsgaW5pdF9rbWVtKCk6IFJldHVybiBhbiBlcnJvciB2YWx1ZSBpbnN0ZWFkIG9mIGludm9raW5nIGV4aXQoKSBpZiBhY2Nlc3MgdG8ga2VybmVsIHZpcnR1YWwgbWVtb3J5IGlzIGRlbmllZAogCi1jb21taXQgZTIxZWVmMmZjNWNmZGMxMjAwNDc5MTE4YTJjNWIyOWE3MGIwZGY2MAorY29tbWl0IDQ2M2VlZDIxMjBmOWQxOTFiYzIyNjczNDk2YTQ5ZTgxNzQ2NjRlNGIKIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIFRodSBBdWcgNCAwODo1Mjo0MyAyMDExICswMjAwCitEYXRlOiAgIFRodSBGZWIgMjMgMTA6MDM6MzEgMjAxMiArMDEwMAogCi0gICAgQ0hBTkdFUzogYWdlbnQ6IEF2b2lkIHRoYXQgYSBNSUIgd2FsayBvbiB0aGUgaG9zdCByZXNvdXJjZXMgTUlCIHRyaWdnZXJzIGEgY3Jhc2ggb24gRmVkb3JhIDE1CisgICAgUmVtb3ZlIG9ic29sZXRlIHN5bWJvbCBORVRTTk1QX0VYSVRfT05fQkFEX0tMUkVBRAogCi1jb21taXQgYjA1NmVlNmViNTM5MDlhZDA0ZjE2ZWMyNmQyNjkwZDdhMDgzMTkyYQorY29tbWl0IGMzNmFiNzFhNGUwOTZmMTZjYzVhNTU1MzNmMDgwYzlhOTQwMDk5MTQKIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIFRodSBBdWcgNCAwNzo1OTowNCAyMDExICswMjAwCitEYXRlOiAgIFRodSBGZWIgMjMgMDg6NTM6NTYgMjAxMiArMDEwMAogCi0gICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBpbiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmMKKyAgICBDSEFOR0VTOiBGcmVlQlNEOiBzbm1wZCArIGFwcHM6IFNlbmRpbmcgVURQIHBhY2tldHMgd29ya3MgYWdhaW4gZm9yIG5vbi1yb290IHVzZXJzCiAKLWNvbW1pdCAxNzFmOTU4MGZmZmE2MDQxYWZjODYyZWY5NDQwZDk0OWYwYWE3OWJmCitjb21taXQgZWRlYmRkYmE5MzBmOGIxNDcyZmEwYmQyMGZjNDEzZWY4Y2Y0NjRhMgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIEZlYiAyMSAxMTozMTo0NiAyMDEyICswMTAwCisKKyAgICB0ZXN0aW5nL1JVTlRFU1RTOiBGaXggYSBiYXNoaXNtCisKK2NvbW1pdCBiNGExOTUwNWEwNTgxNmU5NGUwMWRlOTdiZjk5YWMzN2ZjZGM2ZDIzCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gRmViIDIwIDE2OjU4OjQ3IDIwMTIgKzAxMDAKKworICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCAlbGQgdmVyc3VzIHRpbWVfdCBvbiBzeXN0ZW1zIHdoZXJlIHRpbWVfdCBpcyBhIHN5bm9ueW0gZm9yIGxvbmcgbG9uZyBpbnN0ZWFkIG9mIGxvbmcuCisKK2NvbW1pdCBkODk3OGVjYzgyMTFiZTdjMWU3OTA1ZjFlMjE1YmIwNmRlZDI2NmI2CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgRmViIDIxIDEyOjMyOjI1IDIwMTIgKzAxMDAKKworICAgIEZpeCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYyBmaWxlIGhlYWRlcgorCitjb21taXQgYWE3NjZkMTk2ZTUyODdmNmNhNzliNThhMzQ1YjAyNDI2MGFiYTM1NAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIEZlYiAyMCAxNzowNzoxMyAyMDEyICswMTAwCisKKyAgICBJRi1NSUI6IGRvIG5vdCB0cmlnZ2VyIHVuZGVmaW5lZCBiZWhhdmlvciAoPj4gMzIgb2YgYSAzMi1iaXQgdmFyaWFibGUpIHdoZW4gdXBkYXRpbmcgYSBjb3VudGVyIGFuZCBpZmlfaXBhY2tldHMgaXMgYSAzMi1iaXQgdmFyaWFibGUKKworY29tbWl0IGMzZmI2ZGQ5ZTZiOTllOTU0MjQ5MzE4ODk4Nzg3MWZjNTAxN2NiM2MKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBGZWIgMjMgMDk6NDU6NDUgMjAxMiArMDEwMAorCisgICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBvbiBzeXN0ZW1zIHdoZXJlIG1vZGVfdCBpcyB1bnNpZ25lZAorCitjb21taXQgZjhhM2VmMGQzZDRlNTMwMjc5OTAwMTAxMDQ5YjhkZTk4YTQ0YTZmYgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIEZlYiA2IDE0OjQ4OjUyIDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBsaWIgKyBzbm1wZCArIHNubXB3YWxrOiBBdm9pZCB0aGF0IHN5c3RlbSBjbG9jayBjaGFuZ2VzIChlLmcuIGJ5IG50cGQpIGFmZmVjdCBjb2RlIHRoYXQgbmVlZHMgcmVsYXRpdmUgdGltZQorICAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHN1cmUgdGhhdCB0aGUgcmFuZ2Ugb2YgdGhlIFNOTVB2MyB2YXJpYWJsZSBzbm1wRW5naW5lVGltZSBpcyAwLi4yMTQ3NDgzNjQ3IG9uIGFsbCBzdXBwb3J0ZWQgc3lzdGVtcyBpbnN0ZWFkIG9mIDAuLjQyOTQ5NjcyIG9uIHNvbWUgc3lzdGVtcyAoaS5lLiB3cmFwYXJvdW5kIGFmdGVyIDQ5NyBkYXlzKQorICAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soKSwgbmV0c25tcF9zZXRfbW9ub3RvbmljX21hcmtlcigpLCBuZXRzbm1wX3JlYWR5X21vbm90b25pYygpLCBuZXRzbm1wX2dldF9hZ2VudF9ydW50aW1lKCkKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBEZXByZWNhdGUgYXRpbWVfZGlmZigpLCBhdGltZV9uZXdNYXJrZXIoKSwgYXRpbWVfcmVhZHkoKSwgYXRpbWVfc2V0TWFya2VyKCksIG1hcmtlcl90dGlja3MoKSwgbmV0c25tcF9tYXJrZXJfdXB0aW1lKCksIG5ldHNubXBfdGltZXZhbF91cHRpbWUoKSwgdGltZXZhbF90dGlja3MoKSwgdWF0aW1lX2RpZmYoKSwgdWF0aW1lX2hkaWZmKCkgYW5kIHVhdGltZV9yZWFkeSgpLgorICAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZSB0aGUgbmFtZXMgb2YgdGhlIHN0cnVjdCB0aW1ldmFsIG1lbWJlcnMgb2YgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgd2VyZSB1c2VkIHRvIHN0b3JlIGEgd2FsbCBjbG9jayB0aW1lIGJ1dCB0aGF0IGRvIG5vdyBjb250YWluIGEgbW9ub3RvbmljIGNsb2NrIHZhbHVlCisKK2NvbW1pdCBjMTk3NjBmMzMzM2M5MmZhYzVkNTBlOTc2OGNkZjkzOTIxOGJjNDg3CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgRmViIDE1IDA5OjQ1OjAzIDIwMTIgKzAxMDAKKworICAgIHNubXBsaWIvc25tcHYzLmM6IEZpeCBzb3VyY2UgY29kZSBpbmRlbnRhdGlvbgorCitjb21taXQgYTZkYjIzOTk0NWUxOTVkZTVhOTBmYTE4MzcwMGIyN2E2ZWNiMjhkMworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEZlYiA3IDAwOjExOjE0IDIwMTIgKzAxMDAKKworICAgIEZpeCBwb3NzaWJsZSBtZW1vcnkgbGVhayBmcm9tIHJlY2VudCBkZWNsYXJhdGlvbnMgcGF0Y2gKKworY29tbWl0IDBmYmJiOWE5ZTI5MDZhN2FmOTU2OTU3MDYxZDQ4NTg3NDQ2MmFlYTkKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBGZWIgNiAyMDo0MzowNCAyMDEyICswMTAwCisKKyAgICBEbyBub3QgbWl4IGRlY2xhcmF0aW9ucyBhbmQgc3RhdGVtZW50cworCitjb21taXQgZjMwOGQ1YmFmYjA1ZDc4ZWQ0MDMwYzRlY2ZmMzI0YjZjYmRhNjgwZgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIEZlYiA2IDE1OjI1OjMwIDIwMTIgKzAxMDAKKworICAgIEZpeCB0d28gY29tcGlsZXIgd2FybmluZ3MgaW4gYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMKKworY29tbWl0IDQ2ZjBmYzFiN2ZjMjZhMjI1NzYzYmM2NWNjYTUyMGExYzU5ZjAyNTEKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBGZWIgNiAyMDo1NDozMiAyMDEyICswMTAwCisKKyAgICBzZW5kbXNnIGRvZXMgbm90IGxpa2UgSVBfU0VORFNSQ0FERFIgaWYgYWRkciBpcyBJTkFERFJfQU5ZCisKK2NvbW1pdCBkZWJhYzQ5OGZlODQxMDExMDEwN2EyZmU2NGY4YWZiNzQ4ZWRhYTA3CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEZlYiA2IDE2OjQ4OjA5IDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IGFkZGVkIE9DRlMyIChPcmFjbGUgQ2x1c3RlciBGUykgdG8gaHJTdG9yYWdlVGFibGUgYW5kIGhyRlNUYWJsZQorCitjb21taXQgZmFmYzk5Y2Q4OWU3M2VjN2UwMGJmNzM2MGQwYjRmYTYxOTQ0YTRmNAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIEZlYiA2IDExOjE4OjM0IDIwMTIgKzAxMDAKKworICAgIFNpbXBsaWZ5IGNhbGN1bGF0ZV90aW1lX2RpZmYoKSBhbmQgY2FsY3VsYXRlX3NlY3RpbWVfZGlmZigpCisKK2NvbW1pdCA3YWYyMDEzZGU4YmYxYjM3OWMwNzZkYjRlMTA0NTA4ZTE3ODc0ZDNlCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gRmViIDYgMTQ6NTU6NTggMjAxMiArMDEwMAorCisgICAgRml4IG9yZGVyIG9mIGZlYXR1cmUgI2lmbmRlZiBhbmQgRG94eWdlbiBjb21tZW50IGJsb2NrCisKK2NvbW1pdCBiYmQ2N2Y2MzUzMGY1ZWYwYmZjOTQ4ZmM1OGRmZTZhOTNmOGY4Njc5CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gRmViIDYgMTU6MjU6MzAgMjAxMiArMDEwMAorCisgICAgRml4IHR3byBjb21waWxlciB3YXJuaW5ncyBpbiBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYworCitjb21taXQgNDJhNjZhZWZmMjViOWU5ZWY2MzVhNDA0YWQyZjUyMTJmOWU4Y2YwZAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIEZlYiA2IDE0OjQ3OjU0IDIwMTIgKzAxMDAKKworICAgIFJlbmFtZSB0d28gZnVuY3Rpb24gYXJndW1lbnRzCisKK2NvbW1pdCAzZmU3MmIzYjk5YjdlNGIyYjk4MjM2M2RmYzRmMmQ4ZDEzZjQwNTkyCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gRmViIDYgMTM6NDk6MjIgMjAxMiArMDEwMAorCisgICAgQ29udmVydCBzbm1wX3NlbGVjdF9pbmZvKCkgZG9jdW1lbnRhdGlvbiB0byBEb3h5Z2VuIGZvcm1hdAorCitjb21taXQgZTlkYjI2NmFlNDhkMDVhN2E2Y2I1ZDcxYjRiZGVhN2FkODA4ZWY1ZQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIEZlYiA2IDExOjE3OjU3IDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBBZGQgbmV0c25tcF9nZXRfbmV4dF9hbGFybV90aW1lKCkKKworY29tbWl0IGQwODA0NGNiOWU1NzAyZmJmNTQ5ZTE0NDI1ZjQyNzk0MjU5ZDhhMjEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBGZWIgNiAwOTozODowNyAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogQWRkIG5ldHNubXBfZ2V0X2FnZW50X3J1bnRpbWUoKQorCitjb21taXQgYTA1YzI3YzI3MTFjYjQxNTgyYTNiNGMzMWUzOGIwZTkzNTMwYjYyZAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIEZlYiA2IDE0OjUxOjMzIDIwMTIgKzAxMDAKKworICAgIEZpeCBzcGVsbGluZyBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQKKworY29tbWl0IDkxMGQ3YjBkOTkxODM2MDliOTUyOWIwNGMzZjI5MzMwZWI2NjEwMjEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBGZWIgNiAxNDozODoxMiAyMDEyICswMTAwCisKKyAgICBSZXBsYWNlIG5ldHNubXBfdGltZXZhbF91cHRpbWUoKSBieSBuZXRzbm1wX2dldF9hZ2VudF91cHRpbWUoKQorCitjb21taXQgNDNhODNmNmM2YTk2Y2MyMzE2YjcwZWVjYWNmMTI3ZWI2OTEzYzdhNworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIEZlYiA2IDExOjE5OjE1IDIwMTIgKzAxMDAKKworICAgIFVzZSB0aGUgYXNzaWdubWVudCBvcGVyYXRvciBpbnN0ZWFkIG9mIG1lbWNweSgpIGZvciBjb3B5aW5nIHN0cnVjdCB0aW1ldmFsCisKK2NvbW1pdCAyZmU1NzllZmIxY2IzYTc0ZjgyODAzY2EzMjM5MjhmNmI4ZTRiNWMwCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgRmViIDMgMTQ6MDQ6MDIgMjAxMiArMDEwMAorCisgICAgTWFrZSBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgYnVpbGQgYWdhaW4gb24gbm9uLUxpbnV4IHN5c3RlbXMuCisgICAgCisgICAgU2VlIGFsc28gY29tbWl0IDM0NWExZTQyNTQ4MTJjYjllZGMxZDI3NDQ5MWI3NjY4MWE5ZGJhMWUuCisKK2NvbW1pdCA4ODFkZTZhYjczNTUyNzdhNWMxMTZhMDA4ZmJlNTEzMjkzYjA1MDM5CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgRmViIDMgMTA6MDg6MjEgMjAxMiArMDEwMAorCisgICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgUm1vbiBNSUIgaW1wbGVtZW50YXRpb24KKworY29tbWl0IDQ2Mjk5MzNjMGQzYjNmOWY0YmE1ODM1MzRmNzlhMzdmYjk2MzM4MTcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBGZWIgMiAyMDowNTozMSAyMDEyICswMDAwCisKKyAgICBNb3JlIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXMKKworY29tbWl0IGU5YjVhM2RlZTZmOWFmYWI4YjkwYTI5MzkyMDQwNjMyYjA3NWFkN2EKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBGZWIgMiAxNjo1Njo1NSAyMDEyICswMTAwCisKKyAgICBVc2UgU05NUF9NSU4oKSBpbnN0ZWFkIG9mIG1pbigpCisKK2NvbW1pdCBhZTQ1MmM3N2I0MTExMzlkNmI1ODAwZmZjZjg4ZDQ4ZTliNDc5MmE4CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgRmViIDIgMTU6MjM6MzggMjAxMiArMDEwMAorCisgICAgUmVzdG9yZSBjb21taXQgZGJiODc5NWE3ZGY1OTVmMDYwM2YyZWM2MTcwNDc5OWY0YzQ4MjY2Ny4KKworY29tbWl0IGM3ZDExZmEwMGY5OTk1ZGRiOWZlM2Q0OTk0YTNlOTc5MGRhMmUxODkKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBGZWIgMiAxNToxODo0MCAyMDEyICswMTAwCisKKyAgICBSZXN0b3JlIGNvbW1pdCBkYmI4Nzk1YTdkZjU5NWYwNjAzZjJlYzYxNzA0Nzk5ZjRjNDgyNjY3IHBhcnRpYWxseS4KKworY29tbWl0IDAwZmQ2MjcyMGVjNDU0ZjVhNjkwZGU0ZmViYTA4MjIzY2ZiMmMzZjgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBGZWIgMiAxNDo0ODo0NCAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEF2b2lkIGNyYXNoIGR1cmluZyBzaHV0ZG93biBkdWUgdG8gaW52b2tpbmcgcGVybF9kZXN0cnVjdChOVUxMKQorCitjb21taXQgZDllMjI5ZDgxYWJlYWYxOTFlZjJjY2IwNzc4NDI4ODVjMjMwZDYyMgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEZlYiAyIDE0OjQ3OjQxIDIwMTIgKzAxMDAKKworICAgIFJlbW92ZSBhIHN1cGVyZmx1b3VzIGRlY2xhcmF0aW9uCisKK2NvbW1pdCAxZTJlMmFmNmNhZTgzMGYzODFlODdhMjQ0ZDAyOWViODZiZjNmY2NlCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgRmViIDIgMTM6MjA6MzcgMjAxMiArMDEwMAorCisgICAgcGVybC9TTk1QL2V4YW1wbGVzL3BpbmdtaWIucGw6IEFkZCBlcnJvciBjaGVja2luZworCitjb21taXQgMjQxYTE0MWUzMWYxNjg0ZmM2Y2Y3MGNjNGEwMGNjZTYzNmZkMzUyNgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEZlYiAyIDExOjI4OjM3IDIwMTIgKzAxMDAKKworICAgIE1ha2UgY29uZmlndXJlLXRpbWUgRVZQX01EX0NUWF9jcmVhdGUoKSBkZXRlY3Rpb24gd29yayBvbiB0aGUgNS40IGJyYW5jaC4KKyAgICAKKyAgICBTZWUgYWxzbyBjb21taXQgNDZlYWMwMmU5YTI3YmY0ZjMwNjhlNzk1Y2FiODkxZjA1YTg0ODg3MC4KKworY29tbWl0IDZkOWQxNGZlYWFhMmQwZmVjNjhiNGQxNTg5NDRkMzJjYjA0ZmYxYmMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBGZWIgMiAxMToxMjowMCAyMDEyICswMTAwCisKKyAgICBSZXZlcnQgdGhlIGNoYW5nZXMgdGhhdCBicmVhayB0aGUgYnVpbGQgb24gdGhlIDUuNCBicmFuY2ggZnJvbSBjb21taXQgZGJiODc5NWE3ZGY1OTVmMDYwM2YyZWM2MTcwNDc5OWY0YzQ4MjY2Ny4KKworY29tbWl0IDhhYmU0OWUzMGM5N2M4OTgzZTgzYjQ1YTM1YzcxNmZlOTFmNjZiZWEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBGZWIgMSAxMTo1Njo1OCAyMDEyICswMTAwCisKKyAgICBGaXggc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBpbiB0aGUgRElTTUFOIE1JQiBpbXBsZW1lbnRhdGlvbnMuCisKK2NvbW1pdCBmOWZiMGE1MzMzNzVlMTRkYzM3MDAyNWEwYjJmYmM3NjFiZjI3YmU2CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgRmViIDIgMDk6NTY6MDIgMjAxMiArMDEwMAorCisgICAgUmV2ZXJ0ICJIT1NULVJFU09VUkNFU19NSUI6IGZpeCBhIGNvbXBpbGVyIHdhcm5pbmciIGJlY2F1c2UgaXQncyB3cm9uZy4KKyAgICAKKyAgICBUaGlzIHJldmVydHMgY29tbWl0IGFhNmI3OWJjMTI0YTdiN2E4ODVkN2U1MDM1YWIwNmFhM2VjZWY2MTMuCisKK2NvbW1pdCBjYTRhNGZlMjVlZmQyNzE0ZjhmMTk2MWI5Nzg1NjYxNjU2M2Y0MmM5CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgRmViIDIgMTA6MjE6NDkgMjAxMiArMDEwMAorCisgICAgLmdpdGlnbm9yZTogQWRkIHB5dGhvbi9idWlsZAorCitjb21taXQgMTNhZGE1NjU1OGI0NGUyOGQxMzU1YzBkY2UxZDkyMWYzNzQ2ZDU0OAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBKYW4gMjAgMTU6NTM6NDkgMjAxMiArMDEwMAorCisgICAgUmV2ZXJ0ICJSZXZlcnQgIkZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncyIiIC0gdGhlcmUgKmlzKiBORVRTTk1QX1BSSW8gaW4gVjUtNisgYnJhbmNoZXMKKyAgICAKKyAgICBUaGlzIHJldmVydHMgY29tbWl0IGFhNTI4YmQyMmM3NDkzY2E4ZDY3ZTY3OGZiZjYxNWNhMGY2M2VhNmQuCisKK2NvbW1pdCBhYTUyOGJkMjJjNzQ5M2NhOGQ2N2U2NzhmYmY2MTVjYTBmNjNlYTZkCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEphbiAyMCAxNDoxMzoxOCAyMDEyICswMTAwCisKKyAgICBSZXZlcnQgIkZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncyIgLSB0aGVyZSBpcyBubyBORVRTTk1QX1BSSW8gaW4gVjUtNCBvciBWNS01IGJyYW5jaGVzCisgICAgCisgICAgVGhpcyByZXZlcnRzIGNvbW1pdCAzOTBjMDExNGM4ZWMwYmRiMjdiMDhiNmY3NGUzZjZlZjNhNjI5ODFiLgorCitjb21taXQgMmZiOTliZTlhYTg2YTZjYTM0OWI4NmQ0ZWY4YmM3MjZlZDlmMmE4MgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6NTg6MzUgMjAxMiArMDEwMAorCisgICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCisKK2NvbW1pdCBlNWMzNTU4OWUwYmY0MTZiZmQwMzZiZDQ2OGY0MmFhZWFiMjVlNzg4CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEphbiAyMCAxNDo1NTo1NiAyMDEyICswMTAwCisKKyAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KKworY29tbWl0IDM0NWExZTQyNTQ4MTJjYjllZGMxZDI3NDQ5MWI3NjY4MWE5ZGJhMWUKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgSmFuIDIwIDE0OjUxOjI2IDIwMTIgKzAxMDAKKworICAgIEZpeGVkIGVycm9yIGhhbmRsaW5nIGluIGluaXRfaWNtcCgpLgorCitjb21taXQgYzMwMzU0OWE1OWZhOGMyZjIwYTlkOGJmMWU5ODVmYmM4YWJkZTZhOAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBKYW4gMjAgMTU6NDY6MjkgMjAxMiArMDEwMAorCisgICAgUmV3b3JrZWQgX3JlZ2lzdGVyX2V4dGVuZCgpIGVycm9yIGhhbmRsaW5nLgorCitjb21taXQgOWMyMGUyN2E3MDI2ZmMwMzBkYTNiMzI4YjlhMmUxYjRmMzY2NzBjZAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MjE6MjggMjAxMiArMDEwMAorCisgICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCisKK2NvbW1pdCAyMmZkMGJmYzJkZjBlMWY2MDIwZGMzYzUwYTc1M2RkZjI4YTQ1OTljCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEphbiAyMCAxNToyMDoyMiAyMDEyICswMTAwCisKKyAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KKworY29tbWl0IDVkNjFlNTdiYWY1ODBjNzgyNTJjMGFiYjAwOThjMDdiYjA1YWYxN2MKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgSmFuIDIwIDE1OjE3OjA1IDIwMTIgKzAxMDAKKworICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgorCitjb21taXQgM2MzZWVhZTgwZDc5NmYyNzU5N2M5MDFlN2ZmMjA0NmM3NjllZjRiOAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDg6MDkgMjAxMiArMDEwMAorCisgICAgTWFyayByb3dyZXFfY3R4IGFzIGZyZWVkIHNvIG5leHQgaXRlcmF0aW9uIGFsbG9jYXRlcyBuZXcgb25lIGluc3RlYWQgb2YgcmV1c2luZyB0aGUgZnJlZWQgb25lLgorCitjb21taXQgYWY5YWJkNTNjMjMzN2M5MGE2OTFhN2IwNDRmZjNmOTdjMTAwMzE2MQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDU6MTAgMjAxMiArMDEwMAorCisgICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCisKK2NvbW1pdCBjZjk0NjVmNTQxODFlNjJlMjFhOWIxMDIxOTEzMTEwN2EzZDJlYmY2CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEphbiAyMCAxNTowNDowNiAyMDEyICswMTAwCisKKyAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KKworY29tbWl0IDc4NzFmMmIwOWI4YjUyZjM0YTllNTc3ODQyNjY0NTkwNTMxNjViY2IKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgSmFuIDIwIDE1OjAyOjUwIDIwMTIgKzAxMDAKKworICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgorCitjb21taXQgN2EzN2YzM2QzMTBjOTU5ODYwN2JjMzIzZDliZGJmOTFhYWY3MmM5NQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDA6NTEgMjAxMiArMDEwMAorCisgICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCisKK2NvbW1pdCAzZTQ1ZjcwMjYyNDllNDUzNTBlZGFhYzg1MzM3NDIzYWEwZTk1ZDhiCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEphbiAyMCAxNDoxMzoxOCAyMDEyICswMTAwCisKKyAgICBSZXZlcnQgIkZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncyIgLSB0aGVyZSBpcyBubyBORVRTTk1QX1BSSW8gaW4gVjUtNCBvciBWNS01IGJyYW5jaGVzCisgICAgCisgICAgVGhpcyByZXZlcnRzIGNvbW1pdCAzOTBjMDExNGM4ZWMwYmRiMjdiMDhiNmY3NGUzZjZlZjNhNjI5ODFiLgorCitjb21taXQgNjE5MzY3NjJlNjQxYzE4ZGI3NWFhNTEyNWEzM2U3NzZjNjc3YWRjNQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBKYW4gMjAgMTE6MTM6MzkgMjAxMiArMDEwMAorCisgICAgRml4ZWQgZnJlZWluZyByZWdpbmZvIHR3aWNlIG9uIGVycm9yIGluIGEgdGVtcGxhdGUgYW5kIGFsbCBpdHMgaW5zdGFuY2VzLgorCitjb21taXQgNDk2NDM3NDMwNDE1ZmJhZmViMWNjZDQ3NzRmMWNhMDBkNjI3ZWExZgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIEphbiAyMCAxMTowNDoxMyAyMDEyICswMTAwCisKKyAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBGaXggY29tcGlsZXIgd2FybmluZ3MgaW50cm9kdWNlZCBvbiBWNS42IGJyYW5jaAorCitjb21taXQgNWI0YTI0Y2RjZWUxYmMzZDgyNjMzY2NhZmViOTZmY2U5NTM0OWM1OQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIEphbiAyMCAwOToyMjoyNyAyMDEyICswMTAwCisKKyAgICB1bml0IHRlc3RzOiBmaXggYSA2NC1iaXQgY29tcGlsZXIgd2FybmluZworCitjb21taXQgY2JmMWM5MWJhZjcxOTFiZTVmYTI3ZDgxYmNmODcxNDMzMWEyYzEyZgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIEphbiAyMCAwOToyMDo0MiAyMDEyICswMTAwCisKKyAgICBVc2Ugc25tcFRhcmdldFBhcmFtVGFibGVfZGlzcG9zZSgpIHRvIGZyZWUgYSBzdHJ1Y3QgdGFyZ2V0UGFyYW1UYWJsZV9zdHJ1Y3QuCisgICAgCisgICAgRml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQgZGJmMjZhMDVhMDRlZjI0YzQ3MzQ2ZTVhZGRhNDhlMzM4NDk4ZTcxZi4KKworY29tbWl0IGFhNmI3OWJjMTI0YTdiN2E4ODVkN2U1MDM1YWIwNmFhM2VjZWY2MTMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBKYW4gMjAgMDk6MjA6MzEgMjAxMiArMDEwMAorCisgICAgSE9TVC1SRVNPVVJDRVNfTUlCOiBmaXggYSBjb21waWxlciB3YXJuaW5nCisKK2NvbW1pdCAzYTc2YjQzZTExZmZmYWRhNjMyZmNjYjg0OGFiNTAwZTg3NmFkNDhiCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgSmFuIDE4IDE2OjIxOjA1IDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHB5dGhvbjogQXZvaWQgdGhhdCBhbiBTTk1QIHNldCB3aXRoIFVzZUVudW1zIGVuYWJsZWQgY2F1c2VzIGEgc2VnbWVudGF0aW9uIGZhdWx0CisKK2NvbW1pdCA4NGRlYzlmYTkyYjBhYTJkNThlYjcwMjAzMzBmNGY5OGU1MTU0MzIxCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgSmFuIDE4IDE0OjM4OjIxIDIwMTIgKzAxMDAKKworICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IEZpeCBtb3N0IGNvbXBpbGVyIHdhcm5pbmdzCisKK2NvbW1pdCAzOGNmMjE4YzNmMWE3Mjc3ODZlMjI3YTVkM2ZiMTg2ZmQwZjFhMTVmCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEphbiAxOSAxNDo1MDoxMyAyMDEyICswMTAwCisKKyAgICBGaXggYSB0eXBvCisKK2NvbW1pdCA0NTQxMjIyNDQxMjJiZmRiNmY2N2NhYjMxMjU2ZDdiNDYzNzJlOWUxCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEphbiAxOSAxNDozMDoxOCAyMDEyICswMTAwCisKKyAgICBGcmVlIHRtU3RhdGVSZWYgb24gZXJyb3JzLgorCitjb21taXQgMDExOTAyMmRhYTU5YzczYmZlYzBkYTIzODZkMDYyOGYxNGU2ZGFiNworQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTkgMTQ6MDk6MTIgMjAxMiArMDEwMAorCisgICAgRnJlZSBmaW5nZXJwcmludCB3aGVuIGl0J3Mgbm90IG5lZWRlZC4KKworY29tbWl0IDBlODRjZDMwM2EwODI2N2RlYzc4ZjZkODFjOWJiMDdlM2Q4M2ExMWYKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDE5IDEzOjQ4OjI2IDIwMTIgKzAxMDAKKworICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KKworY29tbWl0IDYzZGM4NDZhNzk0OWNlNjk3YjNlMjhjNTQzZGMxMTA1ZTYzYTIyNTAKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDE5IDEzOjA4OjI4IDIwMTIgKzAxMDAKKworICAgIEZyZWUgY2VydGlmaWNhdGUgZmluZ2VycHJpbnQuCisKK2NvbW1pdCBjZTFmMjg0YTYzZWI4MTY0NGIzZTMyNjA2Y2JlMzliNjdlMWRmZjJhCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEphbiAxOSAxNDozNzowOSAyMDEyICswMTAwCisKKyAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCisKK2NvbW1pdCA3ZTIxNDEzY2E2ZjJlZmQ3YTNhZmI2MmM2MmI2NDQ4ODFiOGJkMWU3CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEphbiAxOSAxMzo0NjozMCAyMDEyICswMTAwCisKKyAgICBQcm9wZXJseSBhbGxvY2F0ZSBhbmQgZnJlZSBlbmdpbmVJRC4KKworY29tbWl0IDM0Yzk2Mjg4MjYwN2MzNjM4YTJmYTI1YTJhYzUzMTQ5MmQ3MWM3ODcKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDE5IDEzOjM3OjI1IDIwMTIgKzAxMDAKKworICAgIEZyZWUgbG9jYWxseSBhbGxvY2F0ZWQgdG1TdGF0ZVJlZi4KKworY29tbWl0IGY1N2FlNTMxZGM1NjU4YWJjZDY1YjE2Mjc2MTU1MjUyMzhkMTZkMmQKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDE5IDEzOjIwOjI0IDIwMTIgKzAxMDAKKworICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KKworY29tbWl0IDUzNmJjNTc1NTZjMzE0MTU2MWVhNGExOTQ4MTBiMTYyOTBhNjkxZWUKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDE5IDEzOjE1OjQ3IDIwMTIgKzAxMDAKKworICAgIEFkZGVkIGNoZWNrIGlmIHRoZSBmdW5jdGlvbiBhY3R1YWxseSBkb2VzIHNvbWV0aGluZy4KKworY29tbWl0IGEwNzc3ZDMwN2RiY2FmMjE5ZWUwMTg0YTBmYmFiOWQ0ZTVkNmFhMGIKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDE5IDEzOjAxOjQ1IDIwMTIgKzAxMDAKKworICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KKworY29tbWl0IDhiOTdhNzFjOGU3OTU5NDI4ZWI0ZDRlOGQ5MGU5MDk2ZDQzZmYwOWYKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDE5IDEyOjU3OjI2IDIwMTIgKzAxMDAKKworICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KKworY29tbWl0IDJjMTUwN2MyMjAzMDU0OWFlNjYwYzBlMjExZmJkYzVjNzVlYzVjNTcKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDE5IDEyOjUzOjQ3IDIwMTIgKzAxMDAKKworICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KKworY29tbWl0IDY1ZjJiN2JjZDRmZTAzOTA2YWExYTExNWFiNjBhODliOGFlOTMzZDUKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDE5IDEyOjUxOjM2IDIwMTIgKzAxMDAKKworICAgIENsb3NlIG9wZW4gZmlsZXMgb24gZXJyb3IuCisKK2NvbW1pdCAwZTUyZTRmNjZkNDQ3NjZiZWEzNzQ3MzU1NmM3OGU1MjE5Yjk1NDYxCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiAxOCAxNTo0NTozMyAyMDEyICswMTAwCisKKyAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCisKK2NvbW1pdCBkYmYyNmEwNWEwNGVmMjRjNDczNDZlNWFkZGE0OGUzMzg0OThlNzFmCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiAxOCAxNTo0MjoxNyAyMDEyICswMTAwCisKKyAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCisKK2NvbW1pdCA3NDhkYTg0YjFmZDY1NGUzMzhiYzcwMWU4ZjllNWRhMjI5MTg3ZjFjCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiAxOCAxNTozMjowNCAyMDEyICswMTAwCisKKyAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCisKK2NvbW1pdCBlYjIxNzE0NmZkNTQwMzZlYTQyMDJiZmVmNzhiYmY3NzRkN2UzODJkCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiAxOCAxNToyMzoxMCAyMDEyICswMTAwCisKKyAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCisKK2NvbW1pdCA5YmEzOGVlYzY2MTM4ZWMxZjYxM2VhOGQwNGUxNTgxMzBjNzEyMWJjCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiAxOCAxNToxODo1NSAyMDEyICswMTAwCisKKyAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCisKK2NvbW1pdCBkOWQ5MzhkMzAxOGMyN2Y1MzI3N2JjNWU1OTU3ODUwMDQ5MGMxZDA5CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiAxOCAxNToxNjozOCAyMDEyICswMTAwCisKKyAgICBDbG9zZSBvcGVuIGZpbGUgb24gZXJyb3IuCisKK2NvbW1pdCBkNWU4MTdkNWJkNTE4ZDlhYzZhMGQ2MGUwZTE0MWRkNjRmMjdhZDE5CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiAxOCAxNToxNDoxMiAyMDEyICswMTAwCisKKyAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCisKK2NvbW1pdCAyYWU2OGYwNTlkZjlkNzRiMDc0ZDEyZjU5YzE4NDc0NjZlZDU3NmNkCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiAxOCAxNTowMzoxNyAyMDEyICswMTAwCisKKyAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCisKK2NvbW1pdCBhMDBmM2Q0NjExMjFiNTQ1YWVkNzJhYzEyYjI0Mzg3OTFkY2ZjNGJhCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiAxOCAxNDo1ODozOSAyMDEyICswMTAwCisKKyAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCisKK2NvbW1pdCA1OTg4NGJiNGQzNWFkMTM3NDdmZmE2NzIzNDM2ZGNhNTg3YTlhYjc3CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxNyAxNzowOToxMiAyMDEyICswMTAwCisKKyAgICBJbiBhYm92ZSBjb2RlLCBvbGVuZ3RoIGlzIGNoZWNrZWQsIHNvIGxldCdzIGNoZWNrIGl0IGFsc28gaGVyZS4KKworY29tbWl0IGJhNWQ1MjkyYjA0MzkzYjBjN2Q3ZDdlZDk2MTI0MTkyOTQxOGM2ZTQKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDE3IDE3OjA1OjE0IDIwMTIgKzAxMDAKKworICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgTlVMTC4KKworY29tbWl0IGRhMmQ2YTcwMjhhMTNiOWVkZjNhNWM4NDMxNGQwZjFmZWVmNzY3MTQKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDE3IDE2OjQ0OjU2IDIwMTIgKzAxMDAKKworICAgIFByZXZlbnQgZGVyZWZlcmVuY2luZyBOVUxMLgorCitjb21taXQgZjg4MDU0YTliNjliNmRlMjc0ZjdhMTRhNTliNDczMjNlNWU0ZTRjNgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6Mzc6MzUgMjAxMiArMDEwMAorCisgICAgRG9uJ3QgZGVyZWZlcmVuY2UgY29udGV4dCBpZiBpdCdzIE5VTEwuCisKK2NvbW1pdCA3YzRkNDU5ZThmMWY2NTJjYzIwOThjM2Q0YzgxZGU5MGE4NGVkNzEwCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxNyAxNjozMDowOSAyMDEyICswMTAwCisKKyAgICBEb24ndCBkZWZlcmVuY2UgTlVMTC4KKworY29tbWl0IGZjMTliN2YzM2I1ODc5MjdkMmEwMWU3MmQyM2QyMWI5YjE2OTZhYjMKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDE3IDE2OjI1OjI2IDIwMTIgKzAxMDAKKworICAgIERvbid0IGNsb3NlIE5VTEwgZmlsZS4KKworY29tbWl0IDVlOTVjYTY3OTAwNzZiNzg4MDcyYTgwMWVlN2M4Mjk2OWQ5OTViY2IKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDE3IDE2OjE3OjA5IDIwMTIgKzAxMDAKKworICAgIFByZXZlbnQgZGVyZWZlcmVuY2luZyBOVUxMIHdoZW4gYSB0cmFuc3BvcnQgZG9lcyBub3QgaGF2ZSBmX2ZtdGFkZHIuCisKK2NvbW1pdCBlZWQ2ZjVmOWI5YWU1NGQyY2VhYjY3YWQ4NWFkZGUxZjZhOGEyMWQ1CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxNyAxNjoxMzoxMyAyMDEyICswMTAwCisKKyAgICBQcmV2ZW50IGRlcmVmZXJlbmNpbmcgTlVMTC4KKworY29tbWl0IDQxY2RlNjhiNWZhNGIzOGQ4MTQ1MGNmOTFlMDgyY2RmYTgyNWU3Y2YKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDE3IDE2OjEwOjEwIDIwMTIgKzAxMDAKKworICAgIENoZWNrIGlmIGEgcmVnaXN0cmF0aW9uIHdhcyByZWFsbHkgZm91bmQuCisKK2NvbW1pdCA1YjcyYTQwODUzODc2YTE4NmVmY2MwMDkwYTRlMzJjMjM1YjljMDVmCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxNyAxNjowMzo1OCAyMDEyICswMTAwCisKKyAgICBEb24ndCBkZXJlZmVyZW5jZSBOVUxMIHdoZW4gZGlmZmxlbiBpcyBTTVVYX01BWF9QUklPUklUWSAod2hpY2ggaXMgaGlnaGx5IHVubGlrZWx5LCBidXQuLi4pCisKK2NvbW1pdCBmYTZhOTEyZTQxYzVkMGZkMmE2MzY4OTRlODZiNjQyNmMwNzM3NWFiCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxNyAxNTozNzo0NCAyMDEyICswMTAwCisKKyAgICBDaGVjayBmb3IgbWlzc2luZyB2YWx1ZSBpbiBzZXRFdmVudC4KKworY29tbWl0IDQxMGI3MWRhNDI1Mzg5ZmVjYzI1ZDE0ZjQ5ZjIzNzUzNTgxNTc2YWQKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDE3IDE1OjI4OjQxIDIwMTIgKzAxMDAKKworICAgIERlcmVmZXJlbmNlIGVyZWcgb25seSBpZiBpdCBpcyBub3QgTlVMTC4KKworY29tbWl0IDE4NTI3MmQxYTBiOTEzNzc0MTg2ZjFiOTEzNWFlYWY2MzdlYmVkNTIKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDE3IDE1OjE3OjIxIDIwMTIgKzAxMDAKKworICAgIEFzIHBlciBhYm92ZSBjb2RlLCB0ZW1wbGF0ZV92MnBkdSBjYW4gYmUgTlVMTCwgc28gY2hlY2sgaXQgYmVmb3JlIGRlcmVmZXJlbmNpbmcuCisKK2NvbW1pdCA0OGU1ZWFkM2ZkMmMyYjM4NWRmNjk3MmM2NzUyNmZmNmJkYzMwNzY4CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxNyAxNDo0MjoyMiAyMDEyICswMTAwCisKKyAgICBVcGRhdGVkIGxhc3QgZml4IHRvIG5ldyBlcnJvciByZXBvcnRpbmcgc3R5bGUuCisKK2NvbW1pdCBmMzNkMzM2MTVkNmQ4NWQwMDczNzI2NDczYzQxNDZjYmNkZjExY2VkCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxNyAxNDozMDowNyAyMDEyICswMTAwCisKKyAgICBGaXhlZCBzaWdzZWd2IHdoZW4gZW1wdHkgY29uZmlnIGxpbmUgaXMgcGFyc2VkLgorCitjb21taXQgYjVkZjFlZWI0N2VkMzU1OWI2ZjRkOWVjY2NkYjI0MjEyNmU2Yzk5MgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTcgMTQ6MTE6NTggMjAxMiArMDEwMAorCisgICAgRml4ZWQgKGhpZ2hseSB0aGVvcmV0aWNhbCkgc2lnc2VndiB3aGVuIHNwLT5zZWN1cml0eUVuZ2luZUlEIGlzIE5VTEwuCisKK2NvbW1pdCA2ZmVlZDYyOWE3MTg5OWMxMTMwOTY5NTlkODU0OWRjMTIwMWU4ZjlhCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxNyAxMzo0MzozNyAyMDEyICswMTAwCisKKyAgICBBZGRlZCBOVUxMIGFuZCBsZW4gY2hlY2sganVzdCBpbiBjYXNlIHNvbWVvbmUgcHJvdmlkZXMgdmFsdWUgPSBOVUxMIGFuZCBub3plcm8gbGVuICgtPiBOVUxMIGlzIHRoZW4gZGVyZWZlcmVuY2VkKS4KKworY29tbWl0IDM1NWM1YWIyNjRhZjJhNjAyMGExZDhhOTIzZjgwZjExYjk0MjI5NWUKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDE3IDEzOjM2OjQxIDIwMTIgKzAxMDAKKworICAgIEV4dGVuZCB0aGUgTlVMTCBjaGVjaywgaS5lLiByZXR1cm4gaWYgdGhlcmUgaXMgbm90aGluZyB0byByZW1vdmUuCisKK2NvbW1pdCBkZGQ3OTQ4YWNhZDkzOGNkNDI5NzQ1MDVkZGNhNGYwMzcyMTE2NzA5CitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gSmFuIDE2IDExOjExOjI5IDIwMTIgLTA4MDAKKworICAgIHVwZGF0ZSBzcGFydGEncyBjb3B5cmlnaHQKKworY29tbWl0IDQxMjU2MDg2YTdhNTA0MTQ1MzQxOWNmZDZlNTYyYzdiNTVjNTZiMGEKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBKYW4gMTYgMTA6MzI6MDQgMjAxMiAtMDgwMAorCisgICAgcHVsbGVkIGZ1bGwgY29weSBvZiBleHRyYWN0bmV3cyBmcm9tIG1hc3RlcgorCitjb21taXQgNjI1YTcwZGJkZmQ5OTAyZGE3OWVmYTI5M2ZlNmQyYWM4Y2NmMmIyZQorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEphbiAxNiAxMDoyNDoxOSAyMDEyIC0wODAwCisKKyAgICB1cGRhdGUgdG8gY2hhbmdlIHRvIHRoZSBuZXdlciBsb2cgZ2VuZXJhdGluZy9wYXJzaW5nCisKK2NvbW1pdCA2MmUzMmIxMzA4OWIyOWVkY2YyNzZmNjE1ZGE2N2U0NTA4ZmU3YmI1CitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gSmFuIDE2IDA5OjI5OjQyIDIwMTIgLTA4MDAKKworICAgIGNvbmZsaWN0aW5nIG1lcmdlIGZyb20gbWFzdGVyIGZvciBleHRyYWN0bmV3cworCitjb21taXQgNzAwODRkYTYxZDJiY2JkMmNmMWVkODFiZGMzYmY2Nzk0YzJhZmZiNgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIEphbiAxMyAxMTo0OToxNiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVNDSEVEVUxFUi1NSUI6IEhhbmRsZSAzMi1jaGFyYWN0ZXIgc2NoZWRDb250ZXh0TmFtZSB2YWx1ZXMgY29ycmVjdGx5LgorICAgIAorICAgIFNlZSBhbHNvIGNvbW1pdCBiM2M0OTgyNTQyZTBhYjE1MWZiMzg4NDc1NGNkZmJjYjQ3MmRhNTJkLgorCitjb21taXQgMDRiZjNlMjg4MTU4ZWU4ODBlZGYyMzdlNDAwN2ZlZTM3ZDIwNDRkZAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTIgMTU6Mzk6MzcgMjAxMiArMDEwMAorCisgICAgRml4ZWQgZW5kbGVzcyBsb29wIHdoZW4gU1NMX3JlYWQgcmV0dXJucyBlcnJvci4KKworY29tbWl0IGMxNTI2ZmNjYzA0NzRjMWRiMThjYWE5ZGJiODMzODUzY2RkZGUzY2MKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDEyIDE1OjEzOjIxIDIwMTIgKzAxMDAKKworICAgIEZpeGVkIGEgdHlwby4KKworY29tbWl0IGEyN2FhMTlkZjI4MzE1NmMwMzJjODFlYWVlNWUxMTU4NTlkMzhjMTcKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDEyIDE1OjExOjMyIDIwMTIgKzAxMDAKKworICAgIERvbid0IHJlcGxhY2UgJ3JjJyB2YXJpYWJsZSwgaXQncyB2YWx1ZSBpcyBuZWVkZWQgb3V0c2lkZSB0aGUgbG9vcC4KKworY29tbWl0IDk4NWRmZjJiMDg3NmQ5NDgzYzQxNGZjY2VhM2VmNmJjNjNlMTQ1NjEKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDEyIDE1OjAxOjMyIDIwMTIgKzAxMDAKKworICAgIFJlbW92ZWQgZHVwbGljYXRlIGNvZGUuCisKK2NvbW1pdCAyZmQ3ODE4MzE4ZTdhNWRmZTk4ZjUyY2NmNzUwYzJhNjNlODI1ZGVkCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEphbiAxMiAxNTowMDoyMiAyMDEyICswMTAwCisKKyAgICBSZW1vdmVkIGR1cGxpY2F0ZSBjb2RlLgorCitjb21taXQgMTVmMjExMzBiYTMzZGM5YWZkMTY0ZTUyZGZkNzRjOWNlYzBlOTIzMgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTIgMTQ6NTg6MTQgMjAxMiArMDEwMAorCisgICAgUmVtb3ZlZCBkdXBsaWNhdGUgY29kZS4KKworY29tbWl0IDJhOGE4ZjJhYjdjZDc1ODI2YzVkNDFlYzNjZmQ1Y2UzZTk2MzRjZjMKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDEyIDE0OjM5OjI4IDIwMTIgKzAxMDAKKworICAgIHJlbW92ZSBkZWFkIGNvZGUsICdjcCcgaXMgYWx3YXlzICE9IE5VTEwgaGVyZS4KKworY29tbWl0IDM4ZmQ2Mzc4Y2MzMjc1MTgwZjYzYjhkOWI5YTQwNzJiM2RhYmY4ZTQKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDEyIDE0OjI1OjA2IDIwMTIgKzAxMDAKKworICAgIEZpeGVkIGEgdHlwby4KKworY29tbWl0IGViZDkyZTE5YjEwYzBhMzhlMTdjZGU0MDc4NjRiNDVjMjZlMTczMjcKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDEyIDE0OjA3OjQzIDIwMTIgKzAxMDAKKworICAgIFJlbW92ZWQgdW5uZWNlc3NhcnkgaWYgKHZhbHVlKSBjaGVjayAtIHZhbHVlIGlzIGNoZWNrZWQgZmV3IGxpbmVzIGJlZm9yZS4KKworY29tbWl0IGM1Y2FjZjVjYWY5NzlkMDE4ZWE2Y2FlMWMwM2I4ZmRmMGIxMThkZmQKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDEyIDEzOjQ0OjQzIDIwMTIgKzAxMDAKKworICAgIFByZXZlbnQgZG91YmxlIGZyZWUoKSwgJ2Rpcm5hbWUnIGlzIGFscmVhZHkgZnJlZWQgaW5zaWRlIHNlX2FkZF9wYWlyX3RvX2xpc3QoKSBpZiBpdCBmYWlscy4KKworY29tbWl0IGFjZGNlYjUwZWE2NmQ2YjMyM2M3NGVlMDIxZmI3N2U4MTBlNGU3YWYKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDEyIDEzOjQzOjE5IDIwMTIgKzAxMDAKKworICAgIFByZXZlbnQgbWVtb3J5IGxlYWsgd2hlbiBtYWxsb2MgZmFpbHMuCisKK2NvbW1pdCAxNzA1M2UzNGNmZTlhOGFiMzk1ZmI1MGY1YzNmMWRhZmM3MjQ3YWViCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEphbiAxMiAxMzozMjo1NyAyMDEyICswMTAwCisKKyAgICBGaXhlZCBkb3VibGUgZmNsb3NlKCkuCisgICAgTGludXggbWFuIHBhZ2UgZm9yIGZjbG9zZSgzKSBzYXlzOiBJbiBlaXRoZXIgY2FzZSBhbnkgZnVydGhlciBhY2Nlc3MgKGluY2x1ZGluZyBhbm90aGVyIGNhbGwgdG8gZmNsb3NlKCkpIHRvIHRoZSBzdHJlYW0gcmVzdWx0cyBpbiB1bmRlZmluZWQgYmVoYXZpb3IuCisKK2NvbW1pdCBhNjY0MWVkYjljYjc0ZmMyMjM2YjQyY2U1NTU0ZmMzMzI5OTU2NTUyCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgSmFuIDExIDE1OjIyOjM0IDIwMTIgKzAxMDAKKworICAgIE1pbkdXOiBTa2lwIHRlc3QgVDA2NSBpZiBub3Qgc3RhcnRlZCBmcm9tIGluc2lkZSBhbiBNU1lTIHNoZWxsCisKK2NvbW1pdCBhODgzZWYxOTgyZjMwMWIxNDg1ZDIyNzMwMTY3NDkyNzMzMGY1YjY3CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiAxMSAxNToxNDo1MyAyMDEyICswMTAwCisKKyAgICBNb3ZlZCBkZWJ1ZyBvcHV0cHV0IGJlZm9yZSByZXR1cm4uCisKK2NvbW1pdCA0NTc1MTk2NzI4N2Q5NzY0MGVmZGNkZjhlNzdlOGQ0OTA5MzlkOGViCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgSmFuIDExIDE0OjE3OjE4IDIwMTIgKzAxMDAKKworICAgIENvbnZlcnQgc3RydG91bGwoKSB1bml0IHRlc3QgaW50byBhIE5ldC1TTk1QIHVuaXQgdGVzdAorCitjb21taXQgMmMyZmE0ODMzNmE0ZjFmMTc3YzI5OTFkNjUxNWQyOWYzOTUzM2M0NAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEphbiAxMSAxMzo1MDo0NCAyMDEyICswMTAwCisKKyAgICBDb252ZXJ0IHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nX2NvbnN0KCkgdW5pdCB0ZXN0IGludG8gYSBOZXQtU05NUCB1bml0IHRlc3QKKworY29tbWl0IDA3YzY2NmY2Y2VhMjdmMmIyYWI5YmMwOGFlZDBjYjYxMzNmZTM3NTgKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDExIDEzOjE3OjQ1IDIwMTIgKzAxMDAKKworICAgIEZpeGVkIGNvbW1pdCA3M2E1MjNlNDY4Mjc3ZjZkZjJlOTg0ODkxMzEzYjhiZThiY2UxOTIxOgorICAgIEZpZGV4IGRlcmVmZXJlbmNpbmcga2V5LT5pbmZvIHdoZW4ga2V5IGlzIGtub3duIHRvIGJlIE5VTEwuCisKK2NvbW1pdCAzYjY4NjU2NjI5NmRkODdiYzQyYjdmMTE2OWRhYWNkYjNjNDVjYzU4CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gT2N0IDE4IDA2OjI1OjU2IDIwMTAgKzAwMDAKKworICAgIFdpbjMyOiBidWlsZHMgYWdhaW4gd2l0aG91dCB3YXJuaW5ncyB3aXRoIE1TVkMgNi4KKyAgICAKKyAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk0ODkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKK2NvbW1pdCBmM2E3ZDFiMDk2MDlkYWQ2NDlmNThiYmRiNWI3ZTEwZDM5YjM5OGMxCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTdW4gT2N0IDE3IDExOjA0OjA2IDIwMTAgKzAwMDAKKworICAgIEZvbGxvdy11cCBmb3IgcjE5NDc2OiBmaXhlZCBhIHR5cG8uCisgICAgCisgICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5NDc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCitjb21taXQgMmRlNzNiZDM2NWEzODFiOWMzNTNjYTUyMzA3NjllZWZiMWFjNzFlZAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEphbiAxMSAxMTo0Mjo0MiAyMDEyICswMTAwCisKKyAgICBsb2NhbC9wYXNzdGVzdDogUmVtb3ZlIGFuIGluY29ycmVjdCBQQVRIPSBzdGF0ZW1lbnQKKworY29tbWl0IDY5OTUxM2YxMjM4ZTBhZGNlMWYxY2VjOThlMGQxNDcyOTNmYzUwNDcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFN1biBPY3QgMTcgMDk6MjU6NTEgMjAxMCArMDAwMAorCisgICAgTkVUU05NUF9SRU1PVkVfQ09OU1QoKS1yZWxhdGVkIGNsZWFudXAuCisgICAgCisgICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5NDc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCitjb21taXQgNjM1OGRlZTcyZmIzNDdlMjYwMGEwYTdiZDIxZjIzMjcwZDNhMDBmNgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEphbiAxMSAxMDo1ODoxNSAyMDEyICswMTAwCisKKyAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOiBBZGQgYSBjb21tZW50CisKK2NvbW1pdCA1Mzk2YmZlMDMyYzhjYmM3M2M4ZmY1ZDRiMDg1ZWJhZGE5ZjU5ODQ2CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgSmFuIDExIDEwOjMwOjE2IDIwMTIgKzAxMDAKKworICAgIFJlcGxhY2Ugc3RybmNweSgpL3N0cm5jYXQoKSBieSBzdHJsY3B5KCkvc3RybGNhdCgpCisKK2NvbW1pdCBmZWIzYWYyOGRjYWUyMjAxNWFlODY1YTJlNWRkOGM0MTZlOTk5MWQ4CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgSmFuIDExIDEwOjAyOjA4IDIwMTIgKzAxMDAKKworICAgIFJlcGxhY2Ugc3RybmNweSgpL3N0cm5jYXQoKSBieSBzdHJsY3B5KCkvc3RybGNhdCgpCisKK2NvbW1pdCBiN2UxYWEyNTViYWU0YTM0NTNmOWVjYTY0NGE4NzY2MzQzNTFmMTFkCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTYXQgTWFyIDIwIDE5OjM2OjI4IDIwMTAgKzAwMDAKKworICAgIENIQU5HRVM6IGxpYnNubXA6IGNoYW5nZWQgdGhlIHR5cGUgb2YgdGhlIGZvdXJ0aCBhcmd1bWVudCBvZiBuZXRzbm1wX3NldF9yb3dfY29sdW1uKCkgZnJvbSBjb25zdCBjaGFyKiB0byBjb25zdCB2b2lkKiBzdWNoIHRoYXQgbm8gY2FzdCBpcyBuZWNlc3Nhcnkgd2hlbiBwYXNzaW5nIGFub3RoZXIgZGF0YXR5cGUgdGhlbiBjaGFyKiBvciBjb25zdCBjaGFyKi4KKyAgICBDSEFOR0VTOiBXaW4zMjogY2hhbmdlZCBpbl9hZGRyX3QgZnJvbSB1X2ludCB0byB1X2xvbmcgc3VjaCB0aGF0IGl0IG1hdGNoZXMgdGhlIGRhdGF0eXBlIG9mIHNvY2thZGRyX2luOjpzaW5fYWRkci4KKyAgICBBbHNvLCBmaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIChtb3N0bHkgY2hhciAqIDw+IHVfY2hhciAqIG1pc21hdGNoZXMpIGFuZCByZW1vdmVkIHNvbWUgY2FzdHMuCisgICAgCisgICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTgzNDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgCisgICAgQ29uZmxpY3RzOgorICAgIAlhZ2VudC9hZ2VudF9yZWdpc3RyeS5jCisgICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYworICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKKyAgICAJYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jCisgICAgCWFwcHMvc25tcHRyYXBkLmMKKyAgICAJc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYworICAgIAlzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMKKyAgICAJc25tcGxpYi9zeXN0ZW0uYworCitjb21taXQgZjQ3YTM3NTI4NDlkYjA3NWU2ZjIwNTNiODU5NWI3Yjc5MmZiNjQ2MgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIE9jdCAxNSAxMDo1NjowOSAyMDEwICswMDAwCisKKyAgICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IEJ1aWxkcyBub3cgY29ycmVjdGx5IHdpdGggYSA2NC1iaXQgY29tcGlsZXIuCisgICAgCisgICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk0NTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKK2NvbW1pdCAwMmI2MDU2ZGY5NWRhOGI2NzMwMzRlMzljMmM3YzM4NmVkMGYzNjljCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgSmFuIDEwIDExOjQ0OjUzIDIwMTIgKzAxMDAKKworICAgIEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgY2FzdGluZyBhd2F5IGNvbnN0CisKK2NvbW1pdCBhMTk4NjU4MzJmYzc3ZjRjMDQ4MTQ0ZDkxYTQzMWIxZTk0ZDMyOWYyCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE9jdCAxNCAyMzoxMjowNSAyMDA5ICswMDAwCisKKyAgICBDSEFOR0VTOiBhcHBzLCBzbm1wbGliOiBQQVRDSDogMjgzNTU3NzogaWRlbnRpZmllZCBieSAiQmFydCBWYW4gQXNzY2hlIjogUmVwbGFjZSBTTk1QX1pFUk8gb2YgYXJyYXlzIHdpdGggYSBtZW1zZXQuCisgICAgCisgICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc3OTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKK2NvbW1pdCA2N2EzZTJlY2NiOTVmOWM5ZDA4MDllZmNiZGRjZDg2NmVlMzA2MmQ1CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDYgMTQ6Mjc6MTUgMjAxMCArMDAwMAorCisgICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0IHF1YWxpZmllci4KKyAgICAKKyAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxNzk3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworY29tbWl0IDNkY2RlMmU4YTU5NWE1MjdmMDYxNDJjM2I4NTJkZTg0MzNhMWNmMjgKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTdW4gSmFuIDI0IDE0OjI3OjU1IDIwMTAgKzAwMDAKKworICAgIENIQU5HRVM6IHNubXBsaWI6IFByZXZlbnQgZ2NjIHBlZC13YXJuaW5nIGZvciBORVRTTk1QX1JFTU9WRV9DT05TVAorICAgIAorICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE4MDUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCitjb21taXQgYzJlMTUyNWE4NWJkYTUyOTlhM2I5ZjI0MTYxNGY3ZTY1MDlhZWViYQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiA2IDEzOjM1OjExIDIwMTAgKzAwMDAKKworICAgIEJhY2twb3J0IGNvbW1pdCAyOTVmNDczYzgzNTQ2MjIxYjJhNzFkODE1YzYxZTMzYTY3Zjk4YWUzOiByZWZpbmUgTkVUU05NUF9SRU1PVkVfQ09OU1QoKSBpbXBsZW1lbnRhdGlvbi4KKworY29tbWl0IGNiNDIzYjBhZTllZDAwNTlhYTEwMGRjNGUyZmQ5M2FkMWI5N2ZhZjgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBKYW4gNiAxMTo1Nzo1MSAyMDEwICswMDAwCisKKyAgICBCYWNrcG9ydCBjb21taXQgZTJmYjA5ZTAwOTNlMmY2NDhmZTI2MzhkYTJmM2FmMThmZGIzMmJmMCAtIGludHJvZHVjZSBORVRTTk1QX1JFTU9WRV9DT05TVCgpLgorICAgIAorICAgIENvbmZsaWN0czoKKyAgICAJYWdlbnQvc25tcF9wZXJsLmMKKyAgICAJc25tcGxpYi9zbm1wX3NlcnZpY2UuYworCitjb21taXQgYWZjMzk2YWIxNjE4YTg1OTVhMjUxOWZiYzI1ZjdhNDk4ZTE3NDQxMQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEphbiAxMSAwODo0OTozNCAyMDEyICswMTAwCisKKyAgICBVbmJyZWFrIG5ldHNubXBfbWt0ZW1wKCkgYW5kIG1ha2VfdGVtcCgpLgorICAgIAorICAgIFRoZXNlIHdlcmUgYnJva2VuIGJ5IGNvbW1pdCBiYjhmY2JiODc0OTk4MDAwZjk0NWYwNThkMWFhNmZlMTRlOTI1ODk5LgorICAgIEFsc28gcmVwbGFjZSBhIHN0cm5jcHkoKSBjYWxsIGJ5IGEgY2FsbCB0byBzdHJsY3B5KCkgYW5kIHJlcGxhY2UgdGhlCisgICAgbWFrZV90ZW1wZmlsZSgpIGltcGxlbWVudGF0aW9uIGJ5IGEgY2FsbCB0byBuZXRzbm1wX21rdGVtcCgpLgorCitjb21taXQgMjEwMTg1YzE1ZDBkNjVmMGVhOThiNWUzYzJlMDc3NmY2MjIyZDE3MAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEphbiAxMSAwODoyNzo0MyAyMDEyICswMTAwCisKKyAgICBGaXggYSBjcmFzaCBkdXJpbmcgc3RhcnR1cCBvZiBzbm1wZCBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCA4ODUwNjE2ODdkOWNhYTM4NDcwOTc5NjY3ZDdkOGFkNjU2M2NlZGFkLgorICAgIAorICAgIEFsc28sIG1ha2Ugc3VyZSB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGNvcHkgb2YgdGhlIGNsZWFudXAgY29kZSBpbiBmdW5jdGlvbgorICAgIG1rZGlyaGllcigpLgorCitjb21taXQgOGJiNGU4NmFiY2Y5OGZmMjg3NDhhZjBhZjg5Yzk4ZTY0ZDVjZDk2MQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgV2VkIEphbiAxMSAwNzo0NzoxMiAyMDEyICswMTAwCisKKyAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSBvbGRtYXNrIHZhcmlhYmxlLgorCitjb21taXQgNjY4MDE0N2IxMzhlYzExNGY4MWM1ZDEyOGFjOTM1MGM4NDUwZDA4MQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIEphbiAxMCAxODo0NDozMSAyMDEyICswMDAwCisKKyAgICBNYWtlIHRlc3QgVDAxNWludDY0X2NsaWIgcGFzcyBvbiA2NC1iaXQgc3lzdGVtcworCitjb21taXQgM2FhZDE1YWU1NjBhYzg1N2U3M2M5MDc2NGU5MDNlN2NhMDJiMzI5NQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6NDA6NTkgMjAxMiArMDEwMAorCisgICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IGZvciBsYXJnZSBPSUQgbmFtZXMKKworY29tbWl0IGZiYTE4OGVlODIwMTBiMmYyZDhjYTJlNDI2YmE2NTQ0OTlhYjNkMGEKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDEwIDE1OjMxOjMzIDIwMTIgKzAxMDAKKworICAgIGZpeGVkIGJ1ZmZlciBvdmVyZmxvdyBpbiBfX2NvbmNhdF9vaWRfc3RyCisKK2NvbW1pdCAyMWQyNWQ4NmI4ZTQ5MDRkNzk4ZGM4Yzk2ZGFkZTllNTA0ODQ1N2E4CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxMCAxNToyNjowNyAyMDEyICswMTAwCisKKyAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBwYXJzaW5nIHBvcnQgbnVtYmVycy4KKworY29tbWl0IGQzNjkzMTg0MWIyZmMyY2ViYzYzNjRiMjk0OTEyOWEwYWQ0MmFkMWQKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDEwIDE1OjA1OjUxIDIwMTIgKzAxMDAKKworICAgIEZpeGVkIGEgYnVmZmVyIG92ZXJmbG93IHdoZW4gbGFyZ2UgU3VtRmlsZSBpcyB1c2VkLgorCitjb21taXQgMGVmZGQwMjJkYTA5YWYxYjVlMTYxNzFmYTdhMmI1MjNjNWQ2ZWM1OQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MDE6NTMgMjAxMiArMDEwMAorCisgICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gdG9vIGJpZyB0ZW1wIGZpbGUgcGF0dGVybiBpcyB1c2VkLgorCitjb21taXQgNTYwYmM2YzA5Yjc1MTU1NmVmZDZiNGM0NDk1NzUxYjEwOWE5M2Y5MgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6NTk6MjQgMjAxMiArMDEwMAorCisgICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93LCBqdXN0IHRvIGJlIHN1cmUuCisKK2NvbW1pdCA4MjkxZDdjNWI5MmEzMWRkNGY1ODJiNDk3ZDRiMmEwODUzMzY3YTU2CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxMCAxNDo1NToxNiAyMDEyICswMTAwCisKKyAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cuCisKK2NvbW1pdCA4OGUxZjM0ZGU3MzAwNTc1ZmE2ZGFiODU3ZWNkZGIyNDJhODdkZTgwCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxMCAxNDo0ODo1NSAyMDEyICswMTAwCisKKyAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gbG9uZyBpbnRlcmZhY2UgbmFtZXMgYXJlIHVzZWQuCisKK2NvbW1pdCBiZTEzNzVhOTkyNmViZTBjZDViNzhhNDA0NWMzYmQxMWM4MzY2NGIxCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxMCAxNDo0Njo0OSAyMDEyICswMTAwCisKKyAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBhIHNlbnNvciBuYW1lIGlzIHRvbyBsb25nLgorCitjb21taXQgMWNiMjQ2MjUzNzIwNjJiMTRjNzFkN2RkNTFlMjBmZWY3NzNlMjc0MworQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6NDE6MDAgMjAxMiArMDEwMAorCisgICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gYSBDUFUgaGFzIHRvbyBsb25nIG5hbWUuCisKK2NvbW1pdCA4NGM4MDdlZTAzMjUxZTU0ODU2ZTgzZDYyZDA2ZWEwOGI4ZGY1MjdhCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxMCAxNDozNjo1MCAyMDEyICswMTAwCisKKyAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gbG9uZyBpbnRlcmZhY2UgbmFtZXMgYXJlIHVzZWQuCisKK2NvbW1pdCBjMzEwZTM5MGI1ZGQwNWYyNGJlN2ViMTkwNGM3NGU0MTI1OWM5M2RiCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxMCAxNDoyNDo1NCAyMDEyICswMTAwCisKKyAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gYmlnIHRlbXAgZmlsZSBwYXR0ZXJuIGlzIHVzZWQuCisKK2NvbW1pdCA0NjAwZDExNDM0ZTgzYjg2NTNjZjlmODEzYTNkOGI2MzA0NTViNDJkCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxMCAxNDoxNzowOCAyMDEyICswMTAwCisKKyAgICBGaXhlZCBwbGF1c2libGUgc3RyaW5nIG92ZXJmbG93IGJlZm9yZSBwYXJzaW5nIGNvbW1hbmQgbGluZSBvcHRpb25zLgorCitjb21taXQgODg1MDYxNjg3ZDljYWEzODQ3MDk3OTY2N2Q3ZDhhZDY1NjNjZWRhZAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6MTE6MDIgMjAxMiArMDEwMAorCisgICAgR2V0IHJpZCBvZiAoaW5zZWN1cmUpIFNOTVBfTUFYUEFUSCBpbiBta2RpcmhpZXIoKQorCitjb21taXQgODAxNjg5MGE0NDVmNmE3ZTJhODczYTA0ODczZDRlMjdiNmVlNjRlMworQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6NDg6MzQgMjAxMiArMDEwMAorCisgICAgRml4ZWQgd3JvbmcgaW50ZWdlciBzaXplIG9uIDY0IGJpdCBwbGF0Zm9ybS4KKworY29tbWl0IGJiOGZjYmI4NzQ5OTgwMDBmOTQ1ZjA1OGQxYWE2ZmUxNGU5MjU4OTkKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDEwIDEzOjMxOjM2IDIwMTIgKzAxMDAKKworICAgIFNlY3VyZSBta3N0ZW1wKCkgd2l0aCB1bWFzaygpIC0gb24gc29tZSBpbXBsZW1lbnRhdGlvbnMgaXQgZG9lcyBub3Qgc2V0IDA2MDAgcGVybWlzc2lvbnMgYXV0b21hdGljYWxseS4KKworY29tbWl0IDIwMjUyM2NhNzA0YmQ3MjJkYzFhYzBlMWU2YjBlNGI0ZTU0MjQ0OTUKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDEwIDEzOjExOjU3IDIwMTIgKzAxMDAKKworICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgJ2MnIGJlZm9yZSBOVUxMIGNoZWNrLgorCitjb21taXQgNzNhNTIzZTQ2ODI3N2Y2ZGYyZTk4NDg5MTMxM2I4YmU4YmNlMTkyMQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6MDg6MjQgMjAxMiArMDEwMAorCisgICAgRml4ZWQgZGVyZWZlcmVuY2luZyBrZXktPmluZm8gd2hlbiBrZXkgaXMga25vd24gdG8gYmUgTlVMTC4KKworY29tbWl0IDJmNGU2YWNkNzE0MTgzZjAxNWI3NjM2NTdmOGYwODQ1OTMzNTdlMjYKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBKYW4gMTAgMTA6Mzg6MTYgMjAxMiArMDEwMAorCisgICAgLmdpdGlnbm9yZTogSWdub3JlIHBlcmwvKi55bWwgZmlsZXMKKworY29tbWl0IGMzNjVkODBjMTZjMmQxN2IxNjAwMTFlOGMxZjljYjk1ODk1NGU5ZGIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBKYW4gMTAgMDg6MzQ6MTYgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcHRyYXBkOiBEbyBub3QgaW52b2tlIHNodXRkb3duX3BlcmwoKSBmcm9tIGluc2lkZSB0aGUgU0lHVEVSTSBoYW5kbGVyIHNpbmNlIHRoYXQgZmFpbHMgaWYgU0lHVEVSTSBpcyByZWNlaXZlZCB3aGlsZSBhIFBlcmwgaGFuZGxlciBpcyBhY3RpdmUuIEJhc2VkIG9uIGEgcGF0Y2ggcG9zdGVkIGJ5IEpvZWwgQXZuaSA8amF2bmlAYXJ1YmFuZXR3b3Jrcy5jb20+CisKK2NvbW1pdCBkMDU5ZmI4NzhiMTQzNjU5OTk1M2NlYTVhMDc3NDk5ZGRjZGNiY2I1CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgSmFuIDYgMTc6MDM6NTUgMjAxMiArMDAwMAorCisgICAgQ0hBTkdFUzogQlVHOiAzNDQwNzUyOiBJRi1NSUI6IFJlcG9ydCBpbnRlcmZhY2Ugc3BlZWQgY29ycmVjdGx5IGZvciBFdGhlcm5ldCBpbnRlcmZhY2VzIGlmIG90aGVyIHRoYW4gMTAgTWJwcywgMTAwIE1icHMsIDEgR2JwcywgMi41IEdicHMgb3IgMTAgR2Jwcy4gQWRkIHN1cHBvcnQgZm9yIE5JQ3MgZmFzdGVyIHRoYW4gNjUgR2Jwcy4KKworY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBKYW4gOSAxMzoyNjoxNyAyMDEyICswMTAwCisKKyAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMKKworY29tbWl0IGUzMjVlY2JmY2U3N2YwMGFjNWNmNmZiZDk1N2Y5NTQ5NWY2MWM1OWIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBKYW4gOSAxMzoyNToxMCAyMDEyICswMTAwCisKKyAgICBTdXBwcmVzcyB1bmludGVyZXN0aW5nIERveHlnZW4gd2FybmluZ3MKKworY29tbWl0IGJlOTE2MWQzYTU4OThlODYzNzY3ZjkyNjYxMzQ4NjEyNmMyY2JmNjcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBKYW4gNiAxMjozNTozOSAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBTaW1wbGlmeSBpbXBsZW1lbnRhdGlvbiBvZiBmdW5jdGlvbnMgbWFuaXB1bGF0aW5nIDY0LWJpdCBudW1iZXJzLgorCitjb21taXQgODZlNGMyYmUwODUyYTBhMTNiMDYwMzA3NTcyMGIzMjY0ZWM3MGRkZQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIEphbiA2IDEyOjI5OjExIDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgaXQgZXhwbGljaXQgdGhhdCBNQVhfU1VCSUQgaXMgYW4gdW5zaWduZWQgY29uc3RhbnQKKworY29tbWl0IDM3ZTI3MmQ4ZjdiNzE4MGJhMTQwZmEzODZhNWZmMDU4OTY4YTA4YTIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBKYW4gNiAxODoyMTo0OCAyMDEyICswMDAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogSUYtTUlCOjppZlR5cGU6IFJlcG9ydCB0eXBlICJpbmZpbmliYW5kICgxOTkpIiBmb3IgSW5maW5pQmFuZCBpbnRlcmZhY2VzIGluc3RlYWQgb2YgdHlwZSAib3RoZXIgKDEpIi4KKworY29tbWl0IDI2OTkzMmZhMzJjN2NkNDc5NTc0ODk2OThlMDliZWUzMWY2M2I3YWYKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBKYW4gNiAxNDozNDo0MiAyMDEyICswMTAwCisKKyAgICBGaXggYW4gTVNWQyBjb21waWxlciB3YXJuaW5nCisKK2NvbW1pdCAwZDFjMjFmOTk5MWQxMzA5ZDA1N2UzZTQwNTZkNTQ3ZGY3ZDQwZWNmCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgSmFuIDYgMTY6MDY6MzEgMjAxMiArMDEwMAorCisgICAgTWFrZSBkZWNsYXJhdGlvbiBhbmQgZGVmaW5pdGlvbiBvZiBzdHJsY2F0KCkgY29uc2lzdGVudC4KKworY29tbWl0IDBjM2Q0ZGJiMGE5Y2Y1YjM1OWY3MGIyZjE5OTE1NDk1NTU0Zjg0MGYKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBKYW4gNiAxNToyMzoxNiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBXaW4zMjogc25tcGQ6IFJlbW92ZSBkbG1vZAorCitjb21taXQgODkzZWNjOTdiNTg3NjYxMDQ1YmVjYmUwOWEzMjBjMWJjYmM3MWM3YworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIEphbiA2IDE0OjM2OjU5IDIwMTIgKzAxMDAKKworICAgIEFkZCBzdHJsY2F0KCkgdG8gdGhlIE1TVkMgYnVpbGQgaW5mcmFzdHJ1Y3R1cmUuCisKK2NvbW1pdCAzZDEyNjQyMmU2MjU3MDJiOWQzZmEwNjc2YTk3ZWM1Y2IyMGQ5ZDEwCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgSmFuIDYgMTU6MDE6MDYgMjAxMiArMDEwMAorCisgICAgTWFrZSB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBjb25zaXN0ZW50IHdpdGggaXRzIC5pbiBmaWxlCisKK2NvbW1pdCBhZjUzYjc2YzJmZmE3NTFlMzk1OGQwZmM1ZDgyNzlmNzhjMmMxYzI2CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgSmFuIDYgMTQ6NDM6NTUgMjAxMiArMDEwMAorCisgICAgU2tpcCBUMDY2cGFzc19zaW1wbGUgYW5kIFQwNjdwYXNzcGVyc2lzdF9zaW1wbGUgb24gTWluR1cKKworY29tbWl0IDM1YTkyZTY5M2QxMzNhNWIxMWU5ZTliNTk5ZGJmNDdlZGVmNDkzM2IKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBKYW4gNiAwODoxNjozNiAyMDEyICswMTAwCisKKyAgICBSZW1vdmUgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jIGFnYWluLCB3aGljaCB3YXMgYWRkZWQgYWNjaWRlbnRhbGx5IHdoaWxlIHJlc29sdmluZyBtZXJnZSBjb25mbGljdHMgKGNvbW1pdCAxZDc4ZjdkNWI1OGFlZDJiNTJjNGQzODZhN2JhODBhNDQ3MTFiYWNhKQorCitjb21taXQgYTliMDczZWEzYjZjZWRmNzEzZTMwNWU3YjE1ZjI4YWU1N2JmZGYxYgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEphbiA1IDE3OjQ3OjExIDIwMTIgKzAwMDAKKworICAgIEZpeCA2NC1iaXQgY29tcGlsZXIgd2FybmluZ3MKKworY29tbWl0IDdlODkwZGFkOTVmNTY2MDY5ZWUyODAyMTVhNGZlYTNmMGUyZTM5ODAKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBKYW4gNSAxNjozODo1MCAyMDEyICswMTAwCisKKyAgICBBdm9pZCBhIFNJR1NFR1YgaWYgY3AgPT0gTlVMTC4gVGhpcyBpcyBhIGZvbGxvdy11cCBmb3IgY29tbWl0IDA4OWJjYjM2MGFhMjY3OTBhZDJhOGNlZGRmNTgzYjdiYTVkZGZkNDguCisKK2NvbW1pdCAxZjYyMDBjZmUxYjBiMjdlYmIwOTNhMTYwNmI1OTJmOWU5Njg0YmU4CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgSmFuIDUgMTU6NTM6MzQgMjAxMiArMDEwMAorCisgICAgQ29udmVydCBzdHJuY3B5KCkgY2FsbHMgaW50cm9kdWNlZCBpbiB2NS42CisKK2NvbW1pdCBjMzEyNmIxNDM5MjFmYWJlYWM0NDIxNjZlY2E1YjViNzQyZmQ0MmMwCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgSmFuIDUgMTU6MDI6MzkgMjAxMiArMDEwMAorCisgICAgUmVwbGFjZSBtb3N0IHN0cm5jcHkoKSBjYWxscyBpbnRyb2R1Y2VkIGluIHY1LjUKKworY29tbWl0IGIyNGVlN2M5MDk2NTdkYjQzYmQ4YzVkOGMwMTA1NWNhMDg4M2M5Y2YKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBKYW4gNCAwODo0MDozOSAyMDEyICswMTAwCisKKyAgICBFbGltaW5hdGUgbW9zdCBzdHJuY3B5KCkgYW5kIHN0cm5jYXQoKSBjYWxscworICAgIAorICAgIFVzaW5nIHN0cm5jcHkoKSBhbmQgc3RybmNhdCgpIGlzIGVycm9yIHByb25lIC0tIHNlZSBhbHNvCisgICAgaHR0cDovL3d3dy5ncmF0aXNvZnQudXMvdG9kZC9wYXBlcnMvc3RybGNweS5odG1sLiBIZW5jZSByZXBsYWNlCisgICAgYWxsIGludm9jYXRpb25zIG9mIHN0cm5jcHkoKSBhbmQgc3RybmNhdCgpLiBSZXBsYWNlCisgICAgc3RybmNweShkc3QsIHNyYywgbikgY2FsbHMgYnk6CisgICAgKiBzdHJsY3B5KGRzdCwgc3JjLCBuKSBpZiB0aGUgZ29hbCB3YXMgdG8gYXZvaWQgb3V0cHV0IGJ1ZmZlciBvdmVyZmxvdy4KKyAgICAqIHNwcmludGYoZHN0LCAiJS4qcyIsIG4sIHNyYykgdG8gY29weSBhIHByZWZpeCBvZiBzcmMgdG8gZHN0IG9yIGlmIHNyYyBpcworICAgICAgICBub3QgJ1wwJy10ZXJtaW5hdGVkLgorICAgICogbWVtY3B5KGRzdCwgc3JjLCBuKSBpZiBzdHJsZW4oc3JjKSA+PSBuIGFuZCBuIDwgc2l6ZSBvZiBkc3QuCisgICAgKiBzdHJjcHkoZHN0LCBzcmMpIGlmIG4gPiBzdHJsZW4oc3JjKSBhbmQgbiA8IHNpemUgb2YgZHN0LgorCitjb21taXQgNmQ5NWJjNDE0OTQ3MjkzMTAwNTQ3NWMzMGE1NDFmZWQ1NTM0ZGEzOQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEphbiA1IDExOjE5OjE2IDIwMTIgKzAxMDAKKworICAgIEZpeCB3YXJuaW5ncyB0cmlnZ2VyZWQgZHVyaW5nIGNvbXBpbGF0aW9uIG9mIHRoZSBQZXJsIHhzIHNvdXJjZSBmaWxlcworCitjb21taXQgYmFkMDYwMGY2ZWM5NDRlZjg0NTVlMzI3Y2U3ODRiOWIwN2QyNDdjOQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEphbiA1IDEwOjAwOjEzIDIwMTIgKzAxMDAKKworICAgIEFkZCBjb25maWd1cmUgdGVzdCBmb3Igc29ja2FkZHJfdW4uc3VuX3BhdGggc3VjaCB0aGF0IHRoZSBjb20yc2VjIHRlc3QgaXMgcnVuCisKK2NvbW1pdCA5MmEzMmFjNDg2NmE1ZWRjN2YzNDdkMzc5NDJiZjAyOGRlMDI3NjJmCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgSmFuIDUgMTA6MDA6MjkgMjAxMiArMDEwMAorCisgICAgR2V0IHJpZCBvZiBhIGNvbXBpbGVyIHdhcm5pbmcKKworY29tbWl0IDgzZTRjMGUzMDRmNjE3Y2NhYzY2MTBlZGQ3NGQxNzA2Nzk3YmJmNTIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBKYW4gNSAwOToxNTozNyAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgYSB0ZXN0IGZvciBzZV9zdG9yZV9saXN0KCkKKworY29tbWl0IDRmYWU1ODUyMTAzZWMzODkzYWQ0ODhiYzBkOTA1Y2E2OTE0NTk1ZWYKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBKYW4gNSAwOToxNzoxNSAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBTaW1wbGlmeSB0aGUgc2Vfc3RvcmVfZW51bV9saXN0KCkgaW1wbGVtZW50YXRpb24KKworY29tbWl0IGIzMjIyYmIyNzVmMmYyMzQ2ZTBmZDA0NzhhZmEyZWZiNjAwNzczZTUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBKYW4gNSAwOToxNjo0NSAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBEZWNsYXJlICJ0eXBlIiBhcmd1bWVudCBvZiBzZV9zdG9yZV9saXN0KCkgLyBzZV9zdG9yZV9zbGlzdCgpIC8gc2Vfc3RvcmVfZW51bV9saXN0KCkgY29uc3QKKworY29tbWl0IDAyMmY4NDBmYmZjYjBlMjZiMDhmMGU1NTcyODIzMWY2MTE0OTU4MDMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBKYW4gNCAxOTo1NTo1NiAyMDEyICswMDAwCisKKyAgICBBdm9pZCB0aGF0IFZhbGdyaW5kIGNvbXBsYWlucyBhYm91dCBzZW5kaW5nIFVEUCBkYXRhCisKK2NvbW1pdCA2NzJhODA5YzIyOGU5NTUwYjk5Yjg5MTBiZTc1ZDBiMTYxOTg1NDAyCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgSmFuIDQgMTc6MzM6MDkgMjAxMiArMDAwMAorCisgICAgRml4IGEgNjQtYml0IGNvbXBpbGVyIHdhcm5pbmcKKworY29tbWl0IDI0ZmYyNjBhZDg5Y2UyYWEzNjFhNTVjN2M3MmU5MTYwMzFkZWZlMzUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBKYW4gNCAxNzoxMToyNCAyMDEyICswMTAwCisKKyAgICBDaGFuZ2UgdGhlIHR5cGUgb2YgdGhlIHNlY29uZCBhcmd1bWVudCBvZiBzbm1wX3NldF92YXJfdmFsdWUoKSBhbmQgc25tcF9zZXRfdmFyX3R5cGVkX3ZhbHVlKCkgZnJvbSB1X2NoYXIqIHRvIHZvaWQqLCBsaWtlIG9uIG1vcmUgcmVjZW50IGJyYW5jaGVzCisKK2NvbW1pdCBjNmNhNzM3ZmI0NmY5MGE0YmRhNWQ0MzczNGFhYzM0ZTgzN2EwNWY0CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTYXQgTWFyIDEzIDE5OjA3OjM3IDIwMTAgKzAwMDAKKworICAgIEJhY2twb3J0IGNvbW1pdCBmNTA0Y2UyZDc0YTRiYzg4ZjY4Y2M5NTE1ZmE3MDUzMzczY2IxNWI1LgorICAgIChGaXhlZCBtb3N0IGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgc291cmNlIGNvZGUgaW4gdGhlIHBlcmwgc3ViZGlyZWN0b3J5LiBOb3RlOiB0aGVzZSBjaGFuZ2VzIG1heSBjb250YWluIHNvbWUgcmVhbCBidWcgZml4ZXMuKQorICAgIAorICAgIENvbmZsaWN0czoKKyAgICAKKyAgICAJcGVybC9BU04vQVNOLnhzCisgICAgCXBlcmwvT0lEL09JRC54cworICAgIAlwZXJsL1NOTVAvU05NUC54cworICAgIAlwZXJsL2FnZW50L2FnZW50LnhzCisKK2NvbW1pdCBkMjEyZGM5ODRlYzM0ZTRkMjMwNjI1ZTQ2ZTU4YjBjNjI4YTUwZGY1CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgSmFuIDQgMTY6NDY6NDkgMjAxMiArMDEwMAorCisgICAgU05NUC54cyBjb21waWxlciB3YXJuaW5nIGZpeGVzCisKK2NvbW1pdCBiYWNlZWJiMTBkOGNhZjVkYjYzY2MzNjkzNWZlZDY1ZWU5MzEwMjlkCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgSmFuIDQgMTY6MjI6NDQgMjAxMiArMDEwMAorCisgICAgQWRkIGRlY2xhcmF0aW9uIGZvciBzaHV0ZG93bl9zbm1wTm90aWZ5VGFibGUoKQorCitjb21taXQgZjdmOTY2YWJkNmQyODQ5YjEzMzEyNTJhZmU1YzQ3M2U1YzQwYjMyZAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEphbiA0IDE0OjI0OjMzIDIwMTIgKzAxMDAKKworICAgIEZpeCBmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaGVzLgorCitjb21taXQgMzAzYzAxNWJjZmU5YWYwYjE1NGU5ODgxYzdiNGY0NDllMDhmMzBiYgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE1heSA2IDIyOjA2OjIzIDIwMDkgKzAwMDAKKworICAgIEJhY2twb3J0IGNvbW1pdCBkM2ViMmI1Y2VkMjJhODQ4MDA1M2NlNDNhY2Y5NzM5NzI5MDU1NDA0CisgICAgKFNwcmlua2xlIHNvbWUgY29uc3QtbmVzcyB3aGVyZSByZWxldmFudCAvIGZpeCBmb3JtYXQgc3RyaW5nIG1pc21hdGNoZXMsCisgICAgTmllbHMgQmFnZ2VzZW4sIE1heSAyMDA5KQorICAgIAorICAgIENvbmZsaWN0czoKKyAgICAKKyAgICAJYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5jCisgICAgCWFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYworICAgIAlhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYworICAgIAlpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgKKyAgICAJaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmgKKworY29tbWl0IGQ5NWI0MDQwNjkxNmJkYTViNDhiNWE2MTMxYmVjMjdiODY2YjBhNzkKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBNYXkgNiAyMTo1OToyMCAyMDA5ICswMDAwCisKKyAgICBCYWNrcG9ydCBhMmE3MzE2YzMxMGYwZmNjMzcyODY3M2ZhMDQ3MDUxYzIzYjcxOTYwCisgICAgKFRyaXZpYWwgd2FybmluZyBmaXhlcywgTmllbHMgQmFnZ2VzZW4sIE1heSAyMDA5KS4KKyAgICAKKyAgICBDb25mbGljdHM6CisgICAgCisgICAgCWFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYworICAgIAlhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMKKyAgICAJYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jCisgICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYworICAgIAlhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYworICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMKKyAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCisgICAgCWFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMKKyAgICAJYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYworICAgIAlhZ2VudC9zbm1wZC5jCisgICAgCXNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jCisKK2NvbW1pdCBkODZjNDdmMDAzZmRjMTkyYmNlN2I0NmFjNGYwNmIwOWUzODdjMTJiCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiA0IDEzOjI5OjA4IDIwMTIgKzAxMDAKKworICAgIEZpeGVkIGEgdHlwbworCitjb21taXQgYmVlNGQ3OWNmNGViN2UwYTQ1Mzk3ZjU5YjUyOThkYTYzM2E4ZTFiYQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBKYW4gNCAxMzoxNDo1NyAyMDEyICswMTAwCisKKyAgICBGaXhlZCByZWFkaW5nIHBhc3QgZW5kIG9mIGJ1ZmZlci4KKworY29tbWl0IDNkYzBlMDBhMmZkOGUzNGZlMWFlMzNlY2FiZjM2ZTE0NjQ2MGEzMWYKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDQgMTI6NDA6MDcgMjAxMiArMDEwMAorCisgICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gbGFyZ2UgJ3Rva2VuJyBpcyB1c2VkLgorCitjb21taXQgYjNjNDk4MjU0MmUwYWIxNTFmYjM4ODQ3NTRjZGZiY2I0NzJkYTUyZAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBKYW4gNCAxMjoyODo1MiAyMDEyICswMTAwCisKKyAgICBGaXhlZCBvZmYtYnktb25lIG1lbXNldC4KKworY29tbWl0IDBmNTM2OTUwNDRkZDNmMGMzNTA3NzUzZTNmOGMyOWQ5N2U5Njg3MmQKIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CiBEYXRlOiAgIFdlZCBBdWcgMyAyMTozODoyNiAyMDExICswMjAwCiAKICAgICBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZCwgcGVybDogRWxpbWluYXRlIGRlYWQgdmFyaWFibGVzCi0KLWNvbW1pdCA3OTRmOWE2OWQ3ZWI2NDIyNjgyMDBiMGE0YjE5OTE1MWRlZjY2ZWQwCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgQXVnIDMgMTQ6MzY6MjUgMjAxMSAtMDcwMAotCi0gICAgbWFudWFsIHByZS1tZXJnZQotCi1jb21taXQgNzMxODdjZTgzNDFlZTMwYjk1MjA0ZDIyYjY5YmNlNTE1MDEyYzBjNQotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEF1ZyAzIDExOjA2OjIzIDIwMTEgLTA3MDAKLQotICAgIGFkZGVkIGEgY29tbWVudAotCi1jb21taXQgNDM4YzIxMDg3NmRiZjdkMWY3N2NiMTRkMjJmOGVjOGVhNGYwZTc4ZAotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEF1ZyAzIDExOjAwOjMxIDIwMTEgLTA3MDAKLQotICAgIGF0IGVuZCBvZiBuc3JvbGx1cCBtZW50aW9uIHRoYXQgbm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJ1biBuc3N5bmMKLQotY29tbWl0IDM5YzJlMjUzYTJhYTFkZTEyOGM3ODUwNWM5MDljYzhhZTU0ZDBlMTYKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBBdWcgMyAxMDo1NjoxNCAyMDExIC0wNzAwCi0KLSAgICBhIG5ldyBuc3N5bmMoKSBmdW5jdGlvbiBmb3IgcHVzaC9wdWxsaW5nIGFjdGl2ZSBicmFuY2hlcwotCi1jb21taXQgZDhiMjA1MmEwMzU5YWQ5ZDFhNjhkOGQ1ODdiYzZiZTE1NjE1OGQyMAotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEF1ZyAzIDExOjAwOjMxIDIwMTEgLTA3MDAKLQotICAgIGF0IGVuZCBvZiBuc3JvbGx1cCBtZW50aW9uIHRoYXQgbm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJ1biBuc3N5bmMKLQotY29tbWl0IDRlZWE5ZWUzOGYwNmUwMDBhOTVkYzIwOWQwYTcxY2U2MGRhNDk0YjkKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBBdWcgMyAxMDo1NjoxNCAyMDExIC0wNzAwCi0KLSAgICBhIG5ldyBuc3N5bmMoKSBmdW5jdGlvbiBmb3IgcHVzaC9wdWxsaW5nIGFjdGl2ZSBicmFuY2hlcwotCi1jb21taXQgMjg0ZjVmYjc5ZTA1NmEyNzJmNzNiOTA5MzdkN2JmMDU3YzJhZjAyMQotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEF1ZyAzIDExOjA2OjIzIDIwMTEgLTA3MDAKLQotICAgIGFkZGVkIGEgY29tbWVudAotCi1jb21taXQgOGMwNDMyYTc0ZmVkZjhhMTM4NWM4YWQwZmYxZmI0MjlhMjhlYWI5OQotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEF1ZyAzIDExOjAwOjMxIDIwMTEgLTA3MDAKLQotICAgIGF0IGVuZCBvZiBuc3JvbGx1cCBtZW50aW9uIHRoYXQgbm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJ1biBuc3N5bmMKLQotY29tbWl0IGNhM2FkM2EyOGY4MWY1OWRmZmEzZGJiODA5YTc3MDE0NzI0MWUzZTUKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBBdWcgMyAxMDo1NjoxNCAyMDExIC0wNzAwCi0KLSAgICBhIG5ldyBuc3N5bmMoKSBmdW5jdGlvbiBmb3IgcHVzaC9wdWxsaW5nIGFjdGl2ZSBicmFuY2hlcwotCi1jb21taXQgNDlmNWY3YWY2NjU3ZTE2MWQ5NzEyZmMxZjYyYmUxODdhYmQ2YTE5NAotQXV0aG9yOiBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgQXVnIDMgMTA6Mjg6MTUgMjAxMSAtMDcwMAotCi0gICAgUmVlbmFibGUgSVAtTUlCOjppcERlZmF1bHRSb3V0ZXJUYWJsZQogICAgIAotICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotCi1jb21taXQgYjYxYWEwOTA2YWQ2ZDBjZWQ1ZWYzODY4YzI2ZGI1MzZhMjc2OTg3OQotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEF1ZyAzIDEwOjIzOjAwIDIwMTEgLTA3MDAKLQotICAgIEEgbmV3IGZ1bmN0aW9uOiBuc3NmcGF0Y2hhcHBseSB0aGF0IGF1dG8tcHVsbHMgZ2l0IGNvbW1hbmQgbGluZSBpbmZvIGZyb20gU0YKLQotY29tbWl0IDg2OGNkZmNiNmVjNDIyMGJjZGQ5YTBkZWQ0Yjg0ZWI0ZmNlZWI1M2EKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBBdWcgMiAxNDo0Mzo1MiAyMDExIC0wNzAwCi0KLSAgICBhZGRlZCB2YXJpYWJsZXMgbmFtZXMgdG8gdGhlIGdlbmVyYXRlZCBlcnJvciBtZXNzYWdlcy4KLQotY29tbWl0IGFmYTk3MzI1MjFmMWFlNmQ0ZTBjOWE5MTc0NWRhZGI2M2FjZTU0MGYKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBBdWcgMiAxMzoyMjozOCAyMDExIC0wNzAwCi0KLSAgICBXb3JkaW5nIGNoYW5nZXMgdG8gaGVscCBkZXNjcmliZSBjb250ZXh0cyBiZXR0ZXIKLQotY29tbWl0IDhlNzJmYmU4NDBiODkzMjU3OGRjOTJmOTExMzU5OGY2MDBjYjA1OTAKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBBdWcgMiAxMzoyMjoyMSAyMDExIC0wNzAwCi0KLSAgICBBZGRlZCB0aGUgbWlzc2luZyBVNjQgbTJpIGZpbGUKLQotY29tbWl0IDJmYTdkODdkMzk3OWVjMGZiYjgzNWJjZmZmODk4ZTZiZWMyYWJiZDkKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBBdWcgMyAxMDoyMzowMCAyMDExIC0wNzAwCi0KLSAgICBBIG5ldyBmdW5jdGlvbjogbnNzZnBhdGNoYXBwbHkgdGhhdCBhdXRvLXB1bGxzIGdpdCBjb21tYW5kIGxpbmUgaW5mbyBmcm9tIFNGCi0KLWNvbW1pdCA3M2U3NjU3NGFlNzI4YTRhNGEzMDYyMzU5N2VjMGI5NWZhMjc5N2M1Ci1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgQXVnIDIgMTQ6NDM6NTIgMjAxMSAtMDcwMAotCi0gICAgYWRkZWQgdmFyaWFibGVzIG5hbWVzIHRvIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCi0KLWNvbW1pdCBiMjRhNGYwYzk1NjUzMzUyMjBlZTIxN2QwYzBiNTEzMjFjYzFhNDRmCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgQXVnIDIgMTM6MjI6MzggMjAxMSAtMDcwMAotCi0gICAgV29yZGluZyBjaGFuZ2VzIHRvIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCi0KLWNvbW1pdCBlODM3YzdjYjYyYzY3NmEwMDU5ZDI4NDZlMDJlMzJmNWJiNjNjMWIxCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgQXVnIDIgMTM6MjI6MjEgMjAxMSAtMDcwMAotCi0gICAgQWRkZWQgdGhlIG1pc3NpbmcgVTY0IG0yaSBmaWxlCi0KLWNvbW1pdCA5NzM2MjM0YjM3OThiYTU0NjJhMGE3NDk0M2VkZTgwZTkwYTY0ODViCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgQXVnIDMgMTA6MjM6MDAgMjAxMSAtMDcwMAotCi0gICAgQSBuZXcgZnVuY3Rpb246IG5zc2ZwYXRjaGFwcGx5IHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgotCi1jb21taXQgYmY3MTc4YjBiMjI1ODdkNDNkMWE4MGMyNjljZDIxNmJkNTkzMDIxNAotQXV0aG9yOiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KLURhdGU6ICAgTW9uIEp1bCAxOCAwNDozMTowOCAyMDExICswNDAwCi0KLSAgICBhZ2VudDogY2hhbmdlIHR5cGUgb2Ygc25tcF9lbmFibGVhdXRoZW50cmFwcyB0byBsb25nCisgICAgQ29uZmxpY3RzOgogICAgIAotICAgIFR5cGUgb2Ygc25tcF9lbmFibGVhdXRoZW50cmFwcyB2YXJpYWJsZSBpcyBjaGFuZ2VkIGZyb20gaW50IHRvIGxvbmcuCi0gICAgVGhpcyBmaXhlcyB0aGUgYnVnIHdpdGggd3JpdGluZyB0byBzbm1wRW5hYmxlQXV0aGVuVHJhcHMgaWYgc2VydmVyIGlzCi0gICAgY29tcGlsZWQgZm9yIDY0Yml0IChzbm1wc2V0IHJlcG9ydHMgd3JvbmcgbGVuZ3RoKS4gVGhpcyBidWcgd2FzCi0gICAgaW50cm9kdWNlZCBhIGxvbmcgdGltZSBhZ28gKGJ5IGZhZWVjZDAgY29tbWl0KS4KKyAgICAJYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCisgICAgCWFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMKKyAgICAJYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCisgICAgCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYworICAgIAlhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYworICAgIAlhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYworICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYworICAgIAlhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzX2xpbnV4LmMKKyAgICAJYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCisgICAgCWFwcHMvc25tcHRscy5jCisgICAgCWFwcHMvc25tcHRyYXBkX2xvZy5jCisgICAgCXNubXBsaWIvZGlyX3V0aWxzLmMKKyAgICAJc25tcGxpYi9zbm1wX2NsaWVudC5jCisgICAgCXNubXBsaWIvc25tcF9vcGVuc3NsLmMKKyAgICAJc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYworCitjb21taXQgMDE1MzgwNWM5OWI5MTk3MzY1OTM1YzVkMTFhZTljM2Q0YmZhYTBmMworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEphbiA0IDA5OjQ4OjQxIDIwMTIgKzAxMDAKKworICAgIEZpeCBhIHNldC1idXQtbm90LXVzZWQgd2FybmluZworCitjb21taXQgM2Y4ODg1ZmJlZTk0MDc3NDhmYzJmMDU3MzcyOGExMWJhMmJjMDIzYQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBBcHIgMjggMDU6NTE6MTMgMjAwOSArMDAwMAorCisgICAgUmV0dXJuIGEgdmFsdWUgZnJvbSBzcHJpbnRfcmVhbGxvY192YWx1ZSBldmVuIGlmIG5vIHN1YnRyZWUgaXMgbG9jYXRlZC4KICAgICAKLSAgICBBY3R1YWxseSB0aGlzIGlzIGEgJ2xlc3MgZWZmb3J0JyB0eXBlIG9mIGZpeCBidXQgSSB3b25kZXIgd2h5IHdlIG5lZWQgYQotICAgIGxvbmcgdG8gc3RvcmUgYW4gSU5URUdFUiBpbiB0aGUgZmlyc3QgcGxhY2U/Ci0gICAgCi0gICAgU2lnbmVkLW9mZi1ieTogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+Ci0gICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisgICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc1NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCiAKLWNvbW1pdCAxNmMwMmQ2OWNjOWNlNGZkNGU3NzEwYTBiZjk0MzBmNTIxNzVlZDUwCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgQXVnIDIgMTQ6NDM6NTIgMjAxMSAtMDcwMAotCi0gICAgYWRkZWQgdmFyaWFibGVzIG5hbWVzIHRvIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCi0KLWNvbW1pdCA3ZmVkNjFiZjBhZjE0NzdlYjc0MGEwNTg4ZjZhMTFhMTJiNzIzNTk1Ci1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgQXVnIDIgMTM6MjI6MzggMjAxMSAtMDcwMAotCi0gICAgV29yZGluZyBjaGFuZ2VzIHRvIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCi0KLWNvbW1pdCA5MzgwNjEyZmRjYjRmOWJiMDgxYzRhNDY3NDY2OTIxMjRhYmVkZTUwCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgQXVnIDIgMTM6MjI6MjEgMjAxMSAtMDcwMAotCi0gICAgQWRkZWQgdGhlIG1pc3NpbmcgVTY0IG0yaSBmaWxlCi0KLWNvbW1pdCA2MWIxNzhmMWVlODk1MmFhMDNhYTNiMWJhNTFmNGE2NjU1ZTQ3ZjAxCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgotRGF0ZTogICBXZWQgQXVnIDMgMTg6MDk6NDcgMjAxMSArMDIwMAotCi0gICAgQ0hBTkdFUzogV2luZG93czogUGVybCBtb2R1bGVzIGJ1aWxkIG5vdyB3aXRoIElQdjYgZW5hYmxlZC4KLQotY29tbWl0IGYyODMyZTM0MDc4NzdlNzFhN2VhNmRlYTY1OWUzZTIwYTBjNWZhNzgKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIFdlZCBBdWcgMyAxNzo0MzowMSAyMDExICswMjAwCi0KLSAgICBXaGl0ZXNwYWNlLW9ubHkgY2hhbmdlOiBmaXggaW5kZW50YXRpb24gb2YgYW4gI2luY2x1ZGUgZGlyZWN0aXZlCi0KLWNvbW1pdCA3ZmNjMGI4MDMyZjhkYTViN2JjMzAwNTlhZjBiYTY1NmVhZTcxMDkxCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgotRGF0ZTogICBNb24gQXVnIDEgMTQ6MTE6MjggMjAxMSArMDIwMAotCi0gICAgc211eDogRml4IHJlY2VudGx5IHJlaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBzaXplX3QgPD4gc3NpemVfdCBtaXNtYXRjaGVzCi0KLWNvbW1pdCBiNDg0Yjg4ZDZlNTdiNDI1YTg0NjdmNWEzOTMzMzMxMmZlZDJhY2YyCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgotRGF0ZTogICBUdWUgQXVnIDIgMDk6MzE6NTAgMjAxMSArMDIwMAotCi0gICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBpbiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9hY2Nlc3MuYwotCi1jb21taXQgOTQ0NjEyZWY1NmFkMjU2NGFhZmUxNGRmNmQwOGUwNDhiNzIyOGI4NgotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KLURhdGU6ICAgTW9uIEF1ZyAxIDE0OjQ5OjQxIDIwMTEgKzAyMDAKLQotICAgIC5naXRpZ25vcmU6IEFkZCBmaWxlIG5hbWVzIGFuZCBwYXR0ZXJucyBmb3Igb3V0cHV0IGZpbGVzIGdlbmVyYXRlZCBkdXJpbmcgdGhlIFdpbmRvd3MgYnVpbGQKLQotY29tbWl0IDI2MDA5MDEyNzg1ZjgyOGJiZmM4NzU5YWZiYmJmYzU4NzAwZmYxZjYKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIEZyaSBKdWwgMjkgMDk6NTk6MzEgMjAxMSArMDIwMAotCi0gICAgLmdpdGlnbm9yZTogU29ydCBhbHBoYWJldGljYWxseQotCi1jb21taXQgNWUzZmY1NTk2NjQ4ZTA5MDdkNTcxZDdhNGQzYTNhOGMyNDAyZDhlZQotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KLURhdGU6ICAgRnJpIEp1bCAyOSAwODo0MzoxOSAyMDExICswMjAwCi0KLSAgICAuZ2l0aWdub3JlOiBBZGQgYXBwcy9zc2h0b3NubXAKLQotY29tbWl0IDMxYTNhMmEwNjI0MDQ2NTExY2EwN2VjMWY1MjFhMjJkNzk2NmRiODAKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIE1vbiBBdWcgMSAxMzozODowMSAyMDExICswMjAwCi0KLSAgICBSZW1vdmUgdHdvIGdlbmVyYXRlZCBQZXJsIGZpbGVzLgotCi1jb21taXQgYWRhZGNiOTllNTdiOTNiZTY3MGE3YzUxN2ZjOTg5ZGZmZTczOTZlOQotQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEF1ZyAyIDAwOjU2OjQ5IDIwMTEgKzAyMDAKLQotICAgIHN1cHByZXNzICJvayIgdGVzdCBvdXRwdXQgaW4gbnNiCi0KLWNvbW1pdCA0MDEyNWQ4NTM5Y2Q4OWY5NTJmYmMyNDU4OGM1ZTgxZTljZDgyMWZlCitjb21taXQgYjFlYWFmMzAyMzY5ZmQ0NTUyZThmZWU3YjZhODA1MDkxZWMwYTliNAogQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBBdWcgMSAxMzo1ODozMyAyMDExICswMjAwCitEYXRlOiAgIFdlZCBKYW4gNCAxMTozODo1MSAyMDEyICswMTAwCiAKLSAgICBEZXRlY3QgU01VWCByZWN2ZnJvbSgpIGVycm9ycyBwcm9wZXJseS4KKyAgICBBZGRlZCBjaGVjayBvZiBmaW5kX3NlY19tb2QoKSByZXR1cm4gdmFsdWUuCiAKLWNvbW1pdCA1YWNmMGQyY2ViMzk3Nzk2NGVkMzlmMDAzMDczYmE2NDEzOGMyZWJkCi1BdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTdW4gSnVsIDMxIDIzOjU3OjQxIDIwMTEgKzAyMDAKLQotICAgIEZvbGxvdy11cCBmb3I6IGJ1aWxkIGZpeCBmb3Igc3lzdGVtcyBsYWNraW5nIGZpZWxkIG1zZ19jb250cm9sIGluIHN0cnVjdCBtc2doZHIKLQotY29tbWl0IGFlOWFjNmM5ODEyODI0YmY1Yjg0OGRjMWYzY2NmNzIyN2M0MzZkMGQKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIFN1biBKdWwgMzEgMDk6MTE6MjggMjAxMSArMDIwMAotCi0gICAgRml4IGFuIGluY29ycmVjdCBzb3VyY2UgY29kZSBjb21tZW50OiB0aGVyZSBpcyBubyByZXF1aXJlbWVudCBpbiB0aGUgQU5TSSBDIHN0YW5kYXJkIHRoYXQgc3RhY2sgdmFyaWFibGVzIHNob3VsZCBiZSBpbml0aWFsaXplZCB0byB6ZXJvLgotCi1jb21taXQgMjQyZTE3OTdiMjY5NGEwNjg5ODU2YWUzNmQwNWQzNDEzYWFmOGQ3NwotQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU3VuIEp1bCAzMSAwMTo0NDowOSAyMDExICswMjAwCi0KLSAgICBGb2xsb3ctdXAgZm9yOiBidWlsZCBmaXggZm9yIHN5c3RlbXMgbGFja2luZyBmaWVsZCBtc2dfY29udHJvbCBpbiBzdHJ1Y3QgbXNnaGRyCi0KLWNvbW1pdCA4MmQ3M2ZiMTFiZTNhZTMxZjM5YzlkNjE4ZDUzODhkYzliMTAwNmQ3Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgotRGF0ZTogICBGcmkgSnVsIDI5IDIwOjUxOjI3IDIwMTEgKzAyMDAKLQotICAgIFVuYnJlYWsgdGhlIFdpbmRvd3MgYnVpbGQKLQotY29tbWl0IDU0YTQ0Y2I3ZGQ3MWRlNjYxNmE1Y2NiZmVkMzRhOGI3OTYzNDZkNTEKLUF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFNhdCBKdWwgMzAgMTQ6Mjg6MjkgMjAxMSArMDIwMAotCi0gICAgYXV0b3JlY29uZgotCi1jb21taXQgMTA5ZjY2OTRkNzg4ZjQ4ZWJkOWZjMGExZTkwYzQ1YWJjMzdiZWEyMAotQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU2F0IEp1bCAzMCAxNDoyMjoxOSAyMDExICswMjAwCi0KLSAgICBDSEFOR0VTOiBidWlsZGluZzogYnVpbGQgZml4IGZvciBzeXN0ZW1zIGxhY2tpbmcgZmllbGQgbXNnX2NvbnRyb2wgaW4gc3RydWN0IG1zZ2hkcgotCi1jb21taXQgOWU0N2FjNDM5MzMzZDJiYjdjODA2ODYyNDFkYjczMzFhODg3NzBmYgotQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU2F0IEp1bCAzMCAwMDoxODoxNCAyMDExICswMjAwCi0KLSAgICBtaW5vciBuc2IgZml4ZXMvZW5oYW5jZW1lbnRzIGZyb20gbXkgb2xkIHN2biB0cmVlCi0KLWNvbW1pdCBjNDgxNzNjMDZhOWVhYWRiZjgxZTZiNDk2MmQ1NWVmMGE1NGRiMjUxCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgotRGF0ZTogICBGcmkgSnVsIDI5IDEwOjI3OjM5IDIwMTEgKzAyMDAKLQotICAgIEZpeCBhIGJ1ZyBpbiBhIGRlYnVnIHN0YXRlbWVudAotCi1jb21taXQgZWNhMWI5YTI1NDUwY2Q4NzViMjAxMmM1MWMwOTBiYTJiOTdlMDYyOAotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KLURhdGU6ICAgRnJpIEp1bCAyOSAxMDowNDowMiAyMDExICswMjAwCi0KLSAgICBSZXJ1biBhdXRvcmVjb25mCi0KLWNvbW1pdCA2OWFhOWUwMzJjYWY1ZWI3MTNiYjAwNzQ1MTM0NjQwZmU5ZmQwMjM1Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgotRGF0ZTogICBGcmkgSnVsIDI5IDA5OjU5OjMxIDIwMTEgKzAyMDAKLQotICAgIC5naXRpZ25vcmU6IFNvcnQgYWxwaGFiZXRpY2FsbHkKLQotY29tbWl0IGMzODU5N2RmYTBiMWQzNjdkNTJiYmRjMGFlYWFkZmYwMTU1ODUwYWQKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIEZyaSBKdWwgMjkgMDg6NDM6MTkgMjAxMSArMDIwMAotCi0gICAgLmdpdGlnbm9yZTogQWRkIGFwcHMvc3NodG9zbm1wCi0KLWNvbW1pdCA3NzRkMGI2NmVlMGFjYWZlYWZhMjFmYzhkOTkzODY0Nzc5ZTUwZTYzCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgotRGF0ZTogICBGcmkgSnVsIDI5IDA3OjQzOjU0IDIwMTEgKzAyMDAKLQotICAgIEZpeCB0d28gZmlsZW5hbWVzIGluIGhvc3QgbWliIHNvdXJjZSBjb2RlIGNvbW1lbnRzLgotCi1jb21taXQgMzQ1ODEyOGI0YTNjNTk3MTk5ODg5NGY5ZDlkOGNjYzZjNzZkM2M5YgorY29tbWl0IGFlZTRlODk1ZmUzYmQ1ZjRhNjFlMzQyNzViZmNhMDM2OGI1NjA1NTUKIEF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgSnVsIDI4IDE2OjE2OjE1IDIwMTEgKzAyMDAKK0RhdGU6ICAgV2VkIEphbiA0IDExOjMxOjIyIDIwMTIgKzAxMDAKIAotICAgIEZpeCBwb3RlbnRpYWwgc2lnc2VndiB3aGVuIGFuIGlmVGFibGUgZW50cnkgaXMgcmVtb3ZlZCBhcyByZXN1bHQgb2YgYm90aCBpbnRlcmZhY2VfcmVwbGFjZV9vbGQgYW5kIGludGVyZmFjZV9mYWRlb3V0IGF0IHRoZSBzYW1lIHRpbWUuCisgICAgQWRkZWQgY2hlY2sgb2Ygc25tcF9zZXNzX3RyYW5zcG9ydCgpIHJldHVybiB2YWx1ZS4KIAotY29tbWl0IGEyZjllY2UwNmNmMDBlZTQ3Y2U3ZTg1NjcyMjEwYzFiNTc4NmYzMTEKK2NvbW1pdCA1ZDFkMGE3NDRhYjMwYzhlNjQ1YzNiODUwNmNiYmQyY2NlYjNkMjc1CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiA0IDExOjA0OjQ4IDIwMTIgKzAxMDAKKworICAgIEFkZGVkIGNoZWNrIG9mIG5ldHNubXBfZXh0cmFjdF9pdGVyYXRvcl9jb250ZXh0KCkgcmV0dXJuIHZhbHVlLgorCitjb21taXQgMjk5ZWE5YTg5YzNmMTc1OGE3NzQ4YmI5YjM0MTFmNjJmMmM3MGY4OAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBKYW4gNCAxMDo1NDo1NSAyMDEyICswMTAwCisKKyAgICBBZGRlZCBjaGVjayBvZiBmb3BlbigpIHJldHVybiB2YWx1ZSwganVzdCBpbiBjYXNlIG9mIHNvbWUgcmFjZS4KKworY29tbWl0IDkwZjFhZTY3NTc5MTc0ODE2MzZlZWY3NzEwMGNhZWViNTNlZGZlMDEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBKYW4gMyAxMDowNjo1NiAyMDEyICswMTAwCisKKyAgICBBZGQgc3RybGNhdC5jLiBTb3VyY2U6IGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvY2dpL2N2c3dlYi5jZ2kvc3JjL2xpYi9saWJjL3N0cmluZy9zdHJsY2F0LmMuCisKK2NvbW1pdCAwODliY2IzNjBhYTI2NzkwYWQyYThjZWRkZjU4M2I3YmE1ZGRmZDQ4CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiA0IDEwOjUwOjU2IDIwMTIgKzAxMDAKKworICAgIEFkZGVkIHN0cnJjaHIgcmV0dXJuIHZhbHVlIGNoZWNrLCBqdXN0IHRvIGJlIHN1cmUuCisKK2NvbW1pdCAxOTlhMDUxMWY2ZWIwZWYzZmYxZDlmOTIyYjc5MGFiNjdkZmRlMDFlCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgSmFuIDQgMTA6MzE6MjYgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IHNtdXg6IHNpbXBsaWZ5IHNtdXhfbGlzdF9kZXRhY2goKQorCitjb21taXQgZDg4MzU3M2FhNzNlMGY1ZmMxODhhY2VkZWU2NDUxZjk1ZGFlOTAwYworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEphbiA0IDEwOjIzOjA2IDIwMTIgKzAxMDAKKworICAgIEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgaW50cm9kdWNlZCBieSBjb21taXQgYTgwOWZlNTA3NWM5ZjM3NDcxNWY3ZDFhNjgyOTQ5YTA3MzAxNzJjMS4KKworY29tbWl0IDdiN2EzZWIyNTAwNTI3ZWFhMTY5OTI4N2E2Y2E2ZmNjNGNjMmUwOGEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBKYW4gNCAwOTo0MDowMiAyMDEyICswMTAwCisKKyAgICBGaXggYSBidWlsZCBlcnJvciBjYXVzZWQgYnkgY29tbWl0IGE4MDlmZTUwNzVjOWYzNzQ3MTVmN2QxYTY4Mjk0OWEwNzMwMTcyYzEuCisKK2NvbW1pdCAyYjZjMTE5ZmVkNDg0OGRhNjY2M2MxMWYwYzJjYmRjMjk5MjFiNWM2CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAzIDE1OjUxOjEwIDIwMTIgKzAxMDAKKworICAgIENoZWNrIGZvciBuZXRzbm1wX2RzX2dldF9pbnQoKSBlcnJvcnMuCisKK2NvbW1pdCA2Y2U1MzYwY2FhNGM5ZGU1MWFkZTU3ODc5ZTgzZjk2YmQwNGI0YzVhCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAzIDE1OjQyOjIzIDIwMTIgKzAxMDAKKworICAgIENoZWNrIGZvciBtaXNzaW5nIHZpZXcuCisKK2NvbW1pdCBiM2JjNTRiZWQzMTY5MGE4NWRmMmFjZmJmMzI5NmRhOTNhOWU4OWI0CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAzIDE1OjIzOjE3IDIwMTIgKzAxMDAKKworICAgIENoZWNrIHNvY2tldCgpIHJlc3VsdC4KKyAgICBBbHNvIGNsb3NlIHRoZSBzb2NrZXQgb24gZXJyb3IuCisKK2NvbW1pdCA5MjA3NWY1MWNkNDVhMzhjYTM4NzYwYjNmZmU4MmUxNjU1OWU5YzJlCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAzIDE1OjE4OjI2IDIwMTIgKzAxMDAKKworICAgIENoZWNrIG9wZW4oKSByZXN1bHQuCisKK2NvbW1pdCA2NjY1ZDVmZTJmYzU2OWQ2ZmE4NTRkMWQ3OGUzNDdiYmFjNjllMDcwCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAzIDE0OjIyOjIyIDIwMTIgKzAxMDAKKworICAgIEZpeGVkIG1pc3NpbmcgYnJlYWsuCisKK2NvbW1pdCBhNjY0OGM1NDUzZTFlZjhkYWM1N2EzOGVmY2MwMGNjZTUzYmY5ZTRmCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAzIDE0OjIwOjI3IDIwMTIgKzAxMDAKKworICAgIEZpeGVkIG1pc3NpbmcgYnJlYWsuCisKK2NvbW1pdCBkNjhkY2FlMGYxOGQ1NTQ1NzFhZWYzMjE5NDRhNTI5MDU0OGRkZTg2CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAzIDE0OjE2OjExIDIwMTIgKzAxMDAKKworICAgIEFkZGVkICdmYWxsdGhyb3VnaCcgY29tbWVudCBmb3IgQ292ZXJpdHkuCisKK2NvbW1pdCBmYjZmODBjMGZlM2JhMzZlNTZmNWI5MTFhNDdlM2Y2ZjMyYmEyNjZlCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAzIDE0OjE0OjA3IDIwMTIgKzAxMDAKKworICAgIEZpeGVkIGV4aXQgY29kZSBvZiBlbmNvZGVfa2V5Y2hhbmdlIHdpdGggd3JvbmcgYXJndW1lbnRzLgorICAgIEFsc28gYWRkZWQgYSBjb21tZW50IGZvciBDb3Zlcml0eS4KKworY29tbWl0IDMxMzBlMjRmZGMyMzI0NjRkZDdiYjIxNmY0NmNhZmEyZTBlNzc1YTYKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDMgMTQ6MDk6NTQgMjAxMiArMDEwMAorCisgICAgQWRkZWQgbWlzc2luZyBicmVhaworCitjb21taXQgMThjMTI2YTk1NjVjYjRkNjlkNzUxM2I5NDRhMjEwNTU4ODA0NWQzNQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMyAxNDowNzoyOSAyMDEyICswMTAwCisKKyAgICBBZGRlZCAnZmFsbHRocm91Z2gnIGNvbW1lbnQgZm9yIENvdmVyaXR5LgorCitjb21taXQgNmQzMWM4MjA3MGEyYzY4ZmUzYzUxOWU5ZDU2ZmEyNzc5NTU0ZDAxZgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMyAxNDowMTo1MyAyMDEyICswMTAwCisKKyAgICBBZGRlZCAnZmFsbHRocm91Z2gnIGNvbW1lbnQgZm9yIENvdmVyaXR5LgorCitjb21taXQgZGM2ZjBlMmU1NDliNGNkMDYxZWJjMTkwMDg0YjFmYzc3YTU1ZjQwZgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMyAxMzozMjo1OSAyMDEyICswMTAwCisKKyAgICBGaXhlZCB3cm9uZyBvcGVyYXRvcgorCitjb21taXQgZGFiMzI4NjdlZDBiOTkzMDFlZmQ3YjhkODUyYWQxMjg4YTE4NGJlMAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMyAxMzozMDozMyAyMDEyICswMTAwCisKKyAgICBGaXhlZCBRVUlURlVOIHVzYWdlLgorCitjb21taXQgYjFhMmJjZjY0NjE1ZWI2NmJjMjRkNWJlNDk1MGU0NTAxMjk2MjA0NQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMyAxMzoxODowMyAyMDEyICswMTAwCisKKyAgICBGaXhlZCB3cm9uZyBvcGVyYXRvcgorCitjb21taXQgYjJiMWM4NTFiOTRmZWQzN2MzODZlYWExYmZlYWQ1Yzc3Njk2ZTNlZgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMyAxMzoxNDo1MiAyMDEyICswMTAwCisKKyAgICBGaXhlZCB3cm9uZyBvcGVyYXRvcgorCitjb21taXQgYTgwOWZlNTA3NWM5ZjM3NDcxNWY3ZDFhNjgyOTQ5YTA3MzAxNzJjMQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMyAxMDo1ODo0NiAyMDEyICswMTAwCisKKyAgICBBZGRlZCBjaGVjayBmb3IgZmFpbGVkIHJlZ2lzdGVyX21pYi4KKworY29tbWl0IDU5NDlmMDU1YzE2YWU2NTA2MTVhYWU3YTFmZWUzZjJkN2IxNmQ5NDAKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDMgMTA6Mjk6NTkgMjAxMiArMDEwMAorCisgICAgTWFrZSBNSUIgZmlsZSBwYXJzaW5nIGFuZCBkZXRlY3Rpb24gbW9yZSBzdHJpY3QgLSBMQUJFTCBpcyByZXF1aXJlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIE1JQiBmaWxlcy4KKworY29tbWl0IGU0YjY3MzY4M2M2OGJhOGIzYWJjMDQwYjkxMjVlYzMwNDY0M2NjN2MKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBKYW4gMSAyMzowMDoyNCAyMDEyICswMTAwCisKKyAgICBBc3N1bWUgdGhhdCBsaWJkbCBtaWdodCBiZSBpbiBBR0VOVExJQlMgb3IgU05NUExJQlMgc28gcHJlYWRkIHRoZW0uCisKK2NvbW1pdCBiMTNjMWU1N2JlZGJhNzliODA2MTAzYzc0ZjE5MjFkNTNhNzA2YjM4CitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gSmFuIDEgMjI6NTU6MDYgMjAxMiArMDEwMAorCisgICAgRG8gbm90IHJlcXVpcmUgdWNkLXNubXAvZGxtb2QgdW5sZXNzIGl0IHdpbGwgd29yay4KKworY29tbWl0IDI3ZGNlYTBkNWY4MDFkZjQ5NGFiMmNiNWM1YzBlYmU1NGViMGRjZDMKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBEZWMgMzEgMTQ6NDg6MjkgMjAxMSArMDEwMAorCisgICAgQWRqdXN0IHBhdGhzIGZvciB0ZXN0IHJlc3RydWN0dXJlCisKK2NvbW1pdCAxNGI2MGU4NWExYjU3MDBlOTNkMTI2ZTJmMjkxZDVjNDg1ZjM0ZTM2CitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTYXQgRGVjIDMxIDE0OjE0OjI5IDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBkbG1vZCBtb2R1bGUgZmFpbCByYXRoZXIgdGhhbiBnZW5lcmF0ZSBhIGR1bW15IG1vZHVsZSBpZiB0aGUgZGxvcGVuIGZ1bmN0aW9uIGlzbid0IGF2YWlsYWJsZS4KKworY29tbWl0IDk4YTk3NTM4ZmMxZTlmZjQ2YjYwZDVkOTY5MzQ3NDQ0NTc4Mzc4YzAKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBEZWMgMzEgMTM6MzU6MTMgMjAxMSArMDEwMAorCisgICAgQWRqdXN0IHRoZSBwYXRocyB0byBzdXBwb3J0IHRlc3RpbmcgZXZlbiBpZiBidWlsZGRpciAhPSBzcmNkaXIKKworY29tbWl0IDg4ZjBhZjNjZmI5MTZhZTU4NjNjYzI5ODYwNzFkNDM1ZjIwYzMwNjQKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBEZWMgMzEgMTE6Mzc6NTIgMjAxMSArMDEwMAorCisgICAgUmVkdWNlIHRoZSBzY29wZSBvZiB0aGUgdmFyaWFibGVzICdwJyBhbmQgJ2xlbicuCisKK2NvbW1pdCAwODE1YTc1MzZjNzZmN2U0ODQyNjM4NjgzZjY3NDg5NGExYThjZTE0CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IERlYyAyOSAxNDo0Mjo1NCAyMDExICswMDAwCisKKyAgICBSZXBvcnQgcHJvYmxlbXMgd2l0aCBTZXRVbmRvIHByb2Nlc3NpbmcKKyAgICBNaXNzZWQgd2hlbiBhcHBseWluZyBwYXRjaCAjMzQ0NTQ0MAorCitjb21taXQgZWIyYWIyMzc0MmNhODZjMGI4OWNjZmU5MWViNmVhMzc0YmYzYWNjMQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBEZWMgMjkgMTQ6Mzc6MzEgMjAxMSArMDAwMAorCisgICAgQ2hlY2sgZm9yIHRoZSBleHBlY3RlZCBlcnJvciAoRVBJUEUpIG9uIGNsb3N1cmUuCisgICAgTWlzc2VkIHdoZW4gYXBwbHlpbmcgcGF0Y2ggIzM0NDc0NDQKKworY29tbWl0IGFhYzEwYmM0ZjA1M2MwMTRmMzgyZDY1OTNmYzMyYWI5NWUwYjFhNTcKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgRGVjIDI5IDEyOjU5OjUyIDIwMTEgKzAwMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0NjM3Njc6IEhhbmRsZSBwYXJzaW5nIHN1YmlkZW50aWZpZXJzID4gMl4zMQorCitjb21taXQgYmJjMDJlMzZlOTBjMWFhYjc4OTg1NjJmOTYzZjVjYWRiMjZlMTBiZAorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFdlZCBEZWMgMjggMTc6MTU6MTYgMjAxMSArMDAwMAorCisgICAgTW92ZSBwYXNzL3Bhc3NfcGVyc2lzdCB0ZXN0cyB0byB0aGUgbmV3IGxvY2F0aW9uCisKK2NvbW1pdCAzODk4YzA0ZmQ2Zjg5ODY3MDYyZmRmZWJmMzY4NTdhYjYxOWMwNDUwCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgV2VkIERlYyAyOCAxNjo1MzoyNCAyMDExICswMDAwCisKKyAgICBBZGQgdGVzdHMgZm9yIHBhc3MvcGFzc19wZXJzaXN0LCBzdXBwbGllZCBieSBCaWxsIEZlbm5lcgorCitjb21taXQgZDVlZTNmMGExYTYzYmIxNzUyYzc0Y2JjYTU1YWEzZDQwYmY5YmYxMworQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBEZWMgMjcgMjE6NTg6NTEgMjAxMSArMDAwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDM0NDc0NDQ6IEZpeCBTSUdfUElQRSBoYW5kbGluZworICAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCisKK2NvbW1pdCAyYTE3YjM3NDMwYzE4NTI5OThjMzU4OGU1NDdkN2ViNjFjMDZkYTcxCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIERlYyAyNyAyMTo0NTozOCAyMDExICswMDAwCisKKyAgICBDSEFOR0VTOiBhZ2VudHg6IFBBVENIRVM6IDM0NDU0NDA6IE1vcmUgcm9idXN0IGhhbmRsaW5nIG9mIEFnZW50WCBlcnJvcnMKKyAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgorCitjb21taXQgZmU1OGEwZTVmNGQ0ZTJlMmVjYmNiNDczODJiMDhjYjFlNGRmMzUyYworQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBEZWMgMjcgMTg6MTY6MjMgMjAxMSArMDAwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzQ1Njc3MDogSGFuZGxlIChvYnNvbGV0ZSkgVUludGVnZXIgdHlwZSBwcm9wZXJseQorICAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCisKK2NvbW1pdCAxYmU4Y2YwOGE2N2E5MTg1NWZlZTFlYzRhMmQ4ZTA4N2M3ODEyNDU2CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIERlYyAyNyAxODowNDoxMCAyMDExICswMDAwCisKKyAgICBDSEFOR0VTOiBhZ2VudHg6IFBBVENIRVM6IDM0NDU0Mzc6IExvZyBBZ2VudFggZGlzY29ubmVjdGlvbnMKKyAgICAoaW4gbGluZSB3aXRoIGNvbm5lY3Rpb25zKSBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgorCitjb21taXQgMDY4MDM3Mjg5MTA3ZmFhMmJhM2Y1Y2QyZmIwMGMxOTQ5NGJiOWEwNAorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBEZWMgMjcgMTc6Mjc6NDYgMjAxMSArMDAwMAorCisgICAgSGFuZGxlIGFueSBHRVRORVhUIHJlcXVlc3QgT0lELCBub3QganVzdCBhIHNpbXBsZSB3YWxrLgorCitjb21taXQgYTc0ZmE1Mjg5ODMxMjNkMzU1YThjZGNhYTc3ZGQ0ZWI0YjhjNjk1OQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBEZWMgMjcgMTc6MDA6MTggMjAxMSArMDAwMAorCisgICAgQ0hBTkdFUzogcGFzczogUEFUQ0hFUzogMzQ5Mzk0OiBCcmluZyBwYXNzX3BlcnNpc3R0ZXN0IHNjcmlwdCBpbnRvIGxpbmUgd2l0aCBwYXNzdGVzdCoKKyAgICAoaS5lLiB1c2luZyB0aGUgbGVnaXRpbWF0ZSBzdHJ1Y3R1cmUgb2YgTkVULVNOTVAtUEFTUy1NSUIpCisgICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKKworY29tbWl0IGJiZTY0OWViZmE2MWVhMjIzOTkxNzBiMzZiOTlkYjMwYTFkZTgwMTIKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgRGVjIDI3IDE2OjU0OjM4IDIwMTEgKzAwMDAKKworICAgIFJld29yayAicGFzc3Rlc3QiIGV4YW1wbGUgdG8gZnVsbHkgdmFsaWRhdGUgR0VUTkVYVCByZXF1ZXN0cworICAgIGFuZCB1c2UgYSBsZWdpdGltYXRlIHN0cnVjdHVyZSBmb3Igb3V0cHV0LiAgQmFja3BvcnQgb2YgU1ZOCisgICAgcmV2aXNpb24gMTc2MzIgKHdoaWNoIHVwZGF0ZWQgJ3Bhc3N0ZXN0LnBsJyBidXQgbWlzc2VkICdwYXNzdGVzdCcpCisgICAgQ29ycmVjdCBpbiBicmFuY2hlcyA1LjUgYW5kIGFib3ZlCisKK2NvbW1pdCA4MmQwNmM3MjQ3YjIyYzhiMDFkNDViZjU1MDQxZDJmMWU2NDI3ZDQ5CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIERlYyAyNyAxMzo0NToxOCAyMDExICswMDAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ0NzY3MTogRml4IG92ZXJyaWRlIGhhbmRsaW5nIG9mIE9JRCB2YWx1ZXMKKyAgICBQYXRjaCBzdXBwbGllZCBieSBQaGlsbGlwIE8nRG9ubmVsbAorCitjb21taXQgYmE0YTljZTUxYzk2MDBmOWZkYTE2OGYxZTZlZmYzMmExZGI2M2NiOQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBEZWMgMjcgMTM6MjQ6MjYgMjAxMSArMDAwMAorCisgICAgVHdlYWsgLS1kaXNhYmxlLXNubXAtc2V0IGNoYW5nZXMKKworY29tbWl0IDgyN2M4YjI4ODMwMTcxZmFhOWM2MWQ1M2VmY2E5ZWI2NjAwNTYxYzIKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgRGVjIDI3IDExOjI1OjQzIDIwMTEgKzAwMDAKKworICAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0hFUzogMzQzMzg0NjogRml4IGZvciB1c2Ugd2l0aCBweXRob24gMi40CisKK2NvbW1pdCBmOThhNTRhOTljYWY3YjQ2YjEwMGE5MjBkYjk0MmNiY2E5YzQzOTI2CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIERlYyAyNyAxMDoxMDozNiAyMDExICswMDAwCisKKyAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbmZpZ3VyZWQgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQKKworY29tbWl0IDIzMGRmMTRmOTRjMzczNmZmMzQzNzlhNGUyODFlZWEzNTNiNDdmODAKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIE1vbiBEZWMgMjYgMjM6MzQ6MjMgMjAxMSArMDEwMAorCisgICAgRG8gbm90IGFzc2lnbiB0bVN0YXRlUmVmIHR3aWNlCisKK2NvbW1pdCBjOTZiM2I0ZDg1MzBhZDVlMGVmYjAzZjI0ZGFiNWU1ZjFhNDYwMDMxCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gRGVjIDI1IDExOjE4OjIxIDIwMTEgKzAxMDAKKworICAgIENvcnJlY3QgdXNlLWFmdGVyLWZyZWUuCisKK2NvbW1pdCBjNTk3OGM4OWNkZTI0NDBmNGQyMGRhZGJjOWQxZGQ4ZGI1NjJkNTZlCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gRGVjIDI1IDExOjE1OjQ0IDIwMTEgKzAxMDAKKworICAgIENvcnJlY3QgZG91YmxlLWZyZWUuCisgICAgCisgICAgbmV0c25tcF90bHN0bUFkZHJfYWRkIHRha2VzIG93bmVyc2hpcCBvZiBpdCdzIGFyZ3VtZW50IHNvIGNhbGxpbmcgZnJlZSBvbiB0aGUKKyAgICBhcmd1bWVudCBvbiBmYWlsdXJlIGlzIGluY29ycmVjdC4KKworY29tbWl0IGMxMzljYTEyM2I0NGJiM2I5YjZiZjkyMWUxNjA5Y2M0NWY2M2E2NjAKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBTYXQgRGVjIDI0IDE2OjU1OjMwIDIwMTEgKzAwMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTIDM0MTAwNTk6IEZpeCBzcGFyc2VseSBhdWdtZW50aW5nIHRyaWdnZXIgdGFibGVzCisgICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBUdXJuZXIKKworY29tbWl0IGM0YWUwMjFiMmU2Mzg0NDM3MDgxYzU2MjNmMzYwYzg4OTYzOTAxODgKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBTYXQgRGVjIDI0IDE2OjI5OjU0IDIwMTEgKzAwMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTIDM0MTAwNTA6IFNraXAgYWxyZWFkeS0ncHJvY2Vzc2VkJyB2YXJiaW5kcworICAgIEJhc2VkIG9uIG1pYjJjIHBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gVHVybmVyCisKK2NvbW1pdCBjNmFjY2Y4YzY2MjU0ZmE4YzQ4NzY3ZWQ3ZGVjNzk1ZGRhZmM1MjJlCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgU2F0IERlYyAyNCAxNjoyNzoxMSAyMDExICswMDAwCisKKyAgICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUyAzNDEwMDUwOiBTa2lwIGFscmVhZHktJ3Byb2Nlc3NlZCcgdmFyYmluZHMKKyAgICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIFR1cm5lcgorCitjb21taXQgYTYxODI2YWQ4Y2E1NDY2MWQxZDkwOTcxMjUwM2JkM2E4YjMyZWVkMAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgVGh1IERlYyAyMiAxODozNTo0NiAyMDExICswMTAwCisKKyAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgorICAgIAorICAgIG15TWF0Y2ggaXMgdW51c2VkIGFzIG5tYXRjaCBpcyB6ZXJvIGFuZCBhbHNvIHNpbmNlIHJlZ2V4QnVmZmVyIGlzIGNyZWF0ZWQKKyAgICB3aXRoIFJFR19OT1NVQiBzZXQuCisKK2NvbW1pdCBiYTRmYzgwZmUyY2ZkNWE1ZDg5MjMwZDhmMzcwM2U0ZmUwMWU2MDE5CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IERlYyAyMiAxOToyNDo0MCAyMDExICswMDAwCisKKyAgICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMzQwMjM3NjogZnJvbSBMZW9uYXJkbyBDaGlxdWl0dG86IFJlY29nbmlzZSBSZWlzZXJGUworICAgIEFsc28gbW92ZSB2YXJpb3VzIEZTVHlwZSBkZWZpbml0aW9ucyB0byB0aGUgYXBwcm9wcmlhdGUgYmxvY2tzCisKK2NvbW1pdCBiNWFjNGEwNGRjZDU0NzBkMDhkMDMzMjFhYmNkMWU5ODI2MjFlNmUwCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IERlYyAyMiAxNDozOTo0NiAyMDExICswMTAwCisKKyAgICBGaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5ncyBhZnRlciBzdHJuY3B5CisKK2NvbW1pdCAyYjM3ZTRlOGYyNTBhMGQ4ODIxMTk5YTc0YWMzZjRlNWI3YjdiYWJhCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IERlYyAyMiAxNDozMTo1MSAyMDExICswMTAwCisKKyAgICBGaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5ncyBhZnRlciBzdHJuY3B5CisKK2NvbW1pdCAzZDA4MzQ1MTU2YzQxOTMzM2RlOTY5ZjEzZDIxZmNlYzdlMThlOTRkCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IERlYyAyMiAxNDozMjoyOSAyMDExICswMTAwCisKKyAgICBGaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5ncyBhZnRlciBzdHJuY3B5CisKK2NvbW1pdCBjZDg1OWFkNTFjNGYxOGQ1YjBmYzY5ZGQ2NjlmY2IwNTFjNzk4OTY5CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IERlYyAyMiAxNDozOTozMyAyMDExICswMTAwCisKKyAgICBGaXhlZCB3cm9uZyBtZW1tb3ZlIHNpemUKKworY29tbWl0IDMwZmY1OGQwOWQ0YzlkNTQzOGJiNjIxMDU0ZmQ3YWQ3YTJhNTk3ZTQKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgRGVjIDIyIDE0OjA3OjE5IDIwMTEgKzAxMDAKKworICAgIEZpeGVkIHdyb25nIGxlbmd0aCBvZiBidWZmZXIgd2hlbiBwcmludGluZyBBU05fQklUX1NUUgorCitjb21taXQgNmMxNDg3ZTFkMzYwZDNkMjYwYTM5Y2IxZjViMTVkYTk3ODM5NTA1MworQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBEZWMgMjEgMTU6NDc6MzQgMjAxMSArMDEwMAorCisgICAgRml4ZWQgcG90ZW50aWFsIGZyZWUgb2YgdW5pbml0aWFsaXplZCBwb2ludGVyIGluIGVycm9yIGNhc2VzCisKK2NvbW1pdCBjNzZmYjk2ZjY1ZTMzYmEyZmQyMTJhOTIxZThjMzg2MTU1ZWU1YzdhCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIERlYyAyMSAxNTo0NDo0NiAyMDExICswMTAwCisKKyAgICBGaXhlZCB1bml0aWFsaXplZCB2YWx1ZXMgaW4gdWRwVGFibGUKKworY29tbWl0IGM0NDYwODY3OWI4OTc1MTE3NmYyOGEyZTU0ZDUyODJiNDZlMmEwNWMKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgRGVjIDIxIDE0OjU2OjEzIDIwMTEgKzAxMDAKKworICAgIFVzZSBjYWxsb2MgaW5zdGVhZCBvZiBtYWxsb2MgYW5kIG1hbnVhbCBjbGVhcmluZworCitjb21taXQgYTA1YzVmOTUxMzQ2MTgyNGU3OTAzYWU5YWU5YTZjMzM4NmUzMzg3OQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBEZWMgMjEgMTQ6NDA6NTAgMjAxMSArMDEwMAorCisgICAgRml4ZWQgcHJpbnRpbmcgb2YgdW5pdGlhbGl6ZWQgdmFyaWFibGUgd2hlbiBzZW5zb3JzX2dldF9sYWJlbCgpIGZhaWxzCisKK2NvbW1pdCBlNGE1ZWRjNzIzOTNiZDNkZTliZjEyYmNlYmE5ZDgzYmJmN2RlNzBiCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIERlYyAyMSAxNDozMToyNSAyMDExICswMTAwCisKKyAgICBSZW1vdmVkIHVudXNlZCB2YXJpYWJsZQorCitjb21taXQgZmFlMmU1YjgzNWI4ZGYxZWFlNDdlNGNlYmI0ZWI0MDRkNzI4MjM3NworQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBEZWMgMjEgMTM6MzE6MjEgMjAxMSArMDEwMAorCisgICAgRml4ZWQgZGVyZWZlcmVuY2luZyB1bml0aWFsaXplZCBpaWQgaW4gZXJyb3IgY2FzZXMgYW5kIHdpdGggZGVidWcgaW5mbyBlbmFibGVkLgorCitjb21taXQgOWQ1OGY4MWE5MjM5Y2ZiY2ZjOGViY2UzNjdkMjFlOWIzZGNiMDI4YgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBEZWMgMjEgMTM6MzM6MzMgMjAxMSArMDEwMAorCisgICAgRml4ZWQgZGVyZWZlcmVuY2luZyB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBpbiBlcnJvciBjYXNlcworCitjb21taXQgMGJjOGMwOGVkZWFlN2FlMDk1ZjExNjI1OGMyMGFlNTc2N2Q2MDY1MgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBEZWMgMjEgMTM6MjA6NTIgMjAxMSArMDEwMAorCisgICAgRml4ZWQgcmV0dXJuaW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgJ3N0YXR1cycgd2hlbiBzcyA9PSBOVUxMCisKK2NvbW1pdCA3MzA0YzUzY2Y4YWRlZThlY2NlZjFhOGYyNjc1NmZjMDdmMDk4NzIxCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gRGVjIDE4IDIzOjMxOjUzIDIwMTEgKzAxMDAKKworICAgIE9uIHNvbGFyaXMgMTAgdGVzdCBpbiAvYmluL3NoIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgLWUgdGVzdC4gUmVwbGFjZSBpdCB3aXRoIC1mCisKK2NvbW1pdCA4Y2QzYmU2MGQ2OTNjOWMzNmZmYjk3ZDNkOWJjYjQ5YzFiNGFiZTM1CitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTYXQgRGVjIDE3IDA4OjUyOjI0IDIwMTEgKzAxMDAKKworICAgIEF2b2lkIHJlcGV0aXRpb24gb2YgdGhlIGNvbXBsZXggZXhwcmVzc2lvbiBkZXRlcm1pbmluZyBpZiBpdCBpcyBwb3NzaWJsZSB0byBnZXQgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MuCisgICAgCisgICAgVGhpcyBhbHNvIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIG9uIHBsYXRmb3JtcyBsaWtlIFNvbGFyaXMgMTAgdGhhdCBkZWZpbmUKKyAgICBJUF9SRUNWRFNUQUREUiBidXQgbGFjayBlaXRoZXIgb2YgbXNnaGRyLm1zZ19jb250cm9sIGFuZCBtc2doZHIubXNnX2ZsYWdzLgorCitjb21taXQgOTUzZjJlM2Q0MjVlZGUzYjg2M2EyZTdjY2IwYjRiYzg2MjkyOGI1NworQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IE5vdiA1IDIyOjEzOjA3IDIwMTEgKzAxMDAKKworICAgIE1vdmUgdGhlIHVzZSBvZiBfc2VuZHRvIGFuZCBfcmVjdmZyb20gYmVsb3cgdGhlaXIgZGVmaW5pdGlvbnMuCisKK2NvbW1pdCA2OGExMTczYzQ2Y2Y3NzYwMTQyNmNmMzkxZDlhODUyNzk0ZjIwNTdlCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gTm92IDIwIDIwOjA1OjE4IDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBsaWI6IFNlcGFyYXRlIG91dCB0aGUgY21lc2cgYnVmZmVyIHNpemUKKworY29tbWl0IDQ2MWRkMTZmM2IyNjQ3MzIyY2RjZTYzNjMwODFjYzQ0YmE1YTQ5YjUKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBOb3YgMjYgMjE6NTE6MDEgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogTWVyZ2UgdG9nZXRoZXIgdGhlIExpbnV4IGFuZCAqQlNEIHZlcnNpb24gb2Ygc3JjIHBvcnQgc2VuZGluZy4KKworY29tbWl0IDdhY2NiNjliYWExZmMwYjZhMzQzOWQyZTU0OWM4NmRhMzQ1M2JhZDIKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBEZWMgMTEgMTk6MzA6MzEgMjAxMSArMDEwMAorCisgICAgVXNlIGEgYmFyZSBzdHJ1Y3QgaW92ZWMgaW4gaW5zdGVhZCBvZiBhIG9uZSBlbGVtZW50IGFycmF5LgorICAgIAorICAgIFRoZSBwdXJwb3NlIG9mIHRoaXMgY2hhbmdlIGlzIHRvIG1ha2UgX3JlY3Zmcm9tIG1vcmUgc2ltaWxhciB0byBfc2VuZHRvLgorCitjb21taXQgMzk4NTJjZDRjODVlZjJiZmM3NWNkZWEyODI1MjYxZWU5M2U3NjhjMgorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIERlYyAxMSAxOToyOToyMCAyMDExICswMTAwCisKKyAgICBBZGQgY29tbWVudCBkZXNjcmliaW5nIHRoZSBwdXJwb3NlIG9mIHRoZSBjYWxsIHRvIGdldHNvY2tuYW1lIGFmdGVyIGFsbW9zdCByZW1vdmluZyBpdC4KKworY29tbWl0IDFiMjkyY2EyN2VhYjVjYWE3M2ZlYWFhODNkYzljMTJhYmMwZjJlNzAKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBEZWMgMTEgMTk6Mjc6NTkgMjAxMSArMDEwMAorCisgICAgUmVkdWNlIHZhcmlhYmxlIHNjb3BlLgorCitjb21taXQgYmM4Nzk1NzFlY2E5NTIwYmMxMzJmODQwYzNlNjU5ZDM3OTMxNDRkNworQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIERlYyAxMSAxOToyNTozNiAyMDExICswMTAwCisKKyAgICBJbnRyb2R1Y2UgdGVtcG9yYXJ5IHZhcmlhYmxlcyB0byBlYXNlIHRoZSBleHRyYWN0aW9uIG9mIHRoZSBzZXJ2ZXIgYWRkcmVzcy4KKworY29tbWl0IGI3ZWVhNmNmZmJkODcyOTMyY2UyYzA0ZmVmYjZmNDNkZTMzOWYzNzQKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBEZWMgMTEgMTk6MTg6MzMgMjAxMSArMDEwMAorCisgICAgUmVuYW1lIHRoZSBjbWVzZ3B0ciB2YXJpYWJsZSB0byBjbS4KKyAgICAKKyAgICBUaGUgcHVycG9zZSBvZiB0aGlzIGlzIHRvIGluY3JlYXNlIHRoZSByZWFkYWJpbGl0eSBvZiB0aGUgY29kZS4KKworY29tbWl0IDBhNzQ2MWU3Mjg4MDVjNjJhMWNhYjlkODdiZmM3NGM3OTI3YTlmY2MKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBEZWMgMTEgMTk6MTU6MjIgMjAxMSArMDEwMAorCisgICAgRmFjdG9yIG91dCBhIGNvbW1vbiBsb29wIGluIHJlY3Ztc2cgb3B0aW9uIHByb2Nlc3NpbmcuCisKK2NvbW1pdCBiM2M2MjQ4ZDAyMDFhYjE2MTA4NDBkNmQwZTc0OWIzYjZjNGFkNzkyCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gRGVjIDExIDE5OjEzOjQzIDIwMTEgKzAxMDAKKworICAgIFVuaWZ5IHRoZSBzdHJ1Y3R1cmUgb2YgTGludXggYW5kIEJTRCByZWN2bXNnIG9wdGlvbiBwYXJzaW5nIHNvbWV3aGF0LgorCitjb21taXQgMzU2NDAwZDYyOTBhNDIzYjUyZWJlZWE1YTVlOTc2ZmIxNWJiNzNiNAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIERlYyAxMSAxOTowNDo1NiAyMDExICswMTAwCisKKyAgICBVc2UgQ01TR19EQVRBIG9uIHRoZSByZXN1bHQgb2YgQ01TR19GSVJTVC9ORVhUSERSLCBub3Qgb24gdGhlIGJ1ZmZlci4KKworY29tbWl0IDNiMzUxNzA4YzYyZGU0NmFhMWI5MGVkMjMyY2ZkOGM3YzViMDIyMzEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBEZWMgOCAxMjowMDozMiAyMDExICswMTAwCisKKyAgICBSZW1vdmUgYSBjYXN0CisKK2NvbW1pdCBkZTkyNTBkOWRhZTk3MjdhNmNjN2Y2NDc2ODhkZGRmMWI4NTk3MTI4CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgRGVjIDggMTE6NTg6MDQgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IE1ha2Ugc3ByaW50X21pYl9vaWQoKSB0cmVhdCBPSUQgY29tcG9uZW50cyBhcyB1bnNpZ25lZCBpbnN0ZWFkIG9mIHNpZ25lZCBpbnRlZ2VycworCitjb21taXQgMGUzM2IzYjZkNTg1NGE0YmFjMTVkNGVhNWUwMTZjNTNkMTYxZDBjZAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IERlYyA4IDEwOjAyOjI4IDIwMTEgKzAxMDAKKworICAgIEZpeCByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzCisKK2NvbW1pdCBiN2U1MGQ1ZjlhNjc1NTk4MmQyYWYzMTkxNDczY2IzNDY0M2JjMDNmCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgRGVjIDggMDg6Mzc6MjIgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogUmVkdWNlIG92ZXJoZWFkIG9mIGNvbmZpZyBmaWxlIHBhcnNpbmcKKworY29tbWl0IDczYzllZTQyZDI4YWZlMmUxMDdhN2Q2NjE2YjZkMDExODkwYzM2ZWEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBEZWMgOCAwOTowOTo1OSAyMDExICswMTAwCisKKyAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcworCitjb21taXQgM2RiOTc5NjJiMzdlYjEyZDI1NGQ2MWU2YmUyMzRiMDZhMzkxYzhiYgorQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KK0RhdGU6ICAgVGh1IERlYyA4IDA3OjQzOjQ1IDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSCAzNDUzODY4OiBmcm9tICJCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4iOiBGYWN0b3IgY29tbW9uIGNvZGUgaW50byBwYXNzX2NvbW1vbgorICAgIAorICAgIE1vdmUgdGhlIGNvZGUgZm9yIHBvcm1hdHRpbmcgYW5kIHByaW50aW5nIHZhbHVlcyBmcm9tIHBhc3MgYW5kIHBhc3NfcGVyc2lzdAorICAgIGludG8gcGFzc19jb21tb24uCisKK2NvbW1pdCBiNjU2OGM4M2YxNzU2ZTlhNjU0MzRlZGVlZWI0MGQyM2RkYmJiNjUyCitBdXRob3I6IGNjY2hpdSA8Y2NjaGl1QHNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIERlYyA3IDE2OjI1OjI3IDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IEJVRzogMzQ1MjA2OTogRml4IHNubXB0cmFwX29pZCBkZWNsYXJhdGlvbiBpbiBtaWIyYyBnZW5lcmF0ZWQgY29kZQorICAgIAorICAgIFRoaXMgYnVnIHdhcyBpbnRyb2R1Y2VkIGNvbnNpZGVyYWJsZSB0aW1lIGFnby4gSXQgZGlkIGFscmVhZHkgZXhpc3QgYXQgdGhlCisgICAgdGltZSB0aGUgNS42IGJyYW5jaCB3YXMgY3JlYXRlZCAoc2VlIGFsc28gY29tbWl0CisgICAgMGVjMDg4YWZhMjdjZmRhNGU2ZWE3OGFhZTdjZmM1NTA3NTY0ZWRkZSkuCisKK2NvbW1pdCBkNDk0ZGI2NGMyMDhiNGRjNjI4MTMxMzJmODg2M2JkNWMxYTM5ZDc3CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgRGVjIDEgMTA6Mzg6MTcgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcHRyYXBkOiBFbGltaW5hdGUgYW4gdW51c2VkIHZhcmlhYmxlIChOb3cpCisKK2NvbW1pdCAyOGYyNTYxYmMyOTM1ZDhlMWNiZjQ2ZDI4MjAxNTgxNzNlN2E0Y2Y0CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgRGVjIDEgMTA6Mzc6MTEgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcHRyYXBkOiBNb3ZlIHRoZSBtYWluIGxvb3AgY29kZSBpbnRvIGEgbmV3IGZ1bmN0aW9uCisKK2NvbW1pdCAzOTZlMTIyZGRjNDJhOTE2ZjA2YTAyODg0YzBlOGEyNThlZGJlMjM4CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgRGVjIDEgMDk6MzI6MTYgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IE1hdGNoIGVhY2ggZ2V0cHduYW0oKS9nZXRwd3VpZCgpIGNhbGwgd2l0aCBhbiBlbmRwd2VudCgpIGNhbGwgYW5kIGVhY2ggZ2V0Z3JlbnQoKSBjYWxsIHdpdGggYW4gZW5kZ3JlbnQoKSBjYWxsLgorCitjb21taXQgM2VmZWZiYzAwMjQzOTk3ODZmOGI2OGIxZTkzYjBhOGZkZGRkYzdkYQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IERlYyAxIDEwOjQxOjAxIDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXB0cmFwZDogUmVtb3ZlIHN1cGVyZmx1b3VzIGNhc3RzCisKK2NvbW1pdCA3ZjA1ZGFhOGUwZTBmNTMzYjBmMTJhM2UxY2YwNzY0MTUxOTkwOWQ2CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgRGVjIDEgMTE6NTg6MzIgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogQlVHOiAzNDQ0OTM5OiBCVUc6IDE3OTY4ODY6IHNubXBsaWI6IEF2b2lkIHRoYXQgc3ByaW50X3JlYWxsb2Nfb2N0ZXRfc3RyaW5nKCkgZW1iZWRzIHVucHJpbnRhYmxlIGNvbnRyb2wgY2hhcmFjdGVycyBvciBiaW5hcnkgemVyb2VzIGluIGl0cyBvdXRwdXQuIFRoaXMgYmVoYXZpb3IgY291bGQgY2F1c2UgdHJ1bmNhdGVkIG91dHB1dCBpbiBzbm1wdHJhcGQuCisKK2NvbW1pdCBkYjhmNTU4ZmQyZjNiN2MxMDllYTNhMWMyMTMzYjc1YjZmOGNiMmFkCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgRGVjIDEgMTA6MDQ6NDEgMjAxMSArMDEwMAorCisgICAgQ29tcGlsZXIgd2FybmluZyBmaXg6IHBhc3MgdW5zaWduZWQgY2hhcnMgdG8gaXNwcmludCgpIGluc3RlYWQgb2Ygc2lnbmVkIGNoYXJzLgorCitjb21taXQgODAwZGMxMDI4ZTdlMGNkOGNjMTRkODRkZDMxNzIzZDQ3YWMwNzNkYgorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgVGh1IERlYyAxIDEwOjE4OjU4IDIwMTEgKzAxMDAKKworICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIGhpbnQgdmFyaWFibGUKKworY29tbWl0IDgzZWE0YTA4MGM5MGE3NGI5NzQzZDNmMjRjZjBkNGI4YTFlOGM4NDkKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBOb3YgMjcgMjE6MTY6NTIgMjAxMSArMDEwMAorCisgICAgUmVkdWNlIHRoZSBzY29wZSBvZiB0aGUgdmFyaWFibGUgcW9zCisKK2NvbW1pdCA3YjllMDM0NDFjM2RjM2EwNzY3MGVkMDFmNWQwNDc5MWE4MmM3NTBjCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgTm92IDMwIDE0OjA0OjAxIDIwMTEgKzAxMDAKKworICAgIFJlbW92ZSAjZGVmaW5lIHZhbCh4KSBfX1NUUklORyh4KSBhbmQgY2hhbmdlIHZhbCh4KSBpbnRvIF9fU1RSSU5HKHgpLgorCitjb21taXQgMmYzNzliMGU0ZWNhZGZhNGU1NDFlMzAwNWM4ZmM4MjgxODgyYjc0MQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIE5vdiAzMCAxNTo1ODo0NyAyMDExICswMTAwCisKKyAgICBGb2xsb3ctdXAgZm9yIGNvbW1pdCAxYWE3MDRlOiB1bmJyZWFrIHRoZSBNU1ZDIGJ1aWxkCisKK2NvbW1pdCA2NGVmMGY3MTEyNzYxNzgzNzAyN2ZiMmNmYWYxNzRiOTViYTc5ZTBkCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgTm92IDMwIDE0OjE5OjUwIDIwMTEgKzAxMDAKKworICAgIEFkZCBTTk1QOjpyZWdpc3Rlcl9kZWJ1Z190b2tlbnMoKQorCitjb21taXQgN2JlYWQ5Y2E5MTdjNjc1NjZkNWVkOThhYjUwN2JiYzAyODE2MjE3ZAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIE5vdiAzMCAxNDowODowOCAyMDExICswMTAwCisKKyAgICBBZ2VudFggc3ViYWdlbnQ6IFJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uCisKK2NvbW1pdCAwZWQ3MTU0MWY4N2U3ZDc4YmM5OThlZWJkYTMyMTdjNTllMWRmODMwCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgTm92IDMwIDE0OjAzOjE5IDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBEb3h5Z2VuLXN0eWxlIGZ1bmN0aW9uIGhlYWRlciBmb3IgbmV0c25tcF9yZWdpc3Rlcl9kZWZhdWx0X3RhcmdldCgpIGFuZCBuZXRzbm1wX2NsZWFyX2RlZmF1bHRfdGFyZ2V0KCkuCisKK2NvbW1pdCA4YzI5NzJiNjFlNDAxNjliNDdjNTA5ODhiNmFlOWU4YzI4NWY4NGY4CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgTm92IDMwIDE0OjAyOjU0IDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IHBlcmw6IEZpeCBzcGVsbGluZyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgU05NUCBtb2R1bGUKKworY29tbWl0IDVkZjJiYWM2YmQ3MTc3OTkzMTFmMDAxYWM3YjczZGI4OGYxMWJkZGEKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFR1ZSBOb3YgMjkgMDg6NTk6NTggMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogT25seSB0cmFuc2Zvcm0gdGhlIGFkZHJlc3MgdG8gcHJpbnRhYmxlIGZvcm0gd2hlbiBuZWVkZWQuCisKK2NvbW1pdCAxNzFlOGQ0OGQ0YWYwNDAxM2NmZjhmZDI4ZjUzNDFhMmFlZjIxZDg4CitBdXRob3I6IE1pam8gU2FmcmFkaW4gPHNhZnJhZGluQGxpbnV4LnZuZXQuaWJtLmNvbT4KK0RhdGU6ICAgVHVlIE5vdiAyOSAxNjo0OTo0NiAyMDExICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wLWJyaWRnZS1taWI6IEZpeCBpbmRleCBpbnRlcnByZXRhdGlvbi4KKyAgICAKKyAgICBUaGlzIHBhdGNoIGNvcnJlY3RzIGEgd3JvbmcgZGF0YSBpbnRlcnByZXRhdGlvbi4KKyAgICBzbm1wLWJyaWRnZS1taWIgb2J0YWlucyB0aGUgaWZpbmRleCB2YWx1ZSBmcm9tIHRoZSBzeXNmcworICAgIGF0dHJpYnV0ZSAnaWZpbmRleCcgVGhlIHZhbHVlIGdpdmVuIGJ5IHRoZSBzeXNmcyBhdHRyaWJ1dGUKKyAgICBpcyBhbiBpbnRlZ2VyLCB3aGljaCBpcyBoYW5kbGVkIGFzIGhleCBhbmQgbGVhZHMgdG8KKyAgICBpbmNvcnJlY3QgZGF0YSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuCisgICAgCisgICAgZS5nLgorICAgICAgICAkID4gc25tcHdhbGsgbG9jYWxob3N0IEJSSURHRS1NSUI6OmRvdDFkQmFzZVBvcnRJZkluZGV4LjIKKyAgICAgICAgQlJJREdFLU1JQjo6ZG90MWRCYXNlUG9ydElmSW5kZXguMiA9IElOVEVHRVI6IDU0CisgICAgCisgICAgYWNjb3JkaW5nIHRvIHRoZSBzeXNmcyBhdHRyaWJ1dGUgdGhlIHZhbHVlIGlzIDM2CisgICAgCisgICAgICAgICQgPiBjYXQgL3N5cy9jbGFzcy9uZXQvPGRldmljZT4vaWZpbmRleAorICAgICAgICAzNgorICAgIAorICAgIFNpZ25lZC1vZmYtYnk6IE1pam8gU2FmcmFkaW4gPHNhZnJhZGluQGxpbnV4LnZuZXQuaWJtLmNvbT4KKworY29tbWl0IDgyZTM5ZmI2NzA2ZGY5MGVjZjJmYzllMTBhZGEyYjk2MmVlMTk2ZjMKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgTm92IDI5IDEyOjI3OjQ2IDIwMTEgKzAwMDAKKworICAgIEZpeCBtdWx0aS1saW5lIGNhc2UgdGVzdGluZyBvZiBpbmNvbWluZyBPSUQKKworY29tbWl0IGIxNWRhMWE0NTE2MDYxMTA1YTFlYWM3NDUwY2Y2NTBlYzQ0MjY2YjIKK0F1dGhvcjogTmlrb2xheSBEZW5ldiA8bmRlbmV2QGdtYWlsLmNvbT4KK0RhdGU6ICAgVHVlIE5vdiAyOSAwODoyOTo0OSAyMDExICswMTAwCisKKyAgICBDSEFOR0VTOiBGcmVlQlNEOiBSZXN0b3JlIElQX1JFQ1ZEU1RBRERSIGZ1bmN0aW9uYWxpdHkuCisKK2NvbW1pdCA3ZjQ3ZjUyZTQ4MWJhYTlhYWZiNTc4NDI0NGIwZGQyNjUzZTdkY2ZmCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBNb24gTm92IDI4IDA4OjUxOjM5IDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBsaWI6IFVzZSBTTk1QX0FMTE9DX1RZUEVERUYgdG8gYWxsb2NhdGUgdHJhbnNwb3J0cyBpbiBvcmRlciB0byBhdm9pZCB0aGUgc2VwYXJhdGUgY2FsbCB0byBtZW1zZXQuCisKK2NvbW1pdCBjZjg2MDM5ZTMwODYyMjVjMzA4NWJiOWFkZjA4OGI4YmE1YmE2OTc5CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgTm92IDIyIDE1OjAyOjU4IDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHVuaXQtdGVzdHMvVDEwMnBkdV9idWlsZF9jbGliIHBhc3MuCisKK2NvbW1pdCAxYTg3ZTc2ZTAwZWUzZDVjZDM3YTA3YmZjM2Q4NDQ5MGQzYzJhNGVjCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgTm92IDIyIDE0OjU1OjQyIDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHVuaXQtdGVzdHMvVDAxNGdldGhvc3RieWFkZHJfY2xpYiBwYXNzCisKK2NvbW1pdCA4ODY3ZmQxZGNmZTcyYjU5ZDA3MzIyZmYzOGE2OTliNjZlYzRmMzI2CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgTm92IDIyIDA5OjQ0OjM4IDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkgcm9idXN0IGFnYWluc3QgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZXMuCisgICAgCisgICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBORVRTTk1QX0xBUkdFX0ZEX1pFUk8oKSB1c2UgbWVtc2V0KCkgb24gVW5peCBzeXN0ZW1zIGluc3RlYWQgb2YgYW4gZXhwbGljaXQgbG9vcC4KKyAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIHN1cmUgdGhhdCBvbiBVbml4IHN5c3RlbXMgbmV0c25tcF9sYXJnZV9mZF9jbHIoKSBkb2Vzbid0IHRyeSB0byByZWFkIG1lbW9yeSBpdCBpc24ndCBhbGxvd2VkIHRvIHJlYWQgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGVxdWFscyAtMSAoYSB2YWx1ZSB0aGF0IHNob3VsZG4ndCBiZSBwYXNzZWQgYnkgdGhlIGNhbGxlcikuCisgICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX2lzX3NldCgpIHJldHVybiBmYWxzZSBvbiBVbml4IHN5c3RlbXMgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGVxdWFscyAtMSAoYSB2YWx1ZSB0aGF0IHNob3VsZG4ndCBiZSBwYXNzZWQgYnkgdGhlIGNhbGxlcikuCisgICAgQ0hBTkdFUzogV2luZG93czogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSBzaHJpbmsgYmVoYXZpb3IgY29ycmVjdC4KKworY29tbWl0IDIzZGIwY2YwOWI4YjBlYWIzN2I3NDllZjBjM2MzZjMwNjkwMDI0NWMKIEF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBKdWwgMjggMTU6MTk6MjIgMjAxMSArMDIwMAorRGF0ZTogICBNb24gTm92IDIxIDIzOjAyOjU3IDIwMTEgKzAxMDAKIAotICAgIENIQU5HRVM6IHNubXBkOiBSZXN0b3JlIHN0b3JhZ2UgdGFibGVzIG9uIExpbnV4CisgICAgRml4IGNhc3RpbmcgdHZfdXNlYyB0byBpbnQgd2hpY2ggbWF5IGJlIHRvbyBzaG9ydAogCi1jb21taXQgZDYyYTBlYjkwNzBiNGQ4ZDlmZTJiY2ZkYjRkNTNkMzdlZjgxNGY5YgotQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBKdWwgMjggMTQ6NDk6MDggMjAxMSArMDIwMAorY29tbWl0IDgwZWU0MDIyZTUzNGU2NGFhZDVhNWYyNzE5Mjg0M2I0MmFjYjg1ZTAKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBOb3YgMTkgMDk6MTQ6MDIgMjAxMSArMDEwMAogCi0gICAgRG9jdW1lbnQgaW50ZXJmYWNlX3JlcGxhY2Vfb2xkIG9wdGlvbi4KKyAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNDM5MjM0OiBNb3ZlIG5ldHNubXBfcGFzc19zdHJfdG9fZXJybm8gdG8gcGFzc19jb21tb24gYW5kIHJlbmFtZSBpdCB0byBuZXRzbm1wX2ludGVybmFsX3Bhc3Nfc3RyX3RvX2Vycm5vCiAKLWNvbW1pdCBmNjYwYjhjMGQ4YzI3MDdiZDczMTQyZjA3NjA3OWM5MTY5ZjM1OTU2Ci1BdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEp1bCAyOCAxNDo0MDoyNyAyMDExICswMjAwCitjb21taXQgMGJhYTkyOTZjMDcyYmIzNzM1NzYwYjBkZDk5MmYyZDFkM2NhMjdmYQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IE5vdiAxOSAwOTowNToyNCAyMDExICswMTAwCiAKLSAgICBDSEFOR0VTOiBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9yZXBsYWNlX29sZCcgb3B0aW9uIHRvIHJlbW92ZSBvbGQgZW50cmllcwotICAgIGluIGlmVGFibGUgd2hlbiBhbiBpbnRlcmZhY2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIGFscmVhZHkgZXhpc2luZyBvbmUKLSAgICBhcHBlYXJzLgotICAgIAotICAgIEUuZy4gcmVtb3ZlIG9sZCBwcHAwIGludGVyZmFjZSB3aGVuIG5ldyBwcHAwIHNob3dzIHVwLgorICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0MzkyMzQ6IENvcnJlY3QgdGhlIGRlcGVuZGVuY2llcyBvZiB1Y2Qtc25tcC9wYXNzIGFuZCB1Y2Qtc25tcC9wYXNzX3BlcnNpc3QKIAotY29tbWl0IDQwNmNhYjgxODkyNjQ5OWMzMTIxZGVjZTQzNzdkNjc2Mzg4OTQwNDIKLUF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgSnVsIDI4IDE0OjMyOjU3IDIwMTEgKzAyMDAKK2NvbW1pdCAxYWE3MDRlNGEyOTQ0MzBiMjhlMzliNmY5ZTQ2ODNiOGE0OGJjZTA0CitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTYXQgTm92IDE5IDA4OjM1OjIxIDIwMTEgKzAxMDAKIAotICAgIERvY3VtZW50IHRoZSBpbnRlcmZhY2VfZmFkZW91dCBvcHRpb24uCisgICAgQ0hBTkdFUzogc25tcGQ6IEZhY3RvciBvdXQgYXNjMmJpbiBhbmQgYmluMmFzYy4gQWRkIGEgbmV0c25tcF9pbnRlcm5hbF8gcHJlZml4IHRvIHRoZW0KIAotY29tbWl0IDQyYjg4M2NlMThlNThjYTg5ZmRmZDUxNGVjNjk4ZTJmN2ZmZDFmNjMKLUF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgSnVsIDI4IDE0OjMyOjM4IDIwMTEgKzAyMDAKK2NvbW1pdCBjZGE4ZmU5MTAxM2YxMmNiZjY0YTA3NzVhYmI1NTcyMDAzNWFmOTMxCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTYXQgTm92IDE5IDAwOjU1OjI0IDIwMTEgKzAxMDAKIAotICAgIEFsbG93IGlmVGFibGUgZW50cmllcyB0byBiZSBkZWxldGVkIGltbWVkaWF0ZWx5IHdoZW4gYXBwcm9wcmlhdGUgaW50ZXJmYWNlCi0gICAgZGlzYXBwZWFycyAoaS5lLiBpbnRlcmZhY2VfZmFkZW91dCA9IDAgd29ya3MgYXMgZXhwZWN0ZWQpLgorICAgIENIQU5HRVM6IHNubXBkOiBDYWxsIHNubXBfb2lkdHJlZV9jb21wYXJlIGluc3RlYWQgb2Ygc25tcF9vaWRfbWluX2NvbXBhcmUKKyAgICBDSEFOR0VTOiBzbm1wZDogUmVtb3ZlIHNubXBfb2lkX21pbl9jb21wYXJlIHNpbmNlIGl0IGlzIGludGVybmFsIGFuZCB1bnVzZWQKIAotY29tbWl0IDQ1MDYyZWE0N2JlMWNkOGRmNDkzM2EwZGU3ZjcyZjhjZjkxODNhYWUKLUF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgSnVsIDI4IDEyOjI0OjEwIDIwMTEgKzAyMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBhZGRlZCAnaW50ZXJmYWNlX2ZhZGVvdXQnIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHRvIHNldCBsaWZldGltZSBvZiBpZlRhYmxlIGVudHJpZXMgb2YgcmVtb3ZlZCBpbnRlcmZhY2VzLgotICAgIAotICAgIFByZXZpb3VzIGxpZmV0aW1lIHdhcyBoYXJkY29kZWQgNSBtaW51dGVzLCBub3cgaXQncyBjb25maWd1cmFibGUuCi0KLWNvbW1pdCAzMWZhMDdjZDlmZmRlNDZkNDFkMmI1ODM4YzNmYzRkMDE1NDhiZmI1Ci1BdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEp1bCAyNyAxNDo0NTo0NyAyMDExICswMjAwCi0KLSAgICBDSEFOR0VTOiBzbm1wZDogcHVyZ2Ugem9tYmllcyBvZiBwYXNzX3BlcnNpc3QgY2hpbGQgcHJvY2Vzc2VzLgotICAgIAotICAgIElmIHBhc3NfcGVyc2lzdCBwcm9jZXNzIGVuZHMsIHdlIHNob3VsZCBwcm9jZXNzIGl0cyBzaWdjaGlsZCBzaWduYWwuCi0KLWNvbW1pdCAxMWJkNmUwMzJkMTVmZmIxMWQ3MmUzNTJjYTZiYzk1MDIzYzMzNzFhCi1BdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEp1bCAyNyAxNDo0NTowOSAyMDExICswMjAwCi0KLSAgICBDSEFOR0VTOiBzbm1wZDogcnVuIHNpZ25hbCBoYW5kbGVycyB3aGVuIHNlbGVjdCgpIGlzIGludGVycnVwdGVkLgotICAgIAotICAgIFRoaXMgYmVoYXZpb3IgaXMgaW5kaWNhdGVkIGluIGNvbW1lbnQgb24gbGluZSAxMjQ0LCBidXQgaXQgd2FzIG5vdCBhY3R1YWxseSBkb25lLgotCi1jb21taXQgY2Q2ZTM4MmJlZGE4ZDQwZWRkMDY2NGU4ZmFlYzhkYjIyNGU1ZDVkNgotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KLURhdGU6ICAgVHVlIEp1bCAyNiAxNjoxNjo0NiAyMDExICswMjAwCi0KLSAgICBDbGFyaWZ5IGFuIElQdjYgc291cmNlIGNvZGUgY29tbWVudAotCi1jb21taXQgMmNlYzYyNDc5MmFmODU0NjUwNWZiYTAyY2EwYTJlMjExNmE1NTllNwotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KLURhdGU6ICAgVHVlIEp1bCAyNiAxNDo1OTozMyAyMDExICswMjAwCi0KLSAgICBTcGVsbGluZyBmaXg6IGRlZmluZWR5IC0+IGRlZmluZWQKLQotY29tbWl0IGY5NWExZjM4MGVhMThmZjYzM2YyNzNhOWFhNWU5ZWIyNzYyNzAxMGUKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIFR1ZSBKdWwgMjYgMTQ6MTk6MTQgMjAxMSArMDIwMAotCi0gICAgU3BlbGxpbmcgZml4OiBhbGV2aWF0ZSAtPiBhbGxldmlhdGUKLQotY29tbWl0IGM1YTg0NjRjNDJhOTRjMjUwZWUyZGZhMmE0NzMxMDlhNzM0MjAzZDgKLUF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgSnVsIDI2IDE0OjI0OjU1IDIwMTEgKzAyMDAKLQotICAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDMzMTAzNzU6IGZyb20gRXJpbm4gTG9vbmV5LVRyaWdnczogZml4ZWQgcGFyc2luZyBvZiB2YXJiaW5kcyB3aXRoIE1JQiBuYW1lcwotCi1jb21taXQgZjljY2JjNzcyNjY2MTM0ZDFkMTc4YjUwNWFmOWRkY2RkOWVkNDI0NAotQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBKdWwgMjUgMTU6MDI6MTUgMjAxMSArMDIwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IGF2b2lkIGRpdmlzaW9uIGJ5IHplcm8gaW4gVUNELVNOTVA6OmRza1RhYmxlCi0KLWNvbW1pdCBjMTRmYzM4NjE0YmFmMTBkNTE3MTM2ZjA0ODA5MDdiN2YwM2Q4ZDc0Ci1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSnVsIDIwIDEzOjQ0OjU5IDIwMTEgLTA3MDAKLQotICAgIFVwZGF0ZWQgdGhlIHdvcmRpbmcgY2hvaWNlcyBhIGJpdCBhbmQgbGlzdGVkIHRoZSBoYW5kbGVyIHR5cGVzIGl0cyBwcm9kdWNpbmcKLQotY29tbWl0IDQ1ZmY3NzhmNTcxNjRmMWUyZTU1MDIzNzA3NDNkZWJkN2VhYmYyYmUKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBKdWwgMTkgMTg6MzY6MTEgMjAxMSAtMDcwMAotCi0gICAgcmVtb3ZlIGJyb2tlbiB3aGl0ZXNwYWNlIGxpbmVzIHRoYXQgbGVhZHMgdG8gcmVhZGluZyBjb25mdXNpb24KLQotY29tbWl0IGViZGQyMTZjMDc0YmY0MWNkM2EwODRiZDE0Njg5Y2YwMWM4ODdiMzEKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBKdWwgMTkgMTg6MzY6MTEgMjAxMSAtMDcwMAotCi0gICAgcmVtb3ZlIGJyb2tlbiB3aGl0ZXNwYWNlIGxpbmVzIHRoYXQgbGVhZHMgdG8gcmVhZGluZyBjb25mdXNpb24KLQotY29tbWl0IGQ2NWM3YjE0YTBmOTE1NjBiYmY2NTI3NGY2MmU0OGRiOTdhMzRiM2UKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBKdWwgMTkgMTg6NDY6MTAgMjAxMSAtMDcwMAotCi0gICAgdXBkYXRlZCBnaXRpZ25vcmUgdG8gaWdub3JlIGEgbnVtYmVyIG9mIGF1dG8tZ2VuZXJhdGVkIGZpbGVzCi0KLWNvbW1pdCBhYjFkODg3YmEzODNjMzNkODUzYWE0ZDM0OGJiY2VhYjk4MWFhMjQ1Ci1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgSnVsIDE5IDE4OjM2OjExIDIwMTEgLTA3MDAKLQotICAgIHJlbW92ZSBicm9rZW4gd2hpdGVzcGFjZSBsaW5lcyB0aGF0IGxlYWRzIHRvIHJlYWRpbmcgY29uZnVzaW9uCi0KLWNvbW1pdCBkZjVmNzAwNTVjZjliZTMzZjA1ZmI1MGFiZTJmNWE4MWVhYzA5MmFkCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgotRGF0ZTogICBUdWUgSnVsIDE5IDExOjA3OjE5IDIwMTEgKzAyMDAKLQotICAgIFJlcmFuIGF1dG9yZWNvbmYKLQotY29tbWl0IDcwZGVlNGI4ZGQzN2U4YjFkNTlkYjAzY2Q3ZjYzMWZlMzU2ZjE5ZTQKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIFR1ZSBKdWwgMTkgMDk6Mzg6MTYgMjAxMSArMDIwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMzY5NjgwOiBmcm9tIElseWEgWWFub2s6IGNoYW5nZSBzbm1wX2VuYWJsZWF1dGhlbnRyYXBzIGZyb20gaW50IHRvIGxvbmcgc3VjaCB0aGF0IG1vZGlmeWluZyB0aGUgY29ycmVzcG9uZGluZyBNSUIgb2JqZWN0IGRvZXMgbm90IG92ZXJ3cml0ZSBtZW1vcnkgaW4gNjQtYml0IGJ1aWxkcy4KLQotY29tbWl0IDBmMzA5YjQ5M2MyMWQzYzY5MTQ0ODc1MTRiNDE1NjA3NTRmZmNkZjkKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIFR1ZSBKdWwgMTkgMDg6Mzc6NTAgMjAxMSArMDIwMAotCi0gICAgQ0hBTkdFUzogc25tcHRyYXBkOiBGaXggYSByYXJlIGNyYXNoIHRyaWdnZXJlZCBieSBTSUdURVJNIGJ5IG1vdmluZyBzaHV0ZG93bl9wZXJsKCkgZnJvbSB0aGUgU0lHVEVSTSBzaWduYWwgaGFuZGxlciB0byB0aGUgY2xlYW51cCBjb2RlIHNlY3Rpb24gaW4gbWFpbigpLgotCi1jb21taXQgNjkwZWE3ZGM0NWM2ZmUxYTdiYmZhMTU4NGVkOWJmOTIxZjE5YjI4ZgotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KLURhdGU6ICAgVHVlIEp1bCAxOSAwODoyODo1OSAyMDExICswMjAwCi0KLSAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEFkZCBtaXNzaW5nIG5ld2xpbmUgY2hhcmFjdGVyIGluIGEgbG9nIG1lc3NhZ2UKLQotY29tbWl0IGRkMmZjMmVkODhkMGY5YmI4MWRlMzVkYmUxZjliZDNiYmJiYjNkOTAKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIFR1ZSBKdWwgMTkgMDg6Mjg6MTMgMjAxMSArMDIwMAotCi0gICAgQ0hBTkdFUzogc25tcHRyYXBkOiBJbnZva2Ugc2h1dGRvd25fcGVybCgpIHdoZW4gc2h1dHRpbmcgZG93bgotCi1jb21taXQgNmRlZWMxYTg5MDQ4YzhkYjI2NTIzNTE3YWY5OGRkZDM5N2ZjNzdjMwotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KLURhdGU6ICAgVHVlIEp1bCAxOSAwODoyMzowNSAyMDExICswMjAwCi0KLSAgICBTcGVsbGluZyBmaXg6IGJyYW5rZXQgLT4gYnJhY2tldAotCi1jb21taXQgOGQ5ZGNjODA2ZWFiMzdmZTJkZGY5Y2MzNGNmODY0NjcyNjViNjJjZgotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KLURhdGU6ICAgU3VuIEp1bCAxNyAxMTozODo1OCAyMDExICswMjAwCi0KLSAgICBSdW4gYXV0b3JlY29uZi4gRml4ZXMgYnVpbGQgYnJlYWthZ2UgY2F1c2VkIGJ5IHBhdGNoIGQ1ODhlYzg1M2JkMDUzMWYyMTJmY2JmNTFiOTYyYjk2YzY4MjhiNTkgKFJQTSA0Ljkgc3VwcG9ydCkKLQotY29tbWl0IGQ2MTdkODRmODNmYTY5ZWQ5ZmE5Zjk4ZWZjNGFmYWY4ODBkMTIxZjIKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIFRodSBKdWwgMTQgMTY6NDM6NDcgMjAxMSArMDIwMAotCi0gICAgU3BlbGxpbmcgZml4OiBicmFua2V0IC0+IGJyYWNrZXQKLQotY29tbWl0IGM0OGNlZWY5NDFjZTAzNmQyNjc1YWU5NDJkZWFkODU0Y2Y1YTFlMGQKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIFRodSBKdWwgMTQgMTY6NDI6MDAgMjAxMSArMDIwMAotCi0gICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBuZXRzbm1wX2lwdjZfZm10YWRkcigpIHNob3cgdGhlIElQdjYgc2NvcGUgSUQKLQotY29tbWl0IDdiYWQ3OGU1MTk0MTU3NjkwNGFmZDYyY2M5MTM2NjY3MDhmOGY0NmMKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIFN1biBKdWwgMTcgMTE6MDQ6MzQgMjAxMSArMDIwMAotCi0gICAgQ0hBTkdFUzogV2luMzI6IEFkZCBzdXBwb3J0IGZvciBJUHY2IGFkZHJlc3Mgc2NvcGUgSUQKLQotY29tbWl0IDRmYjFmMGVkYTc5MDlhYWRhNmFiYzViZDhkYmYwMTRkMTE1ZmRiNGUKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIFN1biBKdWwgMTcgMTE6MDc6MTAgMjAxMSArMDIwMAotCi0gICAgUnVuIGF1dG9yZWNvbmYKLQotY29tbWl0IGE1NjcyMWEzZTc3NTRlMzg5ZGFhN2U4YTNkNTc5Mjg5OWVkYzlkZTMKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+Ci1EYXRlOiAgIFRodSBKdWwgMTQgMTY6MTg6MzIgMjAxMSArMDIwMAotCi0gICAgQWRkIGF1dG9tNHRlLmNhY2hlIGFuZCBzdGFtcC1oIHRvIC5naXRpZ25vcmUKLQotY29tbWl0IDg1MWJjZjUzZmNkMTNjZGYwYmE5ZjEyZTVkNjAzZTczZjhiYjk2MTEKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBKdWwgMTUgMTU6MzI6NDkgMjAxMSAtMDcwMAotCi0gICAgbWVudGlvbmUgdGhlICdiZWZvcmUnIHBhcnQgb2YgdGhlIGluamVjdEhhbmRsZXIgbGluZQotCi1jb21taXQgOWY3OTM2MzAxNjJjYjc3MTNhYzRiNjhjOWFhYmU1MGU2NzUxNDA3MQotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEp1bCAxNCAwNzozMTozMCAyMDExIC0wNzAwCi0KLSAgICBmaXggYSB0eXBvCi0KLWNvbW1pdCBlZGMyYzg4Mzc1ZmVjY2IxNzZiY2FkZWI1ODgxMGRkNTdiZDk3ZmI3Ci1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gSnVsIDExIDE5OjMzOjAzIDIwMTEgLTA3MDAKLQotICAgIGFkZGVkIGEgY29weSBvZiB0aGUgc2hlbGwtZnVuY3Rpb25zIHRvIHRoZSBvbGRlciBicmFuY2gKLQotY29tbWl0IDk2NGQ2MzUxNDk4MmQ2ZGQ5ZmE5NTAyMGQyNGEzZTg4YjIyZjJkMGMKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBKdWwgMTEgMTk6MzA6MjkgMjAxMSAtMDcwMAotCi0gICAgYSBjb3B5IG9mIHRoZSByZWxlYXNlIGZpbGUgYXBwbGllZCB0byB0aGUgb2xkZXIgYnJhbmNoZXMKLQotY29tbWl0IDE5NmUxMTBiMzE0ZTM3ZTczYTc0ZWRiMDNjNDNkYTAyOTllYThiNDQKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBKdWwgMTEgMTk6MzQ6MDYgMjAxMSAtMDcwMAotCi0gICAgYWRkZWQgNS43IHBhdGNoZXMKLQotY29tbWl0IGEyYWMyNGRkNGI1YjcwOTc3M2ZlODI3Njg3Yzg1OTgyNzc1ZDk5OTgKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBKdWwgMTEgMTk6MzM6MDMgMjAxMSAtMDcwMAotCi0gICAgYWRkZWQgYSBjb3B5IG9mIHRoZSBzaGVsbC1mdW5jdGlvbnMgdG8gdGhlIG9sZGVyIGJyYW5jaAotCi1jb21taXQgOGFkMzJjZWZiMzdjNjIwODBjNGYzZDc0NDQzODg0YmVjMWM0OWFkZAotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIEp1bCAxMSAxOTozMDoyOSAyMDExIC0wNzAwCi0KLSAgICBhIGNvcHkgb2YgdGhlIHJlbGVhc2UgZmlsZSBhcHBsaWVkIHRvIHRoZSBvbGRlciBicmFuY2hlcwotCi1jb21taXQgOWZmNDcxNDM5ZTMyNjI1NTA2NjM3N2M3NmQ5OTVlMWFhZjI5NmJkMgotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEp1biAyOSAyMzoxNTo0MiAyMDExIC0wNzAwCi0KLSAgICBmaXggdGFnIHB1c2hpbmcKLQotY29tbWl0IGY5YTY1Mzg1YjIzZDA2ZGJiZTk0MzBhMjNjOGViY2Y2OGQxMjEyN2UKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBKdW4gMjkgMjI6MzI6MTAgMjAxMSAtMDcwMAotCi0gICAgbWlzYyBwdWJsaWNhdGlvbiBmaXhlcyBmb3VuZCB3aGlsZSBwdWJsaXNoaW5nCi0KLWNvbW1pdCBkZjljZjlhMWUyOTNkMDVhMjQ3ODY2OTRmNjhjMDVhMmJlMTNhOWIzCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSnVuIDI5IDE2OjM0OjExIDIwMTEgLTA3MDAKLQotICAgIHhtbCBmaXhlcwotCi1jb21taXQgZWU4ZDE2MDQxNmMyZjdkMTk0MTg2M2U3ZDM3NTEyNjU4ZTNmMmYzNgotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEp1biAyOSAxNjozMzo1MCAyMDExIC0wNzAwCi0KLSAgICB1c2UgZ2l0MmNsIHRvIGdlbmVyYXRlIHRoZSBDaGFuZ2VMb2cgZmlsZTsgbmVlZHMgbXVjaCBtb3JlIHdvcmsuCi0KLWNvbW1pdCA1ZDRiYjgwMTEzZGRjY2U1Y2VlMjkzYTRlNTM3YjIwMWZhZmNhYjgzCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSnVuIDI5IDE0OjQ4OjM5IDIwMTEgLTA3MDAKLQotICAgIHVzZSB0aGUgbmV3IHJ1bi1hdXRvY29uZiBzY3JpcHQKLQotY29tbWl0IDYxZmZlZjYyNjg2NzVhOTFlMjMwZDQ0YjM0MDdhM2QwYzNmZmM4OWQKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBKdW4gMjkgMTQ6NDc6NTYgMjAxMSAtMDcwMAotCi0gICAgQSBzY3JpcHQgdG8gaW52b2tlIHRoZSBjb3JyZWN0IHZlcnNpb24gb2YgdGhlIGF1dG9jb25mIHRvb2wKLQotY29tbWl0IGQwZjZmOGRlMzcyOTJiN2ZiYzllMDU3OTM2OTBiNTc4NGEwNDFkNDYKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBKdW4gMjkgMDg6NDE6NDUgMjAxMSAtMDcwMAotCi0gICAgcmVtYWluaW5nIGNvbW1hbmQgbGluZSBjaGFuZ2VzIGZvciBzdm4gLT4gZ2l0Ci0KLWNvbW1pdCAxNjU2MDg0MDAyMGRjNWUwYzRiMjhjYzJlMzBiYjJjZDAzNGNlMGQwCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSnVuIDI5IDA3OjI2OjU1IDIwMTEgLTA3MDAKLQotICAgIG1ha2UgdGhlIGJyYW5jaCBlY2hvIG91dHB1dCBhbmQgc3ZuIHVwZGF0ZSBjb252ZXJ0ZWQgdG8gZ2l0IGVxdWl2YWxlbnRzCi0KLWNvbW1pdCBmNzc1YmNkNmE3YTUwZjMzNzgyNTI2ZWNkYjFiZWVhNTVlM2ZlODIzCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSnVuIDI5IDA3OjExOjI5IDIwMTEgLTA3MDAKLQotICAgIHB1bGwgdGhlIGJyYW5jaCBpbmZvIGZyb20gZ2l0Ci0KLWNvbW1pdCBkNTg4ZWM4NTNiZDA1MzFmMjEyZmNiZjUxYjk2MmI5NmM2ODI4YjU5Ci1BdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEp1biAyOSAxNjowNzowMCAyMDExICswMjAwCi0KLSAgICBUd2VhayBSUE0gaGFuZGxpbmcgdG8gd29yayB3aXRoIGxpYnJhcnkgdmVyc2lvbiA0LjkKLQotY29tbWl0IGFmOGIyMzUyMzRmNzI5NDRhNjQ5YTc2ZjBkMzBjZmY5NWFjMmU4OTUKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+Ci1EYXRlOiAgIFR1ZSBKdW4gMjggMTM6MTE6MTkgMjAxMSAtMDcwMAotCi0gICAgTWVudGlvbiB0aGUgR2l0IHdpa2kgcGFnZQotCi1jb21taXQgOWJjODJlNGNhNDgzN2YwMDA3MmRiYTg2Yjk0OTdhMjcxODY5MDlmOQotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KLURhdGU6ICAgVHVlIEp1biAyOCAxOToxMzozNSAyMDExICswMjAwCi0KLSAgICBBZGQgLmdpdGlnbm9yZQotCi1jb21taXQgZjJkZjhhMmIwMTY1ZTAxMzdmZDAxN2I0MWM3ZDA0ZTNhNWUxNjhlNgotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KLURhdGU6ICAgVHVlIEp1biAyOCAwODoyOTowOCAyMDExIC0wNzAwCi0KLSAgICBXZSdyZSBub3cgdXNpbmcgZ2l0IQotCi1jb21taXQgN2Q5MTdjZmM4Zjc0NTc0MDMyNTY0ODE1YWIwZmI0ODNiNjkxODY0ZQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSnVuIDI0IDEzOjAwOjUwIDIwMTEgKzAwMDAKLQotICAgIHZlcnNpb24gdXBkYXRlCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYTE2MmU5MzFmMjk5MzFjZTAzZDQwZDczZGQ5NjlmNjA4NjA4M2I4MAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSnVuIDI0IDEyOjM4OjE0IDIwMTEgKzAwMDAKLQotICAgIE1pc3NpbmcgY2hlY2sgZm9yIHJwbXRzLmgKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAwNzg3ZmYxZjYzMmUwODQ0MGU4YmIyNDBkYWJjYTVjNWU2M2ZkODJkCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBKdW4gMjQgMTI6MjA6MjAgMjAxMSArMDAwMAotCi0gICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNDUzMGQ4Nzc1MzEwODNiZmZmZDNiYmNhNGE4MmMzMDAwOWJlZjhmZAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSnVuIDI0IDEyOjA4OjIzIDIwMTEgKzAwMDAKLQotICAgIGRvY3VtZW50YXRpb24gdXBkYXRlCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNDk1NzVmMTM2YjQwZDA4ZDIxYTE2OGEwZDU0NWQ4NWY1OWM1ODcwMQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSnVuIDI0IDEyOjAyOjE1IDIwMTEgKzAwMDAKLQotICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDU5OWUzY2RmZjllNzg2MjI1MzU2ODNhNjlmNDI5NzdkZjQwODliYTkKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEp1biAyMyAxNTo0MTozOCAyMDExICswMDAwCi0KLSAgICBUd2VhayBSUE0gaGFuZGxpbmcgdG8gd29yayB3aXRoIGxpYnJhcnkgdmVyc2lvbiA0LjkKLSAgICBCYXNlZCBvbiBhIHBhdGNoIGJ5IEphbiBTYWZyYW5lawotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUxOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDVjMmE2OTFiZDI5ZWEzNDMwNDZkMjE4NjIxNTAyYTY2YmM5NmExYmIKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEp1biAyMiAxNDoyNzozOSAyMDExICswMDAwCi0KLSAgICBQcm92aWRlIGEgZnJhbWV3b3JrIGZvciByZWFkaW5nIFJQTSBwYWNrYWdlIGluZm9ybWF0aW9uIGZyb20KLSAgICBhIGNhY2hlIGRpcmVjdG9yeSAocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4KLSAgICAKLSAgICBNeSBhcG9sb2dpZXMgdG8gSmVmZiBKb2huc29uIGZvciB0aGUgZGVsYXkgaW4gYWRkaW5nIHRoaXMgZnVuY3Rpb25hbGl0eS4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAyNzA3NDM1ZWY1ZTAxMWMzNjM3ZjM3OTgxY2JlNGQ1MGYyZTcyOWRjCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBKdW4gMjIgMTM6MjY6NDUgMjAxMSArMDAwMAotCi0gICAgdmVyc2lvbiB1cGRhdGUKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA1MTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAyNzJmOTZhZWM5MzdlZDc0Y2M0ZGI5ODA3NDVkMmRiZTAwY2E1M2EwCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBKdW4gMjIgMTM6MDY6NDUgMjAxMSArMDAwMAotCi0gICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNTE1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgOWU0NzFhZGMyYTQwMjEyYjRjMDE3Y2JjZWQ2ZTI1ODgyZTMwNmE0ZAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSnVuIDIyIDEzOjA0OjEyIDIwMTEgKzAwMDAKLQotICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDUxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGM0YWQyNzgyNGY5YzZlOTFhOWZjMTFkNjYxOTY1NmMzNmQ1ZDY2MTIKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEp1biAyMSAxNDoyODo0OCAyMDExICswMDAwCi0KLSAgICBQcm92aWRlIGEgZnJhbWV3b3JrIGZvciByZWFkaW5nIFJQTSBwYWNrYWdlIGluZm9ybWF0aW9uIGZyb20KLSAgICBhIGNhY2hlIGRpcmVjdG9yeSAocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4KLSAgICAKLSAgICBNeSBhcG9sb2dpZXMgdG8gSmVmZiBKb2huc29uIGZvciB0aGUgZGVsYXkgaW4gYWRkaW5nIHRoaXMgZnVuY3Rpb25hbGl0eS4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA4YTVhYzc3NWRlNTc1NDE2MDcwNjY1YzMwYmMzZDc3MzM2ZTEyYmNiCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBKdW4gMjEgMTQ6Mjg6NDggMjAxMSArMDAwMAotCi0gICAgUHJvdmlkZSBhIGZyYW1ld29yayBmb3IgcmVhZGluZyBSUE0gcGFja2FnZSBpbmZvcm1hdGlvbiBmcm9tCi0gICAgYSBjYWNoZSBkaXJlY3RvcnkgKHJhdGhlciB0aGFuIHF1ZXJ5aW5nIHRoZSBSUE1kYiBkaXJlY3RseSkuCi0gICAgCi0gICAgTXkgYXBvbG9naWVzIHRvIEplZmYgSm9obnNvbiBmb3IgdGhlIGRlbGF5IGluIGFkZGluZyB0aGlzIGZ1bmN0aW9uYWxpdHkuCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNTk0OTM3ZGI3NTVlYjM4MGZjZjZjZDIyMGNlNjJmNmU0YTMxMDNjMwotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU3VuIEp1biAxOSAwNzo1MjoyNiAyMDExICswMDAwCi0KLSAgICBGb2xsb3ctdXAgZm9yIHIyMDUxMTogcmVhbGx5IHVzZSB0aGUgcHJvcGVyIGZvcm1hdCBzcGVjaWZpY2F0aW9uLgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDUxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDQ1MjQyNTViYTYwODNkMjVjMDNmNjQzNmVjYmUzOTg4MzZmNGEwZjgKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFN1biBKdW4gMTkgMDc6NTI6MjYgMjAxMSArMDAwMAotCi0gICAgRm9sbG93LXVwIGZvciByMjA1MTE6IHJlYWxseSB1c2UgdGhlIHByb3BlciBmb3JtYXQgc3BlY2lmaWNhdGlvbi4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA1MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAxMDVkZTAyMTljYTJhYTc5ZWQ2NTg1ZmY4ZDBjZTQ1NWExODZkMTBhCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSnVuIDE3IDE5OjA5OjUyIDIwMTEgKzAwMDAKLQotICAgIEZpeCBhIGJ1ZyBpbiBhIGRlYnVnIHN0YXRlbWVudCBpbnRyb2R1Y2VkIGJ5IHBhdGNoIDMzMTAyNTAgLyByMjA0OTQ6IHVzZSAlbGQgdG8gcHJpbnQgYSB2YWx1ZSBvZiB0eXBlIG9pZCBpbnN0ZWFkIG9mICVkLgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDUxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDYyMWM5ZWRhMTI4MmI3ZjU2MmIzNzc3YjVmYjU3ZmQzNTVjMWEyMDYKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBKdW4gMTcgMTk6MDk6NTIgMjAxMSArMDAwMAotCi0gICAgRml4IGEgYnVnIGluIGEgZGVidWcgc3RhdGVtZW50IGludHJvZHVjZWQgYnkgcGF0Y2ggMzMxMDI1MCAvIHIyMDQ5NDogdXNlICVsZCB0byBwcmludCBhIHZhbHVlIG9mIHR5cGUgb2lkIGluc3RlYWQgb2YgJWQuCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgM2IzZTk3YjMwOWE1MzVkZjFhOTliMDM2OTM4NjkwNTA2NDlkNTNhMAotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEp1biAxNyAxOTowNjo0MiAyMDExICswMDAwCi0KLSAgICBVc2UgJXAgdG8gcHJpbnQgYSBwb2ludGVyIGluc3RlYWQgb2YgJWxkCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgODc4YmNkODc2NGJlNWQxNThkNjVmNGIyMGE2OGNiM2E5NDhkYmRkZgotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEp1biAxNyAxOTowNjo0MiAyMDExICswMDAwCi0KLSAgICBVc2UgJXAgdG8gcHJpbnQgYSBwb2ludGVyIGluc3RlYWQgb2YgJWxkCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNzkwOWY2MGUyZGYwNmQ2NTUyNmU5NDBlYTMyODZjMjRiYzM2YzdmZgotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEp1biAxMCAwNjowNTo0MyAyMDExICswMDAwCi0KLSAgICBJbmNsdWRlIHN0ZGxpYi5oIHRvIG1ha2UgZG1hbGxvYyBoYXBweQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDUwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDEyZjI2YzVlZTA2ODkxNDRkNDZiZDM0ZjM2YTI4MDUyMjJkMzc2MWQKLUF1dGhvcjogUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgSnVuIDkgMTQ6MzU6MDggMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogQlVHOiAzMTUxODQ1OiBmaXggbXVsdGlwbGUgcmVnaXN0cmF0aW9ucyBvZiBzbm1wIHRyYW5zcG9ydCBoYW5kbGVyCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDk5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMzc0YWYwNzU4NjQ0ZTlhYmNjNDk5OGZiMjkxY2EzNzM4NjkwNDhmOAotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEp1biAzIDA2OjMwOjMzIDIwMTEgKzAwMDAKLQotICAgIFJldmVydGVkIHIyMDM2MjogdGhhdCBwYXRjaCBtYWtlcyBzZW5zZSBvbiB0aGUgdHJ1bmsgYW5kIHRoZSA1LjYgYnJhbmNoIGJ1dCBub3Qgb24gdGhlIDUuNSBub3Igb24gdGhlIDUuNCBicmFuY2guCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDk1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNDg1MDgxMmY1YWZhYWE3Mjg2Y2NiN2I4MWJjMDUyM2YyYjdkZTM3YwotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEp1biAxIDIyOjI0OjIzIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMzEwMjUwOiBmcm9tIGZlbm5lcjogbWlzYyBmaXhlcyBmb3IgZGVidWdnaW5nIG91dHB1dCBvZiBhZ2VudHgKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0OTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA3MTg5MzU2ZDg4YjRjYmQ5MjBmZDkzNDExMWU0YjZkNjkwNTEzZjUwCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSnVuIDEgMjI6MjQ6MjMgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMzMTAyNTA6IGZyb20gZmVubmVyOiBtaXNjIGZpeGVzIGZvciBkZWJ1Z2dpbmcgb3V0cHV0IG9mIGFnZW50eAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ5NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGM5YzNkYjE1NzUyZDZlNGI4Yjk2MDBjZDdkMWE4ZDc5ZDZkODNjM2UKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEp1biAxIDE1OjU3OjE4IDIwMTEgKzAwMDAKLQotICAgIHZlcnNpb24gdXBkYXRlCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDg3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMGVlZmVjY2Y3NmQ2MzA3OTZiN2M4YzY0YTBlMzNkMDE3NTI2MmZjYgotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSnVuIDEgMTU6NDg6NDkgMjAxMSArMDAwMAotCi0gICAgdmVyc2lvbiB1cGRhdGUKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAzNWYwYTM4MjJhZjhmMDA4NTUyNDI5MDZiMTMyZTcwMmRlODk5MjEzCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBKdW4gMSAxNTo0NzowNCAyMDExICswMDAwCi0KLSAgICBtYWtlIGRlcGVuZAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ4NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGIxZTVhY2JiNjA1YmVkMzIxMGM3ZjVkZGFlZWVmMmEwNTBjZjZiZWEKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEp1biAxIDE1OjQyOjAwIDIwMTEgKzAwMDAKLQotICAgIFJlaW5zdGF0ZSBhbiAidW51c2VkIiBsYWJlbCB0aGF0IGlzIGFjdHVhbGx5IHN0aWxsIHJlcXVpcmVkLgotICAgIChyZWZlcmVuY2VkIGluIGxpbmUgMjcxMCkKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAyNDg3NTc5ZDFlOTc3MTM3ZGM2NDNhY2VlNzYyYWVhYWZhNjBmNGJkCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBKdW4gMSAxNTozMjoyMyAyMDExICswMDAwCi0KLSAgICBGaXggdHlwbwotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGNhYzExYTkyYzA0YTVjYzUxZTIzMWJlMGFiMTE2ZGI4NTUyMjFkZTEKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEp1biAxIDE1OjA4OjUxIDIwMTEgKzAwMDAKLQotICAgIGRvY3VtZW50YXRpb24gdXBkYXRlCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZmE4ZWU0Zjk3YzJmYThmYjZlNTljZjA1NWUwZDgxYTNiZGVjZmI5NwotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSnVuIDEgMTQ6NTE6MTQgMjAxMSArMDAwMAotCi0gICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDgxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgODY1Y2NmZjMyMjBkMDE3ZjNlZjNiNjE5ZjBmOGY0NDdkMzM1MTRlYgotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSnVuIDEgMTA6MTk6MzMgMjAxMSArMDAwMAotCi0gICAgdmVyc2lvbiB1cGRhdGUKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA3YjYxOWIxMGU5MTJiZGQxYzc2MzNjZTNiMWU3MjU3NGMyMzQxY2U5Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBKdW4gMSAxMDowMTowMSAyMDExICswMDAwCi0KLSAgICB2ZXJzaW9uIHVwZGF0ZQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDU1ZjZlOGMzYTBmNzc0MWJmOGE2ODlhMGZjZjA2Y2M0ODBhZDFlZmYKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEp1biAxIDA5OjU0OjA0IDIwMTEgKzAwMDAKLQotICAgIG1ha2UgZGVwZW5kCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZDdhMjczY2NiZWU1NjkwMWU4Njc5YTBkZTMyYmM2YWExNmQ0NGJmNQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSnVuIDEgMDk6MDY6MzIgMjAxMSArMDAwMAotCi0gICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAxMjYzNTM1NTFmNDkzN2Y3YzBiYzFhYThjODBjMmQ0OGQxMzQ5YzkzCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBKdW4gMSAwOTowMDoyNCAyMDExICswMDAwCi0KLSAgICBWZXJzaW9uIG51bWJlciB1cGRhdGUKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBlYjAxNWM1ZGZmZDQ3YTM4Yzk3NzkyMzY3NmQxYzRlYzhiNTdiYmVjCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgTWF5IDMxIDIyOjQ5OjMyIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSCAzMDY2ODYyOiBmcm9tIGZoZXc6IGZpeCB0aGUgYWdlbnQgZm9yIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzIG9mIHRoZSBkaXNrIGFuZCBleHRlbmQgdGFibGVzLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDdmYTMwZmNlMDhhYzQ5NGMzNThlNmEzMWI5NzAyZTEyZmZlYmQ0NjEKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBNYXkgMzEgMjI6NDk6MzIgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIIDMwNjY4NjI6IGZyb20gZmhldzogZml4IHRoZSBhZ2VudCBmb3IgY29tcGFyaW5nIHVuc2lnbmVkIGxhcmdlIGluZGV4ZXMgb2YgdGhlIGRpc2sgYW5kIGV4dGVuZCB0YWJsZXMuCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYjQxZDRhYWY3YTA2YjQ1YTllYzA3YTU1MTFiYWM1YmFkNmZkZGEyYQotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIE1heSAzMSAyMjo0OTozMiAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzA2Njg2MjogZnJvbSBmaGV3OiBmaXggdGhlIGFnZW50IGZvciBjb21wYXJpbmcgdW5zaWduZWQgbGFyZ2UgaW5kZXhlcyBvZiB0aGUgZGlzayBhbmQgZXh0ZW5kIHRhYmxlcy4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAxYTg0Mzg2NTA0MDVhZTM4NDkxZjNhNWM5YTJiMTBmYzk5YjFiOWMyCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgTWF5IDMxIDIyOjQ5OjMyIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSCAzMDY2ODYyOiBmcm9tIGZoZXc6IGZpeCB0aGUgYWdlbnQgZm9yIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzIG9mIHRoZSBkaXNrIGFuZCBleHRlbmQgdGFibGVzLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGFiMTY4MjhhZDY5YzU0ZTA2OGMwMzhhOWE5NDQ5MWZkYmM2ZTc5OWYKLUF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgTWF5IDMxIDEyOjMwOjMwIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBoclNXUnVuUGF0aCBvZiBzd2FwcGVkLW91dCBwcm9jZXNzZXMgb24gTGludXguCi0gICAgCi0gICAgZmdldHMoKSByZXR1cm5zIE5VTEwgYm90aCB3aGVuIC9wcm9jL1BJRC9jbWRsaW5lIGlzIGVtcHR5ICg9IHN3YXBwZWQgb3V0KSBhbmQgd2hlbiB0aGUgcHJvY2VzcyBleGl0ZWQgYWZ0ZXIgZm9wZW4oKSwgc28gY2hlY2sgL3Byb2MvUElEL3N0YXR1cyBpbiBib3RoIGNhc2VzLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGMwN2Q1OWJkOTJjYzM0YmM5Njk2NGI1ZTc0M2NmZGVlNzk4NzViN2EKLUF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgTWF5IDMxIDEyOjMwOjMwIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBoclNXUnVuUGF0aCBvZiBzd2FwcGVkLW91dCBwcm9jZXNzZXMgb24gTGludXguCi0gICAgCi0gICAgZmdldHMoKSByZXR1cm5zIE5VTEwgYm90aCB3aGVuIC9wcm9jL1BJRC9jbWRsaW5lIGlzIGVtcHR5ICg9IHN3YXBwZWQgb3V0KSBhbmQgd2hlbiB0aGUgcHJvY2VzcyBleGl0ZWQgYWZ0ZXIgZm9wZW4oKSwgc28gY2hlY2sgL3Byb2MvUElEL3N0YXR1cyBpbiBib3RoIGNhc2VzLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGJhNjg4MDZkZDA2NGY2NTU1MzZkNmY2OTM3MWM2OTllNjE2MjA1NmUKLUF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgTWF5IDMxIDEyOjMwOjMwIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBoclNXUnVuUGF0aCBvZiBzd2FwcGVkLW91dCBwcm9jZXNzZXMgb24gTGludXguCi0gICAgCi0gICAgZmdldHMoKSByZXR1cm5zIE5VTEwgYm90aCB3aGVuIC9wcm9jL1BJRC9jbWRsaW5lIGlzIGVtcHR5ICg9IHN3YXBwZWQgb3V0KSBhbmQgd2hlbiB0aGUgcHJvY2VzcyBleGl0ZWQgYWZ0ZXIgZm9wZW4oKSwgc28gY2hlY2sgL3Byb2MvUElEL3N0YXR1cyBpbiBib3RoIGNhc2VzLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDkxY2RiODE1YmIzNjU3NTdmODRjMjIzNGQ5ZTVmNTc2M2FjNGIwNGYKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXkgMjYgMTY6MTI6NDggMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMyOTkzODQ6IGZpeCBJTkZPUk1zIHNvIHRoZXkgcmV0cnkgcHJvYmluZyBmb3IgYW4gZW5naW5lSUQuCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMWQyMGQ3MzNmMTc0MDYyNDdjODBjMzBjNDdiODgyODM5ZTBlYWMwNAotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IE1heSAyNiAxNjoxMjo0OCAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzI5OTM4NDogZml4IElORk9STXMgc28gdGhleSByZXRyeSBwcm9iaW5nIGZvciBhbiBlbmdpbmVJRC4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBhNWE5ZDFlOGEyNGYwMmRmZTRlOTdhZjA0ZDZmNWUwYjU5MGE1MmFlCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWF5IDI2IDE2OjEyOjQ4IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMjk5Mzg0OiBmaXggSU5GT1JNcyBzbyB0aGV5IHJldHJ5IHByb2JpbmcgZm9yIGFuIGVuZ2luZUlELgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDRiOTU2YzQ3MGFjN2U0OTM5OWU3ZTEyMzk3OThlMmEwNjBmZTU4YmEKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXkgMjYgMTY6MTI6NDggMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMyOTkzODQ6IGZpeCBJTkZPUk1zIHNvIHRoZXkgcmV0cnkgcHJvYmluZyBmb3IgYW4gZW5naW5lSUQuCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYTliYzM0ZjZmNDUwYjQ3NTFkZWY4Yjg1NzJiMjVjMGY3OTE4YWQ1ZQotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IE1heSAyNiAxNjowNjoxMSAyMDExICswMDAwCi0KLSAgICBBcHBsaWVkIChyb3VnaGx5KSBwYXRjaCAzMjk5MzcwIHRvIGF2b2lkIHJld3JpdGluZyBleGlzdGluZyBhdXRoa2V5L3ByaXZrZXkvZXRjcwotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDM3NGI4MWZmZmRhNDQ2ZjY0OTlkZWNiNmYwNDhiMTkyMzhhOWY2YjQKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXkgMjYgMTY6MDY6MTEgMjAxMSArMDAwMAotCi0gICAgQXBwbGllZCAocm91Z2hseSkgcGF0Y2ggMzI5OTM3MCB0byBhdm9pZCByZXdyaXRpbmcgZXhpc3RpbmcgYXV0aGtleS9wcml2a2V5L2V0Y3MKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAxZDMzMTM3NWQ4NjI4MmUyM2I0YWU2MDIwNTI3NTNhYTRhNGY4N2FjCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWF5IDI2IDE2OjA2OjExIDIwMTEgKzAwMDAKLQotICAgIEFwcGxpZWQgKHJvdWdobHkpIHBhdGNoIDMyOTkzNzAgdG8gYXZvaWQgcmV3cml0aW5nIGV4aXN0aW5nIGF1dGhrZXkvcHJpdmtleS9ldGNzCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDU3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYWE1ZWM4ZDE5ZGUyOTUxNTEwMzI2MzllMTM4ZThiNzY1ODc4NjZiYwotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IE1heSAyNiAxNjowNjoxMSAyMDExICswMDAwCi0KLSAgICBBcHBsaWVkIChyb3VnaGx5KSBwYXRjaCAzMjk5MzcwIHRvIGF2b2lkIHJld3JpdGluZyBleGlzdGluZyBhdXRoa2V5L3ByaXZrZXkvZXRjcwotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDk2MmM5ZWIzOTY1NTYzYzVhMzEzZDQxZDg5OTI5OThkN2U2MDMzNTEKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBNYXkgMjUgMTk6NDQ6MTUgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMzMDY0NzY6IGZyb20gdGlueXB5cmFtaWRzOiBmaXggbWVtb3J5IGxlYWsgaW4gdGhlIHN3cnVuIGNvbnRhaW5lciBsb2FkaW5nCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDU0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZWMyYmI0NDUxOTA4MDU0NjY5ZmQyZmIxZDQ0MTI2YTU3OTA1OWU1NQotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIE1heSAyNSAxNjoxNzowNCAyMDExICswMDAwCi0KLSAgICBGb2xsb3ctdXAgZm9yIHIyMDQ0OTogdXNlIE5FVFNOTVBfUFJJbyAidSIgZm9yIHByaW50aW5nIHN1YmlkcyBpbnN0ZWFkIG9mIG9ubHkgTkVUU05NUF9QUklvLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDg4MDEzMmRhZjJmNTNkYWRmZTQxYjIyYWQzMjJkNzA2NTBhODJjYzEKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBNYXkgMjUgMTM6MDc6MjMgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogV2luMzI6IE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvOiBMaW5rIHdpdGggZ2RpMzIubGliIGlmIE9wZW5TU0wgaGFzIGJlZW4gZW5hYmxlZCBiZWNhdXNlIGdkaTMyLmxpYiBpcyBhIGRlcGVuZGVuY3kgb2YgT3BlblNTTC4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAyM2VmMmYxMDg0M2M5YTg3Nzg5YTYxNGFiZGY1MjYzNTBjNGQ4NDQzCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgTWF5IDI1IDEzOjA3OjIzIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IFdpbjMyOiBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbzogTGluayB3aXRoIGdkaTMyLmxpYiBpZiBPcGVuU1NMIGhhcyBiZWVuIGVuYWJsZWQgYmVjYXVzZSBnZGkzMi5saWIgaXMgYSBkZXBlbmRlbmN5IG9mIE9wZW5TU0wuCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgOWI4NzAzNzJiNzRhN2FmNWI3NzI2YTYwNTFiNGYzZGI1MDQzYTc3ZQotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIE1heSAyNSAwOToyNDowOCAyMDExICswMDAwCi0KLSAgICBGb2xsb3ctdXAgZm9yIHIyMDQ0ODogc2luY2UgdGhlICJvaWQiIHR5cGVkZWYgaGFzIGJlZW4gY2hhbmdlZCBiYWNrIGZyb20gdWludDMyX3QgdG8gdV9sb25nLCBjaGFuZ2UgTkVUU05NUF9QUklvIGZyb20gTkVUU05NUF9QUkkzMiBpbnRvICJsIi4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA4ODVkMWY1NWNlZmE4MmQ5NTM1NmUzZTM1ZWNhZTgxMTU4YWYzYjU5Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgTWF5IDI1IDA5OjIxOjA1IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBVc2UgcHJvcGVyIGZvcm1hdCBzcGVjaWZpZXIgaW4gZGVidWcgc3RhdGVtZW50cyBmb3IgcHJpbnRpbmcgdmFsdWVzIG9mIHR5cGUgJ29pZCcuCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDQ5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNzIzYmMzODc1NzE3NTc0MjZiODYxYjZhODg1NGE0YjhkODlkY2QxNQotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIE1heSAyNSAwOToyMTowNSAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wZDogVXNlIHByb3BlciBmb3JtYXQgc3BlY2lmaWVyIGluIGRlYnVnIHN0YXRlbWVudHMgZm9yIHByaW50aW5nIHZhbHVlcyBvZiB0eXBlICdvaWQnLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ0OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGRlODkwODcwZGUwOGVhY2ZiMjVhYjgxOGM0ZDEzNTJmNWRjYzA5YzkKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBNYXkgMjUgMDk6MjE6MDUgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IFVzZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmllciBpbiBkZWJ1ZyBzdGF0ZW1lbnRzIGZvciBwcmludGluZyB2YWx1ZXMgb2YgdHlwZSAnb2lkJy4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAzMGI0YzM2NDk4ODc5YjQ5MGMxNWQ1MDAzMGQwYjJjMTg4MjAyODJkCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgTWF5IDI0IDIzOjQ5OjU3IDIwMTEgKzAwMDAKLQotICAgIHJldmVydCBPSUQgdHlwZWRlZiB0byB1X2xvbmcgYXMgYWdyZWVkIHRvIG9uIC1jb2RlcnMgYW5kIGluIHRoZSBhZG1pbiBtZWV0aW5nCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQ4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMGYyZWNkNmYwNWRlZTM3ZjkzZWE5YTlhYzllNzI3NmQ2YjQ3OGRkMAotQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBNYXkgMjQgMTI6NTE6MzkgMjAxMSArMDAwMAotCi0gICAgQWRkZWQgTlVMTC1jaGVja3MgYWZ0ZXIgbWFsbG9jCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYzg5Yzk1YmNjZDEzOGJkYWVlM2UwMWYyZDBmNjYzMzI4ZThlN2U4OAotQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBNYXkgMjQgMTI6NTE6MzkgMjAxMSArMDAwMAotCi0gICAgQWRkZWQgTlVMTC1jaGVja3MgYWZ0ZXIgbWFsbG9jCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMDU4ODYyMDcwNDJhYzJjOTBhYTMxOTE2NTc4MGQxNzY3NmVkNjhmNAotQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBNYXkgMjQgMTI6NTE6MzkgMjAxMSArMDAwMAotCi0gICAgQWRkZWQgTlVMTC1jaGVja3MgYWZ0ZXIgbWFsbG9jCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZTNiMjBjYWFiYzMxM2Q4ODhjYTRjYzk1NDRlN2VjZjJlMWFiMDlkNAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTdW4gTWF5IDIyIDE5OjM0OjEwIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IGFnZW50OiBCVUc6IDMzMDUxNTc6IEZpeCBpcEFkZHJlc3NQcmVmaXggaGFuZGxpbmcgb2YgSVB2NiBhZGRyZXNzZXMKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA5YjEyNWM3MTNiZTFlY2NhNjNmMmIxNjlkMmMxMGQxZDI0YTJkNDc2Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFN1biBNYXkgMjIgMTk6MzQ6MTAgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogYWdlbnQ6IEJVRzogMzMwNTE1NzogRml4IGlwQWRkcmVzc1ByZWZpeCBoYW5kbGluZyBvZiBJUHY2IGFkZHJlc3NlcwotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDA0MzMxODgyYTBjOWRmNzlkOTEzNTQ1NzM4MmEyNzI1YzMwMzBmODEKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU3VuIE1heSAyMiAxOTowNzo1NiAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBweXRob246IEJVRzogMzI5NTQwNzogRml4IGhhbmRsaW5nIG9mIHZvaWQgcG9pbnRlcgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDIzYTJiOTQwZTI2NTYyNjhiZWYzMDAxNWY3ODJlZTZkMDM4ZjkyNjUKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU3VuIE1heSAyMiAxOTowNzo1NiAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBweXRob246IEJVRzogMzI5NTQwNzogRml4IGhhbmRsaW5nIG9mIHZvaWQgcG9pbnRlcgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDZlMmJmOTFhYmE1NjJjY2FlYjEzMDQxOTg5M2E3MTcwYmIyMzEyZjkKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU3VuIE1heSAyMiAxOTowNzo1NiAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBweXRob246IEJVRzogMzI5NTQwNzogRml4IGhhbmRsaW5nIG9mIHZvaWQgcG9pbnRlcgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGNhYmE2NTFmODRmNzEwMmNiYTE4MWQxOTViNTljNzk3NjhkOTQ1NjEKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU3VuIE1heSAyMiAxODo1Nzo1MyAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDMyNjQ4NTI6IFJlY29nbmlzZSBtaXNzaW5nIHJlcG9ydCB0eXBlcyAoc25tcHtVbmF2YWlsYWJsZSxVbmtub3dufUNvbnRleHRzLHNubXBVbmtub3duUERVSGFuZGxlcnMpCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDQzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYzVhNDU4MGI5MjRlZDVjNDljZmZkMWI3ZmQ4ZTkzMmVkMTY4ZWNkYgotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTdW4gTWF5IDIyIDE4OjU3OjUzIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzI2NDg1MjogUmVjb2duaXNlIG1pc3NpbmcgcmVwb3J0IHR5cGVzIChzbm1we1VuYXZhaWxhYmxlLFVua25vd259Q29udGV4dHMsc25tcFVua25vd25QRFVIYW5kbGVycykKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBhNmNhZGQwMDk4YjE2YTFlOWZmYTgxMzgxOGIwZTlmOGZiYmMwZWI4Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFN1biBNYXkgMjIgMTg6NTc6NTMgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzMjY0ODUyOiBSZWNvZ25pc2UgbWlzc2luZyByZXBvcnQgdHlwZXMgKHNubXB7VW5hdmFpbGFibGUsVW5rbm93bn1Db250ZXh0cyxzbm1wVW5rbm93blBEVUhhbmRsZXJzKQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDk4ODE1MDAzZjM0NWVjZTkzZmNmODM2ZmIwYzNlYTU5OTdjOGY5MDAKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU3VuIE1heSAyMiAxODo1Nzo1MyAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDMyNjQ4NTI6IFJlY29nbmlzZSBtaXNzaW5nIHJlcG9ydCB0eXBlcyAoc25tcHtVbmF2YWlsYWJsZSxVbmtub3dufUNvbnRleHRzLHNubXBVbmtub3duUERVSGFuZGxlcnMpCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDQzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMzAyNDVkMDBkMzBjZmM1MjY5MzliYjJmZjcyMWIyMDc2NTQ2ZThjNwotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgTWF5IDIwIDE1OjQxOjA2IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzIzNDc1NDogRW5zdXJlIG9sZCBmX2NyZWF0ZV9mcm9tX3RzdHJpbmcgaG9vayBpcyBpbml0aWFsaXplZCB0byBOVUxMCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgN2QyZmU5ZGNhZWRjYTg2NmNkY2U2MTc4YjYwNmI4ZjA2MTg5YmYzYQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgTWF5IDIwIDE1OjQxOjA2IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzIzNDc1NDogRW5zdXJlIG9sZCBmX2NyZWF0ZV9mcm9tX3RzdHJpbmcgaG9vayBpcyBpbml0aWFsaXplZCB0byBOVUxMCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNTZjNzRjNWE0OTM4NjMzMGE1ODE1NjRhNmVlMTU3OWJjZjZjNTA5ZQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgTWF5IDIwIDE1OjQxOjA2IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzIzNDc1NDogRW5zdXJlIG9sZCBmX2NyZWF0ZV9mcm9tX3RzdHJpbmcgaG9vayBpcyBpbml0aWFsaXplZCB0byBOVUxMCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNDViNGJkNTM3YjYyNzUzNGIxYzYyMTgyMTlmZDc3MGViNWE0YTE1NQotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IE1heSAxOSAxOTo0NjoyMCAyMDExICswMDAwCi0KLSAgICB1c2UgI2lmZGVmIHJhdGhlciB0aGFuICNpZiBmb3IgZGVmaW5lIGNoZWNrcy4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA1Y2M1YTRjZDBkNjQ4OTM1ZWM3NmUwOTYxNjIyOWQwY2VlYmM0MWEwCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWF5IDE5IDE5OjQ2OjIwIDIwMTEgKzAwMDAKLQotICAgIHVzZSAjaWZkZWYgcmF0aGVyIHRoYW4gI2lmIGZvciBkZWZpbmUgY2hlY2tzLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDU4MzgyZTQ4ODVmMzg3ZTNmZmNiOGZlYmE5MzZhNTc4YzY5NDU5ZWUKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXkgMTkgMTk6NDY6MjAgMjAxMSArMDAwMAotCi0gICAgdXNlICNpZmRlZiByYXRoZXIgdGhhbiAjaWYgZm9yIGRlZmluZSBjaGVja3MuCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYjU4OGQxYTFkYTY4MWIyNmYzNWYyYmJmMDQ5MjI0MmNmNGQ4M2M5NgotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IE1heSAxOSAxOTo0NjoyMCAyMDExICswMDAwCi0KLSAgICB1c2UgI2lmZGVmIHJhdGhlciB0aGFuICNpZiBmb3IgZGVmaW5lIGNoZWNrcy4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA5OGQ2MjIzZTEwYWYwYjIwNzM5NWM5YTcxMTkwZGZmNmZhODc5NTljCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXkgMTkgMTc6MTk6MzEgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogbWFuOiBCVUc6IDMxOTA3MjU6IERvY3VtZW50IHNubXB7LF9zZXNzfXN5bmNoX3Jlc3BvbnNlIGFuZCBzbm1wX2FzeW5jX3NlbmQKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBjMjZlN2E5Mzg1MWVkNjc4NDQ3ZGMzMmFiNzJmYmMxYTAwOGExMzVkCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXkgMTkgMTc6MTk6MzEgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogbWFuOiBCVUc6IDMxOTA3MjU6IERvY3VtZW50IHNubXB7LF9zZXNzfXN5bmNoX3Jlc3BvbnNlIGFuZCBzbm1wX2FzeW5jX3NlbmQKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBhZjNkZWExMTBkMDc5YmUxNDY4YWJjN2UwMWNlYzZiZTZjMTFlOWNmCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXkgMTkgMTc6MTk6MzEgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogbWFuOiBCVUc6IDMxOTA3MjU6IERvY3VtZW50IHNubXB7LF9zZXNzfXN5bmNoX3Jlc3BvbnNlIGFuZCBzbm1wX2FzeW5jX3NlbmQKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBjMDBmODhmMzM4ODhlZGQ0ODBhY2M5ZWM5MzEyZDZiNjFlMTcwYTc2Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXkgMTkgMTc6MTk6MzEgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogbWFuOiBCVUc6IDMxOTA3MjU6IERvY3VtZW50IHNubXB7LF9zZXNzfXN5bmNoX3Jlc3BvbnNlIGFuZCBzbm1wX2FzeW5jX3NlbmQKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAzMjk0NWE3YTE2N2I0ZDU2ZTI5NDA2MjZiNzA5YWIxMTE5MDVkMjFhCi1BdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IE1heSAxOSAwODo1NToyNiAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcmFjZSBjb25kaXRpb24gaW4gaHJTV1J1blRhYmxlCi0gICAgVHJlYXQgdGhlIHJlYWRzIGZyb20gL3Byb2MvPHBpZD4vKiBjYXJlZnVseSwgcHJvY2Vzc2VzIGNhbiBleGl0IGluIHRoZSBtaWRkbGUgb2YgcHJvY2Vzc2luZy4KLSAgICAoYWxyZWFkeSBmaXhlZCBpbiBWNS01LXBhdGNoZXMgYW5kIFY1LTQtcGF0Y2hlcyBpbiBTVk4gcmV2LiAyMDExNSwgZHVubm8gd2h5IEkgZGlkIG5vdCBwYXRjaCB0cnVuaykKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAyN2E1NTk1M2YwYmI1N2FhMWFlY2NmNzE4ZjM0YTdkNGFlNjNjNDNlCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXkgMTkgMDg6MjY6NTcgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzMTg0Njk3OiBEb24ndCByZWZlcmVuY2UgaW50ZXJuYWwgTUQ1IHdoZW4gaXQncyBleHBsaWNpdGx5IGRpc2FibGVkCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDM3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgOTBlZTc4MmNhNGVhODUzNGI4YjQzZmYxZGQ2N2ZiYTdkNWY1NjllMQotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU3VuIE1heSAxNSAxNjoyMTozMSAyMDExICswMDAwCi0KLSAgICBGb2xsb3ctdXAgZm9yIHIyMDQzMjogdGVzdGluZy9SVU5URVNUUyB3aXRob3V0IGFyZ3VtZW50cyB3b3JrcyBhZ2FpbiBhcyBpdCBzaG91bGQuCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZDVmYTcwMTM0MjYxYWY3ODQ1M2YwZTAzMTIzY2ZiNWZhMjhjZDY2MwotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU2F0IE1heSAxNCAxOTozODozMCAyMDExICswMDAwCi0KLSAgICBGaXhlZCBhIHR5cG8gaW4gYSBjb21tZW50LgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDE5MWNkYjdiMmE2ZTk4NDJhZjFiOTNiNzcyYTlmZGNiZjRjMzVhMzEKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFNhdCBNYXkgMTQgMTk6MzY6NTYgMjAxMSArMDAwMAotCi0gICAgUlVOVEVTVFMgd29ya3MgYWdhaW4gZm9yIHRlc3RzIHdpdGggYSBmb3VyLWRpZ2l0IG51bWJlci4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAwNDFlNjdiZmJjMDdkMmY0ODg0ZTYzMmVlYWM3MWE5NWNhMzU3ZTU0Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTYXQgTWF5IDE0IDE4OjQ3OjU2IDIwMTEgKzAwMDAKLQotICAgIERvY3VtZW50IHRoYXQgdGhlIHVjZC1zbm1wIGRpc2tpbyBjb2RlIHN0aWxsIGhhcyB0byBiZSBtb2RpZmllZCBzdWNoIHRoYXQgZGlza2lvX2ZyZWVfY29uZmlnKCkgZ2V0cyBpbnZva2VkIHVwb24gU0lHSFVQLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGNhMDUzOTk2MDIyZTNjMWRlM2UyZDViNTU4ZmFkZjZkNzllOWZkZDMKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBNYXkgMTMgMTI6MDU6MTkgMjAxMSArMDAwMAotCi0gICAgRm9sbG93LXVwIGZvciByMjA0MTc6IHJlcGxhY2VkIGEgbWFsbG9jKCkvZnJlZSgpIHBhaXIgYnkgYSBjYWxsIHRvIHJlYWxsb2MoKS4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0MjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA3ZjExNWRmODMzNmUzYjllYTk1MjMwMGIzZDRkMTA0ZWIyMTQwY2RiCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgTWF5IDEzIDEyOjA1OjE5IDIwMTEgKzAwMDAKLQotICAgIEZvbGxvdy11cCBmb3IgcjIwNDE3OiByZXBsYWNlZCBhIG1hbGxvYygpL2ZyZWUoKSBwYWlyIGJ5IGEgY2FsbCB0byByZWFsbG9jKCkuCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMDY4Njk1MjA4NTY5NzZmZjQ1OTBhMGJiNjFjNGU5NmYxNmMzNWQ2ZQotQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXkgMTIgMTE6NDc6MzYgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIG1lbW9yeSBsZWFrIGluIFRDUC1NSUIgdGFibGVzIGludHJvZHVjZWQgYnkgcGF0Y2ggIzMwNTM0MzYuCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMDVkM2QzYTgyMzExYmY5YjU1Mzg2MjE2ZjE4ODE5OGNkODQ5ZmZmMQotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IE1heSAxMiAwOTowMzowMiAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHNubXBfZnJlZV9zZXNzaW9uKCkuCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNGU5NGFiN2YwYzY1MDliNjI4MmVlZmM4ODhhYjBkY2Y3OGU1NzVhNgotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IE1heSAxMiAwOTowMzowMiAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHNubXBfZnJlZV9zZXNzaW9uKCkuCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZmYwM2JmYWQ2ZDBjYzU0ZTU4Y2VlNGQ0ZjhmNjdmZTEyOTEwNTE4YwotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IE1heSAxMiAwOTowMzowMiAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHNubXBfZnJlZV9zZXNzaW9uKCkuCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgY2M3OGQwNjIzOTc1NWM2ZWJiODMxOTAzYjZjZWRkM2UxZGJhYjU4MwotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IE1heSAxMiAwODoyNTozMyAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wbGliOiBfbWliaW5kZXhfYWRkKCkgbm8gbG9uZ2VyIHJlYWRzIHBhc3QgdGhlIGVuZCBvZiB0aGUgZHluYW1pY2FsbHkgYWxsb2NhdGVkIGFycmF5IF9taWJpbmRleGVzLgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQxNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDkyNGNiZTNkNjkzYTc5M2MyMDUzNmU4MGU5MTUxMGM5NTlhY2M5YTcKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXkgMTIgMDg6MjU6MzMgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGxpYjogX21pYmluZGV4X2FkZCgpIG5vIGxvbmdlciByZWFkcyBwYXN0IHRoZSBlbmQgb2YgdGhlIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBhcnJheSBfbWliaW5kZXhlcy4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBhZGNlZDRhODQ4NzZhMmUzY2I4Njg3YjVmZmE1ODMwYTNiNTAwM2FhCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWF5IDEyIDA4OjEyOjQ3IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSSBpcE5ldFRvTWVkaWFUYWJsZS4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0MTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBmMDAxMmRlYzJjOThiYWYxYzBlMjVmYTE3ZDViZjg5YmFjZDBhNGE0Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWF5IDEyIDA4OjEyOjQ3IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSSBpcE5ldFRvTWVkaWFUYWJsZS4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0MTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA4ZDgzZjk1MzgxYzgxOTBlNjRjODlkMjBiNzZjNDZhZDM4OGM0MjFjCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWF5IDEyIDA4OjEyOjQ3IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSSBpcE5ldFRvTWVkaWFUYWJsZS4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA4ZWNkMjk4ZGJjY2VlMWUzMjdjZTY1ODUyZjk4OTI4ZDdiYzA0MWQ3Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWF5IDEyIDA4OjA4OjQxIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSSBpZlRhYmxlLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGQ5NjJmZGE2Nzc4MTRiNjM0MmFkMWI5YzNmYTg0MjI1YjU1NWNkYTIKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXkgMTIgMDg6MDg6NDEgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4gdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJIGlmVGFibGUuCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgY2EzODk0MjkwOGFjNzRmZGYxZjFmMWRlNzc5Y2E1Y2RkNGRlZmEyZAotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IE1heSAxMiAwODowODo0MSAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkgaWZUYWJsZS4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBhYTAzMjc2OWJjM2RhODMwMmMzOGRkOWQ2MmQ1M2Y3ZjA1NGViMmM3Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWF5IDEyIDA3OjMzOjAyIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSSBpcEFkZHJUYWJsZS4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA0ZmZhOTA4ZDAyY2ZhZDlmZjMxYTIwMTgxOTJkNGFkNWY5NTk0NjdjCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWF5IDEyIDA3OjMzOjAyIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSSBpcEFkZHJUYWJsZS4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBhMjFiZGY3MTY0NDkwZjIxZjdlZTFkM2RmZWM2YTlkMzhlMjRkZDc4Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWF5IDEyIDA3OjMzOjAyIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSSBpcEFkZHJUYWJsZS4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAyNzE5MTQ1MTJkYzgyNjhkOGJjNDliYTdlYzM4Y2MyYWNlYzY1NmMzCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWF5IDEyIDA2OjU0OjMzIDIwMTEgKzAwMDAKLQotICAgIERvY3VtZW50YXRpb24gLyBzb3VyY2UgY29kZSBjb21tZW50IHNwZWxsaW5nIGZpeDogZXhpdGVudCAtPiBleGlzdGVudC4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBjMDA5YzEyZDcyYmJjMmUyNzk1ZDNhNmIyMmNhYjZiYTA2ZTQ4NTM1Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWF5IDEyIDA2OjU0OjMzIDIwMTEgKzAwMDAKLQotICAgIERvY3VtZW50YXRpb24gLyBzb3VyY2UgY29kZSBjb21tZW50IHNwZWxsaW5nIGZpeDogZXhpdGVudCAtPiBleGlzdGVudC4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA2YzhhZWU3ZjhhMzRkN2RhMjI5ZjQ1OTA4YzhmMzMxZTcyNTQ0MjJlCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWF5IDEyIDA2OjU0OjMzIDIwMTEgKzAwMDAKLQotICAgIERvY3VtZW50YXRpb24gLyBzb3VyY2UgY29kZSBjb21tZW50IHNwZWxsaW5nIGZpeDogZXhpdGVudCAtPiBleGlzdGVudC4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBjMmQzNWJkNWMzMjJkN2E4NTM2YTFmZjMxZDczZTQxZjc3Yzg1Yjk3Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgTWF5IDEwIDE1OjAyOjUxIDIwMTEgKzAwMDAKLQotICAgIE1pbkdXOiBhdm9pZCB0aGF0IGdjYyBjb21wbGFpbnMgYWJvdXQgcGFzaW5nIGEgKGNoYXIgKikgYXJndW1lbnQgd2hpbGUgKHVuc2lnbmVkIGNoYXIgKikgaXMgZXhwZWN0ZWQuCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDAyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgM2RiZTI3Nzk5YTNmMDY1YmJmMjEyNTk5NDY2OTY5YmViNzI2OTBkMgotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIE1heSAxMCAxNTowMjo1MSAyMDExICswMDAwCi0KLSAgICBNaW5HVzogYXZvaWQgdGhhdCBnY2MgY29tcGxhaW5zIGFib3V0IHBhc2luZyBhIChjaGFyICopIGFyZ3VtZW50IHdoaWxlICh1bnNpZ25lZCBjaGFyICopIGlzIGV4cGVjdGVkLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDE5M2UzOTg0OTI0YmRlYTliYmI3MDMwODA2MmJhZWUzNzMyYWJiYTQKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBNYXkgMTAgMTU6MDI6NTEgMjAxMSArMDAwMAotCi0gICAgTWluR1c6IGF2b2lkIHRoYXQgZ2NjIGNvbXBsYWlucyBhYm91dCBwYXNpbmcgYSAoY2hhciAqKSBhcmd1bWVudCB3aGlsZSAodW5zaWduZWQgY2hhciAqKSBpcyBleHBlY3RlZC4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA5NGI1MjM4ZDg4YTAyNzMwNmFhOTExNTc1ODExMWM3ODVhNGFiYWQ4Ci1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gTWF5IDkgMjA6NTI6MDEgMjAxMSArMDAwMAotCi0gICAgVXNlIHN5bWJvbGljIG5hbWVkIGZvciBpZlR5cGUgdmFsdWVzCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMDRiOGUyNzlhN2E3ODVhNzZlYmY0YjY1NzVmNDFjZTYyOTk0NTJjNgotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIE1heSA5IDIwOjUyOjAxIDIwMTEgKzAwMDAKLQotICAgIFVzZSBzeW1ib2xpYyBuYW1lZCBmb3IgaWZUeXBlIHZhbHVlcwotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDNkY2JmZGQ0ZjFmZmVhZDU1MjQxNDliNGVmYjAwMTI4Njg4ZTE1MDUKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBNYXkgOSAyMDo1MjowMSAyMDExICswMDAwCi0KLSAgICBVc2Ugc3ltYm9saWMgbmFtZWQgZm9yIGlmVHlwZSB2YWx1ZXMKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBmNjU4NmFlY2ZhMmQyYmM0OWRlZmQzZDIxZjQ3MWFhOWEzYzU0MzZkCi1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gTWF5IDkgMjA6NTI6MDEgMjAxMSArMDAwMAotCi0gICAgVXNlIHN5bWJvbGljIG5hbWVkIGZvciBpZlR5cGUgdmFsdWVzCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNWQzMzhmN2I5NDU5MzQ2Y2MwYzI1NWFiYjcxZTA5M2ZmM2VhYTgzOAotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIE1heSA5IDIwOjQzOjUxIDIwMTEgKzAwMDAKLQotICAgIElBTkEgaGFzIGZpeGVkIHRoZSBJQU5BLUlQUE0tTUVUUklDUy1SRUdJU1RSWS1NSUIKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA1YmIxYzlhOGZkYzQ3YjNlZjM1NWNiNDJlOWUxOGFkODhjZTQ5NmZiCi1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTdW4gTWF5IDggMjA6MDE6MjYgMjAxMSArMDAwMAotCi0gICAgRml4IHdhcm5pbmdzIGFuZCBkYXRhIGZvcm1hdCBmb3IgRGF0ZUFuZFRpbWUgb2JqZWN0cy4KLSAgICBUaGVzZSBtb2R1bGVzIHdvcmssIGJ1dDoKLSAgICAtIFRoZXkgYXJlIExpbnV4IG9ubHkKLSAgICAtIFJvd3MgbXVzdCBiZSBjcmVhdGVkIHdpdGggcm93U3RhdHVzIGNyZWF0ZUFuZFdhaXQgYmVmb3JlIHRoZXkgYXJlIHBvcHVsYXRlZAotICAgIC0gQWdlbnQgbXVzdCBydW4gYXMgcm9vdAotICAgIC0gQWdlbnQgaXMgYmxvY2tlZCB3aGlsZSB0ZXN0cyBydW4KLSAgICAtIERhdGEgZm9ybWF0IGZvciBJbmV0QWRkcmVzcyBvYmplY3RzIGlzIHdyb25nLiBJdCBpcyBBU0NJSSwgbm90IGJpbmFyeQotICAgICAgKG1ha2luZyBpdCBlYXNpZXIgdG8gdXNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYnV0IC4uLikKLSAgICAKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBkYmI4Nzk1YTdkZjU5NWYwNjAzZjJlYzYxNzA0Nzk5ZjRjNDgyNjY3Ci1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTdW4gTWF5IDggMjA6MDE6MjYgMjAxMSArMDAwMAotCi0gICAgRml4IHdhcm5pbmdzIGFuZCBkYXRhIGZvcm1hdCBmb3IgRGF0ZUFuZFRpbWUgb2JqZWN0cy4KLSAgICBUaGVzZSBtb2R1bGVzIHdvcmssIGJ1dDoKLSAgICAtIFRoZXkgYXJlIExpbnV4IG9ubHkKLSAgICAtIFJvd3MgbXVzdCBiZSBjcmVhdGVkIHdpdGggcm93U3RhdHVzIGNyZWF0ZUFuZFdhaXQgYmVmb3JlIHRoZXkgYXJlIHBvcHVsYXRlZAotICAgIC0gQWdlbnQgbXVzdCBydW4gYXMgcm9vdAotICAgIC0gQWdlbnQgaXMgYmxvY2tlZCB3aGlsZSB0ZXN0cyBydW4KLSAgICAtIERhdGEgZm9ybWF0IGZvciBJbmV0QWRkcmVzcyBvYmplY3RzIGlzIHdyb25nLiBJdCBpcyBBU0NJSSwgbm90IGJpbmFyeQotICAgICAgKG1ha2luZyBpdCBlYXNpZXIgdG8gdXNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYnV0IC4uLikKLSAgICAKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBlOWFjODYyNzhjMzU4ODAyMjkxNDc1OGEzNDVmYjk4MmJiNWQ0ZWM0Ci1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTdW4gTWF5IDggMjA6MDE6MjYgMjAxMSArMDAwMAotCi0gICAgRml4IHdhcm5pbmdzIGFuZCBkYXRhIGZvcm1hdCBmb3IgRGF0ZUFuZFRpbWUgb2JqZWN0cy4KLSAgICBUaGVzZSBtb2R1bGVzIHdvcmssIGJ1dDoKLSAgICAtIFRoZXkgYXJlIExpbnV4IG9ubHkKLSAgICAtIFJvd3MgbXVzdCBiZSBjcmVhdGVkIHdpdGggcm93U3RhdHVzIGNyZWF0ZUFuZFdhaXQgYmVmb3JlIHRoZXkgYXJlIHBvcHVsYXRlZAotICAgIC0gQWdlbnQgbXVzdCBydW4gYXMgcm9vdAotICAgIC0gQWdlbnQgaXMgYmxvY2tlZCB3aGlsZSB0ZXN0cyBydW4KLSAgICAtIERhdGEgZm9ybWF0IGZvciBJbmV0QWRkcmVzcyBvYmplY3RzIGlzIHdyb25nLiBJdCBpcyBBU0NJSSwgbm90IGJpbmFyeQotICAgICAgKG1ha2luZyBpdCBlYXNpZXIgdG8gdXNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYnV0IC4uLikKLSAgICAKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBjNGY1ZDliOTRiNDg5NWJiOWM5YTA1MGIxYTg4YjIwMWY5MDFmOTczCi1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTdW4gTWF5IDggMjA6MDE6MjYgMjAxMSArMDAwMAotCi0gICAgRml4IHdhcm5pbmdzIGFuZCBkYXRhIGZvcm1hdCBmb3IgRGF0ZUFuZFRpbWUgb2JqZWN0cy4KLSAgICBUaGVzZSBtb2R1bGVzIHdvcmssIGJ1dDoKLSAgICAtIFRoZXkgYXJlIExpbnV4IG9ubHkKLSAgICAtIFJvd3MgbXVzdCBiZSBjcmVhdGVkIHdpdGggcm93U3RhdHVzIGNyZWF0ZUFuZFdhaXQgYmVmb3JlIHRoZXkgYXJlIHBvcHVsYXRlZAotICAgIC0gQWdlbnQgbXVzdCBydW4gYXMgcm9vdAotICAgIC0gQWdlbnQgaXMgYmxvY2tlZCB3aGlsZSB0ZXN0cyBydW4KLSAgICAtIERhdGEgZm9ybWF0IGZvciBJbmV0QWRkcmVzcyBvYmplY3RzIGlzIHdyb25nLiBJdCBpcyBBU0NJSSwgbm90IGJpbmFyeQotICAgICAgKG1ha2luZyBpdCBlYXNpZXIgdG8gdXNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYnV0IC4uLikKLSAgICAKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBlM2RiOTVlMTYxOWRkNTdkZmI1NWFjNzQ5NGY0OGQyYWRkNTZkOTczCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTYXQgTWF5IDcgMTU6MjI6MjcgMjAxMSArMDAwMAotCi0gICAgUmVtb3ZlZCBhbiB1bnVzZWQgbGFiZWwgZnJvbSBwZXJsL1NOTVAvU05NUC54cy4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBlYThjZTAwNzQ0ZTgzMjMzZDg1NDM4NTJmODg0YWEwMzdjMTE4M2EyCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTYXQgTWF5IDcgMTU6MjI6MjcgMjAxMSArMDAwMAotCi0gICAgUmVtb3ZlZCBhbiB1bnVzZWQgbGFiZWwgZnJvbSBwZXJsL1NOTVAvU05NUC54cy4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzNjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAwOTk5NDViYjJmODJlYTZjYjUwM2M3NDg2YzY0YmUwODcxNjQxMjNkCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTYXQgTWF5IDcgMTU6MjI6MjcgMjAxMSArMDAwMAotCi0gICAgUmVtb3ZlZCBhbiB1bnVzZWQgbGFiZWwgZnJvbSBwZXJsL1NOTVAvU05NUC54cy4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBlNmExYmRhZTRmN2JmNjI1YWI2MDdiNGYyODA3NDcwY2QyNzc3NzcxCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTYXQgTWF5IDcgMTM6MTU6NDQgMjAxMSArMDAwMAotCi0gICAgV2luMzI6IGltcHJvdmVkIHNvdXJjZSBjb2RlIGNvbnNpc3RlbmN5IGJ5IHVzaW5nIExQQ1RTVFIgaW5zdGVhZCBvZiBMUENTVFIuIE5vdGU6IHRoaXMgZG9lcyBub3QgbWVhbiB0aGF0IFVuaWNvZGUgYnVpbGRzIGFyZSBzdXBwb3J0ZWQuCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNGViZmNlYTQxOTY0YTg3NDJhMDJjNjg3ODUxMjRiYzI0ZGE1MDZiZQotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU2F0IE1heSA3IDEzOjExOjQ0IDIwMTEgKzAwMDAKLQotICAgIFJldmVydGVkIGEgY2hhbmdlIHRoYXQgd2FzIGNvbW1pdHRlZCBhY2NpZGVudGFsbHkgaW4gcjIwMjc2LgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDgxODZjZjNjM2ZjY2QwMjI2YTA3NjE0NjU5ZjNlOGZjN2QzYWViN2EKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFNhdCBNYXkgNyAxMjo1NDoxMSAyMDExICswMDAwCi0KLSAgICBGaXhlZCB0d28gY29tcGlsZXIgd2FybmluZ3MuCi0gICAgKEJhY2twb3J0ZWQgcjIwMjM2IGZyb20gdGhlIHRydW5rLikKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBjNzZlMmM3Njk4NWFiN2E0MGQ2ZGJlZmQyZTQ3MzIzODU3NjQ5NzM1Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTYXQgTWF5IDcgMTI6NTE6MDQgMjAxMSArMDAwMAotCi0gICAgQ29tbWVudGVkIG91dCBhbiB1bnVzZWQgZnVuY3Rpb24gYmVjYXVzZSB0aGUgY29tcGlsZXIgY29tcGxhaW5lZCBhYm91dCBpdC4KLSAgICAoQmFja3BvcnRlZCByMjAyMzcgZnJvbSB0aGUgdHJ1bmsuKQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM1NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGE1ODk2OWVkZGIzYjY2OTg3N2Q3MjI5ZjcxOTA4N2JiZDcyN2QwMzMKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBNYXkgNiAyMTozMjowMSAyMDExICswMDAwCi0KLSAgICBORVdTOiBQQVRDSCAzMTk4NzgxOiBmcm9tIGZlbm5lcjogR2V0IGRpc21hbi9waW5nIGFuZCBkaXNtYW4vdHJhY2Vyb3V0ZSB0byBhdCBsZWFzdCBjb21waWxlCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMmNjYTYxMjVkNTM4ZmFhOWI1MWI3NzIxNDFmMTkyZDdiNjNjYzBjYgotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIE1heSA2IDIxOjMyOjAxIDIwMTEgKzAwMDAKLQotICAgIE5FV1M6IFBBVENIIDMxOTg3ODE6IGZyb20gZmVubmVyOiBHZXQgZGlzbWFuL3BpbmcgYW5kIGRpc21hbi90cmFjZXJvdXRlIHRvIGF0IGxlYXN0IGNvbXBpbGUKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBiMWU3NmJlZjgxYmZjZTE2YzhkMGJjMDFlODU2Y2I0Yzc1OTMwYjVjCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgTWF5IDYgMjE6MzI6MDEgMjAxMSArMDAwMAotCi0gICAgTkVXUzogUEFUQ0ggMzE5ODc4MTogZnJvbSBmZW5uZXI6IEdldCBkaXNtYW4vcGluZyBhbmQgZGlzbWFuL3RyYWNlcm91dGUgdG8gYXQgbGVhc3QgY29tcGlsZQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDM1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGQwZjIyZGQxMGI3YTBkM2RiZjc5NWMyZDQ4ZTNmYTk2MzY2YWVmMWIKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBNYXkgNiAyMTozMjowMSAyMDExICswMDAwCi0KLSAgICBORVdTOiBQQVRDSCAzMTk4NzgxOiBmcm9tIGZlbm5lcjogR2V0IGRpc21hbi9waW5nIGFuZCBkaXNtYW4vdHJhY2Vyb3V0ZSB0byBhdCBsZWFzdCBjb21waWxlCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZmNiOGE4ZDI3YzJjYzM3OWRjZTI2M2RiZWU2NzIwZDdiNGUwMmQ3NAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgTWF5IDYgMTc6NDY6MjkgMjAxMSArMDAwMAotCi0gICAgdmVyc2lvbiB1cGRhdGUKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA1MTVhZjk5Y2I5ZTZhM2IwOTIzZTY1MDQ2NmY3NDQ2NGUzYjliNWY2Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBNYXkgNiAxNzozNzo1OSAyMDExICswMDAwCi0KLSAgICB2ZXJzaW9uIHVwZGF0ZQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDZmOTI3ZmQ3M2FmMmE0Y2ViNjdmYzQwOTA4MjZhMjg0YTdlNmZjMTkKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIE1heSA2IDE3OjM1OjUwIDIwMTEgKzAwMDAKLQotICAgIG1ha2UgZGVwZW5kCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzQ1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgODA4MGE4MTg5ZWQ3ZWU3M2NhMzIxOGM4MjgwYzY4NzE3ZDQ1MzVkZQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgTWF5IDYgMTc6MjI6MTQgMjAxMSArMDAwMAotCi0gICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA2MmZiOTNlMjg3MjhiMGU5M2MxMzRjODhiNjViMWQ0NTNiNmU4OWMyCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBNYXkgNiAxNzoxNzo0NiAyMDExICswMDAwCi0KLSAgICBWZXJzaW9uIG51bWJlciB1cGRhdGUKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA3NGUxM2NjOTViZWU0NjU1ZGYyM2JhNTE0YmQyNjU3ODg2YzllNGI2Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBNYXkgNiAxNDoyMzoyNCAyMDExICswMDAwCi0KLSAgICB2ZXJzaW9uIHVwZGF0ZQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDM0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDc5MzE4N2FhYTA0Yzg4MWY2YjU3ZmNmMzYxMjk2YjUyYTk0MGUxZjgKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIE1heSA2IDE0OjIxOjQ1IDIwMTEgKzAwMDAKLQotICAgIHZlcnNpb24gdXBkYXRlCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzM5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMTQ2NmUxNWU1MjM4MDk2NWY4NDRjNmQ5OGIzZWIyNTc4OTlhNGNlMgotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgTWF5IDYgMTQ6MTk6NTcgMjAxMSArMDAwMAotCi0gICAgbWFrZSBkZXBlbmQKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzMzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBkZWM3ZDQ3Y2EzNzY3YzM3ZDE3OTgxZjFjZjllNTgwYWUyZmUwMjE0Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBNYXkgNiAxNDowMjowNCAyMDExICswMDAwCi0KLSAgICBkb2N1bWVudGF0aW9uIHVwZGF0ZQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDMzNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDBlYzFjOTI5MTY3YWRiM2Q5NmI0MWVhYzI0MzUzNDk2YzMzNzFiMDgKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIE1heSA2IDEzOjU5OjIwIDIwMTEgKzAwMDAKLQotICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDMzNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDFhMDE0NTI5YzVjNGEwN2M4NDA3ZTk1NWE3ZjFmZTY4NmNiN2VlN2MKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIE1heSA2IDEzOjUwOjA2IDIwMTEgKzAwMDAKLQotICAgIEZpeCBpbmNvbXBsZXRlIHVuaW5zdGFsbCBjb25maWd1cmF0aW9uOgotICAgIC0gYnJva2VuIHJlbW92YWwgb2YgTWljcm9zb2Z0IERMTAotICAgIC0gcmVtb3ZlIGFzc29ydGVkIG5ldyBNSUJzIGFuZCBoZWFkZXIgZmlsZXMKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzMzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAxZDA5MWM1NzkyODI2ZTM5ZWM3MmI2YmJmYjVjNzA3N2E0YTdkOGViCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBNYXkgNiAxMzo1MDowNiAyMDExICswMDAwCi0KLSAgICBGaXggaW5jb21wbGV0ZSB1bmluc3RhbGwgY29uZmlndXJhdGlvbjoKLSAgICAtIGJyb2tlbiByZW1vdmFsIG9mIE1pY3Jvc29mdCBETEwKLSAgICAtIHJlbW92ZSBhc3NvcnRlZCBuZXcgTUlCcyBhbmQgaGVhZGVyIGZpbGVzCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZGFjMTAyYmQ1YjYzYTIxMTgxYTgwMzBhZGFmNWZmOTZiOWY4MjZjMwotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgTWF5IDYgMTM6NTA6MDYgMjAxMSArMDAwMAotCi0gICAgRml4IGluY29tcGxldGUgdW5pbnN0YWxsIGNvbmZpZ3VyYXRpb246Ci0gICAgLSBicm9rZW4gcmVtb3ZhbCBvZiBNaWNyb3NvZnQgRExMCi0gICAgLSByZW1vdmUgYXNzb3J0ZWQgbmV3IE1JQnMgYW5kIGhlYWRlciBmaWxlcwotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDMzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGZjM2I0MTY3OTRjZjcyOTIyZjhiMmQ2MzZiYmVkMzc3Y2ExYTM2ZWQKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIE1heSA2IDEzOjUwOjA2IDIwMTEgKzAwMDAKLQotICAgIEZpeCBpbmNvbXBsZXRlIHVuaW5zdGFsbCBjb25maWd1cmF0aW9uOgotICAgIC0gYnJva2VuIHJlbW92YWwgb2YgTWljcm9zb2Z0IERMTAotICAgIC0gcmVtb3ZlIGFzc29ydGVkIG5ldyBNSUJzIGFuZCBoZWFkZXIgZmlsZXMKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzMzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBmM2IxMzcyNWI3YmQ2NGFjOTQ4ZDk3MGQ5ZmU5NjUyOTg4ZWE0MTE4Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBNYXkgNiAxMjo1ODoyOCAyMDExICswMDAwCi0KLSAgICBTdXBwb3J0IFRhci9HWmlwIGNvbW1hbmQgcGF0aHMgY29udGFpbmluZyBzcGFjZXMKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzMzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAyNGViZmE0ODIwNGY4Mzg0NmE3MTY2MmRiOTIxZDgzYzk3MzBiZDZhCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBNYXkgNiAxMjo1ODoyOCAyMDExICswMDAwCi0KLSAgICBTdXBwb3J0IFRhci9HWmlwIGNvbW1hbmQgcGF0aHMgY29udGFpbmluZyBzcGFjZXMKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzMzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBlZWMxNzg3NmE2NTNmZDA1MmZmNjI0MjRhODc5NThmYThkMDI5NDQyCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBNYXkgNiAxMjo1NzowNyAyMDExICswMDAwCi0KLSAgICBSZXBvcnQgR1ppcCBjb21tYW5kIGNvcnJlY3RseQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDMzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDJhNGMyYWExN2MxYWFiMTlmN2JkMmMwY2ZjMTIxMWE3MTRjYzJhNTUKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIE1heSA2IDEyOjU3OjA3IDIwMTEgKzAwMDAKLQotICAgIFJlcG9ydCBHWmlwIGNvbW1hbmQgY29ycmVjdGx5Ci0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNzEwNDM0YzRlNzUxMWUyNjZiN2VlZDVhZjUzMmUyM2RjNDk1Yzk3YQotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IE1heSA1IDIxOjQ4OjI0IDIwMTEgKzAwMDAKLQotICAgIEZpeCBmb3IgRHJhZ29uRmx5IEJTRCAoZG9lcyBub3QgZGVmaW5lIElQX1NFTkRTUkNBRERSKQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDMzMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDdmN2NkNzk2ZTA4ZDk0MjFmMGM5MDdhOTdlYzg5NjM2YTk3NTZhODgKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXkgNSAyMDoyOTozOCAyMDExICswMDAwCi0KLSAgICBGaXggc3BlbGxpbmcgb2YgU09fUkVDVkRTVEFERFIKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzMzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBjMWZiMzcyMjkxNDc0MWZhOTk4ZTZiN2NlZTljZThlMDdjZDQ3MDBlCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWF5IDUgMDY6MDc6NTEgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogTWluR1c6IE1hZGUgcmVncmVzc2lvbiB0ZXN0IG91dHB1dCBpbmRlcGVuZGVudCBvZiB0aGUgTmV0LVNOTVAgdmFyaWFibGVzIGRlZmluZWQgaW4gdGhlIFdpbmRvd3MgcmVnaXN0cnkuIFNvbWUgdGVzdHMgdGhhdCBmYWlsZWQgcHJldmlvdXNseSBhZnRlciB0aGUgTmV0LVNOTVAgYmluYXJpZXMgKE1TVkMgYnVpbGQpIGhhZCBiZWVuIGluc3RhbGxlZCBkbyBub3cgcGFzcy4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzMjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBiYzUyNThkZTIwMzAyMjhiMzY5ZTEzZDJhNDc0OGM4NTdhMGE0YjVlCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWF5IDUgMDY6MDc6NTEgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogTWluR1c6IE1hZGUgcmVncmVzc2lvbiB0ZXN0IG91dHB1dCBpbmRlcGVuZGVudCBvZiB0aGUgTmV0LVNOTVAgdmFyaWFibGVzIGRlZmluZWQgaW4gdGhlIFdpbmRvd3MgcmVnaXN0cnkuIFNvbWUgdGVzdHMgdGhhdCBmYWlsZWQgcHJldmlvdXNseSBhZnRlciB0aGUgTmV0LVNOTVAgYmluYXJpZXMgKE1TVkMgYnVpbGQpIGhhZCBiZWVuIGluc3RhbGxlZCBkbyBub3cgcGFzcy4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzMjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAzNzljZGYzYTk2Y2YyN2Y0N2Y0MTEyMjNiNTNmODAwNWYwNDMyYTExCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWF5IDUgMDY6MDc6NTEgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogTWluR1c6IE1hZGUgcmVncmVzc2lvbiB0ZXN0IG91dHB1dCBpbmRlcGVuZGVudCBvZiB0aGUgTmV0LVNOTVAgdmFyaWFibGVzIGRlZmluZWQgaW4gdGhlIFdpbmRvd3MgcmVnaXN0cnkuIFNvbWUgdGVzdHMgdGhhdCBmYWlsZWQgcHJldmlvdXNseSBhZnRlciB0aGUgTmV0LVNOTVAgYmluYXJpZXMgKE1TVkMgYnVpbGQpIGhhZCBiZWVuIGluc3RhbGxlZCBkbyBub3cgcGFzcy4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzMjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBmNjdjMTUwZmIwNWVkMzhkZjQ0ZjhiNTI2MDkxZDZlOWI4OGQ5ZjMwCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgTWF5IDMgMTk6MTU6MjcgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGxpYjogR3VhcmQgbmV0c25tcF91ZHBfcmVjdmZyb20oKSBldGMuIGRlY2xhcmF0aW9ucyBjb25zaXN0ZW50bHkuCi0gICAgQ0hBTkdFUzogV2luMzI6IEJ1aWxkcyB3aXRoIFZpc3VhbCBTdHVkaW8gMjAxMC4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAyNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBlZWJlYTY4M2E4MDI2MTM3YTcwOGU1Y2M0OTk2ZGJhYTQxNTU4MDkwCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgTWF5IDMgMTg6NTU6MDIgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGxpYjogR3VhcmQgbmV0c25tcF91ZHBfcmVjdmZyb20oKSBldGMuIGRlY2xhcmF0aW9ucyBjb25zaXN0ZW50bHkuCi0gICAgQ0hBTkdFUzogV2luMzI6IEJ1aWxkcyB3aXRoIFZpc3VhbCBTdHVkaW8gMjAxMC4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAyNzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAwOTgxZTYwMGE2MmQ1MjRiYmEwZmM4Nzg0NDM1ZDc2ZDI3NWQ3ZjMzCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgTWF5IDMgMTU6Mjk6NDYgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogV2luMzI6IFBBVENIOiAzMjkzODQyOiBFbGltaW5hdGUgcmVnaXN0cnkgYXJndW1lbnQgbGltaXQgb2YgMTI3IGNoYXJhY3RlcnMgKHRoaXMgbGltaXRhdGlvbiB3YXMgcmVwb3J0ZWQgYnkgU3lsdmFpbiBEZXJ5KS4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAyNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBmM2VhMzQxZmIxOTQ0ZGM2YTYzOTZhZGQ3MmFjMzlmNTc5NGEyZDY5Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgTWF5IDMgMTU6Mjk6NDYgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogV2luMzI6IFBBVENIOiAzMjkzODQyOiBFbGltaW5hdGUgcmVnaXN0cnkgYXJndW1lbnQgbGltaXQgb2YgMTI3IGNoYXJhY3RlcnMgKHRoaXMgbGltaXRhdGlvbiB3YXMgcmVwb3J0ZWQgYnkgU3lsdmFpbiBEZXJ5KS4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAyNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBkMTc2MTUzN2IxMWI3MGJhOWY1YzU1ZDY4ZDAzYjE0YmZlMzI5OTI1Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgTWF5IDMgMTU6Mjk6NDYgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogV2luMzI6IFBBVENIOiAzMjkzODQyOiBFbGltaW5hdGUgcmVnaXN0cnkgYXJndW1lbnQgbGltaXQgb2YgMTI3IGNoYXJhY3RlcnMgKHRoaXMgbGltaXRhdGlvbiB3YXMgcmVwb3J0ZWQgYnkgU3lsdmFpbiBEZXJ5KS4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAyNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBhMjkwMGM0NWQxZDkyN2UxZDg5MTgwMGExNDIyYTkyMmIzNzZkODVjCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gTWF5IDIgMTE6MjI6MzQgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogV2luMzI6IGhlYWRlciBmaWxlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY2FuIG5vdyBiZSB1c2VkIGluIHRoZSBNaW5HVyBlbnZpcm9ubWVudC4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAyNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA0MjA1ZjUzODI5YTcyNWI1YjVlZTgzNWQ3OTE4YTc4MzViMjZhZGM2Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gTWF5IDIgMTE6MjI6MzQgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogV2luMzI6IGhlYWRlciBmaWxlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY2FuIG5vdyBiZSB1c2VkIGluIHRoZSBNaW5HVyBlbnZpcm9ubWVudC4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAyNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAwZmQ3YjA2MDY5OWI5MDQ3ZmNhYzlhMTVkNmM0ZGUxYzA5NDRjNWMwCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gTWF5IDIgMTE6MjI6MzQgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogV2luMzI6IGhlYWRlciBmaWxlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY2FuIG5vdyBiZSB1c2VkIGluIHRoZSBNaW5HVyBlbnZpcm9ubWVudC4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAyNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAyZTAwOTE0ZDQwOGIwZWY5YTQ1ZDJiMzE3YjAzMzI5ZTgxNDU2NTg2Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gTWF5IDIgMTE6MTM6MjMgMjAxMSArMDAwMAotCi0gICAgV2luMzIgRExMIGJ1aWxkIGZpeGVzLgotICAgIChCYWNrcG9ydGVkIHIyMDE4NCBmcm9tIHRydW5rLikKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAyNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAyNTljMjI0ODQzZTZkZDcxM2FlNjc3Njg4ZDQxN2IwMDc4YjBhMzcwCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gTWF5IDIgMTE6MTM6MjMgMjAxMSArMDAwMAotCi0gICAgV2luMzIgRExMIGJ1aWxkIGZpeGVzLgotICAgIChCYWNrcG9ydGVkIHIyMDE4NCBmcm9tIHRydW5rLikKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAyNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBlNzg2NDIwN2Y4ODgyMzBkZTY3OWFjZmRhMWZkOWI2NTdkNzkyNjEwCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgQXByIDI5IDExOjE3OjExIDIwMTEgKzAwMDAKLQotICAgIFNwZWxsaW5nIGFuZCBncmFtbWFyIGZpeGVzIGZvciB0aGUgc291cmNlIGNvZGUgY29tbWVudHMgaW4gc25tcGxpYi93aW5zZXJ2aWNlLmMuCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMjc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZTdiMzNmNDNkMGMzMTI1MTYyYWJiZDI2NGQ3ZTFmYTNmYTQwNjMwMgotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEFwciAyOSAxMToxNzoxMSAyMDExICswMDAwCi0KLSAgICBTcGVsbGluZyBhbmQgZ3JhbW1hciBmaXhlcyBmb3IgdGhlIHNvdXJjZSBjb2RlIGNvbW1lbnRzIGluIHNubXBsaWIvd2luc2VydmljZS5jLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDI3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGMxNzYyMmVlN2VlODA2ZjAyZTRlYTk5ZDY0Y2M3ZWFiY2Q0NjA4ZDQKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBBcHIgMjkgMTE6MTc6MTEgMjAxMSArMDAwMAotCi0gICAgU3BlbGxpbmcgYW5kIGdyYW1tYXIgZml4ZXMgZm9yIHRoZSBzb3VyY2UgY29kZSBjb21tZW50cyBpbiBzbm1wbGliL3dpbnNlcnZpY2UuYy4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAyNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAzMTFhZGUyM2RlNGEwMDE0ZmUwZmMyM2NmODNkMDc3Y2Q2NjNhZDA1Ci1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgQXByIDI3IDIxOjE2OjIzIDIwMTEgKzAwMDAKLQotICAgIERvbid0IGZyZWUgdGhlIGlmWFRhYmxlIHJvdyBmb3VuZCBvbiBsb2FkIGZhaWx1cmUgYXMgd2UgZG9uJ3Qgb3duIGl0Ci0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMjQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZWRlMjQ2ODk0NjFiNzVjNDQxYTM2YTM4NGE2YzU1OTcyM2RkZTJkMwotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEFwciAyNyAyMToxNjoyMyAyMDExICswMDAwCi0KLSAgICBEb24ndCBmcmVlIHRoZSBpZlhUYWJsZSByb3cgZm91bmQgb24gbG9hZCBmYWlsdXJlIGFzIHdlIGRvbid0IG93biBpdAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDI0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDFhZjA4ZTFkNjA4YjdiZDEzMzYxZWFkNWM0MmY0YzQ3YTI4M2I1OTkKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBBcHIgMjcgMjE6MTY6MjMgMjAxMSArMDAwMAotCi0gICAgRG9uJ3QgZnJlZSB0aGUgaWZYVGFibGUgcm93IGZvdW5kIG9uIGxvYWQgZmFpbHVyZSBhcyB3ZSBkb24ndCBvd24gaXQKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAyNDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA2MzczZWYwOWFkZDViMmEyY2QxZDhlMTM2YzY3NGU4NjkxMGI5MGE1Ci1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgQXByIDI3IDIxOjE2OjIzIDIwMTEgKzAwMDAKLQotICAgIERvbid0IGZyZWUgdGhlIGlmWFRhYmxlIHJvdyBmb3VuZCBvbiBsb2FkIGZhaWx1cmUgYXMgd2UgZG9uJ3Qgb3duIGl0Ci0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMjQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNDBhYmQ4ZTVhYjExYTA3YzQ5NmFiMjVmMWFkNTRjYzNlNTgzMjdhNAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTdW4gQXByIDE3IDIwOjU2OjQ4IDIwMTEgKzAwMDAKK2NvbW1pdCA4NWY4OTNlMmI2MDVlNjdmOWJkMDQ0M2M3NGUyZWQyNjlhYTY4NTY0CitBdXRob3I6IE5pa2kgRGVuZXYgPG5pa2lfZEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBOb3YgMTcgMjI6NDI6MzIgMjAxMSArMDEwMAogCiAgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNzU2NDA6IFVzZSBJUF9SRUNWRFNUQUREUiBzb2Nrb3B0IHdoZXJlIGF2YWlsYWJsZSAoKkJTRCkKICAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxODMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgVGhpcyBodW5rIGZlbGwgb2Ygd2hlbiB0aGUgcmVzdCBvZiB0aGUgcGF0Y2ggd2FzIG1lcmdlZC4KIAotY29tbWl0IGQyZjZmNTUxMzZiMzk4M2ZhYjE2NDBjMDMxZDVlN2JmMzJhNDg1MzUKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU3VuIEFwciAxNyAyMDo1Njo0OCAyMDExICswMDAwCitjb21taXQgNWM5MTNlNTQ2NTZhZTAwOTZiMWZlYjZkYTk4YjVmYzljYTgxZjI3NgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE5vdiAxNiAyMzozMzowNyAyMDExICswMTAwCisKKyAgICBEZWZpbmUgdGhlIGZ1bGwgTmV0QlNEIGhpZXJhcmNoeSBkb3dud2FyZHMKKworY29tbWl0IGI4ODE4NDFiZDA0OTNkZDcxZDYzMjU5YmRkZWQ0NDliMDZmMDJjMzIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MzA6MzMgMjAxMSArMDEwMAorCisgICAgRml4IHNpemVfdC9pbnQgbWlzbWF0Y2hlcworCitjb21taXQgY2EyOTRjZjc1YmJjOGU5MGRiZjQ0ZWU0MDQ3ODkzNWU5MWRiMTQ4NworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE5vdiAxNiAyMzoxODowMyAyMDExICswMTAwCisKKyAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcworCitjb21taXQgY2QzMmMyZGZmMDZiOWI0NTJjYzE4ZDU1MmQyZjIyMzQwOTJjODI5YworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE5vdiAxNiAyMzoxNzowOSAyMDExICswMTAwCisKKyAgICBGaXggZm9ybWF0IHdhcm5pbmcKKworY29tbWl0IDg4MzEzNmMyYjJmYTA3MzlmNDM3YThjZmI2NjE0YWNjYzc2ZTI2OGUKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTU6NTggMjAxMSArMDEwMAorCisgICAgTW9yZSBuZWVkcyBmb3IgTkVUU05NUF9QUklvIGZvcm1hdCBzcGVjaWZpZXIKKworY29tbWl0IGI4MDg0YTdjY2M5MDliNmQ2ZGI3YzBlOGU1OTZkNzg2NzFmNTY3OGIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTQ6MjYgMjAxMSArMDEwMAorCisgICAgRml4IHVzaW5nIGNoYXIgYXMgYXJyYXkgaW5kZXggKGN0eXBlLmgpCisKK2NvbW1pdCA4NDUyOWU2MzIwYTg5ZDk3ZjEzMTRhZWJhZDgwNjI1NWQyYTFiMThjCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTm92IDE2IDIzOjAwOjU3IDIwMTEgKzAxMDAKKworICAgIEZpeCBtaXNzaW5nIGZvcm1hdCBmb3IgRnJlZUJTRCA0CisKK2NvbW1pdCA0YmQwMzUyOTU1YTI1NTFiZmUwMjMwOGRkMTM0YjkxMjhjOThiOWU5CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTm92IDE2IDIyOjU5OjM2IDIwMTEgKzAxMDAKKworICAgIEZpeCBwYXJhbnRoZXNpcyBwcm9ibGVtCisKK2NvbW1pdCBmZTYyNjliMTkwMGNmNDRkYzI3YTE5OWE3NjFkMTVhMDFjM2YzMDkyCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTm92IDE2IDIyOjU4OjM0IDIwMTEgKzAxMDAKKworICAgIEZpeCBzaXplX3QvaW50IG1pc21hdGNoZXMKKworY29tbWl0IGE0ZGI5ZjlmYzEzZDIxZWNmZjQ4OGViNDEwMzc2ZWRkYTZjMjgyMzIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBOb3YgMTYgMTM6NDM6MzQgMjAxMSArMDEwMAorCisgICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKKworY29tbWl0IDM5MGMwMTE0YzhlYzBiZGIyN2IwOGI2Zjc0ZTNmNmVmM2E2Mjk4MWIKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBOb3YgMTYgMTM6Mzc6NDkgMjAxMSArMDEwMAorCisgICAgRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzCisKK2NvbW1pdCAyNWNmYzE5NjJhZTU3NmNjYjE1NThkYTFlM2VmOGI2YzE3ZjYzYzE2CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTm92IDE2IDExOjI3OjUzIDIwMTEgKzAxMDAKKworICAgIFJlYWxseSB1cC10by1kYXRlIG1pYnMKKworY29tbWl0IDBlODZjNzgxZjM5ODliZjAyMmM4OTkzYTExODYxN2I3NGE3NTQyMGMKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBOb3YgMTYgMDk6MTc6MTkgMjAxMSArMDEwMAorCisgICAgbWVtb3J5X2xpbnV4OiBnZXQgU2htZW0gZnJvbSAvcHJvYy9tZW1pbmZvIGZvciAyLjYgKG9yIG5ld2VyKSBrZXJuZWxzCisKK2NvbW1pdCBiZjI2NGQxNWRlZDdhY2JiZjJlMzg3MWI5OGZkMWZjZWY0M2Q5ZWMzCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTm92IDE2IDA5OjE2OjE2IDIwMTEgKzAxMDAKKworICAgIG1lbW9yeV9saW51eDogY2xvc2Ugc29ja2V0cyBpbiBlcnJvciBzaXR1YXRpb25zCisKK2NvbW1pdCA1N2ZmOGE0MGJhZTVkOWJjYWQxNjA4OTE0MmE5Y2YzMjhjOWZhMWY1CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTm92IDE2IDA5OjE0OjU3IDIwMTEgKzAxMDAKKworICAgIGRpc21hbi9waW5nLCBkaXNtYW4vdHJhY2Vyb3V0ZTogQ2xvc2Ugc29ja2V0cyBpbiBlcnJvciBzaXR1YXRpb25zCisKK2NvbW1pdCA4YTI1MDJhMTVjMzIxN2I5NTkzOWEzYzgzNjE2N2QyMzBhYzM1ZjAyCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTm92IDE2IDA5OjEzOjUzIDIwMTEgKzAxMDAKKworICAgIFVwLXRvLWRhdGUgbGlzdCBvZiBSRkNzIHdpdCBtaWJzCisKK2NvbW1pdCBkY2RkNzAyMTExZDhkYTVmNTM4MDRjZmNmMGRmZGFkNzMxNDY4YmRlCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIE5vdiAxNSAxMDo1NzozNCAyMDExICswMDAwCisKKyAgICBEb24ndCB0cnkgdG8gaW5zdGFsbCBhbiBlbXB0eSBsaXN0IG9mIG1hbiBwYWdlcyAoTUFOMykKKworY29tbWl0IGJhNjE5ODA0ZTU5NzhhOGRmNzU0ODQ0ZWZjY2E1MmI2OWI1MDE1ZmEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBOb3YgMTQgMTM6MzQ6MjAgMjAxMSArMDEwMAorCisgICAgTWluR1c6IE1ha2Ugc3VyZSB0aGF0IHRoZSBiYWNrc2xhc2hlcyBpbiB0aGUgcHNraWxsIG1lc3NhZ2UgYXJlIGRpc3BsYXllZC4KKworY29tbWl0IDkyM2VlY2M1MDdmNzUwNDNiNjBjNWU2ODA1M2E0ZjM5NmFiMGIwZDIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBOb3YgMTQgMTI6MzY6MzggMjAxMSArMDEwMAorCisgICAgQ29tcGlsZXIgd2FybmluZyBmaXggZm9yIHN5c3RlbXMgd2hlcmUgdWludDY0X3QgPSB1bnNpZ25lZCBsb25nIChlLmcuIFJIRUwgNi4xL3g4Nl82NCkKKworY29tbWl0IDQzNGJmYzFmNzQ1NzU1MGI2Zjg3ZDViY2Q1MTEyNzZiMjcwYjU5NjQKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gTm92IDE0IDExOjIyOjUzIDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBmcm9tIE1hcnRpbiBXaWxjazogZml4ZWQgc25tcGQgY3Jhc2hpbmcgd2l0aCAnc2VsZWN0OiBiYWQgZmlsZSBkZXNjcmlwdG9yJy4KKyAgICAKKyAgICBPbiAzMi1iaXQgc3lzdGVtcywgc25tcGQgZGllcyB3aXRoIGFmb3JlbWVudGlvbmVkIG1lc3NhZ2Ugd2hlbiB1c2luZyBmaWxlIGRlc2NyaXB0aW9ucyA+IDMyLCBlLmcuIHdoZW4gaGF2aW5nID4zMiBBZ2VudFggc3ViYWdlbnRzLgorCitjb21taXQgZWQ2NWVjYTZlN2Y5Y2ZhNzM4MGE3OGQ1NmMwMWVkMzE0NzQ1YjE2OQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIE5vdiAxMSAxOTowMToyMSAyMDExICswMTAwCisKKyAgICBGcmVlQlNELTk6IEZpeCBmb3IgY29uc3QnaWZ5ZWQgbmxpc3QgYXJndW1lbnRzCisKK2NvbW1pdCBlYWNhNzk4M2UzNjU1YWI2OTZmY2M0NDYxY2EwY2VkYmFjNmNlNjlhCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgTm92IDExIDE5OjAwOjEyIDIwMTEgKzAxMDAKKworICAgIE5ldEJTRC02OiBPbmUgbW9yZSBpbnN0YW5jZSBvZiB0aW1lc3BlYyByZXBsYWNpbmcgdGltZXZhbAorCitjb21taXQgOGFkNmM1M2ZkZWM1YWRlYWU0ZTUyZjE3NTFlY2VjNGEzNDViYWIwNQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIE5vdiAxMSAxODo1OTowMSAyMDExICswMTAwCisKKyAgICBGaXggYnVpZyAjMzQzNjUyNzogYXJwX25ldGxpbms6IGZpeCBkeWluZyByZWxvYWQgb2YgY2FjaGUKKworY29tbWl0IDM3OGZmZWQwM2JhNzlhODM0NmQ2YzYyNzgxZTJkZGY1Y2U5MmE0NzgKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBOb3YgMTEgMTg6NTU6NDMgMjAxMSArMDEwMAorCisgICAgRml4IGJ1ZyAjMzQzNjUyODogc3dpbnN0X3BrZ2luZm86IHJlY292ZXIgZnJvbSBOVUxMIHJldHVybiBmcm9tIG9wZW5kaXIKKworY29tbWl0IGQ3YWQ4ZjVmOWYzZjY3ZjE2ZjY1YzI1MTVkMTFlMTk0ZDJjZGQxMmMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBOb3YgMTAgMTQ6MDQ6NDEgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogQ3lnd2luOiBNYWtlIGRhdGVfbl90aW1lKCkgcHJvZHVjZSB0aW1lIHpvbmUgaW5mb3JtYXRpb24KKworY29tbWl0IGJhMzVjNTBiMmY0NTliZDljMTFlZDU5Y2M3ZDFiMTYyMTU2NDRmYTMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBOb3YgMTAgMTQ6MTc6MDQgMjAxMSArMDEwMAorCisgICAgUmVwbGFjZSBBQ19UUllfTElOSygpIGJ5IEFDX0xJTktfSUZFTFNFKCkKKyAgICAKKyAgICBOb3RlOiB0aGVzZSBjaGFuZ2VzIGRvIG5vdCBhZmZlY3QgdGhlIGdlbmVyYXRlZCBjb25maWd1cmUgc2NyaXB0LgorCitjb21taXQgZjYxNWJmMjRmNWQwZjIzY2U5MzAxZGE1NTYxODRkNjQ2MDc0MDQ1NgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE5vdiA5IDIwOjMyOjQ5IDIwMTEgKzAxMDAKKworICAgIEZpcyBCdWcgIzM0MzQ4MjQ6IFNJR1NFR1Ygd2hlbiByZWFkaW5nIGRpc2sgZGlyZWN0aXZlIGFmdGVyIFNJR0hVUAorCitjb21taXQgYTk0YTE3OWQ5MzQwZjUxZmE3YzIzNDMxNjMwYmMwZmZkNmQ3NTllOAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE5vdiA5IDIwOjMwOjUxIDIwMTEgKzAxMDAKKworICAgIEZpeCBidWcgIzM0MzM2MTY6IGRvbnQgdHJlYXQgRGF0ZUFuZFRpbWUgYXMgYSBzdHJpbmcKKworY29tbWl0IGIyOWU0MTY0NTMxZDI1OGZlMzRhNmZlMmI5ZTFlYzYwYzU2Zjk1NDQKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIE1vbiBOb3YgNyAwMToyNTo1NyAyMDExICswMTAwCisKKyAgICBDSEFOR0VTOiB0ZXN0aW5nOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlCisKK2NvbW1pdCBlMjIxZTY1ZmRjMWM2OGYxOTY4NjUxNzE3ZGNjOWNjZmI2NDE0NzgzCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgTm92IDMgMTU6MDU6MDAgMjAxMSArMDEwMAorCisgICAgRml4IHdhcm5pbmdzIGFib3V0IGNvbnZlcnRpbmcgc29ja2FkZHJfaW4gKiBpbnRvIHNvY2thZGRyICouCisgICAgCisgICAgVGhpcyBpcyBhIGZvbGxvdy11cCBmb3IgY29tbWl0IGEwYWYzODUuCisKK2NvbW1pdCAyZTdlOWVkYTBiMGQ2MmE3NjQ1YTlhOGY3MGVmM2ZiNmYzZGQ2OTQxCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgTm92IDMgMTE6MTc6NDggMjAxMSArMDEwMAorCisgICAgRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgd2FybmluZ3MuCisKK2NvbW1pdCAzNDYyZWJjZGQwYjdjMjk4Y2IxNWMzMDk5NzM2ZjRmOTUyMjU3ODQ2CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgT2N0IDI4IDE2OjA3OjE1IDIwMTEgKzAyMDAKKworICAgIFJlbW92ZSB0aG9zZSBzdXBlcmZsdW91cyBwYXJlbnRoZXNlcyB0aGF0IHRyaWdnZXIgYSBjbGFuZyB3YXJuaW5nLgorCitjb21taXQgM2U1ZmVkZDNlN2QxZWYzMTY4MzYwNGJmNzNkYzU2ZTk0NGNhZDM0OQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBOb3YgMyAwOTo0NToyNyAyMDExICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgVUNELVNOTVAtTUlCOjpzeXN0ZW1TdGF0cyBhZnRlciAzMCBkYXlzIG9mIHVwdGltZS4KKyAgICAKKyAgICBBZnRlciAzMCBkYXlzLCB2YWx1ZXMgZnJvbSAvcHJvYy9zdGF0IChvbiBMaW51eCkgY2FuIGdldCBiaWdnZXIgdGhhbiAzMmJpdHMgYW5kIHNubXBkIGNhbGN1bGF0aW9ucyBtaWdodCByZW5kZXIgY291bnRlcnMgbGlrZSBzc0NwdVVzZXIgbmVnYXRpdmUgb3IgemVybywgd2hpbGUgdGhlIHJlYWwgdmFsdWUgaXMgaGlnaGVyLiBUaGVyZWZvcmUgdGhlIGNvdW50ZXJzIHNob3VsZCBiZSB0cmFja2VkIGFzIHRoZSBsYXJnZXN0IGludGVnZXIgYXZhaWxhYmxlLgorCitjb21taXQgMGZjODIyMWIyNDk4OGM0YWU2MTgwZWQ0MmI4NmI5ODUyZmQ1ODZhZAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE5vdiAyIDIyOjU5OjA4IDIwMTEgKzAxMDAKKworICAgIGRza0luZGV4IHdhcyBvZmYgYnkgb25lCisKK2NvbW1pdCBhNWIyODgyOWU2NGQ1ZjNiODdlNGI5YjFlZjhjYzIwNGYzM2E2MWI3CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTm92IDIgMjE6MjU6MDcgMjAxMSArMDEwMAorCisgICAgU29sYXJpcyBuZWVkcyAkQVdLIHRvIGdldCBhIHVzYWJsZSBuYXdrCisKK2NvbW1pdCAyODAxYTIxMzlmMjcwMjFlMWFiMTVlMzYyZTJkM2Q2MjRmZmFhNDk0CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gT2N0IDMxIDIyOjU1OjUzIDIwMTEgKzAxMDAKKworICAgIFBhdGNoICMzNDA2MzY0OiBGaXggdW5zdGFibGUgZGF0YSBmb3IgTmV0QlNELgorCitjb21taXQgODIxYTU4ZDExMmQ3YWM0OTUxNDllMjYyZDcwNDQxMmJhMjgwMDQzOAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE9jdCAzMSAyMjo0Mzo1MiAyMDExICswMTAwCisKKyAgICBGaXggaXB2NiBzdGF0aXN0aWNzIGxvb3BpbmcgdG9vIGZhciB3aGVuIHNjYW5uaW5nIGludGVyZmFjZXMuCisgICAgRml4IFRDUCBzZXNzaW9uIHRhYmxlIHJlcGVhdGluZyBkYXRhIGZyb20gZmlyc3QgZW50cnkgZm9yIGFsbC4KKworY29tbWl0IDM0OTU5MWQwM2UxN2E1NWI0M2VhY2M2YTY4N2IwMmZkOGQ0ZTk1MjgKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIE1vbiBPY3QgMzEgMDg6NTk6MzcgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogcGVybDogTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBwZXJsIHN1cHBvcnQgd2l0aG91dCBzdXBwb3J0IGZvciBvcGFxdWUgdHlwZXMuCisKK2NvbW1pdCAxZWM3MTEwZTcyYmNlMTU2MWY3NDY1MTc0NTlkNmYwNDMwMTZiNjBlCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gT2N0IDMwIDE5OjA1OjMwIDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IHRlc3Rpbmc6IE1ha2UgdGhlIGFzbjEgdGVzdCBwYXNzIGV2ZW4gaWYgc3VwcG9ydCBmb3Igb3BhcXVlIHR5cGVzIGFyZSByZW1vdmVkLgorCitjb21taXQgNmQyNjkxOGFmNTVhYTM2NjJhNzIwNTQyZGU3N2JiZjM5YjBhM2U5MQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IE9jdCAyOSAwODozNDozMyAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogRGlzYWJsZSB0aGUgc3VwcG9ydCBmb3IgaW50ZWdlcjY0IGluIHBhc3Mgc2NyaXB0cyBpZiBjb21waWxpbmcgd2l0aG91dCBvcGFxdWUtc3BlY2lhbC10eXBlcy4KKworY29tbWl0IDI5YmY2OWQ3MDQyNGYzNTlkOWM4N2YwN2E5NjRhMDk5NDE1NjQ5YTUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBPY3QgMTAgMTM6MDI6MjUgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcHRyYXBkX3NxbDogQXZvaWQgdGhhdCBhIGxpbmtlciBlcnJvciBpcyB0cmlnZ2VyZWQgb24gc3lzdGVtcyB3aGVyZSBteV9wcm9nbmFtZSBpcyBtaXNzaW5nIGluIGxpYm15c3FsY2xpZW50IChlLmcuIEZlZG9yYSAxNSBhbmQgMTYpLgorICAgIAorICAgIFRoaXMgaXMgYSBiYWNrcG9ydCBvZiBjb21taXQgOWY2NTNmNy4KKworY29tbWl0IDJjYzk1MDRiOWJiODYyNWI5NGJlNmNkYTdlNjA5OTNkMDU5Y2Q5MjgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBPY3QgMjYgMDk6MDE6MjMgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzNDI4NTA2OiBGaXggbmV0c25tcF9nZXRob3N0YnlhZGRyKCkKKyAgICAKKyAgICBUaGlzIHBhdGNoIHNob3VsZCBmaXggdGhlIHJlZ3Jlc3Npb25zIGludHJvZHVjZWQgYnkgY29tbWl0IDg1ZDk2YzQgKE1heSAxMywgMjAxMSkuCisKK2NvbW1pdCA5YjQyN2IzNTNmMWNlYjhmZTg3ZTZmYzhlZDNiNmNmYWIzY2U3ZjIwCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgT2N0IDI3IDA4OjIwOjAwIDIwMTEgKzAyMDAKKworICAgIE1pbkdXOiBBdm9pZCBjb25mdXNpb24gYmV0d2VlbiBNaW5HVydzIGtpbGwuZXhlIGFuZCB0aGUgU3lzSW50ZXJuYWxzIHBza2lsbC5leGUKKworY29tbWl0IDJjNDVmOTJjZmNiNWIwNWUwNDkyMjZhNWE3ODgzYTBiMTA2MDExYWUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBPY3QgMjYgMTA6NDI6MjkgMjAxMSArMDIwMAorCisgICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHBhc3NpbmcgYSBjb25zdCBwb2ludGVyIHRvIGEgZnVuY3Rpb24gYWNjZXB0aW5nIGEgbm9uLWNvbnN0IHBvaW50ZXIuCisKK2NvbW1pdCAyNzVkMjNlZGZkZWJlMDU3N2IwODQyMWU0YzZjOTM2YWUzOWI3ZmRjCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgT2N0IDI2IDA5OjMzOjA5IDIwMTEgKzAyMDAKKworICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBzZXQtYnV0LW5vdC11c2VkIHZhcmlhYmxlcworCitjb21taXQgNDQ5NWUxN2MwNzhhYzY5OTdhOWM3ZmExYTg4ZGIwNjQ0ZTkxOTQ5MQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIE9jdCAyNiAwOTozMjo0NiAyMDExICswMjAwCisKKyAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2FzdGluZyBhd2F5IGNvbnN0CisKK2NvbW1pdCAxMzk1MmY2YmVlOWY0MDg4NjdhYjZkMmZkZmRkZTRmMjg0MDc0OTU3CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE9jdCAyNiAxNDowNToxNiAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBmcm9tIFNpZGRoZXNoIFBveWFyZWthcjogcHJvcGVybHkgY2xlYW4gdXAgb2xkIHJlcXVlc3RzIGluIGEgc3ViYWdlbnQgd2hlbiB3ZSByZWNvbm5lY3QgdG8gbWFzdGVyLgorICAgIAorICAgIEFuIHNubXAgc3ViYWdlbnQgbGlua2VkIGFnYWluc3QgbmV0LXNubXAtbGlicyBtYXkgY3Jhc2ggaWYgaXQgaGFuZGxlcyBhCisgICAgcmVzcG9uc2Ugd2hpY2ggaGFzIG1hZ2ljIHJlZmVycmluZyB0byBhbiBvbGRlciBkaXNjb25uZWN0ZWQgbWFpbiBzZXNzaW9uLiBUaGlzCisgICAgbWF5IGhhcHBlbiB3aGVuIHRoZSBzdWJhZ2VudAorICAgIGF0dGVtcHRzIHRvIGNsZWFuIHVwIG9sZCByZXF1ZXN0cyBvbiByZWNvbm5lY3Rpb24gb2YgdGhlIGRpc2Nvbm5lY3RlZCBtYXN0ZXIKKyAgICBzZXNzaW9uLgorCitjb21taXQgYWUwNTI0NzJiMjI3MjBkMDgzNjllODUxMjdkYjIxNDI0NWRmMmUzZgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBPY3QgMjUgMTY6MTU6MTcgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogcGVybDogZml4ZWQgc2VnbWVudGF0aW9uIGZhdWx0IHdoZW4gaGFuZGxlciByZWdpc3RyYXRpb24gZmFpbHMuCisgICAgCisgICAgV2hlbiBuZXRzbm1wX3JlZ2lzdGVyX2hhbmRsZXIgZmFpbHMsIGl0IGZyZWVzIGl0cyByZWdpbmZvIC0+IG5zYWhyX0RFU1RST1kgKGFuZCBhbnkgb3RoZXIgZnVuY3Rpb24pIG11c3Qgbm90IGRlcmVmZXJlbmNlIGl0LgorCitjb21taXQgYzE5OWJmOTFiNjIzOWYyNmIyYWFiMzRlODU3NWUwZjBkZjljZGU5YgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBPY3QgMjQgMTQ6MjU6MjggMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IHhmcywgamZzIGFuZCB2eGZzIGZpbGVzeXN0ZW1zIGFyZSBub3cgcmVjb2duaXplZCBpbiBoclN0b3JhZ2VUYWJsZQorCitjb21taXQgNzQ3ZmRjNzFlNjRkMDllMDgwOTI4ZWJiYjRkMDRjYmRlMzkwNjc5OQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBPY3QgNSAxNTo1Nzo1OSAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogTG93ZXJlZCBzZXZlcml0eSBvZiAnZXJyb3IgZmluZGluZyByb3cgaW5kZXggaW4gX2lmWFRhYmxlX2NvbnRhaW5lcl9yb3dfcmVzdG9yZScgbWVzc2FnZS4KKyAgICAKKyAgICBUaGUgbWVzc2FnZSBpcyBzaG93cyB1cCB3aGVuIHNubXBkIGlzIHN0YXJ0ZWQgYW5kIHRoZXJlIGlzIGRpZmZlcmVudCBzZXQgb2YgbmV0d29yayBpbnRlcmZhY2VzIHRoYW4gaXQgd2FzIHdoZW4gc25tcGQgd2FzdCBsYXN0IHN0b3BwZWQuIFRoaXMgaXMgY29tbW9uIG9uIHBwcC1zZXJ2ZXJzIG9yIHZpcnR1YWwgaG9zdHMuCisKK2NvbW1pdCAyNTBmNjk4ZTU5ZWFiOWYxZmZkMzMyZmY1OWZkYjcyZWEwZGYwNmZmCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gT2N0IDIzIDA4OjUxOjIzIDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNYWtlIHRoZSB0cmFuc3BvcnQgY29uZmlndXJhdGlvbiBjb2RlIHdvcmsgYWdhaW4KKyAgICAKKyAgICBQcmV2aW91c2x5IHRoZSB0cmFuc3BvcnQgaW5oZXJpdGFuY2UgcHJvY2Vzc2luZyBjb2RlIHJhbiB3aXRoCisgICAgTkVUU05NUF9GRUFUVVJFX0NIRUNLSU5HIHNldC4gSW4gdGhpcyBtb2RlIHRoZSBmaWxlIG5ldC1zbm1wL2ZlYXR1cmUtZGV0YWlscy5oCisgICAgaXMgcmVxdWllcmVkLiBUaGF0IGZpbGUgaXMgY3JlYXRlZCBkdXJpbmcgdGhlIGZpcnN0IG1ha2UgcnVuLCBhbmQgdGhhdCBoYXBwZW5zCisgICAgYWZ0ZXIgY29uZmlndXJlIGlzIHJ1bi4KKyAgICBDaGFuZ2UgdGhpcyB0byB1bmRlZmluZSBORVRTTk1QX01JTklNQUxfQ09ERSwgZWZmZWN0aXZlbHkgdHVybmluZyBvZmYgZmVhdHVyZQorICAgIHN1cHBvcnQgZHVyaW5nIHRyYW5zcG9ydCBjb25maWd1cmF0aW9uIGluIG9yZGVyIHRvIG1ha2UgaXQgd29yayBhdCBhbGwuCisKK2NvbW1pdCA2ZWY2OTA3NjQyMjQ3YzY2M2I5Yjg5NjRiOWZkNDRhMjExZGJjYWE3CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgT2N0IDIwIDIwOjMwOjU0IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0MDgzOTg6IEZpeCBhIG1lbW9yeSBsZWFrIGluIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuCisgICAgCisgICAgVGhpcyBtZW1vcnkgbGVhayB3YXMgaW50cm9kdWNlZCB2aWEgY29tbWl0CisgICAgOWJmM2Q5NmQ5NmE4ZWNkNGE1ZmMzNWMzMjZkYzkzNzQ2NzAwMmI2YzogSW5pdGlhbCBIQUwKKyAgICBpbXBsZW1lbnRhdGlvbiBvZiBGaWxlU3lzdGVtIGluZm9ybWF0aW9uIChNYXJjaCA3LCAyMDA4KS4KKworY29tbWl0IGNmODJiODk0YjIyMTdjMjZlZGM2ZjEzNTYzNTFjOTMyNDE1NjA0ZTIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFNhdCBPY3QgMTUgMTQ6NDU6MDggMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzNDIzOTE1OiBDaGFuZ2UgZGVmYXVsdCBudW1iZXIgb2YgcmV0cmllcyBiYWNrIGZyb20gMCB0byA1CisgICAgCisgICAgVGhpcyBwYXRjaCBmaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIHZpYSBjb21taXQgNmNhYzA1MCAoTWF5IDUsIDIwMTEsCisgICAgYWRkZWQgc3VwcG9ydCBmb3Igc3BlY2lmeWluZyB0aGUgZGVmYXVsdCBudW1iZXIgb2YgcmV0cmllcyBpbgorICAgIHNubXBkLmNvbmYpLgorCitjb21taXQgYzExYWRhYTEyOTE1YWJmZWU2MjliYjZjMDI2YzIxZjIxODViMjE2ZQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIE9jdCAxNyAxMDoyNDo0NiAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBXaW4zMjogQXZvaWQgdGhhdCBjb21waWxpbmcgdGhlIGhlYWRlciBmaWxlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gd2l0aCB0aGUgTWluR1cgZ2NjIGNvbXBpbGVyIHRyaWdnZXJzIHdhcm5pbmdzIGFib3V0ICJwcmFnbWEgY29tbWVudCIuCisKK2NvbW1pdCBiMTdhNzJhNzkzNDgzYWVlNGE1YmIyZjJlMmM3ZjRmZDg2OTgxN2U2CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gT2N0IDE3IDEwOjIyOjIwIDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IFdpbjMyOiBBdm9pZCB0aGF0IHRoZSBQQUNLQUdFXyogbWFjcm9zIGRlZmluZWQgaW4gPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBjYXVzZSB0cm91YmxlIHdoZW4gaW5jbHVkaW5nIHRoaXMgaGVhZGVyIGluIGEgcGFja2FnZSB0aGF0IHVzZXMgdGhlIEdOVSBhdXRvdG9vbHMuCisKK2NvbW1pdCA2NjRkM2FlMTA3ZDc1NDA1MWI4YzQyMjc5ZDQ1OWFhNTdhMWJlMWMzCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gT2N0IDEwIDE2OjQ3OjE2IDIwMTEgKzAyMDAKKworICAgIE1pbkdXLCBod19mc3lzOiBVc2UgcHJvcGVyIGZvcm1hdCBzcGVjaWZpZXJzIGluIGEgZGVidWcgc3RhdGVtZW50LgorICAgIAorICAgIFRoaXMgcGF0Y2ggZml4ZXMgYW4gaXNzdWUgaW50cm9kdWNlZCBpbiBjb21taXQgNzZmZjI1ZC4KKworY29tbWl0IDIxMWRjYjQ5MzA2NTYxZTM1YmEzYzIxM2JlN2NmYTI1N2I0MGE4ZTUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBPY3QgMTAgMTU6NTI6NDMgMjAxMSArMDIwMAorCisgICAgQXZvaWQgdGhhdCBnY2MgNC42IGNvbXBsYWlucyBhYm91dCBzZXQgYnV0IG5vdCB1c2VkIHZhcmlhYmxlcworCitjb21taXQgOWY2NTNmNzNlNWFhNzBmMGJlZjExNzQ2MzJlOTU1OTRmODdmNjY5ZgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIE9jdCAxMCAxMzowMjoyNSAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wdHJhcGRfc3FsOiBBdm9pZCB0aGF0IGEgbGlua2VyIGVycm9yIGlzIHRyaWdnZXJlZCBvbiBzeXN0ZW1zIHdoZXJlIG15X3Byb2duYW1lIGlzIG1pc3NpbmcgaW4gbGlibXlzcWxjbGllbnQgKGUuZy4gRmVkb3JhIDE1IGFuZCAxNikuCisKK2NvbW1pdCA0YzgzYjkyMjlhNzQ1NGYzNGY2ZmY3NWY2OWU2N2U0MDMwYzQxOWI1CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgT2N0IDcgMTU6NTg6NDUgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogU2V0IHRoZSBycGF0aCBmb3IgbGlicGVybC5zbyBpbiBsaWJuZXRzbm1wbWlicy5zbyBzdWNoIHRoYXQgdGhlIGR5bmFtaWMgbGlua2VyIGNhbiBmaW5kIGxpYnBlcmwuc28gd2l0aG91dCByZXF1aXJpbmcgdGhlIHVzZXIgdG8gbW9kaWZ5IHRoZSBkeW5hbWljIGxpbmtlciBzZXR0aW5ncy4KKyAgICAKKyAgICBUaGlzIGNoYW5nZSBpbiBhZ2VudC9NYWtlZmlsZS5pbiBpcyBuZWNlc3Nhcnkgb24gdGhlIDUuNSBicmFuY2ggYW5kCisgICAgbGF0ZXIgYnV0IG5vdCBvbiB0aGUgNS40IGJyYW5jaC4gVGhhdCBpcyBiZWNhdXNlIHRoZSA1LjQgYnJhbmNoIHVzZXMKKyAgICBhbiBvbGRlciB2ZXJzaW9uIG9mIGxpYnRvb2wgdGhhdCBwcm9wYWdhdGVzIHRoZSBycGF0aCBvZiBkZXBlbmRlbnQKKyAgICBsaWJyYXJpZXMuIFRoaXMgaXMgY2FsbGVkIGludGVyLWxpYnJhcnkgZGVwZW5kZW5jeSB0cmFja2luZyBpbiB0aGUKKyAgICBsaWJ0b29sIG1hbnVhbC4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIHByZXNlbnQgaW4gbGlidG9vbCB2ZXJzaW9uIDEKKyAgICBidXQgbm90IGluIGxpYnRvb2wgdmVyc2lvbiAyLiBGb3IgbW9yZSBiYWNrZ3JvdW5kIGluZm9ybWF0aW9uIGFib3V0CisgICAgZHluYW1pYyBsaWJyYXJpZXMgYW5kIHJwYXRocywgc2VlIGFsc28gdGhlIGRvY3VtZW50IHdpdGggdGhlIHRpdGxlCisgICAgIlJwYXRoSXNzdWUiIG9uIHRoZSBEZWJpYW4gd2lraSAoaHR0cDovL3dpa2kuZGViaWFuLm9yZy9ScGF0aElzc3VlKS4KKworY29tbWl0IDg5MjVjOTEyZDI2Mzk3NTJhODRiY2ZmZWVmMWI3MGE4MTAyNjQ0OWIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBPY3QgNyAxNDoyMToyOCAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBhZ2VudDogSE9TVC1SRVNPVVJDRVMtTUlCOiBBZGQgbWlzc2luZyBicmFjZSBpbiBhIGRlYnVnIHN0YXRlbWVudAorCitjb21taXQgNzZmZjI1ZDliZjk3NTc5ZTcyMTMxMDIwNjVmZDUwOTZmMDQ5YTRjNQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIE9jdCA3IDE0OjEzOjE4IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBIT1NULVJFU09VUkNFUy1NSUI6OmhyU3RvcmFnZVRhYmxlOiBmaXggYnVnIGluIGhhbmRsaW5nIGxhcmdlIGZpbGVzeXN0ZW1zLCB3aGVyZSBsYXJnZSBtZWFucyBhYm92ZSA4IFRCICg9IDIqKjMxICogNDA5NiBieXRlcykuCisgICAgCisgICAgVGhpcyBwYXRjaCBmaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdAorICAgIDcxZDgyOTNmMzg3YTZjZDY2YmIwZGJiMTNjMGY1MDE3NGQyZTY3OGIuCisgICAgRm9yIHRoZSBvcmlnaW5hbCBidWcgcmVwb3J0LCBzZWUgYWxzbworICAgIGh0dHBzOi8vc291cmNlZm9yZ2UubmV0L3RyYWNrZXIvP2Z1bmM9ZGV0YWlsJmF0aWQ9MTEyNjk0JmFpZD0zNDE5ODI1Jmdyb3VwX2lkPTEyNjk0LgorCitjb21taXQgODY2MDMzZGI5OTA0ZmZiMTIwM2YyODNmODM4MDkyZTRjZjY4ZGU2YgorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgVGh1IE9jdCA2IDA3OjMzOjI3IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBSZW1vdmUgc3B1cmlvdXMgI2VuZGlmIHRoYXQgc2VlbXMgdG8gYmUgdGhlIHJlc3VsdCBvZiBhIG1pc21lcmdlLgorCitjb21taXQgMjBmNGYzMjY3ZWUyMGQ1NTcwNWI3YTQzNzg5ODc5YzEwM2Y5NjYyMAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgVGh1IE9jdCA2IDAwOjA4OjU5IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgbWlzc2luZyBlbmQgY29tbWVudHMgdG8gZmVhdHVyZSBpZm5kZWZzLgorCitjb21taXQgZTVkZTJjYzU3YmYzMDRmMzMyMGNhZDAwMzRkMmVhMmQ4YWVkYzQzNgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIE9jdCA1IDA5OjE1OjEwIDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IGFnZW50OiBMb2cgYSBtb3JlIGRldGFpbGVkIGVycm9yIG1lc3NhZ2UgaWYgZW1iZWRkZWQgcGVybCBpbml0aWFsaXphdGlvbiBmYWlscworCitjb21taXQgNWVlZjk5OTBkZTI4ZjYzMTExZTZjMDkzYmUwZjNjN2FlMmQ1MTNhMQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIE9jdCA1IDA4OjQ1OjQ5IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IHBlcmw6IEFkZCBhZ2VudDo6dXB0aW1lKCkKKworY29tbWl0IDY4MTBlZDQyZjliYzU2MDc1MGQ2ZGJmYjdlNTBiNmUyYWMxMTg5OWMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBTZXAgMzAgMTE6MDE6MjMgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogQ3l3aW46IGFnZW50OiBJbXBsZW1lbnQgZ2V0X3VwdGltZSgpIHN1Y2ggdGhhdCBxdWVyeWluZyBIT1NULVJFU09VUkNFUy1NSUI6OmhyU3lzdGVtVXB0aW1lIHJldHVybnMgYSBub24temVybyB2YWx1ZS4KKworY29tbWl0IDk3MTcyYjMxMWQyMGY0NDQxYzdhN2U5MDA5MmI1OWMxZTBkYTk5ZjcKK0F1dGhvcjogVGhvbWFzIEphcm9zY2ggPHRqYXJvc2NoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE9jdCA1IDA4OjQ2OjM5IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IFBBVENIOiAzNDE4NjQ5OiBIT1NULVJFU09VUkNFUy1NSUI6IFVzZSBwY2xvc2UoKSBpbnN0ZWFkIG9mIGZjbG9zZSgpIHRvIGNsb3NlIGEgcGlwZS4KKworY29tbWl0IDY1OTE5MzdhZGI4NTAwMGMyNzA2OWM0YmU4NGNmNDY4ODgzOGViY2QKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBPY3QgMiAxNjoxODowMyAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBidWlsZGluZzogQWRkIGRlcGVuZGVuY2llcyBvbiBARkVBVFVSRVRBUkdTQCB0byBtYWtlIHRoZSBzdWJ0YXJnZXQgd29yayBhcyB3ZWxsLgorCitjb21taXQgYjljODAxMmVjMDM1YmMwODRmMTc1ODc2ZmVjYzM3NTE5NWY5YmU4MQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIE9jdCAyIDE0OjAyOjU4IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgdGFyZ2V0IHRvIGJ1aWxkIGFnZW50eHRyYXAgZnJvbSB0aGUgdG9wbGV2ZWwKKworY29tbWl0IDk5NTY0N2MwY2ZlMDA0MTIyNjJjYzU3OTdiZGZhZTlkMDBiNzBjNzYKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBPY3QgMiAxNTo0NDozNiAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBidWlsZGluZzogUmVtb3ZlIHRoZSB1c2Ugb2YgLUwgZmxhZ3MgZm9yIGludGVybmFsIGxpYnJhcmllcyBhcyBpdCBjb25mdXNlcyBsaWJ0b29sLgorCitjb21taXQgOTNkYzEyMzVhMGRiNThmZmQyOTYxN2NmZjAwZGMxMTI2Mzc4MDIwMgorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIE9jdCAyIDExOjMxOjQ2IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNYWtlIG1ha2UgYXBwcyB3b3JrIGFnYWluCisgICAgCisgICAgYXBwcyBpbmNsdWRlIHNubXB0cmFwZCBhbmQgdGhhdCByZXF1aXJlIHRoZSBhZ2VudCBsaWJyYXJpZXMgYXMgd2VsbC4KKworY29tbWl0IGJhNDE0ODhlZDQ0Y2QyM2MyNTk2M2Q0ZmM1NmM0NzY4NTNiMmFiNTkKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBPY3QgMiAxMToyOTozMyAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBidWlsZGluZzogV2hlbiB5b3Ugc2F5IG1ha2UgbGlicyB5b3UgZXhwZWN0IGFsbCB0aGUgbGlicyB0byBiZSBidWlsdC4KKyAgICAKKyAgICBUaGlzIGlzIGRlbW9uc3RyYXRlZCBieSB0aGUgc25tcHRyYXBkIHRhcmdldCBhdCB0aGUgdG9wIGxldmVsIHdoaWNoIG9idmlvdXNseQorICAgIGV4cGVjdGVkIGJvdGggbGlicyB0byBiZSBidWlsdCBhbmQgc28gZmFpbGVkIHRvIGNvbXBpbGUgYmVmb3JlIHRoaXMgcGF0Y2guCisKK2NvbW1pdCAzMDU3YzczZTA5MzQ3M2JlNDYyNTRiY2RmYjRjYTc4OGU0MzJkMWI4CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIFNlcCAzMCAwNzozMjo1MiAyMDA4ICswMDAwCisKKyAgICBORVdTOiBidWlsZGluZzogUEFUQ0g6IDIwOTExNTY6IGNvcnJlY3RseSBkZWNsYXJlIGRlcGVuZGVuY2llcyBpbiBNYWtlZmlsZS4KKyAgICAnbWFrZSAtaiA8Tj4nIHNob3VsZCB3b3JrIG5vdy4KKyAgICAKKyAgICBCYWNrcG9ydCB0aGlzIHRvIFY1LTQgYXMgaXQgaXMgbmVlZGVkIGZvciBjb3JyZWN0IG9wZXJhdGlvbiBpbiB0aGUgc2luZ2xlCisgICAgdGhyZWFkZWQgY2FzZSBvZiBtYWtlIG1pYmxpYiBhcyB3ZWxsLgorCitjb21taXQgNmVhZTM0MGZhMmE2NDA4NjU5Mjk4MmNjNTI3MzViYzAxNDg3ZDk3OAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IE9jdCAxIDE5OjMzOjUwIDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBTaWxlbmNlIGxpYmJzZCAwLjMuMCBuYWdnaW5nCisgICAgCisgICAgSWYgeW91IGhhdmUgbGliYnNkIDAuMy4wIGluc3RhbGxlZCB0aGVuIHRoZWlyIHZlcnNpb24gb2Ygbmxpc3QuaCB3YXJucyBhbmQKKyAgICB0cmllcyB0byBtYWtlIHlvdSBpbmNsdWRlIGJzZC9ubGlzdC5oIGluc3RlYWQuIFRoZSBwcm9ibGVtIGlzIHRoYXQgd2UgZG9uJ3QKKyAgICBuZWVkIHRoYXQgY29tcGF0aWJpbGl0eSBsaWJyYXJ5IGFzIHdlIGtub3cgaG93IHRvIGRvIGl0IG91cnNlbGYgc28gaXQgYmVjb21lcworICAgIHB1cmUgbmFnZ2luZy4gVGhpcyBwYXRjaCBhZGRzIGEgZGVmaW5lIHRoYXQgY2hhbmdlcyB0aGUgd2FybmluZyBpbnRvIGFuCisgICAgZXJyb3IgYW5kIHRoZW4gZmlndXJlcyBvdXQgdGhhdCB0aGVyZSBpcyBubyB1c2FibGUgbmxpc3QuaCBhbmQgaWdub3JlcyBpdAorICAgIGZvciB0aGUgZnV0dXJlLgorCitjb21taXQgYWMzOGNiNTMxYmVlNTBlZGM4ZDRjODM0ZjMwMDVmNTk5MmM3NzFkOAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IFNlcCAyOSAxOTowMzowMiAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBwZXJsOiBFbmFibGUgc2VuZGluZyBTTk1QdjIgdHJhcHMgd2l0aCBhbiBlbXB0eSB2YXJiaW5kIGxpc3QKKworY29tbWl0IGE3NWRlMjk3MTUyN2FjMmQyZTgxMjAyNDI5ODYwMmJiMjQxMmYzMzcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBTZXAgMzAgMTA6NDE6NDQgMjAxMSArMDIwMAorCisgICAgcGVybC9TTk1QL1NOTVAueHM6IFVwZGF0ZSBlbWFjcyBtb2RlbGluZQorCitjb21taXQgODQ4ZjYzMDBlZmUzODQ5MmZiNDU0NDUxYTAzMGYwYjdlNmZmOGM5ZAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIFNlcCAzMCAxMDo0MTo0NCAyMDExICswMjAwCisKKyAgICBwZXJsL1NOTVAvU05NUC54czogVXBkYXRlIGVtYWNzIG1vZGVsaW5lCisKK2NvbW1pdCBjMTM3NDQ3M2VjZDhlYzllMDMxMDAxMzg2MWVlMThjODNlNWQ2YzViCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBGcmkgU2VwIDMwIDAzOjI5OjM2IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IHRlc3Rpbmc6IFByb3RlY3QgdGhlIHVzZSBvZiAkT1NUWVBFIHRvIGVuc3VyZSB0aGF0ICd0ZXN0JyBnZXQgZW5vdWdoIHBhcmFtZXRlcnMuCisKK2NvbW1pdCA3ZTk3YTIwNjMzYTU3ZWFlMzlkMDE1YjIzMzM5NDYzYzMyZjVmODQ4CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgU2VwIDI5IDEwOjIyOjA4IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IHRlc3Rpbmc6IENvbnZlcnQgc25tcGxpYi90ZXN0X2JpbmFyeV9hcnJheS5jIGludG8gdHdvIHVuaXQgdGVzdHMKKworY29tbWl0IDljMGRkOTgxNzY0NTczNDJmZmZhYTVlNzRkODAyZTMxNDVlZDcwZTcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBTZXAgMjkgMDg6NTY6MTcgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIHVuaXQgdGVzdCBmb3IgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkKKworY29tbWl0IDVmZDI2ZTRmYTNlMDAwZWE5YzgxYzM4YWI5NzViNzk0NmVmZTIxNTcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBTZXAgMjggMTc6NDk6NTUgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogYWdlbnQ6IEF2b2lkIHRoYXQgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkgZmFpbHVyZSB0cmlnZ2VycyBhIGRvdWJsZSBmcmVlLgorICAgIAorICAgIEZpeGVzIGEgcmVncmVzc2lvbiBpbnRyb2R1Y2VkIHZpYSBjb21taXQKKyAgICBhYTRkNDdjMjYwOWU1MjgxOGM5Y2RmMWE4ZTIyMDVkZTlhMzM1YTBhIChzdm4gcjE5NTE1KS4KKworY29tbWl0IGQyMjUyZDAxNjY5MzgwNzMyNmY3MmI2NjEyMzY0OWRlYTAwYWY5MTYKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBTZXAgMjkgMTA6MjA6MDggMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogdGVzdGluZzogUmVxdWlyZSBhIHNlbWljb2xvbiBhZnRlciBPSygpLCBPS0YoKSBhbmQgUExBTigpCisgICAgCisgICAgQWxzbywgbGV0IE9LRigpIGVtaXQgYSBzaW5nbGUgbGluZSBvZiBvdXRwdXQgc3VjaCB0aGF0IGFsbCBvdXRwdXQgaXQKKyAgICBwcm9kdWNlcyBpcyB2aXNpYmxlIGluIHRoZSBvdXRwdXQgb2YgIm1ha2UgdGVzdCIuCisKK2NvbW1pdCAxNDIxOTI0YjQ4NTIxNDIxOTJjNWJiOWU5M2RkYmZlZDY5ZTkwOGZhCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgU2VwIDIxIDIyOjIwOjA4IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IHNubXBsaWI6IEF2b2lkIHdhaXRpbmcgaW5kZWZpbml0ZWx5IGlmIGEgc2Vzc2lvbiBoYXMgdGltZW91dCB6ZXJvCisKK2NvbW1pdCA1ZjI3ZjRmNzRhZTJiZDViYWY1MDNjZjMwNmI0ZjlhMjg0MWE1N2NmCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgU2VwIDYgMTA6MzI6MDMgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IEZpeCBhIHJhY2UgY29uZGl0aW9uIGluIHRoZSB0ZXN0IHJ1bm5lcgorCitjb21taXQgMDk3MDM5NThjYzVlYTg0NTkyOWFlMTllZjllMDgwNGFlY2FhNTEyZQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIFNlcCAyNyAxMjo0Mjo0MSAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBdm9pZCBmYWxzZSBuZWdhdGl2ZSBmb3IgVDExNGFnZW50eGFnZW50eHRyYXBfc2ltcGxlIGNhdXNlZCBieSB0aGUgdGVzdCByZXN1bHQgYmVpbmcgcHJlc2VudCBpbiB0aGUgaGV4IGR1bXAgKCJtb3N0bHlfaGFybWxlc3MiKQorCitjb21taXQgNDM5MzAwMjc5ZjZmMzE0Mzg2MzhkMmYyMjJjMjRjM2M4NDFmYTZhYgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIFNlcCAyNyAxMToxNjozMiAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBidWlsZGluZzogTWljcm8tb3B0aW1pemUgYWdlbnQgbW9kdWxlIGRlcGVuZGVuY3kgYW5hbHlzaXMKKyAgICAKKyAgICBUaGlzIG1ha2VzIHRoZSBhZ2VudCBtb2R1bGUgZGVwZW5kZW5jeSBhbmFseXNpcyBjYXJyaWVkIG91dCBieSB0aGUKKyAgICBjb25maWd1cmUgc2NyaXB0IHNsaWdodGx5IGZhc3RlciwgZXNwZWNpYWxseSBvbiB0aG9zZSBzeXN0ZW1zIHdoZXJlCisgICAgZm9yaygpIGlzIGV4cGVuc2l2ZSAoQ3lnd2luKS4KKworY29tbWl0IGJiYzY4MDAwNGExMzc2MDM4ZGZkYzQxNzJkYmU3YjllMzExZmJhNjgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBTZXAgMjYgMTA6MTQ6NDUgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdGVzdCBUMTMwc25tcHYxdmFjbWdldF9zaW1wbGUgcGFzcworCitjb21taXQgNzBiMDZjZjc4OTIwOGVhYTg5MGJmYmNkNjM4YmRiNzc1ZjgxNzA1NAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIFNlcCAyMCAwOTo1MDo1NyAyMDExICswMDAwCisKKyAgICBDSEFOR0VTOiBXaW5kb3dzOiB0ZXN0aW5nOiBwZXJsOiBGaXggYW4gaW5jb3JyZWN0IG1lc3NhZ2UgcHJpbnRlZCB3aGlsZSBydW5uaW5nIHRoZSBQZXJsIG1vZHVsZSByZWdyZXNzaW9uIHRlc3RzCisKK2NvbW1pdCA3MGJjYzhkZTJkMGZjOTJiYmI4NDgxODIzNjMwZmFiOWJjODdhZjc1CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgU2VwIDE2IDE2OjE0OjI0IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBPYnRhaW4gdGhlIE1TWVMgcGF0aCBmcm9tIHRoZSBlbnZpcm9ubWVudAorCitjb21taXQgNjI2Mjc1ZTJkMWFjYWZhZTcxNDRhMzNlZDMwMWE0MGY1OTZiMzdiMAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIFNlcCAxNCAxMzoxNDoxNyAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBXaW5kb3dzOiBSZW1vdmUgc3VwZXJmbHVvdXMgbGluayBsaWJyYXJpZXMgZnJvbSBwcm9qZWN0IGZpbGVzICgqLmRzcCkKKworY29tbWl0IDM4ZmMzY2FhOWVlYjM4MDAyNTRiNGY2YWQ2ZjhmNDc2NGMwZjgzZGIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBTZXAgMjAgMDk6MzQ6MDggMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBuZXRzbm1wX2NhbGxiYWNrX2FjY2VwdCgpIHJldHVybiAtMSAoZmFpbHVyZSkgaW5zdGVhZCBvZiAwIChTVERJTl9GSUxFTk8pCisKK2NvbW1pdCA2YzhjN2U4YWNhOGZjMmVlYjUyMDEwYWUzZTlmZWU2ZGQ4M2VmNzgwCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgU2VwIDEzIDA5OjU4OjI2IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IHNubXBsaWI6IFJlbW92ZSBvYnNvbGV0ZSBzbm1wX2dldF9mZF9mb3Jfc2Vzc2lvbigpIGRlY2xhcmF0aW9uCisKK2NvbW1pdCAwODYwZDExZmQ4ZmM1ZGJkYWFhZTIyNjFmYWUyYzA3ZmI5YzJjODJkCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgU2VwIDggMTM6NTQ6NTUgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogV2luZG93czogTVNWQzogQXZvaWQgdGhhdCB0aGUgdHlwZWRlZnMgaW4gPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBjb25mbGljdCB3aXRoIHRob3NlIGluIDxzdGRpbnQuaD4gZnJvbSB0aGUgbXNpbnR0eXBlcyBwcm9qZWN0CisKK2NvbW1pdCBmOGEwMzZmNjNmZjY4ZjA4MzQzNjEyMGUwYWJkNDc4YjY5MmEyZjYxCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgU2VwIDggMTM6MjE6MDYgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogV2luZG93czogTVNWQzogV2hlbiBsaW5raW5nIHdpdGggT3BlblNTTCwgbGluayB3aXRoIHVzZXIzMi5saWIgdG9vCisKK2NvbW1pdCA4MzZhMjNlMTBjYTgxMGMzODk5OTAyZDMyNTg3NjE2YTlkMTIwM2RmCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgSnVsIDE0IDE4OjM4OjEzIDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IFdpbmRvd3M6IE1TVkM6IExpbmsgd2l0aCBwcm9wZXIgbGliZWF5MzIgbGlicmFyeQorCitjb21taXQgN2IwN2ZkNmNkZWY0OWVjN2JiMDRiMTY2ZTJhNGZiYjM3YjU4Mjg0MAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIFNlcCA2IDExOjEwOjM4IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IHRlc3Rpbmc6IFJlbW92ZSBhbiBpbmNvcnJlY3QgY29tbWVudCBmcm9tIHNpbXBsZV9ldmFsX3Rvb2xzLnNoCisKK2NvbW1pdCA5OGY2ZDI5ZDk4MWZmOGU2MDc2MDBjNjNkYWRiMjQwNTM1NjI5ODA3CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgU2VwIDYgMTA6NDk6MDMgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogdGVzdGluZzogTWFrZSBJU0RFRklORUQoKSBjaGVjayBmb3IgYW4gZXhhY3QgbWF0Y2ggaW5zdGVhZCBvZiBhIHByZWZpeCBtYXRjaAorCitjb21taXQgNTJjZDAwMzFhMzFmNjkyZjEzMjYzYTk0YzMzNWQwNmJlMTQ1NDgwMworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIFNlcCA2IDEwOjEyOjU5IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHRob3NlIHJlZ3Jlc3Npb24gdGVzdHMgcGFzcyBmb3Igd2hpY2ggU05NUENPTkZQQVRIIGFuZC9vciBTTk1QX1BFUlNJU1RFTlRfRElSIG1hdHRlcgorCitjb21taXQgZjVjZDg5YmQzMzU2ZGQ3NGUxNTU2YzBiNTA5NjZhNjQzZjE5MjA4NQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIFNlcCA2IDEwOjEyOjU5IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBGaXggYSByYWNlIGNvbmRpdGlvbiBpbiB0aGUgdGVzdCBmcmFtZXdvcmsKKworY29tbWl0IGRlZWRkNTJjODM0YTY0NDg4NTJhMDY3ODU1MzZlMTM4NjU5Njk2OTQKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBTZXAgNiAxMDoxMjo1OCAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBNaW5HVzogU3VwcG9ydCB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZSBvZiByZWNlbnQgU2hpbmluZyBMaWdodCBPcGVuU1NMIGJpbmFyeSBkaXN0cmlidXRpb25zCisKK2NvbW1pdCBkNTViZDRlMDU0OWYwM2I2ZmQzMjU2MmMyYWE3ZmUzOTI3MmE5ZWY3CitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgU2VwIDI4IDA2OjU1OjE5IDIwMTEgLTA3MDAKKworICAgIHJlbW92ZSB0aGUgdjUuNyBmcm9tIHRoZSBmcm96ZW4gbGlzdAorCitjb21taXQgYWMyYWVkM2M5NGJiMmViYjQ3M2FmMGExZTIwZjA1NjFhZDYyOTk1NgorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIFNlcCAyOCAwNjo1NToxMSAyMDExIC0wNzAwCisKKyAgICByZW1vdmUgdGhlIHY1LjcgZnJvbSB0aGUgZnJvemVuIGxpc3QKKworY29tbWl0IDQ2ZWFjMDJlOWEyN2JmNGYzMDY4ZTc5NWNhYjg5MWYwNWE4NDg4NzAKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBTZXAgMjYgMjE6NDk6MjcgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IEF2b2lkIHRoYXQgc25tcGQgY3Jhc2hlcyBpZiBzdGFydGVkIG9uIGEgc3lzdGVtIHdpdGggYW5vdGhlciBPcGVuU1NMIGxpYnJhcnkgdmVyc2lvbiB0aGFuIHRoZSBvbmUgaXQgaGFzIGJlZW4gYnVpbHQgd2l0aC4KKwkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQ2hhbmdlczogVjUuNy4xIC0+IFY1LjcuMi5wcmUyCisKK2NvbW1pdCA4MTAxODVhZTBiMGNkMmFkNGQ0MjRhMWJhNzc1ZWY1Y2VhZjUwZjAzCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTYXQgSnVuIDIgMDk6MjQ6MTkgMjAxMiAtMDcwMAorCisgICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4yLnByZTEKKworY29tbWl0IDYyNzE0NzFlMDEyODJmMzY3NTcyNGVhZjEzNThjZWIwZTk1ZGRkNGUKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFNhdCBKdW4gMiAwODozMjo0MCAyMDEyIC0wNzAwCisKKyAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4yLnByZTEKKworY29tbWl0IGZjYjc4MmFhODg5MzEzNGM3NDE0YTkyNmQ5MjY4NTk0ZjcyNWI5MTUKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFNhdCBKdW4gMiAwODozMjoxOCAyMDEyIC0wNzAwCisKKyAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjIucHJlMQorCitjb21taXQgZTNiY2Q4N2M3MmZjZWE3NzA2ZTg2OGI1YWNlNzUyOTYwOTNmNzQ5NworQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBNYXkgMzEgMTQ6MDk6NDIgMjAxMiArMDEwMAorCisgICAgRml4IGRpc3QvcmVsZWFzZSBmb3JtYXQKKworY29tbWl0IGQ4MTNjZTJlZWVmYzY4MjI5Y2ZjYWYyMDYwMzI0NGNkZDZkMDlkM2MKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWF5IDMxIDE0OjA3OjUyIDIwMTIgKzAxMDAKKworICAgIEZpeCBkaXN0L3JlbGVhc2UgZm9ybWF0CisKK2NvbW1pdCBmYTdiZDU4MWUzNzgzNjg1ZGIzOWM5YjRlYWY4NDdiZTVhYzg2ZmQzCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IE1heSAzMSAxMzo1MzoxMCAyMDEyICswMTAwCisKKyAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucmMyCisKK2NvbW1pdCAwNzM5ZTIzODJkMzExNDZhY2EzMjA1MjQ0Y2Y3MDc4OGI0MGE0MjhkCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IE1heSAzMSAxMzo1MTo0NSAyMDEyICswMTAwCisKKyAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucmMyCisKK2NvbW1pdCBkOWExNTQ0NWFhNzRmNTMxNmJmYzcxMWMxNTU4NDY3ODcyYzI5NThjCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IE1heSAzMSAxMzo1MDoxMiAyMDEyICswMTAwCisKKyAgICBtYWtlIGRlcGVuZCBmb3IgNS42LjIucmMyCisKK2NvbW1pdCBiY2FiZDJjOTU0MmRiZWJkMWQzMTliNDQ5NDQxM2JkY2NhMDY2MTRlCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IE1heSAzMSAxMzozODozOCAyMDEyICswMTAwCisKKyAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNi1wYXRjaGVzCisKK2NvbW1pdCBiNDczODk4YzBjNWFjOWViNDdjN2MwNWEzZjc0NWU0ZmYyYTc2YWFhCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IE1heSAzMSAxMzozODoyOCAyMDEyICswMTAwCisKKyAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnJjMgorCitjb21taXQgMTMxNDI5ZTcwNjJmYmFhNjViODJhZmZlZDFmYjkyZGYyYzBjYzgxMworQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBNYXkgMzEgMTM6Mzg6MzggMjAxMiArMDEwMAorCisgICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTYtcGF0Y2hlcworCitjb21taXQgMWM4MTEwYjMzYjgxMDVjYTYxOTA5NDVhMzVmZTdhZTkwMzI1MmQ2OAorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBNYXkgMzEgMTM6MjE6MzggMjAxMiArMDEwMAorCisgICAgQXZvaWQgcGVybCB2ZXJzaW9uaW5nIHByb2JsZW1zIHdoZW4gc2V0dGluZyB1cCB0aGUgYnVpbGQgZW52aXJvbm1lbnQKKworY29tbWl0IDUwOGVjZTE2ZTZmNmY0OTU2MmRhMjA0NzkyYWUwNjQ0MjY5OTk0ZDEKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWF5IDMxIDEzOjIwOjU4IDIwMTIgKzAxMDAKKworICAgIEZpeCBoYW5kbGluZyBvZiBkaXN0L3JlbGVhc2UgbWVyZ2UKKworY29tbWl0IDViOGE4NTQ3YjFhNDdkMmY1YjIwN2Y0OGYyNDk2ZTQyNDFkOTAyYzYKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWF5IDMxIDExOjEwOjQ4IDIwMTIgKzAxMDAKKworICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzIKKworY29tbWl0IDZjMzI5MTRiZjI4ZDY5NWRmMzQ5ZGNhMjY5ZTQ4OGI1MDE3MDAzMTYKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWF5IDMxIDExOjA3OjIyIDIwMTIgKzAxMDAKKworICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzIKKworY29tbWl0IDlmNWE4MmE1YWZkYmIzZGFlYjJmZDQzN2EzMDlmMGI4ZDM1N2NmNGIKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWF5IDMxIDExOjA1OjM5IDIwMTIgKzAxMDAKKworICAgIG1ha2UgZGVwZW5kIGZvciA1LjUuMi5yYzIKKworY29tbWl0IDM5MjAzZjI5NDc3YTNiZWRmMDEyZDQxMTM1ZDhhYmQ2YmNhZDA4YjEKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWF5IDMxIDEwOjU0OjI3IDIwMTIgKzAxMDAKKworICAgIGRvY3VtZW50YXRpb24gdXBkYXRlIGZvciA1LjUuMi5yYzIKKworY29tbWl0IDE3ZTc5ZWYwZmFkNzk2MDljNWJhMmZlYjRlOGI5ZWI1ZDdkYjY4ODYKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWF5IDMxIDEwOjQ2OjExIDIwMTIgKzAxMDAKKworICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS01LXBhdGNoZXMKKworY29tbWl0IDU4MjFiZTViYmI0MDE4ZGVkMjgyZmJiYmQ0ODMwY2YyZWVhZGQ5ZTEKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWF5IDMxIDEwOjQ1OjU5IDIwMTIgKzAxMDAKKworICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS41LjIucmMyCisKK2NvbW1pdCAzZjIxMTFkZTY3MzNhMDRlMTJkOTEwZDMwNmEzNGQ2NzFlMDA4NzYyCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IE1heSAzMSAxMDo0NjoxMSAyMDEyICswMTAwCisKKyAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNS1wYXRjaGVzCisKK2NvbW1pdCBjY2Y4ZmYyYzRkYjYwMTIyZDQxMzAyZTRhZWI3MDBlMGI4NjgxMDVmCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIE1heSAyOCAxMDoxODo0MyAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzNTI2NTk5OiBEb24ndCBoYW5nIG9uIHJldHJpZWQgZmFpbGluZyBTTk1QdjMgcmVzcG9uc2VzCisKK2NvbW1pdCBjODFjODQ4Mzk5MDkxMWY0NzQzNWQzMDA1MjU1ZDkxYzM3YWI5MmIyCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTdW4gTWF5IDI3IDE0OjA5OjI2IDIwMTIgKzAyMDAKKworICAgIEZpeCBCU0QgdGhhdCBkb3dubm90IGFsd2F5cyBsaWtlIElQX1NFTkRTUkNBRERSIC0gc28gcmV0cnkgd2l0aG91dAorCitjb21taXQgZmZjZTFmMmRjMmY4YjMxYWJkMDFmOTNiMjZkYTc4ZjQ3MjZhMWU2NAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU3VuIE1heSAyNyAxNDowMzo1OCAyMDEyICswMjAwCisKKyAgICBGaXggT1MgbWlzc2luZyBNU0dfRE9OVFdBSVQgKEFJWCkuIEJhY2twb3J0IGZyb20gNS43CisKK2NvbW1pdCBjNTc1MjE2ODUwMTg1YjU2NDU0ZGFkMDI1M2UzMTY0OTc5ZTEzNTEzCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTdW4gTWF5IDI3IDEzOjU2OjAxIDIwMTIgKzAyMDAKKworICAgIEZpeCBtaXNzaW5nIGluY2x1ZGUuIEZpeGVzIFNJR1NFR1Ygb24gRnJlZUJTRDkgeDY0CisKK2NvbW1pdCA1ODA1ODc4NzQ5YzA4MDYyZGViZjBhOWQ3OThkMDhmYjkxNmNhYTJkCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gTWF5IDI3IDA2OjIzOjE5IDIwMTIgKzAyMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBBZGQgbWlzc2luZyBkZWJ1ZyB0YWcKKworY29tbWl0IGQxYTQyYmJjYzdiMTQ3MzBjOWE2ZDk5YzRmMDQ3MDk3ODQzYTU0OWIKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIEZyaSBNYXkgMjUgMDk6MDI6MjcgMjAxMiArMDIwMAorCisgICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJ1biBsaWJ0b29sIC0tbW9kZT1maW5pc2ggb24gdGhlIHJpZ2h0IGRpcmVjdG9yeQorCitjb21taXQgMWZiZjMzNzExYTE5ZWFjOTczOWFkMjNmNmY2MjUxZWFjYzQxZjFjNAorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBNYXkgMjIgMTQ6NTQ6NDUgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogTGludXg6IFBBVENIOiAzNTI1OTk4OiBEb24ndCB1c2UgYW4gdW5pbml0aWFsaXNlZCB2YWx1ZSBpbiBlcnJvciBtZXNzYWdlCisKK2NvbW1pdCAzMmMxNjg2YjY3ZGM4NWM0YTE4OTU3NjM2MzA2NTYwOWRmZWQ1ZTYxCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIE1heSAyMiAxNDo1Mjo1NiAyMDEyICswMTAwCisKKyAgICBBdHRlbXB0IHRvIG1hcmsgcmVsZWFzZS1jYW5kaWRhdGUgYnJhbmNoZXMgYXMgc3VjaC4KKyAgICBPbWl0IGZpbmFsLXJlbGVhc2Utb25seSBzdGVwcyB3aGVuIHByZXBhcmluZyBwcmVOL3JjTiByZWxlYXNlcworICAgIChSZWxpZXMgb24gYSB0d2VhayB0byB0aGUgTWFrZXJlbGVhc2UgcGVybCBtb2R1bGVzKQorCitjb21taXQgNGM1NjMzZjE2MDNlNGJkMDNlZDA1YzM3ZDc4MmVjODkxMTc1OWM0NworQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUBmcmVlc25tcC5jb20+CitEYXRlOiAgIE1vbiBNYXkgMTQgMTE6NDA6MDYgMjAxMiAtMDQwMAorCisgICAgTkVXUzogc25tcDogQlVHOiAzNTI2NTQ5OiBDVkUtMjAxMi0yMTQxIEFycmF5IGluZGV4IGVycm9yIGxlYWRpbmcgdG8gY3Jhc2gKKworY29tbWl0IDY1ZGQ4M2MyMjU1ZWU1OGVkYmYwZTI1ODYzZTU1YjU4YTQxMTM2NzkKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gTWF5IDcgMjA6MzA6NDIgMjAxMiArMDEwMAorCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnJjMQorCitjb21taXQgYWM0YmM2NWUyOTA5ZjNiZDg1ZjMyZjA0YjUwNGZhNjVkMmY2NDU1MworQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBNYXkgNyAyMDoyODowNiAyMDEyICswMTAwCisKKyAgICBtYWtlIGRlcGVuZCBmb3IgNS42LjIucmMxCisKK2NvbW1pdCBiNzQ5OTQ4NjQxOTUxMTllZGI2ZTE5Yzg1MTQ3ZmFjMDBiY2I5M2UzCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIE1heSA3IDIwOjEzOjQ2IDIwMTIgKzAxMDAKKworICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucmMxCisKK2NvbW1pdCA5MTM1MDA5MmM0NmU2NmQwNmQ3NDE0M2Y0ODE2NDczZGI0ZDI1MTYwCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIE1heSA3IDE5OjU2OjMzIDIwMTIgKzAxMDAKKworICAgIE1hcmsgdmVyc2lvbi1zcGVjaWZpYyBjaGFuZ2VzIF9iZWZvcmVfIHB1c2hpbmcgdG8gY2VudHJhbCByZXBvc2l0b3J5CisKK2NvbW1pdCA3MjQxYWNjZDcwYjgyZDBmY2Q0NGQ1YTUyMzhiMmVlOTQ0NTkwMGRiCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIE1heSA3IDE3OjUzOjE3IDIwMTIgKzAxMDAKKworICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzEKKworY29tbWl0IDdjNzk2YTE1YTFkMWJiODVmZWVhOTQwYmQ0ZTM1MTY4Nzc5MjA5MTkKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gTWF5IDcgMTc6NTA6NDkgMjAxMiArMDEwMAorCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMQorCitjb21taXQgMDdlMjY4YmZiNjRiMGVjNjQ1YjNmN2U4NzI2Njk4NGY5MjE3Y2YxMgorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBNYXkgNyAxNzo0NDozNyAyMDEyICswMTAwCisKKyAgICBtYWtlIGRlcGVuZCBmb3IgNS41LjIucmMxCisKK2NvbW1pdCAxNmVhYWY2YzNiYTE0NTk2Y2E5ZWZhZjRiMTE0ZjFiNzA5ZjQyYjY4CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIE1heSA3IDE3OjI5OjAzIDIwMTIgKzAxMDAKKworICAgIGRvY3VtZW50YXRpb24gdXBkYXRlIGZvciA1LjUuMi5yYzEKKworY29tbWl0IGM3Mjk0NjllZjEyMTU0OTMwY2Y5ZDE1OTY3ZTE2MTg2ZmI0NDVmMzAKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gTWF5IDcgMTc6Mjc6MjAgMjAxMiArMDEwMAorCisgICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5yYzEKKworY29tbWl0IDE0MjU3MWQzY2VhMDhmMGMwNzJkMjRjMWQzOWE0M2M3NDQ2ZjhjZTcKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gTWF5IDcgMTc6MDE6MDMgMjAxMiArMDEwMAorCisgICAgV2hlbiBidWlsZGluZyBhIG5ldyByZWxlYXNlLCB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIHBlcmwKKyAgICBtb2R1bGVzIG1heSB3ZWxsIGJlIGRpZmZlcmVudCB0byB0aGUgdmVyc2lvbiBiZWluZyBidWlsdC4KKyAgICBUaGF0IHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkLgorCitjb21taXQgZWJhODZiNmY3YWZmMjYxZWUwZTYxMzM0ZGY3MGRlNzE1NmU1YzNjYgorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBNYXkgNyAxNzowMTowMyAyMDEyICswMTAwCisKKyAgICBXaGVuIGJ1aWxkaW5nIGEgbmV3IHJlbGVhc2UsIHRoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiB0aGUgcGVybAorICAgIG1vZHVsZXMgbWF5IHdlbGwgYmUgZGlmZmVyZW50IHRvIHRoZSB2ZXJzaW9uIGJlaW5nIGJ1aWx0LgorICAgIFRoYXQgc2hvdWxkIG5vdCBicmVhayB0aGUgYnVpbGQuCisKK2NvbW1pdCA1YzBmNjRkNmRiMmI1OTNmN2NjMGVkMmQ0ZjU1YjdjNTkyYjc3NGE4CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gQXByIDIzIDIyOjI1OjE1IDIwMTIgKzAyMDAKKworICAgIE9ubHkgb3V0cHV0IGNwdSB3YXJuaW5ncyBvbmNlLgorCitjb21taXQgZWU1OGU0ODI3YjlmYTE2ZTY2MzVjYTAwM2U4YTRmMTFkY2I1ZmI3YQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEFwciAyMyAyMjoxNzo0MiAyMDEyICswMjAwCisKKyAgICBGaXggc3BlbGluZyBpbiBlcnJvcm1lc3NhZ2UuCisKK2NvbW1pdCAwM2Y0ODVkZjIyZjIwZTE0OWNmYWU5NGM1N2NiODJmZWVjYjVkNzRiCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gQXByIDIzIDIyOjEyOjExIDIwMTIgKzAyMDAKKworICAgIE5vdCBhbGwgTGludXhlcyB1c2UgcnBtIChkZWJpYW4vdWJ1bnR1IGNvbWVzIHRvIG1pbmQpCisKK2NvbW1pdCA5MzA4MzgyMjRmNzgxNjk2YmQzNTIyNWYyMjU2OTM0NzQxNmYxYjE2CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gQXByIDIzIDIyOjEwOjE1IDIwMTIgKzAyMDAKKworICAgIENoZWNrIG5lZWQgZm9yIC1sbSB0byB1c2Ugcm91bmQvZXhwCisKK2NvbW1pdCBhMDYwOWNmMWYzYTY5MTdkMjYzNzI1NzMyMjQ4Y2Q5MzdhNDVhZDk0CitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTYXQgQXByIDcgMDg6NDA6NDQgMjAxMiArMDIwMAorCisgICAgUmVtb3ZlIGxpbWl0YXRpb24gb24gY29uZmlndXJhdGlvbiBsaW5lIGxlbmd0aC4KKworY29tbWl0IDMwNTk3MzMzOGE2M2FlNTRjNWUwMmE4NjI2ZmJlOWE4MDY0ZGNiN2UKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBBcHIgNyAwMDozMjoxOSAyMDEyICswMjAwCisKKyAgICBSZWR1Y2UgdmFyaWFibGUgc2NvcGVzLgorCitjb21taXQgY2NhYjRlOWQzZWQ0MjRjMzlkMGRjMjdiZTYzZmE3NmM3NDYxZWE4MQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IEFwciA3IDAwOjE1OjIyIDIwMTIgKzAyMDAKKworICAgIEludGVybmFsaXplIHRoZSBuYW1lIGFuZCBsaW5lIG51bWJlciBvZiB0aGUgY3VycmV0IGNvbmZpZ3VyYXRpb24gZmlsZQorCitjb21taXQgY2Y4NzRhZDdiOWRhZjRmY2MwZDQ2Y2RkMDM0NDc0YjQ3ODAwNTM0MQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgRnJpIEFwciA2IDIxOjQ3OjI4IDIwMTIgKzAyMDAKKworICAgIFJlcGxhY2UgI2lmIChBKSBCICNlbHNlIEIgI2VuZGlmIHdpdGggQi4KKworY29tbWl0IGVmOWVhNjQxYmMyOTBlZWM1MDY4NWI2MDUxOWIzMWJlZThiMTRhNjkKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gQXByIDkgMjE6MDQ6MDYgMjAxMiArMDEwMAorCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTIKKworY29tbWl0IDM1YWJhMTk1OWRlMTE5ZjFmYjg5MjAzYzM3MTA5YWE2ZjBlMjFjNTcKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gQXByIDkgMjE6MDA6NDAgMjAxMiArMDEwMAorCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTIKKworY29tbWl0IGU0MWZiYWZmMThhYzkwOTVjZjRhNzM5YTA2ZWMzOWExYTZjY2ZkYzEKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gQXByIDkgMjA6MzU6MzUgMjAxMiArMDEwMAorCisgICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5wcmUyCisKK2NvbW1pdCAxMzdmZTU4MmQ2Y2M1NjExNDMwZGFiNDZlZjE0NGVmZDg0Y2ZjODAzCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgRnJpIEFwciA2IDIwOjQ2OjU2IDIwMTIgKzAxMDAKKworICAgIFJldmVydCBjb21taXQgMWY0YTgyOWIxODI3NWU0OTU2Y2E5MWU1ZWMzNzBkZjAxNWYwNjEzMworICAgIChzbm1wX3N0b3JlX25lZWRlZCgpIEFQSSBpcyBub3QgYXZhaWxhYmxlIGluIDUuWzQ1XS54KQorCitjb21taXQgMmI3ZTY0Mjg4YzAxYThhMDYyMDI2YzUyMWNhMzFhNWU4ODVmMzBjYworQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBBcHIgMiAxNjoxMjoxMiAyMDEyICswMTAwCisKKyAgICBGcmVlQlNELTk6IEZpeCBmb3IgJ2NvbnN0J2lmeWVkIG5saXN0IGFyZ3VtZW50cworICAgIEJhY2twb3J0IG9mIGVkNjVlY2E2ZTdmOWNmYTczODBhNzhkNTZjMDFlZDMxNDc0NWIxNjkgZnJvbSBWNS02LXBhdGNoZXMKKworY29tbWl0IDdlOTVkODBiNjk4MDUxMjU5NjQ1YzA3NGE1M2ZmZDI2NGE2ZmE5MTYKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gQXByIDIgMTY6MDY6NTYgMjAxMiArMDEwMAorCisgICAgRnJlZUJTRC05OiBGaXggZm9yICdjb25zdCdpZnllZCBubGlzdCBhcmd1bWVudHMKKyAgICBCYWNrcG9ydCBvZiBlZDY1ZWNhNmU3ZjljZmE3MzgwYTc4ZDU2YzAxZWQzMTQ3NDViMTY5IGZyb20gVjUtNi1wYXRjaGVzCisKK2NvbW1pdCAxYTliN2I3YzAyZTJkZWVmZTk5NGQ1OTVhN2NjMWRkMmZmYmVlZTFkCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIEFwciAyIDE1OjUxOjIwIDIwMTIgKzAxMDAKKworICAgIEZpeCBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDkueCB3aXRoICdyZWNlbnQnIGhlYWRlciBzaHVmZmxpbmcKKyAgICBCYWNrcG9ydCBvZiBjNTNkOGMzNTI1ZjU5MGYyMjEzZDM1YjBkYTk0MTIzODYyZjNlMzY2IGZyb20gVjUtNS1wYXRjaGVzCisgICAgKFBhdGNoICMzMzYzMzA4IC0gb21pdHRpbmcgdHdlYWtzIHRvIGNvbmZpZ3VyZSkKKworY29tbWl0IDNkOWRkYjQxZTI2M2JjMWE3OGY5Zjk0NDBiOGQ0YWQ0Zjg2YzgyZTEKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gQXByIDIgMTA6MzY6MTggMjAxMiArMDEwMAorCisgICAgRml4IHR5cG8KKyAgICBCYWNrcG9ydCBvZiA1YjcwMmIwMjRiNjAxNzZkN2Y1Njk5YjkyZTU1ZGE1MGE4ZGVhZTcxIGZyb20gVjUtNi1wYXRjaGVzCisKK2NvbW1pdCAwZDM1YzYwOTU2NGI2NmExZmZlODE1NTZkMzdhZGYwNTAzYzM4OWNlCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIEFwciAyIDEwOjE1OjA4IDIwMTIgKzAxMDAKKworICAgIFByb3ZpZGUgbWlzc2luZyBkZWZpbml0aW9uIG9mIE5FVFNOTVBfUFJJbworICAgICh1c2VkIGluIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYykKKworY29tbWl0IGE3OTE0MWE0MTk5NTNkMDEwYTY5ODllOGI4OGY0ZGYxMjczOTRkMzgKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gQXByIDIgMDk6MTk6MjYgMjAxMiArMDEwMAorCisgICAgSGVhZGVyIGZpZGRsaW5nIGZvciBGcmVlQlNELE9wZW5CU0QsRHJhZ29uZmx5CisgICAgQmFja3BvcnQgb2YgZjdiMGRlMTUxODAwMmM2ZThmOWI5NGVmM2RlYjg4ODJlMWU5MzM4ZSBmcm9tIFY1LTctcGF0Y2hlcworCitjb21taXQgYWRmNzRiZjc1M2QzOTcwMzU3YWZkNjMzODAzMjU2MjQxZDljN2I4NworQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBBcHIgMiAwODoyMDo0NiAyMDEyICswMTAwCisKKyAgICBGaXggSVB2NiBUQ1AgJiBVRFAgdGFibGVzLCAqQlNEIHN1cHBvcnQgKGluY2x1ZGluZyBPcGVuQlNEKQorICAgIEJhY2twb3J0IG9mIGNvbW1pdHMgNWNkMTU3MzYyNTQ3MWMwNTgzZTkwODdhZWM2ODAyYjc3MTU3ZDVhMgorICAgICAgYW5kIDUwZDczZjBkNTZmZTIyYzU5MDUzMGIzZTMwNWQ0MWRjZGFjM2NlMDAgZnJvbSBWNS02LXBhdGNoZXMKKworY29tbWl0IGQ5NTU1YWNiOWY0N2MzYWE4ZmRlNGJjMjBhNDRkN2NhNjE4MWE4YTkKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFN1biBNYXIgMjUgMTg6NDg6MTIgMjAxMiArMDAwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQXZvaWQgZGFuZ2xpbmcgcG9pbnRlcnMgKGJhc2VkIG9uIHBhdGNoIDM1MDMyNTkpCisKK2NvbW1pdCA4MmE4YjQ3ZWU5NmU1ZDI5YTJiN2FjM2NhMDA3MjJkNzM3ZDViNDc5CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgTWFyIDI5IDIyOjMxOjU2IDIwMTIgKzAyMDAKKworICAgIFJ1bm5pbmcgYXV0b2hlYWRlciAvIGF1dG9jb25mCisKK2NvbW1pdCA5Y2E4ZDkzOWFiMzkzMzA2YTFkMGYxNDZjOWNiNzBlYTBjYjE5ZDQ5CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgTWFyIDI5IDIyOjMwOjM4IDIwMTIgKzAyMDAKKworICAgIFJ1bm5pbmcgYXV0b2hlYWRlciAvIGF1dG9jb25mCisKK2NvbW1pdCBjZWNkNDg2OWRlYjY4ZjNkNGM3MWU3NjhkNWI0MGRkNTc2NDQ2OTI1CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgTWFyIDI5IDIyOjI5OjMxIDIwMTIgKzAyMDAKKworICAgIFJ1bm5pbmcgYXV0b2hlYWRlciAvIGF1dG9jb25mCisKK2NvbW1pdCBhMWE0NTEzYmQzZTRlNjE0MjAwZjZkYjVhMDJmNjFkNmM4ZWVmYjMyCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgV2VkIE1hciAyOCAwOTo0Nzo0NSAyMDEyICswMTAwCisKKyAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMgKGJhY2twb3J0IG9mIGdpdCBjb21taXQgYzA5OTAzYTQyZTlkOTczMzFmZDllNDhlZTgzMWE4NWFmZGY5YzcwYSkKKworY29tbWl0IDliZGJjY2ExMjJjMzdkYTMwNGZjNmFhNjkzOTcyOTQ3NWY5MGY1ZmQKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBXZWQgTWFyIDI4IDA5OjMwOjQ5IDIwMTIgKzAxMDAKKworICAgIERveHlnZW4tc3R5bGUgZG9jdW1lbnRhdGlvbiBmaXhlcyAoYmFjay1wb3J0IG9mIEdJVCBjb21taXQgYzA5OTAzYTQyZTlkOTczMzFmZDllNDhlZTgzMWE4NWFmZGY5YzcwYSkKKworY29tbWl0IDFmNGE4MjliMTgyNzVlNDk1NmNhOTFlNWVjMzcwZGYwMTVmMDYxMzMKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgTWFyIDI3IDIxOjQxOjI0IDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDk1Njk3OiBTdG9yZSBwZXJzaXN0ZW50IHNubXBUYXJnZXQgdGFibGUgY2hhbmdlcworCitjb21taXQgMWY3NWYzNzdkMGRiMDE3NTRjMGMxNjFkYzQ0MzczMDgxYmVlZjUyMAorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBNYXIgMjcgMjE6MTQ6MDYgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogRnJlZUJTRDogUEFUQ0hFUzogMzQ4OTM4NzogSW5zdGFsbCBGcmVlQlNEIDEwIGhlYWRlciBmaWxlIChwbHVzIG90aGVyIG1pc3NpbmcgdmVyc2lvbnMpCisKK2NvbW1pdCAzZDcyYzllNzhmMmFkODE3YzlkMWQ4Mjk3NzMyN2JiYjIwZDYzYWI5CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIE1hciAyNyAyMTowNjozMSAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDM0ODc4Njc6IERvbid0IHNraXAgbWlzc2luZyBpZlhUYWJsZSBlbnRyaWVzIChpZkNvbm5lY3RvclByZXNlbnQgRkFMU0UpCisKK2NvbW1pdCAxMjkwNjU3OGFiMzBjZjc3NmQwODBjMGVmMzAyNWIzMDMzNGQ3NjU1CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gTWFyIDI2IDE2OjE3OjQ1IDIwMTIgKzAyMDAKKworICAgIERJU01BTi1QSU5HLU1JQjogRml4IGV2ZW4gbW9yZSBtZW1vcnkgbGVha3MKKworY29tbWl0IGNjZmQ1Y2E2ZmUxMDMxM2Q2MTgxZDI0YmJiMTc5NzgyNWE5N2RhMTAKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBNYXIgMjYgMTU6NTE6MTYgMjAxMiArMDIwMAorCisgICAgRElTTUFOLVBJTkctTUlCOiBFbGltaW5hdGUgZHVwbGljYXRlIGNvZGUKKworY29tbWl0IDlmZGEyNjY4NzIyZjA4ZGRiZmRkNjdhMjIzOWQ4YjAyMWRiNjRhODMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBNYXIgMjYgMTU6NDg6NDYgMjAxMiArMDIwMAorCisgICAgRElTTUFOLVBJTkctTUlCOiBXcml0ZSBhIGxvb3AgYXMgYSBsb29wCisKK2NvbW1pdCBjYmMxOGViNzYzYmE2ZGY2OWVmNzA2NjhhNTRkNzViZjM1ZTc5NTAzCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gTWFyIDI2IDE1OjI0OjA4IDIwMTIgKzAyMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEZpeCBtb3JlIG1lbW9yeSBsZWFrcworCitjb21taXQgYzc3MjUxOTI0NzhhZWMwMThmYjRhZWZhNjA5NDZlMDRhNDA2YzAwYworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIE1hciAyNiAxMzo0MzoyNCAyMDEyICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBBdm9pZCByZWFkaW5nIGZyZWVkIG1lbW9yeSB3aGVuIGRlbGV0aW5nIGEgcm93IGZyb20gYSB0YWJsZQorCitjb21taXQgYTZiZTczOTU2NmYzMTBkNzQ0MWZkN2Y1NDk4OWUzOTQ0NmY3YTE0MworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIE1hciAyNiAxMzo0MjoyOCAyMDEyICswMjAwCisKKyAgICBFeHRlbmQgRElTTUFOLVBJTkctTUlCIHRlc3QKKworY29tbWl0IDhhOWI1NzI5MTQ1M2NiOGFlYzI4ZTc2NmM1OTQ3MDFlZDE5YzRmYzYKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBNYXIgMjYgMjE6MDM6NDEgMjAxMiArMDIwMAorCisgICAgRml4IGZvciBEcmFnb25GbHkgMworCitjb21taXQgZTVjOWEzMmY3OWVhYzJlODU1MjdjOWNmMDUwODdjZGFlOWIzNWE2YworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE1hciAyNiAyMDo1OTo1MyAyMDEyICswMjAwCisKKyAgICBEcmFnb25GbHkgbmVlZHMgX0tFUk5FTF9TVFJVQ1RVUkVTIHRvIGNvbXBpbGUgaXB2NiBjb2RlCisKK2NvbW1pdCBjZDQzYmMwOWEzOWJkOTdmZjVlNzE5YTJjZTIzMmNlNDI0NjAwYTY1CitBdXRob3I6IERhdmlkIEltaG9mZiA8ZGltaG9mZkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFNhdCBNYXIgMjQgMTU6NDc6MTcgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0ggMzUxMDQ1NDogQWxsb3cgdGhlIHVzZSBvZiAwLjAuMC4wLzAgYXMgYWxpYXMgZm9yIGRlZmF1bHQKKworY29tbWl0IGUyZmMxNWY5ZTVhNmUzZTM2YmU1ZjQ4OTYwMWNiZjZiZjczMTkxN2YKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MjE6MzggMjAxMiArMDEwMAorCisgICAgRml4IFRDUCBzdGF0ZSB2YWx1ZXMgZm9yIERyYWdvbkZseQorCitjb21taXQgNDMyZmUzZGRmNTRmMmM5OGY5MzY5NTk0NjljYjliMDE0ZDU5OWYwNgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU2F0IE1hciAyNCAxNToxMDo1MiAyMDEyICswMTAwCisKKyAgICBSZXF1aXJlIHBlcmwgdG8gZG8gcGFzc19wZXJzaXN0IHRlc3QKKworY29tbWl0IDM3ZDI3NzBjZjUwYzk4MDIzZWViYTkwZTI1ZDM3MmJmZjczMTZhZGEKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2VyLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU2F0IE1hciAyNCAxNTowNjo0MCAyMDEyICswMTAwCisKKyAgICBGaXggVENQIHN0YXRlIHZhbHVlcyBmb3IgRHJhZ29uRmx5CisKK2NvbW1pdCA4NmE5NDhkODY5MWU4ODFkNTU1OTFkY2FiZGRjMjczOWNlNzJiMzBlCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAbmJhLWxpbnV4LnNiLnN0YXRzYmlibGlvdGVrZXQuZGs+CitEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MDE6MzcgMjAxMiArMDEwMAorCisgICAgUHJvcGVybHkgZmluZCBwYXNzIGhlbHBlcnMgZm9yIHRlc3RpbmcuCisKK2NvbW1pdCBmZTI2YTNjNGYyOWYwNDZiZjY1ZWQ1MmU5ZDk0MDU0YjY3NWZiYzRiCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgTWFyIDIyIDA5OjA0OjQyIDIwMTIgKzAxMDAKKworICAgIERJU01BTi1QSU5HLU1JQjogTGltaXQgc291cmNlIGNvZGUgbGluZXMgdG8gODAgY29sdW1ucworCitjb21taXQgNzQ1YmFmY2RjYzljOGU4NDYxNmQ0ZTI3NGRiMmEzODRiZjIzNGRhMgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IE1hciAyMiAwODo1NTowNSAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBNYWtlIHBpbmcgaW1wbGVtZW50YXRpb24gaW5kZXBlbmRlbnQgb2YgbnRwZCBjbG9jayBqdW1wcworCitjb21taXQgZGE2OTI1ZTY3NjNjYWRiZTAyZjRhOGJiZmU2OGEzNjJlNTM1YWQ1ZQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIE1hciAyMCAxMDozODozNiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTU0ZGlzbWFucGluZ21pYl9zaW1wbGUKKworY29tbWl0IGZhNjA2ZGQ3Y2E2YWZmOTMwOGQ0ZThiMDFiYmNkZTE0OGY0NDEyNzEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBNYXIgMjAgMTY6NDk6MjEgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogTWFrZSBwaW5naW5nIGxvY2FsIGludGVyZmFjZSBhZGRyZXNzZXMgd29yaworCitjb21taXQgNjE3YTgzYmE3OTk1NzVjODRjNjZmNmIxYzQ4MGVmNjMzMTYxYTY0YworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIE1hciAyMCAxNjoyODo0NiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggYSBzb2NrZXQgbGVhayB0cmlnZ2VyZWQgYnkgcGluZ2luZyBhIHJlbW90ZSBob3N0CisKK2NvbW1pdCA2MjVmNTVjMjcyZWM2MjgxZTM4ZDhlMzBlYjUzZmQ1MTUxNmIwMGFlCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgTWFyIDIyIDA5OjU0OjU1IDIwMTIgKzAxMDAKKworICAgIERJU01BTi1QSU5HLU1JQjogQ29udmVydCBhIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCB2YXJpYWJsZSBpbnRvIGEgc3RhY2sgdmFyaWFibGUKKworY29tbWl0IGI0OGYxOWFkNGI0YWE2OGMzZTE2ZTJhNzJkZjM3YjljMGNkMzZjNGEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBNYXIgMjAgMTY6MjQ6MDcgMjAxMiArMDEwMAorCisgICAgRElTTUFOLVBJTkctTUlCOiBBZGQgbW9yZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cworCitjb21taXQgZDc0Y2IzOTY2MTc1ODkyNTYyZjVlM2E5YjE2ODNhY2JhMmMyMmUwNworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIE1hciAyMCAxMTo0NToxOCAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggc2V2ZXJhbCBtZW1vcnkgbGVha3MKKworY29tbWl0IDBiMWE3NzY3NDY3OGNjOWExNWJlM2U3NzAwZDNjZWY2NTBlZDAyYzcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBNYXIgMjAgMTI6MDA6MzAgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRG8gbm90IHNlbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSBzdGFjayBvdmVyIHRoZSBuZXR3b3JrCisKK2NvbW1pdCAxMzkwMjNjZDNhYjUxNjMxY2MxMGUyODY2ZDcxYWJjZjk5YWU0YzFiCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgTWFyIDIxIDA4OjU2OjA3IDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IERvbid0IGNhbGwgZXhpdCgpIHVwb24gbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZQorCitjb21taXQgMTY5YjZhYWE3YjYxODI3Y2MxYWQwYjNhZWVhZTNhNzIyOWRkMjVkOAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIE1hciAyMSAwODo1MzoyNiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggSVB2NiBzb2NrZXQgbGVhayBpbiBlcnJvciBwYXRocworCitjb21taXQgYTBiZTMyYWQwNTNhNzFmYTk2MTM0ZDU1ZTU0MmJiMDdkNGYwMjk3ZAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIE1hciAyMCAxMTo0Mzo0NiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBBdm9pZCB0aGF0IGhvc3QgbmFtZSByZXNvbHV0aW9uIGZhaWx1cmUgY2F1c2VzIGEgY3Jhc2gKKworY29tbWl0IGJmOWJmZjY0NTU2Nzg3ZDc2NmVlMmVmMmQ1NzhhZmI5MjA3MTlmM2EKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBNYXIgMjEgMDg6NTE6NTUgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQ29udmVydCBwcmludGYoKSBzdGF0ZW1lbnRzIGludG8gc25tcF9sb2coKSBhbmQgREVCVUdNU0coKS1zdGF0ZW1lbnRzLgorCitjb21taXQgNWQ3NGMwMTI0NTUyM2E5ZDhkYjFlZGEyN2QxZWZhZTJlYmMxMDRmYgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE1hciAyMSAxODo0MDowMiAyMDEyICswMTAwCisKKyAgICBOZXcgTUlCOiBWUlJQVjMtTUlCCisKK2NvbW1pdCA1YjM4ZjA2MmI5OWI2ZWYzNjcwOGUyYzdkZTQ5NjVhMzE5MjYxMmU5CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTWFyIDIxIDE4OjM0OjQ4IDIwMTIgKzAxMDAKKworICAgIEZvciBzYWZldHksIHNpemVvZiB0aGUgcmlnaHQgdmFyaWFibGUgaW4gbWVtY3B5CisKK2NvbW1pdCBlNWY4Mjc4MmRhMDVlZmE3YzBlNmRjMmJmNWE0MWVlMTE4NjhmNDY5CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTWFyIDIxIDE4OjMzOjIxIDIwMTIgKzAxMDAKKworICAgIEZpeCBmb3IgaHJTV1J1biBkYXRhIGZvciBGcmVlQlNECisKK2NvbW1pdCA4MzI3NTY1ZTgyMzI3MGQxMGE0NTA0NTY4ZWRiZTViNWFlMzIzYTU1CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTWFyIDIxIDE4OjMxOjU0IDIwMTIgKzAxMDAKKworICAgIENsZWFuIHVwIHZhcmlhYmxlcyBmb3IgT3BlbkJTRC9OZXRCU0QKKworY29tbWl0IDE3MGY2ZjAyN2JmNGY5MTc0YjcwNzM1MzBkYTRkMDdmNDAwYmJhNTgKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBNYXIgMjEgMTg6Mjg6NTggMjAxMiArMDEwMAorCisgICAgTW92ZSBkZWNsYXJhdGlvbnMgaW4gZnJvbnQgb2Ygc3RhdGVtZW50cworCitjb21taXQgZGJiNDU3M2I2OWZhZTg1Y2RjOTMxYjI4OTJiNWNlNGU1YjE2YjMyMQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE1hciAyMSAxODoyMzozNiAyMDEyICswMTAwCisKKyAgICBSZXF1aXJlIGtlcm5lbF9uZXRic2QgZm9yIE5ldEJTRDYKKworY29tbWl0IGYxMTY4MWYxNWFhZDdkOWE1MmZhMjk4MTJlY2JiNTA3ZjFiN2ZlMjQKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBXZWQgTWFyIDIxIDEyOjM2OjM4IDIwMTIgKzAwMDAKKworICAgIENoZWNrIGZvciBvbGQgdGFyYmFsbHMgKGFuZCB1bnBhY2tlZCBkaXN0cmlidXRpb25zKSBiZWZvcmUgc3RhcnRpbmcuCisgICAgVGhlc2UgY2FuIGNvbmZ1c2Ugc3RlcHMgc3VjaCBhcyAibWFrZSBkZXBlbmRjaGVjayIsIHRoYXQgZG8gYSAnZmluZCcKKyAgICBvbiB0aGUgY3VycmVudCB0cmVlLCBhbmQgd291bGQgZGVzY2VuZCBpbnRvIHN1Y2ggdW5wYWNrZWQgc291cmNlIHRyZWVzLgorCitjb21taXQgNDcwZGNkNGI2YzNmZjExZmYwYTM1MzJhNzM0MGE1NmNmZmQ2OTA5OAorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFdlZCBNYXIgMjEgMTI6MzI6MTMgMjAxMiArMDAwMAorCisgICAgRG9uJ3QgcnVuICJtYWtlIGRvY3M7IG1ha2UgbWFuY3AiIGlmIHRoZXJlJ3Mgbm8gTWFrZWZpbGUgcHJlc2VudAorCitjb21taXQgYzlhYzQyMDM0M2UxNmRmMmI3MDY1ZjViZjI3OTBkZjQ0ZTI0N2ZiYQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBNYXIgMjAgMTA6MjY6MTAgMjAxMiArMDAwMAorCisgICAgQWxsb3cgZGlzdHJpYnV0aW9uIGFzIHBhcnQgb2Ygbm9ybWFsIE5ldC1TTk1QIHBhY2thZ2VzLgorCitjb21taXQgNTk5OWY2MGM1NzcyM2YyM2YzYzI1NGFmNTdmZGIxMGFmMzAxYThlYgorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIE1hciAxOCAxOTowMzowOCAyMDEyICswMTAwCisKKyAgICBSZWdlbmVyYXRlCisKK2NvbW1pdCAyNzVkMjA0MDM2YTYwN2UzZGY1MGU4NDQ3ZDRiYzc1NWU5ZGIwMmZkCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gQXVnIDI4IDIxOjI5OjAzIDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSAtLWRpc2FibGUtYXBwbGljYXRpb25zLy0tZGlzYWJsZS1hZ2VudCB0b2dldGhlciB3aXRoIC0tZW5hYmxlLW1pbmltYWxpc3QKKworY29tbWl0IGJkY2NjODc1NzEwMjk1YWFjZjUwZjcxZWIxYzFkMmVlOTdmMzM2ZmUKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIEZyaSBNYXIgMTYgMjA6MTA6NTggMjAxMiArMDEwMAorCisgICAgRG8gbm90IGRlY2xhcmUgdGhlIGxvY2FsIHZhcmlhYmxlcyBmb3Igb3BhcXVlX3NwZWNpYWxfdHlwZXMgdW5sZXNzIHRoYXQgb3B0aW9uIGlzIHNldC4KKworY29tbWl0IGI4MGE2N2RhMDUyYWRjYTFiNWE2NDRkYjgzYTc4MmUxNWMyMjM3YzMKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIEZyaSBNYXIgMTYgMTk6NTA6MDMgMjAxMiArMDEwMAorCisgICAgQ2hlY2sgdGhhdCB0aGUgZGF0YSBleGlzdCBiZWZvcmUgdHJ5aW5nIHRvIHJlYWQgaXQKKworY29tbWl0IGVmYWU4NmJiYTU5NjI0OTFkNDJiNzdiOTM1MTkxYTNlYjI1ZGQ5MzkKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFdlZCBNYXIgMTQgMDE6MDU6MzMgMjAxMiArMDEwMAorCisgICAgUGFydGlhbGx5IHJldmVydCAiTWVyZ2UgcmVtb3RlIGJyYW5jaCAnb3JpZ2luL1Y1LTctcGF0Y2hlcycgaW50byBWNS03LXBhdGNoZXMiCisgICAgCisgICAgQ29tbWl0IGQzNWExODYwMjE3ZTcyM2U0Zjg2NmRkOThlZjY2MjE2NjU5MzRjNGEgYWNjaWRlbnRhbGx5IHJldmVydGVkCisgICAgCisgICAgNGEyZTViY2Q1NmNkMmFmYjM2ZWIxNWQ3NTRlMmZlZTg4OGRkNTBjMCAoaHJoX3N0b3JhZ2UgaXMgYSBwcm9wZXIgcmVwbGFjZW1lbnQgZm9yIGhyX3N0b3JhZ2UpCisgICAgMGRkMWU1NDU1N2QxYmE0OThiNTVkMDE3YjBhOTNlOGNjZjliZDUyMiAoQ0hBTkdFUzogc25tcGQ6IFVEUC1NSUI6IFJlcG9ydCB0aGUgcHJvcGVyIGFkZHJlc3MgaW4gdWRwTG9jYWxBZGRyZXNzKQorICAgIDUxMTZkNDgzNzhlY2YwM2U3MjJmMzAxMGFkNDdiZjIyYTNmYmNiOGMgKFJlZHVjZSBzY29wZSBvZiBwcmVmaXhfdmFsIHN1Y2ggdGhhdCB0aGUgY29tcGlsZXIgZG9lc24ndCB3YXJuIGFib3V0IGFuIHVuc2VkIHZhcmlhYmxlKQorICAgIDEwZjU2NmY0ZDRjYmIzZTIwNTAyM2MyMzY2OTI4OWU0YmZkMDg5Y2IgKHBlcmwvU05NUC9TTk1QLnhzOiBGaXggYSBjb21waWxlciB3YXJuaW5nKQorICAgIAorICAgIGFuZCBwYXJ0IG9mCisgICAgCisgICAgNmU3NGQ2NGY4NWE1OWQ1MGU0NjFkYjRjMzRhYzc2ZjlkZTQ2OGJmYiAoQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC1xIGFuZCAtdyBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcykKKyAgICAKKyAgICBUaGlzIHJldmVydHMgdGhvc2UgcmV2ZXJ0cy4KKworY29tbWl0IGFhZWRkNTljYzJkYTcwMTUyN2RjMmQyNjFkNGU5Zjg1ZjE2ZTc1MDQKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBNYXIgMTEgMjA6NTc6MzggMjAxMiArMDEwMAorCisgICAgQWxsb3cgbWFrZSB0ZXN0IHdoZXJlIHRoZSBzb3VyY2UgcGF0aCBjb250YWlucyB0aGUgc3RyaW5nIE5ldC1TTk1QIHRvIHN1Y2NlZWQuCisKK2NvbW1pdCA0Yjk0ZDc5NjkxOGE0ZWVhZTY4YWIyMWFhNTNkNDQ0YThiNWMyOTIxCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgTWFyIDkgMDg6MDQ6NTkgMjAxMiArMDEwMAorCisgICAgVW5icmVhayBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDQKKworY29tbWl0IDEwZmU2YjgzMzI0YWQzN2QxOGI5MzdjYzhjNmRlOTRkZTUzNGQwMzUKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWFyIDggMTM6MDQ6MDcgMjAxMiArMDAwMAorCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTEKKworY29tbWl0IGUxMTIyZWRjMWE1ZmU3OTc2YjA2NTA0NDEzNGQzOWU3ZGI1OTg1ZWEKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWFyIDggMTI6NDM6MTkgMjAxMiArMDAwMAorCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTEKKworY29tbWl0IGE2MTNkM2E4MzQ5MTIyMDZkMWJhNTk3MWU0NDFhM2VhNmIzNmFmMjMKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWFyIDggMTI6MzM6MDMgMjAxMiArMDAwMAorCisgICAgbWFrZSBkZXBlbmQgZm9yIDUuNi4yLnByZTEKKworY29tbWl0IDBlZjM0ZTY1MTlkZmNiODJjOTdkZjg0Mjc1NDdjMDhkY2Y4MWU2OWEKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgTWFyIDggMTA6MTE6MzAgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIHNubXBkICctZCcgb3B0aW9uLgorICAgIAorICAgIE5vdyBpdCBkdW1wcyBwYWNrZXRzIGFnYWluLgorCitjb21taXQgOGU2OTc0MmYxNDNlNGZjMTExOTZlNWIyZWQ2NmM4ZjdmNTNmZDAyZgorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBNYXIgNiAwOToyNDoyMSAyMDEyICswMDAwCisKKyAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnByZTEKKworY29tbWl0IGM0ZTAwYjhjM2UxMDEwY2RjYWI1ZTZjMDJkNjBkNzVkZjljNmRjZjIKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgTWFyIDYgMDk6MjQ6MDUgMjAxMiArMDAwMAorCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTEKKworY29tbWl0IDM5NDkwMTA0YTNhYjU4MjM1YWFjZTJmOWQ4NzFjMjY2ZGM0NDg1ZWUKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gTWFyIDUgMDk6MDY6NTIgMjAxMiArMDAwMAorCisgICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bworICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKKyAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KKworY29tbWl0IDRhMmU1YmNkNTZjZDJhZmIzNmViMTVkNzU0ZTJmZWU4ODhkZDUwYzAKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBNYXIgNSAyMDo1OTozOCAyMDEyICswMTAwCisKKyAgICBocmhfc3RvcmFnZSBpcyBhIHByb3BlciByZXBsYWNlbWVudCBmb3IgaHJfc3RvcmFnZQorCitjb21taXQgY2U4NTgzMjkzMmNjZDkxNmM0MjMxOTExNGM0MDg4NWE0NjZhOWQwZQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE1hciA1IDIwOjU2OjQwIDIwMTIgKzAxMDAKKworICAgIE1vcmUgZml4ZXMgZm9yIFNvbGFyaXMgc2gKKworY29tbWl0IDBkZDFlNTQ1NTdkMWJhNDk4YjU1ZDAxN2IwYTkzZThjY2Y5YmQ1MjIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBNYXIgNSAxNTowODoyNiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogVURQLU1JQjogUmVwb3J0IHRoZSBwcm9wZXIgYWRkcmVzcyBpbiB1ZHBMb2NhbEFkZHJlc3MgaW5zdGVhZCBvZiAwLjAuMC4wLiBNYWtlcyB0ZXN0IFQxNjBzbm1wbmV0c3RhdCBwYXNzIGFnYWluLiBGaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdCBjNzZmYjk2ZjY1ZTMzYmEyZmQyMTJhOTIxZThjMzg2MTU1ZWU1YzdhLgorCitjb21taXQgNTE4OTE3ZTlmMzlmN2E5ZDNjM2JmM2E4NjVlOGFjMGUzMDI2ZDYwMAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIE1hciA1IDE0OjA0OjU0IDIwMTIgKzAxMDAKKworICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOiBGaXggc291cmNlIGNvZGUgaW5kZW50YXRpb24KKworY29tbWl0IDI2NTE5MDljY2NlYWJmY2ZhZGFmOTQyYzAyNDUwZTI4ZmU4MzdkYzkKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBOb3YgOSAxMjowNDowNCAyMDEwICswMDAwCisKKyAgICBQYXNzZXMgbm93IG9uIE1pbkdXIHRvby4KKyAgICAKKyAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTY1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworY29tbWl0IGU0MWYxMTVlNDAzMDRjOTQxYmExN2Q2N2UyNDcxMDcyMmQ5MDc0MWIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBNYXIgNSAxMzozOToxNyAyMDEyICswMTAwCisKKyAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBBdm9pZCB1c2luZyBncmVwIG9wdGlvbnMgLXcgYW5kIC1xIGJlY2F1c2UgZ3JlcCBpbiBTb2xhcmlzJyBkZWZhdWx0IHBhdGggZG9lc24ndCB1bmRlcnN0YW5kIHRoZXNlLgorCitjb21taXQgNTExNmQ0ODM3OGVjZjAzZTcyMmYzMDEwYWQ0N2JmMjJhM2ZiY2I4YworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIE1hciA1IDEwOjQ3OjIwIDIwMTIgKzAxMDAKKworICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzogUmVkdWNlIHNjb3BlIG9mIHByZWZpeF92YWwgc3VjaCB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0IHdhcm4gYWJvdXQgYW4gdW5zZWQgdmFyaWFibGUgaWYgaXQgaXNuJ3QgbmVlZGVkLgorCitjb21taXQgNmU3NGQ2NGY4NWE1OWQ1MGU0NjFkYjRjMzRhYzc2ZjlkZTQ2OGJmYgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIE1hciA1IDA5OjIyOjMxIDIwMTIgKzAxMDAKKworICAgIHRlc3RpbmcvZXZhbF90b29scy5zaDogQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC1xIGFuZCAtdyBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcycgZGVmYXVsdCBwYXRoIGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGVzZSBvcHRpb25zLgorCitjb21taXQgMTBmNTY2ZjRkNGNiYjNlMjA1MDIzYzIzNjY5Mjg5ZTRiZmQwODljYgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIE1hciA1IDEwOjQ3OjM5IDIwMTIgKzAxMDAKKworICAgIHBlcmwvU05NUC9TTk1QLnhzOiBGaXggYSBjb21waWxlciB3YXJuaW5nCisKK2NvbW1pdCA0NGFhMjY1ODkxY2Q1NjNmN2Y0MTE0ZWYyNWRjZjdhYWYzYjE0ZTlhCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKKworICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KKyAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCisgICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCisKK2NvbW1pdCBkYWU0ZTE2YmU4NjExNzg2MWY2M2QxYTJmOTgxYWQzNjE0MThmNWM2CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKKworICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KKyAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCisgICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCisKK2NvbW1pdCAyOGY2MjI2ZjJlMjI4YjhjYTI0ODQ4OTczNWY4NjUwMmIyY2NlMGExCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKKworICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KKyAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCisgICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCisKK2NvbW1pdCA0MDAyMmE2OTc5NTgyNTljY2ZiYjNmZWQ0NGViM2M0NzJmNWU4MzdlCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBTdW4gTWFyIDQgMTA6Mzc6NDEgMjAxMiArMDEwMAorCisgICAgU29sYXJpcyBzaCBkb2VzIG5vdCB1bmRlcnN0YW5kICJ0ZXN0IC1lIgorCitjb21taXQgNzczYWYwYzQyZTA3N2JlYmRhZWNmMWMwY2FmMzkzMjg1YTc2ODhmMQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU2F0IE1hciAzIDE3OjE5OjMwIDIwMTIgKzAxMDAKKworICAgIENsZWFuIHVwIG5zcm9sbHVwIGNvbXBsaWNhdGlvbnMKKworY29tbWl0IGVlNzEwNDljM2UyMWMxZDBlMzQyNDI5NzEzNjY1MmJiZTBlMzlkODUKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFNhdCBNYXIgMyAxNjo0OTo0MSAyMDEyICswMTAwCisKKyAgICBtaWJncm91cC9pY21wLmM6IGFkanVzdCBpZmRlZnMgdG8gbWFrZSBpdCBjb21waWxlIG9uIEJTRCdzCisKK2NvbW1pdCBjZTk2MDAzNjFlNjY1ZGRlMTdhZjlkOGFiMTZkN2NlODVkYzA1NjQzCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgTWFyIDIgMjE6Mzk6NTUgMjAxMiArMDEwMAorCisgICAgZG90M1N0YXRzVGFibGUgaGFzIGJ1Z3MgOi0oCisKK2NvbW1pdCBkZmZhY2Y2ZmEwNzU1ZTE3MDBjYmFjMjViODQ0MTg1YWJkODA3YTBhCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgTWFyIDIgMjE6Mzg6MTAgMjAxMiArMDEwMAorCisgICAgcGFzc3BlcnNpc3QgdGVzdCBuZWVkcyAvdXNyL2Jpbi9wZXJsCisKK2NvbW1pdCA4NzI2OTk1YzdhOGFlZjY3NGM0ZjE2NGIxODcxYzM3YmJkY2RhZDUwCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgTWFyIDIgMjE6MzY6NTggMjAxMiArMDEwMAorCisgICAgZ3JlcCAtdyBmYWlscyB3aXRoIE9wZW5CU0QgYW5kIFNvbGFyaXMgMTAtNjQKKworY29tbWl0IDFlYjQ3NDViMjNjYzNhODM5ODY0ZTdmNmVhMjgzNTViMDU2NmViNjcKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBNYXIgMiAyMTozNTo0OSAyMDEyICswMTAwCisKKyAgICBTb2xhcmlzIG5lZWRzIC91c3IveHBnNC9iaW4vZ3JlcCB0byB1bmRlcnN0YW5kIC1xCisKK2NvbW1pdCA5OTU0YjRiNzQxZmQ4YzYzZDYxMjhiZDA1MjcyOThjOGU0ZTk4OWZjCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgTWFyIDIgMjE6MzQ6NDUgMjAxMiArMDEwMAorCisgICAgTWFrZSBzdXJlIHdlIGhhdmUgdGhlIHByb3BlciBzcmNkaXIgZm9yIG91dC1vZi1zb3VyY2UgYnVpbGRzCisKK2NvbW1pdCA3ODM2OTAwMmJlMjcxMWYwYWE4NzZiNjRhNGUxMGIwOTBjYzI0MWNkCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgTWFyIDIgMjE6MzM6MzEgMjAxMiArMDEwMAorCisgICAgTm90IGFsbCBtYWtlIHZlcnNpb25zIGRlZmluZSAkKFJNKQorCitjb21taXQgOTQyNDViMjlhM2NkYTg5NDc1YzZlYWI1ZDk0OTNjNjY1N2ZmMzhlMworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIE1hciAyIDIxOjI0OjI0IDIwMTIgKzAxMDAKKworICAgIE1ha2UgYXV0b2NvbmYgMi42OCBoYXBweQorCitjb21taXQgNDRhY2Q2YzI4NWZiNTYxNGI0Yzk2MTFiMWFiZGVjYTlkZDI4ZTRiYgorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIE1hciAyIDIxOjEyOjQ3IDIwMTIgKzAxMDAKKworICAgIEZpeCBzcGVsbGluZyBvZiBtaWIgbW9kdWxlIGZzeXNfZ2V0ZnNzdGF0cworCitjb21taXQgMWZhMWZlZTM2OTNmNjdiODIwMjIzODA2YjNkNzNhZmQ0YzUwZWMxOAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgRnJpIE1hciAyIDAxOjM3OjIwIDIwMTIgKzAxMDAKKworICAgIFNpbGVuY2UgYSBjbGFuZyB3YXJuaW5nLgorCitjb21taXQgOTMyNjNiOThhNWRiMzQ0Y2YyYzRkNDg5YzQzOTcxZTdiMjljZGIwMworQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBNYXIgMSAxMzozNzoyMCAyMDEyICswMDAwCisKKyAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucHJlMQorCitjb21taXQgNWExNzU0MjhiOTczZDJlYTg1NTNlMjlmZWNmOTRjZjE1NjZhYTg1OAorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBNYXIgMSAxMTo0ODoxOCAyMDEyICswMDAwCisKKyAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucHJlMQorCitjb21taXQgMzY0Mjc2YTFjNWFhNjZjYWEyM2ViNWI3ZjExMWZkZWI1YWY3MWZhNworQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBNYXIgMSAxMTo0NToxMCAyMDEyICswMDAwCisKKyAgICBtYWtlIGRlcGVuZCBmb3IgNS41LjIucHJlMQorCitjb21taXQgNzM1OTgzNDAxNzJlZmY3NTcyOWE2ZDU3MTkyYjgxNzFkNWJiZjAwZQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBNYXIgMSAxMDo0Mjo1NiAyMDEyICswMDAwCisKKyAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNS4yLnByZTEKKworY29tbWl0IGYzMjE0NDAyNjcyY2ExOTlmZDUzMWU2NjEyMmJmOTZjNGQ5YTRlYjcKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgTWFyIDEgMTA6NDI6MzkgMjAxMiArMDAwMAorCisgICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKKworY29tbWl0IDJlNzRhY2I2ZjE5ZTQ3MjljZWRlMGFiNDNlOTMxOTYxY2IyM2FhZWEKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFRodSBNYXIgMSAwOToxODozOSAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBCdWcgMzE1Mjg0MTogRG8gbm90IGluc3RhbGwgdGhlIHV0aWxfZnVuY3Mgc3ViaGVhZGVycyB0aGF0IHdlcmUgcmVtb3ZlZCBpbiA1LjcKKworY29tbWl0IGI3MTA5NjQ2Yjk1YTcwNzEzZDFhZDk5MWQ0MWJjY2Q1N2MwYmIzZWIKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFRodSBNYXIgMSAwODo0ODo0OCAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBCdWcgMzE1Mjg0MTogSW5zdGFsbCB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMgaW50cm9kdWNlZCBpbiA1LjYKKworY29tbWl0IDQzMmNiYjdhNTUwMWFiOTBkNjZkMGE4M2U3MzFlNzM0M2JjMDRiMzcKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBGZWIgMjUgMTA6MTM6MTUgMjAxMiArMDEwMAorCisgICAgQ29ycmVjdCB0eXBvcworCitjb21taXQgNmE2YzliYmM3NTg0ZjE5NmExMTg1Y2MxOTM1MjA0ZjEyMDY4MTFlZAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgV2VkIEZlYiAyOSAwODo1NTozNSAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBCdWcgMzE1Mjg0MTogSW5zdGFsbCB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMKKworY29tbWl0IGQ1MTVlMmE2ZTRjMmExYzRkODQ3MzRjYzdiMmQwYjJmYzVhODk0YWQKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgRmViIDI4IDE1OjU2OjIxIDIwMTIgKzAwMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDg3OTE5OiBGaXggY29tcGlsYXRpb24gd2hlbiBjYWNoaW5nIGlzIGRpc2FibGVkCisKK2NvbW1pdCBhZjgzNjhlZDg4OThhNzhkMDg2OGI0N2FmNDZiYzlkYjA3ZDFjNzY0CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIEZlYiAyOCAxNTo1MDo1NiAyMDEyICswMDAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzNDE0NzczOiBFbmNvZGUgaW50ZWdlciB2YWx1ZSB1c2luZyBBU05fSU5URUdFUgorCitjb21taXQgMTllMjcxNTgwN2ZlMDZmZDBiYWVkZjg4MTY1MDExYWVlOTMzZTc1NQorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBGZWIgMjggMTQ6MDU6MzQgMjAxMiArMDAwMAorCisgICAgQ0hBTkdFUzogbWFuOiBCVUdTOiAzNDkwNzA4OiBDbGFyaWZ5IHVzZSBvZiBjb21tb24gY29tbWFuZC1saW5lIG9wdGlvbnMKKworY29tbWl0IDY1Zjc5NjJmOTMyYzliNzVjNWJiYmIwNDdkMWUyNmFlNjA5NzhlNTMKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgRmViIDI4IDEyOjIzOjM0IDIwMTIgKzAwMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAzNDg5NjMxOiBGaXggaW5jb3JyZWN0IGhhbmRsaW5nIG9mIFVDRCBtb25pdG9yaW5nIGZsYWcKKworY29tbWl0IGFjMTY2MDUxYjZhMDkyZGQ0YTU5NDMyNmVjODVlMmY2OTliNjI1NDcKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgRmViIDI4IDExOjU3OjQxIDIwMTIgKzAwMDAKKworICAgIENIQU5HRVM6IHRlc3Rpbmc6IEJVR1M6IDM0NzQ1OTA6IERvbid0IG1hdGNoIHVuZGVyc2NvcmVzIHdpdGhpbiB0aGUgc291cmNlIHJvb3QgZmlsZW5hbWUKKworY29tbWl0IDg3OWJmNzA3OWQzNGZhNDZmNmZjZjU0YTAxYzg1MDBiZWFlY2U1OWEKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgRmViIDI4IDEwOjQ0OjQxIDIwMTIgKzAwMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAzNDYwMzY0OiBGaXggdXNlIG9mIGJsb2NrIGZhY3RvciB3aGVuIGRldGVjdGluZyBlcnJvciBjb25kaXRpb25zCisKK2NvbW1pdCAwMzRmMWM1NzJmNjgzZWE0Mjg1ODMwNzQ0NzFlNWQ1ZDEzYjUxODM3CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIEZlYiAyOCAxMDoyMjoyMCAyMDEyICswMDAwCisKKyAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbmZpZ3VyZWQgdXNpbmcgLS1lbmFibGUtcmVhZC1vbmx5CisKK2NvbW1pdCAzNjQyM2UyMTBiZmI2NWVmMTIxYzZhNjZhZWM0MzhjN2MyMzdkM2RmCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIEZlYiAyOCAxMDowMzoyNSAyMDEyICswMDAwCisKKyAgICBDSEFOR0VTOiBCVUc6IDM0NTQxNjg6IGNvbmZpZ3VyZTogRml4IGJ1aWxkaW5nIHdpdGggLS1lbmFibGUtcmVhZC1vbmx5CisKK2NvbW1pdCBlZWQwYmNiYzQzZmVhMTgyNTlmMGY2M2IyMDgxYjZkMTA1MzVhMDUyCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIEZlYiAyOCAwOToyNzoxMSAyMDEyICswMDAwCisKKyAgICBTa2lwIFNFVC1iYXNlZCBiYWJ5LXN0ZXBzIHdoZW4gY29tcGlsZWQgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQuCisgICAgSW5zcGlyZWQgYnkgYnVnICMzNDU0MTY4CisKK2NvbW1pdCBlYzZhMjMwMzBlNWEyMDcyYzE5YzE4YzFkOWMxMjQzODdkYTU2YjdiCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gRmViIDI3IDE4OjQyOjU4IDIwMTIgKzAwMDAKKworICAgIEFkZCAtbHJ0IHRvIE5FVFNOTVBMSUJTIHN1Y2ggdGhhdCBjbG9ja19nZXR0aW1lKCkgY2FuIGJlIGZvdW5kCisKK2NvbW1pdCBmMTMzMjA1MDAyOTRiYjI0MGY2M2M2ZGQ3ZDJlOWEyMjA4ZWI3NDBkCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgTW9uIEZlYiAyNyAxNjo1Mjo1MSAyMDEyICswMDAwCisKKyAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbXBpbGVkIHVzaW5nIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAorCitjb21taXQgYzQyNzZiNjIzMmMyOTE0NWMwMzk4ODRlNmI1YTZiNmRhNGI5MzgzNworQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIE1vbiBGZWIgMjcgMTU6NTQ6NDUgMjAxMiArMDAwMAorCisgICAgT21pdCBTRVQtcmVsYXRlZCBjb2RlIHdoZW4gY29tcGlsaW5nIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0IChpbnNwaXJlZCBieSBwYXRjaCAjMzQyNDkzMCkKKworY29tbWl0IDAxYzkzMGVkY2MyNTcwMGQ2YjVmYjAzNzZmNTVhMjY0MjVlMTNmYjAKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBNb24gRmViIDI3IDE1OjE3OjIyIDIwMTIgKzAwMDAKKworICAgIE9taXQgU0VULXJlbGF0ZWQgY29kZSB3aGVuIGNvbXBpbGluZyB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAorICAgIChpbnNwaXJlZCBieSBwYXRjaCAjMzQyNDkzMCkKKworY29tbWl0IDk0ODRkODMyMDNjNGUyZDgyMDQxNmJlNjY1ZmE4MzNhYTcwNDQ0ZDIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBGZWIgMjQgMTQ6MDA6MzIgMjAxMiArMDEwMAorCisgICAgUmV3b3JrIGNvbW1pdCBiNGExOTUwNWEwNTgxNmU5NGUwMWRlOTdiZjk5YWMzN2ZjZGM2ZDIzLgorCitjb21taXQgMmI3ZjEzNDk1MjI4NjM1ZDgxNmU1OGIyMTc0ZGMxMjRkZDBjZjM5ZgorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEZlYiAyNCAwNzo0MzoyMiAyMDEyIC0wODAwCisKKyAgICBzZXQgTUVSR0VfQVVUT0VESVQgYmVmb3JlIG1lcmdpbmcgdG8gYXZvaWQgdGhlIGZ1dHVyZSBnaXQgMS43LjEwIGZvcmNlZCBtc2cKKworY29tbWl0IGUxYjkxMGIwYmU5MzQzNTg2YWU5ZWRiYTZmNDYwNDBhZjMxNWZjZGQKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBGZWIgMjMgMTA6Mjc6NTQgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IGluaXRfYWdlbnQoKSArIGluaXRfa21lbSgpOiBSZXR1cm4gYW4gZXJyb3IgdmFsdWUgaW5zdGVhZCBvZiBpbnZva2luZyBleGl0KCkgaWYgYWNjZXNzIHRvIGtlcm5lbCB2aXJ0dWFsIG1lbW9yeSBpcyBkZW5pZWQKKworY29tbWl0IDQ2M2VlZDIxMjBmOWQxOTFiYzIyNjczNDk2YTQ5ZTgxNzQ2NjRlNGIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBGZWIgMjMgMTA6MDM6MzEgMjAxMiArMDEwMAorCisgICAgUmVtb3ZlIG9ic29sZXRlIHN5bWJvbCBORVRTTk1QX0VYSVRfT05fQkFEX0tMUkVBRAorCitjb21taXQgYzM2YWI3MWE0ZTA5NmYxNmNjNWE1NTUzM2YwODBjOWE5NDAwOTkxNAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEZlYiAyMyAwODo1Mzo1NiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBGcmVlQlNEOiBzbm1wZCArIGFwcHM6IFNlbmRpbmcgVURQIHBhY2tldHMgd29ya3MgYWdhaW4gZm9yIG5vbi1yb290IHVzZXJzCisKK2NvbW1pdCBlZGViZGRiYTkzMGY4YjE0NzJmYTBiZDIwZmM0MTNlZjhjZjQ2NGEyCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgRmViIDIxIDExOjMxOjQ2IDIwMTIgKzAxMDAKKworICAgIHRlc3RpbmcvUlVOVEVTVFM6IEZpeCBhIGJhc2hpc20KKworY29tbWl0IGI0YTE5NTA1YTA1ODE2ZTk0ZTAxZGU5N2JmOTlhYzM3ZmNkYzZkMjMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBGZWIgMjAgMTY6NTg6NDcgMjAxMiArMDEwMAorCisgICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0ICVsZCB2ZXJzdXMgdGltZV90IG9uIHN5c3RlbXMgd2hlcmUgdGltZV90IGlzIGEgc3lub255bSBmb3IgbG9uZyBsb25nIGluc3RlYWQgb2YgbG9uZy4KKworY29tbWl0IGQ4OTc4ZWNjODIxMWJlN2MxZTc5MDVmMWUyMTViYjA2ZGVkMjY2YjYKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBGZWIgMjEgMTI6MzI6MjUgMjAxMiArMDEwMAorCisgICAgRml4IHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jIGZpbGUgaGVhZGVyCisKK2NvbW1pdCBhYTc2NmQxOTZlNTI4N2Y2Y2E3OWI1OGEzNDViMDI0MjYwYWJhMzU0CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gRmViIDIwIDE3OjA3OjEzIDIwMTIgKzAxMDAKKworICAgIElGLU1JQjogZG8gbm90IHRyaWdnZXIgdW5kZWZpbmVkIGJlaGF2aW9yICg+PiAzMiBvZiBhIDMyLWJpdCB2YXJpYWJsZSkgd2hlbiB1cGRhdGluZyBhIGNvdW50ZXIgYW5kIGlmaV9pcGFja2V0cyBpcyBhIDMyLWJpdCB2YXJpYWJsZQorCitjb21taXQgYzNmYjZkZDllNmI5OWU5NTQyNDkzMTg4OTg3ODcxZmM1MDE3Y2IzYworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEZlYiAyMyAwOTo0NTo0NSAyMDEyICswMTAwCisKKyAgICBGaXggYSBjb21waWxlciB3YXJuaW5nIG9uIHN5c3RlbXMgd2hlcmUgbW9kZV90IGlzIHVuc2lnbmVkCisKK2NvbW1pdCBmOGEzZWYwZDNkNGU1MzAyNzk5MDAxMDEwNDliOGRlOThhNDRhNmZiCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gRmViIDYgMTQ6NDg6NTIgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYiArIHNubXBkICsgc25tcHdhbGs6IEF2b2lkIHRoYXQgc3lzdGVtIGNsb2NrIGNoYW5nZXMgKGUuZy4gYnkgbnRwZCkgYWZmZWN0IGNvZGUgdGhhdCBuZWVkcyByZWxhdGl2ZSB0aW1lCisgICAgQ0hBTkdFUzogc25tcGQ6IE1ha2Ugc3VyZSB0aGF0IHRoZSByYW5nZSBvZiB0aGUgU05NUHYzIHZhcmlhYmxlIHNubXBFbmdpbmVUaW1lIGlzIDAuLjIxNDc0ODM2NDcgb24gYWxsIHN1cHBvcnRlZCBzeXN0ZW1zIGluc3RlYWQgb2YgMC4uNDI5NDk2NzIgb24gc29tZSBzeXN0ZW1zIChpLmUuIHdyYXBhcm91bmQgYWZ0ZXIgNDk3IGRheXMpCisgICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygpLCBuZXRzbm1wX3NldF9tb25vdG9uaWNfbWFya2VyKCksIG5ldHNubXBfcmVhZHlfbW9ub3RvbmljKCksIG5ldHNubXBfZ2V0X2FnZW50X3J1bnRpbWUoKQorICAgIENIQU5HRVM6IHNubXBsaWI6IERlcHJlY2F0ZSBhdGltZV9kaWZmKCksIGF0aW1lX25ld01hcmtlcigpLCBhdGltZV9yZWFkeSgpLCBhdGltZV9zZXRNYXJrZXIoKSwgbWFya2VyX3R0aWNrcygpLCBuZXRzbm1wX21hcmtlcl91cHRpbWUoKSwgbmV0c25tcF90aW1ldmFsX3VwdGltZSgpLCB0aW1ldmFsX3R0aWNrcygpLCB1YXRpbWVfZGlmZigpLCB1YXRpbWVfaGRpZmYoKSBhbmQgdWF0aW1lX3JlYWR5KCkuCisgICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlIHRoZSBuYW1lcyBvZiB0aGUgc3RydWN0IHRpbWV2YWwgbWVtYmVycyBvZiBkYXRhIHN0cnVjdHVyZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc3RvcmUgYSB3YWxsIGNsb2NrIHRpbWUgYnV0IHRoYXQgZG8gbm93IGNvbnRhaW4gYSBtb25vdG9uaWMgY2xvY2sgdmFsdWUKKworY29tbWl0IGMxOTc2MGYzMzMzYzkyZmFjNWQ1MGU5NzY4Y2RmOTM5MjE4YmM0ODcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBGZWIgMTUgMDk6NDU6MDMgMjAxMiArMDEwMAorCisgICAgc25tcGxpYi9zbm1wdjMuYzogRml4IHNvdXJjZSBjb2RlIGluZGVudGF0aW9uCisKK2NvbW1pdCBhNmRiMjM5OTQ1ZTE5NWRlNWE5MGZhMTgzNzAwYjI3YTZlY2IyOGQzCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgRmViIDcgMDA6MTE6MTQgMjAxMiArMDEwMAorCisgICAgRml4IHBvc3NpYmxlIG1lbW9yeSBsZWFrIGZyb20gcmVjZW50IGRlY2xhcmF0aW9ucyBwYXRjaAorCitjb21taXQgMGZiYmI5YTllMjkwNmE3YWY5NTY5NTcwNjFkNDg1ODc0NDYyYWVhOQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEZlYiA2IDIwOjQzOjA0IDIwMTIgKzAxMDAKKworICAgIERvIG5vdCBtaXggZGVjbGFyYXRpb25zIGFuZCBzdGF0ZW1lbnRzCisKK2NvbW1pdCBmMzA4ZDViYWZiMDVkNzhlZDQwMzBjNGVjZmYzMjRiNmNiZGE2ODBmCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gRmViIDYgMTU6MjU6MzAgMjAxMiArMDEwMAorCisgICAgRml4IHR3byBjb21waWxlciB3YXJuaW5ncyBpbiBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYworCitjb21taXQgNDZmMGZjMWI3ZmMyNmEyMjU3NjNiYzY1Y2NhNTIwYTFjNTlmMDI1MQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEZlYiA2IDIwOjU0OjMyIDIwMTIgKzAxMDAKKworICAgIHNlbmRtc2cgZG9lcyBub3QgbGlrZSBJUF9TRU5EU1JDQUREUiBpZiBhZGRyIGlzIElOQUREUl9BTlkKKworY29tbWl0IGRlYmFjNDk4ZmU4NDEwMTEwMTA3YTJmZTY0ZjhhZmI3NDhlZGFhMDcKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gRmViIDYgMTY6NDg6MDkgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogYWRkZWQgT0NGUzIgKE9yYWNsZSBDbHVzdGVyIEZTKSB0byBoclN0b3JhZ2VUYWJsZSBhbmQgaHJGU1RhYmxlCisKK2NvbW1pdCBmYWZjOTljZDg5ZTczZWM3ZTAwYmY3MzYwZDBiNGZhNjE5NDRhNGY0CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gRmViIDYgMTE6MTg6MzQgMjAxMiArMDEwMAorCisgICAgU2ltcGxpZnkgY2FsY3VsYXRlX3RpbWVfZGlmZigpIGFuZCBjYWxjdWxhdGVfc2VjdGltZV9kaWZmKCkKKworY29tbWl0IDdhZjIwMTNkZThiZjFiMzc5YzA3NmRiNGUxMDQ1MDhlMTc4NzRkM2UKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBGZWIgNiAxNDo1NTo1OCAyMDEyICswMTAwCisKKyAgICBGaXggb3JkZXIgb2YgZmVhdHVyZSAjaWZuZGVmIGFuZCBEb3h5Z2VuIGNvbW1lbnQgYmxvY2sKKworY29tbWl0IGJiZDY3ZjYzNTMwZjVlZjBiZmM5NDhmYzU4ZGZlNmE5M2Y4Zjg2NzkKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBGZWIgNiAxNToyNTozMCAyMDEyICswMTAwCisKKyAgICBGaXggdHdvIGNvbXBpbGVyIHdhcm5pbmdzIGluIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jCisKK2NvbW1pdCA0MmE2NmFlZmYyNWI5ZTllZjYzNWE0MDRhZDJmNTIxMmY5ZThjZjBkCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gRmViIDYgMTQ6NDc6NTQgMjAxMiArMDEwMAorCisgICAgUmVuYW1lIHR3byBmdW5jdGlvbiBhcmd1bWVudHMKKworY29tbWl0IDNmZTcyYjNiOTliN2U0YjJiOTgyMzYzZGZjNGYyZDhkMTNmNDA1OTIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBGZWIgNiAxMzo0OToyMiAyMDEyICswMTAwCisKKyAgICBDb252ZXJ0IHNubXBfc2VsZWN0X2luZm8oKSBkb2N1bWVudGF0aW9uIHRvIERveHlnZW4gZm9ybWF0CisKK2NvbW1pdCBlOWRiMjY2YWU0OGQwNWE3YTZjYjVkNzFiNGJkZWE3YWQ4MDhlZjVlCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gRmViIDYgMTE6MTc6NTcgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBuZXRzbm1wX2dldF9uZXh0X2FsYXJtX3RpbWUoKQorCitjb21taXQgZDA4MDQ0Y2I5ZTU3MDJmYmY1NDllMTQ0MjVmNDI3OTQyNTlkOGEyMQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIEZlYiA2IDA5OjM4OjA3IDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBBZGQgbmV0c25tcF9nZXRfYWdlbnRfcnVudGltZSgpCisKK2NvbW1pdCBhMDVjMjdjMjcxMWNiNDE1ODJhM2I0YzMxZTM4YjBlOTM1MzBiNjJkCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gRmViIDYgMTQ6NTE6MzMgMjAxMiArMDEwMAorCisgICAgRml4IHNwZWxsaW5nIGluIGEgc291cmNlIGNvZGUgY29tbWVudAorCitjb21taXQgOTEwZDdiMGQ5OTE4MzYwOWI5NTI5YjA0YzNmMjkzMzBlYjY2MTAyMQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIEZlYiA2IDE0OjM4OjEyIDIwMTIgKzAxMDAKKworICAgIFJlcGxhY2UgbmV0c25tcF90aW1ldmFsX3VwdGltZSgpIGJ5IG5ldHNubXBfZ2V0X2FnZW50X3VwdGltZSgpCisKK2NvbW1pdCA0M2E4M2Y2YzZhOTZjYzIzMTZiNzBlZWNhY2YxMjdlYjY5MTNjN2E3CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gRmViIDYgMTE6MTk6MTUgMjAxMiArMDEwMAorCisgICAgVXNlIHRoZSBhc3NpZ25tZW50IG9wZXJhdG9yIGluc3RlYWQgb2YgbWVtY3B5KCkgZm9yIGNvcHlpbmcgc3RydWN0IHRpbWV2YWwKKworY29tbWl0IDJmZTU3OWVmYjFjYjNhNzRmODI4MDNjYTMyMzkyOGY2YjhlNGI1YzAKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBGZWIgMyAxNDowNDowMiAyMDEyICswMTAwCisKKyAgICBNYWtlIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyBidWlsZCBhZ2FpbiBvbiBub24tTGludXggc3lzdGVtcy4KKyAgICAKKyAgICBTZWUgYWxzbyBjb21taXQgMzQ1YTFlNDI1NDgxMmNiOWVkYzFkMjc0NDkxYjc2NjgxYTlkYmExZS4KKworY29tbWl0IDg4MWRlNmFiNzM1NTI3N2E1YzExNmEwMDhmYmU1MTMyOTNiMDUwMzkKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBGZWIgMyAxMDowODoyMSAyMDEyICswMTAwCisKKyAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHRoZSBSbW9uIE1JQiBpbXBsZW1lbnRhdGlvbgorCitjb21taXQgNDYyOTkzM2MwZDNiM2Y5ZjRiYTU4MzUzNGY3OWEzN2ZiOTYzMzgxNworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEZlYiAyIDIwOjA1OjMxIDIwMTIgKzAwMDAKKworICAgIE1vcmUgY29tcGlsZXIgd2FybmluZyBmaXhlcworCitjb21taXQgZTliNWEzZGVlNmY5YWZhYjhiOTBhMjkzOTIwNDA2MzJiMDc1YWQ3YQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEZlYiAyIDE2OjU2OjU1IDIwMTIgKzAxMDAKKworICAgIFVzZSBTTk1QX01JTigpIGluc3RlYWQgb2YgbWluKCkKKworY29tbWl0IGFlNDUyYzc3YjQxMTEzOWQ2YjU4MDBmZmNmODhkNDhlOWI0NzkyYTgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBGZWIgMiAxNToyMzozOCAyMDEyICswMTAwCisKKyAgICBSZXN0b3JlIGNvbW1pdCBkYmI4Nzk1YTdkZjU5NWYwNjAzZjJlYzYxNzA0Nzk5ZjRjNDgyNjY3LgorCitjb21taXQgYzdkMTFmYTAwZjk5OTVkZGI5ZmUzZDQ5OTRhM2U5NzkwZGEyZTE4OQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEZlYiAyIDE1OjE4OjQwIDIwMTIgKzAxMDAKKworICAgIFJlc3RvcmUgY29tbWl0IGRiYjg3OTVhN2RmNTk1ZjA2MDNmMmVjNjE3MDQ3OTlmNGM0ODI2NjcgcGFydGlhbGx5LgorCitjb21taXQgMDBmZDYyNzIwZWM0NTRmNWE2OTBkZTRmZWJhMDgyMjNjZmIyYzNmOAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEZlYiAyIDE0OjQ4OjQ0IDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXB0cmFwZDogQXZvaWQgY3Jhc2ggZHVyaW5nIHNodXRkb3duIGR1ZSB0byBpbnZva2luZyBwZXJsX2Rlc3RydWN0KE5VTEwpCisKK2NvbW1pdCBkOWUyMjlkODFhYmVhZjE5MWVmMmNjYjA3Nzg0Mjg4NWMyMzBkNjIyCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgRmViIDIgMTQ6NDc6NDEgMjAxMiArMDEwMAorCisgICAgUmVtb3ZlIGEgc3VwZXJmbHVvdXMgZGVjbGFyYXRpb24KKworY29tbWl0IDFlMmUyYWY2Y2FlODMwZjM4MWU4N2EyNDRkMDI5ZWI4NmJmM2ZjY2UKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBGZWIgMiAxMzoyMDozNyAyMDEyICswMTAwCisKKyAgICBwZXJsL1NOTVAvZXhhbXBsZXMvcGluZ21pYi5wbDogQWRkIGVycm9yIGNoZWNraW5nCisKK2NvbW1pdCAyNDFhMTQxZTMxZjE2ODRmYzZjZjcwY2M0YTAwY2NlNjM2ZmQzNTI2CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgRmViIDIgMTE6Mjg6MzcgMjAxMiArMDEwMAorCisgICAgTWFrZSBjb25maWd1cmUtdGltZSBFVlBfTURfQ1RYX2NyZWF0ZSgpIGRldGVjdGlvbiB3b3JrIG9uIHRoZSA1LjQgYnJhbmNoLgorICAgIAorICAgIFNlZSBhbHNvIGNvbW1pdCA0NmVhYzAyZTlhMjdiZjRmMzA2OGU3OTVjYWI4OTFmMDVhODQ4ODcwLgorCitjb21taXQgNmQ5ZDE0ZmVhYWEyZDBmZWM2OGI0ZDE1ODk0NGQzMmNiMDRmZjFiYworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEZlYiAyIDExOjEyOjAwIDIwMTIgKzAxMDAKKworICAgIFJldmVydCB0aGUgY2hhbmdlcyB0aGF0IGJyZWFrIHRoZSBidWlsZCBvbiB0aGUgNS40IGJyYW5jaCBmcm9tIGNvbW1pdCBkYmI4Nzk1YTdkZjU5NWYwNjAzZjJlYzYxNzA0Nzk5ZjRjNDgyNjY3LgorCitjb21taXQgOGFiZTQ5ZTMwYzk3Yzg5ODNlODNiNDVhMzVjNzE2ZmU5MWY2NmJlYQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEZlYiAxIDExOjU2OjU4IDIwMTIgKzAxMDAKKworICAgIEZpeCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGluIHRoZSBESVNNQU4gTUlCIGltcGxlbWVudGF0aW9ucy4KKworY29tbWl0IGY5ZmIwYTUzMzM3NWUxNGRjMzcwMDI1YTBiMmZiYzc2MWJmMjdiZTYKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBGZWIgMiAwOTo1NjowMiAyMDEyICswMTAwCisKKyAgICBSZXZlcnQgIkhPU1QtUkVTT1VSQ0VTX01JQjogZml4IGEgY29tcGlsZXIgd2FybmluZyIgYmVjYXVzZSBpdCdzIHdyb25nLgorICAgIAorICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYWE2Yjc5YmMxMjRhN2I3YTg4NWQ3ZTUwMzVhYjA2YWEzZWNlZjYxMy4KKworY29tbWl0IGNhNGE0ZmUyNWVmZDI3MTRmOGYxOTYxYjk3ODU2NjE2NTYzZjQyYzkKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBGZWIgMiAxMDoyMTo0OSAyMDEyICswMTAwCisKKyAgICAuZ2l0aWdub3JlOiBBZGQgcHl0aG9uL2J1aWxkCisKK2NvbW1pdCAxM2FkYTU2NTU4YjQ0ZTI4ZDEzNTVjMGRjZTFkOTIxZjM3NDZkNTQ4CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEphbiAyMCAxNTo1Mzo0OSAyMDEyICswMTAwCisKKyAgICBSZXZlcnQgIlJldmVydCAiRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzIiIgLSB0aGVyZSAqaXMqIE5FVFNOTVBfUFJJbyBpbiBWNS02KyBicmFuY2hlcworICAgIAorICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYWE1MjhiZDIyYzc0OTNjYThkNjdlNjc4ZmJmNjE1Y2EwZjYzZWE2ZC4KKworY29tbWl0IGFhNTI4YmQyMmM3NDkzY2E4ZDY3ZTY3OGZiZjYxNWNhMGY2M2VhNmQKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgSmFuIDIwIDE0OjEzOjE4IDIwMTIgKzAxMDAKKworICAgIFJldmVydCAiRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzIiAtIHRoZXJlIGlzIG5vIE5FVFNOTVBfUFJJbyBpbiBWNS00IG9yIFY1LTUgYnJhbmNoZXMKKyAgICAKKyAgICBUaGlzIHJldmVydHMgY29tbWl0IDM5MGMwMTE0YzhlYzBiZGIyN2IwOGI2Zjc0ZTNmNmVmM2E2Mjk4MWIuCisKK2NvbW1pdCAyZmI5OWJlOWFhODZhNmNhMzQ5Yjg2ZDRlZjhiYzcyNmVkOWYyYTgyCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEphbiAyMCAxNDo1ODozNSAyMDEyICswMTAwCisKKyAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KKworY29tbWl0IGU1YzM1NTg5ZTBiZjQxNmJmZDAzNmJkNDY4ZjQyYWFlYWIyNWU3ODgKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgSmFuIDIwIDE0OjU1OjU2IDIwMTIgKzAxMDAKKworICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgorCitjb21taXQgMzQ1YTFlNDI1NDgxMmNiOWVkYzFkMjc0NDkxYjc2NjgxYTlkYmExZQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6NTE6MjYgMjAxMiArMDEwMAorCisgICAgRml4ZWQgZXJyb3IgaGFuZGxpbmcgaW4gaW5pdF9pY21wKCkuCisKK2NvbW1pdCBjMzAzNTQ5YTU5ZmE4YzJmMjBhOWQ4YmYxZTk4NWZiYzhhYmRlNmE4CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEphbiAyMCAxNTo0NjoyOSAyMDEyICswMTAwCisKKyAgICBSZXdvcmtlZCBfcmVnaXN0ZXJfZXh0ZW5kKCkgZXJyb3IgaGFuZGxpbmcuCisKK2NvbW1pdCA5YzIwZTI3YTcwMjZmYzAzMGRhM2IzMjhiOWEyZTFiNGYzNjY3MGNkCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEphbiAyMCAxNToyMToyOCAyMDEyICswMTAwCisKKyAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KKworY29tbWl0IDIyZmQwYmZjMmRmMGUxZjYwMjBkYzNjNTBhNzUzZGRmMjhhNDU5OWMKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgSmFuIDIwIDE1OjIwOjIyIDIwMTIgKzAxMDAKKworICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgorCitjb21taXQgNWQ2MWU1N2JhZjU4MGM3ODI1MmMwYWJiMDA5OGMwN2JiMDVhZjE3YworQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MTc6MDUgMjAxMiArMDEwMAorCisgICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCisKK2NvbW1pdCAzYzNlZWFlODBkNzk2ZjI3NTk3YzkwMWU3ZmYyMDQ2Yzc2OWVmNGI4CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEphbiAyMCAxNTowODowOSAyMDEyICswMTAwCisKKyAgICBNYXJrIHJvd3JlcV9jdHggYXMgZnJlZWQgc28gbmV4dCBpdGVyYXRpb24gYWxsb2NhdGVzIG5ldyBvbmUgaW5zdGVhZCBvZiByZXVzaW5nIHRoZSBmcmVlZCBvbmUuCisKK2NvbW1pdCBhZjlhYmQ1M2MyMzM3YzkwYTY5MWE3YjA0NGZmM2Y5N2MxMDAzMTYxCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEphbiAyMCAxNTowNToxMCAyMDEyICswMTAwCisKKyAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KKworY29tbWl0IGNmOTQ2NWY1NDE4MWU2MmUyMWE5YjEwMjE5MTMxMTA3YTNkMmViZjYKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgSmFuIDIwIDE1OjA0OjA2IDIwMTIgKzAxMDAKKworICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgorCitjb21taXQgNzg3MWYyYjA5YjhiNTJmMzRhOWU1Nzc4NDI2NjQ1OTA1MzE2NWJjYgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDI6NTAgMjAxMiArMDEwMAorCisgICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCisKK2NvbW1pdCA3YTM3ZjMzZDMxMGM5NTk4NjA3YmMzMjNkOWJkYmY5MWFhZjcyYzk1CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEphbiAyMCAxNTowMDo1MSAyMDEyICswMTAwCisKKyAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KKworY29tbWl0IDNlNDVmNzAyNjI0OWU0NTM1MGVkYWFjODUzMzc0MjNhYTBlOTVkOGIKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgSmFuIDIwIDE0OjEzOjE4IDIwMTIgKzAxMDAKKworICAgIFJldmVydCAiRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzIiAtIHRoZXJlIGlzIG5vIE5FVFNOTVBfUFJJbyBpbiBWNS00IG9yIFY1LTUgYnJhbmNoZXMKKyAgICAKKyAgICBUaGlzIHJldmVydHMgY29tbWl0IDM5MGMwMTE0YzhlYzBiZGIyN2IwOGI2Zjc0ZTNmNmVmM2E2Mjk4MWIuCisKK2NvbW1pdCA2MTkzNjc2MmU2NDFjMThkYjc1YWE1MTI1YTMzZTc3NmM2NzdhZGM1CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIEphbiAyMCAxMToxMzozOSAyMDEyICswMTAwCisKKyAgICBGaXhlZCBmcmVlaW5nIHJlZ2luZm8gdHdpY2Ugb24gZXJyb3IgaW4gYSB0ZW1wbGF0ZSBhbmQgYWxsIGl0cyBpbnN0YW5jZXMuCisKK2NvbW1pdCA0OTY0Mzc0MzA0MTVmYmFmZWIxY2NkNDc3NGYxY2EwMGQ2MjdlYTFmCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgSmFuIDIwIDExOjA0OjEzIDIwMTIgKzAxMDAKKworICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IEZpeCBjb21waWxlciB3YXJuaW5ncyBpbnRyb2R1Y2VkIG9uIFY1LjYgYnJhbmNoCisKK2NvbW1pdCA1YjRhMjRjZGNlZTFiYzNkODI2MzNjY2FmZWI5NmZjZTk1MzQ5YzU5CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgSmFuIDIwIDA5OjIyOjI3IDIwMTIgKzAxMDAKKworICAgIHVuaXQgdGVzdHM6IGZpeCBhIDY0LWJpdCBjb21waWxlciB3YXJuaW5nCisKK2NvbW1pdCBjYmYxYzkxYmFmNzE5MWJlNWZhMjdkODFiY2Y4NzE0MzMxYTJjMTJmCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgSmFuIDIwIDA5OjIwOjQyIDIwMTIgKzAxMDAKKworICAgIFVzZSBzbm1wVGFyZ2V0UGFyYW1UYWJsZV9kaXNwb3NlKCkgdG8gZnJlZSBhIHN0cnVjdCB0YXJnZXRQYXJhbVRhYmxlX3N0cnVjdC4KKyAgICAKKyAgICBGaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdCBkYmYyNmEwNWEwNGVmMjRjNDczNDZlNWFkZGE0OGUzMzg0OThlNzFmLgorCitjb21taXQgYWE2Yjc5YmMxMjRhN2I3YTg4NWQ3ZTUwMzVhYjA2YWEzZWNlZjYxMworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIEphbiAyMCAwOToyMDozMSAyMDEyICswMTAwCisKKyAgICBIT1NULVJFU09VUkNFU19NSUI6IGZpeCBhIGNvbXBpbGVyIHdhcm5pbmcKKworY29tbWl0IDNhNzZiNDNlMTFmZmZhZGE2MzJmY2NiODQ4YWI1MDBlODc2YWQ0OGIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBKYW4gMTggMTY6MjE6MDUgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogcHl0aG9uOiBBdm9pZCB0aGF0IGFuIFNOTVAgc2V0IHdpdGggVXNlRW51bXMgZW5hYmxlZCBjYXVzZXMgYSBzZWdtZW50YXRpb24gZmF1bHQKKworY29tbWl0IDg0ZGVjOWZhOTJiMGFhMmQ1OGViNzAyMDMzMGY0Zjk4ZTUxNTQzMjEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBKYW4gMTggMTQ6Mzg6MjEgMjAxMiArMDEwMAorCisgICAgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogRml4IG1vc3QgY29tcGlsZXIgd2FybmluZ3MKKworY29tbWl0IDM4Y2YyMThjM2YxYTcyNzc4NmUyMjdhNWQzZmIxODZmZDBmMWExNWYKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDE5IDE0OjUwOjEzIDIwMTIgKzAxMDAKKworICAgIEZpeCBhIHR5cG8KKworY29tbWl0IDQ1NDEyMjI0NDEyMmJmZGI2ZjY3Y2FiMzEyNTZkN2I0NjM3MmU5ZTEKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDE5IDE0OjMwOjE4IDIwMTIgKzAxMDAKKworICAgIEZyZWUgdG1TdGF0ZVJlZiBvbiBlcnJvcnMuCisKK2NvbW1pdCAwMTE5MDIyZGFhNTljNzNiZmVjMGRhMjM4NmQwNjI4ZjE0ZTZkYWI3CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEphbiAxOSAxNDowOToxMiAyMDEyICswMTAwCisKKyAgICBGcmVlIGZpbmdlcnByaW50IHdoZW4gaXQncyBub3QgbmVlZGVkLgorCitjb21taXQgMGU4NGNkMzAzYTA4MjY3ZGVjNzhmNmQ4MWM5YmIwN2UzZDgzYTExZgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTkgMTM6NDg6MjYgMjAxMiArMDEwMAorCisgICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgorCitjb21taXQgNjNkYzg0NmE3OTQ5Y2U2OTdiM2UyOGM1NDNkYzExMDVlNjNhMjI1MAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTkgMTM6MDg6MjggMjAxMiArMDEwMAorCisgICAgRnJlZSBjZXJ0aWZpY2F0ZSBmaW5nZXJwcmludC4KKworY29tbWl0IGNlMWYyODRhNjNlYjgxNjQ0YjNlMzI2MDZjYmUzOWI2N2UxZGZmMmEKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDE5IDE0OjM3OjA5IDIwMTIgKzAxMDAKKworICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KKworY29tbWl0IDdlMjE0MTNjYTZmMmVmZDdhM2FmYjYyYzYyYjY0NDg4MWI4YmQxZTcKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDE5IDEzOjQ2OjMwIDIwMTIgKzAxMDAKKworICAgIFByb3Blcmx5IGFsbG9jYXRlIGFuZCBmcmVlIGVuZ2luZUlELgorCitjb21taXQgMzRjOTYyODgyNjA3YzM2MzhhMmZhMjVhMmFjNTMxNDkyZDcxYzc4NworQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTkgMTM6Mzc6MjUgMjAxMiArMDEwMAorCisgICAgRnJlZSBsb2NhbGx5IGFsbG9jYXRlZCB0bVN0YXRlUmVmLgorCitjb21taXQgZjU3YWU1MzFkYzU2NThhYmNkNjViMTYyNzYxNTUyNTIzOGQxNmQyZAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTkgMTM6MjA6MjQgMjAxMiArMDEwMAorCisgICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgorCitjb21taXQgNTM2YmM1NzU1NmMzMTQxNTYxZWE0YTE5NDgxMGIxNjI5MGE2OTFlZQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTkgMTM6MTU6NDcgMjAxMiArMDEwMAorCisgICAgQWRkZWQgY2hlY2sgaWYgdGhlIGZ1bmN0aW9uIGFjdHVhbGx5IGRvZXMgc29tZXRoaW5nLgorCitjb21taXQgYTA3NzdkMzA3ZGJjYWYyMTllZTAxODRhMGZiYWI5ZDRlNWQ2YWEwYgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTkgMTM6MDE6NDUgMjAxMiArMDEwMAorCisgICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgorCitjb21taXQgOGI5N2E3MWM4ZTc5NTk0MjhlYjRkNGU4ZDkwZTkwOTZkNDNmZjA5ZgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTkgMTI6NTc6MjYgMjAxMiArMDEwMAorCisgICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgorCitjb21taXQgMmMxNTA3YzIyMDMwNTQ5YWU2NjBjMGUyMTFmYmRjNWM3NWVjNWM1NworQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTkgMTI6NTM6NDcgMjAxMiArMDEwMAorCisgICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgorCitjb21taXQgNjVmMmI3YmNkNGZlMDM5MDZhYTFhMTE1YWI2MGE4OWI4YWU5MzNkNQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTkgMTI6NTE6MzYgMjAxMiArMDEwMAorCisgICAgQ2xvc2Ugb3BlbiBmaWxlcyBvbiBlcnJvci4KKworY29tbWl0IDBlNTJlNGY2NmQ0NDc2NmJlYTM3NDczNTU2Yzc4ZTUyMTliOTU0NjEKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDE4IDE1OjQ1OjMzIDIwMTIgKzAxMDAKKworICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KKworY29tbWl0IGRiZjI2YTA1YTA0ZWYyNGM0NzM0NmU1YWRkYTQ4ZTMzODQ5OGU3MWYKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDE4IDE1OjQyOjE3IDIwMTIgKzAxMDAKKworICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KKworY29tbWl0IDc0OGRhODRiMWZkNjU0ZTMzOGJjNzAxZThmOWU1ZGEyMjkxODdmMWMKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDE4IDE1OjMyOjA0IDIwMTIgKzAxMDAKKworICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KKworY29tbWl0IGViMjE3MTQ2ZmQ1NDAzNmVhNDIwMmJmZWY3OGJiZjc3NGQ3ZTM4MmQKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDE4IDE1OjIzOjEwIDIwMTIgKzAxMDAKKworICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KKworY29tbWl0IDliYTM4ZWVjNjYxMzhlYzFmNjEzZWE4ZDA0ZTE1ODEzMGM3MTIxYmMKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDE4IDE1OjE4OjU1IDIwMTIgKzAxMDAKKworICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KKworY29tbWl0IGQ5ZDkzOGQzMDE4YzI3ZjUzMjc3YmM1ZTU5NTc4NTAwNDkwYzFkMDkKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDE4IDE1OjE2OjM4IDIwMTIgKzAxMDAKKworICAgIENsb3NlIG9wZW4gZmlsZSBvbiBlcnJvci4KKworY29tbWl0IGQ1ZTgxN2Q1YmQ1MThkOWFjNmEwZDYwZTBlMTQxZGQ2NGYyN2FkMTkKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDE4IDE1OjE0OjEyIDIwMTIgKzAxMDAKKworICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KKworY29tbWl0IDJhZTY4ZjA1OWRmOWQ3NGIwNzRkMTJmNTljMTg0NzQ2NmVkNTc2Y2QKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDE4IDE1OjAzOjE3IDIwMTIgKzAxMDAKKworICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KKworY29tbWl0IGEwMGYzZDQ2MTEyMWI1NDVhZWQ3MmFjMTJiMjQzODc5MWRjZmM0YmEKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDE4IDE0OjU4OjM5IDIwMTIgKzAxMDAKKworICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KKworY29tbWl0IDU5ODg0YmI0ZDM1YWQxMzc0N2ZmYTY3MjM0MzZkY2E1ODdhOWFiNzcKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDE3IDE3OjA5OjEyIDIwMTIgKzAxMDAKKworICAgIEluIGFib3ZlIGNvZGUsIG9sZW5ndGggaXMgY2hlY2tlZCwgc28gbGV0J3MgY2hlY2sgaXQgYWxzbyBoZXJlLgorCitjb21taXQgYmE1ZDUyOTJiMDQzOTNiMGM3ZDdkN2VkOTYxMjQxOTI5NDE4YzZlNAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTcgMTc6MDU6MTQgMjAxMiArMDEwMAorCisgICAgRml4ZWQgZGVyZWZlcmVuY2luZyBOVUxMLgorCitjb21taXQgZGEyZDZhNzAyOGExM2I5ZWRmM2E1Yzg0MzE0ZDBmMWZlZWY3NjcxNAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6NDQ6NTYgMjAxMiArMDEwMAorCisgICAgUHJldmVudCBkZXJlZmVyZW5jaW5nIE5VTEwuCisKK2NvbW1pdCBmODgwNTRhOWI2OWI2ZGUyNzRmN2ExNGE1OWI0NzMyM2U1ZTRlNGM2CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxNyAxNjozNzozNSAyMDEyICswMTAwCisKKyAgICBEb24ndCBkZXJlZmVyZW5jZSBjb250ZXh0IGlmIGl0J3MgTlVMTC4KKworY29tbWl0IDdjNGQ0NTllOGYxZjY1MmNjMjA5OGMzZDRjODFkZTkwYTg0ZWQ3MTAKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDE3IDE2OjMwOjA5IDIwMTIgKzAxMDAKKworICAgIERvbid0IGRlZmVyZW5jZSBOVUxMLgorCitjb21taXQgZmMxOWI3ZjMzYjU4NzkyN2QyYTAxZTcyZDIzZDIxYjliMTY5NmFiMworQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MjU6MjYgMjAxMiArMDEwMAorCisgICAgRG9uJ3QgY2xvc2UgTlVMTCBmaWxlLgorCitjb21taXQgNWU5NWNhNjc5MDA3NmI3ODgwNzJhODAxZWU3YzgyOTY5ZDk5NWJjYgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MTc6MDkgMjAxMiArMDEwMAorCisgICAgUHJldmVudCBkZXJlZmVyZW5jaW5nIE5VTEwgd2hlbiBhIHRyYW5zcG9ydCBkb2VzIG5vdCBoYXZlIGZfZm10YWRkci4KKworY29tbWl0IGVlZDZmNWY5YjlhZTU0ZDJjZWFiNjdhZDg1YWRkZTFmNmE4YTIxZDUKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDE3IDE2OjEzOjEzIDIwMTIgKzAxMDAKKworICAgIFByZXZlbnQgZGVyZWZlcmVuY2luZyBOVUxMLgorCitjb21taXQgNDFjZGU2OGI1ZmE0YjM4ZDgxNDUwY2Y5MWUwODJjZGZhODI1ZTdjZgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MTA6MTAgMjAxMiArMDEwMAorCisgICAgQ2hlY2sgaWYgYSByZWdpc3RyYXRpb24gd2FzIHJlYWxseSBmb3VuZC4KKworY29tbWl0IDViNzJhNDA4NTM4NzZhMTg2ZWZjYzAwOTBhNGUzMmMyMzViOWMwNWYKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDE3IDE2OjAzOjU4IDIwMTIgKzAxMDAKKworICAgIERvbid0IGRlcmVmZXJlbmNlIE5VTEwgd2hlbiBkaWZmbGVuIGlzIFNNVVhfTUFYX1BSSU9SSVRZICh3aGljaCBpcyBoaWdobHkgdW5saWtlbHksIGJ1dC4uLikKKworY29tbWl0IGZhNmE5MTJlNDFjNWQwZmQyYTYzNjg5NGU4NmI2NDI2YzA3Mzc1YWIKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDE3IDE1OjM3OjQ0IDIwMTIgKzAxMDAKKworICAgIENoZWNrIGZvciBtaXNzaW5nIHZhbHVlIGluIHNldEV2ZW50LgorCitjb21taXQgNDEwYjcxZGE0MjUzODlmZWNjMjVkMTRmNDlmMjM3NTM1ODE1NzZhZAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTcgMTU6Mjg6NDEgMjAxMiArMDEwMAorCisgICAgRGVyZWZlcmVuY2UgZXJlZyBvbmx5IGlmIGl0IGlzIG5vdCBOVUxMLgorCitjb21taXQgMTg1MjcyZDFhMGI5MTM3NzQxODZmMWI5MTM1YWVhZjYzN2ViZWQ1MgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTcgMTU6MTc6MjEgMjAxMiArMDEwMAorCisgICAgQXMgcGVyIGFib3ZlIGNvZGUsIHRlbXBsYXRlX3YycGR1IGNhbiBiZSBOVUxMLCBzbyBjaGVjayBpdCBiZWZvcmUgZGVyZWZlcmVuY2luZy4KKworY29tbWl0IDQ4ZTVlYWQzZmQyYzJiMzg1ZGY2OTcyYzY3NTI2ZmY2YmRjMzA3NjgKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDE3IDE0OjQyOjIyIDIwMTIgKzAxMDAKKworICAgIFVwZGF0ZWQgbGFzdCBmaXggdG8gbmV3IGVycm9yIHJlcG9ydGluZyBzdHlsZS4KKworY29tbWl0IGYzM2QzMzYxNWQ2ZDg1ZDAwNzM3MjY0NzNjNDE0NmNiY2RmMTFjZWQKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDE3IDE0OjMwOjA3IDIwMTIgKzAxMDAKKworICAgIEZpeGVkIHNpZ3NlZ3Ygd2hlbiBlbXB0eSBjb25maWcgbGluZSBpcyBwYXJzZWQuCisKK2NvbW1pdCBiNWRmMWVlYjQ3ZWQzNTU5YjZmNGQ5ZWNjY2RiMjQyMTI2ZTZjOTkyCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxNyAxNDoxMTo1OCAyMDEyICswMTAwCisKKyAgICBGaXhlZCAoaGlnaGx5IHRoZW9yZXRpY2FsKSBzaWdzZWd2IHdoZW4gc3AtPnNlY3VyaXR5RW5naW5lSUQgaXMgTlVMTC4KKworY29tbWl0IDZmZWVkNjI5YTcxODk5YzExMzA5Njk1OWQ4NTQ5ZGMxMjAxZThmOWEKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDE3IDEzOjQzOjM3IDIwMTIgKzAxMDAKKworICAgIEFkZGVkIE5VTEwgYW5kIGxlbiBjaGVjayBqdXN0IGluIGNhc2Ugc29tZW9uZSBwcm92aWRlcyB2YWx1ZSA9IE5VTEwgYW5kIG5vemVybyBsZW4gKC0+IE5VTEwgaXMgdGhlbiBkZXJlZmVyZW5jZWQpLgorCitjb21taXQgMzU1YzVhYjI2NGFmMmE2MDIwYTFkOGE5MjNmODBmMTFiOTQyMjk1ZQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTcgMTM6MzY6NDEgMjAxMiArMDEwMAorCisgICAgRXh0ZW5kIHRoZSBOVUxMIGNoZWNrLCBpLmUuIHJldHVybiBpZiB0aGVyZSBpcyBub3RoaW5nIHRvIHJlbW92ZS4KKworY29tbWl0IGRkZDc5NDhhY2FkOTM4Y2Q0Mjk3NDUwNWRkY2E0ZjAzNzIxMTY3MDkKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBKYW4gMTYgMTE6MTE6MjkgMjAxMiAtMDgwMAorCisgICAgdXBkYXRlIHNwYXJ0YSdzIGNvcHlyaWdodAorCitjb21taXQgNDEyNTYwODZhN2E1MDQxNDUzNDE5Y2ZkNmU1NjJjN2I1NWM1NmIwYQorQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIEphbiAxNiAxMDozMjowNCAyMDEyIC0wODAwCisKKyAgICBwdWxsZWQgZnVsbCBjb3B5IG9mIGV4dHJhY3RuZXdzIGZyb20gbWFzdGVyCisKK2NvbW1pdCA2MjVhNzBkYmRmZDk5MDJkYTc5ZWZhMjkzZmU2ZDJhYzhjY2YyYjJlCitBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBNb24gSmFuIDE2IDEwOjI0OjE5IDIwMTIgLTA4MDAKKworICAgIHVwZGF0ZSB0byBjaGFuZ2UgdG8gdGhlIG5ld2VyIGxvZyBnZW5lcmF0aW5nL3BhcnNpbmcKKworY29tbWl0IDYyZTMyYjEzMDg5YjI5ZWRjZjI3NmY2MTVkYTY3ZTQ1MDhmZTdiYjUKK0F1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBKYW4gMTYgMDk6Mjk6NDIgMjAxMiAtMDgwMAorCisgICAgY29uZmxpY3RpbmcgbWVyZ2UgZnJvbSBtYXN0ZXIgZm9yIGV4dHJhY3RuZXdzCisKK2NvbW1pdCA3MDA4NGRhNjFkMmJjYmQyY2YxZWQ4MWJkYzNiZjY3OTRjMmFmZmI2CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgSmFuIDEzIDExOjQ5OjE2IDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tU0NIRURVTEVSLU1JQjogSGFuZGxlIDMyLWNoYXJhY3RlciBzY2hlZENvbnRleHROYW1lIHZhbHVlcyBjb3JyZWN0bHkuCisgICAgCisgICAgU2VlIGFsc28gY29tbWl0IGIzYzQ5ODI1NDJlMGFiMTUxZmIzODg0NzU0Y2RmYmNiNDcyZGE1MmQuCisKK2NvbW1pdCAwNGJmM2UyODgxNThlZTg4MGVkZjIzN2U0MDA3ZmVlMzdkMjA0NGRkCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEphbiAxMiAxNTozOTozNyAyMDEyICswMTAwCisKKyAgICBGaXhlZCBlbmRsZXNzIGxvb3Agd2hlbiBTU0xfcmVhZCByZXR1cm5zIGVycm9yLgorCitjb21taXQgYzE1MjZmY2NjMDQ3NGMxZGIxOGNhYTlkYmI4MzM4NTNjZGRkZTNjYworQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTIgMTU6MTM6MjEgMjAxMiArMDEwMAorCisgICAgRml4ZWQgYSB0eXBvLgorCitjb21taXQgYTI3YWExOWRmMjgzMTU2YzAzMmM4MWVhZWU1ZTExNTg1OWQzOGMxNworQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTIgMTU6MTE6MzIgMjAxMiArMDEwMAorCisgICAgRG9uJ3QgcmVwbGFjZSAncmMnIHZhcmlhYmxlLCBpdCdzIHZhbHVlIGlzIG5lZWRlZCBvdXRzaWRlIHRoZSBsb29wLgorCitjb21taXQgOTg1ZGZmMmIwODc2ZDk0ODNjNDE0ZmNjZWEzZWY2YmM2M2UxNDU2MQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTIgMTU6MDE6MzIgMjAxMiArMDEwMAorCisgICAgUmVtb3ZlZCBkdXBsaWNhdGUgY29kZS4KKworY29tbWl0IDJmZDc4MTgzMThlN2E1ZGZlOThmNTJjY2Y3NTBjMmE2M2U4MjVkZWQKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDEyIDE1OjAwOjIyIDIwMTIgKzAxMDAKKworICAgIFJlbW92ZWQgZHVwbGljYXRlIGNvZGUuCisKK2NvbW1pdCAxNWYyMTEzMGJhMzNkYzlhZmQxNjRlNTJkZmQ3NGM5Y2VjMGU5MjMyCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVGh1IEphbiAxMiAxNDo1ODoxNCAyMDEyICswMTAwCisKKyAgICBSZW1vdmVkIGR1cGxpY2F0ZSBjb2RlLgorCitjb21taXQgMmE4YThmMmFiN2NkNzU4MjZjNWQ0MWVjM2NmZDVjZTNlOTYzNGNmMworQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTIgMTQ6Mzk6MjggMjAxMiArMDEwMAorCisgICAgcmVtb3ZlIGRlYWQgY29kZSwgJ2NwJyBpcyBhbHdheXMgIT0gTlVMTCBoZXJlLgorCitjb21taXQgMzhmZDYzNzhjYzMyNzUxODBmNjNiOGQ5YjlhNDA3MmIzZGFiZjhlNAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTIgMTQ6MjU6MDYgMjAxMiArMDEwMAorCisgICAgRml4ZWQgYSB0eXBvLgorCitjb21taXQgZWJkOTJlMTliMTBjMGEzOGUxN2NkZTQwNzg2NGI0NWMyNmUxNzMyNworQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTIgMTQ6MDc6NDMgMjAxMiArMDEwMAorCisgICAgUmVtb3ZlZCB1bm5lY2Vzc2FyeSBpZiAodmFsdWUpIGNoZWNrIC0gdmFsdWUgaXMgY2hlY2tlZCBmZXcgbGluZXMgYmVmb3JlLgorCitjb21taXQgYzVjYWNmNWNhZjk3OWQwMThlYTZjYWUxYzAzYjhmZGYwYjExOGRmZAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTIgMTM6NDQ6NDMgMjAxMiArMDEwMAorCisgICAgUHJldmVudCBkb3VibGUgZnJlZSgpLCAnZGlybmFtZScgaXMgYWxyZWFkeSBmcmVlZCBpbnNpZGUgc2VfYWRkX3BhaXJfdG9fbGlzdCgpIGlmIGl0IGZhaWxzLgorCitjb21taXQgYWNkY2ViNTBlYTY2ZDZiMzIzYzc0ZWUwMjFmYjc3ZTgxMGU0ZTdhZgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBKYW4gMTIgMTM6NDM6MTkgMjAxMiArMDEwMAorCisgICAgUHJldmVudCBtZW1vcnkgbGVhayB3aGVuIG1hbGxvYyBmYWlscy4KKworY29tbWl0IDE3MDUzZTM0Y2ZlOWE4YWIzOTVmYjUwZjVjM2YxZGFmYzcyNDdhZWIKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgSmFuIDEyIDEzOjMyOjU3IDIwMTIgKzAxMDAKKworICAgIEZpeGVkIGRvdWJsZSBmY2xvc2UoKS4KKyAgICBMaW51eCBtYW4gcGFnZSBmb3IgZmNsb3NlKDMpIHNheXM6IEluIGVpdGhlciBjYXNlIGFueSBmdXJ0aGVyIGFjY2VzcyAoaW5jbHVkaW5nIGFub3RoZXIgY2FsbCB0byBmY2xvc2UoKSkgdG8gdGhlIHN0cmVhbSByZXN1bHRzIGluIHVuZGVmaW5lZCBiZWhhdmlvci4KKworY29tbWl0IGE2NjQxZWRiOWNiNzRmYzIyMzZiNDJjZTU1NTRmYzMzMjk5NTY1NTIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBKYW4gMTEgMTU6MjI6MzQgMjAxMiArMDEwMAorCisgICAgTWluR1c6IFNraXAgdGVzdCBUMDY1IGlmIG5vdCBzdGFydGVkIGZyb20gaW5zaWRlIGFuIE1TWVMgc2hlbGwKKworY29tbWl0IGE4ODNlZjE5ODJmMzAxYjE0ODVkMjI3MzAxNjc0OTI3MzMwZjViNjcKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDExIDE1OjE0OjUzIDIwMTIgKzAxMDAKKworICAgIE1vdmVkIGRlYnVnIG9wdXRwdXQgYmVmb3JlIHJldHVybi4KKworY29tbWl0IDQ1NzUxOTY3Mjg3ZDk3NjQwZWZkY2RmOGU3N2U4ZDQ5MDkzOWQ4ZWIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBKYW4gMTEgMTQ6MTc6MTggMjAxMiArMDEwMAorCisgICAgQ29udmVydCBzdHJ0b3VsbCgpIHVuaXQgdGVzdCBpbnRvIGEgTmV0LVNOTVAgdW5pdCB0ZXN0CisKK2NvbW1pdCAyYzJmYTQ4MzM2YTRmMWYxNzdjMjk5MWQ2NTE1ZDI5ZjM5NTMzYzQ0CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgSmFuIDExIDEzOjUwOjQ0IDIwMTIgKzAxMDAKKworICAgIENvbnZlcnQgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmdfY29uc3QoKSB1bml0IHRlc3QgaW50byBhIE5ldC1TTk1QIHVuaXQgdGVzdAorCitjb21taXQgMDdjNjY2ZjZjZWEyN2YyYjJhYjliYzA4YWVkMGNiNjEzM2ZlMzc1OAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBKYW4gMTEgMTM6MTc6NDUgMjAxMiArMDEwMAorCisgICAgRml4ZWQgY29tbWl0IDczYTUyM2U0NjgyNzdmNmRmMmU5ODQ4OTEzMTNiOGJlOGJjZTE5MjE6CisgICAgRmlkZXggZGVyZWZlcmVuY2luZyBrZXktPmluZm8gd2hlbiBrZXkgaXMga25vd24gdG8gYmUgTlVMTC4KKworY29tbWl0IDNiNjg2NTY2Mjk2ZGQ4N2JjNDJiN2YxMTY5ZGFhY2RiM2M0NWNjNTgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIE1vbiBPY3QgMTggMDY6MjU6NTYgMjAxMCArMDAwMAorCisgICAgV2luMzI6IGJ1aWxkcyBhZ2FpbiB3aXRob3V0IHdhcm5pbmdzIHdpdGggTVNWQyA2LgorICAgIAorICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTQ4OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworY29tbWl0IGYzYTdkMWIwOTYwOWRhZDY0OWY1OGJiZGI1YjdlMTBkMzliMzk4YzEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFN1biBPY3QgMTcgMTE6MDQ6MDYgMjAxMCArMDAwMAorCisgICAgRm9sbG93LXVwIGZvciByMTk0NzY6IGZpeGVkIGEgdHlwby4KKyAgICAKKyAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk0NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKK2NvbW1pdCAyZGU3M2JkMzY1YTM4MWI5YzM1M2NhNTIzMDc2OWVlZmIxYWM3MWVkCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgSmFuIDExIDExOjQyOjQyIDIwMTIgKzAxMDAKKworICAgIGxvY2FsL3Bhc3N0ZXN0OiBSZW1vdmUgYW4gaW5jb3JyZWN0IFBBVEg9IHN0YXRlbWVudAorCitjb21taXQgNjk5NTEzZjEyMzhlMGFkY2UxZjFjZWM5OGUwZDE0NzI5M2ZjNTA0NworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgU3VuIE9jdCAxNyAwOToyNTo1MSAyMDEwICswMDAwCisKKyAgICBORVRTTk1QX1JFTU9WRV9DT05TVCgpLXJlbGF0ZWQgY2xlYW51cC4KKyAgICAKKyAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk0NzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKK2NvbW1pdCA2MzU4ZGVlNzJmYjM0N2UyNjAwYTBhN2JkMjFmMjMyNzBkM2EwMGY2CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgSmFuIDExIDEwOjU4OjE1IDIwMTIgKzAxMDAKKworICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6IEFkZCBhIGNvbW1lbnQKKworY29tbWl0IDUzOTZiZmUwMzJjOGNiYzczYzhmZjVkNGIwODVlYmFkYTlmNTk4NDYKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBKYW4gMTEgMTA6MzA6MTYgMjAxMiArMDEwMAorCisgICAgUmVwbGFjZSBzdHJuY3B5KCkvc3RybmNhdCgpIGJ5IHN0cmxjcHkoKS9zdHJsY2F0KCkKKworY29tbWl0IGZlYjNhZjI4ZGNhZTIyMDE1YWU4NjVhMmU1ZGQ4YzQxNmU5OTkxZDgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBKYW4gMTEgMTA6MDI6MDggMjAxMiArMDEwMAorCisgICAgUmVwbGFjZSBzdHJuY3B5KCkvc3RybmNhdCgpIGJ5IHN0cmxjcHkoKS9zdHJsY2F0KCkKKworY29tbWl0IGI3ZTFhYTI1NWJhZTRhMzQ1M2Y5ZWNhNjQ0YTg3NjYzNDM1MWYxMWQKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFNhdCBNYXIgMjAgMTk6MzY6MjggMjAxMCArMDAwMAorCisgICAgQ0hBTkdFUzogbGlic25tcDogY2hhbmdlZCB0aGUgdHlwZSBvZiB0aGUgZm91cnRoIGFyZ3VtZW50IG9mIG5ldHNubXBfc2V0X3Jvd19jb2x1bW4oKSBmcm9tIGNvbnN0IGNoYXIqIHRvIGNvbnN0IHZvaWQqIHN1Y2ggdGhhdCBubyBjYXN0IGlzIG5lY2Vzc2FyeSB3aGVuIHBhc3NpbmcgYW5vdGhlciBkYXRhdHlwZSB0aGVuIGNoYXIqIG9yIGNvbnN0IGNoYXIqLgorICAgIENIQU5HRVM6IFdpbjMyOiBjaGFuZ2VkIGluX2FkZHJfdCBmcm9tIHVfaW50IHRvIHVfbG9uZyBzdWNoIHRoYXQgaXQgbWF0Y2hlcyB0aGUgZGF0YXR5cGUgb2Ygc29ja2FkZHJfaW46OnNpbl9hZGRyLgorICAgIEFsc28sIGZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgKG1vc3RseSBjaGFyICogPD4gdV9jaGFyICogbWlzbWF0Y2hlcykgYW5kIHJlbW92ZWQgc29tZSBjYXN0cy4KKyAgICAKKyAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxODM0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICAKKyAgICBDb25mbGljdHM6CisgICAgCWFnZW50L2FnZW50X3JlZ2lzdHJ5LmMKKyAgICAJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jCisgICAgCWFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYworICAgIAlhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMKKyAgICAJYXBwcy9zbm1wdHJhcGQuYworICAgIAlzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jCisgICAgCXNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYworICAgIAlzbm1wbGliL3N5c3RlbS5jCisKK2NvbW1pdCBmNDdhMzc1Mjg0OWRiMDc1ZTZmMjA1M2I4NTk1YjdiNzkyZmI2NDYyCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgT2N0IDE1IDEwOjU2OjA5IDIwMTAgKzAwMDAKKworICAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogQnVpbGRzIG5vdyBjb3JyZWN0bHkgd2l0aCBhIDY0LWJpdCBjb21waWxlci4KKyAgICAKKyAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTQ1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworY29tbWl0IDAyYjYwNTZkZjk1ZGE4YjY3MzAzNGUzOWMyYzdjMzg2ZWQwZjM2OWMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBKYW4gMTAgMTE6NDQ6NTMgMjAxMiArMDEwMAorCisgICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBjYXN0aW5nIGF3YXkgY29uc3QKKworY29tbWl0IGExOTg2NTgzMmZjNzdmNGMwNDgxNDRkOTFhNDMxYjFlOTRkMzI5ZjIKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgT2N0IDE0IDIzOjEyOjA1IDIwMDkgKzAwMDAKKworICAgIENIQU5HRVM6IGFwcHMsIHNubXBsaWI6IFBBVENIOiAyODM1NTc3OiBpZGVudGlmaWVkIGJ5ICJCYXJ0IFZhbiBBc3NjaGUiOiBSZXBsYWNlIFNOTVBfWkVSTyBvZiBhcnJheXMgd2l0aCBhIG1lbXNldC4KKyAgICAKKyAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxNzc5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworY29tbWl0IDY3YTNlMmVjY2I5NWY5YzlkMDgwOWVmY2JkZGNkODY2ZWUzMDYyZDUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBKYW4gNiAxNDoyNzoxNSAyMDEwICswMDAwCisKKyAgICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QgcXVhbGlmaWVyLgorICAgIAorICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE3OTcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCitjb21taXQgM2RjZGUyZThhNTk1YTUyN2YwNjE0MmMzYjg1MmRlODQzM2ExY2YyOAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFN1biBKYW4gMjQgMTQ6Mjc6NTUgMjAxMCArMDAwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogUHJldmVudCBnY2MgcGVkLXdhcm5pbmcgZm9yIE5FVFNOTVBfUkVNT1ZFX0NPTlNUCisgICAgCisgICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTgwNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKK2NvbW1pdCBjMmUxNTI1YTg1YmRhNTI5OWEzYjlmMjQxNjE0ZjdlNjUwOWFlZWJhCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDYgMTM6MzU6MTEgMjAxMCArMDAwMAorCisgICAgQmFja3BvcnQgY29tbWl0IDI5NWY0NzNjODM1NDYyMjFiMmE3MWQ4MTVjNjFlMzNhNjdmOThhZTM6IHJlZmluZSBORVRTTk1QX1JFTU9WRV9DT05TVCgpIGltcGxlbWVudGF0aW9uLgorCitjb21taXQgY2I0MjNiMGFlOWVkMDA1OWFhMTAwZGM0ZTJmZDkzYWQxYjk3ZmFmOAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiA2IDExOjU3OjUxIDIwMTAgKzAwMDAKKworICAgIEJhY2twb3J0IGNvbW1pdCBlMmZiMDllMDA5M2UyZjY0OGZlMjYzOGRhMmYzYWYxOGZkYjMyYmYwIC0gaW50cm9kdWNlIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCkuCisgICAgCisgICAgQ29uZmxpY3RzOgorICAgIAlhZ2VudC9zbm1wX3BlcmwuYworICAgIAlzbm1wbGliL3NubXBfc2VydmljZS5jCisKK2NvbW1pdCBhZmMzOTZhYjE2MThhODU5NWEyNTE5ZmJjMjVmN2E0OThlMTc0NDExCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgSmFuIDExIDA4OjQ5OjM0IDIwMTIgKzAxMDAKKworICAgIFVuYnJlYWsgbmV0c25tcF9ta3RlbXAoKSBhbmQgbWFrZV90ZW1wKCkuCisgICAgCisgICAgVGhlc2Ugd2VyZSBicm9rZW4gYnkgY29tbWl0IGJiOGZjYmI4NzQ5OTgwMDBmOTQ1ZjA1OGQxYWE2ZmUxNGU5MjU4OTkuCisgICAgQWxzbyByZXBsYWNlIGEgc3RybmNweSgpIGNhbGwgYnkgYSBjYWxsIHRvIHN0cmxjcHkoKSBhbmQgcmVwbGFjZSB0aGUKKyAgICBtYWtlX3RlbXBmaWxlKCkgaW1wbGVtZW50YXRpb24gYnkgYSBjYWxsIHRvIG5ldHNubXBfbWt0ZW1wKCkuCisKK2NvbW1pdCAyMTAxODVjMTVkMGQ2NWYwZWE5OGI1ZTNjMmUwNzc2ZjYyMjJkMTcwCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgSmFuIDExIDA4OjI3OjQzIDIwMTIgKzAxMDAKKworICAgIEZpeCBhIGNyYXNoIGR1cmluZyBzdGFydHVwIG9mIHNubXBkIGludHJvZHVjZWQgYnkgY29tbWl0IDg4NTA2MTY4N2Q5Y2FhMzg0NzA5Nzk2NjdkN2Q4YWQ2NTYzY2VkYWQuCisgICAgCisgICAgQWxzbywgbWFrZSBzdXJlIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgY29weSBvZiB0aGUgY2xlYW51cCBjb2RlIGluIGZ1bmN0aW9uCisgICAgbWtkaXJoaWVyKCkuCisKK2NvbW1pdCA4YmI0ZTg2YWJjZjk4ZmYyODc0OGFmMGFmODljOThlNjRkNWNkOTYxCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBXZWQgSmFuIDExIDA3OjQ3OjEyIDIwMTIgKzAxMDAKKworICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIG9sZG1hc2sgdmFyaWFibGUuCisKK2NvbW1pdCA2NjgwMTQ3YjEzOGVjMTE0ZjgxYzVkMTI4YWM5MzUwYzg0NTBkMDgxCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgSmFuIDEwIDE4OjQ0OjMxIDIwMTIgKzAwMDAKKworICAgIE1ha2UgdGVzdCBUMDE1aW50NjRfY2xpYiBwYXNzIG9uIDY0LWJpdCBzeXN0ZW1zCisKK2NvbW1pdCAzYWFkMTVhZTU2MGFjODU3ZTczYzkwNzY0ZTkwM2U3Y2EwMmIzMjk1CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxMCAxNTo0MDo1OSAyMDEyICswMTAwCisKKyAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgZm9yIGxhcmdlIE9JRCBuYW1lcworCitjb21taXQgZmJhMTg4ZWU4MjAxMGIyZjJkOGNhMmU0MjZiYTY1NDQ5OWFiM2QwYQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MzE6MzMgMjAxMiArMDEwMAorCisgICAgZml4ZWQgYnVmZmVyIG92ZXJmbG93IGluIF9fY29uY2F0X29pZF9zdHIKKworY29tbWl0IDIxZDI1ZDg2YjhlNDkwNGQ3OThkYzhjOTZkYWRlOWU1MDQ4NDU3YTgKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDEwIDE1OjI2OjA3IDIwMTIgKzAxMDAKKworICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHBhcnNpbmcgcG9ydCBudW1iZXJzLgorCitjb21taXQgZDM2OTMxODQxYjJmYzJjZWJjNjM2NGIyOTQ5MTI5YTBhZDQyYWQxZAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MDU6NTEgMjAxMiArMDEwMAorCisgICAgRml4ZWQgYSBidWZmZXIgb3ZlcmZsb3cgd2hlbiBsYXJnZSBTdW1GaWxlIGlzIHVzZWQuCisKK2NvbW1pdCAwZWZkZDAyMmRhMDlhZjFiNWUxNjE3MWZhN2EyYjUyM2M1ZDZlYzU5CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxMCAxNTowMTo1MyAyMDEyICswMTAwCisKKyAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gYmlnIHRlbXAgZmlsZSBwYXR0ZXJuIGlzIHVzZWQuCisKK2NvbW1pdCA1NjBiYzZjMDliNzUxNTU2ZWZkNmI0YzQ0OTU3NTFiMTA5YTkzZjkyCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxMCAxNDo1OToyNCAyMDEyICswMTAwCisKKyAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3csIGp1c3QgdG8gYmUgc3VyZS4KKworY29tbWl0IDgyOTFkN2M1YjkyYTMxZGQ0ZjU4MmI0OTdkNGIyYTA4NTMzNjdhNTYKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDEwIDE0OjU1OjE2IDIwMTIgKzAxMDAKKworICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdy4KKworY29tbWl0IDg4ZTFmMzRkZTczMDA1NzVmYTZkYWI4NTdlY2RkYjI0MmE4N2RlODAKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDEwIDE0OjQ4OjU1IDIwMTIgKzAxMDAKKworICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHRvbyBsb25nIGludGVyZmFjZSBuYW1lcyBhcmUgdXNlZC4KKworY29tbWl0IGJlMTM3NWE5OTI2ZWJlMGNkNWI3OGE0MDQ1YzNiZDExYzgzNjY0YjEKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDEwIDE0OjQ2OjQ5IDIwMTIgKzAxMDAKKworICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGEgc2Vuc29yIG5hbWUgaXMgdG9vIGxvbmcuCisKK2NvbW1pdCAxY2IyNDYyNTM3MjA2MmIxNGM3MWQ3ZGQ1MWUyMGZlZjc3M2UyNzQzCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxMCAxNDo0MTowMCAyMDEyICswMTAwCisKKyAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBhIENQVSBoYXMgdG9vIGxvbmcgbmFtZS4KKworY29tbWl0IDg0YzgwN2VlMDMyNTFlNTQ4NTZlODNkNjJkMDZlYTA4YjhkZjUyN2EKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDEwIDE0OjM2OjUwIDIwMTIgKzAxMDAKKworICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHRvbyBsb25nIGludGVyZmFjZSBuYW1lcyBhcmUgdXNlZC4KKworY29tbWl0IGMzMTBlMzkwYjVkZDA1ZjI0YmU3ZWIxOTA0Yzc0ZTQxMjU5YzkzZGIKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDEwIDE0OjI0OjU0IDIwMTIgKzAxMDAKKworICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHRvbyBiaWcgdGVtcCBmaWxlIHBhdHRlcm4gaXMgdXNlZC4KKworY29tbWl0IDQ2MDBkMTE0MzRlODNiODY1M2NmOWY4MTNhM2Q4YjYzMDQ1NWI0MmQKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDEwIDE0OjE3OjA4IDIwMTIgKzAxMDAKKworICAgIEZpeGVkIHBsYXVzaWJsZSBzdHJpbmcgb3ZlcmZsb3cgYmVmb3JlIHBhcnNpbmcgY29tbWFuZCBsaW5lIG9wdGlvbnMuCisKK2NvbW1pdCA4ODUwNjE2ODdkOWNhYTM4NDcwOTc5NjY3ZDdkOGFkNjU2M2NlZGFkCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxMCAxNDoxMTowMiAyMDEyICswMTAwCisKKyAgICBHZXQgcmlkIG9mIChpbnNlY3VyZSkgU05NUF9NQVhQQVRIIGluIG1rZGlyaGllcigpCisKK2NvbW1pdCA4MDE2ODkwYTQ0NWY2YTdlMmE4NzNhMDQ4NzNkNGUyN2I2ZWU2NGUzCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxMCAxMzo0ODozNCAyMDEyICswMTAwCisKKyAgICBGaXhlZCB3cm9uZyBpbnRlZ2VyIHNpemUgb24gNjQgYml0IHBsYXRmb3JtLgorCitjb21taXQgYmI4ZmNiYjg3NDk5ODAwMGY5NDVmMDU4ZDFhYTZmZTE0ZTkyNTg5OQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6MzE6MzYgMjAxMiArMDEwMAorCisgICAgU2VjdXJlIG1rc3RlbXAoKSB3aXRoIHVtYXNrKCkgLSBvbiBzb21lIGltcGxlbWVudGF0aW9ucyBpdCBkb2VzIG5vdCBzZXQgMDYwMCBwZXJtaXNzaW9ucyBhdXRvbWF0aWNhbGx5LgorCitjb21taXQgMjAyNTIzY2E3MDRiZDcyMmRjMWFjMGUxZTZiMGU0YjRlNTQyNDQ5NQorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6MTE6NTcgMjAxMiArMDEwMAorCisgICAgRml4ZWQgZGVyZWZlcmVuY2luZyAnYycgYmVmb3JlIE5VTEwgY2hlY2suCisKK2NvbW1pdCA3M2E1MjNlNDY4Mjc3ZjZkZjJlOTg0ODkxMzEzYjhiZThiY2UxOTIxCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAxMCAxMzowODoyNCAyMDEyICswMTAwCisKKyAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIGtleS0+aW5mbyB3aGVuIGtleSBpcyBrbm93biB0byBiZSBOVUxMLgorCitjb21taXQgMmY0ZTZhY2Q3MTQxODNmMDE1Yjc2MzY1N2Y4ZjA4NDU5MzM1N2UyNgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIEphbiAxMCAxMDozODoxNiAyMDEyICswMTAwCisKKyAgICAuZ2l0aWdub3JlOiBJZ25vcmUgcGVybC8qLnltbCBmaWxlcworCitjb21taXQgYzM2NWQ4MGMxNmMyZDE3YjE2MDAxMWU4YzFmOWNiOTU4OTU0ZTlkYgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIEphbiAxMCAwODozNDoxNiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IERvIG5vdCBpbnZva2Ugc2h1dGRvd25fcGVybCgpIGZyb20gaW5zaWRlIHRoZSBTSUdURVJNIGhhbmRsZXIgc2luY2UgdGhhdCBmYWlscyBpZiBTSUdURVJNIGlzIHJlY2VpdmVkIHdoaWxlIGEgUGVybCBoYW5kbGVyIGlzIGFjdGl2ZS4gQmFzZWQgb24gYSBwYXRjaCBwb3N0ZWQgYnkgSm9lbCBBdm5pIDxqYXZuaUBhcnViYW5ldHdvcmtzLmNvbT4KKworY29tbWl0IGQwNTlmYjg3OGIxNDM2NTk5OTUzY2VhNWEwNzc0OTlkZGNkY2JjYjUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBKYW4gNiAxNzowMzo1NSAyMDEyICswMDAwCisKKyAgICBDSEFOR0VTOiBCVUc6IDM0NDA3NTI6IElGLU1JQjogUmVwb3J0IGludGVyZmFjZSBzcGVlZCBjb3JyZWN0bHkgZm9yIEV0aGVybmV0IGludGVyZmFjZXMgaWYgb3RoZXIgdGhhbiAxMCBNYnBzLCAxMDAgTWJwcywgMSBHYnBzLCAyLjUgR2JwcyBvciAxMCBHYnBzLiBBZGQgc3VwcG9ydCBmb3IgTklDcyBmYXN0ZXIgdGhhbiA2NSBHYnBzLgorCitjb21taXQgYzA5OTAzYTQyZTlkOTczMzFmZDllNDhlZTgzMWE4NWFmZGY5YzcwYQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIEphbiA5IDEzOjI2OjE3IDIwMTIgKzAxMDAKKworICAgIERveHlnZW4tc3R5bGUgZG9jdW1lbnRhdGlvbiBmaXhlcworCitjb21taXQgZTMyNWVjYmZjZTc3ZjAwYWM1Y2Y2ZmJkOTU3Zjk1NDk1ZjYxYzU5YgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIEphbiA5IDEzOjI1OjEwIDIwMTIgKzAxMDAKKworICAgIFN1cHByZXNzIHVuaW50ZXJlc3RpbmcgRG94eWdlbiB3YXJuaW5ncworCitjb21taXQgYmU5MTYxZDNhNTg5OGU4NjM3NjdmOTI2NjEzNDg2MTI2YzJjYmY2NworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIEphbiA2IDEyOjM1OjM5IDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBsaWI6IFNpbXBsaWZ5IGltcGxlbWVudGF0aW9uIG9mIGZ1bmN0aW9ucyBtYW5pcHVsYXRpbmcgNjQtYml0IG51bWJlcnMuCisKK2NvbW1pdCA4NmU0YzJiZTA4NTJhMGExM2IwNjAzMDc1NzIwYjMyNjRlYzcwZGRlCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgSmFuIDYgMTI6Mjk6MTEgMjAxMiArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBpdCBleHBsaWNpdCB0aGF0IE1BWF9TVUJJRCBpcyBhbiB1bnNpZ25lZCBjb25zdGFudAorCitjb21taXQgMzdlMjcyZDhmN2I3MTgwYmExNDBmYTM4NmE1ZmYwNTg5NjhhMDhhMgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIEphbiA2IDE4OjIxOjQ4IDIwMTIgKzAwMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBJRi1NSUI6OmlmVHlwZTogUmVwb3J0IHR5cGUgImluZmluaWJhbmQgKDE5OSkiIGZvciBJbmZpbmlCYW5kIGludGVyZmFjZXMgaW5zdGVhZCBvZiB0eXBlICJvdGhlciAoMSkiLgorCitjb21taXQgMjY5OTMyZmEzMmM3Y2Q0Nzk1NzQ4OTY5OGUwOWJlZTMxZjYzYjdhZgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIEphbiA2IDE0OjM0OjQyIDIwMTIgKzAxMDAKKworICAgIEZpeCBhbiBNU1ZDIGNvbXBpbGVyIHdhcm5pbmcKKworY29tbWl0IDBkMWMyMWY5OTkxZDEzMDlkMDU3ZTNlNDA1NmQ1NDdkZjdkNDBlY2YKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBKYW4gNiAxNjowNjozMSAyMDEyICswMTAwCisKKyAgICBNYWtlIGRlY2xhcmF0aW9uIGFuZCBkZWZpbml0aW9uIG9mIHN0cmxjYXQoKSBjb25zaXN0ZW50LgorCitjb21taXQgMGMzZDRkYmIwYTljZjViMzU5ZjcwYjJmMTk5MTU0OTU1NTRmODQwZgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIEphbiA2IDE1OjIzOjE2IDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IFdpbjMyOiBzbm1wZDogUmVtb3ZlIGRsbW9kCisKK2NvbW1pdCA4OTNlY2M5N2I1ODc2NjEwNDViZWNiZTA5YTMyMGMxYmNiYzcxYzdjCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgSmFuIDYgMTQ6MzY6NTkgMjAxMiArMDEwMAorCisgICAgQWRkIHN0cmxjYXQoKSB0byB0aGUgTVNWQyBidWlsZCBpbmZyYXN0cnVjdHVyZS4KKworY29tbWl0IDNkMTI2NDIyZTYyNTcwMmI5ZDNmYTA2NzZhOTdlYzVjYjIwZDlkMTAKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBKYW4gNiAxNTowMTowNiAyMDEyICswMTAwCisKKyAgICBNYWtlIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIGNvbnNpc3RlbnQgd2l0aCBpdHMgLmluIGZpbGUKKworY29tbWl0IGFmNTNiNzZjMmZmYTc1MWUzOTU4ZDBmYzVkODI3OWY3OGMyYzFjMjYKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBKYW4gNiAxNDo0Mzo1NSAyMDEyICswMTAwCisKKyAgICBTa2lwIFQwNjZwYXNzX3NpbXBsZSBhbmQgVDA2N3Bhc3NwZXJzaXN0X3NpbXBsZSBvbiBNaW5HVworCitjb21taXQgMzVhOTJlNjkzZDEzM2E1YjExZTllOWI1OTlkYmY0N2VkZWY0OTMzYgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIEphbiA2IDA4OjE2OjM2IDIwMTIgKzAxMDAKKworICAgIFJlbW92ZSBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMgYWdhaW4sIHdoaWNoIHdhcyBhZGRlZCBhY2NpZGVudGFsbHkgd2hpbGUgcmVzb2x2aW5nIG1lcmdlIGNvbmZsaWN0cyAoY29tbWl0IDFkNzhmN2Q1YjU4YWVkMmI1MmM0ZDM4NmE3YmE4MGE0NDcxMWJhY2EpCisKK2NvbW1pdCBhOWIwNzNlYTNiNmNlZGY3MTNlMzA1ZTdiMTVmMjhhZTU3YmZkZjFiCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgSmFuIDUgMTc6NDc6MTEgMjAxMiArMDAwMAorCisgICAgRml4IDY0LWJpdCBjb21waWxlciB3YXJuaW5ncworCitjb21taXQgN2U4OTBkYWQ5NWY1NjYwNjllZTI4MDIxNWE0ZmVhM2YwZTJlMzk4MAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEphbiA1IDE2OjM4OjUwIDIwMTIgKzAxMDAKKworICAgIEF2b2lkIGEgU0lHU0VHViBpZiBjcCA9PSBOVUxMLiBUaGlzIGlzIGEgZm9sbG93LXVwIGZvciBjb21taXQgMDg5YmNiMzYwYWEyNjc5MGFkMmE4Y2VkZGY1ODNiN2JhNWRkZmQ0OC4KKworY29tbWl0IDFmNjIwMGNmZTFiMGIyN2ViYjA5M2ExNjA2YjU5MmY5ZTk2ODRiZTgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBKYW4gNSAxNTo1MzozNCAyMDEyICswMTAwCisKKyAgICBDb252ZXJ0IHN0cm5jcHkoKSBjYWxscyBpbnRyb2R1Y2VkIGluIHY1LjYKKworY29tbWl0IGMzMTI2YjE0MzkyMWZhYmVhYzQ0MjE2NmVjYTViNWI3NDJmZDQyYzAKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBKYW4gNSAxNTowMjozOSAyMDEyICswMTAwCisKKyAgICBSZXBsYWNlIG1vc3Qgc3RybmNweSgpIGNhbGxzIGludHJvZHVjZWQgaW4gdjUuNQorCitjb21taXQgYjI0ZWU3YzkwOTY1N2RiNDNiZDhjNWQ4YzAxMDU1Y2EwODgzYzljZgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEphbiA0IDA4OjQwOjM5IDIwMTIgKzAxMDAKKworICAgIEVsaW1pbmF0ZSBtb3N0IHN0cm5jcHkoKSBhbmQgc3RybmNhdCgpIGNhbGxzCisgICAgCisgICAgVXNpbmcgc3RybmNweSgpIGFuZCBzdHJuY2F0KCkgaXMgZXJyb3IgcHJvbmUgLS0gc2VlIGFsc28KKyAgICBodHRwOi8vd3d3LmdyYXRpc29mdC51cy90b2RkL3BhcGVycy9zdHJsY3B5Lmh0bWwuIEhlbmNlIHJlcGxhY2UKKyAgICBhbGwgaW52b2NhdGlvbnMgb2Ygc3RybmNweSgpIGFuZCBzdHJuY2F0KCkuIFJlcGxhY2UKKyAgICBzdHJuY3B5KGRzdCwgc3JjLCBuKSBjYWxscyBieToKKyAgICAqIHN0cmxjcHkoZHN0LCBzcmMsIG4pIGlmIHRoZSBnb2FsIHdhcyB0byBhdm9pZCBvdXRwdXQgYnVmZmVyIG92ZXJmbG93LgorICAgICogc3ByaW50Zihkc3QsICIlLipzIiwgbiwgc3JjKSB0byBjb3B5IGEgcHJlZml4IG9mIHNyYyB0byBkc3Qgb3IgaWYgc3JjIGlzCisgICAgICAgIG5vdCAnXDAnLXRlcm1pbmF0ZWQuCisgICAgKiBtZW1jcHkoZHN0LCBzcmMsIG4pIGlmIHN0cmxlbihzcmMpID49IG4gYW5kIG4gPCBzaXplIG9mIGRzdC4KKyAgICAqIHN0cmNweShkc3QsIHNyYykgaWYgbiA+IHN0cmxlbihzcmMpIGFuZCBuIDwgc2l6ZSBvZiBkc3QuCisKK2NvbW1pdCA2ZDk1YmM0MTQ5NDcyOTMxMDA1NDc1YzMwYTU0MWZlZDU1MzRkYTM5CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgSmFuIDUgMTE6MTk6MTYgMjAxMiArMDEwMAorCisgICAgRml4IHdhcm5pbmdzIHRyaWdnZXJlZCBkdXJpbmcgY29tcGlsYXRpb24gb2YgdGhlIFBlcmwgeHMgc291cmNlIGZpbGVzCisKK2NvbW1pdCBiYWQwNjAwZjZlYzk0NGVmODQ1NWUzMjdjZTc4NGI5YjA3ZDI0N2M5CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgSmFuIDUgMTA6MDA6MTMgMjAxMiArMDEwMAorCisgICAgQWRkIGNvbmZpZ3VyZSB0ZXN0IGZvciBzb2NrYWRkcl91bi5zdW5fcGF0aCBzdWNoIHRoYXQgdGhlIGNvbTJzZWMgdGVzdCBpcyBydW4KKworY29tbWl0IDkyYTMyYWM0ODY2YTVlZGM3ZjM0N2QzNzk0MmJmMDI4ZGUwMjc2MmYKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBKYW4gNSAxMDowMDoyOSAyMDEyICswMTAwCisKKyAgICBHZXQgcmlkIG9mIGEgY29tcGlsZXIgd2FybmluZworCitjb21taXQgODNlNGMwZTMwNGY2MTdjY2FjNjYxMGVkZDc0ZDE3MDY3OTdiYmY1MgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEphbiA1IDA5OjE1OjM3IDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZCBhIHRlc3QgZm9yIHNlX3N0b3JlX2xpc3QoKQorCitjb21taXQgNGZhZTU4NTIxMDNlYzM4OTNhZDQ4OGJjMGQ5MDVjYTY5MTQ1OTVlZgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEphbiA1IDA5OjE3OjE1IDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBsaWI6IFNpbXBsaWZ5IHRoZSBzZV9zdG9yZV9lbnVtX2xpc3QoKSBpbXBsZW1lbnRhdGlvbgorCitjb21taXQgYjMyMjJiYjI3NWYyZjIzNDZlMGZkMDQ3OGFmYTJlZmI2MDA3NzNlNQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IEphbiA1IDA5OjE2OjQ1IDIwMTIgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBsaWI6IERlY2xhcmUgInR5cGUiIGFyZ3VtZW50IG9mIHNlX3N0b3JlX2xpc3QoKSAvIHNlX3N0b3JlX3NsaXN0KCkgLyBzZV9zdG9yZV9lbnVtX2xpc3QoKSBjb25zdAorCitjb21taXQgMDIyZjg0MGZiZmNiMGUyNmIwOGYwZTU1NzI4MjMxZjYxMTQ5NTgwMworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEphbiA0IDE5OjU1OjU2IDIwMTIgKzAwMDAKKworICAgIEF2b2lkIHRoYXQgVmFsZ3JpbmQgY29tcGxhaW5zIGFib3V0IHNlbmRpbmcgVURQIGRhdGEKKworY29tbWl0IDY3MmE4MDljMjI4ZTk1NTBiOTliODkxMGJlNzVkMGIxNjE5ODU0MDIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBKYW4gNCAxNzozMzowOSAyMDEyICswMDAwCisKKyAgICBGaXggYSA2NC1iaXQgY29tcGlsZXIgd2FybmluZworCitjb21taXQgMjRmZjI2MGFkODljZTJhYTM2MWE1NWM3YzcyZTkxNjAzMWRlZmUzNQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEphbiA0IDE3OjExOjI0IDIwMTIgKzAxMDAKKworICAgIENoYW5nZSB0aGUgdHlwZSBvZiB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIHNubXBfc2V0X3Zhcl92YWx1ZSgpIGFuZCBzbm1wX3NldF92YXJfdHlwZWRfdmFsdWUoKSBmcm9tIHVfY2hhciogdG8gdm9pZCosIGxpa2Ugb24gbW9yZSByZWNlbnQgYnJhbmNoZXMKKworY29tbWl0IGM2Y2E3MzdmYjQ2ZjkwYTRiZGE1ZDQzNzM0YWFjMzRlODM3YTA1ZjQKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFNhdCBNYXIgMTMgMTk6MDc6MzcgMjAxMCArMDAwMAorCisgICAgQmFja3BvcnQgY29tbWl0IGY1MDRjZTJkNzRhNGJjODhmNjhjYzk1MTVmYTcwNTMzNzNjYjE1YjUuCisgICAgKEZpeGVkIG1vc3QgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHRoZSBzb3VyY2UgY29kZSBpbiB0aGUgcGVybCBzdWJkaXJlY3RvcnkuIE5vdGU6IHRoZXNlIGNoYW5nZXMgbWF5IGNvbnRhaW4gc29tZSByZWFsIGJ1ZyBmaXhlcy4pCisgICAgCisgICAgQ29uZmxpY3RzOgorICAgIAorICAgIAlwZXJsL0FTTi9BU04ueHMKKyAgICAJcGVybC9PSUQvT0lELnhzCisgICAgCXBlcmwvU05NUC9TTk1QLnhzCisgICAgCXBlcmwvYWdlbnQvYWdlbnQueHMKKworY29tbWl0IGQyMTJkYzk4NGVjMzRlNGQyMzA2MjVlNDZlNThiMGM2MjhhNTBkZjUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBKYW4gNCAxNjo0Njo0OSAyMDEyICswMTAwCisKKyAgICBTTk1QLnhzIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXMKKworY29tbWl0IGJhY2VlYmIxMGQ4Y2FmNWRiNjNjYzM2OTM1ZmVkNjVlZTkzMTAyOWQKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBKYW4gNCAxNjoyMjo0NCAyMDEyICswMTAwCisKKyAgICBBZGQgZGVjbGFyYXRpb24gZm9yIHNodXRkb3duX3NubXBOb3RpZnlUYWJsZSgpCisKK2NvbW1pdCBmN2Y5NjZhYmQ2ZDI4NDliMTMzMTI1MmFmZTVjNDczZTVjNDBiMzJkCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgSmFuIDQgMTQ6MjQ6MzMgMjAxMiArMDEwMAorCisgICAgRml4IGZvcm1hdCBzcGVjaWZpY2F0aW9uIG1pc21hdGNoZXMuCisKK2NvbW1pdCAzMDNjMDE1YmNmZTlhZjBiMTU0ZTk4ODFjN2I0ZjQ0OWUwOGYzMGJiCitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTWF5IDYgMjI6MDY6MjMgMjAwOSArMDAwMAorCisgICAgQmFja3BvcnQgY29tbWl0IGQzZWIyYjVjZWQyMmE4NDgwMDUzY2U0M2FjZjk3Mzk3MjkwNTU0MDQKKyAgICAoU3ByaW5rbGUgc29tZSBjb25zdC1uZXNzIHdoZXJlIHJlbGV2YW50IC8gZml4IGZvcm1hdCBzdHJpbmcgbWlzbWF0Y2hlcywKKyAgICBOaWVscyBCYWdnZXNlbiwgTWF5IDIwMDkpCisgICAgCisgICAgQ29uZmxpY3RzOgorICAgIAorICAgIAlhZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmMKKyAgICAJYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jCisgICAgCWFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jCisgICAgCWluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaAorICAgIAlpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaAorCitjb21taXQgZDk1YjQwNDA2OTE2YmRhNWI0OGI1YTYxMzFiZWMyN2I4NjZiMGE3OQorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIE1heSA2IDIxOjU5OjIwIDIwMDkgKzAwMDAKKworICAgIEJhY2twb3J0IGEyYTczMTZjMzEwZjBmY2MzNzI4NjczZmEwNDcwNTFjMjNiNzE5NjAKKyAgICAoVHJpdmlhbCB3YXJuaW5nIGZpeGVzLCBOaWVscyBCYWdnZXNlbiwgTWF5IDIwMDkpLgorICAgIAorICAgIENvbmZsaWN0czoKKyAgICAKKyAgICAJYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jCisgICAgCWFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYworICAgIAlhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMKKyAgICAJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jCisgICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jCisgICAgCWFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYworICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKKyAgICAJYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYworICAgIAlhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jCisgICAgCWFnZW50L3NubXBkLmMKKyAgICAJc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMKKworY29tbWl0IGQ4NmM0N2YwMDNmZGMxOTJiY2U3YjQ2YWM0ZjA2YjA5ZTM4N2MxMmIKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDQgMTM6Mjk6MDggMjAxMiArMDEwMAorCisgICAgRml4ZWQgYSB0eXBvCisKK2NvbW1pdCBiZWU0ZDc5Y2Y0ZWI3ZTBhNDUzOTdmNTliNTI5OGRhNjMzYThlMWJhCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiA0IDEzOjE0OjU3IDIwMTIgKzAxMDAKKworICAgIEZpeGVkIHJlYWRpbmcgcGFzdCBlbmQgb2YgYnVmZmVyLgorCitjb21taXQgM2RjMGUwMGEyZmQ4ZTM0ZmUxYWUzM2VjYWJmMzZlMTQ2NDYwYTMxZgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBKYW4gNCAxMjo0MDowNyAyMDEyICswMTAwCisKKyAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBsYXJnZSAndG9rZW4nIGlzIHVzZWQuCisKK2NvbW1pdCBiM2M0OTgyNTQyZTBhYjE1MWZiMzg4NDc1NGNkZmJjYjQ3MmRhNTJkCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiA0IDEyOjI4OjUyIDIwMTIgKzAxMDAKKworICAgIEZpeGVkIG9mZi1ieS1vbmUgbWVtc2V0LgorCitjb21taXQgMGY1MzY5NTA0NGRkM2YwYzM1MDc3NTNlM2Y4YzI5ZDk3ZTk2ODcyZAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEF1ZyAzIDIxOjM4OjI2IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkLCBwZXJsOiBFbGltaW5hdGUgZGVhZCB2YXJpYWJsZXMKKyAgICAKKyAgICBDb25mbGljdHM6CisgICAgCisgICAgCWFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYworICAgIAlhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jCisgICAgCWFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYworICAgIAlhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmMKKyAgICAJYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmMKKyAgICAJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMKKyAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMKKyAgICAJYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jCisgICAgCWFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYworICAgIAlhcHBzL3NubXB0bHMuYworICAgIAlhcHBzL3NubXB0cmFwZF9sb2cuYworICAgIAlzbm1wbGliL2Rpcl91dGlscy5jCisgICAgCXNubXBsaWIvc25tcF9jbGllbnQuYworICAgIAlzbm1wbGliL3NubXBfb3BlbnNzbC5jCisgICAgCXNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMKKworY29tbWl0IDAxNTM4MDVjOTliOTE5NzM2NTkzNWM1ZDExYWU5YzNkNGJmYWEwZjMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBKYW4gNCAwOTo0ODo0MSAyMDEyICswMTAwCisKKyAgICBGaXggYSBzZXQtYnV0LW5vdC11c2VkIHdhcm5pbmcKKworY29tbWl0IDNmODg4NWZiZWU5NDA3NzQ4ZmMyZjA1NzM3MjhhMTFiYTJiYzAyM2EKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgQXByIDI4IDA1OjUxOjEzIDIwMDkgKzAwMDAKKworICAgIFJldHVybiBhIHZhbHVlIGZyb20gc3ByaW50X3JlYWxsb2NfdmFsdWUgZXZlbiBpZiBubyBzdWJ0cmVlIGlzIGxvY2F0ZWQuCisgICAgCisgICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc1NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKK2NvbW1pdCBiMWVhYWYzMDIzNjlmZDQ1NTJlOGZlZTdiNmE4MDUwOTFlYzBhOWI0CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiA0IDExOjM4OjUxIDIwMTIgKzAxMDAKKworICAgIEFkZGVkIGNoZWNrIG9mIGZpbmRfc2VjX21vZCgpIHJldHVybiB2YWx1ZS4KKworY29tbWl0IGFlZTRlODk1ZmUzYmQ1ZjRhNjFlMzQyNzViZmNhMDM2OGI1NjA1NTUKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDQgMTE6MzE6MjIgMjAxMiArMDEwMAorCisgICAgQWRkZWQgY2hlY2sgb2Ygc25tcF9zZXNzX3RyYW5zcG9ydCgpIHJldHVybiB2YWx1ZS4KKworY29tbWl0IDVkMWQwYTc0NGFiMzBjOGU2NDVjM2I4NTA2Y2JiZDJjY2ViM2QyNzUKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDQgMTE6MDQ6NDggMjAxMiArMDEwMAorCisgICAgQWRkZWQgY2hlY2sgb2YgbmV0c25tcF9leHRyYWN0X2l0ZXJhdG9yX2NvbnRleHQoKSByZXR1cm4gdmFsdWUuCisKK2NvbW1pdCAyOTllYTlhODljM2YxNzU4YTc3NDhiYjliMzQxMWY2MmYyYzcwZjg4CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIEphbiA0IDEwOjU0OjU1IDIwMTIgKzAxMDAKKworICAgIEFkZGVkIGNoZWNrIG9mIGZvcGVuKCkgcmV0dXJuIHZhbHVlLCBqdXN0IGluIGNhc2Ugb2Ygc29tZSByYWNlLgorCitjb21taXQgOTBmMWFlNjc1NzkxNzQ4MTYzNmVlZjc3MTAwY2FlZWI1M2VkZmUwMQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIEphbiAzIDEwOjA2OjU2IDIwMTIgKzAxMDAKKworICAgIEFkZCBzdHJsY2F0LmMuIFNvdXJjZTogaHR0cDovL3d3dy5mcmVlYnNkLm9yZy9jZ2kvY3Zzd2ViLmNnaS9zcmMvbGliL2xpYmMvc3RyaW5nL3N0cmxjYXQuYy4KKworY29tbWl0IDA4OWJjYjM2MGFhMjY3OTBhZDJhOGNlZGRmNTgzYjdiYTVkZGZkNDgKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgSmFuIDQgMTA6NTA6NTYgMjAxMiArMDEwMAorCisgICAgQWRkZWQgc3RycmNociByZXR1cm4gdmFsdWUgY2hlY2ssIGp1c3QgdG8gYmUgc3VyZS4KKworY29tbWl0IDE5OWEwNTExZjZlYjBlZjNmZjFkOWY5MjJiNzkwYWI2N2RmZGUwMWUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBKYW4gNCAxMDozMToyNiAyMDEyICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogc211eDogc2ltcGxpZnkgc211eF9saXN0X2RldGFjaCgpCisKK2NvbW1pdCBkODgzNTczYWE3M2UwZjVmYzE4OGFjZWRlZTY0NTFmOTVkYWU5MDBjCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgSmFuIDQgMTA6MjM6MDYgMjAxMiArMDEwMAorCisgICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCBhODA5ZmU1MDc1YzlmMzc0NzE1ZjdkMWE2ODI5NDlhMDczMDE3MmMxLgorCitjb21taXQgN2I3YTNlYjI1MDA1MjdlYWExNjk5Mjg3YTZjYTZmY2M0Y2MyZTA4YQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIEphbiA0IDA5OjQwOjAyIDIwMTIgKzAxMDAKKworICAgIEZpeCBhIGJ1aWxkIGVycm9yIGNhdXNlZCBieSBjb21taXQgYTgwOWZlNTA3NWM5ZjM3NDcxNWY3ZDFhNjgyOTQ5YTA3MzAxNzJjMS4KKworY29tbWl0IDJiNmMxMTlmZWQ0ODQ4ZGE2NjYzYzExZjBjMmNiZGMyOTkyMWI1YzYKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDMgMTU6NTE6MTAgMjAxMiArMDEwMAorCisgICAgQ2hlY2sgZm9yIG5ldHNubXBfZHNfZ2V0X2ludCgpIGVycm9ycy4KKworY29tbWl0IDZjZTUzNjBjYWE0YzlkZTUxYWRlNTc4NzllODNmOTZiZDA0YjRjNWEKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDMgMTU6NDI6MjMgMjAxMiArMDEwMAorCisgICAgQ2hlY2sgZm9yIG1pc3Npbmcgdmlldy4KKworY29tbWl0IGIzYmM1NGJlZDMxNjkwYTg1ZGYyYWNmYmYzMjk2ZGE5M2E5ZTg5YjQKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDMgMTU6MjM6MTcgMjAxMiArMDEwMAorCisgICAgQ2hlY2sgc29ja2V0KCkgcmVzdWx0LgorICAgIEFsc28gY2xvc2UgdGhlIHNvY2tldCBvbiBlcnJvci4KKworY29tbWl0IDkyMDc1ZjUxY2Q0NWEzOGNhMzg3NjBiM2ZmZTgyZTE2NTU5ZTljMmUKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDMgMTU6MTg6MjYgMjAxMiArMDEwMAorCisgICAgQ2hlY2sgb3BlbigpIHJlc3VsdC4KKworY29tbWl0IDY2NjVkNWZlMmZjNTY5ZDZmYTg1NGQxZDc4ZTM0N2JiYWM2OWUwNzAKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDMgMTQ6MjI6MjIgMjAxMiArMDEwMAorCisgICAgRml4ZWQgbWlzc2luZyBicmVhay4KKworY29tbWl0IGE2NjQ4YzU0NTNlMWVmOGRhYzU3YTM4ZWZjYzAwY2NlNTNiZjllNGYKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDMgMTQ6MjA6MjcgMjAxMiArMDEwMAorCisgICAgRml4ZWQgbWlzc2luZyBicmVhay4KKworY29tbWl0IGQ2OGRjYWUwZjE4ZDU1NDU3MWFlZjMyMTk0NGE1MjkwNTQ4ZGRlODYKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDMgMTQ6MTY6MTEgMjAxMiArMDEwMAorCisgICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KKworY29tbWl0IGZiNmY4MGMwZmUzYmEzNmU1NmY1YjkxMWE0N2UzZjZmMzJiYTI2NmUKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUdWUgSmFuIDMgMTQ6MTQ6MDcgMjAxMiArMDEwMAorCisgICAgRml4ZWQgZXhpdCBjb2RlIG9mIGVuY29kZV9rZXljaGFuZ2Ugd2l0aCB3cm9uZyBhcmd1bWVudHMuCisgICAgQWxzbyBhZGRlZCBhIGNvbW1lbnQgZm9yIENvdmVyaXR5LgorCitjb21taXQgMzEzMGUyNGZkYzIzMjQ2NGRkN2JiMjE2ZjQ2Y2FmYTJlMGU3NzVhNgorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMyAxNDowOTo1NCAyMDEyICswMTAwCisKKyAgICBBZGRlZCBtaXNzaW5nIGJyZWFrCisKK2NvbW1pdCAxOGMxMjZhOTU2NWNiNGQ2OWQ3NTEzYjk0NGEyMTA1NTg4MDQ1ZDM1CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAzIDE0OjA3OjI5IDIwMTIgKzAxMDAKKworICAgIEFkZGVkICdmYWxsdGhyb3VnaCcgY29tbWVudCBmb3IgQ292ZXJpdHkuCisKK2NvbW1pdCA2ZDMxYzgyMDcwYTJjNjhmZTNjNTE5ZTlkNTZmYTI3Nzk1NTRkMDFmCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAzIDE0OjAxOjUzIDIwMTIgKzAxMDAKKworICAgIEFkZGVkICdmYWxsdGhyb3VnaCcgY29tbWVudCBmb3IgQ292ZXJpdHkuCisKK2NvbW1pdCBkYzZmMGUyZTU0OWI0Y2QwNjFlYmMxOTAwODRiMWZjNzdhNTVmNDBmCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAzIDEzOjMyOjU5IDIwMTIgKzAxMDAKKworICAgIEZpeGVkIHdyb25nIG9wZXJhdG9yCisKK2NvbW1pdCBkYWIzMjg2N2VkMGI5OTMwMWVmZDdiOGQ4NTJhZDEyODhhMTg0YmUwCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAzIDEzOjMwOjMzIDIwMTIgKzAxMDAKKworICAgIEZpeGVkIFFVSVRGVU4gdXNhZ2UuCisKK2NvbW1pdCBiMWEyYmNmNjQ2MTVlYjY2YmMyNGQ1YmU0OTUwZTQ1MDEyOTYyMDQ1CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAzIDEzOjE4OjAzIDIwMTIgKzAxMDAKKworICAgIEZpeGVkIHdyb25nIG9wZXJhdG9yCisKK2NvbW1pdCBiMmIxYzg1MWI5NGZlZDM3YzM4NmVhYTFiZmVhZDVjNzc2OTZlM2VmCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAzIDEzOjE0OjUyIDIwMTIgKzAxMDAKKworICAgIEZpeGVkIHdyb25nIG9wZXJhdG9yCisKK2NvbW1pdCBhODA5ZmU1MDc1YzlmMzc0NzE1ZjdkMWE2ODI5NDlhMDczMDE3MmMxCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgVHVlIEphbiAzIDEwOjU4OjQ2IDIwMTIgKzAxMDAKKworICAgIEFkZGVkIGNoZWNrIGZvciBmYWlsZWQgcmVnaXN0ZXJfbWliLgorCitjb21taXQgNTk0OWYwNTVjMTZhZTY1MDYxNWFhZTdhMWZlZTNmMmQ3YjE2ZDk0MAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFR1ZSBKYW4gMyAxMDoyOTo1OSAyMDEyICswMTAwCisKKyAgICBNYWtlIE1JQiBmaWxlIHBhcnNpbmcgYW5kIGRldGVjdGlvbiBtb3JlIHN0cmljdCAtIExBQkVMIGlzIHJlcXVpcmVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgTUlCIGZpbGVzLgorCitjb21taXQgZTRiNjczNjgzYzY4YmE4YjNhYmMwNDBiOTEyNWVjMzA0NjQzY2M3YworQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIEphbiAxIDIzOjAwOjI0IDIwMTIgKzAxMDAKKworICAgIEFzc3VtZSB0aGF0IGxpYmRsIG1pZ2h0IGJlIGluIEFHRU5UTElCUyBvciBTTk1QTElCUyBzbyBwcmVhZGQgdGhlbS4KKworY29tbWl0IGIxM2MxZTU3YmVkYmE3OWI4MDYxMDNjNzRmMTkyMWQ1M2E3MDZiMzgKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBKYW4gMSAyMjo1NTowNiAyMDEyICswMTAwCisKKyAgICBEbyBub3QgcmVxdWlyZSB1Y2Qtc25tcC9kbG1vZCB1bmxlc3MgaXQgd2lsbCB3b3JrLgorCitjb21taXQgMjdkY2VhMGQ1ZjgwMWRmNDk0YWIyY2I1YzVjMGViZTU0ZWIwZGNkMworQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IERlYyAzMSAxNDo0ODoyOSAyMDExICswMTAwCisKKyAgICBBZGp1c3QgcGF0aHMgZm9yIHRlc3QgcmVzdHJ1Y3R1cmUKKworY29tbWl0IDE0YjYwZTg1YTFiNTcwMGU5M2QxMjZlMmYyOTFkNWM0ODVmMzRlMzYKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBEZWMgMzEgMTQ6MTQ6MjkgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IE1ha2UgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGRsbW9kIG1vZHVsZSBmYWlsIHJhdGhlciB0aGFuIGdlbmVyYXRlIGEgZHVtbXkgbW9kdWxlIGlmIHRoZSBkbG9wZW4gZnVuY3Rpb24gaXNuJ3QgYXZhaWxhYmxlLgorCitjb21taXQgOThhOTc1MzhmYzFlOWZmNDZiNjBkNWQ5NjkzNDc0NDQ1NzgzNzhjMAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IERlYyAzMSAxMzozNToxMyAyMDExICswMTAwCisKKyAgICBBZGp1c3QgdGhlIHBhdGhzIHRvIHN1cHBvcnQgdGVzdGluZyBldmVuIGlmIGJ1aWxkZGlyICE9IHNyY2RpcgorCitjb21taXQgODhmMGFmM2NmYjkxNmFlNTg2M2NjMjk4NjA3MWQ0MzVmMjBjMzA2NAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IERlYyAzMSAxMTozNzo1MiAyMDExICswMTAwCisKKyAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSB2YXJpYWJsZXMgJ3AnIGFuZCAnbGVuJy4KKworY29tbWl0IDA4MTVhNzUzNmM3NmY3ZTQ4NDI2Mzg2ODNmNjc0ODk0YTFhOGNlMTQKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgRGVjIDI5IDE0OjQyOjU0IDIwMTEgKzAwMDAKKworICAgIFJlcG9ydCBwcm9ibGVtcyB3aXRoIFNldFVuZG8gcHJvY2Vzc2luZworICAgIE1pc3NlZCB3aGVuIGFwcGx5aW5nIHBhdGNoICMzNDQ1NDQwCisKK2NvbW1pdCBlYjJhYjIzNzQyY2E4NmMwYjg5Y2NmZTkxZWI2ZWEzNzRiZjNhY2MxCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVGh1IERlYyAyOSAxNDozNzozMSAyMDExICswMDAwCisKKyAgICBDaGVjayBmb3IgdGhlIGV4cGVjdGVkIGVycm9yIChFUElQRSkgb24gY2xvc3VyZS4KKyAgICBNaXNzZWQgd2hlbiBhcHBseWluZyBwYXRjaCAjMzQ0NzQ0NAorCitjb21taXQgYWFjMTBiYzRmMDUzYzAxNGYzODJkNjU5M2ZjMzJhYjk1ZTBiMWE1NworQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFRodSBEZWMgMjkgMTI6NTk6NTIgMjAxMSArMDAwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQ2Mzc2NzogSGFuZGxlIHBhcnNpbmcgc3ViaWRlbnRpZmllcnMgPiAyXjMxCisKK2NvbW1pdCBiYmMwMmUzNmU5MGMxYWFiNzg5ODU2MmY5NjNmNWNhZGIyNmUxMGJkCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgV2VkIERlYyAyOCAxNzoxNToxNiAyMDExICswMDAwCisKKyAgICBNb3ZlIHBhc3MvcGFzc19wZXJzaXN0IHRlc3RzIHRvIHRoZSBuZXcgbG9jYXRpb24KKworY29tbWl0IDM4OThjMDRmZDZmODk4NjcwNjJmZGZlYmYzNjg1N2FiNjE5YzA0NTAKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBXZWQgRGVjIDI4IDE2OjUzOjI0IDIwMTEgKzAwMDAKKworICAgIEFkZCB0ZXN0cyBmb3IgcGFzcy9wYXNzX3BlcnNpc3QsIHN1cHBsaWVkIGJ5IEJpbGwgRmVubmVyCisKK2NvbW1pdCBkNWVlM2YwYTFhNjNiYjE3NTJjNzRjYmNhNTVhYTNkNDBiZjliZjEzCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIERlYyAyNyAyMTo1ODo1MSAyMDExICswMDAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ0NzQ0NDogRml4IFNJR19QSVBFIGhhbmRsaW5nCisgICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKKworY29tbWl0IDJhMTdiMzc0MzBjMTg1Mjk5OGMzNTg4ZTU0N2Q3ZWI2MWMwNmRhNzEKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgRGVjIDI3IDIxOjQ1OjM4IDIwMTEgKzAwMDAKKworICAgIENIQU5HRVM6IGFnZW50eDogUEFUQ0hFUzogMzQ0NTQ0MDogTW9yZSByb2J1c3QgaGFuZGxpbmcgb2YgQWdlbnRYIGVycm9ycworICAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCisKK2NvbW1pdCBmZTU4YTBlNWY0ZDRlMmUyZWNiY2I0NzM4MmIwOGNiMWU0ZGYzNTJjCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIERlYyAyNyAxODoxNjoyMyAyMDExICswMDAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzNDU2NzcwOiBIYW5kbGUgKG9ic29sZXRlKSBVSW50ZWdlciB0eXBlIHByb3Blcmx5CisgICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKKworY29tbWl0IDFiZThjZjA4YTY3YTkxODU1ZmVlMWVjNGEyZDhlMDg3Yzc4MTI0NTYKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgRGVjIDI3IDE4OjA0OjEwIDIwMTEgKzAwMDAKKworICAgIENIQU5HRVM6IGFnZW50eDogUEFUQ0hFUzogMzQ0NTQzNzogTG9nIEFnZW50WCBkaXNjb25uZWN0aW9ucworICAgIChpbiBsaW5lIHdpdGggY29ubmVjdGlvbnMpIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCisKK2NvbW1pdCAwNjgwMzcyODkxMDdmYWEyYmEzZjVjZDJmYjAwYzE5NDk0YmI5YTA0CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIERlYyAyNyAxNzoyNzo0NiAyMDExICswMDAwCisKKyAgICBIYW5kbGUgYW55IEdFVE5FWFQgcmVxdWVzdCBPSUQsIG5vdCBqdXN0IGEgc2ltcGxlIHdhbGsuCisKK2NvbW1pdCBhNzRmYTUyODk4MzEyM2QzNTVhOGNkY2FhNzdkZDRlYjRiOGM2OTU5CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIERlYyAyNyAxNzowMDoxOCAyMDExICswMDAwCisKKyAgICBDSEFOR0VTOiBwYXNzOiBQQVRDSEVTOiAzNDkzOTQ6IEJyaW5nIHBhc3NfcGVyc2lzdHRlc3Qgc2NyaXB0IGludG8gbGluZSB3aXRoIHBhc3N0ZXN0KgorICAgIChpLmUuIHVzaW5nIHRoZSBsZWdpdGltYXRlIHN0cnVjdHVyZSBvZiBORVQtU05NUC1QQVNTLU1JQikKKyAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgorCitjb21taXQgYmJlNjQ5ZWJmYTYxZWEyMjM5OTE3MGIzNmI5OWRiMzBhMWRlODAxMgorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBEZWMgMjcgMTY6NTQ6MzggMjAxMSArMDAwMAorCisgICAgUmV3b3JrICJwYXNzdGVzdCIgZXhhbXBsZSB0byBmdWxseSB2YWxpZGF0ZSBHRVRORVhUIHJlcXVlc3RzCisgICAgYW5kIHVzZSBhIGxlZ2l0aW1hdGUgc3RydWN0dXJlIGZvciBvdXRwdXQuICBCYWNrcG9ydCBvZiBTVk4KKyAgICByZXZpc2lvbiAxNzYzMiAod2hpY2ggdXBkYXRlZCAncGFzc3Rlc3QucGwnIGJ1dCBtaXNzZWQgJ3Bhc3N0ZXN0JykKKyAgICBDb3JyZWN0IGluIGJyYW5jaGVzIDUuNSBhbmQgYWJvdmUKKworY29tbWl0IDgyZDA2YzcyNDdiMjJjOGIwMWQ0NWJmNTUwNDFkMmYxZTY0MjdkNDkKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgRGVjIDI3IDEzOjQ1OjE4IDIwMTEgKzAwMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDQ3NjcxOiBGaXggb3ZlcnJpZGUgaGFuZGxpbmcgb2YgT0lEIHZhbHVlcworICAgIFBhdGNoIHN1cHBsaWVkIGJ5IFBoaWxsaXAgTydEb25uZWxsCisKK2NvbW1pdCBiYTRhOWNlNTFjOTYwMGY5ZmRhMTY4ZjFlNmVmZjMyYTFkYjYzY2I5CitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIERlYyAyNyAxMzoyNDoyNiAyMDExICswMDAwCisKKyAgICBUd2VhayAtLWRpc2FibGUtc25tcC1zZXQgY2hhbmdlcworCitjb21taXQgODI3YzhiMjg4MzAxNzFmYWE5YzYxZDUzZWZjYTllYjY2MDA1NjFjMgorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBEZWMgMjcgMTE6MjU6NDMgMjAxMSArMDAwMAorCisgICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSEVTOiAzNDMzODQ2OiBGaXggZm9yIHVzZSB3aXRoIHB5dGhvbiAyLjQKKworY29tbWl0IGY5OGE1NGE5OWNhZjdiNDZiMTAwYTkyMGRiOTQyY2JjYTljNDM5MjYKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUdWUgRGVjIDI3IDEwOjEwOjM2IDIwMTEgKzAwMDAKKworICAgIFNraXAgU0VULWJhc2VkIHRlc3RzIHdoZW4gY29uZmlndXJlZCB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAorCitjb21taXQgMjMwZGYxNGY5NGMzNzM2ZmYzNDM3OWE0ZTI4MWVlYTM1M2I0N2Y4MAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgTW9uIERlYyAyNiAyMzozNDoyMyAyMDExICswMTAwCisKKyAgICBEbyBub3QgYXNzaWduIHRtU3RhdGVSZWYgdHdpY2UKKworY29tbWl0IGM5NmIzYjRkODUzMGFkNWUwZWZiMDNmMjRkYWI1ZTVmMWE0NjAwMzEKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBEZWMgMjUgMTE6MTg6MjEgMjAxMSArMDEwMAorCisgICAgQ29ycmVjdCB1c2UtYWZ0ZXItZnJlZS4KKworY29tbWl0IGM1OTc4Yzg5Y2RlMjQ0MGY0ZDIwZGFkYmM5ZDFkZDhkYjU2MmQ1NmUKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBEZWMgMjUgMTE6MTU6NDQgMjAxMSArMDEwMAorCisgICAgQ29ycmVjdCBkb3VibGUtZnJlZS4KKyAgICAKKyAgICBuZXRzbm1wX3Rsc3RtQWRkcl9hZGQgdGFrZXMgb3duZXJzaGlwIG9mIGl0J3MgYXJndW1lbnQgc28gY2FsbGluZyBmcmVlIG9uIHRoZQorICAgIGFyZ3VtZW50IG9uIGZhaWx1cmUgaXMgaW5jb3JyZWN0LgorCitjb21taXQgYzEzOWNhMTIzYjQ0YmIzYjliNmJmOTIxZTE2MDljYzQ1ZjYzYTY2MAorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFNhdCBEZWMgMjQgMTY6NTU6MzAgMjAxMSArMDAwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVMgMzQxMDA1OTogRml4IHNwYXJzZWx5IGF1Z21lbnRpbmcgdHJpZ2dlciB0YWJsZXMKKyAgICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIFR1cm5lcgorCitjb21taXQgYzRhZTAyMWIyZTYzODQ0MzcwODFjNTYyM2YzNjBjODg5NjM5MDE4OAorQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFNhdCBEZWMgMjQgMTY6Mjk6NTQgMjAxMSArMDAwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVMgMzQxMDA1MDogU2tpcCBhbHJlYWR5LSdwcm9jZXNzZWQnIHZhcmJpbmRzCisgICAgQmFzZWQgb24gbWliMmMgcGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBUdXJuZXIKKworY29tbWl0IGM2YWNjZjhjNjYyNTRmYThjNDg3NjdlZDdkZWM3OTVkZGFmYzUyMmUKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBTYXQgRGVjIDI0IDE2OjI3OjExIDIwMTEgKzAwMDAKKworICAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTIDM0MTAwNTA6IFNraXAgYWxyZWFkeS0ncHJvY2Vzc2VkJyB2YXJiaW5kcworICAgIFBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gVHVybmVyCisKK2NvbW1pdCBhNjE4MjZhZDhjYTU0NjYxZDFkOTA5NzEyNTAzYmQzYThiMzJlZWQwCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBUaHUgRGVjIDIyIDE4OjM1OjQ2IDIwMTEgKzAxMDAKKworICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCisgICAgCisgICAgbXlNYXRjaCBpcyB1bnVzZWQgYXMgbm1hdGNoIGlzIHplcm8gYW5kIGFsc28gc2luY2UgcmVnZXhCdWZmZXIgaXMgY3JlYXRlZAorICAgIHdpdGggUkVHX05PU1VCIHNldC4KKworY29tbWl0IGJhNGZjODBmZTJjZmQ1YTVkODkyMzBkOGYzNzAzZTRmZTAxZTYwMTkKK0F1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorRGF0ZTogICBUaHUgRGVjIDIyIDE5OjI0OjQwIDIwMTEgKzAwMDAKKworICAgIENIQU5HRVM6IGFnZW50OiBQQVRDSCAzNDAyMzc2OiBmcm9tIExlb25hcmRvIENoaXF1aXR0bzogUmVjb2duaXNlIFJlaXNlckZTCisgICAgQWxzbyBtb3ZlIHZhcmlvdXMgRlNUeXBlIGRlZmluaXRpb25zIHRvIHRoZSBhcHByb3ByaWF0ZSBibG9ja3MKKworY29tbWl0IGI1YWM0YTA0ZGNkNTQ3MGQwOGQwMzMyMWFiY2QxZTk4MjYyMWU2ZTAKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgRGVjIDIyIDE0OjM5OjQ2IDIwMTEgKzAxMDAKKworICAgIEZpeGVkIHVudGVybWluYXRlZCBzdHJpbmdzIGFmdGVyIHN0cm5jcHkKKworY29tbWl0IDJiMzdlNGU4ZjI1MGEwZDg4MjExOTlhNzRhYzNmNGU1YjdiN2JhYmEKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgRGVjIDIyIDE0OjMxOjUxIDIwMTEgKzAxMDAKKworICAgIEZpeGVkIHVudGVybWluYXRlZCBzdHJpbmdzIGFmdGVyIHN0cm5jcHkKKworY29tbWl0IDNkMDgzNDUxNTZjNDE5MzMzZGU5NjlmMTNkMjFmY2VjN2UxOGU5NGQKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgRGVjIDIyIDE0OjMyOjI5IDIwMTEgKzAxMDAKKworICAgIEZpeGVkIHVudGVybWluYXRlZCBzdHJpbmdzIGFmdGVyIHN0cm5jcHkKKworY29tbWl0IGNkODU5YWQ1MWM0ZjE4ZDViMGZjNjlkZDY2OWZjYjA1MWM3OTg5NjkKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBUaHUgRGVjIDIyIDE0OjM5OjMzIDIwMTEgKzAxMDAKKworICAgIEZpeGVkIHdyb25nIG1lbW1vdmUgc2l6ZQorCitjb21taXQgMzBmZjU4ZDA5ZDRjOWQ1NDM4YmI2MjEwNTRmZDdhZDdhMmE1OTdlNAorQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBEZWMgMjIgMTQ6MDc6MTkgMjAxMSArMDEwMAorCisgICAgRml4ZWQgd3JvbmcgbGVuZ3RoIG9mIGJ1ZmZlciB3aGVuIHByaW50aW5nIEFTTl9CSVRfU1RSCisKK2NvbW1pdCA2YzE0ODdlMWQzNjBkM2QyNjBhMzljYjFmNWIxNWRhOTc4Mzk1MDUzCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIERlYyAyMSAxNTo0NzozNCAyMDExICswMTAwCisKKyAgICBGaXhlZCBwb3RlbnRpYWwgZnJlZSBvZiB1bmluaXRpYWxpemVkIHBvaW50ZXIgaW4gZXJyb3IgY2FzZXMKKworY29tbWl0IGM3NmZiOTZmNjVlMzNiYTJmZDIxMmE5MjFlOGMzODYxNTVlZTVjN2EKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgRGVjIDIxIDE1OjQ0OjQ2IDIwMTEgKzAxMDAKKworICAgIEZpeGVkIHVuaXRpYWxpemVkIHZhbHVlcyBpbiB1ZHBUYWJsZQorCitjb21taXQgYzQ0NjA4Njc5Yjg5NzUxMTc2ZjI4YTJlNTRkNTI4MmI0NmUyYTA1YworQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFdlZCBEZWMgMjEgMTQ6NTY6MTMgMjAxMSArMDEwMAorCisgICAgVXNlIGNhbGxvYyBpbnN0ZWFkIG9mIG1hbGxvYyBhbmQgbWFudWFsIGNsZWFyaW5nCisKK2NvbW1pdCBhMDVjNWY5NTEzNDYxODI0ZTc5MDNhZTlhZTlhNmMzMzg2ZTMzODc5CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIERlYyAyMSAxNDo0MDo1MCAyMDExICswMTAwCisKKyAgICBGaXhlZCBwcmludGluZyBvZiB1bml0aWFsaXplZCB2YXJpYWJsZSB3aGVuIHNlbnNvcnNfZ2V0X2xhYmVsKCkgZmFpbHMKKworY29tbWl0IGU0YTVlZGM3MjM5M2JkM2RlOWJmMTJiY2ViYTlkODNiYmY3ZGU3MGIKK0F1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgRGVjIDIxIDE0OjMxOjI1IDIwMTEgKzAxMDAKKworICAgIFJlbW92ZWQgdW51c2VkIHZhcmlhYmxlCisKK2NvbW1pdCBmYWUyZTViODM1YjhkZjFlYWU0N2U0Y2ViYjRlYjQwNGQ3MjgyMzc3CitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIERlYyAyMSAxMzozMToyMSAyMDExICswMTAwCisKKyAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIHVuaXRpYWxpemVkIGlpZCBpbiBlcnJvciBjYXNlcyBhbmQgd2l0aCBkZWJ1ZyBpbmZvIGVuYWJsZWQuCisKK2NvbW1pdCA5ZDU4ZjgxYTkyMzljZmJjZmM4ZWJjZTM2N2QyMWU5YjNkY2IwMjhiCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIERlYyAyMSAxMzozMzozMyAyMDExICswMTAwCisKKyAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGluIGVycm9yIGNhc2VzCisKK2NvbW1pdCAwYmM4YzA4ZWRlYWU3YWUwOTVmMTE2MjU4YzIwYWU1NzY3ZDYwNjUyCitBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgV2VkIERlYyAyMSAxMzoyMDo1MiAyMDExICswMTAwCisKKyAgICBGaXhlZCByZXR1cm5pbmcgdW5pbml0aWFsaXplZCB2YXJpYWJsZSAnc3RhdHVzJyB3aGVuIHNzID09IE5VTEwKKworY29tbWl0IDczMDRjNTNjZjhhZGVlOGVjY2VmMWE4ZjI2NzU2ZmMwN2YwOTg3MjEKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBEZWMgMTggMjM6MzE6NTMgMjAxMSArMDEwMAorCisgICAgT24gc29sYXJpcyAxMCB0ZXN0IGluIC9iaW4vc2ggZG9lc24ndCBzdXBwb3J0IHRoZSAtZSB0ZXN0LiBSZXBsYWNlIGl0IHdpdGggLWYKKworY29tbWl0IDhjZDNiZTYwZDY5M2M5YzM2ZmZiOTdkM2Q5YmNiNDljMWI0YWJlMzUKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBEZWMgMTcgMDg6NTI6MjQgMjAxMSArMDEwMAorCisgICAgQXZvaWQgcmVwZXRpdGlvbiBvZiB0aGUgY29tcGxleCBleHByZXNzaW9uIGRldGVybWluaW5nIGlmIGl0IGlzIHBvc3NpYmxlIHRvIGdldCB0aGUgZGVzdGluYXRpb24gYWRkcmVzcy4KKyAgICAKKyAgICBUaGlzIGFsc28gbWFrZXMgaXQgcG9zc2libGUgdG8gYnVpbGQgb24gcGxhdGZvcm1zIGxpa2UgU29sYXJpcyAxMCB0aGF0IGRlZmluZQorICAgIElQX1JFQ1ZEU1RBRERSIGJ1dCBsYWNrIGVpdGhlciBvZiBtc2doZHIubXNnX2NvbnRyb2wgYW5kIG1zZ2hkci5tc2dfZmxhZ3MuCisKK2NvbW1pdCA5NTNmMmUzZDQyNWVkZTNiODYzYTJlN2NjYjBiNGJjODYyOTI4YjU3CitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTYXQgTm92IDUgMjI6MTM6MDcgMjAxMSArMDEwMAorCisgICAgTW92ZSB0aGUgdXNlIG9mIF9zZW5kdG8gYW5kIF9yZWN2ZnJvbSBiZWxvdyB0aGVpciBkZWZpbml0aW9ucy4KKworY29tbWl0IDY4YTExNzNjNDZjZjc3NjAxNDI2Y2YzOTFkOWE4NTI3OTRmMjA1N2UKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBOb3YgMjAgMjA6MDU6MTggMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogU2VwYXJhdGUgb3V0IHRoZSBjbWVzZyBidWZmZXIgc2l6ZQorCitjb21taXQgNDYxZGQxNmYzYjI2NDczMjJjZGNlNjM2MzA4MWNjNDRiYTVhNDliNQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IE5vdiAyNiAyMTo1MTowMSAyMDExICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBNZXJnZSB0b2dldGhlciB0aGUgTGludXggYW5kICpCU0QgdmVyc2lvbiBvZiBzcmMgcG9ydCBzZW5kaW5nLgorCitjb21taXQgN2FjY2I2OWJhYTFmYzBiNmEzNDM5ZDJlNTQ5Yzg2ZGEzNDUzYmFkMgorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIERlYyAxMSAxOTozMDozMSAyMDExICswMTAwCisKKyAgICBVc2UgYSBiYXJlIHN0cnVjdCBpb3ZlYyBpbiBpbnN0ZWFkIG9mIGEgb25lIGVsZW1lbnQgYXJyYXkuCisgICAgCisgICAgVGhlIHB1cnBvc2Ugb2YgdGhpcyBjaGFuZ2UgaXMgdG8gbWFrZSBfcmVjdmZyb20gbW9yZSBzaW1pbGFyIHRvIF9zZW5kdG8uCisKK2NvbW1pdCAzOTg1MmNkNGM4NWVmMmJmYzc1Y2RlYTI4MjUyNjFlZTkzZTc2OGMyCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gRGVjIDExIDE5OjI5OjIwIDIwMTEgKzAxMDAKKworICAgIEFkZCBjb21tZW50IGRlc2NyaWJpbmcgdGhlIHB1cnBvc2Ugb2YgdGhlIGNhbGwgdG8gZ2V0c29ja25hbWUgYWZ0ZXIgYWxtb3N0IHJlbW92aW5nIGl0LgorCitjb21taXQgMWIyOTJjYTI3ZWFiNWNhYTczZmVhYWE4M2RjOWMxMmFiYzBmMmU3MAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIERlYyAxMSAxOToyNzo1OSAyMDExICswMTAwCisKKyAgICBSZWR1Y2UgdmFyaWFibGUgc2NvcGUuCisKK2NvbW1pdCBiYzg3OTU3MWVjYTk1MjBiYzEzMmY4NDBjM2U2NTlkMzc5MzE0NGQ3CitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gRGVjIDExIDE5OjI1OjM2IDIwMTEgKzAxMDAKKworICAgIEludHJvZHVjZSB0ZW1wb3JhcnkgdmFyaWFibGVzIHRvIGVhc2UgdGhlIGV4dHJhY3Rpb24gb2YgdGhlIHNlcnZlciBhZGRyZXNzLgorCitjb21taXQgYjdlZWE2Y2ZmYmQ4NzI5MzJjZTJjMDRmZWZiNmY0M2RlMzM5ZjM3NAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIERlYyAxMSAxOToxODozMyAyMDExICswMTAwCisKKyAgICBSZW5hbWUgdGhlIGNtZXNncHRyIHZhcmlhYmxlIHRvIGNtLgorICAgIAorICAgIFRoZSBwdXJwb3NlIG9mIHRoaXMgaXMgdG8gaW5jcmVhc2UgdGhlIHJlYWRhYmlsaXR5IG9mIHRoZSBjb2RlLgorCitjb21taXQgMGE3NDYxZTcyODgwNWM2MmExY2FiOWQ4N2JmYzc0Yzc5MjdhOWZjYworQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIERlYyAxMSAxOToxNToyMiAyMDExICswMTAwCisKKyAgICBGYWN0b3Igb3V0IGEgY29tbW9uIGxvb3AgaW4gcmVjdm1zZyBvcHRpb24gcHJvY2Vzc2luZy4KKworY29tbWl0IGIzYzYyNDhkMDIwMWFiMTYxMDg0MGQ2ZDBlNzQ5YjNiNmM0YWQ3OTIKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBEZWMgMTEgMTk6MTM6NDMgMjAxMSArMDEwMAorCisgICAgVW5pZnkgdGhlIHN0cnVjdHVyZSBvZiBMaW51eCBhbmQgQlNEIHJlY3Ztc2cgb3B0aW9uIHBhcnNpbmcgc29tZXdoYXQuCisKK2NvbW1pdCAzNTY0MDBkNjI5MGE0MjNiNTJlYmVlYTVhNWU5NzZmYjE1YmI3M2I0CitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gRGVjIDExIDE5OjA0OjU2IDIwMTEgKzAxMDAKKworICAgIFVzZSBDTVNHX0RBVEEgb24gdGhlIHJlc3VsdCBvZiBDTVNHX0ZJUlNUL05FWFRIRFIsIG5vdCBvbiB0aGUgYnVmZmVyLgorCitjb21taXQgM2IzNTE3MDhjNjJkZTQ2YWExYjkwZWQyMzJjZmQ4YzdjNWIwMjIzMQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IERlYyA4IDEyOjAwOjMyIDIwMTEgKzAxMDAKKworICAgIFJlbW92ZSBhIGNhc3QKKworY29tbWl0IGRlOTI1MGQ5ZGFlOTcyN2E2Y2M3ZjY0NzY4OGRkZGYxYjg1OTcxMjgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBEZWMgOCAxMTo1ODowNCAyMDExICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSBzcHJpbnRfbWliX29pZCgpIHRyZWF0IE9JRCBjb21wb25lbnRzIGFzIHVuc2lnbmVkIGluc3RlYWQgb2Ygc2lnbmVkIGludGVnZXJzCisKK2NvbW1pdCAwZTMzYjNiNmQ1ODU0YTRiYWMxNWQ0ZWE1ZTAxNmM1M2QxNjFkMGNkCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgRGVjIDggMTA6MDI6MjggMjAxMSArMDEwMAorCisgICAgRml4IHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MKKworY29tbWl0IGI3ZTUwZDVmOWE2NzU1OTgyZDJhZjMxOTE0NzNjYjM0NjQzYmMwM2YKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBEZWMgOCAwODozNzoyMiAyMDExICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBSZWR1Y2Ugb3ZlcmhlYWQgb2YgY29uZmlnIGZpbGUgcGFyc2luZworCitjb21taXQgNzNjOWVlNDJkMjhhZmUyZTEwN2E3ZDY2MTZiNmQwMTE4OTBjMzZlYQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IERlYyA4IDA5OjA5OjU5IDIwMTEgKzAxMDAKKworICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCisKK2NvbW1pdCAzZGI5Nzk2MmIzN2ViMTJkMjU0ZDYxZTZiZTIzNGIwNmEzOTFjOGJiCitBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgorRGF0ZTogICBUaHUgRGVjIDggMDc6NDM6NDUgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIIDM0NTM4Njg6IGZyb20gIkJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPiI6IEZhY3RvciBjb21tb24gY29kZSBpbnRvIHBhc3NfY29tbW9uCisgICAgCisgICAgTW92ZSB0aGUgY29kZSBmb3IgcG9ybWF0dGluZyBhbmQgcHJpbnRpbmcgdmFsdWVzIGZyb20gcGFzcyBhbmQgcGFzc19wZXJzaXN0CisgICAgaW50byBwYXNzX2NvbW1vbi4KKworY29tbWl0IGI2NTY4YzgzZjE3NTZlOWE2NTQzNGVkZWVlYjQwZDIzZGRiYmI2NTIKK0F1dGhvcjogY2NjaGl1IDxjY2NoaXVAc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgRGVjIDcgMTY6MjU6MjcgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogQlVHOiAzNDUyMDY5OiBGaXggc25tcHRyYXBfb2lkIGRlY2xhcmF0aW9uIGluIG1pYjJjIGdlbmVyYXRlZCBjb2RlCisgICAgCisgICAgVGhpcyBidWcgd2FzIGludHJvZHVjZWQgY29uc2lkZXJhYmxlIHRpbWUgYWdvLiBJdCBkaWQgYWxyZWFkeSBleGlzdCBhdCB0aGUKKyAgICB0aW1lIHRoZSA1LjYgYnJhbmNoIHdhcyBjcmVhdGVkIChzZWUgYWxzbyBjb21taXQKKyAgICAwZWMwODhhZmEyN2NmZGE0ZTZlYTc4YWFlN2NmYzU1MDc1NjRlZGRlKS4KKworY29tbWl0IGQ0OTRkYjY0YzIwOGI0ZGM2MjgxMzEzMmY4ODYzYmQ1YzFhMzlkNzcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBEZWMgMSAxMDozODoxNyAyMDExICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEVsaW1pbmF0ZSBhbiB1bnVzZWQgdmFyaWFibGUgKE5vdykKKworY29tbWl0IDI4ZjI1NjFiYzI5MzVkOGUxY2JmNDZkMjgyMDE1ODE3M2U3YTRjZjQKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBEZWMgMSAxMDozNzoxMSAyMDExICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IE1vdmUgdGhlIG1haW4gbG9vcCBjb2RlIGludG8gYSBuZXcgZnVuY3Rpb24KKworY29tbWl0IDM5NmUxMjJkZGM0MmE5MTZmMDZhMDI4ODRjMGU4YTI1OGVkYmUyMzgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBEZWMgMSAwOTozMjoxNiAyMDExICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogTWF0Y2ggZWFjaCBnZXRwd25hbSgpL2dldHB3dWlkKCkgY2FsbCB3aXRoIGFuIGVuZHB3ZW50KCkgY2FsbCBhbmQgZWFjaCBnZXRncmVudCgpIGNhbGwgd2l0aCBhbiBlbmRncmVudCgpIGNhbGwuCisKK2NvbW1pdCAzZWZlZmJjMDAyNDM5OTc4NmY4YjY4YjFlOTNiMGE4ZmRkZGRjN2RhCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgRGVjIDEgMTA6NDE6MDEgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcHRyYXBkOiBSZW1vdmUgc3VwZXJmbHVvdXMgY2FzdHMKKworY29tbWl0IDdmMDVkYWE4ZTBlMGY1MzNiMGYxMmEzZTFjZjA3NjQxNTE5OTA5ZDYKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBEZWMgMSAxMTo1ODozMiAyMDExICswMTAwCisKKyAgICBDSEFOR0VTOiBCVUc6IDM0NDQ5Mzk6IEJVRzogMTc5Njg4Njogc25tcGxpYjogQXZvaWQgdGhhdCBzcHJpbnRfcmVhbGxvY19vY3RldF9zdHJpbmcoKSBlbWJlZHMgdW5wcmludGFibGUgY29udHJvbCBjaGFyYWN0ZXJzIG9yIGJpbmFyeSB6ZXJvZXMgaW4gaXRzIG91dHB1dC4gVGhpcyBiZWhhdmlvciBjb3VsZCBjYXVzZSB0cnVuY2F0ZWQgb3V0cHV0IGluIHNubXB0cmFwZC4KKworY29tbWl0IGRiOGY1NThmZDJmM2I3YzEwOWVhM2ExYzIxMzNiNzViNmY4Y2IyYWQKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBEZWMgMSAxMDowNDo0MSAyMDExICswMTAwCisKKyAgICBDb21waWxlciB3YXJuaW5nIGZpeDogcGFzcyB1bnNpZ25lZCBjaGFycyB0byBpc3ByaW50KCkgaW5zdGVhZCBvZiBzaWduZWQgY2hhcnMuCisKK2NvbW1pdCA4MDBkYzEwMjhlN2UwY2Q4Y2MxNGQ4NGRkMzE3MjNkNDdhYzA3M2RiCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBUaHUgRGVjIDEgMTA6MTg6NTggMjAxMSArMDEwMAorCisgICAgUmVkdWNlIHRoZSBzY29wZSBvZiB0aGUgaGludCB2YXJpYWJsZQorCitjb21taXQgODNlYTRhMDgwYzkwYTc0Yjk3NDNkM2YyNGNmMGQ0YjhhMWU4Yzg0OQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIE5vdiAyNyAyMToxNjo1MiAyMDExICswMTAwCisKKyAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSB2YXJpYWJsZSBxb3MKKworY29tbWl0IDdiOWUwMzQ0MWMzZGMzYTA3NjcwZWQwMWY1ZDA0NzkxYTgyYzc1MGMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDQ6MDEgMjAxMSArMDEwMAorCisgICAgUmVtb3ZlICNkZWZpbmUgdmFsKHgpIF9fU1RSSU5HKHgpIGFuZCBjaGFuZ2UgdmFsKHgpIGludG8gX19TVFJJTkcoeCkuCisKK2NvbW1pdCAyZjM3OWIwZTRlY2FkZmE0ZTU0MWUzMDA1YzhmYzgyODE4ODJiNzQxCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgTm92IDMwIDE1OjU4OjQ3IDIwMTEgKzAxMDAKKworICAgIEZvbGxvdy11cCBmb3IgY29tbWl0IDFhYTcwNGU6IHVuYnJlYWsgdGhlIE1TVkMgYnVpbGQKKworY29tbWl0IDY0ZWYwZjcxMTI3NjE3ODM3MDI3ZmIyY2ZhZjE3NGI5NWJhNzllMGQKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MTk6NTAgMjAxMSArMDEwMAorCisgICAgQWRkIFNOTVA6OnJlZ2lzdGVyX2RlYnVnX3Rva2VucygpCisKK2NvbW1pdCA3YmVhZDljYTkxN2M2NzU2NmQ1ZWQ5OGFiNTA3YmJjMDI4MTYyMTdkCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgTm92IDMwIDE0OjA4OjA4IDIwMTEgKzAxMDAKKworICAgIEFnZW50WCBzdWJhZ2VudDogUmVkdWNlIGNvZGUgZHVwbGljYXRpb24KKworY29tbWl0IDBlZDcxNTQxZjg3ZTdkNzhiYzk5OGVlYmRhMzIxN2M1OWUxZGY4MzAKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDM6MTkgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIERveHlnZW4tc3R5bGUgZnVuY3Rpb24gaGVhZGVyIGZvciBuZXRzbm1wX3JlZ2lzdGVyX2RlZmF1bHRfdGFyZ2V0KCkgYW5kIG5ldHNubXBfY2xlYXJfZGVmYXVsdF90YXJnZXQoKS4KKworY29tbWl0IDhjMjk3MmI2MWU0MDE2OWI0N2M1MDk4OGI2YWU5ZThjMjg1Zjg0ZjgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDI6NTQgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogcGVybDogRml4IHNwZWxsaW5nIGluIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBTTk1QIG1vZHVsZQorCitjb21taXQgNWRmMmJhYzZiZDcxNzc5OTMxMWYwMDFhYzdiNzNkYjg4ZjExYmRkYQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgVHVlIE5vdiAyOSAwODo1OTo1OCAyMDExICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBPbmx5IHRyYW5zZm9ybSB0aGUgYWRkcmVzcyB0byBwcmludGFibGUgZm9ybSB3aGVuIG5lZWRlZC4KKworY29tbWl0IDE3MWU4ZDQ4ZDRhZjA0MDEzY2ZmOGZkMjhmNTM0MWEyYWVmMjFkODgKK0F1dGhvcjogTWlqbyBTYWZyYWRpbiA8c2FmcmFkaW5AbGludXgudm5ldC5pYm0uY29tPgorRGF0ZTogICBUdWUgTm92IDI5IDE2OjQ5OjQ2IDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXAtYnJpZGdlLW1pYjogRml4IGluZGV4IGludGVycHJldGF0aW9uLgorICAgIAorICAgIFRoaXMgcGF0Y2ggY29ycmVjdHMgYSB3cm9uZyBkYXRhIGludGVycHJldGF0aW9uLgorICAgIHNubXAtYnJpZGdlLW1pYiBvYnRhaW5zIHRoZSBpZmluZGV4IHZhbHVlIGZyb20gdGhlIHN5c2ZzCisgICAgYXR0cmlidXRlICdpZmluZGV4JyBUaGUgdmFsdWUgZ2l2ZW4gYnkgdGhlIHN5c2ZzIGF0dHJpYnV0ZQorICAgIGlzIGFuIGludGVnZXIsIHdoaWNoIGlzIGhhbmRsZWQgYXMgaGV4IGFuZCBsZWFkcyB0bworICAgIGluY29ycmVjdCBkYXRhIGRpc3BsYXllZCB0byB0aGUgdXNlci4KKyAgICAKKyAgICBlLmcuCisgICAgICAgICQgPiBzbm1wd2FsayBsb2NhbGhvc3QgQlJJREdFLU1JQjo6ZG90MWRCYXNlUG9ydElmSW5kZXguMgorICAgICAgICBCUklER0UtTUlCOjpkb3QxZEJhc2VQb3J0SWZJbmRleC4yID0gSU5URUdFUjogNTQKKyAgICAKKyAgICBhY2NvcmRpbmcgdG8gdGhlIHN5c2ZzIGF0dHJpYnV0ZSB0aGUgdmFsdWUgaXMgMzYKKyAgICAKKyAgICAgICAgJCA+IGNhdCAvc3lzL2NsYXNzL25ldC88ZGV2aWNlPi9pZmluZGV4CisgICAgICAgIDM2CisgICAgCisgICAgU2lnbmVkLW9mZi1ieTogTWlqbyBTYWZyYWRpbiA8c2FmcmFkaW5AbGludXgudm5ldC5pYm0uY29tPgorCitjb21taXQgODJlMzlmYjY3MDZkZjkwZWNmMmZjOWUxMGFkYTJiOTYyZWUxOTZmMworQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CitEYXRlOiAgIFR1ZSBOb3YgMjkgMTI6Mjc6NDYgMjAxMSArMDAwMAorCisgICAgRml4IG11bHRpLWxpbmUgY2FzZSB0ZXN0aW5nIG9mIGluY29taW5nIE9JRAorCitjb21taXQgYjE1ZGExYTQ1MTYwNjExMDVhMWVhYzc0NTBjZjY1MGVjNDQyNjZiMgorQXV0aG9yOiBOaWtvbGF5IERlbmV2IDxuZGVuZXZAZ21haWwuY29tPgorRGF0ZTogICBUdWUgTm92IDI5IDA4OjI5OjQ5IDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IEZyZWVCU0Q6IFJlc3RvcmUgSVBfUkVDVkRTVEFERFIgZnVuY3Rpb25hbGl0eS4KKworY29tbWl0IDdmNDdmNTJlNDgxYmFhOWFhZmI1Nzg0MjQ0YjBkZDI2NTNlN2RjZmYKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIE1vbiBOb3YgMjggMDg6NTE6MzkgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogVXNlIFNOTVBfQUxMT0NfVFlQRURFRiB0byBhbGxvY2F0ZSB0cmFuc3BvcnRzIGluIG9yZGVyIHRvIGF2b2lkIHRoZSBzZXBhcmF0ZSBjYWxsIHRvIG1lbXNldC4KKworY29tbWl0IGNmODYwMzllMzA4NjIyNWMzMDg1YmI5YWRmMDg4YjhiYTViYTY5NzkKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBOb3YgMjIgMTU6MDI6NTggMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIgcGFzcy4KKworY29tbWl0IDFhODdlNzZlMDBlZTNkNWNkMzdhMDdiZmMzZDg0NDkwZDNjMmE0ZWMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBOb3YgMjIgMTQ6NTU6NDIgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdW5pdC10ZXN0cy9UMDE0Z2V0aG9zdGJ5YWRkcl9jbGliIHBhc3MKKworY29tbWl0IDg4NjdmZDFkY2ZlNzJiNTlkMDczMjJmZjM4YTY5OWI2NmVjNGYzMjYKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBOb3YgMjIgMDk6NDQ6MzggMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSByb2J1c3QgYWdhaW5zdCBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlcy4KKyAgICAKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIE5FVFNOTVBfTEFSR0VfRkRfWkVSTygpIHVzZSBtZW1zZXQoKSBvbiBVbml4IHN5c3RlbXMgaW5zdGVhZCBvZiBhbiBleHBsaWNpdCBsb29wLgorICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2Ugc3VyZSB0aGF0IG9uIFVuaXggc3lzdGVtcyBuZXRzbm1wX2xhcmdlX2ZkX2NscigpIGRvZXNuJ3QgdHJ5IHRvIHJlYWQgbWVtb3J5IGl0IGlzbid0IGFsbG93ZWQgdG8gcmVhZCBpZiB0aGUgZmlyc3QgYXJndW1lbnQgZXF1YWxzIC0xIChhIHZhbHVlIHRoYXQgc2hvdWxkbid0IGJlIHBhc3NlZCBieSB0aGUgY2FsbGVyKS4KKyAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIG5ldHNubXBfbGFyZ2VfZmRfaXNfc2V0KCkgcmV0dXJuIGZhbHNlIG9uIFVuaXggc3lzdGVtcyBpZiB0aGUgZmlyc3QgYXJndW1lbnQgZXF1YWxzIC0xIChhIHZhbHVlIHRoYXQgc2hvdWxkbid0IGJlIHBhc3NlZCBieSB0aGUgY2FsbGVyKS4KKyAgICBDSEFOR0VTOiBXaW5kb3dzOiBNYWtlIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpIHNocmluayBiZWhhdmlvciBjb3JyZWN0LgorCitjb21taXQgMjNkYjBjZjA5YjhiMGVhYjM3Yjc0OWVmMGMzYzNmMzA2OTAwMjQ1YworQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE5vdiAyMSAyMzowMjo1NyAyMDExICswMTAwCisKKyAgICBGaXggY2FzdGluZyB0dl91c2VjIHRvIGludCB3aGljaCBtYXkgYmUgdG9vIHNob3J0CisKK2NvbW1pdCA4MGVlNDAyMmU1MzRlNjRhYWQ1YTVmMjcxOTI4NDNiNDJhY2I4NWUwCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTYXQgTm92IDE5IDA5OjE0OjAyIDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0MzkyMzQ6IE1vdmUgbmV0c25tcF9wYXNzX3N0cl90b19lcnJubyB0byBwYXNzX2NvbW1vbiBhbmQgcmVuYW1lIGl0IHRvIG5ldHNubXBfaW50ZXJuYWxfcGFzc19zdHJfdG9fZXJybm8KKworY29tbWl0IDBiYWE5Mjk2YzA3MmJiMzczNTc2MGIwZGQ5OTJmMmQxZDNjYTI3ZmEKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBOb3YgMTkgMDk6MDU6MjQgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQzOTIzNDogQ29ycmVjdCB0aGUgZGVwZW5kZW5jaWVzIG9mIHVjZC1zbm1wL3Bhc3MgYW5kIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdAorCitjb21taXQgMWFhNzA0ZTRhMjk0NDMwYjI4ZTM5YjZmOWU0NjgzYjhhNDhiY2UwNAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IE5vdiAxOSAwODozNToyMSAyMDExICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogRmFjdG9yIG91dCBhc2MyYmluIGFuZCBiaW4yYXNjLiBBZGQgYSBuZXRzbm1wX2ludGVybmFsXyBwcmVmaXggdG8gdGhlbQorCitjb21taXQgY2RhOGZlOTEwMTNmMTJjYmY2NGEwNzc1YWJiNTU3MjAwMzVhZjkzMQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IE5vdiAxOSAwMDo1NToyNCAyMDExICswMTAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogQ2FsbCBzbm1wX29pZHRyZWVfY29tcGFyZSBpbnN0ZWFkIG9mIHNubXBfb2lkX21pbl9jb21wYXJlCisgICAgQ0hBTkdFUzogc25tcGQ6IFJlbW92ZSBzbm1wX29pZF9taW5fY29tcGFyZSBzaW5jZSBpdCBpcyBpbnRlcm5hbCBhbmQgdW51c2VkCisKK2NvbW1pdCA4NWY4OTNlMmI2MDVlNjdmOWJkMDQ0M2M3NGUyZWQyNjlhYTY4NTY0CitBdXRob3I6IE5pa2kgRGVuZXYgPG5pa2lfZEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIFRodSBOb3YgMTcgMjI6NDI6MzIgMjAxMSArMDEwMAogCiAgICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNzU2NDA6IFVzZSBJUF9SRUNWRFNUQUREUiBzb2Nrb3B0IHdoZXJlIGF2YWlsYWJsZSAoKkJTRCkKICAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxODMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgVGhpcyBodW5rIGZlbGwgb2Ygd2hlbiB0aGUgcmVzdCBvZiB0aGUgcGF0Y2ggd2FzIG1lcmdlZC4KIAotY29tbWl0IGMwNDhmMmNlNDNiZmE4MmU4ZDNhZDhhMmJkMzEyMjkwYzZiYTI3ZjAKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEFwciAxNSAxMzo0MjoxNCAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzMTgzMDAwOiBGaXggY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoCi0gICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMzE4Mjk4NTogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aAotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDBlMmQ4ZTgzMzdhZjcyNTdmN2ViNzI3Njc4ZjgwMzRlODRhZTc0Y2UKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEFwciAxNSAxMzo0MjoxNCAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzMTgzMDAwOiBGaXggY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoCi0gICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMzE4Mjk4NTogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aAotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDE4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDM5MTU5N2NmZmQ5YWJkZTVmZjQ2Yjc0YzViNmM3ZTMyMWFiN2QzYzEKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEFwciAxNSAxMzo0MjoxNCAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzMTgzMDAwOiBGaXggY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoCi0gICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMzE4Mjk4NTogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aAotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDZiM2ZiYmFkOTEzYThkNzVhOGFlNTBhNmQ1MzIwZTFmYWZlMGUxMGQKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEFwciAxNSAxMzo0MjoxNCAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzMTgzMDAwOiBGaXggY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoCi0gICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMzE4Mjk4NTogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aAotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDBmMWI3ODc1NWY5ZDkyZDM5YjEwYmI2ZjBhYzMyNDkzMjA2YjM2ODQKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEFwciAxNSAxMzoxNzozNyAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBMaW51eDogUEFUQ0hFUzogMzIwNTgxMTogT3B0aW9uIHRvIHNraXAgZmQvbG9vcC9yYW0gZGV2aWNlcyBpbiBkaXNrSU9UYWJsZQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE4MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGU0NTc0MzcyZTQ3OGQzN2VmYTM5NzVjYTBmYzcxOGZjZGEzMDYwOGYKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEFwciAxNCAyMTozMTowOSAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDMxODUwODU6IEZpeCBzZWdmYXVsdCBvbiA2NC1iaXQgc3lzdGVtcwotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDE4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDZjMDZhMjU5NGY2ZTg3YzcyMjUxZmY3OTNlN2Q5MTg3Yjg5MTVmYmMKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEFwciAxNCAyMTozMTowOSAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDMxODUwODU6IEZpeCBzZWdmYXVsdCBvbiA2NC1iaXQgc3lzdGVtcwotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDI1N2Y0ZDczNzAyZmM0YzdiYTJmN2UxMzIxYTk2NTU5NDZiMGU4MDMKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEFwciAxNCAyMTozMTowOSAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDMxODUwODU6IEZpeCBzZWdmYXVsdCBvbiA2NC1iaXQgc3lzdGVtcwotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDdlODk5YjVjZjJkYjIxNjRlMGMxZDU4NzA2Yjk1MDJlODY1OTY5NzAKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEFwciAxNCAyMToxMDo1NiAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzE3NTMyMzogRml4IGhhbmRsaW5nIG9mICd3aGlsZSAoZmFsc2UpJyBibG9ja3MKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA2OTY3ZDc4OTk5YjdmNGNiNTI3MDIwNzUwY2QzNTkyN2ZlNGYyZmU3Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBBcHIgMTQgMjE6MTA6NTYgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMxNzUzMjM6IEZpeCBoYW5kbGluZyBvZiAnd2hpbGUgKGZhbHNlKScgYmxvY2tzCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTc5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNTAyMzlmNjY1MDU4NmJiNGI5OTIwNTQyNDU5MmI3YjUxOTFkNTQwNAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgQXByIDE0IDIxOjEwOjU2IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMTc1MzIzOiBGaXggaGFuZGxpbmcgb2YgJ3doaWxlIChmYWxzZSknIGJsb2NrcwotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDkzYjMyZTI4ZWY1NTE5OTMzZjUwMmRlY2Y5OWM2OGVhODVhMGRlYTUKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEFwciAxNCAyMToxMDo1NiAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzE3NTMyMzogRml4IGhhbmRsaW5nIG9mICd3aGlsZSAoZmFsc2UpJyBibG9ja3MKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA1ZDVkNmZkNDgxNTI4YWRmN2NhMDFlYzA3OTA4NDljYTczMTk2ZGMyCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBBcHIgMTQgMjA6NTI6NTkgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMDQ4ODM6IEZpeCBoYW5kbGluZyBvZiBub24tdGFibGUgb2JqZWN0cyBuYW1lZCBmb29UYWJsZQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDNhOGRjYTMxNDNjNWNhMTE0NDNmZWIwN2Y3YWY0YmVkODA4YmRkMzIKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEFwciAxNCAyMDo1Mjo1OSAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIwNDg4MzogRml4IGhhbmRsaW5nIG9mIG5vbi10YWJsZSBvYmplY3RzIG5hbWVkIGZvb1RhYmxlCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYjRiYzdiMjdjZGE0OTkzOTFiOWVjYjJjYmU1NDFlMTBjMTUxYWJkNQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgQXByIDE0IDIwOjUyOjU5IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjA0ODgzOiBGaXggaGFuZGxpbmcgb2Ygbm9uLXRhYmxlIG9iamVjdHMgbmFtZWQgZm9vVGFibGUKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA1OWQ0ZDlkYzJlNDJhMjk5YzU4YjgwYzdjZTg5ODM2ODNiZDJhNzcyCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBBcHIgMTQgMjA6NTI6NTkgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMDQ4ODM6IEZpeCBoYW5kbGluZyBvZiBub24tdGFibGUgb2JqZWN0cyBuYW1lZCBmb29UYWJsZQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDZhMjk5NjhjYmRjMDE2NmE0N2E5M2QxYzE0ZDM5YTJlMzlmYTk4ZDIKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEFwciAxNCAyMDo0NDozNyAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIxMTQ4NDogU3VwcG9ydCBlbnVtZXJhdGlvbnMgaW4gbm90aWZpY2F0aW9uIHZhcmJpbmRzCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMzQyY2E5ZGI1MzcxY2JhZDdmYTk2YWYzMmFjZWQ3NTBjMmQ3N2RiMQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgQXByIDE0IDIwOjQ0OjM3IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjExNDg0OiBTdXBwb3J0IGVudW1lcmF0aW9ucyBpbiBub3RpZmljYXRpb24gdmFyYmluZHMKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBjNmE3MWVhZWJlZjZjODMxZGFhMzZmNTdlYzFmZjIzMGYwNTJiMzMwCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBBcHIgMTQgMjA6NDQ6MzcgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMTE0ODQ6IFN1cHBvcnQgZW51bWVyYXRpb25zIGluIG5vdGlmaWNhdGlvbiB2YXJiaW5kcwotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDUyODdmNWQxNDYzMWQ0MDg0ZWVlMjQwMzE3NDZjNTQyMjUyNjcxMjIKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEFwciAxNCAyMDo0NDozNyAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIxMTQ4NDogU3VwcG9ydCBlbnVtZXJhdGlvbnMgaW4gbm90aWZpY2F0aW9uIHZhcmJpbmRzCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZjA4YTE5OTgwNzFiNmQ0ZjRlYzhkOWY1ZmJmOGFlZmU1NjI5Y2U3YQorY29tbWl0IDVjOTEzZTU0NjU2YWUwMDk2YjFmZWI2ZGE5OGI1ZmM5Y2E4MWYyNzYKIEF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBBcHIgMTIgMjA6MDE6NTUgMjAxMSArMDAwMAorRGF0ZTogICBXZWQgTm92IDE2IDIzOjMzOjA3IDIwMTEgKzAxMDAKIAotICAgIEFkZCBtaXNzaW5nIHN5c3RlbSBvaWRzIHRvIG1pYgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICBEZWZpbmUgdGhlIGZ1bGwgTmV0QlNEIGhpZXJhcmNoeSBkb3dud2FyZHMKIAotY29tbWl0IDMzMzFlMDliYmVjNzM0MDM0ZGJkYjc2N2U2NmMwM2UxNGE0NTQ4ZDUKK2NvbW1pdCBiODgxODQxYmQwNDkzZGQ3MWQ2MzI1OWJkZGVkNDQ5YjA2ZjAyYzMyCiBBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgQXByIDEyIDIwOjAxOjU1IDIwMTEgKzAwMDAKK0RhdGU6ICAgV2VkIE5vdiAxNiAyMzozMDozMyAyMDExICswMTAwCiAKLSAgICBBZGQgbWlzc2luZyBzeXN0ZW0gb2lkcyB0byBtaWIKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgRml4IHNpemVfdC9pbnQgbWlzbWF0Y2hlcwogCi1jb21taXQgZGQ4ODlkNTZhYmM0YTZhMmI3NmIxZjc0ODllYTU1YjA0NjdiZTE4NAorY29tbWl0IGNhMjk0Y2Y3NWJiYzhlOTBkYmY0NGVlNDA0Nzg5MzVlOTFkYjE0ODcKIEF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBBcHIgMTIgMjA6MDE6NTUgMjAxMSArMDAwMAorRGF0ZTogICBXZWQgTm92IDE2IDIzOjE4OjAzIDIwMTEgKzAxMDAKIAotICAgIEFkZCBtaXNzaW5nIHN5c3RlbSBvaWRzIHRvIG1pYgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcwogCi1jb21taXQgMGExODVhOWQzMDZiNjgxNmEyNmUzNTA4ZGNiMDk4YjkxODYxZGMwYgorY29tbWl0IGNkMzJjMmRmZjA2YjliNDUyY2MxOGQ1NTJkMmYyMjM0MDkyYzgyOWMKIEF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBBcHIgMTIgMjA6MDE6NTUgMjAxMSArMDAwMAorRGF0ZTogICBXZWQgTm92IDE2IDIzOjE3OjA5IDIwMTEgKzAxMDAKIAotICAgIEFkZCBtaXNzaW5nIHN5c3RlbSBvaWRzIHRvIG1pYgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICBGaXggZm9ybWF0IHdhcm5pbmcKIAotY29tbWl0IGQ5NDc3MjUxZDE1NGZiYjUyNmY1MzM2N2IwYjZlYmNkMWQyNjc0YWMKK2NvbW1pdCA4ODMxMzZjMmIyZmEwNzM5ZjQzN2E4Y2ZiNjYxNGFjY2M3NmUyNjhlCiBBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgQXByIDEyIDE5OjUzOjEwIDIwMTEgKzAwMDAKK0RhdGU6ICAgV2VkIE5vdiAxNiAyMzoxNTo1OCAyMDExICswMTAwCiAKLSAgICBGaXggZm9yIGdhcmJhZ2Ugb3V0cHV0IHdoZW4gYWdlbnQgcHJlc2VudHMgbW9yZSBjb2x1bW5zIGluIGJ1bGsKLSAgICByZXNwb25zZSB0aGFuIG91ciBsb2NhbCBNSUIgZmlsZSAgc3BlY2lmaWVkLgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICBNb3JlIG5lZWRzIGZvciBORVRTTk1QX1BSSW8gZm9ybWF0IHNwZWNpZmllcgogCi1jb21taXQgNzljNjk4YTE0NzRlMTA4NTVmMjEwYTY5OTg3MDgwOTY3MTJiZTYwOAorY29tbWl0IGI4MDg0YTdjY2M5MDliNmQ2ZGI3YzBlOGU1OTZkNzg2NzFmNTY3OGIKIEF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBBcHIgMTIgMTk6NTM6MTAgMjAxMSArMDAwMAorRGF0ZTogICBXZWQgTm92IDE2IDIzOjE0OjI2IDIwMTEgKzAxMDAKIAotICAgIEZpeCBmb3IgZ2FyYmFnZSBvdXRwdXQgd2hlbiBhZ2VudCBwcmVzZW50cyBtb3JlIGNvbHVtbnMgaW4gYnVsawotICAgIHJlc3BvbnNlIHRoYW4gb3VyIGxvY2FsIE1JQiBmaWxlICBzcGVjaWZpZWQuCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorICAgIEZpeCB1c2luZyBjaGFyIGFzIGFycmF5IGluZGV4IChjdHlwZS5oKQogCi1jb21taXQgZjM5NGEyNjY2MDRhZjlmM2UxYjUzZWY2ZGEzNzViYWE0YTM5MDFmZQorY29tbWl0IDg0NTI5ZTYzMjBhODlkOTdmMTMxNGFlYmFkODA2MjU1ZDJhMWIxOGMKIEF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBBcHIgMTIgMTk6NTM6MTAgMjAxMSArMDAwMAorRGF0ZTogICBXZWQgTm92IDE2IDIzOjAwOjU3IDIwMTEgKzAxMDAKIAotICAgIEZpeCBmb3IgZ2FyYmFnZSBvdXRwdXQgd2hlbiBhZ2VudCBwcmVzZW50cyBtb3JlIGNvbHVtbnMgaW4gYnVsawotICAgIHJlc3BvbnNlIHRoYW4gb3VyIGxvY2FsIE1JQiBmaWxlICBzcGVjaWZpZWQuCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorICAgIEZpeCBtaXNzaW5nIGZvcm1hdCBmb3IgRnJlZUJTRCA0CiAKLWNvbW1pdCA1NDc4N2QyNWIyZmJhYWQwNDdhNTRmYzMwZWZlZWNjMmQyODA1Y2U3Citjb21taXQgNGJkMDM1Mjk1NWEyNTUxYmZlMDIzMDhkZDEzNGI5MTI4Yzk4YjllOQogQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEFwciAxMiAxOTo1MzoxMCAyMDExICswMDAwCitEYXRlOiAgIFdlZCBOb3YgMTYgMjI6NTk6MzYgMjAxMSArMDEwMAogCi0gICAgRml4IGZvciBnYXJiYWdlIG91dHB1dCB3aGVuIGFnZW50IHByZXNlbnRzIG1vcmUgY29sdW1ucyBpbiBidWxrCi0gICAgcmVzcG9uc2UgdGhhbiBvdXIgbG9jYWwgTUlCIGZpbGUgIHNwZWNpZmllZC4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgRml4IHBhcmFudGhlc2lzIHByb2JsZW0KIAotY29tbWl0IDAwN2U3NmQ2ZGMzOGFjZGZhYjc1NmZlOWJkOGUyM2Q4MjA5NWI0YzYKK2NvbW1pdCBmZTYyNjliMTkwMGNmNDRkYzI3YTE5OWE3NjFkMTVhMDFjM2YzMDkyCiBBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgQXByIDEyIDE5OjUwOjA4IDIwMTEgKzAwMDAKK0RhdGU6ICAgV2VkIE5vdiAxNiAyMjo1ODozNCAyMDExICswMTAwCiAKLSAgICBGaXggd3JvbmcgbmFtZSBmb3IgY29uZmlnIHRva2VuICdkb05vdFJldGFpbk5vdGlmaWNhdGlvbkxvZ3MnCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorICAgIEZpeCBzaXplX3QvaW50IG1pc21hdGNoZXMKIAotY29tbWl0IGYxZWRjZmQwNDliNzYwYmM1MDEwNGNmZTgyODM4ZWQyYjM2MzI4NjEKK2NvbW1pdCBhNGRiOWY5ZmMxM2QyMWVjZmY0ODhlYjQxMDM3NmVkZGE2YzI4MjMyCiBBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgQXByIDEyIDE5OjUwOjA4IDIwMTEgKzAwMDAKK0RhdGU6ICAgV2VkIE5vdiAxNiAxMzo0MzozNCAyMDExICswMTAwCiAKLSAgICBGaXggd3JvbmcgbmFtZSBmb3IgY29uZmlnIHRva2VuICdkb05vdFJldGFpbk5vdGlmaWNhdGlvbkxvZ3MnCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCiAKLWNvbW1pdCBhZjUwOTI0MDY5YTg4YjViYWRjMDg0MDY1ZTIxYjY5MWYzMWYzMTNkCitjb21taXQgMzkwYzAxMTRjOGVjMGJkYjI3YjA4YjZmNzRlM2Y2ZWYzYTYyOTgxYgogQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEFwciAxMiAxOTo1MDowOCAyMDExICswMDAwCitEYXRlOiAgIFdlZCBOb3YgMTYgMTM6Mzc6NDkgMjAxMSArMDEwMAogCi0gICAgRml4IHdyb25nIG5hbWUgZm9yIGNvbmZpZyB0b2tlbiAnZG9Ob3RSZXRhaW5Ob3RpZmljYXRpb25Mb2dzJwotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICBGaXggZm9ybWF0IHNwZWNpZmllcnMgdG8gYXZvaWQgd2FybmluZ3MKIAotY29tbWl0IDMzYjk0MDVkMTIwMzA0NmE0NTkwNjM0YzU5MmM3MTgxYzEzM2I3ZjIKK2NvbW1pdCAyNWNmYzE5NjJhZTU3NmNjYjE1NThkYTFlM2VmOGI2YzE3ZjYzYzE2CiBBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgQXByIDEyIDE5OjUwOjA4IDIwMTEgKzAwMDAKK0RhdGU6ICAgV2VkIE5vdiAxNiAxMToyNzo1MyAyMDExICswMTAwCiAKLSAgICBGaXggd3JvbmcgbmFtZSBmb3IgY29uZmlnIHRva2VuICdkb05vdFJldGFpbk5vdGlmaWNhdGlvbkxvZ3MnCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorICAgIFJlYWxseSB1cC10by1kYXRlIG1pYnMKIAotY29tbWl0IDJmYjBiODljMjMyM2RiMzA5YjE2MmQ2MGE5NDNjMWUzYTBhMTdkMDcKK2NvbW1pdCAwZTg2Yzc4MWYzOTg5YmYwMjJjODk5M2ExMTg2MTdiNzRhNzU0MjBjCiBBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTYXQgQXByIDkgMjE6NTk6MTEgMjAxMSArMDAwMAorRGF0ZTogICBXZWQgTm92IDE2IDA5OjE3OjE5IDIwMTEgKzAxMDAKIAotICAgIFJlbW92ZSBib2d1cyAoTGludXgpIGRlZmluZXMKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgbWVtb3J5X2xpbnV4OiBnZXQgU2htZW0gZnJvbSAvcHJvYy9tZW1pbmZvIGZvciAyLjYgKG9yIG5ld2VyKSBrZXJuZWxzCiAKLWNvbW1pdCA0ZjNkYTc2N2IwZjg3Yzk5YzRjMWY1Yjc0MTIwM2Q3ZDY5NmJlZWVhCitjb21taXQgYmYyNjRkMTVkZWQ3YWNiYmYyZTM4NzFiOThmZDFmY2VmNDNkOWVjMwogQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU2F0IEFwciA5IDIxOjU5OjExIDIwMTEgKzAwMDAKK0RhdGU6ICAgV2VkIE5vdiAxNiAwOToxNjoxNiAyMDExICswMTAwCiAKLSAgICBSZW1vdmUgYm9ndXMgKExpbnV4KSBkZWZpbmVzCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTczIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorICAgIG1lbW9yeV9saW51eDogY2xvc2Ugc29ja2V0cyBpbiBlcnJvciBzaXR1YXRpb25zCiAKLWNvbW1pdCBjM2RiYmQ5ZmM1N2FjYmNhOTk5MzU2Y2RmOWJlOTU4Y2MxMTczNWVmCitjb21taXQgNTdmZjhhNDBiYWU1ZDliY2FkMTYwODkxNDJhOWNmMzI4YzlmYTFmNQogQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU2F0IEFwciA5IDIxOjU2OjMzIDIwMTEgKzAwMDAKK0RhdGU6ICAgV2VkIE5vdiAxNiAwOToxNDo1NyAyMDExICswMTAwCiAKLSAgICBIQVZFX1RNX1RNX0dNVE9GRiBpcyBIQVZFX1NUUlVDVF9UTV9UTV9HTVRPRkYKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgZGlzbWFuL3BpbmcsIGRpc21hbi90cmFjZXJvdXRlOiBDbG9zZSBzb2NrZXRzIGluIGVycm9yIHNpdHVhdGlvbnMKIAotY29tbWl0IDE4NDg0OGY2YTUzNjJhNDUwMTk3NGE1Y2YyZTU3NzFkMjg2NGZmNzgKK2NvbW1pdCA4YTI1MDJhMTVjMzIxN2I5NTkzOWEzYzgzNjE2N2QyMzBhYzM1ZjAyCiBBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTYXQgQXByIDkgMjE6NTY6MzMgMjAxMSArMDAwMAorRGF0ZTogICBXZWQgTm92IDE2IDA5OjEzOjUzIDIwMTEgKzAxMDAKIAotICAgIEhBVkVfVE1fVE1fR01UT0ZGIGlzIEhBVkVfU1RSVUNUX1RNX1RNX0dNVE9GRgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICBVcC10by1kYXRlIGxpc3Qgb2YgUkZDcyB3aXQgbWlicwogCi1jb21taXQgYjFjZDIxYTRkNzFjMTdjMTIyMTM0YWMzMjg0OTE3ZjY1MzYzZTRkMgotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU2F0IEFwciA5IDIwOjA0OjI5IDIwMTEgKzAwMDAKK2NvbW1pdCBkY2RkNzAyMTExZDhkYTVmNTM4MDRjZmNmMGRmZGFkNzMxNDY4YmRlCitBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KK0RhdGU6ICAgVHVlIE5vdiAxNSAxMDo1NzozNCAyMDExICswMDAwCiAKLSAgICBTb2xhcmlzIHN1cHBvcnQgZm9yIFNDVFAtTUlCCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorICAgIERvbid0IHRyeSB0byBpbnN0YWxsIGFuIGVtcHR5IGxpc3Qgb2YgbWFuIHBhZ2VzIChNQU4zKQogCi1jb21taXQgY2NlMzA0MTkzMDk4Zjc1NzM4MDdjODJhNzA4YmNiZTAzNDdhN2EyYgotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU2F0IEFwciA5IDIwOjA0OjI5IDIwMTEgKzAwMDAKK2NvbW1pdCBiYTYxOTgwNGU1OTc4YThkZjc1NDg0NGVmY2NhNTJiNjliNTAxNWZhCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gTm92IDE0IDEzOjM0OjIwIDIwMTEgKzAxMDAKIAotICAgIFNvbGFyaXMgc3VwcG9ydCBmb3IgU0NUUC1NSUIKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgTWluR1c6IE1ha2Ugc3VyZSB0aGF0IHRoZSBiYWNrc2xhc2hlcyBpbiB0aGUgcHNraWxsIG1lc3NhZ2UgYXJlIGRpc3BsYXllZC4KIAotY29tbWl0IGM2NjU5Yzk0YWQ5YmE4MDYwZGRlMTg5NDI3NjFjZTg1ZDFhNWNjMTkKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFNhdCBBcHIgOSAxOTo1MDozMCAyMDExICswMDAwCitjb21taXQgOTIzZWVjYzUwN2Y3NTA0M2I2MGM1ZTY4MDUzYTRmMzk2YWIwYjBkMgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIE5vdiAxNCAxMjozNjozOCAyMDExICswMTAwCiAKLSAgICBUWiBpcyBvbmUgaG91ciBvZmYgaWYgSEFWRV9UTV9UTV9HTVRPRkYgYW5kIFNZU1YgKHN1Y2ggaXMgTGludXgpCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTY5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorICAgIENvbXBpbGVyIHdhcm5pbmcgZml4IGZvciBzeXN0ZW1zIHdoZXJlIHVpbnQ2NF90ID0gdW5zaWduZWQgbG9uZyAoZS5nLiBSSEVMIDYuMS94ODZfNjQpCiAKLWNvbW1pdCA5ZmE2NGYyN2FjNTE5OGU1NGZlZjJkZjU4ZGMwOTRhZjIzN2ZhZjFlCi1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTYXQgQXByIDkgMTk6NTA6MzAgMjAxMSArMDAwMAotCi0gICAgVFogaXMgb25lIGhvdXIgb2ZmIGlmIEhBVkVfVE1fVE1fR01UT0ZGIGFuZCBTWVNWIChzdWNoIGlzIExpbnV4KQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE2OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGE5YTYxOWUwZDE3MzAzYzllZTdkNWE3ZTcxMDZlYTBhZjMzYjllOTYKLUF1dGhvcjogUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgQXByIDEgMDE6MTE6MDcgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGxpYjogZHRsczogb3ZlcmhhdWwgb2YgZGVidWcKLSAgICAKLSAgICAgIC0gZHJhc3RpYyByZWR1Y3Rpb24gaW4gbnVtYmVyIG9mIG1lc3NhZ2VzIGFuZCBtc2cgY29tcGxleGl0eQotICAgICAgICBmb3IgYmFzaWMgZHRsc3VkcCB0b2tlbgotICAgICAgLSBwcmV2aW91cyBsZXZlbCBvZiBkZXRhaWwgYXZhaWxhYmxlIGJ5IGFkZGluZyA5OmR0bHNkdXAgdG9rZW4KLSAgICAKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAxZmFkOTg3ZWVjMWRlZjdjZDg2YzY1YWMyNzkwMTM3M2U3YTYzZDBiCi1BdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEFwciAxIDAwOjUzOjI5IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBsaWI6IGR0bHM6IGNsZWFuIHVwIGNsb3NlOyBjYXRjaCAnY29ubmVjdCcvJ2Rpc2Nvbm5lY3QnCi0gICAgCi0gICAgICBjb25uZWN0ID0gd2UgZ2V0IHN1Y2Nlc3NmdWxseSBkZWNvZGVkIHNubXAgZGF0YQotICAgICAgZGlzY29ubmVjdCA9IDAgYnl0ZSByZWFkLCBzc2ggc2h1dGRvd24gZmxhZyBzZXQKLSAgICAgIGFkZCBiaW9fY2FjaGUgZmxhZ3MgZm9yIGNvbm5lY3RlZC9kaXNjb25uZWN0ZWQKLSAgICAgIGNoZWNrIGZvciBudWxsIHB0ciBiZWZvcmUgZGVyZWZlcmVuY2luZwotICAgICAgY2xvc2UgaGFuZGxpbmc6Ci0gICAgICAtICBvbmx5IHNlbmQgcXVldWVkIGRhdGEgaWYgd2UgZ290IHRvIGNvbm5lY3RlZCBzdGF0ZQotICAgICAgLSAgc2VyaW91c2x5IHJlZHVjZSB0aW1lb3V0IHRvIHdhaXQgZm9yIGp1bmsgcmVhZC4gaSB0aGluawotICAgICAgICAgd2Ugc2hvdWxkbid0IGV2ZW4gYm90aGVyCi0gICAgICAtIHJldHVybiBlYXJseSBpZiBjYWNoZXAgaXMgTlVMTCwgc28gd2UgZG9uJ3QgaGF2ZSB0byB0ZXN0IGl0Ci0gICAgICAgIHJlcGVhdGVkbHkKLSAgICAgIC0gdXNlIGNvcnJlY3QgbmZkcyB2YWx1ZSBpbiBzZWxlY3QgY2FsbAotICAgIAotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE2NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDgwNjMyNmI1OGE5MTY4M2VhMmE2NDJmNmMzMmExOGIwOTg3NjQ1ZGYKLUF1dGhvcjogUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWFyIDMxIDA1OjE3OjQwIDIwMTEgKzAwMDAKLQotICAgIG1ha2UgdHJ1bmsgYW5kIHY1LTYtcGF0Y2hlcyBjbG9zZWx5IGFsaWduZWQKLSAgICAKLSAgICAgIG1vc3RseSBjaGFuZ2VzIGluIGRlYnVnLCBjb29raWUgdHJhY2tpbmcKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAwZDdlN2U0MmVlM2JhMGZhZjIxNTQwMDkwMDQzNGQ2MDI0YzI1MGY4Ci1BdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IE1hciAzMSAwMzo1MzozMyAyMDExICswMDAwCi0KLSAgICBhZGQgY29va2llIGhhbmRsaW5nOyByZW1vdmUgaWZkZWYnZCBjb2RlCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTY1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgOTg4OGQ0NDQzODhlM2Y2YjBmNjllYWFhYTIyNThiMzE0YjM3NzA1NwotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgTWFyIDE4IDExOjIzOjI0IDIwMTEgKzAwMDAKLQotICAgIHZlcnNpb24gdXBkYXRlCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTQ3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYTJiNDUzYmRhNzIzNzNkYmJiMTE1ZjdhOWMwNGE2MzVkOTMzOWUwOQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgTWFyIDE4IDExOjE4OjIyIDIwMTEgKzAwMDAKLQotICAgIHZlcnNpb24gdXBkYXRlCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYjVkNTQ5YTJlMTc5Y2IxOGQ1YWIzNDQwMzA1MzEwODQxMTYxZmYxZgotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgTWFyIDE4IDExOjE1OjU1IDIwMTEgKzAwMDAKLQotICAgIG1ha2UgZGVwZW5kCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTQ1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYmRhMjJlMGJjNWQ0ODJjNWMzMDNlMzFiYTVjNDMyYzA5MWZhMGRkOAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgTWFyIDE4IDEwOjM2OjIyIDIwMTEgKzAwMDAKLQotICAgIGRvY3VtZW50YXRpb24gdXBkYXRlCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTQ0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNzM0NTMyMmUyODEyNTg4YjEzYTRjODFiM2NkYzg3NzI5Y2MzZDhmNwotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgTWFyIDE4IDEwOjMyOjQ5IDIwMTEgKzAwMDAKLQotICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDRhZWE1ODY2ZjE1Zjk2NWRhNzI2NGI5YzEyM2E3MjhjOWNmYTg3M2QKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXIgMTcgMjE6MDk6MTAgMjAxMSArMDAwMAotCi0gICAgRm9ybWF0dGluZyBib3RjaAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE0MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDBlZjhkY2QwMWQxNTQwYjhmYzc3MTYzODQ1ZjAxZTNlMmQ5YjUxMDEKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXIgMTcgMjE6MDc6MjcgMjAxMSArMDAwMAotCi0gICAgSW5zdGFsbCByZXF1aXJlZCBtaWJzCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNzY3OTM2YTM3NWM0YTk3ZmQyMjk1MWRmZDJlYTdiODVhZWFmZDk2YwotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IE1hciAxNyAyMTowNToyMSAyMDExICswMDAwCi0KLSAgICBOZXcgUkZDIG1pYnMKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA5ZTUwNTZmMTI0ZjE1NDZmNmY1MDZkODYxNjliYzhjZjBmNTA1ZTAyCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBNYXIgMTUgMTI6Mzc6MjAgMjAxMSArMDAwMAotCi0gICAgdmVyc2lvbiB1cGRhdGUKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA2NjYyOGFhN2UwNDBkNmE4YTNlNjE4ZGNmNzI4NDNlYTBiODFlMTE2Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBNYXIgMTUgMTA6NTc6NTkgMjAxMSArMDAwMAotCi0gICAgdmVyc2lvbiB1cGRhdGUKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA3ZWE1MTc5MDVhODE3ODRjNzhlN2ZjYWU4ZTcyMzQ4NTI0MTY2YWI4Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBNYXIgMTUgMTA6NTY6MDAgMjAxMSArMDAwMAotCi0gICAgbWFrZSBkZXBlbmQKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA2YjhiNDE2OGY5ZWU4MmE2YjI1YTFhZjdlMDA3Y2QwZTc1NTQ3ZDUzCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBNYXIgMTUgMTA6NDI6MDYgMjAxMSArMDAwMAotCi0gICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZWM0NGY3Y2U0M2MzNjJiODZlM2ZkMWM4YmE5OWRkNTE0ZGY5ODIzMQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgTWFyIDE1IDEwOjQxOjI3IDIwMTEgKzAwMDAKLQotICAgIHZlcnNpb24gdXBkYXRlCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTM0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYTM3MTYxOTNmZTRjZjJlODJjNGJlMGU5ZThlNmY0ZTY3ZDRkMDZiZAotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIE1hciAxNSAxMDozMToxMiAyMDExICswMDAwCi0KLSAgICBTcGVsbGluZyBmaXg6IHJlZ2luZXJhdGVkIC0+IHJlZ2VuZXJhdGVkLgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGJlZDkyNzJmZjlmYTZmZmI3NTEzYTgyZWM2ZDQyM2U2YTRkZTViMjYKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBNYXIgMTUgMDk6NTk6MzAgMjAxMSArMDAwMAotCi0gICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIHRoYXQgd2FzIGludHJvZHVjZWQgaW4gcjIwMTEzLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEzMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDY5ZDY4MTViNjU0NGY0N2QzOTI5MTE5MWU5ZGViNWJiYWUxMTM0ZTIKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIE1hciAxNCAxNToyMTozNiAyMDExICswMDAwCi0KLSAgICB2ZXJzaW9uIHVwZGF0ZQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDEyOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDljYzhjNzJlNjc2ZjBlNDZkNzg0ZDE1ZjFhYjA3MmMxOTJhNTRiZjcKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIE1hciAxNCAxNDoxNDowNyAyMDExICswMDAwCi0KLSAgICB2ZXJzaW9uIHVwZGF0ZQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDEyNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGIwNzlhMGEzZDFjZmY0ZjRhMzBhNTZmZmQ1NWJkY2UxZWE1ZGRlZTgKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIE1hciAxNCAxNDoxMToxNCAyMDExICswMDAwCi0KLSAgICBtYWtlIGRlcGVuZAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDEyNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDA2OTdkMGFkYTk3NDc0NjEzMjMzYTY5YjU3MzMwMzMzZTc1YjE4ODYKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIE1hciAxNCAxNDowMDo1MiAyMDExICswMDAwCi0KLSAgICBkb2N1bWVudGF0aW9uIHVwZGF0ZQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDEyNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGVkZmNmZTA3NmY3MDdkMGQ3NGZiOGUxYzdmNTY0MmRjOGQ4ODk1MTkKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIE1hciAxNCAxMzo1NzowMCAyMDExICswMDAwCi0KLSAgICBWZXJzaW9uIG51bWJlciB1cGRhdGUKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxMjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBiNWU5YzhkZDQyNzJiNjdmOTg3NzY0OGQ0NDVhMDc0YzRlNDA1YjI4Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBNYXIgMTQgMTM6NDc6MDUgMjAxMSArMDAwMAotCi0gICAgdmVyc2lvbiB1cGRhdGUKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxMjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAwNWIzNzI4MWQwMGVkMGNhMTI3ODA0MmMwNTAyMTA4NGM3YjlhMzU0Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBNYXIgMTQgMDk6MzE6NTcgMjAxMSArMDAwMAotCi0gICAgRml4IG1haW4gYWdlbnQgc2VsZWN0IGNhbGwgdG8gdXNlIHRoZSByZW5hbWVkIEFQSSByb3V0aW5lLgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEyMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDdhNjFmODMyNTIzZWFiYTYwMzk3ZTdiZDU2NzM2NjdlMDNmZjI4ZWEKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU3VuIE1hciAxMyAyMDowOTo1MiAyMDExICswMDAwCi0KLSAgICBCcmluZyB0aGUgbmFtaW5nIG9mIHRoZSBsYXJnZV9mZF9zZXQgc2VsZWN0IGNhbGwgaW50bwotICAgIGxpbmUgd2l0aCB0aGUgcmVzdCBvZiB0aGUgQVBJLgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDEyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDZlNWJkYzVjYmE0MzQ3OTIyZjY4Y2ExNWEzN2MzMzIxYWM5ODY1NTIKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU3VuIE1hciAxMyAyMDowOTo1MiAyMDExICswMDAwCi0KLSAgICBCcmluZyB0aGUgbmFtaW5nIG9mIHRoZSBsYXJnZV9mZF9zZXQgc2VsZWN0IGNhbGwgaW50bwotICAgIGxpbmUgd2l0aCB0aGUgcmVzdCBvZiB0aGUgQVBJLgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDZkZWIzNjAwY2RlZGJiODAwZDBkNGIxODBiZDRhMGNkODU2MjlmZWMKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU3VuIE1hciAxMyAyMDowNjoyNCAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzIwMzgwNjogQWRkIHRoZSBmdW5jdGlvbiBuZXRzbm1wX2xhcmdlX3NlbGVjdCgpCi0gICAgKHBsdXMgdHdlYWtzIHRvIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSkKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxMjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA3MTFlMzNiYWJiMjA4YTkwNjIzZWNmNmI0MjRlZDExYzMzMDlmOTg3Ci1BdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU2F0IE1hciAxMiAwNjo1OTo1NiAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wbGliOiByZWFsbG9jK2luaXQgaW5zdGVhZCBvZiBjYWxsb2MKLSAgICAKLSAgICAgaW5zcGlyZWQgYnkgcGF0Y2ggMzE5NTUzMiBmcm9tIFN0ZXBoZW4gSGVtbWluZ2VyCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMWU3YTZiNDdjOGQ3ZDc3MTcxODlhOTQ2NmQxNzIxZGU4OGE3YTg3NwotQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFNhdCBNYXIgMTIgMDY6NTk6NTYgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGxpYjogcmVhbGxvYytpbml0IGluc3RlYWQgb2YgY2FsbG9jCi0gICAgCi0gICAgIGluc3BpcmVkIGJ5IHBhdGNoIDMxOTU1MzIgZnJvbSBTdGVwaGVuIEhlbW1pbmdlcgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDE4ZjEyNWY5ZjNmM2YzY2ZjZjcxZWE3NTI5NDM1M2EwNmNhMWY0MmUKLUF1dGhvcjogUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTYXQgTWFyIDEyIDA1OjQ3OjU4IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogb3B0aW1pemF0aW9ucyBmb3IgbGFyZ2Ugcm91dGUgdGFibGVzIGZyb20gU3RlcGhlbiBIZW1taW5nZXIKLSAgICAKLSAgICAgYXBwbGllZCBwYXJ0cyAxLTMgb2YgNCBmcm9tIGhpbSAobXNncyB0byBjb2RlcnMgb24gMi8yOC8xMTsgc3ViamVjdAotICAgICBpcC1mb3J3YXJkLW1pYiBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHM7IHBhcnQgNCBuZWVkcyBtb3JlIHdvcmsKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBhMjRkNzliNzA0NzNiMWRjMjY2NDQ3MGFmZDc5Y2U2MzE4MDQ2NTU4Ci1BdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU2F0IE1hciAxMiAwNTo0Nzo1OCAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IG9wdGltaXphdGlvbnMgZm9yIGxhcmdlIHJvdXRlIHRhYmxlcyBmcm9tIFN0ZXBoZW4gSGVtbWluZ2VyCi0gICAgCi0gICAgIGFwcGxpZWQgcGFydHMgMS0zIG9mIDQgZnJvbSBoaW0gKG1zZ3MgdG8gY29kZXJzIG9uIDIvMjgvMTE7IHN1YmplY3QKLSAgICAgaXAtZm9yd2FyZC1taWIgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzOyBwYXJ0IDQgbmVlZHMgbW9yZSB3b3JrCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMDU5OGI3N2UxYzNhYzczMGFjMDdkOTJmNzljMWIwMjQ1Yjc5MzUyZQotQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBNYXIgMTEgMTQ6NDM6MTYgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGxpYjogYWRkIG1vcmUgb3BlbnNzbCBlcnJvciBjYXNlcyB3aGVyZSB3ZSBjaGVjayBmb3IgbG9jYWwgY2VydAotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDUxZGQ2MjNlZTQ2N2UzYjk3ZGFjNGM1Y2NkYmNlNDJjMjcwN2UwMDcKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBNYXIgMTEgMTI6MDE6MjMgMjAxMSArMDAwMAotCi0gICAgTWluR1c6IGRza1RhYmxlOiBSZXBvcnQgemVybyBmb3IgdW5pbXBsZW1lbnRlZCBmaWVsZHMgaW5zdGVhZCBvZiByYW5kb20gZGF0YS4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA4NGMyNDEyZjAwMjJhOTZlYWMyZjI5NDhjYWExODgwMzZhOTQ1MDM2Citjb21taXQgNDM0YmZjMWY3NDU3NTUwYjZmODdkNWJjZDUxMTI3NmIyNzBiNTk2NAogQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBNYXIgMTEgMTE6MTE6MjggMjAxMSArMDAwMAorRGF0ZTogICBNb24gTm92IDE0IDExOjIyOjUzIDIwMTEgKzAxMDAKIAotICAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCByYWNlIGNvbmRpdGlvbiBpbiBoclNXUnVuVGFibGUKLSAgICBUcmVhdCB0aGUgcmVhZHMgZnJvbSAvcHJvYy88cGlkPi8qIGNhcmVmdWx5LCBwcm9jZXNzZXMgY2FuIGV4aXQgaW4gdGhlIG1pZGRsZSBvZiBwcm9jZXNzaW5nLgorICAgIENIQU5HRVM6IHNubXBkOiBmcm9tIE1hcnRpbiBXaWxjazogZml4ZWQgc25tcGQgY3Jhc2hpbmcgd2l0aCAnc2VsZWN0OiBiYWQgZmlsZSBkZXNjcmlwdG9yJy4KICAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxMTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgT24gMzItYml0IHN5c3RlbXMsIHNubXBkIGRpZXMgd2l0aCBhZm9yZW1lbnRpb25lZCBtZXNzYWdlIHdoZW4gdXNpbmcgZmlsZSBkZXNjcmlwdGlvbnMgPiAzMiwgZS5nLiB3aGVuIGhhdmluZyA+MzIgQWdlbnRYIHN1YmFnZW50cy4KIAotY29tbWl0IDJkNDhjY2Y2Y2M5M2MwZTQ0ZWVjNTVlZGY1NTlkOWYxNTIzYzc0ZjkKK2NvbW1pdCBlZDY1ZWNhNmU3ZjljZmE3MzgwYTc4ZDU2YzAxZWQzMTQ3NDViMTY5CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgTm92IDExIDE5OjAxOjIxIDIwMTEgKzAxMDAKKworICAgIEZyZWVCU0QtOTogRml4IGZvciBjb25zdCdpZnllZCBubGlzdCBhcmd1bWVudHMKKworY29tbWl0IGVhY2E3OTgzZTM2NTVhYjY5NmZjYzQ0NjFjYTBjZWRiYWM2Y2U2OWEKK0F1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CitEYXRlOiAgIEZyaSBOb3YgMTEgMTk6MDA6MTIgMjAxMSArMDEwMAorCisgICAgTmV0QlNELTY6IE9uZSBtb3JlIGluc3RhbmNlIG9mIHRpbWVzcGVjIHJlcGxhY2luZyB0aW1ldmFsCisKK2NvbW1pdCA4YWQ2YzUzZmRlYzVhZGVhZTRlNTJmMTc1MWVjZWM0YTM0NWJhYjA1CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBGcmkgTm92IDExIDE4OjU5OjAxIDIwMTEgKzAxMDAKKworICAgIEZpeCBidWlnICMzNDM2NTI3OiBhcnBfbmV0bGluazogZml4IGR5aW5nIHJlbG9hZCBvZiBjYWNoZQorCitjb21taXQgMzc4ZmZlZDAzYmE3OWE4MzQ2ZDZjNjI3ODFlMmRkZjVjZTkyYTQ3OAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgRnJpIE5vdiAxMSAxODo1NTo0MyAyMDExICswMTAwCisKKyAgICBGaXggYnVnICMzNDM2NTI4OiBzd2luc3RfcGtnaW5mbzogcmVjb3ZlciBmcm9tIE5VTEwgcmV0dXJuIGZyb20gb3BlbmRpcgorCitjb21taXQgZDdhZDhmNWY5ZjNmNjdmMTZmNjVjMjUxNWQxMWUxOTRkMmNkZDEyYworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IE5vdiAxMCAxNDowNDo0MSAyMDExICswMTAwCisKKyAgICBDSEFOR0VTOiBDeWd3aW46IE1ha2UgZGF0ZV9uX3RpbWUoKSBwcm9kdWNlIHRpbWUgem9uZSBpbmZvcm1hdGlvbgorCitjb21taXQgYmEzNWM1MGIyZjQ1OWJkOWMxMWVkNTljYzdkMWIxNjIxNTY0NGZhMworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IE5vdiAxMCAxNDoxNzowNCAyMDExICswMTAwCisKKyAgICBSZXBsYWNlIEFDX1RSWV9MSU5LKCkgYnkgQUNfTElOS19JRkVMU0UoKQorICAgIAorICAgIE5vdGU6IHRoZXNlIGNoYW5nZXMgZG8gbm90IGFmZmVjdCB0aGUgZ2VuZXJhdGVkIGNvbmZpZ3VyZSBzY3JpcHQuCisKK2NvbW1pdCBmNjE1YmYyNGY1ZDBmMjNjZTkzMDFkYTU1NjE4NGQ2NDYwNzQwNDU2CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTm92IDkgMjA6MzI6NDkgMjAxMSArMDEwMAorCisgICAgRmlzIEJ1ZyAjMzQzNDgyNDogU0lHU0VHViB3aGVuIHJlYWRpbmcgZGlzayBkaXJlY3RpdmUgYWZ0ZXIgU0lHSFVQCisKK2NvbW1pdCBhOTRhMTc5ZDkzNDBmNTFmYTdjMjM0MzE2MzBiYzBmZmQ2ZDc1OWU4CitBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgTm92IDkgMjA6MzA6NTEgMjAxMSArMDEwMAorCisgICAgRml4IGJ1ZyAjMzQzMzYxNjogZG9udCB0cmVhdCBEYXRlQW5kVGltZSBhcyBhIHN0cmluZworCitjb21taXQgYjI5ZTQxNjQ1MzFkMjU4ZmUzNGE2ZmUyYjllMWVjNjBjNTZmOTU0NAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgTW9uIE5vdiA3IDAxOjI1OjU3IDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IHRlc3Rpbmc6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUKKworY29tbWl0IGUyMjFlNjVmZGMxYzY4ZjE5Njg2NTE3MTdkY2M5Y2NmYjY0MTQ3ODMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBOb3YgMyAxNTowNTowMCAyMDExICswMTAwCisKKyAgICBGaXggd2FybmluZ3MgYWJvdXQgY29udmVydGluZyBzb2NrYWRkcl9pbiAqIGludG8gc29ja2FkZHIgKi4KKyAgICAKKyAgICBUaGlzIGlzIGEgZm9sbG93LXVwIGZvciBjb21taXQgYTBhZjM4NS4KKworY29tbWl0IDJlN2U5ZWRhMGIwZDYyYTc2NDVhOWE4ZjcwZWYzZmI2ZjNkZDY5NDEKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBOb3YgMyAxMToxNzo0OCAyMDExICswMTAwCisKKyAgICBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSB3YXJuaW5ncy4KKworY29tbWl0IDM0NjJlYmNkZDBiN2MyOThjYjE1YzMwOTk3MzZmNGY5NTIyNTc4NDYKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBPY3QgMjggMTY6MDc6MTUgMjAxMSArMDIwMAorCisgICAgUmVtb3ZlIHRob3NlIHN1cGVyZmx1b3VzIHBhcmVudGhlc2VzIHRoYXQgdHJpZ2dlciBhIGNsYW5nIHdhcm5pbmcuCisKK2NvbW1pdCAzZTVmZWRkM2U3ZDFlZjMxNjgzNjA0YmY3M2RjNTZlOTQ0Y2FkMzQ5CiBBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIE1hciAxMSAxMToxMToyOCAyMDExICswMDAwCitEYXRlOiAgIFRodSBOb3YgMyAwOTo0NToyNyAyMDExICswMTAwCiAKLSAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcmFjZSBjb25kaXRpb24gaW4gaHJTV1J1blRhYmxlCi0gICAgVHJlYXQgdGhlIHJlYWRzIGZyb20gL3Byb2MvPHBpZD4vKiBjYXJlZnVseSwgcHJvY2Vzc2VzIGNhbiBleGl0IGluIHRoZSBtaWRkbGUgb2YgcHJvY2Vzc2luZy4KKyAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgVUNELVNOTVAtTUlCOjpzeXN0ZW1TdGF0cyBhZnRlciAzMCBkYXlzIG9mIHVwdGltZS4KICAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgQWZ0ZXIgMzAgZGF5cywgdmFsdWVzIGZyb20gL3Byb2Mvc3RhdCAob24gTGludXgpIGNhbiBnZXQgYmlnZ2VyIHRoYW4gMzJiaXRzIGFuZCBzbm1wZCBjYWxjdWxhdGlvbnMgbWlnaHQgcmVuZGVyIGNvdW50ZXJzIGxpa2Ugc3NDcHVVc2VyIG5lZ2F0aXZlIG9yIHplcm8sIHdoaWxlIHRoZSByZWFsIHZhbHVlIGlzIGhpZ2hlci4gVGhlcmVmb3JlIHRoZSBjb3VudGVycyBzaG91bGQgYmUgdHJhY2tlZCBhcyB0aGUgbGFyZ2VzdCBpbnRlZ2VyIGF2YWlsYWJsZS4KIAotY29tbWl0IGI4MThmY2VkY2MzYjU3YTI4OGE1Mjc0Yjk5M2VkY2JiMGZmYmFkMDcKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBNYXIgMTEgMDg6NDI6MDUgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IEJ1aWxkcyB3aXRoIG1vc3QgcmVjZW50IE1pbkdXIChoYXZpbmcgI2RlZmluZSBsb2NhbHRpbWVfcikuCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYzA4MjIxMDVhMzljMTExODE2MjkxODVlZTZkNzM0OGFlY2ZiNWYxOAotQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBNYXIgMTEgMDM6MDg6NTAgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGxpYjogcmVmaW5lIGNlcnQgZGVidWdnaW5nOyByZW1vdmUgdW51c2VkIGZ1bmN0aW9uCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNWExNjQxZWJhMWM4NWYyNGVhNzQ2MWU3MTg1YzgwNDJkNzY2NTNkYwotQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXIgMTAgMjE6MjE6MzIgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzIwNTc2NTogaGFuZGxlIHJlY29uZmlnIGZvciBjZXJ0U2VjTmFtZSB0b2tlbgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGY1YjcxMjdmNDJjNDU0YTJkOTFhMWE5MjNhOWU0ODIyMzU0ZGY2MWIKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXIgMTAgMjA6MDE6MzMgMjAxMSArMDAwMAotCi0gICAgU3BlbGxpbmcgZml4IGluIGEgc291cmNlIGNvZGUgY29tbWVudDogbWVzc2dlcyAtPiBtZXNzYWdlcy4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAwYjE5NmRmZDQyZDY2OTBlNGY1YmU3ZWUzZTIwNjRmMDM3Mjc0N2U0Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWFyIDEwIDE5OjU1OjI2IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBNaW5vciBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gb2YgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkuCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYzRlOGJiNzU5Mjg2ZTczMTU1OWYxYjgyYWI3ZmFmYmFmZDJkN2VhMwotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IE1hciAxMCAxOTo0ODo0MyAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMyMDM4MDY6IEF2b2lkIHRoYXQgdGhlIG1haW4gYWdlbnQgcHJvY2Vzc2luZyBsb29wIC0gd2hlbiB1c2luZyBtb3JlIHRoYW4gRkRfU0VUU0laRSBmaWxlIGRlc2NyaXB0b3JzIC0gY2FuIGNhdXNlIG1lbW9yeSBjb3JydXB0aW9uIGJ5IGludm9raW5nIHNlbGVjdCgpLgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEwOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGRiYjBmN2I5NzlmMDc2MjE4NWVlNWVlMTg0YmEzY2YyM2I1YjMxYTEKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXIgMTAgMTk6NDM6MTYgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMyMDM4MDY6IEFkZCB0aGUgZnVuY3Rpb24gbmV0c25tcF9sYXJnZV9zZWxlY3QoKS4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBhNzUyYTg2MjZmZjIwZmE1NmM5NTllNjA5NDU1MzBlNTgyYzkyOWVhCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWFyIDEwIDE4OjU3OjI0IDIwMTEgKzAwMDAKLQotICAgIEZpeGVkIHR3byBjb21waWxlciB3YXJuaW5ncyAoYmFja3BvcnRlZCByMjAwOTggZnJvbSB0aGUgdHJ1bmspLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGRlNmM1MjJjYmM2MWE3MjhmZjczN2ZlZTFlNGY0NDc5MTMzMDEzZWEKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXIgMTAgMTg6NTU6NTMgMjAxMSArMDAwMAotCi0gICAgQWRkZWQgYSBtaW5pbWFsIHVuaXQgdGVzdCBmb3IgbmV0c25tcF9sYXJnZV9mZF9zZXQuCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTA2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNjRmMTc2YTlkYjE2OTkzZWFlMWMxYTMxYzk4ZmQ0YzczNDc0YjE1MwotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IE1hciAxMCAxODo1MjozNCAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzIwMzgwNjogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSBjbGVhciBhbGwgcmVsZXZhbnQgZmlsZSBkZXNjcmlwdG9ycy4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAzYzBmYzM2MGQwZThiYTFmY2YwYzMxODU5ODBlNWJhZjZmYzkzZWY3Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXIgMTAgMTU6NTE6MjcgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE3ODM4OTogRml4IGluY29uc2lzdGVudCBoYW5kbGluZyBvZiBUWiBvZmZzZXRzCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgM2U2OWZhNWEyZmIyYjI0ODZlZjI4MmUzYmEyYzhmZmQ1OGIwYWQ3MQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWFyIDEwIDE1OjUxOjI3IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMxNzgzODk6IEZpeCBpbmNvbnNpc3RlbnQgaGFuZGxpbmcgb2YgVFogb2Zmc2V0cwotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDEwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGI5YTE0Njk4OThhYTUxNWM2ODk3MjYwOGNiYmYwMWE4MmYyYTk4ODIKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IE1hciAxMCAxNTo1MToyNyAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTc4Mzg5OiBGaXggaW5jb25zaXN0ZW50IGhhbmRsaW5nIG9mIFRaIG9mZnNldHMKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBmOGE4NTIxMDRhZjY3YzZjZmFkODIwNjY1ZWNhMmRjNzNkOWI1MWZmCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXIgMTAgMTU6NTE6MjcgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE3ODM4OTogRml4IGluY29uc2lzdGVudCBoYW5kbGluZyBvZiBUWiBvZmZzZXRzCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZDBlOGU2ZjRkMjExZWI1NWQwNWU2MTk2NTBiZTY1NWRmYTkzOTRlNQotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIE1hciA3IDE3OjE5OjQ2IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMTk1NTM3OiBNaW5vciBiaW5hcnlfYXJyYXkgY29udGFpbmVyIHNvcnQgb3B0aW1pemF0aW9uCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZWIwM2M0OGUzNTVlMDhhZTU2MjRkNjA1OTQ2NjY1OWI0MGJkOTg1YworY29tbWl0IDBmYzgyMjFiMjQ5ODhjNGFlNjE4MGVkNDJiODZiOTg1MmZkNTg2YWQKIEF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFN1biBNYXIgNiAxOTo0NzowNiAyMDExICswMDAwCitEYXRlOiAgIFdlZCBOb3YgMiAyMjo1OTowOCAyMDExICswMTAwCiAKLSAgICBUYWJzIHRvIHNwYWNlcwotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICBkc2tJbmRleCB3YXMgb2ZmIGJ5IG9uZQogCi1jb21taXQgNmJkMmIwYmIwMWM3NDI4MzUzNGVkY2ZjMWNiMDg3OTA4NjFlMGQ3NAorY29tbWl0IGE1YjI4ODI5ZTY0ZDVmM2I4N2U0YjliMWVmOGNjMjA0ZjMzYTYxYjcKIEF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFN1biBNYXIgNiAxMToyODowNCAyMDExICswMDAwCitEYXRlOiAgIFdlZCBOb3YgMiAyMToyNTowNyAyMDExICswMTAwCiAKLSAgICBDb25maWd1cmUgY2hlY2sgZm9yIGdldGhvc3RuYW1lMgotICAgIFVzZSBnZXRhZGRyaW5mbyBpZiBhdmFpbGFibGUuIE5vdyB3b3JrcyBmb3IgU29sYXJpcyAoYW5kIFdpbmRvd3M/KQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICBTb2xhcmlzIG5lZWRzICRBV0sgdG8gZ2V0IGEgdXNhYmxlIG5hd2sKIAotY29tbWl0IGQ4Njg0MzYyMTVjMGU3MGJkZTNjNDRlNGM5MjZkYWE2YWI4ODAwNzgKK2NvbW1pdCAyODAxYTIxMzlmMjcwMjFlMWFiMTVlMzYyZTJkM2Q2MjRmZmFhNDk0CiBBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTYXQgTWFyIDUgMTI6NTA6NDQgMjAxMSArMDAwMAorRGF0ZTogICBNb24gT2N0IDMxIDIyOjU1OjUzIDIwMTEgKzAxMDAKIAotICAgIENsZWFuIHVwLCBhbmQgY29zb2xpZGF0ZSByZXN1bHQgdGFibGUgcm93IGNyZWF0aW9uIGludG8gYSBuZXcgZnVuY3Rpb24uCi0gICAgU2F2ZXMgMjAwIGxpbmVzIG9mIGNvZGUsIHdpdGggKGhvcGVmdWxseSkgbm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2UKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgUGF0Y2ggIzM0MDYzNjQ6IEZpeCB1bnN0YWJsZSBkYXRhIGZvciBOZXRCU0QuCiAKLWNvbW1pdCBjODIxMDJkOWUyYTYyZGI0NjI4YjJjNWRkOWZmYjZkNzA3N2YwMmM1Citjb21taXQgODIxYTU4ZDExMmQ3YWM0OTUxNDllMjYyZDcwNDQxMmJhMjgwMDQzOAorQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6ICAgTW9uIE9jdCAzMSAyMjo0Mzo1MiAyMDExICswMTAwCisKKyAgICBGaXggaXB2NiBzdGF0aXN0aWNzIGxvb3BpbmcgdG9vIGZhciB3aGVuIHNjYW5uaW5nIGludGVyZmFjZXMuCisgICAgRml4IFRDUCBzZXNzaW9uIHRhYmxlIHJlcGVhdGluZyBkYXRhIGZyb20gZmlyc3QgZW50cnkgZm9yIGFsbC4KKworY29tbWl0IDM0OTU5MWQwM2UxN2E1NWI0M2VhY2M2YTY4N2IwMmZkOGQ0ZTk1MjgKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIE1vbiBPY3QgMzEgMDg6NTk6MzcgMjAxMSArMDEwMAorCisgICAgQ0hBTkdFUzogcGVybDogTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBwZXJsIHN1cHBvcnQgd2l0aG91dCBzdXBwb3J0IGZvciBvcGFxdWUgdHlwZXMuCisKK2NvbW1pdCAxZWM3MTEwZTcyYmNlMTU2MWY3NDY1MTc0NTlkNmYwNDMwMTZiNjBlCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gT2N0IDMwIDE5OjA1OjMwIDIwMTEgKzAxMDAKKworICAgIENIQU5HRVM6IHRlc3Rpbmc6IE1ha2UgdGhlIGFzbjEgdGVzdCBwYXNzIGV2ZW4gaWYgc3VwcG9ydCBmb3Igb3BhcXVlIHR5cGVzIGFyZSByZW1vdmVkLgorCitjb21taXQgNmQyNjkxOGFmNTVhYTM2NjJhNzIwNTQyZGU3N2JiZjM5YjBhM2U5MQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU2F0IE9jdCAyOSAwODozNDozMyAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wZDogRGlzYWJsZSB0aGUgc3VwcG9ydCBmb3IgaW50ZWdlcjY0IGluIHBhc3Mgc2NyaXB0cyBpZiBjb21waWxpbmcgd2l0aG91dCBvcGFxdWUtc3BlY2lhbC10eXBlcy4KKworY29tbWl0IDI5YmY2OWQ3MDQyNGYzNTlkOWM4N2YwN2E5NjRhMDk5NDE1NjQ5YTUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBPY3QgMTAgMTM6MDI6MjUgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcHRyYXBkX3NxbDogQXZvaWQgdGhhdCBhIGxpbmtlciBlcnJvciBpcyB0cmlnZ2VyZWQgb24gc3lzdGVtcyB3aGVyZSBteV9wcm9nbmFtZSBpcyBtaXNzaW5nIGluIGxpYm15c3FsY2xpZW50IChlLmcuIEZlZG9yYSAxNSBhbmQgMTYpLgorICAgIAorICAgIFRoaXMgaXMgYSBiYWNrcG9ydCBvZiBjb21taXQgOWY2NTNmNy4KKworY29tbWl0IDJjYzk1MDRiOWJiODYyNWI5NGJlNmNkYTdlNjA5OTNkMDU5Y2Q5MjgKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBPY3QgMjYgMDk6MDE6MjMgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzNDI4NTA2OiBGaXggbmV0c25tcF9nZXRob3N0YnlhZGRyKCkKKyAgICAKKyAgICBUaGlzIHBhdGNoIHNob3VsZCBmaXggdGhlIHJlZ3Jlc3Npb25zIGludHJvZHVjZWQgYnkgY29tbWl0IDg1ZDk2YzQgKE1heSAxMywgMjAxMSkuCisKK2NvbW1pdCA5YjQyN2IzNTNmMWNlYjhmZTg3ZTZmYzhlZDNiNmNmYWIzY2U3ZjIwCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgT2N0IDI3IDA4OjIwOjAwIDIwMTEgKzAyMDAKKworICAgIE1pbkdXOiBBdm9pZCBjb25mdXNpb24gYmV0d2VlbiBNaW5HVydzIGtpbGwuZXhlIGFuZCB0aGUgU3lzSW50ZXJuYWxzIHBza2lsbC5leGUKKworY29tbWl0IDJjNDVmOTJjZmNiNWIwNWUwNDkyMjZhNWE3ODgzYTBiMTA2MDExYWUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBPY3QgMjYgMTA6NDI6MjkgMjAxMSArMDIwMAorCisgICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHBhc3NpbmcgYSBjb25zdCBwb2ludGVyIHRvIGEgZnVuY3Rpb24gYWNjZXB0aW5nIGEgbm9uLWNvbnN0IHBvaW50ZXIuCisKK2NvbW1pdCAyNzVkMjNlZGZkZWJlMDU3N2IwODQyMWU0YzZjOTM2YWUzOWI3ZmRjCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgT2N0IDI2IDA5OjMzOjA5IDIwMTEgKzAyMDAKKworICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBzZXQtYnV0LW5vdC11c2VkIHZhcmlhYmxlcworCitjb21taXQgNDQ5NWUxN2MwNzhhYzY5OTdhOWM3ZmExYTg4ZGIwNjQ0ZTkxOTQ5MQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgV2VkIE9jdCAyNiAwOTozMjo0NiAyMDExICswMjAwCisKKyAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2FzdGluZyBhd2F5IGNvbnN0CisKK2NvbW1pdCAxMzk1MmY2YmVlOWY0MDg4NjdhYjZkMmZkZmRkZTRmMjg0MDc0OTU3CiBBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIE1hciA0IDE1OjA5OjI2IDIwMTEgKzAwMDAKK0RhdGU6ICAgV2VkIE9jdCAyNiAxNDowNToxNiAyMDExICswMjAwCiAKLSAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyIGJpdHMnIGluIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgb24gTGludXgKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBmcm9tIFNpZGRoZXNoIFBveWFyZWthcjogcHJvcGVybHkgY2xlYW4gdXAgb2xkIHJlcXVlc3RzIGluIGEgc3ViYWdlbnQgd2hlbiB3ZSByZWNvbm5lY3QgdG8gbWFzdGVyLgogICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDA2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICBBbiBzbm1wIHN1YmFnZW50IGxpbmtlZCBhZ2FpbnN0IG5ldC1zbm1wLWxpYnMgbWF5IGNyYXNoIGlmIGl0IGhhbmRsZXMgYQorICAgIHJlc3BvbnNlIHdoaWNoIGhhcyBtYWdpYyByZWZlcnJpbmcgdG8gYW4gb2xkZXIgZGlzY29ubmVjdGVkIG1haW4gc2Vzc2lvbi4gVGhpcworICAgIG1heSBoYXBwZW4gd2hlbiB0aGUgc3ViYWdlbnQKKyAgICBhdHRlbXB0cyB0byBjbGVhbiB1cCBvbGQgcmVxdWVzdHMgb24gcmVjb25uZWN0aW9uIG9mIHRoZSBkaXNjb25uZWN0ZWQgbWFzdGVyCisgICAgc2Vzc2lvbi4KIAotY29tbWl0IDQ3NmNjYTgzYTI4MzMzNTc4MGE4NGVjMGI4NzM0NDFmMTE0ODYzZGEKK2NvbW1pdCBhZTA1MjQ3MmIyMjcyMGQwODM2OWU4NTEyN2RiMjE0MjQ1ZGYyZTNmCiBBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIE1hciA0IDE1OjA5OjI2IDIwMTEgKzAwMDAKK0RhdGU6ICAgVHVlIE9jdCAyNSAxNjoxNToxNyAyMDExICswMjAwCiAKLSAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyIGJpdHMnIGluIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgb24gTGludXgKKyAgICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBzZWdtZW50YXRpb24gZmF1bHQgd2hlbiBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlscy4KICAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAwNjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgV2hlbiBuZXRzbm1wX3JlZ2lzdGVyX2hhbmRsZXIgZmFpbHMsIGl0IGZyZWVzIGl0cyByZWdpbmZvIC0+IG5zYWhyX0RFU1RST1kgKGFuZCBhbnkgb3RoZXIgZnVuY3Rpb24pIG11c3Qgbm90IGRlcmVmZXJlbmNlIGl0LgogCi1jb21taXQgMTVhZjBhZGY4MWYyNTU0NjNiOTA4ODU5YjM4M2Y0YTUxNWJlYzM2ZAorY29tbWl0IGMxOTliZjkxYjYyMzlmMjZiMmFhYjM0ZTg1NzVlMGYwZGY5Y2RlOWIKIEF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgTWFyIDQgMTU6MDk6MjYgMjAxMSArMDAwMAorRGF0ZTogICBNb24gT2N0IDI0IDE0OjI1OjI4IDIwMTEgKzAyMDAKIAotICAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCAndHJ1bmNhdGluZyBpbnRlZ2VyIHZhbHVlID4gMzIgYml0cycgaW4gVUNELVNOTVAtTUlCOjpzeXN0ZW1TdGF0cyBvbiBMaW51eAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICBDSEFOR0VTOiBzbm1wZDogeGZzLCBqZnMgYW5kIHZ4ZnMgZmlsZXN5c3RlbXMgYXJlIG5vdyByZWNvZ25pemVkIGluIGhyU3RvcmFnZVRhYmxlCiAKLWNvbW1pdCA2NTc5MWVkNjAzNGI0NDk1ZGZmNjdlMGJkNzc1YTJjNTc3ZDEzZjY3Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWFyIDMgMTA6NTY6MjEgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogV2luMzI6IERlcHJlY2F0ZWQgbGlic25tcC5kZWYgLSBhZGQgTkVUU05NUF9JTVBPUlQgdG8gZnVuY3Rpb24gZGVjbGFyYXRpb25zIGluc3RlYWQgdG8gZXhwb3J0IGEgZnVuY3Rpb24gZnJvbSBuZXRzbm1wLmRsbC4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA1YTRmOWVhYjZiZjIxMWYwYTA5MTdjNTkyY2RlMmU1ZTg0ZDBjNGRjCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWFyIDMgMTA6NTA6MjMgMjAxMSArMDAwMAotCi0gICAgTW92ZWQgYSBzb3VyY2UgY29kZSBjb21tZW50IHN1Y2ggdGhhdCBpdCBpcyBhZ2FpbiBpbW1lZGlhdGVseSBhYm92ZSB0aGUgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGl0IGFwcGxpZXMgdG8uCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDU1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZTY0ZjUxMGZmYjE3OTYxOTExMjY4YTg0NWQ2OWJiYTdhZGFkYmY4NQotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IE1hciAzIDEwOjQ4OjM0IDIwMTEgKzAwMDAKLQotICAgIEFkZGVkIG1pc3NpbmcgTkVUU05NUF9JTVBPUlQgZGVjbGFyYXRpb25zLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA1NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDQ2MWQyZDA5MDM4ZTMyMWI1OWQ4MzE5MDVhYzliNzY1YmI0YTNjOGUKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBNYXIgMyAxMDoyNDowMSAyMDExICswMDAwCi0KLSAgICBSZW1vdmVkIHR3byBvYnNvbGV0ZSBXaW4zMiBmaWxlcy4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAyODg2ZDAyYzcyNzY5ZmE5NjlmMGExMTdkYzcyY2I1ZDZiNDBiMmQ1Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgTWFyIDMgMTA6MDk6MTQgMjAxMSArMDAwMAotCi0gICAgVHJpdmlhbCBjb21tZW50IGZpeDogc25tcElQdjZCYXNlRG9tYWluLmMgY29udGFpbnMgSVB2NiBiYXNlIHRyYW5zcG9ydCBzdXBwb3J0IGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIElQdjQuCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMmY1NGY1YjM5ZDk2YWE3YjQ4NGQwYzk5NDQzNGJkOTI5YjE3Mjc2MwotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgRmViIDI1IDEyOjU1OjA0IDIwMTEgKzAwMDAKLQotICAgIEZpeCB0aGUgY29tbWFuZCB0byBjcmVhdGUgYSBuZXcgU1ZOIHRhZyBsaW5lCi0gICAgCi0gICAgKEhhdmluZyBicm91Z2h0IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIDUuNS54IGJyYW5jaAotICAgICBpbnRvIGxpbmUgd2l0aCB0aGUgb3RoZXIgYnJhbmNoZXMsIHRoZSBwcmV2aW91cwotICAgICBjb21tYW5kIGlzIG5vdyB3cm9uZyBmb3IgKmFsbCogYnJhbmNoZXMsIHJhdGhlcgotICAgICB0aGFuIGp1c3QgbW9zdCBvZiB0aGVtISkKLSAgICAKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5OTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBhNjkxYzJmNzQ1MWU0MDFmNGZiOGQ3NGJmZjhiZjExNjhmMGE2ZmYxCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBGZWIgMjUgMTI6NTU6MDQgMjAxMSArMDAwMAotCi0gICAgRml4IHRoZSBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBTVk4gdGFnIGxpbmUKLSAgICAKLSAgICAoSGF2aW5nIGJyb3VnaHQgdGhlIHN0cnVjdHVyZSBvZiB0aGUgNS41LnggYnJhbmNoCi0gICAgIGludG8gbGluZSB3aXRoIHRoZSBvdGhlciBicmFuY2hlcywgdGhlIHByZXZpb3VzCi0gICAgIGNvbW1hbmQgaXMgbm93IHdyb25nIGZvciAqYWxsKiBicmFuY2hlcywgcmF0aGVyCi0gICAgIHRoYW4ganVzdCBtb3N0IG9mIHRoZW0hKQotICAgIAotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTk5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGM2Y2U1YThiZWNmM2VlNTIyMTZkMTYwZjVjNzNhMTc5MzVlYWY3OTEKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEZlYiAyNSAxMjo1NTowNCAyMDExICswMDAwCi0KLSAgICBGaXggdGhlIGNvbW1hbmQgdG8gY3JlYXRlIGEgbmV3IFNWTiB0YWcgbGluZQotICAgIAotICAgIChIYXZpbmcgYnJvdWdodCB0aGUgc3RydWN0dXJlIG9mIHRoZSA1LjUueCBicmFuY2gKLSAgICAgaW50byBsaW5lIHdpdGggdGhlIG90aGVyIGJyYW5jaGVzLCB0aGUgcHJldmlvdXMKLSAgICAgY29tbWFuZCBpcyBub3cgd3JvbmcgZm9yICphbGwqIGJyYW5jaGVzLCByYXRoZXIKLSAgICAgdGhhbiBqdXN0IG1vc3Qgb2YgdGhlbSEpCi0gICAgCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYmVhOTAzM2Q2YTU4M2ExZDlmODI3NGFmNGNlMTU2NWRmZmYwZjA5MAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgRmViIDI1IDExOjQ5OjE3IDIwMTEgKzAwMDAKLQotICAgIGRvY3VtZW50YXRpb24gdXBkYXRlCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTk1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNTIyOWEwNjZmMjM0ZjcwZjViMDg5NGYwZjM2MTdiNGY5ZWQxZmNjMQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgRmViIDI1IDExOjQxOjMxIDIwMTEgKzAwMDAKLQotICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk5NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGJlMmE5MTg1YjZmNGFkZmM0YzgxZDU0MmFmN2UzYjY1NGY1NTNiMTYKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEZlYiAyNSAxMTozOToyNCAyMDExICswMDAwCi0KLSAgICB2ZXJzaW9uIHVwZGF0ZQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk5MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDE1YTQ1NmUxZDJlZDExMmEwNzgzOGNhZjdmMzQ1NjUyMWMxN2ZkZjkKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEZlYiAyNSAxMToxNTo1MiAyMDExICswMDAwCi0KLSAgICBWZXJzaW9uIG51bWJlciB1cGRhdGUKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5OTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAxYzRmZTNhMWI5MWI4Mzc4NjlkODJlM2Q4MTQzZTZiZTU2OWEwOTY2Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBGZWIgMjUgMTE6MTA6MDAgMjAxMSArMDAwMAotCi0gICAgQXZvaWQgYSBwb3NzaWJsZSBjcmFzaCBpZiB0aGUgZW5naW5lSUQgaXMgbm90IGF2YWlsYWJsZSBvciBzZXQuCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5OTkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZDJmZDc3ZDg2MjgwM2UzYWQ1MGYyMTA2NzQzMGE3MWYxZWNlOWQ4ZAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgRmViIDI1IDExOjEwOjAwIDIwMTEgKzAwMDAKLQotICAgIEF2b2lkIGEgcG9zc2libGUgY3Jhc2ggaWYgdGhlIGVuZ2luZUlEIGlzIG5vdCBhdmFpbGFibGUgb3Igc2V0LgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTk5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDU3NzFjMjI1ZGE5NmI0OTZiOGRiMmY0Nzg0ZTdiODVjNGJiNTIzYzEKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEZlYiAyNSAxMToxMDowMCAyMDExICswMDAwCi0KLSAgICBBdm9pZCBhIHBvc3NpYmxlIGNyYXNoIGlmIHRoZSBlbmdpbmVJRCBpcyBub3QgYXZhaWxhYmxlIG9yIHNldC4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5OTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA0MWUyNmFiZGUyYjVkNmY0MGNhZjY4NGE3YTMwOWY3YTYxMWM2MzFmCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBGZWIgMjUgMTE6MTA6MDAgMjAxMSArMDAwMAotCi0gICAgQXZvaWQgYSBwb3NzaWJsZSBjcmFzaCBpZiB0aGUgZW5naW5lSUQgaXMgbm90IGF2YWlsYWJsZSBvciBzZXQuCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgOTg4OTA4MmUzMjUyZTAyY2FmNWNjNGYzYmMxYzRiNGQxYzEzNGM1MgotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEZlYiAyMyAyMTowNDozNCAyMDExICswMDAwCi0KLSAgICBJbmNsdWRlIHJlcXVpcmVkIHByb3RvdHlwZQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDMxMzAxNjYyMjZkMDAzNjRkNjA3YmE5ZTg3NDNhYmI3YWE0MmVjYzEKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBGZWIgMjMgMTU6MjM6MzcgMjAxMSArMDAwMAotCi0gICAgdW5zaWduZWQganVnZ2xpbmcgdG8gcmVtb3ZlIHdhcm5pbmdzCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNWFhYTRiM2Y2ODkzYWU0MTJlNzRkMGNhZWQyNmY0NzNkYzM4YjQzNQotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEZlYiAyMyAxNToyMDoxMSAyMDExICswMDAwCi0KLSAgICBFbmFibGUgKHByb2JhYmx5IGZvcmdvdHRlbikgaXBBZGRyZXNzUHJlZml4VGFibGUKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA1ZGFlYzEyZGU0NDJhMjJmZjI5ODIzNWUxMjUwYmU5OTYxMDNjZDg5Ci1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgRmViIDIzIDA5OjU0OjE2IDIwMTEgKzAwMDAKLQotICAgIExvYWRpbmcgSVB2NiBkYXRhIGlzIGEgbm8tbm8gd2hlbiBJUHY2IG5vdCBlbmFibGVkCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTcyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgOGFiNmNlOTVkYjdiY2RhNDQyOTFmMDdlYjgzYTJiYzNiOTFkMjYyYQotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEZlYiAyMyAwOTozNjoyMiAyMDExICswMDAwCi0KLSAgICBGaXggYnVnIDMxMTg2MzE6IHNubXB0YWJsZSBzZWdmYXVsdHMgaWYgaW5kZXggY29udGFpbnMgOiBjaGFyYWN0ZXIKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk5NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA5NjVhNzdiOTIzZjE0MDk3YjkxZWRiODliYTM2YmMwYjU2OTA3OGM5Ci1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgRmViIDIzIDA5OjM2OjIyIDIwMTEgKzAwMDAKLQotICAgIEZpeCBidWcgMzExODYzMTogc25tcHRhYmxlIHNlZ2ZhdWx0cyBpZiBpbmRleCBjb250YWlucyA6IGNoYXJhY3RlcgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTk3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGM1Yjc0MmQ5MzU1ODQzZTg0MTAwYzk3N2E5YWJjMTUxZTJkNzhhZmQKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBGZWIgMjMgMDk6MzY6MjIgMjAxMSArMDAwMAotCi0gICAgRml4IGJ1ZyAzMTE4NjMxOiBzbm1wdGFibGUgc2VnZmF1bHRzIGlmIGluZGV4IGNvbnRhaW5zIDogY2hhcmFjdGVyCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgN2E2MTIyM2Y0Y2Y3YTM4OWI4N2ZhY2UyNDdhN2E2NTczNDkwMGM2NgotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEZlYiAyMyAwOTozNjoyMiAyMDExICswMDAwCi0KLSAgICBGaXggYnVnIDMxMTg2MzE6IHNubXB0YWJsZSBzZWdmYXVsdHMgaWYgaW5kZXggY29udGFpbnMgOiBjaGFyYWN0ZXIKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA2Y2NiNTRlOTQ1NzI3OWQ4YzJiMGMwMzBhY2VkMjE1ZTcwMzYwMTBlCi1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgRmViIDIzIDA5OjMwOjUyIDIwMTEgKzAwMDAKLQotICAgIEZyZWVCU0QgOCBzdXBwb3J0Ci0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5OTcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZjljNzBkZDE2YmVmZTg3MjhlZjJhYjNmMTAzZGQ4M2U4YzMzZWFjZQotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEZlYiAyMyAwOTozMDo1MiAyMDExICswMDAwCi0KLSAgICBGcmVlQlNEIDggc3VwcG9ydAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDkxYjk1ODgxZWRkYzI1YTg4NWIwYjQ3MTFiNTJiMTEyNzg5OTBlN2EKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBGZWIgMjMgMDk6MzA6NTIgMjAxMSArMDAwMAotCi0gICAgRnJlZUJTRCA4IHN1cHBvcnQKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA1ODNlN2IxNDU0YTI3Y2FjODk5MDdkNDQzMjVhMTQzMmZkMGI5YTg4Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBGZWIgMjIgMTU6MjU6MzUgMjAxMSArMDAwMAotCi0gICAgUmV2ZXJ0IGEgYm9ndXMgY2hhbmdlIHRoYXQgY3JlcHQgaW50byB0aGUgY29kZS4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5NjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAwMGVmNTY5ZTAwZDE2NGQ5ZTEwNzBjZDcwNWM2NWU0YTczOTBhMTYyCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBGZWIgMjIgMDg6NTU6NDggMjAxMSArMDAwMAotCi0gICAgRml4IDUuNS54IGJyYW5jaCBzdHJ1Y3R1cmUgKHBhcnQgMikKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5NjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA3MjdhMmYyMWMzY2M3NGQzYzNiZThhNDcwN2VmMWVjNDlhYjZiZjdjCi1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gRmViIDIxIDIyOjQwOjA2IDIwMTEgKzAwMDAKLQotICAgIHByb3BlciBwcm9jZXNzIHN0YXR1cyB2YWx1ZXMgZm9yIG5ldGJzZAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDBkODIwZmNmOTVlNDQ0ZGQ4YTUzMWNjNmY4MmNjN2I4YTY5ODY2YjgKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBGZWIgMjEgMjI6Mzk6MDUgMjAxMSArMDAwMAotCi0gICAgY29uZGl0aW9uYWxpemUgdmFyaWFibGUKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBhNDlkMGQ4MDgyYzE5MTI3MzNhODc3NWE3MzgxN2FkZjRhYjNlYmVmCi1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gRmViIDIxIDIyOjIwOjA0IDIwMTEgKzAwMDAKLQotICAgIHRjcC1taWIvdWRwLW1pYiBzdXBwb3J0IGZvciB0aGUgKmJzZHMKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA1ZjcyOWQ0ODA5Nzg1YWUwYzc1ZGIyYTgzMWVhOTQ0MTYyMmNmN2Y3Ci1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gRmViIDIxIDIyOjE2OjU2IDIwMTEgKzAwMDAKLQotICAgIHRjcC1taWIvdWRwLW1pYiBzdXBwb3J0IGZvciB0aGUgKmJzZHMKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAyYjRmMDcwNmMzYzE0MzMwNjlkNTY2YmNiNDg4OTJmNDUxY2E2MGQ4Ci1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gRmViIDIxIDIyOjA1OjU2IDIwMTEgKzAwMDAKLQotICAgIFByb3Blcmx5IGVuZCBkZWJ1ZyBtZXNzYWdlIHdpdGggbmV3bGluZQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDUzYjM1OTY0OTZiM2Q3ODU4Mjk4MzIwZWYzZTgzZTRhMjZhN2FhM2UKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBGZWIgMjEgMjI6MDQ6MjQgMjAxMSArMDAwMAotCi0gICAgcmVtb3ZlIHZhciB0aGF0IHNoYWRvd3MgdGhlIHVzZWZ1bCBvbmUKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA1MGQ3M2YwZDU2ZmUyMmM1OTA1MzBiM2UzMDVkNDFkY2RhYzNjZTAwCi1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gRmViIDIxIDIyOjAyOjMwIDIwMTEgKzAwMDAKLQotICAgIG1ham9yIGZpZGRsaW5nIHRvIGdldCB0aGluZ3Mgd29ya2luZyBmb3Igb3BlbmJzZCB0b28uIFRoaXMgc2hvdWxkIHJlYWxseSBiZSByZXdvcmtlZCB0byB1c2UgdGhlIHRjcC1taWIvdWRwLW1pYi9kYXRhX2FjY2VzcwotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDI3NjA3ZTMxZjc0NTRkYmMxZDcwYTEwNmQwNTMxZjQzNTU5YTMxYmEKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBGZWIgMjEgMjE6NTk6NTAgMjAxMSArMDAwMAotCi0gICAgZml4IHRjcCBzdGF0ZXMgZm9yIGRyYWdvbmZseWJzZAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk1NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDYwZDU0OTU2NmE5MDQ5NDA0MzUzN2Q1OGVjODQ3YWZjNDg3ZDY2ZDAKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBGZWIgMjEgMjE6NTc6NTkgMjAxMSArMDAwMAotCi0gICAgZW5hYmxlIG5ldyB0Y3AvdWRwIG1pYnMgZm9yIHNvbGFyaXMKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA4YTI0MDhjMTZmYWI4M2Q2YjQwMTBlNDc3Y2Y2NjBkYzE4ZmJiMzNiCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gRmViIDIxIDE5OjA4OjAwIDIwMTEgKzAwMDAKLQotICAgIFVwZGF0ZWQgY29tbWVudCBhYm91dCB3aGVyZSBtYWtlcmVsZWFzZSBjb21lcyBmcm9tIChub3cgZ2l0aHViKQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTk1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDNhYmJjYWEwOTFkYTQxZTQwZjgyMDgxZjYxYjI0YmJmMGNmZDIxOGIKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBGZWIgMjEgMTk6MDg6MDAgMjAxMSArMDAwMAotCi0gICAgVXBkYXRlZCBjb21tZW50IGFib3V0IHdoZXJlIG1ha2VyZWxlYXNlIGNvbWVzIGZyb20gKG5vdyBnaXRodWIpCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMTllYTg4NjMxZTVmZmY3ZTA0OGRlMzhlZmYzNTJhOWYwMDRkNjJlOQotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIEZlYiAyMSAxMToxNDowMSAyMDExICswMDAwCi0KLSAgICBCYWNrcG9ydGVkIHIxOTQ1NCBmcm9tIHRoZSB0cnVuayBhbmQgdGhlcmVieSBmaXhlZCB0aGlzIFZhbGdyaW5kIGNvbXBsYWludDoKLSAgICAKLSAgICA9PTYyODc9PSBJbnZhbGlkIHJlYWQgb2Ygc2l6ZSA4Ci0gICAgPT02Mjg3PT0gICAgYXQgMHg0RTZDQ0FFOiBuZXRzbm1wX2RlbGV0ZV90YWJsZV9kYXRhX3NldCAodGFibGVfZGF0YXNldC5jOjE4NikKLSAgICA9PTYyODc9PSAgICBieSAweDUxMjE5NzQ6IHNodXRkb3duX25vdGlmaWNhdGlvbl9sb2cgKG5vdGlmaWNhdGlvbl9sb2cuYzo1NjQpCi0gICAgPT02Mjg3PT0gICAgYnkgMHg1MTk0MURCOiBfc2h1dGRvd25fbWliX21vZHVsZXMgKG1pYl9tb2R1bGVfc2h1dGRvd24uaDozMikKLSAgICA9PTYyODc9PSAgICBieSAweDU0QjE0RjQ6IHNubXBfY2FsbF9jYWxsYmFja3MgKGNhbGxiYWNrLmM6MzQ0KQotICAgID09NjI4Nz09ICAgIGJ5IDB4NTQ4QjU4Qjogc25tcF9zaHV0ZG93biAoc25tcF9hcGkuYzo4NjIpCi0gICAgPT02Mjg3PT0gICAgYnkgMHg0MDRDMDY6IG1haW4gKHNubXBkLmM6MTA2MCkKLSAgICA9PTYyODc9PSAgQWRkcmVzcyAweDY4NmYzMTggaXMgMjQgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSA0MCBmcmVlJ2QKLSAgICA9PTYyODc9PSAgICBhdCAweDRBMDYwRTA6IGZyZWUgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MzY2KQotICAgID09NjI4Nz09ICAgIGJ5IDB4NEU2QUIxNjogbmV0c25tcF90YWJsZV9kYXRhX2RlbGV0ZV90YWJsZSAodGFibGVfZGF0YS5jOjMyMCkKLSAgICA9PTYyODc9PSAgICBieSAweDRFNkNDODQ6IG5ldHNubXBfZGVsZXRlX3RhYmxlX2RhdGFfc2V0ICh0YWJsZV9kYXRhc2V0LmM6MTgwKQotICAgID09NjI4Nz09ICAgIGJ5IDB4NTEyMTk3NDogc2h1dGRvd25fbm90aWZpY2F0aW9uX2xvZyAobm90aWZpY2F0aW9uX2xvZy5jOjU2NCkKLSAgICA9PTYyODc9PSAgICBieSAweDUxOTQxREI6IF9zaHV0ZG93bl9taWJfbW9kdWxlcyAobWliX21vZHVsZV9zaHV0ZG93bi5oOjMyKQotICAgID09NjI4Nz09ICAgIGJ5IDB4NTRCMTRGNDogc25tcF9jYWxsX2NhbGxiYWNrcyAoY2FsbGJhY2suYzozNDQpCi0gICAgPT02Mjg3PT0gICAgYnkgMHg1NDhCNThCOiBzbm1wX3NodXRkb3duIChzbm1wX2FwaS5jOjg2MikKLSAgICA9PTYyODc9PSAgICBieSAweDQwNEMwNjogbWFpbiAoc25tcGQuYzoxMDYwKQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTk0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGE5NTFjMjBhNjg2NTkyMDk0OWY0NTA0Y2IwNzY5MDZjMjNjYWI0ODUKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBGZWIgMjEgMDc6MTM6MzMgMjAxMSArMDAwMAotCi0gICAgRml4ZWQgYSBNaW5HVy1zcGVjaWZpYyBjb21waWxlciB3YXJuaW5nIChiYWNrcG9ydGVkIHIxOTkyMiBmcm9tIHRydW5rKS4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA3MWI2MTVlMzhhNWFmMGMwN2FiOTg5OTRkOTQwNThkZWQxZWYwMDZkCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTdW4gRmViIDIwIDA5OjI0OjI5IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMxODU1Mjg6IHNodXRkb3duX21hc3Rlcl9hZ2VudCBkb2Vzbid0IGNsb3NlIFVEUCBzb2NrZXQKLSAgICAoRml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiByMTk1MTEuKQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTk0MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDkyYTY5MTllNmE5NzVkNjY4YzdhZjExZjc4OGZiYjM1NTFjZjE4NmIKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFN1biBGZWIgMjAgMDk6MjQ6MjkgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE4NTUyODogc2h1dGRvd25fbWFzdGVyX2FnZW50IGRvZXNuJ3QgY2xvc2UgVURQIHNvY2tldAotICAgIChGaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIHIxOTUxMS4pCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMzY1NGZjZDBhYTlkNDYwOWJhZmM3ZTg3Nzk1OGY1ZTIzNGUxYjFjOQorY29tbWl0IDc0N2ZkYzcxZTY0ZDA5ZTA4MDkyOGViYmI0ZDA0Y2JkZTM5MDY3OTkKIEF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgRmViIDE3IDExOjI4OjI3IDIwMTEgKzAwMDAKK0RhdGU6ICAgV2VkIE9jdCA1IDE1OjU3OjU5IDIwMTEgKzAyMDAKIAotICAgIEZpeGVkIHNubXAtYnJpZGdlLW1pYiBpbiBzdGFuZGFsb25lIChhZ2VudHgpIHZlcnNpb24uCi0gICAgRG9uJ3QgZGVjbGFyZSBsb2NhbCB2YXJpYWJsZXMgaW5zaWRlIGJsb2NrLiBQYXRjaCBwcm92aWRlZCBieSBKZW5zIE9zdGVya2FtcC4KKyAgICBDSEFOR0VTOiBzbm1wZDogTG93ZXJlZCBzZXZlcml0eSBvZiAnZXJyb3IgZmluZGluZyByb3cgaW5kZXggaW4gX2lmWFRhYmxlX2NvbnRhaW5lcl9yb3dfcmVzdG9yZScgbWVzc2FnZS4KICAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgVGhlIG1lc3NhZ2UgaXMgc2hvd3MgdXAgd2hlbiBzbm1wZCBpcyBzdGFydGVkIGFuZCB0aGVyZSBpcyBkaWZmZXJlbnQgc2V0IG9mIG5ldHdvcmsgaW50ZXJmYWNlcyB0aGFuIGl0IHdhcyB3aGVuIHNubXBkIHdhc3QgbGFzdCBzdG9wcGVkLiBUaGlzIGlzIGNvbW1vbiBvbiBwcHAtc2VydmVycyBvciB2aXJ0dWFsIGhvc3RzLgogCi1jb21taXQgZGFjYmU2M2MxOGI2MWY3ZTdkZDczNjgxYjc4YmZiZWEzZTIyMWFmOQorY29tbWl0IDI1MGY2OThlNTllYWI5ZjFmZmQzMzJmZjU5ZmRiNzJlYTBkZjA2ZmYKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFN1biBPY3QgMjMgMDg6NTE6MjMgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgdGhlIHRyYW5zcG9ydCBjb25maWd1cmF0aW9uIGNvZGUgd29yayBhZ2FpbgorICAgIAorICAgIFByZXZpb3VzbHkgdGhlIHRyYW5zcG9ydCBpbmhlcml0YW5jZSBwcm9jZXNzaW5nIGNvZGUgcmFuIHdpdGgKKyAgICBORVRTTk1QX0ZFQVRVUkVfQ0hFQ0tJTkcgc2V0LiBJbiB0aGlzIG1vZGUgdGhlIGZpbGUgbmV0LXNubXAvZmVhdHVyZS1kZXRhaWxzLmgKKyAgICBpcyByZXF1aWVyZWQuIFRoYXQgZmlsZSBpcyBjcmVhdGVkIGR1cmluZyB0aGUgZmlyc3QgbWFrZSBydW4sIGFuZCB0aGF0IGhhcHBlbnMKKyAgICBhZnRlciBjb25maWd1cmUgaXMgcnVuLgorICAgIENoYW5nZSB0aGlzIHRvIHVuZGVmaW5lIE5FVFNOTVBfTUlOSU1BTF9DT0RFLCBlZmZlY3RpdmVseSB0dXJuaW5nIG9mZiBmZWF0dXJlCisgICAgc3VwcG9ydCBkdXJpbmcgdHJhbnNwb3J0IGNvbmZpZ3VyYXRpb24gaW4gb3JkZXIgdG8gbWFrZSBpdCB3b3JrIGF0IGFsbC4KKworY29tbWl0IDZlZjY5MDc2NDIyNDdjNjYzYjliODk2NGI5ZmQ0NGEyMTFkYmNhYTcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBPY3QgMjAgMjA6MzA6NTQgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQwODM5ODogRml4IGEgbWVtb3J5IGxlYWsgaW4gYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy4KKyAgICAKKyAgICBUaGlzIG1lbW9yeSBsZWFrIHdhcyBpbnRyb2R1Y2VkIHZpYSBjb21taXQKKyAgICA5YmYzZDk2ZDk2YThlY2Q0YTVmYzM1YzMyNmRjOTM3NDY3MDAyYjZjOiBJbml0aWFsIEhBTAorICAgIGltcGxlbWVudGF0aW9uIG9mIEZpbGVTeXN0ZW0gaW5mb3JtYXRpb24gKE1hcmNoIDcsIDIwMDgpLgorCitjb21taXQgY2Y4MmI4OTRiMjIxN2MyNmVkYzZmMTM1NjM1MWM5MzI0MTU2MDRlMgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgU2F0IE9jdCAxNSAxNDo0NTowOCAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDM0MjM5MTU6IENoYW5nZSBkZWZhdWx0IG51bWJlciBvZiByZXRyaWVzIGJhY2sgZnJvbSAwIHRvIDUKKyAgICAKKyAgICBUaGlzIHBhdGNoIGZpeGVzIGEgYnVnIGludHJvZHVjZWQgdmlhIGNvbW1pdCA2Y2FjMDUwIChNYXkgNSwgMjAxMSwKKyAgICBhZGRlZCBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIHRoZSBkZWZhdWx0IG51bWJlciBvZiByZXRyaWVzIGluCisgICAgc25tcGQuY29uZikuCisKK2NvbW1pdCBjMTFhZGFhMTI5MTVhYmZlZTYyOWJiNmMwMjZjMjFmMjE4NWIyMTZlCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gT2N0IDE3IDEwOjI0OjQ2IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IFdpbjMyOiBBdm9pZCB0aGF0IGNvbXBpbGluZyB0aGUgaGVhZGVyIGZpbGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiB3aXRoIHRoZSBNaW5HVyBnY2MgY29tcGlsZXIgdHJpZ2dlcnMgd2FybmluZ3MgYWJvdXQgInByYWdtYSBjb21tZW50Ii4KKworY29tbWl0IGIxN2E3MmE3OTM0ODNhZWU0YTViYjJmMmUyYzdmNGZkODY5ODE3ZTYKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBPY3QgMTcgMTA6MjI6MjAgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogV2luMzI6IEF2b2lkIHRoYXQgdGhlIFBBQ0tBR0VfKiBtYWNyb3MgZGVmaW5lZCBpbiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNhdXNlIHRyb3VibGUgd2hlbiBpbmNsdWRpbmcgdGhpcyBoZWFkZXIgaW4gYSBwYWNrYWdlIHRoYXQgdXNlcyB0aGUgR05VIGF1dG90b29scy4KKworY29tbWl0IDY2NGQzYWUxMDdkNzU0MDUxYjhjNDIyNzlkNDU5YWE1N2ExYmUxYzMKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIE1vbiBPY3QgMTAgMTY6NDc6MTYgMjAxMSArMDIwMAorCisgICAgTWluR1csIGh3X2ZzeXM6IFVzZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmllcnMgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQuCisgICAgCisgICAgVGhpcyBwYXRjaCBmaXhlcyBhbiBpc3N1ZSBpbnRyb2R1Y2VkIGluIGNvbW1pdCA3NmZmMjVkLgorCitjb21taXQgMjExZGNiNDkzMDY1NjFlMzViYTNjMjEzYmU3Y2ZhMjU3YjQwYThlNQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIE9jdCAxMCAxNTo1Mjo0MyAyMDExICswMjAwCisKKyAgICBBdm9pZCB0aGF0IGdjYyA0LjYgY29tcGxhaW5zIGFib3V0IHNldCBidXQgbm90IHVzZWQgdmFyaWFibGVzCisKK2NvbW1pdCA5ZjY1M2Y3M2U1YWE3MGYwYmVmMTE3NDYzMmU5NTU5NGY4N2Y2NjlmCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBNb24gT2N0IDEwIDEzOjAyOjI1IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IHNubXB0cmFwZF9zcWw6IEF2b2lkIHRoYXQgYSBsaW5rZXIgZXJyb3IgaXMgdHJpZ2dlcmVkIG9uIHN5c3RlbXMgd2hlcmUgbXlfcHJvZ25hbWUgaXMgbWlzc2luZyBpbiBsaWJteXNxbGNsaWVudCAoZS5nLiBGZWRvcmEgMTUgYW5kIDE2KS4KKworY29tbWl0IDRjODNiOTIyOWE3NDU0ZjM0ZjZmZjc1ZjY5ZTY3ZTQwMzBjNDE5YjUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBPY3QgNyAxNTo1ODo0NSAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBTZXQgdGhlIHJwYXRoIGZvciBsaWJwZXJsLnNvIGluIGxpYm5ldHNubXBtaWJzLnNvIHN1Y2ggdGhhdCB0aGUgZHluYW1pYyBsaW5rZXIgY2FuIGZpbmQgbGlicGVybC5zbyB3aXRob3V0IHJlcXVpcmluZyB0aGUgdXNlciB0byBtb2RpZnkgdGhlIGR5bmFtaWMgbGlua2VyIHNldHRpbmdzLgorICAgIAorICAgIFRoaXMgY2hhbmdlIGluIGFnZW50L01ha2VmaWxlLmluIGlzIG5lY2Vzc2FyeSBvbiB0aGUgNS41IGJyYW5jaCBhbmQKKyAgICBsYXRlciBidXQgbm90IG9uIHRoZSA1LjQgYnJhbmNoLiBUaGF0IGlzIGJlY2F1c2UgdGhlIDUuNCBicmFuY2ggdXNlcworICAgIGFuIG9sZGVyIHZlcnNpb24gb2YgbGlidG9vbCB0aGF0IHByb3BhZ2F0ZXMgdGhlIHJwYXRoIG9mIGRlcGVuZGVudAorICAgIGxpYnJhcmllcy4gVGhpcyBpcyBjYWxsZWQgaW50ZXItbGlicmFyeSBkZXBlbmRlbmN5IHRyYWNraW5nIGluIHRoZQorICAgIGxpYnRvb2wgbWFudWFsLiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgcHJlc2VudCBpbiBsaWJ0b29sIHZlcnNpb24gMQorICAgIGJ1dCBub3QgaW4gbGlidG9vbCB2ZXJzaW9uIDIuIEZvciBtb3JlIGJhY2tncm91bmQgaW5mb3JtYXRpb24gYWJvdXQKKyAgICBkeW5hbWljIGxpYnJhcmllcyBhbmQgcnBhdGhzLCBzZWUgYWxzbyB0aGUgZG9jdW1lbnQgd2l0aCB0aGUgdGl0bGUKKyAgICAiUnBhdGhJc3N1ZSIgb24gdGhlIERlYmlhbiB3aWtpIChodHRwOi8vd2lraS5kZWJpYW4ub3JnL1JwYXRoSXNzdWUpLgorCitjb21taXQgODkyNWM5MTJkMjYzOTc1MmE4NGJjZmZlZWYxYjcwYTgxMDI2NDQ5YgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIE9jdCA3IDE0OjIxOjI4IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IGFnZW50OiBIT1NULVJFU09VUkNFUy1NSUI6IEFkZCBtaXNzaW5nIGJyYWNlIGluIGEgZGVidWcgc3RhdGVtZW50CisKK2NvbW1pdCA3NmZmMjVkOWJmOTc1NzllNzIxMzEwMjA2NWZkNTA5NmYwNDlhNGM1CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgT2N0IDcgMTQ6MTM6MTggMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IEhPU1QtUkVTT1VSQ0VTLU1JQjo6aHJTdG9yYWdlVGFibGU6IGZpeCBidWcgaW4gaGFuZGxpbmcgbGFyZ2UgZmlsZXN5c3RlbXMsIHdoZXJlIGxhcmdlIG1lYW5zIGFib3ZlIDggVEIgKD0gMioqMzEgKiA0MDk2IGJ5dGVzKS4KKyAgICAKKyAgICBUaGlzIHBhdGNoIGZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gY29tbWl0CisgICAgNzFkODI5M2YzODdhNmNkNjZiYjBkYmIxM2MwZjUwMTc0ZDJlNjc4Yi4KKyAgICBGb3IgdGhlIG9yaWdpbmFsIGJ1ZyByZXBvcnQsIHNlZSBhbHNvCisgICAgaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvdHJhY2tlci8/ZnVuYz1kZXRhaWwmYXRpZD0xMTI2OTQmYWlkPTM0MTk4MjUmZ3JvdXBfaWQ9MTI2OTQuCisKK2NvbW1pdCA4NjYwMzNkYjk5MDRmZmIxMjAzZjI4M2Y4MzgwOTJlNGNmNjhkZTZiCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBUaHUgT2N0IDYgMDc6MzM6MjcgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogc25tcGQ6IFJlbW92ZSBzcHVyaW91cyAjZW5kaWYgdGhhdCBzZWVtcyB0byBiZSB0aGUgcmVzdWx0IG9mIGEgbWlzbWVyZ2UuCisKK2NvbW1pdCAyMGY0ZjMyNjdlZTIwZDU1NzA1YjdhNDM3ODk4NzljMTAzZjk2NjIwCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBUaHUgT2N0IDYgMDA6MDg6NTkgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogYnVpbGRpbmc6IEFkZCBtaXNzaW5nIGVuZCBjb21tZW50cyB0byBmZWF0dXJlIGlmbmRlZnMuCisKK2NvbW1pdCBlNWRlMmNjNTdiZjMwNGYzMzIwY2FkMDAzNGQyZWEyZDhhZWRjNDM2CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgT2N0IDUgMDk6MTU6MTAgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogYWdlbnQ6IExvZyBhIG1vcmUgZGV0YWlsZWQgZXJyb3IgbWVzc2FnZSBpZiBlbWJlZGRlZCBwZXJsIGluaXRpYWxpemF0aW9uIGZhaWxzCisKK2NvbW1pdCA1ZWVmOTk5MGRlMjhmNjMxMTFlNmMwOTNiZTBmM2M3YWUyZDUxM2ExCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgT2N0IDUgMDg6NDU6NDkgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogcGVybDogQWRkIGFnZW50Ojp1cHRpbWUoKQorCitjb21taXQgNjgxMGVkNDJmOWJjNTYwNzUwZDZkYmZiN2U1MGI2ZTJhYzExODk5YworQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIFNlcCAzMCAxMTowMToyMyAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBDeXdpbjogYWdlbnQ6IEltcGxlbWVudCBnZXRfdXB0aW1lKCkgc3VjaCB0aGF0IHF1ZXJ5aW5nIEhPU1QtUkVTT1VSQ0VTLU1JQjo6aHJTeXN0ZW1VcHRpbWUgcmV0dXJucyBhIG5vbi16ZXJvIHZhbHVlLgorCitjb21taXQgOTcxNzJiMzExZDIwZjQ0NDFjN2E3ZTkwMDkyYjU5YzFlMGRhOTlmNworQXV0aG9yOiBUaG9tYXMgSmFyb3NjaCA8dGphcm9zY2hAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorRGF0ZTogICBXZWQgT2N0IDUgMDg6NDY6MzkgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogUEFUQ0g6IDM0MTg2NDk6IEhPU1QtUkVTT1VSQ0VTLU1JQjogVXNlIHBjbG9zZSgpIGluc3RlYWQgb2YgZmNsb3NlKCkgdG8gY2xvc2UgYSBwaXBlLgorCitjb21taXQgNjU5MTkzN2FkYjg1MDAwYzI3MDY5YzRiZTg0Y2Y0Njg4ODM4ZWJjZAorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIE9jdCAyIDE2OjE4OjAzIDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgZGVwZW5kZW5jaWVzIG9uIEBGRUFUVVJFVEFSR1NAIHRvIG1ha2UgdGhlIHN1YnRhcmdldCB3b3JrIGFzIHdlbGwuCisKK2NvbW1pdCBiOWM4MDEyZWMwMzViYzA4NGYxNzU4NzZmZWNjMzc1MTk1ZjliZTgxCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gT2N0IDIgMTQ6MDI6NTggMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogYnVpbGRpbmc6IEFkZCB0YXJnZXQgdG8gYnVpbGQgYWdlbnR4dHJhcCBmcm9tIHRoZSB0b3BsZXZlbAorCitjb21taXQgOTk1NjQ3YzBjZmUwMDQxMjI2MmNjNTc5N2JkZmFlOWQwMGI3MGM3NgorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIE9jdCAyIDE1OjQ0OjM2IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBSZW1vdmUgdGhlIHVzZSBvZiAtTCBmbGFncyBmb3IgaW50ZXJuYWwgbGlicmFyaWVzIGFzIGl0IGNvbmZ1c2VzIGxpYnRvb2wuCisKK2NvbW1pdCA5M2RjMTIzNWEwZGI1OGZmZDI5NjE3Y2ZmMDBkYzExMjYzNzgwMjAyCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBTdW4gT2N0IDIgMTE6MzE6NDYgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgbWFrZSBhcHBzIHdvcmsgYWdhaW4KKyAgICAKKyAgICBhcHBzIGluY2x1ZGUgc25tcHRyYXBkIGFuZCB0aGF0IHJlcXVpcmUgdGhlIGFnZW50IGxpYnJhcmllcyBhcyB3ZWxsLgorCitjb21taXQgYmE0MTQ4OGVkNDRjZDIzYzI1OTYzZDRmYzU2YzQ3Njg1M2IyYWI1OQorQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KK0RhdGU6ICAgU3VuIE9jdCAyIDExOjI5OjMzIDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBXaGVuIHlvdSBzYXkgbWFrZSBsaWJzIHlvdSBleHBlY3QgYWxsIHRoZSBsaWJzIHRvIGJlIGJ1aWx0LgorICAgIAorICAgIFRoaXMgaXMgZGVtb25zdHJhdGVkIGJ5IHRoZSBzbm1wdHJhcGQgdGFyZ2V0IGF0IHRoZSB0b3AgbGV2ZWwgd2hpY2ggb2J2aW91c2x5CisgICAgZXhwZWN0ZWQgYm90aCBsaWJzIHRvIGJlIGJ1aWx0IGFuZCBzbyBmYWlsZWQgdG8gY29tcGlsZSBiZWZvcmUgdGhpcyBwYXRjaC4KKworY29tbWl0IDMwNTdjNzNlMDkzNDczYmU0NjI1NGJjZGZiNGNhNzg4ZTQzMmQxYjgKIEF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgRmViIDE2IDE0OjU2OjMzIDIwMTEgKzAwMDAKK0RhdGU6ICAgVHVlIFNlcCAzMCAwNzozMjo1MiAyMDA4ICswMDAwCiAKLSAgICBGaXhlZCBzbm1wLWJyaWRnZS1taWIgd2hlbiB3b3JraW5nIGluIHRoZSBlbWJlZGRlZCBwZXJsLgorICAgIE5FV1M6IGJ1aWxkaW5nOiBQQVRDSDogMjA5MTE1NjogY29ycmVjdGx5IGRlY2xhcmUgZGVwZW5kZW5jaWVzIGluIE1ha2VmaWxlLgorICAgICdtYWtlIC1qIDxOPicgc2hvdWxkIHdvcmsgbm93LgogICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTkzOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICBCYWNrcG9ydCB0aGlzIHRvIFY1LTQgYXMgaXQgaXMgbmVlZGVkIGZvciBjb3JyZWN0IG9wZXJhdGlvbiBpbiB0aGUgc2luZ2xlCisgICAgdGhyZWFkZWQgY2FzZSBvZiBtYWtlIG1pYmxpYiBhcyB3ZWxsLgogCi1jb21taXQgYzhkYTM0MWE2NGJkMTk5NTI5YTllNTlhYzM1MjM1NDdjYzJmZTFmNgotQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBGZWIgMTYgMTM6MTY6NTcgMjAxMSArMDAwMAorY29tbWl0IDZlYWUzNDBmYTJhNjQwODY1OTI5ODJjYzUyNzM1YmMwMTQ4N2Q5NzgKK0F1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CitEYXRlOiAgIFNhdCBPY3QgMSAxOTozMzo1MCAyMDExICswMjAwCiAKLSAgICBGaXhlZCBHRVRORVhUIHByb2Nlc3NpbmcgaW4gc25tcC1icmlkZ2UtbWliLgorICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBTaWxlbmNlIGxpYmJzZCAwLjMuMCBuYWdnaW5nCiAgICAgCisgICAgSWYgeW91IGhhdmUgbGliYnNkIDAuMy4wIGluc3RhbGxlZCB0aGVuIHRoZWlyIHZlcnNpb24gb2Ygbmxpc3QuaCB3YXJucyBhbmQKKyAgICB0cmllcyB0byBtYWtlIHlvdSBpbmNsdWRlIGJzZC9ubGlzdC5oIGluc3RlYWQuIFRoZSBwcm9ibGVtIGlzIHRoYXQgd2UgZG9uJ3QKKyAgICBuZWVkIHRoYXQgY29tcGF0aWJpbGl0eSBsaWJyYXJ5IGFzIHdlIGtub3cgaG93IHRvIGRvIGl0IG91cnNlbGYgc28gaXQgYmVjb21lcworICAgIHB1cmUgbmFnZ2luZy4gVGhpcyBwYXRjaCBhZGRzIGEgZGVmaW5lIHRoYXQgY2hhbmdlcyB0aGUgd2FybmluZyBpbnRvIGFuCisgICAgZXJyb3IgYW5kIHRoZW4gZmlndXJlcyBvdXQgdGhhdCB0aGVyZSBpcyBubyB1c2FibGUgbmxpc3QuaCBhbmQgaWdub3JlcyBpdAorICAgIGZvciB0aGUgZnV0dXJlLgorCitjb21taXQgYWMzOGNiNTMxYmVlNTBlZGM4ZDRjODM0ZjMwMDVmNTk5MmM3NzFkOAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IFNlcCAyOSAxOTowMzowMiAyMDExICswMjAwCisKKyAgICBDSEFOR0VTOiBwZXJsOiBFbmFibGUgc2VuZGluZyBTTk1QdjIgdHJhcHMgd2l0aCBhbiBlbXB0eSB2YXJiaW5kIGxpc3QKKworY29tbWl0IGE3NWRlMjk3MTUyN2FjMmQyZTgxMjAyNDI5ODYwMmJiMjQxMmYzMzcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIEZyaSBTZXAgMzAgMTA6NDE6NDQgMjAxMSArMDIwMAorCisgICAgcGVybC9TTk1QL1NOTVAueHM6IFVwZGF0ZSBlbWFjcyBtb2RlbGluZQorCitjb21taXQgODQ4ZjYzMDBlZmUzODQ5MmZiNDU0NDUxYTAzMGYwYjdlNmZmOGM5ZAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgRnJpIFNlcCAzMCAxMDo0MTo0NCAyMDExICswMjAwCisKKyAgICBwZXJsL1NOTVAvU05NUC54czogVXBkYXRlIGVtYWNzIG1vZGVsaW5lCisKK2NvbW1pdCBjMTM3NDQ3M2VjZDhlYzllMDMxMDAxMzg2MWVlMThjODNlNWQ2YzViCitBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorRGF0ZTogICBGcmkgU2VwIDMwIDAzOjI5OjM2IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IHRlc3Rpbmc6IFByb3RlY3QgdGhlIHVzZSBvZiAkT1NUWVBFIHRvIGVuc3VyZSB0aGF0ICd0ZXN0JyBnZXQgZW5vdWdoIHBhcmFtZXRlcnMuCisKK2NvbW1pdCA3ZTk3YTIwNjMzYTU3ZWFlMzlkMDE1YjIzMzM5NDYzYzMyZjVmODQ4CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgU2VwIDI5IDEwOjIyOjA4IDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IHRlc3Rpbmc6IENvbnZlcnQgc25tcGxpYi90ZXN0X2JpbmFyeV9hcnJheS5jIGludG8gdHdvIHVuaXQgdGVzdHMKKworY29tbWl0IDljMGRkOTgxNzY0NTczNDJmZmZhYTVlNzRkODAyZTMxNDVlZDcwZTcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFRodSBTZXAgMjkgMDg6NTY6MTcgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIHVuaXQgdGVzdCBmb3IgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkKKworY29tbWl0IDVmZDI2ZTRmYTNlMDAwZWE5YzgxYzM4YWI5NzViNzk0NmVmZTIxNTcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFdlZCBTZXAgMjggMTc6NDk6NTUgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogYWdlbnQ6IEF2b2lkIHRoYXQgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkgZmFpbHVyZSB0cmlnZ2VycyBhIGRvdWJsZSBmcmVlLgogICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTkzNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICBGaXhlcyBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCB2aWEgY29tbWl0CisgICAgYWE0ZDQ3YzI2MDllNTI4MThjOWNkZjFhOGUyMjA1ZGU5YTMzNWEwYSAoc3ZuIHIxOTUxNSkuCiAKLWNvbW1pdCBiY2M2OGY3Mzc4YzI5ZWZjZjgxZGFhMGMyOTk2YzRlZGU4MGU1NWJjCi1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgRmViIDE1IDIyOjI0OjA2IDIwMTEgKzAwMDAKK2NvbW1pdCBkMjI1MmQwMTY2OTM4MDczMjZmNzJiNjYxMjM2NDlkZWEwMGFmOTE2CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgU2VwIDI5IDEwOjIwOjA4IDIwMTEgKzAyMDAKIAotICAgIFByb3Blcmx5IHNhdmUgZW50cmllcyBmb3IgTmV0QlNEIGFuZCBEcmFnb25GbHkKKyAgICBDSEFOR0VTOiB0ZXN0aW5nOiBSZXF1aXJlIGEgc2VtaWNvbG9uIGFmdGVyIE9LKCksIE9LRigpIGFuZCBQTEFOKCkKICAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5MzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgQWxzbywgbGV0IE9LRigpIGVtaXQgYSBzaW5nbGUgbGluZSBvZiBvdXRwdXQgc3VjaCB0aGF0IGFsbCBvdXRwdXQgaXQKKyAgICBwcm9kdWNlcyBpcyB2aXNpYmxlIGluIHRoZSBvdXRwdXQgb2YgIm1ha2UgdGVzdCIuCiAKLWNvbW1pdCAxMDA1MGM5NDIwOWIwYTlkZmU0NWFiNzEwYzkyOGI2NTZkOTA2YTNhCi1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgRmViIDE1IDIyOjI0OjA2IDIwMTEgKzAwMDAKK2NvbW1pdCAxNDIxOTI0YjQ4NTIxNDIxOTJjNWJiOWU5M2RkYmZlZDY5ZTkwOGZhCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgU2VwIDIxIDIyOjIwOjA4IDIwMTEgKzAyMDAKIAotICAgIFByb3Blcmx5IHNhdmUgZW50cmllcyBmb3IgTmV0QlNEIGFuZCBEcmFnb25GbHkKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBBdm9pZCB3YWl0aW5nIGluZGVmaW5pdGVseSBpZiBhIHNlc3Npb24gaGFzIHRpbWVvdXQgemVybworCitjb21taXQgNWYyN2Y0Zjc0YWUyYmQ1YmFmNTAzY2YzMDZiNGY5YTI4NDFhNTdjZgorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIFNlcCA2IDEwOjMyOjAzIDIwMTEgKzAyMDAKKworICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBGaXggYSByYWNlIGNvbmRpdGlvbiBpbiB0aGUgdGVzdCBydW5uZXIKKworY29tbWl0IDA5NzAzOTU4Y2M1ZWE4NDU5MjlhZTE5ZWY5ZTA4MDRhZWNhYTUxMmUKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBTZXAgMjcgMTI6NDI6NDEgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogdGVzdGluZzogQXZvaWQgZmFsc2UgbmVnYXRpdmUgZm9yIFQxMTRhZ2VudHhhZ2VudHh0cmFwX3NpbXBsZSBjYXVzZWQgYnkgdGhlIHRlc3QgcmVzdWx0IGJlaW5nIHByZXNlbnQgaW4gdGhlIGhleCBkdW1wICgibW9zdGx5X2hhcm1sZXNzIikKKworY29tbWl0IDQzOTMwMDI3OWY2ZjMxNDM4NjM4ZDJmMjIyYzI0YzNjODQxZmE2YWIKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBTZXAgMjcgMTE6MTY6MzIgMjAxMSArMDIwMAorCisgICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1pY3JvLW9wdGltaXplIGFnZW50IG1vZHVsZSBkZXBlbmRlbmN5IGFuYWx5c2lzCiAgICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTM2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorICAgIFRoaXMgbWFrZXMgdGhlIGFnZW50IG1vZHVsZSBkZXBlbmRlbmN5IGFuYWx5c2lzIGNhcnJpZWQgb3V0IGJ5IHRoZQorICAgIGNvbmZpZ3VyZSBzY3JpcHQgc2xpZ2h0bHkgZmFzdGVyLCBlc3BlY2lhbGx5IG9uIHRob3NlIHN5c3RlbXMgd2hlcmUKKyAgICBmb3JrKCkgaXMgZXhwZW5zaXZlIChDeWd3aW4pLgogCi1jb21taXQgNTQwMjI0OGNkNDZkY2MyMmU4ZTVkMzBhZjc3NzBhYjhmYTAxZGZkYgotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEZlYiAxNSAyMjoxODo0MyAyMDExICswMDAwCitjb21taXQgYmJjNjgwMDA0YTEzNzYwMzhkZmRjNDE3MmRiZTdiOWUzMTFmYmE2OAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIFNlcCAyNiAxMDoxNDo0NSAyMDExICswMjAwCiAKLSAgICByZW1vdmUgcmVkdW5kYW50IGluY2x1ZGVzCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5OTM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHRlc3QgVDEzMHNubXB2MXZhY21nZXRfc2ltcGxlIHBhc3MKIAotY29tbWl0IGRmNjQ5Y2NhZjg0M2VkNzZjYmQ4Zjk2NTY0ZjU3MTc2YThhNjFiYTgKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBGZWIgMTUgMjI6MTg6NDMgMjAxMSArMDAwMAorY29tbWl0IDcwYjA2Y2Y3ODkyMDhlYWE4OTBiZmJjZDYzOGJkYjc3NWY4MTcwNTQKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBTZXAgMjAgMDk6NTA6NTcgMjAxMSArMDAwMAogCi0gICAgcmVtb3ZlIHJlZHVuZGFudCBpbmNsdWRlcwotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTkzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICBDSEFOR0VTOiBXaW5kb3dzOiB0ZXN0aW5nOiBwZXJsOiBGaXggYW4gaW5jb3JyZWN0IG1lc3NhZ2UgcHJpbnRlZCB3aGlsZSBydW5uaW5nIHRoZSBQZXJsIG1vZHVsZSByZWdyZXNzaW9uIHRlc3RzCiAKLWNvbW1pdCBiNTY1NWNjMTA3MjFlOWRkYzIzZDhlYTBhNTQwMDdiMWFiMDY4MGUxCi1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgRmViIDE1IDIxOjQ4OjA1IDIwMTEgKzAwMDAKK2NvbW1pdCA3MGJjYzhkZTJkMGZjOTJiYmI4NDgxODIzNjMwZmFiOWJjODdhZjc1CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBGcmkgU2VwIDE2IDE2OjE0OjI0IDIwMTEgKzAyMDAKIAotICAgIHJlcnVuIGF1dG9oZWFkZXIvYXV0b2NvbmYKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5MzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE9idGFpbiB0aGUgTVNZUyBwYXRoIGZyb20gdGhlIGVudmlyb25tZW50CiAKLWNvbW1pdCBjZThlODc0NTg3NzVjMjgwOWVkOGY5MjBjZTgwNDIxYWQ2ZjE0Y2JhCi1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgRmViIDE1IDIxOjQ4OjA1IDIwMTEgKzAwMDAKK2NvbW1pdCA2MjYyNzVlMmQxYWNhZmFlNzE0NGEzM2VkMzAxYTQwZjU5NmIzN2IwCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBXZWQgU2VwIDE0IDEzOjE0OjE3IDIwMTEgKzAyMDAKIAotICAgIHJlcnVuIGF1dG9oZWFkZXIvYXV0b2NvbmYKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgQ0hBTkdFUzogV2luZG93czogUmVtb3ZlIHN1cGVyZmx1b3VzIGxpbmsgbGlicmFyaWVzIGZyb20gcHJvamVjdCBmaWxlcyAoKi5kc3ApCiAKLWNvbW1pdCA5Y2ZiZDhiMTQ0ZDY1OTVlOTg4ZjMzY2E0ODQzODJjNzA4MmJiNmVkCi1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgRmViIDE1IDIxOjI2OjMwIDIwMTEgKzAwMDAKK2NvbW1pdCAzOGZjM2NhYTllZWIzODAwMjU0YjRmNmFkNmY4ZjQ3NjRjMGY4M2RiCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgU2VwIDIwIDA5OjM0OjA4IDIwMTEgKzAyMDAKIAotICAgIFRvbyBtdWNoIHF1b3RpbmcgaXMgYmFkCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTMxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgbmV0c25tcF9jYWxsYmFja19hY2NlcHQoKSByZXR1cm4gLTEgKGZhaWx1cmUpIGluc3RlYWQgb2YgMCAoU1RESU5fRklMRU5PKQogCi1jb21taXQgODhkYzE0NGJjNmJhMmFiMjM3N2Y5ZDcxODJhMWMyYzAzMzc1NDU5ZQotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEZlYiAxNSAyMToxMTozNyAyMDExICswMDAwCitjb21taXQgNmM4YzdlOGFjYThmYzJlZWI1MjAxMGFlM2U5ZmVlNmRkODNlZjc4MAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIFNlcCAxMyAwOTo1ODoyNiAyMDExICswMjAwCiAKLSAgICBGaXggSVB2NiBUQ1AgYW5kIFVEUCB0YWJsZXMsICpCU0Qgc3VwcG9ydAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTkzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICBDSEFOR0VTOiBzbm1wbGliOiBSZW1vdmUgb2Jzb2xldGUgc25tcF9nZXRfZmRfZm9yX3Nlc3Npb24oKSBkZWNsYXJhdGlvbgogCi1jb21taXQgNWNkMTU3MzYyNTQ3MWMwNTgzZTkwODdhZWM2ODAyYjc3MTU3ZDVhMgotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEZlYiAxNSAyMToxMTozNyAyMDExICswMDAwCitjb21taXQgMDg2MGQxMWZkOGZjNWRiZGFhYWUyMjYxZmFlMmMwN2ZiOWMyYzgyZAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IFNlcCA4IDEzOjU0OjU1IDIwMTEgKzAyMDAKIAotICAgIEZpeCBJUHY2IFRDUCBhbmQgVURQIHRhYmxlcywgKkJTRCBzdXBwb3J0Ci0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorICAgIENIQU5HRVM6IFdpbmRvd3M6IE1TVkM6IEF2b2lkIHRoYXQgdGhlIHR5cGVkZWZzIGluIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY29uZmxpY3Qgd2l0aCB0aG9zZSBpbiA8c3RkaW50Lmg+IGZyb20gdGhlIG1zaW50dHlwZXMgcHJvamVjdAogCi1jb21taXQgYjAwNTk1YzdiODcyODc4NmNkODQzZjI2ODc3NzliMTFmMGU2MTk2YgotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEZlYiAxNSAyMDo0NTozNCAyMDExICswMDAwCitjb21taXQgZjhhMDM2ZjYzZmY2OGYwODM0MzYxMjBlMGFiZDQ3OGI2OTJhMmY2MQorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVGh1IFNlcCA4IDEzOjIxOjA2IDIwMTEgKzAyMDAKIAotICAgIEtpbGwgY29tcGlsZXIgd2FybmluZ3MKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5MjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgQ0hBTkdFUzogV2luZG93czogTVNWQzogV2hlbiBsaW5raW5nIHdpdGggT3BlblNTTCwgbGluayB3aXRoIHVzZXIzMi5saWIgdG9vCiAKLWNvbW1pdCBiNzZhNTRmN2VlNjY0NGE5NjM2ZDk4ZDk2MGZlZmVjYWJiNzRiYzI5Ci1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgRmViIDE1IDIwOjQ1OjM0IDIwMTEgKzAwMDAKK2NvbW1pdCA4MzZhMjNlMTBjYTgxMGMzODk5OTAyZDMyNTg3NjE2YTlkMTIwM2RmCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUaHUgSnVsIDE0IDE4OjM4OjEzIDIwMTEgKzAyMDAKIAotICAgIEtpbGwgY29tcGlsZXIgd2FybmluZ3MKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgQ0hBTkdFUzogV2luZG93czogTVNWQzogTGluayB3aXRoIHByb3BlciBsaWJlYXkzMiBsaWJyYXJ5CiAKLWNvbW1pdCA2NTU1ODkzNWU5YjI3MTg3NTczNjZlOGIzYjEwYTkxNDEyYjk2YWU4Ci1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgRmViIDE1IDIwOjQ0OjIyIDIwMTEgKzAwMDAKK2NvbW1pdCA3YjA3ZmQ2Y2RlZjQ5ZWM3YmIwNGIxNjZlMmE0ZmJiMzdiNTgyODQwCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgU2VwIDYgMTE6MTA6MzggMjAxMSArMDIwMAogCi0gICAgRmlsdGVyIElQdjYgZW50cmllcyBmcm9tIElQdjQgdGFibGUKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5MjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgQ0hBTkdFUzogdGVzdGluZzogUmVtb3ZlIGFuIGluY29ycmVjdCBjb21tZW50IGZyb20gc2ltcGxlX2V2YWxfdG9vbHMuc2gKIAotY29tbWl0IGU4OGY5MjIyYzk5ZWJkYjExZTk0YWVmMzk0Yzg0ZDZjZjY3YmM3NTEKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBGZWIgMTUgMjA6NDQ6MjIgMjAxMSArMDAwMAorY29tbWl0IDk4ZjZkMjlkOTgxZmY4ZTYwNzYwMGM2M2RhZGIyNDA1MzU2Mjk4MDcKK0F1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CitEYXRlOiAgIFR1ZSBTZXAgNiAxMDo0OTowMyAyMDExICswMjAwCiAKLSAgICBGaWx0ZXIgSVB2NiBlbnRyaWVzIGZyb20gSVB2NCB0YWJsZQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTkyOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIElTREVGSU5FRCgpIGNoZWNrIGZvciBhbiBleGFjdCBtYXRjaCBpbnN0ZWFkIG9mIGEgcHJlZml4IG1hdGNoCiAKLWNvbW1pdCA4ZmRjMjFmYWExZjQxODUxZGY3ZTAwZDBlMDViNTg4M2NjMzIxODJlCi1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgRmViIDE1IDIwOjQyOjQ3IDIwMTEgKzAwMDAKK2NvbW1pdCA1MmNkMDAzMWEzMWY2OTJmMTMyNjNhOTRjMzM1ZDA2YmUxNDU0ODAzCitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgU2VwIDYgMTA6MTI6NTkgMjAxMSArMDIwMAogCi0gICAgUHJvcGVyIHVzZSBvZiBnZXRwcm9jMiBhbmQgZHJhZ29uZmx5IHN1cHBvcnQKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdGhvc2UgcmVncmVzc2lvbiB0ZXN0cyBwYXNzIGZvciB3aGljaCBTTk1QQ09ORlBBVEggYW5kL29yIFNOTVBfUEVSU0lTVEVOVF9ESVIgbWF0dGVyCiAKLWNvbW1pdCBlZGQ1ZGU2YzdjMDA0ZDExNjRhZTJjNTFkOWI3ZjFiM2I3YzUzMDY3Ci1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgRmViIDE1IDIwOjQxOjA5IDIwMTEgKzAwMDAKK2NvbW1pdCBmNWNkODliZDMzNTZkZDc0ZTE1NTZjMGI1MDk2NmE2NDNmMTkyMDg1CitBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorRGF0ZTogICBUdWUgU2VwIDYgMTA6MTI6NTkgMjAxMSArMDIwMAogCi0gICAgZ2V0dmZzc3RhdCBpcyBvbmx5IGZvciBOZXRCU0QKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisgICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IEZpeCBhIHJhY2UgY29uZGl0aW9uIGluIHRoZSB0ZXN0IGZyYW1ld29yawogCi1jb21taXQgZDAyZTVkYWYyMzhmMDhiNTA3MDQzMTllZDQ0NDA2MDU4OWRjZWJhMgotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEZlYiAxNSAyMDozOTo1MyAyMDExICswMDAwCitjb21taXQgZGVlZGQ1MmM4MzRhNjQ0ODg1MmEwNjc4NTUzNmUxMzg2NTk2OTY5NAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgVHVlIFNlcCA2IDEwOjEyOjU4IDIwMTEgKzAyMDAKIAotICAgIERldGVjdCBuZWVkIGZvciAtbGt2bSBpbiBwcm9wZXIgdGltZQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTkyNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICBDSEFOR0VTOiBNaW5HVzogU3VwcG9ydCB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZSBvZiByZWNlbnQgU2hpbmluZyBMaWdodCBPcGVuU1NMIGJpbmFyeSBkaXN0cmlidXRpb25zCiAKLWNvbW1pdCA0ZGU4NDg4NDA0MWUyM2FjOGMxYjZkZmMzMzE1M2E2ZmNjYTRlNmQxCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gRmViIDE0IDE0OjM4OjAwIDIwMTEgKzAwMDAKLQotICAgIEZpeGVkIGEgTWluR1ctc3BlY2lmaWMgY29tcGlsZXIgd2FybmluZy4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5MjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBmNzFlMTZkMzhkZGM5OTAyYmU2MTNkMzc0OThlYWFkNTI1NzU3Y2RjCi1BdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU3VuIEZlYiAxMyAxNjoyODoxNiAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHN0YXRpYyBhcHBsaWNhdGlvbnMgdXNpbmcgbmV0LXNubXAtY29uZmlnIGFuZCB0aGUgLSpsaWJzIGZsYWdzIG9uY2UgbW9yZS4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAxYzRkZWEyNWIwZTUxZjU0MjUxN2Q1MmNkN2JhZDk0MWY4ZDAxZWQ3Ci1BdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU3VuIEZlYiAxMyAxNjoyODoxNiAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHN0YXRpYyBhcHBsaWNhdGlvbnMgdXNpbmcgbmV0LXNubXAtY29uZmlnIGFuZCB0aGUgLSpsaWJzIGZsYWdzIG9uY2UgbW9yZS4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5MjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAxM2ZkZjZjNDk2YmE5NDkwODcwMmFjMThmYzA1Zjk3NjJmMGZmMzEzCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBGZWIgMTAgMTU6MTM6NTkgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE2NTg3ODogQ2F0Y2ggYnVmZmVyIG92ZXJydW4gb24gNjQtYml0IHN5c3RlbXMKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk5MjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBlNWQzM2Y5MzA0N2Y3Mzc2MTEwMmI2NDJkZmVhYTkzZWJiMjg0Y2YxCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBGZWIgMTAgMTU6MTM6NTkgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE2NTg3ODogQ2F0Y2ggYnVmZmVyIG92ZXJydW4gb24gNjQtYml0IHN5c3RlbXMKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBmMzAyNjMxNmM2ODMyYjA1YmQzNjQ5MjhlNGJjNWY5NWE3MTI1MmIxCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBGZWIgMTAgMTU6MTM6NTkgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE2NTg3ODogQ2F0Y2ggYnVmZmVyIG92ZXJydW4gb24gNjQtYml0IHN5c3RlbXMKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5MjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBlZDVmN2MzN2Y4OTk2NGMxZjdkZDE2ZTYyMmNkNjNjNjNiZDMzNTc0Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBGZWIgMTAgMTU6MDY6NDYgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNTI0MTI6IEhhbmRsZSAoYW5kIHJlcG9ydCkgcHJvYmxlbXMgcmVhZGluZyAvcHJvYy92bXN0YXQKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk5MTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBkMTI4ZGRkNGFlNTkxOWI5YmY4MmUyNDRhNTcyOTQxMTVjZmQxODU5Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBGZWIgMTAgMTU6MDY6NDYgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNTI0MTI6IEhhbmRsZSAoYW5kIHJlcG9ydCkgcHJvYmxlbXMgcmVhZGluZyAvcHJvYy92bXN0YXQKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAwMjcxMzM0MjY1NGVmYzQwOTlmNmE2NTM4MDE4NDZiMzAwYmJmYTg0Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBGZWIgMTAgMTU6MDY6NDYgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNTI0MTI6IEhhbmRsZSAoYW5kIHJlcG9ydCkgcHJvYmxlbXMgcmVhZGluZyAvcHJvYy92bXN0YXQKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5MTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA3Y2U4ZTIyNTc4N2U0ZDA3MDkyYTYzNGI4MDNmYmE2MzU1Nzg3NjBmCitjb21taXQgZDU1YmQ0ZTA1NDlmMDNiNmZkMzI1NjJjMmFhN2ZlMzkyNzJhOWVmNwogQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEZlYiA4IDE3OjQxOjM3IDIwMTEgKzAwMDAKK0RhdGU6ICAgV2VkIFNlcCAyOCAwNjo1NToxOSAyMDExIC0wNzAwCiAKLSAgICBDSEFOR0VTOiBwZXJsOiBwYXRjaCBmcm9tIE1hcnRpbiBCdWNrOiBkb24ndCBhbHdheXMgb3BlbiBzdGRlcnIgYXMgdGhlIGNhbGxzIHRvIHNubXBfbG9nIGFscmVhZHkgZG8gdGhpcyBhbmQgaXQgbWVzc2VzIHVwIHRoZSBhZ2VudCB3aGVuIGVtYmVkZGVkCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5OTE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorICAgIHJlbW92ZSB0aGUgdjUuNyBmcm9tIHRoZSBmcm96ZW4gbGlzdAogCi1jb21taXQgMTE4Y2Q0MmJkYTFkNjBhODFmMGU0NDk1NjMxMTBmYThjMzg4OWUyYworY29tbWl0IGFjMmFlZDNjOTRiYjJlYmI0NzNhZjBhMWUyMGYwNTYxYWQ2Mjk5NTYKIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBGZWIgOCAxNzo0MTozNyAyMDExICswMDAwCitEYXRlOiAgIFdlZCBTZXAgMjggMDY6NTU6MTEgMjAxMSAtMDcwMAogCi0gICAgQ0hBTkdFUzogcGVybDogcGF0Y2ggZnJvbSBNYXJ0aW4gQnVjazogZG9uJ3QgYWx3YXlzIG9wZW4gc3RkZXJyIGFzIHRoZSBjYWxscyB0byBzbm1wX2xvZyBhbHJlYWR5IGRvIHRoaXMgYW5kIGl0IG1lc3NlcyB1cCB0aGUgYWdlbnQgd2hlbiBlbWJlZGRlZAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTkxNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKyAgICByZW1vdmUgdGhlIHY1LjcgZnJvbSB0aGUgZnJvemVuIGxpc3QKIAotY29tbWl0IDk4YTIzZjBjOGYxZDA1MjIxOGQyOTZhZDFmZWQ1NjkyYmIwYzU0NzgKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBGZWIgOCAxNzo0MTozNyAyMDExICswMDAwCitjb21taXQgNDZlYWMwMmU5YTI3YmY0ZjMwNjhlNzk1Y2FiODkxZjA1YTg0ODg3MAorQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6ICAgTW9uIFNlcCAyNiAyMTo0OToyNyAyMDExICswMjAwCiAKLSAgICBDSEFOR0VTOiBwZXJsOiBwYXRjaCBmcm9tIE1hcnRpbiBCdWNrOiBkb24ndCBhbHdheXMgb3BlbiBzdGRlcnIgYXMgdGhlIGNhbGxzIHRvIHNubXBfbG9nIGFscmVhZHkgZG8gdGhpcyBhbmQgaXQgbWVzc2VzIHVwIHRoZSBhZ2VudCB3aGVuIGVtYmVkZGVkCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5OTE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYjQzZWFiMzIwMzFkN2E1OGZhZDQ4ODgzYWJhNjQ4YjAwMDMzOGRlNQotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEZlYiA4IDE3OjM3OjAxIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBGaXggYSBzdHJsZW4gY2FsY3VsYXRpb24gYXMgcG9pbnRlZCBvdXQgYnkgS29uc3RhbnRpbiBCYXlkYXJvdgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AxOTkxNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDNjZDI0MjIyMzk3NzIxY2E1NTIwM2I0MTQ1OGRmOWJjM2JiNWI2MzMKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBGZWIgOCAxNzozNzowMSAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wZDogRml4IGEgc3RybGVuIGNhbGN1bGF0aW9uIGFzIHBvaW50ZWQgb3V0IGJ5IEtvbnN0YW50aW4gQmF5ZGFyb3YKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBmZjM5ZmE3NzVmOGY2ZjA0MDdiYzRjN2ZjZjhjMWRlODMwMTk2MDgwCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgRmViIDggMTc6Mzc6MDEgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IEZpeCBhIHN0cmxlbiBjYWxjdWxhdGlvbiBhcyBwb2ludGVkIG91dCBieSBLb25zdGFudGluIEJheWRhcm92Ci0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5OTE1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZjBkNmJmMDNkNWZlNmRiZmNlNDQzMGYwYWYyMDQwZjAwY2UxNGU0NQotQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEZlYiAzIDIyOjQyOjI5IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzE3MTg3ODogVXNpbmcgU05NUHYzIGNvbnRleHQgZG9lcyBub3Qgd29yawotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTItcGF0Y2hlc0AxOTkxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDFjZjljNDU2YjNjYTQzMTdkMWQ3ZDIyMGFkZWNjZDg0ZDA1MzVkZGIKLUF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBGZWIgMyAyMjo0MjoyOSAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDMxNzE4Nzg6IFVzaW5nIFNOTVB2MyBjb250ZXh0IGRvZXMgbm90IHdvcmsKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk5MTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA5ZWQ3YmE0MmZjMjI5NzcyMjlhNmU0MzFiMzA5MDMxZWY4ZjhjY2E0Ci1BdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgRmViIDMgMjI6NDI6MjkgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzMTcxODc4OiBVc2luZyBTTk1QdjMgY29udGV4dCBkb2VzIG5vdCB3b3JrCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgOWMwN2Q0ODU2MjE0NTgwN2Y3MjE4MGE3YjIxM2NjNTk5ZDhhNmJlNQotQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEZlYiAzIDIyOjQyOjI5IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzE3MTg3ODogVXNpbmcgU05NUHYzIGNvbnRleHQgZG9lcyBub3Qgd29yawotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTkxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDY5YzQwNzU1MzBjNjU3YTI4ZmE0NTI4M2U5NjRhM2MxYTEyZjk4MGUKLUF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgRmViIDEgMTM6MDc6NTUgMjAxMSArMDAwMAotCi0gICAgRG9uJ3QgY2hlY2sgZm9yIDMyLzY0Yml0IHdyYXAgaW4gY2FsY3VsYXRlZCBlbnRyaWVzLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTkwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDBhNDIwMDNlYjE4ZmMwNTExMDQ4ZDBhYzI2ZTVkZTQyMGI0ZTFkYzQKLUF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgRmViIDEgMDk6NDE6MjggMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHRoZSBhZ2VudCB3cml0aW5nICdsb29rcyBsaWtlIGEgNjRiaXQgd3JhcCwgYnV0IHByZXYhPW5ldycgaW4gc3lzbG9nIHdoZW4gY29tcHV0aW5nIGlwU3lzdGVtU3RhdHMKLSAgICAKLSAgICBXaXRob3V0IHRoZSBtZW1jcHksIHByZXZfdmFscy0+c3RhdHMgYW5kIG5ld192YWxzLT5zdGF0cyBjb3VsZCBnZXQgZGlmZmVyZW50LAotICAgIHdoaWNoIGNvdWxkIG11Y2ggbXVjaCBsYXRlciAod2hlbiBhIGNvdW50ZXIgZ2V0cyBiaWdnZXIgdGhhbiAzMiBiaXRzKSByZXN1bHQKLSAgICBpbiAncHJldiE9bmV3JyBtZXNzYWdlIGluIHN5c2xvZy4gVHlwaWNhbGx5IHRoaXMgaGFwcGVucyBhZnRlciBsb25nIHRpbWUgb2YKLSAgICB1cHRpbWUgYW5kIGl0IGlzIHZlcnkgaGFyZCB0byByZXByb2R1Y2UuCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5OTA3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZmZmYzMwMDJhMGY3NTgwY2I0NDFkZjc2MGJkM2RkNGI1NDkwMTVlNAotQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBGZWIgMSAwOTo0MToyOCAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgdGhlIGFnZW50IHdyaXRpbmcgJ2xvb2tzIGxpa2UgYSA2NGJpdCB3cmFwLCBidXQgcHJldiE9bmV3JyBpbiBzeXNsb2cgd2hlbiBjb21wdXRpbmcgaXBTeXN0ZW1TdGF0cwotICAgIAotICAgIFdpdGhvdXQgdGhlIG1lbWNweSwgcHJldl92YWxzLT5zdGF0cyBhbmQgbmV3X3ZhbHMtPnN0YXRzIGNvdWxkIGdldCBkaWZmZXJlbnQsCi0gICAgd2hpY2ggY291bGQgbXVjaCBtdWNoIGxhdGVyICh3aGVuIGEgY291bnRlciBnZXRzIGJpZ2dlciB0aGFuIDMyIGJpdHMpIHJlc3VsdAotICAgIGluICdwcmV2IT1uZXcnIG1lc3NhZ2UgaW4gc3lzbG9nLiBUeXBpY2FsbHkgdGhpcyBoYXBwZW5zIGFmdGVyIGxvbmcgdGltZSBvZgotICAgIHVwdGltZSBhbmQgaXQgaXMgdmVyeSBoYXJkIHRvIHJlcHJvZHVjZS4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5MDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAwYzk5YWYyNDA0MTZiY2Q2ZDVjNTE1OTZjMzEwZDU3YjBhZmY0YzVjCi1BdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEZlYiAxIDA5OjQxOjI4IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCB0aGUgYWdlbnQgd3JpdGluZyAnbG9va3MgbGlrZSBhIDY0Yml0IHdyYXAsIGJ1dCBwcmV2IT1uZXcnIGluIHN5c2xvZyB3aGVuIGNvbXB1dGluZyBpcFN5c3RlbVN0YXRzCi0gICAgCi0gICAgV2l0aG91dCB0aGUgbWVtY3B5LCBwcmV2X3ZhbHMtPnN0YXRzIGFuZCBuZXdfdmFscy0+c3RhdHMgY291bGQgZ2V0IGRpZmZlcmVudCwKLSAgICB3aGljaCBjb3VsZCBtdWNoIG11Y2ggbGF0ZXIgKHdoZW4gYSBjb3VudGVyIGdldHMgYmlnZ2VyIHRoYW4gMzIgYml0cykgcmVzdWx0Ci0gICAgaW4gJ3ByZXYhPW5ldycgbWVzc2FnZSBpbiBzeXNsb2cuIFR5cGljYWxseSB0aGlzIGhhcHBlbnMgYWZ0ZXIgbG9uZyB0aW1lIG9mCi0gICAgdXB0aW1lIGFuZCBpdCBpcyB2ZXJ5IGhhcmQgdG8gcmVwcm9kdWNlLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTkwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDNiMWQzMGM3MzkxMDU1ZDUzNjc1OTdkMGQ3ZGNlNzFhYTJhMjg0Y2QKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBKYW4gMzEgMjI6Mzk6MzggMjAxMSArMDAwMAotCi0gICAgYWRkcHJvdG90eXBlcyBhbmQgcmVtb3ZlIHVudXNlZCB2YXJzCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5OTA1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYTYwODEyODI5ZjJjOTM2OThmMGM0MmE3OTA0OWE1NTEzM2EwNTlhNQotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIEphbiAzMSAyMjozOTozOCAyMDExICswMDAwCi0KLSAgICBhZGRwcm90b3R5cGVzIGFuZCByZW1vdmUgdW51c2VkIHZhcnMKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA5MDE2NjQ2MjBjNDk4OGU1ZTlmNGJlNmYxZmRiOTM0ZGE5YjIzODUyCi1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gSmFuIDMxIDIyOjM3OjU4IDIwMTEgKzAwMDAKLQotICAgIGNvbnN0IGp1Z2dsaW5nIHRvIHJlbW92ZSB3YXJuaW5ncwotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTkwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDllMzI0NjM0YmU3YjBkYzAwODYzNDllYjZjMGY3NTQyODgzZWIxNWQKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBKYW4gMzEgMjI6Mzc6NTggMjAxMSArMDAwMAotCi0gICAgY29uc3QganVnZ2xpbmcgdG8gcmVtb3ZlIHdhcm5pbmdzCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYzIzYWE0ZDkwZDkyZjVjNDk4NmE4ZGNhMGIxODI1MjNkYzU4NTkwYgotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIEphbiAzMSAyMjozMDo1NCAyMDExICswMDAwCi0KLSAgICBkaXNraW8gZm9yIGRyYWdvbmZseQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTkwMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDI4NTEzZjEyYTcyYTlhMGRlNGE5NTQ1MDQ3OWFjNTRhNjgxYWQ4YTkKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBKYW4gMzEgMjI6MzA6NTQgMjAxMSArMDAwMAotCi0gICAgZGlza2lvIGZvciBkcmFnb25mbHkKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5MDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAwZDRmOGQ2MTE5YjJlYjZmZGY1NjkwOTBjMmEzNGZjOTY0MjRjMGY3Ci1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gSmFuIDMxIDIyOjI4OjMwIDIwMTEgKzAwMDAKLQotICAgIHByb3Blcmx5IG5hbWUgaW5pdGFsaXplciBmdW5jdGlvbiBmb3IgY3B1X2tpbmZvCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5OTAyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNTk0M2M1OTQ0MTM5M2ViZGNkOWIxY2I2YjgzMmE0MjgwMjRmOTE0NQotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIEphbiAzMSAyMjoyODozMCAyMDExICswMDAwCi0KLSAgICBwcm9wZXJseSBuYW1lIGluaXRhbGl6ZXIgZnVuY3Rpb24gZm9yIGNwdV9raW5mbwotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTkwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGU2OTY5Yjk5M2IyMDk1MWNjZDgyMzJlYmQ1MTAxYzY2OTRlOTg4N2YKLUF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFN1biBKYW4gMzAgMDE6MDY6MjEgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE1MTg5NzogZmQgbGVhayB3LyAvcHJvYy9wYXJ0aXRpb25zCi0gICAgcmVhZCBpbiBkaXNraW8KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0yLXBhdGNoZXNAMTk4OTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA1NWVlYTM3MjQxYTU5OTg5OGNlNjFmMzY0YTZhMDdkODU2MjAyZmFkCi1BdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTdW4gSmFuIDMwIDAxOjA2OjIxIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMxNTE4OTc6IGZkIGxlYWsgdy8gL3Byb2MvcGFydGl0aW9ucwotICAgIHJlYWQgaW4gZGlza2lvCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODk5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgN2YyYzdmZmEwMjBlYTU3Zjg1NGEyNzEyOWE2ODNlY2NhM2JkNjljNgotQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU3VuIEphbiAzMCAwMTowNjoyMSAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTUxODk3OiBmZCBsZWFrIHcvIC9wcm9jL3BhcnRpdGlvbnMKLSAgICByZWFkIGluIGRpc2tpbwotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTg5OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDkwNTEzMDM0MDkzNDFmOGIxNTFhY2QzM2Q1M2NhNzYzYzRlODVkMGUKLUF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFN1biBKYW4gMzAgMDE6MDY6MjEgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE1MTg5NzogZmQgbGVhayB3LyAvcHJvYy9wYXJ0aXRpb25zCi0gICAgcmVhZCBpbiBkaXNraW8KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4OTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBlNjNkYTc5YjFiNjJiN2IwNjFjMDVjNGU3YTJhZDgzODZiNDc2NjFkCi1BdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTYXQgSmFuIDI5IDIzOjM2OjI5IDIwMTEgKzAwMDAKLQotICAgIE5FV1M6IHNubXBkOiBCVUc6IDMxNjY1Njg6IGhyU3lzdGVtUHJvY2Vzc2VzIG1pc3NpbmcgaW4gNS42LzUuNi4xCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODk4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNzkxZDQyMGU0ODc0ZDAzYWNjMjUzNzRmNzllYjJhYTE5ZGI3MmE5YwotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgSmFuIDI3IDA5OjM1OjI0IDIwMTEgKzAwMDAKLQotICAgIEFmdGVyIHRlbiB5ZWFycyBpbnRlbnNpdmUgdXNlLCBhbiAiZXhwZXJpbWVudGFsIgotICAgIGZlYXR1cmUgY2FuIHByb2JhYmx5IGJlIHJlbGVhc2VkIGZvciBnZW5lcmFsIHVzZS4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4OTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBjZWUyNTQyNmI0Y2NjNTliZDNkNTkyYTczMTgyY2FmNzYwMzAxNGQ4Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBKYW4gMjcgMDk6MzU6MjQgMjAxMSArMDAwMAotCi0gICAgQWZ0ZXIgdGVuIHllYXJzIGludGVuc2l2ZSB1c2UsIGFuICJleHBlcmltZW50YWwiCi0gICAgZmVhdHVyZSBjYW4gcHJvYmFibHkgYmUgcmVsZWFzZWQgZm9yIGdlbmVyYWwgdXNlLgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTg5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDA4OTU4ZjY5YWM2YTg0NTBjNzEzM2MwNTJjNDdjOTBiYTM1ZWU5ZWIKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEphbiAyNyAwOTozNToyNCAyMDExICswMDAwCi0KLSAgICBBZnRlciB0ZW4geWVhcnMgaW50ZW5zaXZlIHVzZSwgYW4gImV4cGVyaW1lbnRhbCIKLSAgICBmZWF0dXJlIGNhbiBwcm9iYWJseSBiZSByZWxlYXNlZCBmb3IgZ2VuZXJhbCB1c2UuCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgOGEwNmY5ZDRkOWIwODkwYTVmOTNhZjAwY2Y4YWU0YTQ1ZGE4M2NmYwotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEphbiAyNiAxNjo1MDo1MiAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBtaWIyYzogbWFrZSB0aGUgbWliMmMgZm9yZWFjaCByYW5nZXMgd29yayBhcyBhZHZlcnRpc2VkIGluIHRoZSBjb21tZW50cy4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4OTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAwY2YxYmE2Y2E1ZDVhZDMyNzhjYWE4ODc5YmM0NmQyNWVkMWQ1NTU0Ci1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSmFuIDI2IDE2OjUwOjUyIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IG1pYjJjOiBtYWtlIHRoZSBtaWIyYyBmb3JlYWNoIHJhbmdlcyB3b3JrIGFzIGFkdmVydGlzZWQgaW4gdGhlIGNvbW1lbnRzLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTg5NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDNiYmRlNWYzY2Y4ZGZmOTliZDgwNmYxZmNkYWEzODRlY2ViMTg4NTcKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBKYW4gMjYgMTY6NTA6NTIgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogbWliMmM6IG1ha2UgdGhlIG1pYjJjIGZvcmVhY2ggcmFuZ2VzIHdvcmsgYXMgYWR2ZXJ0aXNlZCBpbiB0aGUgY29tbWVudHMuCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODk2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgM2U5NzJkZTk3NDI3YjY2NDg1MjI1OGFlY2VjYTJhNGQ5NWNjMzBiNwotQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBKYW4gMjYgMDk6MTI6MjAgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHJhcmUgcmFjZSBjb25kaXRpb24gd2hlbiBjb3VudGluZyBwcm9jZXNzZXMgZm9yIFVDRC1TTk1QLU1JQjo6cHJUYWJsZQotICAgIAotICAgIFRoZSBYWCBwcm9jZXNzIGNhbiBleGl0IGFmdGVyIGZvcGVuKC9wcm9jL1hYL3N0YXR1cykgYW5kIGJlZm9yZSBmZ2V0cygpIGZyb20gaXQuIHNubXBkIHNob3VsZCBjb250aW51ZSB3aXRoIG90aGVyIHByb2Nlc3NlcyBhbmQgbm90IHRvIHN0b3AuCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODkzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYmNlZTAzN2M3MWYwMDZlMmJlM2I0NDZlM2U4MWM1MDlkNDljNjVjZAotQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBKYW4gMjYgMDk6MTI6MjAgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHJhcmUgcmFjZSBjb25kaXRpb24gd2hlbiBjb3VudGluZyBwcm9jZXNzZXMgZm9yIFVDRC1TTk1QLU1JQjo6cHJUYWJsZQotICAgIAotICAgIFRoZSBYWCBwcm9jZXNzIGNhbiBleGl0IGFmdGVyIGZvcGVuKC9wcm9jL1hYL3N0YXR1cykgYW5kIGJlZm9yZSBmZ2V0cygpIGZyb20gaXQuIHNubXBkIHNob3VsZCBjb250aW51ZSB3aXRoIG90aGVyIHByb2Nlc3NlcyBhbmQgbm90IHRvIHN0b3AuCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODkzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMmU1ZjU2NDBkYjk5OTc4M2I4Mzk4MTE2Zjg0NjJhNWIwYTMyNDdlNAotQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBKYW4gMTkgMTM6NTc6NDcgMjAxMSArMDAwMAotCi0gICAgTWFrZSB1cyBjb21wYXRpYmxlIHdpdGggcnBtLTQuOSwgcnBtR2V0RmlsZXN5c3RlbUxpc3QgZG9lcyBub3QgZXhpc3QgYW55bW9yZSwgc28gdGhlIGNvbmZpZ3VyZSBzY3JpcHQgc2hvdWxkIG5vdCBjaGVjayBpdC4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4OTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA4NDI0ZWZkOTdlMDAyZDUzNGM4MWQ0YmM2ODczMjlkNzIzYTllMThiCi1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSmFuIDE5IDA2OjMxOjAxIDIwMTEgKzAwMDAKLQotICAgIGRpc2tJT0xBeCByZXF1aXJlcyBleHAgd2hpY2ggbWF5IHJlcXVpcmUgLWxtCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMzIzMzQwMzg5NzBjNWFmNmExYzE5ODE1MjA0ZDFjZDQ4NDA1MjQ5MwotQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEphbiAxOSAwNjoyMDo0NSAyMDExICswMDAwCi0KLSAgICBEZWZpbmUgRFJBR09ORkxZSUQKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4OTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA2YTBjMzUyZTkxY2ZjZTk1ZDRkNGNiYmU1NTU4OTVjMjY2ZGE3NDU2Ci1BdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSmFuIDE5IDA2OjIwOjQ1IDIwMTEgKzAwMDAKLQotICAgIERlZmluZSBEUkFHT05GTFlJRAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg5MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDViNzAyYjAyNGI2MDE3NmQ3ZjU2OTliOTJlNTVkYTUwYThkZWFlNzEKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBKYW4gMTggMjI6MDE6MjQgMjAxMSArMDAwMAotCi0gICAgdHlwbwotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg4NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGJjYjU5NzI2ODc0NTAwYmEzNzA0ZjBiNDg3YTAzOTA4MzU4MjJjYTkKLUF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBKYW4gMTggMjE6NTQ6MjQgMjAxMSArMDAwMAotCi0gICAgRmluZCBwcm9wZXIgaWYtbWliIGludGVyZmFjZSBmb3IgTmV0QlNECi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODgzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgOTdjZTM4NTg2OThiM2JmMGUxMzM4OTk0MGE1OGM3YTNkZjBmZjI2OAotQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBKYW4gMTQgMTI6Mjg6NDAgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IGZyb20gUm9iZXJ0IFN0b3J5OiBmaXhlZCBhZGRpbmcgbmV3IGFkZHJlc3NlcyB0byBpcEFkZHJlc3NUYWJsZQotICAgIAotICAgIExvbmcgdGltZSBhZ28sIHRoZXJlIHdhcyBhIGJ1Z3JlcG9ydFsxXSByZWdhcmRpbmcgaXBBZGRyZXNzVGFibGUgb24KLSAgICBuZXQtc25tcC1jb2RlcnMgbGlzdCBhbmQgcnN0b3J5J3MgZXhwZXJpbWVudGFsIHBhdGNoIHdpdGhvdXQgYW55IGZlZWRiYWNrLgotICAgIE5vdyBJJ3ZlIGdvdCBmZXcgY29tcGxhaW50cyB0aGF0IFNOTVAgU0VUIG9uIGlwQWRkcmVzc1RhYmxlIHByb2R1Y2VzIHRoZQotICAgIHNhbWUgZXJyb3JzIGFuZCBndWVzcyB3aGF0LCB0aGUgcGF0Y2ggZml4ZXMgdGhlbS4KLSAgICAKLSAgICBbMV06IGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvbWFpbGFyY2hpdmUvZm9ydW0ucGhwP3RocmVhZF9uYW1lPTIwMDYwOTIwMTM0OTM1LjM1YjM2ZWQ2JTQwZGV2LmZ1dHoub3JnJmZvcnVtX25hbWU9bmV0LXNubXAtY29kZXJzCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODgxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZjFiZGRlYzJjMjc2Y2JhZGMyNzYxYzQzOGQ2ZTljMGRlY2YxMWViZgotQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBKYW4gMTQgMTI6Mjg6NDAgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IGZyb20gUm9iZXJ0IFN0b3J5OiBmaXhlZCBhZGRpbmcgbmV3IGFkZHJlc3NlcyB0byBpcEFkZHJlc3NUYWJsZQotICAgIAotICAgIExvbmcgdGltZSBhZ28sIHRoZXJlIHdhcyBhIGJ1Z3JlcG9ydFsxXSByZWdhcmRpbmcgaXBBZGRyZXNzVGFibGUgb24KLSAgICBuZXQtc25tcC1jb2RlcnMgbGlzdCBhbmQgcnN0b3J5J3MgZXhwZXJpbWVudGFsIHBhdGNoIHdpdGhvdXQgYW55IGZlZWRiYWNrLgotICAgIE5vdyBJJ3ZlIGdvdCBmZXcgY29tcGxhaW50cyB0aGF0IFNOTVAgU0VUIG9uIGlwQWRkcmVzc1RhYmxlIHByb2R1Y2VzIHRoZQotICAgIHNhbWUgZXJyb3JzIGFuZCBndWVzcyB3aGF0LCB0aGUgcGF0Y2ggZml4ZXMgdGhlbS4KLSAgICAKLSAgICBbMV06IGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvbWFpbGFyY2hpdmUvZm9ydW0ucGhwP3RocmVhZF9uYW1lPTIwMDYwOTIwMTM0OTM1LjM1YjM2ZWQ2JTQwZGV2LmZ1dHoub3JnJmZvcnVtX25hbWU9bmV0LXNubXAtY29kZXJzCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODgxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNjVmNGZlZDMxMzcxNGM0MmNhY2NiNjdhNWY2NzFkYjYyZWU0NmVmZAotQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBKYW4gMTQgMDY6MjU6NTkgMjAxMSArMDAwMAotCi0gICAgcmVtb3ZlIGNvbXBsZXRlbHkgdXNlbGVzcyBhbmQgbm9uc2Vuc2ljYWwgY29kZQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTg3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGE3MDk2NmEyZjhiMzY0OWVhMWM3MTdiNWU4ODM1ZWU4NTUxMGJmNmUKLUF1dGhvcjogUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDE0IDA2OjI1OjU5IDIwMTEgKzAwMDAKLQotICAgIHJlbW92ZSBjb21wbGV0ZWx5IHVzZWxlc3MgYW5kIG5vbnNlbnNpY2FsIGNvZGUKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA2NGFhZDhlOTFjYjRlMGMxZjYyYzEyZGU5NmUxYTY0ODY2MGE1NmM1Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBKYW4gMTMgMTU6NTY6MzcgMjAxMSArMDAwMAotCi0gICAgRW5zdXJlIHJlbGVhc2VzIGFyZSBpbnN0YWxsZWQgdG8gdGhlIGNvcnJlY3QgcGF0aCB3aXRoaW4gdGhlIC90YWdzIFNWTiB0cmVlCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZTc1NDU4ZmU1ZTg0YmEyOTIwOWM0NzdiYmY3NDIzYzkyMDMzZDVhZQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgSmFuIDEzIDE1OjU2OjM3IDIwMTEgKzAwMDAKLQotICAgIEVuc3VyZSByZWxlYXNlcyBhcmUgaW5zdGFsbGVkIHRvIHRoZSBjb3JyZWN0IHBhdGggd2l0aGluIHRoZSAvdGFncyBTVk4gdHJlZQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGU0ZDk2ZGNlYzA5MzM4MjA3MzNmYTU4OWNlZTYyODc1ZWRmNmNkZTMKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEphbiAxMyAxNToxNTo1NyAyMDExICswMDAwCi0KLSAgICBSZW1vdmUgQysrIGNvbW1lbnRzCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODY4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNGVjOGI0MzFiNThjNWNkZWQxNjc5NGE0YmU5MmY4ODM3NjkzOTFhOAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgSmFuIDEzIDE1OjE1OjU3IDIwMTEgKzAwMDAKLQotICAgIFJlbW92ZSBDKysgY29tbWVudHMKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4NjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAzYmM0ODJhOTEwNGJhNjlkY2IyYmYxZjZmNTczNzQyOTc3Mzc2YzcwCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBKYW4gMTMgMTM6MTc6NDEgMjAxMSArMDAwMAotCi0gICAgRml4IGJyb2tlbiBwYXRjaAotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg2NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGNhN2FlNWMzZjI5MDE0MDY2ZDU1NjYyZjU5ZTMzODI1ZDFmNzNlNDcKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEphbiAxMyAxMjoxNDoxOSAyMDExICswMDAwCi0KLSAgICBDb25maWd1cmUgZml4ZXMgZm9yIERyYWdvbkZseSBzdXBwb3J0Ci0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODYzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYTRkZDFiNGRhZmI4OTcwMDQxYzFmMzhjZjI2ZGEyYTAwNmU0ZGRlMwotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgSmFuIDEzIDEyOjE0OjE5IDIwMTEgKzAwMDAKLQotICAgIENvbmZpZ3VyZSBmaXhlcyBmb3IgRHJhZ29uRmx5IHN1cHBvcnQKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4NjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBhNTE0MTE4MDQ3OTUwYTZkYTNlODJjYzVkMDdkNDUzMGNmZWY4Mjg2Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBKYW4gMTMgMTI6MDQ6NTMgMjAxMSArMDAwMAotCi0gICAgQ29kZSBmaXhlcyBmb3IgRHJhZ29uRmx5IHN1cHBvcnQKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA5ODZiMmRlZGE1NzkyYTI0NGZmZGE1ZTAwNzQxMmJiNWU0M2E2NzNmCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBKYW4gMTMgMTI6MDQ6NTMgMjAxMSArMDAwMAotCi0gICAgQ29kZSBmaXhlcyBmb3IgRHJhZ29uRmx5IHN1cHBvcnQKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4NjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAxOWY5NzA2OTlhYTA2NjM5Mzc4ODYxYjZkNmE1ZTI3ZjRjM2ZjOTY3Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBKYW4gMTMgMTE6MzM6MTQgMjAxMSArMDAwMAotCi0gICAgRml4IHR5cG8KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAzNmU1ZDZkYjliOWJjZjMxYWQ3NTRkMjA3YWI4YTU4OWIxMjU5ZTQwCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBKYW4gMTMgMTE6MzM6MTQgMjAxMSArMDAwMAotCi0gICAgRml4IHR5cG8KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4NjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBhYmFmMDI1NDExMWFhYzA4NTNkM2VjNDM0N2IwZmZjODQzZGFlYzIyCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSmFuIDEyIDE5OjIwOjIzIDIwMTEgKzAwMDAKLQotICAgIEdldCByaWQgb2YgYSBjb21waWxlciB3YXJuaW5nIGluIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy91c21ESFBhcmFtZXRlcnMuYy4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4NTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBiZTgwNGM3YmU4NDc2OTJjYjgwOGMxOWVmYzA2MDNiYjU2NjBmZDViCi1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSmFuIDEyIDE5OjIwOjIzIDIwMTEgKzAwMDAKLQotICAgIEdldCByaWQgb2YgYSBjb21waWxlciB3YXJuaW5nIGluIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy91c21ESFBhcmFtZXRlcnMuYy4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA0ZGM2YWE2ODZkYzdmNmJiMzZjMDU0NTMyZWYyNjYyYjI2MmNlNWM1Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSmFuIDEyIDE5OjA0OjM5IDIwMTEgKzAwMDAKLQotICAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyAoZm9ybWF0IHNwZWNpZmljYXRpb24gbWlzbWF0Y2gpIHRoYXQgd2FzIGludHJvZHVjZWQKLSAgICBpbiByMTk4MDggKCJzbm1wZDogUEFUQ0hFUzogMjk3NTI1NDogQXZvaWQgY2FsbGJhY2sgcmUtdXNlIG9mIGNsb3NlZCBzZXNzaW9ucyIpLgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGYyZDczNDU0YmEwNzM0N2I0MWNmZWQ3NzUxZWM2ZjkyMWJkYmQ4MDEKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBKYW4gMTIgMTk6MDQ6MzkgMjAxMSArMDAwMAotCi0gICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIChmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaCkgdGhhdCB3YXMgaW50cm9kdWNlZAotICAgIGluIHIxOTgwOCAoInNubXBkOiBQQVRDSEVTOiAyOTc1MjU0OiBBdm9pZCBjYWxsYmFjayByZS11c2Ugb2YgY2xvc2VkIHNlc3Npb25zIikuCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZDY2Zjg4ZmY0ZjBhNjY5ZjVjNWRlNzAyN2UxZWIwYzdjZDlhYWZiYwotQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEphbiAxMiAxOTowNDozOSAyMDExICswMDAwCi0KLSAgICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgKGZvcm1hdCBzcGVjaWZpY2F0aW9uIG1pc21hdGNoKSB0aGF0IHdhcyBpbnRyb2R1Y2VkCi0gICAgaW4gcjE5ODA4ICgic25tcGQ6IFBBVENIRVM6IDI5NzUyNTQ6IEF2b2lkIGNhbGxiYWNrIHJlLXVzZSBvZiBjbG9zZWQgc2Vzc2lvbnMiKS4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA4ZjU4ZGFlMmExYjNlNzQ1ZWUxZThiOTQ0ZjdlYTdlNWFlMWM0Y2YwCi1BdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEphbiAxMiAxNTowMzoxMSAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wOiBwYXRjaDogMzA5NjcyNTogc3lzT1JUYWJsZSByZWdpc3RhdGlvbiBmb3Igbm90aWZpY2F0aW9uIGxvZyBtaWIKLSAgICAKLSAgICAgIG9yaWdpbmFsIHBhdGNoIGZpeGVkIHNldmVyYWwgaXNzdWVzLCBvdGhlciBwYXJ0cyBhcHBsaWVkIGVhcmxpZXIKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4NTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA4OTA1Yzk4ZGI2ZGU4ODBiM2JjOTkyZWRkOTRlZjcwZmE0ZDUxNzczCi1BdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEphbiAxMiAxNTowMzoxMSAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wOiBwYXRjaDogMzA5NjcyNTogc3lzT1JUYWJsZSByZWdpc3RhdGlvbiBmb3Igbm90aWZpY2F0aW9uIGxvZyBtaWIKLSAgICAKLSAgICAgIG9yaWdpbmFsIHBhdGNoIGZpeGVkIHNldmVyYWwgaXNzdWVzLCBvdGhlciBwYXJ0cyBhcHBsaWVkIGVhcmxpZXIKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAxNTk1MzBlYTVmZTNhZDYyM2RiODIxYzhiNzkzY2QwNDY1ZGFiMGIyCi1BdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEphbiAxMiAxNDozNzowOSAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBhZ2VudDogTUlCLXNwZWNpZmljIGxlYWstYXQtZXhpdCBmaXhlcy4KLSAgICAKLSAgICAgIGJhY2twb3J0IGFwcGxpY2FibGUgcGFydHMgb2YgcjE5NTMzIGZyb20gdHJ1bmsKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4NTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA5NTZjODQ5NTMwZTU5YzA0NTFkOTY0MzI0N2U0MzQ4ZTJhYjA5NTg0Ci1BdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEphbiAxMiAxNDozNzowOSAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBhZ2VudDogTUlCLXNwZWNpZmljIGxlYWstYXQtZXhpdCBmaXhlcy4KLSAgICAKLSAgICAgIGJhY2twb3J0IGFwcGxpY2FibGUgcGFydHMgb2YgcjE5NTMzIGZyb20gdHJ1bmsKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAxNjVjOGJhZGRhNjk3MDY3ZGY4ZmFhYzBkYjEyNDU1YjgxMmNjNWE5Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBKYW4gMTEgMTY6MDQ6MTYgMjAxMSArMDAwMAotCi0gICAgUmVjb2duaXNlIEFnZW50IE9JRCBmb3IgRHJhZ29uRmx5IHN5c3RlbXMgKGFuZCBnZW5lcmFsIHRpZHlpbmcgdXApCi0gICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgUW46IFNob3VsZCB0aGVzZSBiZSB1cGRhdGVkIHRvIHJlZmVyIHRvIE5ldC1TTk1QIChyYXRoZXIgdGhhbiBVQ0QpPwotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDliNmQyNzZhMmNiYzNmMTg2NGFlOTZhZTFiZDdhYTQzMDY0MmM4NjUKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEphbiAxMSAxNjowNDoxNiAyMDExICswMDAwCi0KLSAgICBSZWNvZ25pc2UgQWdlbnQgT0lEIGZvciBEcmFnb25GbHkgc3lzdGVtcyAoYW5kIGdlbmVyYWwgdGlkeWluZyB1cCkKLSAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAKLSAgICBRbjogU2hvdWxkIHRoZXNlIGJlIHVwZGF0ZWQgdG8gcmVmZXIgdG8gTmV0LVNOTVAgKHJhdGhlciB0aGFuIFVDRCk/Ci0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYjJmYWViMGVjZDZjMzBhMDNmOWRlMmRhZjM3MzI1OTEwZDJmZDAwZgotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgSmFuIDExIDE2OjAxOjIyIDIwMTEgKzAwMDAKLQotICAgIERlZmluZSBBZ2VudCBPSUQgZm9yIERyYWdvbkZseSBzeXN0ZW1zCi0gICAgKGFuZCBnZW5lcmFsIHRpZHlpbmcgdXApCi0gICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZGQwMWRlYmE3ZmVkNTg1NDlmMzQ3ODA5MWE3OTQxMTIwNzVmOTI5ZgotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgSmFuIDExIDE2OjAxOjIyIDIwMTEgKzAwMDAKLQotICAgIERlZmluZSBBZ2VudCBPSUQgZm9yIERyYWdvbkZseSBzeXN0ZW1zCi0gICAgKGFuZCBnZW5lcmFsIHRpZHlpbmcgdXApCi0gICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYTZlNTM5MDhiZTQ4ZThiMGZlYTVhYTM5NjFkZWQzZDcxODRkYzQ2MQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgSmFuIDExIDE2OjAxOjIyIDIwMTEgKzAwMDAKLQotICAgIERlZmluZSBBZ2VudCBPSUQgZm9yIERyYWdvbkZseSBzeXN0ZW1zCi0gICAgKGFuZCBnZW5lcmFsIHRpZHlpbmcgdXApCi0gICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMWNiMWMyMGVjYWEyNTRkMTI0NjFhNmEyYzAzNWY1NWE5MDM0YmM5OAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgSmFuIDExIDE1OjI3OjUwIDIwMTEgKzAwMDAKLQotICAgIE5ldEJTRCBEcmFnb25GbHkgc3VwcG9ydCBmb3IgVURQICYgVENQIHRhYmxlcwotICAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg1MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDI1MzQ5Y2Y4MzljZmNmMWNjN2U4M2VjZGJlY2E1NzYxY2I5MWVhN2EKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEphbiAxMSAxNToyNzo1MCAyMDExICswMDAwCi0KLSAgICBOZXRCU0QgRHJhZ29uRmx5IHN1cHBvcnQgZm9yIFVEUCAmIFRDUCB0YWJsZXMKLSAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBhOGJlODA0MTJmYjQ3ZWRlNWEyNWI1YTZhYzYwNmYzMjMzYmZhODljCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBKYW4gMTEgMTQ6NDE6MjYgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogTmV0QlNEOiBEcmFnb25GbHkgc3VwcG9ydAotICAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg0OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGI0NDNjYmQ4NWE2NWUzNTVmZjAxMDFmZTY4MTQyZDQ5YjhjYzRlNTcKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEphbiAxMSAxNDo0MToyNiAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBOZXRCU0Q6IERyYWdvbkZseSBzdXBwb3J0Ci0gICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODQ5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMDkzMmIwNDkxMGVjNjcwMTEyZTIxNmU2NDc4OWNhMmY0YjViMDc2MQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgSmFuIDExIDE0OjM2OjI1IDIwMTEgKzAwMDAKLQotICAgIE5ldEJTRC9EcmFnb25GbHkgJ3N0cnVjdCBpZm5ldCcgcmVxdWlyZXMgS0VSTkVMLCBidXQgbm90IF9LRVJORUwKLSAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAgICAgKEkgaG9wZSBJJ3ZlIGdvdCB0aGlzIG9uZSByaWdodCEpCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODQ4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYTUyZjhjM2Y4NTYzMTg5YmQwZDFkZmU0OWQwYzgwOWVmMDhkN2RlMgotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgSmFuIDExIDE0OjM2OjI1IDIwMTEgKzAwMDAKLQotICAgIE5ldEJTRC9EcmFnb25GbHkgJ3N0cnVjdCBpZm5ldCcgcmVxdWlyZXMgS0VSTkVMLCBidXQgbm90IF9LRVJORUwKLSAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAgICAgKEkgaG9wZSBJJ3ZlIGdvdCB0aGlzIG9uZSByaWdodCEpCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODQ4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYzc1ODhlODcxYmZhOTE0MjY5ODQwMjE2OTBhZmRhNzZiMjMxZjVmYgotQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBKYW4gMTEgMTQ6MTQ6MDcgMjAxMSArMDAwMAotCi0gICAgcmV2ZXJ0IFBBVENIIDMwNTM0MzY6IHRjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2VzcyBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MKLSAgICAKLSAgICAgIHRoZSBidWcgdGhpcyBpcyBmaXhpbmcgd2FzIGludHJvZHVjZWQgaW4gcjE3NzE5LCBhbmQgZml4ZWQgaW4gcjE3ODYxLgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg0NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGNhMjcwYjk1NDk1ZDYzN2JjYTlkMjE2NThjMDI5NWQ1ZTBjYmUzYjYKLUF1dGhvcjogUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgSmFuIDExIDE0OjE0OjA3IDIwMTEgKzAwMDAKLQotICAgIHJldmVydCBQQVRDSCAzMDUzNDM2OiB0Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MgaW52YWxpZCBtZW1vcnkgYWNjZXNzCi0gICAgCi0gICAgICB0aGUgYnVnIHRoaXMgaXMgZml4aW5nIHdhcyBpbnRyb2R1Y2VkIGluIHIxNzcxOSwgYW5kIGZpeGVkIGluIHIxNzg2MS4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBhZTk5NzA0ZjVjZDliODVlOTNmZTRhOGRkZjE4ZjE3MDBmNzMwNjJmCi1BdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEphbiAxMSAxMzozNDoyMiAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wbGliOiBmcm9tIEJpbGwgRmVubmVyOiBmaXggc2VuZGluZyBvZiBVRFAgcmVzcG9uc2VzIGZyb20gbXVsdGlob21lZCBhZ2VudHMuCi0gICAgCi0gICAgVHJ5IHRvIHNlbmQgdGhlIHJlc3BvbnNlIGFzIGl0IHdhcyBiZWZvcmUgTmV0LVNOTVAgNS42IChhc3N1bWluZyB0aGUgYXBwcm9wcmlhdGUgcmVxdWVzdCB3YXMgdW5pY2FzdCkgYW5kIG9ubHkgaWYgaXQgZmFpbHMgdHJ5IHRvIHNldCBpZl9pbmRleCAodGhlIHJlcXVlc3QgbXVzdCBiZSBicm9hZGNhc3QpLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGMzZmUyZjcyMDBmYjAwYmUxZjNjMjMyMDUxOTM4ZWE4Nzg0N2MyNTgKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEphbiAxMSAxMzoyMjoxMCAyMDExICswMDAwCi0KLSAgICBSZWFsbHkgaGFuZGxlIHN5c3RlbXMgd2l0aCAnc3RydWN0IHRpbWVzcGVjIGlmbmV0LmlmX2xhc3RjaGFuZ2UnCi0gICAgKG1pc3NpbmcgZWxlbWVudCBmcm9tIFNWTiByZXZpc2lvbiAxOTg0MSkKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBmNDgzYzliOTlkZTAzNGU5OGE5MTQ4OWYyYzY1Y2ZhZDlhYzg4MzZmCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBKYW4gMTEgMTM6MjI6MTAgMjAxMSArMDAwMAotCi0gICAgUmVhbGx5IGhhbmRsZSBzeXN0ZW1zIHdpdGggJ3N0cnVjdCB0aW1lc3BlYyBpZm5ldC5pZl9sYXN0Y2hhbmdlJwotICAgIChtaXNzaW5nIGVsZW1lbnQgZnJvbSBTVk4gcmV2aXNpb24gMTk4NDEpCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODQ1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNWIxMGI0YjBjODQ0NGIwNDMyZTFmY2I1YjMzNWQ4ODViMDFmNDg3MwotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgSmFuIDExIDEyOjI0OjEyIDIwMTEgKzAwMDAKLQotICAgIEFkZGl0aW9uYWwgaGVhZGVycyB3aGVuIHRlc3RpbmcgZm9yIElQdjYgaGVhZGVycwotICAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AxOTg0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDRhZWJiZmY3MDdiZjBjZDRiNTE3MjQ3NDE0M2FhMWIzMDJjMzFiZWYKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEphbiAxMSAxMjoyNDoxMiAyMDExICswMDAwCi0KLSAgICBBZGRpdGlvbmFsIGhlYWRlcnMgd2hlbiB0ZXN0aW5nIGZvciBJUHY2IGhlYWRlcnMKLSAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBjNDBlZDZlZTM5ODQwZjM3MjlmOTNlZTdmM2M3OTJkZGU5MjI1NzBlCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBKYW4gMTEgMTI6MjQ6MTIgMjAxMSArMDAwMAotCi0gICAgQWRkaXRpb25hbCBoZWFkZXJzIHdoZW4gdGVzdGluZyBmb3IgSVB2NiBoZWFkZXJzCi0gICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODQ0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgM2Y0M2ZjZWRmYWIwMTNhZGI2MmJiZGM5MTljNTE5ZDAyM2RmOWNmMgotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgSmFuIDExIDEyOjE0OjI1IDIwMTEgKzAwMDAKLQotICAgIE1pc3NpbmcgdHlwZSB1bmRlciBkYXJ3aW4KLSAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA5NmQxMzFmOWE2NmMzMzRhNTdjYTUwNGEwMjY5NTIzYmQwMTZhOTYwCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBKYW4gMTEgMTI6MTQ6MjUgMjAxMSArMDAwMAotCi0gICAgTWlzc2luZyB0eXBlIHVuZGVyIGRhcndpbgotICAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTg0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGYwODkwNTJkNjkwMzZlMzI4N2E1ZjQ1MjViMzg4NTVhMGMxYTY2MzEKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEphbiAxMSAxMjoxMDo1NiAyMDExICswMDAwCi0KLSAgICBOZXRCU0Qgc3VwcG9ydCBmb3IgRGlzayBJL08gc3RhdHMKLSAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4NDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAzNTU3ZWY3MGYwY2E4NjE3ZDc4N2I0YmZjMWJmN2FkOTFiZTAyMDJmCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBKYW4gMTEgMTI6MDE6MjcgMjAxMSArMDAwMAotCi0gICAgSGFuZGxlIHN5c3RlbXMgd2l0aCAnc3RydWN0IHRpbWVzcGVjIGlmbmV0LmlmX2xhc3RjaGFuZ2UnIChyYXRoZXIgdGhhbiBzdHJ1Y3QgdGltZXZhbCkKLSAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4NDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA3OWU4YjNmOTU4YTk3N2Q1ZTljZWI5OTQ4MTU0NDY2NTJjMDg5ZmRiCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBKYW4gMTEgMTI6MDE6MjcgMjAxMSArMDAwMAotCi0gICAgSGFuZGxlIHN5c3RlbXMgd2l0aCAnc3RydWN0IHRpbWVzcGVjIGlmbmV0LmlmX2xhc3RjaGFuZ2UnIChyYXRoZXIgdGhhbiBzdHJ1Y3QgdGltZXZhbCkKLSAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4NDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA1YWEzYTMzNjIxZGY4OWJmMWY1NTY3ZTFjZDlhNjY3N2FlOWYyMGRiCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBKYW4gMTEgMTE6Mjc6MDYgMjAxMSArMDAwMAotCi0gICAgUHVsbCBpbiBrZXJuZWxfbmV0YnNkIG1vZHVsZSB3aGVuIHJlcXVpcmVkCi0gICAgW0Jhc2VkIG9uIGZpeCBmcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTg0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGIzMjlkYzlmZmM2YTdkMTRjY2IwMjc3Zjc2M2NmZGE3NTBhNTdlY2EKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEphbiAxMSAxMToyNzowNiAyMDExICswMDAwCi0KLSAgICBQdWxsIGluIGtlcm5lbF9uZXRic2QgbW9kdWxlIHdoZW4gcmVxdWlyZWQKLSAgICBbQmFzZWQgb24gZml4IGZyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODQwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgN2I1N2JkYjUxNTQ3MTYxMjM5NmM1ZjcxMWI5ZmUwNGE2OWRhMGQ1MAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgSmFuIDExIDEwOjM2OjA4IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IE5ldEJTRDogUmV0cmlldmUgTUlCLUlJIG5ldHdvcmsgc3RhdGlzdGljcyB2aWEgc3lzY3RsCi0gICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODM5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgODNiMWNhYjhiOGRjYmNhZWIxYTY4ZDAzY2IwZTBjNGMxOTY5NjU2MAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgSmFuIDExIDEwOjM2OjA4IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IE5ldEJTRDogUmV0cmlldmUgTUlCLUlJIG5ldHdvcmsgc3RhdGlzdGljcyB2aWEgc3lzY3RsCi0gICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODM5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZDUyMTIxZDdjOTVhNmVmMmFmZTg2YzJiYmM0MzVmNGU0OWM3ZjI4YgotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gSmFuIDEwIDE2OjU2OjExIDIwMTEgKzAwMDAKLQotICAgIEFkZCBzdXBwb3J0IGZvciBkYXJ3aW4KLSAgICAoVGhlIHBhdGNoIGZyb20gdGhlIE5ldEJTRCBhcmNoaXZlIGFwcGVhcnMgdG8gYmUgZXNzZW50aWFsbHkgdGhlCi0gICAgc2FtZSBhcyB0aGUgZXF1aXZhbGVudCBjb2RlIGZyb20gdGhlIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZSkKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBlYTA1ZjM5ZDI3MWUzNmU0YTFkMWYwMThlNjVmZDE4OTIwMjE5ZjhjCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBKYW4gMTAgMTY6NTY6MTEgMjAxMSArMDAwMAotCi0gICAgQWRkIHN1cHBvcnQgZm9yIGRhcndpbgotICAgIChUaGUgcGF0Y2ggZnJvbSB0aGUgTmV0QlNEIGFyY2hpdmUgYXBwZWFycyB0byBiZSBlc3NlbnRpYWxseSB0aGUKLSAgICBzYW1lIGFzIHRoZSBlcXVpdmFsZW50IGNvZGUgZnJvbSB0aGUgT3BlbkJTRCBwYXRjaCBhcmNoaXZlKQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTgzNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDJkOTZiZTcwZWI3Y2I0NmUyODk4Yzk1N2VkODc2NzY3MDZhNmQ2ZGYKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIEphbiAxMCAxNjo1NjoxMSAyMDExICswMDAwCi0KLSAgICBBZGQgc3VwcG9ydCBmb3IgZGFyd2luCi0gICAgKFRoZSBwYXRjaCBmcm9tIHRoZSBOZXRCU0QgYXJjaGl2ZSBhcHBlYXJzIHRvIGJlIGVzc2VudGlhbGx5IHRoZQotICAgIHNhbWUgYXMgdGhlIGVxdWl2YWxlbnQgY29kZSBmcm9tIHRoZSBPcGVuQlNEIHBhdGNoIGFyY2hpdmUpCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODM3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMzBmNjgzNmQwNDRjMzNhNTU5NWI2MmQxNmZmYzU5NmYwYWMyYzkwYQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gSmFuIDEwIDE2OjU0OjAyIDIwMTEgKzAwMDAKLQotICAgIEFkZCBzdXBwb3J0IGZvciBkYXJ3aW4KLSAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAxYTZhZDE5NzA1MDY5ZmM4Y2I0ZjcwYzMwYzk2MmFmMzhkNTQxZDI2Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBKYW4gMTAgMTY6NTQ6MDIgMjAxMSArMDAwMAotCi0gICAgQWRkIHN1cHBvcnQgZm9yIGRhcndpbgotICAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTgzNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDc0ZDMwYjYzMTQ2N2FjMTc3OGVjNzEyMzFjNTVhM2NjODU4YTVjNmEKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIEphbiAxMCAxNjo1NDowMiAyMDExICswMDAwCi0KLSAgICBBZGQgc3VwcG9ydCBmb3IgZGFyd2luCi0gICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODM2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYjRmZDAxYWEwNzRlNGI3NDlhOTZmOWNhNDM5Mjg5ZjM4NGNiODBjMwotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBNb24gSmFuIDEwIDE0OjU1OjU3IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IE5ldEJTRDogVXBkYXRlIG1lbW9yeSBhbmQgQ1BVIHN0YXRpc3RpY3MgaGFuZGxpbmcKLSAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBjZTg1NGQxOTYzNTgyMWFlYTFhOGNmNWY5MDk1ZTE0MDY4ZjNmYjliCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBKYW4gMTAgMTQ6NTU6NTcgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogTmV0QlNEOiBVcGRhdGUgbWVtb3J5IGFuZCBDUFUgc3RhdGlzdGljcyBoYW5kbGluZwotICAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDk4YzM5YjY4NzZkZDUzMGM5YWNlNzZhODZlOTE3MjM2MzFmZWE2OWUKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgTW9uIEphbiAxMCAxNDoyMjo0NCAyMDExICswMDAwCi0KLSAgICBGaXggZGl2aWRlLWJ5LXplcm8gZXJyb3IgaW4gQ1BVIHBlcmZvcm1hbmNlIHN0YXRpc3RpY3MKLSAgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBiNjFkZGM0ZmM2ZGNiMzMxYzY5MjFjODI1YjkzYjYwYzhiMjU3ZmI0Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIE1vbiBKYW4gMTAgMTQ6MjI6NDQgMjAxMSArMDAwMAotCi0gICAgRml4IGRpdmlkZS1ieS16ZXJvIGVycm9yIGluIENQVSBwZXJmb3JtYW5jZSBzdGF0aXN0aWNzCi0gICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODM0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgOGE0OWNhZGI1ZTJhOGU0ZjFhM2YyMGJmNzJiOWRiNGEwNGZhMzBjOQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTdW4gSmFuIDkgMjI6NTQ6NTAgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogT3BlbkJTRDogVXBkYXRlIFNXUnVuIGNvZGUgdG8gdXNlIGt2bV9nZXRwcm9jMgotICAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAyNzE2MTkzMmEzY2NjMjhmYzI2NDI3Yzc2NDA4Yjg2ZjNiNzA4MDAzCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFN1biBKYW4gOSAyMTozMDozOCAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBidWlsZDogT3BlbkJTRDogRml4IG9yZGVyIG9mIGhlYWRlcnMgd2hlbiBjaGVja2luZyA8bmV0aW5ldC9pbl9wY2IuaD4KLSAgICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODMyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgOGQyOWQ0MGRlNGJhNWYyNTdmNmJmNDZlMmIzOWIxMWIyNzgxYzg4NAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTdW4gSmFuIDkgMTk6NDQ6NTcgMjAxMSArMDAwMAotCi0gICAgQW1lbmQgaG93IG11bHRpLUNQVSBzdGF0aXN0aWNzIGFyZSByZXRyZWl2ZWQgdXNpbmcgc3lzY3RsIG9uIE9wZW5CU0Qgc3lzdGVtcwotICAgIChpZiB0aGlzIGJsb2NrIHdhcyBhY3RpdmUsIHdoaWNoIGl0IGlzbid0LCBidXQgdGhhdCdzIG5vdCBpbXBvcnRhbnQgcmlnaHQgbm90KQotICAgIFtCYXNlZCBvbiBPcGVuQlNEIHBhdGNoIGFyY2hpdmUsIGFtZW5kZWQgKHByb2JhYmx5IHdyb25nbHkpIGJ5IERUU10KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA0YWZlYzdmODhhYjg0MGM2YjhiYzBiOTZjNmFhNzc3Y2MzM2NiYjNjCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFN1biBKYW4gOSAxOTo0NDo1NyAyMDExICswMDAwCi0KLSAgICBBbWVuZCBob3cgbXVsdGktQ1BVIHN0YXRpc3RpY3MgYXJlIHJldHJlaXZlZCB1c2luZyBzeXNjdGwgb24gT3BlbkJTRCBzeXN0ZW1zCi0gICAgKGlmIHRoaXMgYmxvY2sgd2FzIGFjdGl2ZSwgd2hpY2ggaXQgaXNuJ3QsIGJ1dCB0aGF0J3Mgbm90IGltcG9ydGFudCByaWdodCBub3QpCi0gICAgW0Jhc2VkIG9uIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZSwgYW1lbmRlZCAocHJvYmFibHkgd3JvbmdseSkgYnkgRFRTXQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgzMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGUzNzdlODkzMDUxOTRlMTlmZmMzOWQ2ZDg4ZDg0ZDIzNmZhY2E1NTkKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU3VuIEphbiA5IDE4OjEzOjUwIDIwMTEgKzAwMDAKLQotICAgIHN5c2N0bCB0YWtlcyBhICdzaXplX3QnIHZhcmlhYmxlIGZvciB0aGUgc2l6ZSBwYXJhbWV0ZXIKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA3N2FmODk5YWVkZWI4NTQxMTIzZmY4ODljMmY5ZjQ1MjY1ZDhkYmFlCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFN1biBKYW4gOSAxODoxMzo1MCAyMDExICswMDAwCi0KLSAgICBzeXNjdGwgdGFrZXMgYSAnc2l6ZV90JyB2YXJpYWJsZSBmb3IgdGhlIHNpemUgcGFyYW1ldGVyCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZDIwOTA2Y2I2ODVkYTI5ZGNlYTcxYjg5M2QyNzIxMTQyMTg2YmQ2ZgotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTdW4gSmFuIDkgMTg6MTM6NTAgMjAxMSArMDAwMAotCi0gICAgc3lzY3RsIHRha2VzIGEgJ3NpemVfdCcgdmFyaWFibGUgZm9yIHRoZSBzaXplIHBhcmFtZXRlcgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDkwYzE0MGNlODkzZThhNmMyZmQ5N2NkMzM5NjU0YTM2YzM2ZTY4MmEKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU3VuIEphbiA5IDE4OjExOjAxIDIwMTEgKzAwMDAKLQotICAgIHN5c2N0bCB0YWtlcyBhICdzaXplX3QnIHZhcmlhYmxlIGZvciB0aGUgc2l6ZSBwYXJhbWV0ZXIKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAyOTRhMmRhOTU2NzlkNjY4MjJmZjM5ZDQ2OTZjZTZmNDAzNWRmZGUzCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFN1biBKYW4gOSAxODoxMTowMSAyMDExICswMDAwCi0KLSAgICBzeXNjdGwgdGFrZXMgYSAnc2l6ZV90JyB2YXJpYWJsZSBmb3IgdGhlIHNpemUgcGFyYW1ldGVyCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODI5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMGU1OWMxNGM1Y2YyZjg3ZjUzYWZiOThiMzcwNWJlZGUxNDgyMzYxOAotQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFNhdCBKYW4gOCAwMDo0NzoyMiAyMDExICswMDAwCi0KLSAgICBVcGRhdGUgYWNjb25maWcuaCB3aXRoIGNoYW5nZXMgZnJvbSByMTk4MTkuCi0gICAgUmVydW4gYXV0b2hlYWRlci4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAzOWI5YTBhYmNiYmEwY2FmZWE1YTYzMjRlMWM1NzZlNjU4OGExY2Q1Ci1BdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgU2F0IEphbiA4IDAwOjQ3OjIyIDIwMTEgKzAwMDAKLQotICAgIFVwZGF0ZSBhY2NvbmZpZy5oIHdpdGggY2hhbmdlcyBmcm9tIHIxOTgxOS4KLSAgICBSZXJ1biBhdXRvaGVhZGVyLgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTgyNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGM2NGEwNjI5ZDNkMzI2M2Q4NmFjNTFlYTE5ODY3MmRkMzA3ZGQ0ZjUKLUF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBTYXQgSmFuIDggMDA6NDc6MjIgMjAxMSArMDAwMAotCi0gICAgVXBkYXRlIGFjY29uZmlnLmggd2l0aCBjaGFuZ2VzIGZyb20gcjE5ODE5LgotICAgIFJlcnVuIGF1dG9oZWFkZXIuCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODI3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMGM4OTcwZWMyM2MxMDY0YTgxY2ZjNWMzNjJlM2IzNDhhZmIwMjA3MAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMjA6NTY6MjYgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogT3BlbkJTRDogU3VwcG9ydCB1cGRhdGluZyB0aGUgcm91dGluZyB0YWJsZQotICAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA4MzRjYzEyOGFmN2ZkNTQyMmE5ZWRhNzNhYTQ4OTg3Nzc0ZjI0MzVkCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBKYW4gNyAyMDo1NjoyNiAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBPcGVuQlNEOiBTdXBwb3J0IHVwZGF0aW5nIHRoZSByb3V0aW5nIHRhYmxlCi0gICAgW0Zyb20gT3BlbkJTRCBwYXRjaCBhcmNoaXZlXQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTgyNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDExNDM3NTRhNGMxODUzY2JjODJlOWMwMjZiZTJkMmM4ZmFlYmJkODgKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEphbiA3IDIwOjU2OjI2IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IE9wZW5CU0Q6IFN1cHBvcnQgdXBkYXRpbmcgdGhlIHJvdXRpbmcgdGFibGUKLSAgICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODI2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYjJkOGYxMDI2NjZlMjI2ZmYxODZkMWE1M2UwZjU5OGJiNGEzYzg0YwotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMjA6Mjk6MzkgMjAxMSArMDAwMAotCi0gICAgU2V0ICduZXh0JyBmaWVsZCBmb3IgdWRwIGVudHJ5IGxpbmtlZCBsaXN0IG9uIE9wZW5CU0Q0Ci0gICAgW0Zyb20gT3BlbkJTRCBwYXRjaCBhcmNoaXZlXQotICAgIAotICAgIFRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHNldCBpbiA8bmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaD4KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAxYjVjOWMwMDMwZjdhODMwOWZlODg2MDQ0YWRkMTZhMjQ0NjI4YjRlCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBKYW4gNyAyMDoyOTozOSAyMDExICswMDAwCi0KLSAgICBTZXQgJ25leHQnIGZpZWxkIGZvciB1ZHAgZW50cnkgbGlua2VkIGxpc3Qgb24gT3BlbkJTRDQKLSAgICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgVGhpcyBzaG91bGQgcHJvYmFibHkgYmUgc2V0IGluIDxuZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oPgotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTgyNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDFlMmM2NjQxNzIwZTBiZDQ5NjAzNGE0ZjI1NDNhOTg0YWU1YTUwNDEKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEphbiA3IDIwOjI5OjM5IDIwMTEgKzAwMDAKLQotICAgIFNldCAnbmV4dCcgZmllbGQgZm9yIHVkcCBlbnRyeSBsaW5rZWQgbGlzdCBvbiBPcGVuQlNENAotICAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAKLSAgICBUaGlzIHNob3VsZCBwcm9iYWJseSBiZSBzZXQgaW4gPG5ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmg+Ci0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODI1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZWVjYjY5ZjI2YTQ0ZmQ3ZTdjOGYzZWY5NjgyNTQ2ZDYzODBkYjUxOQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMjA6MTI6MjUgMjAxMSArMDAwMAotCi0gICAgVXNlIGEgc3VpdGFibGUgY29uc3RhbnQgZm9yIENXRCBidWZmZXIgc2l6ZQotICAgIFtCYXNlZCBvbiBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZWNlMDMzMzU1ZjdkNjlhOWRlZjRiOGQyMzA3YmQ1ZGIzMzA4YTI4ZQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMjA6MTI6MjUgMjAxMSArMDAwMAotCi0gICAgVXNlIGEgc3VpdGFibGUgY29uc3RhbnQgZm9yIENXRCBidWZmZXIgc2l6ZQotICAgIFtCYXNlZCBvbiBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMTQzMzM2MGMwYzNhYjAzZGRmZDE0OTYxNzk2YjFmZDljZDBjZTFiOQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMjA6MTI6MjUgMjAxMSArMDAwMAotCi0gICAgVXNlIGEgc3VpdGFibGUgY29uc3RhbnQgZm9yIENXRCBidWZmZXIgc2l6ZQotICAgIFtCYXNlZCBvbiBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZDgyOWVkNjUyNTVjZGM2MjBiYzI2MzhlNjhhYjJmN2VmZTU5MzcwNQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMjA6MDc6MTcgMjAxMSArMDAwMAotCi0gICAgTW92ZSBnbG9iYWwgdmFyaWFibGUgaW50byB0aGUgbWV0aG9kIHdoZXJlIGl0J3MgdXNlZC4KLSAgICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgOGEyMzhiNTk4MzU4OWNiYTQ3NGQ4NzU1NzFkZGUyYTUxYThmODI3MwotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMjA6MDc6MTcgMjAxMSArMDAwMAotCi0gICAgTW92ZSBnbG9iYWwgdmFyaWFibGUgaW50byB0aGUgbWV0aG9kIHdoZXJlIGl0J3MgdXNlZC4KLSAgICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgOTgzZTVmMmI3ZWE4ZDFiODI2M2M3MGUyZDRiZmJhMmI1NmI5YTVjMAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMjA6MDc6MTcgMjAxMSArMDAwMAotCi0gICAgTW92ZSBnbG9iYWwgdmFyaWFibGUgaW50byB0aGUgbWV0aG9kIHdoZXJlIGl0J3MgdXNlZC4KLSAgICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMjU0NmVjMmQ0NzRjZGU1NGU4NTNmNDBlZjY4OWJmNDZjNTJlNDdkNAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMTY6NDg6NTYgMjAxMSArMDAwMAotCi0gICAgSGFuZGxlIHN5c3RlbXMgd2l0aG91dCBJRk1fVE9LRU4KLSAgICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNzkxMzIzNjE3NmEwMDEyNDZiMGE3YmQ0MjQ5MDUyMTAyY2VlNzBkYgotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMTY6NDg6NTYgMjAxMSArMDAwMAotCi0gICAgSGFuZGxlIHN5c3RlbXMgd2l0aG91dCBJRk1fVE9LRU4KLSAgICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgOGU0YmY0YjUzYTEzZGM5N2RmMThkZGQ4MThkMDJhNDNhODBiY2ZhNgotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMTQ6Mzg6MzcgMjAxMSArMDAwMAotCi0gICAgVXBkYXRlIHJldHJpZXZhbCBvZiBjYWNoZSB1c2FnZSBzdGF0aXN0aWNzIG9uIEZyZWVCU0QKLSAgICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMzgyODE3NzcxMTVmMjdlMDUwYTY2MzNkM2RkNTgxYTkwYWU3YzZlMwotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMTQ6Mzg6MzcgMjAxMSArMDAwMAotCi0gICAgVXBkYXRlIHJldHJpZXZhbCBvZiBjYWNoZSB1c2FnZSBzdGF0aXN0aWNzIG9uIEZyZWVCU0QKLSAgICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgMmRiZGM1Y2I2NzYxNTAxYTZiOWUxMmVjOTJkNzc4NDljNTQ3MGQ3MAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMTQ6MjA6MzAgMjAxMSArMDAwMAotCi0gICAgSW5jcmVhc2UgbWF4aW11bSBzaXplIG9mIGV4ZWN1dGUgb3V0cHV0IGNhY2hlCi0gICAgW0Zyb20gRnJlZUJTRCBwYXRjaCBhcmNoaXZlXQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AxOTgxOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDU0OWE3N2Y3MjIwMGQ0NDcwNzM1OWE4ZTQ5ZmY4YzViZDUzYTNmMzAKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEphbiA3IDE0OjIwOjMwIDIwMTEgKzAwMDAKLQotICAgIEluY3JlYXNlIG1heGltdW0gc2l6ZSBvZiBleGVjdXRlIG91dHB1dCBjYWNoZQotICAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBiNTQwZDNjOTk3MTA0NTg5MGJkZGQzZGU1MGY0MGYxNDY4ZjFiMDNjCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBKYW4gNyAxNDoyMDozMCAyMDExICswMDAwCi0KLSAgICBJbmNyZWFzZSBtYXhpbXVtIHNpemUgb2YgZXhlY3V0ZSBvdXRwdXQgY2FjaGUKLSAgICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgY2M0NTlmNjlmYmE2OGI2MzMyYjlhZDI3YjRiYzgxYTNkZjEzYmMxYQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMTQ6MDk6MTUgMjAxMSArMDAwMAotCi0gICAgUmVtb3ZlIGR1cGxpY2F0ZSBpbmNsdWRlIGRpcmVjdGl2ZXMKLSAgICBbRnJvbSBGcmVlQlNEIHBhdGNoZXMgYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA3ZjcxNTE2MzJkZWE1YWQ4OTQ1MzBlZTU4NDc2NTY0MjQxZDk1ODA3Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBKYW4gNyAxNDowOToxNSAyMDExICswMDAwCi0KLSAgICBSZW1vdmUgZHVwbGljYXRlIGluY2x1ZGUgZGlyZWN0aXZlcwotICAgIFtGcm9tIEZyZWVCU0QgcGF0Y2hlcyBhcmNoaXZlXQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgxNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGY4ZDZiNDZjMmMzMmE3MjIxNzE2ZWY1MzNiZmFhZWQ4OTU5MDM4NGUKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEphbiA3IDEzOjQ3OjIzIDIwMTEgKzAwMDAKLQotICAgIEhhbmRsZSBzeXN0ZW1zIHdoZXJlIFJURl9MTElORk8gaXMgbm90IGRlZmluZWQKLSAgICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYmE4MWIxZGZiNDg4ZTU2MDJhZjEzMWE5MjM5YTlhYjhkM2QzNWUxZQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMTM6NDc6MjMgMjAxMSArMDAwMAotCi0gICAgSGFuZGxlIHN5c3RlbXMgd2hlcmUgUlRGX0xMSU5GTyBpcyBub3QgZGVmaW5lZAotICAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAyZmY0NmZlNjk3ZDljM2FmOTEwNjUxNWM0MWI3ZTZhOTgxMjZhYTA5Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBKYW4gNyAxMzo0NzoyMyAyMDExICswMDAwCi0KLSAgICBIYW5kbGUgc3lzdGVtcyB3aGVyZSBSVEZfTExJTkZPIGlzIG5vdCBkZWZpbmVkCi0gICAgW0Zyb20gRnJlZUJTRCBwYXRjaCBhcmNoaXZlXQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgxNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGYwMjMxMmFhZWJmZjU1ZjA0MDQ3NmExYzcxMDNlOTkxYTExYzZhYTIKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEphbiA3IDEzOjQwOjQwIDIwMTEgKzAwMDAKLQotICAgIEluY2x1ZGUgemZzIG1vdW50IHBvaW50cyBmb3IgZGlzayByZXBvcnRzIHVuZGVyIEZyZWVCU0QKLSAgICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODE1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgODNiZjQ0NGYwNzZlZDJiOTIxMjIzOTU5NTg2YTRlZTM4MzU5NTYyMwotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMTM6NDA6NDAgMjAxMSArMDAwMAotCi0gICAgSW5jbHVkZSB6ZnMgbW91bnQgcG9pbnRzIGZvciBkaXNrIHJlcG9ydHMgdW5kZXIgRnJlZUJTRAotICAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBiZDZjZGNhMjZmOTQ2OTYxMTMwMzM1NmJiZGFlZGQ4MjM3ZDNkMWJhCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBKYW4gNyAxMzo0MDo0MCAyMDExICswMDAwCi0KLSAgICBJbmNsdWRlIHpmcyBtb3VudCBwb2ludHMgZm9yIGRpc2sgcmVwb3J0cyB1bmRlciBGcmVlQlNECi0gICAgW0Zyb20gRnJlZUJTRCBwYXRjaCBhcmNoaXZlXQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgxNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGUyZDc3MWI3MjdlNjBhZjEwNDVhZjI4NzFhOGY0YTllMDEwN2NjYjUKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEphbiA3IDEzOjM0OjUzIDIwMTEgKzAwMDAKLQotICAgIFByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZS1pbmNsdXNpb24KLSAgICBbRnJvbSBGcmVlQlNEIHBhdGNoZXMgYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA2NWMwZjM5YmVjYTRiMjMyMTFjZDIxN2FkZTdjYTE5NmQ0ZWU5ZWZjCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBKYW4gNyAxMzozNDo1MyAyMDExICswMDAwCi0KLSAgICBQcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUtaW5jbHVzaW9uCi0gICAgW0Zyb20gRnJlZUJTRCBwYXRjaGVzIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgOTBhZmNkYWFkOTA4NDQwYWQ4YTAwZGJmN2I3MTEzMmUzZTYzMWU4ZQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMTM6MzQ6NTMgMjAxMSArMDAwMAotCi0gICAgUHJvdGVjdCBhZ2FpbnN0IG11bHRpcGxlLWluY2x1c2lvbgotICAgIFtGcm9tIEZyZWVCU0QgcGF0Y2hlcyBhcmNoaXZlXQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDM0OWZhY2Q1YWM1NTU2YjlmOWViNmIyZmJiYTljMGVkOGZkYTE2ZTIKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEphbiA3IDEzOjI0OjMxIDIwMTEgKzAwMDAKLQotICAgIEluY2x1ZGUgPHVuaXN0ZC5oPgotICAgIFtGcm9tIEJTRCBwYXRjaGVzIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNTQ1MTA2N2RmZmEwMWY5OTFlYjJmOTFiYmQ1ZWQ1YjY1NTk4OWExYwotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMTM6MjQ6MzEgMjAxMSArMDAwMAotCi0gICAgSW5jbHVkZSA8dW5pc3RkLmg+Ci0gICAgW0Zyb20gQlNEIHBhdGNoZXMgYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBhOGY0OTJhOWZiZWI0ZjEzMzU3ZTdhNzU5MTA3ZGZmY2M1ZTljNDkxCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBKYW4gNyAxMzoyNDozMSAyMDExICswMDAwCi0KLSAgICBJbmNsdWRlIDx1bmlzdGQuaD4KLSAgICBbRnJvbSBCU0QgcGF0Y2hlcyBhcmNoaXZlXQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDY0NTBhOTg0NTE5YjhiYzg3NzI3ZWM3Y2YwOGNlNWI3YzEwZTNjNTAKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEphbiA3IDEzOjIxOjQ4IDIwMTEgKzAwMDAKLQotICAgIEF2b2lkIGNhbGxiYWNrIHJlLXVzZSBvZiBjbG9zZWQgc2Vzc2lvbnMuCi0gICAgKFBhcnQgb2YgcGF0Y2ggIzI5NzUyNTQgLSBzZWUgU1ZOIHJldmlzaW9uIDE5ODA4KQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AxOTgxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGZmNDc3NzUxZGRjODZjN2E4ZWY1ODgyZDM4ZDQyZTNhOGRiMTk5YjEKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEphbiA3IDEzOjIxOjQ4IDIwMTEgKzAwMDAKLQotICAgIEF2b2lkIGNhbGxiYWNrIHJlLXVzZSBvZiBjbG9zZWQgc2Vzc2lvbnMuCi0gICAgKFBhcnQgb2YgcGF0Y2ggIzI5NzUyNTQgLSBzZWUgU1ZOIHJldmlzaW9uIDE5ODA4KQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTgxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGNmNjFhMzEyNjM4NzE2YjA5N2U1ODNiZTA5ZmE1MjE3NjNlNDViZWUKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEphbiA3IDEzOjIxOjQ4IDIwMTEgKzAwMDAKLQotICAgIEF2b2lkIGNhbGxiYWNrIHJlLXVzZSBvZiBjbG9zZWQgc2Vzc2lvbnMuCi0gICAgKFBhcnQgb2YgcGF0Y2ggIzI5NzUyNTQgLSBzZWUgU1ZOIHJldmlzaW9uIDE5ODA4KQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDljNTQxN2QxNWI0Y2VkY2E5NTQ4M2I0NGE5ZGNmMWIzODEyY2NiNjkKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEphbiA3IDEyOjU1OjMxIDIwMTEgKzAwMDAKLQotICAgIEZyZWVCU0QgdXNlcyBhIHNsaWdodGx5IGRpZmZlcmVudCBuYW1pbmcgc2NoZW1lIGZvciBzdHJ1Y3QgaWZyZXEKLSAgICBbRnJvbSBGcmVlQlNEIHBhdGNoZXMgYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAzOGIyOTFiMDk2YTVkMWRkZjZkODAzYTQzMzY0NzVkM2I3YWQ5MjM2Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBKYW4gNyAxMjo1NTozMSAyMDExICswMDAwCi0KLSAgICBGcmVlQlNEIHVzZXMgYSBzbGlnaHRseSBkaWZmZXJlbnQgbmFtaW5nIHNjaGVtZSBmb3Igc3RydWN0IGlmcmVxCi0gICAgW0Zyb20gRnJlZUJTRCBwYXRjaGVzIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNjg1YTdkZDlkNWVlYzk5OGFhN2M1ZWEwNTBjNjk4N2FmNDIyMGYwYgotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMTI6NTU6MzEgMjAxMSArMDAwMAotCi0gICAgRnJlZUJTRCB1c2VzIGEgc2xpZ2h0bHkgZGlmZmVyZW50IG5hbWluZyBzY2hlbWUgZm9yIHN0cnVjdCBpZnJlcQotICAgIFtGcm9tIEZyZWVCU0QgcGF0Y2hlcyBhcmNoaXZlXQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGIwZWIxNWEyM2Q5Yzg3YjhhNDExMTRlMzZmODRiYmFhZGE2YTEyY2UKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgRnJpIEphbiA3IDEyOjIyOjAzIDIwMTEgKzAwMDAKLQotICAgIEVuc3VyZSBUQ1AgdGFibGUgaW5mb3JtYXRpb24gaXMgbG9hZGVkIGJlZm9yZSBjb3VudGluZyBjb25uZWN0aW9ucwotICAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBmNTEyZjgwZDdmZGQ3NmRkMDkyZTcwZWE4ZmMxNzAzYjAxOWU2MmMzCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIEZyaSBKYW4gNyAxMjoyMjowMyAyMDExICswMDAwCi0KLSAgICBFbnN1cmUgVENQIHRhYmxlIGluZm9ybWF0aW9uIGlzIGxvYWRlZCBiZWZvcmUgY291bnRpbmcgY29ubmVjdGlvbnMKLSAgICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZTVhMjE5MzdiY2ViMTdhNjEwY2I2MzhlNWY1ZmJkMWJiN2I3M2M0MgotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBGcmkgSmFuIDcgMTI6MjI6MDMgMjAxMSArMDAwMAotCi0gICAgRW5zdXJlIFRDUCB0YWJsZSBpbmZvcm1hdGlvbiBpcyBsb2FkZWQgYmVmb3JlIGNvdW50aW5nIGNvbm5lY3Rpb25zCi0gICAgW0Zyb20gRnJlZUJTRCBwYXRjaCBhcmNoaXZlXQotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDRmN2M1MmI1OGMyYjc5NTc4YTA3N2FkZmRiNjNlMjg3MmExMGVlMTEKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBKYW4gNiAxOTozNTowNiAyMDExICswMDAwCi0KLSAgICBGaXggZG9jdW1lbnRhdGlvbiBidWcgcG9pbnRlZCBvdXQgaW4gY3BhbiBidWcgIzUyNjE4Ci0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODA5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgZTNhNTlhZTU2NjliNDYxZTBiMTA3ZTdjMmU5ZmVjMjQxMGVmNzNhYwotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEphbiA2IDE5OjM1OjA2IDIwMTEgKzAwMDAKLQotICAgIEZpeCBkb2N1bWVudGF0aW9uIGJ1ZyBwb2ludGVkIG91dCBpbiBjcGFuIGJ1ZyAjNTI2MTgKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBjZmM5MmVjODQ1MDZiYzE2OTllZGVkNTU4ZjAzNWE5NDAwNWExYmM5Ci1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgSmFuIDYgMTk6MzU6MDYgMjAxMSArMDAwMAotCi0gICAgRml4IGRvY3VtZW50YXRpb24gYnVnIHBvaW50ZWQgb3V0IGluIGNwYW4gYnVnICM1MjYxOAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgwOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDcwZWE5YmI2MTAxMmE3NWJiNmE2MmE4Yzk1Yzg2MWM0ZDdhNmQwM2YKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEphbiA2IDE0OjExOjIyIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyOTc1MjU0OiBBdm9pZCBjYWxsYmFjayByZS11c2Ugb2YgY2xvc2VkIHNlc3Npb25zCi0gICAgCi0gICAgUW46IFNob3VsZCB0aGlzIGFsc28gYmUgYXBwbGllZCB3aGVuIG1haW4gc2Vzc2lvbiBpcyBOVUxMPwotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AxOTgwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDNjNTA3NTQzMTk2NjRkZGE4ODlmNmJmYjIxNjc5MmRiYzMwMDViNzYKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEphbiA2IDE0OjExOjIyIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyOTc1MjU0OiBBdm9pZCBjYWxsYmFjayByZS11c2Ugb2YgY2xvc2VkIHNlc3Npb25zCi0gICAgCi0gICAgUW46IFNob3VsZCB0aGlzIGFsc28gYmUgYXBwbGllZCB3aGVuIG1haW4gc2Vzc2lvbiBpcyBOVUxMPwotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTgwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGZiYmUyYzc1ODY4MTEwY2JiM2FhYWVmODA5ZmRkNTczMjI2ODQ5NTQKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEphbiA2IDE0OjExOjIyIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyOTc1MjU0OiBBdm9pZCBjYWxsYmFjayByZS11c2Ugb2YgY2xvc2VkIHNlc3Npb25zCi0gICAgCi0gICAgUW46IFNob3VsZCB0aGlzIGFsc28gYmUgYXBwbGllZCB3aGVuIG1haW4gc2Vzc2lvbiBpcyBOVUxMPwotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDk3YjBlOTE1ZGFiYmFlNGU5Yjg3OGQ5YTNjMGUwMTc2MWY0ZWQ5YjYKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEphbiA2IDEzOjIxOjM5IDIwMTEgKzAwMDAKLQotICAgIEZpeCBtaXNsZWFkaW5nIGluZGVudGF0aW9uCi0gICAgCi0gICAgUW46IFNob3VsZCB0aGlzIGNhbGwgJ3N1YmFnZW50X3N0YXJ0dXAnIHJhdGhlciB0aGFuICdhZ2VudHhfcmVvcGVuX3Nlc3Npb24nPwotICAgIFFuOiBXaHkgZG9lc24ndCB0aGlzIGF0dGVtcHQgdG8gcmUtb3BlbiB0aGUgc2Vzc2lvbiBpZiBpdCB3YXMgb3JpZ2luYWxseSBOVUxMPwotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AxOTgwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGI3ZGNmODdmYzVlOWVkNGZjNzhhM2RkYTBjNGYxNzI1NTczYjA0MzgKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEphbiA2IDEzOjIxOjM5IDIwMTEgKzAwMDAKLQotICAgIEZpeCBtaXNsZWFkaW5nIGluZGVudGF0aW9uCi0gICAgCi0gICAgUW46IFNob3VsZCB0aGlzIGNhbGwgJ3N1YmFnZW50X3N0YXJ0dXAnIHJhdGhlciB0aGFuICdhZ2VudHhfcmVvcGVuX3Nlc3Npb24nPwotICAgIFFuOiBXaHkgZG9lc24ndCB0aGlzIGF0dGVtcHQgdG8gcmUtb3BlbiB0aGUgc2Vzc2lvbiBpZiBpdCB3YXMgb3JpZ2luYWxseSBOVUxMPwotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTgwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGVjY2ViNTFkZmFmMjMwYzg5Y2RiMmNiMmQxMDQzOWUyZTBlMjQxYTYKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEphbiA2IDEzOjIxOjM5IDIwMTEgKzAwMDAKLQotICAgIEZpeCBtaXNsZWFkaW5nIGluZGVudGF0aW9uCi0gICAgCi0gICAgUW46IFNob3VsZCB0aGlzIGNhbGwgJ3N1YmFnZW50X3N0YXJ0dXAnIHJhdGhlciB0aGFuICdhZ2VudHhfcmVvcGVuX3Nlc3Npb24nPwotICAgIFFuOiBXaHkgZG9lc24ndCB0aGlzIGF0dGVtcHQgdG8gcmUtb3BlbiB0aGUgc2Vzc2lvbiBpZiBpdCB3YXMgb3JpZ2luYWxseSBOVUxMPwotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGU1NTA5OThjNDIxMWRhZmYzOTRhMmY3NzI1NzVmOWU0NjlkMTg1NGEKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVGh1IEphbiA2IDEyOjQ2OjE5IDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyOTQxODExOiBIYW5kbGUgc3VjY2Vzc2Z1bCByZXF1ZXN0cyB3aXRoIHJlcUlEIDAKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCA4NmZmNTM1ZTI3NjZiNWY1YWIyMzdlNzAwMmE3ZWMwNzg0ZTlmODA2Ci1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBKYW4gNiAxMjo0NjoxOSAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjk0MTgxMTogSGFuZGxlIHN1Y2Nlc3NmdWwgcmVxdWVzdHMgd2l0aCByZXFJRCAwCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5ODA2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYjQyMGUxYjY5YmYyMzEzYjZjZTc1Y2RlZTIwZDYyMjU4NjBhNGNiMQotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUaHUgSmFuIDYgMTI6NDY6MTkgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDI5NDE4MTE6IEhhbmRsZSBzdWNjZXNzZnVsIHJlcXVlc3RzIHdpdGggcmVxSUQgMAotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgwNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDQ4NTI1YTBlZjUzYTg1ZDFmMDI5NDIwNWQ0MWM5ZDkxNzlhMDA3ZGYKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFRodSBKYW4gNiAwOTozODo1MCAyMDExICswMDAwCi0KLSAgICBTcGVsbGluZyBmaXg6IEluaXRpYWx6aWVzIC0+IEluaXRpYWxpemVzLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTgwNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGFkZGEzNmRhNzc2NDg2ZDA3MmM0ZGNmOWVhYThlNTdkNzgzODRiYzIKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEphbiA1IDE2OjMxOjUwIDIwMTEgKzAwMDAKLQotICAgIFVzZSB0aGUgYXBwcm9wcmlhdGUgQVBJIGNhbGwgZm9yIHJlcG9ydGluZyBjb25maWcgZXJyb3JzLgotICAgICgiRG9uJ3QgYmUgc28gaW1wYXRpZW50LCBEYXZlLi4uLiIpCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5ODAyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNmZmOGYyMmZkN2I1N2NmMDk0NWQwZjE1YjA0MzNhNDc2YTY3ZDliZAotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSmFuIDUgMTY6MzE6NTAgMjAxMSArMDAwMAotCi0gICAgVXNlIHRoZSBhcHByb3ByaWF0ZSBBUEkgY2FsbCBmb3IgcmVwb3J0aW5nIGNvbmZpZyBlcnJvcnMuCi0gICAgKCJEb24ndCBiZSBzbyBpbXBhdGllbnQsIERhdmUuLi4uIikKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBjMTJhYjVlZGJkODc2NWQ2MzNmMzI4ZmY0NjhmYzFlOGRjZjZlMmEwCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBKYW4gNSAxNDowNjo1MiAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOiAzMTM0MzIzOiBGaXggY3Jhc2ggd2hlbiBjb21wYXJpbmcgaW52YWxpZCBPSURzCi0gICAgCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5ODAxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgYzkyZjI4NjA0ZDEzYmFmMmFiMGE2YjNkNzEwMDczMGQzMzk0OWYwZgotQXV0aG9yOiBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBXZWQgSmFuIDUgMTQ6MDY6NTIgMjAxMSArMDAwMAotCi0gICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMzEzNDMyMzogRml4IGNyYXNoIHdoZW4gY29tcGFyaW5nIGludmFsaWQgT0lEcwotICAgIAotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AxOTgwMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IDlhYjE1ZmM2ZTQyNmU1ZTA4YTMzNzRlYzNkYTdiZTQyODI3YmRjNTIKLUF1dGhvcjogRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgV2VkIEphbiA1IDE0OjA2OjUyIDIwMTEgKzAwMDAKLQotICAgIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6IDMxMzQzMjM6IEZpeCBjcmFzaCB3aGVuIGNvbXBhcmluZyBpbnZhbGlkIE9JRHMKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAwODk4NWI1OTE0NzFiOWI0NzkwOGJmYmI3ZWJjNjNhZDViNzRiMWUyCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBKYW4gNSAxNDowNDo1OSAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEJVR1M6IDMxNTEyNTQ6IEZpeCBjcmFzaCB3aXRoIGludmFsaWQgdHJhcGhhbmRsZSBkaXJlY3RpdmUKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk4MDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBmYmFjOGI3MjZkYmM5YTRkMGY3MzRjNmQ1ZDNiNzc2MmYyN2YyZWRmCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBKYW4gNSAxNDowNDo1OSAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEJVR1M6IDMxNTEyNTQ6IEZpeCBjcmFzaCB3aXRoIGludmFsaWQgdHJhcGhhbmRsZSBkaXJlY3RpdmUKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk4MDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAyZWYwMmVjMDMzYjkyYTAwMGU4MDFjYzM5NzAyOTgzZGY4N2VmNDEyCi1BdXRob3I6IERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFdlZCBKYW4gNSAxNDowNDo1OSAyMDExICswMDAwCi0KLSAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEJVR1M6IDMxNTEyNTQ6IEZpeCBjcmFzaCB3aXRoIGludmFsaWQgdHJhcGhhbmRsZSBkaXJlY3RpdmUKLSAgICAKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk4MDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCAxYjg2MjhhMmY1YTAwNmU2ZjMyYjEyMGQyMzM0Nzg4ZGY1ODAxMDM4Ci1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgSmFuIDQgMTg6MjQ6NTUgMjAxMSArMDAwMAotCi0gICAgQ29weXJpZ2h0IHVwZGF0ZSBmb3IgMjAxMQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTItcGF0Y2hlc0AxOTc5NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGJjOWJmMDgzOTVmOTg3ZDFkMzlkMTY1MWEyNTg2ZWUwNjcyMjcwODkKLUF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBKYW4gNCAxODoyNDo1NSAyMDExICswMDAwCi0KLSAgICBDb3B5cmlnaHQgdXBkYXRlIGZvciAyMDExCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5Nzk1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAotCi1jb21taXQgNTc0NTAyYTNjNzFmNWY5NzYwYzIwZTQyYzM4ZDNlOTY3MTZhYTdlYQotQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6ICAgVHVlIEphbiA0IDE4OjI0OjU1IDIwMTEgKzAwMDAKLQotICAgIENvcHlyaWdodCB1cGRhdGUgZm9yIDIwMTEKLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk3OTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBhN2U2NzU3ZGQ5MjE4ZGRjMGZiNDU5MWViNDk5OTk5OGU5YjBhZmNjCi1BdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgSmFuIDQgMTg6MjQ6NTUgMjAxMSArMDAwMAotCi0gICAgQ29weXJpZ2h0IHVwZGF0ZSBmb3IgMjAxMQotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTc5NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGRmZmQ2MjFhYjA1ZWUyYWQ0ZjE4OTI1NWFlZmQ0MmJmMmNiNWViNzAKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBKYW4gNCAxMjoxOToxMyAyMDExICswMDAwCi0KLSAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHRoZSBXaW4zMiBNSUItSUkgaW1wbGVtZW50YXRpb24gKGJhY2twb3J0ZWQgcjE5NzkwIGZyb20gdGhlIHRydW5rKS4KLSAgICAKLSAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk3OTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCi0KLWNvbW1pdCBjNGVjNTQwZjYzYzVlMTg0ZDk0N2I2ZWJhNTExNDgyNTdjNDE2Nzk2Ci1BdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotRGF0ZTogICBUdWUgSmFuIDQgMTI6MTc6NTEgMjAxMSArMDAwMAotCi0gICAgUmVtb3ZlZCB0d28gdW51c2VkIHZhcmlhYmxlcyBmcm9tIHRoZSBzY3RwLW1pYiBpbXBsZW1lbnRhdGlvbiAoYmFja3BvcnRlZCByMTk3ODAgZnJvbSB0aGUgdHJ1bmspLgotICAgIAotICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTc5MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKLQotY29tbWl0IGUyODY5OTZhNTgxMjQyYmVmZGYwZmNmZTM3ZDllNTAzNTM4ZDIwNGUKLUF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci1EYXRlOiAgIFR1ZSBKYW4gNCAxMjoxNToyNyAyMDExICswMDAwCi0KLSAgICBGaXhlZCBhIHJlY2VudGx5IGludHJvZHVjZWQgbWlzbWF0Y2ggYmV0d2VlbiBmb3JtYXQgc3BlY2lmaWNhdGlvbiBhbmQgYXJndW1lbnQgbGlzdCBpbiB0aGUgaXAtbWliIGltcGxlbWVudGF0aW9uIChiYWNrcG9ydGVkIHIxOTc3OSBmcm9tIHRoZSB0cnVuaykuCi0gICAgCi0gICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5NzkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorICAgIENIQU5HRVM6IHNubXBkOiBBdm9pZCB0aGF0IHNubXBkIGNyYXNoZXMgaWYgc3RhcnRlZCBvbiBhIHN5c3RlbSB3aXRoIGFub3RoZXIgT3BlblNTTCBsaWJyYXJ5IHZlcnNpb24gdGhhbiB0aGUgb25lIGl0IGhhcyBiZWVuIGJ1aWx0IHdpdGguCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotQ2hhbmdlczogVjUuNiAtPiBWNS42LjEKK0NoYW5nZXM6IFY1LjcucmMzIC0+IFY1LjcuMQogCi0yMDExLTAxLTAzIDIyOjI4ICBoYXJkYWtlcgorMjAxMS0wOS0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiAKLSAgICogTkVXUzoKKyAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCisgICAgICBkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjEKIAotICAgTkVXUyB1cGRhdGUKIAotMjAxMS0wMS0wMyAyMjoyNiAgaGFyZGFrZXIKKzIwMTEtMDktMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgogCi0gICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CisgICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xLnJjMwogCi0gICBDSEFOR0VTOiBVcGdyYWRlZCBEVExTIHN1cHBvcnQgZnJvbSBhbHBoYSB0byBmdWxsOyBtZW50aW9uIHRoYXQKLSAgIHRzbSBpcyBuZWVkZWQgZm9yIFRMUyB0b28KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotMjAxMS0wMS0wMyAyMjoyNCAgaGFyZGFrZXIKK0NoYW5nZXM6IFY1LjcucmMyIC0+IFY1LjcuMS5yYzMKIAotICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAotICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgorMjAxMS0wOS0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CiAKLSAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQorICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKKyAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMS5yYzMKIAotMjAxMC0xMi0yOSAwMTo0MSAgaGFyZGFrZXIKKworMjAxMS0wOS0yMiAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorCisgICAqIDogY29tbWl0IDA3ZjYxYTAyYTI0MDkwOTZlNWM5NjJjZDIxMTEyNjM5NmFkMDlkMmIgTWVyZ2U6IGVlMGQzYWQKKworIGJkYTMyNGIgQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgVGh1CisgU2VwIDIyIDEwOjM5OjU5IDIwMTEgKzAxMDAKKworMjAxMS0wOS0yMiAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorCisgICAqIDogY29tbWl0IGM1NWY2MDhmMTZmMTYwZjVlNzlkYzA1N2Y4ODc4ZGVmNDYyOTczZTEgQXV0aG9yOiBEYXZlCisKKyBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPiBEYXRlOiAgIFRodSBTZXAgMjIgMTA6MzU6MjQgMjAxMQorICswMTAwCisKKzIwMTEtMDktMjIgIFN0ZXZlIEZyaWVkbCA8c3RldmVAdW5peHdpei5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5jOiBDSEFOR0VTOiBzbm1wZDogMzQwOTY5MjoKKworIENhbGN1bGF0ZSBkaXNrIHBlcmNlbnRhZ2UgdXNhZ2UgdmlhIGZsb2F0aW5nLXBvaW50IGFyaXRobWV0aWMgdG8KKyBhdm9pZCBpbnRlZ2VyIGFyaXRobWV0aWMgZXJyb3JzLiAgKENvZGUgYmFzZWQgb24gcGF0Y2gsIHJhdGhlciB0aGFuCisgYXBwbGllZCB2ZXJiYXRpbSkKKworMjAxMS0wOS0yMiAgU3RldmUgRnJpZWRsIDxzdGV2ZUB1bml4d2l6Lm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmM6IENIQU5HRVM6IHNubXBkOiAzNDA5NjkyOgorCisgQ2FsY3VsYXRlIGRpc2sgcGVyY2VudGFnZSB1c2FnZSB2aWEgZmxvYXRpbmctcG9pbnQgYXJpdGhtZXRpYyB0bworIGF2b2lkIGludGVnZXIgb3ZlcmZsb3cgZXJyb3JzLiAgKENvZGUgYmFzZWQgb24gdGhlIHN1Ym1pdHRlZCBwYXRjaCwKKyByYXRoZXIgdGhhbiBhcHBsaWVkIHZlcmJhdGltKQorCisyMDExLTA5LTIyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBDaGFuZ2VMb2c6IFRoZSBvbmx5IGNoYW5nZSBiZXR3ZWVuIFY1LjcucmMxIGFuZCBWNS43LjEucmMyIGlzIHRoZQorCisgdmVyc2lvbiBudW1iZXIuIE1ha2UgdGhpcyBjbGVhciBpbiB0aGUgQ2hhbmdlTG9nIGZpbGUuCisKKzIwMTEtMDktMjEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIENoYW5nZUxvZzogY2hhbmdlbG9nIHVwZGF0ZQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0NoYW5nZXM6IFY1LjcucmMxIC0+IFY1LjcuMS5yYzIKKworMjAxMS0wOS0yMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCisgICAgICBkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjEucmMyCisKKworMjAxMS0wOS0wNCAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CisKKyAgICogOiBjb21taXQgNGQ2ZGVmZGFlNzJjMzViMTA4MDA3NjE4MDMxM2QyOTEwNTY4NDc1YiBNZXJnZTogZDNhNzU4YworCisgM2I3ZmRjNCBBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPiBEYXRlOiAgIFN1bgorIFNlcCA0IDE0OjQ2OjAyIDIwMTEgKzAyMDAKKworMjAxMS0wOS0wNCAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CisKKyAgICogOiBjb21taXQgYmJlMmMxOWEwMWVjZWMwMjRmNzQxZTJlNTQ3MDFhZTYyMTJmNGMzZSBBdXRob3I6IE1hZ251cworCisgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4gRGF0ZTogICBTdW4gU2VwIDQgMTQ6NDQ6MzggMjAxMQorICswMjAwCisKKzIwMTEtMDktMDQgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorCisgICAqIDogY29tbWl0IGQzYTc1OGNmMzAyNTRiODA3MDZhNDNmMTkxYzE1MjM4YjJjYjczYzkgTWVyZ2U6IGMxMDdjZTAKKworIDIyN2RiZDcgQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4gRGF0ZTogICBTdW4KKyBTZXAgNCAxNDowODozNSAyMDExICswMjAwCisKKzIwMTEtMDktMDQgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgorCisgICAqIDogY29tbWl0IDllZmE0NjdhOTcyYmI2ZTFjN2ZiZGFmMmUyNzQyOWQyOWY0YWI4OWUgQXV0aG9yOiBNYWdudXMKKworIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+IERhdGU6ICAgU3VuIFNlcCA0IDE0OjAwOjEyIDIwMTEKKyArMDIwMAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0NoYW5nZXM6IFY1LjcucHJlMiAtPiBWNS43LjEucmMxCisKKzIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIAorICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOiBtYWtlCisKKyBkZXBlbmQgZm9yIDUuNy4xLnJjMQorCisyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6IGZpeCBDKysgY29tbWVudAorCisKKzIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAorICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xLnJjMQorCisKKzIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IGMxMDdjZTA3ODQwOWQyNjViOWIyMThkNDlmMzgxNWI3OTVkYjFkYzMgTWVyZ2U6IGVhNGIzYjIKKworIDkxNWFhOGQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBUdWUgQXVnIDMwIDE5OjA3OjA3IDIwMTEgLTA3MDAKKworMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgNDIyYjA4MmE5NTkzY2E5YzY1YWFjNDQ5ZTZkMTI4YTllOTdlOTRmYiBBdXRob3I6IFdlcworCisgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUdWUgQXVnIDMwCisgMTk6MDY6NTYgMjAxMSAtMDcwMAorCisyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCBlYTRiM2IyM2YzNTA1ODNlNTYyNjMyOGI1MzY3ZTZjNjE3MjU1Zjk1IE1lcmdlOiBiY2YzOGI4CisKKyBiMzRkNWRjIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgVHVlIEF1ZyAzMCAxNjozODoyNSAyMDExIC0wNzAwCisKKzIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDcxYzBkNzY1MDQ5MzcxMDYzMWZhMDhkNWRjNGRhZDUwMWE5YWE3NzEgQXV0aG9yOiBXZXMKKworIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVHVlIEF1ZyAzMAorIDE2OjM3OjQxIDIwMTEgLTA3MDAKKworMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgYjEzZjRkODg4NmI2YTRlNzNiYzA3ZGYyYjkwZDFhNjExNWNmM2RmYyBNZXJnZTogZjdlMjFmMgorCisgNjRlOTc3OCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgorIFR1ZSBBdWcgMzAgMTE6MDk6MzAgMjAxMSAtMDcwMAorCisyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCBiNWQyYTQzZjk3YTU5ODU4Yzk0NGViYTIyOTBiNTliOTNjMjMwYTZhIE1lcmdlOiA4NmVmZWUyCisKKyBjZjRjZjdmIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgVHVlIEF1ZyAzMCAxMTowOToyOSAyMDExIC0wNzAwCisKKzIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTYtcGF0Y2hlcycgaW50bworCisgVjUtNi1wYXRjaGVzCisKKzIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYXV0by1kZXRlcm1pbmUgcGF0Y2ggYXJndW1lbnRzIGlmCisKKyBwb3NzaWJsZSBmb3IgbnNwYXRjaHRyeQorCisyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG1ha2UgaXQgc28gdGhlIGdpdCBjb21taXQgbGluZSBjYW4KKworIGJlIGN1dC9wYXN0ZSB3aXRob3V0IGxpbmVicmVha3MKKworMjAxMS0wOC0zMCAgUm9uYWxkIFdhaGwgPHJ3YS1jb0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzk0NTg2OiBmcm9tCisKKyByd2EtY286IGZpbGUgZGVzY3JpcHRvciBsZWFrIGluIHJlYWRfY29uZmlnICgrZml4KSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IGRlc2NyaWJlIHRoYXQgbnNyb2xsdXAgbmVlZHMgdG8gYmUgcnVuIG5vdy4KKworCisyMDExLTA4LTMwICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CisKKyAgICogOiBjb21taXQgMmI5MmEwYTFlM2EwNjE4YzUxNWViZDkwMjI3MWI5NWMwODkzMWFmYSBNZXJnZTogYTA4NjM0NworCisgODZlZmVlMiBBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4gRGF0ZTogICBUdWUKKyBBdWcgMzAgMTE6Mjg6MTQgMjAxMSArMDEwMAorCisyMDExLTA4LTMwICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jOiBBcHBhcmVudGx5IElSSVggaGFzIGEKKworIGRpZmZlcmVudCBBUEkgZm9yIHN0YXRmcworCisyMDExLTA4LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6IGRvbid0IHByb3ZpZGUgYSBmZWF0dXJlIHdoZW4geW91ciBhCisKKyBjaGlsZCBvZiBhbm90aGVyIGZlYXR1cmUKKworMjAxMS0wOC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNy1wYXRjaGVzJyBpbnRvCisKKyBWNS03LXBhdGNoZXMKKworMjAxMS0wOC0yOCAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CisKKyAgICogYXBwcy9NYWtlZmlsZS5pbjogVXNlIHRoZSBmZWF0dXJlIHRhcmdldCBpbnN0ZWFkIG9mIHRoZSB0YXJnZXQKKworIHdoZW4gYnVpbGRpbmcgdGhlIGZlYXR1cmUgc2V0CisKKzIwMTEtMDgtMjkgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaDogdGhlIGlyaXg2IGJ1aWxkIG9ubHkgZGVmaW5lcworCisgaXJpeDYsIG5vdCBpcml4CisKKzIwMTEtMDgtMjkgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiByZS1hZGQgc29ja2FkZHJfdW4uc3VuX3BhdGgKKworIGNvbmZpZ3VyZSBjaGVjayAobG9zdCBpbiBwcmV2aW91cyBjb21taXQpCisKKzIwMTEtMDgtMjggIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaDogCisKKyBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMgZG9lc24ndCBidWlsZCBvbiBJUklYIHlldAorCisyMDExLTA4LTI4ICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCBhMDg2MzQ3OWQ4MDk2MmM2NTI5NDdkZmRlZTExYmRkMTM2YzBlMDEzIE1lcmdlOiA1MjUwODkzCisKKyBmOTVhYTMxIEF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgU3VuIEF1ZyAyOCAyMzozNzoyNyAyMDExICswMjAwCisKKzIwMTEtMDgtMjggIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgCisgICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCisgICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogQ0hBTkdFUzogYnVpbGRpbmc6IGJ1aWxkIGZpeAorCisgZm9yIHN5c3RlbXMgbGFja2luZyBmaWVsZHMgbXNnX2NvbnRyb2wvbXNnX2ZsYWdzIGluIHN0cnVjdCBtc2doZHIKKyAoYmFja3BvcnQpCisKKzIwMTEtMDgtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzogYWRkZWQgcmVxdWlyZWQgZmVhdHVyZXMgZm9yCisKKyBtZmQgaGFuZGxpbmcKKworMjAxMS0wOC0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogLmdpdGlnbm9yZTogYWRkZWQgLmZ0IGFuZCAuZnQuMSBmb3IgZmVhdHVyZSBmaWxlcworCisKKzIwMTEtMDgtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6IG5vX3dyaXRlX3N1cHBvcnQgc3VwcG9ydGVkCisKKworMjAxMS0wOC0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOiBoYW5kbGUgbm8td3JpdGUtc3VwcG9ydCB3aXRoCisKKyBpZmRlZnMKKworMjAxMS0wOC0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgNTI1MDg5MzI3YWJhN2QwMWQ2MzNjNjM0YzZiNmYwNmRlNDJhY2JiOCBNZXJnZTogMWJiMjM0YQorCisgMDRmZDcxYSBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgorIFRodSBBdWcgMjUgMDY6NTc6MjEgMjAxMSAtMDcwMAorCisyMDExLTA4LTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCBlYThiZWQ3OWU4MWM0MmUzM2NiZjM3Y2E2ZjNjMDNjNTQ5OTg3YjIyIEF1dGhvcjogV2VzCisKKyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFRodSBBdWcgMjUKKyAwNjo1NjoyMiAyMDExIC0wNzAwCisKKzIwMTEtMDgtMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weTogdXNlID4+IHRvIHByaW50IHRvIHN0ZGVycgorCisKKzIwMTEtMDgtMjMgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtcmVtb3ZlOiBDSEFOR0VTOiBidWlsZDogRG8gbm90IGdlbmVyYXRlCisKKyBhbiBvdXRwdXQgZmlsZSBvbiBmYWlsdXJlIG1ha2Ugc3VwcG9zZXMgdGhhdCBubyBvdXRwdXQgaXMgZ2VuZXJhdGVkIGlmIHRoZSBjb21tYW5kIGZhaWxlZC4KKyBDaGFuZ2UgZmVhdHVyZS1yZW1vdmUgdG8gZm9sbG93IHRoYXQgcHJlc3VtcHRpb24uCisKKzIwMTEtMDgtMjEgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtcmVtb3ZlOiBDb3JyZWN0IHR5cG8KKworCisyMDExLTA4LTIzICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCAxYmIyMzRhNmNjMzZlNmE0ZWZiZTNmYjI5YzQ4MDIxMGRjMmI5YzEzIE1lcmdlOiAzNWE5OGMzCisKKyAxZjA4MmEzIEF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgVHVlIEF1ZyAyMyAyMzozODowNyAyMDExICswMjAwCisKKzIwMTEtMDgtMjMgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzOiBtYWtlIHN1cmUgdGhhdAorCisgX0tFUk5FTCBpcyBkZWZpbmVkIHRvIDEgc28gdGhhdCAiI2lmIF9LRVJORUwiIHdvcmtzIG9uIHN5c3RlbXMgdGhhdAorIG5lZWQgaXQgKGUuZy4gSVJJWCkKKworMjAxMS0wOC0yMyAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgMzVhOThjM2Q3YzVhM2M1ZGYzNTZhZGQ5ZThiODA4Mjg3ODk5YjY5YSBNZXJnZTogMWYzN2Y1NworCisgYTI3Zjc0NCBBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgorIFR1ZSBBdWcgMjMgMjM6MzA6MjcgMjAxMSArMDIwMAorCisyMDExLTA4LTIzICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCAyNmJiMjQ3MGMxMDZmODM0NDQyYTJhZGJjNzYxMWJmMTY2NTdmYmRmIEF1dGhvcjogVGhvbWFzCisKKyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFR1ZSBBdWcgMjMgMjM6MjI6NDQKKyAyMDExICswMjAwCisKKzIwMTEtMDgtMjIgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogYXV0b3JlY29uZgorCisKKzIwMTEtMDgtMjIgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsIAorICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAorICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IENIQU5HRVM6IGJ1aWxkaW5nOiBidWlsZCBmaXgKKworIGZvciBzeXN0ZW1zIGxhY2tpbmcgZmllbGQgbXNnX2ZsYWdzIGluIHN0cnVjdCBtc2doZHIgKGUuZy4gSVJJWCkKKworMjAxMS0wOC0yMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogY29uZmlndXJlOiBhdXRvcmVjb25mCisKKworMjAxMS0wOC0yMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogY29uZmlndXJlOiBhdXRvcmVjb25mCisKKworMjAxMS0wOC0yMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogY29uZmlndXJlOiBhdXRvcmVjb25mCisKKworMjAxMS0wOC0yMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgYjYyY2IwODY0ZjU3N2JhODU1NzNkMGQyNTBkMTJhMzkzODdjMDdiNCBBdXRob3I6IFRob21hcworCisgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBTdW4gQXVnIDIxIDAwOjU1OjMzCisgMjAxMSArMDIwMAorCisyMDExLTA4LTIxICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCA3MWI5MGI2ZjIxNzk0NGI0ZmZjMTgzNmU1MTYwZDQwZTMzYjQ0MjNkIEF1dGhvcjogVGhvbWFzCisKKyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFN1biBBdWcgMjEgMDA6NDA6MjgKKyAyMDExICswMjAwCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQ2hhbmdlczogVjUuNy5wcmUxIC0+IFY1LjcuMS5wcmUyCisKKzIwMTEtMDgtMTggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIAorICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOiBtYWtlCisKKyBkZXBlbmQgZm9yIDUuNy4xLnByZTIKKworMjAxMS0wOC0xOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCisgICAgICBkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjEucHJlMgorCisKKzIwMTEtMDgtMTggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDAzMDUzNDc5NjA0YmM4M2VmYmVhNTc5YjQ1NjJiMTgzMWNlYTFjYjYgTWVyZ2U6IGY3M2U2MzYKKworIGQ5NGRmMzkgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBUaHUgQXVnIDE4IDExOjU3OjQ2IDIwMTEgLTA3MDAKKworMjAxMS0wOC0xOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgMjhiNTQwNzA1MTQ3NTNlOGQ4YWJiNzE4YjIyNGQ2NTdhYjdhOGFiOCBBdXRob3I6IEdhcnJldHQKKworIENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFRodSBBdWcgMTgKKyAxMTo0OTo1NiAyMDExIC0wNzAwCisKKzIwMTEtMDgtMTggIFZsYWRpbWlyIEtvbmRyYXRpZXYgPHd1bGYyMDAxQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmM6IENIQU5HRVM6IGFnZW50OiBQQVRDSCAzMzg5MjI4OgorCisgZnJvbSB3dWxmMjAwMTogaW5jb21wbGV0ZSBjb21taXQgKHBhdGNoIDMzODY2MzM6IGZpeCBpbnRlZ2VyCisgb3ZlcmZsb3cpIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTE4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOiBQYXRjaCBmcm9tIENsYXVzIEtsZWluIG9uIC1jb2RlcnMgZm9yIGZpeGluZworCisgbWFuIHBhZ2UgdHlwb3MKKworMjAxMS0wOC0xOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBjaGFuZ2VkIGNsaWVudGFkZHIgc28gaXQgcmVnaXN0ZXJzIGFzIHByZS1taWIKKworIHRvIGJlIHBpY2tlZCB1cCBiZWZvcmUgdGhlIHRyYW5zcG9ydHMgZ2V0IGNyZWF0ZWQKKworMjAxMS0wOC0xNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgYzAyMTMxZTViMzVkMjk2NzU1YmFlYzk5YmQzNjMyMDVhODYzMDdkZCBBdXRob3I6IFdlcworCisgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBXZWQgQXVnIDE3CisgMDk6MzQ6MDAgMjAxMSAtMDcwMAorCisyMDExLTA4LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBzbm1wbGliL3N5c3RlbS5jOiBGaXggdGhlIGxvZyBtZXNzYWdlIHRoYXQgcmVwb3J0cyB0aGF0CisKKyBnZXRob3N0YnlhZGRyKCkgaXMgbWlzc2luZworCisyMDExLTA4LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCAxODJlMWRjMGMzZWFjZmE0ZTljY2RiMjg2MDBmZjBmMjM3MDIxMWFlIE1lcmdlOiA0OTliNzk2CisKKyA1MTdiNmIwIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgV2VkIEF1ZworIDE3IDE4OjA5OjMwIDIwMTEgKzAyMDAKKworMjAxMS0wOC0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogOiBjb21taXQgNjU4MDU1NmNjN2JkODMzYWY3MzFiNjJjZTFlZDIwMTc1NjRmZTdlYiBBdXRob3I6IEJhcnQgVmFuCisKKyBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBXZWQgQXVnIDE3IDE4OjA4OjAxIDIwMTEgKzAyMDAKKworMjAxMS0wOC0xNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogOiBjb21taXQgNDk5Yjc5NmNiZDc4MDY1YzMzNTQ3NzkxMzZiZDNkOWQxZjU0OGE1OCBNZXJnZTogMDQxOGZmMAorCisgYTljYjI2NyBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFN1biBBdWcKKyAxNCAwODowMjozOCAyMDExICswMjAwCisKKzIwMTEtMDgtMTQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDNjYjNmMWVkZTM4OGQ4NGUzOTJlMWQ4MTVkNTk5NGE0YmYwZjEwZjkgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU3VuIEF1ZyAxNCAwNzo1OToyNSAyMDExICswMjAwCisKKzIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHBlcmwvT0lEL09JRC54cywgcGVybC9TTk1QL1NOTVAueHMsIHBlcmwvYWdlbnQvYWdlbnQueHM6IFdpbmRvd3M6CisKKyBNYWtlIHRoZSBQZXJsIGFnZW50IG1vZHVsZSB3b3JrIGFnYWluIHdpdGggdGhlIG9yaWdpbmFsIFNOTVBfRlJFRSgpCisgZGVmaW5pdGlvbi4KKworMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogOiBjb21taXQgMDQxOGZmMGNkYTIxNDExYTQ3ZmE4OTc4YzNlMGQwNDNhMTlkMjRiNiBNZXJnZTogMjZiMGFhMworCisgM2M3M2I0OCBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFNhdCBBdWcKKyAxMyAxODo0MjowNSAyMDExICswMjAwCisKKzIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOiBSZXZlcnQgdGhlIHR3byBtb3N0IHJlY2VudAorCisgU05NUF9GUkVFKCkgY2hhbmdlcyAoY29tbWl0cworIDQ3YzhlZjFiODljNmNjYjQyNDdkOTYzMzQ3NzkyNTkwOGM2OGMxYTUgYW5kCisgN2Y0MmQwZDkzMzIwNDg0MTUyMjcxNDI3Y2M5ODA4Y2JkYTQ5YmJkMCkuCisKKzIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDI2YjBhYTMwMTBmYTE4MmI2MDM5YThjMmNhZDhjY2I0NTcxNjUyZGUgTWVyZ2U6IDJmM2Q2MDcKKworIDBjOGUxYTkgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTYXQgQXVnCisgMTMgMTE6NDM6MjAgMjAxMSArMDIwMAorCisyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCAzZTUwYzNlMDBlOWYzMjFmYjcwOGJjNTc5ZWI0ZGMxYTBmMWU3YzRkIEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFNhdCBBdWcgMTMgMTE6MzE6NDAgMjAxMSArMDIwMAorCisyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCAyZjNkNjA3OWRjMzZhYWQ5NTU5ZDkxYzVjMzI0ZTJjZTUzNTU3M2RkIE1lcmdlOiBlMzJhYTk3CisKKyBmZjE3MzRkIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU2F0IEF1ZworIDEzIDA5OjA4OjA2IDIwMTEgKzAyMDAKKworMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogOiBjb21taXQgZTE0N2U0Yjk2NzU1MjA3ZGUxY2UzMDk5MGQ2N2I0YjdjNzZkZDQ4MyBBdXRob3I6IEJhcnQgVmFuCisKKyBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTYXQgQXVnIDEzIDA4OjM5OjE0IDIwMTEgKzAyMDAKKworMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogd2luMzIvYnVpbGQucGw6IENIQU5HRVM6IFdpbmRvd3M6IGJ1aWxkaW5nIChidWlsZC5iYXQpOiBJbnN0YWxsCisKKyBuZXRzbm1wLmRsbCBiZWZvcmUgcnVubmluZyB0aGUgUGVybCByZWdyZXNzaW9uIHRlc3RzIHN1Y2ggdGhhdCB0aGUKKyByZWdyZXNzaW9uIHRlc3RzIGFyZSBydW4gd2l0aCB0aGUgY29ycmVjdCB2ZXJzaW9uIG9mIG5ldHNubXAuZGxsLgorCisyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiB3aW4zMi9NYWtlZmlsZS5pbjogQ0hBTkdFUzogV2luZG93czogcGVybCAoYnVpbGQuYmF0KTogV2hlbgorCisgaW5zdGFsbGluZyBkZXZlbG9wbWVudCBmaWxlcywgaW5zdGFsbCB0aGUgUERCIGZpbGVzIHRvby4KKworMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogIHBlcmwvU05NUC90L2FzeW5jLnQsIHBlcmwvU05NUC90L2NvbmYudCwgcGVybC9TTk1QL3QvbWliLnQsIAorICAgICAgcGVybC9hZ2VudC90ZXN0LnBsOiBDSEFOR0VTOiB0ZXN0aW5nOiBGaXggUGVybCByZWdyZXNzaW9uIHRlc3QKKworIGZhaWx1cmVzIEFsbCBQZXJsIHJlZ3Jlc3Npb24gdGVzdHMgcGFzcyBub3cgb24gTGludXggYW5kIG9uIFdpbmRvd3MgKE1TVkMpLgorCisyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBwZXJsL1NOTVAvdC9hc3luYy50LCBwZXJsL1NOTVAvdC9idWxrd2Fsay50OiBDSEFOR0VTOiB0ZXN0aW5nOgorCisgUGVybCByZWdyZXNzaW9uIHRlc3RzOiBEb24ndCBmYWlsIHNraXBwZWQgdGVzdHMuCisKKzIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54czogQ0hBTkdFUzogcGVybDogQWRkCisKKyBTTk1QOjpnZXRlbnYoKSBhbmQgU05NUDo6c2V0ZW52KCkuCisKKzIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6IENIQU5HRVM6CisKKyBzbm1wbGliOiBBZGQgbmV0c25tcF9zZXRlbnYoKS4KKworMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogbG9jYWwvcGFzc19wZXJzaXN0dGVzdDogbG9jYWwvcGFzc19wZXJzaXN0dGVzdDogZG9jdW1lbnQgaG93IHRvCisKKyB1c2Ugb24gV2luZG93cworCisyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0OiBTZXQgZXhlY3V0ZSBmbGFnIG9uIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3QKKworIHN1Y2ggdGhhdCB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoYXQgZmlsZSB3b3JrCisKKzIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IEZpeCBhIHN1cHByZXNzaW9uIHBhdHRlcm4KKworCisyMDExLTA4LTEyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCBlMzJhYTk3NzQyMjMyY2VkM2E3MmY4Yjg0NWFjZTVjZTNkNTNiOGRmIE1lcmdlOiA0YWRmZWM4CisKKyA4NmZiZDMzIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgRnJpIEF1ZyAxMiAwOToxMToxNCAyMDExIC0wNzAwCisKKzIwMTEtMDgtMTIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IGE3M2ViNDBlYzI2M2EwZmRmNTNhNzRlNzIwZGRmNDFjNGE3ZWUzZDQgTWVyZ2U6IDc2OTA4OTQKKworIDI5NDBlZTMgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBGcmkgQXVnIDEyIDA5OjExOjEzIDIwMTEgLTA3MDAKKworMjAxMS0wOC0xMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgMWYwYTkyOGEyOTEzY2ZhN2Y1Y2VhYWY0Njk2YzY5ZmJkYzY4NzYyMSBBdXRob3I6IFdlcworCisgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBGcmkgQXVnIDEyCisgMDk6MDk6MTEgMjAxMSAtMDcwMAorCisyMDExLTA4LTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCA0YWRmZWM4MTIxNmY2YzViZjI1YzlhYzZiMmI3NDc4ZDFiZThlODQyIE1lcmdlOiAyODFiODY5CisKKyAyOTQwZWUzIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZworIDExIDE4OjU3OjI5IDIwMTEgKzAyMDAKKworMjAxMS0wOC0xMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogOiBjb21taXQgMWUxMDAwYTg4MTU5MjFiNWVjMmU3OTk3YjUzNTkyYTU0NGIzZGZjMiBBdXRob3I6IEJhcnQgVmFuCisKKyBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnIDExIDE1OjQ2OjMyIDIwMTEgKzAyMDAKKworMjAxMS0wOC0xMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogOiBjb21taXQgMjgxYjg2OTYxYjEwMjY2ZGRmMzg4Mzk0MmQ0ZGMzYjZiOThkMzIyNyBNZXJnZTogZDhkMjI1YworCisgZjE4MTA5OSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcKKyAxMSAxODo0NjowNiAyMDExICswMjAwCisKKzIwMTEtMDgtMTEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogTWVyZ2UgVjUtNC1wYXRjaGVzLgorCisKKzIwMTEtMDgtMTAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYzogZG9uJ3QgYXNzZXJ0IG9uIGEgZG91YmxlCisKKyBpbml0OyBqdXN0IGRvbid0IGRvIGl0IHR3aWNlCisKKzIwMTEtMDgtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IGQ4ZDIyNWNhMzRhOGYyMjc1MjE1M2FjYjc5NDRmOTQzNWY1NjRkMmMgTWVyZ2U6IDA2YjQxODYKKworIDQ3YzhlZjEgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBXZWQgQXVnCisgMTAgMTg6MDU6MjEgMjAxMSArMDIwMAorCisyMDExLTA4LTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDogU05NUF9GUkVFKCk6IGNhc3QgYXJndW1lbnQgdG8KKworICh2b2lkICopIGJlZm9yZSBwYXNzaW5nIGl0IHRvIG5ldHNubXBfZnJlZSgpCisKKzIwMTEtMDgtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDA2YjQxODY1ZWMzMDJjMzkzMWIxMDgzZDNmZGU4OWY5MzQ1ZWMwNmYgTWVyZ2U6IDExNDI2ZmIKKworIGE0ZjZhYzcgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBUdWUgQXVnIDkgMDY6NDQ6NDEgMjAxMSAtMDcwMAorCisyMDExLTA4LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCAxMTQyNmZiM2M2ZjMyNzgyMGI5YmI4NmE3NmVjYzllMmMzN2U3OTM0IE1lcmdlOiAwMzQ0ZGY5CisKKyA5YmYwNjgxIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgVHVlIEF1ZyA5IDA2OjQ0OjExIDIwMTEgLTA3MDAKKworMjAxMS0wOC0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNC1wYXRjaGVzJyBpbnRvCisKKyBWNS00LXBhdGNoZXMKKworMjAxMS0wOC0wOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogOiBjb21taXQgOWJmMDY4MTIxOGVkZjQzY2RiNWZjNjhmMTcyMTIzYmM0YTJkMDE4OCBNZXJnZTogZjlkYjYxMQorCisgY2NiMGViNiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBBdWcKKyA5IDA4OjE5OjMzIDIwMTEgKzAyMDAKKworMjAxMS0wOC0wOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogOiBjb21taXQgZGU3ZTM0OGVjZTAzZDIzODBjMmE4ODA2ZWJiYWQ1ZDliNTQ4NzY4MiBNZXJnZTogZDUzOGJjYgorCisgY2NiMGViNiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBBdWcKKyA5IDA4OjA3OjIyIDIwMTEgKzAyMDAKKworMjAxMS0wOC0wOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogOiBjb21taXQgMDIyMDM5MmQ4OTlhOWNhYjcwMWY3NGFmMTIwMzBiYjFkNGNjNWUyZSBBdXRob3I6IEJhcnQgVmFuCisKKyBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgSnVsIDEgMTM6MDI6MTUgMjAxMSArMDIwMAorCisyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBDSEFOR0VTLCBORVdTOiB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjEucHJlMQorCisKKzIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xLnByZTEKKworCisyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9zbm1wZC5jOiBmaXggQysrIGNvbW1lbnRzCisKKworMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvc25tcGQuYzogZml4IEMrKyBjb21tZW50cworCisKKzIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L3NubXBkLmM6IGZpeCBDKysgY29tbWVudHMKKworCisyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9zbm1wZC5jOiBmaXggQysrIGNvbW1lbnRzCisKKworMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCisgICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwKKyAgICAgICBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKKyAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIAorICAgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIAorICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06IFZlcnNpb24gbnVtYmVyIHVwZGF0ZToKKworIDUuNy4xLnByZTEKKworMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogTWFrZWZpbGUudG9wOiB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjEucHJlMQorCisKKzIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IGNmNGNjZTRjMTg5Y2Y0N2Y0YzQ4OWRiNDNiN2ZhNTEwZjg5MDZhMWEgTWVyZ2U6IGRmOTFhOWYKKworIDkzZTk3ZGMgQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgTW9uCisgQXVnIDggMjI6MTU6MjggMjAxMSArMDEwMAorCisyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CisKKyAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNi1wYXRjaGVzJyBpbnRvCisKKyBWNS02LXBhdGNoZXMKKworMjAxMS0wOC0wOCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorCisgICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTQtcGF0Y2hlcycgaW50bworCisgVjUtNC1wYXRjaGVzCisKKzIwMTEtMDgtMDggIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KKworICAgKiAgd2luMzIvTWFrZWZpbGUtYXBwcy5pbiwgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCAKKyAgICAgIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sIAorICAgICAgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIAorICAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCAKKyAgICAgIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46IERlZmluZQorCisgX0JJTkRfVE9fQ1VSUkVOVF9WQ0xJQlNfVkVSU0lPTiB0b2tlbiAoYXMgcGVyIEFsZXgnIGJ1aWxkCisgaW5zdHJ1Y3Rpb25zKQorCisyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CisKKyAgICogIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCAKKyAgICAgIHdpbjMyL2xpYmhlbHBlcnMvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwgCisgICAgICB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgCisgICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIAorICAgICAgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjogRGVmaW5lCisKKyBfQklORF9UT19DVVJSRU5UX1ZDTElCU19WRVJTSU9OIHRva2VuIChhcyBwZXIgQWxleCcgYnVpbGQKKyBpbnN0cnVjdGlvbnMpCisKKzIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTQtcGF0Y2hlcycgaW50bworCisgVjUtNC1wYXRjaGVzCisKKzIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IGRmMTZkYzIyMjFlOTkzZGQzYzY2NjUwZDVlODcyNTc3ZmZlNmMwMWIgTWVyZ2U6IDcxNGJjODIKKworIDhlNWEyOGQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBNb24gQXVnIDggMTM6NTY6NDMgMjAxMSAtMDcwMAorCisyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCBmZmEwNWIwNTFhYzNlMmIxOTcxOTVhOTk4OWNjN2E5MWZlOGQ5MjgyIEF1dGhvcjogV2VzCisKKyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIE1vbiBBdWcgOCAxMzo1NTozOAorIDIwMTEgLTA3MDAKKworMjAxMS0wOC0wOCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorCisgICAqIDogY29tbWl0IDcxNGJjODJmYTAxZTIxYTM2NTU4MjQ5NjNmYTU0ZTliODA0MmZmYjAgTWVyZ2U6IDZmZThmZTUKKworIDNlZjFkYjUgQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgTW9uCisgQXVnIDggMjE6MjE6NDYgMjAxMSArMDEwMAorCisyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CisKKyAgICogOiBjb21taXQgYjQ1MTYwN2RjYTAxNWMxMTFlOTZmZGZlYjJkZGIwNjYxZmI0ZjcyNCBBdXRob3I6IERhdmUKKworIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgTW9uIEF1ZyA4IDIxOjIwOjMyIDIwMTEKKyArMDEwMAorCisyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCA2ZmU4ZmU1Mjk0YTQ1YmM3ZTRlYTM3NTFhMWFkN2FhNDdiNWNhYmIyIE1lcmdlOiAzNjRmOGZmCisKKyBmNjlhYmUzIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZworIDggMjI6MDI6MzggMjAxMSArMDIwMAorCisyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCBjOTQ4MTMwNDRhNGM0YTYwOGU5OGU4MDIyMzA3NWM2ZmFmMDRlZTExIEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcgOCAyMTo1NjoxNSAyMDExICswMjAwCisKKzIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDM2NGY4ZmZhZWI5MGI0ZWIwMTY1ZmM4NTU2ODhjZDA2MjY2MzI3OTQgTWVyZ2U6IDMyODcyOTUKKworIDdhYmI5MjYgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBNb24gQXVnIDggMTE6MjQ6MjYgMjAxMSAtMDcwMAorCisyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS02LXBhdGNoZXMnIGludG8KKworIFY1LTYtcGF0Y2hlcworCisyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGRpc3BsYXkgdGhlIGJyYW5jaCB3ZSdsbCBjb21taXQgdG8KKworCisyMDExLTA4LTA4ICBWbGFkaW1pciBLb25kcmF0aWV2IDx3dWxmMjAwMUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzM4NjYzMzoKKworIGZyb20gd3VsZjIwMDE6IGZpeCBpbnRlZ2VyIG92ZXJmbG93IGluIGRpc2sgcGVyY2VudCBjYWxjdWxhdGlvbnMgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKzIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDg0YTc3NWQwNTU3ZmVhOTc1NzBlNDE3MTVhMzE2NDk3MGI0YzAzYTIgTWVyZ2U6IDZmZmYxYzEKKworIGQzNzNjNGYgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnCisgOCAyMDoxMjozMiAyMDExICswMjAwCisKKzIwMTEtMDgtMDggIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvYWdlbnRfdHJhcC5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzg3MTM5OiBmcm9tCisKKyB5YWJlcmF1bmV5YTogQXZvaWQgc2VnZmF1bHQgaWYgdHJhcHNlc3MgdHJhbnNwb3J0IGVsZW1lbnQgY2FudCBiZQorIHBhcnNlZCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBuc3NmcGF0Y2hhcHBseTogc3BsaXQgdGhlCisKKyBkaXNwbGF5ZWQgZ2l0IGNvbW1pdCBjb21tYW5kIGludG8gbXVsdGlwbGUgc2VnbWVudHMKKworMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMzODY5NjE6CisKKyBNYWtlIFNOTVAgR0VUIHdvcmsgaW4gYW4gQWdlbnRYIHN1YmFnZW50IGlmIHdyaXRlIHN1cHBvcnQgaXMKKyBkaXNhYmxlZCB2aWEgTkVUU05NUF9OT19XUklURV9TVVBQT1JUIChNYXJrIFJ1c2spLgorCisyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBzbm1wbGliL21pYi5jOiBDSEFOR0VTOiBzbm1wbGliOiBGaXggYSBjcmFzaCB0aGF0IGNvdWxkIGJlCisKKyB0cmlnZ2VyZWQgYnkgY2FsbGluZyBfbWliaW5kZXhfYWRkKCkgd2l0aCB0aGUgc2Vjb25kIGFyZ3VtZW50IG5vdAorIGVxdWFsIHRvIC0xLgorCisyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCA2ZmZmMWMxYWU1MWIwNmM5ZDgwZmFmMTUzNzNhOTYzZDE3M2YxNGU4IE1lcmdlOiA4MzdjNTJlCisKKyA4Y2M5MDA0IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgTW9uIEF1ZyA4IDEwOjU4OjU5IDIwMTEgLTA3MDAKKworMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgOGNhN2ZmMWU2OTJjYWVjNDE4NmI3ODhjOWFlMmQyN2JlMjEzMjkwZiBBdXRob3I6IFdlcworCisgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBNb24gQXVnIDggMTA6MzM6NTYKKyAyMDExIC0wNzAwCisKKzIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTQtcGF0Y2hlcycgaW50bworCisgVjUtNC1wYXRjaGVzCisKKzIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IGI4ZjUyOWNiYTI3YzAxMTRiNGNiNzM0MGNmZDQ0OTUwNGZhMDc1MDYgTWVyZ2U6IDA4MjJmMmQKKworIDU1NmU5MzggQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBNb24gQXVnIDggMTA6MDU6MzYgMjAxMSAtMDcwMAorCisyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGZpeCBmdW5jdGlvbiBuYW1lIHR5cG8KKworCisyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCAyOTg4MmEwNzhhOTU5YTBmNzhiMDNlMDE5NjhmMWQxN2I3ZjZhMjk5IE1lcmdlOiA1ZTliZDJmCisKKyAwNDA5YzBhIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgTW9uIEF1ZyA4IDEwOjAzOjM0IDIwMTEgLTA3MDAKKworMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBtYW51YWwgbWVyZ2Ugb2YgcHVsbC9wdXNoCisKKworMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBtYWtlIG5zcHVsbC9uc3B1c2ggY2hlY2sgZm9yIGEKKworIGNsZWFuIHJlcG8KKworMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBuZXcgZnVuY3Rpb24gIm5zbWFrZWFsbCIgdG8gdGVzdAorCisgYnVpbGRpbmcgb24gZXZlcnkgYnJhbmNoCisKKzIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogZGVmYXVsdCB0byBtZXJnZQorCisKKzIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTctcGF0Y2hlcycgaW50bworCisgVjUtNy1wYXRjaGVzCisKKzIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOiBDSEFOR0VTOiBXaW5kb3dzOiBBdm9pZCB0aGF0IGlmCisKKyB0aGUgTmV0LVNOTVAgUGVybCBtb2R1bGVzIGhhdmUgYmVlbiBidWlsdCB3aXRoIGFub3RoZXIgdmVyc2lvbiBvZgorIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIHRoYW4gQWN0aXZlUGVybCB0aGF0IHVzaW5nIG9uZSBvZiB0aGVzZSBQZXJsCisgbW9kdWxlcyB0cmlnZ2VycyBhICJGcmVlIHRvIHdyb25nIHBvb2wiIGNyYXNoLiBUaGlzIHJlZ3Jlc3Npb24gd2FzCisgY2F1c2VkIGJ5IGNvbW1pdCAzYjE0YzU5Y2Y4Mjc4ZDQxMDIwN2ZmNDJkZWJkYTI2MzY0MjZhNDY4ICh0aGUKKyBuZXRzbm1wX2ZyZWUoKSBpbnRvIFNOTVBfRlJFRSgpIGNoYW5nZXMgaW4gdGhlICoueHMgZmlsZXMpLgorCisyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCBlMTA5NTM5OTMwNzAzY2IzMDUyZDUyNDFiMThhYzZmYzA2MmZhYWNhIE1lcmdlOiAwYzliNmNiCisKKyBlNDZiMTcwIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZworIDggMTg6MzQ6MTEgMjAxMSArMDIwMAorCisyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBzbm1wbGliL21pYi5jOiBDSEFOR0VTOiBzbm1wbGliOiBGaXggYSBjcmFzaCB0aGF0IGNvdWxkIGJlCisKKyB0cmlnZ2VyZWQgYnkgY2FsbGluZyBfbWliaW5kZXhfYWRkKCkgd2l0aCB0aGUgc2Vjb25kIGFyZ3VtZW50IG5vdAorIGVxdWFsIHRvIC0xLgorCisyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCA3ZjQyZDBkOTMzMjA0ODQxNTIyNzE0MjdjYzk4MDhjYmRhNDliYmQwIEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcgOCAwOTo1MDo1MSAyMDExICswMjAwCisKKzIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDBjOWI2Y2JlOWRiZTJlYzUyMTdhOTViNjc4MWZkN2RjMWY2ZWJkYTcgTWVyZ2U6IGZhNmNlZjUKKworIDk2MzMyMGYgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnCisgOCAxODoxNDozNiAyMDExICswMjAwCisKKzIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IGEzYjg2NTRhMjMyYzU2M2JjOTdjYzk5MjVjZDk4NTkwYTMwYzViYzUgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZyA4IDE3OjI0OjE4IDIwMTEgKzAyMDAKKworMjAxMS0wOC0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogOiBjb21taXQgZmE2Y2VmNWNhOTFkZjNhMGIwMzQ1NWI2ODU1OWQyYmVlMjQ4MTAxYyBNZXJnZTogZjVmZTUzNgorCisgOGFkZDBkYSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFN1biBBdWcKKyA3IDEwOjE4OjU0IDIwMTEgKzAyMDAKKworMjAxMS0wOC0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogOiBjb21taXQgYTBkZDNjYWYyNTkyNmU0MzQ2NTcxOGJmNDE3YTQ2NGMyZmIzNjM2NiBBdXRob3I6IEJhcnQgVmFuCisKKyBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTdW4gQXVnIDcgMTA6MTc6MDEgMjAxMSArMDIwMAorCisyMDExLTA4LTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiAzMiBpcyB0b28gbGltaXRlZCBmb3IKKworIGJpZ2dlciB0YWJsZXM7IGluY3JlYXNlIHRoZSBtYXggbXNnIGNvdW50IHRvIDEyOAorCisyMDExLTA4LTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG1ha2Ugcm9sbHVwIGFuZCBzeW5jIHN1cHBvcnQKKworIC0tcmViYXNlIGFuZCBjaGFuZ2UgdGhlIGRlZmF1bHQgYmFjayB0byBtZXJnZQorCisyMDExLTA4LTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS00LXBhdGNoZXMnIGludG8KKworIFY1LTQtcGF0Y2hlcworCisyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBSRUFETUUud2luMzI6IENIQU5HRVM6IFdpbjMyOiBEb2N1bWVudGVkIGhvdyB0byB1c2UgYnVpbGQuYmF0IHdpdGgKKworIE9wZW5TU0wgZW5hYmxlZAorCisyMDExLTA3LTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBSRUFETUUud2luMzI6IENIQU5HRVM6IFdpbmRvd3M6IFJlbW92ZSBvdXRkYXRlZCBpbnN0cnVjdGlvbnMgYWJvdXQKKworIGVkaXRpbmcgd2luMzJcbGlic25tcF9kbGxcbGlic25tcC5kZWYgZnJvbSBSRUFETUUud2luMzIKKworMjAxMS0wNy0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogUkVBRE1FLndpbjMyOiBDSEFOR0VTOiBXaW4zMjogRG9jdW1lbnQgaG93IHRvIGJ1aWxkIDY0LWJpdAorCisgZXhlY3V0YWJsZXMgZm9yIHRoZSB4NjQvYW1kNjQgYXJjaGl0ZWN0dXJlCisKKzIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IGY1ZmU1MzZlOGZkNmM0OGZlMjQzZGVjZDMxZmFjOWNmMWM5MmY0Y2MgTWVyZ2U6IDc4NTBlYTEKKworIDgwOTI4YTggQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCisgNSAxNToxMzoyNyAyMDExICswMjAwCisKKzIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDgwOTI4YTg5MDljZmFiMzdmMDFiMzlhMDcxYTNlOGFkODU5NTYyMjIgTWVyZ2U6IGYxNmEwOTQKKworIDBkYmM4NjkgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCisgNSAxMzo1NzozMCAyMDExICswMjAwCisKKzIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDBkYmM4NjlmZWMwN2Q4ZTkwZGJkMWM5NTQ5M2VlN2NiYzYyM2M5NWMgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZyA1IDEyOjQwOjMxIDIwMTEgKzAyMDAKKworMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogQWRkCisKKyBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5kZWYgYW5kIHBlcmwvU05NUC90CisKKzIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDg2YzFlMmI5Njc5ZmVjMmNkNzk5YmE3NjAwNWMzZDYwZTlkNDc2MzQgTWVyZ2U6IGJjZDg2MzUKKworIGYxNmEwOTQgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCisgNSAxMjoyMDo1MCAyMDExICswMjAwCisKKzIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDJmOGQ0ZjU3OTZjYmMxYzdlOTY3YWNkYWE4MDE5YjI0ZjE1MjBhMzYgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZyA1IDEyOjAyOjUxIDIwMTEgKzAyMDAKKworMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogc25tcGxpYi9wYXJzZS5jOiBVbmJyZWFrIHRoZSBWNS00LXBhdGNoZXMgLSByZXZlcnQgY29tbWl0CisKKyBkMmM0NzY4YmQyZWZiNDg2NjQ0MzRhODMxNDI1YzJkZGE4NWQ3MTMzIChDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSAorIDMzNjIyMzM6IGZyb20geWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlCisgbm9pc2UpLgorCisyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oOiAKKworIFVuYnJlYWsgdGhlIFY1LTQtcGF0Y2hlcyBicmFuY2ggLSB3YXMgYnJva2VuIGJ5IGNvbW1pdAorIGJmNzE3OGIwYjIyNTg3ZDQzZDFhODBjMjY5Y2QyMTZiZDU5MzAyMTQgKGFnZW50OiBjaGFuZ2UgdHlwZSBvZgorIHNubXBfZW5hYmxlYXV0aGVudHJhcHMgdG8gbG9uZykKKworMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaDogVW5icmVhayB0aGUgVjUtNC1wYXRjaGVzCisKKyBicmFuY2ggLSB3YXMgYnJva2VuIGJ5IGNvbW1pdAorIDBlNjg0MmZlMDgwY2VjODUzYjA4Y2QyMzIzMDE1YWJhYmMzODFjZTEgKENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0gKKyAzMzgzNDQxOiBmcm9tIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YKKyBmcmVlZCBtZW1vcnkpLgorCisyMDExLTA4LTA1ICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBORVdTOiBtaW5vciBORVdTIHBvbGlzaAorCisKKzIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IGJjZDg2MzUwNzEzODIyOTYzZDM3NmVmZjU4MmE5MmY0M2U0MjZkNmMgTWVyZ2U6IDljODEwYTMKKworIDdhMjBmNzEgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCisgNSAxMDoyODo1NSAyMDExICswMjAwCisKKzIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDNhYTk0OWZiZGZjMWE5NGE4MzQwYWQ4YmFmOGIzMTQ3NTZhMGJiOWQgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZyA1IDEwOjI2OjE1IDIwMTEgKzAyMDAKKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgOWM4MTBhM2IzN2I2ODU3M2M0MDMzN2UyNDZlMmZhZjI5OWI3N2QzMSBNZXJnZTogNzFjYjJlOAorCisgNjEwZDYzZiBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgorIFRodSBBdWcgNCAxMDo0MjowOCAyMDExIC0wNzAwCisKKzIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDk0MzkzMGUxZTEyNDM4NWZkOTQ3MzhiNmRjZGEzN2QyOWRjN2FjN2YgQXV0aG9yOiBXZXMKKworIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVGh1IEF1ZyA0IDEwOjQxOjQxCisgMjAxMSAtMDcwMAorCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS00LXBhdGNoZXMnIGludG8KKworIFY1LTQtcGF0Y2hlcworCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCA0ZWRjYjg4ZGFlOGIyZTU5ZGM2ODNlODBkNDE0ZmE3ZWNlYzM2ODg1IE1lcmdlOiA2NWYzZWVmCisKKyAyZGQ5ZWQwIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgVGh1IEF1ZyA0IDEwOjI0OjExIDIwMTEgLTA3MDAKKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNS1wYXRjaGVzJyBpbnRvCisKKyBWNS01LXBhdGNoZXMKKworMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogOiBjb21taXQgYmM1Y2EwM2EwNGFiMTljNjM0YTM0ZDA2MGIwYjE2Yjc0ODRjYjUyMCBNZXJnZTogODhmZGRiNworCisgOTBjMGU3NSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcKKyA0IDE5OjEzOjA3IDIwMTEgKzAyMDAKKworMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXB1c20uYzogc25tcHVzbTogRml4IHJlY2VudGx5CisKKyBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzCisKKzIwMTEtMDgtMDQgIFN0dWFydCBIZW5kZXJzb24gPHQwancyZnUwa21nQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X25ldGJzZC5jOiBDSEFOR0VTOiBvcGVuYnNkOgorCisgUEFUQ0ggMzM1NzkzMjogZnJvbSB0MGp3MmZ1MGttZzogQ2xlYW5pbmcgaW4gbWVtb3J5X25ldGJzZC5jIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBWbGFkaW1pciBLb25kcmF0aWV2IDx3dWxmMjAwMUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYzogQ0hBTkdFUzogYWdlbnQ6CisKKyBQQVRDSCAzMzg2MTQ3OiBmcm9tIHd1bGYyMDAxOiBmaXggVUNELVNOTVAtTUlCOjpkc2tVc2VkIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCA0NzNkN2U1Y2Q0ZDQxMWJiYTIwZWI4NTM1OWQ4NzI4MDYzMzAxY2JkIE1lcmdlOiBhNGU4YjYyCisKKyA4OGZkZGI3IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgVGh1IEF1ZyA0IDA5OjI4OjIyIDIwMTEgLTA3MDAKKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgMjEwMWJiMmQ3YWQ2ZGIwMzhjNzU1YWE5MTkzYzhhY2UwZGJkNGY1OCBBdXRob3I6IFdlcworCisgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUaHUgQXVnIDQgMDk6Mjg6MDYKKyAyMDExIC0wNzAwCisKKzIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIC5naXRpZ25vcmU6IGlnbm9yZSAqLm9yaWcgYW5kICoucmVqCisKKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBoZWxwIG91dHB1dCBkZXNjcmliZXMgcmViYXNlIHZzCisKKyBtZXJnZSBiZXR0ZXIKKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgZjEyNmExN2M2YTMwNjM0NTVhNTExOTQwYjAyMzA0N2FiZDliNDhlZSBNZXJnZTogYWQ3NjVmNAorCisgNzdhNDc4NCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgorIFRodSBBdWcgNCAwOToyNToxNiAyMDExIC0wNzAwCisKKzIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDQ1MmUxNzA3ZjIwOWVjNDVlN2M3ZjJhMzA0MGVmNTk1ZmI5ZDFhZjYgTWVyZ2U6IGRjNzU1YTYKKworIGIzNzJlNWEgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBUaHUgQXVnIDQgMDk6MjU6MDMgMjAxMSAtMDcwMAorCisyMDExLTA4LTA0ICBTdHVhcnQgSGVuZGVyc29uIDx0MGp3MmZ1MGttZ0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZDQuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkNS5oOiBDSEFOR0VTOiBvcGVuYnNkOiBQQVRDSAorICAgICAgMzM1NzkyNzoKKworIGZyb20gdDBqdzJmdTBrbWc6IFJlY29nbmlzZSBvcGVuYnNkNSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBmaXggd2hlcmUgYXJndW1lbnRzIGFyZSBzZXQKKworCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHNwbGl0IG5zc2ZwYXRjaGFwcGx5IGludG8gdHdvCisKKyBwYXJ0czogYXBwbHkgYW5kIGNvbW1pdGluZworCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHBhdGNoIHVzaW5nIC1OCisKKworMjAxMS0wOC0wNCAgRGF2aWQgQXJub2xkIDxkamFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBtYW4vZGVmYXVsdF9zdG9yZS4zLmJvdCwgbWFuL2VuY29kZV9rZXljaGFuZ2UuMS5kZWYsIAorICAgICAgbWFuL2ZpeHByb2MuMS5kZWYsIG1hbi9taWIyYy5jb25mLjUuaW4sIG1hbi9uZXQtc25tcC1jb25maWcuMS5kZWYsCisgICAgICAgbWFuL25ldHNubXBfYWdlbnRfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9taWJfYXBpLjMuZGVmLCAKKyAgICAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wYnVsa2dldC4xLmRlZiwKKyAgICAgIG1hbi9zbm1wYnVsa3dhbGsuMS5kZWYsICBtYW4vc25tcGNtZC4xLmRlZiwgbWFuL3NubXBjb25mLjEuZGVmLAorICAgICAgbWFuL3NubXBkLjguZGVmLCAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZiwgCisgICAgICBtYW4vc25tcGRlbHRhLjEuZGVmLCBtYW4vc25tcGRmLjEuZGVmLCBtYW4vc25tcGdldC4xLmRlZiwgCisgICAgICBtYW4vc25tcGdldG5leHQuMS5kZWYsIG1hbi9zbm1wbmV0c3RhdC4xLmRlZiwgbWFuL3NubXBzZXQuMS5kZWYsIAorICAgICAgbWFuL3NubXBzdGF0dXMuMS5kZWYsIG1hbi9zbm1wdGFibGUuMS5kZWYsIG1hbi9zbm1wdGVzdC4xLmRlZiwgCisgICAgICBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwgbWFuL3NubXB0cmFwLjEuZGVmLCBtYW4vc25tcHRyYXBkLjguZGVmLCAKKyAgICAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiwgbWFuL3NubXB1c20uMS5kZWYsIG1hbi9zbm1wdmFjbS4xLmRlZiwgCisgICAgICBtYW4vc25tcHdhbGsuMS5kZWY6IENIQU5HRVM6IG1hbjogUEFUQ0ggMzMxMjg2MTogZnJvbSBkamE6IE1hbgorICAgICAgcGFnZXMKKworIGh5cGhlbi12cy1taW51cyBjbGVhbnVwIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogRGV0ZWN0IChhbmQgcmVqZWN0KSBPcGVuU1NMCisKKyAxLjAuMAorCisyMDExLTA4LTA0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogQ29tbWFuZC1saW5lIG9wdGlvbnMgZm9yIHNpbGVudAorCisgaW5zdGFsbAorCisyMDExLTA4LTA0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogRW5zdXJlIFdpbmRvd3MgcGFja2FnZQorCisgdW5pbnN0YWxscyBjb21wbGV0ZWx5LgorCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCA4MWM2M2ZiNWM1ZTRhYmI5YzI5YWNhODliZjlkNjk0NDEwMDg2ZTk3IE1lcmdlOiA0YTY5MjBhCisKKyBkYzc1NWE2IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgVGh1IEF1ZyA0IDA4OjMzOjM0IDIwMTEgLTA3MDAKKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOiBhZGRlZCBzcGFjaW5nIHRvIG1hdGNoIHRoZSBsYXRlciBicmFuY2hlcworCisKKzIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogbWFudWFsIG1lcmdlCisKKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOiByZW1vdmVkIGFjY2lkZW50aWFsbHkgZHVwbGljYXRlZCBjb2RlCisKKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBtYW51YWwgbWVyZ2UKKworCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IG1hbnVhbCBtZXJnZQorCisKKzIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzYyMjMzOiBmcm9tCisKKyB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUgbm9pc2UgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKzIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOiBDSEFOR0VTOiBmcmVlYnNkOiBQQVRDSCAzMzYzMzA4OgorICAgICAgZnJvbQorCisgeWFiZXJhdW5leWE6IEZpeCBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDkueCB3aXRoIHJlY2VudCBoZWFkZXIKKyBzaHVmZmxpbmcgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKzIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWxsb3cgbnNyb2xsdXAgdG8gdGFrZSBhIC0tbWVyZ2UKKworIGZsYWcgZm9yIG1lcmdpbmcgaW5zdGVhZCBvZiByZWJhc2luZworCisyMDExLTA4LTA0ICBTYWNoaW4gU3VyZW5kcmFuIDxzYWNoaW5zdXJlbmRyYW5AdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAorICAgICAgc25tcGxpYi9zbm1wdXNtLmM6IENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0ggMzM4MzQ0MTogZnJvbQorCisgc2FjaGluc3VyZW5kcmFuOiBGaXggY3Jhc2ggb24gNS40LjQgZHVlIHRvIGFjY2VzcyBvZiBmcmVlZCBtZW1vcnkgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKzIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogTWFrZWZpbGUuaW46IENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMjg6IGZyb20geWFiZXJhdW5leWE6CisKKyBBZGQgRnJlZUJTRCA5LnggdG8gc3VwcG9ydGVkIE9TZXMgbGlzdCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3BhcnNlLmM6IENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzNjIyMzM6IGZyb20KKworIHlhYmVyYXVuZXlhOiBNdXRlIHVubmVjZXNzYXJ5IGNhbm5vdCBmaW5kIG1vZHVsZSBub2lzZSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsIAorICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6IENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMDg6CisgICAgICBmcm9tCisKKyB5YWJlcmF1bmV5YTogRml4IGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgOS54IHdpdGggcmVjZW50IGhlYWRlcgorIHNodWZmbGluZyBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhbGxvdyBuc3JvbGx1cCB0byB0YWtlIGEgLS1tZXJnZQorCisgZmxhZyBmb3IgbWVyZ2luZyBpbnN0ZWFkIG9mIHJlYmFzaW5nCisKKzIwMTEtMDgtMDQgIFNhY2hpbiBTdXJlbmRyYW4gPHNhY2hpbnN1cmVuZHJhbkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywgCisgICAgICBzbm1wbGliL3NubXB1c20uYzogQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tCisKKyBzYWNoaW5zdXJlbmRyYW46IEZpeCBjcmFzaCBvbiA1LjQuNCBkdWUgdG8gYWNjZXNzIG9mIGZyZWVkIG1lbW9yeSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBNYWtlZmlsZS5pbjogQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMyODogZnJvbSB5YWJlcmF1bmV5YToKKworIEFkZCBGcmVlQlNEIDkueCB0byBzdXBwb3J0ZWQgT1NlcyBsaXN0IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM2MjIzMzogZnJvbQorCisgeWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlIG5vaXNlIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgCisgICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczogQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMwODoKKyAgICAgIGZyb20KKworIHlhYmVyYXVuZXlhOiBGaXggY29tcGlsYXRpb24gb24gRnJlZUJTRCA5Lnggd2l0aCByZWNlbnQgaGVhZGVyCisgc2h1ZmZsaW5nIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFsbG93IG5zcm9sbHVwIHRvIHRha2UgYSAtLW1lcmdlCisKKyBmbGFnIGZvciBtZXJnaW5nIGluc3RlYWQgb2YgcmViYXNpbmcKKworMjAxMS0wOC0wNCAgU2FjaGluIFN1cmVuZHJhbiA8c2FjaGluc3VyZW5kcmFuQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAKKyAgICAgIHNubXBsaWIvc25tcHVzbS5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIIDMzODM0NDE6IGZyb20KKworIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM2MjIzMzogZnJvbQorCisgeWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlIG5vaXNlIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFsbG93IG5zcm9sbHVwIHRvIHRha2UgYSAtLW1lcmdlCisKKyBmbGFnIGZvciBtZXJnaW5nIGluc3RlYWQgb2YgcmViYXNpbmcKKworMjAxMS0wOC0wNCAgU2FjaGluIFN1cmVuZHJhbiA8c2FjaGluc3VyZW5kcmFuQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAKKyAgICAgIHNubXBsaWIvc25tcHVzbS5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIIDMzODM0NDE6IGZyb20KKworIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZnJlZWJzZC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBzbm1wbGliL2tleXRvb2xzLmMsCisgICAgICBzbm1wbGliL3NjYXBpLmM6CisKKyBDSEFOR0VTOiBidWlsZGluZzogUEFUQ0ggMzM4Mzk1MTogZnJvbSB5YWJlcmF1bmV5YTogRml4IC1XdW51c2VkCisgY29tcGlsZSB3YXJuaW5ncyB3aXRoIEZyZWVCU0QvTmV0QlNEIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZnJlZWJzZC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBzbm1wbGliL2tleXRvb2xzLmMsCisgICAgICBzbm1wbGliL3NjYXBpLmM6CisKKyBDSEFOR0VTOiBidWlsZGluZzogUEFUQ0ggMzM4Mzk1MTogZnJvbSB5YWJlcmF1bmV5YTogRml4IC1XdW51c2VkCisgY29tcGlsZSB3YXJuaW5ncyB3aXRoIEZyZWVCU0QvTmV0QlNEIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCBlODc4YWJiZGIxODA4ZWY4M2UwYTgwNzQ1MzZmYjU0ZTEzMjE5YThiIE1lcmdlOiA0MDNkZTQyCisKKyA4NzhmYmY0IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgVGh1IEF1ZyA0IDA3OjU1OjAwIDIwMTEgLTA3MDAKKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgMjUwYWZhMDY4OTJmZDg5N2FjMzFlMzgzNmE3ZmZjOWUyYjRjZjdiOSBNZXJnZTogMmMxNGMxYworCisgM2FmYzVlMCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgorIFRodSBBdWcgNCAwNzo1MTozMyAyMDExIC0wNzAwCisKKzIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDU3OGNkN2NjZTM1MWFlOGQ5MDRlYzNkODBiZTliYTZkMWQ0OGE3MTIgTWVyZ2U6IDI1OTg4YmUKKworIGYzYmM1NTEgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBUaHUgQXVnIDQgMDc6NTA6NTYgMjAxMSAtMDcwMAorCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGF1dG9jb25mCisKKworMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnM6IENIQU5HRVM6IGJ1aWxkaW5nOiBQQVRDSAorCisgMzM4Mzk0OTogZnJvbSB5YWJlcmF1bmV5YTogRml4IGF1dG9jb25mIHRlc3RzIGZvciBzeXMvbWJ1Zi5oIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHByb21wdCBmb3IgcGF0Y2ggYW5kIGFuIGFyZWEsIGFuZAorCisgdXNlIHRoZSBwcm9wZXIgQ0hBTkdFUyBsaW5lIGZvcm1hdAorCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IFVzZSBmZXRjaCAtLWFsbCBhbmQgcmViYXNlIGFzCisKKyBzdWdnZXN0ZWQgYnkgQmFydCBmb3Igc3BlZWQgaW1wcm92ZW1lbnRzCisKKzIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IGQ2YTFhODllNmY2NDg5NTFhOWI4MzE5MzJkM2NjMjMwODIxZjJkMzcgTWVyZ2U6IGRjYjcxMmYKKworIDg3MmUwMTMgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCisgNCAxMjowNjoxOCAyMDExICswMjAwCisKKzIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDQ0OTY5YjRlNTdjMjcxOTRlNWJkMzU3YmM0NTI3NWZlYjg2OTVkMjIgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEp1bCA4IDIwOjUyOjI1IDIwMTEgKzAyMDAKKworMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6IENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IEludm9rZQorCisgU25tcFV0aWxPaWRGcmVlKCkgYmVmb3JlIFNubXBVdGlsT2lkQ3B5KCkuIEl0J3Mgbm90IGNsZWFyIHlldCB3aHkKKyB0aGUgb3JpZ2luYWwgY29kZSBkaWQgbm90IG1ha2Ugc25tcHdhbGsgdHJpZ2dlciBhIG1lbW9yeSBsZWFrLgorCisyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCBkY2I3MTJmZmM4NmIzMzU4MzAwMGVmNGFlOWE1MWNlZDI1Y2QxNWJmIE1lcmdlOiBlODVjZmE1CisKKyA5ODYyM2VmIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZworIDQgMTE6MzY6MTcgMjAxMSArMDIwMAorCisyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCA4YTAxZWM2NDIzZDQwMGM0YTEzY2NhYzY4YTM3OTFkMDIxOGEwODg1IEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcgNCAxMToxOToxNyAyMDExICswMjAwCisKKzIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IGU4NWNmYTU5OWIyM2I3NmQ5NzkxM2M5NmI1ZDcwM2JmZjZiYTQ5NDQgTWVyZ2U6IGIwNTZlZTYKKworIGUyMWVlZjIgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCisgNCAwODo0NDo0MyAyMDExICswMjAwCisKKzIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzogQ0hBTkdFUzogYWdlbnQ6CisKKyBBdm9pZCB0aGF0IGEgTUlCIHdhbGsgb24gdGhlIGhvc3QgcmVzb3VyY2VzIE1JQiB0cmlnZ2VycyBhIGNyYXNoIG9uCisgRmVkb3JhIDE1CisKKzIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IGIwNTZlZTZlYjUzOTA5YWQwNGYxNmVjMjZkMjY5MGQ3YTA4MzE5MmEgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZyA0IDA3OjU5OjA0IDIwMTEgKzAyMDAKKworMjAxMS0wOC0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgCisgICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2MKKyAgICAgICBlc3MuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgCisgICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzX2xpbnV4LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2VzcworICAgICAgIC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCBhZ2VudC9zbm1wX2FnZW50LmMsIAorICAgICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXB0bHMuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIAorICAgICAgcGVybC9TTk1QL1NOTVAueHMsIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMsIAorICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYywgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAorICAgICAgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgc25tcGxpYi9zbm1wdXNtLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYiwgc25tcGQ6CisKKyBwZXJsOiBFbGltaW5hdGUgZGVhZCB2YXJpYWJsZXMKKworMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgYWU4ZTNlY2QyZGY0Y2YzNzYyNTk0NGFkZWQxZGZlNDczNWQ0NGVlYSBNZXJnZTogNzMxODdjZQorCisgOTMzNWUxOSBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgorIFdlZCBBdWcgMyAxNDozNzozNiAyMDExIC0wNzAwCisKKzIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDc5NGY5YTY5ZDdlYjY0MjI2ODIwMGIwYTRiMTk5MTUxZGVmNjZlZDAgQXV0aG9yOiBXZXMKKworIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgV2VkIEF1ZyAzIDE0OjM2OjI1CisgMjAxMSAtMDcwMAorCisyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgY29tbWVudAorCisKKzIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYXQgZW5kIG9mIG5zcm9sbHVwIG1lbnRpb24gdGhhdAorCisgbm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJ1biBuc3N5bmMKKworMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhIG5ldyBuc3N5bmMoKSBmdW5jdGlvbiBmb3IKKworIHB1c2gvcHVsbGluZyBhY3RpdmUgYnJhbmNoZXMKKworMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGNvbW1lbnQKKworCisyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGF0IGVuZCBvZiBuc3JvbGx1cCBtZW50aW9uIHRoYXQKKworIG5vdyB3b3VsZCBiZSBhIGdvb2QgdGltZSB0byBydW4gbnNzeW5jCisKKzIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYSBuZXcgbnNzeW5jKCkgZnVuY3Rpb24gZm9yCisKKyBwdXNoL3B1bGxpbmcgYWN0aXZlIGJyYW5jaGVzCisKKzIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYXQgZW5kIG9mIG5zcm9sbHVwIG1lbnRpb24gdGhhdAorCisgbm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJ1biBuc3N5bmMKKworMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhIG5ldyBuc3N5bmMoKSBmdW5jdGlvbiBmb3IKKworIHB1c2gvcHVsbGluZyBhY3RpdmUgYnJhbmNoZXMKKworMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGNvbW1lbnQKKworCisyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGF0IGVuZCBvZiBuc3JvbGx1cCBtZW50aW9uIHRoYXQKKworIG5vdyB3b3VsZCBiZSBhIGdvb2QgdGltZSB0byBydW4gbnNzeW5jCisKKzIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYSBuZXcgbnNzeW5jKCkgZnVuY3Rpb24gZm9yCisKKyBwdXNoL3B1bGxpbmcgYWN0aXZlIGJyYW5jaGVzCisKKzIwMTEtMDgtMDMgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi5oOiBSZWVuYWJsZSBJUC1NSUI6OmlwRGVmYXVsdFJvdXRlclRhYmxlCisgICAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworCisyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IEEgbmV3IGZ1bmN0aW9uOiBuc3NmcGF0Y2hhcHBseQorCisgdGhhdCBhdXRvLXB1bGxzIGdpdCBjb21tYW5kIGxpbmUgaW5mbyBmcm9tIFNGCisKKzIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOiBhZGRlZCB2YXJpYWJsZXMgbmFtZXMgdG8KKworIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCisKKzIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOiBXb3JkaW5nIGNoYW5nZXMgdG8KKworIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCisKKzIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtVTY0Lm0yaTogQWRkZWQKKworIHRoZSBtaXNzaW5nIFU2NCBtMmkgZmlsZQorCisyMDExLTA4LTAzICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9pcC1taWIuaDogUmVlbmFibGUgSVAtTUlCOjppcERlZmF1bHRSb3V0ZXJUYWJsZQorICAgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKworMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBBIG5ldyBmdW5jdGlvbjogbnNzZnBhdGNoYXBwbHkKKworIHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgorCisyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaTogYWRkZWQgdmFyaWFibGVzIG5hbWVzIHRvCisKKyB0aGUgZ2VuZXJhdGVkIGVycm9yIG1lc3NhZ2VzLgorCisyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzogV29yZGluZyBjaGFuZ2VzIHRvCisKKyBoZWxwIGRlc2NyaWJlIGNvbnRleHRzIGJldHRlcgorCisyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LVU2NC5tMmk6IEFkZGVkCisKKyB0aGUgbWlzc2luZyBVNjQgbTJpIGZpbGUKKworMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBBIG5ldyBmdW5jdGlvbjogbnNzZnBhdGNoYXBwbHkKKworIHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgorCisyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaTogYWRkZWQgdmFyaWFibGVzIG5hbWVzIHRvCisKKyB0aGUgZ2VuZXJhdGVkIGVycm9yIG1lc3NhZ2VzLgorCisyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzogV29yZGluZyBjaGFuZ2VzIHRvCisKKyBoZWxwIGRlc2NyaWJlIGNvbnRleHRzIGJldHRlcgorCisyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LVU2NC5tMmk6IEFkZGVkCisKKyB0aGUgbWlzc2luZyBVNjQgbTJpIGZpbGUKKworMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBBIG5ldyBmdW5jdGlvbjogbnNzZnBhdGNoYXBwbHkKKworIHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgorCisyMDExLTA3LTE4ICBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KKworICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmM6IGFnZW50OiBjaGFuZ2UKKworIHR5cGUgb2Ygc25tcF9lbmFibGVhdXRoZW50cmFwcyB0byBsb25nIFR5cGUgb2Ygc25tcF9lbmFibGVhdXRoZW50cmFwcyB2YXJpYWJsZSBpcyBjaGFuZ2VkIGZyb20gaW50IHRvIGxvbmcuCisgVGhpcyBmaXhlcyB0aGUgYnVnIHdpdGggd3JpdGluZyB0byBzbm1wRW5hYmxlQXV0aGVuVHJhcHMgaWYgc2VydmVyCisgaXMgY29tcGlsZWQgZm9yIDY0Yml0IChzbm1wc2V0IHJlcG9ydHMgd3JvbmcgbGVuZ3RoKS4gVGhpcyBidWcgd2FzCisgaW50cm9kdWNlZCBhIGxvbmcgdGltZSBhZ28gKGJ5IGZhZWVjZDAgY29tbWl0KS4gIEFjdHVhbGx5IHRoaXMgaXMgYSAnbGVzcyBlZmZvcnQnIHR5cGUgb2YgZml4IGJ1dCBJIHdvbmRlciB3aHkgd2UKKyBuZWVkIGEgbG9uZyB0byBzdG9yZSBhbiBJTlRFR0VSIGluIHRoZSBmaXJzdCBwbGFjZT8gU2lnbmVkLW9mZi1ieTogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+IFNpZ25lZC1vZmYtYnk6IFdlcworIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKzIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOiBhZGRlZCB2YXJpYWJsZXMgbmFtZXMgdG8KKworIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCisKKzIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOiBXb3JkaW5nIGNoYW5nZXMgdG8KKworIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCisKKzIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtVTY0Lm0yaTogQWRkZWQKKworIHRoZSBtaXNzaW5nIFU2NCBtMmkgZmlsZQorCisyMDExLTA4LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCA2YWQ3ZTI4ZmY5ZTVlNGViYzEzNThlZTM5Y2M5Nzk2YTQ0YTFiZWU3IE1lcmdlOiBmMjgzMmUzCisKKyAxZTE1NGNlIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgV2VkIEF1ZworIDMgMTk6MTU6MjQgMjAxMSArMDIwMAorCisyMDExLTA4LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCA2MWIxNzhmMWVlODk1MmFhMDNhYTNiMWJhNTFmNGE2NjU1ZTQ3ZjAxIEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFdlZCBBdWcgMyAxODowOTo0NyAyMDExICswMjAwCisKKzIwMTEtMDgtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDogV2hpdGVzcGFjZS1vbmx5IGNoYW5nZTogZml4IGluZGVudGF0aW9uCisKKyBvZiBhbiAjaW5jbHVkZSBkaXJlY3RpdmUKKworMjAxMS0wOC0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogcGVybC9OZXRTTk1QLnhzOiBDSEFOR0VTOiBQZXJsOiBSZW1vdmUgZmlsZSBwZXJsL05ldFNOTVAueHMKKworIGJlY2F1c2UgaXQgYnJlYWtzIHRoZSBXaW5kb3dzIGJ1aWxkLiAgVG8gV2VzOiBpZiB5b3UgY2FuIHRlbGwgbWUgaG93IHRvIHJlcHJvZHVjZSB0aGUgcHJvYmxlbSB5b3Ugb2JzZXJ2ZWQKKyBJJ2xsIHRyeSB0byBmaW5kIGEgcG9ydGFibGUgZml4LiAgVGhpcyByZXZlcnRzIGNvbW1pdCBkNTQ4NzFmNTI5MzY3NWM4MDU4ZWNjZTg4ZmVkNWI2NDZjODM2MzIzICgiQWRkZWQKKyBhIGJvZ3VzIGVtcHR5IC54cyBmaWxlIGZvciBidW5kbGluZyBvbiBuZXdlciBwZXJsIHRoYXQgd2FudHMKKyAic29tZXRoaW5nIiIpLgorCisyMDExLTA4LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCAwZjQ4OWIxOTlhZGFiNDhiMTYzM2ViY2FmNWZmNWE3YzIyYzRjYjg5IE1lcmdlOiBmNGVhYTAyCisKKyA3MmE1OWJjIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEF1ZworIDIgMTA6MTE6NTMgMjAxMSArMDIwMAorCisyMDExLTA4LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCA3ZmNjMGI4MDMyZjhkYTViN2JjMzAwNTlhZjBiYTY1NmVhZTcxMDkxIEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcgMSAxNDoxMToyOCAyMDExICswMjAwCisKKzIwMTEtMDgtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqICAgKiAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXQKKyAgICAgICBhX2FjY2Vzcy5jOiBGaXggYSBjb21waWxlciB3YXJuaW5nIGluCisKKworIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCisKKzIwMTEtMDgtMDEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IEFkZCBmaWxlIG5hbWVzIGFuZCBwYXR0ZXJucyBmb3Igb3V0cHV0CisKKyBmaWxlcyBnZW5lcmF0ZWQgZHVyaW5nIHRoZSBXaW5kb3dzIGJ1aWxkCisKKzIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IFNvcnQgYWxwaGFiZXRpY2FsbHkKKworCisyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBBZGQgYXBwcy9zc2h0b3NubXAKKworCisyMDExLTA4LTAxICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiAgLmdpdGlnbm9yZSwgcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QtYy5pbmMsIAorICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QteHMuaW5jOiBSZW1vdmUgdHdvIGdlbmVyYXRlZCBQZXJsIGZpbGVzLgorCisKKzIwMTEtMDgtMDIgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IGY0ZWFhMDJkOWIwNzZhNjdkNzI3MmRlN2VlZjhlOWRmYmYxODliYmYgTWVyZ2U6IDQwMTI1ZDgKKworIGFkYWRjYjkgQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBUdWUgQXVnIDIgMDA6NTc6NTEgMjAxMSArMDIwMAorCisyMDExLTA4LTAyICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6IHN1cHByZXNzICJvayIgdGVzdCBvdXRwdXQgaW4gbnNiCisKKworMjAxMS0wOC0wMSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDQwMTI1ZDg1MzljZDg5Zjk1MmZiYzI0NTg4YzVlODFlOWNkODIxZmUgQXV0aG9yOiBKYW4KKworIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIE1vbiBBdWcgMQorIDEzOjU4OjMzIDIwMTEgKzAyMDAKKworMjAxMS0wOC0wMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgNWFjZjBkMmNlYjM5Nzc5NjRlZDM5ZjAwMzA3M2JhNjQxMzhjMmViZCBBdXRob3I6IFRob21hcworCisgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBTdW4gSnVsIDMxIDIzOjU3OjQxCisgMjAxMSArMDIwMAorCisyMDExLTA3LTMxICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCBhNzcyMmE4MWY5Y2I3YWE4NjcwZTdjMjM4NjAxMzYyYTMxMDg3YWNjIE1lcmdlOiAyNDJlMTc5CisKKyBhZTlhYzZjIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU3VuIEp1bAorIDMxIDA5OjExOjQ1IDIwMTEgKzAyMDAKKworMjAxMS0wNy0zMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogYXBwcy9zc2h0b3NubXAuYzogRml4IGFuIGluY29ycmVjdCBzb3VyY2UgY29kZSBjb21tZW50OiB0aGVyZSBpcworCisgbm8gcmVxdWlyZW1lbnQgaW4gdGhlIEFOU0kgQyBzdGFuZGFyZCB0aGF0IHN0YWNrIHZhcmlhYmxlcyBzaG91bGQgYmUKKyBpbml0aWFsaXplZCB0byB6ZXJvLgorCisyMDExLTA3LTMxICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCAyNDJlMTc5N2IyNjk0YTA2ODk4NTZhZTM2ZDA1ZDM0MTNhYWY4ZDc3IEF1dGhvcjogVGhvbWFzCisKKyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFN1biBKdWwgMzEgMDE6NDQ6MDkKKyAyMDExICswMjAwCisKKzIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvc3lzdGVtLmM6IENIQU5HRVM6IGJ1aWxkaW5nOiBidWlsZCBmaXggZm9yIHN5c3RlbXMgbGFja2luZworCisgZ2V0YWRkcmluZm8oKSBhbmQgRUFJX0ZBSUwgKGUuZy4gSFAtVVggMTAuMjAvMTEuMDApCisKKzIwMTEtMDctMzAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDE4ZGY3NTlmMTliOTc1YzQ0OWQwMTBiYjBhMTYyMTE5YmI2ODM2MGQgTWVyZ2U6IDU0YTQ0Y2IKKworIDcwNTA3MTggQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTYXQgSnVsCisgMzAgMTY6Mzk6MTMgMjAxMSArMDIwMAorCisyMDExLTA3LTMwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCA4MmQ3M2ZiMTFiZTNhZTMxZjM5YzlkNjE4ZDUzODhkYzliMTAwNmQ3IEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBKdWwgMjkgMjA6NTE6MjcgMjAxMSArMDIwMAorCisyMDExLTA3LTMwICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAKKyAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKKyAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBhdXRvcmVjb25mCisKKworMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgCisgICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCisgICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogYXV0b3JlY29uZgorCisKKzIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDEwOWY2Njk0ZDc4OGY0OGViZDlmYzBhMWU5MGM0NWFiYzM3YmVhMjAgQXV0aG9yOiBUaG9tYXMKKworIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgU2F0IEp1bCAzMCAxNDoyMjoxOQorIDIwMTEgKzAyMDAKKworMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgN2Q4MTAwZWVkNDU5YTFmZjFhMjBjMDY3MzY0ZmE2Y2I0NzQ5MTMwOSBNZXJnZTogMTE2YzI0ZgorCisgOWU0N2FjNCBBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgorIFNhdCBKdWwgMzAgMDA6MjA6MDEgMjAxMSArMDIwMAorCisyMDExLTA3LTMwICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBkaXN0L25zYi1mdW5jdGlvbnMsIGRpc3QvbnNiLW5pZ2h0bHksIGRpc3QvbnNiLXBhY2thZ2U6IG1pbm9yIG5zYgorCisgZml4ZXMvZW5oYW5jZW1lbnRzIGZyb20gbXkgb2xkIHN2biB0cmVlCisKKzIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDExNmMyNGYwZjdmYjNmOTliYTY0NjczMGY2MWM1NmQxYWUyM2JhNDEgTWVyZ2U6IDk4MmZiN2YKKworIDRmYzBiOGIgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgSnVsCisgMjkgMTE6MzE6MjAgMjAxMSArMDIwMAorCisyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCBjNDgxNzNjMDZhOWVhYWRiZjgxZTZiNDk2MmQ1NWVmMGE1NGRiMjUxIEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBKdWwgMjkgMTA6Mjc6MzkgMjAxMSArMDIwMAorCisyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBjb25maWd1cmUsIGx0bWFpbi5zaCwgbTQvbGlidG9vbC5tNDogUmVydW4gYXV0b3JlY29uZgorCisKKzIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IFNvcnQgYWxwaGFiZXRpY2FsbHkKKworCisyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBBZGQgYXBwcy9zc2h0b3NubXAKKworCisyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5jOiBGaXggdHdvIGZpbGVuYW1lcyBpbiBob3N0IG1pYgorCisgc291cmNlIGNvZGUgY29tbWVudHMuCisKKzIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCA5ODJmYjdmZDhiYWIyNWM0MzIyYWE2MmM1MDQzNzAzNmNlMjk2ZTNlIE1lcmdlOiAxZWRhNjc1CisKKyAzNDU4MTI4IEF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgorIFRodSBKdWwgMjggMTY6MjQ6MDMgMjAxMSArMDIwMAorCisyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBGaXggcG90ZW50aWFsCisKKyBzaWdzZWd2IHdoZW4gYW4gaWZUYWJsZSBlbnRyeSBpcyByZW1vdmVkIGFzIHJlc3VsdCBvZiBib3RoCisgaW50ZXJmYWNlX3JlcGxhY2Vfb2xkIGFuZCBpbnRlcmZhY2VfZmFkZW91dCBhdCB0aGUgc2FtZSB0aW1lLgorCisyMDExLTA3LTI4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBhcHBzL3NzaHRvc25tcC5jOiBNYWtlIGFwcHMvc3NodG9zbm1wLmMgYnVpbGQgYWdhaW4gKHdhcyBicm9rZW4gYnkKKworIGNvbW1pdCA2MTIyNDdjZGYxNGMxZTc0NWMzODRjZWZlMWYzZmRlM2U0NDViMzQ3IHRoYXQgY2hhbmdlZAorIE1TR19OT1NJR05BTCBpbnRvIE5FVFNOTVBfTk9TSUdOQUwpCisKKzIwMTEtMDctMjggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDFlZGE2NzUzYjdmZTdkM2IzZjIxN2MwOTI1NGVjMDJkMGVlMWQwY2UgTWVyZ2U6IGRiOGI4NjAKKworIGEyZjllY2UgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgSnVsCisgMjggMTU6MzI6MjggMjAxMSArMDIwMAorCisyMDExLTA3LTI4ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczE6IAorCisgQ0hBTkdFUzogc25tcGQ6IFJlc3RvcmUgc3RvcmFnZSB0YWJsZXMgb24gTGludXgKKworMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBEb2N1bWVudCBpbnRlcmZhY2VfcmVwbGFjZV9vbGQgb3B0aW9uLgorCisKKzIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6CisKKyBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9yZXBsYWNlX29sZCcgb3B0aW9uIHRvIHJlbW92ZSBvbGQgZW50cmllcyBpbgorIGlmVGFibGUgd2hlbiBhbiBpbnRlcmZhY2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIGFscmVhZHkgZXhpc2luZyBvbmUKKyBhcHBlYXJzLiAgRS5nLiByZW1vdmUgb2xkIHBwcDAgaW50ZXJmYWNlIHdoZW4gbmV3IHBwcDAgc2hvd3MgdXAuCisKKzIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogRG9jdW1lbnQgdGhlIGludGVyZmFjZV9mYWRlb3V0IG9wdGlvbi4KKworCisyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBBbGxvdyBpZlRhYmxlCisKKyBlbnRyaWVzIHRvIGJlIGRlbGV0ZWQgaW1tZWRpYXRlbHkgd2hlbiBhcHByb3ByaWF0ZSBpbnRlcmZhY2UKKyBkaXNhcHBlYXJzIChpLmUuIGludGVyZmFjZV9mYWRlb3V0ID0gMCB3b3JrcyBhcyBleHBlY3RlZCkuCisKKzIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6CisKKyBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9mYWRlb3V0JyBjb25maWd1cmF0aW9uIG9wdGlvbiB0byBzZXQKKyBsaWZldGltZSBvZiBpZlRhYmxlIGVudHJpZXMgb2YgcmVtb3ZlZCBpbnRlcmZhY2VzLiAgUHJldmlvdXMgbGlmZXRpbWUgd2FzIGhhcmRjb2RlZCA1IG1pbnV0ZXMsIG5vdyBpdCdzIGNvbmZpZ3VyYWJsZS4KKworMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IGQ2MmEwZWI5MDcwYjRkOGQ5ZmUyYmNmZGI0ZDUzZDM3ZWY4MTRmOWIgQXV0aG9yOiBKYW4KKworIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFRodSBKdWwgMjgKKyAxNDo0OTowOCAyMDExICswMjAwCisKKzIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6CisKKyBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9yZXBsYWNlX29sZCcgb3B0aW9uIHRvIHJlbW92ZSBvbGQgZW50cmllcyBpbgorIGlmVGFibGUgd2hlbiBhbiBpbnRlcmZhY2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIGFscmVhZHkgZXhpc2luZyBvbmUKKyBhcHBlYXJzLiAgRS5nLiByZW1vdmUgb2xkIHBwcDAgaW50ZXJmYWNlIHdoZW4gbmV3IHBwcDAgc2hvd3MgdXAuCisKKzIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogRG9jdW1lbnQgdGhlIGludGVyZmFjZV9mYWRlb3V0IG9wdGlvbi4KKworCisyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBBbGxvdyBpZlRhYmxlCisKKyBlbnRyaWVzIHRvIGJlIGRlbGV0ZWQgaW1tZWRpYXRlbHkgd2hlbiBhcHByb3ByaWF0ZSBpbnRlcmZhY2UKKyBkaXNhcHBlYXJzIChpLmUuIGludGVyZmFjZV9mYWRlb3V0ID0gMCB3b3JrcyBhcyBleHBlY3RlZCkuCisKKzIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6CisKKyBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9mYWRlb3V0JyBjb25maWd1cmF0aW9uIG9wdGlvbiB0byBzZXQKKyBsaWZldGltZSBvZiBpZlRhYmxlIGVudHJpZXMgb2YgcmVtb3ZlZCBpbnRlcmZhY2VzLiAgUHJldmlvdXMgbGlmZXRpbWUgd2FzIGhhcmRjb2RlZCA1IG1pbnV0ZXMsIG5vdyBpdCdzIGNvbmZpZ3VyYWJsZS4KKworMjAxMS0wNy0yOCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFwcHMvc3NodG9zbm1wLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzogQ0hBTkdFUzogYnVpbGRpbmc6IGJ1aWxkCisgICAgICBmaXgKKworIGZvciBzeXN0ZW1zIGxhY2tpbmcgTVNHX0RPTlRXQUlUCisKKzIwMTEtMDctMjcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOiBDSEFOR0VTOiBzbm1wZDogTWFrZQorCisgVENQLU1JQjo6dGNwQ3VyckVzdGFiIHdvcmsgYWdhaW4uIFdhcyBicm9rZW4gaW4gNS43IGJ5IHRoZQorIGludHJvZHVjdGlvbiBvZiB0aGUgImZlYXR1cmVzIiBmZWF0dXJlLgorCisyMDExLTA3LTI3ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgZmI4ODA3NGZiYmMyNjhjN2YwNTA5NDkxNTM1YWVjNWZlY2IwNTY4NCBNZXJnZTogYTc0M2FlNQorCisgMzgyMTI3MyBBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBXZWQgSnVsIDI3IDE0OjQ3OjI1IDIwMTEgKzAyMDAKKworMjAxMS0wNy0yNyAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDMxZmEwN2NkOWZmZGU0NmQ0MWQyYjU4MzhjM2ZjNGQwMTU0OGJmYjUgQXV0aG9yOiBKYW4KKworIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFdlZCBKdWwgMjcKKyAxNDo0NTo0NyAyMDExICswMjAwCisKKzIwMTEtMDctMjcgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9zbm1wZC5jOiBDSEFOR0VTOiBzbm1wZDogcnVuIHNpZ25hbCBoYW5kbGVycyB3aGVuIHNlbGVjdCgpCisKKyBpcyBpbnRlcnJ1cHRlZC4gIFRoaXMgYmVoYXZpb3IgaXMgaW5kaWNhdGVkIGluIGNvbW1lbnQgb24gbGluZSAxMjQ0LCBidXQgaXQgd2FzIG5vdAorIGFjdHVhbGx5IGRvbmUuCisKKzIwMTEtMDctMjYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDJlOTQ2NmQ3ZjU5ZDY1ZDA1MDI3NzczNWU0ZWQ5ZDMwNzE5ZmY3NTIgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bCAyNiAxMzoxMDowNCAyMDExICswMjAwCisKKzIwMTEtMDctMjYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDc3MDgyOTY3NjBlYWY1YTgwZDg1NDA3NDZjOWMyNDk4MjZmZDFiZmUgTWVyZ2U6IGVhMTFlNWUKKworIGNkNmUzODIgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsCisgMjYgMTY6MjE6NDEgMjAxMSArMDIwMAorCisyMDExLTA3LTI2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6IENsYXJpZnkgYW4gSVB2NiBzb3VyY2UgY29kZSBjb21tZW50CisKKworMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBtYW4vbmV0c25tcF9oYW5kbGVyLjM6IFNwZWxsaW5nIGZpeDoKKworIGRlZmluZWR5IC0+IGRlZmluZWQKKworMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zOiBTcGVsbGluZworCisgZml4OiBhbGV2aWF0ZSAtPiBhbGxldmlhdGUKKworMjAxMS0wNy0yNiAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IGRkMmM0NzEzMzQ5M2Q1YTAwZGU2YjNjZGJjZmFjN2U5ZDQ0YjZmZmUgTWVyZ2U6IGY5Y2NiYzcKKworIGVhMTFlNWUgQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgVHVlIEp1bCAyNiAxNDoyNToyOCAyMDExICswMjAwCisKKzIwMTEtMDctMjYgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCBjNWE4NDY0YzQyYTk0YzI1MGVlMmRmYTJhNDczMTA5YTczNDIwM2Q4IEF1dGhvcjogSmFuCisKKyBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUdWUgSnVsIDI2CisgMTQ6MjQ6NTUgMjAxMSArMDIwMAorCisyMDExLTA3LTI1ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgZjljY2JjNzcyNjY2MTM0ZDFkMTc4YjUwNWFmOWRkY2RkOWVkNDI0NCBBdXRob3I6IEphbgorCisgU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgTW9uIEp1bCAyNQorIDE1OjAyOjE1IDIwMTEgKzAyMDAKKworMjAxMS0wNy0yMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgYjBjMGEzNTVkNWY2MDFhMTFiZTQ5MTRmYmY3MTM3MTZhYmQzMGEyOSBBdXRob3I6IFdlcworCisgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUdWUgSnVsIDE5CisgMTg6MzY6MTEgMjAxMSAtMDcwMAorCisyMDExLTA3LTIwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCBjMTRmYzM4NjE0YmFmMTBkNTE3MTM2ZjA0ODA5MDdiN2YwM2Q4ZDc0IEF1dGhvcjogV2VzCisKKyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFdlZCBKdWwgMjAKKyAxMzo0NDo1OSAyMDExIC0wNzAwCisKKzIwMTEtMDctMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmM6IHJlbW92ZSBicm9rZW4gd2hpdGVzcGFjZSBsaW5lcyB0aGF0CisKKyBsZWFkcyB0byByZWFkaW5nIGNvbmZ1c2lvbgorCisyMDExLTA3LTIwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCBlYmRkMjE2YzA3NGJmNDFjZDNhMDg0YmQxNDY4OWNmMDFjODg3YjMxIEF1dGhvcjogV2VzCisKKyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFR1ZSBKdWwgMTkKKyAxODozNjoxMSAyMDExIC0wNzAwCisKKzIwMTEtMDctMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIC5naXRpZ25vcmU6IHVwZGF0ZWQgZ2l0aWdub3JlIHRvIGlnbm9yZSBhIG51bWJlciBvZiBhdXRvLWdlbmVyYXRlZAorCisgZmlsZXMKKworMjAxMS0wNy0xOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYzogcmVtb3ZlIGJyb2tlbiB3aGl0ZXNwYWNlIGxpbmVzIHRoYXQKKworIGxlYWRzIHRvIHJlYWRpbmcgY29uZnVzaW9uCisKKzIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IGRmNWY3MDA1NWNmOWJlMzNmMDVmYjUwYWJlMmY1YTgxZWFjMDkyYWQgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bCAxOSAxMTowNzoxOSAyMDExICswMjAwCisKKzIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IGY1OTZmMTgyNDJkY2RmZDZjZjQ5Yzg4ZGExZDgzNmMxNmUyNjBjYWMgTWVyZ2U6IDBmMzA5YjQKKworIDcwZGVlNGIgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsCisgMTkgMTE6MzM6MjggMjAxMSArMDIwMAorCisyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6CisgICAgICAzMzY5NjgwOgorCisgZnJvbSBJbHlhIFlhbm9rOiBjaGFuZ2Ugc25tcF9lbmFibGVhdXRoZW50cmFwcyBmcm9tIGludCB0byBsb25nIHN1Y2gKKyB0aGF0IG1vZGlmeWluZyB0aGUgY29ycmVzcG9uZGluZyBNSUIgb2JqZWN0IGRvZXMgbm90IG92ZXJ3cml0ZQorIG1lbW9yeSBpbiA2NC1iaXQgYnVpbGRzLgorCisyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzogQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMzcwNjQ1OgorCisgZnJvbSBCaWxsIEZlbm5lcjogRml4IEFnZW50WCBzdWJhZ2VudCBmb3VyIGJ5dGUgbGVhaworCisyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGhhcm5lc3M6IGRvCisKKyBub3QgaW52b2tlIElTUlVOTklORygpIG9uIE1pbkdXLgorCisyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGhhcm5lc3M6CisKKyBjbGVhbnVwIC0gcmVtb3ZlIGNvZGUgdGhhdCBiZWNhbWUgc3VwZXJmbHVvdXMuCisKKzIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IE1pbkdXOiBEbyBub3QKKworIGFzc3VtZSB0aGF0IGtpbGwuZXhlIHJlcG9ydHMgdmlhIGl0cyBleGl0IHN0YXR1cyB3aGV0aGVyIHRoZQorIHNpZ25hbGxlZCBwcm9jZXNzIHN0aWxsIGV4aXN0cy4KKworMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQ0hBTkdFUzogdGVzdGluZzoKKworIFJlbW92ZSB0aGUgZnVuY3Rpb24gV0FJVE9SRElFKCkgZnJvbSBzaW1wbGVfZXZhbF90b29scy5zaCBzaW5jZSBpdAorIGlzIG5ldmVyIGludm9rZWQuCisKKzIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CisKKyBTaW1wbGlmeSBXQUlURk9SKCkgaW4gc2ltcGxlX2V2YWxfdG9vbHMuc2guIFRoZSBjb2RlIHRoYXQgaGFuZGxlZAorIGludm9jYXRpb24gb2YgV0FJVEZPUigpIHdpdGggemVybyBvciBvbmUgYXJndW1lbnRzIGhhcyBiZWVuIGRyb3BwZWQKKyBzaW5jZSBXQUlURk9SKCkgaXMgYWx3YXlzIGludm9rZWQgd2l0aCB0d28gYXJndW1lbnRzLgorCisyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGhhcm5lc3M6CisKKyBtaW5vciBzaW1wbGlmaWNhdGlvbi4KKworMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZTogQ0hBTkdFUzoKKworIHRlc3Rpbmc6IFNraXAgdGVzdCA1OSBpZiBTSUdIVVAgaXMgbm90IHN1cHBvcnRlZC4gTWFrZXMgdGVzdCA1OSBwYXNzCisgb24gTWluR1cuCisKKzIwMTEtMDctMDYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IE1pbkdXIGZpeAorCisKKzIwMTEtMDctMDYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFRlc3QgZnJhbWV3b3JrCisKKyByZWZhY3RvcmluZzogSW50cm9kdWNlIFdBSVRGT1JOT1RDT05EKCkuCisKKzIwMTEtMDctMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CisKKyBNYWtlIFNUT1BQUk9HIHNlbmQgU0lHVEVSTSByZXBlYXRlZGx5LiBUaGlzIGZpeGVzIGEgcmFjZSB3aGVyZQorIFNJR1RFUk0gY291bGQgYmUgc2VudCBiZWZvcmUgdGhlIFNJR1RFUk0gc2lnbmFsIGhhbmRsZXIgd2FzIHNldCB1cCwKKyBlc3BlY2lhbGx5IHdoZW4gcnVubmluZyB0aGUgcmVncmVzc2lvbiB0ZXN0cyB1bmRlciBWYWxncmluZC4KKyBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIHRoZSBTTk1QX1ZFUkJPU0U9MSBvdXRwdXQgZXZlbiBtb3JlIHZlcmJvc2UuCisKKzIwMTEtMDctMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFRlc3QgaGFybmVzcworCisgcmVmYWN0b3Jpbmc6IGludHJvZHVjZSBFQ0hPU0VORFNJR1RFUk0oKSBhbmQgRUNIT1NFTkRTSUdLSUxMKCkKKworMjAxMS0wNy0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogRml4IGEgYnVnIGluCisKKyB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoIHRoYXQgd2FzIGludHJvZHVjZWQKKyBpbiBjb21taXQgOTM4ZDc1Yy4KKworMjAxMS0wNy0wMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogSWdub3JlICouZXhlIGZpbGVzIGdlbmVyYXRlZCBieSB0aGUgV2luMzIKKworIGJ1aWxkCisKKzIwMTEtMDctMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CisKKyBUZXN0IG9ubHkgb25jZSBkdXJpbmcgYSB0ZXN0IHdoZXRoZXIgdGhlIHNoZWxsIHN1cHBvcnRzIHN1Yi1zZWNvbmQKKyBzbGVlcGluZyBpbnN0ZWFkIG9mIHJlcGVhdGVkbHkuCisKKzIwMTEtMDctMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjogQ0hBTkdFUzogdGVzdGluZzogQ2hhbmdlZAorCisgZGVmYXVsdCB0aW1lb3V0IGZyb20gMXMgdG8gMTBzIHdoZW4gdGhlIHJlZ3Jlc3Npb24gdGVzdHMgYXJlIHJ1bgorIHVuZGVyIFZhbGdyaW5kCisKKzIwMTEtMDctMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CisKKyBBZnRlciBoYXZpbmcgc2VudCBTSUdURVJNIHRvIHNubXBkIG9yIHNubXB0cmFwZCwgd2FpdCB1bnRpbCB0aGUKKyBwcm9jZXNzIGhhcyBzdG9wcGVkIGJlZm9yZSBzZW5kaW5nIFNJR0tJTEwuIFRoaXMgcmFjZSBjb25kaXRpb24gd2FzCisgaGl0IG1vc3QgZWFzaWx5IHdoZW4gcnVubmluZyB0aGUgcmVncmVzc2lvbiB0ZXN0cyB1bmRlciBWYWxncmluZC4KKyBDSEFOR0VTOiB0ZXN0aW5nOiBDaGVjayBQSUQgZmlsZSBleGlzdGVuY2UgYWZ0ZXIgaGF2aW5nIHJlYWQgaXQKKyBpbnN0ZWFkIG9mIGJlZm9yZS4gVGhpcyBmaXhlcyB0aGUgcmFjZSBjb25kaXRpb24gd2hlcmUgdGhlIFBJRCBmaWxlCisgZGlzYXBwZWFyZWQgYWZ0ZXIgdGhlIGV4aXN0ZW5jZSBjaGVjayBhbmQgYmVmb3JlIGl0IHdhcyByZWFkLgorCisyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRml4IGEgYnVnIGluIGEgZGVidWcgc3RhdGVtZW50CisKKyBpbnRyb2R1Y2VkIGJ5IHBhdGNoIDMzMTAyNTAgLyByMjA0OTQ6IHVzZSAlbGQgdG8gcHJpbnQgYSB2YWx1ZSBvZgorIHR5cGUgb2lkIGluc3RlYWQgb2YgJWQuICBUaGlzIHBhdGNoIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIGZvbGxvd2luZyB0byBWNS42IFNWTiBwYXRjaGVzOiBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDBmMzA5YjQ5M2MyMWQzYzY5MTQ0ODc1MTRiNDE1NjA3NTRmZmNkZjkgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bCAxOSAwODozNzo1MCAyMDExICswMjAwCisKKzIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDFiNzQ1NGJjMjgxNTY4NDcwYTEzMDA0NzZkMmVkYjRmNDExZTYwMjkgTWVyZ2U6IDhkOWRjYzgKKworIDY5MGVhN2QgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsCisgMTkgMDg6MzE6MjggMjAxMSArMDIwMAorCisyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBhcHBzL3NubXB0cmFwZC5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IEFkZCBtaXNzaW5nIG5ld2xpbmUKKworIGNoYXJhY3RlciBpbiBhIGxvZyBtZXNzYWdlCisKKzIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIGFwcHMvc25tcHRyYXBkLmM6IENIQU5HRVM6IHNubXB0cmFwZDogSW52b2tlIHNodXRkb3duX3BlcmwoKSB3aGVuCisKKyBzaHV0dGluZyBkb3duCisKKzIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzogU3BlbGxpbmcgZml4OiBicmFua2V0IC0+IGJyYWNrZXQKKworCisyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IFJ1biBhdXRvcmVjb25mLgorCisgRml4ZXMgYnVpbGQgYnJlYWthZ2UgY2F1c2VkIGJ5IHBhdGNoCisgZDU4OGVjODUzYmQwNTMxZjIxMmZjYmY1MWI5NjJiOTZjNjgyOGI1OSAoUlBNIDQuOSBzdXBwb3J0KQorCisyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCBkNjE3ZDg0ZjgzZmE2OWVkOWZhOWY5OGVmYzRhZmFmODgwZDEyMWYyIEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBKdWwgMTQgMTY6NDM6NDcgMjAxMSArMDIwMAorCisyMDExLTA3LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IE1ha2UKKworIG5ldHNubXBfaXB2Nl9mbXRhZGRyKCkgc2hvdyB0aGUgSVB2NiBzY29wZSBJRAorCisyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAKKyAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKKyAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogQWRkIHN1cHBvcnQKKyAgICAgIGZvcgorCisgSVB2NiBhZGRyZXNzIHNjb3BlIElECisKKzIwMTEtMDctMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogUnVuIGF1dG9yZWNvbmYKKworCisyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCBhNTY3MjFhM2U3NzU0ZTM4OWRhYTdlOGEzZDU3OTI4OTllZGM5ZGUzIEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBKdWwgMTQgMTY6MTg6MzIgMjAxMSArMDIwMAorCisyMDExLTA3LTE1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCA4NDRkNGNlODY3YmYzYWJlN2I3NTM2YzVkYmZiYTQwMTkzN2E4ZDRhIE1lcmdlOiBlZWQwMTk4CisKKyA2MTAzNmE4IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgRnJpIEp1bCAxNSAxNTozMzoxMCAyMDExIC0wNzAwCisKKzIwMTEtMDctMTUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDg1MWJjZjUzZmNkMTNjZGYwYmE5ZjEyZTVkNjAzZTczZjhiYjk2MTEgQXV0aG9yOiBXZXMKKworIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgRnJpIEp1bCAxNQorIDE1OjMyOjQ5IDIwMTEgLTA3MDAKKworMjAxMS0wNy0xNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6IGZpeCBhIHR5cG8KKworCisyMDExLTA3LTEzICBSb2JlcnQgU3RvcnkgPHJzdG9yeUBsb2NhbGhvc3Q+CisKKyAgICogc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOiBzbm1wbGliOiAgdHdlYWsgcGF0Y2ggMzA0NDg4OCB0byByZXN0b3JlCisKKyBwcm9wZXIgbm9uLWVycm9yIHJldHVybiBkdXJpbmcgbWliIGxvYWRpbmcKKworMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBhZGRlZCA1LjcgcGF0Y2hlcyB0byB0aGUgYnJhbmNoIGxpc3QgYW5kIGZpeCB0aGUgcmVsZWFzZSBmaWxlCisKKworMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBhZGRlZCA1LjcgcGF0Y2hlcyB0byB0aGUgYnJhbmNoIGxpc3QKKworCisyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBkaXN0L3JlbGVhc2U6IGEgY29weSBvZiB0aGUgcmVsZWFzZSBmaWxlIGFwcGxpZWQgdG8gdGhlIG9sZGVyCisKKyBicmFuY2hlcworCisyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIDUuNyBwYXRjaGVzCisKKworMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgYzQzMTIzMWU4ZjBhMzlkMTk1MGJjNzJjMzJlMzQwMmY5MGZhODAzMCBNZXJnZTogNTZmZWU0MAorCisgYTJhYzI0ZCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgorIE1vbiBKdWwgMTEgMTk6MzM6MTcgMjAxMSAtMDcwMAorCisyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgY29weSBvZiB0aGUKKworIHNoZWxsLWZ1bmN0aW9ucyB0byB0aGUgb2xkZXIgYnJhbmNoCisKKzIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGRpc3QvcmVsZWFzZTogYSBjb3B5IG9mIHRoZSByZWxlYXNlIGZpbGUgYXBwbGllZCB0byB0aGUgb2xkZXIKKworIGJyYW5jaGVzCisKKzIwMTEtMDctMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZm9yIDUuNworCisKKzIwMTEtMDctMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAorICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNworCisKKzIwMTEtMDctMDEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOiBSZXZlcnQgImZpeCBkdGxzdWRwCisKKyB0cmFuc3BvcnQgYWRkcmVzcyBmb3JtYXQgZnVuY3Rpb24iIFRoaXMgcmV2ZXJ0cyBjb21taXQgMmFiM2E2ZTZmMmZjYzFmZjNlNWYwZmI1ZGM1ZDA1ZTQ5ODgyMGQ4OS4gICAtIGZvciBzb21lIHJlYXNvbiBJIHNhdyAncmMnIGFuZCBteSBicmFpbiBpbnRlcnByZXRlZCBpdCBhcyAgICAncHJlLXJlbGVhc2UnLiBXaGF0IGNhbiBJIHNheSwgaXQgd2FzIGxhdGUuIDotLworCisyMDExLTA3LTAxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUBsb2NhbGhvc3Q+CisKKyAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzogZml4IGR0bHN1ZHAgdHJhbnNwb3J0CisKKyBhZGRyZXNzIGZvcm1hdCBmdW5jdGlvbiAgLSB1cGRhdGUgaXB2NCBmbXRhZGRyIHRvIGhhbmRsZSBzb2NrYWRkciBhbmQgdG8gY2hlY2sgICAgc2l6ZSBiZWZvcmUgYXNzdW1pbmcgZGF0YSBpcyBhZGRyIHBhaXIgIC0gbW92ZSBkdGxzdWRwIGZ1bmN0aW9ucyB0byBleHRyYWN0IGFkZHIocykgdG8gdGxzYmFzZQorCisyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCA1NmZlZTQwMTE4YjIxYTlmNGRjMDJhNmYyNDdmN2RhNmZjNjlhMDA1IE1lcmdlOiBkMzkxOTRiCisKKyA5ZmY0NzE0IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgV2VkIEp1biAyOSAyMzoxODoxMyAyMDExIC0wNzAwCisKKzIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBmaXggdGFnIHB1c2hpbmcKKworCisyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogZml4IHRhZyBwdXNoaW5nCisKKworMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IG1pc2MgcHVibGljYXRpb24gZml4ZXMgZm91bmQgd2hpbGUKKworIHB1Ymxpc2hpbmcKKworMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LnJjMworCisKKzIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAorICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy5yYzMKKworCisyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogcmVtb3ZlIHVubmVlZGVkIGNvbW1lbnQKKworCisyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogbWlzYyBwdWJsaWNhdGlvbiBmaXhlcyBmb3VuZCB3aGlsZQorCisgcHVibGlzaGluZworCisyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiByYW4gYXV0b2hlYWRlciB0byBhZGQgdGhlCisKKyBtaXNzaW5nIHRlbXBsYXRlIGlmZGVmcworCisyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGZvciA1LjcucmMyCisKKworMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCisgICAgICBkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LnJjMgorCisKKzIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDY0YjZjNjhhODQ5MzBhYjAxZTNlMTQ2YzQ5ZjNhYjUzODJlZmRhM2UgTWVyZ2U6IDEyN2VlYzIKKworIGQzOTE5NGIgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBXZWQgSnVuIDI5IDE3OjEyOjQ2IDIwMTEgLTA3MDAKKworMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgZGY5Y2Y5YTFlMjkzZDA1YTI0Nzg2Njk0ZjY4YzA1YTJiZTEzYTliMyBBdXRob3I6IFdlcworCisgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBXZWQgSnVuIDI5CisgMTY6MzQ6MTEgMjAxMSAtMDcwMAorCisyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogdXNlIGdpdDJjbCB0byBnZW5lcmF0ZSB0aGUgQ2hhbmdlTG9nIGZpbGU7CisKKyBuZWVkcyBtdWNoIG1vcmUgd29yay4KKworMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IHVzZSB0aGUgbmV3IHJ1bi1hdXRvY29uZiBzY3JpcHQKKworCisyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBkaXN0L3J1bi1hdXRvY29uZjogQSBzY3JpcHQgdG8gaW52b2tlIHRoZSBjb3JyZWN0IHZlcnNpb24gb2YgdGhlCisKKyBhdXRvY29uZiB0b29sCisKKzIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiByZW1haW5pbmcgY29tbWFuZCBsaW5lIGNoYW5nZXMgZm9yIHN2biAtPgorCisgZ2l0CisKKzIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBtYWtlIHRoZSBicmFuY2ggZWNobyBvdXRwdXQgYW5kIHN2biB1cGRhdGUKKworIGNvbnZlcnRlZCB0byBnaXQgZXF1aXZhbGVudHMKKworMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IHB1bGwgdGhlIGJyYW5jaCBpbmZvIGZyb20gZ2l0CisKKworMjAxMS0wNi0yOSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG0uYywgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgCisgICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczE6IFR3ZWFrIFJQTSBoYW5kbGluZyB0byB3b3JrIHdpdGgKKyAgICAgIGxpYnJhcnkKKworIHZlcnNpb24gNC45CisKKzIwMTEtMDYtMjkgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCBkNTg4ZWM4NTNiZDA1MzFmMjEyZmNiZjUxYjk2MmI5NmM2ODI4YjU5IEF1dGhvcjogSmFuCisKKyBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBXZWQgSnVuIDI5CisgMTY6MDc6MDAgMjAxMSArMDIwMAorCisyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBkaXN0L3JlbGVhc2U6IG5vdGVkIHRoYXQgdGhlIG1hc3RlciBicmFuY2ggaXMgaW4gcmMgc3RhdGUKKworCisyMDExLTA2LTI4ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KKworICAgKiA6IGNvbW1pdCA4YjIzYjRjMTM5MjNiOGNhZjRkNGFlZDMyYTQ1MDkzMzkzNGZmNDYxIE1lcmdlOiAxNTM3ODFkCisKKyA0N2Y1MDQ4IEF1dGhvcjogV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+IERhdGU6ICAgVHVlCisgSnVuIDI4IDEzOjE0OjUyIDIwMTEgLTA3MDAKKworMjAxMS0wNi0yOCAgV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+CisKKyAgICogOiBjb21taXQgYWY4YjIzNTIzNGY3Mjk0NGE2NDlhNzZmMGQzMGNmZjk1YWMyZTg5NSBBdXRob3I6IFdlcworCisgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4gRGF0ZTogICBUdWUgSnVuIDI4IDEzOjExOjE5IDIwMTEKKyAtMDcwMAorCisyMDExLTA2LTI4ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHVzZSBnaXQgbWVyZ2Ugd2l0aCB0aGUgLS1sb2cKKworIG9wdGlvbgorCisyMDExLTA2LTI4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCAxNTM3ODFkYmZiMmFmYzAwMDNiYTRlNThmZmNjYTUzMDAxZTQ4NmQ2IE1lcmdlOiBiM2U4MGRlCisKKyAzYzVhNDA5IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bgorIDI4IDE5OjQzOjEzIDIwMTEgKzAyMDAKKworMjAxMS0wNi0yOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogOiBjb21taXQgOWJjODJlNGNhNDgzN2YwMDA3MmRiYTg2Yjk0OTdhMjcxODY5MDlmOSBBdXRob3I6IEJhcnQgVmFuCisKKyBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVuIDI4IDE5OjEzOjM1IDIwMTEgKzAyMDAKKworMjAxMS0wNi0yOCAgV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+CisKKyAgICogRkFROiBXZSdyZSBub3cgdXNpbmcgZ2l0IQorCisKKzIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgorCisgICAqIDogY29tbWl0IGIzZTgwZGU5YjA3ZDI4MmZmMTFhZjhiMDZhOTFkNjQyNzlkMzI2MWQgTWVyZ2U6IGM0YWQyNzgKKworIDZhNWU1YTYgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4gRGF0ZTogICBNb24KKyBKdW4gMjcgMjE6MzQ6NTkgMjAxMSAtMDcwMAorCisyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KKworICAgKiA6IGNvbW1pdCAzOGZlODE3N2Q1MzMxMzVhNmNjNjgyNzI0ZjE2YTkxMTEzYmNkN2YzIE1lcmdlOiA3ZDkxN2NmCisKKyBkZDU4YmFmIEF1dGhvcjogV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+IERhdGU6ICAgTW9uCisgSnVuIDI3IDIxOjM0OjU2IDIwMTEgLTA3MDAKKworMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxvcGVuc291cmNlQGhhcmRha2Vycy5uZXQ+CisKKyAgICogOiBjb21taXQgNWMxNzdmNTE3ZDE2ZjA1NTQ1YjI3OWQxNmYwZTRmZDU2OTZiZTY1MSBNZXJnZTogZjBkNmJmMAorCisgYzJiY2ViYyBBdXRob3I6IFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PiBEYXRlOiAgIE1vbgorIEp1biAyNyAyMTozNDo1NSAyMDExIC0wNzAwCisKKzIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgorCisgICAqIDogY29tbWl0IDljOTc2OTU3MmViOGMwM2I2OTU1NmMxYzVhYWI5YjRkNTZjNmQxZDMgQXV0aG9yOiBXZXMKKworIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgTW9uIEp1biAyNworIDE0OjExOjE0IDIwMTEgKzAwMDAKKworMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGZlYXR1cmUgdG8gbm90IHJvbGwKKworIGJyYW5jaGVzIGN1cnJlbmx5IGluIHJjIHBoYXNlIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUzMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIG5zcm9sbHVwIGZ1bmN0aW9uIGZvcgorCisgcm9sbGluZyBicmFuY2hlcyB1cHdhcmQuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogY3JlYXRlZCBhbiBuc3BhdGNoYXBwbHkgZnVuY3Rpb24KKworIHRvIGFwcGx5IGEgcHJldmlvdXNseSB0ZXN0ZWQgcGF0Y2ggZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgbnN0cnlwYXRjaCBmdW5jdGlvbiB0bworCisgdGVzdCBwYXRjaCBhcHBsaWNhdGlvbiBhZ2FpbnN0IHZhcmlvdXMgYnJhbmNoZXMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTI5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIHZlcmJvc2Ugb3V0cHV0IGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTI4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG1vcmUgcHJlZml4IGNoYW5nZXMgYW5kIGJldHRlcgorCisgc2V0dGluZyBvZiBkZWZhdWx0IHZhbHVlcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogdXNlIG5zIHByZWZpeGVzIGluc3RlYWQgb2YgZ2VuZXJpYworCisgc25tcCBwcmVmaXhlcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMjQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMjQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IAorCisgTWlzc2luZyBjaGVjayBmb3IgcnBtdHMuaCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTI0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGNvbmZpZ3VyZTogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0yNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgCisgICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAorICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgCisgICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIAorICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgCisgICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIAorICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgCisgICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIAorICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIAorICAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgCisgICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgCisgICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgCisgICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgCisgICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIAorICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgCisgICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgCisgICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIAorICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF91dGlsLjMsCisgICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgCisgICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6IGRvY3VtZW50YXRpb24gdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0yNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsIAorICAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0yMyAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogVHdlYWsgUlBNIGhhbmRsaW5nIHRvIHdvcmsKKworIHdpdGggbGlicmFyeSB2ZXJzaW9uIDQuOSBCYXNlZCBvbiBhIHBhdGNoIGJ5IEphbiBTYWZyYW5layBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6IFByb3ZpZGUgYSBmcmFtZXdvcmsgZm9yIHJlYWRpbmcKKworIFJQTSBwYWNrYWdlIGluZm9ybWF0aW9uIGZyb20gYSBjYWNoZSBkaXJlY3RvcnkgKHJhdGhlciB0aGFuIHF1ZXJ5aW5nCisgdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcworIGZ1bmN0aW9uYWxpdHkuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNTE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGNvbmZpZ3VyZTogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDUxNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsIAorICAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDUxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0yMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6IFByb3ZpZGUgYQorCisgZnJhbWV3b3JrIGZvciByZWFkaW5nIFJQTSBwYWNrYWdlIGluZm9ybWF0aW9uIGZyb20gYSBjYWNoZSBkaXJlY3RvcnkKKyAocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcworIGZ1bmN0aW9uYWxpdHkuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTIxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzogUHJvdmlkZSBhCisKKyBmcmFtZXdvcmsgZm9yIHJlYWRpbmcgUlBNIHBhY2thZ2UgaW5mb3JtYXRpb24gZnJvbSBhIGNhY2hlIGRpcmVjdG9yeQorIChyYXRoZXIgdGhhbiBxdWVyeWluZyB0aGUgUlBNZGIgZGlyZWN0bHkpLiAgTXkgYXBvbG9naWVzIHRvIEplZmYgSm9obnNvbiBmb3IgdGhlIGRlbGF5IGluIGFkZGluZyB0aGlzCisgZnVuY3Rpb25hbGl0eS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA1MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMjEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jOiBQcm92aWRlIGEKKworIGZyYW1ld29yayBmb3IgcmVhZGluZyBSUE0gcGFja2FnZSBpbmZvcm1hdGlvbiBmcm9tIGEgY2FjaGUgZGlyZWN0b3J5CisgKHJhdGhlciB0aGFuIHF1ZXJ5aW5nIHRoZSBSUE1kYiBkaXJlY3RseSkuICBNeSBhcG9sb2dpZXMgdG8gSmVmZiBKb2huc29uIGZvciB0aGUgZGVsYXkgaW4gYWRkaW5nIHRoaXMKKyBmdW5jdGlvbmFsaXR5LiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRm9sbG93LXVwIGZvciByMjA1MTE6IHJlYWxseSB1c2UKKworIHRoZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmljYXRpb24uICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRm9sbG93LXVwIGZvciByMjA1MTE6IHJlYWxseSB1c2UKKworIHRoZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmljYXRpb24uICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRml4IGEgYnVnIGluIGEgZGVidWcgc3RhdGVtZW50CisKKyBpbnRyb2R1Y2VkIGJ5IHBhdGNoIDMzMTAyNTAgLyByMjA0OTQ6IHVzZSAlbGQgdG8gcHJpbnQgYSB2YWx1ZSBvZgorIHR5cGUgb2lkIGluc3RlYWQgb2YgJWQuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRml4IGEgYnVnIGluIGEgZGVidWcgc3RhdGVtZW50CisKKyBpbnRyb2R1Y2VkIGJ5IHBhdGNoIDMzMTAyNTAgLyByMjA0OTQ6IHVzZSAlbGQgdG8gcHJpbnQgYSB2YWx1ZSBvZgorIHR5cGUgb2lkIGluc3RlYWQgb2YgJWQuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzogVXNlICVwIHRvIHByaW50IGEgcG9pbnRlciBpbnN0ZWFkCisKKyBvZiAlbGQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6IFVzZSAlcCB0byBwcmludCBhIHBvaW50ZXIgaW5zdGVhZAorCisgb2YgJWxkIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA1MTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMTMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIENIQU5HRVM6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTA4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTEzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTA3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTEzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBjb25maWd1cmU6IHJ1biBjb3JyZWN0IHZlcnNpb24gb2YgYXV0b2NvbmYgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMTMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAorICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMTMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGNvbmZpZ3VyZTogcmFuIGF1dG9jb25mIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTEwICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYzogSW5jbHVkZSBzdGRsaWIuaCB0byBtYWtlIGRtYWxsb2MgaGFwcHkKKyAgICAgIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDUwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0xMCAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfc2VjdXJpdHlfbW9kdWxlczogRml4IGJ1aWxkIG9mIHNubXB1c20KKworIHdoZW4gYWRkaXRpb25hbCBzZWMgbW9kdWxlcyByZXF1ZXN0ZWQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTAxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYzogSW5jbHVkZSBzdGTniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy054it9YCRi++9pPWAjLXniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy09YCSkWIuaCB0byBtYWtlIGRtYWxsb2MgaGFwcHkKKyAgICAgIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTAwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTA5ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOiBDSEFOR0VTOiBCVUc6IDMxNTE4NDU6IGZpeCBtdWx0aXBsZQorCisgcmVnaXN0cmF0aW9ucyBvZiBzbm1wIHRyYW5zcG9ydCBoYW5kbGVyIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0OTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMDkgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6IENIQU5HRVM6IEJVRzogMzE1MTg0NTogZml4IG11bHRpcGxlCisKKyByZWdpc3RyYXRpb25zIG9mIHNubXAgdHJhbnNwb3J0IGhhbmRsZXIgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDk5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTA4ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvc25tcF9hcGkuYywgCisgICAgICBzbm1wbGliL3N5c3RlbS5jOiBtb3JlIGRuc3NlYyB0d2Vha3MgIC0gY3JlYXRlIGFuIGFwcC1nbG9iYWwKKyAgICAgIHZhbGlkYXRvciBjb250ZXh0IGZvciB1c2Ugd2l0aCBhbGwgICAgdmFsaWRhdGlvbiByb3V0aW5lcy4gbWFpbmx5CisgICAgICB1c2VmdWwgZm9yIGxvbmctbGl2ZWQgYXBwcy4gICAtIHVzZSB0aGUgYXBwdHlwZSBhcyB0aGUgdmFsaWRhdG9yCisgICAgICAnc2NvcGUnLCBhbGxvd2luZyAgICBmb3IgYXBwLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb2YgdmFsaWRhdGlvbgorICAgICAgdmlhIGxpYnZhbCdzICAgIGRuc3ZhbC5jb25mIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDk4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTA3ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDogYWRkIGEgbWF4IGRlZmluZSBmb3IKKworIGVhY2ggZGVmYXVsdCBzdG9yZSB0eXBlICAgbm90IGFjdHVhbGx5IHVzZWQsIGp1c3QgYSBoZWxwZnVsIHJlbWluZGVyIGZvciB0aG9zZSBhZGRpbmcgICBuZXcgaWRzIHdobyBtaWdodCBub3QgdGhpbmsgdG8gY2hlY2sgTkVUU05NUF9EU19NQVhfU1VCSURTLiAgICAodGhlIGJvb2wgbGlzdCBpcyByYXBpZGx5IGFwcHJvYWNoaW5nIHRoZSBjdXJyZW50IGxpbWl0LikgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTA3ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOiBtZW50aW9uIGJ1aWxkZGlyIHdoZW4KKworIGNvbXBsYWluaW5nIGFib3V0IG5vdCBiZWluZyBydW4gZnJvbSBzb3VyY2UgdHJlZSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0OTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHBlcmwvU05NUC9TTk1QLnhzOiBSZXZlcnRlZCByMjAzNjI6IHRoYXQgcGF0Y2ggbWFrZXMgc2Vuc2Ugb24gdGhlCisKKyB0cnVuayBhbmQgdGhlIDUuNiBicmFuY2ggYnV0IG5vdCBvbiB0aGUgNS41IG5vciBvbiB0aGUgNS40IGJyYW5jaC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0OTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CisKKyBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzMxMDI1MDogZnJvbSBmZW5uZXI6IG1pc2MgZml4ZXMgZm9yIGRlYnVnZ2luZworIG91dHB1dCBvZiBhZ2VudHggZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ5NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0wMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKKworIENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMzEwMjUwOiBmcm9tIGZlbm5lcjogbWlzYyBmaXhlcyBmb3IgZGVidWdnaW5nCisgb3V0cHV0IG9mIGFnZW50eCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0OTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CisKKyBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzMxMDI1MDogZnJvbSBmZW5uZXI6IG1pc2MgZml4ZXMgZm9yIGRlYnVnZ2luZworIG91dHB1dCBvZiBhZ2VudHggZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ5NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0wMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogQ0hBTkdFUywgTkVXUzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0OTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOiBtYWtlIGRlcGVuZCBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0wMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogY29uZmlndXJlOiBmaXhlZCBhdXRvY29uZiB2ZXJzaW9uIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDkwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTAxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKKyAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDg5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIENIQU5HRVM6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ4NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ4NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgCisgICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAKKyAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDogbWFrZQorCisgZGVwZW5kIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMDEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogcGVybC9TTk1QL1NOTVAueHM6IFJlaW5zdGF0ZSBhbiAidW51c2VkIiBsYWJlbCB0aGF0IGlzIGFjdHVhbGx5CisKKyBzdGlsbCByZXF1aXJlZC4gIChyZWZlcmVuY2VkIGluIGxpbmUgMjcxMCkgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ4NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6IEZpeCB0eXBvIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgCisgICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAorICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgCisgICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIAorICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgCisgICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIAorICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgCisgICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIAorICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIAorICAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgCisgICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgCisgICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgCisgICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgCisgICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIAorICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgCisgICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgCisgICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIAorICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF91dGlsLjMsCisgICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgCisgICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6IGRvY3VtZW50YXRpb24gdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsIAorICAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ4MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBDSEFOR0VTOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMDEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMDEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIAorICAgICAgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCAKKyAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOiBtYWtlIGRlcGVuZCBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMDEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIAorICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIAorICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgCisgICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIAorICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsIAorICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgCisgICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgCisgICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgCisgICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIAorICAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIAorICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIAorICAgICAgbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIAorICAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIAorICAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgCisgICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgCisgICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIAorICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdXRpbC4zLAorICAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIAorICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOiBkb2N1bWVudGF0aW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMDEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIENIQU5HRVMsIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgCisgICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZQorICAgICAgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTAxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogZml4IHhtbCBxdW90aW5nIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTMxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgc25tcGxpYi9wYXJzZS5jOiBmaXggbm9uIGV4aXN0ZW50IG1hbGxvYyBtYWNybyB0byB1c2UgY2FsbG9jCisgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ3MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0zMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzoKKworIHNubXBsaWI6IEFwcGxpZWQgdGhlIGludGVudCBvZiBwYXRjaCAzMDQ0ODg4IHRvIGFsbG93IGFwcGxpY2F0aW9ucworIHRvIHJlYWQgdGhlIGVycm9yIG1lc3NhZ2VzIG9mIGEgTUlCIHBhcnNpbmcgZmFpbHVyZS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0zMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogCisKKyBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzA2Njg2MjogZnJvbSBmaGV3OiBmaXggdGhlIGFnZW50IGZvcgorIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzIG9mIHRoZSBkaXNrIGFuZCBleHRlbmQgdGFibGVzLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0zMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogCisKKyBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzA2Njg2MjogZnJvbSBmaGV3OiBmaXggdGhlIGFnZW50IGZvcgorIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzIG9mIHRoZSBkaXNrIGFuZCBleHRlbmQgdGFibGVzLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0zMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogCisKKyBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzA2Njg2MjogZnJvbSBmaGV3OiBmaXggdGhlIGFnZW50IGZvcgorIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzIG9mIHRoZSBkaXNrIGFuZCBleHRlbmQgdGFibGVzLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0zMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogCisKKyBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzA2Njg2MjogZnJvbSBmaGV3OiBmaXggdGhlIGFnZW50IGZvcgorIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzIG9mIHRoZSBkaXNrIGFuZCBleHRlbmQgdGFibGVzLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0zMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogCisKKyBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzA2Njg2MjogZnJvbSBmaGV3OiBmaXggdGhlIGFnZW50IGZvcgorIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzIG9mIHRoZSBkaXNrIGFuZCBleHRlbmQgdGFibGVzLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTMxICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgaHJTV1J1blBhdGgKKworIG9mIHN3YXBwZWQtb3V0IHByb2Nlc3NlcyBvbiBMaW51eC4gIGZnZXRzKCkgcmV0dXJucyBOVUxMIGJvdGggd2hlbiAvcHJvYy9QSUQvY21kbGluZSBpcyBlbXB0eSAoPSBzd2FwcGVkCisgb3V0KSBhbmQgd2hlbiB0aGUgcHJvY2VzcyBleGl0ZWQgYWZ0ZXIgZm9wZW4oKSwgc28gY2hlY2sKKyAvcHJvYy9QSUQvc3RhdHVzIGluIGJvdGggY2FzZXMuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTMxICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgaHJTV1J1blBhdGgKKworIG9mIHN3YXBwZWQtb3V0IHByb2Nlc3NlcyBvbiBMaW51eC4gIGZnZXRzKCkgcmV0dXJucyBOVUxMIGJvdGggd2hlbiAvcHJvYy9QSUQvY21kbGluZSBpcyBlbXB0eSAoPSBzd2FwcGVkCisgb3V0KSBhbmQgd2hlbiB0aGUgcHJvY2VzcyBleGl0ZWQgYWZ0ZXIgZm9wZW4oKSwgc28gY2hlY2sKKyAvcHJvYy9QSUQvc3RhdHVzIGluIGJvdGggY2FzZXMuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTMxICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgaHJTV1J1blBhdGgKKworIG9mIHN3YXBwZWQtb3V0IHByb2Nlc3NlcyBvbiBMaW51eC4gIGZnZXRzKCkgcmV0dXJucyBOVUxMIGJvdGggd2hlbiAvcHJvYy9QSUQvY21kbGluZSBpcyBlbXB0eSAoPSBzd2FwcGVkCisgb3V0KSBhbmQgd2hlbiB0aGUgcHJvY2VzcyBleGl0ZWQgYWZ0ZXIgZm9wZW4oKSwgc28gY2hlY2sKKyAvcHJvYy9QSUQvc3RhdHVzIGluIGJvdGggY2FzZXMuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTMxICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgaHJTV1J1blBhdGgKKworIG9mIHN3YXBwZWQtb3V0IHByb2Nlc3NlcyBvbiBMaW51eC4gIGZnZXRzKCkgcmV0dXJucyBOVUxMIGJvdGggd2hlbiAvcHJvYy9QSUQvY21kbGluZSBpcyBlbXB0eSAoPSBzd2FwcGVkCisgb3V0KSBhbmQgd2hlbiB0aGUgcHJvY2VzcyBleGl0ZWQgYWZ0ZXIgZm9wZW4oKSwgc28gY2hlY2sKKyAvcHJvYy9QSUQvc3RhdHVzIGluIGJvdGggY2FzZXMuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiB1cCB0aGUgYW50ZSBhbmQgcnVuIG90aGVyIHRlc3Qgc3VpdGVzCisKKyBiZXNpZGVzIGp1c3QgdGhlIGRlZmF1bHQgc2V0IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wdXNtLmM6IENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMjk5Mzg0OiBmaXggSU5GT1JNcyBzbworCisgdGhleSByZXRyeSBwcm9iaW5nIGZvciBhbiBlbmdpbmVJRC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wdXNtLmM6IEFwcGxpZWQgKHJvdWdobHkpIHBhdGNoIDMyOTkzNzAgdG8gYXZvaWQKKworIHJld3JpdGluZyBleGlzdGluZyBhdXRoa2V5L3ByaXZrZXkvZXRjcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOiBBcHBsaWVkIHRoZSBpbnRlbnQKKyAgICAgIG9mCisKKyBwYXRjaCAzMjk5Mzg2IHdoaWNoIGZpeGVzIGR1cGxpY2F0ZSBlbnRyaWVzIG9uIGEgU0lHSFVQLiAgVG8gYWNoaWV2ZQorIHRoaXMgc29tZSBuZXcgaGVhZGVyX2NvbXBsZXggZnVuY3Rpb25zIG5lZWRlZCB0byBiZSBjcmVhdGVkIHRoYXQKKyBkaWRuJ3QgY2hhbmdlIHRoZSBiZWhhdmlvciBvZiB0aGUgb2xkZXIgb25lcy4gIFRoZSBub3RpZmljYXRpb24gY29kZQorIG5vdyBjYWxscyB0aGVzZSBuZXdlciBmdW5jdGlvbnMuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMyOTkzODQ6IGZpeCBJTkZPUk1zIHNvCisKKyB0aGV5IHJldHJ5IHByb2JpbmcgZm9yIGFuIGVuZ2luZUlELiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMzI5OTM4NDogZml4IElORk9STXMgc28KKworIHRoZXkgcmV0cnkgcHJvYmluZyBmb3IgYW4gZW5naW5lSUQuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMjk5Mzg0OiBmaXggSU5GT1JNcyBzbworCisgdGhleSByZXRyeSBwcm9iaW5nIGZvciBhbiBlbmdpbmVJRC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMyOTkzODQ6IGZpeCBJTkZPUk1zIHNvCisKKyB0aGV5IHJldHJ5IHByb2JpbmcgZm9yIGFuIGVuZ2luZUlELiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBBcHBsaWVkIChyb3VnaGx5KSBwYXRjaCAzMjk5MzcwIHRvIGF2b2lkCisKKyByZXdyaXRpbmcgZXhpc3RpbmcgYXV0aGtleS9wcml2a2V5L2V0Y3MgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBBcHBsaWVkIChyb3VnaGx5KSBwYXRjaCAzMjk5MzcwIHRvIGF2b2lkCisKKyByZXdyaXRpbmcgZXhpc3RpbmcgYXV0aGtleS9wcml2a2V5L2V0Y3MgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBBcHBsaWVkIChyb3VnaGx5KSBwYXRjaCAzMjk5MzcwIHRvIGF2b2lkCisKKyByZXdyaXRpbmcgZXhpc3RpbmcgYXV0aGtleS9wcml2a2V5L2V0Y3MgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBBcHBsaWVkIChyb3VnaGx5KSBwYXRjaCAzMjk5MzcwIHRvIGF2b2lkCisKKyByZXdyaXRpbmcgZXhpc3RpbmcgYXV0aGtleS9wcml2a2V5L2V0Y3MgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5oLCBwZXJsL01ha2VmaWxlLlBMOgorCisgTkVXUzogc25tcGQ6IHBhdGNoIDMxMzEzOTc6IGZyb20gdGFrZXZvczogaHVnZSBzcGVlZHVwcyBvZiB0aGUKKyBUQ1AvVURQIFRhYmxlcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHBlcmwvTmV0U05NUC54czogQWRkZWQgYSBib2d1cyBlbXB0eSAueHMgZmlsZSBmb3IgYnVuZGxpbmcgb24KKworIG5ld2VyIHBlcmwgdGhhdCB3YW50cyAic29tZXRoaW5nIiBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jOiBDSEFOR0VTOgorCisgc25tcGQ6IHBhdGNoIDMzMDY0NzY6IGZyb20gdGlueXB5cmFtaWRzOiBmaXggbWVtb3J5IGxlYWsgaW4gdGhlCisgc3dydW4gY29udGFpbmVyIGxvYWRpbmcgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ1NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmM6IENIQU5HRVM6CisKKyBzbm1wZDogcGF0Y2ggMzMwNjQ3NjogZnJvbSB0aW55cHlyYW1pZHM6IGZpeCBtZW1vcnkgbGVhayBpbiB0aGUKKyBzd3J1biBjb250YWluZXIgbG9hZGluZyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzogRm9sbG93LXVwIGZvciByMjA0NDk6IHVzZQorCisgTkVUU05NUF9QUklvICJ1IiBmb3IgcHJpbnRpbmcgc3ViaWRzIGluc3RlYWQgb2Ygb25seSBORVRTTk1QX1BSSW8uICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDUzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgCisgICAgICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6IEZvbGxvdy11cCBmb3IgcjIwNDQ5OiB1c2UKKworIE5FVFNOTVBfUFJJbyAidSIgZm9yIHByaW50aW5nIHN1YmlkcyBpbnN0ZWFkIG9mIG9ubHkgTkVUU05NUF9QUklvLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDUzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAorICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IENIQU5HRVM6IFdpbjMyOiBNaWNyb3NvZnQKKworIFZpc3VhbCBTdHVkaW86IExpbmsgd2l0aCBnZGkzMi5saWIgaWYgT3BlblNTTCBoYXMgYmVlbiBlbmFibGVkCisgYmVjYXVzZSBnZGkzMi5saWIgaXMgYSBkZXBlbmRlbmN5IG9mIE9wZW5TU0wuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAorICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IENIQU5HRVM6IFdpbjMyOiBNaWNyb3NvZnQKKworIFZpc3VhbCBTdHVkaW86IExpbmsgd2l0aCBnZGkzMi5saWIgaWYgT3BlblNTTCBoYXMgYmVlbiBlbmFibGVkCisgYmVjYXVzZSBnZGkzMi5saWIgaXMgYSBkZXBlbmRlbmN5IG9mIE9wZW5TU0wuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAorICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IENIQU5HRVM6IFdpbjMyOiBNaWNyb3NvZnQKKworIFZpc3VhbCBTdHVkaW86IExpbmsgd2l0aCBnZGkzMi5saWIgaWYgT3BlblNTTCBoYXMgYmVlbiBlbmFibGVkCisgYmVjYXVzZSBnZGkzMi5saWIgaXMgYSBkZXBlbmRlbmN5IG9mIE9wZW5TU0wuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaDogRm9sbG93LXVwIGZvciByMjA0NDg6IHNpbmNlIHRoZQorCisgIm9pZCIgdHlwZWRlZiBoYXMgYmVlbiBjaGFuZ2VkIGJhY2sgZnJvbSB1aW50MzJfdCB0byB1X2xvbmcsIGNoYW5nZQorIE5FVFNOTVBfUFJJbyBmcm9tIE5FVFNOTVBfUFJJMzIgaW50byAibCIuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDUwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmg6IEZvbGxvdy11cCBmb3IgcjIwNDQ4OiBzaW5jZSB0aGUKKworICJvaWQiIHR5cGVkZWYgaGFzIGJlZW4gY2hhbmdlZCBiYWNrIGZyb20gdWludDMyX3QgdG8gdV9sb25nLCBjaGFuZ2UKKyBORVRTTk1QX1BSSW8gZnJvbSBORVRTTk1QX1BSSTMyIGludG8gImwiLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDUwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6IENIQU5HRVM6IHNubXBkOiBVc2UgcHJvcGVyIGZvcm1hdAorCisgc3BlY2lmaWVyIGluIGRlYnVnIHN0YXRlbWVudHMgZm9yIHByaW50aW5nIHZhbHVlcyBvZiB0eXBlICdvaWQnLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOiBDSEFOR0VTOiBzbm1wZDogVXNlIHByb3BlciBmb3JtYXQKKworIHNwZWNpZmllciBpbiBkZWJ1ZyBzdGF0ZW1lbnRzIGZvciBwcmludGluZyB2YWx1ZXMgb2YgdHlwZSAnb2lkJy4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzogQ0hBTkdFUzogc25tcGQ6IFVzZSBwcm9wZXIgZm9ybWF0CisKKyBzcGVjaWZpZXIgaW4gZGVidWcgc3RhdGVtZW50cyBmb3IgcHJpbnRpbmcgdmFsdWVzIG9mIHR5cGUgJ29pZCcuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQ5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgCisgICAgICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6IENIQU5HRVM6IHNubXBkOiBVc2UgcHJvcGVyIGZvcm1hdAorCisgc3BlY2lmaWVyIGluIGRlYnVnIHN0YXRlbWVudHMgZm9yIHByaW50aW5nIHZhbHVlcyBvZiB0eXBlICdvaWQnLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQ5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmg6IHJldmVydCBPSUQgdHlwZWRlZiB0byB1X2xvbmcgYXMKKworIGFncmVlZCB0byBvbiAtY29kZXJzIGFuZCBpbiB0aGUgYWRtaW4gbWVldGluZyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQ4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmg6IHJldmVydCBPSUQgdHlwZWRlZiB0byB1X2xvbmcgYXMKKworIGFncmVlZCB0byBvbiAtY29kZXJzIGFuZCBpbiB0aGUgYWRtaW4gbWVldGluZyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMjQgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBzbm1wbGliL3N5c3RlbS5jOiBSZW1lbWJlciB0byByZXR1cm4gaW5mbyBhbHNvIHdpdGhvdXQgRE5TU0VDCisgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ0NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yNCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmM6IEFkZGVkIE5VTEwtY2hlY2tzCisKKyBhZnRlciBtYWxsb2MgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yNCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmM6IEFkZGVkIE5VTEwtY2hlY2tzCisKKyBhZnRlciBtYWxsb2MgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yNCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmM6IEFkZGVkIE5VTEwtY2hlY2tzCisKKyBhZnRlciBtYWxsb2MgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yNCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmM6IEFkZGVkIE5VTEwtY2hlY2tzCisKKyBhZnRlciBtYWxsb2MgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzogQ0hBTkdFUzoKKworIGFnZW50OiBCVUc6IDMzMDUxNTc6IEZpeCBpcEFkZHJlc3NQcmVmaXggaGFuZGxpbmcgb2YgSVB2NiBhZGRyZXNzZXMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6IENIQU5HRVM6CisKKyBhZ2VudDogQlVHOiAzMzA1MTU3OiBGaXggaXBBZGRyZXNzUHJlZml4IGhhbmRsaW5nIG9mIElQdjYgYWRkcmVzc2VzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDMyOTU0MDc6IEZpeAorCisgaGFuZGxpbmcgb2Ygdm9pZCBwb2ludGVyIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDMyOTU0MDc6IEZpeAorCisgaGFuZGxpbmcgb2Ygdm9pZCBwb2ludGVyIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDMyOTU0MDc6IEZpeAorCisgaGFuZGxpbmcgb2Ygdm9pZCBwb2ludGVyIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBDSEFOR0VTOiBweXRob246IEJVRzogMzI5NTQwNzogRml4CisKKyBoYW5kbGluZyBvZiB2b2lkIHBvaW50ZXIgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOgorCisgc25tcGxpYjogQlVHOiAzMjY0ODUyOiBSZWNvZ25pc2UgbWlzc2luZyByZXBvcnQgdHlwZXMKKyAoc25tcHtVbmF2YWlsYWJsZSxVbmtub3dufUNvbnRleHRzLHNubXBVbmtub3duUERVSGFuZGxlcnMpIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzoKKworIHNubXBsaWI6IEJVRzogMzI2NDg1MjogUmVjb2duaXNlIG1pc3NpbmcgcmVwb3J0IHR5cGVzCisgKHNubXB7VW5hdmFpbGFibGUsVW5rbm93bn1Db250ZXh0cyxzbm1wVW5rbm93blBEVUhhbmRsZXJzKSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDQzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6CisKKyBzbm1wbGliOiBCVUc6IDMyNjQ4NTI6IFJlY29nbmlzZSBtaXNzaW5nIHJlcG9ydCB0eXBlcworIChzbm1we1VuYXZhaWxhYmxlLFVua25vd259Q29udGV4dHMsc25tcFVua25vd25QRFVIYW5kbGVycykgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOgorCisgc25tcGxpYjogQlVHOiAzMjY0ODUyOiBSZWNvZ25pc2UgbWlzc2luZyByZXBvcnQgdHlwZXMKKyAoc25tcHtVbmF2YWlsYWJsZSxVbmtub3dufUNvbnRleHRzLHNubXBVbmtub3duUERVSGFuZGxlcnMpIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOgorCisgc25tcGxpYjogQlVHOiAzMjY0ODUyOiBSZWNvZ25pc2UgbWlzc2luZyByZXBvcnQgdHlwZXMKKyAoc25tcHtVbmF2YWlsYWJsZSxVbmtub3dufUNvbnRleHRzLHNubXBVbmtub3duUERVSGFuZGxlcnMpIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMjAgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wQWxpYXNEb21haW4uYywgCisgICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvc25tcFNTSERvbWFpbi5jLCBzbm1wbGliL3NubXBTVEREb21haW4uYywgCisgICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIAorICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDMyMzQ3NTQ6IEVuc3VyZQorICAgICAgb2xkCisKKyBmX2NyZWF0ZV9mcm9tX3RzdHJpbmcgaG9vayBpcyBpbml0aWFsaXplZCB0byBOVUxMIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMjAgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTVEREb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogQlVHOgorICAgICAgMzIzNDc1NDoKKworIEVuc3VyZSBvbGQgZl9jcmVhdGVfZnJvbV90c3RyaW5nIGhvb2sgaXMgaW5pdGlhbGl6ZWQgdG8gTlVMTCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTIwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1RERG9tYWluLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IEJVRzoKKyAgICAgIDMyMzQ3NTQ6CisKKyBFbnN1cmUgb2xkIGZfY3JlYXRlX2Zyb21fdHN0cmluZyBob29rIGlzIGluaXRpYWxpemVkIHRvIE5VTEwgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTIwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvc25tcFNURERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgCisgICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOiBDSEFOR0VTOgorCisgc25tcGxpYjogQlVHOiAzMjM0NzU0OiBFbnN1cmUgb2xkIGZfY3JlYXRlX2Zyb21fdHN0cmluZyBob29rIGlzCisgaW5pdGlhbGl6ZWQgdG8gTlVMTCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTE5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiB1c2UgI2lmZGVmCisKKyByYXRoZXIgdGhhbiAjaWYgZm9yIGRlZmluZSBjaGVja3MuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTE5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiB1c2UgI2lmZGVmCisKKyByYXRoZXIgdGhhbiAjaWYgZm9yIGRlZmluZSBjaGVja3MuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTE5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiB1c2UgI2lmZGVmCisKKyByYXRoZXIgdGhhbiAjaWYgZm9yIGRlZmluZSBjaGVja3MuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTE5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiB1c2UgI2lmZGVmCisKKyByYXRoZXIgdGhhbiAjaWYgZm9yIGRlZmluZSBjaGVja3MuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IHVzZSAjaWZkZWYKKworIHJhdGhlciB0aGFuICNpZiBmb3IgZGVmaW5lIGNoZWNrcy4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTkgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbWFuL3NubXBfYXBpLjMuZGVmLCBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjogQ0hBTkdFUzogbWFuOiBCVUc6CisKKyAzMTkwNzI1OiBEb2N1bWVudCBzbm1weyxfc2Vzc31zeW5jaF9yZXNwb25zZSBhbmQgc25tcF9hc3luY19zZW5kIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTkgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbWFuL3Nlc3Npb25fYXBpLjMuZGVmLCBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjogQ0hBTkdFUzogbWFuOiBCVUc6CisKKyAzMTkwNzI1OiBEb2N1bWVudCBzbm1weyxfc2Vzc31zeW5jaF9yZXNwb25zZSBhbmQgc25tcF9hc3luY19zZW5kIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTkgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmOiAKKworIENIQU5HRVM6IG1hbjogQlVHOiAzMTkwNzI1OiBEb2N1bWVudCBzbm1weyxfc2Vzc31zeW5jaF9yZXNwb25zZSBhbmQKKyBzbm1wX2FzeW5jX3NlbmQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xOSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBtYW4vbmV0c25tcF9zZXNzX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWY6IAorCisgQ0hBTkdFUzogbWFuOiBCVUc6IDMxOTA3MjU6IERvY3VtZW50IHNubXB7LF9zZXNzfXN5bmNoX3Jlc3BvbnNlIGFuZAorIHNubXBfYXN5bmNfc2VuZCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTkgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbWFuL3NubXBfYXBpLjMuZGVmLCBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjogQ0hBTkdFUzogbWFuOiBCVUc6CisKKyAzMTkwNzI1OiBEb2N1bWVudCBzbm1weyxfc2Vzc31zeW5jaF9yZXNwb25zZSBhbmQgc25tcF9hc3luY19zZW5kIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTkgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZCByYWNlCisKKyBjb25kaXRpb24gaW4gaHJTV1J1blRhYmxlIFRyZWF0IHRoZSByZWFkcyBmcm9tIC9wcm9jLzxwaWQ+LyoKKyBjYXJlZnVseSwgcHJvY2Vzc2VzIGNhbiBleGl0IGluIHRoZSBtaWRkbGUgb2YgcHJvY2Vzc2luZy4gIChhbHJlYWR5CisgZml4ZWQgaW4gVjUtNS1wYXRjaGVzIGFuZCBWNS00LXBhdGNoZXMgaW4gU1ZOIHJldi4gMjAxMTUsIGR1bm5vIHdoeQorIEkgZGlkIG5vdCBwYXRjaCB0cnVuaykgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQzOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xOSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzogQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHJhY2UKKworIGNvbmRpdGlvbiBpbiBoclNXUnVuVGFibGUgVHJlYXQgdGhlIHJlYWRzIGZyb20gL3Byb2MvPHBpZD4vKgorIGNhcmVmdWx5LCBwcm9jZXNzZXMgY2FuIGV4aXQgaW4gdGhlIG1pZGRsZSBvZiBwcm9jZXNzaW5nLiAgKGFscmVhZHkKKyBmaXhlZCBpbiBWNS01LXBhdGNoZXMgYW5kIFY1LTQtcGF0Y2hlcyBpbiBTVk4gcmV2LiAyMDExNSwgZHVubm8gd2h5CisgSSBkaWQgbm90IHBhdGNoIHRydW5rKSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTkgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL3NjYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IEJVRzoKKworIDMxODQ2OTc6IERvbid0IHJlZmVyZW5jZSBpbnRlcm5hbCBNRDUgd2hlbiBpdCdzIGV4cGxpY2l0bHkgZGlzYWJsZWQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQzNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xOSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvc2NhcGkuYzogQ0hBTkdFUzogc25tcGxpYjogQlVHOgorCisgMzE4NDY5NzogRG9uJ3QgcmVmZXJlbmNlIGludGVybmFsIE1ENSB3aGVuIGl0J3MgZXhwbGljaXRseSBkaXNhYmxlZCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTYgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3N5c3RlbS5jOiBtYWtlIHN1cmUgd2UgZ2V0IHRoZSBoaW50IGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDM2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiB0ZXN0aW5nL1JVTlRFU1RTOiBGb2xsb3ctdXAgZm9yIHIyMDQzMjogdGVzdGluZy9SVU5URVNUUyB3aXRob3V0CisKKyBhcmd1bWVudHMgd29ya3MgYWdhaW4gYXMgaXQgc2hvdWxkLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogdGVzdGluZy9SVU5URVNUUzogRm9sbG93LXVwIGZvciByMjA0MzI6IHRlc3RpbmcvUlVOVEVTVFMgd2l0aG91dAorCisgYXJndW1lbnRzIHdvcmtzIGFnYWluIGFzIGl0IHNob3VsZC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xNCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jOiBSYW4KKworIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYyB0aHJvdWdoIGRvczJ1bml4LiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDM0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9zaW1wbGU6IEZpeGVkIGEgdHlwbyBpbiBhCisKKyBjb21tZW50LiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xNCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfc2ltcGxlOiBGaXhlZCBhIHR5cG8gaW4gYQorCisgY29tbWVudC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xNCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogdGVzdGluZy9SVU5URVNUUzogUlVOVEVTVFMgd29ya3MgYWdhaW4gZm9yIHRlc3RzIHdpdGggYSBmb3VyLWRpZ2l0CisKKyBudW1iZXIuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDMyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiB0ZXN0aW5nL1JVTlRFU1RTOiBSVU5URVNUUyB3b3JrcyBhZ2FpbiBmb3IgdGVzdHMgd2l0aCBhIGZvdXItZGlnaXQKKworIG51bWJlci4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQzMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xNCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zeXN0ZW0uYzogRml4ZWQgYSByZWNlbnRseSBpbnRyb2R1Y2VkIGJ1ZyBpbgorCisgbmV0c25tcF9nZXRhZGRyaW5mbygpLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDMxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzogRG9jdW1lbnQgdGhhdCB0aGUgdWNkLXNubXAKKworIGRpc2tpbyBjb2RlIHN0aWxsIGhhcyB0byBiZSBtb2RpZmllZCBzdWNoIHRoYXQgZGlza2lvX2ZyZWVfY29uZmlnKCkKKyBnZXRzIGludm9rZWQgdXBvbiBTSUdIVVAuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzogRG9jdW1lbnQgdGhhdCB0aGUgdWNkLXNubXAKKworIGRpc2tpbyBjb2RlIHN0aWxsIGhhcyB0byBiZSBtb2RpZmllZCBzdWNoIHRoYXQgZGlza2lvX2ZyZWVfY29uZmlnKCkKKyBnZXRzIGludm9rZWQgdXBvbiBTSUdIVVAuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTMgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3N5c3RlbS5jOiBmaXggY2FzdCBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xMyAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICAgKiAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2EKKyAgICAgICBjY2Vzcy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXMKKyAgICAgICBzLmM6IFJldmVydCAyMDQyMCAiQ0hBTkdFUzogc25tcGQ6IEZpeGVkIG1lbW9yeSBsZWFrIGluIFRDUC1NSUIKKworIHRhYmxlcyBpbnRyb2R1Y2VkIGJ5IHBhdGNoICMzMDUzNDM2LiIgUmV2ZXJ0IDE5NzA4ICJDSEFOR0VTOiBzbm1wZDoKKyBQQVRDSDogMzA1MzQzNjogZnJvbTogdGFrZXZvczogZml4OiB0Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MKKyBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MiIHRoZSBidWcgMzA1MzQzNiBpcyBmaXhpbmcgd2FzIGludHJvZHVjZWQgaW4gcjE3NzE5LCBhbmQgZml4ZWQgaW4KKyByMTc4NjEuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTMgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAorICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgCisgICAgICBhcHBzL3NubXB0cmFwZF9sb2cuYywgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc3lzdGVtLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYzogbW9yZSBkbnMgcmVsYXRlZCB0d2Vha3MgIC0KKyAgICAgIGFkZCBuZXRzbm1wX2dldGhvc3RieWFkZHIgIC0gYWx3YXlzIGRlZmluZSBuZXRzbm1wXyogdmVyc2lvbnM7CisgICAgICBsb2dvbmNlIGlmIHVuZGVybHlpbmcgICAgZnVuY3Rpb24gaXMgbm90IGF2YWlsYWJsZSAgLSB1c2UgbmV3CisgICAgICBmdW5jdGlvbnMgaW4gZGlzbWFuIG1pYnMgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTMgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCBzbm1wbGliL3NubXB2My5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYzogdXNlIG5ldyBuZXRzbm1wIGRucworCisgZnVuY3Rpb25zIGluIGFwcHMvc25tcGxpYiBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTMgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvc3lzdGVtLmM6IG1vdmUgRE5TU0VDCisKKyB2YWxpZGF0aW9uIGludG8gcmVzb2x2ZXIgd3JhcHBlciBmdW5jdGlvbnMgICAtIGFsbG93cyBvdGhlciBjb2RlIHRvIGJlbmVmaXQgZnJvbSB2YWxpZGF0aW9uICAgLSBuZXcgbmV0c25tcF9nZXRob3N0YnluYW1lLCBuZXRzbm1wX2dldGFkZHJpbmZvIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQyNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9taWIuYzogRm9sbG93LXVwIGZvciByMjA0MTc6IHJlcGxhY2VkIGEgbWFsbG9jKCkvZnJlZSgpCisKKyBwYWlyIGJ5IGEgY2FsbCB0byByZWFsbG9jKCkuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL21pYi5jOiBGb2xsb3ctdXAgZm9yIHIyMDQxNzogcmVwbGFjZWQgYSBtYWxsb2MoKS9mcmVlKCkKKworIHBhaXIgYnkgYSBjYWxsIHRvIHJlYWxsb2MoKS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvbWliLmM6IEZvbGxvdy11cCBmb3IgcjIwNDE3OiByZXBsYWNlZCBhIG1hbGxvYygpL2ZyZWUoKQorCisgcGFpciBieSBhIGNhbGwgdG8gcmVhbGxvYygpLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9uZXRsaW5rLmM6IEZpeCBmb3IgUkhFTDQKKyAgICAgIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6IEhlYWRlciBmaWRkbGluZyBmb3IgdGhlCisKKyBiZW5lZml0IG9mIFJIRUw0LCBTb2xhcmlzLCBPcGVuQlNEIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQyMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xMiAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICAgKiAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2EKKyAgICAgICBjY2Vzcy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXMKKyAgICAgICBzLmM6IENIQU5HRVM6IHNubXBkOiBGaXhlZCBtZW1vcnkgbGVhayBpbiBUQ1AtTUlCIHRhYmxlcworICAgICAgaW50cm9kdWNlZAorCisgYnkgcGF0Y2ggIzMwNTM0MzYuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEyICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogICAqIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYQorICAgICAgIGNjZXNzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2NlcworICAgICAgIHMuYzogQ0hBTkdFUzogc25tcGQ6IEZpeGVkIG1lbW9yeSBsZWFrIGluIFRDUC1NSUIgdGFibGVzCisgICAgICBpbnRyb2R1Y2VkCisKKyBieSBwYXRjaCAjMzA1MzQzNi4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQyMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6IFJldmVydGVkIGFjY2lkZW50YWxseSBjb21taXR0ZWQKKworIGNoYW5nZXMgb2YgcjIwNDEyLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4KKworIHNubXBfZnJlZV9zZXNzaW9uKCkuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4KKworIHNubXBfZnJlZV9zZXNzaW9uKCkuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4KKworIHNubXBfZnJlZV9zZXNzaW9uKCkuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4KKworIHNubXBfZnJlZV9zZXNzaW9uKCkuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvbWliLmM6IENIQU5HRVM6IHNubXBsaWI6IF9taWJpbmRleF9hZGQoKSBubyBsb25nZXIgcmVhZHMKKworIHBhc3QgdGhlIGVuZCBvZiB0aGUgZHluYW1pY2FsbHkgYWxsb2NhdGVkIGFycmF5IF9taWJpbmRleGVzLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQxNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9taWIuYzogQ0hBTkdFUzogc25tcGxpYjogX21pYmluZGV4X2FkZCgpIG5vIGxvbmdlciByZWFkcworCisgcGFzdCB0aGUgZW5kIG9mIHRoZSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgYXJyYXkgX21pYmluZGV4ZXMuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDE3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL21pYi5jOiBDSEFOR0VTOiBzbm1wbGliOiBfbWliaW5kZXhfYWRkKCkgbm8gbG9uZ2VyIHJlYWRzCisKKyBwYXN0IHRoZSBlbmQgb2YgdGhlIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBhcnJheSBfbWliaW5kZXhlcy4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQxNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9sY2RfdGltZS5jOiBBdm9pZCB0aGF0IE1TVkMgdHJpZ2dlcnMgYSBjb21waWxlciB3YXJuaW5nIG9uCisKKyB0aGUgY29kZSBpbiBzbm1wbGliL2xjZF90aW1lLmMuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmM6IEF2b2lkCisKKyByZWFkaW5nIGFuIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluCisKKyB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKKyBpcE5ldFRvTWVkaWFUYWJsZS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0MTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluCisKKyB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKKyBpcE5ldFRvTWVkaWFUYWJsZS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0MTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluCisKKyB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKKyBpcE5ldFRvTWVkaWFUYWJsZS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluCisKKyB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKKyBpcE5ldFRvTWVkaWFUYWJsZS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkKKworIGxlYWsgaW4gdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJCisgaWZUYWJsZS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzogQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5CisKKyBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQorIGlmVGFibGUuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeQorCisgbGVhayBpbiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKKyBpZlRhYmxlLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkKKworIGxlYWsgaW4gdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJCisgaWZUYWJsZS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrCisKKyBpbiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKKyBpcEFkZHJUYWJsZS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkgbGVhaworCisgaW4gdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJCisgaXBBZGRyVGFibGUuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzogQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5IGxlYWsKKworIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQorIGlwQWRkclRhYmxlLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOiAKKworIENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkKKyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJIGlwQWRkclRhYmxlLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBDaGFuZ2VMb2c6IERvY3VtZW50YXRpb24gLyBzb3VyY2UgY29kZSBjb21tZW50IHNwZWxsaW5nIGZpeDoKKworIGV4aXRlbnQgLT4gZXhpc3RlbnQuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBDaGFuZ2VMb2csIHNubXBsaWIvbWliLmM6IERvY3VtZW50YXRpb24gLyBzb3VyY2UgY29kZSBjb21tZW50CisKKyBzcGVsbGluZyBmaXg6IGV4aXRlbnQgLT4gZXhpc3RlbnQuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBDaGFuZ2VMb2csIHNubXBsaWIvbWliLmM6IERvY3VtZW50YXRpb24gLyBzb3VyY2UgY29kZSBjb21tZW50CisKKyBzcGVsbGluZyBmaXg6IGV4aXRlbnQgLT4gZXhpc3RlbnQuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBDaGFuZ2VMb2csIHNubXBsaWIvbWliLmM6IERvY3VtZW50YXRpb24gLyBzb3VyY2UgY29kZSBjb21tZW50CisKKyBzcGVsbGluZyBmaXg6IGV4aXRlbnQgLT4gZXhpc3RlbnQuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYzogQ0hBTkdFUzogV2luMzI6IEJ1aWxkCisKKyBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMgb25seSBpZiBORVRTTk1QX0VOQUJMRV9JUFY2CisgaGFzIGJlZW4gZGVmaW5lZC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywgY29uZmlndXJlLCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOiBpbnN0YWxsIHRoZSBidWlsdCBmZWF0dXJlCisKKyBoZWFkZXJzIHRvbyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfc2ltcGxlLCAKKyAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19zaW1wbGU6IENIQU5HRVM6CisKKyB0ZXN0aW5nOiBUZXN0cyAwMjUgYW5kIDAyNiBwYXNzIG9uIE1pbkdXIGV2ZW4gaWYgd2luRXh0RExMIGhhcyBiZWVuCisgZW5hYmxlZC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xMSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlOiBUMDY1IHJvYnVzdG5lc3MKKworIGltcHJvdmVtZW50LiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDA3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c192b2lkLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5oOiBDSEFOR0VTOiBzbm1wZDogdWNkX3NubXAgYnVpbGRzCisKKyBhZ2FpbiBvbiBNaW5HVyBhbmQgQ3lnd2luLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDA2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBNYWtlZmlsZS5pbjogaW5zdGFsbCB0aGUgbmV0LXNubXAtZmVhdHVyZXMuaCBmaWxlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDA1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTQxc25tcHYyY3NldF9zaW1wbGU6IEltcHJvdmVkIHRlc3QKKworIHJvYnVzdG5lc3MuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6IENvbXBpbGVyIHdhcm5pbmcgZml4ZXMuICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQwMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IE1pbkdXOiBhdm9pZCB0aGF0IGdjYyBjb21wbGFpbnMgYWJvdXQgcGFzaW5nCisKKyBhIChjaGFyICopIGFyZ3VtZW50IHdoaWxlICh1bnNpZ25lZCBjaGFyICopIGlzIGV4cGVjdGVkLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IE1pbkdXOiBhdm9pZCB0aGF0IGdjYyBjb21wbGFpbnMgYWJvdXQgcGFzaW5nCisKKyBhIChjaGFyICopIGFyZ3VtZW50IHdoaWxlICh1bnNpZ25lZCBjaGFyICopIGlzIGV4cGVjdGVkLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IE1pbkdXOiBhdm9pZCB0aGF0IGdjYyBjb21wbGFpbnMgYWJvdXQgcGFzaW5nCisKKyBhIChjaGFyICopIGFyZ3VtZW50IHdoaWxlICh1bnNpZ25lZCBjaGFyICopIGlzIGV4cGVjdGVkLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IE1pbkdXOiBhdm9pZCB0aGF0IGdjYyBjb21wbGFpbnMgYWJvdXQgcGFzaW5nCisKKyBhIChjaGFyICopIGFyZ3VtZW50IHdoaWxlICh1bnNpZ25lZCBjaGFyICopIGlzIGV4cGVjdGVkLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDAyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3Rvb2xzLmM6IEF2b2lkIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIGlmIHRoZSBsYXN0IGNoYXIKKworIG9mIHRpbWVfc3RyaW5nIGlzIGluIHRoZSByYW5nZSAweDgwLi4weGZlIGFuZCBjaGFyIGlzIGEgc2lnbmVkIHR5cGUuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaDogUmV2ZXJ0ZWQgcjIwMzgwIGJlY2F1c2UgaXQgYnJlYWtzCisKKyBhbGwgc3RhdGVtZW50cyB0aGF0IHByaW50IGFuIE9JRCBzdWItSUQgb24gYW55IDY0LWJpdCBwbGF0Zm9ybS4gVGhlCisgZWZmZWN0IG9mIHIyMDM4MCBvbiBiaWcgZW5kaWFuIGFyY2hpdGVjdHVyZXMgd2FzIHRoYXQgYSAiMCIgd291bGQgYmUKKyBwcmludGVkIGluc3RlYWQgb2YgdGhlIE9JRCBzdWItSUQgKGF0IGxlYXN0IHdpdGggdGhlIExQNjQgYW5kIHRoZQorIElMUDY0IG1vZGVscykuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMTAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIENIQU5HRVMsIE5FV1M6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzg1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzg0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgCisgICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAKKyAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDogbWFrZQorCisgZGVwZW5kIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0xMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzogQysrIC0+IEMgY29tbWVudHMKKyAgICAgIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTEwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBORVdTOiBORVdTIHVwZGF0ZSBmb3IgNS43IGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzgxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmg6IHJldmVydCB0aGUgb2lkIHR5cGVkZWYgcmVzaXppbmcKKworIGZyb20gcjE3ODA5IGJlY2F1c2UgaXQgYnJva2UgYmFja3dhcmRzIGNvbXBhdCwgYXMgcG9pbnRlZCBvdXQgYnkKKyB1c2VycyBvbiB0aGUgLWNvZGVycyBsaXN0IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogY29uZmlndXJlOiB1c2UgcHJvcGVyIGF1dG9jb25mIHZlcnNpb24gZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAorICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBwZXJsL0FTTi9BU04ucG0sIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sCisgICAgICAgcGVybC9PSUQvT0lELnBtLCBwZXJsL1NOTVAvU05NUC5wbSwgCisgICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCAKKyAgICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAKKyAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOiBWZXJzaW9uIG51bWJlciB1cGRhdGUKKyAgICAgIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBNYWtlZmlsZS50b3A6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgbWlicy9VQ0QtU05NUC1NSUIudHh0OiBhZGRlZCBhIG1pc3NpbmcgMCBpbiB0aGUgcmV2aXNpb24gZGF0ZQorICAgICAgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzogVXNlIHN5bWJvbGljCisKKyBuYW1lZCBmb3IgaWZUeXBlIHZhbHVlcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6IFVzZSBzeW1ib2xpYworCisgbmFtZWQgZm9yIGlmVHlwZSB2YWx1ZXMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOiBVc2Ugc3ltYm9saWMKKworIG5hbWVkIGZvciBpZlR5cGUgdmFsdWVzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzogVXNlIHN5bWJvbGljCisKKyBuYW1lZCBmb3IgaWZUeXBlIHZhbHVlcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6IFVzZSBzeW1ib2xpYworCisgbmFtZWQgZm9yIGlmVHlwZSB2YWx1ZXMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBtaWJzL3JmY21pYnMuZGlmZjogSUFOQSBoYXMgZml4ZWQgdGhlCisKKyBJQU5BLUlQUE0tTUVUUklDUy1SRUdJU1RSWS1NSUIgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbWlicy9yZmNtaWJzLmRpZmY6IElBTkEgaGFzIGZpeGVkIHRoZQorCisgSUFOQS1JUFBNLU1FVFJJQ1MtUkVHSVNUUlktTUlCIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OiBhZGRlZCBhIG5ldyBSRVZJU0lPTiBjbGF1c2UgdG8gbGlzdCB0aGUKKworIGNoYW5nZXMgaW4gdGhlIHRoZSByZWNlbnQgdXBkYXRlIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogTkVXUzogYWRkZWQgcGluZy90cmFjZXJvdXRlIG1pYnMgbm90ZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzogd2UgYWN0dWFsbHkgd2FudCB0byB1c2UgdGhlIGJhc2UKKworIE9JRCBhcyB0aGUgc3RhcnRpbmcgcG9pbnQsIG5vdCB0aGUgcmVnIE9JRC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzogZml4ZWQgdGhlIHByb3h5IHN1cHBvcnQgdG8gZG8gYQorCisgcHJvcGVyIE9JRCBsZXNzIHRoYW4gT0lEIGNvbXBhcmUuICBXZSBhY3R1YWxseSBkb24ndCBjYXJlIGFib3V0IHRoZQorIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgcmVxdWVzdCwgb25seSB0aGF0IGl0IHdhcyBiZWZvcmUgdGhlCisgcmVnaXN0ZXJlZCByZWJhc2UgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOiBDSEFOR0VTOiBwYXRjaCAzMTQwODMzOiBmcm9tCisKKyBqc2FmcmFuZWs6IGZpeCBwcm94eSBHRVRORVhUIHJlcXVlc3RzIFdoZW4gT0lEcyByZXF1ZXN0ZWQgYXJlIGJlbG93CisgdGhlIHByb3h5IHJlcXVlc3QgcmVtYXAsIHdlIG5lZWQgdG8gbm90IGluY2x1ZGUgYW55IE9JRHMgdGhhdCBtaWdodAorIGJlIGluIHRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBvcmlnaW5hbCBPSUQgYW5kIHRoZSByZW1hcHBlZCBPSUQuICBUaGlzCisgcGF0Y2ggZnVkZ2VzIHRoZSByZXF1ZXN0IHNvIHRoYXQgaXQgZml4ZXMgdGhlIHJlcXVlc3QgT0lEIHNvIGl0J3MKKyBqdXN0IGJlZm9yZSB0aGUgcmVtYXBwZWQgcHJveHkgcmFuZ2UuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgorICAgICAgTkVXUzoKKworIFBBVENIIDMxNjczMjU6IGZyb20ga3Jpc3p0b2Zvcm86IFVDRC1TTk1QL1N5c3RlbVN0YXRzOiBhZGQgdmFyaWFibGVzCisgdG8gcmVwb3J0IGNwdXN0ZWFsLCBjcHVndWVzdCwgY3B1Z3Vlc3RuaWNlIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM2OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jOiBDSEFOR0VTOiBwYXRjaAorCisgMzE4NDAyNjogZnJvbSBlaXZuYWVzOiBBdm9pZCBjb25zdGFudCByZWZyZXNoIG9mIGludGVyZmFjZQorIHN0YXRpc3RpY3MgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzY3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXBkZWx0YS5jLCBzbm1wbGliL3NjYXBpLmMsIAorICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmM6IEZpeGVkCisgICAgICBzZXZlcmFsCisKKyBjb21waWxlciB3YXJuaW5ncyByZXBvcnRlZCBieSB0aGUgTVNWQyBjb21waWxlci4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM2NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIHNubXBsaWIvZ2V0dGltZW9mZGF5LmM6IFdpbjMyL01TVkM6IEZpeGVkIGEgY29tcGlsZXIgd2FybmluZy4gCisgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM2NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6IENIQU5HRVM6IGFnZW50OiBGaXhlZCBhCisKKyB5ZWFyLTIwMzggYnVnIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBpcFJvdXRlVGFibGUuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDggIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUHJvYmVIaXN0b3J5VGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYzogRml4CisKKyB3YXJuaW5ncyBhbmQgZGF0YSBmb3JtYXQgZm9yIERhdGVBbmRUaW1lIG9iamVjdHMuICBUaGVzZSBtb2R1bGVzCisgd29yaywgYnV0OiAtIFRoZXkgYXJlIExpbnV4IG9ubHkgLSBSb3dzIG11c3QgYmUgY3JlYXRlZCB3aXRoIHJvd1N0YXR1cyBjcmVhdGVBbmRXYWl0IGJlZm9yZSB0aGV5IGFyZQorIHBvcHVsYXRlZCAtIEFnZW50IG11c3QgcnVuIGFzIHJvb3QgLSBBZ2VudCBpcyBibG9ja2VkIHdoaWxlIHRlc3RzIHJ1biAtIERhdGEgZm9ybWF0IGZvciBJbmV0QWRkcmVzcyBvYmplY3RzIGlzIHdyb25nLiBJdCBpcyBBU0NJSSwgbm90CisgICBiaW5hcnkgKG1ha2luZyBpdCBlYXNpZXIgdG8gdXNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYnV0IC4uLikgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDM2MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wOCAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVByb2JlSGlzdG9yeVRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jOiBGaXgKKworIHdhcm5pbmdzIGFuZCBkYXRhIGZvcm1hdCBmb3IgRGF0ZUFuZFRpbWUgb2JqZWN0cy4gIFRoZXNlIG1vZHVsZXMKKyB3b3JrLCBidXQ6IC0gVGhleSBhcmUgTGludXggb25seSAtIFJvd3MgbXVzdCBiZSBjcmVhdGVkIHdpdGggcm93U3RhdHVzIGNyZWF0ZUFuZFdhaXQgYmVmb3JlIHRoZXkgYXJlCisgcG9wdWxhdGVkIC0gQWdlbnQgbXVzdCBydW4gYXMgcm9vdCAtIEFnZW50IGlzIGJsb2NrZWQgd2hpbGUgdGVzdHMgcnVuIC0gRGF0YSBmb3JtYXQgZm9yIEluZXRBZGRyZXNzIG9iamVjdHMgaXMgd3JvbmcuIEl0IGlzIEFTQ0lJLCBub3QKKyAgIGJpbmFyeSAobWFraW5nIGl0IGVhc2llciB0byB1c2UgZnJvbSB0aGUgY29tbWFuZCBsaW5lLCBidXQgLi4uKSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzYzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA4ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Byb2JlSGlzdG9yeVRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Jlc3VsdHNUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVIb3BzVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmM6IEZpeAorCisgd2FybmluZ3MgYW5kIGRhdGEgZm9ybWF0IGZvciBEYXRlQW5kVGltZSBvYmplY3RzLiAgVGhlc2UgbW9kdWxlcworIHdvcmssIGJ1dDogLSBUaGV5IGFyZSBMaW51eCBvbmx5IC0gUm93cyBtdXN0IGJlIGNyZWF0ZWQgd2l0aCByb3dTdGF0dXMgY3JlYXRlQW5kV2FpdCBiZWZvcmUgdGhleSBhcmUKKyBwb3B1bGF0ZWQgLSBBZ2VudCBtdXN0IHJ1biBhcyByb290IC0gQWdlbnQgaXMgYmxvY2tlZCB3aGlsZSB0ZXN0cyBydW4gLSBEYXRhIGZvcm1hdCBmb3IgSW5ldEFkZHJlc3Mgb2JqZWN0cyBpcyB3cm9uZy4gSXQgaXMgQVNDSUksIG5vdAorICAgYmluYXJ5IChtYWtpbmcgaXQgZWFzaWVyIHRvIHVzZSBmcm9tIHRoZSBjb21tYW5kIGxpbmUsIGJ1dCAuLi4pIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDggIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUHJvYmVIaXN0b3J5VGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYzogRml4CisKKyB3YXJuaW5ncyBhbmQgZGF0YSBmb3JtYXQgZm9yIERhdGVBbmRUaW1lIG9iamVjdHMuICBUaGVzZSBtb2R1bGVzCisgd29yaywgYnV0OiAtIFRoZXkgYXJlIExpbnV4IG9ubHkgLSBSb3dzIG11c3QgYmUgY3JlYXRlZCB3aXRoIHJvd1N0YXR1cyBjcmVhdGVBbmRXYWl0IGJlZm9yZSB0aGV5IGFyZQorIHBvcHVsYXRlZCAtIEFnZW50IG11c3QgcnVuIGFzIHJvb3QgLSBBZ2VudCBpcyBibG9ja2VkIHdoaWxlIHRlc3RzIHJ1biAtIERhdGEgZm9ybWF0IGZvciBJbmV0QWRkcmVzcyBvYmplY3RzIGlzIHdyb25nLiBJdCBpcyBBU0NJSSwgbm90CisgICBiaW5hcnkgKG1ha2luZyBpdCBlYXNpZXIgdG8gdXNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYnV0IC4uLikgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM2MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wOCAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVByb2JlSGlzdG9yeVRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jOiBGaXgKKworIHdhcm5pbmdzIGFuZCBkYXRhIGZvcm1hdCBmb3IgRGF0ZUFuZFRpbWUgb2JqZWN0cy4gIFRoZXNlIG1vZHVsZXMKKyB3b3JrLCBidXQ6IC0gVGhleSBhcmUgTGludXggb25seSAtIFJvd3MgbXVzdCBiZSBjcmVhdGVkIHdpdGggcm93U3RhdHVzIGNyZWF0ZUFuZFdhaXQgYmVmb3JlIHRoZXkgYXJlCisgcG9wdWxhdGVkIC0gQWdlbnQgbXVzdCBydW4gYXMgcm9vdCAtIEFnZW50IGlzIGJsb2NrZWQgd2hpbGUgdGVzdHMgcnVuIC0gRGF0YSBmb3JtYXQgZm9yIEluZXRBZGRyZXNzIG9iamVjdHMgaXMgd3JvbmcuIEl0IGlzIEFTQ0lJLCBub3QKKyAgIGJpbmFyeSAobWFraW5nIGl0IGVhc2llciB0byB1c2UgZnJvbSB0aGUgY29tbWFuZCBsaW5lLCBidXQgLi4uKSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBwZXJsL1NOTVAvU05NUC54czogUmVtb3ZlZCBhbiB1bnVzZWQgbGFiZWwgZnJvbSBwZXJsL1NOTVAvU05NUC54cy4KKyAgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBwZXJsL1NOTVAvU05NUC54czogUmVtb3ZlZCBhbiB1bnVzZWQgbGFiZWwgZnJvbSBwZXJsL1NOTVAvU05NUC54cy4KKyAgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzNjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBwZXJsL1NOTVAvU05NUC54czogUmVtb3ZlZCBhbiB1bnVzZWQgbGFiZWwgZnJvbSBwZXJsL1NOTVAvU05NUC54cy4KKyAgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBwZXJsL1NOTVAvU05NUC54czogUmVtb3ZlZCBhbiB1bnVzZWQgbGFiZWwgZnJvbSBwZXJsL1NOTVAvU05NUC54cy4KKyAgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaDogQ0hBTkdFUzogc25tcGQ6IERlY2xhcmUgdGhlIE9JRAorCisgYXJndW1lbnQgdHlwZSBvZiBNSUIgcmVnaXN0cmF0aW9uIGZ1bmN0aW9ucyBhcyAnY29uc3Qgb2lkIConIGluc3RlYWQKKyBvZiAnb2lkIConIHNpbmNlIHRoZXNlIGZ1bmN0aW9ucyBkbyBub3QgbW9kaWZ5IHRoZSBPSUQuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9uZXRsaW5rLmMsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaDogVXNlIHRoZSBjb3JyZWN0IGRhdGEgdHlwZSBmb3IKKworIHRoZSAnY2FjaGUgZXhwaXJlZCcgdmFyaWFibGU6IGNoYXIgaW5zdGVhZCBvZiBpbnQuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6IEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcworCisgaW50cm9kdWNlZCBpbiByMjAxNTEuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBXaW4zMjogaW1wcm92ZWQgc291cmNlIGNvZGUgY29uc2lzdGVuY3kgYnkKKworIHVzaW5nIExQQ1RTVFIgaW5zdGVhZCBvZiBMUENTVFIuIE5vdGU6IHRoaXMgZG9lcyBub3QgbWVhbiB0aGF0CisgVW5pY29kZSBidWlsZHMgYXJlIHN1cHBvcnRlZC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBXaW4zMjogaW1wcm92ZWQgc291cmNlIGNvZGUgY29uc2lzdGVuY3kgYnkKKworIHVzaW5nIExQQ1RTVFIgaW5zdGVhZCBvZiBMUENTVFIuIE5vdGU6IHRoaXMgZG9lcyBub3QgbWVhbiB0aGF0CisgVW5pY29kZSBidWlsZHMgYXJlIHN1cHBvcnRlZC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9uZXRsaW5rLmM6IEFkZCBmaWxlCisKKyBmb3Jnb3R0ZW4gaW4gcjIwMzUzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6IFJldmVydGVkIGEgY2hhbmdlIHRoYXQgd2FzCisKKyBjb21taXR0ZWQgYWNjaWRlbnRhbGx5IGluIHIyMDI3Ni4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBGaXhlZCB0d28gY29tcGlsZXIKKworIHdhcm5pbmdzLiAgKEJhY2twb3J0ZWQgcjIwMjM2IGZyb20gdGhlIHRydW5rLikgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM1NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6IENvbW1lbnRlZCBvdXQgYW4gdW51c2VkIGZ1bmN0aW9uCisKKyBiZWNhdXNlIHRoZSBjb21waWxlciBjb21wbGFpbmVkIGFib3V0IGl0LiAgKEJhY2twb3J0ZWQgcjIwMjM3IGZyb20KKyB0aGUgdHJ1bmsuKSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzU0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfCisgICAgICAgYWNjZXNzLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmg6IENIQU5HRVM6IHNubXBkOiBQQVRDSCAzMTI1OTY6CisKKyBmcm9tIGZhYmxlZDgwOiBsaXN0ZW4gZm9yIG5ldGxpbmsgY2hhbmdlIGV2ZW50cyBmb3IgdGhlIGFycC1yZWxhdGVkCisgdGFibGVzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oOiBORVdTOiBQQVRDSAorCisgMzE5ODc4MTogZnJvbSBmZW5uZXI6IEdldCBkaXNtYW4vcGluZyBhbmQgZGlzbWFuL3RyYWNlcm91dGUgdG8gYXQKKyBsZWFzdCBjb21waWxlIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaDogTkVXUzogUEFUQ0gKKworIDMxOTg3ODE6IGZyb20gZmVubmVyOiBHZXQgZGlzbWFuL3BpbmcgYW5kIGRpc21hbi90cmFjZXJvdXRlIHRvIGF0CisgbGVhc3QgY29tcGlsZSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmg6IE5FV1M6IFBBVENICisKKyAzMTk4NzgxOiBmcm9tIGZlbm5lcjogR2V0IGRpc21hbi9waW5nIGFuZCBkaXNtYW4vdHJhY2Vyb3V0ZSB0byBhdAorIGxlYXN0IGNvbXBpbGUgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDM1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oOiBORVdTOiBQQVRDSAorCisgMzE5ODc4MTogZnJvbSBmZW5uZXI6IEdldCBkaXNtYW4vcGluZyBhbmQgZGlzbWFuL3RyYWNlcm91dGUgdG8gYXQKKyBsZWFzdCBjb21waWxlIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDYgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3N5c3RlbS5jOiBORVdTOiBzbm1wbGliOiBhZGQgb3B0aW9uYWwgc3VwcG9ydCBmb3IgbG9jYWwKKworIEROU1NFQyB2YWxpZGF0aW9uIG9mIGhvc3RuYW1lcyAgLSBvcHRpb25hbCBhdCBjb25maWd1cmUgdGltZTogLS13aXRoLWxvY2FsLWRuc3NlYy12YWxpZGF0aW9uICAtIHJlcXVpcmVzIEROU1NFQy1Ub29sIHZhbGlkYXRpb24gbGlicmFyaWVzICAtIGluaXRpYWwgc3VwcG9ydCwgZm9yIHN5c3RlbXMgd2l0aCBnZXRhZGRyaW5mby4gc3VwcG9ydCBmb3IKKyAgICBhZGRpdGlvbmFsIHJlc29sdmVyIGludGVyZmFjZXMgY29taW5nIHNvb24uICAgLSBhbHNvIFRPRE86IGZsYWcgZm9yIGlnbm9yaW5nIHZhbGlkYXRvaW4gZXJyb3JzIChsb2cgJiBjb250aW51ZSkgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA2ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmg6IG1vdmUgdW51c2VkIChhbmQgdG9vIGdlbmVyaWMpCisKKyB0b2tlbiB3aXRoaW4gVUNEX0NPTVBBVElCTEUgaWZkZWYgICAtIE1BWExBQkVMIGNvbmZsaWN0cyB3aXRoIDxhcnBhL25hbWVzZXIuaD4gICAtIGFkZGVkIE5FVFNOTVBfTUFYTEFCRUwgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzUwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA2ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCAKKyAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgCisgICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsIAorICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogdXBkYXRlIGNvbmZpZ3VyZS9NYWtlZmlsZXMKKworIGZvciBETlNTRUMgbG9jYWwgdmFsaWRhdGlvbiBvcHRpb24gZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzQ5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIENIQU5HRVM6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM0NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UgZGVwZW5kIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgCisgICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAorICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgCisgICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIAorICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgCisgICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIAorICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgCisgICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIAorICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIAorICAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgCisgICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgCisgICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgCisgICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgCisgICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIAorICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgCisgICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgCisgICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIAorICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF91dGlsLjMsCisgICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgCisgICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6IGRvY3VtZW50YXRpb24gdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsIAorICAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzogcmVtb3ZlZCB0aGUKKworIGFjY2lkZW50YWwgYnJva2VuIGZlYXR1cmUgcmVxdWlyZSBsaW5lIHRoYXQgZ290IGhhbGYgaW5zZXJ0ZWQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIENIQU5HRVM6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDM0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDMzOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UgZGVwZW5kIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDMzOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgCisgICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAorICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgCisgICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIAorICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgCisgICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIAorICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgCisgICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIAorICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIAorICAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgCisgICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgCisgICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgCisgICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgCisgICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIAorICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgCisgICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgCisgICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIAorICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF91dGlsLjMsCisgICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgCisgICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6IGRvY3VtZW50YXRpb24gdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDMzNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsIAorICAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDMzNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IEZpeCBpbmNvbXBsZXRlIHVuaW5zdGFsbAorCisgY29uZmlndXJhdGlvbjogLSBicm9rZW4gcmVtb3ZhbCBvZiBNaWNyb3NvZnQgRExMIC0gcmVtb3ZlIGFzc29ydGVkIG5ldyBNSUJzIGFuZCBoZWFkZXIgZmlsZXMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDMzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IEZpeCBpbmNvbXBsZXRlIHVuaW5zdGFsbAorCisgY29uZmlndXJhdGlvbjogLSBicm9rZW4gcmVtb3ZhbCBvZiBNaWNyb3NvZnQgRExMIC0gcmVtb3ZlIGFzc29ydGVkIG5ldyBNSUJzIGFuZCBoZWFkZXIgZmlsZXMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDMzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IEZpeCBpbmNvbXBsZXRlIHVuaW5zdGFsbAorCisgY29uZmlndXJhdGlvbjogLSBicm9rZW4gcmVtb3ZhbCBvZiBNaWNyb3NvZnQgRExMIC0gcmVtb3ZlIGFzc29ydGVkIG5ldyBNSUJzIGFuZCBoZWFkZXIgZmlsZXMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDMzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IEZpeCBpbmNvbXBsZXRlIHVuaW5zdGFsbAorCisgY29uZmlndXJhdGlvbjogLSBicm9rZW4gcmVtb3ZhbCBvZiBNaWNyb3NvZnQgRExMIC0gcmVtb3ZlIGFzc29ydGVkIG5ldyBNSUJzIGFuZCBoZWFkZXIgZmlsZXMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogRml4IGluY29tcGxldGUgdW5pbnN0YWxsCisKKyBjb25maWd1cmF0aW9uOiAtIGJyb2tlbiByZW1vdmFsIG9mIE1pY3Jvc29mdCBETEwgLSByZW1vdmUgYXNzb3J0ZWQgbmV3IE1JQnMgYW5kIGhlYWRlciBmaWxlcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsOiBTdXBwb3J0IFRhci9HWmlwIGNvbW1hbmQgcGF0aHMKKworIGNvbnRhaW5pbmcgc3BhY2VzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzMzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IFN1cHBvcnQgVGFyL0daaXAgY29tbWFuZCBwYXRocworCisgY29udGFpbmluZyBzcGFjZXMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDMzNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogU3VwcG9ydCBUYXIvR1ppcCBjb21tYW5kIHBhdGhzCisKKyBjb250YWluaW5nIHNwYWNlcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsOiBSZXBvcnQgR1ppcCBjb21tYW5kIGNvcnJlY3RseQorICAgICAgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMzMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogUmVwb3J0IEdaaXAgY29tbWFuZCBjb3JyZWN0bHkKKyAgICAgIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDMzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IFJlcG9ydCBHWmlwIGNvbW1hbmQgY29ycmVjdGx5CisgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmM6IEZpeCBmb3IgRHJhZ29uRmx5IEJTRCAoZG9lcworICAgICAgbm90CisKKyBkZWZpbmUgSVBfU0VORFNSQ0FERFIpIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzMzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDUgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jOiBGaXggZm9yIERyYWdvbkZseSBCU0QgKGRvZXMKKyAgICAgIG5vdAorCisgZGVmaW5lIElQX1NFTkRTUkNBRERSKSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDUgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmg6IEZpeCBzcGVsbGluZyBvZgorCisgU09fUkVDVkRTVEFERFIgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDMzMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaDogRml4IHNwZWxsaW5nIG9mCisKKyBTT19SRUNWRFNUQUREUiBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDUgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgbWFuL3NubXAuY29uZi41LmRlZiwgCisgICAgICBzbm1wbGliL3NubXBfYXBpLmM6IE5FV1M6IGFwcHM6IGFkZCBzbm1wLmNvbmYgdG9rZW5zIGZvciB0aW1lb3V0cworCisgYW5kIHJldHJpZXMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3Rvb2xzLmMsIHRlc3RpbmcvVEVTVENPTkYuc2g6IENIQU5HRVM6IE1pbkdXOiBNYWRlCisKKyByZWdyZXNzaW9uIHRlc3Qgb3V0cHV0IGluZGVwZW5kZW50IG9mIHRoZSBOZXQtU05NUCB2YXJpYWJsZXMgZGVmaW5lZAorIGluIHRoZSBXaW5kb3dzIHJlZ2lzdHJ5LiBTb21lIHRlc3RzIHRoYXQgZmFpbGVkIHByZXZpb3VzbHkgYWZ0ZXIgdGhlCisgTmV0LVNOTVAgYmluYXJpZXMgKE1TVkMgYnVpbGQpIGhhZCBiZWVuIGluc3RhbGxlZCBkbyBub3cgcGFzcy4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzMjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvdG9vbHMuYywgdGVzdGluZy9URVNUQ09ORi5zaDogQ0hBTkdFUzogTWluR1c6IE1hZGUKKworIHJlZ3Jlc3Npb24gdGVzdCBvdXRwdXQgaW5kZXBlbmRlbnQgb2YgdGhlIE5ldC1TTk1QIHZhcmlhYmxlcyBkZWZpbmVkCisgaW4gdGhlIFdpbmRvd3MgcmVnaXN0cnkuIFNvbWUgdGVzdHMgdGhhdCBmYWlsZWQgcHJldmlvdXNseSBhZnRlciB0aGUKKyBOZXQtU05NUCBiaW5hcmllcyAoTVNWQyBidWlsZCkgaGFkIGJlZW4gaW5zdGFsbGVkIGRvIG5vdyBwYXNzLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDMyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi90b29scy5jLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaDogCisKKyBDSEFOR0VTOiBNaW5HVzogTWFkZSByZWdyZXNzaW9uIHRlc3Qgb3V0cHV0IGluZGVwZW5kZW50IG9mIHRoZQorIE5ldC1TTk1QIHZhcmlhYmxlcyBkZWZpbmVkIGluIHRoZSBXaW5kb3dzIHJlZ2lzdHJ5LiBTb21lIHRlc3RzIHRoYXQKKyBmYWlsZWQgcHJldmlvdXNseSBhZnRlciB0aGUgTmV0LVNOTVAgYmluYXJpZXMgKE1TVkMgYnVpbGQpIGhhZCBiZWVuCisgaW5zdGFsbGVkIGRvIG5vdyBwYXNzLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDMyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi90b29scy5jLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaDogCisKKyBDSEFOR0VTOiBNaW5HVzogTWFkZSByZWdyZXNzaW9uIHRlc3Qgb3V0cHV0IGluZGVwZW5kZW50IG9mIHRoZQorIE5ldC1TTk1QIHZhcmlhYmxlcyBkZWZpbmVkIGluIHRoZSBXaW5kb3dzIHJlZ2lzdHJ5LiBTb21lIHRlc3RzIHRoYXQKKyBmYWlsZWQgcHJldmlvdXNseSBhZnRlciB0aGUgTmV0LVNOTVAgYmluYXJpZXMgKE1TVkMgYnVpbGQpIGhhZCBiZWVuCisgaW5zdGFsbGVkIGRvIG5vdyBwYXNzLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzI5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgCisgICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osIAorICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osIAorICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLnZjcHJvaiwKKyAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgCisgICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osIAorICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAorICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osCisgICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osIAorICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLAorICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osCisgICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwKKyAgICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIAorICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvaiwgd2luMzIvd2luMzIuc2xuLAorICAgICAgd2luMzIvd2luMzJkbGwuc2xuOgorCisgUmVtb3ZlZCBWaXN1YWwgU3R1ZGlvIDIwMDUgc29sdXRpb24gYW5kIHByb2plY3QgZmlsZXMgYWdhaW4gc2luY2UKKyBWaXN1YWwgU3R1ZGlvIDIwMTAgcmVmdXNlcyB0byBsb2FkIHRoZXNlLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzI4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBNYWtlZmlsZS5pbjogY2xlYW4gdGhlIHBlcmwvcHl0aG9uIGZlYXR1cmUgbGVmdG92ZXJzIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzI3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogZml4IG1pYiBtb2R1bGUgaW52b2NhdGlvbiBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOiBmaXggaWZkZWYKKworIHR5cG8gZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzI1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBNYWtlZmlsZS5pbjogZml4IHBlcmwvcHl0aG9uIGZlYXR1cmUgZGVwZW5kZW5jaWVzIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9hdXRvX25saXN0LmM6IHJldmVydGVkIGF1dG9fbmxpc3QgbWFjcm8gdXNhZ2U7IHRoZSBmdW5jdGlvbgorCisgaXMgdXNlZCBpbiBoZWFkZXJzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBBZGQgYSAtVCBvcHRpb24gdG8gcnVuICdtYWtlIHRlc3QnCisgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYXBwcy9NYWtlZmlsZS5pbjogZml4IHRoZSBlbmNvZGVfa2V5Y2hhbmdlIC5mdCBmaWxlbmFtZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogcGVybC9UcmFwUmVjZWl2ZXIvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsIHNubXBsaWIvdG9vbHMuYzogCisKKyBmaXggdGhlIGZlYXR1cmVzIHJlcXVpcmVkIGJ5IHRoZSBUcmFwUmVjZWl2ZXIgbW9kdWxlIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIE1ha2VmaWxlLmluOiBBZGQgdGhlIFRyYXBSZWNlaXZlciB0byB0aGUgbGlzdCBvZiBwZXJsIG1vZHVsZXMKKyAgICAgIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBwZXJsL1NOTVAvU05NUC54czogdXNlIHRoZSBuZXdlciBOZXQtU05NUCBBUElzLCByYXRoZXIgdGhhbiB0aGUKKworIG9sZGVyIFVDRCBvbmVzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIHBlcmwvU05NUC9TTk1QLnhzOiByZW1vdmUgU0VUIGNvZGUgd2hlbiB1bmRlciAtLXJlYWQtb25seSBtb2RlCisgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jOiByZXF1aXJlCisKKyBjaGVja192Yl91aW50IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogICAqIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfc3ViYWdlbgorICAgICAgIHQuYywgYWdlbnQvc25tcF9hZ2VudC5jLCBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjLCAKKyAgICAgIHB5dGhvbi9uZXRzbm1wL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAKKyAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6IGxhc3Qgb2YgdGhlIHBlcmwtdXNlZCBmZWF0dXJlIGZ1bmN0aW9ucworICAgICAgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW4KKyAgICAgICB0LmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCAKKyAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYzoKKworIHN0YXJ0ZWQgdGhlIGZpbmFsIHNldCBvZiBmdW5jdGlvbiByZW1vdmFscyBmb3IgZmVhdHVyZXMgcmVxdWlyZWQgYnkKKyBwZXJsL3B5dGhvbiBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXNvdXJjZS1pbmNsdWRlcy5tMmk6IGFkZGVkIHRoZQorCisgbmV0LXNubXAtZmVhdHVyZXMuaCBoZWFkZXIgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgcGVybC9PSUQvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsIAorICAgICAgcGVybC9TTk1QL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAKKyAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAKKyAgICAgIHBlcmwvYWdlbnQvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmg6IEFkZGVkIHBlcmwgZmVhdHVyZQorCisgcmVxdWlyZW1lbnRzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywgY29uZmlndXJlLCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uLCAKKyAgICAgIHBlcmwvQVNOL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAKKyAgICAgIHBlcmwvT0lEL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAKKyAgICAgIHBlcmwvU05NUC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgCisgICAgICBwZXJsL2FnZW50L25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAKKyAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaDogaG9wZWZ1bGx5CisgICAgICB3b3JraW5nCisKKyBydWxlcyB0byBhcHBseSBmZWF0dXJlIHJlcXVpcmVtZW50cyB0byBwZXJsIGFuZCBweXRob24gZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYywgCisgICAgICBhZ2VudC9zbm1wX2FnZW50LmM6IG1vcmUgY2hhbmdlcyB0byByZW1vdmUgdW5uZWVkZWQgZnVuY3Rpb25zCisKKyBwcmltYXJpbHkgd2hlbiB3cml0ZSBtb2RlIGlzIHR1cm5lZCBvZmYgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOiBjaGFuZ2UgdGhlIHdhbnQgaW52b2NhdGlvbiB0byBvbmx5IGRlZmF1bHQKKworIHRvIGV4Y2x1ZGUgZXh0ZXJuYWwgaG9va3MgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzA5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGU6IHNlYXJjaCB0aHJvdWdoIC54cyBmaWxlcyBmb3IKKworIGZ1bmN0aW9uIGludm9jYXRpb25zIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvYXV0b19ubGlzdC5jOiBmb3Jnb3QgYSBzZW1pY29sb24gZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYzogaXF1ZXJ5IHBkdQorICAgICAgc2Vzc2lvbnMKKworIGFyZSBvbmx5IG5lZWRlZCBpbiB3cml0ZSBtb2RlLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzA2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhcHBzL01ha2VmaWxlLmluOiBmaXggZmVhdHVyZSBkZXRlY3Rpb24gb2Ygc29tZXRpbWVzLWJ1aWx0CisKKyBhcHBsaWNhdGlvbnMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzA1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9hdXRvX25saXN0LmM6IHVzZSB0aGUgZmVhdHVyZV91bnVzZWQgbWFjcm8gZm9yIG1ha2luZyBhbgorCisgZW1wdHkgZmlsZSBmb3IgY29uc2lzdGVuY3kgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXQKKyAgICAgICBhX2FjY2Vzcy5jLAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCisgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywKKyAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOCisgICAgICAgVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgYXBwcy9zbm1wdGxzLmMsIAorICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogQW5vdGhlciBzd2VlcCBmb3IgdW51c2VkCisKKyBmdW5jdGlvbnMgd2hlbiByZWFkX29ubHkgbW9kZSBpcyB0dXJuZWQgb24gZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzAzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYworICAgICAgICwgCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCisgICAgICAgZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywgCisgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU04KKyAgICAgICBUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS4KKyAgICAgICBjLCBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzogbWFyayBhIHNsZXcgb2YgZnVuY3Rpb25zIGFzIGZlYXR1cmVzCisKKyB0aGF0IGFyZSBvbmx5IG5lZWRlZCB3aXRoIHdyaXRlX3N1cHBvcnQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzAyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGU6IHJ1biBncmVwIHdpdGggLW4gZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IAorCisgZmVhdHVyaXplIG5ldHNubXBfc29ja2FkZHJfc2l6ZSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzogcmVtb3ZlIGEKKworIGZlYXR1cmVfcmVxdWlyZSBub3QgYWN0dWFsbHkgbmVlZGVkLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjk5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NvbnRhaW5lci5jOiBtYXJrIFNVQkNPTlRBSU5FUl9GSU5ECisKKyBhcyBhIGZlYXR1cmUgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjk4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcHRzbS5jOiB0aGUgcm93IGNyZWF0aW9uIEFQSSBpcworCisgb25seSB1c2VkIGluIHRoZSBUU00gaW1wbGVtZW50YXRpb24gZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHRzbS5jOiB0aGUgbmV3ZXIgY29udGV4dCBlbmdpbmVJRAorCisgcHJvYmluZyBpcyBvbmx5IG5lZWRlZCBpZmYgVFNNIGlzIGluIHVzZSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyOTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvZGlyX3V0aWxzLmM6IGZpeCBhbiBpZmRlZiB0eXBvIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjk1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOiBtb3ZlZCBmZXRhdXJlIGNoaWxkX29mIHN0YXRlbWVudHMgdG8gdGhlCisKKyB0b3Agb2YgdGhlIGZpbGUgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjk0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9kaXJfdXRpbHMuYywgCisgICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jOiBtYXJrZWQgYSBjb3VwbGUgb2YgcmFyZWx5IHVzZWQgY29udGFpbmVyCisKKyBmdW5jdGlvbnMuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyOTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzogc3BsaXQgb3V0IHRoZSBwcmVmaXhfaW5mbyBmZWF0dXJlCisgICAgICBpbnRvCisKKyBzdWItZmVhdHVyZXMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjkyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgICogCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50CisgICAgICAgZXJmYWNlLmM6IG1hcmsgdGhlIGFjY2Vzc29yIGZ1bmN0aW9ucyBhcyB1bm5lZWRlZCBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYzogZml4IGEgY2hpbGRfb2Ygc3RhdGVtZW50CisKKyB3aXRoIGEgY29weS9wYXN0ZSBlcnJvciBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyOTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzogdGhlIGNvbnRhaW5lciByb3ctcmVtb3ZlIGlzIG9ubHkKKworIG5lZWRlZCBpZiB0aGUgdGRhdGEgcmVtb3ZlX3JvdyBpcyBuZWVkZWQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjg5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU04KKyAgICAgICBUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS4KKyAgICAgICBjOiBmZWF0dXJlIG1hcmtpbmcgb2YgdW51c2VkIHRkYXRhIGZ1bmN0aW9ucyAgICAKKyAgICAgIHRhYmxlX3RkYXRhX2RlbGV0ZV90YWJsZSAgICAgdGFibGVfdGRhdGFfZXh0cmFjdF90YWJsZSAgICAKKyAgICAgIHRhYmxlX3RkYXRhX3JlbW92ZV9yb3cgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyODggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYzogcmVtb3ZhbCBvZiBzb21lIHJhcmVseSB1c2VkCisKKyAJZnVuY3Rpb25zIHRhYmxlX3NldF9tdWx0aV9hZGRfZGVmYXVsdF9yb3cgCXRhYmxlX2RhdGFzZXRfdW5yZWdpc3Rlcl9hdXRvX2RhdGFfdGFibGUgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjg3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogQWRkZWQgYSBkZWZpbml0aW9uIHRvIGluY29ycG9yYXRlCisKKyByZWFkX29ubHkvbm90aWZ5X29ubHkgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjg2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzogYWRkZWQgYSBtaXNzaW5nIGZlYXR1cmUgZGVmaW5pdGlvbgorCisgbGluZSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyODUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L01ha2VmaWxlLmluOiBhZGRlZCBiYWNrIGluIG1pc3NpbmcgbWliZ3JvdXAgZmVhdHVyZQorCisgZGVmaW5pdGlvbiBsaXN0IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI4NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IEluY2x1ZGUgdGhlIG9yaWdpbmFsIGJhc2UgZmxhZ3MgdG8KKworIGVuc3VyZSAtLXdpdGgtZGVmYXVsdHMgZ2V0cyBwaWNrZWQgdXAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjgzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogZml4IHVzYWdlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogQWRkZWQgYSAtYiBmbGFnIGZvciBiYXNlIGFyZ3VtZW50cyB0bworCisgc3RhcnQgZnJvbSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyODEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBkZWZhdWx0IHRvIGEgbGluZWFyIHNlYWNoIG9mIHNpemUKKworIHRlc3RzLCByYXRoZXIgdGhhbiBleHBvbmVudGlhbCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyODAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOiAKKworIENIQU5HRVM6IHNubXBsaWI6IEd1YXJkIG5ldHNubXBfdWRwX3JlY3Zmcm9tKCkgZXRjLiBkZWNsYXJhdGlvbnMKKyBjb25zaXN0ZW50bHkuICBDSEFOR0VTOiBXaW4zMjogQnVpbGRzIHdpdGggVmlzdWFsIFN0dWRpbyAyMDEwLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDI3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOgorICAgICAgR3VhcmQKKworIG5ldHNubXBfdWRwX3JlY3Zmcm9tKCkgZXRjLiBkZWNsYXJhdGlvbnMgY29uc2lzdGVudGx5LiAgQ0hBTkdFUzoKKyBXaW4zMjogQnVpbGRzIHdpdGggVmlzdWFsIFN0dWRpbyAyMDEwLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDI3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOgorICAgICAgR3VhcmQKKworIG5ldHNubXBfdWRwX3JlY3Zmcm9tKCkgZXRjLiBkZWNsYXJhdGlvbnMgY29uc2lzdGVudGx5LiAgQ0hBTkdFUzoKKyBXaW4zMjogQnVpbGRzIHdpdGggVmlzdWFsIFN0dWRpbyAyMDEwLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogQ0hBTkdFUzogV2luMzI6IFBBVENIOiAzMjkzODQyOiBFbGltaW5hdGUKKworIHJlZ2lzdHJ5IGFyZ3VtZW50IGxpbWl0IG9mIDEyNyBjaGFyYWN0ZXJzICh0aGlzIGxpbWl0YXRpb24gd2FzCisgcmVwb3J0ZWQgYnkgU3lsdmFpbiBEZXJ5KS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAyNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDUtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBDSEFOR0VTOiBXaW4zMjogUEFUQ0g6IDMyOTM4NDI6IEVsaW1pbmF0ZQorCisgcmVnaXN0cnkgYXJndW1lbnQgbGltaXQgb2YgMTI3IGNoYXJhY3RlcnMgKHRoaXMgbGltaXRhdGlvbiB3YXMKKyByZXBvcnRlZCBieSBTeWx2YWluIERlcnkpLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDI3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IENIQU5HRVM6IFdpbjMyOiBQQVRDSDogMzI5Mzg0MjogRWxpbWluYXRlCisKKyByZWdpc3RyeSBhcmd1bWVudCBsaW1pdCBvZiAxMjcgY2hhcmFjdGVycyAodGhpcyBsaW1pdGF0aW9uIHdhcworIHJlcG9ydGVkIGJ5IFN5bHZhaW4gRGVyeSkuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMjc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogQ0hBTkdFUzogV2luMzI6IFBBVENIOiAzMjkzODQyOiBFbGltaW5hdGUKKworIHJlZ2lzdHJ5IGFyZ3VtZW50IGxpbWl0IG9mIDEyNyBjaGFyYWN0ZXJzICh0aGlzIGxpbWl0YXRpb24gd2FzCisgcmVwb3J0ZWQgYnkgU3lsdmFpbiBEZXJ5KS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKKyAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogaGVhZGVyIGZpbGUKKworIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY2FuIG5vdyBiZSB1c2VkIGluIHRoZSBNaW5HVworIGVudmlyb25tZW50LiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDI3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKKyAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogaGVhZGVyIGZpbGUKKworIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY2FuIG5vdyBiZSB1c2VkIGluIHRoZSBNaW5HVworIGVudmlyb25tZW50LiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDI3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKKyAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogaGVhZGVyIGZpbGUKKworIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY2FuIG5vdyBiZSB1c2VkIGluIHRoZSBNaW5HVworIGVudmlyb25tZW50LiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDI3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKKyAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogaGVhZGVyIGZpbGUKKworIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY2FuIG5vdyBiZSB1c2VkIGluIHRoZSBNaW5HVworIGVudmlyb25tZW50LiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA1LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6IFdpbjMyIERMTCBidWlsZCBmaXhlcy4KKworIChCYWNrcG9ydGVkIHIyMDE4NCBmcm9tIHRydW5rLikgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDI3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNS0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOiBXaW4zMiBETEwgYnVpbGQgZml4ZXMuCisKKyAoQmFja3BvcnRlZCByMjAxODQgZnJvbSB0cnVuay4pIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAyNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBTcGVsbGluZyBhbmQgZ3JhbW1hciBmaXhlcyBmb3IgdGhlIHNvdXJjZQorCisgY29kZSBjb21tZW50cyBpbiBzbm1wbGliL3dpbnNlcnZpY2UuYy4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAyNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBTcGVsbGluZyBhbmQgZ3JhbW1hciBmaXhlcyBmb3IgdGhlIHNvdXJjZQorCisgY29kZSBjb21tZW50cyBpbiBzbm1wbGliL3dpbnNlcnZpY2UuYy4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IFNwZWxsaW5nIGFuZCBncmFtbWFyIGZpeGVzIGZvciB0aGUgc291cmNlCisKKyBjb2RlIGNvbW1lbnRzIGluIHNubXBsaWIvd2luc2VydmljZS5jLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDI3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IFNwZWxsaW5nIGFuZCBncmFtbWFyIGZpeGVzIGZvciB0aGUgc291cmNlCisKKyBjb2RlIGNvbW1lbnRzIGluIHNubXBsaWIvd2luc2VydmljZS5jLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDI3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogTkVXUzogYWRkZWQgbm90ZSBhYm91dCB0aGUgbmV3IHRpbWluZyBmdW5jdGlvbiBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI3MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6IFVwZGF0ZSB0aGUgbWFudWFsIHBhZ2UgdG8gcmVmbGVjdCB0aGUgbmV3CisKKyB0aW1pbmcgb3B0aW9ucyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvdG9vbHMuYzogYmV0dGVyIGRvY3VtZW50YXRpb24gZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmM6IHVzZSB0aGUKKworIG5ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2VjcygpIGZvciBwYXJzaW5nIGZyZXF1ZW5jaWVzL3RpbWUgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDJwZHVfYnVpbGRfY2xpYi5jOiBmaXggcGR1CisKKyBidWlsZGluZyB0ZXN0cyB1bmRlciB2YXJpb3VzIGRpc2FibGVkIG1vZGVzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI2OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIuYzogZG9uJ3QgdHJ5IHRvCisKKyBidWlsZCB0aGUgR0VUIHBkdSB1bmRlciBub3RpZnlfb25seSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6IGZpeCBhIGJ1ZyB3aXRoCisKKyBuby1zdWZmaXggc3RyaW5ncyBhbmQgdXNlIGEgY29uc3QgaW5wdXQgc3RyaW5nIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI2NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogICAqIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDEwbmV0c25tcF9zdHJpbmdfdGltZV90b19zZWNzX2NsaWIuYzoKKworIEEgbmV3IHVuaXQgdGVzdCBmb3IgdGhlIHRpbWUgY29udmVyc2lvbiByb3V0aW5lIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI2NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogdXNlIHRoZQorCisgbmV0c25tcF9zdHJpbmdfdGltZV90b19zZWNzKCkgZnVuY3Rpb24gZm9yIGNvbXB1dGluZyBpbnRlcnZhbAorIHBlcmlvZHMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjY1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOiBBZGRlZCBhCisKKyBuZXRzbm1wX3N0cmluZ190aW1lX3RvX3NlY3MoKSBmdW5jdGlvbnMgdG8gY29udmVydCwgZS5nLiwgMWggdG8gMzYwMCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvc25tcF9hcGkuYzogcmVtb3ZlIGNvZGUgdG8gYnVpbGQvcGFyc2UgR0VUL2V0YyByZXF1ZXN0cworCisgd2hlbiBOT1RJRllfT05MWSBpcyB0dXJuZWQgb24uICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIE5FV1M6IHVwZGF0ZSB0aGUgTkVXUyB0byByZWZsZWN0IHRoZSBuZXcgLS1lbmFibGUtcmVhZC1vbmx5IGFuZAorCisgLS1lbmFibGUtbm90aWZ5LW9ubHkgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjYyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6IG1pbm9yCisKKyBpbXByb3ZlbWVudHMgZm9yIHJvbmx5IHZzIHJ3cml0ZSBoYW5kbGluZyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6IHN0aWxsIGVuYWJsZQorCisgUk9OTFkgd2hlbiBSV1JJVEUgaXNuJ3QgcG9zc2libGUgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjYwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzogZml4IEdFVCBzdXBwb3J0IHdoZW4gbm9fd3JpdGUgaXMKKworIGVuYWJsZWQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjU5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBtYXJrIGEgZnV0dXJlCisKKyBtb2RpZmljYXRpb24gbmVlZCBpbiBhIGNvbW1lbnQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6IGZpeCBoYW5kbGluZyBvZiBub193cml0ZSBzdXBwb3J0CisgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jOiAKKworIGRvbid0IG9wZW4gYW55IGxpc3RlbmluZyB0cmFuc3BvcnRzIHdoZW4gbm90aWZ5LW9ubHkgaXMgc3BlY2lmaWVkIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZTogc2V0IHRoZQorCisgbm8tbGlzdGVuIGFuZCByZWFkLW9ubHkgZmxhZ3Mgd2hlbiAtLWVuYWJsZS1ub3RpZnktb25seSBpcyBzZXQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjU1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiByYW4gYXV0b2hlYWRlciBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOiBpbXBsZW1lbnQgdGhlCisKKyBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUIGluIHRoZXNlIHRyYW5zcG9ydHMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjUzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBjb25maWd1cmU6IHJ1biBhdXRvY29uZiBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6IG1vdmUgdGhlIHJlYWQtb25seSBmbGFnCisKKyBkZWZpbml0aW9uIGJlbG93IHRoZSBub3RpZnktb25seSwgc2luY2Ugbm90aWZ5LW9ubHkgbmVlZHMgdG8gaW1wbHkKKyByZWFkLW9ubHkgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOiBEZWZpbmVkIGEgbmV3CisKKyAtLWVuYWJsZS1ub3RpZnktb25seSBmbGFnIGZvciBidWlsZGluZyBhIHRvb2xzZXQgdGhhdCBvbmx5IGFsbG93cworIGZvciBub3RpZmljYXRpb25zIHdpdGggbm8gcmVhZC93cml0ZSBzdXBwb3J0IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZTogRGVmaW5lZCBhIG5ldworCisgLS1uby1saXN0ZW4gZmxhZyB0byByZW1vdmUgbGlzdGVuaW5nIHN1cHBvcnQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjQ5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaDogdGhlIGRpc21hbiBzY2hlZHVsZSBtaWIgaXMgb25seQorCisgdXNlZnVsIHdoZW4gU0VUcyBhcmUgdHVybmVkIG9uIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI0OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLmg6IHRoZSBkaXNtYW4gc2NoZWR1bGUgbWliIGlzIG9ubHkgdXNlZnVsCisKKyB3aGVuIFNFVHMgYXJlIHR1cm5lZCBvbiBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICAgKiAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKKyAgICAgICBfaW50ZXJmYWNlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludAorICAgICAgIGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXIKKyAgICAgICBmYWNlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludAorICAgICAgIGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYQorICAgICAgIGNlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgorICAgICAgIGxlX2ludGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmYKKyAgICAgICBhY2UuYywgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuCisgICAgICAgYywgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuCisgICAgICAgYzogZmluaXNoZWQgbm9fd3JpdGUgc3VwcG9ydCBmb3IgY29tbW9uIGluY2x1ZGVkIHRhYmxlcworICAgICAgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOiBBZGQgYmFjayBpbgorCisgJ25ldHNubXBfc2V0X3Jvd19jb2x1bW4nIHdoZW4gbm9fd3JpdGUgc3VwcG9ydCBpcyBlbmFibGVkIFRoaXMKKyBmdW5jdGlvbiBpcyBhIGdlbmVyaWMgZGF0YSBtYW5pcHVsYXRpb24gZnVuY3Rpb24sIG5vdCBTRVQgc3BlY2lmaWMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjQ1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzogZG9uJ3QgdXNlIG1hcmtfcm93X2NvbHVtbl93cml0YWJsZQorCisgd2hlbiByZWFkLW9ubHkgc3VwcG9ydCBpcyBlbmFibGVkIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgCisgICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzogZml4IG5vX3dyaXRlIHN1cHBvcnQKKyAgICAgIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjQzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzogZml4IG5vX3dyaXRlIHN1cHBvcnQgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzogRG9uJ3QgZnJlZQorCisgdGhlIGlmWFRhYmxlIHJvdyBmb3VuZCBvbiBsb2FkIGZhaWx1cmUgYXMgd2UgZG9uJ3Qgb3duIGl0IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAyNDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzogRG9uJ3QgZnJlZQorCisgdGhlIGlmWFRhYmxlIHJvdyBmb3VuZCBvbiBsb2FkIGZhaWx1cmUgYXMgd2UgZG9uJ3Qgb3duIGl0IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAyNDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzogRG9uJ3QgZnJlZQorCisgdGhlIGlmWFRhYmxlIHJvdyBmb3VuZCBvbiBsb2FkIGZhaWx1cmUgYXMgd2UgZG9uJ3Qgb3duIGl0IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAyNDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzogRG9uJ3QgZnJlZQorCisgdGhlIGlmWFRhYmxlIHJvdyBmb3VuZCBvbiBsb2FkIGZhaWx1cmUgYXMgd2UgZG9uJ3Qgb3duIGl0IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAyNDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzogRG9uJ3QgZnJlZQorCisgdGhlIGlmWFRhYmxlIHJvdyBmb3VuZCBvbiBsb2FkIGZhaWx1cmUgYXMgd2UgZG9uJ3Qgb3duIGl0IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBnaXQgYmFzaC1zaGVsbCBmdW5jdGlvbnMgdG8gZW5hYmxlCisKKyBicmFuY2ggc3dpdGNoaW5nIGFuZCBleHRlcm5hbCBidWlsZGluZyBUaGVzZSBsb2NhbCBzaGVsbCBmdW5jdGlvbnMKKyAoc25tcGNvbmZpZ3VyZSBhbmQgc25tcG1ha2UpIGxldCB5b3UgY29uZmlndXJlIGFuZCBidWlsZCB0aGUKKyBOZXQtU05NUCBzb3VyY2UgY29kZSBpbiBleHRlcm5hbCBkaXJlY3RvcmllcyB0aGF0IGFyZQorIGF1dG8tY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZXhpc3RpbmcgYnJhbmNoIG5hbWUgKHdpdGggYW4gb3B0aW9uYWwKKyBzdWZmaXgpLiAgVGhpcyBsZXRzIHlvdSBydW4gJ3NubXBtYWtlJyBmcm9tIHdpdGhpbiB0aGUgc291cmNlCisgZGlyZWN0b3J5IGFuZCBoYXZlIGl0IGFjdHVhbGx5IGV4dGVybmFsbHkga2VlcCB0cmFjayBvZiBtb2RpZmllZAorIGZpbGVzLCBldGMsIHNvIGJ1aWxkaW5nIGluIG11bHRpcGxlIGJyYW5jaGVzIGNhbiBiZSBkb25lIGZyb20gYQorIHNpbmdsZSBnaXQgY2hlY2tvdXQuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBjbGVhbiB1cCB0aGUgaXRlcmF0b3JzCisgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogZnJlZSB2YXJiaW5kcyBhZnRlcgorCisgc2VuZGluZyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOiBDb21tZW50ZWQgb3V0IGFuIHVudXNlZCBmdW5jdGlvbgorCisgYmVjYXVzZSB0aGUgY29tcGlsZXIgY29tcGxhaW5lZCBhYm91dCBpdC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IEZpeGVkIHR3byBjb21waWxlcgorCisgd2FybmluZ3MuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjMgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6IFJlbW92ZSB1bm5lY2Vzc2FyeSBudWxsIGNoZWNrCisgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yMyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6IE1vdmUgcG9pbnRlciBkZXJlZmVyZW5jZSB0byBhZnRlcgorCisgdGhlIGNoZWNrIGZvciBzdWNjZXNzZnVsIGFsbG9jYXRpb24gb2YgdGhlIHBvaW50ZXIgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjM0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTIzICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzogUmVkdWNlIHZhcmlhYmxlIHNjb3BlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTIzICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzogUmVtb3ZlIGFuIHVudXNlZCB2YXJpYWJsZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yMyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6IFJlZHVjZSB2YXJpYWJsZSBzY29wZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yMyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6IFJlZHVjZSB2YXJpYWJsZSBzY29wZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L2FnZW50X3RyYXAuYzogUmVkdWNlIHZhcmlhYmxlIHNjb3BlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjI5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTIyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvYWdlbnRfdHJhcC5jOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjI4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogbWVudGlvbiB3aGljaCBtb2R1bGUgaXMgcmVxdWlyZWQgd2hlbgorCisgYnVpbGRpbmcgdG8gZ2V0IHRoZSBkZWxpdmVyIHN1cHBvcnQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjI3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBkZWxldGVkIGFuIHVubmVlZGVkCisKKyBkZWJ1Z2dpbmcgc3RhdGVtZW50IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIyNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogcHJvcGVybHkgdXBkYXRlIHRoZSBtYXgKKworIGNvdW50IGluIHRoZSBvdXRnb2luZyBub3RpZmljYXRpb25zIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIyNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogYmV0dGVyIHBhY2tldCBlc3RpbWF0aW9uCisKKyB0byBlbnN1cmUgd2UgZG9uJ3Qgb3ZlcnJ1bi4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIyNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogZXN0aW1hdGUgdGhlIHBhY2tldCBzaXplCisKKyBhbmQgYnJlYWsgdGhlIG5vdGlmaWNhdGlvbiB1cCBiYXNlZCBvbiBpdCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IHRyYW5zZm9ybSB0aGUKKworIG5vdGlmaWNhdGlvbiBzZW5kaW5nIGludG8gYSBsYXJnZXIgbG9vcCBmb3IgbGF0ZXIgbXVsdGktbm90aWZzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIyMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIE5FV1M6IGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgZmVhdHVyZSBtYXJraW5nL3NlbGVjdGlvbgorICAgICAgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIE5FV1M6IG1lbnRpb24gdGhlIG5ldyBkZWxpdmVyeSBieSBub3RpZmljYXRpb25zIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjIwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBORVdTOiBkb2N1bWVudCB0aGUgbWluaW1hbGlzdCBzdXBwb3J0IGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogZG9jdW1lbnQgdGhlIG5ldyBkZWxpdmVyQnlOb3RpZnkgY29uZmlnCisKKyB0b2tlbnMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBhbGxvdyBydW4gdGltZQorCisgbW9kaWZpY2F0aW9ucyBvZiB0aGUgT0lEcyB0byB1c2UgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjE3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOiBhZGQgY29uZmlnIGZsYWdzIHRvIG5vdAorCisgaW5jbHVkZSB0aGUgcGVyaW9kIGNvbmZpZyBhbmQgbXNnIGNvdW50IHZhbHVlcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGluY2x1ZGUgdGhlIHBlcmlvZGljCisKKyBjb3VudCwgdGhlIG1lc3NhZ2UgbnVtYmVyIGFuZCB0aGUgbWF4IG1lc3NhZ2UgbnVtYmVyIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIxNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogZGVsZXRlZCBkZWJ1Z2dpbmcKKworIGNvbW1lbnQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgCisgICAgICBtaWJzL05FVC1TTk1QLVBFUklPRElDLU5PVElGWS1NSUIudHh0OiBNb3ZlIHRoZSBub3RpZmljYXRpb24KKworIGRlZmluaXRpb24gdG8gd2l0aGluIHRoZSBzdWItbWliIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogZGVsZXRlIGFuIHVudXNlZAorCisgdmFyaWFibGUgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOiBsb2FkIHRoZSBNSUIgaW50byB0aGUKKworIGRlZmF1bHQgc2V0IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbWlicy9ORVQtU05NUC1QRVJJT0RJQy1OT1RJRlktTUlCLnR4dDogQSBuZXcgbWliIHRvIGhvbGQgdGhlCisKKyBwZXJpb2RpYyBub3RpZnkgb2JqZWN0cyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGZpbGwgb3V0IHRoZSBjb25maWcgZnJlZQorCisgcm91dGluZSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IHByb3Blcmx5IG1vbml0b3IgdGhlCisKKyB3aG9sZSBjb250YWluZXIgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjA4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOiBwYXJzZSB0aGUgY29uZiBmaWxlcyBhbmQKKworIGNyZWF0ZSBhbmQgaW5zZXJ0IG9iamVjdHMgaW50byB0aGUgY29udGFpbmVyIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogZGVmaW5lZCBhIGNvbnRhaW5lciB0bworCisgc3RvcmUgYSBsaXN0IG9mIGRlbGl2ZXIgb2JqZWN0cyBpbiBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6IGFkZGVkIGEgbmV4dF9ydW4KKworIHRpbWVzdGFtcCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGFjdHVhbGx5IHNlbmQgYQorCisgbm90aWZpY2F0aW9uIHdpdGggdGhlIHJlc3VsdHMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBtYWtlIHRoZSB3YWxrIG9uIHRoZQorCisgdGVzdCBvYmplY3QgZnVuY3Rpb24uICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGNyZWF0ZSBhIG1heCBwYWNrZXQgc2l6ZQorCisgY29uZmlnIHRva2VuIGFuZCBwYXJzZSBpdCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6IG1pbmltYWwgc3RhcnRpbmcgdGVzdAorCisgb2JqZWN0IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIwMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDogYWRkZWQgYSBmdW5jdGlvbiB0bworCisgY2FsY3VsYXRlIHRoZSB0aW1lIHVudGlsIHRoZSBuZXh0IHJ1biBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IHJlbW92ZSBsZWZ0IGluIHRlbXBsYXRlCisKKyBsaW5lIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE5OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDogdXNlIGFuIGFsYXJtIGNhbGxiYWNrCisKKyBwcm90b3R5cGUgZm9yIGV4ZWN1dGUgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTk4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOiBiZWdpbm5pbmcgdGVtcGxhdGUgY29kZQorCisgZm9yIGRlbGl2ZXJ5IG9mIGRhdGEgYnkgbm90aWZpY2F0aW9ucyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxOTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMjIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6IFJlZHVjZSB2YXJpYWJsZSBzY29wZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE5NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L3NubXBfYWdlbnQuYzogUmVkdWNlIHZhcmlhYmxlIHNjb3BlcyBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE5NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0yMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L3NubXBfYWdlbnQuYzogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE5NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogd2luMzIvbGlic25tcC9saWJzbm1wLnZjcHJvaiwgd2luMzIvd2luMzIuc2xuOiBBZGRlZCBWaXN1YWwgU3R1ZGlvCisKKyAyMDA1IHByb2plY3QgYW5kIHNvbHV0aW9uIGZpbGUgZm9yIGJ1aWxkaW5nIHRoZSBOZXQtU05NUCBsaWJyYXJ5IGFzCisgYSBzdGF0aWMgbGlicmFyeS4gQm90aCB0aGUgV2luMzIgYW5kIHRoZSB4NjQgY29uZmlndXJhdGlvbnMgYXJlCisgaW5jbHVkZWQuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxOTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAKKyAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgCisgICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgCisgICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osIAorICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgCisgICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgCisgICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLAorICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwKKyAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLAorICAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osCisgICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgCisgICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgCisgICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2o6IE1vcmUgVmlzdWFsIFN0dWRpbyAyMDA1IHByb2plY3QKKyAgICAgIGZpbGUKKworIGNsZWFudXAuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxOTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMTggIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgCisgICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgCisgICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLAorICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwKKyAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLAorICAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osCisgICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgCisgICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgCisgICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2o6IENsZWFuZWQgdXAgV2luMzIgVlMyMDA1IHByb2plY3QKKworIGZpbGVzIC0gcmVtb3ZlZCBzdXBlcmZsdW91cyBsaWJyYXJ5IHJlZmVyZW5jZXMuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxODkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMTggIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAKKyAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgCisgICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgCisgICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osIAorICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgCisgICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgCisgICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLAorICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwKKyAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLAorICAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osCisgICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgCisgICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgCisgICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2osIHdpbjMyL3dpbjMyZGxsLnNsbjogQWRkZWQgeDY0CisKKyBjb25maWd1cmF0aW9ucy4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE4OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xOCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osIAorICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAKKyAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCAKKyAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgCisgICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osIAorICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAorICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osCisgICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osIAorICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLAorICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osCisgICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwKKyAgICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIAorICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAKKyAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvaiwgd2luMzIvd2luMzJkbGwuc2xuOiBBZGRlZAorCisgd2luMzJkbGwtcmVsYXRlZCBWaXN1YWwgU3R1ZGlvIDIwMDUgcHJvamVjdCBhbmQgc29sdXRpb24gZmlsZXMuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxODYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMTggIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDogV2luMzIgRExMIGJ1aWxkIGZpeGVzLiAKKyAgICAgIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTg0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTE3ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzE3NTY0MDogVXNlCisKKyBJUF9SRUNWRFNUQUREUiBzb2Nrb3B0IHdoZXJlIGF2YWlsYWJsZSAoKkJTRCkgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xNyAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6IENIQU5HRVM6IHNubXBkOgorICAgICAgUEFUQ0hFUzoKKworIDMxNzU2NDA6IFVzZSBJUF9SRUNWRFNUQUREUiBzb2Nrb3B0IHdoZXJlIGF2YWlsYWJsZSAoKkJTRCkgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xNyAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6IENIQU5HRVM6IHNubXBkOgorICAgICAgUEFUQ0hFUzoKKworIDMxNzU2NDA6IFVzZSBJUF9SRUNWRFNUQUREUiBzb2Nrb3B0IHdoZXJlIGF2YWlsYWJsZSAoKkJTRCkgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTgzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE4MzAwMDogRml4CisKKyBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lEIHByZWZpeCBsZW5ndGggQ0hBTkdFUzogc25tcGxpYjogQlVHUzoKKyAzMTgyOTg1OiBGaXggY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxODIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzMTgzMDAwOiBGaXgKKworIGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aCBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOgorIDMxODI5ODU6IEZpeCBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lEIHByZWZpeCBsZW5ndGggZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDE4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDMxODMwMDA6IEZpeAorCisgY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6CisgMzE4Mjk4NTogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE4MzAwMDogRml4CisKKyBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lEIHByZWZpeCBsZW5ndGggQ0hBTkdFUzogc25tcGxpYjogQlVHUzoKKyAzMTgyOTg1OiBGaXggY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxODIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzMTgzMDAwOiBGaXgKKworIGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aCBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOgorIDMxODI5ODU6IEZpeCBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lEIHByZWZpeCBsZW5ndGggZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgYXBwcy9zbm1wdHJhcGRfZHMuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBDSEFOR0VTOgorCisgTGludXg6IFBBVENIRVM6IDMyMDU4MTE6IE9wdGlvbiB0byBza2lwIGZkL2xvb3AvcmFtIGRldmljZXMgaW4KKyBkaXNrSU9UYWJsZSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTgxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgYXBwcy9zbm1wdHJhcGRfZHMuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBDSEFOR0VTOgorCisgTGludXg6IFBBVENIRVM6IDMyMDU4MTE6IE9wdGlvbiB0byBza2lwIGZkL2xvb3AvcmFtIGRldmljZXMgaW4KKyBkaXNrSU9UYWJsZSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxODEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogQ0hBTkdFUzogcHl0aG9uOiBQQVRDSEVTOiAzMTg1MDg1OgorCisgRml4IHNlZ2ZhdWx0IG9uIDY0LWJpdCBzeXN0ZW1zIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxODAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogQ0hBTkdFUzogcHl0aG9uOiBQQVRDSEVTOiAzMTg1MDg1OgorCisgRml4IHNlZ2ZhdWx0IG9uIDY0LWJpdCBzeXN0ZW1zIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxODAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogQ0hBTkdFUzogcHl0aG9uOiBQQVRDSEVTOiAzMTg1MDg1OgorCisgRml4IHNlZ2ZhdWx0IG9uIDY0LWJpdCBzeXN0ZW1zIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxODAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogQ0hBTkdFUzogcHl0aG9uOiBQQVRDSEVTOiAzMTg1MDg1OgorCisgRml4IHNlZ2ZhdWx0IG9uIDY0LWJpdCBzeXN0ZW1zIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMxNzUzMjM6IEZpeCBoYW5kbGluZyBvZgorCisgJ3doaWxlIChmYWxzZSknIGJsb2NrcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTc5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzE3NTMyMzogRml4IGhhbmRsaW5nIG9mCisKKyAnd2hpbGUgKGZhbHNlKScgYmxvY2tzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMTc1MzIzOiBGaXggaGFuZGxpbmcgb2YKKworICd3aGlsZSAoZmFsc2UpJyBibG9ja3MgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMxNzUzMjM6IEZpeCBoYW5kbGluZyBvZgorCisgJ3doaWxlIChmYWxzZSknIGJsb2NrcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTc5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzE3NTMyMzogRml4IGhhbmRsaW5nIG9mCisKKyAnd2hpbGUgKGZhbHNlKScgYmxvY2tzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMDQ4ODM6IEZpeCBoYW5kbGluZyBvZgorCisgbm9uLXRhYmxlIG9iamVjdHMgbmFtZWQgZm9vVGFibGUgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMDQ4ODM6IEZpeCBoYW5kbGluZyBvZgorCisgbm9uLXRhYmxlIG9iamVjdHMgbmFtZWQgZm9vVGFibGUgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDE3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMDQ4ODM6IEZpeCBoYW5kbGluZyBvZgorCisgbm9uLXRhYmxlIG9iamVjdHMgbmFtZWQgZm9vVGFibGUgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMDQ4ODM6IEZpeCBoYW5kbGluZyBvZgorCisgbm9uLXRhYmxlIG9iamVjdHMgbmFtZWQgZm9vVGFibGUgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMDQ4ODM6IEZpeCBoYW5kbGluZyBvZgorCisgbm9uLXRhYmxlIG9iamVjdHMgbmFtZWQgZm9vVGFibGUgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIxMTQ4NDogU3VwcG9ydAorCisgZW51bWVyYXRpb25zIGluIG5vdGlmaWNhdGlvbiB2YXJiaW5kcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIxMTQ4NDogU3VwcG9ydAorCisgZW51bWVyYXRpb25zIGluIG5vdGlmaWNhdGlvbiB2YXJiaW5kcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIxMTQ4NDogU3VwcG9ydAorCisgZW51bWVyYXRpb25zIGluIG5vdGlmaWNhdGlvbiB2YXJiaW5kcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIxMTQ4NDogU3VwcG9ydAorCisgZW51bWVyYXRpb25zIGluIG5vdGlmaWNhdGlvbiB2YXJiaW5kcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIxMTQ4NDogU3VwcG9ydAorCisgZW51bWVyYXRpb25zIGluIG5vdGlmaWNhdGlvbiB2YXJiaW5kcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDogQWRkIG1pc3Npbmcgc3lzdGVtIG9pZHMgdG8gbWliIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OiBBZGQgbWlzc2luZyBzeXN0ZW0gb2lkcyB0byBtaWIgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6IEFkZCBtaXNzaW5nIHN5c3RlbSBvaWRzIHRvIG1pYiBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDogQWRkIG1pc3Npbmcgc3lzdGVtIG9pZHMgdG8gbWliIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OiBBZGQgbWlzc2luZyBzeXN0ZW0gb2lkcyB0byBtaWIgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFwcHMvc25tcHRhYmxlLmM6IEZpeCBmb3IgZ2FyYmFnZSBvdXRwdXQgd2hlbiBhZ2VudCBwcmVzZW50cyBtb3JlCisKKyBjb2x1bW5zIGluIGJ1bGsgcmVzcG9uc2UgdGhhbiBvdXIgbG9jYWwgTUlCIGZpbGUgIHNwZWNpZmllZC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFwcHMvc25tcHRhYmxlLmM6IEZpeCBmb3IgZ2FyYmFnZSBvdXRwdXQgd2hlbiBhZ2VudCBwcmVzZW50cyBtb3JlCisKKyBjb2x1bW5zIGluIGJ1bGsgcmVzcG9uc2UgdGhhbiBvdXIgbG9jYWwgTUlCIGZpbGUgIHNwZWNpZmllZC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFwcHMvc25tcHRhYmxlLmM6IEZpeCBmb3IgZ2FyYmFnZSBvdXRwdXQgd2hlbiBhZ2VudCBwcmVzZW50cyBtb3JlCisKKyBjb2x1bW5zIGluIGJ1bGsgcmVzcG9uc2UgdGhhbiBvdXIgbG9jYWwgTUlCIGZpbGUgIHNwZWNpZmllZC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFwcHMvc25tcHRhYmxlLmM6IEZpeCBmb3IgZ2FyYmFnZSBvdXRwdXQgd2hlbiBhZ2VudCBwcmVzZW50cyBtb3JlCisKKyBjb2x1bW5zIGluIGJ1bGsgcmVzcG9uc2UgdGhhbiBvdXIgbG9jYWwgTUlCIGZpbGUgIHNwZWNpZmllZC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFwcHMvc25tcHRhYmxlLmM6IEZpeCBmb3IgZ2FyYmFnZSBvdXRwdXQgd2hlbiBhZ2VudCBwcmVzZW50cyBtb3JlCisKKyBjb2x1bW5zIGluIGJ1bGsgcmVzcG9uc2UgdGhhbiBvdXIgbG9jYWwgTUlCIGZpbGUgIHNwZWNpZmllZC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbWFuL3NubXB0cmFwZC44LmRlZjogRml4IHdyb25nIG5hbWUgZm9yIGNvbmZpZyB0b2tlbgorCisgJ2RvTm90UmV0YWluTm90aWZpY2F0aW9uTG9ncycgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbWFuL3NubXB0cmFwZC44LmRlZjogRml4IHdyb25nIG5hbWUgZm9yIGNvbmZpZyB0b2tlbgorCisgJ2RvTm90UmV0YWluTm90aWZpY2F0aW9uTG9ncycgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDE3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbWFuL3NubXB0cmFwZC44LmRlZjogRml4IHdyb25nIG5hbWUgZm9yIGNvbmZpZyB0b2tlbgorCisgJ2RvTm90UmV0YWluTm90aWZpY2F0aW9uTG9ncycgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbWFuL3NubXB0cmFwZC44LmRlZjogRml4IHdyb25nIG5hbWUgZm9yIGNvbmZpZyB0b2tlbgorCisgJ2RvTm90UmV0YWluTm90aWZpY2F0aW9uTG9ncycgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbWFuL3NubXB0cmFwZC44LmRlZjogRml4IHdyb25nIG5hbWUgZm9yIGNvbmZpZyB0b2tlbgorCisgJ2RvTm90UmV0YWluTm90aWZpY2F0aW9uTG9ncycgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19mcmVlYnNkLmM6IFJlbW92ZSBib2d1cworCisgKExpbnV4KSBkZWZpbmVzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2ZyZWVic2QuYzogUmVtb3ZlIGJvZ3VzCisKKyAoTGludXgpIGRlZmluZXMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfZnJlZWJzZC5jOiBSZW1vdmUgYm9ndXMKKworIChMaW51eCkgZGVmaW5lcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBzbm1wbGliL3NubXAtdGMuYzogSEFWRV9UTV9UTV9HTVRPRkYgaXMgSEFWRV9TVFJVQ1RfVE1fVE1fR01UT0ZGCisgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBzbm1wbGliL3NubXAtdGMuYzogSEFWRV9UTV9UTV9HTVRPRkYgaXMgSEFWRV9TVFJVQ1RfVE1fVE1fR01UT0ZGCisgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBzbm1wbGliL3NubXAtdGMuYzogSEFWRV9UTV9UTV9HTVRPRkYgaXMgSEFWRV9TVFJVQ1RfVE1fVE1fR01UT0ZGCisgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oLCBjb25maWd1cmUsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogQmlsbCBGZW5uZXJzIHBhdGNoIHRvIG1ha2UKKworIERJU01BTiBQSU5HIGFuZCBUUkFDRVJPVVRFIE1JQlMgY29tcGlsZSB1bmRlciBMaW51eCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX3NvbGFyaXMyLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlcy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfc29sYXJpczIuYzogU29sYXJpcyBzdXBwb3J0IGZvcgorCisgU0NUUC1NSUIgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfc29sYXJpczIuYywgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19zb2xhcmlzMi5jOiBTb2xhcmlzIHN1cHBvcnQgZm9yCisKKyBTQ1RQLU1JQiBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19zb2xhcmlzMi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX3NvbGFyaXMyLmM6IFNvbGFyaXMgc3VwcG9ydCBmb3IKKworIFNDVFAtTUlCIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wLXRjLmM6IFRaIGlzIG9uZSBob3VyIG9mZiBpZiBIQVZFX1RNX1RNX0dNVE9GRiBhbmQKKworIFNZU1YgKHN1Y2ggaXMgTGludXgpIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvc25tcC10Yy5jOiBUWiBpcyBvbmUgaG91ciBvZmYgaWYgSEFWRV9UTV9UTV9HTVRPRkYgYW5kCisKKyBTWVNWIChzdWNoIGlzIExpbnV4KSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTY5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NubXAtdGMuYzogVFogaXMgb25lIGhvdXIgb2ZmIGlmIEhBVkVfVE1fVE1fR01UT0ZGIGFuZAorCisgU1lTViAoc3VjaCBpcyBMaW51eCkgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTY5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTAxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IGR0bHM6CisKKyBvdmVyaGF1bCBvZiBkZWJ1ZyAgIC0gZHJhc3RpYyByZWR1Y3Rpb24gaW4gbnVtYmVyIG9mIG1lc3NhZ2VzIGFuZCBtc2cgY29tcGxleGl0eSAgICAgZm9yIGJhc2ljIGR0bHN1ZHAgdG9rZW4gICAtIHByZXZpb3VzIGxldmVsIG9mIGRldGFpbCBhdmFpbGFibGUgYnkgYWRkaW5nIDk6ZHRsc2R1cCB0b2tlbiBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTY4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA0LTAxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IGR0bHM6CisKKyBvdmVyaGF1bCBvZiBkZWJ1ZyAgIC0gZHJhc3RpYyByZWR1Y3Rpb24gaW4gbnVtYmVyIG9mIG1lc3NhZ2VzIGFuZCBtc2cgY29tcGxleGl0eSAgICAgZm9yIGJhc2ljIGR0bHN1ZHAgdG9rZW4gICAtIHByZXZpb3VzIGxldmVsIG9mIGRldGFpbCBhdmFpbGFibGUgYnkgYWRkaW5nIDk6ZHRsc2R1cCB0b2tlbiBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMDEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogZHRsczoKKworIGNsZWFuIHVwIGNsb3NlOyBjYXRjaCAnY29ubmVjdCcvJ2Rpc2Nvbm5lY3QnICAgY29ubmVjdCA9IHdlIGdldCBzdWNjZXNzZnVsbHkgZGVjb2RlZCBzbm1wIGRhdGEgICBkaXNjb25uZWN0ID0gMCBieXRlIHJlYWQsIHNzaCBzaHV0ZG93biBmbGFnIHNldCAgIGFkZCBiaW9fY2FjaGUgZmxhZ3MgZm9yIGNvbm5lY3RlZC9kaXNjb25uZWN0ZWQgICBjaGVjayBmb3IgbnVsbCBwdHIgYmVmb3JlIGRlcmVmZXJlbmNpbmcgICBjbG9zZSBoYW5kbGluZzogICAtICBvbmx5IHNlbmQgcXVldWVkIGRhdGEgaWYgd2UgZ290IHRvIGNvbm5lY3RlZCBzdGF0ZSAgIC0gIHNlcmlvdXNseSByZWR1Y2UgdGltZW91dCB0byB3YWl0IGZvciBqdW5rIHJlYWQuIGkgdGhpbmsgICAgICB3ZSBzaG91bGRuJ3QgZXZlbiBib3RoZXIgICAtIHJldHVybiBlYXJseSBpZiBjYWNoZXAgaXMgTlVMTCwgc28gd2UgZG9uJ3QgaGF2ZSB0byB0ZXN0IGl0ICAgICByZXBlYXRlZGx5ICAgLSB1c2UgY29ycmVjdCBuZmRzIHZhbHVlIGluIHNlbGVjdCBjYWxsIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDQtMDEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogZHRsczoKKworIGNsZWFuIHVwIGNsb3NlOyBjYXRjaCAnY29ubmVjdCcvJ2Rpc2Nvbm5lY3QnICAgY29ubmVjdCA9IHdlIGdldCBzdWNjZXNzZnVsbHkgZGVjb2RlZCBzbm1wIGRhdGEgICBkaXNjb25uZWN0ID0gMCBieXRlIHJlYWQsIHNzaCBzaHV0ZG93biBmbGFnIHNldCAgIGFkZCBiaW9fY2FjaGUgZmxhZ3MgZm9yIGNvbm5lY3RlZC9kaXNjb25uZWN0ZWQgICBjaGVjayBmb3IgbnVsbCBwdHIgYmVmb3JlIGRlcmVmZXJlbmNpbmcgICBjbG9zZSBoYW5kbGluZzogICAtICBvbmx5IHNlbmQgcXVldWVkIGRhdGEgaWYgd2UgZ290IHRvIGNvbm5lY3RlZCBzdGF0ZSAgIC0gIHNlcmlvdXNseSByZWR1Y2UgdGltZW91dCB0byB3YWl0IGZvciBqdW5rIHJlYWQuIGkgdGhpbmsgICAgICB3ZSBzaG91bGRuJ3QgZXZlbiBib3RoZXIgICAtIHJldHVybiBlYXJseSBpZiBjYWNoZXAgaXMgTlVMTCwgc28gd2UgZG9uJ3QgaGF2ZSB0byB0ZXN0IGl0ICAgICByZXBlYXRlZGx5ICAgLSB1c2UgY29ycmVjdCBuZmRzIHZhbHVlIGluIHNlbGVjdCBjYWxsIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE2NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0zMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBtYWtlIHRydW5rIGFuZAorCisgdjUtNi1wYXRjaGVzIGNsb3NlbHkgYWxpZ25lZCAgIG1vc3RseSBjaGFuZ2VzIGluIGRlYnVnLCBjb29raWUgdHJhY2tpbmcgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE2NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0zMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBtYWtlIHRydW5rIGFuZAorCisgdjUtNi1wYXRjaGVzIGNsb3NlbHkgYWxpZ25lZCAgIG1vc3RseSBjaGFuZ2VzIGluIGRlYnVnLCBjb29raWUgdHJhY2tpbmcgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTY2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTMxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IGFkZCBjb29raWUgaGFuZGxpbmc7CisKKyByZW1vdmUgaWZkZWYnZCBjb2RlIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMjcgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzogU2ltcGxpZnkgYXJyYXkgcmVzaXppbmcgc29tZXdoYXQKKworIGZ1cnRoZXIgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTY0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTI3ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6IERvIG5vdCBhc3NpZ24gbmV3X2RhdGEgaWYgdGhlCisKKyB2YWx1ZSB3b24ndCBiZSB1c2VkLiAgUmVkdWNlIHZhcmlhYmxlIHNjb3Blcy4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE2MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0yNyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOiBJdCBpcyBub3QgbmVjZXNzYXJ5IHRvIGNsZWFyIGEKKworIGNodW5rIG9mIG1lbW9yeSBpZiB0aGUgbmV4dCBhY3Rpb24gb24gaXQgaXMgdG8gZmlsbCBpdCBzbyB1c2UgbWFsbG9jCisgaW5zdGVhZCBvZiBjYWxsb2MuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMjcgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzogQ29udGFpbmVyQmluYXJ5QXJyYXkgcmVhbGx5CisKKyBjYW4ndCBob2xkIGFueXRobmcgYnV0IHBvaW50ZXJzIGFuZCB0aGF0IG1lYW5zIHRoZSBkYXRhX3NpemUgZmllbGQKKyBpcyB1bm5lY2Vzc2FyeSBzbyBJIHJlbW92ZWQgaXQuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBhcHBzL3NubXB0cmFwZC5jLCAKKyAgICAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgc25tcGxpYi9zbm1wX3NlY21vZC5jLCAKKyAgICAgIHNubXBsaWIvc25tcHYzLmM6IEFkZCBtaXNzaW5nIGluY2x1ZGUgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogVXNlIHRoZSByaWdodCBmZWF0dXJlCisKKyBtYWNybyBpbiBvcmRlciB0byBtYWtlIGJ1aWxkcyB3aXRoIC0tZW5hYmxlLWlwdjYKKyAtLXdpdGgtb3V0LXRyYW5zcG9ydHM9VURQSVB2NiBzdWNjZWVkLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTU5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IFJlbW92ZSBkdXBsaWNhdGUgY29waWVzIG9mCisKKyBmdW5jdGlvbnMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTI1ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvbmV0LXNubXAtY2VydDogdHdlYWsgZGVidWcgbWVzc2FnZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0yNSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiB1cGRhdGUKKworIGNlcnQgdG9rZW4gaGFuZGxpbmcgIC0gcmVtb3ZlIGRlZlg1MDkgY2VydCB0b2tlbnMgKHNob3VsZCBoYXZlIGJlZW4gcmVtb3ZlZCBiZWZvcmUgNS42KSAgLSB3YXJuaW5ncyBmb3Igb3VyL3RoZWlyIHRva2VucywgcmVjb21tZW5kIHVzaW5nIGxvY2FsL3BlZXIgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTI1ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOiBtZXJnZSBuZXRzbm1wX2R0bHN1ZHA2CisgICAgICBpbnRvCisKKyBuZXRzbm1wX2R0bHN1ZHAgICAgdXNlIGFkZHIgc2l6ZSB0byB0ZWxsIHRoZW0gYXBhcnQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTU1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTI1ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOiBsb2cgKG9uY2UpIHdhcm5pbmcgd2hlbiBkZXByZWNhdGVkCisKKyBmX2NyZWF0ZV9mcm9tX3RzdHJpbmcgdHJhbnNwb3J0IGZ1bmN0aW9uIHVzZWQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTU0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTI1ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYzogcmVkdWNlIGNhc3Rpbmc7IG1ha2Ugc3VyZSB0bworCisgZnJlZSB0aGUgcmlnaHQgcG9pbnRlciBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMjUgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzogcmVkdWNlIGNhc3RpbmcgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMjQgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOiBSZXBsYWNlIGEgdmFyaWFibGUgd2l0aCBhCisKKyBjb25zdGFudC4gTWFrZSBvbmUgbW9yZSBvaWQgY29uc3QuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTggIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogQ0hBTkdFUzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTQ3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTE4ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTE4ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIAorICAgICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UgZGVwZW5kIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0xOCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsIAorICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIAorICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIAorICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgCisgICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgCisgICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIAorICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsIAorICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgCisgICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgCisgICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgCisgICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIAorICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgCisgICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgCisgICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgCisgICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgCisgICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsIAorICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIAorICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIAorICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIAorICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgCisgICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKKyAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCAgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLAorICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOiBkb2N1bWVudGF0aW9uCisKKyB1cGRhdGUgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0xOCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKKyAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0xNyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbWFuL3NubXBkZWx0YS4xLmRlZjogRm9ybWF0dGluZyBib3RjaCBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTcgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIG1hbi9zbm1wZGVsdGEuMS5kZWY6IEZvcm1hdHRpbmcgYm90Y2ggZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTcgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIG1pYnMvTWFrZWZpbGUuaW46IEluc3RhbGwgcmVxdWlyZWQgbWlicyBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTcgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIG1pYnMvTWFrZWZpbGUuaW46IEluc3RhbGwgcmVxdWlyZWQgbWlicyBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0xNyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbWlicy9yZmNsaXN0OiBOZXcgUkZDIG1pYnMgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTQwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTE3ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBtaWJzL3JmY2xpc3Q6IE5ldyBSRkMgbWlicyBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0xNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBDSEFOR0VTLCBORVdTOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgCisgICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UKKworIGRlcGVuZCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTM2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywgCisgICAgICBwZXJsL0FTTi9BU04ucG0sIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvT0lEL09JRC5wbSwgCisgICAgICBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCAKKyAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCBwZXJsL2FnZW50L2FnZW50LnBtLCAKKyAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAKKyAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgorICAgICAgVmVyc2lvbgorCisgbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIE1ha2VmaWxlLnRvcDogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTM0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYzogU3BlbGxpbmcgZml4OiByZWdpbmVyYXRlZCAtPiByZWdlbmVyYXRlZC4gCisgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBzbm1wbGliL2NlcnRfdXRpbC5jOiBTcGVsbGluZyBmaXg6IHJlZ2luZXJhdGVkIC0+IHJlZ2VuZXJhdGVkLiAKKyAgICAgIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYzogU2ltcGxpZmllZCByMTk1OTQgKGxlYWstYXQtZXhpdCBmaXgpLiAKKyAgICAgIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTMyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOiBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgdGhhdCB3YXMKKworIGludHJvZHVjZWQgaW4gcjIwMTEzLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEzMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzogRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIHRoYXQgd2FzCisKKyBpbnRyb2R1Y2VkIGluIHIyMDExMy4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBDSEFOR0VTLCBORVdTOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxMjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxMjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgCisgICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UKKworIGRlcGVuZCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTI2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgCisgICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgCisgICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsIAorICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgCisgICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAorICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIAorICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIAorICAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgCisgICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgCisgICAgICBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgbWFuL25ldHNubXBfc2NhbGFyLjMsIAorICAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgCisgICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIAorICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIAorICAgICAgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgCisgICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKKyAgICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzogZG9jdW1lbnRhdGlvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTI1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywgCisgICAgICBwZXJsL0FTTi9BU04ucG0sIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvT0lEL09JRC5wbSwgCisgICAgICBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCAKKyAgICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAKKyAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgorICAgICAgVmVyc2lvbgorCisgbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIE1ha2VmaWxlLnRvcDogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L3NubXBkLmM6IEZpeCBtYWluIGFnZW50IHNlbGVjdCBjYWxsIHRvIHVzZSB0aGUgcmVuYW1lZCBBUEkKKworIHJvdXRpbmUuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L3NubXBkLmM6IEZpeCBtYWluIGFnZW50IHNlbGVjdCBjYWxsIHRvIHVzZSB0aGUgcmVuYW1lZCBBUEkKKworIHJvdXRpbmUuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTMgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOiAKKworIEJyaW5nIHRoZSBuYW1pbmcgb2YgdGhlIGxhcmdlX2ZkX3NldCBzZWxlY3QgY2FsbCBpbnRvIGxpbmUgd2l0aCB0aGUKKyByZXN0IG9mIHRoZSBBUEkuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTEzICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgc25tcGxpYi9sYXJnZV9mZF9zZXQuYzogCisKKyBCcmluZyB0aGUgbmFtaW5nIG9mIHRoZSBsYXJnZV9mZF9zZXQgc2VsZWN0IGNhbGwgaW50byBsaW5lIHdpdGggdGhlCisgcmVzdCBvZiB0aGUgQVBJLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0xMyAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6IAorCisgQnJpbmcgdGhlIG5hbWluZyBvZiB0aGUgbGFyZ2VfZmRfc2V0IHNlbGVjdCBjYWxsIGludG8gbGluZSB3aXRoIHRoZQorIHJlc3Qgb2YgdGhlIEFQSS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0xMyAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6IAorCisgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMyMDM4MDY6IEFkZCB0aGUgZnVuY3Rpb24KKyBuZXRzbm1wX2xhcmdlX3NlbGVjdCgpIChwbHVzIHR3ZWFrcyB0byBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUpIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxMjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTIgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzogQ0hBTkdFUzogc25tcGxpYjogcmVhbGxvYytpbml0CisKKyBpbnN0ZWFkIG9mIGNhbGxvYyAgaW5zcGlyZWQgYnkgcGF0Y2ggMzE5NTUzMiBmcm9tIFN0ZXBoZW4gSGVtbWluZ2VyIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTIgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzogQ0hBTkdFUzogc25tcGxpYjogcmVhbGxvYytpbml0CisKKyBpbnN0ZWFkIG9mIGNhbGxvYyAgaW5zcGlyZWQgYnkgcGF0Y2ggMzE5NTUzMiBmcm9tIFN0ZXBoZW4gSGVtbWluZ2VyIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTIgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzogQ0hBTkdFUzogc25tcGxpYjogcmVhbGxvYytpbml0CisKKyBpbnN0ZWFkIG9mIGNhbGxvYyAgaW5zcGlyZWQgYnkgcGF0Y2ggMzE5NTUzMiBmcm9tIFN0ZXBoZW4gSGVtbWluZ2VyIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDExOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0xMiAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCisgICAgICAgX2ludGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnQKKyAgICAgICBlcmZhY2UuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaDoKKworIENIQU5HRVM6IHNubXBkOiBQQVRDSDogb3B0aW1pemF0aW9ucyBmb3IgbGFyZ2Ugcm91dGUgdGFibGVzIGZyb20KKyBTdGVwaGVuIEhlbW1pbmdlciAgYXBwbGllZCBwYXJ0cyAxLTMgb2YgNCBmcm9tIGhpbSAobXNncyB0byBjb2RlcnMgb24gMi8yOC8xMTsgc3ViamVjdCAgaXAtZm9yd2FyZC1taWIgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzOyBwYXJ0IDQgbmVlZHMgbW9yZSB3b3JrIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTIgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQorICAgICAgIF9pbnRlcmZhY2UuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50CisgICAgICAgZXJmYWNlLmM6IENIQU5HRVM6IHNubXBkOiBQQVRDSDogb3B0aW1pemF0aW9ucyBmb3IgbGFyZ2Ugcm91dGUKKworIHRhYmxlcyBmcm9tIFN0ZXBoZW4gSGVtbWluZ2VyICBhcHBsaWVkIHBhcnRzIDEtMyBvZiA0IGZyb20gaGltIChtc2dzIHRvIGNvZGVycyBvbiAyLzI4LzExOyBzdWJqZWN0ICBpcC1mb3J3YXJkLW1pYiBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHM7IHBhcnQgNCBuZWVkcyBtb3JlIHdvcmsgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0xMiAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCisgICAgICAgX2ludGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnQKKyAgICAgICBlcmZhY2UuYzogQ0hBTkdFUzogc25tcGQ6IFBBVENIOiBvcHRpbWl6YXRpb25zIGZvciBsYXJnZSByb3V0ZQorCisgdGFibGVzIGZyb20gU3RlcGhlbiBIZW1taW5nZXIgIGFwcGxpZWQgcGFydHMgMS0zIG9mIDQgZnJvbSBoaW0gKG1zZ3MgdG8gY29kZXJzIG9uIDIvMjgvMTE7IHN1YmplY3QgIGlwLWZvcndhcmQtbWliIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50czsgcGFydCA0IG5lZWRzIG1vcmUgd29yayBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogYWRkIG1vcmUKKworIG9wZW5zc2wgZXJyb3IgY2FzZXMgd2hlcmUgd2UgY2hlY2sgZm9yIGxvY2FsIGNlcnQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0xMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiBhZGQgbW9yZQorCisgb3BlbnNzbCBlcnJvciBjYXNlcyB3aGVyZSB3ZSBjaGVjayBmb3IgbG9jYWwgY2VydCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogTWluR1c6IGRza1RhYmxlOiBSZXBvcnQgemVybyBmb3IKKworIHVuaW1wbGVtZW50ZWQgZmllbGRzIGluc3RlYWQgb2YgcmFuZG9tIGRhdGEuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6IE1pbkdXOiBkc2tUYWJsZTogUmVwb3J0IHplcm8gZm9yCisKKyB1bmltcGxlbWVudGVkIGZpZWxkcyBpbnN0ZWFkIG9mIHJhbmRvbSBkYXRhLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTExICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcmFjZQorCisgY29uZGl0aW9uIGluIGhyU1dSdW5UYWJsZSBUcmVhdCB0aGUgcmVhZHMgZnJvbSAvcHJvYy88cGlkPi8qCisgY2FyZWZ1bHksIHByb2Nlc3NlcyBjYW4gZXhpdCBpbiB0aGUgbWlkZGxlIG9mIHByb2Nlc3NpbmcuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTE1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTExICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcmFjZQorCisgY29uZGl0aW9uIGluIGhyU1dSdW5UYWJsZSBUcmVhdCB0aGUgcmVhZHMgZnJvbSAvcHJvYy88cGlkPi8qCisgY2FyZWZ1bHksIHByb2Nlc3NlcyBjYW4gZXhpdCBpbiB0aGUgbWlkZGxlIG9mIHByb2Nlc3NpbmcuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTE1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6IENIQU5HRVM6IHNubXBkOiBCdWlsZHMKKworIHdpdGggbW9zdCByZWNlbnQgTWluR1cgKGhhdmluZyAjZGVmaW5lIGxvY2FsdGltZV9yKS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzogQ0hBTkdFUzogc25tcGQ6IEJ1aWxkcworCisgd2l0aCBtb3N0IHJlY2VudCBNaW5HVyAoaGF2aW5nICNkZWZpbmUgbG9jYWx0aW1lX3IpLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTExICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYzogQ0hBTkdFUzogc25tcGxpYjoKKworIHJlZmluZSBjZXJ0IGRlYnVnZ2luZzsgcmVtb3ZlIHVudXNlZCBmdW5jdGlvbiBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTExICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYzogQ0hBTkdFUzogc25tcGxpYjoKKworIHJlZmluZSBjZXJ0IGRlYnVnZ2luZzsgcmVtb3ZlIHVudXNlZCBmdW5jdGlvbiBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTAgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOiBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMjA1NzY1OiBoYW5kbGUgcmVjb25maWcKKworIGZvciBjZXJ0U2VjTmFtZSB0b2tlbiBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTEwICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzogQ0hBTkdFUzogc25tcGQ6IEJVRzogMzIwNTc2NTogaGFuZGxlIHJlY29uZmlnCisKKyBmb3IgY2VydFNlY05hbWUgdG9rZW4gZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9zbm1wZC5jOiBTcGVsbGluZyBmaXggaW4gYSBzb3VyY2UgY29kZSBjb21tZW50OiBtZXNzZ2VzIC0+CisKKyBtZXNzYWdlcy4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L3NubXBkLmM6IFNwZWxsaW5nIGZpeCBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQ6IG1lc3NnZXMgLT4KKworIG1lc3NhZ2VzLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzIwMzgwNjogTWlub3IKKworIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiBvZiBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBNaW5vcgorCisgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIG9mIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9zbm1wZC5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMyMDM4MDY6IEF2b2lkIHRoYXQgdGhlIG1haW4KKworIGFnZW50IHByb2Nlc3NpbmcgbG9vcCAtIHdoZW4gdXNpbmcgbW9yZSB0aGFuIEZEX1NFVFNJWkUgZmlsZQorIGRlc2NyaXB0b3JzIC0gY2FuIGNhdXNlIG1lbW9yeSBjb3JydXB0aW9uIGJ5IGludm9raW5nIHNlbGVjdCgpLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEwOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvc25tcGQuYzogQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMjAzODA2OiBBdm9pZCB0aGF0IHRoZSBtYWluCisKKyBhZ2VudCBwcm9jZXNzaW5nIGxvb3AgLSB3aGVuIHVzaW5nIG1vcmUgdGhhbiBGRF9TRVRTSVpFIGZpbGUKKyBkZXNjcmlwdG9ycyAtIGNhbiBjYXVzZSBtZW1vcnkgY29ycnVwdGlvbiBieSBpbnZva2luZyBzZWxlY3QoKS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEwOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOiAKKworIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBBZGQgdGhlIGZ1bmN0aW9uCisgbmV0c25tcF9sYXJnZV9zZWxlY3QoKS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgc25tcGxpYi9sYXJnZV9mZF9zZXQuYzogCisKKyBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzIwMzgwNjogQWRkIHRoZSBmdW5jdGlvbgorIG5ldHNubXBfbGFyZ2Vfc2VsZWN0KCkuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jOiAKKworIEZpeGVkIHR3byBjb21waWxlciB3YXJuaW5ncyAoYmFja3BvcnRlZCByMjAwOTggZnJvbSB0aGUgdHJ1bmspLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZCwgCisgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDlsYXJnZV9mZF9zZXRfY2xpYi5jOiBBZGRlZCBhCisKKyBtaW5pbWFsIHVuaXQgdGVzdCBmb3IgbmV0c25tcF9sYXJnZV9mZF9zZXQuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQsIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA5bGFyZ2VfZmRfc2V0X2NsaWIuYzogQWRkZWQgYQorCisgbWluaW1hbCB1bml0IHRlc3QgZm9yIG5ldHNubXBfbGFyZ2VfZmRfc2V0LiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEwNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9sYXJnZV9mZF9zZXQuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMyMDM4MDY6IE1ha2UKKworIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpIGNsZWFyIGFsbCByZWxldmFudCBmaWxlIGRlc2NyaXB0b3JzLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTA1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzIwMzgwNjogTWFrZQorCisgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkgY2xlYXIgYWxsIHJlbGV2YW50IGZpbGUgZGVzY3JpcHRvcnMuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTA1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTEwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvc25tcC10Yy5jOiBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTc4Mzg5OiBGaXggaW5jb25zaXN0ZW50CisKKyBoYW5kbGluZyBvZiBUWiBvZmZzZXRzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxMDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTAgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wLXRjLmM6IENIQU5HRVM6IHNubXBkOiBCVUc6IDMxNzgzODk6IEZpeCBpbmNvbnNpc3RlbnQKKworIGhhbmRsaW5nIG9mIFRaIG9mZnNldHMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDEwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0xMCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NubXAtdGMuYzogQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE3ODM4OTogRml4IGluY29uc2lzdGVudAorCisgaGFuZGxpbmcgb2YgVFogb2Zmc2V0cyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTEwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvc25tcC10Yy5jOiBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTc4Mzg5OiBGaXggaW5jb25zaXN0ZW50CisKKyBoYW5kbGluZyBvZiBUWiBvZmZzZXRzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0xMCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NubXAtdGMuYzogQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE3ODM4OTogRml4IGluY29uc2lzdGVudAorCisgaGFuZGxpbmcgb2YgVFogb2Zmc2V0cyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTEwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjogbWFrZQorCisgdmFyaWFibGUgbmFtZXMgbWF0Y2ggZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDk5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYzogCisKKyBGaXhlZCB0d28gY29tcGlsZXIgd2FybmluZ3MuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMTAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOiBmaXhlZCBpbnN0YWxsYXRpb24KKworIHZhcmlhYmxlcyBmb3IgdGhlIG9wdGlvbmFsIFNFVCBwcm9ncmFtcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlLXVubmVlZGVkLW1vZHVsZXM6IGNobW9kIGEreCBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA5NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmVpZmRlZmNvZGUucGw6IHByaW50IGFuIGVycm9yIGlmIHRoZSBlbmQgb2YKKworIGEgZmlsZSB3YXMgcmVhY2hlZCBhbmQgd2UncmUgbm90IGJhY2sgaW50byB0aGUgc3RhdGUgd2UgY2FuIHdyaXRlOworIG90aGVyd2lzZSBhIGNsb3NpbmcgI2lmZGVmIGlzIG1pc3NpbmcuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOiBmaXggZW5kaWYgY29tbWVudCB0byBtYXRjaAorCisgdGhlIG9wZW5pbmcgaWZkZWYgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDk0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDogcmVzZXQgdGhlIGNhbndyaXRlIGZsYWcgZm9yCisKKyBldmVyeSBmaWxlIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA5MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmUtdW5uZWVkZWQtbW9kdWxlczogdGVtcG9yYXJpbHkgbGVhdmUgaW4KKworIGhlYWRlciBmaWxlcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOiBjaGFuZ2UgdGhlIHVuaXF1ZSBmaWxlIGNoZWNrIHRvIG9uZSB0aGF0CisKKyBpcyBub3QgaW4gdGhlIG1pYmdyb3VwIGRpcmVjdG9yeSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3JlYWQtb25seS9UMDE0MXNubXB2MmNzZXRmYWlsX3NpbXBsZTogYSB0ZXN0IGZvcgorCisgZW5zdXJpbmcgdGhlIGFnZW50IHJlamVjdHMgU0VUIHJlcXVlc3RzIHdpdGggLS1lbmFibGUtcmVhZC1vbmx5IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA5MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0MXNubXB2MmNzZXRfc2ltcGxlOiBhZGQgYmFjayBpbiB0aGUKKworIHN0b3BhZ2VudCBjb21tYW5kIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwMXBkdV90eXBlX2NsaWIuYywgCisgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDJwZHVfYnVpbGRfY2xpYi5jLCAKKyAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwM3BkdV9wYXJzZV9jbGliLmM6IHVuaXQgdGVzdHMKKyAgICAgIHdyaXRlbgorCisgZm9yIHRoZSByZWFkLW9ubHkgc3VwcG9ydCBjb252ZXJ0ZWQgdG8gd29yayB3aXRoIG9yIHdpdGhvdXQKKyByZWFkLW9ubHkgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDg4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTQxc25tcHYyY3NldF9zaW1wbGU6IGRvbid0IHJ1biB0aGUKKworIHNldCB0ZXN0IGlmIG5vX3dyaXRlX3N1cHBvcnQgaXMgdHVybmVkIG9uIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX3NpbXBsZTogc2tpcCBpZgorCisgbm9fd3JpdGVfc3VwcG9ydCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwODYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNDFzbm1wdjJjc2V0X3NpbXBsZTogQSBuZXcgdGVzdCB0bworCisgY2hlY2sgd2hldGhlciBTTk1QdjJjIFNFVHMgdG8gc3lzQ29udGFjdCB3b3JrIGFzIGV4cGVjdGVkIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdmFueWNvbmZpZzogYWxsb3cgZm9yIHYyYyBTRVQgc3VwcG9ydAorCisgdGVzdGluZyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwODQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOiBBbGxvdyBmb3Igc2luZ2xlIHF1b3RlcyBmb3IgdmFjbQorCisgY29udGV4dCBuYW1lIHF1b3RpbmcgdG9vIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogY29uZmlndXJlOiBmaXggdGhlIGNvbmZpZ3VyZSB0ZXN0cyB0byBpbmNsdWRlIHRoZSB3b3JkIHRlc3QgaW4gdGhlCisKKyB0ZXN0IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOiBmaXggdGhlIGNvbmZpZ3VyZSB0ZXN0cyB0byBpbmNsdWRlCisKKyB0aGUgd29yZCB0ZXN0IGluIHRoZSB0ZXN0IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmUtdW5uZWVkZWQtbW9kdWxlczogQWRkZWQgYW4gYW5ub3lpbmdseSBsb25nCisKKyBsaXN0IG9mIGV4Y2VwdGlvbnMgdGhhdCBuZWVkcyB0byBiZSBhdXRvbWF0ZWQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDgwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTA3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZS11bm5lZWRlZC1tb2R1bGVzOiBBIHF1aWNrIHBlcmwgc2NyaXB0IHRvCisKKyByZW1vdmUgdW5uZWVkZWQgY29kZSBtb2R1bGVzIGZyb20gdGhlIG1vZHVsZXMgZGlyZWN0b3J5IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgCisgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKKyAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3ZhY20uYzogbW9yZQorCisgaW1wcm92ZW1lbnRzIChyZW1vdmVtZW50cykgZm9yIGZlYXR1cml6YXRpb24gYW5kIHJlYWQtb25seSBzdXBwb3J0IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIOgorCisgMzE5NTUzNzogTWlub3IgYmluYXJ5X2FycmF5IGNvbnRhaW5lciBzb3J0IG9wdGltaXphdGlvbiBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6CisKKyAzMTk1NTM3OiBNaW5vciBiaW5hcnlfYXJyYXkgY29udGFpbmVyIHNvcnQgb3B0aW1pemF0aW9uIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wNiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jOiBUYWJzIHRvIHNwYWNlcworICAgICAgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTA2ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmM6IFRhYnMgdG8gc3BhY2VzCisgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wNiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnM6IENvbmZpZ3VyZSBjaGVjayBmb3IgZ2V0aG9zdG5hbWUyCisKKyBVc2UgZ2V0YWRkcmluZm8gaWYgYXZhaWxhYmxlLiBOb3cgd29ya3MgZm9yIFNvbGFyaXMgKGFuZCBXaW5kb3dzPykgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wNiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnM6IENvbmZpZ3VyZSBjaGVjayBmb3IgZ2V0aG9zdG5hbWUyCisKKyBVc2UgZ2V0YWRkcmluZm8gaWYgYXZhaWxhYmxlLiBOb3cgd29ya3MgZm9yIFNvbGFyaXMgKGFuZCBXaW5kb3dzPykgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTA1ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYXBwcy9zbm1wdGVzdC5jOiBBZGQgZHJvcHBlZCB8fCdzIGZyb20gcjIwMDcyIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTA1ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cFJlc3VsdHNUYWJsZS5jOiBDbGVhbiB1cCwgYW5kCisKKyBjb3NvbGlkYXRlIHJlc3VsdCB0YWJsZSByb3cgY3JlYXRpb24gaW50byBhIG5ldyBmdW5jdGlvbi4gIFNhdmVzIDIwMAorIGxpbmVzIG9mIGNvZGUsIHdpdGggKGhvcGVmdWxseSkgbm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2UgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA3MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wNSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBSZXN1bHRzVGFibGUuYzogQ2xlYW4gdXAsIGFuZAorCisgY29zb2xpZGF0ZSByZXN1bHQgdGFibGUgcm93IGNyZWF0aW9uIGludG8gYSBuZXcgZnVuY3Rpb24uICBTYXZlcyAyMDAKKyBsaW5lcyBvZiBjb2RlLCB3aXRoIChob3BlZnVsbHkpIG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRlc3QuYywgY29uZmlndXJlLCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjogZG9uJ3QgYnVpbGQgU0VUIHJlbGF0ZWQgYXBwcyB3aXRoCisKKyAtLWVuYWJsZS1yZWFkLW9ubHkgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDcyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VwZGF0ZXMuYywgCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCisgICAgICAgZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6IGZpeAorCisgaXNzdWVzIHdpdGggY29tYmluaW5nIC0tZW5hYmxlLW1pbmltYWxpc3QgYW5kIC0tZW5hYmxlLXJlYWQtb25seSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMDUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pbmltYWxpc3QvZmluZC11bnVzZWQtY29kZTogYmV0dGVyIG91dHB1dCBmb3IgZmluZGluZworCisgb2JqZWN0IHN5bWJvbHMuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMDQgIE1pa2UgQmFlciA8YmFlcm1Ac3VzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDogbGFzdCBjb21taXQ6IGNoYW5nZXMgdG8gYWxsb3cKKworIHBhcnNpbmcgb2YgZmVhdHVlcnMgZmlsZXMgdG8gZ2V0IGFsbCBtaW5pbWFsaXN0IHRhZ3Mgd2hpY2ggYXJlIHRoZW4KKyBwcm9jZXNzZWQgZm9yIHJlbW92YWwgdGhpcyBjb21taXQ6IGNoYW5nZWQgY29tbWVudHMvd2hpdGUgc3BhY2UgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDY5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTA0ICBNaWtlIEJhZXIgPGJhZXJtQHN1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOiBhZGRlZCBub193cml0ZSBzdXBwb3J0IHRvIGV4dGVuZC5jCisgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA2OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wNCAgTWlrZSBCYWVyIDxiYWVybUBzdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzogQWRkZWQgbWlzc2luZyAjZW5kaWYgY29tbWVudCBmb3IgcmVtb3ZlCisKKyBpZmRlZiBjb2RlIHN1cHBvcnQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDY3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTA0ICBNaWtlIEJhZXIgPGJhZXJtQHN1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmVpZmRlZmNvZGUucGw6IGFkZGVkIGNoYW5nZXMgdG8gYWxsb3cgY29kZQorCisgcmVtb3ZhbCBpbi1wbGFjZSAoaS5lLiBkb2VzIG5vdCByZXF1aXJlIGNyZWF0aW5nIGEgbmV3IGZpbGUpIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA2NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wNCAgTWlrZSBCYWVyIDxiYWVybUBzdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pbmltYWxpc3QvaWdub3JlLnJlZ2V4cDogYWRkaW5nIGEgaWdub3JlLnJlZ2V4cCBmaWxlIHRoYXQKKworIGNhbiBiZSB1c2VkIHdpdGggcmVtb3ZlaWZkZWZjb2RlLnBsIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA2NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOiBhZGQgYSBvdXRnb2luZyBsaW5rIHRvIHRoZQorCisgcGFyZW50IG1hcmtpbmcgcGFnZSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6IEFkZGVkIGEgd2lraSBvdXRwdXQgbW9kZQorICAgICAgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczogTm90ZSB0aGF0IHRoZSBvcmcgb3V0cHV0IGlzIHRoZQorCisgZGVmYXVsdCBpbiB0aGUgaGVscCBvdXRwdXQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDYyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTA0ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZAorCisgJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyIGJpdHMnIGluIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgb24KKyBMaW51eCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMDYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTA0ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZAorCisgJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyIGJpdHMnIGluIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgb24KKyBMaW51eCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMDYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTA0ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZAorCisgJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyIGJpdHMnIGluIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgb24KKyBMaW51eCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTA0ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZAorCisgJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyIGJpdHMnIGluIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgb24KKyBMaW51eCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdAorICAgICAgIGFfYWNjZXNzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAorICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgCisgICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsIHNubXBsaWIvc25tcF9hcGkuYzoKKworIHJlY2xhc3NpZmljYXRpb24gb2YgdGhlIHJlbWFpbmluZyBmZWF0dXJlcyBpbnRvIGEgaGllcmFyY2h5IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA2MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzogZG9uJ3QgZG91YmxlLWRlY2xhcmUgY2VydF91dGlscyBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA1OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOiB0aGUKKworIGlwYWRkcmVzc19saW51eCB3YXMgaW5jb3JyZWN0bHkgbWFya2VkIGFzIG5lZWRpbmcgY2VydF9maW5nZXJwcmludHMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOiBwdXQgdGhlIGFnZW50X3JlZ2lzdHJ5IGZlYXR1cmUgaW4KKworIGxpYm5ldHNubXBhZ2VudC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6IENIQU5HRVM6IFdpbjMyOiBEZXByZWNhdGVkCisKKyBsaWJzbm1wLmRlZiAtIGFkZCBORVRTTk1QX0lNUE9SVCB0byBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgaW5zdGVhZCB0bworIGV4cG9ydCBhIGZ1bmN0aW9uIGZyb20gbmV0c25tcC5kbGwuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjogQ0hBTkdFUzogV2luMzI6IERlcHJlY2F0ZWQKKworIGxpYnNubXAuZGVmIC0gYWRkIE5FVFNOTVBfSU1QT1JUIHRvIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBpbnN0ZWFkIHRvCisgZXhwb3J0IGEgZnVuY3Rpb24gZnJvbSBuZXRzbm1wLmRsbC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDogTW92ZWQgYSBzb3VyY2UgY29kZSBjb21tZW50CisKKyBzdWNoIHRoYXQgaXQgaXMgYWdhaW4gaW1tZWRpYXRlbHkgYWJvdmUgdGhlIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBpdAorIGFwcGxpZXMgdG8uICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDU1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6IEFkZGVkIG1pc3NpbmcKKyAgICAgIE5FVFNOTVBfSU1QT1JUCisKKyBkZWNsYXJhdGlvbnMuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDogQWRkZWQgbWlzc2luZworICAgICAgTkVUU05NUF9JTVBPUlQKKworIGRlY2xhcmF0aW9ucy4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRlZiwgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZjogCisKKyBSZW1vdmVkIHR3byBvYnNvbGV0ZSBXaW4zMiBmaWxlcy4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZGVmLCB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZGVmOiAKKworIFJlbW92ZWQgdHdvIG9ic29sZXRlIFdpbjMyIGZpbGVzLiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jOiBUcml2aWFsIGNvbW1lbnQgZml4OgorCisgc25tcElQdjZCYXNlRG9tYWluLmMgY29udGFpbnMgSVB2NiBiYXNlIHRyYW5zcG9ydCBzdXBwb3J0IGZ1bmN0aW9ucworIGluc3RlYWQgb2YgSVB2NC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jOiBUcml2aWFsIGNvbW1lbnQgZml4OgorCisgc25tcElQdjZCYXNlRG9tYWluLmMgY29udGFpbnMgSVB2NiBiYXNlIHRyYW5zcG9ydCBzdXBwb3J0IGZ1bmN0aW9ucworIGluc3RlYWQgb2YgSVB2NC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHdpbjMyL2NvbmZpZy5oOiBSZW1vdmVkIGFuIG9ic29sZXRlIGZpbGUuICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA1MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCB3aW4zMi9zbm1wc21fc2h1dGRvd24uaCwgCisgICAgICB3aW4zMi9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaDogQnVpbGRzIGFnYWluIHdpdGggVmlzdWFsIFN0dWRpbworCisgYWZ0ZXIgdGhlIGludHJvZHVjdGlvbiBvZiB0aGUgImZlYXR1cmUiIGZlYXR1cmUuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHdpbjMyL3NubXBzbV9pbml0Lmg6IFJlbW92ZWQgYSBtaXNsZWFkaW5nIGNvbW1lbnQuICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA0OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOiBDb3JyZWN0IHRoZSBjaGVjayBvZgorCisgd2V0aGVyIHVzbSBzZWN1cml0eSBpcyBlbmFibGVkLiAgUmVnZW5lcmF0ZSBjb25maWd1cmUuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMDIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBSZWdlbmVyYXRlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTAyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogICAqIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdAorICAgICAgIGFfYWNjZXNzLmM6IEFkZCBtaXNzaW5nIGRlcGVuZGVuY2llcyBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvc25tcHVzbS5jOiBJZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBmcm9tCisKKyBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDQ0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTAyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9jb250YWluZXIuYzogU3BsaXQgdGhlIGNvbnRhaW5lcl9jb21wYXJlX2Z1bmN0aW9ucyBmZWF0dXJlCisKKyBpbnRvIGNvbnRhaW5lcl9jb21wYXJlX21lbSwgY29udGFpbmVyX2NvbXBhcmVfbG9uZywKKyBjb250YWluZXJfY29tcGFyZV91bG9uZywgY29udGFpbmVyX2NvbXBhcmVfaW50MzIgYW5kCisgY29udGFpbmVyX2NvbXBhcmVfdWludDMyIFVuaWZ5IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGNvbXBhcmUKKyBmdW5jdGlvbnMgZnVydGhlci4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMy0wMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvY29udGFpbmVyLmM6IENoYW5nZSB0aGUgc3BlbGxpbmcgb2YgdGhlCisKKyBjb250YWluZXJfY29tcGFyZV9jc3RyaW5nIGZlYXR1cmUgdG8gY29udGFpbmVyX25jb21wYXJlX2NzdHJpbmcgYXMKKyB0aGF0IGlzIHRoZSBmdW5jdGlvbiB0aGF0IGlzIGd1YXJkZWQgYnkgdGhhdCBhdHRyaWJ1dGUuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDMtMDIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDogQWRkIHRoZSBtaXNzaW5nIHJlcGxhY2VtZW50CisKKyBtYWNybyBmb3Igc25tcF9pbml0X3N0YXRpc3RpY3MgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAzLTAyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6IHNubXBfaW5jcmVtZW50X3N0YXRpc3RpY19ieQorCisgdGFrZXMgdHdvIGFyZ3VtZW50cyBzbyBsZXQgdGhlIHJlcGxhY2VtZW50IG1hY3JvIHRha2UgdHdvIGFyZ3VtZW50cworIGFzIHdlbGwuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjcgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jOiBGaXggdHlwbyBpbgorCisgcjE5OTkwIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAzOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1jaGVjazogUmVtb3ZlIGxpbmVzIHN0YXJ0aW5nIHdpdGggI2RlZmluZQorCisgaW4gdGhlIG91dHB1dCBvZiB0aGUgcHJlcHJvY2Vzc29yIFdoZW4gZ2NjIC1FIGlzIGNhbGxlZCB3aXRoIC1nZ2RiMworIChvciAtZEQpIHRoZW4gYWxsIHRoZSBtYWNybyBkZWZpbml0aW9ucyBhcmUgcGFzc2VkIHRocm91Z2ggdGhlCisgcHJlcHJvY2Vzc29yIGFuZCB0aGF0IG1lc3NlcyB1cCBvdXIgcHJvY2Vzc2luZy4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAzOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIE1ha2VmaWxlLnJ1bGVzOiBQdXQgdGhlIGdlbmVyYXRlZCBmaWxlIGluIHRoZSBidWlsZCB0cmVlLCBub3QgdGhlCisKKyBzb3VyY2UgdHJlZS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAzNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYywgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCisgICAgICAgX2ludGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnQKKyAgICAgICBlcmZhY2UuYywgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyCisgICAgICAgZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYQorICAgICAgIGNlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgorICAgICAgIGxlX2ludGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKKyAgICAgICBmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmYKKyAgICAgICBhY2UuYywgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuCisgICAgICAgYywgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfY29tbW9uLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9zb2xhcmlzMi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS4KKyAgICAgICBjOiBtb3ZlZCBhIGJ1bmNoIG9mIGZlYXR1cmVzIGludG8gdGhlIGxpYm5ldHNubXBtaWJzIGZlYXR1cmUgc2V0LgorICAgICAgIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDM2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9pbmRleC5jLCAKKyAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3RyYXAuYywgCisgICAgICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAKKyAgICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCAKKyAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgCisgICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmMsIAorICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0cywgc25tcGxpYi9taWIuYzoKKworIGNsYXNzaWZpZWQgbGlibmV0c25tcGFnZW50IGZlYXR1cmVzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IHJldmVyc2UgdGhlIG9yZGVyIG9mIHRoZSBsaWJyYXJpZXMKKworIChzbm1wbGliIGZpcnN0KSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBvdXRwdXQgY2xlYW51cCBhbmQgYWRkZWQgYWdlbnQtbWlicworCisgYW5kIGxvZ2dpbmcgb3B0aW9ucyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBhZGQgYSBkZWZhdWx0IHNldCBvZiBhcmd1bWVudHMKKworIGNhbGN1bGF0ZSByZXN1bHRpbmcgc2l6ZXMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDMyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL2Rpcl91dGlscy5jOiBBZGRlZCBhIG1pc3NpbmcgOyBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAzMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IHByZWZpeCB0aGUgb3V0cHV0IGZpbGVzIHdpdGggYSBudW1iZXIKKworIHRvIGluZGljYXRlIG9yZGVyIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IHNhdmUgdGhlIHJlc3VsdHMgb2YgdGhlIHN5c3RlbQorCisgZXhlY3V0aW9ucyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBlbmFibGUgYnVpbGRpbmcgb2YgdGhlIHJlc3VsdGluZworCisgY29tYmluYXRpb25zIEFkZCBhIC1uIGZsYWcgZm9yIGRyeS1ydW5zIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAyOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBlbmFibGUgdGhlIC10IHRhZyBmb3IgbGltaXRpbmcgdHlwZXMKKyAgICAgIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDI3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogQWRkZWQgYXJndW1lbnQgcGFyc2luZyBhbmQgYXJndW1lbnRzCisKKyBmb3Igc2VsZWN0aW5nIGFuZCBsaXN0aW5nIHR5cGVzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAyNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IGdlbmVyYXRlIGNvbmZpZ3VyZSBzY3JpcHQgYXJndW1lbnRzCisKKyBmcm9tIHNwZWNzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAyNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IGFkZGVkIGEgYnVuY2ggb2YgbmV3IGZlYXR1cmUgb3B0aW9ucworCisgYW5kIGNsZWFuZWQgdXAgYSBiaXQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogYWRkZWQgYSBuZXcgKG5vdCB5ZXQgd29ya2luZykgc2NyaXB0CisKKyB0byB0ZXN0IHNpemluZyBvZiB2YXJpb3VzIGFyZ3VtZW50IHNldHMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzogU2ltcGxpZnkgdGhlIGNvZGUuIFVuaWZ5IHNvbWUKKworIGRlYnVnIGxvZ3MuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOiBSZWR1Y2UgdGhlIHNjb3BlIG9mIGEgZmV3CisKKyB2YXJpYWJsZXMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6IFJlbW92ZSBzb21lIHVudXNlZCBpbmNsdWRlcy4gCisgICAgICBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAyMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6IE1ha2UgaXQgcG9zc2libGUgdG8KKworIGluaXRpYWxpemUvdW5pbml0aWFsaXplIG1vZHVsZXMgd2l0aCA2NCBjaGFyYWN0ZXIgbmFtZXMgYW5kIG5vdAorIHN1ZmZlciB3aWxkIHdyaXRlcy4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6IENvZGUgcmVzdHJ1Y3R1cmluZyAtIHB1dCB0aGUKKworIG1hbmFnZWQgcm91dGluZXMgYmVmb3JlIHRoZSBtYW5hZ21lbnQgY29kZS4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmg6IAorCisgQ0hBTkdFUzogbGlibmV0c25tcG1pYnM6IE1ha2UgYWxsIGZ1bmN0aW9ucyBpbiB0aGUgZGxtb2QgbW9kdWxlIHRoYXQKKyBkb24ndCBoYXZlIHRvIGJlIHB1YmxpYyBzdGF0aWMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDE3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzogUmVuYW1lIGRlaW5pdF9kbG1vZCB0bworCisgc2h1dGRvd25fZGxtb2QgYXMgdGhhdCBpcyB3aGF0IGl0IHJlYWxseSBpcyBhYm91dC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNSAgTWlrZSBCYWVyIDxiYWVybUBzdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmM6IGFkZGluZyBtaW5pbWFsaXN0IGlmZGVmcworCisgdG8gbmV0LXNubXAtdmFjbSBtaWIgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDE1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6IHByb3Blcmx5IGhhbmRsZSB0d2luIGNoaWxkcmVuOworCisgYWxzbyBzb3J0IHRoZSBjaGlsZCBsaXN0IGFscGhhYmV0aWNhbGx5LiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOiBJIHN1cHBvc2UgbG9nZ2luZyBzaG91bGQgcHJvYmFibHkgZGVmYXVsdAorCisgdG8gYmVpbmcgYSB3YW50ZWQgb3B0aW9uIDotKSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczogb3JnLWxpbmsgdGhlIGZpbGVzIGluIHRoZQorCisgb3V0cHV0IGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIE1ha2VmaWxlLnJ1bGVzLCBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIAorICAgICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgCisgICAgICBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtY2hlY2ssIHNubXBsaWIvTWFrZWZpbGUuaW46IG1ha2UgdGhlCisKKyBmZWF0dXJlcy1jaGVjayBzY3JpcHQgdHJhY2sgdGhlIGZ1bGwgc291cmNlIHBhdGggZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6IGNoYW5nZSB0aGUgZnVuY3Rpb24gbmFtZXMgdG8KKworIG1hdGNoIHRoYXQgaXQncyBwcmludGluZyB0byBvcmctbW9kZSBhdCB0aGUgbW9tZW50LiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgc25tcGxpYi9maWxlX3V0aWxzLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvb2lkX3N0YXNoLmMsIAorICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3Rvb2xzLmM6IGxhc3QKKyAgICAgIG9mCisKKyB0aGUgZmVhdHVyZSBjbGFzc2lmaWNhdGlvbiBpbiBsaWJuZXRzbm1wIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvc2NhcGkuYzogbWFrZSB0aGUKKworIHVzbV9zdXBwb3J0IHV0aWxpdGllcyBzZWxmLWRlY2xhcmUgdGhlbXNlbHZlcyBhcyBjaGlsZHJlbiB0byBtYWtlCisgc3VyZSB0aGV5J3JlIHByb3Blcmx5IGluY2x1ZGVkIGR1cmluZyBkZXBlbmRlbmN5IG9yZGVyaW5nIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jaGVja192YXJiaW5kLmMsIAorICAgICAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9kYXRhX2xpc3QuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCisgICAgICAgc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMsIHNubXBsaWIvZmlsZV91dGlscy5jLCAKKyAgICAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9zbm1wdXNtLmM6IHN1cGVyc3RydWN0dXJhbGl6YXRpb25pemluZworCisgdGhlIGZlYXR1cmVzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgCisgICAgICBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvc3lzdGVtLmMsIAorICAgICAgc25tcGxpYi90ZXh0X3V0aWxzLmMsIHNubXBsaWIvdG9vbHMuYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi91Y2RfY29tcGF0LmM6CisKKyBzaWduaWZpY2FudCBwYXJlbnQvY2hpbGQgZmVhdHVyZSBjbGFzc2lmaWNhdGlvbiBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdXNtLmM6IGNsYXNzaWZ5IGEgZmV3IGNvbXBvbmVudHMKKworIGludG8gYSB0b3AtbGV2ZWwgbGlibmV0c25tcCBjb21wb25lbnQgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDA1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvc2NhcGkuYywgCisgICAgICBzbm1wbGliL3NubXB1c20uYzogc3RydWN0dXJpemUgdGhlIHVzbSBmZWF0dXJlcyBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMsIAorICAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMsIHNubXBsaWIvY29udGFpbmVyX251bGwuYywgCisgICAgICBzbm1wbGliL2Rpcl91dGlscy5jOiBzdHJ1Y3R1cmUgdGhlIGNvbnRhaW5lciBmZWF0dXJlcyBpbnRvIGEKKworIGhpZXJhcmNoeSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6IGdyb3VwIHRoZSBsb2dnaW5nIGhhbmRsZXJzIHVuZGVyIGEgcGFyZW50CisKKyBmZWF0dXJlIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczogZml4IHRoZSBleHBlY3QgYXJndW1lbnQgY291bnQKKyAgICAgIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDAxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6IGZpeCB0aGUgbmFtZSBvZiB0aGUgZXhwZWN0ZWQKKworIGlucHV0IGZpbGUgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDAwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6IGFyZ3VtZW50IHBhcnNpbmcgYW5kIHVzYWdlKCkKKworIG91dHB1dCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5OTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jLCAKKyAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmMsIHNubXBsaWIvb2lkX3N0YXNoLmM6IC0KKyAgICAgIGFkZGVkIHR3byBvaWRfc3Rhc2ggZnVuY3Rpb25zIGFzIGluZGl2aWR1YWwgZmVhdHVyZXMgLSBjbGVhbmVkIHVwCisgICAgICBzb21lIHdhcm5pbmdzIGluIHRoZSB0YWJsZV9pdGVyYXRvciBjb2RlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTk4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBkaXN0L21ha2VyZWxlYXNlLnhtbDogRml4IHRoZSBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBTVk4gdGFnIGxpbmUKKyAgICAgIChIYXZpbmcgYnJvdWdodCB0aGUgc3RydWN0dXJlIG9mIHRoZSA1LjUueCBicmFuY2ggIGludG8gbGluZSB3aXRoCisgICAgICB0aGUgb3RoZXIgYnJhbmNoZXMsIHRoZSBwcmV2aW91cyAgY29tbWFuZCBpcyBub3cgd3JvbmcgZm9yICphbGwqCisgICAgICBicmFuY2hlcywgcmF0aGVyICB0aGFuIGp1c3QgbW9zdCBvZiB0aGVtISkgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBkaXN0L21ha2VyZWxlYXNlLnhtbDogRml4IHRoZSBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBTVk4gdGFnIGxpbmUKKyAgICAgIChIYXZpbmcgYnJvdWdodCB0aGUgc3RydWN0dXJlIG9mIHRoZSA1LjUueCBicmFuY2ggIGludG8gbGluZSB3aXRoCisgICAgICB0aGUgb3RoZXIgYnJhbmNoZXMsIHRoZSBwcmV2aW91cyAgY29tbWFuZCBpcyBub3cgd3JvbmcgZm9yICphbGwqCisgICAgICBicmFuY2hlcywgcmF0aGVyICB0aGFuIGp1c3QgbW9zdCBvZiB0aGVtISkgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5OTk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBkaXN0L21ha2VyZWxlYXNlLnhtbDogRml4IHRoZSBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBTVk4gdGFnIGxpbmUKKyAgICAgIChIYXZpbmcgYnJvdWdodCB0aGUgc3RydWN0dXJlIG9mIHRoZSA1LjUueCBicmFuY2ggIGludG8gbGluZSB3aXRoCisgICAgICB0aGUgb3RoZXIgYnJhbmNoZXMsIHRoZSBwcmV2aW91cyAgY29tbWFuZCBpcyBub3cgd3JvbmcgZm9yICphbGwqCisgICAgICBicmFuY2hlcywgcmF0aGVyICB0aGFuIGp1c3QgbW9zdCBvZiB0aGVtISkgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBkaXN0L21ha2VyZWxlYXNlLnhtbDogRml4IHRoZSBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBTVk4gdGFnIGxpbmUKKyAgICAgIChIYXZpbmcgYnJvdWdodCB0aGUgc3RydWN0dXJlIG9mIHRoZSA1LjUueCBicmFuY2ggIGludG8gbGluZSB3aXRoCisgICAgICB0aGUgb3RoZXIgYnJhbmNoZXMsIHRoZSBwcmV2aW91cyAgY29tbWFuZCBpcyBub3cgd3JvbmcgZm9yICphbGwqCisgICAgICBicmFuY2hlcywgcmF0aGVyICB0aGFuIGp1c3QgbW9zdCBvZiB0aGVtISkgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5OTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgCisgICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgCisgICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsIAorICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsIAorICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgCisgICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAorICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIAorICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIAorICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIAorICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgCisgICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIAorICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgCisgICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIAorICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIAorICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIAorICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgCisgICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgCisgICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsIAorICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsCisgICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKKyAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzogZG9jdW1lbnRhdGlvbgorCisgdXBkYXRlIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5OTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCisgICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwKKyAgICAgICBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKKyAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIAorICAgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIAorICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06IFZlcnNpb24gbnVtYmVyIHVwZGF0ZQorICAgICAgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTk0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTkzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAorICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBwZXJsL0FTTi9BU04ucG0sIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sCisgICAgICAgcGVybC9PSUQvT0lELnBtLCBwZXJsL1NOTVAvU05NUC5wbSwgCisgICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCAKKyAgICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAKKyAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOiBWZXJzaW9uIG51bWJlciB1cGRhdGUKKyAgICAgIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk5MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NubXB2My5jOiBBdm9pZCBhIHBvc3NpYmxlIGNyYXNoIGlmIHRoZSBlbmdpbmVJRCBpcyBub3QKKworIGF2YWlsYWJsZSBvciBzZXQuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5OTkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvc25tcHYzLmM6IEF2b2lkIGEgcG9zc2libGUgY3Jhc2ggaWYgdGhlIGVuZ2luZUlEIGlzIG5vdAorCisgYXZhaWxhYmxlIG9yIHNldC4gIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5OTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wdjMuYzogQXZvaWQgYSBwb3NzaWJsZSBjcmFzaCBpZiB0aGUgZW5naW5lSUQgaXMgbm90CisKKyBhdmFpbGFibGUgb3Igc2V0LiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NubXB2My5jOiBBdm9pZCBhIHBvc3NpYmxlIGNyYXNoIGlmIHRoZSBlbmdpbmVJRCBpcyBub3QKKworIGF2YWlsYWJsZSBvciBzZXQuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5OTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wdjMuYzogQXZvaWQgYSBwb3NzaWJsZSBjcmFzaCBpZiB0aGUgZW5naW5lSUQgaXMgbm90CisKKyBhdmFpbGFibGUgb3Igc2V0LiAgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNSAgTWlrZSBCYWVyIDxiYWVybUBzdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5oOiBhZGRpbmcgaWZkZWYgY29kZQorCisgZm9yIG1pbmltYWxpc3Qgc3VwcG9ydCBvZiBkaWZmbWFuIG1pYiBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5OTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjQgIE1pa2UgQmFlciA8YmFlcm1Ac3VzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oOgorCisgQWRkaW5nIG1pbmltYWxpc3QgaWZkZWZzIHRvIGhvc3QgcmVzb3VyY2UgbWliIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk4OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBzbm1wbGliL2RhdGFfbGlzdC5jOiBtYXJrIHRoZQorCisgZGF0YV9saXN0IGZ1bmN0aW9uIHRoYXQncyBvbmx5IHVzZWQgaW4gc3RhY2hfY2FjaGluZyBhcyBhIGZlYXR1cmUgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTg4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6IHdob29wcy4gIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTg3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOiBtb3JlIG1pc3Npbmcgc3Rhc2ggcmVmZXJlbmNlcworICAgICAgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5ODYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzogaWZkZWZlZC9mZWF0dXJlZCBvdXQgYSBtaXNzaW5nCisKKyBzdGFzaF9jYWNoZSBzZWN0aW9uIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk4NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOiBtYWtlIHRoZSBwcmVmaXhfaW5mbyBtb3JlCisKKyBoaWVyYXJjaGljYWwgYW5kIHN1Yi1mZWF0dXJlIHRoZSB1bnVzZWQgb25lIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk4NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlOiBkbyBpbmNsdWRlIHRoZSBwZXJsL3B5dGhvbiBjb2RlCisKKyB3aGVuIHNlYXJjaGluZyBmb3IgZmlsZXMgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTgzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6IG1ha2UgdGhlIHNlbWktdXNlZCB0YWJsZV90ZGF0YQorCisgZnVuY3Rpb25zIGNoaWxkcmVuIG9mIHRhYmxlX3RkYXRhX2FsbCBpbnN0ZWFkIG9mIGp1c3QgdGFibGVfdGRhdGEgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTIzICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOiBDb3JyZWN0IHR5cG8gZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5ODEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjMgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3BhcnNlLmM6IENvcnJlY3QgdHlwbyBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvc25tcF92YXJzLmM6IHByb3BlciBpbmNsdWRlIG9mIHByb3RvdHlwZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsIAorICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfdHJhbnNwb3J0cywgCisgICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZTogY29tcGF0IHNvbWUgZmVhdHVyZSBoZWFkZXIKKworIGNoaWNrZW4gYW5kIGVnZyBwcm9ibGVtcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L3NubXBfdmFycy5jOiBJbmNsdWRlIHJlcXVpcmVkIHByb3RvdHlwZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvc25tcHVzbS5jOiB1bnNpZ25lZCBqdWdnbGluZyB0byByZW1vdmUgd2FybmluZ3MgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICAgKiAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jLAorICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuaCwKKyAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdAorICAgICAgIGFfYWNjZXNzLmMsCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYzoKKworIHVuc2lnbmVkIGp1Z2dsaW5nIHRvIHJlbW92ZSB3YXJuaW5ncyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgICogCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYywKKyAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmgsCisgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXQKKyAgICAgICBhX2FjY2Vzcy5jLAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmM6CisKKyB1bnNpZ25lZCBqdWdnbGluZyB0byByZW1vdmUgd2FybmluZ3MgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIuaDogRW5hYmxlIChwcm9iYWJseSBmb3Jnb3R0ZW4pCisKKyBpcEFkZHJlc3NQcmVmaXhUYWJsZSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIuaDogRW5hYmxlIChwcm9iYWJseSBmb3Jnb3R0ZW4pCisKKyBpcEFkZHJlc3NQcmVmaXhUYWJsZSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtY2hlY2ssIAorICAgICAgbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzLAorICAgICAgbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLXJlbW92ZSwgCisgICAgICBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGUsIAorICAgICAgbG9jYWwvbWluaW1hbGlzdC9yZW1vdmVpZmRlZmNvZGUucGw6IGFkZGVkIG90aGVyIG1pc3NpbmcgJ25ldycKKyAgICAgIGZpbGVzCisKKyBub3QgaW5jbHVkZWQgaW4gdGhlIG1pbmltYWxpc3QgcGF0Y2ggZmlsZSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fZnJlZWJzZDQuYywgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbmV0YnNkLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX29wZW5ic2QuYywgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9mcmVlYnNkNC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X25ldGJzZC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X29wZW5ic2QuYzogTG9hZGluZworCisgSVB2NiBkYXRhIGlzIGEgbm8tbm8gd2hlbiBJUHY2IG5vdCBlbmFibGVkIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fZnJlZWJzZDQuYywgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbmV0YnNkLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX29wZW5ic2QuYywgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9mcmVlYnNkNC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X25ldGJzZC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X29wZW5ic2QuYzogTG9hZGluZworCisgSVB2NiBkYXRhIGlzIGEgbm8tbm8gd2hlbiBJUHY2IG5vdCBlbmFibGVkIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGJ1ZyAzMTE4NjMxOiBzbm1wdGFibGUgc2VnZmF1bHRzIGlmIGluZGV4CisKKyBjb250YWlucyA6IGNoYXJhY3RlciBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDE5OTcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhcHBzL3NubXB0YWJsZS5jOiBGaXggYnVnIDMxMTg2MzE6IHNubXB0YWJsZSBzZWdmYXVsdHMgaWYgaW5kZXgKKworIGNvbnRhaW5zIDogY2hhcmFjdGVyIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFwcHMvc25tcHRhYmxlLmM6IEZpeCBidWcgMzExODYzMTogc25tcHRhYmxlIHNlZ2ZhdWx0cyBpZiBpbmRleAorCisgY29udGFpbnMgOiBjaGFyYWN0ZXIgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGJ1ZyAzMTE4NjMxOiBzbm1wdGFibGUgc2VnZmF1bHRzIGlmIGluZGV4CisKKyBjb250YWlucyA6IGNoYXJhY3RlciBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTcxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhcHBzL3NubXB0YWJsZS5jOiBGaXggYnVnIDMxMTg2MzE6IHNubXB0YWJsZSBzZWdmYXVsdHMgaWYgaW5kZXgKKworIGNvbnRhaW5zIDogY2hhcmFjdGVyIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDguaDogRnJlZUJTRCA4IHN1cHBvcnQgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDE5OTcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkOC5oOiBGcmVlQlNEIDggc3VwcG9ydCBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q4Lmg6IEZyZWVCU0QgOCBzdXBwb3J0IGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDguaDogRnJlZUJTRCA4IHN1cHBvcnQgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaDogYWRkZWQgbWlzc2luZworCisgbmV0LXNubXAtZmVhdHVyZXMuaCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXMsIE1ha2VmaWxlLnRvcCwgYWdlbnQvTWFrZWZpbGUuaW4sIAorICAgICAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9pbmRleC5jLCAKKyAgICAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIAorICAgICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIAorICAgICAgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAKKyAgICAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMsIAorICAgICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgCisgICAgICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCAKKyAgICAgIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsIAorICAgICAgYWdlbnQvaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAKKyAgICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIAorICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCAKKyAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgCisgICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmMsIAorICAgICAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgCisgICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFcnJvclRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbkNvbmYuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0VGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhYworICAgICAgIGUuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYywgCisgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYywgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9raW5mby5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbmxpc3QuYywgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BlcmZzdGF0LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYywgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X2Rhcndpbi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYywgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG0uYywgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCisgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKKyAgICAgICAuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCisgICAgICAgX2ludGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnQKKyAgICAgICBlcmZhY2UuYywgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfCisgICAgICAgYWNjZXNzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcgorICAgICAgIGZhY2UuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0CisgICAgICAgYV9hY2Nlc3MuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50CisgICAgICAgZXJmYWNlLmMsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAorICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0CisgICAgICAgYV9hY2Nlc3MuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50CisgICAgICAgZXJmYWNlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmEKKyAgICAgICBjZS5jLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmEKKyAgICAgICBjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmEKKyAgICAgICBjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWIKKyAgICAgICBsZV9pbnRlcmZhY2UuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmMKKyAgICAgICAsIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQorICAgICAgIGZ5RmlsdGVyVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCisgICAgICAgZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKKyAgICAgICBmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKKyAgICAgICBleVRhYmxlX2ludGVyZmFjZS5jLCBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwgCisgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgCisgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9zb2xhcmlzMi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmYKKyAgICAgICBhY2UuYywgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuCisgICAgICAgYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywgCisgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU04KKyAgICAgICBUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS4KKyAgICAgICBjLCBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuYywgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfY29tbW9uLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9zb2xhcmlzMi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS4KKyAgICAgICBjLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCisgICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywKKyAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsICBhZ2VudC9zbm1wZC5jLAorICAgICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9hZ2VudHh0cmFwLmMsIAorICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIAorICAgICAgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgCisgICAgICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLCAKKyAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX3NxbC5jLCBjb25maWd1cmUsIAorICAgICAgY29uZmlndXJlLmFjLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgCisgICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsIAorICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfc2VjdXJpdHlfbW9kdWxlcywgCisgICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc190cmFuc3BvcnRzLAorICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyLCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uLCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgcGVybC9PSUQvT0lELnhzLCAKKyAgICAgIHBlcmwvU05NUC9TTk1QLnhzLCBwZXJsL2FnZW50L2FnZW50LnhzLCBzbm1wbGliL01ha2VmaWxlLmluLCAKKyAgICAgIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jaGVja192YXJiaW5kLmMsIAorICAgICAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYywgCisgICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYywgc25tcGxpYi9jb250YWluZXJfbnVsbC5jLCAKKyAgICAgIHNubXBsaWIvZGF0YV9saXN0LmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL2Rpcl91dGlscy5jLAorICAgICAgIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLCBzbm1wbGliL2ZpbGVfdXRpbHMuYywKKyAgICAgIHNubXBsaWIvaW50NjQuYywgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLAorICAgICAgc25tcGxpYi9taWIuYywgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcGFyc2UuYywKKyAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wLXRjLmMsCisgICAgICBzbm1wbGliL3NubXBfYXBpLmMsICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9lbnVtLmMsCisgICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCAgc25tcGxpYi9zbm1wX29wZW5zc2wuYywKKyAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsICBzbm1wbGliL3NubXBfc2VjbW9kLmMsCisgICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvc25tcGtzbS5jLCAgc25tcGxpYi9zbm1wdHNtLmMsCisgICAgICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywgIHNubXBsaWIvc3lzdGVtLmMsCisgICAgICBzbm1wbGliL3RleHRfdXRpbHMuYywgc25tcGxpYi90b29scy5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi91Y2RfY29tcGF0LmMsIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjNjb25maWcsIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdiYXNlLCAKKyAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdmFjbWNvbmZpZywgCisgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fc2ltcGxlLCAKKyAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfc2ltcGxlLCAKKyAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX3NpbXBsZSwgCisgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19zaW1wbGUsIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9zaW1wbGUsIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgCisgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAKKyAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfc2ltcGxlLCAKKyAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNGFnZW50eGFnZW50eHRyYXBfc2ltcGxlOiBORVdTOgorCisgcGFja2FnaW5nOiBFbmFibGUgbWljcm8tYW5kLW1hY3JvLWZlYXR1cmUgbWFuYWdlbWVudCB3aXRoaW4KKyBOZXQtU05NUDsgdGhpcyBhZGRzIGEgbnVtYmVyIG9mIG5ldyBmbGFncyB0byBjb25maWd1cmUKKyAoLS1lbmFibGUtbWluaW1hbGlzdCBhbmQgLS1lbmFibGUtcmVhZC1vbmx5KS4gIFRoZXNlIGNoYW5nZXMgYXJlCisgZGVzaWduZWQgdG8gcmVtb3ZlIG11Y2ggb2YgdGhlIGlubGluZSBjb2RlIHRoYXQgaXNuJ3QgYWx3YXlzCisgbmVjZXNzYXJ5IG9yIGRlc2lyZWQuICBTY3JpcHRzIGV4aXN0IChhbmQgd2lsbCBiZSBpbXByb3ZlZCkgdG8gc3RpcAorIG91dCB1bnVzZWQgY29tcG9uZW50cyBmcm9tIHRoZSBjb2RlIGVudGlyZWx5IHRvIGVuYWJsZSBhIHNob3J0ZXIKKyByZXZpZXcgcHJvY2VzcyBmb3IgdXBncmFkaW5nIHRvIG5ldyByZWxlYXNlcy4gIFRoaXMgd29yayB3YXMgZG9uZSBieQorIFdlcyBIYXJkYWtlciBhbmQgTWljaGFlbCBCYWVyIGZyb20gU1BBUlRBLCBJbmMuIGJ1dCBpcyBiZWluZyBjaGVja2VkCisgaW4gYXMgYSBsYXJnZSBwYXRjaCBzaW5jZSBjb252ZXJ0aW5nIHRoZSBtaWNybyBwYXRjaGVzIGZyb20gZ2l0IHRvCisgc3ZuIHR1cmVuZCBvdXQgdG8gYmUgaW1wb3NzaWJsZSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIEZBUTogdXNlIHRoZSB3aWtpIFVSTCBpbnN0ZWFkIG9mIHRoZSB0dXRvcmlhbC01IFVSTCBmb3IgdGhlCisKKyBzbm1wdHJhcCB0dXRvcmlhbCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzogUmV2ZXJ0IGEgYm9ndXMgY2hhbmdlIHRoYXQgY3JlcHQKKworIGludG8gdGhlIGNvZGUuICBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTY2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBBR0VOVC50eHQsIENIQU5HRVMsIENPUFlJTkcsIENoYW5nZUxvZywgQ29kaW5nU3R5bGUsIAorICAgICAgRVhBTVBMRS5jb25mLmRlZiwgRkFRLCBJTlNUQUxMLCBNYWtlZmlsZS5hbSwgTWFrZWZpbGUuaW4sIAorICAgICAgTWFrZWZpbGUucnVsZXMsIE1ha2VmaWxlLnRvcCwgTkVXUywgUE9SVElORywgUkVBRE1FLCAKKyAgICAgIFJFQURNRS5QYW5hc29uaWNfQU0zWC50eHQsIFJFQURNRS5hZ2VudC1taWJzLCBSRUFETUUuYWdlbnR4LCAKKyAgICAgIFJFQURNRS5haXgsIFJFQURNRS5ocHV4MTEsIFJFQURNRS5pcml4LCBSRUFETUUua3JiNSwgUkVBRE1FLm9zWCwgCisgICAgICBSRUFETUUuc25tcHYzLCBSRUFETUUuc29sYXJpcywgUkVBRE1FLnNxbCwgUkVBRE1FLnRocmVhZCwgCisgICAgICBSRUFETUUudHJ1NjQsIFJFQURNRS53aW4zMiwgVE9ETywgYWNjb25maWcuaCwgYWNsb2NhbC5tNCwgCisgICAgICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIAorICAgICAgYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgCisgICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmMsIAorICAgICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L2F1dG9ubGlzdC5oLCAKKyAgICAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCAKKyAgICAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsIAorICAgICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIAorICAgICAgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgCisgICAgICBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYywgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLCAKKyAgICAgIGFnZW50L2hlbHBlcnMvbnVsbC5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgCisgICAgICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCAKKyAgICAgIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsIAorICAgICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAKKyAgICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIAorICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCAKKyAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgCisgICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2dlbmVyaWMuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAKKyAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgCisgICAgICBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oLCAKKyAgICAgIGFnZW50L20ybS5oLCBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL1JFQURNRSwgCisgICAgICBhZ2VudC9taWJncm91cC9SRUFETUUuc211eCwgYWdlbnQvbWliZ3JvdXAvUm1vbi5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vUkVBRE1FLCBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmgsIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsX2FwaS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLAorICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmgsICBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsCisgICAgICBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmgsICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuYywKKyAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5oLCAgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dfYXBpLmgsCisgICAgICBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYywgIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5oLAorICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi90ZXN0X2FsYXJtLnNoLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vdGVzdF9oaXN0LnNoLCBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuaCwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuaCwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuaCwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oLCBhZ2VudC9taWJncm91cC9hZ2VudHguaCwgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uaCwgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKKyAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmgsIGFnZW50L21pYmdyb3VwL2Rpc21hbi5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC1taWIuaCwgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNDb25mLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNDb25mLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlU2NhbGFycy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVTY2FsYXJzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFcnJvclRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXJyb3JUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb24uYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbkNvbmYuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uQ29uZi5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25UYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdENvbmYuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0VGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFNjYWxhcnMuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBTY2FsYXJzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZVRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwX2VudW0uaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi1taWIuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFcnJvclRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBPYmplY3RUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBWYWx1ZVRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAtbWliLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cFJlc3VsdHNUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBSZXN1bHRzVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vb2xkLWV2ZW50LW1pYi5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nLW1pYi5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS1taWIuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgCisgICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjCisgICAgICAgZXNzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjYworICAgICAgIGVzcy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9nZXQKKyAgICAgICAuYywgCisgICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfZ2V0CisgICAgICAgLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX3NldAorICAgICAgIC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9zZXQKKyAgICAgICAuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2VudW1zLmgsCisgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWMKKyAgICAgICBlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhYworICAgICAgIGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX29pZHMuaCwKKyAgICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2lvY3RsX2ltcF9jb21tb24uaCwgCisgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy5oLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy9NYWtlZmlsZS5kbG1vZCwKKyAgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuYywgCisgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnNfbG9jYWwuYywgCisgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zuc19sb2NhbC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NvbHVtbnMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9lbnVtcy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYywgCisgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY21kcywgCisgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmYsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dhdGNoZWQuYywgCisgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93YXRjaGVkLmgsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rZXJuZGF0YS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa2VybmRhdGEuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tpbmZvLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9raW5mby5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa3N0YXQuYywgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tzdGF0LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguaCwgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X21hY2guYywgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X21hY2guaCwgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X25saXN0LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9ubGlzdC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbnVsbC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbnVsbC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGNwLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wY3AuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BlcmZzdGF0LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcHN0YXQuYywgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BzdGF0LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYywgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzaW5mby5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzaW5mby5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfZ2V0ZnNzdGF0cy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRjdGwuYywgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tbnR0eXBlcy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW91bnRzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uaCwgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2FpeC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZGFyd2luLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9keW5peC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZnJlZWJzZC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfaHB1eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfaXJpeC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYywgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9uZXRic2QuYywgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X251bGwuYywgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3NvbGFyaXMuYywgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3dpbi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2R1bW15X3NlbnNvcnMuYywgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2R1bW15X3NlbnNvcnMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2h3X3NlbnNvcnMuYywgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2h3X3NlbnNvcnMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2tzdGF0X3NlbnNvcnMuYywgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2tzdGF0X3NlbnNvcnMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192Mi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YyLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjMuYywgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvcGljbGRfc2Vuc29ycy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvcGljbGRfc2Vuc29ycy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfZGFyd2luLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfbnVsbC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYywgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG0uYywgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fY3lnd2luLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9kYXJ3aW4uYywgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2tpbmZvLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9rdm1fcHJvYy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fbmxpc3QuYywgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX251bGwuYywgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19wc2luZm8uYywgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYywgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2NpbmZvLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcnBzaW5mby5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHN0YXQuYywgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuaCwgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYywKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmgsCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmgsCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5oLAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCisgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oLAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9zdG9yYWdlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5oLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGVmcy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfaW9jdGwuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9pb2N0bC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCisgICAgICAgLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQorICAgICAgIC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKKyAgICAgICBfY29uc3RhbnRzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQorICAgICAgIF9kYXRhX2FjY2Vzcy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKKyAgICAgICBfZGF0YV9hY2Nlc3MuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCisgICAgICAgX2ludGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKKyAgICAgICBfaW50ZXJmYWNlLmgsIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKKyAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmgsCisgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9jb24KKyAgICAgICBzdGFudHMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0CisgICAgICAgYV9hY2Nlc3MuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0CisgICAgICAgYV9hY2Nlc3MuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50CisgICAgICAgZXJmYWNlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludAorICAgICAgIGVyZmFjZS5oLCBhZ2VudC9taWJncm91cC9pcC1taWIuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXIuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9jb21tb24uYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9jb21tb24uYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2NvbW1vbi5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19zb2xhcmlzMi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnN0CisgICAgICAgYW50cy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV8KKyAgICAgICBhY2Nlc3MuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfCisgICAgICAgYWNjZXNzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcgorICAgICAgIGZhY2UuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyCisgICAgICAgZmFjZS5oLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYywKKyAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmgsCisgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9jb24KKyAgICAgICBzdGFudHMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0CisgICAgICAgYV9hY2Nlc3MuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0CisgICAgICAgYV9hY2Nlc3MuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50CisgICAgICAgZXJmYWNlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludAorICAgICAgIGVyZmFjZS5oLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCisgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oLAorICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlLmMsCisgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5oLAorICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0CisgICAgICAgYV9hY2Nlc3MuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0CisgICAgICAgYV9hY2Nlc3MuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0CisgICAgICAgYV9nZXQuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0CisgICAgICAgYV9nZXQuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZW51CisgICAgICAgbXMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50CisgICAgICAgZXJmYWNlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludAorICAgICAgIGVyZmFjZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9vaWQKKyAgICAgICBzLmgsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAorICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaCwKKyAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZW51bXMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9vaWRzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9jb25zdGFuCisgICAgICAgdHMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjCisgICAgICAgY2Vzcy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWMKKyAgICAgICBjZXNzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYQorICAgICAgIGNlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYQorICAgICAgIGNlLmgsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2NvbnN0YW4KKyAgICAgICB0cy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWMKKyAgICAgICBjZXNzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hYworICAgICAgIGNlc3MuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhCisgICAgICAgY2UuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhCisgICAgICAgY2UuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VuCisgICAgICAgdC5jLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2NvbnN0YW4KKyAgICAgICB0cy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2RhdGFfYWMKKyAgICAgICBjZXNzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hYworICAgICAgIGNlc3MuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhCisgICAgICAgY2UuYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhCisgICAgICAgY2UuaCwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgorICAgICAgIGxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgorICAgICAgIGxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgorICAgICAgIGxlX2RhdGFfYWNjZXNzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgorICAgICAgIGxlX2RhdGFfYWNjZXNzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgorICAgICAgIGxlX2VudW1zLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgorICAgICAgIGxlX2ludGVyZmFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWIKKyAgICAgICBsZV9pbnRlcmZhY2UuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFiCisgICAgICAgbGVfb2lkcy5oLCBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL1JFQURNRSwgCisgICAgICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS5oLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmgsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lmVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZV9hY2Nlc3MuYywgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGVfY2hlY2tmbnMuYywgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2NoZWNrZm5zLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZV9jb2x1bW5zLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZV9lbnVtcy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9uZXRic2QuYywgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbmV0YnNkLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NldFNlcmlhbE5vLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3VwZGF0ZXMuYywgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS91cGRhdGVzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCwgIGFnZW50L21pYmdyb3VwL21pYmRlZnMuaCwKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0cy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYywgCisgICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MKKyAgICAgICAuYywgCisgICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzCisgICAgICAgLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2dldC5jLAorICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfZ2V0LmgsCisgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9zZXQuYywKKyAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX3NldC5oLAorICAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZW51bXMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jCisgICAgICAgLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmgKKyAgICAgICAsIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfb2lkcy5oLAorICAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9pb2N0bF9pbXBfY29tbW9uLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuYywgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2NvbW1vbi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2NvbW1vbi5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2ZyZWVic2QuYywgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19mcmVlYnNkLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5jLCBhZ2VudC9taWJncm91cC9zbXV4LmgsCisgICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9zbXV4X2dhdGVkLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKKyAgICAgICBmeUZpbHRlclRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQorICAgICAgIGZ5RmlsdGVyVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCisgICAgICAgZnlGaWx0ZXJUYWJsZV9jb25zdGFudHMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCisgICAgICAgZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKKyAgICAgICBmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQorICAgICAgIGZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQorICAgICAgIGZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMvdXNtREhQYXJhbWV0CisgICAgICAgZXJzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzL3VzbURIUGFyYW1ldAorICAgICAgIGVycy5oLAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCisgICAgICAgZXlUYWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKKyAgICAgICBleVRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySworICAgICAgIGV5VGFibGVfZGF0YV9hY2Nlc3MuYywgCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCisgICAgICAgZXlUYWJsZV9kYXRhX2FjY2Vzcy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKKyAgICAgICBleVRhYmxlX2RhdGFfZ2V0LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySworICAgICAgIGV5VGFibGVfZGF0YV9nZXQuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCisgICAgICAgZXlUYWJsZV9kYXRhX3NldC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKKyAgICAgICBleVRhYmxlX2RhdGFfc2V0LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySworICAgICAgIGV5VGFibGVfZG94eWdlbi5jb25mLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKKyAgICAgICBleVRhYmxlX2VudW1zLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySworICAgICAgIGV5VGFibGVfaW50ZXJmYWNlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySworICAgICAgIGV5VGFibGVfaW50ZXJmYWNlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySworICAgICAgIGV5VGFibGVfb2lkcy5oLCBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbUNvbmYuYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbUNvbmYuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYywgCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmgsIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwgCisgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywgCisgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuYywgCisgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIuaCwgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL01ha2VmaWxlLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYywgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fcHJpdmF0ZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9zb2xhcmlzMi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ublRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfY29uc3RhCisgICAgICAgbnRzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYQorICAgICAgIGNjZXNzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYQorICAgICAgIGNjZXNzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZgorICAgICAgIGFjZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmYKKyAgICAgICBhY2UuaCwgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2NvbnN0YW50cy4KKyAgICAgICBoLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXMKKyAgICAgICBzLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2NlcworICAgICAgIHMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuCisgICAgICAgYywgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuCisgICAgICAgaCwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuaCwgCisgICAgICBhZ2VudC9taWJncm91cC90dW5uZWwuaCwgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmgsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCisgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguaCwgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbXNlbnNvcnNNaWIuYywgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbXNlbnNvcnNNaWIuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaCwgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZGFyd2luNy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9kYXJ3aW43LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2hwdXguYywgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfaHB1eC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2FpeDQuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZGFyd2luNy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9kYXJ3aW43LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2hwdXguYywgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfaHB1eC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC91ZHAtbWliLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9jb21tb24uYywgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X3ByaXZhdGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9zb2xhcmlzMi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9jb25zdGFudHMuCisgICAgICAgaCwgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2VzCisgICAgICAgcy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXMKKyAgICAgICBzLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLgorICAgICAgIGMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLgorICAgICAgIGgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvTUlCX1NUQVRTX0NBQ0hFX1RJTUVPVVQuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywgCisgICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgCisgICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL3NubXBfZ2V0X3N0YXRpc3RpYy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9zbm1wX2dldF9zdGF0aXN0aWMuaCwgCisgICAgICBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgCisgICAgICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuaCwgYWdlbnQvb2JqZWN0X21vbml0b3IuYywgCisgICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfcGVybC5jLCBhZ2VudC9zbm1wX3BlcmwuaCwgCisgICAgICBhZ2VudC9zbm1wX3BlcmwucGwsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLCAKKyAgICAgIGFnZW50L3NubXBkLmgsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmluLCAKKyAgICAgIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXBfcGVybF90cmFwZC5wbCwgCisgICAgICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsIAorICAgICAgYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgCisgICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgCisgICAgICBhcHBzL3NubXBuZXRzdGF0L2Zmcy5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIAorICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgCisgICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmgsIAorICAgICAgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgCisgICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmgsIAorICAgICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLCAKKyAgICAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywgCisgICAgICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmMsIGFwcHMvc25tcHRyYXBkX2F1dGguaCwgCisgICAgICBhcHBzL3NubXB0cmFwZF9kcy5oLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCAKKyAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmgsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCAKKyAgICAgIGFwcHMvc25tcHRyYXBkX2xvZy5oLCBhcHBzL3NubXB0cmFwZF9zcWwuYywgYXBwcy9zbm1wdXNtLmMsIAorICAgICAgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc3NodG9zbm1wLmMsIGNvbmZpZy5ndWVzcywgCisgICAgICBjb25maWcuc3ViLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgCisgICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyLCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMywgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0LCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLAorICAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXMsIAorICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfbWFudWFsLCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BhdGhzLCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uLCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3R5cGVzLCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCBkaXN0L01ha2VmaWxlLCAKKyAgICAgIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHMsIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlMsIAorICAgICAgZGlzdC9hdXRvY29uZi12ZXJzaW9uLCBkaXN0L2NoYW5nZWxvZ2ZpeCwgZGlzdC9jaGVjay1hcGktY2hhbmdlLCAKKyAgICAgIGRpc3QvY3Zzc2hvdywgZGlzdC9jdnN1cCwgZGlzdC9leHRyYWN0bmV3cywgZGlzdC9maW5kLXJlcXVpcmVzLCAKKyAgICAgIGRpc3QvbWFrZXJlbGVhc2UueG1sLCBkaXN0L25ldC1zbm1wLXNvbGFyaXMtYnVpbGQvREVWRU5WLCAKKyAgICAgIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC9SRUFETUUsIAorICAgICAgZGlzdC9uZXQtc25tcC1zb2xhcmlzLWJ1aWxkL2J1aWxkcGFja2FnZS1zb2xhcmlzLCAKKyAgICAgIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC9lbGZkZXBlbmQuc2gsIGRpc3QvbmV0LXNubXAuc3BlYywgCisgICAgICBkaXN0L25zYi1jb25maWcsIGRpc3QvbnNiLWZ1bmN0aW9ucywgZGlzdC9uc2ItbmlnaHRseSwgCisgICAgICBkaXN0L25zYi1wYWNrYWdlLCBkaXN0L25zYi1wbGF0Zm9ybSwgZGlzdC9wYXRtZSwgCisgICAgICBkaXN0L3NjaGVtYS1zbm1wdHJhcGQuc3FsLCBkaXN0L3NubXBkLWluaXQuZCwgCisgICAgICBkaXN0L3NubXB0cmFwZC1pbml0LmQsIGRpc3Qvc3ZudXAsIGRvYy9yZmMvYWdlbnR4L3JmYzI3NDEudHh0LCAKKyAgICAgIGRvYy9yZmMvbWlzYy9yZmMzNTEyLnR4dCwgZG9jL3JmYy9taXNjL3JmYzM1ODQudHh0LCAKKyAgICAgIGRvYy9yZmMvc21pVjIvcmZjMjU3OC50eHQsIGRvYy9yZmMvc21pVjIvcmZjMjU3OS5lcnJhdGEsIAorICAgICAgZG9jL3JmYy9zbWlWMi9yZmMyNTc5LnR4dCwgZG9jL3JmYy9zbWlWMi9yZmMyNTgwLnR4dCwgCisgICAgICBkb2MvcmZjL3NubXBWMS9yZmMxMTU1LnR4dCwgZG9jL3JmYy9zbm1wVjEvcmZjMTE1Ny50eHQsIAorICAgICAgZG9jL3JmYy9zbm1wVjEvcmZjMTIxMi50eHQsIGRvYy9yZmMvc25tcFYxL3JmYzEyMTMudHh0LCAKKyAgICAgIGRvYy9yZmMvc25tcFYyL3JmYzE5MDEudHh0LCBkb2MvcmZjL3NubXBWMi9yZmMxOTAyLnR4dCwgCisgICAgICBkb2MvcmZjL3NubXBWMi9yZmMxOTAzLnR4dCwgZG9jL3JmYy9zbm1wVjIvcmZjMTkwNC50eHQsIAorICAgICAgZG9jL3JmYy9zbm1wVjIvcmZjMTkwNS50eHQsIGRvYy9yZmMvc25tcFYyL3JmYzE5MDYudHh0LCAKKyAgICAgIGRvYy9yZmMvc25tcFYyL3JmYzE5MDcudHh0LCBkb2MvcmZjL3NubXBWMi9yZmMxOTA4LnR4dCwgCisgICAgICBkb2MvcmZjL3NubXBWMi9yZmMyMDg5LnR4dCwgZG9jL3JmYy9zbm1wVjMvcmZjMzQxMC5lcnJhdGEsIAorICAgICAgZG9jL3JmYy9zbm1wVjMvcmZjMzQxMC50eHQsIGRvYy9yZmMvc25tcFYzL3JmYzM0MTEudHh0LCAKKyAgICAgIGRvYy9yZmMvc25tcFYzL3JmYzM0MTIudHh0LCBkb2MvcmZjL3NubXBWMy9yZmMzNDEzLmVycmF0YSwgCisgICAgICBkb2MvcmZjL3NubXBWMy9yZmMzNDEzLnR4dCwgZG9jL3JmYy9zbm1wVjMvcmZjMzQxNC5lcnJhdGEsIAorICAgICAgZG9jL3JmYy9zbm1wVjMvcmZjMzQxNC50eHQsIGRvYy9yZmMvc25tcFYzL3JmYzM0MTUuZXJyYXRhLCAKKyAgICAgIGRvYy9yZmMvc25tcFYzL3JmYzM0MTUudHh0LCBkb2MvcmZjL3NubXBWMy9yZmMzNDE2LnR4dCwgCisgICAgICBkb2MvcmZjL3NubXBWMy9yZmMzNDE3LnR4dCwgZG9jL3JmYy9zbm1wVjMvcmZjMzQxOC5lcnJhdGEsIAorICAgICAgZG9jL3JmYy9zbm1wVjMvcmZjMzQxOC50eHQsIGRvdGdkYmluaXQsIGRveHlnZW4uY29uZiwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2NhbGxiYWNrcy5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaW5kZXguaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvbWVtb3J5LmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9zZW5zb3JzLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZXMuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21vZGVfZW5kX2NhbGwuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2JqZWN0X21vbml0b3IuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcm93X21lcmdlLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zY2FsYXIuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhcl9ncm91cC5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXRfaGVscGVyLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX2NhY2hlLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF90b19uZXh0LmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgsIGluY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwX3NjYWxhcnMuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBzdGF0cy5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvbmV0LXNubXAtZGF0YS1hY2Nlc3MtaW5jbHVkZXMuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zY29wZXpvbmUuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N3aW5zdC5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3dydW4uaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy90Y3BDb25uLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9SRUFETUUsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5LmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9pdGVyYXRvci5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbGlzdF9zc2xsLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9udWxsLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2Rpcl91dGlscy5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mYWN0b3J5LmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZkX2V2ZW50X21hbmFnZXIuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmlsZV91dGlscy5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCwKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tZDUuaCwgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBbGlhc0RvbWFpbi5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1NIRG9tYWluLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTVEREb21haW4uaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wa3NtLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RleHRfdXRpbHMuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdWNkX2NvbXBhdC5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnBpcGUuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbWFjaGluZS9nZW5lcmljLmgsIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3BkdV9hcGkuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2QuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpLmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkzLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaTQuaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmgsCisgICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luNy5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjguaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45LmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHJhZ29uZmx5LmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaCwKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMi5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QzLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDQuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNS5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q2LmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDcuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKKyAgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4LmgsCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9rZnJlZWJzZC5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2xpbnV4LmgsCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMm1zdmMuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taXBzLmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3NmNS5oLAorICAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi4zLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNC5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjUuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi42LmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3Vub3MuaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3ZyNS5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N5c3YuaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vdWx0cml4NC5oLAorICAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oLCAKKyAgICAgIGluY2x1ZGUvdWNkLXNubXAvUkVBRE1FLCBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X2luZGV4LmgsIAorICAgICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9yZWFkX2NvbmZpZy5oLCAKKyAgICAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfcmVnaXN0cnkuaCwgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF90cmFwLmgsIAorICAgICAgaW5jbHVkZS91Y2Qtc25tcC9hc24xLmgsIGluY2x1ZGUvdWNkLXNubXAvYXV0b19ubGlzdC5oLCAKKyAgICAgIGluY2x1ZGUvdWNkLXNubXAvY2FsbGJhY2suaCwgaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmgsIAorICAgICAgaW5jbHVkZS91Y2Qtc25tcC9kc19hZ2VudC5oLCBpbmNsdWRlL3VjZC1zbm1wL2hlYWRlcl9jb21wbGV4LmgsIAorICAgICAgaW5jbHVkZS91Y2Qtc25tcC9pbnQ2NC5oLCBpbmNsdWRlL3VjZC1zbm1wL2tleXRvb2xzLmgsIAorICAgICAgaW5jbHVkZS91Y2Qtc25tcC9taWIuaCwgaW5jbHVkZS91Y2Qtc25tcC9taWJfbW9kdWxlX2NvbmZpZy5oLCAKKyAgICAgIGluY2x1ZGUvdWNkLXNubXAvbWliaW5jbC5oLCBpbmNsdWRlL3VjZC1zbm1wL3BhcnNlLmgsIAorICAgICAgaW5jbHVkZS91Y2Qtc25tcC9yZWFkX2NvbmZpZy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NjYXBpLmgsIAorICAgICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oLCAKKyAgICAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hZ2VudC5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWxhcm0uaCwgCisgICAgICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYXBpLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9jbGllbnQuaCwgCisgICAgICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfZGVidWcuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaCwgCisgICAgICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfbG9nZ2luZy5oLCAKKyAgICAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9wYXJzZV9hcmdzLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF92YXJzLmgsIAorICAgICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdXNtLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcHYzLmgsIAorICAgICAgaW5jbHVkZS91Y2Qtc25tcC9zdHJ1Y3QuaCwgaW5jbHVkZS91Y2Qtc25tcC9zeXN0ZW0uaCwgCisgICAgICBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmgsIGluY2x1ZGUvdWNkLXNubXAvdHJhbnNmb3JtX29pZHMuaCwgCisgICAgICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsIAorICAgICAgaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1jb25maWcuaCwgCisgICAgICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWluY2x1ZGVzLmgsIAorICAgICAgaW5jbHVkZS91Y2Qtc25tcC91dGlsX2Z1bmNzLmgsIGluY2x1ZGUvdWNkLXNubXAvdmFyX3N0cnVjdC5oLCAKKyAgICAgIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oLCBpbnN0YWxsLXNoLCBsb2NhbC9GQVEySFRNTCwgCisgICAgICBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvUkVBRE1FLm1pYjJjLCBsb2NhbC9WZXJzaW9uLU11bmdlLnBsLCAKKyAgICAgIGxvY2FsL2NvbnZlcnRjb2RlLCBsb2NhbC9maXhwcm9jLCBsb2NhbC9odG1sLWFkZC1oZWFkZXItZm9vdGVyLnBsLAorICAgICAgIGxvY2FsL2h0bWwtdGV4dGZpbGUtZml4LnBsLCBsb2NhbC9pcGYtbW9kLnBsLCBsb2NhbC9taWIyYywgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYywgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1lbnVtcy5tMmksIAorICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtbm9kZS5tMmksIAorICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtdGFibGUubTJpLCAKKyAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1jb3B5Lm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtc2V0Lm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLCAKKyAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1jaGFyLm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtZGVjbC1ib3QubTJpLCAKKyAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1kZWNsLm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtbG9uZy5tMmksIAorICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LW9pZC5tMmksIAorICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtaGVhZGVyLWJvdHRvbS5tMmksIAorICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtaGVhZGVyLXRvcC5tMmksIAorICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtc291cmNlLWluY2x1ZGVzLm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1jb25zdGFudHMubTJjLCAKKyAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWVudW1zLm0yYywgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLWZyb20tb2lkLm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmksIAorICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLCAKKyAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtdmFyYmluZC1zZXR1cC5tMmksIAorICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmksIAorICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmMsIAorICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpLCAKKyAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAubTJpLCAKKyAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tMmMtaW50ZXJuYWwtd2FybmluZy5tMmksIAorICAgICAgbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9lbnVtLm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpLCAKKyAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpLCAKKyAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfdGFibGVfc2F2ZV9kZWZhdWx0cy5tMmksIAorICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYywgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtZ2V0Lm0yYywgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYywgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRveHlnZW4ubTJjLCAKKyAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjLCAKKyAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYywgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmMsIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYywKKyAgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpLCBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpLAorICAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXN0b3JhZ2UubTJpLCAKKyAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXZhbGlkYXRlLm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS12YXJiaW5kLXZhbGlkYXRlLm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LWRlcGVuZGVuY2llcy5tMmksIAorICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpLAorICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYywgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LUNPVU5URVI2NC1nZXQubTJpLCAKKyAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yZCwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmksIAorICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1EYXRlQW5kVGltZS1yZWFkbWUubTJpLCAKKyAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtSW5ldEFkZHJlc3MtZ2V0Lm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LUluZXRBZGRyZXNzLXNldC5tMmksIAorICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1JbmV0QWRkcmVzc1R5cGUtZ2V0Lm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LUluZXRBZGRyZXNzVHlwZS1zZXQubTJpLCAKKyAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmksIAorICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy12YXJiaW5kLXZhbGlkYXRlLm0yaSwgCisgICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVN0b3JhZ2VUeXBlLWRlcGVuZGVuY2llcy5tMmksIAorICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1UZXN0QW5kSW5jci1nZXQubTJpLCBsb2NhbC9taWIyYy11cGRhdGUsCisgICAgICAgbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYsIAorICAgICAgbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzLmNvbmYsCisgICAgICBsb2NhbC9taWIyYy5jaGVja192YWx1ZXNfbG9jYWwuY29uZiwgCisgICAgICBsb2NhbC9taWIyYy5jb2x1bW5fZGVmaW5lcy5jb25mLCBsb2NhbC9taWIyYy5jb2x1bW5fZW51bXMuY29uZiwgCisgICAgICBsb2NhbC9taWIyYy5jb2x1bW5fc3RvcmFnZS5jb25mLCBsb2NhbC9taWIyYy5jb25mLCAKKyAgICAgIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCAKKyAgICAgIGxvY2FsL21pYjJjLmVtdWxhdGlvbi5jb25mLCBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmYsIAorICAgICAgbG9jYWwvbWliMmMuaW50X3dhdGNoLmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgCisgICAgICBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLCBsb2NhbC9taWIyYy5tZmQuY29uZiwgCisgICAgICBsb2NhbC9taWIyYy5ub3RpZnkuY29uZiwgbG9jYWwvbWliMmMub2xkLWFwaS5jb25mLCAKKyAgICAgIGxvY2FsL21pYjJjLnBlcmwuY29uZiwgbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmYsIAorICAgICAgbG9jYWwvbWliMmMucm93LmNvbmYsIGxvY2FsL21pYjJjLnNjYWxhci5jb25mLCAKKyAgICAgIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZiwgbG9jYWwvcGFzc19wZXJzaXN0dGVzdCwgCisgICAgICBsb2NhbC9wYXNzdGVzdCwgbG9jYWwvcGFzc3Rlc3QucGwsIGxvY2FsL3NubXAtdWNkLnNoLCAKKyAgICAgIGxvY2FsL3NubXBjaGVjay5kZWYsIGxvY2FsL3NubXBjb25mLCAKKyAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvYXV0aG9wdHMsIAorICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9kZWJ1Z2dpbmcsIAorICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9taWJzLCAKKyAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvb3V0cHV0LCAKKyAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvc25tcGNvbmYtY29uZmlnLCAKKyAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL2FjbCwgCisgICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9iYXNpY19zZXR1cCwgCisgICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9leHRlbmRpbmcsIAorICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvbW9uaXRvciwgCisgICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9vcGVyYXRpb24sIAorICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvc25tcGNvbmYtY29uZmlnLCAKKyAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3N5c3RlbSwgCisgICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS90cmFwc2lua3MsIAorICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL2F1dGhlbnRpY2F0aW9uLCAKKyAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9mb3JtYXR0aW5nLCAKKyAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9sb2dnaW5nLCAKKyAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9ydW50aW1lLCAKKyAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9zbm1wY29uZi1jb25maWcsIAorICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL3RyYXBoYW5kbGUsIGxvY2FsL3NubXBkdW1wLnBsLCAKKyAgICAgIGxvY2FsL3RrbWliLCBsb2NhbC90cmFwdG9lbWFpbCwgbHRtYWluLnNoLCAKKyAgICAgIG00L2FjX2FkZF9zZWFyY2hfcGF0aC5tNCwgbTQvYWNfbXNnX2NhY2hlLm00LCAKKyAgICAgIG00L2FjX21zZ19tb2R1bGVfZGJnLm00LCBtNC9hY19wcm9tcHRfdXNlci5tNCwgbTQvbGlidG9vbC5tNCwgCisgICAgICBtNC9sdG9wdGlvbnMubTQsIG00L2x0c3VnYXIubTQsIG00L2x0dmVyc2lvbi5tNCwKKyAgICAgIG00L2x0fm9ic29sZXRlLm00LCAgbTQvbmV0c25tcF9hcmcubTQsIG00L25ldHNubXBfc2VhcmNoX2xpYnMubTQsCisgICAgICBtYWtlZGVwZW5kLmluLCAgbWFrZWZpbGVpbmRlcGVuZC5wbCwgbWFrZW5vc3lzZGVwZW5kLnBsLAorICAgICAgbWFrZXRhcmdldCwgIG1hbi9NYWtlZmlsZS5pbiwgbWFuL2FkZF9taWJkaXIuMywKKyAgICAgIG1hbi9hZGRfbW9kdWxlX3JlcGxhY2VtZW50LjMsICBtYW4vY29uZmlnX2FwaS4zLmRlZiwKKyAgICAgIG1hbi9kZWZhdWx0X3N0b3JlLjMuYm90LCAgbWFuL2RlZmF1bHRfc3RvcmUuMy50b3AsCisgICAgICBtYW4vZW5jb2RlX2tleWNoYW5nZS4xLmRlZiwgIG1hbi9maXhwcm9jLjEuZGVmLAorICAgICAgbWFuL2dldF9tb2R1bGVfbm9kZS4zLCBtYW4vaW5pdF9taWIuMywgIG1hbi9pbml0X21pYl9pbnRlcm5hbHMuMywKKyAgICAgIG1hbi9tYWtlX2luZGV4LnBsLCBtYW4vbWFuX3NlY3Rpb25zLnR4dCwgIG1hbi9taWIyYy11cGRhdGUuMS5kZWYsCisgICAgICBtYW4vbWliMmMuMS5kZWYsIG1hbi9taWIyYy5jb25mLjUuaW4sICBtYW4vbWliMmMuZXh0cmFjdC5wbCwKKyAgICAgIG1hbi9taWJfYXBpLjMuZGVmLCBtYW4vbmV0LXNubXAtY29uZmlnLjEuZGVmLCAKKyAgICAgIG1hbi9uZXQtc25tcC1jcmVhdGUtdjMtdXNlci4xLmRlZiwgCisgICAgICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgCisgICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgCisgICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAorICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgCisgICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIAorICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgCisgICAgICBtYW4vbmV0c25tcF9leGFtcGxlX3NjYWxhcl9pbnQuMywgbWFuL25ldHNubXBfaGFuZGxlci4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX2xlYWYuMywgbWFuL25ldHNubXBfbGlicmFyeS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAorICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIAorICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIAorICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgCisgICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIAorICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIAorICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgCisgICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIAorICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NldF9kYXRhLjMsIAorICAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIAorICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIAorICAgICAgbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIAorICAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIAorICAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgCisgICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgCisgICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIAorICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCAKKyAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIAorICAgICAgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsIAorICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgCisgICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjMsIG1hbi9wZHVfYXBpLjMuZGVmLCBtYW4vcHJpbnRfZGVzY3JpcHRpb24uMywKKyAgICAgICBtYW4vcHJpbnRfbWliLjMsIG1hbi9wcmludF9vYmppZC4zLCBtYW4vcHJpbnRfdmFsdWUuMywgCisgICAgICBtYW4vcHJpbnRfdmFyaWFibGUuMywgbWFuL3JlYWRfYWxsX21pYnMuMywgbWFuL3JlYWRfbWliLjMsIAorICAgICAgbWFuL3JlYWRfbW9kdWxlLjMsIG1hbi9yZWFkX21vZHVsZV9ub2RlLjMsIG1hbi9yZWFkX29iamlkLjMsIAorICAgICAgbWFuL3Nlc3Npb25fYXBpLjMuZGVmLCBtYW4vc2h1dGRvd25fbWliLjMsIG1hbi9zbm1wLmNvbmYuNS5kZWYsIAorICAgICAgbWFuL3NubXBfYWdlbnRfYXBpLjMuZGVmLCBtYW4vc25tcF9hbGFybS4zLmRlZiwgCisgICAgICBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjMsIG1hbi9zbm1wX2Nsb3NlLjMsIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwKKyAgICAgICBtYW4vc25tcF9lcnJvci4zLCBtYW4vc25tcF9mcmVlX3BkdS4zLCBtYW4vc25tcF9vcGVuLjMsIAorICAgICAgbWFuL3NubXBfcGVycm9yLjMsIG1hbi9zbm1wX3JlYWQuMywgbWFuL3NubXBfc2VsZWN0X2luZm8uMywgCisgICAgICBtYW4vc25tcF9zZW5kLjMsIG1hbi9zbm1wX3Nlc3NfYXBpLjMuZGVmLCAKKyAgICAgIG1hbi9zbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLCBtYW4vc25tcF9zZXNzX2Nsb3NlLjMsIAorICAgICAgbWFuL3NubXBfc2Vzc19lcnJvci4zLCBtYW4vc25tcF9zZXNzX2luaXQuMywgbWFuL3NubXBfc2Vzc19vcGVuLjMsCisgICAgICAgbWFuL3NubXBfc2Vzc19wZXJyb3IuMywgbWFuL3NubXBfc2Vzc19yZWFkLjMsIAorICAgICAgbWFuL3NubXBfc2Vzc19zZWxlY3RfaW5mby4zLCBtYW4vc25tcF9zZXNzX3NlbmQuMywgCisgICAgICBtYW4vc25tcF9zZXNzX3Nlc3Npb24uMywgbWFuL3NubXBfc2Vzc190aW1lb3V0LjMsIAorICAgICAgbWFuL3NubXBfc2V0X21pYl93YXJuaW5ncy4zLCBtYW4vc25tcF9zZXRfc2F2ZV9kZXNjcmlwdGlvbnMuMywgCisgICAgICBtYW4vc25tcF90aW1lb3V0LjMsIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmLAorICAgICAgbWFuL3NubXBidWxrZ2V0LjEuZGVmLCAgbWFuL3NubXBidWxrd2Fsay4xLmRlZiwgbWFuL3NubXBjbWQuMS5kZWYsCisgICAgICBtYW4vc25tcGNvbmYuMS5kZWYsICBtYW4vc25tcGQuOC5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmLAorICAgICAgbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmLCAgbWFuL3NubXBkLmludGVybmFsLjUuZGVmLAorICAgICAgbWFuL3NubXBkZWx0YS4xLmRlZiwgbWFuL3NubXBkZi4xLmRlZiwgIG1hbi9zbm1wZ2V0LjEuZGVmLAorICAgICAgbWFuL3NubXBnZXRuZXh0LjEuZGVmLCBtYW4vc25tcGluZm9ybS4xLCAgbWFuL3NubXBuZXRzdGF0LjEuZGVmLAorICAgICAgbWFuL3NubXBzZXQuMS5kZWYsIG1hbi9zbm1wc3RhdHVzLjEuZGVmLCAgbWFuL3NubXB0YWJsZS4xLmRlZiwKKyAgICAgIG1hbi9zbm1wdGVzdC4xLmRlZiwgbWFuL3NubXB0cmFuc2xhdGUuMS5kZWYsICBtYW4vc25tcHRyYXAuMS5kZWYsCisgICAgICBtYW4vc25tcHRyYXBkLjguZGVmLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYsICBtYW4vc25tcHVzbS4xLmRlZiwKKyAgICAgIG1hbi9zbm1wdmFjbS4xLmRlZiwgbWFuL3NubXB3YWxrLjEuZGVmLCAgbWFuL3RrbWliLjEuZGVmLAorICAgICAgbWFuL3RyYXB0b2VtYWlsLjEuZGVmLCBtYW4vdmFyYmluZF9hcGkuMy5kZWYsIAorICAgICAgbWFuL3ZhcmlhYmxlcy41LmRlZiwgbWlicy9BR0VOVFgtTUlCLnR4dCwgCisgICAgICBtaWJzL0RJU01BTi1FVkVOVC1NSUIudHh0LCBtaWJzL0RJU01BTi1FWFBSRVNTSU9OLU1JQi50eHQsIAorICAgICAgbWlicy9ESVNNQU4tTlNMT09LVVAtTUlCLnR4dCwgbWlicy9ESVNNQU4tUElORy1NSUIudHh0LCAKKyAgICAgIG1pYnMvRElTTUFOLVNDSEVEVUxFLU1JQi50eHQsIG1pYnMvRElTTUFOLVNDUklQVC1NSUIudHh0LCAKKyAgICAgIG1pYnMvRElTTUFOLVRSQUNFUk9VVEUtTUlCLnR4dCwgbWlicy9FdGhlckxpa2UtTUlCLnR4dCwgCisgICAgICBtaWJzL0hDTlVNLVRDLnR4dCwgbWlicy9IT1NULVJFU09VUkNFUy1NSUIudHh0LCAKKyAgICAgIG1pYnMvSE9TVC1SRVNPVVJDRVMtVFlQRVMudHh0LCAKKyAgICAgIG1pYnMvSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQsIAorICAgICAgbWlicy9JQU5BLUxBTkdVQUdFLU1JQi50eHQsIG1pYnMvSUFOQS1SVFBST1RPLU1JQi50eHQsIAorICAgICAgbWlicy9JQU5BaWZUeXBlLU1JQi50eHQsIG1pYnMvSUYtSU5WRVJURUQtU1RBQ0stTUlCLnR4dCwgCisgICAgICBtaWJzL0lGLU1JQi50eHQsIG1pYnMvSU5FVC1BRERSRVNTLU1JQi50eHQsIAorICAgICAgbWlicy9JUC1GT1JXQVJELU1JQi50eHQsIG1pYnMvSVAtTUlCLnR4dCwgCisgICAgICBtaWJzL0lQVjYtRkxPVy1MQUJFTC1NSUIudHh0LCBtaWJzL0lQVjYtSUNNUC1NSUIudHh0LCAKKyAgICAgIG1pYnMvSVBWNi1NSUIudHh0LCBtaWJzL0lQVjYtVEMudHh0LCBtaWJzL0lQVjYtVENQLU1JQi50eHQsIAorICAgICAgbWlicy9JUFY2LVVEUC1NSUIudHh0LCBtaWJzL0xNLVNFTlNPUlMtTUlCLnR4dCwgbWlicy9NVEEtTUlCLnR4dCwgCisgICAgICBtaWJzL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLm1pYiwgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0LCAKKyAgICAgIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dCwgbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dCwgCisgICAgICBtaWJzL05FVC1TTk1QLU1JQi50eHQsIG1pYnMvTkVULVNOTVAtTU9OSVRPUi1NSUIudHh0LCAKKyAgICAgIG1pYnMvTkVULVNOTVAtUEFTUy1NSUIudHh0LCBtaWJzL05FVC1TTk1QLVNZU1RFTS1NSUIudHh0LCAKKyAgICAgIG1pYnMvTkVULVNOTVAtVEMudHh0LCBtaWJzL05FVC1TTk1QLVZBQ00tTUlCLnR4dCwgCisgICAgICBtaWJzL05FVFdPUkstU0VSVklDRVMtTUlCLnR4dCwgbWlicy9OT1RJRklDQVRJT04tTE9HLU1JQi50eHQsIAorICAgICAgbWlicy9SRUFETUUubWlicywgbWlicy9SRkMtMTIxNS50eHQsIG1pYnMvUkZDMTE1NS1TTUkudHh0LCAKKyAgICAgIG1pYnMvUkZDMTIxMy1NSUIudHh0LCBtaWJzL1JNT04tTUlCLnR4dCwgbWlicy9TQ1RQLU1JQi50eHQsIAorICAgICAgbWlicy9TTVVYLU1JQi50eHQsIG1pYnMvU05NUC1DT01NVU5JVFktTUlCLnR4dCwgCisgICAgICBtaWJzL1NOTVAtRlJBTUVXT1JLLU1JQi50eHQsIG1pYnMvU05NUC1NUEQtTUlCLnR4dCwgCisgICAgICBtaWJzL1NOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIG1pYnMvU05NUC1QUk9YWS1NSUIudHh0LCAKKyAgICAgIG1pYnMvU05NUC1UQVJHRVQtTUlCLnR4dCwgbWlicy9TTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwgCisgICAgICBtaWJzL1NOTVAtVVNNLUFFUy1NSUIudHh0LCBtaWJzL1NOTVAtVVNNLURILU9CSkVDVFMtTUlCLnR4dCwgCisgICAgICBtaWJzL1NOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCwgbWlicy9TTk1QdjItQ09ORi50eHQsIAorICAgICAgbWlicy9TTk1QdjItTUlCLnR4dCwgbWlicy9TTk1QdjItU01JLnR4dCwgbWlicy9TTk1QdjItVEMudHh0LCAKKyAgICAgIG1pYnMvU05NUHYyLVRNLnR4dCwgbWlicy9UQ1AtTUlCLnR4dCwgCisgICAgICBtaWJzL1RSQU5TUE9SVC1BRERSRVNTLU1JQi50eHQsIG1pYnMvVFVOTkVMLU1JQi50eHQsIAorICAgICAgbWlicy9VQ0QtREVNTy1NSUIuaW5jLCBtaWJzL1VDRC1ERU1PLU1JQi50eHQsIAorICAgICAgbWlicy9VQ0QtRElTS0lPLU1JQi5pbmMsIG1pYnMvVUNELURJU0tJTy1NSUIudHh0LCAKKyAgICAgIG1pYnMvVUNELURMTU9ELU1JQi5pbmMsIG1pYnMvVUNELURMTU9ELU1JQi50eHQsIAorICAgICAgbWlicy9VQ0QtSVBGSUxURVItTUlCLmluYywgbWlicy9VQ0QtSVBGSUxURVItTUlCLnR4dCwgCisgICAgICBtaWJzL1VDRC1JUEZXQUNDLU1JQi5pbmMsIG1pYnMvVUNELUlQRldBQ0MtTUlCLnR4dCwgCisgICAgICBtaWJzL1VDRC1TTk1QLU1JQi1PTEQudHh0LCBtaWJzL1VDRC1TTk1QLU1JQi5pbmMsIAorICAgICAgbWlicy9VQ0QtU05NUC1NSUIudHh0LCBtaWJzL1VEUC1NSUIudHh0LCBtaWJzL2lhbmFsaXN0LCAKKyAgICAgIG1pYnMvbWFrZWh0bWwucGwsIG1pYnMvbWliZmV0Y2gsIG1pYnMvbm9kZW1hcCwgbWlicy9yZmNsaXN0LCAKKyAgICAgIG1pYnMvcmZjbWlicy5kaWZmLCBtaWJzL3NtaXN0cmlwLCBta2luc3RhbGxkaXJzLCAKKyAgICAgIG5ldC1zbm1wLWNvbmZpZy5pbiwgbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIuaW4sIG92L01ha2VmaWxlLmluLCAKKyAgICAgIG92L1JFQURNRSwgb3YvVUNELUNvbXB1dGVyLCBvdi9VQ0QtZmllbGRzLCBvdi9iaXRtYXBzL1VDRC4yMC5tLCAKKyAgICAgIG92L2JpdG1hcHMvVUNELjIwLnAsIG92L2JpdG1hcHMvVUNELjI2Lm0sIG92L2JpdG1hcHMvVUNELjI2LnAsIAorICAgICAgb3YvYml0bWFwcy9VQ0QuMzIubSwgb3YvYml0bWFwcy9VQ0QuMzIucCwgb3YvYml0bWFwcy9VQ0QuMzgubSwgCisgICAgICBvdi9iaXRtYXBzL1VDRC4zOC5wLCBvdi9iaXRtYXBzL1VDRC40NC5tLCBvdi9iaXRtYXBzL1VDRC40NC5wLCAKKyAgICAgIG92L2JpdG1hcHMvVUNELjUwLm0sIG92L2JpdG1hcHMvVUNELjUwLnAsIG92L2JpdG1hcHMvVUNELmZpZWxkcywgCisgICAgICBvdi9vaWRfdG9fc3ltLmluLCBvdi9vaWRfdG9fdHlwZS5pbiwgcGVybC9BU04vQVNOLnBtLCAKKyAgICAgIHBlcmwvQVNOL0FTTi54cywgcGVybC9BU04vQ2hhbmdlcywgcGVybC9BU04vTUFOSUZFU1QsIAorICAgICAgcGVybC9BU04vTWFrZWZpbGUuUEwsIHBlcmwvQVNOL3Rlc3QucGwsIHBlcmwvQW55RGF0YV9TTk1QL0NoYW5nZXMsCisgICAgICAgcGVybC9BbnlEYXRhX1NOTVAvREJEX0FueURhdGEucGF0Y2gsIHBlcmwvQW55RGF0YV9TTk1QL0Zvcm1hdC5wbSwKKyAgICAgICBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMLCBwZXJsL0FueURhdGFfU05NUC9NQU5JRkVTVCwgCisgICAgICBwZXJsL0FueURhdGFfU05NUC9NYWtlZmlsZS5QTCwgcGVybC9BbnlEYXRhX1NOTVAvUkVBRE1FLCAKKyAgICAgIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvQW55RGF0YV9TTk1QL2NvbmZpZ3Mvc2NsaSwgCisgICAgICBwZXJsL0FueURhdGFfU05NUC9jb25maWdzL3VuaXgsIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoLCAKKyAgICAgIHBlcmwvTWFrZWZpbGUuUEwsIHBlcmwvTWFrZWZpbGUubWFrZWZpbGVzLCBwZXJsL01ha2VmaWxlLnN1YnMucGwsIAorICAgICAgcGVybC9PSUQvQ2hhbmdlcywgcGVybC9PSUQvTUFOSUZFU1QsIHBlcmwvT0lEL01ha2VmaWxlLlBMLCAKKyAgICAgIHBlcmwvT0lEL09JRC5wbSwgcGVybC9PSUQvT0lELnhzLCBwZXJsL09JRC9SRUFETUUsIAorICAgICAgcGVybC9PSUQvdGVzdC5wbCwgcGVybC9PSUQvdHlwZW1hcCwgcGVybC9TTk1QL0JVRywgCisgICAgICBwZXJsL1NOTVAvTUFOSUZFU1QsIHBlcmwvU05NUC9NQU5JRkVTVC5TS0lQLAorICAgICAgcGVybC9TTk1QL01ha2VmaWxlLlBMLCAgcGVybC9TTk1QL1JFQURNRSwgcGVybC9TTk1QL1NOTVAucG0sCisgICAgICBwZXJsL1NOTVAvU05NUC54cywgIHBlcmwvU05NUC9UT0RPLCBwZXJsL1NOTVAvZXhhbXBsZXMvYXN5bmMxLnBsLCAKKyAgICAgIHBlcmwvU05NUC9leGFtcGxlcy9hc3luYzIucGwsIHBlcmwvU05NUC9leGFtcGxlcy9idWxrd2Fsay5wbCwgCisgICAgICBwZXJsL1NOTVAvZXhhbXBsZXMvaXBmb3J3YXJkLnBsLCBwZXJsL1NOTVAvZXhhbXBsZXMvbWlidHJlZS5wbCwgCisgICAgICBwZXJsL1NOTVAvZXhhbXBsZXMvbWlid2Fsay5wbCwgcGVybC9TTk1QL2V4YW1wbGVzL3BpbmdtaWIucGwsIAorICAgICAgcGVybC9TTk1QL2V4YW1wbGVzL3RhYmxld2Fsay5wbCwgcGVybC9TTk1QL2V4YW1wbGVzL3Rlc3RsZWFrLnBsLCAKKyAgICAgIHBlcmwvU05NUC9leGFtcGxlcy90cmFwLWV4YW1wbGUucGwsIHBlcmwvU05NUC9oaW50cy9pcml4LnBsLCAKKyAgICAgIHBlcmwvU05NUC9oaW50cy9zb2xhcmlzLnBsLCBwZXJsL1NOTVAvcGVybHNubXAuaCwgCisgICAgICBwZXJsL1NOTVAvdC9SRUFETUUsIHBlcmwvU05NUC90L2FzeW5jLnQsIHBlcmwvU05NUC90L2J1bGt3YWxrLnQsIAorICAgICAgcGVybC9TTk1QL3QvY29uZi50LCBwZXJsL1NOTVAvdC9jb25mdGVzdC5jb25mLCBwZXJsL1NOTVAvdC9nZXQudCwgCisgICAgICBwZXJsL1NOTVAvdC9nZXRuZXh0LnQsIHBlcmwvU05NUC90L21pYi50LCBwZXJsL1NOTVAvdC9taWIudHh0LCAKKyAgICAgIHBlcmwvU05NUC90L21pYmxvYWQudCwgcGVybC9TTk1QL3Qvbm90aWZ5LnQsCisgICAgICBwZXJsL1NOTVAvdC9zZXNzaW9uLnQsICBwZXJsL1NOTVAvdC9zZXQudCwKKyAgICAgIHBlcmwvU05NUC90L3NubXB0ZXN0LmNvbmYsICBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsLAorICAgICAgcGVybC9TTk1QL3R5cGVtYXAsICBwZXJsL1RyYXBSZWNlaXZlci9DaGFuZ2VzLAorICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvTUFOSUZFU1QsICBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwKKyAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1JFQURNRSwgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgCisgICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LWMuaW5jLCAKKyAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LXhzLmluYywgCisgICAgICBwZXJsL1RyYXBSZWNlaXZlci9mYWxsYmFjay9jb25zdC1jLmluYywgCisgICAgICBwZXJsL1RyYXBSZWNlaXZlci9mYWxsYmFjay9jb25zdC14cy5pbmMsIAorICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvcGVybF9zbm1wdHJhcGQuaCwgcGVybC9UcmFwUmVjZWl2ZXIvcHBwb3J0LmgsIAorICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvdC8xLnQsIHBlcmwvVHJhcFJlY2VpdmVyL3R5cGVtYXAsIAorICAgICAgcGVybC9hZ2VudC9DaGFuZ2VzLCBwZXJsL2FnZW50L01BTklGRVNULCBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCAKKyAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIAorICAgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9hZ2VudC54cywgCisgICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIAorICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIAorICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMsIAorICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2dlbiwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL3Rlc3QucGwsIAorICAgICAgcGVybC9hZ2VudC9uZXRzbm1wX3JlcXVlc3RfaW5mb1B0ci5wbSwgcGVybC9hZ2VudC90ZXN0LnBsLCAKKyAgICAgIHBlcmwvYWdlbnQvdHlwZW1hcCwgcGVybC9kZWZhdWx0X3N0b3JlL0NoYW5nZXMsIAorICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL01BTklGRVNULCBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIAorICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL1JFQURNRSwgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIAorICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMsIHBlcmwvZGVmYXVsdF9zdG9yZS9nZW4sIAorICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL3Rlc3QucGwsIHBlcmwvZGVmYXVsdF9zdG9yZS90eXBlbWFwLCAKKyAgICAgIHBlcmwvbWFrZS1wZXJsLW1ha2VmaWxlcywgcGVybC9tYW5hZ2VyL0lOU1RBTEwsIAorICAgICAgcGVybC9tYW5hZ2VyL01ha2VmaWxlLlBMLCBwZXJsL21hbmFnZXIvZGlzcGxheXRhYmxlLnBtLCAKKyAgICAgIHBlcmwvbWFuYWdlci9nZXRWYWx1ZXMucG0sIHBlcmwvbWFuYWdlci9tYW5hZ2VyLnBtLCAKKyAgICAgIHBlcmwvbWFuYWdlci9zZXR1cGF1dGgsIHBlcmwvbWFuYWdlci9zZXR1cGRiLCAKKyAgICAgIHBlcmwvbWFuYWdlci9zZXR1cHVzZXIsIHBlcmwvbWFuYWdlci9zbm1wdG9zcWwsIHB5dGhvbi9MSUNFTlNFLCAKKyAgICAgIHB5dGhvbi9SRUFETUUsIHB5dGhvbi9uZXRzbm1wL19faW5pdF9fLnB5LCAKKyAgICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weSwgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYywgCisgICAgICBweXRob24vbmV0c25tcC90ZXN0cy9fX2luaXRfXy5weSwgcHl0aG9uL25ldHNubXAvdGVzdHMvc25tcGQuY29uZiwKKyAgICAgICBweXRob24vbmV0c25tcC90ZXN0cy90ZXN0LnB5LCBweXRob24vc2V0dXAucHksIHJlbW92ZS1maWxlcywgCisgICAgICBzZWRzY3JpcHQuaW4sIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmluLCAKKyAgICAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCAKKyAgICAgIHNubXBsaWIvY211X2NvbXBhdC5jLCBzbm1wbGliL2NvbnRhaW5lci5jLCAKKyAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jLCAKKyAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMsIAorICAgICAgc25tcGxpYi9kYXRhX2xpc3QuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvZGlyX3V0aWxzLmMsCisgICAgICAgc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMsIHNubXBsaWIvZmlsZV91dGlscy5jLAorICAgICAgc25tcGxpYi9nZXRvcHQuYywgIHNubXBsaWIvaW5ldF9udG9wLmMsIHNubXBsaWIvaW5ldF9wdG9uLmMsCisgICAgICBzbm1wbGliL2ludDY0LmMsICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsCisgICAgICBzbm1wbGliL2xjZF90aW1lLmMsICBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jLAorICAgICAgc25tcGxpYi9tdF9zdXBwb3J0LmMsICBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3BhcnNlLmMsCisgICAgICBzbm1wbGliL3BrY3MuYywgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAorICAgICAgc25tcGxpYi9zbm1wLXRjLmMsICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvc25tcEFsaWFzRG9tYWluLmMsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIAorICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywgCisgICAgICBzbm1wbGliL3NubXBTU0hEb21haW4uYywgc25tcGxpYi9zbm1wU1RERG9tYWluLmMsIAorICAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgCisgICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCisgICAgICBzbm1wbGliL3NubXBfYXBpLmMsICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCisgICAgICBzbm1wbGliL3NubXBfZGVidWcuYywgIHNubXBsaWIvc25tcF9lbnVtLmMsCisgICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCAgc25tcGxpYi9zbm1wX29wZW5zc2wuYywKKyAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsICBzbm1wbGliL3NubXBfc2VjbW9kLmMsCisgICAgICBzbm1wbGliL3NubXBfc2VydmljZS5jLCAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLAorICAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB0c20uYywKKyAgICAgIHNubXBsaWIvc25tcHVzbS5jLCAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zbnByaW50Zi5jLAorICAgICAgc25tcGxpYi9zdHJsY3B5LmMsICBzbm1wbGliL3N0cnRva19yLmMsIHNubXBsaWIvc3RydG9sLmMsCisgICAgICBzbm1wbGliL3N0cnRvdWwuYywgIHNubXBsaWIvc3RydG91bGwuYywgc25tcGxpYi9zeXN0ZW0uYywKKyAgICAgIHNubXBsaWIvdGVzdF9iaW5hcnlfYXJyYXkuYywgIHNubXBsaWIvdGV4dF91dGlscy5jLAorICAgICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmgsIAorICAgICAgc25tcGxpYi91Y2RfY29tcGF0LmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3dpbnBpcGUuYywgCisgICAgICBzbm1wbGliL3dpbnNlcnZpY2UuYywgc25tcGxpYi93aW5zZXJ2aWNlLm1jLAorICAgICAgc25tcGxpYi93aW5zZXJ2aWNlLnJjLCAgc25tcGxpYi93aW5zZXJ2aWNlcmMucmMsIHN0YW1wLWgsCisgICAgICBzdGFtcC1oLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluLCAgdGVzdGluZy9SRUFETUUsCisgICAgICB0ZXN0aW5nL1JVTlRFU1RTLCB0ZXN0aW5nL1QuYywgdGVzdGluZy9UMi5zaCwgCisgICAgICB0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLW1kNSwgCisgICAgICB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMS1kZXMsIAorICAgICAgdGVzdGluZy9kYXRhLmt1bC1tZDUsIHRlc3RpbmcvZGF0YS5rdWwtc2hhMSwgdGVzdGluZy9ldGltZXRlc3QuYywgCisgICAgICB0ZXN0aW5nL2V2YWxfb25lcHJvZ3JhbS5zaCwgdGVzdGluZy9ldmFsX29uZXNjcmlwdC5zaCwgCisgICAgICB0ZXN0aW5nL2V2YWxfc3VpdGUuc2gsIHRlc3RpbmcvZXZhbF90ZXN0bGlzdCwgCisgICAgICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLAorICAgICAgdGVzdGluZy9taXNjdGVzdC5jLCAgdGVzdGluZy9yZmMxMjEzL1JFQURNRSwgdGVzdGluZy9yZmMxMjEzL3J1biwgCisgICAgICB0ZXN0aW5nL3JmYzEyMTMvc25tcGZ1bi5zaCwgdGVzdGluZy9yZmMxMjEzL3Rlc3RfZnVuLCAKKyAgICAgIHRlc3RpbmcvcmZjMTIxMy90ZXN0bWliMS5zaCwgdGVzdGluZy9yZmMxMjEzL3Rlc3RtaWIyLnNoLCAKKyAgICAgIHRlc3RpbmcvcmZjMTIxMy90ZXN0bWliMy5zaCwgdGVzdGluZy9zY2FwaXRlc3QuYywgCisgICAgICB0ZXN0aW5nL3Rlc3Rfa2V5Y2hhbmdlLnNoLCB0ZXN0aW5nL3Rlc3Rfa3VsLnNoLCAKKyAgICAgIHRlc3RpbmcvdGVzdHMvU3RyYW5zcG9ydCwgdGVzdGluZy90ZXN0cy9TdjFjb25maWcsIAorICAgICAgdGVzdGluZy90ZXN0cy9TdjJjY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZywgCisgICAgICB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2FnZW50LCB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2Jhc2UsIAorICAgICAgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWd0cmFwZCwgdGVzdGluZy90ZXN0cy9TdjN2YWNtY29uZmlnLCAKKyAgICAgIHRlc3RpbmcvdGVzdHMvU3ZhY21jb25maWcsIHRlc3RpbmcvdGVzdHMvU3Zhbnljb25maWcsIAorICAgICAgdGVzdGluZy90ZXN0cy9UMDAwY29uZmlndXJlLCB0ZXN0aW5nL3Rlc3RzL1QwMDFzbm1wdjFnZXQsIAorICAgICAgdGVzdGluZy90ZXN0cy9UMDE0c25tcHYyY2dldCwgdGVzdGluZy90ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsIAorICAgICAgdGVzdGluZy90ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0LCAKKyAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNnNubXB2MmNnZXRmYWlsLCAKKyAgICAgIHRlc3RpbmcvdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgCisgICAgICB0ZXN0aW5nL3Rlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwsIAorICAgICAgdGVzdGluZy90ZXN0cy9UMDE5c25tcHYyY25vc3VjaCwgdGVzdGluZy90ZXN0cy9UMDIwc25tcHYzZ2V0LCAKKyAgICAgIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsIHRlc3RpbmcvdGVzdHMvVDAyMjBzbm1wdjNidWxrZ2V0LAorICAgICAgIHRlc3RpbmcvdGVzdHMvVDAyMnNubXB2M2dldE1ENSwKKyAgICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENUFFUywgCisgICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMsCisgICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjRzbm1wdjNnZXRTSEExLCAKKyAgICAgIHRlc3RpbmcvdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUywgCisgICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjZzbm1wdjNnZXRTSEFBRVMsCisgICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjhzbm1wdjNnZXRmYWlsLCAKKyAgICAgIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwgCisgICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210LCAKKyAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybSwKKyAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybWF1dGgsIAorICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtcHJpdiwgdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcCwgCisgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTFzbm1wdjJjdHJhcCwgdGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwgCisgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLCAKKyAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCAKKyAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwKKyAgICAgIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3QsIAorICAgICAgdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdDIsCisgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0MywgCisgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLAorICAgICAgdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlLCAgdGVzdGluZy90ZXN0cy9UMDYwdHJhcGRwZXJsLAorICAgICAgdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsLCAgdGVzdGluZy90ZXN0cy9UMDY1YWdlbnRleHRlbmQsCisgICAgICB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cCwgIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldCwKKyAgICAgIHRlc3RpbmcvdGVzdHMvVDExMWFnZW50eHNldCwgIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsCisgICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwLCAgdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybCwKKyAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCAgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQsCisgICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwsICB0ZXN0aW5nL3Rlc3RzL1QxMzBzbm1wdjF2YWNtZ2V0LAorICAgICAgdGVzdGluZy90ZXN0cy9UMTMxc25tcHYyY3ZhY21nZXQsIAorICAgICAgdGVzdGluZy90ZXN0cy9UMTMyc25tcHYzdmFjbWdldCwgCisgICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbCwgCisgICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDFzbm1wdjJjdmFjbWdldGZhaWwsIAorICAgICAgdGVzdGluZy90ZXN0cy9UMTQyc25tcHYzdmFjbWdldGZhaWwsIAorICAgICAgdGVzdGluZy90ZXN0cy9UMTUwc29sYXJpc2hvc3RjcHUsIAorICAgICAgdGVzdGluZy90ZXN0cy9UMTUxc29sYXJpc2hvc3RkaXNrLCB0ZXN0aW5nL3Rlc3RzL1QxNTJob3N0dXB0aW1lLCAKKyAgICAgIHRlc3RpbmcvdGVzdHMvVDE1M3NvbGFyaXNzd2FwLCB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdCwgCisgICAgICB0ZXN0aW5nL3Rlc3RzL1QyMDBzbm1wdjJjd2Fsa2FsbCwgdGVzdGluZy90ZXN0cy9UMzAwdWRwLCAKKyAgICAgIHRlc3RpbmcvdGVzdHMvVDMxMHRjcCwgdGVzdGluZy90ZXN0cy9UMzIwdWRwdjYsIAorICAgICAgdGVzdGluZy90ZXN0cy9UMzMwdGNwdjYsIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXgsIAorICAgICAgdGVzdGluZy90ZXN0cy9UMzYwZHRsc3VkcCwgdGVzdGluZy90ZXN0cy9UMzk5YWxpYXMsIAorICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5jZXJ0LCAKKyAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC1sb2NhbGhvc3QucHJpdiwgdGVzdGluZy90ZXN0cy90ZXN0LXVzZXIuY2VydCwgCisgICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5wcml2LCB3aW4zMi9Db25maWd1cmUsIAorICAgICAgd2luMzIvRVhBTVBMRS5jb25mLndpbjMyLCB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLCAKKyAgICAgIHdpbjMyL01ha2VmaWxlLmluLCB3aW4zMi9NZ210QXBpLXdpbkV4dERMTC5oLCAKKyAgICAgIHdpbjMyL1NubXAtd2luRXh0RExMLmgsIHdpbjMyL2FnZW50X21vZHVsZV9kb3RfY29uZi5oLCAKKyAgICAgIHdpbjMyL2FnZW50X21vZHVsZV9pbmNsdWRlcy5oLCB3aW4zMi9hZ2VudF9tb2R1bGVfaW5pdHMuaCwgCisgICAgICB3aW4zMi9idWlsZC5iYXQsIHdpbjMyL2J1aWxkLnBsLCB3aW4zMi9jb25maWcuaCwgCisgICAgICB3aW4zMi9jb25maWcuaC5ib3JsYW5kLCB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsIAorICAgICAgd2luMzIvZGlzdC9SRUFETUUudHh0LCB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5iYXQsIAorICAgICAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGwsIAorICAgICAgd2luMzIvZGlzdC9odG1saGVscC9Db25maWd1cmF0aW9uX092ZXJ2aWV3Lmh0bWwsIAorICAgICAgd2luMzIvZGlzdC9odG1saGVscC9EZXZlbG9wZXJfRkFRLmh0bWwsIAorICAgICAgd2luMzIvZGlzdC9odG1saGVscC9GQVEuaHRtbCwgCisgICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL0hlbHBfQ2F2ZWF0cy5odG1sLCAKKyAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvSW50cm9kdWN0aW9uLmh0bWwsIAorICAgICAgd2luMzIvZGlzdC9odG1saGVscC9OZXQtU05NUC5oaGMsCisgICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL05ldC1TTk1QLmhocCwgCisgICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL3NubXAuY29uZi53aW4zMi5odG1sLCAKKyAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvc25tcGQuY29uZi53aW4zMi5odG1sLCAKKyAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvc25tcHRyYXBkLmNvbmYud2luMzIuaHRtbCwgCisgICAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9BZGQyUGF0aC5uc2ksIAorICAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvU2V0RW5WYXIubnNpLCAKKyAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaSwgd2luMzIvZGlzdC9zY3JpcHRzL2NyZWF0ZS10b2MsIAorICAgICAgd2luMzIvZGlzdC9zY3JpcHRzL21hbmRpcjJodG1sLCAKKyAgICAgIHdpbjMyL2Rpc3Qvc2NyaXB0cy9uZXQtc25tcC1wZXJsLXRlc3QucGwsIAorICAgICAgd2luMzIvZGlzdC9zY3JpcHRzL3BvZGRpcjJodG1sLCB3aW4zMi9kaXN0L3NjcmlwdHMvcmVhZG1lMmh0bWwsIAorICAgICAgd2luMzIvZGlzdC9zY3JpcHRzL3R4dDJodG1sLCB3aW4zMi9kaXN0L3Rvc29jazEuc2gsIAorICAgICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwgCisgICAgICB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdCwgd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sIAorICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZGVmLCB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIAorICAgICAgd2luMzIvbGliaGVscGVycy9NYWtlZmlsZS5pbiwgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgCisgICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sIAorICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsIAorICAgICAgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgCisgICAgICB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIAorICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAorICAgICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZiwgIHdpbjMyL2xvY2FsL01ha2VmaWxlLmluLAorICAgICAgd2luMzIvbG9jYWwvbWliMmMuYmF0LCAgd2luMzIvbG9jYWwvc25tcGNvbmYuYmF0LAorICAgICAgd2luMzIvbG9jYWwvdHJhcHRvZW1haWwuYmF0LCAgd2luMzIvbWliX21vZHVsZV9kb3RfY29uZi5oLAorICAgICAgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLCAgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLAorICAgICAgd2luMzIvbWliX21vZHVsZV9zaHV0ZG93bi5oLCAKKyAgICAgIHdpbjMyL25ldC1zbm1wL2FnZW50L2FnZW50X21vZHVsZV9jb25maWcuaCwgCisgICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLCAKKyAgICAgIHdpbjMyL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgsIAorICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAorICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCisgICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKKyAgICAgIHdpbjMyL25tYWtlcGVybC5iYXQsICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsIAorICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCAKKyAgICAgIHdpbjMyL3NubXBkL3NubXBkLmRzcCwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIAorICAgICAgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsIAorICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgCisgICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsIAorICAgICAgd2luMzIvc25tcHNtX2luaXQuaCwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgCisgICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLCAKKyAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCisgICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsICB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW4sCisgICAgICB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsCisgICAgICB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AsCisgICAgICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyZGxsLmRzdzoKKworIEZpeCA1LjUueCBicmFuY2ggc3RydWN0dXJlIChwYXJ0IDIpIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5NjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa2luZm8uYzogcHJvcGVyIHByb2Nlc3MKKworIHN0YXR1cyB2YWx1ZXMgZm9yIG5ldGJzZCBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTYyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2tpbmZvLmM6IHByb3BlciBwcm9jZXNzCisKKyBzdGF0dXMgdmFsdWVzIGZvciBuZXRic2QgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTYyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3NjYXBpLmM6IGNvbmRpdGlvbmFsaXplIHZhcmlhYmxlIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zY2FwaS5jOiBjb25kaXRpb25hbGl6ZSB2YXJpYWJsZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6IHRjcC1taWIvdWRwLW1pYgorCisgc3VwcG9ydCBmb3IgdGhlICpic2RzIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOiB0Y3AtbWliL3VkcC1taWIKKworIHN1cHBvcnQgZm9yIHRoZSAqYnNkcyBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9taWJJSS5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9mcmVlYnNkNC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9uZXRic2QuYywgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fb3BlbmJzZC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50LmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfZnJlZWJzZDQuYywgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9uZXRic2QuYywgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9vcGVuYnNkLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLgorICAgICAgIGM6IHRjcC1taWIvdWRwLW1pYiBzdXBwb3J0IGZvciB0aGUgKmJzZHMgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTU5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fZnJlZWJzZDQuYywgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbmV0YnNkLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX29wZW5ic2QuYywgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2ZyZWVic2Q0LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbmV0YnNkLmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfb3BlbmJzZC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS4KKyAgICAgICBjOiB0Y3AtbWliL3VkcC1taWIgc3VwcG9ydCBmb3IgdGhlICpic2RzIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTU5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgICogCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hCisgICAgICAgY2Nlc3MuYzogUHJvcGVybHkgZW5kIGRlYnVnIG1lc3NhZ2Ugd2l0aCBuZXdsaW5lIGdpdC1zdm4taWQ6CisKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogICAqIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYQorICAgICAgIGNjZXNzLmM6IFByb3Blcmx5IGVuZCBkZWJ1ZyBtZXNzYWdlIHdpdGggbmV3bGluZSBnaXQtc3ZuLWlkOgorCisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6IHJlbW92ZSB2YXIKKworIHRoYXQgc2hhZG93cyB0aGUgdXNlZnVsIG9uZSBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTU3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYzogcmVtb3ZlIHZhcgorCisgdGhhdCBzaGFkb3dzIHRoZSB1c2VmdWwgb25lIGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOiBtYWpvciBmaWRkbGluZyB0byBnZXQgdGhpbmdzIHdvcmtpbmcKKworIGZvciBvcGVuYnNkIHRvby4gVGhpcyBzaG91bGQgcmVhbGx5IGJlIHJld29ya2VkIHRvIHVzZSB0aGUKKyB0Y3AtbWliL3VkcC1taWIvZGF0YV9hY2Nlc3MgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOiBtYWpvciBmaWRkbGluZyB0byBnZXQgdGhpbmdzIHdvcmtpbmcKKworIGZvciBvcGVuYnNkIHRvby4gVGhpcyBzaG91bGQgcmVhbGx5IGJlIHJld29ya2VkIHRvIHVzZSB0aGUKKyB0Y3AtbWliL3VkcC1taWIvZGF0YV9hY2Nlc3MgZ2l0LXN2bi1pZDoKKworIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzogZml4IHRjcCBzdGF0ZXMgZm9yIGRyYWdvbmZseWJzZAorICAgICAgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTU1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzogZml4IHRjcCBzdGF0ZXMgZm9yIGRyYWdvbmZseWJzZAorICAgICAgZ2l0LXN2bi1pZDoKKworCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9taWJJSS5oOiBlbmFibGUgbmV3IHRjcC91ZHAgbWlicyBmb3Igc29sYXJpcworICAgICAgZ2l0LXN2bi1pZDoKKworCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQ2hhbmdlczogVjUuNyAtPiBWNS43LjEucHJlMQorCisyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9zbm1wZC5jOiBmaXggQysrIGNvbW1lbnRzCisKKworMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCisgICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwKKyAgICAgICBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKKyAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIAorICAgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIAorICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06IFZlcnNpb24gbnVtYmVyIHVwZGF0ZToKKworIDUuNy4xLnByZTEKKworMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogTWFrZWZpbGUudG9wOiB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjEucHJlMQorCisKKzIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IGNmNGNjZTRjMTg5Y2Y0N2Y0YzQ4OWRiNDNiN2ZhNTEwZjg5MDZhMWEgTWVyZ2U6IGRmOTFhOWYKKworIDkzZTk3ZGMgQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgTW9uCisgQXVnIDggMjI6MTU6MjggMjAxMSArMDEwMAorCisyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CisKKyAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNi1wYXRjaGVzJyBpbnRvCisKKyBWNS02LXBhdGNoZXMKKworMjAxMS0wOC0wOCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorCisgICAqICB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLCB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsIAorICAgICAgd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwgCisgICAgICB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgCisgICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIAorICAgICAgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjogRGVmaW5lCisKKyBfQklORF9UT19DVVJSRU5UX1ZDTElCU19WRVJTSU9OIHRva2VuIChhcyBwZXIgQWxleCcgYnVpbGQKKyBpbnN0cnVjdGlvbnMpCisKKzIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IGRmMTZkYzIyMjFlOTkzZGQzYzY2NjUwZDVlODcyNTc3ZmZlNmMwMWIgTWVyZ2U6IDcxNGJjODIKKworIDhlNWEyOGQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBNb24gQXVnIDggMTM6NTY6NDMgMjAxMSAtMDcwMAorCisyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCBmZmEwNWIwNTFhYzNlMmIxOTcxOTVhOTk4OWNjN2E5MWZlOGQ5MjgyIEF1dGhvcjogV2VzCisKKyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIE1vbiBBdWcgOCAxMzo1NTozOAorIDIwMTEgLTA3MDAKKworMjAxMS0wOC0wOCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgorCisgICAqIDogY29tbWl0IDcxNGJjODJmYTAxZTIxYTM2NTU4MjQ5NjNmYTU0ZTliODA0MmZmYjAgTWVyZ2U6IDZmZThmZTUKKworIDNlZjFkYjUgQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgTW9uCisgQXVnIDggMjE6MjE6NDYgMjAxMSArMDEwMAorCisyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CisKKyAgICogOiBjb21taXQgYjQ1MTYwN2RjYTAxNWMxMTFlOTZmZGZlYjJkZGIwNjYxZmI0ZjcyNCBBdXRob3I6IERhdmUKKworIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgTW9uIEF1ZyA4IDIxOjIwOjMyIDIwMTEKKyArMDEwMAorCisyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCA2ZmU4ZmU1Mjk0YTQ1YmM3ZTRlYTM3NTFhMWFkN2FhNDdiNWNhYmIyIE1lcmdlOiAzNjRmOGZmCisKKyBmNjlhYmUzIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZworIDggMjI6MDI6MzggMjAxMSArMDIwMAorCisyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCBjOTQ4MTMwNDRhNGM0YTYwOGU5OGU4MDIyMzA3NWM2ZmFmMDRlZTExIEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcgOCAyMTo1NjoxNSAyMDExICswMjAwCisKKzIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDM2NGY4ZmZhZWI5MGI0ZWIwMTY1ZmM4NTU2ODhjZDA2MjY2MzI3OTQgTWVyZ2U6IDMyODcyOTUKKworIDdhYmI5MjYgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBNb24gQXVnIDggMTE6MjQ6MjYgMjAxMSAtMDcwMAorCisyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS02LXBhdGNoZXMnIGludG8KKworIFY1LTYtcGF0Y2hlcworCisyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGRpc3BsYXkgdGhlIGJyYW5jaCB3ZSdsbCBjb21taXQgdG8KKworCisyMDExLTA4LTA4ICBWbGFkaW1pciBLb25kcmF0aWV2IDx3dWxmMjAwMUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzM4NjYzMzoKKworIGZyb20gd3VsZjIwMDE6IGZpeCBpbnRlZ2VyIG92ZXJmbG93IGluIGRpc2sgcGVyY2VudCBjYWxjdWxhdGlvbnMgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKzIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDg0YTc3NWQwNTU3ZmVhOTc1NzBlNDE3MTVhMzE2NDk3MGI0YzAzYTIgTWVyZ2U6IDZmZmYxYzEKKworIGQzNzNjNGYgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnCisgOCAyMDoxMjozMiAyMDExICswMjAwCisKKzIwMTEtMDgtMDggIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvYWdlbnRfdHJhcC5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzg3MTM5OiBmcm9tCisKKyB5YWJlcmF1bmV5YTogQXZvaWQgc2VnZmF1bHQgaWYgdHJhcHNlc3MgdHJhbnNwb3J0IGVsZW1lbnQgY2FudCBiZQorIHBhcnNlZCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBuc3NmcGF0Y2hhcHBseTogc3BsaXQgdGhlCisKKyBkaXNwbGF5ZWQgZ2l0IGNvbW1pdCBjb21tYW5kIGludG8gbXVsdGlwbGUgc2VnbWVudHMKKworMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMzODY5NjE6CisKKyBNYWtlIFNOTVAgR0VUIHdvcmsgaW4gYW4gQWdlbnRYIHN1YmFnZW50IGlmIHdyaXRlIHN1cHBvcnQgaXMKKyBkaXNhYmxlZCB2aWEgTkVUU05NUF9OT19XUklURV9TVVBQT1JUIChNYXJrIFJ1c2spLgorCisyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBzbm1wbGliL21pYi5jOiBDSEFOR0VTOiBzbm1wbGliOiBGaXggYSBjcmFzaCB0aGF0IGNvdWxkIGJlCisKKyB0cmlnZ2VyZWQgYnkgY2FsbGluZyBfbWliaW5kZXhfYWRkKCkgd2l0aCB0aGUgc2Vjb25kIGFyZ3VtZW50IG5vdAorIGVxdWFsIHRvIC0xLgorCisyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCA2ZmZmMWMxYWU1MWIwNmM5ZDgwZmFmMTUzNzNhOTYzZDE3M2YxNGU4IE1lcmdlOiA4MzdjNTJlCisKKyA4Y2M5MDA0IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgTW9uIEF1ZyA4IDEwOjU4OjU5IDIwMTEgLTA3MDAKKworMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgOGNhN2ZmMWU2OTJjYWVjNDE4NmI3ODhjOWFlMmQyN2JlMjEzMjkwZiBBdXRob3I6IFdlcworCisgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBNb24gQXVnIDggMTA6MzM6NTYKKyAyMDExIC0wNzAwCisKKzIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTQtcGF0Y2hlcycgaW50bworCisgVjUtNC1wYXRjaGVzCisKKzIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IGI4ZjUyOWNiYTI3YzAxMTRiNGNiNzM0MGNmZDQ0OTUwNGZhMDc1MDYgTWVyZ2U6IDA4MjJmMmQKKworIDU1NmU5MzggQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBNb24gQXVnIDggMTA6MDU6MzYgMjAxMSAtMDcwMAorCisyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGZpeCBmdW5jdGlvbiBuYW1lIHR5cG8KKworCisyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCAyOTg4MmEwNzhhOTU5YTBmNzhiMDNlMDE5NjhmMWQxN2I3ZjZhMjk5IE1lcmdlOiA1ZTliZDJmCisKKyAwNDA5YzBhIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgTW9uIEF1ZyA4IDEwOjAzOjM0IDIwMTEgLTA3MDAKKworMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBtYW51YWwgbWVyZ2Ugb2YgcHVsbC9wdXNoCisKKworMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBtYWtlIG5zcHVsbC9uc3B1c2ggY2hlY2sgZm9yIGEKKworIGNsZWFuIHJlcG8KKworMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBuZXcgZnVuY3Rpb24gIm5zbWFrZWFsbCIgdG8gdGVzdAorCisgYnVpbGRpbmcgb24gZXZlcnkgYnJhbmNoCisKKzIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogZGVmYXVsdCB0byBtZXJnZQorCisKKzIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTctcGF0Y2hlcycgaW50bworCisgVjUtNy1wYXRjaGVzCisKKzIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOiBDSEFOR0VTOiBXaW5kb3dzOiBBdm9pZCB0aGF0IGlmCisKKyB0aGUgTmV0LVNOTVAgUGVybCBtb2R1bGVzIGhhdmUgYmVlbiBidWlsdCB3aXRoIGFub3RoZXIgdmVyc2lvbiBvZgorIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIHRoYW4gQWN0aXZlUGVybCB0aGF0IHVzaW5nIG9uZSBvZiB0aGVzZSBQZXJsCisgbW9kdWxlcyB0cmlnZ2VycyBhICJGcmVlIHRvIHdyb25nIHBvb2wiIGNyYXNoLiBUaGlzIHJlZ3Jlc3Npb24gd2FzCisgY2F1c2VkIGJ5IGNvbW1pdCAzYjE0YzU5Y2Y4Mjc4ZDQxMDIwN2ZmNDJkZWJkYTI2MzY0MjZhNDY4ICh0aGUKKyBuZXRzbm1wX2ZyZWUoKSBpbnRvIFNOTVBfRlJFRSgpIGNoYW5nZXMgaW4gdGhlICoueHMgZmlsZXMpLgorCisyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCBlMTA5NTM5OTMwNzAzY2IzMDUyZDUyNDFiMThhYzZmYzA2MmZhYWNhIE1lcmdlOiAwYzliNmNiCisKKyBlNDZiMTcwIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZworIDggMTg6MzQ6MTEgMjAxMSArMDIwMAorCisyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBzbm1wbGliL21pYi5jOiBDSEFOR0VTOiBzbm1wbGliOiBGaXggYSBjcmFzaCB0aGF0IGNvdWxkIGJlCisKKyB0cmlnZ2VyZWQgYnkgY2FsbGluZyBfbWliaW5kZXhfYWRkKCkgd2l0aCB0aGUgc2Vjb25kIGFyZ3VtZW50IG5vdAorIGVxdWFsIHRvIC0xLgorCisyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCA3ZjQyZDBkOTMzMjA0ODQxNTIyNzE0MjdjYzk4MDhjYmRhNDliYmQwIEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcgOCAwOTo1MDo1MSAyMDExICswMjAwCisKKzIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDBjOWI2Y2JlOWRiZTJlYzUyMTdhOTViNjc4MWZkN2RjMWY2ZWJkYTcgTWVyZ2U6IGZhNmNlZjUKKworIDk2MzMyMGYgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnCisgOCAxODoxNDozNiAyMDExICswMjAwCisKKzIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IGEzYjg2NTRhMjMyYzU2M2JjOTdjYzk5MjVjZDk4NTkwYTMwYzViYzUgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZyA4IDE3OjI0OjE4IDIwMTEgKzAyMDAKKworMjAxMS0wOC0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogOiBjb21taXQgZmE2Y2VmNWNhOTFkZjNhMGIwMzQ1NWI2ODU1OWQyYmVlMjQ4MTAxYyBNZXJnZTogZjVmZTUzNgorCisgOGFkZDBkYSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFN1biBBdWcKKyA3IDEwOjE4OjU0IDIwMTEgKzAyMDAKKworMjAxMS0wOC0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogOiBjb21taXQgYTBkZDNjYWYyNTkyNmU0MzQ2NTcxOGJmNDE3YTQ2NGMyZmIzNjM2NiBBdXRob3I6IEJhcnQgVmFuCisKKyBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTdW4gQXVnIDcgMTA6MTc6MDEgMjAxMSArMDIwMAorCisyMDExLTA4LTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiAzMiBpcyB0b28gbGltaXRlZCBmb3IKKworIGJpZ2dlciB0YWJsZXM7IGluY3JlYXNlIHRoZSBtYXggbXNnIGNvdW50IHRvIDEyOAorCisyMDExLTA4LTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG1ha2Ugcm9sbHVwIGFuZCBzeW5jIHN1cHBvcnQKKworIC0tcmViYXNlIGFuZCBjaGFuZ2UgdGhlIGRlZmF1bHQgYmFjayB0byBtZXJnZQorCisyMDExLTA4LTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS00LXBhdGNoZXMnIGludG8KKworIFY1LTQtcGF0Y2hlcworCisyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBSRUFETUUud2luMzI6IENIQU5HRVM6IFdpbjMyOiBEb2N1bWVudGVkIGhvdyB0byB1c2UgYnVpbGQuYmF0IHdpdGgKKworIE9wZW5TU0wgZW5hYmxlZAorCisyMDExLTA3LTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBSRUFETUUud2luMzI6IENIQU5HRVM6IFdpbmRvd3M6IFJlbW92ZSBvdXRkYXRlZCBpbnN0cnVjdGlvbnMgYWJvdXQKKworIGVkaXRpbmcgd2luMzJcbGlic25tcF9kbGxcbGlic25tcC5kZWYgZnJvbSBSRUFETUUud2luMzIKKworMjAxMS0wNy0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogUkVBRE1FLndpbjMyOiBDSEFOR0VTOiBXaW4zMjogRG9jdW1lbnQgaG93IHRvIGJ1aWxkIDY0LWJpdAorCisgZXhlY3V0YWJsZXMgZm9yIHRoZSB4NjQvYW1kNjQgYXJjaGl0ZWN0dXJlCisKKzIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IGY1ZmU1MzZlOGZkNmM0OGZlMjQzZGVjZDMxZmFjOWNmMWM5MmY0Y2MgTWVyZ2U6IDc4NTBlYTEKKworIDgwOTI4YTggQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCisgNSAxNToxMzoyNyAyMDExICswMjAwCisKKzIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDgwOTI4YTg5MDljZmFiMzdmMDFiMzlhMDcxYTNlOGFkODU5NTYyMjIgTWVyZ2U6IGYxNmEwOTQKKworIDBkYmM4NjkgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCisgNSAxMzo1NzozMCAyMDExICswMjAwCisKKzIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDBkYmM4NjlmZWMwN2Q4ZTkwZGJkMWM5NTQ5M2VlN2NiYzYyM2M5NWMgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZyA1IDEyOjQwOjMxIDIwMTEgKzAyMDAKKworMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogQWRkCisKKyBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5kZWYgYW5kIHBlcmwvU05NUC90CisKKzIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDg2YzFlMmI5Njc5ZmVjMmNkNzk5YmE3NjAwNWMzZDYwZTlkNDc2MzQgTWVyZ2U6IGJjZDg2MzUKKworIGYxNmEwOTQgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCisgNSAxMjoyMDo1MCAyMDExICswMjAwCisKKzIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDJmOGQ0ZjU3OTZjYmMxYzdlOTY3YWNkYWE4MDE5YjI0ZjE1MjBhMzYgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZyA1IDEyOjAyOjUxIDIwMTEgKzAyMDAKKworMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogc25tcGxpYi9wYXJzZS5jOiBVbmJyZWFrIHRoZSBWNS00LXBhdGNoZXMgLSByZXZlcnQgY29tbWl0CisKKyBkMmM0NzY4YmQyZWZiNDg2NjQ0MzRhODMxNDI1YzJkZGE4NWQ3MTMzIChDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSAorIDMzNjIyMzM6IGZyb20geWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlCisgbm9pc2UpLgorCisyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oOiAKKworIFVuYnJlYWsgdGhlIFY1LTQtcGF0Y2hlcyBicmFuY2ggLSB3YXMgYnJva2VuIGJ5IGNvbW1pdAorIGJmNzE3OGIwYjIyNTg3ZDQzZDFhODBjMjY5Y2QyMTZiZDU5MzAyMTQgKGFnZW50OiBjaGFuZ2UgdHlwZSBvZgorIHNubXBfZW5hYmxlYXV0aGVudHJhcHMgdG8gbG9uZykKKworMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaDogVW5icmVhayB0aGUgVjUtNC1wYXRjaGVzCisKKyBicmFuY2ggLSB3YXMgYnJva2VuIGJ5IGNvbW1pdAorIDBlNjg0MmZlMDgwY2VjODUzYjA4Y2QyMzIzMDE1YWJhYmMzODFjZTEgKENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0gKKyAzMzgzNDQxOiBmcm9tIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YKKyBmcmVlZCBtZW1vcnkpLgorCisyMDExLTA4LTA1ICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBORVdTOiBtaW5vciBORVdTIHBvbGlzaAorCisKKzIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IGJjZDg2MzUwNzEzODIyOTYzZDM3NmVmZjU4MmE5MmY0M2U0MjZkNmMgTWVyZ2U6IDljODEwYTMKKworIDdhMjBmNzEgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCisgNSAxMDoyODo1NSAyMDExICswMjAwCisKKzIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDNhYTk0OWZiZGZjMWE5NGE4MzQwYWQ4YmFmOGIzMTQ3NTZhMGJiOWQgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZyA1IDEwOjI2OjE1IDIwMTEgKzAyMDAKKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgOWM4MTBhM2IzN2I2ODU3M2M0MDMzN2UyNDZlMmZhZjI5OWI3N2QzMSBNZXJnZTogNzFjYjJlOAorCisgNjEwZDYzZiBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgorIFRodSBBdWcgNCAxMDo0MjowOCAyMDExIC0wNzAwCisKKzIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDk0MzkzMGUxZTEyNDM4NWZkOTQ3MzhiNmRjZGEzN2QyOWRjN2FjN2YgQXV0aG9yOiBXZXMKKworIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVGh1IEF1ZyA0IDEwOjQxOjQxCisgMjAxMSAtMDcwMAorCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS00LXBhdGNoZXMnIGludG8KKworIFY1LTQtcGF0Y2hlcworCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCA0ZWRjYjg4ZGFlOGIyZTU5ZGM2ODNlODBkNDE0ZmE3ZWNlYzM2ODg1IE1lcmdlOiA2NWYzZWVmCisKKyAyZGQ5ZWQwIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgVGh1IEF1ZyA0IDEwOjI0OjExIDIwMTEgLTA3MDAKKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNS1wYXRjaGVzJyBpbnRvCisKKyBWNS01LXBhdGNoZXMKKworMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogOiBjb21taXQgYmM1Y2EwM2EwNGFiMTljNjM0YTM0ZDA2MGIwYjE2Yjc0ODRjYjUyMCBNZXJnZTogODhmZGRiNworCisgOTBjMGU3NSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcKKyA0IDE5OjEzOjA3IDIwMTEgKzAyMDAKKworMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXB1c20uYzogc25tcHVzbTogRml4IHJlY2VudGx5CisKKyBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzCisKKzIwMTEtMDgtMDQgIFN0dWFydCBIZW5kZXJzb24gPHQwancyZnUwa21nQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X25ldGJzZC5jOiBDSEFOR0VTOiBvcGVuYnNkOgorCisgUEFUQ0ggMzM1NzkzMjogZnJvbSB0MGp3MmZ1MGttZzogQ2xlYW5pbmcgaW4gbWVtb3J5X25ldGJzZC5jIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBWbGFkaW1pciBLb25kcmF0aWV2IDx3dWxmMjAwMUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYzogQ0hBTkdFUzogYWdlbnQ6CisKKyBQQVRDSCAzMzg2MTQ3OiBmcm9tIHd1bGYyMDAxOiBmaXggVUNELVNOTVAtTUlCOjpkc2tVc2VkIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCA0NzNkN2U1Y2Q0ZDQxMWJiYTIwZWI4NTM1OWQ4NzI4MDYzMzAxY2JkIE1lcmdlOiBhNGU4YjYyCisKKyA4OGZkZGI3IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgVGh1IEF1ZyA0IDA5OjI4OjIyIDIwMTEgLTA3MDAKKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgMjEwMWJiMmQ3YWQ2ZGIwMzhjNzU1YWE5MTkzYzhhY2UwZGJkNGY1OCBBdXRob3I6IFdlcworCisgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUaHUgQXVnIDQgMDk6Mjg6MDYKKyAyMDExIC0wNzAwCisKKzIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIC5naXRpZ25vcmU6IGlnbm9yZSAqLm9yaWcgYW5kICoucmVqCisKKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBoZWxwIG91dHB1dCBkZXNjcmliZXMgcmViYXNlIHZzCisKKyBtZXJnZSBiZXR0ZXIKKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgZjEyNmExN2M2YTMwNjM0NTVhNTExOTQwYjAyMzA0N2FiZDliNDhlZSBNZXJnZTogYWQ3NjVmNAorCisgNzdhNDc4NCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgorIFRodSBBdWcgNCAwOToyNToxNiAyMDExIC0wNzAwCisKKzIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDQ1MmUxNzA3ZjIwOWVjNDVlN2M3ZjJhMzA0MGVmNTk1ZmI5ZDFhZjYgTWVyZ2U6IGRjNzU1YTYKKworIGIzNzJlNWEgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBUaHUgQXVnIDQgMDk6MjU6MDMgMjAxMSAtMDcwMAorCisyMDExLTA4LTA0ICBTdHVhcnQgSGVuZGVyc29uIDx0MGp3MmZ1MGttZ0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaCwgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmgsIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZDQuaCwgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkNS5oOiBDSEFOR0VTOiBvcGVuYnNkOiBQQVRDSAorICAgICAgMzM1NzkyNzoKKworIGZyb20gdDBqdzJmdTBrbWc6IFJlY29nbmlzZSBvcGVuYnNkNSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBmaXggd2hlcmUgYXJndW1lbnRzIGFyZSBzZXQKKworCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHNwbGl0IG5zc2ZwYXRjaGFwcGx5IGludG8gdHdvCisKKyBwYXJ0czogYXBwbHkgYW5kIGNvbW1pdGluZworCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHBhdGNoIHVzaW5nIC1OCisKKworMjAxMS0wOC0wNCAgRGF2aWQgQXJub2xkIDxkamFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBtYW4vZGVmYXVsdF9zdG9yZS4zLmJvdCwgbWFuL2VuY29kZV9rZXljaGFuZ2UuMS5kZWYsIAorICAgICAgbWFuL2ZpeHByb2MuMS5kZWYsIG1hbi9taWIyYy5jb25mLjUuaW4sIG1hbi9uZXQtc25tcC1jb25maWcuMS5kZWYsCisgICAgICAgbWFuL25ldHNubXBfYWdlbnRfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9taWJfYXBpLjMuZGVmLCAKKyAgICAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wYnVsa2dldC4xLmRlZiwKKyAgICAgIG1hbi9zbm1wYnVsa3dhbGsuMS5kZWYsICBtYW4vc25tcGNtZC4xLmRlZiwgbWFuL3NubXBjb25mLjEuZGVmLAorICAgICAgbWFuL3NubXBkLjguZGVmLCAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZiwgCisgICAgICBtYW4vc25tcGRlbHRhLjEuZGVmLCBtYW4vc25tcGRmLjEuZGVmLCBtYW4vc25tcGdldC4xLmRlZiwgCisgICAgICBtYW4vc25tcGdldG5leHQuMS5kZWYsIG1hbi9zbm1wbmV0c3RhdC4xLmRlZiwgbWFuL3NubXBzZXQuMS5kZWYsIAorICAgICAgbWFuL3NubXBzdGF0dXMuMS5kZWYsIG1hbi9zbm1wdGFibGUuMS5kZWYsIG1hbi9zbm1wdGVzdC4xLmRlZiwgCisgICAgICBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwgbWFuL3NubXB0cmFwLjEuZGVmLCBtYW4vc25tcHRyYXBkLjguZGVmLCAKKyAgICAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiwgbWFuL3NubXB1c20uMS5kZWYsIG1hbi9zbm1wdmFjbS4xLmRlZiwgCisgICAgICBtYW4vc25tcHdhbGsuMS5kZWY6IENIQU5HRVM6IG1hbjogUEFUQ0ggMzMxMjg2MTogZnJvbSBkamE6IE1hbgorICAgICAgcGFnZXMKKworIGh5cGhlbi12cy1taW51cyBjbGVhbnVwIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogRGV0ZWN0IChhbmQgcmVqZWN0KSBPcGVuU1NMCisKKyAxLjAuMAorCisyMDExLTA4LTA0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogQ29tbWFuZC1saW5lIG9wdGlvbnMgZm9yIHNpbGVudAorCisgaW5zdGFsbAorCisyMDExLTA4LTA0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogRW5zdXJlIFdpbmRvd3MgcGFja2FnZQorCisgdW5pbnN0YWxscyBjb21wbGV0ZWx5LgorCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCA4MWM2M2ZiNWM1ZTRhYmI5YzI5YWNhODliZjlkNjk0NDEwMDg2ZTk3IE1lcmdlOiA0YTY5MjBhCisKKyBkYzc1NWE2IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgVGh1IEF1ZyA0IDA4OjMzOjM0IDIwMTEgLTA3MDAKKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOiBhZGRlZCBzcGFjaW5nIHRvIG1hdGNoIHRoZSBsYXRlciBicmFuY2hlcworCisKKzIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogbWFudWFsIG1lcmdlCisKKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOiByZW1vdmVkIGFjY2lkZW50aWFsbHkgZHVwbGljYXRlZCBjb2RlCisKKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBtYW51YWwgbWVyZ2UKKworCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IG1hbnVhbCBtZXJnZQorCisKKzIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzYyMjMzOiBmcm9tCisKKyB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUgbm9pc2UgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKzIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLCAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOiBDSEFOR0VTOiBmcmVlYnNkOiBQQVRDSCAzMzYzMzA4OgorICAgICAgZnJvbQorCisgeWFiZXJhdW5leWE6IEZpeCBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDkueCB3aXRoIHJlY2VudCBoZWFkZXIKKyBzaHVmZmxpbmcgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKzIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWxsb3cgbnNyb2xsdXAgdG8gdGFrZSBhIC0tbWVyZ2UKKworIGZsYWcgZm9yIG1lcmdpbmcgaW5zdGVhZCBvZiByZWJhc2luZworCisyMDExLTA4LTA0ICBTYWNoaW4gU3VyZW5kcmFuIDxzYWNoaW5zdXJlbmRyYW5AdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAorICAgICAgc25tcGxpYi9zbm1wdXNtLmM6IENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0ggMzM4MzQ0MTogZnJvbQorCisgc2FjaGluc3VyZW5kcmFuOiBGaXggY3Jhc2ggb24gNS40LjQgZHVlIHRvIGFjY2VzcyBvZiBmcmVlZCBtZW1vcnkgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKzIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogTWFrZWZpbGUuaW46IENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMjg6IGZyb20geWFiZXJhdW5leWE6CisKKyBBZGQgRnJlZUJTRCA5LnggdG8gc3VwcG9ydGVkIE9TZXMgbGlzdCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBzbm1wbGliL3BhcnNlLmM6IENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzNjIyMzM6IGZyb20KKworIHlhYmVyYXVuZXlhOiBNdXRlIHVubmVjZXNzYXJ5IGNhbm5vdCBmaW5kIG1vZHVsZSBub2lzZSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsIAorICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6IENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMDg6CisgICAgICBmcm9tCisKKyB5YWJlcmF1bmV5YTogRml4IGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgOS54IHdpdGggcmVjZW50IGhlYWRlcgorIHNodWZmbGluZyBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhbGxvdyBuc3JvbGx1cCB0byB0YWtlIGEgLS1tZXJnZQorCisgZmxhZyBmb3IgbWVyZ2luZyBpbnN0ZWFkIG9mIHJlYmFzaW5nCisKKzIwMTEtMDgtMDQgIFNhY2hpbiBTdXJlbmRyYW4gPHNhY2hpbnN1cmVuZHJhbkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywgCisgICAgICBzbm1wbGliL3NubXB1c20uYzogQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tCisKKyBzYWNoaW5zdXJlbmRyYW46IEZpeCBjcmFzaCBvbiA1LjQuNCBkdWUgdG8gYWNjZXNzIG9mIGZyZWVkIG1lbW9yeSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBNYWtlZmlsZS5pbjogQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMyODogZnJvbSB5YWJlcmF1bmV5YToKKworIEFkZCBGcmVlQlNEIDkueCB0byBzdXBwb3J0ZWQgT1NlcyBsaXN0IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM2MjIzMzogZnJvbQorCisgeWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlIG5vaXNlIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgCisgICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczogQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMwODoKKyAgICAgIGZyb20KKworIHlhYmVyYXVuZXlhOiBGaXggY29tcGlsYXRpb24gb24gRnJlZUJTRCA5Lnggd2l0aCByZWNlbnQgaGVhZGVyCisgc2h1ZmZsaW5nIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFsbG93IG5zcm9sbHVwIHRvIHRha2UgYSAtLW1lcmdlCisKKyBmbGFnIGZvciBtZXJnaW5nIGluc3RlYWQgb2YgcmViYXNpbmcKKworMjAxMS0wOC0wNCAgU2FjaGluIFN1cmVuZHJhbiA8c2FjaGluc3VyZW5kcmFuQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAKKyAgICAgIHNubXBsaWIvc25tcHVzbS5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIIDMzODM0NDE6IGZyb20KKworIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM2MjIzMzogZnJvbQorCisgeWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlIG5vaXNlIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFsbG93IG5zcm9sbHVwIHRvIHRha2UgYSAtLW1lcmdlCisKKyBmbGFnIGZvciBtZXJnaW5nIGluc3RlYWQgb2YgcmViYXNpbmcKKworMjAxMS0wOC0wNCAgU2FjaGluIFN1cmVuZHJhbiA8c2FjaGluc3VyZW5kcmFuQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAKKyAgICAgIHNubXBsaWIvc25tcHVzbS5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIIDMzODM0NDE6IGZyb20KKworIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZnJlZWJzZC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBzbm1wbGliL2tleXRvb2xzLmMsCisgICAgICBzbm1wbGliL3NjYXBpLmM6CisKKyBDSEFOR0VTOiBidWlsZGluZzogUEFUQ0ggMzM4Mzk1MTogZnJvbSB5YWJlcmF1bmV5YTogRml4IC1XdW51c2VkCisgY29tcGlsZSB3YXJuaW5ncyB3aXRoIEZyZWVCU0QvTmV0QlNEIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZnJlZWJzZC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBzbm1wbGliL2tleXRvb2xzLmMsCisgICAgICBzbm1wbGliL3NjYXBpLmM6CisKKyBDSEFOR0VTOiBidWlsZGluZzogUEFUQ0ggMzM4Mzk1MTogZnJvbSB5YWJlcmF1bmV5YTogRml4IC1XdW51c2VkCisgY29tcGlsZSB3YXJuaW5ncyB3aXRoIEZyZWVCU0QvTmV0QlNEIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCBlODc4YWJiZGIxODA4ZWY4M2UwYTgwNzQ1MzZmYjU0ZTEzMjE5YThiIE1lcmdlOiA0MDNkZTQyCisKKyA4NzhmYmY0IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgVGh1IEF1ZyA0IDA3OjU1OjAwIDIwMTEgLTA3MDAKKworMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgMjUwYWZhMDY4OTJmZDg5N2FjMzFlMzgzNmE3ZmZjOWUyYjRjZjdiOSBNZXJnZTogMmMxNGMxYworCisgM2FmYzVlMCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgorIFRodSBBdWcgNCAwNzo1MTozMyAyMDExIC0wNzAwCisKKzIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDU3OGNkN2NjZTM1MWFlOGQ5MDRlYzNkODBiZTliYTZkMWQ0OGE3MTIgTWVyZ2U6IDI1OTg4YmUKKworIGYzYmM1NTEgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBUaHUgQXVnIDQgMDc6NTA6NTYgMjAxMSAtMDcwMAorCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGF1dG9jb25mCisKKworMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnM6IENIQU5HRVM6IGJ1aWxkaW5nOiBQQVRDSAorCisgMzM4Mzk0OTogZnJvbSB5YWJlcmF1bmV5YTogRml4IGF1dG9jb25mIHRlc3RzIGZvciBzeXMvbWJ1Zi5oIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHByb21wdCBmb3IgcGF0Y2ggYW5kIGFuIGFyZWEsIGFuZAorCisgdXNlIHRoZSBwcm9wZXIgQ0hBTkdFUyBsaW5lIGZvcm1hdAorCisyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IFVzZSBmZXRjaCAtLWFsbCBhbmQgcmViYXNlIGFzCisKKyBzdWdnZXN0ZWQgYnkgQmFydCBmb3Igc3BlZWQgaW1wcm92ZW1lbnRzCisKKzIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IGQ2YTFhODllNmY2NDg5NTFhOWI4MzE5MzJkM2NjMjMwODIxZjJkMzcgTWVyZ2U6IGRjYjcxMmYKKworIDg3MmUwMTMgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCisgNCAxMjowNjoxOCAyMDExICswMjAwCisKKzIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDQ0OTY5YjRlNTdjMjcxOTRlNWJkMzU3YmM0NTI3NWZlYjg2OTVkMjIgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEp1bCA4IDIwOjUyOjI1IDIwMTEgKzAyMDAKKworMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6IENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IEludm9rZQorCisgU25tcFV0aWxPaWRGcmVlKCkgYmVmb3JlIFNubXBVdGlsT2lkQ3B5KCkuIEl0J3Mgbm90IGNsZWFyIHlldCB3aHkKKyB0aGUgb3JpZ2luYWwgY29kZSBkaWQgbm90IG1ha2Ugc25tcHdhbGsgdHJpZ2dlciBhIG1lbW9yeSBsZWFrLgorCisyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCBkY2I3MTJmZmM4NmIzMzU4MzAwMGVmNGFlOWE1MWNlZDI1Y2QxNWJmIE1lcmdlOiBlODVjZmE1CisKKyA5ODYyM2VmIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZworIDQgMTE6MzY6MTcgMjAxMSArMDIwMAorCisyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCA4YTAxZWM2NDIzZDQwMGM0YTEzY2NhYzY4YTM3OTFkMDIxOGEwODg1IEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcgNCAxMToxOToxNyAyMDExICswMjAwCisKKzIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IGU4NWNmYTU5OWIyM2I3NmQ5NzkxM2M5NmI1ZDcwM2JmZjZiYTQ5NDQgTWVyZ2U6IGIwNTZlZTYKKworIGUyMWVlZjIgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCisgNCAwODo0NDo0MyAyMDExICswMjAwCisKKzIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzogQ0hBTkdFUzogYWdlbnQ6CisKKyBBdm9pZCB0aGF0IGEgTUlCIHdhbGsgb24gdGhlIGhvc3QgcmVzb3VyY2VzIE1JQiB0cmlnZ2VycyBhIGNyYXNoIG9uCisgRmVkb3JhIDE1CisKKzIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IGIwNTZlZTZlYjUzOTA5YWQwNGYxNmVjMjZkMjY5MGQ3YTA4MzE5MmEgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZyA0IDA3OjU5OjA0IDIwMTEgKzAyMDAKKworMjAxMS0wOC0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgCisgICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2MKKyAgICAgICBlc3MuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgCisgICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzX2xpbnV4LmMsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2VzcworICAgICAgIC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCBhZ2VudC9zbm1wX2FnZW50LmMsIAorICAgICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXB0bHMuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIAorICAgICAgcGVybC9TTk1QL1NOTVAueHMsIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMsIAorICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYywgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAorICAgICAgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgc25tcGxpYi9zbm1wdXNtLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYiwgc25tcGQ6CisKKyBwZXJsOiBFbGltaW5hdGUgZGVhZCB2YXJpYWJsZXMKKworMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgYWU4ZTNlY2QyZGY0Y2YzNzYyNTk0NGFkZWQxZGZlNDczNWQ0NGVlYSBNZXJnZTogNzMxODdjZQorCisgOTMzNWUxOSBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgorIFdlZCBBdWcgMyAxNDozNzozNiAyMDExIC0wNzAwCisKKzIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDc5NGY5YTY5ZDdlYjY0MjI2ODIwMGIwYTRiMTk5MTUxZGVmNjZlZDAgQXV0aG9yOiBXZXMKKworIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgV2VkIEF1ZyAzIDE0OjM2OjI1CisgMjAxMSAtMDcwMAorCisyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgY29tbWVudAorCisKKzIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYXQgZW5kIG9mIG5zcm9sbHVwIG1lbnRpb24gdGhhdAorCisgbm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJ1biBuc3N5bmMKKworMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhIG5ldyBuc3N5bmMoKSBmdW5jdGlvbiBmb3IKKworIHB1c2gvcHVsbGluZyBhY3RpdmUgYnJhbmNoZXMKKworMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGNvbW1lbnQKKworCisyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGF0IGVuZCBvZiBuc3JvbGx1cCBtZW50aW9uIHRoYXQKKworIG5vdyB3b3VsZCBiZSBhIGdvb2QgdGltZSB0byBydW4gbnNzeW5jCisKKzIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYSBuZXcgbnNzeW5jKCkgZnVuY3Rpb24gZm9yCisKKyBwdXNoL3B1bGxpbmcgYWN0aXZlIGJyYW5jaGVzCisKKzIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYXQgZW5kIG9mIG5zcm9sbHVwIG1lbnRpb24gdGhhdAorCisgbm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJ1biBuc3N5bmMKKworMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhIG5ldyBuc3N5bmMoKSBmdW5jdGlvbiBmb3IKKworIHB1c2gvcHVsbGluZyBhY3RpdmUgYnJhbmNoZXMKKworMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGNvbW1lbnQKKworCisyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGF0IGVuZCBvZiBuc3JvbGx1cCBtZW50aW9uIHRoYXQKKworIG5vdyB3b3VsZCBiZSBhIGdvb2QgdGltZSB0byBydW4gbnNzeW5jCisKKzIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYSBuZXcgbnNzeW5jKCkgZnVuY3Rpb24gZm9yCisKKyBwdXNoL3B1bGxpbmcgYWN0aXZlIGJyYW5jaGVzCisKKzIwMTEtMDgtMDMgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi5oOiBSZWVuYWJsZSBJUC1NSUI6OmlwRGVmYXVsdFJvdXRlclRhYmxlCisgICAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworCisyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IEEgbmV3IGZ1bmN0aW9uOiBuc3NmcGF0Y2hhcHBseQorCisgdGhhdCBhdXRvLXB1bGxzIGdpdCBjb21tYW5kIGxpbmUgaW5mbyBmcm9tIFNGCisKKzIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOiBhZGRlZCB2YXJpYWJsZXMgbmFtZXMgdG8KKworIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCisKKzIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOiBXb3JkaW5nIGNoYW5nZXMgdG8KKworIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCisKKzIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtVTY0Lm0yaTogQWRkZWQKKworIHRoZSBtaXNzaW5nIFU2NCBtMmkgZmlsZQorCisyMDExLTA4LTAzICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqICBhZ2VudC9taWJncm91cC9pcC1taWIuaDogUmVlbmFibGUgSVAtTUlCOjppcERlZmF1bHRSb3V0ZXJUYWJsZQorICAgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKworMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBBIG5ldyBmdW5jdGlvbjogbnNzZnBhdGNoYXBwbHkKKworIHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgorCisyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaTogYWRkZWQgdmFyaWFibGVzIG5hbWVzIHRvCisKKyB0aGUgZ2VuZXJhdGVkIGVycm9yIG1lc3NhZ2VzLgorCisyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzogV29yZGluZyBjaGFuZ2VzIHRvCisKKyBoZWxwIGRlc2NyaWJlIGNvbnRleHRzIGJldHRlcgorCisyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LVU2NC5tMmk6IEFkZGVkCisKKyB0aGUgbWlzc2luZyBVNjQgbTJpIGZpbGUKKworMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBBIG5ldyBmdW5jdGlvbjogbnNzZnBhdGNoYXBwbHkKKworIHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgorCisyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaTogYWRkZWQgdmFyaWFibGVzIG5hbWVzIHRvCisKKyB0aGUgZ2VuZXJhdGVkIGVycm9yIG1lc3NhZ2VzLgorCisyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzogV29yZGluZyBjaGFuZ2VzIHRvCisKKyBoZWxwIGRlc2NyaWJlIGNvbnRleHRzIGJldHRlcgorCisyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LVU2NC5tMmk6IEFkZGVkCisKKyB0aGUgbWlzc2luZyBVNjQgbTJpIGZpbGUKKworMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBBIG5ldyBmdW5jdGlvbjogbnNzZnBhdGNoYXBwbHkKKworIHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgorCisyMDExLTA3LTE4ICBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KKworICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmM6IGFnZW50OiBjaGFuZ2UKKworIHR5cGUgb2Ygc25tcF9lbmFibGVhdXRoZW50cmFwcyB0byBsb25nIFR5cGUgb2Ygc25tcF9lbmFibGVhdXRoZW50cmFwcyB2YXJpYWJsZSBpcyBjaGFuZ2VkIGZyb20gaW50IHRvIGxvbmcuCisgVGhpcyBmaXhlcyB0aGUgYnVnIHdpdGggd3JpdGluZyB0byBzbm1wRW5hYmxlQXV0aGVuVHJhcHMgaWYgc2VydmVyCisgaXMgY29tcGlsZWQgZm9yIDY0Yml0IChzbm1wc2V0IHJlcG9ydHMgd3JvbmcgbGVuZ3RoKS4gVGhpcyBidWcgd2FzCisgaW50cm9kdWNlZCBhIGxvbmcgdGltZSBhZ28gKGJ5IGZhZWVjZDAgY29tbWl0KS4gIEFjdHVhbGx5IHRoaXMgaXMgYSAnbGVzcyBlZmZvcnQnIHR5cGUgb2YgZml4IGJ1dCBJIHdvbmRlciB3aHkgd2UKKyBuZWVkIGEgbG9uZyB0byBzdG9yZSBhbiBJTlRFR0VSIGluIHRoZSBmaXJzdCBwbGFjZT8gU2lnbmVkLW9mZi1ieTogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+IFNpZ25lZC1vZmYtYnk6IFdlcworIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKzIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOiBhZGRlZCB2YXJpYWJsZXMgbmFtZXMgdG8KKworIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCisKKzIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOiBXb3JkaW5nIGNoYW5nZXMgdG8KKworIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCisKKzIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtVTY0Lm0yaTogQWRkZWQKKworIHRoZSBtaXNzaW5nIFU2NCBtMmkgZmlsZQorCisyMDExLTA4LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCA2YWQ3ZTI4ZmY5ZTVlNGViYzEzNThlZTM5Y2M5Nzk2YTQ0YTFiZWU3IE1lcmdlOiBmMjgzMmUzCisKKyAxZTE1NGNlIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgV2VkIEF1ZworIDMgMTk6MTU6MjQgMjAxMSArMDIwMAorCisyMDExLTA4LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCA2MWIxNzhmMWVlODk1MmFhMDNhYTNiMWJhNTFmNGE2NjU1ZTQ3ZjAxIEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFdlZCBBdWcgMyAxODowOTo0NyAyMDExICswMjAwCisKKzIwMTEtMDgtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDogV2hpdGVzcGFjZS1vbmx5IGNoYW5nZTogZml4IGluZGVudGF0aW9uCisKKyBvZiBhbiAjaW5jbHVkZSBkaXJlY3RpdmUKKworMjAxMS0wOC0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogcGVybC9OZXRTTk1QLnhzOiBDSEFOR0VTOiBQZXJsOiBSZW1vdmUgZmlsZSBwZXJsL05ldFNOTVAueHMKKworIGJlY2F1c2UgaXQgYnJlYWtzIHRoZSBXaW5kb3dzIGJ1aWxkLiAgVG8gV2VzOiBpZiB5b3UgY2FuIHRlbGwgbWUgaG93IHRvIHJlcHJvZHVjZSB0aGUgcHJvYmxlbSB5b3Ugb2JzZXJ2ZWQKKyBJJ2xsIHRyeSB0byBmaW5kIGEgcG9ydGFibGUgZml4LiAgVGhpcyByZXZlcnRzIGNvbW1pdCBkNTQ4NzFmNTI5MzY3NWM4MDU4ZWNjZTg4ZmVkNWI2NDZjODM2MzIzICgiQWRkZWQKKyBhIGJvZ3VzIGVtcHR5IC54cyBmaWxlIGZvciBidW5kbGluZyBvbiBuZXdlciBwZXJsIHRoYXQgd2FudHMKKyAic29tZXRoaW5nIiIpLgorCisyMDExLTA4LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCAwZjQ4OWIxOTlhZGFiNDhiMTYzM2ViY2FmNWZmNWE3YzIyYzRjYjg5IE1lcmdlOiBmNGVhYTAyCisKKyA3MmE1OWJjIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEF1ZworIDIgMTA6MTE6NTMgMjAxMSArMDIwMAorCisyMDExLTA4LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCA3ZmNjMGI4MDMyZjhkYTViN2JjMzAwNTlhZjBiYTY1NmVhZTcxMDkxIEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcgMSAxNDoxMToyOCAyMDExICswMjAwCisKKzIwMTEtMDgtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqICAgKiAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXQKKyAgICAgICBhX2FjY2Vzcy5jOiBGaXggYSBjb21waWxlciB3YXJuaW5nIGluCisKKworIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCisKKzIwMTEtMDgtMDEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IEFkZCBmaWxlIG5hbWVzIGFuZCBwYXR0ZXJucyBmb3Igb3V0cHV0CisKKyBmaWxlcyBnZW5lcmF0ZWQgZHVyaW5nIHRoZSBXaW5kb3dzIGJ1aWxkCisKKzIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IFNvcnQgYWxwaGFiZXRpY2FsbHkKKworCisyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBBZGQgYXBwcy9zc2h0b3NubXAKKworCisyMDExLTA4LTAxICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiAgLmdpdGlnbm9yZSwgcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QtYy5pbmMsIAorICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QteHMuaW5jOiBSZW1vdmUgdHdvIGdlbmVyYXRlZCBQZXJsIGZpbGVzLgorCisKKzIwMTEtMDgtMDIgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IGY0ZWFhMDJkOWIwNzZhNjdkNzI3MmRlN2VlZjhlOWRmYmYxODliYmYgTWVyZ2U6IDQwMTI1ZDgKKworIGFkYWRjYjkgQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBUdWUgQXVnIDIgMDA6NTc6NTEgMjAxMSArMDIwMAorCisyMDExLTA4LTAyICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6IHN1cHByZXNzICJvayIgdGVzdCBvdXRwdXQgaW4gbnNiCisKKworMjAxMS0wOC0wMSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDQwMTI1ZDg1MzljZDg5Zjk1MmZiYzI0NTg4YzVlODFlOWNkODIxZmUgQXV0aG9yOiBKYW4KKworIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIE1vbiBBdWcgMQorIDEzOjU4OjMzIDIwMTEgKzAyMDAKKworMjAxMS0wOC0wMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgNWFjZjBkMmNlYjM5Nzc5NjRlZDM5ZjAwMzA3M2JhNjQxMzhjMmViZCBBdXRob3I6IFRob21hcworCisgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBTdW4gSnVsIDMxIDIzOjU3OjQxCisgMjAxMSArMDIwMAorCisyMDExLTA3LTMxICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCBhNzcyMmE4MWY5Y2I3YWE4NjcwZTdjMjM4NjAxMzYyYTMxMDg3YWNjIE1lcmdlOiAyNDJlMTc5CisKKyBhZTlhYzZjIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU3VuIEp1bAorIDMxIDA5OjExOjQ1IDIwMTEgKzAyMDAKKworMjAxMS0wNy0zMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogYXBwcy9zc2h0b3NubXAuYzogRml4IGFuIGluY29ycmVjdCBzb3VyY2UgY29kZSBjb21tZW50OiB0aGVyZSBpcworCisgbm8gcmVxdWlyZW1lbnQgaW4gdGhlIEFOU0kgQyBzdGFuZGFyZCB0aGF0IHN0YWNrIHZhcmlhYmxlcyBzaG91bGQgYmUKKyBpbml0aWFsaXplZCB0byB6ZXJvLgorCisyMDExLTA3LTMxICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCAyNDJlMTc5N2IyNjk0YTA2ODk4NTZhZTM2ZDA1ZDM0MTNhYWY4ZDc3IEF1dGhvcjogVGhvbWFzCisKKyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFN1biBKdWwgMzEgMDE6NDQ6MDkKKyAyMDExICswMjAwCisKKzIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIHNubXBsaWIvc3lzdGVtLmM6IENIQU5HRVM6IGJ1aWxkaW5nOiBidWlsZCBmaXggZm9yIHN5c3RlbXMgbGFja2luZworCisgZ2V0YWRkcmluZm8oKSBhbmQgRUFJX0ZBSUwgKGUuZy4gSFAtVVggMTAuMjAvMTEuMDApCisKKzIwMTEtMDctMzAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDE4ZGY3NTlmMTliOTc1YzQ0OWQwMTBiYjBhMTYyMTE5YmI2ODM2MGQgTWVyZ2U6IDU0YTQ0Y2IKKworIDcwNTA3MTggQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTYXQgSnVsCisgMzAgMTY6Mzk6MTMgMjAxMSArMDIwMAorCisyMDExLTA3LTMwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCA4MmQ3M2ZiMTFiZTNhZTMxZjM5YzlkNjE4ZDUzODhkYzliMTAwNmQ3IEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBKdWwgMjkgMjA6NTE6MjcgMjAxMSArMDIwMAorCisyMDExLTA3LTMwICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAKKyAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKKyAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBhdXRvcmVjb25mCisKKworMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgCisgICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCisgICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogYXV0b3JlY29uZgorCisKKzIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDEwOWY2Njk0ZDc4OGY0OGViZDlmYzBhMWU5MGM0NWFiYzM3YmVhMjAgQXV0aG9yOiBUaG9tYXMKKworIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgU2F0IEp1bCAzMCAxNDoyMjoxOQorIDIwMTEgKzAyMDAKKworMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgN2Q4MTAwZWVkNDU5YTFmZjFhMjBjMDY3MzY0ZmE2Y2I0NzQ5MTMwOSBNZXJnZTogMTE2YzI0ZgorCisgOWU0N2FjNCBBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgorIFNhdCBKdWwgMzAgMDA6MjA6MDEgMjAxMSArMDIwMAorCisyMDExLTA3LTMwICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBkaXN0L25zYi1mdW5jdGlvbnMsIGRpc3QvbnNiLW5pZ2h0bHksIGRpc3QvbnNiLXBhY2thZ2U6IG1pbm9yIG5zYgorCisgZml4ZXMvZW5oYW5jZW1lbnRzIGZyb20gbXkgb2xkIHN2biB0cmVlCisKKzIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDExNmMyNGYwZjdmYjNmOTliYTY0NjczMGY2MWM1NmQxYWUyM2JhNDEgTWVyZ2U6IDk4MmZiN2YKKworIDRmYzBiOGIgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgSnVsCisgMjkgMTE6MzE6MjAgMjAxMSArMDIwMAorCisyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCBjNDgxNzNjMDZhOWVhYWRiZjgxZTZiNDk2MmQ1NWVmMGE1NGRiMjUxIEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBKdWwgMjkgMTA6Mjc6MzkgMjAxMSArMDIwMAorCisyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBjb25maWd1cmUsIGx0bWFpbi5zaCwgbTQvbGlidG9vbC5tNDogUmVydW4gYXV0b3JlY29uZgorCisKKzIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IFNvcnQgYWxwaGFiZXRpY2FsbHkKKworCisyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBBZGQgYXBwcy9zc2h0b3NubXAKKworCisyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmgsIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5jOiBGaXggdHdvIGZpbGVuYW1lcyBpbiBob3N0IG1pYgorCisgc291cmNlIGNvZGUgY29tbWVudHMuCisKKzIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCA5ODJmYjdmZDhiYWIyNWM0MzIyYWE2MmM1MDQzNzAzNmNlMjk2ZTNlIE1lcmdlOiAxZWRhNjc1CisKKyAzNDU4MTI4IEF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgorIFRodSBKdWwgMjggMTY6MjQ6MDMgMjAxMSArMDIwMAorCisyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBGaXggcG90ZW50aWFsCisKKyBzaWdzZWd2IHdoZW4gYW4gaWZUYWJsZSBlbnRyeSBpcyByZW1vdmVkIGFzIHJlc3VsdCBvZiBib3RoCisgaW50ZXJmYWNlX3JlcGxhY2Vfb2xkIGFuZCBpbnRlcmZhY2VfZmFkZW91dCBhdCB0aGUgc2FtZSB0aW1lLgorCisyMDExLTA3LTI4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBhcHBzL3NzaHRvc25tcC5jOiBNYWtlIGFwcHMvc3NodG9zbm1wLmMgYnVpbGQgYWdhaW4gKHdhcyBicm9rZW4gYnkKKworIGNvbW1pdCA2MTIyNDdjZGYxNGMxZTc0NWMzODRjZWZlMWYzZmRlM2U0NDViMzQ3IHRoYXQgY2hhbmdlZAorIE1TR19OT1NJR05BTCBpbnRvIE5FVFNOTVBfTk9TSUdOQUwpCisKKzIwMTEtMDctMjggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDFlZGE2NzUzYjdmZTdkM2IzZjIxN2MwOTI1NGVjMDJkMGVlMWQwY2UgTWVyZ2U6IGRiOGI4NjAKKworIGEyZjllY2UgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgSnVsCisgMjggMTU6MzI6MjggMjAxMSArMDIwMAorCisyMDExLTA3LTI4ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczE6IAorCisgQ0hBTkdFUzogc25tcGQ6IFJlc3RvcmUgc3RvcmFnZSB0YWJsZXMgb24gTGludXgKKworMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBEb2N1bWVudCBpbnRlcmZhY2VfcmVwbGFjZV9vbGQgb3B0aW9uLgorCisKKzIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6CisKKyBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9yZXBsYWNlX29sZCcgb3B0aW9uIHRvIHJlbW92ZSBvbGQgZW50cmllcyBpbgorIGlmVGFibGUgd2hlbiBhbiBpbnRlcmZhY2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIGFscmVhZHkgZXhpc2luZyBvbmUKKyBhcHBlYXJzLiAgRS5nLiByZW1vdmUgb2xkIHBwcDAgaW50ZXJmYWNlIHdoZW4gbmV3IHBwcDAgc2hvd3MgdXAuCisKKzIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogRG9jdW1lbnQgdGhlIGludGVyZmFjZV9mYWRlb3V0IG9wdGlvbi4KKworCisyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBBbGxvdyBpZlRhYmxlCisKKyBlbnRyaWVzIHRvIGJlIGRlbGV0ZWQgaW1tZWRpYXRlbHkgd2hlbiBhcHByb3ByaWF0ZSBpbnRlcmZhY2UKKyBkaXNhcHBlYXJzIChpLmUuIGludGVyZmFjZV9mYWRlb3V0ID0gMCB3b3JrcyBhcyBleHBlY3RlZCkuCisKKzIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6CisKKyBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9mYWRlb3V0JyBjb25maWd1cmF0aW9uIG9wdGlvbiB0byBzZXQKKyBsaWZldGltZSBvZiBpZlRhYmxlIGVudHJpZXMgb2YgcmVtb3ZlZCBpbnRlcmZhY2VzLiAgUHJldmlvdXMgbGlmZXRpbWUgd2FzIGhhcmRjb2RlZCA1IG1pbnV0ZXMsIG5vdyBpdCdzIGNvbmZpZ3VyYWJsZS4KKworMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IGQ2MmEwZWI5MDcwYjRkOGQ5ZmUyYmNmZGI0ZDUzZDM3ZWY4MTRmOWIgQXV0aG9yOiBKYW4KKworIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFRodSBKdWwgMjgKKyAxNDo0OTowOCAyMDExICswMjAwCisKKzIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6CisKKyBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9yZXBsYWNlX29sZCcgb3B0aW9uIHRvIHJlbW92ZSBvbGQgZW50cmllcyBpbgorIGlmVGFibGUgd2hlbiBhbiBpbnRlcmZhY2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIGFscmVhZHkgZXhpc2luZyBvbmUKKyBhcHBlYXJzLiAgRS5nLiByZW1vdmUgb2xkIHBwcDAgaW50ZXJmYWNlIHdoZW4gbmV3IHBwcDAgc2hvd3MgdXAuCisKKzIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogRG9jdW1lbnQgdGhlIGludGVyZmFjZV9mYWRlb3V0IG9wdGlvbi4KKworCisyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBBbGxvdyBpZlRhYmxlCisKKyBlbnRyaWVzIHRvIGJlIGRlbGV0ZWQgaW1tZWRpYXRlbHkgd2hlbiBhcHByb3ByaWF0ZSBpbnRlcmZhY2UKKyBkaXNhcHBlYXJzIChpLmUuIGludGVyZmFjZV9mYWRlb3V0ID0gMCB3b3JrcyBhcyBleHBlY3RlZCkuCisKKzIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6CisKKyBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9mYWRlb3V0JyBjb25maWd1cmF0aW9uIG9wdGlvbiB0byBzZXQKKyBsaWZldGltZSBvZiBpZlRhYmxlIGVudHJpZXMgb2YgcmVtb3ZlZCBpbnRlcmZhY2VzLiAgUHJldmlvdXMgbGlmZXRpbWUgd2FzIGhhcmRjb2RlZCA1IG1pbnV0ZXMsIG5vdyBpdCdzIGNvbmZpZ3VyYWJsZS4KKworMjAxMS0wNy0yOCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGFwcHMvc3NodG9zbm1wLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzogQ0hBTkdFUzogYnVpbGRpbmc6IGJ1aWxkCisgICAgICBmaXgKKworIGZvciBzeXN0ZW1zIGxhY2tpbmcgTVNHX0RPTlRXQUlUCisKKzIwMTEtMDctMjcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOiBDSEFOR0VTOiBzbm1wZDogTWFrZQorCisgVENQLU1JQjo6dGNwQ3VyckVzdGFiIHdvcmsgYWdhaW4uIFdhcyBicm9rZW4gaW4gNS43IGJ5IHRoZQorIGludHJvZHVjdGlvbiBvZiB0aGUgImZlYXR1cmVzIiBmZWF0dXJlLgorCisyMDExLTA3LTI3ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgZmI4ODA3NGZiYmMyNjhjN2YwNTA5NDkxNTM1YWVjNWZlY2IwNTY4NCBNZXJnZTogYTc0M2FlNQorCisgMzgyMTI3MyBBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKKyBXZWQgSnVsIDI3IDE0OjQ3OjI1IDIwMTEgKzAyMDAKKworMjAxMS0wNy0yNyAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDMxZmEwN2NkOWZmZGU0NmQ0MWQyYjU4MzhjM2ZjNGQwMTU0OGJmYjUgQXV0aG9yOiBKYW4KKworIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFdlZCBKdWwgMjcKKyAxNDo0NTo0NyAyMDExICswMjAwCisKKzIwMTEtMDctMjcgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9zbm1wZC5jOiBDSEFOR0VTOiBzbm1wZDogcnVuIHNpZ25hbCBoYW5kbGVycyB3aGVuIHNlbGVjdCgpCisKKyBpcyBpbnRlcnJ1cHRlZC4gIFRoaXMgYmVoYXZpb3IgaXMgaW5kaWNhdGVkIGluIGNvbW1lbnQgb24gbGluZSAxMjQ0LCBidXQgaXQgd2FzIG5vdAorIGFjdHVhbGx5IGRvbmUuCisKKzIwMTEtMDctMjYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDJlOTQ2NmQ3ZjU5ZDY1ZDA1MDI3NzczNWU0ZWQ5ZDMwNzE5ZmY3NTIgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bCAyNiAxMzoxMDowNCAyMDExICswMjAwCisKKzIwMTEtMDctMjYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDc3MDgyOTY3NjBlYWY1YTgwZDg1NDA3NDZjOWMyNDk4MjZmZDFiZmUgTWVyZ2U6IGVhMTFlNWUKKworIGNkNmUzODIgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsCisgMjYgMTY6MjE6NDEgMjAxMSArMDIwMAorCisyMDExLTA3LTI2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6IENsYXJpZnkgYW4gSVB2NiBzb3VyY2UgY29kZSBjb21tZW50CisKKworMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBtYW4vbmV0c25tcF9oYW5kbGVyLjM6IFNwZWxsaW5nIGZpeDoKKworIGRlZmluZWR5IC0+IGRlZmluZWQKKworMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zOiBTcGVsbGluZworCisgZml4OiBhbGV2aWF0ZSAtPiBhbGxldmlhdGUKKworMjAxMS0wNy0yNiAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IGRkMmM0NzEzMzQ5M2Q1YTAwZGU2YjNjZGJjZmFjN2U5ZDQ0YjZmZmUgTWVyZ2U6IGY5Y2NiYzcKKworIGVhMTFlNWUgQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgVHVlIEp1bCAyNiAxNDoyNToyOCAyMDExICswMjAwCisKKzIwMTEtMDctMjYgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCBjNWE4NDY0YzQyYTk0YzI1MGVlMmRmYTJhNDczMTA5YTczNDIwM2Q4IEF1dGhvcjogSmFuCisKKyBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUdWUgSnVsIDI2CisgMTQ6MjQ6NTUgMjAxMSArMDIwMAorCisyMDExLTA3LTI1ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgZjljY2JjNzcyNjY2MTM0ZDFkMTc4YjUwNWFmOWRkY2RkOWVkNDI0NCBBdXRob3I6IEphbgorCisgU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgTW9uIEp1bCAyNQorIDE1OjAyOjE1IDIwMTEgKzAyMDAKKworMjAxMS0wNy0yMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgYjBjMGEzNTVkNWY2MDFhMTFiZTQ5MTRmYmY3MTM3MTZhYmQzMGEyOSBBdXRob3I6IFdlcworCisgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUdWUgSnVsIDE5CisgMTg6MzY6MTEgMjAxMSAtMDcwMAorCisyMDExLTA3LTIwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCBjMTRmYzM4NjE0YmFmMTBkNTE3MTM2ZjA0ODA5MDdiN2YwM2Q4ZDc0IEF1dGhvcjogV2VzCisKKyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFdlZCBKdWwgMjAKKyAxMzo0NDo1OSAyMDExIC0wNzAwCisKKzIwMTEtMDctMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmM6IHJlbW92ZSBicm9rZW4gd2hpdGVzcGFjZSBsaW5lcyB0aGF0CisKKyBsZWFkcyB0byByZWFkaW5nIGNvbmZ1c2lvbgorCisyMDExLTA3LTIwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCBlYmRkMjE2YzA3NGJmNDFjZDNhMDg0YmQxNDY4OWNmMDFjODg3YjMxIEF1dGhvcjogV2VzCisKKyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFR1ZSBKdWwgMTkKKyAxODozNjoxMSAyMDExIC0wNzAwCisKKzIwMTEtMDctMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIC5naXRpZ25vcmU6IHVwZGF0ZWQgZ2l0aWdub3JlIHRvIGlnbm9yZSBhIG51bWJlciBvZiBhdXRvLWdlbmVyYXRlZAorCisgZmlsZXMKKworMjAxMS0wNy0xOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYzogcmVtb3ZlIGJyb2tlbiB3aGl0ZXNwYWNlIGxpbmVzIHRoYXQKKworIGxlYWRzIHRvIHJlYWRpbmcgY29uZnVzaW9uCisKKzIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IGRmNWY3MDA1NWNmOWJlMzNmMDVmYjUwYWJlMmY1YTgxZWFjMDkyYWQgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bCAxOSAxMTowNzoxOSAyMDExICswMjAwCisKKzIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IGY1OTZmMTgyNDJkY2RmZDZjZjQ5Yzg4ZGExZDgzNmMxNmUyNjBjYWMgTWVyZ2U6IDBmMzA5YjQKKworIDcwZGVlNGIgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsCisgMTkgMTE6MzM6MjggMjAxMSArMDIwMAorCisyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6CisgICAgICAzMzY5NjgwOgorCisgZnJvbSBJbHlhIFlhbm9rOiBjaGFuZ2Ugc25tcF9lbmFibGVhdXRoZW50cmFwcyBmcm9tIGludCB0byBsb25nIHN1Y2gKKyB0aGF0IG1vZGlmeWluZyB0aGUgY29ycmVzcG9uZGluZyBNSUIgb2JqZWN0IGRvZXMgbm90IG92ZXJ3cml0ZQorIG1lbW9yeSBpbiA2NC1iaXQgYnVpbGRzLgorCisyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzogQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMzcwNjQ1OgorCisgZnJvbSBCaWxsIEZlbm5lcjogRml4IEFnZW50WCBzdWJhZ2VudCBmb3VyIGJ5dGUgbGVhaworCisyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGhhcm5lc3M6IGRvCisKKyBub3QgaW52b2tlIElTUlVOTklORygpIG9uIE1pbkdXLgorCisyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGhhcm5lc3M6CisKKyBjbGVhbnVwIC0gcmVtb3ZlIGNvZGUgdGhhdCBiZWNhbWUgc3VwZXJmbHVvdXMuCisKKzIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IE1pbkdXOiBEbyBub3QKKworIGFzc3VtZSB0aGF0IGtpbGwuZXhlIHJlcG9ydHMgdmlhIGl0cyBleGl0IHN0YXR1cyB3aGV0aGVyIHRoZQorIHNpZ25hbGxlZCBwcm9jZXNzIHN0aWxsIGV4aXN0cy4KKworMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQ0hBTkdFUzogdGVzdGluZzoKKworIFJlbW92ZSB0aGUgZnVuY3Rpb24gV0FJVE9SRElFKCkgZnJvbSBzaW1wbGVfZXZhbF90b29scy5zaCBzaW5jZSBpdAorIGlzIG5ldmVyIGludm9rZWQuCisKKzIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CisKKyBTaW1wbGlmeSBXQUlURk9SKCkgaW4gc2ltcGxlX2V2YWxfdG9vbHMuc2guIFRoZSBjb2RlIHRoYXQgaGFuZGxlZAorIGludm9jYXRpb24gb2YgV0FJVEZPUigpIHdpdGggemVybyBvciBvbmUgYXJndW1lbnRzIGhhcyBiZWVuIGRyb3BwZWQKKyBzaW5jZSBXQUlURk9SKCkgaXMgYWx3YXlzIGludm9rZWQgd2l0aCB0d28gYXJndW1lbnRzLgorCisyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGhhcm5lc3M6CisKKyBtaW5vciBzaW1wbGlmaWNhdGlvbi4KKworMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZTogQ0hBTkdFUzoKKworIHRlc3Rpbmc6IFNraXAgdGVzdCA1OSBpZiBTSUdIVVAgaXMgbm90IHN1cHBvcnRlZC4gTWFrZXMgdGVzdCA1OSBwYXNzCisgb24gTWluR1cuCisKKzIwMTEtMDctMDYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IE1pbkdXIGZpeAorCisKKzIwMTEtMDctMDYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFRlc3QgZnJhbWV3b3JrCisKKyByZWZhY3RvcmluZzogSW50cm9kdWNlIFdBSVRGT1JOT1RDT05EKCkuCisKKzIwMTEtMDctMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CisKKyBNYWtlIFNUT1BQUk9HIHNlbmQgU0lHVEVSTSByZXBlYXRlZGx5LiBUaGlzIGZpeGVzIGEgcmFjZSB3aGVyZQorIFNJR1RFUk0gY291bGQgYmUgc2VudCBiZWZvcmUgdGhlIFNJR1RFUk0gc2lnbmFsIGhhbmRsZXIgd2FzIHNldCB1cCwKKyBlc3BlY2lhbGx5IHdoZW4gcnVubmluZyB0aGUgcmVncmVzc2lvbiB0ZXN0cyB1bmRlciBWYWxncmluZC4KKyBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIHRoZSBTTk1QX1ZFUkJPU0U9MSBvdXRwdXQgZXZlbiBtb3JlIHZlcmJvc2UuCisKKzIwMTEtMDctMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFRlc3QgaGFybmVzcworCisgcmVmYWN0b3Jpbmc6IGludHJvZHVjZSBFQ0hPU0VORFNJR1RFUk0oKSBhbmQgRUNIT1NFTkRTSUdLSUxMKCkKKworMjAxMS0wNy0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogRml4IGEgYnVnIGluCisKKyB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoIHRoYXQgd2FzIGludHJvZHVjZWQKKyBpbiBjb21taXQgOTM4ZDc1Yy4KKworMjAxMS0wNy0wMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKyAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogSWdub3JlICouZXhlIGZpbGVzIGdlbmVyYXRlZCBieSB0aGUgV2luMzIKKworIGJ1aWxkCisKKzIwMTEtMDctMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CisKKyBUZXN0IG9ubHkgb25jZSBkdXJpbmcgYSB0ZXN0IHdoZXRoZXIgdGhlIHNoZWxsIHN1cHBvcnRzIHN1Yi1zZWNvbmQKKyBzbGVlcGluZyBpbnN0ZWFkIG9mIHJlcGVhdGVkbHkuCisKKzIwMTEtMDctMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjogQ0hBTkdFUzogdGVzdGluZzogQ2hhbmdlZAorCisgZGVmYXVsdCB0aW1lb3V0IGZyb20gMXMgdG8gMTBzIHdoZW4gdGhlIHJlZ3Jlc3Npb24gdGVzdHMgYXJlIHJ1bgorIHVuZGVyIFZhbGdyaW5kCisKKzIwMTEtMDctMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CisKKyBBZnRlciBoYXZpbmcgc2VudCBTSUdURVJNIHRvIHNubXBkIG9yIHNubXB0cmFwZCwgd2FpdCB1bnRpbCB0aGUKKyBwcm9jZXNzIGhhcyBzdG9wcGVkIGJlZm9yZSBzZW5kaW5nIFNJR0tJTEwuIFRoaXMgcmFjZSBjb25kaXRpb24gd2FzCisgaGl0IG1vc3QgZWFzaWx5IHdoZW4gcnVubmluZyB0aGUgcmVncmVzc2lvbiB0ZXN0cyB1bmRlciBWYWxncmluZC4KKyBDSEFOR0VTOiB0ZXN0aW5nOiBDaGVjayBQSUQgZmlsZSBleGlzdGVuY2UgYWZ0ZXIgaGF2aW5nIHJlYWQgaXQKKyBpbnN0ZWFkIG9mIGJlZm9yZS4gVGhpcyBmaXhlcyB0aGUgcmFjZSBjb25kaXRpb24gd2hlcmUgdGhlIFBJRCBmaWxlCisgZGlzYXBwZWFyZWQgYWZ0ZXIgdGhlIGV4aXN0ZW5jZSBjaGVjayBhbmQgYmVmb3JlIGl0IHdhcyByZWFkLgorCisyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRml4IGEgYnVnIGluIGEgZGVidWcgc3RhdGVtZW50CisKKyBpbnRyb2R1Y2VkIGJ5IHBhdGNoIDMzMTAyNTAgLyByMjA0OTQ6IHVzZSAlbGQgdG8gcHJpbnQgYSB2YWx1ZSBvZgorIHR5cGUgb2lkIGluc3RlYWQgb2YgJWQuICBUaGlzIHBhdGNoIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIGZvbGxvd2luZyB0byBWNS42IFNWTiBwYXRjaGVzOiBnaXQtc3ZuLWlkOgorCisgZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZGdpdC1zdm4taWQ6CisKKyBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDBmMzA5YjQ5M2MyMWQzYzY5MTQ0ODc1MTRiNDE1NjA3NTRmZmNkZjkgQXV0aG9yOiBCYXJ0IFZhbgorCisgQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bCAxOSAwODozNzo1MCAyMDExICswMjAwCisKKzIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIDogY29tbWl0IDFiNzQ1NGJjMjgxNTY4NDcwYTEzMDA0NzZkMmVkYjRmNDExZTYwMjkgTWVyZ2U6IDhkOWRjYzgKKworIDY5MGVhN2QgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsCisgMTkgMDg6MzE6MjggMjAxMSArMDIwMAorCisyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBhcHBzL3NubXB0cmFwZC5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IEFkZCBtaXNzaW5nIG5ld2xpbmUKKworIGNoYXJhY3RlciBpbiBhIGxvZyBtZXNzYWdlCisKKzIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIGFwcHMvc25tcHRyYXBkLmM6IENIQU5HRVM6IHNubXB0cmFwZDogSW52b2tlIHNodXRkb3duX3BlcmwoKSB3aGVuCisKKyBzaHV0dGluZyBkb3duCisKKzIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzogU3BlbGxpbmcgZml4OiBicmFua2V0IC0+IGJyYWNrZXQKKworCisyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IFJ1biBhdXRvcmVjb25mLgorCisgRml4ZXMgYnVpbGQgYnJlYWthZ2UgY2F1c2VkIGJ5IHBhdGNoCisgZDU4OGVjODUzYmQwNTMxZjIxMmZjYmY1MWI5NjJiOTZjNjgyOGI1OSAoUlBNIDQuOSBzdXBwb3J0KQorCisyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCBkNjE3ZDg0ZjgzZmE2OWVkOWZhOWY5OGVmYzRhZmFmODgwZDEyMWYyIEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBKdWwgMTQgMTY6NDM6NDcgMjAxMSArMDIwMAorCisyMDExLTA3LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IE1ha2UKKworIG5ldHNubXBfaXB2Nl9mbXRhZGRyKCkgc2hvdyB0aGUgSVB2NiBzY29wZSBJRAorCisyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAKKyAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKKyAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogQWRkIHN1cHBvcnQKKyAgICAgIGZvcgorCisgSVB2NiBhZGRyZXNzIHNjb3BlIElECisKKzIwMTEtMDctMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgorCisgICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogUnVuIGF1dG9yZWNvbmYKKworCisyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KKworICAgKiA6IGNvbW1pdCBhNTY3MjFhM2U3NzU0ZTM4OWRhYTdlOGEzZDU3OTI4OTllZGM5ZGUzIEF1dGhvcjogQmFydCBWYW4KKworIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBKdWwgMTQgMTY6MTg6MzIgMjAxMSArMDIwMAorCisyMDExLTA3LTE1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiA6IGNvbW1pdCA4NDRkNGNlODY3YmYzYWJlN2I3NTM2YzVkYmZiYTQwMTkzN2E4ZDRhIE1lcmdlOiBlZWQwMTk4CisKKyA2MTAzNmE4IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CisgRnJpIEp1bCAxNSAxNTozMzoxMCAyMDExIC0wNzAwCisKKzIwMTEtMDctMTUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIDogY29tbWl0IDg1MWJjZjUzZmNkMTNjZGYwYmE5ZjEyZTVkNjAzZTczZjhiYjk2MTEgQXV0aG9yOiBXZXMKKworIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgRnJpIEp1bCAxNQorIDE1OjMyOjQ5IDIwMTEgLTA3MDAKKworMjAxMS0wNy0xNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6IGZpeCBhIHR5cG8KKworCisyMDExLTA3LTEzICBSb2JlcnQgU3RvcnkgPHJzdG9yeUBsb2NhbGhvc3Q+CisKKyAgICogc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOiBzbm1wbGliOiAgdHdlYWsgcGF0Y2ggMzA0NDg4OCB0byByZXN0b3JlCisKKyBwcm9wZXIgbm9uLWVycm9yIHJldHVybiBkdXJpbmcgbWliIGxvYWRpbmcKKworMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBhZGRlZCA1LjcgcGF0Y2hlcyB0byB0aGUgYnJhbmNoIGxpc3QgYW5kIGZpeCB0aGUgcmVsZWFzZSBmaWxlCisKKworMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBhZGRlZCA1LjcgcGF0Y2hlcyB0byB0aGUgYnJhbmNoIGxpc3QKKworCisyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBkaXN0L3JlbGVhc2U6IGEgY29weSBvZiB0aGUgcmVsZWFzZSBmaWxlIGFwcGxpZWQgdG8gdGhlIG9sZGVyCisKKyBicmFuY2hlcworCisyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIDUuNyBwYXRjaGVzCisKKworMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogOiBjb21taXQgYzQzMTIzMWU4ZjBhMzlkMTk1MGJjNzJjMzJlMzQwMmY5MGZhODAzMCBNZXJnZTogNTZmZWU0MAorCisgYTJhYzI0ZCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgorIE1vbiBKdWwgMTEgMTk6MzM6MTcgMjAxMSAtMDcwMAorCisyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgY29weSBvZiB0aGUKKworIHNoZWxsLWZ1bmN0aW9ucyB0byB0aGUgb2xkZXIgYnJhbmNoCisKKzIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisgICAqIGRpc3QvcmVsZWFzZTogYSBjb3B5IG9mIHRoZSByZWxlYXNlIGZpbGUgYXBwbGllZCB0byB0aGUgb2xkZXIKKworIGJyYW5jaGVzCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQ2hhbmdlczogVjUuNy5yYzMgLT4gVjUuNworCisyMDExLTA3LTAxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKKyAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcKKworCisyMDExLTA3LTAxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzogUmV2ZXJ0ICJmaXggZHRsc3VkcAorCisgdHJhbnNwb3J0IGFkZHJlc3MgZm9ybWF0IGZ1bmN0aW9uIiBUaGlzIHJldmVydHMgY29tbWl0IDJhYjNhNmU2ZjJmY2MxZmYzZTVmMGZiNWRjNWQwNWU0OTg4MjBkODkuICAgLSBmb3Igc29tZSByZWFzb24gSSBzYXcgJ3JjJyBhbmQgbXkgYnJhaW4gaW50ZXJwcmV0ZWQgaXQgYXMgICAgJ3ByZS1yZWxlYXNlJy4gV2hhdCBjYW4gSSBzYXksIGl0IHdhcyBsYXRlLiA6LS8KKworMjAxMS0wNy0wMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAbG9jYWxob3N0PgorCisgICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6IGZpeCBkdGxzdWRwIHRyYW5zcG9ydAorCisgYWRkcmVzcyBmb3JtYXQgZnVuY3Rpb24gIC0gdXBkYXRlIGlwdjQgZm10YWRkciB0byBoYW5kbGUgc29ja2FkZHIgYW5kIHRvIGNoZWNrICAgIHNpemUgYmVmb3JlIGFzc3VtaW5nIGRhdGEgaXMgYWRkciBwYWlyICAtIG1vdmUgZHRsc3VkcCBmdW5jdGlvbnMgdG8gZXh0cmFjdCBhZGRyKHMpIHRvIHRsc2Jhc2UKKworMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKyAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IGZpeCB0YWcgcHVzaGluZworCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0NoYW5nZXM6IFY1LjcucmMyIC0+IFY1LjcucmMzCisKKzIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsCisJZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy5yYzMKKworMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKwkqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiByZW1vdmUgdW5uZWVkZWQgY29tbWVudAorCisyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworCSogZGlzdC9tYWtlcmVsZWFzZS54bWw6IG1pc2MgcHVibGljYXRpb24gZml4ZXMgZm91bmQgd2hpbGUKKwlwdWJsaXNoaW5nCisKKzIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiByYW4gYXV0b2hlYWRlciB0byBhZGQgdGhlCisJbWlzc2luZyB0ZW1wbGF0ZSBpZmRlZnMKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitDaGFuZ2VzOiBWNS43LnJjMSAtPiBWNS43LnJjMgorCisyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworCSogZGlzdC9tYWtlcmVsZWFzZS54bWw6IHVzZSB0aGUgbmV3IHJ1bi1hdXRvY29uZiBzY3JpcHQKKworMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKwkqIGRpc3QvcnVuLWF1dG9jb25mOiBBIHNjcmlwdCB0byBpbnZva2UgdGhlIGNvcnJlY3QgdmVyc2lvbiBvZiB0aGUKKwlhdXRvY29uZiB0b29sCisKKzIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogcmVtYWluaW5nIGNvbW1hbmQgbGluZSBjaGFuZ2VzIGZvciBzdm4gLT4KKwlnaXQKKworMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKwkqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBtYWtlIHRoZSBicmFuY2ggZWNobyBvdXRwdXQgYW5kIHN2biB1cGRhdGUKKwljb252ZXJ0ZWQgdG8gZ2l0IGVxdWl2YWxlbnRzCisKKzIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogcHVsbCB0aGUgYnJhbmNoIGluZm8gZnJvbSBnaXQKKworMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKwkqIGRpc3QvcmVsZWFzZTogbm90ZWQgdGhhdCB0aGUgbWFzdGVyIGJyYW5jaCBpcyBpbiByYyBzdGF0ZQorCisyMDExLTA2LTI4ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KKworCSogRkFROiBNZW50aW9uIHRoZSBHaXQgd2lraSBwYWdlCisKKzIwMTEtMDYtMjggIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgorCisJKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHVzZSBnaXQgbWVyZ2Ugd2l0aCB0aGUgLS1sb2cKKwlvcHRpb24KKworMjAxMS0wNi0yOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CisKKwkqIC5naXRpZ25vcmU6IEFkZCAuZ2l0aWdub3JlCisKKzIwMTEtMDYtMjggIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgorCisJKiBGQVE6IFdlJ3JlIG5vdyB1c2luZyBnaXQhCisKKzIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHVzZSByZWJhc2UgdG8gcHV0IGxvY2FsIGNoYW5nZXMgYXQKKwl0aGUgdG9wIG9mIHRoZSByZW1vdGUgYnJhbmNoZXMgZ2l0LXN2bi1pZDoKKworCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworCSogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGZlYXR1cmUgdG8gbm90IHJvbGwKKwlicmFuY2hlcyBjdXJyZW5seSBpbiByYyBwaGFzZSBnaXQtc3ZuLWlkOgorCisJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgbnNyb2xsdXAgZnVuY3Rpb24gZm9yCisJcm9sbGluZyBicmFuY2hlcyB1cHdhcmQuICBnaXQtc3ZuLWlkOgorCisJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGNyZWF0ZWQgYW4gbnNwYXRjaGFwcGx5IGZ1bmN0aW9uCisJdG8gYXBwbHkgYSBwcmV2aW91c2x5IHRlc3RlZCBwYXRjaCBnaXQtc3ZuLWlkOgorCisJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgbnN0cnlwYXRjaCBmdW5jdGlvbiB0bworCXRlc3QgcGF0Y2ggYXBwbGljYXRpb24gYWdhaW5zdCB2YXJpb3VzIGJyYW5jaGVzIGdpdC1zdm4taWQ6CisKKwlmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKwkqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgdmVyYm9zZSBvdXRwdXQgZ2l0LXN2bi1pZDoKKworCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTI4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworCSogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBtb3JlIHByZWZpeCBjaGFuZ2VzIGFuZCBiZXR0ZXIKKwlzZXR0aW5nIG9mIGRlZmF1bHQgdmFsdWVzIGdpdC1zdm4taWQ6CisKKwlmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUyNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKwkqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogdXNlIG5zIHByZWZpeGVzIGluc3RlYWQgb2YgZ2VuZXJpYworCXNubXAgcHJlZml4ZXMgZ2l0LXN2bi1pZDoKKworCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTI2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTI0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CisKKwlmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMjQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiAKKwlNaXNzaW5nIGNoZWNrIGZvciBycG10cy5oIGdpdC1zdm4taWQ6CisKKwlmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMjQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKwkqIGNvbmZpZ3VyZTogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CisKKwlmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMjQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKwkqIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCisJbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAorCW1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsCisJbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLAorCW1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywKKwltYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCisJbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLAorCW1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsCisJbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKKwltYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKKwltYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLAorCW1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKKwltYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKKwltYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCisJbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCisJbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKKwltYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCisJbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCisJbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCisJbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAorCW1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAorCW1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKKwltYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLAorCW1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLAorCW1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywKKwltYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsCisJbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsCisJbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsCisJbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsCisJbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAorCW1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsCisJbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywKKwltYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKKwltYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCisJbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLAorCW1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdXRpbC4zLAorCW1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsCisJbWFuL25ldHNubXBfd2F0Y2hlci4zOiBkb2N1bWVudGF0aW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgorCisJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTIxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTI0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywKKwlzbm1wbGliL3NubXBfdmVyc2lvbi5jOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKKworCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0yMyAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworCSogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCisJaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogVHdlYWsgUlBNIGhhbmRsaW5nIHRvIHdvcmsKKwl3aXRoIGxpYnJhcnkgdmVyc2lvbiA0LjkgQmFzZWQgb24gYSBwYXRjaCBieSBKYW4gU2FmcmFuZWsgZ2l0LXN2bi1pZDoKKworCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUxOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworCSogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzogUHJvdmlkZSBhIGZyYW1ld29yayBmb3IgcmVhZGluZworCVJQTSBwYWNrYWdlIGluZm9ybWF0aW9uIGZyb20gYSBjYWNoZSBkaXJlY3RvcnkgKHJhdGhlciB0aGFuIHF1ZXJ5aW5nCisJdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcworCWZ1bmN0aW9uYWxpdHkuICBnaXQtc3ZuLWlkOgorCisJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CisKKwlmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA1MTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKwkqIGNvbmZpZ3VyZTogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CisKKwlmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA1MTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKwkqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLAorCXNubXBsaWIvc25tcF92ZXJzaW9uLmM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgorCisJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNTE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTIxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLAorCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzogUHJvdmlkZSBhCisJZnJhbWV3b3JrIGZvciByZWFkaW5nIFJQTSBwYWNrYWdlIGluZm9ybWF0aW9uIGZyb20gYSBjYWNoZSBkaXJlY3RvcnkKKwkocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcworCWZ1bmN0aW9uYWxpdHkuICBnaXQtc3ZuLWlkOgorCisJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTIxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLAorCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzogUHJvdmlkZSBhCisJZnJhbWV3b3JrIGZvciByZWFkaW5nIFJQTSBwYWNrYWdlIGluZm9ybWF0aW9uIGZyb20gYSBjYWNoZSBkaXJlY3RvcnkKKwkocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcworCWZ1bmN0aW9uYWxpdHkuICBnaXQtc3ZuLWlkOgorCisJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTIxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLAorCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzogUHJvdmlkZSBhCisJZnJhbWV3b3JrIGZvciByZWFkaW5nIFJQTSBwYWNrYWdlIGluZm9ybWF0aW9uIGZyb20gYSBjYWNoZSBkaXJlY3RvcnkKKwkocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcworCWZ1bmN0aW9uYWxpdHkuICBnaXQtc3ZuLWlkOgorCisJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRm9sbG93LXVwIGZvciByMjA1MTE6IHJlYWxseSB1c2UKKwl0aGUgcHJvcGVyIGZvcm1hdCBzcGVjaWZpY2F0aW9uLiAgZ2l0LXN2bi1pZDoKKworCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDUxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKwkqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOiBGb2xsb3ctdXAgZm9yIHIyMDUxMTogcmVhbGx5IHVzZQorCXRoZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmljYXRpb24uICBnaXQtc3ZuLWlkOgorCisJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAorCisyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKworCSogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6IEZpeCBhIGJ1ZyBpbiBhIGRlYnVnIHN0YXRlbWVudAorCWludHJvZHVjZWQgYnkgcGF0Y2ggMzMxMDI1MCAvIHIyMDQ5NDogdXNlICVsZCB0byBwcmludCBhIHZhbHVlIG9mCisJdHlwZSBvaWQgaW5zdGVhZCBvZiAlZC4gIGdpdC1zdm4taWQ6CisKKwlmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCisKKzIwMTEtMDYtMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCisJKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRml4IGEgYnVnIGluIGEgZGVidWcgc3RhdGVtZW50CisJaW50cm9kdWNlZCBieSBwYXRjaCAzMzEwMjUwIC8gcjIwNDk0OiB1c2UgJWxkIHRvIHByaW50IGEgdmFsdWUgb2YKKwl0eXBlIG9pZCBpbnN0ZWFkIG9mICVkLiAgZ2l0LXN2bi1pZDoKKworCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDUxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKwkqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOiBVc2UgJXAgdG8gcHJpbnQgYSBwb2ludGVyIGluc3RlYWQKKwlvZiAlbGQgZ2l0LXN2bi1pZDoKKworCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworMjAxMS0wNi0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisKKwkqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOiBVc2UgJXAgdG8gcHJpbnQgYSBwb2ludGVyIGluc3RlYWQKKwlvZiAlbGQgZ2l0LXN2bi1pZDoKKworCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDUxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitDaGFuZ2VzOiBWNS43LnByZTIgLT4gVjUuNy5yYzEKKworMjAxMS0wNi0xMyAxNjoxMSAgaGFyZGFrZXIKIAogICAgKiBjb25maWd1cmU6CiAKLSAgIGF1dG9jb25mIHVzaW5nIHRoZSByaWdodCB2ZXJzaW9uCisgICBydW4gY29ycmVjdCB2ZXJzaW9uIG9mIGF1dG9jb25mCiAKLTIwMTAtMTItMjkgMDE6NDAgIGhhcmRha2VyCisyMDExLTA2LTEzIDE2OjEwICBoYXJkYWtlcgogCiAgICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CiAKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQogCisyMDExLTA2LTEzIDE2OjA0ICBoYXJkYWtlcgorCisgICAqIGNvbmZpZ3VyZToKKworICAgcmFuIGF1dG9jb25mCisKKzIwMTEtMDYtMTAgMDY6MDMgIG5iYQorCisgICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3NlY3VyaXR5X21vZHVsZXM6CisKKyAgIEZpeCBidWlsZCBvZiBzbm1wdXNtIHdoZW4gYWRkaXRpb25hbCBzZWMgbW9kdWxlcyByZXF1ZXN0ZWQKKworMjAxMS0wNi0wOSAyMToxMyAgbmJhCisKKyAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKKworICAgSW5jbHVkZSBzdGTniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy054it9YCRi++9pPWAjLXniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy09YCSkWIuaCB0byBtYWtlIGRtYWxsb2MgaGFwcHkKKworMjAxMS0wNi0wOSAxNDozNSAgcnN0b3J5CisKKyAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgorCisgICBDSEFOR0VTOiBCVUc6IDMxNTE4NDU6IGZpeCBtdWx0aXBsZSByZWdpc3RyYXRpb25zIG9mIHNubXAKKyAgIHRyYW5zcG9ydCBoYW5kbGVyCisKKzIwMTEtMDYtMDggMTY6MzQgIHJzdG9yeQorCisgICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCisgICAgICBzbm1wbGliL3N5c3RlbS5jOgorCisgICBtb3JlIGRuc3NlYyB0d2Vha3MKKyAgIAorICAgLSBjcmVhdGUgYW4gYXBwLWdsb2JhbCB2YWxpZGF0b3IgY29udGV4dCBmb3IgdXNlIHdpdGggYWxsCisgICB2YWxpZGF0aW9uIHJvdXRpbmVzLiBtYWlubHkgdXNlZnVsIGZvciBsb25nLWxpdmVkIGFwcHMuCisgICAtIHVzZSB0aGUgYXBwdHlwZSBhcyB0aGUgdmFsaWRhdG9yICdzY29wZScsIGFsbG93aW5nCisgICBmb3IgYXBwLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb2YgdmFsaWRhdGlvbiB2aWEgbGlidmFsJ3MKKyAgIGRuc3ZhbC5jb25mCisKKzIwMTEtMDYtMDcgMTY6NDggIHJzdG9yeQorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CisKKyAgIGFkZCBhIG1heCBkZWZpbmUgZm9yIGVhY2ggZGVmYXVsdCBzdG9yZSB0eXBlCisgICAKKyAgIG5vdCBhY3R1YWxseSB1c2VkLCBqdXN0IGEgaGVscGZ1bCByZW1pbmRlciBmb3IgdGhvc2UgYWRkaW5nCisgICBuZXcgaWRzIHdobyBtaWdodCBub3QgdGhpbmsgdG8gY2hlY2sgTkVUU05NUF9EU19NQVhfU1VCSURTLgorICAgKHRoZSBib29sIGxpc3QgaXMgcmFwaWRseSBhcHByb2FjaGluZyB0aGUgY3VycmVudCBsaW1pdC4pCisKKzIwMTEtMDYtMDcgMTY6NDYgIHJzdG9yeQorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKKworICAgbWVudGlvbiBidWlsZGRpciB3aGVuIGNvbXBsYWluaW5nIGFib3V0IG5vdCBiZWluZyBydW4gZnJvbSBzb3VyY2UKKyAgIHRyZWUKKworMjAxMS0wNi0wMSAyMjoyNCAgaGFyZGFrZXIKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKKworICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMzMTAyNTA6IGZyb20gZmVubmVyOiBtaXNjIGZpeGVzIGZvcgorICAgZGVidWdnaW5nIG91dHB1dCBvZiBhZ2VudHgKKworCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQ2hhbmdlczogVjUuNiAtPiBWNS43LnByZTIKKworMjAxMS0wNS0xMCAwMDoyMCAgaGFyZGFrZXIKKworICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCisgICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CisKKyAgIG1ha2UgZGVwZW5kCisKKzIwMTEtMDUtMTAgMDA6MjAgIGhhcmRha2VyCisKKyAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CisKKyAgIEMrKyAtPiBDIGNvbW1lbnRzCisKKzIwMTEtMDUtMTAgMDA6MTcgIGhhcmRha2VyCisKKyAgICogTkVXUzoKKworICAgTkVXUyB1cGRhdGUgZm9yIDUuNworCisyMDExLTA1LTA5IDIzOjE0ICBoYXJkYWtlcgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaDoKKworICAgcmV2ZXJ0IHRoZSBvaWQgdHlwZWRlZiByZXNpemluZyBmcm9tIHIxNzgwOSBiZWNhdXNlIGl0IGJyb2tlCisgICBiYWNrd2FyZHMgY29tcGF0LCBhcyBwb2ludGVkIG91dCBieSB1c2VycyBvbiB0aGUgLWNvZGVycyBsaXN0CisKKzIwMTEtMDUtMDkgMjI6NTEgIGhhcmRha2VyCisKKyAgICogY29uZmlndXJlOgorCisgICB1c2UgcHJvcGVyIGF1dG9jb25mIHZlcnNpb24KKworMjAxMS0wNS0wOSAyMjozOCAgaGFyZGFrZXIKKworICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAorICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBwZXJsL0FTTi9BU04ucG0sICAgCisgICAgICBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLCBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKKyAgICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLAorICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sCisgICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgICAKKyAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgorCisgICBWZXJzaW9uIG51bWJlciB1cGRhdGUKKworMjAxMS0wNS0wOSAyMjozOCAgaGFyZGFrZXIKKworICAgKiBNYWtlZmlsZS50b3A6CisKKyAgIHZlcnNpb24gdXBkYXRlCisKKzIwMTEtMDUtMDkgMjI6MTAgIGhhcmRha2VyCisKKyAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgorCisgICBhZGRlZCBhIG1pc3NpbmcgMCBpbiB0aGUgcmV2aXNpb24gZGF0ZQorCisyMDExLTA1LTA5IDIwOjUyICBuYmEKKworICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6CisKKyAgIFVzZSBzeW1ib2xpYyBuYW1lZCBmb3IgaWZUeXBlIHZhbHVlcworCisyMDExLTA1LTA5IDIwOjQzICBuYmEKKworICAgKiBtaWJzL3JmY21pYnMuZGlmZjoKKworICAgSUFOQSBoYXMgZml4ZWQgdGhlIElBTkEtSVBQTS1NRVRSSUNTLVJFR0lTVFJZLU1JQgorCisyMDExLTA1LTA5IDE1OjI0ICBoYXJkYWtlcgorCisgICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKKworICAgYWRkZWQgYSBuZXcgUkVWSVNJT04gY2xhdXNlIHRvIGxpc3QgdGhlIGNoYW5nZXMgaW4gdGhlIHRoZSByZWNlbnQKKyAgIHVwZGF0ZQorCisyMDExLTA1LTA5IDE0OjE5ICBoYXJkYWtlcgorCisgICAqIE5FV1M6CisKKyAgIGFkZGVkIHBpbmcvdHJhY2Vyb3V0ZSBtaWJzIG5vdGUKKworMjAxMS0wNS0wOSAxNDoxOSAgaGFyZGFrZXIKKworICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgorCisgICB3ZSBhY3R1YWxseSB3YW50IHRvIHVzZSB0aGUgYmFzZSBPSUQgYXMgdGhlIHN0YXJ0aW5nIHBvaW50LCBub3QKKyAgIHRoZSByZWcgT0lELgorCisyMDExLTA1LTA5IDE0OjE4ICBoYXJkYWtlcgorCisgICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CisKKyAgIGZpeGVkIHRoZSBwcm94eSBzdXBwb3J0IHRvIGRvIGEgcHJvcGVyIE9JRCBsZXNzIHRoYW4gT0lEIGNvbXBhcmUuCisgICBXZSBhY3R1YWxseSBkb24ndCBjYXJlIGFib3V0IHRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHJlcXVlc3QsCisgICBvbmx5CisgICB0aGF0IGl0IHdhcyBiZWZvcmUgdGhlIHJlZ2lzdGVyZWQgcmViYXNlCisKKzIwMTEtMDUtMDkgMTQ6MTggIGhhcmRha2VyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKKworICAgQ0hBTkdFUzogcGF0Y2ggMzE0MDgzMzogZnJvbSBqc2FmcmFuZWs6IGZpeCBwcm94eSBHRVRORVhUCisgICByZXF1ZXN0cworICAgV2hlbiBPSURzIHJlcXVlc3RlZCBhcmUgYmVsb3cgdGhlIHByb3h5IHJlcXVlc3QgcmVtYXAsIHdlIG5lZWQgdG8KKyAgIG5vdAorICAgaW5jbHVkZSBhbnkgT0lEcyB0aGF0IG1pZ2h0IGJlIGluIHRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBvcmlnaW5hbAorICAgT0lECisgICBhbmQgdGhlIHJlbWFwcGVkIE9JRC4gVGhpcyBwYXRjaCBmdWRnZXMgdGhlIHJlcXVlc3Qgc28gdGhhdCBpdAorICAgZml4ZXMKKyAgIHRoZSByZXF1ZXN0IE9JRCBzbyBpdCdzIGp1c3QgYmVmb3JlIHRoZSByZW1hcHBlZCBwcm94eSByYW5nZS4KKworMjAxMS0wNS0wOSAxNDoxOCAgaGFyZGFrZXIKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1LmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKKworICAgTkVXUzogUEFUQ0ggMzE2NzMyNTogZnJvbSBrcmlzenRvZm9ybzogVUNELVNOTVAvU3lzdGVtU3RhdHM6IGFkZAorICAgdmFyaWFibGVzCisgICB0byByZXBvcnQgY3B1c3RlYWwsIGNwdWd1ZXN0LCBjcHVndWVzdG5pY2UKKworMjAxMS0wNS0wOSAxNDoxNyAgaGFyZGFrZXIKKworICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmM6CisKKyAgIENIQU5HRVM6IHBhdGNoIDMxODQwMjY6IGZyb20gZWl2bmFlczogQXZvaWQgY29uc3RhbnQgcmVmcmVzaCBvZgorICAgaW50ZXJmYWNlIHN0YXRpc3RpY3MKKworMjAxMS0wNS0wOSAxMDo0NCAgYnZhc3NjaGUKKworICAgKiAgYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXBkZWx0YS5jLCBzbm1wbGliL3NjYXBpLmMsICAgCisgICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYzoKKworICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyByZXBvcnRlZCBieSB0aGUgTVNWQyBjb21waWxlci4KKworMjAxMS0wNS0wOSAxMDozNSAgYnZhc3NjaGUKKworICAgKiBzbm1wbGliL2dldHRpbWVvZmRheS5jOgorCisgICBXaW4zMi9NU1ZDOiBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcuCisKKzIwMTEtMDUtMDkgMTA6MzMgIGJ2YXNzY2hlCisKKyAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CisKKyAgIENIQU5HRVM6IGFnZW50OiBGaXhlZCBhIHllYXItMjAzOCBidWcgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mCisgICBpcFJvdXRlVGFibGUuCisKKzIwMTEtMDUtMDggMjA6MDEgIG5iYQorCisgICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Byb2JlSGlzdG9yeVRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVByb2JlSGlzdG9yeVRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmM6CisKKyAgIEZpeCB3YXJuaW5ncyBhbmQgZGF0YSBmb3JtYXQgZm9yIERhdGVBbmRUaW1lIG9iamVjdHMuCisgICBUaGVzZSBtb2R1bGVzIHdvcmssIGJ1dDoKKyAgIC0gVGhleSBhcmUgTGludXggb25seQorICAgLSBSb3dzIG11c3QgYmUgY3JlYXRlZCB3aXRoIHJvd1N0YXR1cyBjcmVhdGVBbmRXYWl0IGJlZm9yZSB0aGV5CisgICBhcmUgcG9wdWxhdGVkCisgICAtIEFnZW50IG11c3QgcnVuIGFzIHJvb3QKKyAgIC0gQWdlbnQgaXMgYmxvY2tlZCB3aGlsZSB0ZXN0cyBydW4KKyAgIC0gRGF0YSBmb3JtYXQgZm9yIEluZXRBZGRyZXNzIG9iamVjdHMgaXMgd3JvbmcuIEl0IGlzIEFTQ0lJLCBub3QKKyAgIGJpbmFyeQorICAgKG1ha2luZyBpdCBlYXNpZXIgdG8gdXNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYnV0IC4uLikKKworMjAxMS0wNS0wNyAxNToyMiAgYnZhc3NjaGUKKworICAgKiBwZXJsL1NOTVAvU05NUC54czoKKworICAgUmVtb3ZlZCBhbiB1bnVzZWQgbGFiZWwgZnJvbSBwZXJsL1NOTVAvU05NUC54cy4KKworMjAxMS0wNS0wNyAxNDo0OCAgYnZhc3NjaGUKKworICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsICAgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsICAgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaDoKKworICAgQ0hBTkdFUzogc25tcGQ6IERlY2xhcmUgdGhlIE9JRCBhcmd1bWVudCB0eXBlIG9mIE1JQiByZWdpc3RyYXRpb24KKyAgIGZ1bmN0aW9ucyBhcyAnY29uc3Qgb2lkIConIGluc3RlYWQgb2YgJ29pZCAqJyBzaW5jZSB0aGVzZQorICAgZnVuY3Rpb25zIGRvIG5vdCBtb2RpZnkgdGhlIE9JRC4KKworMjAxMS0wNS0wNyAxNDo0NCAgYnZhc3NjaGUKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9uZXRsaW5rLmMsICAgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oOgorCisgICBVc2UgdGhlIGNvcnJlY3QgZGF0YSB0eXBlIGZvciB0aGUgJ2NhY2hlIGV4cGlyZWQnIHZhcmlhYmxlOiBjaGFyCisgICBpbnN0ZWFkIG9mIGludC4KKworMjAxMS0wNS0wNyAxNDo0MyAgYnZhc3NjaGUKKworICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgorCisgICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiByMjAxNTEuCisKKzIwMTEtMDUtMDcgMTM6MTUgIGJ2YXNzY2hlCisKKyAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CisKKyAgIFdpbjMyOiBpbXByb3ZlZCBzb3VyY2UgY29kZSBjb25zaXN0ZW5jeSBieSB1c2luZyBMUENUU1RSIGluc3RlYWQKKyAgIG9mIExQQ1NUUi4gTm90ZTogdGhpcyBkb2VzIG5vdCBtZWFuIHRoYXQgVW5pY29kZSBidWlsZHMgYXJlCisgICBzdXBwb3J0ZWQuCisKKzIwMTEtMDUtMDcgMTM6MTQgIG5iYQorCisgICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbmV0bGluay5jOgorCisgICBBZGQgZmlsZSBmb3Jnb3R0ZW4gaW4gcjIwMzUzCisKKzIwMTEtMDUtMDYgMjM6MzIgIGhhcmRha2VyCisKKyAgICogIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycC5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwgIAorICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCisgICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmg6CisKKyAgIENIQU5HRVM6IHNubXBkOiBQQVRDSCAzMTI1OTY6IGZyb20gZmFibGVkODA6IGxpc3RlbiBmb3IgbmV0bGluaworICAgY2hhbmdlIGV2ZW50cyBmb3IgdGhlIGFycC1yZWxhdGVkIHRhYmxlcworCisyMDExLTA1LTA2IDE4OjM2ICByc3RvcnkKKworICAgKiBzbm1wbGliL3N5c3RlbS5jOgorCisgICBORVdTOiBzbm1wbGliOiBhZGQgb3B0aW9uYWwgc3VwcG9ydCBmb3IgbG9jYWwgRE5TU0VDIHZhbGlkYXRpb24KKyAgIG9mIGhvc3RuYW1lcworICAgCisgICAtIG9wdGlvbmFsIGF0IGNvbmZpZ3VyZSB0aW1lOiAtLXdpdGgtbG9jYWwtZG5zc2VjLXZhbGlkYXRpb24KKyAgIC0gcmVxdWlyZXMgRE5TU0VDLVRvb2wgdmFsaWRhdGlvbiBsaWJyYXJpZXMKKyAgIC0gaW5pdGlhbCBzdXBwb3J0LCBmb3Igc3lzdGVtcyB3aXRoIGdldGFkZHJpbmZvLiBzdXBwb3J0IGZvcgorICAgYWRkaXRpb25hbAorICAgcmVzb2x2ZXIgaW50ZXJmYWNlcyBjb21pbmcgc29vbi4KKyAgIC0gYWxzbyBUT0RPOiBmbGFnIGZvciBpZ25vcmluZyB2YWxpZGF0b2luIGVycm9ycyAobG9nICYgY29udGludWUpCisKKzIwMTEtMDUtMDYgMTg6MzYgIHJzdG9yeQorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oOgorCisgICBtb3ZlIHVudXNlZCAoYW5kIHRvbyBnZW5lcmljKSB0b2tlbiB3aXRoaW4gVUNEX0NPTVBBVElCTEUgaWZkZWYKKyAgIAorICAgLSBNQVhMQUJFTCBjb25mbGljdHMgd2l0aCA8YXJwYS9uYW1lc2VyLmg+CisgICAtIGFkZGVkIE5FVFNOTVBfTUFYTEFCRUwKKworMjAxMS0wNS0wNiAxODozNiAgcnN0b3J5CisKKyAgICogIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCAgIAorICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCAgIAorICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAgIAorICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgorCisgICB1cGRhdGUgY29uZmlndXJlL01ha2VmaWxlcyBmb3IgRE5TU0VDIGxvY2FsIHZhbGlkYXRpb24gb3B0aW9uCisKKzIwMTEtMDUtMDYgMTQ6MzggIGhhcmRha2VyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKKworICAgcmVtb3ZlZCB0aGUgYWNjaWRlbnRhbCBicm9rZW4gZmVhdHVyZSByZXF1aXJlIGxpbmUgdGhhdCBnb3QgaGFsZgorICAgaW5zZXJ0ZWQKKworMjAxMS0wNS0wNiAxMzo1MCAgZHRzMTIKKworICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CisKKyAgIEZpeCBpbmNvbXBsZXRlIHVuaW5zdGFsbCBjb25maWd1cmF0aW9uOgorICAgLSBicm9rZW4gcmVtb3ZhbCBvZiBNaWNyb3NvZnQgRExMCisgICAtIHJlbW92ZSBhc3NvcnRlZCBuZXcgTUlCcyBhbmQgaGVhZGVyIGZpbGVzCisKKzIwMTEtMDUtMDYgMTI6NTggIGR0czEyCisKKyAgICogd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6CisKKyAgIFN1cHBvcnQgVGFyL0daaXAgY29tbWFuZCBwYXRocyBjb250YWluaW5nIHNwYWNlcworCisyMDExLTA1LTA2IDEyOjU3ICBkdHMxMgorCisgICAqIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsOgorCisgICBSZXBvcnQgR1ppcCBjb21tYW5kIGNvcnJlY3RseQorCisyMDExLTA1LTA1IDIxOjQ4ICBuYmEKKworICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jOgorCisgICBGaXggZm9yIERyYWdvbkZseSBCU0QgKGRvZXMgbm90IGRlZmluZSBJUF9TRU5EU1JDQUREUikKKworMjAxMS0wNS0wNSAyMDoyOSAgbmJhCisKKyAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oOgorCisgICBGaXggc3BlbGxpbmcgb2YgU09fUkVDVkRTVEFERFIKKworMjAxMS0wNS0wNSAxODo1NCAgcnN0b3J5CisKKyAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIG1hbi9zbm1wLmNvbmYuNS5kZWYsICAgCisgICAgICBzbm1wbGliL3NubXBfYXBpLmM6CisKKyAgIE5FV1M6IGFwcHM6IGFkZCBzbm1wLmNvbmYgdG9rZW5zIGZvciB0aW1lb3V0cyBhbmQgcmV0cmllcworCisyMDExLTA1LTA1IDA2OjA3ICBidmFzc2NoZQorCisgICAqIHNubXBsaWIvdG9vbHMuYywgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6CisKKyAgIENIQU5HRVM6IE1pbkdXOiBNYWRlIHJlZ3Jlc3Npb24gdGVzdCBvdXRwdXQgaW5kZXBlbmRlbnQgb2YgdGhlCisgICBOZXQtU05NUCB2YXJpYWJsZXMgZGVmaW5lZCBpbiB0aGUgV2luZG93cyByZWdpc3RyeS4gU29tZSB0ZXN0cworICAgdGhhdCBmYWlsZWQgcHJldmlvdXNseSBhZnRlciB0aGUgTmV0LVNOTVAgYmluYXJpZXMgKE1TVkMgYnVpbGQpCisgICBoYWQgYmVlbiBpbnN0YWxsZWQgZG8gbm93IHBhc3MuCisKKzIwMTEtMDUtMDUgMDU6NTcgIGJ2YXNzY2hlCisKKyAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osICAgCisgICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osICAgCisgICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC52Y3Byb2osICAgCisgICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osICAgCisgICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osICAgCisgICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osICAgCisgICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCAKKyAgICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCAgIAorICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osIAorICAgICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwKKyAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osICAgCisgICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKKyAgICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAgIAorICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qLCB3aW4zMi93aW4zMi5zbG4sICAgCisgICAgICB3aW4zMi93aW4zMmRsbC5zbG46CisKKyAgIFJlbW92ZWQgVmlzdWFsIFN0dWRpbyAyMDA1IHNvbHV0aW9uIGFuZCBwcm9qZWN0IGZpbGVzIGFnYWluIHNpbmNlCisgICBWaXN1YWwgU3R1ZGlvIDIwMTAgcmVmdXNlcyB0byBsb2FkIHRoZXNlLgorCisyMDExLTA1LTA0IDIzOjQzICBoYXJkYWtlcgorCisgICAqIE1ha2VmaWxlLmluOgorCisgICBjbGVhbiB0aGUgcGVybC9weXRob24gZmVhdHVyZSBsZWZ0b3ZlcnMKKworMjAxMS0wNS0wNCAyMzo0MiAgaGFyZGFrZXIKKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKKworICAgZml4IG1pYiBtb2R1bGUgaW52b2NhdGlvbgorCisyMDExLTA1LTA0IDIwOjU3ICBoYXJkYWtlcgorCisgICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKKworICAgZml4IGlmZGVmIHR5cG8KKworMjAxMS0wNS0wNCAyMDo1NiAgaGFyZGFrZXIKKworICAgKiBNYWtlZmlsZS5pbjoKKworICAgZml4IHBlcmwvcHl0aG9uIGZlYXR1cmUgZGVwZW5kZW5jaWVzCisKKzIwMTEtMDUtMDQgMjA6NTYgIGhhcmRha2VyCisKKyAgICogYWdlbnQvYXV0b19ubGlzdC5jOgorCisgICByZXZlcnRlZCBhdXRvX25saXN0IG1hY3JvIHVzYWdlOyB0aGUgZnVuY3Rpb24gaXMgdXNlZCBpbiBoZWFkZXJzCisKKzIwMTEtMDUtMDQgMjA6NTYgIGhhcmRha2VyCisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CisKKyAgIEFkZCBhIC1UIG9wdGlvbiB0byBydW4gJ21ha2UgdGVzdCcKKworMjAxMS0wNS0wNCAyMDo1NiAgaGFyZGFrZXIKKworICAgKiBhcHBzL01ha2VmaWxlLmluOgorCisgICBmaXggdGhlIGVuY29kZV9rZXljaGFuZ2UgLmZ0IGZpbGVuYW1lCisKKzIwMTEtMDUtMDQgMTY6MjAgIGhhcmRha2VyCisKKyAgICogcGVybC9UcmFwUmVjZWl2ZXIvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsIHNubXBsaWIvdG9vbHMuYzoKKworICAgZml4IHRoZSBmZWF0dXJlcyByZXF1aXJlZCBieSB0aGUgVHJhcFJlY2VpdmVyIG1vZHVsZQorCisyMDExLTA1LTA0IDE2OjIwICBoYXJkYWtlcgorCisgICAqIE1ha2VmaWxlLmluOgorCisgICBBZGQgdGhlIFRyYXBSZWNlaXZlciB0byB0aGUgbGlzdCBvZiBwZXJsIG1vZHVsZXMKKworMjAxMS0wNS0wNCAxNDo0MiAgaGFyZGFrZXIKKworICAgKiBwZXJsL1NOTVAvU05NUC54czoKKworICAgdXNlIHRoZSBuZXdlciBOZXQtU05NUCBBUElzLCByYXRoZXIgdGhhbiB0aGUgb2xkZXIgVUNEIG9uZXMKKworMjAxMS0wNS0wNCAxNDo0MSAgaGFyZGFrZXIKKworICAgKiBwZXJsL1NOTVAvU05NUC54czoKKworICAgcmVtb3ZlIFNFVCBjb2RlIHdoZW4gdW5kZXIgLS1yZWFkLW9ubHkgbW9kZQorCisyMDExLTA1LTA0IDE0OjQxICBoYXJkYWtlcgorCisgICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYzoKKworICAgcmVxdWlyZSBjaGVja192Yl91aW50CisKKzIwMTEtMDUtMDQgMTQ6NDEgIGhhcmRha2VyCisKKyAgICogCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VudC5jLAorICAgICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjLCAgIAorICAgICAgcHl0aG9uL25ldHNubXAvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsICAgCisgICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgorCisgICBsYXN0IG9mIHRoZSBwZXJsLXVzZWQgZmVhdHVyZSBmdW5jdGlvbnMKKworMjAxMS0wNS0wNCAxNDo0MCAgaGFyZGFrZXIKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW50LmMsCisgICAgICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgICAKKyAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYzoKKworICAgc3RhcnRlZCB0aGUgZmluYWwgc2V0IG9mIGZ1bmN0aW9uIHJlbW92YWxzIGZvciBmZWF0dXJlcyByZXF1aXJlZAorICAgYnkgcGVybC9weXRob24KKworMjAxMS0wNS0wNCAxNDozOSAgaGFyZGFrZXIKKworICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1zb3VyY2UtaW5jbHVkZXMubTJpOgorCisgICBhZGRlZCB0aGUgbmV0LXNubXAtZmVhdHVyZXMuaCBoZWFkZXIKKworMjAxMS0wNS0wNCAxNDozOSAgaGFyZGFrZXIKKworICAgKiAgcGVybC9PSUQvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsICAgCisgICAgICBwZXJsL1NOTVAvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsICAgCisgICAgICBwZXJsL1RyYXBSZWNlaXZlci9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgICAKKyAgICAgIHBlcmwvYWdlbnQvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmg6CisKKyAgIEFkZGVkIHBlcmwgZmVhdHVyZSByZXF1aXJlbWVudHMKKworMjAxMS0wNS0wNCAxNDozOSAgaGFyZGFrZXIKKworICAgKiAgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzLCBjb25maWd1cmUsICAgCisgICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbiwgICAKKyAgICAgIHBlcmwvQVNOL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAgIAorICAgICAgcGVybC9PSUQvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsICAgCisgICAgICBwZXJsL1NOTVAvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsICAgCisgICAgICBwZXJsL2FnZW50L25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAgIAorICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oOgorCisgICBob3BlZnVsbHkgd29ya2luZyBydWxlcyB0byBhcHBseSBmZWF0dXJlIHJlcXVpcmVtZW50cyB0byBwZXJsIGFuZAorICAgcHl0aG9uCisKKzIwMTEtMDUtMDQgMTQ6MzggIGhhcmRha2VyCisKKyAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyLmMsICAgCisgICAgICBhZ2VudC9zbm1wX2FnZW50LmM6CisKKyAgIG1vcmUgY2hhbmdlcyB0byByZW1vdmUgdW5uZWVkZWQgZnVuY3Rpb25zIHByaW1hcmlseSB3aGVuIHdyaXRlCisgICBtb2RlIGlzIHR1cm5lZCBvZmYKKworMjAxMS0wNS0wNCAxNDozNyAgaGFyZGFrZXIKKworICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgorCisgICBjaGFuZ2UgdGhlIHdhbnQgaW52b2NhdGlvbiB0byBvbmx5IGRlZmF1bHQgdG8gZXhjbHVkZSBleHRlcm5hbAorICAgaG9va3MKKworMjAxMS0wNS0wNCAxNDozNyAgaGFyZGFrZXIKKworICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGU6CisKKyAgIHNlYXJjaCB0aHJvdWdoIC54cyBmaWxlcyBmb3IgZnVuY3Rpb24gaW52b2NhdGlvbnMKKworMjAxMS0wNS0wNCAxNDozNyAgaGFyZGFrZXIKKworICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CisKKyAgIGZvcmdvdCBhIHNlbWljb2xvbgorCisyMDExLTA1LTA0IDE0OjM3ICBoYXJkYWtlcgorCisgICAqICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYzoKKworICAgaXF1ZXJ5IHBkdSBzZXNzaW9ucyBhcmUgb25seSBuZWVkZWQgaW4gd3JpdGUgbW9kZS4KKworMjAxMS0wNS0wNCAxNDozNiAgaGFyZGFrZXIKKworICAgKiBhcHBzL01ha2VmaWxlLmluOgorCisgICBmaXggZmVhdHVyZSBkZXRlY3Rpb24gb2Ygc29tZXRpbWVzLWJ1aWx0IGFwcGxpY2F0aW9ucworCisyMDExLTA1LTA0IDE0OjM2ICBoYXJkYWtlcgorCisgICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKKworICAgdXNlIHRoZSBmZWF0dXJlX3VudXNlZCBtYWNybyBmb3IgbWFraW5nIGFuIGVtcHR5IGZpbGUgZm9yCisgICBjb25zaXN0ZW5jeQorCisyMDExLTA1LTA0IDE0OjM2ICBoYXJkYWtlcgorCisgICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsICAKKyAgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmMsCisgICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAorICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAorICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCBhcHBzL3NubXB0bHMuYywgICAKKyAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsICAgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKKworICAgQW5vdGhlciBzd2VlcCBmb3IgdW51c2VkIGZ1bmN0aW9ucyB3aGVuIHJlYWRfb25seSBtb2RlIGlzIHR1cm5lZAorICAgb24KKworMjAxMS0wNS0wNCAxNDozNCAgaGFyZGFrZXIKKworICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgIAorICAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdFRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKKyAgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKKyAgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKKyAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAorICAgICAgICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CisKKyAgIG1hcmsgYSBzbGV3IG9mIGZ1bmN0aW9ucyBhcyBmZWF0dXJlcyB0aGF0IGFyZSBvbmx5IG5lZWRlZCB3aXRoCisgICB3cml0ZV9zdXBwb3J0CisKKzIwMTEtMDUtMDQgMTQ6MzIgIGhhcmRha2VyCisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlOgorCisgICBydW4gZ3JlcCB3aXRoIC1uCisKKzIwMTEtMDUtMDQgMTQ6MzIgIGhhcmRha2VyCisKKyAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKKworICAgZmVhdHVyaXplIG5ldHNubXBfc29ja2FkZHJfc2l6ZQorCisyMDExLTA1LTA0IDE0OjMyICBoYXJkYWtlcgorCisgICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKKworICAgcmVtb3ZlIGEgZmVhdHVyZV9yZXF1aXJlIG5vdCBhY3R1YWxseSBuZWVkZWQuCisKKzIwMTEtMDUtMDQgMTQ6MzEgIGhhcmRha2VyCisKKyAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jb250YWluZXIuYzoKKworICAgbWFyayBTVUJDT05UQUlORVJfRklORCBhcyBhIGZlYXR1cmUKKworMjAxMS0wNS0wNCAxNDozMSAgaGFyZGFrZXIKKworICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcHRzbS5jOgorCisgICB0aGUgcm93IGNyZWF0aW9uIEFQSSBpcyBvbmx5IHVzZWQgaW4gdGhlIFRTTSBpbXBsZW1lbnRhdGlvbgorCisyMDExLTA1LTA0IDE0OjMxICBoYXJkYWtlcgorCisgICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdHNtLmM6CisKKyAgIHRoZSBuZXdlciBjb250ZXh0IGVuZ2luZUlEIHByb2JpbmcgaXMgb25seSBuZWVkZWQgaWZmIFRTTSBpcyBpbgorICAgdXNlCisKKzIwMTEtMDUtMDQgMTQ6MzAgIGhhcmRha2VyCisKKyAgICogc25tcGxpYi9kaXJfdXRpbHMuYzoKKworICAgZml4IGFuIGlmZGVmIHR5cG8KKworMjAxMS0wNS0wNCAxNDozMCAgaGFyZGFrZXIKKworICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgorCisgICBtb3ZlZCBmZXRhdXJlIGNoaWxkX29mIHN0YXRlbWVudHMgdG8gdGhlIHRvcCBvZiB0aGUgZmlsZQorCisyMDExLTA1LTA0IDE0OjMwICBoYXJkYWtlcgorCisgICAqICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NvbnRhaW5lci5jLCBzbm1wbGliL2Rpcl91dGlscy5jLCAgIAorICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKKworICAgbWFya2VkIGEgY291cGxlIG9mIHJhcmVseSB1c2VkIGNvbnRhaW5lciBmdW5jdGlvbnMuCisKKzIwMTEtMDUtMDQgMTQ6MjkgIGhhcmRha2VyCisKKyAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKKworICAgc3BsaXQgb3V0IHRoZSBwcmVmaXhfaW5mbyBmZWF0dXJlIGludG8gc3ViLWZlYXR1cmVzCisKKzIwMTEtMDUtMDQgMTQ6MjkgIGhhcmRha2VyCisKKyAgICogCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmM6CisKKyAgIG1hcmsgdGhlIGFjY2Vzc29yIGZ1bmN0aW9ucyBhcyB1bm5lZWRlZAorCisyMDExLTA1LTA0IDE0OjI5ICBoYXJkYWtlcgorCisgICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmM6CisKKyAgIGZpeCBhIGNoaWxkX29mIHN0YXRlbWVudCB3aXRoIGEgY29weS9wYXN0ZSBlcnJvcgorCisyMDExLTA1LTA0IDE0OjI4ICBoYXJkYWtlcgorCisgICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKKworICAgdGhlIGNvbnRhaW5lciByb3ctcmVtb3ZlIGlzIG9ubHkgbmVlZGVkIGlmIHRoZSB0ZGF0YSByZW1vdmVfcm93CisgICBpcyBuZWVkZWQKKworMjAxMS0wNS0wNCAxNDoyOCAgaGFyZGFrZXIKKworICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAorICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CisKKyAgIGZlYXR1cmUgbWFya2luZyBvZiB1bnVzZWQgdGRhdGEgZnVuY3Rpb25zCisgICB0YWJsZV90ZGF0YV9kZWxldGVfdGFibGUKKyAgIHRhYmxlX3RkYXRhX2V4dHJhY3RfdGFibGUKKyAgIHRhYmxlX3RkYXRhX3JlbW92ZV9yb3cKKworMjAxMS0wNS0wNCAxNDoyNyAgaGFyZGFrZXIKKworICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmM6CisKKyAgIHJlbW92YWwgb2Ygc29tZSByYXJlbHkgdXNlZCBmdW5jdGlvbnMKKyAgIHRhYmxlX3NldF9tdWx0aV9hZGRfZGVmYXVsdF9yb3cKKyAgIHRhYmxlX2RhdGFzZXRfdW5yZWdpc3Rlcl9hdXRvX2RhdGFfdGFibGUKKworMjAxMS0wNS0wNCAxNDoyNyAgaGFyZGFrZXIKKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKKworICAgQWRkZWQgYSBkZWZpbml0aW9uIHRvIGluY29ycG9yYXRlIHJlYWRfb25seS9ub3RpZnlfb25seQorCisyMDExLTA1LTA0IDE0OjI3ICBoYXJkYWtlcgorCisgICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgorCisgICBhZGRlZCBhIG1pc3NpbmcgZmVhdHVyZSBkZWZpbml0aW9uIGxpbmUKKworMjAxMS0wNS0wNCAxNDoyNiAgaGFyZGFrZXIKKworICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKKworICAgYWRkZWQgYmFjayBpbiBtaXNzaW5nIG1pYmdyb3VwIGZlYXR1cmUgZGVmaW5pdGlvbiBsaXN0CisKKzIwMTEtMDUtMDQgMTQ6MjYgIGhhcmRha2VyCisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CisKKyAgIEluY2x1ZGUgdGhlIG9yaWdpbmFsIGJhc2UgZmxhZ3MgdG8gZW5zdXJlIC0td2l0aC1kZWZhdWx0cyBnZXRzCisgICBwaWNrZWQgdXAKKworMjAxMS0wNS0wNCAxNDoyNiAgaGFyZGFrZXIKKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKKworICAgZml4IHVzYWdlCisKKzIwMTEtMDUtMDQgMTQ6MjYgIGhhcmRha2VyCisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CisKKyAgIEFkZGVkIGEgLWIgZmxhZyBmb3IgYmFzZSBhcmd1bWVudHMgdG8gc3RhcnQgZnJvbQorCisyMDExLTA1LTA0IDE0OjI1ICBoYXJkYWtlcgorCisgICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgorCisgICBkZWZhdWx0IHRvIGEgbGluZWFyIHNlYWNoIG9mIHNpemUgdGVzdHMsIHJhdGhlciB0aGFuIGV4cG9uZW50aWFsCisKKzIwMTEtMDUtMDMgMTg6NTUgIGJ2YXNzY2hlCisKKyAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKKworICAgQ0hBTkdFUzogc25tcGxpYjogR3VhcmQgbmV0c25tcF91ZHBfcmVjdmZyb20oKSBldGMuIGRlY2xhcmF0aW9ucworICAgY29uc2lzdGVudGx5LgorICAgQ0hBTkdFUzogV2luMzI6IEJ1aWxkcyB3aXRoIFZpc3VhbCBTdHVkaW8gMjAxMC4KKworMjAxMS0wNS0wMyAxNToyOSAgYnZhc3NjaGUKKworICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKKworICAgQ0hBTkdFUzogV2luMzI6IFBBVENIOiAzMjkzODQyOiBFbGltaW5hdGUgcmVnaXN0cnkgYXJndW1lbnQgbGltaXQKKyAgIG9mIDEyNyBjaGFyYWN0ZXJzICh0aGlzIGxpbWl0YXRpb24gd2FzIHJlcG9ydGVkIGJ5IFN5bHZhaW4gRGVyeSkuCisKKzIwMTEtMDUtMDIgMTE6MjIgIGJ2YXNzY2hlCisKKyAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAorICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CisKKyAgIENIQU5HRVM6IFdpbjMyOiBoZWFkZXIgZmlsZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNhbiBub3cKKyAgIGJlIHVzZWQgaW4gdGhlIE1pbkdXIGVudmlyb25tZW50LgorCisyMDExLTA0LTI5IDExOjE3ICBidmFzc2NoZQorCisgICAqIHNubXBsaWIvd2luc2VydmljZS5jOgorCisgICBTcGVsbGluZyBhbmQgZ3JhbW1hciBmaXhlcyBmb3IgdGhlIHNvdXJjZSBjb2RlIGNvbW1lbnRzIGluCisgICBzbm1wbGliL3dpbnNlcnZpY2UuYy4KKworMjAxMS0wNC0yOSAwMDoyMyAgaGFyZGFrZXIKKworICAgKiBORVdTOgorCisgICBhZGRlZCBub3RlIGFib3V0IHRoZSBuZXcgdGltaW5nIGZ1bmN0aW9uCisKKzIwMTEtMDQtMjkgMDA6MTQgIGhhcmRha2VyCisKKyAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CisKKyAgIFVwZGF0ZSB0aGUgbWFudWFsIHBhZ2UgdG8gcmVmbGVjdCB0aGUgbmV3IHRpbWluZyBvcHRpb25zCisKKzIwMTEtMDQtMjkgMDA6MTQgIGhhcmRha2VyCisKKyAgICogc25tcGxpYi90b29scy5jOgorCisgICBiZXR0ZXIgZG9jdW1lbnRhdGlvbgorCisyMDExLTA0LTI5IDAwOjE0ICBoYXJkYWtlcgorCisgICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jOgorCisgICB1c2UgdGhlIG5ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2VjcygpIGZvciBwYXJzaW5nCisgICBmcmVxdWVuY2llcy90aW1lCisKKzIwMTEtMDQtMjkgMDA6MTMgIGhhcmRha2VyCisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIuYzoKKworICAgZml4IHBkdSBidWlsZGluZyB0ZXN0cyB1bmRlciB2YXJpb3VzIGRpc2FibGVkIG1vZGVzCisKKzIwMTEtMDQtMjkgMDA6MTMgIGhhcmRha2VyCisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIuYzoKKworICAgZG9uJ3QgdHJ5IHRvIGJ1aWxkIHRoZSBHRVQgcGR1IHVuZGVyIG5vdGlmeV9vbmx5CisKKzIwMTEtMDQtMjkgMDA6MTIgIGhhcmRha2VyCisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKKworICAgZml4IGEgYnVnIHdpdGggbm8tc3VmZml4IHN0cmluZ3MgYW5kIHVzZSBhIGNvbnN0IGlucHV0IHN0cmluZworCisyMDExLTA0LTI5IDAwOjEyICBoYXJkYWtlcgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAxMG5ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2Vjc19jbGliLmM6CisKKyAgIEEgbmV3IHVuaXQgdGVzdCBmb3IgdGhlIHRpbWUgY29udmVyc2lvbiByb3V0aW5lCisKKzIwMTEtMDQtMjkgMDA6MTIgIGhhcmRha2VyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKKworICAgdXNlIHRoZSBuZXRzbm1wX3N0cmluZ190aW1lX3RvX3NlY3MoKSBmdW5jdGlvbiBmb3IgY29tcHV0aW5nCisgICBpbnRlcnZhbCBwZXJpb2RzCisKKzIwMTEtMDQtMjkgMDA6MTEgIGhhcmRha2VyCisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKKworICAgQWRkZWQgYSBuZXRzbm1wX3N0cmluZ190aW1lX3RvX3NlY3MoKSBmdW5jdGlvbnMgdG8gY29udmVydCwgZS5nLiwKKyAgIDFoIHRvIDM2MDAKKworMjAxMS0wNC0yOSAwMDoxMSAgaGFyZGFrZXIKKworICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CisKKyAgIHJlbW92ZSBjb2RlIHRvIGJ1aWxkL3BhcnNlIEdFVC9ldGMgcmVxdWVzdHMgd2hlbiBOT1RJRllfT05MWSBpcworICAgdHVybmVkIG9uLgorCisyMDExLTA0LTI3IDIxOjMzICBoYXJkYWtlcgorCisgICAqIE5FV1M6CisKKyAgIHVwZGF0ZSB0aGUgTkVXUyB0byByZWZsZWN0IHRoZSBuZXcgLS1lbmFibGUtcmVhZC1vbmx5IGFuZAorICAgLS1lbmFibGUtbm90aWZ5LW9ubHkKKworMjAxMS0wNC0yNyAyMTozMyAgaGFyZGFrZXIKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKKworICAgbWlub3IgaW1wcm92ZW1lbnRzIGZvciByb25seSB2cyByd3JpdGUgaGFuZGxpbmcKKworMjAxMS0wNC0yNyAyMTozMiAgaGFyZGFrZXIKKworICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jOgorCisgICBzdGlsbCBlbmFibGUgUk9OTFkgd2hlbiBSV1JJVEUgaXNuJ3QgcG9zc2libGUKKworMjAxMS0wNC0yNyAyMTozMiAgaGFyZGFrZXIKKworICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKKworICAgZml4IEdFVCBzdXBwb3J0IHdoZW4gbm9fd3JpdGUgaXMgZW5hYmxlZAorCisyMDExLTA0LTI3IDIxOjMyICBoYXJkYWtlcgorCisgICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CisKKyAgIG1hcmsgYSBmdXR1cmUgbW9kaWZpY2F0aW9uIG5lZWQgaW4gYSBjb21tZW50CisKKzIwMTEtMDQtMjcgMjE6MzEgIGhhcmRha2VyCisKKyAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CisKKyAgIGZpeCBoYW5kbGluZyBvZiBub193cml0ZSBzdXBwb3J0CisKKzIwMTEtMDQtMjcgMjE6MzEgIGhhcmRha2VyCisKKyAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jOgorCisgICBkb24ndCBvcGVuIGFueSBsaXN0ZW5pbmcgdHJhbnNwb3J0cyB3aGVuIG5vdGlmeS1vbmx5IGlzIHNwZWNpZmllZAorCisyMDExLTA0LTI3IDIxOjMxICBoYXJkYWtlcgorCisgICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CisKKyAgIHNldCB0aGUgbm8tbGlzdGVuIGFuZCByZWFkLW9ubHkgZmxhZ3Mgd2hlbiAtLWVuYWJsZS1ub3RpZnktb25seQorICAgaXMgc2V0CisKKzIwMTEtMDQtMjcgMjE6MzAgIGhhcmRha2VyCisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKKworICAgcmFuIGF1dG9oZWFkZXIKKworMjAxMS0wNC0yNyAyMTozMCAgaGFyZGFrZXIKKworICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmMsICAgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmMsICAgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jLCAgIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgICAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgICAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6CisKKyAgIGltcGxlbWVudCB0aGUgTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVCBpbiB0aGVzZSB0cmFuc3BvcnRzCisKKzIwMTEtMDQtMjcgMjE6MzAgIGhhcmRha2VyCisKKyAgICogY29uZmlndXJlOgorCisgICBydW4gYXV0b2NvbmYKKworMjAxMS0wNC0yNyAyMToyOSAgaGFyZGFrZXIKKworICAgKiBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKKworICAgbW92ZSB0aGUgcmVhZC1vbmx5IGZsYWcgZGVmaW5pdGlvbiBiZWxvdyB0aGUgbm90aWZ5LW9ubHksIHNpbmNlCisgICBub3RpZnktb25seSBuZWVkcyB0byBpbXBseSByZWFkLW9ubHkKKworMjAxMS0wNC0yNyAyMToyOSAgaGFyZGFrZXIKKworICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgorCisgICBEZWZpbmVkIGEgbmV3IC0tZW5hYmxlLW5vdGlmeS1vbmx5IGZsYWcgZm9yIGJ1aWxkaW5nIGEgdG9vbHNldAorICAgdGhhdCBvbmx5IGFsbG93cyBmb3Igbm90aWZpY2F0aW9ucyB3aXRoIG5vIHJlYWQvd3JpdGUgc3VwcG9ydAorCisyMDExLTA0LTI3IDIxOjI5ICBoYXJkYWtlcgorCisgICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CisKKyAgIERlZmluZWQgYSBuZXcgLS1uby1saXN0ZW4gZmxhZyB0byByZW1vdmUgbGlzdGVuaW5nIHN1cHBvcnQKKworMjAxMS0wNC0yNyAyMToyOCAgaGFyZGFrZXIKKworICAgKiBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaDoKKworICAgdGhlIGRpc21hbiBzY2hlZHVsZSBtaWIgaXMgb25seSB1c2VmdWwgd2hlbiBTRVRzIGFyZSB0dXJuZWQgb24KKworMjAxMS0wNC0yNyAyMToyOCAgaGFyZGFrZXIKKworICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4uaDoKKworICAgdGhlIGRpc21hbiBzY2hlZHVsZSBtaWIgaXMgb25seSB1c2VmdWwgd2hlbiBTRVRzIGFyZSB0dXJuZWQgb24KKworMjAxMS0wNC0yNyAyMToyOCAgaGFyZGFrZXIKKworICAgKiAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgIAorICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgCisgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKKyAgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jOgorCisgICBmaW5pc2hlZCBub193cml0ZSBzdXBwb3J0IGZvciBjb21tb24gaW5jbHVkZWQgdGFibGVzCisKKzIwMTEtMDQtMjcgMjE6MjcgIGhhcmRha2VyCisKKyAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CisKKyAgIEFkZCBiYWNrIGluICduZXRzbm1wX3NldF9yb3dfY29sdW1uJyB3aGVuIG5vX3dyaXRlIHN1cHBvcnQgaXMKKyAgIGVuYWJsZWQKKyAgIFRoaXMgZnVuY3Rpb24gaXMgYSBnZW5lcmljIGRhdGEgbWFuaXB1bGF0aW9uIGZ1bmN0aW9uLCBub3QgU0VUCisgICBzcGVjaWZpYworCisyMDExLTA0LTI3IDIxOjI3ICBoYXJkYWtlcgorCisgICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgorCisgICBkb24ndCB1c2UgbWFya19yb3dfY29sdW1uX3dyaXRhYmxlIHdoZW4gcmVhZC1vbmx5IHN1cHBvcnQgaXMKKyAgIGVuYWJsZWQKKworMjAxMS0wNC0yNyAyMToyNiAgaGFyZGFrZXIKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAKKyAgICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgorCisgICBmaXggbm9fd3JpdGUgc3VwcG9ydAorCisyMDExLTA0LTI3IDIxOjI2ICBoYXJkYWtlcgorCisgICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgorCisgICBmaXggbm9fd3JpdGUgc3VwcG9ydAorCisyMDExLTA0LTI3IDIxOjE2ICBoYXJkYWtlcgorCisgICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKKworICAgRG9uJ3QgZnJlZSB0aGUgaWZYVGFibGUgcm93IGZvdW5kIG9uIGxvYWQgZmFpbHVyZSBhcyB3ZSBkb24ndCBvd24KKyAgIGl0CisKKzIwMTEtMDQtMjYgMTg6MTYgIGhhcmRha2VyCisKKyAgICogbG9jYWwvZ2l0dG9vbHMsIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczoKKworICAgZ2l0IGJhc2gtc2hlbGwgZnVuY3Rpb25zIHRvIGVuYWJsZSBicmFuY2ggc3dpdGNoaW5nIGFuZCBleHRlcm5hbAorICAgYnVpbGRpbmcKKyAgIFRoZXNlIGxvY2FsIHNoZWxsIGZ1bmN0aW9ucyAoc25tcGNvbmZpZ3VyZSBhbmQgc25tcG1ha2UpIGxldCB5b3UKKyAgIGNvbmZpZ3VyZSBhbmQgYnVpbGQgdGhlIE5ldC1TTk1QIHNvdXJjZSBjb2RlIGluIGV4dGVybmFsCisgICBkaXJlY3RvcmllcworICAgdGhhdCBhcmUgYXV0by1jYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBleGlzdGluZyBicmFuY2ggbmFtZSAod2l0aAorICAgYW4KKyAgIG9wdGlvbmFsIHN1ZmZpeCkuIFRoaXMgbGV0cyB5b3UgcnVuICdzbm1wbWFrZScgZnJvbSB3aXRoaW4gdGhlCisgICBzb3VyY2UKKyAgIGRpcmVjdG9yeSBhbmQgaGF2ZSBpdCBhY3R1YWxseSBleHRlcm5hbGx5IGtlZXAgdHJhY2sgb2YgbW9kaWZpZWQKKyAgIGZpbGVzLCBldGMsIHNvIGJ1aWxkaW5nIGluIG11bHRpcGxlIGJyYW5jaGVzIGNhbiBiZSBkb25lIGZyb20gYQorICAgc2luZ2xlCisgICBnaXQgY2hlY2tvdXQuCisKKzIwMTEtMDQtMjUgMjA6NTcgIGhhcmRha2VyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKKworICAgY2xlYW4gdXAgdGhlIGl0ZXJhdG9ycworCisyMDExLTA0LTI1IDIwOjU3ICBoYXJkYWtlcgorCisgICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CisKKyAgIGZyZWUgdmFyYmluZHMgYWZ0ZXIgc2VuZGluZworCisyMDExLTA0LTI1IDE4OjQ4ICBidmFzc2NoZQorCisgICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgorCisgICBDb21tZW50ZWQgb3V0IGFuIHVudXNlZCBmdW5jdGlvbiBiZWNhdXNlIHRoZSBjb21waWxlciBjb21wbGFpbmVkCisgICBhYm91dCBpdC4KKworMjAxMS0wNC0yNSAxODo0NiAgYnZhc3NjaGUKKworICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKKworICAgRml4ZWQgdHdvIGNvbXBpbGVyIHdhcm5pbmdzLgorCisyMDExLTA0LTIzIDE0OjMxICBtYWdmcgorCisgICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgorCisgICBSZW1vdmUgdW5uZWNlc3NhcnkgbnVsbCBjaGVjaworCisyMDExLTA0LTIzIDE0OjA1ICBtYWdmcgorCisgICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CisKKyAgIE1vdmUgcG9pbnRlciBkZXJlZmVyZW5jZSB0byBhZnRlciB0aGUgY2hlY2sgZm9yIHN1Y2Nlc3NmdWwKKyAgIGFsbG9jYXRpb24gb2YgdGhlIHBvaW50ZXIKKworMjAxMS0wNC0yMyAwODoyMCAgbWFnZnIKKworICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgorCisgICBSZWR1Y2UgdmFyaWFibGUgc2NvcGUKKworMjAxMS0wNC0yMyAwODoxNiAgbWFnZnIKKworICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgorCisgICBSZW1vdmUgYW4gdW51c2VkIHZhcmlhYmxlCisKKzIwMTEtMDQtMjMgMDg6MDYgIG1hZ2ZyCisKKyAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKKworICAgUmVkdWNlIHZhcmlhYmxlIHNjb3BlCisKKzIwMTEtMDQtMjMgMDc6NTUgIG1hZ2ZyCisKKyAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKKworICAgUmVkdWNlIHZhcmlhYmxlIHNjb3BlCisKKzIwMTEtMDQtMjIgMTk6MzUgIG1hZ2ZyCisKKyAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgorCisgICBSZWR1Y2UgdmFyaWFibGUgc2NvcGUKKworMjAxMS0wNC0yMiAxOTozMCAgbWFnZnIKKworICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CisKKyAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUKKworMjAxMS0wNC0yMiAxNzoyOSAgaGFyZGFrZXIKKworICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKKworICAgbWVudGlvbiB3aGljaCBtb2R1bGUgaXMgcmVxdWlyZWQgd2hlbiBidWlsZGluZyB0byBnZXQgdGhlIGRlbGl2ZXIKKyAgIHN1cHBvcnQKKworMjAxMS0wNC0yMiAxNjozMyAgaGFyZGFrZXIKKworICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgorCisgICBkZWxldGVkIGFuIHVubmVlZGVkIGRlYnVnZ2luZyBzdGF0ZW1lbnQKKworMjAxMS0wNC0yMiAxNjozMyAgaGFyZGFrZXIKKworICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgorCisgICBwcm9wZXJseSB1cGRhdGUgdGhlIG1heCBjb3VudCBpbiB0aGUgb3V0Z29pbmcgbm90aWZpY2F0aW9ucworCisyMDExLTA0LTIyIDE2OjMyICBoYXJkYWtlcgorCisgICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CisKKyAgIGJldHRlciBwYWNrZXQgZXN0aW1hdGlvbiB0byBlbnN1cmUgd2UgZG9uJ3Qgb3ZlcnJ1bi4KKworMjAxMS0wNC0yMiAxNjozMiAgaGFyZGFrZXIKKworICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgorCisgICBlc3RpbWF0ZSB0aGUgcGFja2V0IHNpemUgYW5kIGJyZWFrIHRoZSBub3RpZmljYXRpb24gdXAgYmFzZWQgb24KKyAgIGl0CisKKzIwMTEtMDQtMjIgMTY6MzEgIGhhcmRha2VyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKKworICAgdHJhbnNmb3JtIHRoZSBub3RpZmljYXRpb24gc2VuZGluZyBpbnRvIGEgbGFyZ2VyIGxvb3AgZm9yIGxhdGVyCisgICBtdWx0aS1ub3RpZnMKKworMjAxMS0wNC0yMiAxNjozMSAgaGFyZGFrZXIKKworICAgKiBORVdTOgorCisgICBmdXJ0aGVyIGluZm9ybWF0aW9uIGFib3V0IGZlYXR1cmUgbWFya2luZy9zZWxlY3Rpb24KKworMjAxMS0wNC0yMiAxNjozMSAgaGFyZGFrZXIKKworICAgKiBORVdTOgorCisgICBtZW50aW9uIHRoZSBuZXcgZGVsaXZlcnkgYnkgbm90aWZpY2F0aW9ucworCisyMDExLTA0LTIyIDE2OjMxICBoYXJkYWtlcgorCisgICAqIE5FV1M6CisKKyAgIGRvY3VtZW50IHRoZSBtaW5pbWFsaXN0IHN1cHBvcnQKKworMjAxMS0wNC0yMiAxNjozMCAgaGFyZGFrZXIKKworICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKKworICAgZG9jdW1lbnQgdGhlIG5ldyBkZWxpdmVyQnlOb3RpZnkgY29uZmlnIHRva2VucworCisyMDExLTA0LTIyIDE2OjMwICBoYXJkYWtlcgorCisgICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CisKKyAgIGFsbG93IHJ1biB0aW1lIG1vZGlmaWNhdGlvbnMgb2YgdGhlIE9JRHMgdG8gdXNlCisKKzIwMTEtMDQtMjIgMTY6MzAgIGhhcmRha2VyCisKKyAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOgorCisgICBhZGQgY29uZmlnIGZsYWdzIHRvIG5vdCBpbmNsdWRlIHRoZSBwZXJpb2QgY29uZmlnIGFuZCBtc2cgY291bnQKKyAgIHZhbHVlcworCisyMDExLTA0LTIyIDE2OjI5ICBoYXJkYWtlcgorCisgICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CisKKyAgIGluY2x1ZGUgdGhlIHBlcmlvZGljIGNvdW50LCB0aGUgbWVzc2FnZSBudW1iZXIgYW5kIHRoZSBtYXgKKyAgIG1lc3NhZ2UgbnVtYmVyCisKKzIwMTEtMDQtMjIgMTY6MjkgIGhhcmRha2VyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKKworICAgZGVsZXRlZCBkZWJ1Z2dpbmcgY29tbWVudAorCisyMDExLTA0LTIyIDE2OjI5ICBoYXJkYWtlcgorCisgICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAgIAorICAgICAgbWlicy9ORVQtU05NUC1QRVJJT0RJQy1OT1RJRlktTUlCLnR4dDoKKworICAgTW92ZSB0aGUgbm90aWZpY2F0aW9uIGRlZmluaXRpb24gdG8gd2l0aGluIHRoZSBzdWItbWliCisKKzIwMTEtMDQtMjIgMTY6MjggIGhhcmRha2VyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKKworICAgZGVsZXRlIGFuIHVudXNlZCB2YXJpYWJsZQorCisyMDExLTA0LTIyIDE2OjI4ICBoYXJkYWtlcgorCisgICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6CisKKyAgIGxvYWQgdGhlIE1JQiBpbnRvIHRoZSBkZWZhdWx0IHNldAorCisyMDExLTA0LTIyIDE2OjI4ICBoYXJkYWtlcgorCisgICAqIG1pYnMvTkVULVNOTVAtUEVSSU9ESUMtTk9USUZZLU1JQi50eHQ6CisKKyAgIEEgbmV3IG1pYiB0byBob2xkIHRoZSBwZXJpb2RpYyBub3RpZnkgb2JqZWN0cworCisyMDExLTA0LTIyIDE2OjI4ICBoYXJkYWtlcgorCisgICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CisKKyAgIGZpbGwgb3V0IHRoZSBjb25maWcgZnJlZSByb3V0aW5lCisKKzIwMTEtMDQtMjIgMTY6MjcgIGhhcmRha2VyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKKworICAgcHJvcGVybHkgbW9uaXRvciB0aGUgd2hvbGUgY29udGFpbmVyCisKKzIwMTEtMDQtMjIgMTY6MjcgIGhhcmRha2VyCisKKyAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOgorCisgICBwYXJzZSB0aGUgY29uZiBmaWxlcyBhbmQgY3JlYXRlIGFuZCBpbnNlcnQgb2JqZWN0cyBpbnRvIHRoZQorICAgY29udGFpbmVyCisKKzIwMTEtMDQtMjIgMTY6MjcgIGhhcmRha2VyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKKworICAgZGVmaW5lZCBhIGNvbnRhaW5lciB0byBzdG9yZSBhIGxpc3Qgb2YgZGVsaXZlciBvYmplY3RzIGluCisKKzIwMTEtMDQtMjIgMTY6MjcgIGhhcmRha2VyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDoKKworICAgYWRkZWQgYSBuZXh0X3J1biB0aW1lc3RhbXAKKworMjAxMS0wNC0yMiAxNjoyNiAgaGFyZGFrZXIKKworICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgorCisgICBhY3R1YWxseSBzZW5kIGEgbm90aWZpY2F0aW9uIHdpdGggdGhlIHJlc3VsdHMKKworMjAxMS0wNC0yMiAxNjoyNiAgaGFyZGFrZXIKKworICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgorCisgICBtYWtlIHRoZSB3YWxrIG9uIHRoZSB0ZXN0IG9iamVjdCBmdW5jdGlvbi4KKworMjAxMS0wNC0yMiAxNjoyNiAgaGFyZGFrZXIKKworICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgorCisgICBjcmVhdGUgYSBtYXggcGFja2V0IHNpemUgY29uZmlnIHRva2VuIGFuZCBwYXJzZSBpdAorCisyMDExLTA0LTIyIDE2OjI1ICBoYXJkYWtlcgorCisgICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDoKKworICAgbWluaW1hbCBzdGFydGluZyB0ZXN0IG9iamVjdAorCisyMDExLTA0LTIyIDE2OjI1ICBoYXJkYWtlcgorCisgICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDoKKworICAgYWRkZWQgYSBmdW5jdGlvbiB0byBjYWxjdWxhdGUgdGhlIHRpbWUgdW50aWwgdGhlIG5leHQgcnVuCisKKzIwMTEtMDQtMjIgMTY6MjUgIGhhcmRha2VyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKKworICAgcmVtb3ZlIGxlZnQgaW4gdGVtcGxhdGUgbGluZQorCisyMDExLTA0LTIyIDE2OjI1ICBoYXJkYWtlcgorCisgICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDoKKworICAgdXNlIGFuIGFsYXJtIGNhbGxiYWNrIHByb3RvdHlwZSBmb3IgZXhlY3V0ZQorCisyMDExLTA0LTIyIDE2OjI0ICBoYXJkYWtlcgorCisgICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyLCBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAKKyAgICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDoKKworICAgYmVnaW5uaW5nIHRlbXBsYXRlIGNvZGUgZm9yIGRlbGl2ZXJ5IG9mIGRhdGEgYnkgbm90aWZpY2F0aW9ucworCisyMDExLTA0LTIyIDA5OjEzICBtYWdmcgorCisgICAqIGFnZW50L3NubXBfYWdlbnQuYzoKKworICAgUmVkdWNlIHZhcmlhYmxlIHNjb3BlCisKKzIwMTEtMDQtMjIgMDk6MDcgIG1hZ2ZyCisKKyAgICogYWdlbnQvc25tcF9hZ2VudC5jOgorCisgICBSZWR1Y2UgdmFyaWFibGUgc2NvcGVzCisKKzIwMTEtMDQtMjIgMDk6MDMgIG1hZ2ZyCisKKyAgICogYWdlbnQvc25tcF9hZ2VudC5jOgorCisgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlCisKKzIwMTEtMDQtMTkgMDg6MzggIGJ2YXNzY2hlCisKKyAgICogd2luMzIvbGlic25tcC9saWJzbm1wLnZjcHJvaiwgd2luMzIvd2luMzIuc2xuOgorCisgICBBZGRlZCBWaXN1YWwgU3R1ZGlvIDIwMDUgcHJvamVjdCBhbmQgc29sdXRpb24gZmlsZSBmb3IgYnVpbGRpbmcKKyAgIHRoZSBOZXQtU05NUCBsaWJyYXJ5IGFzIGEgc3RhdGljIGxpYnJhcnkuIEJvdGggdGhlIFdpbjMyIGFuZCB0aGUKKyAgIHg2NCBjb25maWd1cmF0aW9ucyBhcmUgaW5jbHVkZWQuCisKKzIwMTEtMDQtMTkgMDc6NTcgIGJ2YXNzY2hlCisKKyAgICogd2luMzIvbGlic25tcDoKKworICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgorCisyMDExLTA0LTE5IDA3OjM5ICBidmFzc2NoZQorCisgICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAgIAorICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAgIAorICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osICAgCisgICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osICAgCisgICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osICAgCisgICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osICAgCisgICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCAKKyAgICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCAgIAorICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osIAorICAgICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwKKyAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osICAgCisgICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKKyAgICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAgIAorICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qOgorCisgICBNb3JlIFZpc3VhbCBTdHVkaW8gMjAwNSBwcm9qZWN0IGZpbGUgY2xlYW51cC4KKworMjAxMS0wNC0xOSAwNjo1NyAgYnZhc3NjaGUKKworICAgKiB3aW4zMi9iaW46CisKKyAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KKworMjAxMS0wNC0xOCAxNTozNCAgYnZhc3NjaGUKKworICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAorICAgICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osICAgCisgICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLCAgIAorICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAgIAorICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLCAgIAorICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwgCisgICAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLAorICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLCAgIAorICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIAorICAgICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osICAgCisgICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2o6CisKKyAgIENsZWFuZWQgdXAgV2luMzIgVlMyMDA1IHByb2plY3QgZmlsZXMgLSByZW1vdmVkIHN1cGVyZmx1b3VzCisgICBsaWJyYXJ5IHJlZmVyZW5jZXMuCisKKzIwMTEtMDQtMTggMTU6MjUgIGJ2YXNzY2hlCisKKyAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osICAgCisgICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osICAgCisgICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAorICAgICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osICAgCisgICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLCAgIAorICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAgIAorICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLCAgIAorICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwgCisgICAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLAorICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLCAgIAorICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIAorICAgICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osICAgCisgICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2osIHdpbjMyL3dpbjMyZGxsLnNsbjoKKworICAgQWRkZWQgeDY0IGNvbmZpZ3VyYXRpb25zLgorCisyMDExLTA0LTE4IDE1OjE0ICBidmFzc2NoZQorCisgICAqIHdpbjMyL2xpYjoKKworICAgQW5vdGhlciBXaW4zMi1yZWxhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QgdXBkYXRlLgorCisyMDExLTA0LTE4IDE1OjEzICBidmFzc2NoZQorCisgICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAgIAorICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAgIAorICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osICAgCisgICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osICAgCisgICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osICAgCisgICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osICAgCisgICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCAKKyAgICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCAgIAorICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osIAorICAgICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwKKyAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwgICAKKyAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osICAgCisgICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKKyAgICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAgIAorICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qLCB3aW4zMi93aW4zMmRsbC5zbG46CisKKyAgIEFkZGVkIHdpbjMyZGxsLXJlbGF0ZWQgVmlzdWFsIFN0dWRpbyAyMDA1IHByb2plY3QgYW5kIHNvbHV0aW9uCisgICBmaWxlcy4KKworMjAxMS0wNC0xOCAxMzozNyAgYnZhc3NjaGUKKworICAgKiAgd2luMzIsIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UsIHdpbjMyL2xpYiwgd2luMzIvbGliYWdlbnQsICAgCisgICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQsIHdpbjMyL2xpYnNubXAsIHdpbjMyL2xpYnNubXBfZGxsLCAgIAorICAgICAgd2luMzIvbGlidWNkbWlicywgd2luMzIvbmV0LXNubXAsIHdpbjMyL25ldHNubXBtaWJzLCAgIAorICAgICAgd2luMzIvc25tcGJ1bGtnZXQsIHdpbjMyL3NubXBidWxrd2Fsaywgd2luMzIvc25tcGQsICAgCisgICAgICB3aW4zMi9zbm1wZGVsdGEsIHdpbjMyL3NubXBkZiwgd2luMzIvc25tcGdldCwgd2luMzIvc25tcGdldG5leHQsICAKKyAgICAgICB3aW4zMi9zbm1wbmV0c3RhdCwgd2luMzIvc25tcHNldCwgd2luMzIvc25tcHN0YXR1cywgICAKKyAgICAgIHdpbjMyL3NubXB0YWJsZSwgd2luMzIvc25tcHRlc3QsIHdpbjMyL3NubXB0cmFuc2xhdGUsICAgCisgICAgICB3aW4zMi9zbm1wdHJhcCwgd2luMzIvc25tcHRyYXBkLCB3aW4zMi9zbm1wdXNtLCB3aW4zMi9zbm1wdmFjbSwgICAKKyAgICAgIHdpbjMyL3NubXB3YWxrOgorCisgICBBZGRlZCAqLnZjcHJvai4qLnVzZXIgYW5kIHg2NCB0byB0aGUgd2luMzIgU3VidmVyc2lvbiBpZ25vcmUKKyAgIGxpc3RzLiBSYW4gdGhlc2UgdGhyb3VnaCBMQ19BTEw9QyBzb3J0IC1mdSB0b28uCisKKzIwMTEtMDQtMTggMTI6MTAgIGJ2YXNzY2hlCisKKyAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaCwgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKKworICAgV2luMzIgRExMIGJ1aWxkIGZpeGVzLgorCisyMDExLTA0LTE3IDIwOjU2ICBkdHMxMgorCisgICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsICAgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CisKKyAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzMTc1NjQwOiBVc2UgSVBfUkVDVkRTVEFERFIgc29ja29wdAorICAgd2hlcmUgYXZhaWxhYmxlICgqQlNEKQorCisyMDExLTA0LTE1IDEzOjQyICBkdHMxMgorCisgICAqIHNubXBsaWIvc25tcF9hcGkuYzoKKworICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE4MzAwMDogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQKKyAgIHByZWZpeCBsZW5ndGgKKyAgIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6IDMxODI5ODU6IEZpeCBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lECisgICBwcmVmaXggbGVuZ3RoCisKKzIwMTEtMDQtMTUgMTM6MTcgIGR0czEyCisKKyAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCBhcHBzL3NubXB0cmFwZF9kcy5oLCAgIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCBtYW4vc25tcGQuY29uZi41LmRlZjoKKworICAgQ0hBTkdFUzogTGludXg6IFBBVENIRVM6IDMyMDU4MTE6IE9wdGlvbiB0byBza2lwIGZkL2xvb3AvcmFtCisgICBkZXZpY2VzIGluIGRpc2tJT1RhYmxlCisKKzIwMTEtMDQtMTQgMjE6MzEgIGR0czEyCisKKyAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKKworICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSEVTOiAzMTg1MDg1OiBGaXggc2VnZmF1bHQgb24gNjQtYml0IHN5c3RlbXMKKworMjAxMS0wNC0xNCAyMToxMCAgZHRzMTIKKworICAgKiBsb2NhbC9taWIyYzoKKworICAgQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMxNzUzMjM6IEZpeCBoYW5kbGluZyBvZiAnd2hpbGUgKGZhbHNlKScKKyAgIGJsb2NrcworCisyMDExLTA0LTE0IDIwOjUyICBkdHMxMgorCisgICAqIGxvY2FsL21pYjJjOgorCisgICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIwNDg4MzogRml4IGhhbmRsaW5nIG9mIG5vbi10YWJsZQorICAgb2JqZWN0cyBuYW1lZCBmb29UYWJsZQorCisyMDExLTA0LTE0IDIwOjQ0ICBkdHMxMgorCisgICAqIGxvY2FsL21pYjJjOgorCisgICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIxMTQ4NDogU3VwcG9ydCBlbnVtZXJhdGlvbnMgaW4KKyAgIG5vdGlmaWNhdGlvbiB2YXJiaW5kcworCisyMDExLTA0LTEyIDIwOjAxICBuYmEKKworICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CisKKyAgIEFkZCBtaXNzaW5nIHN5c3RlbSBvaWRzIHRvIG1pYgorCisyMDExLTA0LTEyIDE5OjUzICBuYmEKKworICAgKiBhcHBzL3NubXB0YWJsZS5jOgorCisgICBGaXggZm9yIGdhcmJhZ2Ugb3V0cHV0IHdoZW4gYWdlbnQgcHJlc2VudHMgbW9yZSBjb2x1bW5zIGluIGJ1bGsKKyAgIHJlc3BvbnNlIHRoYW4gb3VyIGxvY2FsIE1JQiBmaWxlIHNwZWNpZmllZC4KKworMjAxMS0wNC0xMiAxOTo1MCAgbmJhCisKKyAgICogbWFuL3NubXB0cmFwZC44LmRlZjoKKworICAgRml4IHdyb25nIG5hbWUgZm9yIGNvbmZpZyB0b2tlbiAnZG9Ob3RSZXRhaW5Ob3RpZmljYXRpb25Mb2dzJworCisyMDExLTA0LTA5IDIxOjU5ICBuYmEKKworICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19mcmVlYnNkLmM6CisKKyAgIFJlbW92ZSBib2d1cyAoTGludXgpIGRlZmluZXMKKworMjAxMS0wNC0wOSAyMTo1NiAgbmJhCisKKyAgICogc25tcGxpYi9zbm1wLXRjLmM6CisKKyAgIEhBVkVfVE1fVE1fR01UT0ZGIGlzIEhBVkVfU1RSVUNUX1RNX1RNX0dNVE9GRgorCisyMDExLTA0LTA5IDIwOjA4ICBuYmEKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsIGNvbmZpZ3VyZSwgCisgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CisKKyAgIEJpbGwgRmVubmVycyBwYXRjaCB0byBtYWtlIERJU01BTiBQSU5HIGFuZCBUUkFDRVJPVVRFIE1JQlMKKyAgIGNvbXBpbGUgdW5kZXIgTGludXgKKworMjAxMS0wNC0wOSAyMDowNCAgbmJhCisKKyAgICogIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuaCwgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX3NvbGFyaXMyLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzLmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX3NvbGFyaXMyLmM6CisKKyAgIFNvbGFyaXMgc3VwcG9ydCBmb3IgU0NUUC1NSUIKKworMjAxMS0wNC0wOSAxOTo1MCAgbmJhCisKKyAgICogc25tcGxpYi9zbm1wLXRjLmM6CisKKyAgIFRaIGlzIG9uZSBob3VyIG9mZiBpZiBIQVZFX1RNX1RNX0dNVE9GRiBhbmQgU1lTViAoc3VjaCBpcyBMaW51eCkKKworMjAxMS0wNC0wMSAwMToxMSAgcnN0b3J5CisKKyAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CisKKyAgIENIQU5HRVM6IHNubXBsaWI6IGR0bHM6IG92ZXJoYXVsIG9mIGRlYnVnCisgICAKKyAgIC0gZHJhc3RpYyByZWR1Y3Rpb24gaW4gbnVtYmVyIG9mIG1lc3NhZ2VzIGFuZCBtc2cgY29tcGxleGl0eQorICAgZm9yIGJhc2ljIGR0bHN1ZHAgdG9rZW4KKyAgIC0gcHJldmlvdXMgbGV2ZWwgb2YgZGV0YWlsIGF2YWlsYWJsZSBieSBhZGRpbmcgOTpkdGxzZHVwIHRva2VuCisKKzIwMTEtMDQtMDEgMDA6NTMgIHJzdG9yeQorCisgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgorCisgICBDSEFOR0VTOiBzbm1wbGliOiBkdGxzOiBjbGVhbiB1cCBjbG9zZTsgY2F0Y2gKKyAgICdjb25uZWN0Jy8nZGlzY29ubmVjdCcKKyAgIAorICAgY29ubmVjdCA9IHdlIGdldCBzdWNjZXNzZnVsbHkgZGVjb2RlZCBzbm1wIGRhdGEKKyAgIGRpc2Nvbm5lY3QgPSAwIGJ5dGUgcmVhZCwgc3NoIHNodXRkb3duIGZsYWcgc2V0CisgICBhZGQgYmlvX2NhY2hlIGZsYWdzIGZvciBjb25uZWN0ZWQvZGlzY29ubmVjdGVkCisgICBjaGVjayBmb3IgbnVsbCBwdHIgYmVmb3JlIGRlcmVmZXJlbmNpbmcKKyAgIGNsb3NlIGhhbmRsaW5nOgorICAgLSBvbmx5IHNlbmQgcXVldWVkIGRhdGEgaWYgd2UgZ290IHRvIGNvbm5lY3RlZCBzdGF0ZQorICAgLSBzZXJpb3VzbHkgcmVkdWNlIHRpbWVvdXQgdG8gd2FpdCBmb3IganVuayByZWFkLiBpIHRoaW5rCisgICB3ZSBzaG91bGRuJ3QgZXZlbiBib3RoZXIKKyAgIC0gcmV0dXJuIGVhcmx5IGlmIGNhY2hlcCBpcyBOVUxMLCBzbyB3ZSBkb24ndCBoYXZlIHRvIHRlc3QgaXQKKyAgIHJlcGVhdGVkbHkKKyAgIC0gdXNlIGNvcnJlY3QgbmZkcyB2YWx1ZSBpbiBzZWxlY3QgY2FsbAorCisyMDExLTAzLTMxIDA1OjE3ICByc3RvcnkKKworICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKKworICAgbWFrZSB0cnVuayBhbmQgdjUtNi1wYXRjaGVzIGNsb3NlbHkgYWxpZ25lZAorICAgCisgICBtb3N0bHkgY2hhbmdlcyBpbiBkZWJ1ZywgY29va2llIHRyYWNraW5nCisKKzIwMTEtMDMtMjcgMTE6MDggIG1hZ2ZyCisKKyAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CisKKyAgIFNpbXBsaWZ5IGFycmF5IHJlc2l6aW5nIHNvbWV3aGF0IGZ1cnRoZXIKKworMjAxMS0wMy0yNyAxMDoyMSAgbWFnZnIKKworICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKKworICAgRG8gbm90IGFzc2lnbiBuZXdfZGF0YSBpZiB0aGUgdmFsdWUgd29uJ3QgYmUgdXNlZC4KKyAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZXMuCisKKzIwMTEtMDMtMjcgMTA6MTQgIG1hZ2ZyCisKKyAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CisKKyAgIEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gY2xlYXIgYSBjaHVuayBvZiBtZW1vcnkgaWYgdGhlIG5leHQgYWN0aW9uCisgICBvbiBpdCBpcyB0bworICAgZmlsbCBpdCBzbyB1c2UgbWFsbG9jIGluc3RlYWQgb2YgY2FsbG9jLgorCisyMDExLTAzLTI3IDEwOjA5ICBtYWdmcgorCisgICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgorCisgICBDb250YWluZXJCaW5hcnlBcnJheSByZWFsbHkgY2FuJ3QgaG9sZCBhbnl0aG5nIGJ1dCBwb2ludGVycyBhbmQKKyAgIHRoYXQgbWVhbnMgdGhlCisgICBkYXRhX3NpemUgZmllbGQgaXMgdW5uZWNlc3Nhcnkgc28gSSByZW1vdmVkIGl0LgorCisyMDExLTAzLTI2IDE5OjU1ICBtYWdmcgorCisgICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgYXBwcy9zbm1wdHJhcGQuYywgICAKKyAgICAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgc25tcGxpYi9zbm1wX3NlY21vZC5jLCAgIAorICAgICAgc25tcGxpYi9zbm1wdjMuYzoKKworICAgQWRkIG1pc3NpbmcgaW5jbHVkZQorCisyMDExLTAzLTI2IDA4OjA3ICBtYWdmcgorCisgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgorCisgICBVc2UgdGhlIHJpZ2h0IGZlYXR1cmUgbWFjcm8gaW4gb3JkZXIgdG8gbWFrZSBidWlsZHMgd2l0aAorICAgLS1lbmFibGUtaXB2NiAtLXdpdGgtb3V0LXRyYW5zcG9ydHM9VURQSVB2NiBzdWNjZWVkLgorCisyMDExLTAzLTI2IDA4OjAyICBtYWdmcgorCisgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgorCisgICBSZW1vdmUgZHVwbGljYXRlIGNvcGllcyBvZiBmdW5jdGlvbnMKKworMjAxMS0wMy0yNSAyMDozNSAgcnN0b3J5CisKKyAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKKworICAgdHdlYWsgZGVidWcgbWVzc2FnZQorCisyMDExLTAzLTI1IDIwOjMyICByc3RvcnkKKworICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKKworICAgQ0hBTkdFUzogc25tcGxpYjogdXBkYXRlIGNlcnQgdG9rZW4gaGFuZGxpbmcKKyAgIAorICAgLSByZW1vdmUgZGVmWDUwOSBjZXJ0IHRva2VucyAoc2hvdWxkIGhhdmUgYmVlbiByZW1vdmVkIGJlZm9yZQorICAgNS42KQorICAgLSB3YXJuaW5ncyBmb3Igb3VyL3RoZWlyIHRva2VucywgcmVjb21tZW5kIHVzaW5nIGxvY2FsL3BlZXIKKworMjAxMS0wMy0yNSAyMDozMSAgcnN0b3J5CisKKyAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6CisKKyAgIG1lcmdlIG5ldHNubXBfZHRsc3VkcDYgaW50byBuZXRzbm1wX2R0bHN1ZHAKKyAgIAorICAgdXNlIGFkZHIgc2l6ZSB0byB0ZWxsIHRoZW0gYXBhcnQKKworMjAxMS0wMy0yNSAyMDozMSAgcnN0b3J5CisKKyAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgorCisgICBsb2cgKG9uY2UpIHdhcm5pbmcgd2hlbiBkZXByZWNhdGVkIGZfY3JlYXRlX2Zyb21fdHN0cmluZworICAgdHJhbnNwb3J0IGZ1bmN0aW9uIHVzZWQKKworMjAxMS0wMy0yNSAyMDozMCAgcnN0b3J5CisKKyAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYzoKKworICAgcmVkdWNlIGNhc3Rpbmc7IG1ha2Ugc3VyZSB0byBmcmVlIHRoZSByaWdodCBwb2ludGVyCisKKzIwMTEtMDMtMjUgMjA6MjkgIHJzdG9yeQorCisgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOgorCisgICByZWR1Y2UgY2FzdGluZworCisyMDExLTAzLTI0IDA2OjE5ICBtYWdmcgorCisgICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CisKKyAgIFJlcGxhY2UgYSB2YXJpYWJsZSB3aXRoIGEgY29uc3RhbnQuIE1ha2Ugb25lIG1vcmUgb2lkIGNvbnN0LgorCisyMDExLTAzLTE3IDIxOjA5ICBuYmEKKworICAgKiBtYW4vc25tcGRlbHRhLjEuZGVmOgorCisgICBGb3JtYXR0aW5nIGJvdGNoCisKKzIwMTEtMDMtMTcgMjE6MDcgIG5iYQorCisgICAqIG1pYnMvTWFrZWZpbGUuaW46CisKKyAgIEluc3RhbGwgcmVxdWlyZWQgbWlicworCisyMDExLTAzLTE3IDIxOjA1ICBuYmEKKworICAgKiBtaWJzL3JmY2xpc3Q6CisKKyAgIE5ldyBSRkMgbWlicworCisyMDExLTAzLTE1IDEwOjMxICBidmFzc2NoZQorCisgICAqIHNubXBsaWIvY2VydF91dGlsLmM6CisKKyAgIFNwZWxsaW5nIGZpeDogcmVnaW5lcmF0ZWQgLT4gcmVnZW5lcmF0ZWQuCisKKzIwMTEtMDMtMTUgMTA6MTkgIGJ2YXNzY2hlCisKKyAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKKworICAgU2ltcGxpZmllZCByMTk1OTQgKGxlYWstYXQtZXhpdCBmaXgpLgorCisyMDExLTAzLTE1IDA5OjU5ICBidmFzc2NoZQorCisgICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CisKKyAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIyMDExMy4KKworMjAxMS0wMy0xNCAwOTozMSAgZHRzMTIKKworICAgKiBhZ2VudC9zbm1wZC5jOgorCisgICBGaXggbWFpbiBhZ2VudCBzZWxlY3QgY2FsbCB0byB1c2UgdGhlIHJlbmFtZWQgQVBJIHJvdXRpbmUuCisKKzIwMTEtMDMtMTMgMjA6MDkgIGR0czEyCisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOgorCisgICBCcmluZyB0aGUgbmFtaW5nIG9mIHRoZSBsYXJnZV9mZF9zZXQgc2VsZWN0IGNhbGwgaW50bworICAgbGluZSB3aXRoIHRoZSByZXN0IG9mIHRoZSBBUEkuCisKKzIwMTEtMDMtMTIgMDY6NTkgIHJzdG9yeQorCisgICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgorCisgICBDSEFOR0VTOiBzbm1wbGliOiByZWFsbG9jK2luaXQgaW5zdGVhZCBvZiBjYWxsb2MKKyAgIAorICAgaW5zcGlyZWQgYnkgcGF0Y2ggMzE5NTUzMiBmcm9tIFN0ZXBoZW4gSGVtbWluZ2VyCisKKzIwMTEtMDMtMTIgMDU6NDcgIHJzdG9yeQorCisgICAqICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jOgorCisgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IG9wdGltaXphdGlvbnMgZm9yIGxhcmdlIHJvdXRlIHRhYmxlcyBmcm9tCisgICBTdGVwaGVuIEhlbW1pbmdlcgorICAgCisgICBhcHBsaWVkIHBhcnRzIDEtMyBvZiA0IGZyb20gaGltIChtc2dzIHRvIGNvZGVycyBvbiAyLzI4LzExOworICAgc3ViamVjdAorICAgaXAtZm9yd2FyZC1taWIgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzOyBwYXJ0IDQgbmVlZHMgbW9yZSB3b3JrCisKKzIwMTEtMDMtMTEgMTQ6NDMgIHJzdG9yeQorCisgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgorCisgICBDSEFOR0VTOiBzbm1wbGliOiBhZGQgbW9yZSBvcGVuc3NsIGVycm9yIGNhc2VzIHdoZXJlIHdlIGNoZWNrIGZvcgorICAgbG9jYWwgY2VydAorCisyMDExLTAzLTExIDEyOjAxICBidmFzc2NoZQorCisgICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKKworICAgTWluR1c6IGRza1RhYmxlOiBSZXBvcnQgemVybyBmb3IgdW5pbXBsZW1lbnRlZCBmaWVsZHMgaW5zdGVhZCBvZgorICAgcmFuZG9tIGRhdGEuCisKKzIwMTEtMDMtMTEgMDg6NDIgIGJ2YXNzY2hlCisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOgorCisgICBDSEFOR0VTOiBzbm1wZDogQnVpbGRzIHdpdGggbW9zdCByZWNlbnQgTWluR1cgKGhhdmluZyAjZGVmaW5lCisgICBsb2NhbHRpbWVfcikuCisKKzIwMTEtMDMtMTEgMDM6MDggIHJzdG9yeQorCisgICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CisKKyAgIENIQU5HRVM6IHNubXBsaWI6IHJlZmluZSBjZXJ0IGRlYnVnZ2luZzsgcmVtb3ZlIHVudXNlZCBmdW5jdGlvbgorCisyMDExLTAzLTEwIDIxOjIxICByc3RvcnkKKworICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgorCisgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMjA1NzY1OiBoYW5kbGUgcmVjb25maWcgZm9yIGNlcnRTZWNOYW1lCisgICB0b2tlbgorCisyMDExLTAzLTEwIDIwOjAxICBidmFzc2NoZQorCisgICAqIGFnZW50L3NubXBkLmM6CisKKyAgIFNwZWxsaW5nIGZpeCBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQ6IG1lc3NnZXMgLT4gbWVzc2FnZXMuCisKKzIwMTEtMDMtMTAgMTk6NTUgIGJ2YXNzY2hlCisKKyAgICogc25tcGxpYi9sYXJnZV9mZF9zZXQuYzoKKworICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMyMDM4MDY6IE1pbm9yIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbgorICAgb2YgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkuCisKKzIwMTEtMDMtMTAgMTk6NDggIGJ2YXNzY2hlCisKKyAgICogYWdlbnQvc25tcGQuYzoKKworICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMjAzODA2OiBBdm9pZCB0aGF0IHRoZSBtYWluIGFnZW50CisgICBwcm9jZXNzaW5nIGxvb3AgLSB3aGVuIHVzaW5nIG1vcmUgdGhhbiBGRF9TRVRTSVpFIGZpbGUKKyAgIGRlc2NyaXB0b3JzIC0gY2FuIGNhdXNlIG1lbW9yeSBjb3JydXB0aW9uIGJ5IGludm9raW5nIHNlbGVjdCgpLgorCisyMDExLTAzLTEwIDE5OjQzICBidmFzc2NoZQorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgc25tcGxpYi9sYXJnZV9mZF9zZXQuYzoKKworICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMyMDM4MDY6IEFkZCB0aGUgZnVuY3Rpb24KKyAgIG5ldHNubXBfbGFyZ2Vfc2VsZWN0KCkuCisKKzIwMTEtMDMtMTAgMTg6NTUgIGJ2YXNzY2hlCisKKyAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZCwgICAKKyAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwOWxhcmdlX2ZkX3NldF9jbGliLmM6CisKKyAgIEFkZGVkIGEgbWluaW1hbCB1bml0IHRlc3QgZm9yIG5ldHNubXBfbGFyZ2VfZmRfc2V0LgorCisyMDExLTAzLTEwIDE4OjUyICBidmFzc2NoZQorCisgICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6CisKKyAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBNYWtlCisgICBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSBjbGVhciBhbGwgcmVsZXZhbnQgZmlsZQorICAgZGVzY3JpcHRvcnMuCisKKzIwMTEtMDMtMTAgMTU6NTEgIGR0czEyCisKKyAgICogc25tcGxpYi9zbm1wLXRjLmM6CisKKyAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMxNzgzODk6IEZpeCBpbmNvbnNpc3RlbnQgaGFuZGxpbmcgb2YgVFoKKyAgIG9mZnNldHMKKworMjAxMS0wMy0xMCAxNTo0MCAgZHRzMTIKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZSwgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZToKKworICAgSWdub3JlIG9iamVjdCBmaWxlcyBhbmQgbGlicmFyaWVzCisKKzIwMTEtMDMtMTAgMTU6MDUgIGR0czEyCisKKyAgICogc25tcGxpYi90cmFuc3BvcnRzOgorCisgICBJZ25vcmUgb2JqZWN0IGZpbGVzIGFuZCBsaWJyYXJpZXMKKworMjAxMS0wMy0xMCAxNDozMiAgaGFyZGFrZXIKKworICAgKiBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKKworICAgbWFrZSB2YXJpYWJsZSBuYW1lcyBtYXRjaAorCisyMDExLTAzLTEwIDE0OjI4ICBidmFzc2NoZQorCisgICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jOgorCisgICBGaXhlZCB0d28gY29tcGlsZXIgd2FybmluZ3MuCisKKzIwMTEtMDMtMTAgMTQ6MjQgIGhhcmRha2VyCisKKyAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6CisKKyAgIGZpeGVkIGluc3RhbGxhdGlvbiB2YXJpYWJsZXMgZm9yIHRoZSBvcHRpb25hbCBTRVQgcHJvZ3JhbXMKKworMjAxMS0wMy0wOCAwMDo1MyAgaGFyZGFrZXIKKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZS11bm5lZWRlZC1tb2R1bGVzOgorCisgICBjaG1vZCBhK3gKKworMjAxMS0wMy0wOCAwMDoxNSAgaGFyZGFrZXIKKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDoKKworICAgcHJpbnQgYW4gZXJyb3IgaWYgdGhlIGVuZCBvZiBhIGZpbGUgd2FzIHJlYWNoZWQgYW5kIHdlJ3JlIG5vdAorICAgYmFjaworICAgaW50byB0aGUgc3RhdGUgd2UgY2FuIHdyaXRlOyBvdGhlcndpc2UgYSBjbG9zaW5nICNpZmRlZiBpcworICAgbWlzc2luZy4KKworMjAxMS0wMy0wOCAwMDoxNSAgaGFyZGFrZXIKKworICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzoKKworICAgZml4IGVuZGlmIGNvbW1lbnQgdG8gbWF0Y2ggdGhlIG9wZW5pbmcgaWZkZWYKKworMjAxMS0wMy0wOCAwMDoxNSAgaGFyZGFrZXIKKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDoKKworICAgcmVzZXQgdGhlIGNhbndyaXRlIGZsYWcgZm9yIGV2ZXJ5IGZpbGUKKworMjAxMS0wMy0wOCAwMDoxNSAgaGFyZGFrZXIKKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZS11bm5lZWRlZC1tb2R1bGVzOgorCisgICB0ZW1wb3JhcmlseSBsZWF2ZSBpbiBoZWFkZXIgZmlsZXMKKworMjAxMS0wMy0wOCAwMDoxNCAgaGFyZGFrZXIKKworICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYzoKKworICAgY2hhbmdlIHRoZSB1bmlxdWUgZmlsZSBjaGVjayB0byBvbmUgdGhhdCBpcyBub3QgaW4gdGhlIG1pYmdyb3VwCisgICBkaXJlY3RvcnkKKworMjAxMS0wMy0wOCAwMDoxNCAgaGFyZGFrZXIKKworICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvcmVhZC1vbmx5LCAgIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcmVhZC1vbmx5L1QwMTQxc25tcHYyY3NldGZhaWxfc2ltcGxlOgorCisgICBhIHRlc3QgZm9yIGVuc3VyaW5nIHRoZSBhZ2VudCByZWplY3RzIFNFVCByZXF1ZXN0cyB3aXRoCisgICAtLWVuYWJsZS1yZWFkLW9ubHkKKworMjAxMS0wMy0wOCAwMDoxNCAgaGFyZGFrZXIKKworICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTQxc25tcHYyY3NldF9zaW1wbGU6CisKKyAgIGFkZCBiYWNrIGluIHRoZSBzdG9wYWdlbnQgY29tbWFuZAorCisyMDExLTAzLTA4IDAwOjE0ICBoYXJkYWtlcgorCisgICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDFwZHVfdHlwZV9jbGliLmMsICAgCisgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDJwZHVfYnVpbGRfY2xpYi5jLCAgIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAzcGR1X3BhcnNlX2NsaWIuYzoKKworICAgdW5pdCB0ZXN0cyB3cml0ZW4gZm9yIHRoZSByZWFkLW9ubHkgc3VwcG9ydCBjb252ZXJ0ZWQgdG8gd29yaworICAgd2l0aCBvciB3aXRob3V0IHJlYWQtb25seQorCisyMDExLTAzLTA4IDAwOjEzICBoYXJkYWtlcgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNDFzbm1wdjJjc2V0X3NpbXBsZToKKworICAgZG9uJ3QgcnVuIHRoZSBzZXQgdGVzdCBpZiBub193cml0ZV9zdXBwb3J0IGlzIHR1cm5lZCBvbgorCisyMDExLTAzLTA4IDAwOjEzICBoYXJkYWtlcgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9zaW1wbGU6CisKKyAgIHNraXAgaWYgbm9fd3JpdGVfc3VwcG9ydAorCisyMDExLTAzLTA4IDAwOjEzICBoYXJkYWtlcgorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNDFzbm1wdjJjc2V0X3NpbXBsZToKKworICAgQSBuZXcgdGVzdCB0byBjaGVjayB3aGV0aGVyIFNOTVB2MmMgU0VUcyB0byBzeXNDb250YWN0IHdvcmsgYXMKKyAgIGV4cGVjdGVkCisKKzIwMTEtMDMtMDggMDA6MTMgIGhhcmRha2VyCisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdmFueWNvbmZpZzoKKworICAgYWxsb3cgZm9yIHYyYyBTRVQgc3VwcG9ydCB0ZXN0aW5nCisKKzIwMTEtMDMtMDggMDA6MTIgIGhhcmRha2VyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CisKKyAgIEFsbG93IGZvciBzaW5nbGUgcXVvdGVzIGZvciB2YWNtIGNvbnRleHQgbmFtZSBxdW90aW5nIHRvbworCisyMDExLTAzLTA3IDE5OjE5ICBoYXJkYWtlcgorCisgICAqIGNvbmZpZ3VyZToKKworICAgZml4IHRoZSBjb25maWd1cmUgdGVzdHMgdG8gaW5jbHVkZSB0aGUgd29yZCB0ZXN0IGluIHRoZSB0ZXN0CisKKzIwMTEtMDMtMDcgMTk6MTggIGhhcmRha2VyCisKKyAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOgorCisgICBmaXggdGhlIGNvbmZpZ3VyZSB0ZXN0cyB0byBpbmNsdWRlIHRoZSB3b3JkIHRlc3QgaW4gdGhlIHRlc3QKKworMjAxMS0wMy0wNyAxOToxOCAgaGFyZGFrZXIKKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZS11bm5lZWRlZC1tb2R1bGVzOgorCisgICBBZGRlZCBhbiBhbm5veWluZ2x5IGxvbmcgbGlzdCBvZiBleGNlcHRpb25zIHRoYXQgbmVlZHMgdG8gYmUKKyAgIGF1dG9tYXRlZAorCisyMDExLTAzLTA3IDE5OjE4ICBoYXJkYWtlcgorCisgICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlLXVubmVlZGVkLW1vZHVsZXM6CisKKyAgIEEgcXVpY2sgcGVybCBzY3JpcHQgdG8gcmVtb3ZlIHVubmVlZGVkIGNvZGUgbW9kdWxlcyBmcm9tIHRoZQorICAgbW9kdWxlcyBkaXJlY3RvcnkKKworMjAxMS0wMy0wNyAxOToxOCAgaGFyZGFrZXIKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCisgICAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3ZhY20uYzoKKworICAgbW9yZSBpbXByb3ZlbWVudHMgKHJlbW92ZW1lbnRzKSBmb3IgZmVhdHVyaXphdGlvbiBhbmQgcmVhZC1vbmx5CisgICBzdXBwb3J0CisKKzIwMTEtMDMtMDcgMTc6MTkgIGJ2YXNzY2hlCisKKyAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CisKKyAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMTk1NTM3OiBNaW5vciBiaW5hcnlfYXJyYXkgY29udGFpbmVyCisgICBzb3J0IG9wdGltaXphdGlvbgorCisyMDExLTAzLTA2IDE5OjQ3ICBuYmEKKworICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYzoKKworICAgVGFicyB0byBzcGFjZXMKKworMjAxMS0wMy0wNiAxMToyOCAgbmJhCisKKyAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAgIAorICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9uczoKKworICAgQ29uZmlndXJlIGNoZWNrIGZvciBnZXRob3N0bmFtZTIKKyAgIFVzZSBnZXRhZGRyaW5mbyBpZiBhdmFpbGFibGUuIE5vdyB3b3JrcyBmb3IgU29sYXJpcyAoYW5kCisgICBXaW5kb3dzPykKKworMjAxMS0wMy0wNSAxOToxNiAgbWFnZnIKKworICAgKiBhcHBzL3NubXB0ZXN0LmM6CisKKyAgIEFkZCBkcm9wcGVkIHx8J3MgZnJvbSByMjAwNzIKKworMjAxMS0wMy0wNSAxMjo1MCAgbmJhCisKKyAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwUmVzdWx0c1RhYmxlLmM6CisKKyAgIENsZWFuIHVwLCBhbmQgY29zb2xpZGF0ZSByZXN1bHQgdGFibGUgcm93IGNyZWF0aW9uIGludG8gYSBuZXcKKyAgIGZ1bmN0aW9uLgorICAgU2F2ZXMgMjAwIGxpbmVzIG9mIGNvZGUsIHdpdGggKGhvcGVmdWxseSkgbm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2UKKworMjAxMS0wMy0wNSAwNjoxNyAgaGFyZGFrZXIKKworICAgKiAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdGVzdC5jLCBjb25maWd1cmUsICAgCisgICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6CisKKyAgIGRvbid0IGJ1aWxkIFNFVCByZWxhdGVkIGFwcHMgd2l0aCAtLWVuYWJsZS1yZWFkLW9ubHkKKworMjAxMS0wMy0wNSAwNjoxNiAgaGFyZGFrZXIKKworICAgKiAgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS91cGRhdGVzLmMsICAKKyAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsICAgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaCwgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CisKKyAgIGZpeCBpc3N1ZXMgd2l0aCBjb21iaW5pbmcgLS1lbmFibGUtbWluaW1hbGlzdCBhbmQKKyAgIC0tZW5hYmxlLXJlYWQtb25seQorCisyMDExLTAzLTA1IDA2OjE2ICBoYXJkYWtlcgorCisgICAqIGxvY2FsL21pbmltYWxpc3QvZmluZC11bnVzZWQtY29kZToKKworICAgYmV0dGVyIG91dHB1dCBmb3IgZmluZGluZyBvYmplY3Qgc3ltYm9scy4KKworMjAxMS0wMy0wNCAyMTo1NiAgYmFlcm0KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDoKKworICAgbGFzdCBjb21taXQ6IGNoYW5nZXMgdG8gYWxsb3cgcGFyc2luZyBvZiBmZWF0dWVycyBmaWxlcyB0byBnZXQKKyAgIGFsbCBtaW5pbWFsaXN0IHRhZ3Mgd2hpY2ggYXJlIHRoZW4gcHJvY2Vzc2VkIGZvciByZW1vdmFsCisgICAKKyAgIHRoaXMgY29tbWl0OiBjaGFuZ2VkIGNvbW1lbnRzL3doaXRlIHNwYWNlCisKKzIwMTEtMDMtMDQgMTk6MjcgIGJhZXJtCisKKyAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CisKKyAgIGFkZGVkIG5vX3dyaXRlIHN1cHBvcnQgdG8gZXh0ZW5kLmMKKworMjAxMS0wMy0wNCAxOToyNiAgYmFlcm0KKworICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CisKKyAgIEFkZGVkIG1pc3NpbmcgI2VuZGlmIGNvbW1lbnQgZm9yIHJlbW92ZSBpZmRlZiBjb2RlIHN1cHBvcnQKKworMjAxMS0wMy0wNCAxOToyNCAgYmFlcm0KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDoKKworICAgYWRkZWQgY2hhbmdlcyB0byBhbGxvdyBjb2RlIHJlbW92YWwgaW4tcGxhY2UKKyAgIChpLmUuIGRvZXMgbm90IHJlcXVpcmUgY3JlYXRpbmcgYSBuZXcgZmlsZSkKKworMjAxMS0wMy0wNCAxOToyMyAgYmFlcm0KKworICAgKiBsb2NhbC9taW5pbWFsaXN0L2lnbm9yZS5yZWdleHA6CisKKyAgIGFkZGluZyBhIGlnbm9yZS5yZWdleHAgZmlsZSB0aGF0IGNhbiBiZSB1c2VkIHdpdGgKKyAgIHJlbW92ZWlmZGVmY29kZS5wbAorCisyMDExLTAzLTA0IDE5OjIwICBoYXJkYWtlcgorCisgICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczoKKworICAgYWRkIGEgb3V0Z29pbmcgbGluayB0byB0aGUgcGFyZW50IG1hcmtpbmcgcGFnZQorCisyMDExLTAzLTA0IDE5OjE5ICBoYXJkYWtlcgorCisgICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczoKKworICAgQWRkZWQgYSB3aWtpIG91dHB1dCBtb2RlCisKKzIwMTEtMDMtMDQgMTk6MTkgIGhhcmRha2VyCisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOgorCisgICBOb3RlIHRoYXQgdGhlIG9yZyBvdXRwdXQgaXMgdGhlIGRlZmF1bHQgaW4gdGhlIGhlbHAgb3V0cHV0CisKKzIwMTEtMDMtMDQgMTU6MDkgIGpzYWZyYW5laworCisgICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jOgorCisgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgJ3RydW5jYXRpbmcgaW50ZWdlciB2YWx1ZSA+IDMyIGJpdHMnIGluCisgICBVQ0QtU05NUC1NSUI6OnN5c3RlbVN0YXRzIG9uIExpbnV4CisKKzIwMTEtMDMtMDQgMTQ6NDkgIGhhcmRha2VyCisKKyAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgCisgICAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYywKKyAgICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgc25tcGxpYi9zbm1wX2FwaS5jOgorCisgICByZWNsYXNzaWZpY2F0aW9uIG9mIHRoZSByZW1haW5pbmcgZmVhdHVyZXMgaW50byBhIGhpZXJhcmNoeQorCisyMDExLTAzLTA0IDE0OjQ5ICBoYXJkYWtlcgorCisgICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CisKKyAgIGRvbid0IGRvdWJsZS1kZWNsYXJlIGNlcnRfdXRpbHMKKworMjAxMS0wMy0wNCAxNDo0OSAgaGFyZGFrZXIKKworICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CisKKyAgIHRoZSBpcGFkZHJlc3NfbGludXggd2FzIGluY29ycmVjdGx5IG1hcmtlZCBhcyBuZWVkaW5nCisgICBjZXJ0X2ZpbmdlcnByaW50cworCisyMDExLTAzLTA0IDE0OjQ4ICBoYXJkYWtlcgorCisgICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CisKKyAgIHB1dCB0aGUgYWdlbnRfcmVnaXN0cnkgZmVhdHVyZSBpbiBsaWJuZXRzbm1wYWdlbnQuCisKKzIwMTEtMDMtMDMgMTA6NTYgIGJ2YXNzY2hlCisKKyAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CisKKyAgIENIQU5HRVM6IFdpbjMyOiBEZXByZWNhdGVkIGxpYnNubXAuZGVmIC0gYWRkIE5FVFNOTVBfSU1QT1JUIHRvCisgICBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgaW5zdGVhZCB0byBleHBvcnQgYSBmdW5jdGlvbiBmcm9tCisgICBuZXRzbm1wLmRsbC4KKworMjAxMS0wMy0wMyAxMDo0OCAgYnZhc3NjaGUKKworICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKKworICAgQWRkZWQgbWlzc2luZyBORVRTTk1QX0lNUE9SVCBkZWNsYXJhdGlvbnMuCisKKzIwMTEtMDMtMDMgMTA6MjQgIGJ2YXNzY2hlCisKKyAgICogd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZGVmLCB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZGVmOgorCisgICBSZW1vdmVkIHR3byBvYnNvbGV0ZSBXaW4zMiBmaWxlcy4KKworMjAxMS0wMy0wMyAxMDowOSAgYnZhc3NjaGUKKworICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmM6CisKKyAgIFRyaXZpYWwgY29tbWVudCBmaXg6IHNubXBJUHY2QmFzZURvbWFpbi5jIGNvbnRhaW5zIElQdjYgYmFzZQorICAgdHJhbnNwb3J0IHN1cHBvcnQgZnVuY3Rpb25zIGluc3RlYWQgb2YgSVB2NC4KKworMjAxMS0wMy0wMiAxOToxMCAgYnZhc3NjaGUKKworICAgKiBzbm1wbGliOgorCisgICBBZGRlZCBzbm1wc21fc2h1dGRvd24uaCB0byB0aGUgU3VidmVyc2lvbiBpZ25vcmUgbGlzdCBiZWNhdXNlCisgICBpdCdzIGEgZ2VuZXJhdGVkIGZpbGUuCisKKzIwMTEtMDMtMDIgMTU6NTggIGJ2YXNzY2hlCisKKyAgICogd2luMzIvY29uZmlnLmg6CisKKyAgIFJlbW92ZWQgYW4gb2Jzb2xldGUgZmlsZS4KKworMjAxMS0wMy0wMiAxNTo1MiAgYnZhc3NjaGUKKworICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsIHdpbjMyL3NubXBzbV9zaHV0ZG93bi5oLCAgCisgICAgICAgd2luMzIvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmg6CisKKyAgIEJ1aWxkcyBhZ2FpbiB3aXRoIFZpc3VhbCBTdHVkaW8gYWZ0ZXIgdGhlIGludHJvZHVjdGlvbiBvZiB0aGUKKyAgICJmZWF0dXJlIiBmZWF0dXJlLgorCisyMDExLTAzLTAyIDE1OjQ4ICBidmFzc2NoZQorCisgICAqIHdpbjMyL3NubXBzbV9pbml0Lmg6CisKKyAgIFJlbW92ZWQgYSBtaXNsZWFkaW5nIGNvbW1lbnQuCisKKzIwMTEtMDMtMDIgMDg6NDAgIG1hZ2ZyCisKKyAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6CisKKyAgIENvcnJlY3QgdGhlIGNoZWNrIG9mIHdldGhlciB1c20gc2VjdXJpdHkgaXMgZW5hYmxlZC4KKyAgIFJlZ2VuZXJhdGUgY29uZmlndXJlLgorCisyMDExLTAzLTAyIDA4OjM5ICBtYWdmcgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CisKKyAgIFJlZ2VuZXJhdGUKKworMjAxMS0wMy0wMiAwODoyMSAgbWFnZnIKKworICAgKiAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jOgorCisgICBBZGQgbWlzc2luZyBkZXBlbmRlbmNpZXMKKworMjAxMS0wMy0wMiAwNzoxOSAgbWFnZnIKKworICAgKiBzbm1wbGliL3NubXB1c20uYzoKKworICAgSWdub3JlIHRoZSByZXR1cm4gdmFsdWUgZnJvbSBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMKKworMjAxMS0wMy0wMiAwNzoxOSAgbWFnZnIKKworICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgorCisgICBTcGxpdCB0aGUgY29udGFpbmVyX2NvbXBhcmVfZnVuY3Rpb25zIGZlYXR1cmUgaW50bworICAgY29udGFpbmVyX2NvbXBhcmVfbWVtLAorICAgY29udGFpbmVyX2NvbXBhcmVfbG9uZywgY29udGFpbmVyX2NvbXBhcmVfdWxvbmcsCisgICBjb250YWluZXJfY29tcGFyZV9pbnQzMiBhbmQKKyAgIGNvbnRhaW5lcl9jb21wYXJlX3VpbnQzMgorICAgVW5pZnkgdGhlIHN0cnVjdHVyZSBvZiB0aGUgY29tcGFyZSBmdW5jdGlvbnMgZnVydGhlci4KKworMjAxMS0wMy0wMiAwNzoxOSAgbWFnZnIKKworICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgorCisgICBDaGFuZ2UgdGhlIHNwZWxsaW5nIG9mIHRoZSBjb250YWluZXJfY29tcGFyZV9jc3RyaW5nIGZlYXR1cmUgdG8KKyAgIGNvbnRhaW5lcl9uY29tcGFyZV9jc3RyaW5nIGFzIHRoYXQgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgaXMKKyAgIGd1YXJkZWQgYnkgdGhhdAorICAgYXR0cmlidXRlLgorCisyMDExLTAzLTAyIDA3OjE3ICBtYWdmcgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgorCisgICBBZGQgdGhlIG1pc3NpbmcgcmVwbGFjZW1lbnQgbWFjcm8gZm9yIHNubXBfaW5pdF9zdGF0aXN0aWNzCisKKzIwMTEtMDMtMDIgMDc6MTYgIG1hZ2ZyCisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CisKKyAgIHNubXBfaW5jcmVtZW50X3N0YXRpc3RpY19ieSB0YWtlcyB0d28gYXJndW1lbnRzIHNvIGxldCB0aGUKKyAgIHJlcGxhY2VtZW50IG1hY3JvCisgICB0YWtlIHR3byBhcmd1bWVudHMgYXMgd2VsbC4KKworMjAxMS0wMi0yNyAxMzo1NSAgbmJhCisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmM6CisKKyAgIEZpeCB0eXBvIGluIHIxOTk5MAorCisyMDExLTAyLTI2IDEwOjUzICBtYWdmcgorCisgICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1jaGVjazoKKworICAgUmVtb3ZlIGxpbmVzIHN0YXJ0aW5nIHdpdGggI2RlZmluZSBpbiB0aGUgb3V0cHV0IG9mIHRoZQorICAgcHJlcHJvY2Vzc29yCisgICBXaGVuIGdjYyAtRSBpcyBjYWxsZWQgd2l0aCAtZ2dkYjMgKG9yIC1kRCkgdGhlbiBhbGwgdGhlIG1hY3JvCisgICBkZWZpbml0aW9ucyBhcmUKKyAgIHBhc3NlZCB0aHJvdWdoIHRoZSBwcmVwcm9jZXNzb3IgYW5kIHRoYXQgbWVzc2VzIHVwIG91cgorICAgcHJvY2Vzc2luZy4KKworMjAxMS0wMi0yNiAxMDo1MiAgbWFnZnIKKworICAgKiBNYWtlZmlsZS5ydWxlczoKKworICAgUHV0IHRoZSBnZW5lcmF0ZWQgZmlsZSBpbiB0aGUgYnVpbGQgdHJlZSwgbm90IHRoZSBzb3VyY2UgdHJlZS4KKworMjAxMS0wMi0yNiAwMToyMyAgaGFyZGFrZXIKKworICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKKyAgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKKyAgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKKyAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsIAorICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKKyAgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKKyAgICAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfY29tbW9uLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfc29sYXJpczIuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jOgorCisgICBtb3ZlZCBhIGJ1bmNoIG9mIGZlYXR1cmVzIGludG8gdGhlIGxpYm5ldHNubXBtaWJzIGZlYXR1cmUgc2V0LgorCisyMDExLTAyLTI2IDAxOjIyICBoYXJkYWtlcgorCisgICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsICAgCisgICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsICAgCisgICAgICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAorICAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsICAgCisgICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCisgICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmMsICAgCisgICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzLCBzbm1wbGliL21pYi5jOgorCisgICBjbGFzc2lmaWVkIGxpYm5ldHNubXBhZ2VudCBmZWF0dXJlcworCisyMDExLTAyLTI2IDAxOjIxICBoYXJkYWtlcgorCisgICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgorCisgICByZXZlcnNlIHRoZSBvcmRlciBvZiB0aGUgbGlicmFyaWVzIChzbm1wbGliIGZpcnN0KQorCisyMDExLTAyLTI2IDAxOjIxICBoYXJkYWtlcgorCisgICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgorCisgICBvdXRwdXQgY2xlYW51cCBhbmQgYWRkZWQgYWdlbnQtbWlicyBhbmQgbG9nZ2luZyBvcHRpb25zCisKKzIwMTEtMDItMjYgMDE6MjEgIGhhcmRha2VyCisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CisKKyAgIGFkZCBhIGRlZmF1bHQgc2V0IG9mIGFyZ3VtZW50cworICAgY2FsY3VsYXRlIHJlc3VsdGluZyBzaXplcworCisyMDExLTAyLTI2IDAxOjIxICBoYXJkYWtlcgorCisgICAqIHNubXBsaWIvZGlyX3V0aWxzLmM6CisKKyAgIEFkZGVkIGEgbWlzc2luZyA7CisKKzIwMTEtMDItMjYgMDE6MjAgIGhhcmRha2VyCisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CisKKyAgIHByZWZpeCB0aGUgb3V0cHV0IGZpbGVzIHdpdGggYSBudW1iZXIgdG8gaW5kaWNhdGUgb3JkZXIKKworMjAxMS0wMi0yNiAwMToyMCAgaGFyZGFrZXIKKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKKworICAgc2F2ZSB0aGUgcmVzdWx0cyBvZiB0aGUgc3lzdGVtIGV4ZWN1dGlvbnMKKworMjAxMS0wMi0yNiAwMToyMCAgaGFyZGFrZXIKKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKKworICAgZW5hYmxlIGJ1aWxkaW5nIG9mIHRoZSByZXN1bHRpbmcgY29tYmluYXRpb25zCisgICBBZGQgYSAtbiBmbGFnIGZvciBkcnktcnVucworCisyMDExLTAyLTI2IDAxOjIwICBoYXJkYWtlcgorCisgICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgorCisgICBlbmFibGUgdGhlIC10IHRhZyBmb3IgbGltaXRpbmcgdHlwZXMKKworMjAxMS0wMi0yNiAwMToxOSAgaGFyZGFrZXIKKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKKworICAgQWRkZWQgYXJndW1lbnQgcGFyc2luZyBhbmQgYXJndW1lbnRzIGZvciBzZWxlY3RpbmcgYW5kIGxpc3RpbmcKKyAgIHR5cGVzCisKKzIwMTEtMDItMjYgMDE6MTkgIGhhcmRha2VyCisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CisKKyAgIGdlbmVyYXRlIGNvbmZpZ3VyZSBzY3JpcHQgYXJndW1lbnRzIGZyb20gc3BlY3MKKworMjAxMS0wMi0yNiAwMToxOSAgaGFyZGFrZXIKKworICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKKworICAgYWRkZWQgYSBidW5jaCBvZiBuZXcgZmVhdHVyZSBvcHRpb25zIGFuZCBjbGVhbmVkIHVwIGEgYml0CisKKzIwMTEtMDItMjYgMDE6MTkgIGhhcmRha2VyCisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CisKKyAgIGFkZGVkIGEgbmV3IChub3QgeWV0IHdvcmtpbmcpIHNjcmlwdCB0byB0ZXN0IHNpemluZyBvZiB2YXJpb3VzCisgICBhcmd1bWVudCBzZXRzCisKKzIwMTEtMDItMjYgMDA6MjYgIG1hZ2ZyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKKworICAgU2ltcGxpZnkgdGhlIGNvZGUuIFVuaWZ5IHNvbWUgZGVidWcgbG9ncy4KKworMjAxMS0wMi0yNiAwMDoxOSAgbWFnZnIKKworICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgorCisgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIGEgZmV3IHZhcmlhYmxlcworCisyMDExLTAyLTI2IDAwOjE2ICBtYWdmcgorCisgICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CisKKyAgIFJlbW92ZSBzb21lIHVudXNlZCBpbmNsdWRlcy4KKworMjAxMS0wMi0yNiAwMDoxNSAgbWFnZnIKKworICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgorCisgICBNYWtlIGl0IHBvc3NpYmxlIHRvIGluaXRpYWxpemUvdW5pbml0aWFsaXplIG1vZHVsZXMgd2l0aCA2NAorICAgY2hhcmFjdGVyIG5hbWVzIGFuZCBub3Qgc3VmZmVyIHdpbGQgd3JpdGVzLgorCisyMDExLTAyLTI2IDAwOjEyICBtYWdmcgorCisgICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CisKKyAgIENvZGUgcmVzdHJ1Y3R1cmluZyAtIHB1dCB0aGUgbWFuYWdlZCByb3V0aW5lcyBiZWZvcmUgdGhlCisgICBtYW5hZ21lbnQgY29kZS4KKworMjAxMS0wMi0yNiAwMDoxMSAgbWFnZnIKKworICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5oOgorCisgICBDSEFOR0VTOiBsaWJuZXRzbm1wbWliczogTWFrZSBhbGwgZnVuY3Rpb25zIGluIHRoZSBkbG1vZCBtb2R1bGUKKyAgIHRoYXQgZG9uJ3QgaGF2ZSB0byBiZSBwdWJsaWMgc3RhdGljCisKKzIwMTEtMDItMjYgMDA6MDcgIG1hZ2ZyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKKworICAgUmVuYW1lIGRlaW5pdF9kbG1vZCB0byBzaHV0ZG93bl9kbG1vZCBhcyB0aGF0IGlzIHdoYXQgaXQgcmVhbGx5CisgICBpcyBhYm91dC4KKworMjAxMS0wMi0yNSAxODoyNCAgYmFlcm0KKworICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jOgorCisgICBhZGRpbmcgbWluaW1hbGlzdCBpZmRlZnMgdG8gbmV0LXNubXAtdmFjbSBtaWIKKworMjAxMS0wMi0yNSAxNjowOSAgaGFyZGFrZXIKKworICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6CisKKyAgIHByb3Blcmx5IGhhbmRsZSB0d2luIGNoaWxkcmVuOyBhbHNvIHNvcnQgdGhlIGNoaWxkIGxpc3QKKyAgIGFscGhhYmV0aWNhbGx5LgorCisyMDExLTAyLTI1IDE2OjA5ICBoYXJkYWtlcgorCisgICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CisKKyAgIEkgc3VwcG9zZSBsb2dnaW5nIHNob3VsZCBwcm9iYWJseSBkZWZhdWx0IHRvIGJlaW5nIGEgd2FudGVkCisgICBvcHRpb24gOi0pCisKKzIwMTEtMDItMjUgMTY6MDkgIGhhcmRha2VyCisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOgorCisgICBvcmctbGluayB0aGUgZmlsZXMgaW4gdGhlIG91dHB1dAorCisyMDExLTAyLTI1IDE2OjA4ICBoYXJkYWtlcgorCisgICAqICBNYWtlZmlsZS5ydWxlcywgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCAgIAorICAgICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgICAKKyAgICAgIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1jaGVjaywgc25tcGxpYi9NYWtlZmlsZS5pbjoKKworICAgbWFrZSB0aGUgZmVhdHVyZXMtY2hlY2sgc2NyaXB0IHRyYWNrIHRoZSBmdWxsIHNvdXJjZSBwYXRoCisKKzIwMTEtMDItMjUgMTY6MDggIGhhcmRha2VyCisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOgorCisgICBjaGFuZ2UgdGhlIGZ1bmN0aW9uIG5hbWVzIHRvIG1hdGNoIHRoYXQgaXQncyBwcmludGluZyB0byBvcmctbW9kZQorICAgYXQgdGhlIG1vbWVudC4KKworMjAxMS0wMi0yNSAxNjowOCAgaGFyZGFrZXIKKworICAgKiAgc25tcGxpYi9maWxlX3V0aWxzLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvb2lkX3N0YXNoLmMsICAgCisgICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvdG9vbHMuYzoKKworICAgbGFzdCBvZiB0aGUgZmVhdHVyZSBjbGFzc2lmaWNhdGlvbiBpbiBsaWJuZXRzbm1wCisKKzIwMTEtMDItMjUgMTY6MDcgIGhhcmRha2VyCisKKyAgICogc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvc2NhcGkuYzoKKworICAgbWFrZSB0aGUgdXNtX3N1cHBvcnQgdXRpbGl0aWVzIHNlbGYtZGVjbGFyZSB0aGVtc2VsdmVzIGFzCisgICBjaGlsZHJlbiB0bworICAgbWFrZSBzdXJlIHRoZXkncmUgcHJvcGVybHkgaW5jbHVkZWQgZHVyaW5nIGRlcGVuZGVuY3kgb3JkZXJpbmcKKworMjAxMS0wMi0yNSAxNjowNyAgaGFyZGFrZXIKKworICAgKiAgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYywgCisgICAgICAgIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvZGF0YV9saXN0LmMsICAgCisgICAgICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMsICAgCisgICAgICBzbm1wbGliL2ZpbGVfdXRpbHMuYywgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL3NubXB1c20uYzoKKworICAgc3VwZXJzdHJ1Y3R1cmFsaXphdGlvbml6aW5nIHRoZSBmZWF0dXJlcworCisyMDExLTAyLTI1IDE2OjA3ICBoYXJkYWtlcgorCisgICAqICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsICAKKyAgICAgICBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvc3lzdGVtLmMsIAorICAgICAgICBzbm1wbGliL3RleHRfdXRpbHMuYywgc25tcGxpYi90b29scy5jLCAgIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvdWNkX2NvbXBhdC5jOgorCisgICBzaWduaWZpY2FudCBwYXJlbnQvY2hpbGQgZmVhdHVyZSBjbGFzc2lmaWNhdGlvbgorCisyMDExLTAyLTI1IDE2OjA2ICBoYXJkYWtlcgorCisgICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdXNtLmM6CisKKyAgIGNsYXNzaWZ5IGEgZmV3IGNvbXBvbmVudHMgaW50byBhIHRvcC1sZXZlbCBsaWJuZXRzbm1wIGNvbXBvbmVudAorCisyMDExLTAyLTI1IDE2OjA2ICBoYXJkYWtlcgorCisgICAqICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9zY2FwaS5jLCAgIAorICAgICAgc25tcGxpYi9zbm1wdXNtLmM6CisKKyAgIHN0cnVjdHVyaXplIHRoZSB1c20gZmVhdHVyZXMKKworMjAxMS0wMi0yNSAxNjowNiAgaGFyZGFrZXIKKworICAgKiAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYywgICAKKyAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMsICAgCisgICAgICBzbm1wbGliL2Rpcl91dGlscy5jOgorCisgICBzdHJ1Y3R1cmUgdGhlIGNvbnRhaW5lciBmZWF0dXJlcyBpbnRvIGEgaGllcmFyY2h5CisKKzIwMTEtMDItMjUgMTY6MDUgIGhhcmRha2VyCisKKyAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKKworICAgZ3JvdXAgdGhlIGxvZ2dpbmcgaGFuZGxlcnMgdW5kZXIgYSBwYXJlbnQgZmVhdHVyZQorCisyMDExLTAyLTI1IDE2OjA1ICBoYXJkYWtlcgorCisgICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczoKKworICAgZml4IHRoZSBleHBlY3QgYXJndW1lbnQgY291bnQKKworMjAxMS0wMi0yNSAxNjowNSAgaGFyZGFrZXIKKworICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6CisKKyAgIGZpeCB0aGUgbmFtZSBvZiB0aGUgZXhwZWN0ZWQgaW5wdXQgZmlsZQorCisyMDExLTAyLTI1IDE2OjA1ICBoYXJkYWtlcgorCisgICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczoKKworICAgYXJndW1lbnQgcGFyc2luZyBhbmQgdXNhZ2UoKSBvdXRwdXQKKworMjAxMS0wMi0yNSAxNjowNCAgaGFyZGFrZXIKKworICAgKiAgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYywgICAKKyAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZS5jLCBzbm1wbGliL29pZF9zdGFzaC5jOgorCisgICAtIGFkZGVkIHR3byBvaWRfc3Rhc2ggZnVuY3Rpb25zIGFzIGluZGl2aWR1YWwgZmVhdHVyZXMKKyAgIC0gY2xlYW5lZCB1cCBzb21lIHdhcm5pbmdzIGluIHRoZSB0YWJsZV9pdGVyYXRvciBjb2RlCisKKzIwMTEtMDItMjUgMTI6NTUgIGR0czEyCisKKyAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CisKKyAgIEZpeCB0aGUgY29tbWFuZCB0byBjcmVhdGUgYSBuZXcgU1ZOIHRhZyBsaW5lCisgICAKKyAgIChIYXZpbmcgYnJvdWdodCB0aGUgc3RydWN0dXJlIG9mIHRoZSA1LjUueCBicmFuY2gKKyAgIGludG8gbGluZSB3aXRoIHRoZSBvdGhlciBicmFuY2hlcywgdGhlIHByZXZpb3VzCisgICBjb21tYW5kIGlzIG5vdyB3cm9uZyBmb3IgKmFsbCogYnJhbmNoZXMsIHJhdGhlcgorICAgdGhhbiBqdXN0IG1vc3Qgb2YgdGhlbSEpCisKKzIwMTEtMDItMjUgMTE6MTAgIGR0czEyCisKKyAgICogc25tcGxpYi9zbm1wdjMuYzoKKworICAgQXZvaWQgYSBwb3NzaWJsZSBjcmFzaCBpZiB0aGUgZW5naW5lSUQgaXMgbm90IGF2YWlsYWJsZSBvciBzZXQuCisKKzIwMTEtMDItMjUgMDA6NDAgIGJhZXJtCisKKyAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuaCwgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5oOgorCisgICBhZGRpbmcgaWZkZWYgY29kZSBmb3IgbWluaW1hbGlzdCBzdXBwb3J0IG9mIGRpZmZtYW4gbWliCisKKzIwMTEtMDItMjQgMTk6MjEgIGJhZXJtCisKKyAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oOgorCisgICBBZGRpbmcgbWluaW1hbGlzdCBpZmRlZnMgdG8gaG9zdCByZXNvdXJjZSBtaWIKKworMjAxMS0wMi0yNCAwNTo0NiAgaGFyZGFrZXIKKworICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIHNubXBsaWIvZGF0YV9saXN0LmM6CisKKyAgIG1hcmsgdGhlIGRhdGFfbGlzdCBmdW5jdGlvbiB0aGF0J3Mgb25seSB1c2VkIGluIHN0YWNoX2NhY2hpbmcgYXMKKyAgIGEgZmVhdHVyZQorCisyMDExLTAyLTI0IDA1OjQ2ICBoYXJkYWtlcgorCisgICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKKworICAgd2hvb3BzLgorCisyMDExLTAyLTI0IDA1OjQ2ICBoYXJkYWtlcgorCisgICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKKworICAgbW9yZSBtaXNzaW5nIHN0YXNoIHJlZmVyZW5jZXMKKworMjAxMS0wMi0yNCAwNTo0NSAgaGFyZGFrZXIKKworICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CisKKyAgIGlmZGVmZWQvZmVhdHVyZWQgb3V0IGEgbWlzc2luZyBzdGFzaF9jYWNoZSBzZWN0aW9uCisKKzIwMTEtMDItMjQgMDU6NDUgIGhhcmRha2VyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgorCisgICBtYWtlIHRoZSBwcmVmaXhfaW5mbyBtb3JlIGhpZXJhcmNoaWNhbCBhbmQgc3ViLWZlYXR1cmUgdGhlIHVudXNlZAorICAgb25lCisKKzIwMTEtMDItMjQgMDU6NDUgIGhhcmRha2VyCisKKyAgICogbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlOgorCisgICBkbyBpbmNsdWRlIHRoZSBwZXJsL3B5dGhvbiBjb2RlIHdoZW4gc2VhcmNoaW5nIGZvciBmaWxlcworCisyMDExLTAyLTI0IDA1OjQ1ICBoYXJkYWtlcgorCisgICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKKworICAgbWFrZSB0aGUgc2VtaS11c2VkIHRhYmxlX3RkYXRhIGZ1bmN0aW9ucyBjaGlsZHJlbiBvZgorICAgdGFibGVfdGRhdGFfYWxsCisgICBpbnN0ZWFkIG9mIGp1c3QgdGFibGVfdGRhdGEKKworMjAxMS0wMi0yMyAyMjowMCAgbWFnZnIKKworICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CisKKyAgIENvcnJlY3QgdHlwbworCisyMDExLTAyLTIzIDIxOjU0ICBtYWdmcgorCisgICAqIHNubXBsaWIvcGFyc2UuYzoKKworICAgQ29ycmVjdCB0eXBvCisKKzIwMTEtMDItMjMgMjE6MTAgIG5iYQorCisgICAqIGFnZW50L3NubXBfdmFycy5jOgorCisgICBwcm9wZXIgaW5jbHVkZSBvZiBwcm90b3R5cGUKKworMjAxMS0wMi0yMyAyMTowNyAgaGFyZGFrZXIKKworICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3RyYW5zcG9ydHMsICAgCisgICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKKworICAgY29tcGF0IHNvbWUgZmVhdHVyZSBoZWFkZXIgY2hpY2tlbiBhbmQgZWdnIHByb2JsZW1zCisKKzIwMTEtMDItMjMgMTU6MjcgIG5iYQorCisgICAqIHNubXBsaWIvc25tcHVzbS5jOgorCisgICB1bnNpZ25lZCBqdWdnbGluZyB0byByZW1vdmUgd2FybmluZ3MKKworMjAxMS0wMi0yMyAxNToyMyAgbmJhCisKKyAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5oLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAorICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jOgorCisgICB1bnNpZ25lZCBqdWdnbGluZyB0byByZW1vdmUgd2FybmluZ3MKKworMjAxMS0wMi0yMyAxNToyMCAgbmJhCisKKyAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLmg6CisKKyAgIEVuYWJsZSAocHJvYmFibHkgZm9yZ290dGVuKSBpcEFkZHJlc3NQcmVmaXhUYWJsZQorCisyMDExLTAyLTIzIDE0OjMwICBoYXJkYWtlcgorCisgICAqICBsb2NhbC9taW5pbWFsaXN0LCBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtY2hlY2ssICAgCisgICAgICBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3MsICAgCisgICAgICBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtcmVtb3ZlLCAgIAorICAgICAgbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlLCAgIAorICAgICAgbG9jYWwvbWluaW1hbGlzdC9yZW1vdmVpZmRlZmNvZGUucGw6CisKKyAgIGFkZGVkIG90aGVyIG1pc3NpbmcgJ25ldycgZmlsZXMgbm90IGluY2x1ZGVkIGluIHRoZSBtaW5pbWFsaXN0CisgICBwYXRjaCBmaWxlCisKKzIwMTEtMDItMjMgMDk6NTQgIG5iYQorCisgICAqICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fZnJlZWJzZDQuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9uZXRic2QuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9vcGVuYnNkLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9mcmVlYnNkNC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbmV0YnNkLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9vcGVuYnNkLmM6CisKKyAgIExvYWRpbmcgSVB2NiBkYXRhIGlzIGEgbm8tbm8gd2hlbiBJUHY2IG5vdCBlbmFibGVkCisKKzIwMTEtMDItMjMgMDk6MzYgIG5iYQorCisgICAqIGFwcHMvc25tcHRhYmxlLmM6CisKKyAgIEZpeCBidWcgMzExODYzMTogc25tcHRhYmxlIHNlZ2ZhdWx0cyBpZiBpbmRleCBjb250YWlucyA6CisgICBjaGFyYWN0ZXIKKworMjAxMS0wMi0yMyAwOTozMCAgbmJhCisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDguaDoKKworICAgRnJlZUJTRCA4IHN1cHBvcnQKKworMjAxMS0wMi0yMyAwMTo0OCAgaGFyZGFrZXIKKworICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg6CisKKyAgIGFkZGVkIG1pc3NpbmcgbmV0LXNubXAtZmVhdHVyZXMuaAorCisyMDExLTAyLTIzIDAwOjAxICBoYXJkYWtlcgorCisgICAqICBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXMsIE1ha2VmaWxlLnRvcCwgYWdlbnQvTWFrZWZpbGUuaW4sICAgCisgICAgICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsICAgCisgICAgICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCAgIAorICAgICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsICAgCisgICAgICBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCisgICAgICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jLCAgIAorICAgICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgICAKKyAgICAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsICAgCisgICAgICBhZ2VudC9oZWxwZXJzL3NjYWxhci5jLCBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jLCAgIAorICAgICAgYWdlbnQvaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAgCisgICAgICAgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywgICAKKyAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywgICAKKyAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKKyAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYywgICAKKyAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXJyb3JUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbkNvbmYuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0Q29uZi5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0VGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKKyAgICAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa2luZm8uYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbmxpc3QuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X2Rhcndpbi5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIAorICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaCwgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaCwgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYywKKyAgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKKyAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKKyAgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKKyAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgIAorICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKKyAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKKyAgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKKyAgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKKyAgICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCAKKyAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKKyAgICAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwgCisgICAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaCwgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX3NvbGFyaXMyLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgICBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCisgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKKyAgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKKyAgICAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAKKyAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9jb21tb24uYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9zb2xhcmlzMi5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywKKyAgICAgICAgIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCisgICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywgYXBwcy9NYWtlZmlsZS5pbiwgICAKKyAgICAgIGFwcHMvYWdlbnR4dHJhcC5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCAgIAorICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCAgIAorICAgICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCAgCisgICAgICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgICAKKyAgICAgIGFwcHMvc25tcHRyYXBkX3NxbC5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgICAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsIAorICAgICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19zZWN1cml0eV9tb2R1bGVzLCAgIAorICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfdHJhbnNwb3J0cywgICAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMiwgICAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uLCAgIAorICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsICAgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCAgIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCAgIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaCwgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgsICAgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCAgIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLCAgIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgcGVybC9PSUQvT0lELnhzLCAgIAorICAgICAgcGVybC9TTk1QL1NOTVAueHMsIHBlcmwvYWdlbnQvYWdlbnQueHMsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCisgICAgICBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCAKKyAgICAgICAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYywgICAKKyAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMsICAgCisgICAgICBzbm1wbGliL2RhdGFfbGlzdC5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgICAKKyAgICAgIHNubXBsaWIvZGlyX3V0aWxzLmMsIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLCAgIAorICAgICAgc25tcGxpYi9maWxlX3V0aWxzLmMsIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9rZXl0b29scy5jLCAgIAorICAgICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL29pZF9zdGFzaC5jLCAgIAorICAgICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywgICAKKyAgICAgIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgICAKKyAgICAgIHNubXBsaWIvc25tcF9lbnVtLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsICAgCisgICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCAgIAorICAgICAgc25tcGxpYi9zbm1wX3NlY21vZC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCisgICAgICBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdHNtLmMsIHNubXBsaWIvc25tcHVzbS5jLCAgIAorICAgICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90ZXh0X3V0aWxzLmMsICAgCisgICAgICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgICAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKKyAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3VjZF9jb21wYXQuYywgICAKKyAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzY29uZmlnLCAgIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdiYXNlLCAgIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN2YWNtY29uZmlnLCAgIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX3NpbXBsZSwgICAKKyAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfc2ltcGxlLCAgIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfc2ltcGxlLCAgIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfc2ltcGxlLCAgIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9zaW1wbGUsICAgCisgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKKyAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfc2ltcGxlLCAgIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGU6CisKKyAgIE5FV1M6IHBhY2thZ2luZzogRW5hYmxlIG1pY3JvLWFuZC1tYWNyby1mZWF0dXJlIG1hbmFnZW1lbnQgd2l0aGluCisgICBOZXQtU05NUDsgdGhpcyBhZGRzIGEgbnVtYmVyIG9mIG5ldyBmbGFncyB0byBjb25maWd1cmUKKyAgICgtLWVuYWJsZS1taW5pbWFsaXN0IGFuZCAtLWVuYWJsZS1yZWFkLW9ubHkpLiBUaGVzZSBjaGFuZ2VzIGFyZQorICAgZGVzaWduZWQgdG8gcmVtb3ZlIG11Y2ggb2YgdGhlIGlubGluZSBjb2RlIHRoYXQgaXNuJ3QgYWx3YXlzCisgICBuZWNlc3Nhcnkgb3IgZGVzaXJlZC4gU2NyaXB0cyBleGlzdCAoYW5kIHdpbGwgYmUgaW1wcm92ZWQpIHRvCisgICBzdGlwIG91dCB1bnVzZWQgY29tcG9uZW50cyBmcm9tIHRoZSBjb2RlIGVudGlyZWx5IHRvIGVuYWJsZSBhCisgICBzaG9ydGVyIHJldmlldyBwcm9jZXNzIGZvciB1cGdyYWRpbmcgdG8gbmV3IHJlbGVhc2VzLiBUaGlzIHdvcmsKKyAgIHdhcyBkb25lIGJ5IFdlcyBIYXJkYWtlciBhbmQgTWljaGFlbCBCYWVyIGZyb20gU1BBUlRBLCBJbmMuIGJ1dAorICAgaXMgYmVpbmcgY2hlY2tlZCBpbiBhcyBhIGxhcmdlIHBhdGNoIHNpbmNlIGNvbnZlcnRpbmcgdGhlIG1pY3JvCisgICBwYXRjaGVzIGZyb20gZ2l0IHRvIHN2biB0dXJlbmQgb3V0IHRvIGJlIGltcG9zc2libGUKKworMjAxMS0wMi0yMiAyMzo1NSAgaGFyZGFrZXIKKworICAgKiBGQVE6CisKKyAgIHVzZSB0aGUgd2lraSBVUkwgaW5zdGVhZCBvZiB0aGUgdHV0b3JpYWwtNSBVUkwgZm9yIHRoZSBzbm1wdHJhcAorICAgdHV0b3JpYWwKKworMjAxMS0wMi0yMSAyMjo0MCAgbmJhCisKKyAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9raW5mby5jOgorCisgICBwcm9wZXIgcHJvY2VzcyBzdGF0dXMgdmFsdWVzIGZvciBuZXRic2QKKworMjAxMS0wMi0yMSAyMjozOSAgbmJhCisKKyAgICogc25tcGxpYi9zY2FwaS5jOgorCisgICBjb25kaXRpb25hbGl6ZSB2YXJpYWJsZQorCisyMDExLTAyLTIxIDIyOjIwICBuYmEKKworICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaDoKKworICAgdGNwLW1pYi91ZHAtbWliIHN1cHBvcnQgZm9yIHRoZSAqYnNkcworCisyMDExLTAyLTIxIDIyOjE2ICBuYmEKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9mcmVlYnNkNC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX25ldGJzZC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX29wZW5ic2QuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50LmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9mcmVlYnNkNC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbmV0YnNkLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9vcGVuYnNkLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYzoKKworICAgdGNwLW1pYi91ZHAtbWliIHN1cHBvcnQgZm9yIHRoZSAqYnNkcworCisyMDExLTAyLTIxIDIyOjA1ICBuYmEKKworICAgKiAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jOgorCisgICBQcm9wZXJseSBlbmQgZGVidWcgbWVzc2FnZSB3aXRoIG5ld2xpbmUKKworMjAxMS0wMi0yMSAyMjowNCAgbmJhCisKKyAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CisKKyAgIHJlbW92ZSB2YXIgdGhhdCBzaGFkb3dzIHRoZSB1c2VmdWwgb25lCisKKzIwMTEtMDItMjEgMjI6MDIgIG5iYQorCisgICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKKworICAgbWFqb3IgZmlkZGxpbmcgdG8gZ2V0IHRoaW5ncyB3b3JraW5nIGZvciBvcGVuYnNkIHRvby4gVGhpcyBzaG91bGQKKyAgIHJlYWxseSBiZSByZXdvcmtlZCB0byB1c2UgdGhlIHRjcC1taWIvdWRwLW1pYi9kYXRhX2FjY2VzcworCisyMDExLTAyLTIxIDIxOjU5ICBuYmEKKworICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOgorCisgICBmaXggdGNwIHN0YXRlcyBmb3IgZHJhZ29uZmx5YnNkCisKKzIwMTEtMDItMjEgMjE6NTcgIG5iYQorCisgICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CisKKyAgIGVuYWJsZSBuZXcgdGNwL3VkcCBtaWJzIGZvciBzb2xhcmlzCisKKzIwMTEtMDItMjEgMjE6NTMgIG1hZ2ZyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjMuYzoKKworICAgRG8gbm90IHVzZSBjOTkKKworMjAxMS0wMi0yMSAxOTowOCAgaGFyZGFrZXIKKworICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKKworICAgVXBkYXRlZCBjb21tZW50IGFib3V0IHdoZXJlIG1ha2VyZWxlYXNlIGNvbWVzIGZyb20gKG5vdyBnaXRodWIpCisKKzIwMTEtMDItMjAgMDk6MjQgIGJ2YXNzY2hlCisKKyAgICogYWdlbnQvc25tcF9hZ2VudC5jOgorCisgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTg1NTI4OiBzaHV0ZG93bl9tYXN0ZXJfYWdlbnQgZG9lc24ndCBjbG9zZQorICAgVURQIHNvY2tldAorICAgKEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gcjE5NTExLikKKworMjAxMS0wMi0xOCAxNDo0MyAganNhZnJhbmVrCisKKyAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50Y3RsLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX3N0b3JhZ2UuYywgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oLCBtYW4vc25tcGQuY29uZi41LmRlZjoKKworICAgQ0hBTkdFUzogc25tcGQ6IHJld29ya2VkIGhyU3RvcmFnZVRhYmxlIHRvIHN1cHBvcnQgbGFyZ2UKKyAgIGZpbGVzeXN0ZW1zLgorICAgCisgICBUaGUgaHJTdG9yYWdlQWxsb2NhdGlvblVuaXRzIGRvZXMgbm90IHJlcG9ydCByZWFsIGFsbG9jYXRpb24gdW5pdAorICAgc2l6ZSwKKyAgIGJ1dCBzb21lIGNhbGN1bGF0ZWQgdmFsdWUgc28gaHJTdG9yYWdlQWxsb2NhdGlvblVuaXRzICoKKyAgIGhyU3RvcmFnZVNpemUKKyAgIGdpdmVzIHJlYWwgc2l6ZSBvZiB0aGUgZmlsZXN5c3RlbS4KKyAgIAorICAgVGhpcyBjYWxjdWxhdGlvbiBoYXBwZW5zIG9ubHkgd2hlbiBoclN0b3JhZ2VTaXplIGlzIHRvbyBzbWFsbAorICAgKDMyYml0cykKKyAgIGZvciBmaWxlc3lzdGVtIHNpemUsIGUuZy4gZmlsZXN5c3RlbXMgbGFyZ2VyIHRoYW4gOFRCIHdpdGggNDA5NgorICAgYnl0ZXMKKyAgIGJsb2NrIHNpemUuCisgICAKKyAgIFRoaXMgY2FsY3VsYXRpb24gY2FuIGJlIHR1cm5lZCBvZmYgYnkgJ3JlYWxTdG9yYWdlVW5pdHMnIGNvbmZpZworICAgb3B0aW9uLgorCisyMDExLTAyLTE4IDE0OjI5ICBqc2FmcmFuZWsKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tbnR0eXBlcy5oOgorCisgICBBZGQgSkZTIGFuZCBYRlMgdG8gbGlzdCBvZiBrbm93biBmaWxlc3VzdGVtcworCisyMDExLTAyLTE3IDExOjI4ICBqc2FmcmFuZWsKKworICAgKiBsb2NhbC9zbm1wLWJyaWRnZS1taWI6CisKKyAgIEZpeGVkIHNubXAtYnJpZGdlLW1pYiBpbiBzdGFuZGFsb25lIChhZ2VudHgpIHZlcnNpb24uCisgICBEb24ndCBkZWNsYXJlIGxvY2FsIHZhcmlhYmxlcyBpbnNpZGUgYmxvY2suIFBhdGNoIHByb3ZpZGVkIGJ5CisgICBKZW5zIE9zdGVya2FtcC4KKworMjAxMS0wMi0xNiAxNDo1NiAganNhZnJhbmVrCisKKyAgICogbG9jYWwvc25tcC1icmlkZ2UtbWliOgorCisgICBGaXhlZCBzbm1wLWJyaWRnZS1taWIgd2hlbiB3b3JraW5nIGluIHRoZSBlbWJlZGRlZCBwZXJsLgorCisyMDExLTAyLTE2IDEzOjE2ICBqc2FmcmFuZWsKKworICAgKiBsb2NhbC9zbm1wLWJyaWRnZS1taWI6CisKKyAgIEZpeGVkIEdFVE5FWFQgcHJvY2Vzc2luZyBpbiBzbm1wLWJyaWRnZS1taWIuCisKKzIwMTEtMDItMTUgMjI6MjQgIG5iYQorCisgICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CisKKyAgIFByb3Blcmx5IHNhdmUgZW50cmllcyBmb3IgTmV0QlNEIGFuZCBEcmFnb25GbHkKKworMjAxMS0wMi0xNSAyMjoxOCAgbmJhCisKKyAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmM6CisKKyAgIHJlbW92ZSByZWR1bmRhbnQgaW5jbHVkZXMKKworMjAxMS0wMi0xNSAyMTo0NiAgbmJhCisKKyAgICogY29uZmlndXJlOgorCisgICByZXJ1biBhdXRvaGVhZGVyL2F1dG9jb25mCisKKzIwMTEtMDItMTUgMjE6MzMgIG5iYQorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgorCisgICBpbmNsdWRlIHN5cy90eXBlcy5oIGJlZm9yZSBzeXMvc29ja2V0LmgKKworMjAxMS0wMi0xNSAyMToyNiAgbmJhCisKKyAgICogbTQvbmV0c25tcF9zZWFyY2hfbGlicy5tNDoKKworICAgVG9vIG11Y2ggcXVvdGluZyBpcyBiYWQKKworMjAxMS0wMi0xNSAyMToxMSAgbmJhCisKKyAgICogIGFnZW50L21pYmdyb3VwL21pYklJLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuaDoKKworICAgRml4IElQdjYgVENQIGFuZCBVRFAgdGFibGVzLCAqQlNEIHN1cHBvcnQKKworMjAxMS0wMi0xNSAyMDo0NSAgbmJhCisKKyAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdENvbmYuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwUmVzdWx0c1RhYmxlLmM6CisKKyAgIEtpbGwgY29tcGlsZXIgd2FybmluZ3MKKworMjAxMS0wMi0xNSAyMDo0NCAgbmJhCisKKyAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzoKKworICAgRmlsdGVyIElQdjYgZW50cmllcyBmcm9tIElQdjQgdGFibGUKKworMjAxMS0wMi0xNSAyMDo0MiAgbmJhCisKKyAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uaCwgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa2luZm8uYzoKKworICAgUHJvcGVyIHVzZSBvZiBnZXRwcm9jMiBhbmQgZHJhZ29uZmx5IHN1cHBvcnQKKworMjAxMS0wMi0xNSAyMDo0MSAgbmJhCisKKyAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYzoKKworICAgZ2V0dmZzc3RhdCBpcyBvbmx5IGZvciBOZXRCU0QKKworMjAxMS0wMi0xNSAyMDozOSAgbmJhCisKKyAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMxLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6CisKKyAgIERldGVjdCBuZWVkIGZvciAtbGt2bSBpbiBwcm9wZXIgdGltZQorCisyMDExLTAyLTE1IDE5OjQyICBoYXJkYWtlcgorCisgICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CisKKyAgIHJlbW92ZSB0aGUgc3RhdGVtZW50IGFib3V0IGVuYWJsaW5nIHN0ZGVyciBieSBkZWZhdWx0LgorCisyMDExLTAyLTE1IDE5OjQyICBoYXJkYWtlcgorCisgICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgorCisgICByZW1vdmUgMyBmdW5jdGlvbnMgdGhhdCBhcyBmYXIgYXMgSSBjYW4gdGVsbCBoYXZlIHBvc3NpYmx5IG5ldmVyCisgICBiZWVuIHVzZWQKKworMjAxMS0wMi0xNCAxNDozOCAgYnZhc3NjaGUKKworICAgKiBhZ2VudC9zbm1wZC5jOgorCisgICBGaXhlZCBhIE1pbkdXLXNwZWNpZmljIGNvbXBpbGVyIHdhcm5pbmcuCisKKzIwMTEtMDItMTMgMTY6MjggIG1hZ2ZyCisKKyAgICogbmV0LXNubXAtY29uZmlnLmluOgorCisgICBDSEFOR0VTOiBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHN0YXRpYyBhcHBsaWNhdGlvbnMgdXNpbmcKKyAgIG5ldC1zbm1wLWNvbmZpZyBhbmQgdGhlIC0qbGlicyBmbGFncyBvbmNlIG1vcmUuCisKKzIwMTEtMDItMTAgMTU6MTMgIGR0czEyCisKKyAgICogc25tcGxpYi9taWIuYzoKKworICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE2NTg3ODogQ2F0Y2ggYnVmZmVyIG92ZXJydW4gb24KKyAgIDY0LWJpdCBzeXN0ZW1zCisKKzIwMTEtMDItMTAgMTU6MDYgIGR0czEyCisKKyAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jOgorCisgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzE1MjQxMjogSGFuZGxlIChhbmQgcmVwb3J0KSBwcm9ibGVtcworICAgcmVhZGluZyAvcHJvYy92bXN0YXQKKworMjAxMS0wMi0wOSAwNzozNCAgYnZhc3NjaGUKKworICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CisKKyAgIEJ1aWxkaW5nIERMTCBhbmQgUGVybCBtb2R1bGVzIHdpdGggd2luMzIvYnVpbGQuYmF0IHdvcmtzIGFnYWluLgorCisyMDExLTAyLTA4IDE5OjM4ICBoYXJkYWtlcgorCisgICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oOgorCisgICBSZW1vdmUgdGhlIGZ1bmN0aW9ucyBtYXJrZWQgYXMgZGVwcmVjYXRlZCBhbmQgc2FmZSBmb3IgcmVtb3ZhbCBpbgorICAgNS42LgorCisyMDExLTAyLTA4IDE3OjQxICBoYXJkYWtlcgorCisgICAqIHBlcmwvU05NUC9TTk1QLnhzLCBwZXJsL2FnZW50L2FnZW50LnBtOgorCisgICBDSEFOR0VTOiBwZXJsOiBwYXRjaCBmcm9tIE1hcnRpbiBCdWNrOiBkb24ndCBhbHdheXMgb3BlbiBzdGRlcnIKKyAgIGFzIHRoZSBjYWxscyB0byBzbm1wX2xvZyBhbHJlYWR5IGRvIHRoaXMgYW5kIGl0IG1lc3NlcyB1cCB0aGUKKyAgIGFnZW50IHdoZW4gZW1iZWRkZWQKKworMjAxMS0wMi0wOCAxNzozNyAgaGFyZGFrZXIKKworICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CisKKyAgIENIQU5HRVM6IHNubXBkOiBGaXggYSBzdHJsZW4gY2FsY3VsYXRpb24gYXMgcG9pbnRlZCBvdXQgYnkKKyAgIEtvbnN0YW50aW4gQmF5ZGFyb3YKKworMjAxMS0wMi0wNyAyMDowNyAgaGFyZGFrZXIKKworICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgorCisgICBkb2N1bWVudCB0aGUgMyBuZXcgU1NIIGNvbmZpZyB0b2tlbnMKKworMjAxMS0wMi0wNyAyMDowNyAgaGFyZGFrZXIKKworICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jOgorCisgICBDSEFOR0VTOiBsaWJuZXRzbm1wOiBtYWRlIHRoZSBTU0ggdHJhbnNwb3J0IGNvbmZpZ3VyYWJsZSBhcyBpdAorICAgc2hvdWxkIGJlLgorCisyMDExLTAyLTA3IDIwOjA3ICBoYXJkYWtlcgorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CisKKyAgIEFkZGVkIGRlZmF1bHRfc3RvcmUgc3RyaW5ncyBmb3Igc3NoOiB1c2VybmFtZSwgcHVia2V5LCBwcml2a2V5CisKKzIwMTEtMDItMDYgMDY6MzQgIG1hZ2ZyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgorCisgICBTaW1wbGlmeSB0aGUgY29udHJvbCBmbG93IHRvIGFsbG93IGZvciBtb3JlIG9wdGltaXphdGlvbi4KKworMjAxMS0wMi0wMyAyMjo0MiAgdGFuZGVycworCisgICAqIHNubXBsaWIvc25tcF9hcGkuYzoKKworICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzMTcxODc4OiBVc2luZyBTTk1QdjMgY29udGV4dCBkb2VzIG5vdAorICAgd29yaworCisyMDExLTAyLTAyIDA3OjA5ICBtYWdmcgorCisgICAqIGFnZW50L3NubXBkLmM6CisKKyAgIEluY2x1ZGUgdGhlIFVTSU5HXyB2YXJpYWJsZXMgZnJvbSB0aGUgYWdlbnQgbGlicmFyeSBhcyB3ZWxsLCBpbgorICAgcGFydGljdWxhciB0aGUKKyAgIFVTSU5HX0FHRU5UWF8qIHZhcmlhYmxlcy4KKworMjAxMS0wMi0wMSAxMzowNyAganNhZnJhbmVrCisKKyAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jOgorCisgICBEb24ndCBjaGVjayBmb3IgMzIvNjRiaXQgd3JhcCBpbiBjYWxjdWxhdGVkIGVudHJpZXMuCisKKzIwMTEtMDItMDEgMDk6NDEgIGpzYWZyYW5laworCisgICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYzoKKworICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHRoZSBhZ2VudCB3cml0aW5nICdsb29rcyBsaWtlIGEgNjRiaXQgd3JhcCwKKyAgIGJ1dCBwcmV2IT1uZXcnIGluIHN5c2xvZyB3aGVuIGNvbXB1dGluZyBpcFN5c3RlbVN0YXRzCisgICAKKyAgIFdpdGhvdXQgdGhlIG1lbWNweSwgcHJldl92YWxzLT5zdGF0cyBhbmQgbmV3X3ZhbHMtPnN0YXRzIGNvdWxkCisgICBnZXQgZGlmZmVyZW50LAorICAgd2hpY2ggY291bGQgbXVjaCBtdWNoIGxhdGVyICh3aGVuIGEgY291bnRlciBnZXRzIGJpZ2dlciB0aGFuIDMyCisgICBiaXRzKSByZXN1bHQKKyAgIGluICdwcmV2IT1uZXcnIG1lc3NhZ2UgaW4gc3lzbG9nLiBUeXBpY2FsbHkgdGhpcyBoYXBwZW5zIGFmdGVyCisgICBsb25nIHRpbWUgb2YKKyAgIHVwdGltZSBhbmQgaXQgaXMgdmVyeSBoYXJkIHRvIHJlcHJvZHVjZS4KKworMjAxMS0wMi0wMSAwNzoxOSAgbWFnZnIKKworICAgKiBhZ2VudC9zbm1wZC5jOgorCisgICBSZW1vdmUgc29tZSB1bnVzZWQgaW5jbHVkZXMKKworMjAxMS0wMS0zMSAyMjozOSAgbmJhCisKKyAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmM6CisKKyAgIGFkZHByb3RvdHlwZXMgYW5kIHJlbW92ZSB1bnVzZWQgdmFycworCisyMDExLTAxLTMxIDIyOjM3ICBuYmEKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbi5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbi5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3QuaCwgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlVGFibGUuYywgICAKKyAgICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKKworICAgY29uc3QganVnZ2xpbmcgdG8gcmVtb3ZlIHdhcm5pbmdzCisKKzIwMTEtMDEtMzEgMjI6MzAgIG5iYQorCisgICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgorCisgICBkaXNraW8gZm9yIGRyYWdvbmZseQorCisyMDExLTAxLTMxIDIyOjI4ICBuYmEKKworICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tpbmZvLmM6CisKKyAgIHByb3Blcmx5IG5hbWUgaW5pdGFsaXplciBmdW5jdGlvbiBmb3IgY3B1X2tpbmZvCisKKzIwMTEtMDEtMzAgMTU6MjEgIG1hZ2ZyCisKKyAgICogYXBwcy9hZ2VudHh0cmFwLmM6CisKKyAgIFJlZHVjZSB0aGUgbnVtYmVyIG9mIHVzZWQgaW5jbHVkZSBmaWxlcy4KKworMjAxMS0wMS0zMCAwOTozNSAgbWFnZnIKKworICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmg6CisKKyAgIENIQU5HRVM6IHNubXBkOiBBZGQgbWlzc2luZyBmdW5jdGlvbiBkZWNsYXJhdGlvbgorCisyMDExLTAxLTMwIDAxOjA2ICB0YW5kZXJzCisKKyAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CisKKyAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMxNTE4OTc6IGZkIGxlYWsgdy8gL3Byb2MvcGFydGl0aW9ucworICAgcmVhZCBpbiBkaXNraW8KKworMjAxMS0wMS0yOSAyMzozNiAgdGFuZGVycworCisgICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CisKKyAgIE5FV1M6IHNubXBkOiBCVUc6IDMxNjY1Njg6IGhyU3lzdGVtUHJvY2Vzc2VzIG1pc3NpbmcgaW4gNS42LzUuNi4xCisKKzIwMTEtMDEtMjcgMDk6MzUgIGR0czEyCisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKKworICAgQWZ0ZXIgdGVuIHllYXJzIGludGVuc2l2ZSB1c2UsIGFuICJleHBlcmltZW50YWwiCisgICBmZWF0dXJlIGNhbiBwcm9iYWJseSBiZSByZWxlYXNlZCBmb3IgZ2VuZXJhbCB1c2UuCisKKzIwMTEtMDEtMjYgMTY6NTAgIGhhcmRha2VyCisKKyAgICogbG9jYWwvbWliMmM6CisKKyAgIENIQU5HRVM6IG1pYjJjOiBtYWtlIHRoZSBtaWIyYyBmb3JlYWNoIHJhbmdlcyB3b3JrIGFzIGFkdmVydGlzZWQKKyAgIGluIHRoZSBjb21tZW50cy4KKworMjAxMS0wMS0yNiAxNjo0OSAgaGFyZGFrZXIKKworICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjdzbm1wdjNEZWZhdWx0c19zaW1wbGU6CisKKyAgIGEgdGVzdCB0byBlbnN1cmUgdjMvVVNNIHNubXAuY29uZiBzZXR0aW5ncyB3b3JrCisKKzIwMTEtMDEtMjYgMTY6NDkgIGhhcmRha2VyCisKKyAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CisKKyAgIHJlbW92ZSB0ZXN0b3B0cworCisyMDExLTAxLTI2IDA5OjEyICBqc2FmcmFuZWsKKworICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CisKKyAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCByYXJlIHJhY2UgY29uZGl0aW9uIHdoZW4gY291bnRpbmcgcHJvY2Vzc2VzCisgICBmb3IgVUNELVNOTVAtTUlCOjpwclRhYmxlCisgICAKKyAgIFRoZSBYWCBwcm9jZXNzIGNhbiBleGl0IGFmdGVyIGZvcGVuKC9wcm9jL1hYL3N0YXR1cykgYW5kIGJlZm9yZQorICAgZmdldHMoKSBmcm9tIGl0LiBzbm1wZCBzaG91bGQgY29udGludWUgd2l0aCBvdGhlciBwcm9jZXNzZXMgYW5kCisgICBub3QgdG8gc3RvcC4KKworMjAxMS0wMS0xOSAxMzo1NyAganNhZnJhbmVrCisKKyAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczE6CisKKyAgIE1ha2UgdXMgY29tcGF0aWJsZSB3aXRoIHJwbS00LjksIHJwbUdldEZpbGVzeXN0ZW1MaXN0IGRvZXMgbm90CisgICBleGlzdCBhbnltb3JlLCBzbyB0aGUgY29uZmlndXJlIHNjcmlwdCBzaG91bGQgbm90IGNoZWNrIGl0LgorCisyMDExLTAxLTE5IDA2OjMxICBuYmEKKworICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczE6CisKKyAgIGRpc2tJT0xBeCByZXF1aXJlcyBleHAgd2hpY2ggbWF5IHJlcXVpcmUgLWxtCisKKzIwMTEtMDEtMTggMjI6MzkgIG5iYQorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CisKKyAgIGF1dG9oZWFkZXIKKworMjAxMS0wMS0xOCAyMjozNyAgbmJhCisKKyAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgorCisgICBGaW5kIHByb3BlciBpZi1taWIgaW50ZXJmYWNlIGZvciBOZXRCU0QKKworMjAxMS0wMS0xOCAyMjozNiAgbmJhCisKKyAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgorCisgICB0eXBvCisKKzIwMTEtMDEtMTggMjI6MzUgIG5iYQorCisgICAqIGFjY29uZmlnLmg6CisKKyAgIGRlZmluZSBkcmFnb25mbHlpZAorCisyMDExLTAxLTE0IDEzOjI0ICBqc2FmcmFuZWsKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmM6CisKKyAgIEFkZCBJUHY2IHN1cHBvcnQgZm9yIGNyZWF0aW5nIHJvd3MgaW4gaXBBZGRyZXNzdGFibGUuCisgICAKKyAgIFVzaW5nIFNOTVAgU0VULCBpdCBpcyBub3cgcG9zc2libGUgdG8gY3JlYXRlIGFuZCBkZXN0cm95IElQdjYKKyAgIGFkZHJlc3NlcyBvbiBhbiBpbnRlcmZhY2UuCisKKzIwMTEtMDEtMTQgMTI6MjggIGpzYWZyYW5laworCisgICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgorCisgICBDSEFOR0VTOiBzbm1wZDogZnJvbSBSb2JlcnQgU3Rvcnk6IGZpeGVkIGFkZGluZyBuZXcgYWRkcmVzc2VzIHRvCisgICBpcEFkZHJlc3NUYWJsZQorICAgCisgICBMb25nIHRpbWUgYWdvLCB0aGVyZSB3YXMgYSBidWdyZXBvcnRbMV0gcmVnYXJkaW5nIGlwQWRkcmVzc1RhYmxlCisgICBvbgorICAgbmV0LXNubXAtY29kZXJzIGxpc3QgYW5kIHJzdG9yeSdzIGV4cGVyaW1lbnRhbCBwYXRjaCB3aXRob3V0IGFueQorICAgZmVlZGJhY2suCisgICBOb3cgSSd2ZSBnb3QgZmV3IGNvbXBsYWludHMgdGhhdCBTTk1QIFNFVCBvbiBpcEFkZHJlc3NUYWJsZQorICAgcHJvZHVjZXMgdGhlCisgICBzYW1lIGVycm9ycyBhbmQgZ3Vlc3Mgd2hhdCwgdGhlIHBhdGNoIGZpeGVzIHRoZW0uCisgICAKKyAgIFsxXToKKyAgIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvbWFpbGFyY2hpdmUvZm9ydW0ucGhwP3RocmVhZF9uYW1lPTIwMDYwOTIwMTM0OTM1LjM1YjM2ZWQ2JTQwZGV2LmZ1dHoub3JnJmZvcnVtX25hbWU9bmV0LXNubXAtY29kZXJzCisKKzIwMTEtMDEtMTQgMDY6MjUgIHJzdG9yeQorCisgICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgorCisgICByZW1vdmUgY29tcGxldGVseSB1c2VsZXNzIGFuZCBub25zZW5zaWNhbCBjb2RlCisKKzIwMTEtMDEtMTMgMTc6MjQgIHJzdG9yeQorCisgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgorCisgICBhbGxvY2F0ZSBzcGFjZSBmb3IgYXJyYXkgTlVMTCB0ZXJtaW5hdGlvbgorCisyMDExLTAxLTEzIDE1OjU2ICBkdHMxMgorCisgICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgorCisgICBFbnN1cmUgcmVsZWFzZXMgYXJlIGluc3RhbGxlZCB0byB0aGUgY29ycmVjdCBwYXRoIHdpdGhpbiB0aGUKKyAgIC90YWdzIFNWTiB0cmVlCisKKzIwMTEtMDEtMTMgMTU6MTUgIGR0czEyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX25ldGJzZC5jOgorCisgICBSZW1vdmUgQysrIGNvbW1lbnRzCisKKzIwMTEtMDEtMTMgMTM6MTcgIGR0czEyCisKKyAgICogYWdlbnQvYXV0b19ubGlzdC5jOgorCisgICBGaXggYnJva2VuIHBhdGNoCisKKzIwMTEtMDEtMTMgMTI6MTQgIGR0czEyCisKKyAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCisgICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczE6CisKKyAgIENvbmZpZ3VyZSBmaXhlcyBmb3IgRHJhZ29uRmx5IHN1cHBvcnQKKworMjAxMS0wMS0xMyAxMjowNCAgZHRzMTIKKworICAgKiAgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHJhZ29uZmx5Lmg6CisKKyAgIENvZGUgZml4ZXMgZm9yIERyYWdvbkZseSBzdXBwb3J0CisKKzIwMTEtMDEtMTMgMTE6MzMgIGR0czEyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9uZXRic2QuYzoKKworICAgRml4IHR5cG8KKworMjAxMS0wMS0xMiAyMToyMyAgcnN0b3J5CisKKyAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgorCisgICBtZXJnZSBkdXBsaWNhdGVkIHNodXRkb3duIGZ1bmN0aW9ucworCisyMDExLTAxLTEyIDIwOjExICBidmFzc2NoZQorCisgICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsICAgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CisKKyAgIFJlaW1wbGVtZW50IG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IyKCkgYnkgYWRkaW5nIHRoZSBmbGFnCisgICBORVRTTk1QX0lURVJBVE9SX09XTlNfSUlORk8gZm9yCisgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm8uIFJlbW92ZQorICAgbmV0c25tcF9nZXRfdGFibGVfaXRlcmF0b3JfaGFuZGxlcjIoKSBiZWNhdXNlIGl0IGlzIG5vdworICAgc3VwZXJmbHVvdXMuCisKKzIwMTEtMDEtMTIgMTk6MjIgIGJ2YXNzY2hlCisKKyAgICogYWdlbnQvc25tcF92YXJzLmM6CisKKyAgIEF2b2lkIHRoYXQgdGhlIGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCBhIG1pc3NpbmcgZGVjbGFyYXRpb24gZm9yCisgICBuZXRzbm1wX2NlcnRzX2FnZW50X2luaXQoKS4KKworMjAxMS0wMS0xMiAxOToyMCAgYnZhc3NjaGUKKworICAgKiAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy91c21ESFBhcmFtZXRlcnMuYzoKKworICAgR2V0IHJpZCBvZiBhIGNvbXBpbGVyIHdhcm5pbmcgaW4KKyAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy91c21ESFBhcmFtZXRlcnMuYy4KKworMjAxMS0wMS0xMiAxOTowNCAgYnZhc3NjaGUKKworICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKKworICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIChmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaCkgdGhhdCB3YXMKKyAgIGludHJvZHVjZWQKKyAgIGluIHIxOTgwOCAoInNubXBkOiBQQVRDSEVTOiAyOTc1MjU0OiBBdm9pZCBjYWxsYmFjayByZS11c2Ugb2YKKyAgIGNsb3NlZCBzZXNzaW9ucyIpLgorCisyMDExLTAxLTEyIDE1OjAzICByc3RvcnkKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgorCisgICBDSEFOR0VTOiBzbm1wOiBwYXRjaDogMzA5NjcyNTogc3lzT1JUYWJsZSByZWdpc3RhdGlvbiBmb3IKKyAgIG5vdGlmaWNhdGlvbiBsb2cgbWliCisgICAKKyAgIG9yaWdpbmFsIHBhdGNoIGZpeGVkIHNldmVyYWwgaXNzdWVzLCBvdGhlciBwYXJ0cyBhcHBsaWVkIGVhcmxpZXIKKworMjAxMS0wMS0xMSAxNzoyNyAgcnN0b3J5CisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CisKKyAgIGRvIG5vdCBpbmNsdWRlIGlwdjYgc3RydWN0IGlmIGlwdjYgaXMgbm90IGVuYWJsZWQKKworMjAxMS0wMS0xMSAxNjowNCAgZHRzMTIKKworICAgKiBvdi9VQ0QtZmllbGRzLCBvdi9vaWRfdG9fc3ltLmluLCBvdi9vaWRfdG9fdHlwZS5pbjoKKworICAgUmVjb2duaXNlIEFnZW50IE9JRCBmb3IgRHJhZ29uRmx5IHN5c3RlbXMgKGFuZCBnZW5lcmFsIHRpZHlpbmcKKyAgIHVwKQorICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCisgICAKKyAgIFFuOiBTaG91bGQgdGhlc2UgYmUgdXBkYXRlZCB0byByZWZlciB0byBOZXQtU05NUCAocmF0aGVyIHRoYW4KKyAgIFVDRCk/CisKKzIwMTEtMDEtMTEgMTY6MDEgIGR0czEyCisKKyAgICogIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIG1pYnMvTkVULVNOTVAtVEMudHh0LCAgIAorICAgICAgbWlicy9VQ0QtU05NUC1NSUIudHh0LCBzZWRzY3JpcHQuaW46CisKKyAgIERlZmluZSBBZ2VudCBPSUQgZm9yIERyYWdvbkZseSBzeXN0ZW1zCisgICAoYW5kIGdlbmVyYWwgdGlkeWluZyB1cCkKKyAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQorCisyMDExLTAxLTExIDE1OjI3ICBkdHMxMgorCisgICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CisKKyAgIE5ldEJTRCBEcmFnb25GbHkgc3VwcG9ydCBmb3IgVURQICYgVENQIHRhYmxlcworICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCisKKzIwMTEtMDEtMTEgMTQ6NDEgIGR0czEyCisKKyAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9raW5mby5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9raW5mby5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKKworICAgQ0hBTkdFUzogTmV0QlNEOiBEcmFnb25GbHkgc3VwcG9ydAorICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCisKKzIwMTEtMDEtMTEgMTQ6MzYgIGR0czEyCisKKyAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnM6CisKKyAgIE5ldEJTRC9EcmFnb25GbHkgJ3N0cnVjdCBpZm5ldCcgcmVxdWlyZXMgS0VSTkVMLCBidXQgbm90IF9LRVJORUwKKyAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQorICAgKEkgaG9wZSBJJ3ZlIGdvdCB0aGlzIG9uZSByaWdodCEpCisKKzIwMTEtMDEtMTEgMTM6MzQgIGpzYWZyYW5laworCisgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOgorCisgICBDSEFOR0VTOiBzbm1wbGliOiBmcm9tIEJpbGwgRmVubmVyOiBmaXggc2VuZGluZyBvZiBVRFAgcmVzcG9uc2VzCisgICBmcm9tIG11bHRpaG9tZWQgYWdlbnRzLgorICAgCisgICBUcnkgdG8gc2VuZCB0aGUgcmVzcG9uc2UgYXMgaXQgd2FzIGJlZm9yZSBOZXQtU05NUCA1LjYgKGFzc3VtaW5nCisgICB0aGUgYXBwcm9wcmlhdGUgcmVxdWVzdCB3YXMgdW5pY2FzdCkgYW5kIG9ubHkgaWYgaXQgZmFpbHMgdHJ5IHRvCisgICBzZXQgaWZfaW5kZXggKHRoZSByZXF1ZXN0IG11c3QgYmUgYnJvYWRjYXN0KS4KKworMjAxMS0wMS0xMSAxMzoyMiAgZHRzMTIKKworICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CisKKyAgIFJlYWxseSBoYW5kbGUgc3lzdGVtcyB3aXRoICdzdHJ1Y3QgdGltZXNwZWMgaWZuZXQuaWZfbGFzdGNoYW5nZScKKyAgIChtaXNzaW5nIGVsZW1lbnQgZnJvbSBTVk4gcmV2aXNpb24gMTk4NDEpCisKKzIwMTEtMDEtMTEgMTI6MjQgIGR0czEyCisKKyAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKKworICAgQWRkaXRpb25hbCBoZWFkZXJzIHdoZW4gdGVzdGluZyBmb3IgSVB2NiBoZWFkZXJzCisgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KKworMjAxMS0wMS0xMSAxMjoxNCAgZHRzMTIKKworICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYzoKKworICAgTWlzc2luZyB0eXBlIHVuZGVyIGRhcndpbgorICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCisKKzIwMTEtMDEtMTEgMTI6MTAgIGR0czEyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CisKKyAgIE5ldEJTRCBzdXBwb3J0IGZvciBEaXNrIEkvTyBzdGF0cworICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCisKKzIwMTEtMDEtMTEgMTI6MDEgIGR0czEyCisKKyAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKKworICAgSGFuZGxlIHN5c3RlbXMgd2l0aCAnc3RydWN0IHRpbWVzcGVjIGlmbmV0LmlmX2xhc3RjaGFuZ2UnIChyYXRoZXIKKyAgIHRoYW4gc3RydWN0IHRpbWV2YWwpCisgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KKworMjAxMS0wMS0xMSAxMToyNyAgZHRzMTIKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oOgorCisgICBQdWxsIGluIGtlcm5lbF9uZXRic2QgbW9kdWxlIHdoZW4gcmVxdWlyZWQKKyAgIFtCYXNlZCBvbiBmaXggZnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KKworMjAxMS0wMS0xMSAxMDozNiAgZHRzMTIKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX25ldGJzZC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX25ldGJzZC5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgCisgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oOgorCisgICBDSEFOR0VTOiBOZXRCU0Q6IFJldHJpZXZlIE1JQi1JSSBuZXR3b3JrIHN0YXRpc3RpY3MgdmlhIHN5c2N0bAorICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCisKKzIwMTEtMDEtMTEgMDc6MDQgIG5iYQorCisgICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKKworICAgRml4IGZvciBwY2lfbG9va3VwX25hbWUgYW5kIFJIRUw0CisKKzIwMTEtMDEtMTAgMTY6NTYgIGR0czEyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYzoKKworICAgQWRkIHN1cHBvcnQgZm9yIGRhcndpbgorICAgKFRoZSBwYXRjaCBmcm9tIHRoZSBOZXRCU0QgYXJjaGl2ZSBhcHBlYXJzIHRvIGJlIGVzc2VudGlhbGx5IHRoZQorICAgc2FtZSBhcyB0aGUgZXF1aXZhbGVudCBjb2RlIGZyb20gdGhlIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZSkKKworMjAxMS0wMS0xMCAxNjo1NCAgZHRzMTIKKworICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYzoKKworICAgQWRkIHN1cHBvcnQgZm9yIGRhcndpbgorICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCisKKzIwMTEtMDEtMTAgMTQ6NTUgIGR0czEyCisKKyAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X25ldGJzZC5jOgorCisgICBDSEFOR0VTOiBOZXRCU0Q6IFVwZGF0ZSBtZW1vcnkgYW5kIENQVSBzdGF0aXN0aWNzIGhhbmRsaW5nCisgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KKworMjAxMS0wMS0xMCAxNDoyMiAgZHRzMTIKKworICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKKworICAgRml4IGRpdmlkZS1ieS16ZXJvIGVycm9yIGluIENQVSBwZXJmb3JtYW5jZSBzdGF0aXN0aWNzCisgICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KKworMjAxMS0wMS0wOSAyMjo1NCAgZHRzMTIKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9raW5mby5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBjb25maWd1cmUsICAgCisgICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6CisKKyAgIENIQU5HRVM6IE9wZW5CU0Q6IFVwZGF0ZSBTV1J1biBjb2RlIHRvIHVzZSBrdm1fZ2V0cHJvYzIKKyAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KKworMjAxMS0wMS0wOSAyMTozMCAgZHRzMTIKKworICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgorCisgICBDSEFOR0VTOiBidWlsZDogT3BlbkJTRDogRml4IG9yZGVyIG9mIGhlYWRlcnMgd2hlbiBjaGVja2luZworICAgPG5ldGluZXQvaW5fcGNiLmg+CisgICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCisKKzIwMTEtMDEtMDkgMTk6NDQgIGR0czEyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYzoKKworICAgQW1lbmQgaG93IG11bHRpLUNQVSBzdGF0aXN0aWNzIGFyZSByZXRyZWl2ZWQgdXNpbmcgc3lzY3RsIG9uCisgICBPcGVuQlNEIHN5c3RlbXMKKyAgIChpZiB0aGlzIGJsb2NrIHdhcyBhY3RpdmUsIHdoaWNoIGl0IGlzbid0LCBidXQgdGhhdCdzIG5vdAorICAgaW1wb3J0YW50IHJpZ2h0IG5vdCkKKyAgIFtCYXNlZCBvbiBPcGVuQlNEIHBhdGNoIGFyY2hpdmUsIGFtZW5kZWQgKHByb2JhYmx5IHdyb25nbHkpIGJ5CisgICBEVFNdCisKKzIwMTEtMDEtMDkgMTg6MTMgIGR0czEyCisKKyAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCAKKyAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jOgorCisgICBzeXNjdGwgdGFrZXMgYSAnc2l6ZV90JyB2YXJpYWJsZSBmb3IgdGhlIHNpemUgcGFyYW1ldGVyCisKKzIwMTEtMDEtMDkgMTg6MTEgIGR0czEyCisKKyAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbmxpc3QuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X25ldGJzZC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9raW5mby5jOgorCisgICBzeXNjdGwgdGFrZXMgYSAnc2l6ZV90JyB2YXJpYWJsZSBmb3IgdGhlIHNpemUgcGFyYW1ldGVyCisKKzIwMTEtMDEtMDggMDg6MzAgIG1hZ2ZyCisKKyAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19zZWN1cml0eV9tb2R1bGVzOgorCisgICBDSEFOR0VTOiBidWlsZGluZzogRml4IC0td2l0aC1zZWN1cml0eS1tb2R1bGVzIGhhbmRsaW5nCisgICBBbGxvdyByZXBlYXRlZCBtb2R1bGVzICh0c20sdHNtKSBhcyB3ZWxsIGFzIGRlZmFpbHQgbW9kdWxlcyAodXNtKQorICAgTW92ZSB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgZmlsZXMgYWZ0ZXIgdGhlIGNoZWNraW5nCisKKzIwMTEtMDEtMDggMDA6NDcgIG1hZ2ZyCisKKyAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKKworICAgVXBkYXRlIGFjY29uZmlnLmggd2l0aCBjaGFuZ2VzIGZyb20gcjE5ODE5LgorICAgUmVydW4gYXV0b2hlYWRlci4KKworMjAxMS0wMS0wNyAyMDo1NiAgZHRzMTIKKworICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jOgorCisgICBDSEFOR0VTOiBPcGVuQlNEOiBTdXBwb3J0IHVwZGF0aW5nIHRoZSByb3V0aW5nIHRhYmxlCisgICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCisKKzIwMTEtMDEtMDcgMjA6MjkgIGR0czEyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKKworICAgU2V0ICduZXh0JyBmaWVsZCBmb3IgdWRwIGVudHJ5IGxpbmtlZCBsaXN0IG9uIE9wZW5CU0Q0CisgICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCisgICAKKyAgIFRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHNldCBpbiA8bmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaD4KKworMjAxMS0wMS0wNyAyMDoxMiAgZHRzMTIKKworICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKKworICAgVXNlIGEgc3VpdGFibGUgY29uc3RhbnQgZm9yIENXRCBidWZmZXIgc2l6ZQorICAgW0Jhc2VkIG9uIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KKworMjAxMS0wMS0wNyAyMDowNyAgZHRzMTIKKworICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CisKKyAgIE1vdmUgZ2xvYmFsIHZhcmlhYmxlIGludG8gdGhlIG1ldGhvZCB3aGVyZSBpdCdzIHVzZWQuCisgICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCisKKzIwMTEtMDEtMDcgMTY6NDggIGR0czEyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKKworICAgSGFuZGxlIHN5c3RlbXMgd2l0aG91dCBJRk1fVE9LRU4KKyAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KKworMjAxMS0wMS0wNyAxNDozOCAgZHRzMTIKKworICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2ZyZWVic2QuYzoKKworICAgVXBkYXRlIHJldHJpZXZhbCBvZiBjYWNoZSB1c2FnZSBzdGF0aXN0aWNzIG9uIEZyZWVCU0QKKyAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KKworMjAxMS0wMS0wNyAxNDoyMCAgZHRzMTIKKworICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgorCisgICBJbmNyZWFzZSBtYXhpbXVtIHNpemUgb2YgZXhlY3V0ZSBvdXRwdXQgY2FjaGUKKyAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KKworMjAxMS0wMS0wNyAxNDowOSAgZHRzMTIKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmM6CisKKyAgIFJlbW92ZSBkdXBsaWNhdGUgaW5jbHVkZSBkaXJlY3RpdmVzCisgICBbRnJvbSBGcmVlQlNEIHBhdGNoZXMgYXJjaGl2ZV0KKworMjAxMS0wMS0wNyAxMzo0NyAgZHRzMTIKKworICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgorCisgICBIYW5kbGUgc3lzdGVtcyB3aGVyZSBSVEZfTExJTkZPIGlzIG5vdCBkZWZpbmVkCisgICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCisKKzIwMTEtMDEtMDcgMTM6NDAgIGR0czEyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgorCisgICBJbmNsdWRlIHpmcyBtb3VudCBwb2ludHMgZm9yIGRpc2sgcmVwb3J0cyB1bmRlciBGcmVlQlNECisgICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCisKKzIwMTEtMDEtMDcgMTM6MzQgIGR0czEyCisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZ2VuZXJpYy5oOgorCisgICBQcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUtaW5jbHVzaW9uCisgICBbRnJvbSBGcmVlQlNEIHBhdGNoZXMgYXJjaGl2ZV0KKworMjAxMS0wMS0wNyAxMzoyNCAgZHRzMTIKKworICAgKiAgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9rZXl0b29scy5jLCAgCisgICAgICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsICAgCisgICAgICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCAgIAorICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAorICAgICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdG9vbHMuYzoKKworICAgSW5jbHVkZSA8dW5pc3RkLmg+CisgICBbRnJvbSBCU0QgcGF0Y2hlcyBhcmNoaXZlXQorCisyMDExLTAxLTA3IDEzOjIxICBkdHMxMgorCisgICAqIHNubXBsaWIvc25tcF9hcGkuYzoKKworICAgQXZvaWQgY2FsbGJhY2sgcmUtdXNlIG9mIGNsb3NlZCBzZXNzaW9ucy4KKyAgIChQYXJ0IG9mIHBhdGNoICMyOTc1MjU0IC0gc2VlIFNWTiByZXZpc2lvbiAxOTgwOCkKKworMjAxMS0wMS0wNyAxMjo1NSAgZHRzMTIKKworICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6CisKKyAgIEZyZWVCU0QgdXNlcyBhIHNsaWdodGx5IGRpZmZlcmVudCBuYW1pbmcgc2NoZW1lIGZvciBzdHJ1Y3QgaWZyZXEKKyAgIFtGcm9tIEZyZWVCU0QgcGF0Y2hlcyBhcmNoaXZlXQorCisyMDExLTAxLTA3IDEyOjIyICBkdHMxMgorCisgICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CisKKyAgIEVuc3VyZSBUQ1AgdGFibGUgaW5mb3JtYXRpb24gaXMgbG9hZGVkIGJlZm9yZSBjb3VudGluZworICAgY29ubmVjdGlvbnMKKyAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KKworMjAxMS0wMS0wNiAxOTozNSAgaGFyZGFrZXIKKworICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgorCisgICBGaXggZG9jdW1lbnRhdGlvbiBidWcgcG9pbnRlZCBvdXQgaW4gY3BhbiBidWcgIzUyNjE4CisKKzIwMTEtMDEtMDYgMTQ6MTEgIGR0czEyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CisKKyAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyOTc1MjU0OiBBdm9pZCBjYWxsYmFjayByZS11c2Ugb2YgY2xvc2VkCisgICBzZXNzaW9ucworICAgCisgICBRbjogU2hvdWxkIHRoaXMgYWxzbyBiZSBhcHBsaWVkIHdoZW4gbWFpbiBzZXNzaW9uIGlzIE5VTEw/CisKKzIwMTEtMDEtMDYgMTM6MjEgIGR0czEyCisKKyAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CisKKyAgIEZpeCBtaXNsZWFkaW5nIGluZGVudGF0aW9uCisgICAKKyAgIFFuOiBTaG91bGQgdGhpcyBjYWxsICdzdWJhZ2VudF9zdGFydHVwJyByYXRoZXIgdGhhbgorICAgJ2FnZW50eF9yZW9wZW5fc2Vzc2lvbic/CisgICBRbjogV2h5IGRvZXNuJ3QgdGhpcyBhdHRlbXB0IHRvIHJlLW9wZW4gdGhlIHNlc3Npb24gaWYgaXQgd2FzCisgICBvcmlnaW5hbGx5IE5VTEw/CisKKzIwMTEtMDEtMDYgMTI6NDYgIGR0czEyCisKKyAgICogYWdlbnQvc25tcF9hZ2VudC5jOgorCisgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjk0MTgxMTogSGFuZGxlIHN1Y2Nlc3NmdWwgcmVxdWVzdHMgd2l0aAorICAgcmVxSUQgMAorCisyMDExLTAxLTA2IDA5OjM4ICBidmFzc2NoZQorCisgICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYzoKKworICAgU3BlbGxpbmcgZml4OiBJbml0aWFsemllcyAtPiBJbml0aWFsaXplcy4KKworMjAxMS0wMS0wNiAwOTozNSAgYnZhc3NjaGUKKworICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAKKyAgICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsIAorICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLCAgIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgorCisgICBDSEFOR0VTOiBhZ2VudDogQWRkZWQgbmV0c25tcF9nZXRfdGFibGVfaXRlcmF0b3IyKCkuCisgICBDSEFOR0VTOiBhZ2VudDogQWRkZWQgbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9pdGVyYXRvcjIoKS4KKyAgIENIQU5HRVM6IGFnZW50OiBBZGRlZCBuZXRzbm1wX2hhbmRsZXJfb3duc19pdGVyYXRvcl9pbmZvKCkuCisgICBDSEFOR0VTOiBhZ2VudDogRml4ZWQgbGVhay1hdC1leGl0IHRyaWdnZXJlZCBieSBzbm1wTm90aWZ5VGFibGUuCisgICBDSEFOR0VTOiBhZ2VudDogRml4ZWQgbGVhay1hdC1leGl0IHRyaWdnZXJlZCBieQorICAgc25tcFRhcmdldEFkZHJUYWJsZS4KKyAgIEFsc28sIHJlc3RvcmVkIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG9mCisgICBuZXRzbm1wX3JlZ2lzdGVyX3RhYmxlX2l0ZXJhdG9yKCkuCisKKzIwMTEtMDEtMDYgMDQ6NDUgIHJzdG9yeQorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgorCisgICBpbmNsdWRlIHN5cy9zb2NrZXQuaCBpZiBhdmFpbGFibGUKKworMjAxMS0wMS0wNSAxNDowNiAgZHRzMTIKKworICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CisKKyAgIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6IDMxMzQzMjM6IEZpeCBjcmFzaCB3aGVuIGNvbXBhcmluZyBpbnZhbGlkCisgICBPSURzCisKKzIwMTEtMDEtMDUgMTQ6MDQgIGR0czEyCisKKyAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKKworICAgQ0hBTkdFUzogc25tcHRyYXBkOiBCVUdTOiAzMTUxMjU0OiBGaXggY3Jhc2ggd2l0aCBpbnZhbGlkCisgICB0cmFwaGFuZGxlIGRpcmVjdGl2ZQorCisyMDExLTAxLTA1IDA5OjU1ICBkdHMxMgorCisgICAqIGFwcHMvc25tcHdhbGsuYzoKKworICAgRXhwYW5kIHRhYiBjaGFyYWN0ZXJzCisKKzIwMTEtMDEtMDQgMjI6MDYgIG1hZ2ZyCisKKyAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgorCisgICBDSEFOR0VTOiBzbm1wbGliOiBDaGVjayB0aGF0IHRoZSBhcmd1bWVudCB0bworICAgbmV0c25tcF90cmFuc3BvcnRfY29weSBpcyBub24tTlVMTAorCisyMDExLTAxLTA0IDE4OjI0ICBoYXJkYWtlcgorCisgICAqIENPUFlJTkc6CisKKyAgIENvcHlyaWdodCB1cGRhdGUgZm9yIDIwMTEKKworMjAxMS0wMS0wNCAxMjowMSAgYnZhc3NjaGUKKworICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKKworICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgV2luMzIgTUlCLUlJCisgICBpbXBsZW1lbnRhdGlvbi4KKworMjAxMS0wMS0wMyAxOTo0OCAgYnZhc3NjaGUKKworICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5jOgorCisgICBSZW1vdmVkIHR3byB1bnVzZWQgdmFyaWFibGVzLgorCisyMDExLTAxLTAzIDE5OjQ3ICBidmFzc2NoZQorCisgICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKKworICAgRml4ZWQgYSByZWNlbnRseSBpbnRyb2R1Y2VkIG1pc21hdGNoIGJldHdlZW4gZm9ybWF0IHNwZWNpZmljYXRpb24KKyAgIGFuZCBhcmd1bWVudCBsaXN0LgorCisyMDExLTAxLTAzIDE5OjQ3ICBidmFzc2NoZQorCisgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgorCisgICBHZXQgcmlkIG9mIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MgYnkgYWRkaW5nIHR3bworICAgI2luY2x1ZGUgZGlyZWN0aXZlcyBhbmQgY29tbWVudGluZyBvdXQgdHdvIHVudXNlZCBmdW5jdGlvbnMuCisKKzIwMTEtMDEtMDIgMDU6NDggIHJzdG9yeQorCisgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CisKKyAgIGRvbid0IGZyZWUgY2FsbGVycyBwdHIKKworMjAxMS0wMS0wMiAwNTo0OCAgcnN0b3J5CisKKyAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywgICAKKyAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCisgICAgICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCAgIAorICAgICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCisgICAgICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3Rvb2xzLmMsICAgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmMsICAgCisgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jOgorCisgICBjbGVhbiB1cCBTTk1QX0ZSRUUgdXNhZ2UKKworMjAxMS0wMS0wMiAwNTo0NyAgcnN0b3J5CisKKyAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jOgorCisgICBmaXggY3V0LW4tcGFzdGUgZXJyb3IgaW4gZGVidWcgdG9rZW4KKworMjAxMS0wMS0wMiAwNTo0NyAgcnN0b3J5CisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmg6CisKKyAgIGZpeCBmdW5jdGlvbiBuYW1lIGluIHByb3RvdHlwZQorCisyMDExLTAxLTAyIDA1OjQ2ICByc3RvcnkKKworICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKKworICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKKworMjAxMS0wMS0wMiAwNTo0NiAgcnN0b3J5CisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jOgorCisgICBDSEFOR0VTOiBzbm1wbGliOiByZW1vdmUgaW5saW5lIHZlcnNpb25zIG9mIGNvbnRhaW5lciBmdW5jcworCisyMDExLTAxLTAyIDA1OjQ2ICByc3RvcnkKKworICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgorCisgICBDSEFOR0VTOiBzbm1wbGliOiBkb250IHJldHVybiBlbXB0eSBhcnJheQorCisyMDExLTAxLTAyIDA1OjQ2ICByc3RvcnkKKworICAgKiBtYW4vc25tcGQuY29uZi41LmRlZiwgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmM6CisKKyAgIGZpeCB0eXBvcy9ncmFtbWFyIGluIG1hbiBwYWdlcy9jb21tZW50cyAobm8gY29kZSBjaGFuZ2VzKQorCisyMDExLTAxLTAyIDA1OjQ1ICByc3RvcnkKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jLCAgIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CisKKyAgIE5FV1M6IHNubXBsaWI6IGFkZCBuZXcgdHJhbnNwb3J0IGNvbmZpZyB0b2tlbnMKKyAgIGxvY2FsQ2VydC9wZWVyQ2VydCwKKyAgIGRlcHJlY2F0ZSBvdXJfaWRlbnRpdHksIHRoZWlyX2lkZW50aXR5CisKKzIwMTEtMDEtMDIgMDU6NDUgIHJzdG9yeQorCisgICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBtYW4vc25tcGNtZC4xLmRlZiwgICAKKyAgICAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CisKKyAgIE5FV1M6IHNubXBsaWI6IGludHJvZHVjZSBuZXcgbG9jYWxDZXJ0L3BlZXJDZXJ0LCBkZXByZWNhdGUKKyAgIHNlcnZlckNlcnQsIGNsaWVudENlcnQsIGRlZlg1MDlTZXJ2ZXJQdWIsIGRlZlg1MDlDbGllbnRQdWIKKworMjAxMS0wMS0wMiAwNTo0NCAgcnN0b3J5CisKKyAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCisgICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKKyAgICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAgIAorICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYzoKKworICAgTkVXUzogc25tcGxpYjogYWRkIElQdjYgc3VwcG9ydCB0byBEVExTVURQIHRyYW5zcG9ydAorICAgQ0hBTkdFUzogc25tcGxpYjogdXNlIG5ldyBuZXRzbm1wX3NvY2thZGRyX3N0b3JhZ2UgaW4KKyAgIG5ldHNubXBfYWRkcl9wYWlyCisgICBDSEFOR0VTOiBzbm1wbGliOiBhZGQgYmFzZV90cmFuc3BvcnQgcHRyIGZvciB0dW5uZWxlZCB0cmFuc3BvcnRzCisKKzIwMTEtMDEtMDIgMDU6NDIgIHJzdG9yeQorCisgICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKKworICAgQ0hBTkdFUzogc25tcGQ6IHNraXAgbm9uLUFGX0lORVQgaW50ZXJmYWNlcyB3aGVuIGxvYWRpbmcgaXB2NAorICAgYWRkcnMKKwogMjAxMC0xMi0yOSAwMTozNyAgaGFyZGFrZXIKIAogICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKQEAgLTkzOTcsMzcgKzM0MzQzLDYgQEAKIAogICAgTkVXUzogc25tcGQ6IFBhdGNoIGZyb20gTmllbHMgdG8gZml4IFZBQ00gcGVyc2lzdGFudCBzdG9yYWdlLgogCi0yMDEwLTEyLTIxIDE2OjMzICBoYXJkYWtlcgotCi0gICAqIENIQU5HRVM6Ci0KLSAgIGZpeGVkIHRoZSBORVdTIGZpbGUgdG8gbWVudGlvbiA1LjYuMSBpbnN0ZWFkIG9mIDUuNwotCi0yMDEwLTEyLTIxIDE2OjMyICBoYXJkYWtlcgotCi0gICAqIE5FV1M6Ci0KLSAgIGZpeGVkIHRoZSBORVdTIGZpbGUgdG8gbWVudGlvbiA1LjYuMSBpbnN0ZWFkIG9mIDUuNwotCi0yMDEwLTEyLTIxIDE1OjUwICBoYXJkYWtlcgotCi0gICAqIENIQU5HRVM6Ci0KLSAgIHZlcnNpb24gdXBkYXRlCi0KLTIwMTAtMTItMjEgMTU6MDggIGhhcmRha2VyCi0KLSAgICogY29uZmlndXJlOgotCi0gICBmaXhlZCBhdXRvY29uZiB2ZXJzaW9uCi0KLTIwMTAtMTItMjEgMTU6MDcgIGhhcmRha2VyCi0KLSAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKLSAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKLQotICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCi0KIDIwMTAtMTItMjEgMTE6MjkgIGR0czEyCiAKICAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CkBAIC05NDYxLDEyICszNDM3Niw2IEBACiAgICBDSEFOR0VTOiBzbm1wZDogUGF0Y2ggZnJvbSBDbGF1cyBLbGVpbiB0byBmaXggZW5naW5laWQgZ2VuZXJhdGlvbgogICAgb24gb3V0Z29pbmcgdjMgdHJhcHMgZnJvbSB0aGUgYWdlbnQKIAotMjAxMC0xMi0xMCAwNToxOSAgaGFyZGFrZXIKLQotICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKLQotICAgZml4IG1ha2UgdGVzdCBvcHRpb25zCi0KIDIwMTAtMTItMDggMTM6MTcgIGpzYWZyYW5lawogCiAgICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKQEAgLTk0ODAsMjUgKzM0Mzg5LDYgQEAKICAgIHRoZSBsb2FkaW5nCiAgICBvZiB0aGUgbGlzdCBhIGJpdC4KIAotMjAxMC0xMi0wOCAwNjoxNyAgaGFyZGFrZXIKLQotICAgKiBDSEFOR0VTLCBDaGFuZ2VMb2c6Ci0KLSAgIHVwZGF0ZSBmb3IgNS42LjEucHJlMgotCi0yMDEwLTEyLTA4IDA2OjAxICBoYXJkYWtlcgotCi0gICAqIGNvbmZpZ3VyZToKLQotICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCi0KLTIwMTAtMTItMDYgMjM6MjcgIGhhcmRha2VyCi0KLSAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKLSAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKLQotICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCi0KIDIwMTAtMTItMDYgMjM6MjMgIGhhcmRha2VyCiAKICAgICogYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYzoKQEAgLTk1MjcsMTggKzM0NDE3LDE3IEBACiAgICBmaXggY29udGV4dEVuZ2luZUlEcyBmb3Igb3V0Z29pbmcgaW5mb3JtcyBmcm9tIHNubXBpbmZvcm0gdG8gYmUKICAgIHRoZSBsb2NhbCBlbmdpbmVJRAogCi0yMDEwLTEyLTAxIDE0OjMwICBoYXJkYWtlcgorMjAxMC0xMi0wMSAyMToxOCAgbmJhCiAKLSAgICogY29uZmlndXJlOgorICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CiAKLSAgIGdlbmVyYXRlIHdpdGggdGhlIHByb3BlciBhdXRvY29uZgorICAgRml4IGNvbmZsaWN0aW5nIGRlY2xhcmF0aW9ucwogCi0yMDEwLTEyLTAxIDAxOjA2ICBoYXJkYWtlcgorMjAxMC0xMi0wMSAwMToyMyAgaGFyZGFrZXIKIAotICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsICAgCi0gICAgICBhcHBzL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CisgICAqIGFnZW50L3NubXBfdmFycy5jOgogCi0gICBtYWtlIGRlcGVuZAorICAgUGF0Y2ggZnJvbSBtYWdmciB0byBmaXggYnVpbGRpbmcgd2l0aG91dCBvcGVuc3NsCiAKIDIwMTAtMTItMDEgMDE6MDYgIGhhcmRha2VyCiAKQEAgLTk1NDYsMjMgKzM0NDM1LDEyIEBACiAKICAgIHVzZSBuZXRzbm1wX2Fzc2VydCBpbnN0ZWFkIG9mIGFzc2VydAogCi0yMDEwLTEyLTAxIDAwOjQ2ICBoYXJkYWtlcgorMjAxMC0xMS0zMCAyMzo0MyAgaGFyZGFrZXIKIAotICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAotICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBwZXJsL0FTTi9BU04ucG0sICAgCi0gICAgICBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLCBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKLSAgICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLAotICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sCi0gICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgICAKLSAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgorICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKIAotICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCi0KLTIwMTAtMTItMDEgMDA6NDYgIGhhcmRha2VyCi0KLSAgICogTWFrZWZpbGUudG9wOgotCi0gICB2ZXJzaW9uIHVwZGF0ZQorICAgaW1wbGVtZW50IERUTFMgY29va2llcyBzZW1pLXByb3Blcmx5IChzdGF0ZSBpcyBzdGlsbCBzYXZlZCwgd2hpY2gKKyAgIHN0aWxsIG5lZWRzIHRvIGNoYW5nZSkKIAogMjAxMC0xMS0zMCAyMzoyNyAgaGFyZGFrZXIKIApAQCAtOTU4Nyw2ICszNDQ2NSwxNCBAQAogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMDUzNDM2OiBmcm9tOiB0YWtldm9zOiBmaXg6CiAgICB0Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzIGludmFsaWQgbWVtb3J5IGFjY2VzcwogCisyMDEwLTExLTMwIDIyOjE4ICBoYXJkYWtlcgorCisgICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIGNvbmZpZ3VyZSwgICAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CisKKyAgIHJldmVydGVkIDE5NzAxIChldGh0b29sKSBhcyBpdCBicm9rZSB0aGluZ3MKKwogMjAxMC0xMS0zMCAyMTowOCAgbmJhCiAKICAgICogYXBwcy9zbm1wdGxzLmMsIGFwcHMvc25tcHRyYXBkX3NxbC5jOgpAQCAtOTYwNSw2ICszNDQ5MSwxMyBAQAogCiAgICBlcnJvciBjaGVjayB0aGUgcmlnaHQgcG9pbnRlciBhZnRlciBhdHRlbXB0aW5nIGFsbG9jYXRpb24KIAorMjAxMC0xMS0zMCAwNTo1OCAgaGFyZGFrZXIKKworICAgKiBhcHBzL3NubXB3YWxrLmM6CisKKyAgIE5FV1M6IGFwcHM6IFBBVENIIDMwNTQ4MTc6IGZyb20gbmlnaHRjb2Rpbmc6IEFkZHMgcGVyLXZhcmlhYmxlCisgICB0aW1lZCBvdXRwdXQgc3VwcG9ydCB0byBzbm1wd2FsayB1c2luZyAtQ1QKKwogMjAxMC0xMS0zMCAwNTo1NiAgaGFyZGFrZXIKIAogICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCBjb25maWd1cmUsICAgCkBAIC05NjE0LDYgKzM0NTA3LDE1IEBACiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNTcwOTA6IGZyb20gc2hlbW1pbmdlcjogbWFrZSBldGh0b29sCiAgICBzdXBwb3J0IG9uIGxpbnV4IHVzZSB0aGUgaGlnaCBzcGVlZCBzdHJ1Y3QgaW5mbyBmb3IgMTAwRysuCiAKKzIwMTAtMTEtMzAgMDU6NDcgIGhhcmRha2VyCisKKyAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgY29uZmlndXJlLCAgIAorICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyLCAgIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKKworICAgTkVXUzogc25tcGQ6IFBBVENIIDMwNTcwOTM6IGZyb20gc2hlbW1pbmdlcjogYWxsb3cgbGludXggdG8gdXNlCisgICBsaWJwY2kgZm9yIGNyZWF0aW5nIHVzZWZ1bCBpZkRlc2NyIHN0cmluZ3MKKwogMjAxMC0xMS0zMCAwNDo1OCAgaGFyZGFrZXIKIAogICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKQEAgLTk2NDQsMTggKzM0NTQ2LDYgQEAKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IGVuZm9yY2UgbWF4IGxlbmd0aCBvbiBUTFMgc2VjTmFtZSBtYXBzCiAgICBDSEFOR0VTOiBzbm1wZDogYWRkIHByaW9yaXR5IHRvIHNlY25hbWUgZGVidWdnaW5nCiAKLTIwMTAtMTEtMzAgMDQ6MDQgIHJzdG9yeQotCi0gICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCi0gICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCi0gICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5jOgotCi0gICBDSEFOR0VTOiBhZ2VudDogZG9uJ3Qgc2Vjb25kLWd1ZXNzIGNhY2hlIGhhbmRsZXIKLSAgIAotICAgKHdhdmVzIGhhbmQpIHRoaXMgaXMgbm90IHRoZSBmdW5jdGlvbiB5b3UgYXJlIGxvb2tpbmcgZm9yLgotICAgCi0gICBuZXRzbm1wX2NhY2hlX2lzX3ZhbGlkKCkgaXMgbm90IG1lYW50IGZvciBtaWIgbW9kdWxlcwotCiAyMDEwLTExLTI5IDIyOjIwICByc3RvcnkKIAogICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKQEAgLTk2NjMsNyArMzQ1NTMsNyBAQAogICAgQ0hBTkdFUzogc25tcGQ6IGFkZCBkZWJ1ZyBmb3Igc3NsIGNpcGhlcnMsIGNsYXJpZnkgZmluZ2VycHJpbnQKICAgIG1hdGNoIGRlYnVnCiAKLTIwMTAtMTEtMjkgMjI6MTQgIHJzdG9yeQorMjAxMC0xMS0yOSAyMjoxOCAgcnN0b3J5CiAKICAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CiAKQEAgLTk2ODAsMjEgKzM0NTcwLDI0IEBACiAgICBjaGFuZ2VzIHRvIGEKICAgIHBhdGNoIGFuZCB0aGVuIGNvbW1pdCBpdCB3aXRob3V0IHRlc3RpbmcgOi0oCiAKLTIwMTAtMTEtMTggMTA6NTUgIGJ2YXNzY2hlCisyMDEwLTExLTE4IDExOjA0ICBidmFzc2NoZQogCi0gICAqICAuLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKLSAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgotCi0gICBDb21waWxlciB3YXJuaW5nIGZpeGVzIGZvciB0aGUgVExTIHRyYW5zcG9ydCBjb2RlOiBiYWNrcG9ydGVkCi0gICByMTk1NDYgZnJvbSB0aGUgdHJ1bmsuCi0KLTIwMTAtMTEtMTggMTA6NTMgIGJ2YXNzY2hlCi0KLSAgICogCisgICAqICAuLCAgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jOgogCi0gICBGaXhlZCB3aGF0IHdhcyBicm9rZW4gYnkgcjE5Njg1OiBkaXZpZGluZyB0aGUgcmV0dXJuIHZhbHVlIG9mCi0gICBzbm1wX2xvZygpIGRvZXMgbm90IG1ha2Ugc2Vuc2UuCisgICBBcHBsaWVkIHIxOTY4OCBvbiB0aGUgdHJ1bmsgdG9vIChmb2xsb3ctdXAgZm9yIHIxOTY4NSkuCisKKzIwMTAtMTEtMTggMDM6NDkgIHJzdG9yeQorCisgICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5jOgorCisgICBDSEFOR0VTOiBhZ2VudDogZG9uJ3Qgc2Vjb25kLWd1ZXNzIGNhY2hlIGhhbmRsZXIKKyAgIAorICAgKHdhdmVzIGhhbmQpIHRoaXMgaXMgbm90IHRoZSBmdW5jdGlvbiB5b3UgYXJlIGxvb2tpbmcgZm9yLgorICAgCisgICBuZXRzbm1wX2NhY2hlX2lzX3ZhbGlkKCkgaXMgbm90IG1lYW50IGZvciBtaWIgbW9kdWxlcwogCiAyMDEwLTExLTE3IDE5OjU5ICBuYmEKIApAQCAtOTczMywyOCArMzQ2MjYsNiBAQAogCiAgICBDSEFOR0VTOiBzbm1wZDogZml4IGRvdWJsZSBmcmVlIGluIFRMUyBlcnJvciBoYW5kbGluZwogCi0yMDEwLTExLTE2IDEyOjQzICBidmFzc2NoZQotCi0gICAqIHdpbjMyL01ha2VmaWxlLWFwcHMuaW46Ci0KLSAgIEZvbGxvdy11cCBmb3IgcjE5NDIyLgotCi0yMDEwLTExLTE2IDEyOjM4ICBidmFzc2NoZQotCi0gICAqIHdpbjMyL21pYl9tb2R1bGVfc2h1dGRvd24uaDoKLQotICAgQ0hBTkdFUzogV2luMzI6IHNodXRkb3duX3NubXBOb3RpZnlGaWx0ZXJUYWJsZSgpIGFuZAotICAgc2h1dGRvd25fd2luRXh0RExMKCkgYXJlIG5vdyBpbnZva2VkIHdoZW4gdGhlIE5ldC1TTk1QIHNlcnZpY2UgaXMKLSAgIHN0b3BwZWQuCi0gICAoUGFydGlhbGx5IGJhY2twb3J0ZWQgcjE5NTE1IGZyb20gdGhlIHRydW5rLikKLQotMjAxMC0xMS0xNiAxMDo0MSAgYnZhc3NjaGUKLQotICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2gsICAgCi0gICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgotCi0gICBCYWNrcG9ydGVkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgY2hhbmdlcyBmcm9tIHRoZSB0cnVuay4KLQogMjAxMC0xMS0xNiAxMDozOSAgYnZhc3NjaGUKIAogICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGU6CkBAIC05NzcxLDM5ICszNDY0Miw2IEBACiAgICBzdWNoIGluZm9ybWF0aW9uIChOVURfTk9BUlApLCBlLmcuIHR1bm5lbHMuIFJlcG9ydGVkIGJ5IFN0ZXBoZW4KICAgIEhlbW1pbmdlci4gU2VlIGFsc28gcGF0Y2ggIzMxMDcwMDMuCiAKLTIwMTAtMTEtMTYgMDg6NDkgIGJ2YXNzY2hlCi0KLSAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOgotCi0gICBNaW5HVzogQmFja3BvcnRlZCByMTk2NTIgZnJvbSB0aGUgdHJ1bmsuCi0KLTIwMTAtMTEtMTYgMDg6MDEgIGJ2YXNzY2hlCi0KLSAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKLSAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKLQotICAgQ0hBTkdFUzogTWluR1c6IGNvbmZpZ3VyZTogRGV0ZWN0aW9uIG9mIHRoZSBmdW5jdGlvbnMKLSAgIGdhaV9zdHJlcnJvcigpLCBnZXRhZGRyaW5mbygpLCBnZXRob3N0bmFtZSgpIGFuZCBnZXRob3N0bmFtZSgpCi0gICBkb2VzIG5vdyBzdWNjZWVkLgotICAgKEJhY2twb3J0ZWQgcjE5NjQ2IGZyb20gdGhlIHRydW5rLikKLQotMjAxMC0xMS0xNiAwNzo1NSAgYnZhc3NjaGUKLQotICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYzoKLQotICAgQ0hBTkdFUzogYWdlbnQ6IGNvbTJzZWM2IGRpcmVjdGl2ZTogSWYgY29uZmlndXJlIGhhcyBub3QgZm91bmQKLSAgIGdldGFkZHJpbmZvKCksIG5vbi1udW1lcmljIElQdjYgYWRkcmVzc2VzIGRvIG5vdyB0cmlnZ2VyIGFuIGVycm9yCi0gICBtZXNzYWdlLgotICAgKEJhY2twb3J0ZWQgcjE5NjUwLikKLQotMjAxMC0xMS0xNiAwNzo1MSAgYnZhc3NjaGUKLQotICAgKiBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaCwgc25tcGxpYi9zbm1wX2RlYnVnLmM6Ci0KLSAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZWQgdGhlIGFyZ3VtZW50IHR5cGUgb2YKLSAgIGRlYnVnX3JlZ2lzdGVyX3Rva2VucygpIGZyb20gY2hhciAqIGludG8gY29uc3QgY2hhciAqLgotICAgKEJhY2twb3J0ZWQgcjE5NjY1IGFuZCByMTk2NjYgZnJvbSB0aGUgdHJ1bmsuKQotCiAyMDEwLTExLTE1IDE0OjE1ICBidmFzc2NoZQogCiAgICAqIHNubXBsaWIvYXNuMS5jOgpAQCAtOTgxMywxOCArMzQ2NTEsMzggQEAKICAgIGFzbl9idWlsZF9zaWduZWRfaW50NjQoKS4gTW9zdCBidXQgbm90IGFsbCBvZiB0aGVzZSBidWdzIHdlcmUKICAgIHNwZWNpZmljIHRvIDY0LWJpdCBzeXN0ZW1zLiBGaXhlcyBidWcgIzMwOTMxOTkuCiAKLTIwMTAtMTEtMTUgMTQ6MDkgIGJ2YXNzY2hlCisyMDEwLTExLTE1IDEzOjMyICBidmFzc2NoZQogCi0gICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDdpbmV0X3B0b25fY2xpYi5jLCAgIAotICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA4YXNuMV9jbGliLmM6CisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwOGFzbjFfY2xpYi5jOgogCi0gICBDb3BpZWQgdHdvIHVuaXQtdGVzdHMgZnJvbSB0aGUgdHJ1bmsuCisgICBBdm9pZCB0cmlnZ2VyaW5nIHRydW5jYXRpb24gd2FybmluZ3MuCiAKLTIwMTAtMTEtMTUgMTQ6MDkgIGJ2YXNzY2hlCisyMDEwLTExLTE1IDEzOjE2ICBidmFzc2NoZQogCi0gICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA4YXNuMV9jbGliLmM6CiAKLSAgIE1lcmdlZCByZWNlbnQgY2xpYl9idWlsZCBjaGFuZ2VzIGZyb20gdGhlIHRydW5rLgorICAgUmVzdHJpY3RlZCBhbGwgY29uc3RhbnRzIHRvIDMyIGJpdHMuCisKKzIwMTAtMTEtMTUgMTI6MzUgIGJ2YXNzY2hlCisKKyAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CisKKyAgIEZvbGxvdy11cCBmb3IgcjE5NjY1LgorCisyMDEwLTExLTE1IDEyOjMzICBidmFzc2NoZQorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oLCBzbm1wbGliL3NubXBfZGVidWcuYzoKKworICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlZCB0aGUgYXJndW1lbnQgdHlwZSBvZgorICAgZGVidWdfcmVnaXN0ZXJfdG9rZW5zKCkgZnJvbSBjaGFyICogaW50byBjb25zdCBjaGFyICouCisKKzIwMTAtMTEtMTUgMTA6NTYgIGJ2YXNzY2hlCisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA4YXNuMV9jbGliLmM6CisKKyAgIEFkZGVkIHVuaXQgdGVzdCBmb3IgQVNOLjEgZW5jb2RpbmcgYW5kIGRlY29kaW5nIChvbmx5IDMyLWJpdCBhbmQKKyAgIDY0LWJpdAorICAgaW50ZWdlcnMgc28gZmFyKS4KIAogMjAxMC0xMS0xMSAyMjo0OCAgbmJhCiAKQEAgLTk4NDEsNiArMzQ2OTksMzAgQEAKICAgIENsZWFudXA6IFJlbW92ZWQgc3VwZXJmbHVvdXMgcmVmZXJlbmNlcyB0byB0aGUgUE9TSVggdGhyZWFkcwogICAgbGlicmFyeS4KIAorMjAxMC0xMS0xMSAwODoyMCAgYnZhc3NjaGUKKworICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmg6CisKKyAgIEZvbGxvdy11cCBmb3IgcjE5NjYwOiBVc2UgcGlkX3QgY29uc2lzdGVudGx5LgorCisyMDEwLTExLTEwIDE2OjM2ICBidmFzc2NoZQorCisgICAqICBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAKKyAgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKKworICAgQ0hBTkdFUzogYWdlbnQ6IEludHJvZHVjZWQgbmV0c25tcF9waWRfdC4KKyAgIENIQU5HRVM6IFdpbjMyOiBFbGltaW5hdGVkIGNhc3RzIGJldHdlZW4gaW50IGFuZCBIQU5ETEUgaW4KKyAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYyBhbmQKKyAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLgorCisyMDEwLTExLTEwIDE1OjQ5ICBidmFzc2NoZQorCisgICAqICB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCAgIAorICAgICAgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKKworICAgRm9sbG93LXVwIGZvciByMTk2MDY6IGNtdV9jb21wYXQgcmVtb3ZhbC4KKwogMjAxMC0xMS0xMCAxMjozMSAgYnZhc3NjaGUKIAogICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKQEAgLTk4NjYsNyArMzQ3NDgsMTMgQEAKIAogICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNjBzbm1wbmV0c3RhdF9zaW1wbGU6CiAKLSAgIEJhY2twb3J0ZWQgcjE5NjUzLgorICAgUGFzc2VzIG5vdyBvbiBNaW5HVyB0b28uCisKKzIwMTAtMTEtMDkgMTE6MzEgIGJ2YXNzY2hlCisKKyAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOgorCisgICBGb2xsb3ctdXAgZm9yIHIxOTY0Ni4KIAogMjAxMC0xMS0wOSAxMTozMCAgYnZhc3NjaGUKIApAQCAtOTg3NSwxMyArMzQ3NjMsNDggQEAKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBJZiB0aGUgYWdlbnQgaGFzIGJlZW4gYXNrZWQgdG8gc3RvcCwKICAgIHdhaXQgdW50aWwgdGhlIHNubXBkIHByb2Nlc3MgZGlzYXBwZWFyZWQgYmVmb3JlIHByb2NlZWRpbmcuCiAKLTIwMTAtMTEtMDggMTU6MzkgIGJ2YXNzY2hlCisyMDEwLTExLTA5IDEwOjAyICBidmFzc2NoZQorCisgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jOgorCisgICBDSEFOR0VTOiBhZ2VudDogY29tMnNlYzYgZGlyZWN0aXZlOiBJZiBjb25maWd1cmUgaGFzIG5vdCBmb3VuZAorICAgZ2V0YWRkcmluZm8oKSwgbm9uLW51bWVyaWMgSVB2NiBhZGRyZXNzZXMgZG8gbm93IHRyaWdnZXIgYW4gZXJyb3IKKyAgIG1lc3NhZ2UuCisKKzIwMTAtMTEtMDggMTU6MzYgIGJ2YXNzY2hlCiAKICAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfc2ltcGxlOgogCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBUZXN0IDcxIChjb20yc2VjNl9zaW1wbGUpIGRvZXMgbm93IHN1Y2NlZWQgZXZlbgogICAgaWYgSVB2NiBETlMgcmVzb2x1dGlvbiBpcyBub3QgYXZhaWxhYmxlLgotICAgKEJhY2twb3J0ZWQgcjE5NjQ4LikKKworMjAxMC0xMS0wOCAxNTowMiAgYnZhc3NjaGUKKworICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQ6CisKKyAgIE1pbkdXLCB0ZXN0aW5nOiBjbGliIHRlc3RzIGJ1aWxkIGFnYWluIHdpdGhvdXQgd2FybmluZ3MuCisKKzIwMTAtMTEtMDggMTQ6NTIgIGJ2YXNzY2hlCisKKyAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKKworICAgQ0hBTkdFUzogTWluR1c6IGNvbmZpZ3VyZTogRGV0ZWN0aW9uIG9mIHRoZSBmdW5jdGlvbnMKKyAgIGdhaV9zdHJlcnJvcigpLCBnZXRhZGRyaW5mbygpLCBnZXRob3N0YnluYW1lKCkgYW5kIGdldGhvc3RuYW1lKCkKKyAgIGRvZXMgbm93IHN1Y2NlZWQuCisKKzIwMTAtMTEtMDggMTQ6NDggIGJ2YXNzY2hlCisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA3aW5ldF9wdG9uX2NsaWIuYzoKKworICAgQ0hBTkdFUzogdGVzdGluZzogQWRkZWQgaW5ldF9udG9wKCkgYW5kIGluZXRfcHRvbigpIHVuaXQgdGVzdC4KKworMjAxMC0xMS0wOCAxNDo0NyAgYnZhc3NjaGUKKworICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQ6CisKKyAgIHRlc3Rpbmc6IGNsaWJfYnVpbGQ6IEFkZGVkICNpbmNsdWRlIGRpcmVjdGl2ZXMgKDxhcnBhL2luZXQuaD4gYW5kCisgICA8bmV0aW5ldC9pcDYuaD4pLgogCiAyMDEwLTExLTA4IDA4OjQ2ICBidmFzc2NoZQogCkBAIC05ODg5LDYgKzM0ODEyLDIxIEBACiAKICAgIFdpbjMyOiBhZ2VudDogZWxpbWluYXRlZCBjYXN0cyBmcm9tL3RvIGludCBmb3IgdGhyZWFkIGhhbmRsZXMuCiAKKzIwMTAtMTEtMDggMDc6NTggIGJ2YXNzY2hlCisKKyAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CisKKyAgIFJlbW92ZWQgTkVUU05NUF9TVEFUSUNfSU5MSU5FIGZyb20gdGhlIGRlY2xhcmF0aW9uIG9mCisgICBfYnVpbGRfY2FjaGVfbmFtZSAtIGF0IGxlYXN0IGdjYyBpcyBiZXR0ZXIgdGhhbiBhIGh1bWFuIGF0CisgICBkZWNpZGluZyB3aGljaCBmdW5jdGlvbnMgc2hvdWxkIGJlIGlubGluZWQgYW5kIHdoaWNoIG9uZXMgbm90LgorCisyMDEwLTExLTA4IDA3OjU2ICBidmFzc2NoZQorCisgICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgorCisgICBuZXRzbm1wX3RhYmxlX2RhdGFfY2xvbmVfcm93KCk6IEFkZGVkIG1pc3NpbmcgZnJlZSgpIHN0YXRlbWVudCBpbgorICAgYW4gZXJyb3IgcGF0aC4KKwogMjAxMC0xMS0wNyAyMToxNSAgZHRzMTIKIAogICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKQEAgLTk5MzcsNDAgKzM0ODc1LDI5IEBACiAKICAgIE1hZGUgc3VyZSB0aGF0IHJwbUdldFBhdGgoKSBjYW4gYmUgZm91bmQgYnkgY29uZmlndXJlLgogCi0yMDEwLTExLTA1IDE0OjU4ICBidmFzc2NoZQorMjAxMC0xMS0wNSAxNDo1MCAgYnZhc3NjaGUKIAotICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKKyAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczE6CiAKLSAgIFJlbW92ZWQgbW9yZSBjb2RlIHRoYXQgd2FzIGFjY2lkZW50aWFsbHkgaW5zZXJ0ZWQgYnkgdGhlIHBhdGNoCi0gICB0b29sLgorICAgUmVtb3ZlZCBzdXBlcmZsdW91cyAtSS91c3IvaW5jbHVkZS9ycG0uCiAKLTIwMTAtMTEtMDUgMTQ6NTcgIGJ2YXNzY2hlCi0KLSAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKLQotICAgUmV2ZXJ0ZWQgcjE5NjIyLgotCi0yMDEwLTExLTA1IDE0OjUyICBidmFzc2NoZQotCi0gICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMSwgICAKLSAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKLQotICAgQ2xlYW5lZCB1cCByMTk2MjQ6IHJlbW92ZWQgZ2FyYmFnZSBhZGRlZCBieSB0aGUgcGF0Y2ggdG9vbC4KLQotMjAxMC0xMS0wNSAxMzo1NSAgYnZhc3NjaGUKKzIwMTAtMTEtMDUgMTI6MTggIGJ2YXNzY2hlCiAKICAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgICAKICAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOgogCi0gICBDSEFOR0VTOiBhZ2VudDogRml4ZWQgb3JkZXIgb2YgcnBtbGliIGRldGVjdGlvbiBhbmQgYWdlbnQgbW9kdWxlCi0gICBjb25maWd1cmF0aW9uIChiYWNrcG9ydGVkIHIxOTYyMSBmcm9tIHRydW5rKS4KKyAgIENIQU5HRVM6IGFnZW50OiBGaW5kIG91dCB3aGV0aGVyIGxpYnJwbSBpcyBhdmFpbGFibGUgYmVmb3JlCisgICBjb25maWd1cmluZyB0aGUgYWdlbnQgbW9kdWxlcyBiZWNhdXNlIGhvc3QvZGF0YS9hY2Nlc3Mvc3dpbnN0CisgICBuZWVkcyBzeW1ib2wgSEFWRV9MSUJSUE0uIEFzIGEgcmVzdWx0LCBjb25maWd1cmUgaGFzIHRvIGJlIHJ1bgorICAgb25seSBvbmNlIGluc3RlYWQgb2YgdHdpY2UgdG8gZW5hYmxlIHRoZSBoclNXSW5zdGFsbGVkIHRhYmxlIG9uCisgICBzeXN0ZW1zIHRoYXQgaGF2ZSBsaWJycG0uCiAKLTIwMTAtMTEtMDUgMTM6MzcgIGJ2YXNzY2hlCisyMDEwLTExLTA1IDEyOjExICBidmFzc2NoZQogCi0gICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CisgICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuYzoKIAotICAgUmVnZW5lcmF0ZWQgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbi4KKyAgIFN1cHByZXNzIGEgY29tcGlsZXIgd2FybmluZy4KIAogMjAxMC0xMS0wNSAxMDowMCAgYnZhc3NjaGUKIApAQCAtOTk4OCwxMiArMzQ5MTUsMzUgQEAKICAgIENIQU5HRVM6IGFnZW50OiBob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG06IExvZyBhbiBlcnJvciBtZXNzYWdlCiAgICBpZiBycG1kYk9wZW4oKSBmYWlscy4KIAorMjAxMC0xMS0wNSAwODo1MCAgYnZhc3NjaGUKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd19hcGkuaCwgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jLCBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuYzoKKworICAgUm1vbiAvIGRpc21hbiBjb21waWxlciB3YXJuaW5nIGZpeGVzLgorCiAyMDEwLTExLTA1IDA4OjQ4ICBidmFzc2NoZQogCiAgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgogCiAgICBDSEFOR0VTOiBzbm1wbGliOiBBZGRlZCBtYWNybyBuZXRzbm1wX3N0YXRpY19hc3NlcnQoKS4KIAorMjAxMC0xMS0wNSAwODo0MCAgYnZhc3NjaGUKKworICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKKworICAgRm9sbG93LXVwIGZvciByMTk1NjYuCisKKzIwMTAtMTEtMDUgMDg6MzcgIGJ2YXNzY2hlCisKKyAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaDoKKworICAgUmVtb3ZlZCBhIChoYXJtbGVzcyA/KSBjaXJjdWxhciByZWZlcmVuY2UuCisKIDIwMTAtMTEtMDQgMTM6MDkgIGR0czEyCiAKICAgICogZGlzdC9uZXQtc25tcC5zcGVjOgpAQCAtMTAwMDEsMjAgKzM0OTUxLDI0IEBACiAgICBDSEFOR0VTOiBMaW51eDogUEFUQ0hFUzogMzA4MzAyNzogRml4IFJQTSBzcGVjIGZpbGUgdG8gc3VwcG9ydAogICAgQ2VudE9TCiAKLTIwMTAtMTEtMDQgMTI6NDUgIGJ2YXNzY2hlCi0KLSAgICogYWdlbnQvc25tcGQuYzoKLQotICAgUmV2ZXJ0ZWQgcjE5NjAxIGFuZCB0aGVyZWJ5IHJlZW5hYmxlZCB0aGUgaW52b2NhdGlvbiBvZgotICAgc2h1dGRvd25fbWFzdGVyX2FnZW50KCkgYW5kIHNodXRkb3duX2FnZW50KCkgZHVyaW5nCi0gICBzbm1wX3NodXRkb3duKCkuCi0KIDIwMTAtMTEtMDMgMTM6MjIgIHJzdG9yeQogCiAgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMjAwVGxzSXB2Nl9zaW1wbGU6CiAKICAgIHNraXAgdGxzaXB2NiB0ZXN0IGlmIG5vdCB0bHN0Y3AvdGNwaXB2NiBkb21haW5zCiAKKzIwMTAtMTEtMDEgMjM6MDMgIG1hZ2ZyCisKKyAgICogIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmgsICAgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLCAgIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKKyAgICAgIHNubXBsaWIvY211X2NvbXBhdC5jLCBzbm1wbGliL21pYi5jLCAgIAorICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CisKKyAgIE5FV1M6IHNubXBsaWI6IFJlbW92ZSB0aGUgc3VwcG9ydCBmb3IgQ01VIGNvbXBhdGliaWxpdHkgc2luY2UKKyAgIHRoZXJlIGlzIG5vIHdheSB0byBlbmFibGUgaXQgYW5kIG5vYm9keSBoYXZlIG1pc3NlZCBpdC4KKwogMjAxMC0xMS0wMSAxNjo1MCAgZHRzMTIKIAogICAgKiBtYW4vdmFyaWFibGVzLjUuZGVmOgpAQCAtMTAwMjgsODAgKzM0OTgyLDYgQEAKIAogICAgRG9jdW1lbnQgLUNmIGluIHRoZSB0d28gbWFuIHBhZ2VzIHNlcGFyYXRlbHkuCiAKLTIwMTAtMTEtMDEgMTY6MzAgIGR0czEyCi0KLSAgICogIG1hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmLCBtYW4vc25tcGJ1bGt3YWxrLjEuZGVmLCAgIAotICAgICAgbWFuL3NubXBnZXQuMS5kZWYsIG1hbi9zbm1wZ2V0bmV4dC4xLmRlZiwgbWFuL3NubXBzZXQuMS5kZWYsICAgCi0gICAgICBtYW4vc25tcHRyYXAuMS5kZWYsIG1hbi9zbm1wdHJhcGQuOC5kZWYsIG1hbi9zbm1wd2Fsay4xLmRlZjoKLQotICAgUmVtb3ZlIENNVSBjb3B5cmlnaHQgbm90aWNlIGZyb20gbWFuIHBhZ2VzIHRoYXQKLSAgIHdlcmUgbm90IGluaGVyaXRlZCBmcm9tIENNVS1TTk1QCi0gICAoYW5kIHF1YWxpZnkgdGhlIGNvcHlyaWdodCBmb3IgdGhvc2UgdGhhdCB3ZXJlKS4KLQotMjAxMC0xMS0wMSAxNjoyMyAgYnZhc3NjaGUKLQotICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6Ci0KLSAgIFBhcnRpYWxseSByZXZlcnRlZCByMTk0ODUgYmVjYXVzZSBpdCB0cmlnZ2VyZWQgZG91YmxlIGZyZWVzCi0gICBkdXJpbmcgc25tcGQgZXhpdCAodGhpcyBjaGFuZ2UgaXMgYWxyZWFkeSBwcmVzZW50IG9uIHRoZSB0cnVuaykuCi0gICBBbiBleGFtcGxlOgotICAgCi0gICA9PTE4NzA5PT0gSW52YWxpZCByZWFkIG9mIHNpemUgOAotICAgPT0xODcwOT09IGF0IDB4NEU3NkQ1NDogbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19mcmVlCi0gICAodGFibGUuYzoxMDA4KQotICAgPT0xODcwOT09IGJ5IDB4NTBEQkVCMjogc2h1dGRvd25fc3lzT1JUYWJsZSAoc3lzT1JUYWJsZS5jOjI4NikKLSAgID09MTg3MDk9PSBieSAweDUxOEUzN0M6IF9zaHV0ZG93bl9taWJfbW9kdWxlcwotICAgKG1pYl9tb2R1bGVfc2h1dGRvd24uaDozKQotICAgPT0xODcwOT09IGJ5IDB4NjAzQ0E3Qzogc25tcF9jYWxsX2NhbGxiYWNrcyAoY2FsbGJhY2suYzozMzgpCi0gICA9PTE4NzA5PT0gYnkgMHg2MDBFQUU0OiBzbm1wX3NodXRkb3duIChzbm1wX2FwaS5jOjg5OCkKLSAgID09MTg3MDk9PSBieSAweDQwNTE3RjogbWFpbiAoc25tcGQuYzoxMDY2KQotICAgPT0xODcwOT09IEFkZHJlc3MgMHg3MzIyOTYwIGlzIDAgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSAzMgotICAgZnJlZSdkCi0gICA9PTE4NzA5PT0gYXQgMHg0QzI2NDk2OiBmcmVlICh2Z19yZXBsYWNlX21hbGxvYy5jOjM2NikKLSAgID09MTg3MDk9PSBieSAweDRFNzY3Qzc6Ci0gICBuZXRzbm1wX2ZyZWVfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAodGFibGUuYzo3NCkKLSAgID09MTg3MDk9PSBieSAweDRFNDQxNkI6IG5ldHNubXBfaGFuZGxlcl9mcmVlCi0gICAoYWdlbnRfaGFuZGxlci5jOjY4NSkKLSAgID09MTg3MDk9PSBieSAweDRFNDQxNEY6IG5ldHNubXBfaGFuZGxlcl9mcmVlCi0gICAoYWdlbnRfaGFuZGxlci5jOjY4MCkKLSAgID09MTg3MDk9PSBieSAweDRFNDQyQUY6IG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZQotICAgKGFnZW50X2hhbmRsZXIuYzo3NDIpCi0gICA9PTE4NzA5PT0gYnkgMHg0RTQ2RjdDOiBuZXRzbm1wX3N1YnRyZWVfZnJlZQotICAgKGFnZW50X3JlZ2lzdHJ5LmM6NDY4KQotICAgPT0xODcwOT09IGJ5IDB4NEU0ODZCOTogdW5yZWdpc3Rlcl9taWJfY29udGV4dAotICAgKGFnZW50X3JlZ2lzdHJ5LmM6MTc0NSkKLSAgID09MTg3MDk9PSBieSAweDRFNDMwRkM6IG5ldHNubXBfdW5yZWdpc3Rlcl9oYW5kbGVyCi0gICAoYWdlbnRfaGFuZGxlci5jOjMyNikKLSAgID09MTg3MDk9PSBieSAweDRFNzY4OTE6IG5ldHNubXBfdW5yZWdpc3Rlcl90YWJsZSAodGFibGUuYzoxMzcpCi0gICA9PTE4NzA5PT0gYnkgMHg0RTdCMTI0OiBuZXRzbm1wX2NvbnRhaW5lcl90YWJsZV91bnJlZ2lzdGVyCi0gICAodGFibGVfY29udGFpbmVyLmM6MzM0KQotICAgPT0xODcwOT09IGJ5IDB4NTBEQkU5MDogc2h1dGRvd25fc3lzT1JUYWJsZSAoc3lzT1JUYWJsZS5jOjI4MykKLSAgID09MTg3MDk9PSBieSAweDUxOEUzN0M6IF9zaHV0ZG93bl9taWJfbW9kdWxlcwotICAgKG1pYl9tb2R1bGVfc2h1dGRvd24uaDozKQotCi0yMDEwLTExLTAxIDE1OjI3ICBidmFzc2NoZQotCi0gICAqIGFnZW50L3NubXBkLmM6Ci0KLSAgIFBhcnRpYWxseSByZXZlcnRlZCByMTk1MTE6IGRpc2FibGVkIGludm9jYXRpb24gb2YKLSAgIHNodXRkb3duX21hc3Rlcl9hZ2VudCgpIGFuZCBzaHV0ZG93bl9hZ2VudCgpIGR1cmluZwotICAgc25tcF9zaHV0ZG93bigpIGFnYWluLgotCi0yMDEwLTExLTAxIDEzOjU1ICBkdHMxMgotCi0gICAqIG1hbi90a21pYi4xLmRlZjoKLQotICAgU3VwcHJlc3MgZm9yY2luZyBvZiAiQmVya2VsZXkgRGlzdHJpYnV0aW9uIiBmb290ZXIKLSAgIChBbGxvd3MgTmV0LVNOTVAgdmVyc2lvbiBpbmZvcm1hdGlvbiB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIG1hbgotICAgcGFnZSkKLQotMjAxMC0xMS0wMSAxMzo0MiAgZHRzMTIKLQotICAgKiBtYW4vc25tcHRhYmxlLjEuZGVmLCBtYW4vc25tcHRlc3QuMS5kZWY6Ci0KLSAgIFVwZGF0ZSBtYW4gcGFnZSBkYXRlc3RhbXBzIHRvIG1hdGNoIHRoZSBsYXRlc3QgKG5vbi10cml2aWFsKQotICAgY29udGVudCBjaGFuZ2UuCi0KIDIwMTAtMTAtMjkgMjI6MzEgIHJzdG9yeQogCiAgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgpAQCAtMTAxMDksMTcgKzM0OTg5LDE3NyBAQAogICAgbnVsbCBvdXQgYmlvIHBvaW50ZXJzIGFmdGVyIGJlaW5nIGZyZWVkOyBiYWlsIG9uIGNvbm5lY3Rpb24KICAgIHdpdGggbm8gc3NsIHBvaW50ZXIKIAorMjAxMC0xMC0yOSAxNDozNSAgYnZhc3NjaGUKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6CisKKyAgIFJldmVydGVkIGluY29ycmVjdCBjaGFuZ2VzIGZyb20gcjE5NTc1LgorCisyMDEwLTEwLTI5IDE0OjIxICBidmFzc2NoZQorCisgICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgorCisgICBGaXhlZCBhIGJ1ZyB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIxOTUxNS4KKworMjAxMC0xMC0yOSAxNDowMCAgYnZhc3NjaGUKKworICAgKiAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgIAorICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAgCisgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKKyAgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKKyAgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKKyAgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYzoKKworICAgUmV2ZXJ0ZWQgdGhlIGluY29ycmVjdCBjaGFuZ2VzIGZyb20gcjE5NTkzLgorCisyMDEwLTEwLTI5IDEzOjM4ICBidmFzc2NoZQorCisgICAqIHNubXBsaWIvY2VydF91dGlsLmM6CisKKyAgIFJlZHVjZWQgbnVtYmVyIG9mIGxlYWstYXQtZXhpdCBjb21wbGFpbnRzIHRyaWdnZXJlZCBieQorICAgc25tcGxpYi9jZXJ0X3V0aWwuYy4KKworMjAxMC0xMC0yOSAxMzozNyAgYnZhc3NjaGUKKworICAgKiAKKyAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgIAorICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAgCisgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKKyAgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jOgorCisgICBNb3JlIGxlYWstYXQtZXhpdCBmaXhlcy4KKworMjAxMC0xMC0yOSAxMzozNSAgYnZhc3NjaGUKKworICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmg6CisKKyAgIE1vcmUgbGVhay1hdC1leGl0IGZpeGVzLgorCiAyMDEwLTEwLTI5IDEyOjE4ICBidmFzc2NoZQogCiAgICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgogCiAgICBTcGVsbGluZyBmaXggaW4gbG9nIHRleHRzOiBjb250YWludGVyIC0+IGNvbnRhaW5lci4KIAotMjAxMC0xMC0yOSAxMTozNCAgYnZhc3NjaGUKKzIwMTAtMTAtMjkgMDk6NTggIGJ2YXNzY2hlCiAKICAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgogCi0gICBCYWNrcG9ydGVkIHIxOTU4OCBhbmQgcjE5NTg5IGZyb20gdGhlIHRydW5rLgorICAgUmFuIGZpbGx1cF9lbnRyeV9pbmZvKCkgdGhyb3VnaCBpbmRlbnQuCisKKzIwMTAtMTAtMjkgMDk6NTYgIGJ2YXNzY2hlCisKKyAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgorCisgICBOZXRsaW5rIElQdjYgcHJlZml4IHByb2Nlc3Npbmc6IEFkZGVkIG1vcmUgZGVidWcgc3RhdGVtZW50cy4KKworMjAxMC0xMC0yOSAwOTo1NCAgYnZhc3NjaGUKKworICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CisKKyAgIE1hZGUgYXJndW1lbnQgY2hlY2tpbmcgb2YgbmV0c25tcF9oYW5kbGVyX293bnNfdGFibGVfaW5mbygpIG1vcmUKKyAgIHN0cmljdC4KKworMjAxMC0xMC0yOSAwOTo1MiAgYnZhc3NjaGUKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaCwgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuaCwgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlLmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5oOgorCisgICBNb3JlIE1JQi1zcGVjaWZpYyBsZWFrLWF0LWV4aXQgZml4ZXMuCiAKIDIwMTAtMTAtMjkgMDc6NTYgIGJ2YXNzY2hlCiAKQEAgLTEwMTc4LDYgKzM1MjE4LDM4IEBACiAgICBVbnRhbmdsZSBwaWNsIGZyb20ga3N0YXQgYWNjZXNzIHNvIGl0IGNvbXBpbGVzIG9uIHg4NiBTb2xyYWlzCiAgICAxMC9PcGVuU29sYXJpcwogCisyMDEwLTEwLTI4IDE1OjE1ICBidmFzc2NoZQorCisgICAqICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuaCwgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsICAKKyAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCisgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKKyAgICAgICAgCisgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKKworICAgTW9yZSBsZWFrLWF0LWV4aXQgZml4ZXMuCisKKzIwMTAtMTAtMjggMTU6MTMgIGJ2YXNzY2hlCisKKyAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oOgorCisgICBDSEFOR0VTOiBhZ2VudDogQWRkZWQgbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX2luc3RhbmNlMigpLAorICAgbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX3NjYWxhcjIoKSwgbmV0c25tcF9jbG9uZV93YXRjaGVyX2luZm8oKQorICAgYW5kIG5ldHNubXBfb3duc193YXRjaGVyX2luZm8oKS4gU2VlIGFsc28gdGhlIERveHlnZW4gY29tbWVudHMKKyAgIGZvciBtb3JlIGluZm8uCisKIDIwMTAtMTAtMjggMTQ6MDIgIGR0czEyCiAKICAgICogbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzLmNvbmY6CkBAIC0xMDE5OSw2ICszNTI3MSwxMyBAQAogICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIChtaXNtYXRjaCBiZXR3ZWVuIGZvcm1hdCBzcGVjaWZpY2F0aW9uCiAgICBhbmQgYXJndW1lbnQpIHRoYXQgd2FzIGludHJvZHVjZWQgaW4gcjY1NjIuCiAKKzIwMTAtMTAtMjggMTE6NDMgIGJ2YXNzY2hlCisKKyAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmM6CisKKyAgIEdldCByaWQgb2YgcmVjZW50bHkgaW50cm9kdWNlZCBtZW1kdXAoKSBjb21waWxlciB3YXJuaW5ncy4KKwogMjAxMC0xMC0yOCAxMTo0MSAgYnZhc3NjaGUKIAogICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKQEAgLTEwMjEyLDYgKzM1MjkxLDIzIEBACiAgICBSZXZlcnRlZCByMTk1NjUgYmVjYXVzZSBpdCBjYXVzZWQgZ2NjIHRvIHJlcG9ydCBtb3JlIHdhcm5pbmdzCiAgICBpbnN0ZWFkIG9mIGxlc3MuCiAKKzIwMTAtMTAtMjggMTE6MTggIGJ2YXNzY2hlCisKKyAgICogCisgICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYzoKKworICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIHRoYXQgd2FzIGludHJvZHVjZWQgaW4gcjE5NTY2LgorCisyMDEwLTEwLTI4IDEwOjQwICBidmFzc2NoZQorCisgICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsIHNubXBsaWIvY2FsbGJhY2suYzoKKworICAgUGFydGlhbGx5IHJldmVydGVkIHIxOTUxNTogcmVtb3ZlZCB0aGUgbmV3bHkgaW50cm9kdWNlZCBmdW5jdGlvbnMKKyAgIGFuZCBkYXRhIG1lbWJlcnMgYWdhaW4sIGJ1dCB3aXRob3V0IHJlaW50cm9kdWNpbmcgdGhlCisgICBsZWFrLWF0LWV4aXQuCisKIDIwMTAtMTAtMjggMTA6MzIgIGJ2YXNzY2hlCiAKICAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKQEAgLTEwMjI2LDYgKzM1MzIyLDEzIEBACiAKICAgIEZpeGVkIHlldCBhbm90aGVyIGNyYXNoIGluIG5ldHNubXBfY2FjaGVfcmVtb3ZlKCkuCiAKKzIwMTAtMTAtMjggMDg6NDQgIGJ2YXNzY2hlCisKKyAgICogYWdlbnQvc25tcGQuYzoKKworICAgTWFkZSBpdCBlYXNpZXIgdG8gZW5hYmxlIHRoZSBtZW1vcnkgbGVhayBjaGVja2VyIGJ1aWx0LWluIGluCisgICBNU1ZDJ3MgQyBydW50aW1lIGxpYnJhcnkuCisKIDIwMTAtMTAtMjcgMjA6MzcgIG5iYQogCiAgICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmM6CkBAIC0xMDM0NCwxMSArMzU0NDcsMTQgQEAKICAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjk1OTgxMTogZnJvbSBKYW4gU2FmcmFuZWs6IFJlaW1wbGVtZW50CiAgICBMaW51eCBOZXRsaW5rIElQdjYgcHJlZml4IGxpc3RlbmVyLgogCi0yMDEwLTEwLTI1IDA3OjQyICBidmFzc2NoZQorMjAxMC0xMC0yNSAwNzoxNSAgYnZhc3NjaGUKIAotICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgorICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCisgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKIAotICAgUmVnZW5lcmF0ZWQgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbi4KKyAgIEF2b2lkIHRoYXQgdGhlIGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCBjYXN0aW5nIGF3YXkgdGhlICdjb25zdCcKKyAgIGF0dHJpYnV0ZSBmb3IgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHNzbGN0eF9jbGllbnRfc2V0dXAoKSBhbmQKKyAgIHNzbGN0eF9zZXJ2ZXJfc2V0dXAoKS4KIAogMjAxMC0xMC0yNSAwNjoyOCAgbmJhCiAKQEAgLTEwMzk1LDYgKzM1NTAxLDE0IEBACiAKICAgIGNvbnN0LWp1Z2dsaW5nIC0gd2UgZG9udCBsaWtlIHdhcm5pbmdzCiAKKzIwMTAtMTAtMjMgMTE6NTYgIGJ2YXNzY2hlCisKKyAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CisKKyAgIFJlZW5hYmxlZCBjYWNoZSByZW1vdmFsIGFuZCBmcmVlaW5nIC8gbW92ZWQgY2FjaGUgcmVmY291bnQKKyAgIGluY3JlbWVudGluZyB0byBuZXRzbm1wX2NhY2hlX293bnNfY2FjaGUoKSAvIGNvbnZlcnRlZCB0YWJzIHRvCisgICBzcGFjZXMuCisKIDIwMTAtMTAtMjMgMTE6MDQgIGJ2YXNzY2hlCiAKICAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CkBAIC0xMDQwOCwyMSArMzU1MjIsMjAxIEBACiAgICBDSEFOR0VTOiBhZ2VudDogUmVtb3ZpbmcgdGhlIGxhc3QgY2FjaGUgdmlhCiAgICBuZXRzbm1wX2NhY2hlX3JlbW92ZSgpIGRvZXMgbm8gbG9uZ2VyIHRyaWdnZXIgYSBjcmFzaC4KIAotMjAxMC0xMC0yMiAwOToyMCAgYnZhc3NjaGUKKzIwMTAtMTAtMjMgMTA6NTcgIGJ2YXNzY2hlCisKKyAgICogCisgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NhZ2VudGxpYi5jOgorCisgICBUMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jYWdlbnRsaWI6IEludHJvZHVjZWQKKyAgIG5ldHNubXBfY2FjaGVfY3JlYXRlKCkuCisKKzIwMTAtMTAtMjIgMTU6MjQgIGJ2YXNzY2hlCisKKyAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CisKKyAgIERpc2FibGVkIGNhY2hlIGRlYWxsb2NhdGlvbiBiZWNhdXNlIGl0IG1ha2VzIHR3byB1bml0IHRlc3RzIGZhaWwKKyAgIC0gdG8gYmUgYW5hbHl6ZWQgZnVydGhlci4KKworMjAxMC0xMC0yMiAxNTowMyAgYnZhc3NjaGUKKworICAgKiAKKyAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNnNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fY2FnZW50bGliLmM6CisKKyAgIEJ1aWxkcyBhZ2Fpbi4KKworMjAxMC0xMC0yMiAxNDo0OSAgYnZhc3NjaGUKKworICAgKiAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCisgICAgICAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLCAgCisgICAgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jLAorICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGUuYywKKyAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmMsCisgICAgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKKyAgICAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmM6CisKKyAgIENIQU5HRVM6IGFnZW50OiBNSUItc3BlY2lmaWMgbGVhay1hdC1leGl0IGZpeGVzLgorCisyMDEwLTEwLTIyIDE0OjQyICBidmFzc2NoZQorCisgICAqICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuaDoKKworICAgQ0hBTkdFUzogYWdlbnQ6IGV4YW1wbGUgTUlCOiBBZGRlZCBzaHV0ZG93biBmdW5jdGlvbiB0aGF0IGZyZWVzCisgICBhbGwgbWVtb3J5IG93bmVkIGJ5IHRoaXMgTUlCIGltcGxlbWVudGF0aW9uLgorCisyMDEwLTEwLTIyIDE0OjQwICBidmFzc2NoZQorCisgICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CisKKyAgIENIQU5HRVM6IGFnZW50OiBBdXRvbWF0aWNhbGx5IGZyZWUgdGhlIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmUKKyAgIGFsbG9jYXRlZCBieSBuZXRzbm1wX2NvbnRhaW5lcl90YWJsZV9oYW5kbGVyX2dldCgpLgorCisyMDEwLTEwLTIyIDE0OjM4ICBidmFzc2NoZQorCisgICAqICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgorCisgICBDSEFOR0VTOiBhZ2VudDogQ291bnQgdGhlIG51bWJlciBvZiB1c2VycyBvZiBhIG5ldHNubXBfY2FjaGUgZGF0YQorICAgc3RydWN0dXJlIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgaXQuCisKKzIwMTAtMTAtMjIgMTQ6MzYgIGJ2YXNzY2hlCisKKyAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oOgorCisgICBDSEFOR0VTOiBhZ2VudDogQWRkZWQgcmVmZXJlbmNlIGNvdW50IGluIHRoZQorICAgbmV0c25tcF9iYWJ5X3N0ZXBzX21vZGVzIGRhdGEgc3RydWN0dXJlIGFuZCBtYWRlIHN1cmUgdGhhdCB0aGlzCisgICBkYXRhIHN0cnVjdHVyZSBpcyBhdXRvbWF0aWNhbGx5IGZyZWVkIHdoZW4gdGhlIGhhbmRsZXIgdGhhdCBvd25zCisgICBpdCBpcyB1bnJlZ2lzdGVyZWQuCisKKzIwMTAtMTAtMjIgMTQ6MzQgIGJ2YXNzY2hlCisKKyAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CisKKyAgIENIQU5HRVM6IGFnZW50OiBBZGRlZCBuZXRzbm1wX3VucmVnaXN0ZXJfYXV0b19kYXRhX3RhYmxlKCkuCisKKzIwMTAtMTAtMjIgMDg6NTEgIGJ2YXNzY2hlCisKKyAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKKworICAgRm9sbG93LXVwIGZvciByMTk1MTE6IG1hZGUgc3VyZSB0aGF0IGNsZWFuX3N1YnRyZWUoKSBkZWFsbG9jYXRlcworICAgYWxsIGNvbnRleHQgY2FjaGUgbm9kZXMuCisKKzIwMTAtMTAtMjIgMDg6NDkgIGJ2YXNzY2hlCiAKICAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CiAKICAgIENIQU5HRVM6IGFnZW50OiBuZXRzbm1wX2NhY2hlX2ZyZWUoKTogQSBtb3JlIGRldGFpbGVkIG1lc3NhZ2UgaXMKICAgIG5vdyBsb2dnZWQgd2hlbiBhdHRlbXB0aW5nIHRvIGZyZWUgYSBjYWNoZSB0aGF0IGlzIHN0aWxsIGluIHRoZQogICAgY2FjaGUgbGlzdC4KLSAgIChCYWNrcG9ydGVkIHIxOTUyNC4pCiAKLTIwMTAtMTAtMjIgMDk6MTkgIGJ2YXNzY2hlCisyMDEwLTEwLTIyIDA2OjM5ICBidmFzc2NoZQogCi0gICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CisgICAqIGx0bWFpbi5zaDoKIAotICAgQmFja3BvcnRlZCByMTk1MjU6IG1hZGUgc3VyZSB0aGF0IGNsZWFuX3N1YnRyZWUoKSBkZWFsbG9jYXRlcyBhbGwKLSAgIGNvbnRleHQgY2FjaGUgbm9kZXMuCisgICBSZXZlcnRlZCBsdG1haW4uc2ggY2hhbmdlcyBmcm9tIHIxOTUyMi4KKworMjAxMC0xMC0yMiAwNjozNCAgYnZhc3NjaGUKKworICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIGx0bWFpbi5zaDoKKworICAgUmVnZW5lcmF0ZWQgYXV0b2NvbmYvYXV0b21ha2UvbGlidG9vbC1nZW5lcmF0ZWQgZmlsZXMgYnkgcnVubmluZworICAgYXV0b3JlY29uZiAtZi4KKworMjAxMC0xMC0yMSAwNzo1MSAgYnZhc3NjaGUKKworICAgKiBsdG1haW4uc2g6CisKKyAgIFJlYXBwbGllZCByMTg3MjYrcjE4NzY2OiBtYWtlIGxpYnRvb2wgc3VwcG9ydCAtZnN0YWNrLXByb3RlY3RvciouCisgICBTZWUgYWxzbworICAgaHR0cDovL2Jsb2cuZ21hbmUub3JnL2dtYW5lLmNvbXAuZ251LmxpYnRvb2wuYnVncy9tb250aD0yMDEwMDYwMQorICAgZm9yIHRoZSBjb25maXJtYXRpb24gdGhhdCB0aGlzIGlzIGEgbGlidG9vbCBidWcuCisKKzIwMTAtMTAtMjAgMjA6MTYgIGJ2YXNzY2hlCisKKyAgICogc25tcGxpYi90b29scy5jOgorCisgICBBdm9pZCB0aGF0IG5ldHNubXBfY2hlY2tfZGVmaW5lZG5lc3MoKSB0cmlnZ2VycyBhIGJ1aWxkIGZhaWx1cmUKKyAgIHdoZW4gY29tcGlsZWQgYWdhaW5zdCBvbGQgVmFsZ3JpbmQgaGVhZGVycy4gTm90ZTogdGhlIGludHJvZHVjZWQKKyAgIGNoZWNrIGlzIHN0cmljdGVyIHRoYW4gbmVjZXNzYXJ5IC0gVkFMR1JJTkRfUFJJTlRGX0JBQ0tUUkFDRSgpCisgICB3YXMgaW50cm9kdWNlZCBpbiBWYWxncmluZCAzLjUuMCBvciBiZWZvcmUgKG5vdCBzdXJlIHdoaWNoCisgICB2ZXJzaW9uKS4KKworMjAxMC0xMC0yMCAxNzoxMyAgaGFyZGFrZXIKKworICAgKiBzbm1wbGliL3Rvb2xzLmM6CisKKyAgIGFkZGVkIGEgY29tbWVudCBpbiBjb2RlIG5vdGUgdGhhdCB0aGlzIHJlcXVpcmVzIGEgZmFpcmx5IHJlY2VudAorICAgdmFsZ3JpbmQKKworMjAxMC0xMC0yMCAxNzowMCAgaGFyZGFrZXIKKworICAgKiBjb25maWd1cmU6CisKKyAgIHJlcmFuIGF1dG9jb25mIGFmdGVyIHVwZGF0aW5nIGxpYnRvb2wKKworMjAxMC0xMC0yMCAxNjo1OSAgaGFyZGFrZXIKKworICAgKiAgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBpbnN0YWxsLXNoLCBsdG1haW4uc2gsIG00L2xpYnRvb2wubTQsICAgCisgICAgICBtNC9sdG9wdGlvbnMubTQsIG00L2x0dmVyc2lvbi5tNCwgbTQvbHR+b2Jzb2xldGUubTQ6CisKKyAgIHVwZGF0ZSB0byBsaWJ0b29sIDIuNAorCisyMDEwLTEwLTIwIDE2OjU5ICBoYXJkYWtlcgorCisgICAqIGNvbmZpZ3VyZSwgZGlzdC9hdXRvY29uZi12ZXJzaW9uOgorCisgICB1cGRhdGVkIHRvIGF1dG9jb25mIDIuNjgKKworMjAxMC0xMC0yMCAxNDoyNiAgYnZhc3NjaGUKKworICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCAgIAorICAgICAgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAorICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsICAgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oLCAgIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsIHNubXBsaWIvY2FsbGJhY2suYywgICAKKyAgICAgIHdpbjMyL21pYl9tb2R1bGVfc2h1dGRvd24uaDoKKworICAgQ0hBTkdFUzogYWdlbnQ6IEFkZGVkIHRoZSBmdW5jdGlvbnMgbmV0c25tcF9kdXBsaWNhdGVfdmFyaWFibGUoKQorICAgYW5kIG5ldHNubXBfY2FjaGVfaGFuZGxlcl9vd25zX2NhY2hlKCkuCisgICBDSEFOR0VTOiBhZ2VudDogTWVtb3J5IGFsbG9jYXRlZCBieSBuZXRzbm1wX3JlZ2lzdGVyX29sZF9hcGkoKQorICAgZm9yIHN0b3JpbmcgU05NUCB2YXJpYWJsZXMgaXMgbm93IGZyZWVkIHdoZW4gdGhlIGFzc29jaWF0ZWQKKyAgIGhhbmRsZXIgaXMgdW5yZWdpc3RlcmVkLgorICAgQ0hBTkdFUzogYWdlbnQ6IENhbGxiYWNrIGZ1bmN0aW9uIGRhdGEgZGVhbGxvY2F0aW9uIGRvZXMgbm8KKyAgIGxvbmdlciBmcmVlIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGZvciB0aGUgQWdlbnRYIHNlc3Npb24gLSB0aGUKKyAgIG1lbW9yeSB0aGF0IHdhcyBhbGxvY2F0ZWQgZm9yIEFnZW50WCBzZXNzaW9ucyBpcyBub3cgZGVhbGxvY2F0ZWQKKyAgIGp1c3QgYXMgdGhhdCBmb3IgYW55IG90aGVyIHNlc3Npb24uIFRoaXMgZml4ZXMgYSBsZWFrLWF0LWV4aXQuCisgICBDSEFOR0VTOiBhZ2VudDogTm90aWZ5IGZpbHRlciB0YWJsZTogQ2FsbGJhY2sgZnVuY3Rpb24gZGF0YQorICAgZGVhbGxvY2F0aW9uIGRvZXMgbm8gbG9uZ2VyIGZyZWUgdGhlIGRhdGEgaW4KKyAgICogICAgICpzbm1wTm90aWZ5RmlsdGVyVGFibGVfaWZfY3R4LmNvbnRhaW5lciAtIHRoaXMgaXMgbm93IGRvbmUgYnkgIAorICAgICAgIHNodXRkb3duX3NubXBOb3RpZnlGaWx0ZXJUYWJsZSgpLiAgICBDSEFOR0VTOiBXaW4zMjoKKyAgICAgIHNodXRkb3duX3NubXBOb3RpZnlGaWx0ZXJUYWJsZSgpIGFuZAorCisgICBzaHV0ZG93bl93aW5FeHRETEwoKSBhcmUgbm93IGludm9rZWQgd2hlbiB0aGUgTmV0LVNOTVAgc2VydmljZSBpcworICAgc3RvcHBlZC4KKworMjAxMC0xMC0yMCAxMzo0NyAgYnZhc3NjaGUKKworICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDV0YWJsZV9kYXRhc2V0X2NhZ2VudGxpYi5jOgorCisgICBVbml0LXRlc3RpbmcsIFQwMDV0YWJsZV9kYXRhc2V0X2NhZ2VudGxpYjogYWRkZWQgaW5pdF9hZ2VudCgpIGFuZAorICAgc2h1dGRvd25fYWdlbnQoKSBjYWxscy4KIAogMjAxMC0xMC0yMCAxMzoxMiAgbmJhCiAKQEAgLTEwNDMwLDYgKzM1NzI0LDEyIEBACiAKICAgIEZpeCBub24tQU5TSSBmdW5jdGlvbiBoZWFkaW5nCiAKKzIwMTAtMTAtMjAgMTI6NTEgIHJzdG9yeQorCisgICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CisKKyAgIGZpeCBpcENpZHJSb3V0ZVRhYmxlIChtYXNrKSBmb3IgbGl0dGxlIGVuZGlhbiBzeXN0ZW1zCisKIDIwMTAtMTAtMjAgMTA6MzQgIGJ2YXNzY2hlCiAKICAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgICAKQEAgLTEwNDUwLDYgKzM1NzUwLDI3IEBACiAgICBpcyBmb3IgdGhpcyBjaGFuZ2UgdGhhdCBpdCB3YXMgbmVjZXNzYXJ5IHRvIGludHJvZHVjZSB0aGUgbmV3CiAgICBmdW5jdGlvbiBzbm1wX3Nlc3Nfc2Vzc2lvbl9sb29rdXAoKS4KIAorMjAxMC0xMC0xOSAyMzo0OSAgbWFnZnIKKworICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfc2ltcGxlLCAgIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUxc25tcHYyY3RyYXBfc2ltcGxlLCAgIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUyc25tcHYyY2luZm9ybV9zaW1wbGUsICAgCisgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfc2ltcGxlOgorCisgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgbWlzc2luZyBwcmVjb25kaXRpb25zCisKKzIwMTAtMTAtMTkgMjI6MTEgIGhhcmRha2VyCisKKyAgICogZGlzdC9wYXRtZToKKworICAgZG9uJ3QgZGVmYXVsdCB0byBhcHBseWluZyB0byA1LjIKKworMjAxMC0xMC0xOSAyMjoxMCAgaGFyZGFrZXIKKworICAgKiBkaXN0L3BhdG1lOgorCisgICBhZGRlZCB0aGUgNS42IGJyYW5jaAorCiAyMDEwLTEwLTE5IDIxOjEzICBuYmEKIAogICAgKiBzbm1wbGliL3BhcnNlLmM6CkBAIC0xMDUyMiwxMSArMzU4NDMsNTcgQEAKICAgIHJlZGVmaW5pdGlvbiBvZiB0aGUgbWFsbG9jKCkgbWFjcm8gZHVyaW5nIGJ1aWxkaW5nIHRoZSBOZXQtU05NUAogICAgc291cmNlIGNvZGUuCiAKLTIwMTAtMTAtMTggMTA6MzUgIGJ2YXNzY2hlCisyMDEwLTEwLTE5IDA3OjA0ICBtYWdmcgorCisgICAqIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oOgorCisgICBDSEFOR0VTOiBhZ2VudDogRmFjdG9yIG91dCBjb21tb24gY29uZmlnX2FkZF9taWIgc3RhdG1lbnRzCisKKzIwMTAtMTAtMTggMTQ6MjIgIGJ2YXNzY2hlCisKKyAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CisKKyAgIE1hcmsgdGhlIHByb3BlciBoYW5kbGVyIHRoYXQgb3ducyB0aGUgdGFibGUgcmVnaXN0cmF0aW9uCisgICBpbmZvcm1hdGlvbi4KKworMjAxMC0xMC0xOCAxMDo1NCAgYnZhc3NjaGUKKworICAgKiAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKKyAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKKworICAgQ0hBTkdFUzogYWdlbnQ6IEFkZGVkIGZ1bmN0aW9ucyBuZXRzbm1wX2hhbmRsZXJfb3duc190YWJyZXEoKSwKKyAgIG5ldHNubXBfcmVnaXN0cmF0aW9uX293bnNfdGFicmVxKCksIG5ldHNubXBfaXRlcmF0b3JfY2xvbmUoKS4KKyAgIEV4cG9ydGVkIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fY2xvbmUoKS4KKyAgIENIQU5HRVM6IGFnZW50OiBNb2RpZmllZCBuZXRzbm1wX2l0ZXJhdG9yX2RlbGV0ZV90YWJsZSgpIHN1Y2gKKyAgIHRoYXQgaXQgZnJlZXMgdGhlIHRhYmxlIHJlZ2lzdHJhdGlvbiBpbmZvcm1hdGlvbiBzdG9yZWQgaW4gYQorICAgdGFibGUgaXRlcmF0b3IgdG9vLgorICAgQ0hBTkdFUzogYWdlbnQ6IE1vZGlmaWVkIG5ldHNubXBfZ2V0X3RhYmxlX2l0ZXJhdG9yX2hhbmRsZXIoKQorICAgc3VjaCB0aGF0IHRoZSB0YWJsZSBpdGVyYXRvciBwYXNzZWQgdG8gdGhpcyBmdW5jdGlvbiBpcyBmcmVlZAorICAgd2hlbiB0aGUgYXNzb2NpYXRlZCBoYW5kbGVyIGlzIGZyZWVkLgorICAgCisgICBSZXN0b3JlZCB0aGUgYmVoYXZpb3Igb2YgbmV0c25tcF9nZXRfdGFibGVfaGFuZGxlcigpIHRvIHRoYXQgb2YKKyAgIHIxOTQ0OSwgdGhhdCBpcywgbm90IHNldHRpbmcgdXAgdGhlIGRhdGFfZnJlZSBwb2ludGVyIGJlY2F1c2Ugbm90CisgICBhbGwgY2FsbGVycyBvZiBuZXRzbm1wX2dldF90YWJsZV9oYW5kbGVyKCkgZXhwZWN0IHRoYXQgdGFibGUKKyAgIHJlZ2lzdHJhdGlvbiBpbmZvcm1hdGlvbiBpcyBmcmVlZCB3aGVuIHRoZSBhc3NvY2lhdGVkIGhhbmRsZXIgaXMKKyAgIGZyZWVkLgorCisyMDEwLTEwLTE4IDEwOjM0ICBidmFzc2NoZQogCiAgICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CiAKLSAgIEJhY2twb3J0ZWQgcjE5NDkxIHRvIHRoZSBWNS42IGJyYW5jaCAoY29tcGlsZXIgd2FybmluZyBmaXgpLgorICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGNhc3RpbmcgYXdheSBjb25zdG5lc3MuCiAKIDIwMTAtMTAtMTggMDg6NTIgIGJ2YXNzY2hlCiAKQEAgLTEwNjI5LDYgKzM1OTk2LDE0IEBACiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBJdCBpcyBhZ2FpbiBwb3NzaWJsZSB0byBydW4gYW4gaW5kaXZpZHVhbCB0ZXN0CiAgICB2aWEgdGhlIHNjcmlwdCB0ZXN0aW5nL1JVTlRFU1RTLgogCisyMDEwLTEwLTE3IDE0OjI4ICBidmFzc2NoZQorCisgICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CisKKyAgIENIQU5HRVM6IHNubXBsaWI6IEFkZGVkIHRoZSBmdW5jdGlvbiBuZXRzbm1wX2NoZWNrX2RlZmluZWRuZXNzKCksCisgICB3aGljaCBoZWxwcyB0byBmaW5kIHRoZSBjYXVzZSBvZiB1bmRlZmluZWQgdmFsdWUgZXJyb3JzIGFzCisgICByZXBvcnRlZCBieSBWYWxncmluZC4KKwogMjAxMC0xMC0xNyAxNDoyNCAgYnZhc3NjaGUKIAogICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaDoKQEAgLTEwNjM2LDYgKzM2MDExLDEzIEBACiAgICBSZW1vdmVkIGFuIG9ic29sZXRlIGRlY2xhcmF0aW9uOiB0aGUgZnVuY3Rpb24gYWdlbnR4X2J1aWxkKCkgaGFzCiAgICBiZWVuIHJlbW92ZWQgYSBsb25nIHRpbWUgYWdvLgogCisyMDEwLTEwLTE3IDE0OjA1ICBidmFzc2NoZQorCisgICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKKworICAgQWRkZWQgY29uZmlndXJlIHRlc3QgZm9yIHRoZSBWYWxncmluZCBoZWFkZXIgZmlsZXMuCisKIDIwMTAtMTAtMTcgMTI6MDEgIGJ2YXNzY2hlCiAKICAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKQEAgLTEwNjUxLDcgKzM2MDMzLDggQEAKIAogMjAxMC0xMC0xNyAwOTozNiAgYnZhc3NjaGUKIAotICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCisgICAqICBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CiAKICAgIEZpeGVkIGEgZmV3IGNvbXBpbGVyIHdhcm5pbmdzIGJ5IGluc2VydGluZyBhcHByb3ByaWF0ZSBjYXN0cy4KQEAgLTEwNjY0LDYgKzM2MDQ3LDU2IEBACiAKICAgIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCktcmVsYXRlZCBjbGVhbnVwLgogCisyMDEwLTEwLTE3IDAxOjQxICBtYWdmcgorCisgICAqICBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCAgIAorICAgICAgYWdlbnQvc25tcGQuYzoKKworICAgTkVXUzogc25tcGQ6IFJlbW92ZSB1dGlsX2Z1bmNzL0V4aXQgZnJvbSB0aGUgcmVxdWlyZW1lbnQgc2V0cyBvZgorICAgdXRpbF9mdW5jcyBhbmQgZGVmYXVsdF9tb2R1bGVzLgorICAgTkVXUzogc25tcGQ6IE5ldmVyIHVzZSBFeGl0IHRvIHRlcm1pbmF0ZSB0aGUgYWdlbnQuCisKKzIwMTAtMTAtMTYgMjI6MzIgIG1hZ2ZyCisKKyAgICogIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oLCAgIAorICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgICAKKyAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmgsICAgCisgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIGFnZW50L3NubXBkLmM6CisKKyAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHRoZSBzZXR0aW5nIG9mIHRoZSBhcmd2cmVzdGFydCogdmFyaWFibGVzCisgICBvcHRpb25hbCBvbiBVU0lOR19VVElMX0ZVTkNTX1JFU1RBUlRfTU9EVUxFLgorICAgTkVXUzogc25tcGQ6IFJlbW92ZSB1dGlsX2Z1bmNzL3Jlc3RhcnQgZnJvbSB0aGUgcmVxdWlyZW1lbnQgc2V0cworICAgb2YgdXRpbF9mdW5jcyBhbmQgZGVmYXVsdF9tb2R1bGVzLgorICAgQ0hBTkdFUzogc25tcGQ6IEFkZCB1dGlsX2Z1bmNzL3Jlc3RhcnQgdG8gdGhlIHJlcXVpcmVtZW50IHNldCBvZgorICAgdWNkLXNubXAvdmVyc2lvbmluZm8uCisKKzIwMTAtMTAtMTYgMjI6MDUgIG1hZ2ZyCisKKyAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CisKKyAgIENIQU5HRVM6IHNubXBkOiBFeHRlbmQgdGhlIGRvY3VtZW50YXRpb24gZm9yIGRhdGFfY2xvbmUgYW5kCisgICBkYXRhX2ZyZWUKKworMjAxMC0xMC0xNiAyMjowMyAgbWFnZnIKKworICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYzoKKworICAgQ0hBTkdFUzogc25tcGQ6IE1ha2UgaXQgcG9zc2libGUgdG8gY29weSB3YXRjaGVkIGRhdGEgaXRlbXMKKyAgIHdpdGhvdXQgbWVtb3J5IGxlYWtzLgorCisyMDEwLTEwLTE2IDIyOjAxICBtYWdmcgorCisgICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jOgorCisgICBDSEFOR0VTOiBzbm1wZDogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBjbXAKKworMjAxMC0xMC0xNiAxOTo0NCAgbWFnZnIKKworICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jOgorCisgICBDSEFOR0VTOiBzbm1wZDogRG8gbm90IGxlYWsgdGhlIGxpbWl0cyBvZiBzY2FsYXJfZ3JvdXAgb2JqZWN0cyBvbgorICAgc2h1dGRvd24uCisKIDIwMTAtMTAtMTYgMDg6MzcgIGJ2YXNzY2hlCiAKICAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgY29uZmlndXJlLCAgIApAQCAtMTA2NzEsMTAgKzM2MTA0LDI2IEBACiAKICAgIFNwZWxsaW5nIGZpeDogZHVscGljYXRlIC0+IGR1cGxpY2F0ZS4KIAorMjAxMC0xMC0xNiAwODozNCAgYnZhc3NjaGUKKworICAgKiAKKyAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNnNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fY2FnZW50bGliLmM6CisKKyAgIEFkZGVkIG1vcmUgdGVzdCBjb2RlLgorCisyMDEwLTEwLTE2IDA4OjMzICBidmFzc2NoZQorCisgICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAorICAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jOgorCisgICBGb2xsb3ctdXAgZm9yIHIxOTQ2NTogaGFuZGxlIG91dC1vZi1tZW1vcnkgcHJvcGVybHkgLyByZW1vdmVkIGEKKyAgIGR1cGxpY2F0ZSBmdW5jdGlvbi4KKwogMjAxMC0xMC0xNSAxOToxNyAgYnZhc3NjaGUKIAogICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jYWdlbnRsaWJfYnVpbGQsICAgCiAgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhZ2VudGxpYl9ydW4sICAgCisgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQsICAgCiAgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDV0YWJsZV9kYXRhc2V0X2NhZ2VudGxpYi5jLCAgIAogICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA1dGFibGVfZGF0YXNldF9jbGliLmMsICAgCiAgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NhZ2VudGxpYi5jLApAQCAtMTA2ODQsMzYgKzM2MTMzLDMyIEBACiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBJbnRyb2R1Y2VkIG5ldyB0ZXN0IHR5cGUgbmV4dCB0byBjYXBwIGFuZCBjbGliOgogICAgY2FnZW50bGliLgogCisyMDEwLTEwLTE1IDE4OjU2ICBidmFzc2NoZQorCisgICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAorICAgICAgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsICAgCisgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAgIAorICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jbGliLmM6CisKKyAgIE5FV1M6IHNubXBsaWI6IEFkZGVkIG5ldHNubXBfbWliX2hhbmRsZXIuZGF0YV9jbG9uZSwgYSBmdW5jdGlvbgorICAgcG9pbnRlciB0aGF0IGRlZmluZXMgaG93IHRvIGNsb25lIG5ldHNubXBfbWliX2hhbmRsZXIubXl2b2lkLgorICAgTXVzdCBiZSBkZWZpbmVkIGlmIGFuZCBvbmx5IGlmIGRhdGFfZnJlZSBpcyBzZXQuIFRoZSBmdW5jdGlvbgorICAgbmV0c25tcF9oYW5kbGVyX2R1cCgpIGRvZXMgbm93IGNsb25lIE1JQiBoYW5kbGVyIHByaXZhdGUgZGF0YSBpZgorICAgZGF0YV9jbG9uZSgpIGlzIHNldC4gUHJldmlvdXNseSBhZnRlciBkdXBsaWNhdGluZyBhIE1JQiBoYW5kbGVyCisgICBhbmQgdW5yZWdpc3RlcmluZyBvbmUgb2YgdGhlIHR3byBNSUIgaGFuZGxlcnMsIHRoZSBwcml2YXRlIGRhdGEKKyAgIHBvaW50ZXIgKG15dm9pZCkgb2YgdGhlIG90aGVyIGJlY2FtZSBhIGRhbmdsaW5nIHBvaW50ZXIuIE5vdGU6CisgICBhZGRpdGlvbiBvZiBuZXRzbm1wX21pYl9oYW5kbGVyLmRhdGFfY2xvbmUgaXMgYW4gQUJJIGNoYW5nZS4KKyAgIENIQU5HRVM6IHRlc3Rpbmc6IGFkZGVkIG1vcmUgdGVzdCBjYXNlcyB0byB0aGUgaGFuZGxlcgorICAgcmVnaXN0cmF0aW9uIHRlc3QuCisKIDIwMTAtMTAtMTUgMTg6MzIgIGJ2YXNzY2hlCiAKICAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgogCiAgICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcuCiAKLTIwMTAtMTAtMTUgMTI6NTQgIGJ2YXNzY2hlCi0KLSAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZCwgICAKLSAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNXRhYmxlX2RhdGFzZXRfY2xpYi5jOgotCi0gICBDSEFOR0VTOiB0ZXN0aW5nOiBVbml0IHRlc3RzIGNhbiBub3cgaW52b2tlIGZ1bmN0aW9ucyBmcm9tCi0gICBsaWJhZ2VudC4KLSAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZGVkIHVuaXQgdGVzdCBmb3IgdGFibGVfZGF0YXNldC4KLSAgIChCYWNrcG9ydGVkIGZyb20gcjE5NDUwIGZyb20gdGhlIHRydW5rLikKLQotMjAxMC0xMC0xNSAxMjo1MyAgYnZhc3NjaGUKLQotICAgKiAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgICAKLSAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAotICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsICAgCi0gICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKLQotICAgQ0hBTkdFUzogc25tcGxpYjogQWRkZWQgZnVuY3Rpb24gbmV0c25tcF9kZWxldGVfdGFibGVfZGF0YV9zZXQoKS4KLSAgIENIQU5HRVM6IHNubXBsaWI6IEFkZGVkIGRlY2xhcmF0aW9uIGZvciB0aGUgZnVuY3Rpb24KLSAgIG5ldHNubXBfdGFibGVfZGF0YV9kZWxldGVfdGFibGUoKSBpbiBhIHB1YmxpYyBhZ2VudCBoZWFkZXIgZmlsZS4KLSAgIENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIG1lbW9yeSBsZWFrIGluCi0gICBuZXRzbm1wX3RhYmxlX2RhdGFfZGVsZXRlX3RhYmxlKCkuCi0gICAoQmFja3BvcnRlZCByMTk0NTAgYW5kIHIxOTQ1NCBmcm9tIHRydW5rLikKLQogMjAxMC0xMC0xNSAxMjozMCAgYnZhc3NjaGUKIAogICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCAgIApAQCAtMTA3NDgsNiArMzYxOTMsMzAgQEAKICAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogQnVpbGRzIG5vdyBjb3JyZWN0bHkgd2l0aCBhIDY0LWJpdAogICAgY29tcGlsZXIuCiAKKzIwMTAtMTAtMTUgMDk6NDUgIGJ2YXNzY2hlCisKKyAgICogc25tcGxpYi9zbm1wX2FwaS5jOgorCisgICBDSEFOR0VTOiBzbm1wbGliOiBzbm1wX3NodXRkb3duKCk6IGFkZGVkIGNhbGwgdG8KKyAgIG5ldHNubXBfY2VydHNfc2h1dGRvd24oKS4KKworMjAxMC0xMC0xNSAwNjo0NSAgYnZhc3NjaGUKKworICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKKworICAgRm9sbG93LXVwIGZvciByMTk0NTA6IGxldCBuZXRzbm1wX2RlbGV0ZV90YWJsZV9kYXRhX3NldCgpIGZyZWUKKyAgIGFsbCB0YWJsZV9kYXRhc2V0LXJlbGF0ZWQgbWVtb3J5LgorCisyMDEwLTEwLTE0IDIzOjE1ICBtYWdmcgorCisgICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAorICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfdHJhbnNwb3J0cywgICAKKyAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCisgICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnM6CisKKyAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNYWtlIGl0IHBvc3NpYmxlIHRvIHJlZ2VuZXJhdGUgdXNpbmcgYXV0b2NvbmYKKyAgIDIuNjguCisKIDIwMTAtMTAtMTQgMjM6MDEgIG1hZ2ZyCiAKICAgICogIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKQEAgLTEwNzU1LDEyICszNjIyNCwyNSBAQAogCiAgICBDSEFOR0VTOiBzbm1wbGliOiBCZSBjb25zdCBjb3JyZWN0IG92ZXIgY2FsbHMgdG8gc3RyKiBmdW5jdGlvbnMuCiAKLTIwMTAtMTAtMTQgMjI6NTcgIG1hZ2ZyCisyMDEwLTEwLTE0IDE1OjE5ICBidmFzc2NoZQogCi0gICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKKyAgICogIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsICAgCisgICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLCAgIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsICAgCisgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQsICAgCisgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDV0YWJsZV9kYXRhc2V0X2NsaWIuYzoKIAotICAgQ0hBTkdFUzogdGVzdGluZzogR2VuZXJhdGUgYSBub3JtYWwgI2xpbmUgZGlyZWN0aXZlIGFzIHBlciBDOTkKLSAgIGluc3RlYWQgb2YgdGhlIGNvbXBpbGVyLXNwZWNpZmljICM8bj4tZGlyZWN0aXZlLgorICAgQ0hBTkdFUzogc25tcGxpYjogQWRkZWQgZnVuY3Rpb24gbmV0c25tcF9kZWxldGVfdGFibGVfZGF0YV9zZXQoKS4KKyAgIENIQU5HRVM6IHNubXBsaWI6IEFkZGVkIGRlY2xhcmF0aW9uIGZvciB0aGUgZnVuY3Rpb24KKyAgIG5ldHNubXBfdGFibGVfZGF0YV9kZWxldGVfdGFibGUoKSBpbiBhIHB1YmxpYyBhZ2VudCBoZWFkZXIgZmlsZS4KKyAgIENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIG1lbW9yeSBsZWFrIGluCisgICBuZXRzbm1wX3RhYmxlX2RhdGFfZGVsZXRlX3RhYmxlKCkuCisgICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgdW5yZWdpc3RlcmluZyBhCisgICB0YWJsZSBoYW5kbGVyLgorICAgQ0hBTkdFUzogdGVzdGluZzogVW5pdCB0ZXN0cyBjYW4gbm93IGludm9rZSBmdW5jdGlvbnMgZnJvbQorICAgbGliYWdlbnQuCisgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGRlZCB1bml0IHRlc3QgZm9yIHRhYmxlX2RhdGFzZXQuCiAKIDIwMTAtMTAtMTQgMTQ6MDUgIGJ2YXNzY2hlCiAKQEAgLTEwODIxLDEyICszNjMwMyw2MCBAQAogICAgTWFkZSBzdXJlIHRoYXQgdGhlIHZhcmlhYmxlICRTTk1QX0JBU0VESVIgaXMgYXZhaWxhYmxlIGluIHRoZQogICAgVDAwMGNvbmZpZ3VyZSB0ZXN0LgogCisyMDEwLTEwLTE0IDA2OjE5ICBtYWdmcgorCisgICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKKworICAgUmVnZW5lcmF0ZWQKKwogMjAxMC0xMC0xNCAwNTozNiAgbmJhCiAKICAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CiAKICAgIFF1ZWxsIHdhcm5pbmdzCiAKKzIwMTAtMTAtMTQgMDM6NTAgIHJzdG9yeQorCisgICAqICBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaCwgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjEwLmgsICAgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW43LmgsICAgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW44LmgsICAgCisgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45LmgsIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CisKKyAgIHRlc3QgZm9yIG9wZW5zc2wgc2hhIDIyNC8yNTYvMzg1LzUxMiBzdXBwb3J0IGluc3RlYWQgb2YKKyAgIGhhcmRjb2RpbmcKKworMjAxMC0xMC0xNCAwMzo1MCAgcnN0b3J5CisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKKworICAgYWRkIE9VVFBVVEVOVlZBUlMgdG8gc2F2ZSBpbXBvcnRhbnQgZW52aXJvbm1lbnQgdmFyaWFibGVzOyB3aGVuCisgICBTTk1QX1ZFUkJPU0UKKyAgIGlzIHNldCwgc2F2ZSBlbnYgdmFycyBhbmQgY29tbWFuZCB0byBpbmRpdmlkdWFsIGludm9rZWQgZmlsZSBmb3IKKyAgIGVhY2ggdGVzdDsKKyAgIHNhdmUgZW52IHZhcnMgYW5kIGNvbW1hbmQgZm9yIGVhY2ggU1RBUlRQUk9HCisKKzIwMTAtMTAtMTQgMDM6NTAgIHJzdG9yeQorCisgICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoOgorCisgICBDSEFOR0VTOiB0ZXN0aW5nOiBhdXRvLWNyZWF0ZSB1c2VyIHNwZWNpZmllZCBTTk1QX1RNUERJUiBhbmQKKyAgIFNOTVBfVE1QX1BFUlNJU1RFTlRESVIgdG9vOyBkZWZhdWx0IFNOTVBfVE1QX1BFUlNJU1RFTkRJUiBiYXNlZAorICAgb24gU05NUF9UTVBESVIKKyAgIGZvciB1c2VyIHNwZWNpZmllZCBTTk1QX1RNUERJUgorCisyMDEwLTEwLTE0IDAzOjQ5ICByc3RvcnkKKworICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0LCAgIAorICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luMTAuaCwgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjguaCwgICAKKyAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaDoKKworICAgQ0hBTkdFUzogYnVpbGRpbmc6IGNoZWNrIGZvciAvZGV2L2ttZW0gaW5zdGVhZCBvZiBhc3N1bWluZyBpdAorICAgZXhpc3RzIGFuZCBoYXJkY29kaW5nIHdoZW4gaXQgaXMgbm90IHRoZXJlCisKIDIwMTAtMTAtMTQgMDM6MjggIHJzdG9yeQogCiAgICAqICBzbm1wbGliL3NubXB0c20uYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCkBAIC0xMDg3MSw3ICszNjQwMSwxNCBAQAogCiAgICBjaGVjayBmb3IgbnVsbCBiZWZvcmUgZGVyZWYKIAotMjAxMC0xMC0xMyAxNjo1NSAgaGFyZGFrZXIKKzIwMTAtMTAtMTMgMjA6MTIgIG1hZ2ZyCisKKyAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgorCisgICBDSEFOR0VTOiB0ZXN0aW5nOiBHZW5lcmF0ZSBhIG5vcm1hbCAjbGluZSBkaXJlY3RpdmUgYXMgcGVyIEM5OQorICAgaW5zdGVhZCBvZiB0aGUgY29tcGlsZXItc3BlY2lmaWMgIzxuPi1kaXJlY3RpdmUuCisKKzIwMTAtMTAtMTMgMTY6NTMgIGhhcmRha2VyCiAKICAgICogZGlzdC9hdXRvY29uZi12ZXJzaW9uLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDBjb25maWd1cmU6CiAKQEAgLTEwODk1LDggKzM2NDMyLDkgQEAKIAogMjAxMC0xMC0xMyAxMTo1MyAgYnZhc3NjaGUKIAotICAgKiAgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCAgIAotICAgICAgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjoKKyAgICogIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCAgIAorICAgICAgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCAgIAorICAgICAgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgogCiAgICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IGJhdGNoIGJ1aWxkIHdpdGggT3BlblNTTCBlbmFibGVkIGFuZAogICAgd2l0aCByZWNlbnQgT3BlblNTTCBkZXZlbG9wbWVudCBmaWxlcyB3b3JrcyBhZ2Fpbi4KQEAgLTExMDU1LDEyICszNjU5Myw2IEBACiAgICBzdXBwb3J0IHRoZSAtRSBmbGFnIHRvIGdyZXAsIHVzZSBhdXRvY29uZiB0byBmaW5kIHRoZSByaWdodCBlZ3JlcAogICAgYXQgYWxsIHRpbWVzLgogCi0yMDEwLTEwLTExIDE0OjExICBoYXJkYWtlcgotCi0gICAqIC46Ci0KLSAgIGNyZWF0ZSBwYXRjaCBicmFuY2ggY29weQotCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIENoYW5nZXM6IFY1LjYuUkMzIC0+IFY1LjYKQEAgLTI0MjgxLDcgKzQ5ODEzLDcgQEAKIAogICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmM6CiAKLSAgIENIQU5HRVM6IHNubXBkOiBmcm9tICJNYXJjdXMgUsO8Y2tlcnQiOiBmaXggcG9zc2libGUgY3Jhc2ggd2hlbgorICAgQ0hBTkdFUzogc25tcGQ6IGZyb20gIk1hcmN1cyBS54it9YCRi++9pPWAj7HniK31gJGL772k9YCMtOeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAj7HniK31gJGL772k9YCMtOaei2tlcnQiOiBmaXggcG9zc2libGUgY3Jhc2ggd2hlbgogICAgNjQtYml0IGNvdW50ZXJzIGluIGlwU3lzdGVtU3RhdHNUYWJsZSBnZXQgYmlnZ2VyIHRoYW4gMl4zMgogCiAyMDA5LTA4LTAzIDE5OjI3ICBtYWdmcgpAQCAtMzc4NzQsNyArNjM0MDYsNyBAQAogCiAgICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYzoKIAotICAgQ0hBTkdFUzogc25tcGQ6IGZyb20gIk1hcmN1cyBSw7xja2VydCI6IGZpeCBwb3NzaWJsZSBjcmFzaCB3aGVuCisgICBDSEFOR0VTOiBzbm1wZDogZnJvbSAiTWFyY3VzIFLniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy054it9YCRi++9pPWAjLXniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy05p6La2VydCI6IGZpeCBwb3NzaWJsZSBjcmFzaCB3aGVuCiAgICA2NC1iaXQgY291bnRlcnMgaW4gaXBTeXN0ZW1TdGF0c1RhYmxlIGdldCBiaWdnZXIgdGhhbiAyXjMyCiAKIDIwMDktMDgtMDMgMTk6MjcgIG1hZ2ZyCkBAIC00MDMzNCwxNCArNjU4NjYsMTQgQEAKICAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CiAKICAgIEZpeCBzcmMvZHN0IGNvbmZ1c2lvbgotICAgUGF0Y2ggcHJvdmlkZWQgYnkgS3J6eXN6dG9mIE9sxJlkemtpCisgICBQYXRjaCBwcm92aWRlZCBieSBLcnp5c3p0b2YgT2zniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy054it9YCRi++9pPWAjLblm5h6a2kKIAogMjAwOS0wMS0yOCAwOToyOSAgZHRzMTIKIAogICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKIAogICAgQ0hBTkdFUzogRml4IHR3byBidWdzIHdpdGggc211eCBwYXNzd29yZCBzdXBwb3J0LgotICAgUGF0Y2ggc3VwcGxpZWQgYnkgS3J6eXN6dG9mIE9sxJlkemtpCisgICBQYXRjaCBzdXBwbGllZCBieSBLcnp5c3p0b2YgT2zniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy054it9YCRi++9pPWAjLblm5h6a2kKIAogMjAwOS0wMS0yMyAxNDo1MyAganNhZnJhbmVrCiAKQEAgLTU0MjU0LDcgKzc5Nzg2LDcgQEAKIAogICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CiAKLSAgIEhhbmRsZSBmdWxsLWxlbmd0aCBJUHY2IGFkZHJlc3Nlcy4gIEZpeCBzdXBwbGllZCBieSBSYWRlayBWb2vDoWwKKyAgIEhhbmRsZSBmdWxsLWxlbmd0aCBJUHY2IGFkZHJlc3Nlcy4gIEZpeCBzdXBwbGllZCBieSBSYWRlayBWb2vniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy054it9YCRi++9pPWAjLXniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy044CVCiAKIDIwMDYtMDEtMzAgMDE6NTIgIGR0czEyCiAKQEAgLTU0MzAxLDcgKzc5ODMzLDcgQEAKICwgc25tcGxpYi9zbm1wX2FwaS5jLCBwZXJsL1NOTVAvU05NUC5wbToKIAogICAgSGFuZGxlIG5vbi1pbmNyZWFzaW5nIE9JRHMgZHVyaW5nIGEgKHBlcmwpIGJ1bGt3YWxrLgotICAgUGF0Y2ggIzEzNjQ2NTAgZnJvbSBPbGUgQmrDuHJuIEhlc3NlbgorICAgUGF0Y2ggIzEzNjQ2NTAgZnJvbSBPbGUgQmrniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy054it9YCRi++9pPWAjLXniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy05Ze3biBIZXNzZW4KIAogMjAwNi0wMS0yNyAwMzowNyAgZHRzMTIKIApAQCAtNzAwNDAsNyArOTU1NzIsNyBAQAogCiAgICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKIAotICAgZml4IGZsb2F0IGNhbGMgaW4gdmFyX2V4dGVuc2libGVfZGlzayBwZXIgSGFyYWxkIFN0cmHfYmVyZ2VyIDxoc0BzeXNsb2cuYXQ+CisgICBmaXggZmxvYXQgY2FsYyBpbiB2YXJfZXh0ZW5zaWJsZV9kaXNrIHBlciBIYXJhbGQgU3RyYeeIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLXjg4NlcmdlciA8aHNAc3lzbG9nLmF0PgogCiAyMDA0LTA4LTMxIDE0OjAyICBoYXJkYWtlcgogCkBAIC03MjYyNyw3ICs5ODE1OSw3IEBACiAgICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgogCiAgICBGaXggaGFuZGxpbmcgb2YgLS1lbmFibGUtbG9jYWwtc211eCBvcHRpb24KLSAgIChQYXRjaCAjOTQ5ODA4IGZyb20gRXJpayDEbmdn5XJkKQorICAgKFBhdGNoICM5NDk4MDggZnJvbSBFcmlrIOeIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLTniK31gJGL772k9YCMtm5nZ+eIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLXohJpkKQogCiAyMDA0LTA2LTE4IDA2OjQ2ICBkdHMxMgogCkBAIC0xMDM1OTMsNyArMTI5MTI1LDcgQEAKICAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N3cnVuLmMgKFY0LTItcGF0Y2hlcy41KSwgaHJfc3dydW4uYwogOgogCi0gICBGaXggTGludXggZmlsZSBkZXNjcmlwdG9yIGxlYWsgKHJlcG9ydGVkIGJ5IE9saXZlciBG5G5nZXIpCisgICBGaXggTGludXggZmlsZSBkZXNjcmlwdG9yIGxlYWsgKHJlcG9ydGVkIGJ5IE9saXZlciBG54it9YCRi++9pPWAj7HniK31gJGL772k9YCMteepq2dlcikKICAgIAogMjAwMS0wMy0xNCAwNToyMiAgamJwbgogCkBAIC0xMDgxMTgsNyArMTMzNjUwLDcgQEAKIAogICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKIAotICAgLSAobWVtb3J5LmMpOiBQYXRjaCBmcm9tIFJhZ25hciBLavhyc3RhZDoKKyAgIC0gKG1lbW9yeS5jKTogUGF0Y2ggZnJvbSBSYWduYXIgS2rniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAjL9yc3RhZDoKICAgICAgLSBmaXhlZCBsaW51eCBwcm9ibGVtOiB3cm9uZyBwYXJhbXMgZ2V0dGluZyByZXR1cm5lZC4KICAgIAogMjAwMC0wNS0yNSAwNTozOCAgbXNsaWZjYWsKQEAgLTEwOTg5OCw3ICsxMzU0MzAsNyBAQAogCiAgICAtIChjb25maWd1cmUqIHVjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jKToKICAgICAgLSBQcm92aWRlIG1pc3NpbmcgJ2dldHBhZ2VzaXplJyByb3V0aW5lIGZvciBTb2xhcmlzIDIuNAotICAgICAgIChUaGFua3MgdG8gUmFnbmFyIEtq+HJzdGFkKQorICAgICAgIChUaGFua3MgdG8gUmFnbmFyIEtq54it9YCRi++9pPWAj7HniK31gJGL772k9YCMteeIrfWAkYvvvaT1gIy/cnN0YWQpCiAgICAKIDIwMDAtMDItMTYgMjA6MTcgIG1zbGlmY2FrCiAKQEAgLTExNzIyNiw3ICsxNDI3NTgsNyBAQAogICAgICBsb2FkYXZlLmMsIG1lbW9yeV9zb2xhcmlzMi5jLCBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jLCBwcm9jLmMsCiAgICAgIHZlcnNpb25pbmZvLmMsIGFsYXJtLmMsIGV2ZW50LmMsIE1ha2VmaWxlLmluLCBwYXJzZS5jLCBzbm1wLmMsCiAgICAgIHNubXBfZGVidWcuYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKTogUGF0Y2ggZnJvbSBSYWduYXIKLSAgICAgS2r4cnN0YWQ6CisgICAgIEtq54it9YCRi++9pPWAj7HniK31gJGL772k9YCMteeIrfWAkYvvvaT1gIy/cnN0YWQ6CiAgICAgIC0gZG8gZmlsZSwgc3RkZXJyLCBhbmQgc3lzbG9nIHN1cHBvcnQuCiAgICAKIDE5OTktMDctMTUgMDg6NDUgIGhhcmRha2VyCkBAIC0xMTczNjksNyArMTQyOTAxLDcgQEAKIAogICAgKiBhZ2VudC9zbm1wZC5jOgogCi0gICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBSYWduYXIgS2r4cnN0YWQ6CisgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBSYWduYXIgS2rniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAjL9yc3RhZDoKICAgICAgLSBBZGQgb3B0aW9ucyBmb3Igc3dpdGNoaW5nIHRvIGEgZ2l2ZW4gdWlkIGFuZCBnaWQuCiAgICAKIDE5OTktMDctMDggMTU6MTYgIGhhcmRha2VyCkBAIC0xMzQxMzgsNyArMTU5NjcwLDcgQEAKIAogICAgKiBzbm1wbGliL21pYi5jOgogCi0gICBGaXggYSBDIHByZWNlZGVuY2UgYm90Y2gtdXAsIHRoYW5rcyB0byBGYWJy7WNpbyBMYXMgQ2FzYXMgPEZhYnJpY2lvQGF0YW4uY29tLmJyPgorICAgRml4IGEgQyBwcmVjZWRlbmNlIGJvdGNoLXVwLCB0aGFua3MgdG8gRmFicueIrfWAkYvvvaT1gJGL772k5q274oCyY2lvIExhcyBDYXNhcyA8RmFicmljaW9AYXRhbi5jb20uYnI+CiAgICAKIDIwMDMtMDItMjYgMTQ6MTQgIG5iYQogCkBAIC0xNTA5MjEsNyArMTc2NDUzLDcgQEAKIAogICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dydW4uYyAoVjQtMi1wYXRjaGVzLjUpLCBocl9zd3J1bi5jOgogCi0gICBGaXggTGludXggZmlsZSBkZXNjcmlwdG9yIGxlYWsgKHJlcG9ydGVkIGJ5IE9saXZlciBG5G5nZXIpCisgICBGaXggTGludXggZmlsZSBkZXNjcmlwdG9yIGxlYWsgKHJlcG9ydGVkIGJ5IE9saXZlciBG54it9YCRi++9pPWAj7HniK31gJGL772k9YCMteepq2dlcikKICAgIAogMjAwMS0wMy0xNCAwNToyMiAgamJwbgogCkBAIC0xNTUxNjYsNyArMTgwNjk4LDcgQEAKIAogICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CiAKLSAgIEZpeCBMaW51eCBmaWxlIGRlc2NyaXB0b3IgbGVhayAocmVwb3J0ZWQgYnkgT2xpdmVyIEbkbmdlcikKKyAgIEZpeCBMaW51eCBmaWxlIGRlc2NyaXB0b3IgbGVhayAocmVwb3J0ZWQgYnkgT2xpdmVyIEbniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy156mrZ2VyKQogICAgCiAyMDAxLTAzLTEzIDEzOjIwICBoYXJkYWtlcgogCkBAIC0xNTg0MTIsNyArMTgzOTQ0LDcgQEAKIAkKIDIwMDAtMDUtMjUgMTA6MDcgIGhhcmRha2VyCiAKLQktIChtZW1vcnkuYyk6IFBhdGNoIGZyb20gUmFnbmFyIEtq+HJzdGFkOgorCS0gKG1lbW9yeS5jKTogUGF0Y2ggZnJvbSBSYWduYXIgS2rniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAjL9yc3RhZDoKIAkgIC0gZml4ZWQgbGludXggcHJvYmxlbTogd3JvbmcgcGFyYW1zIGdldHRpbmcgcmV0dXJuZWQuCiAJCiAyMDAwLTA1LTI1IDA1OjM4ICBtc2xpZmNhawpAQCAtMTU5NjAxLDcgKzE4NTEzMyw3IEBACiAKIAktIChjb25maWd1cmUqIHVjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jKToKIAkgIC0gUHJvdmlkZSBtaXNzaW5nICdnZXRwYWdlc2l6ZScgcm91dGluZSBmb3IgU29sYXJpcyAyLjQKLQkgICAgKFRoYW5rcyB0byBSYWduYXIgS2r4cnN0YWQpCisJICAgIChUaGFua3MgdG8gUmFnbmFyIEtq54it9YCRi++9pPWAj7HniK31gJGL772k9YCMteeIrfWAkYvvvaT1gIy/cnN0YWQpCiAJCiAyMDAwLTAyLTE2IDIwOjE3ICBtc2xpZmNhawogCkBAIC0xNjQ5MzUsNyArMTkwNDY3LDcgQEAKICAgICAtIChzbm1wZGVsdGEuYywgaW50NjQuYywgaW50NjQuaCk6IG1pbmltYWwgYzY0IHN1cHBvcnQgZm9yIHNubXBkZWx0YS4gVW50ZXN0ZWQuCiAKIGhhcmRha2VyICA4IEp1bCA5OSAxNjowMjo1OAotICAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIFJhZ25hciBLavhyc3RhZDoKKyAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBSYWduYXIgS2rniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAjL9yc3RhZDoKICAgICAgIC0gQWRkIG9wdGlvbnMgZm9yIHN3aXRjaGluZyB0byBhIGdpdmVuIHVpZCBhbmQgZ2lkLgogCiBkYXZlcyAgOSBKdWwgOTkgMDE6NDk6NDkKQEAgLTE2NDk4Miw3ICsxOTA1MTQsNyBAQAogICAgICAgbG9hZGF2ZS5jLCBtZW1vcnlfc29sYXJpczIuYywgcGFzcy5jLCBwYXNzX3BlcnNpc3QuYywgcHJvYy5jLAogICAgICAgdmVyc2lvbmluZm8uYywgYWxhcm0uYywgZXZlbnQuYywgTWFrZWZpbGUuaW4sIHBhcnNlLmMsIHNubXAuYywKICAgICAgIHNubXBfZGVidWcuYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKTogUGF0Y2ggZnJvbSBSYWduYXIKLSAgICAgIEtq+HJzdGFkOgorICAgICAgS2rniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAjL9yc3RhZDoKICAgICAgIC0gZG8gZmlsZSwgc3RkZXJyLCBhbmQgc3lzbG9nIHN1cHBvcnQuCiAKIGhhcmRha2VyIDIwIEp1bCA5OSAxNzowNjo1MwpkaWZmIC0tZ2l0IGEvRkFRIGIvRkFRCmluZGV4IGEyYmQ2OGEuLjVkZWJhMTkgMTAwNjQ0Ci0tLSBhL0ZBUQorKysgYi9GQVEKQEAgLTEsNyArMSw3IEBACiAgICAgICBGcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9ucyAoRkFRKSBmb3IgdGhlIFVDRC9OZXQtU05NUCBwYWNrYWdlCiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAJCSAgICAgICBGQVEgQXV0aG9yOiBEYXZlIFNoaWVsZAotCQkJTmV0LVNOTVAgVmVyc2lvbjogNS42LjIKKwkJCU5ldC1TTk1QIFZlcnNpb246IDUuNy4zLnByZTUKIAkgICAgTmV0LVNOTVAvVUNELVNOTVAgUHJvamVjdCBMZWFkZXI6IFdlcyBIYXJkYWtlcgogCSAgICAgRW1haWw6IG5ldC1zbm1wLWNvZGVyc0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKIApAQCAtMTMxNCw3ICsxMzE0LDcgQEAKICAgY292ZXJlZCBpbiB0aGUgQUdFTlQgYW5kIENPRElORyBzZWN0aW9ucy4KIAogICBZb3Ugc2hvdWxkIGFsc28gcmVhZCB0aGUgc25tcHRyYXAgdHV0b3JpYWwgYXQKLQlodHRwOi8vd3d3Lm5ldC1zbm1wLm9yZy90dXRvcmlhbC01L2NvbW1hbmRzL3NubXB0cmFwLmh0bWwKKyAgICAgICAgaHR0cDovL3d3dy5uZXQtc25tcC5vcmcvd2lraS9pbmRleC5waHAvVFVUOnNubXB0cmFwCiAgIHdoaWNoIHdpbGwgaGVscCB5b3UgdW5kZXJzdGFuZCBldmVyeXRoaW5nIHlvdSBuZWVkIHRvIGtub3cgYWJvdXQgdHJhcHMuCiAKIApAQCAtMTM1MSw3ICsxMzUxLDcgQEAKICAgICAgICAgZm9yd2FyZCBkZWZhdWx0ICAgICAgICAgICAgICAgICAgMTAuMC4wLjIKIAogICBUaGVyZSdzIGEgdHV0b3JpYWwgd2l0aCBtb3JlIGRldGFpbHMgb24gdGhlIHdlYiBzaXRlIGF0Ci0JaHR0cDovL3d3dy5uZXQtc25tcC5vcmcvdHV0b3JpYWwtNS9jb21tYW5kcy9zbm1wdHJhcC5odG1sCisgICAgICAgIGh0dHA6Ly93d3cubmV0LXNubXAub3JnL3dpa2kvaW5kZXgucGhwL1RVVDpzbm1wdHJhcAogCiAKIApkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuaW4gYi9NYWtlZmlsZS5pbgppbmRleCAxNzRkNjFjLi5jZmNkZjczIDEwMDY0NAotLS0gYS9NYWtlZmlsZS5pbgorKysgYi9NYWtlZmlsZS5pbgpAQCAtNyw2ICs3LDcgQEAKIFZQQVRICQk9IEBzcmNkaXJACiAKIFNVQkRJUlMJCT0gc25tcGxpYiBATUFJTlNVQlNACitGVFNVQkRJUlMJPSBARlRNQUlOU1VCU0Agc25tcGxpYgogVEVTVERJUlMJPSB0ZXN0aW5nCiAKIENQUAkJPSBAQ1BQQCAJCQkJCSAgICAgICAgXApAQCAtMTQsNyArMTUsNyBAQAogCQktRERPTlRfSU5DX1NUUlVDVFMgLURCSU5ESVI9JChiaW5kaXIpIAkJICAgICAgICBcCiAJCSQoRVhUUkFDUFBGTEFHUykKIAotSU5TVEFMTEhFQURFUlM9dmVyc2lvbi5oCitJTlNUQUxMSEVBREVSUz12ZXJzaW9uLmggbmV0LXNubXAtZmVhdHVyZXMuaAogSU5DTFVERVNVQkRJUj1zeXN0ZW0KIElOQ0xVREVTVUJESVJIRUFERVJTPSBhaXguaCBic2QuaCBic2RpMy5oIGJzZGk0LmggYnNkaS5oIGN5Z3dpbi5oIFwKIAlkYXJ3aW4uaCBkYXJ3aW43LmggZGFyd2luOC5oIGRhcndpbjkuaCBkYXJ3aW4xMC5oIGRyYWdvbmZseS5oIGR5bml4LmggXApAQCAtMjksNiArMzAsNyBAQAogSU5DTFVERVNVQkRJUjI9bWFjaGluZQogSU5DTFVERVNVQkRJUkhFQURFUlMyPWdlbmVyaWMuaAogSU5TVEFMTEJVSUxUSEVBREVSUz1pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCitJTlNUQUxMQlVJTFRJTkNMVURFSEVBREVSUz1ARkVBVFVSRUhFQURFUlNACiBJTlNUQUxMQklOU0NSSVBUUz1uZXQtc25tcC1jb25maWcgbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIKIElOU1RBTExVQ0RIRUFERVJTPXVjZC1zbm1wLWNvbmZpZy5oIHZlcnNpb24uaCBtaWJfbW9kdWxlX2NvbmZpZy5oCiAKQEAgLTQ1LDEzICs0NywyMCBAQAogIyBwZXJsIHNwZWNpZmljCiAjCiAjIHllcywgb3JkZXIgbWF0dGVycyBoZXJlLiAgZGVmYXVsdF9zdG9yZSBtdXN0IG9jY3VyIGJlZm9yZSBhbnl0aGluZyBlbHNlCi1QRVJMTU9EVUxFUz1kZWZhdWx0X3N0b3JlIFNOTVAgQVNOIE9JRCBhZ2VudAorUEVSTE1PRFVMRVM9ZGVmYXVsdF9zdG9yZSBTTk1QIEFTTiBPSUQgYWdlbnQgVHJhcFJlY2VpdmVyCitQRVJMTU9EVUxFRlRTPXBlcmwvZGVmYXVsdF9zdG9yZS9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuZnQgXAorCXBlcmwvU05NUC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuZnQgXAorCXBlcmwvQVNOL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5mdCBcCisJcGVybC9PSUQvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmZ0IFwKKwlwZXJsL2FnZW50L25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5mdCBcCisJcGVybC9UcmFwUmVjZWl2ZXIvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmZ0CiBQRVJMQVJHUz1AUEVSTEFSR1NACiAKICMKICMgcHl0aG9uIHNwZWNpZmljCiAjCiBQWVRIT05BUkdTPUBQWVRIT05BUkdTQAorUFlUSE9OTU9EVUxFRlRTPXB5dGhvbi9uZXRzbm1wL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5mdAogCiAjCiAjIGxpYnRvb2wKQEAgLTU5LDkgKzY4LDE0IEBACiBMSUJUT09MX0RFUFMgPSBATElCVE9PTF9ERVBTQAogCiAjCisjIGZlYXR1cmUgY2hlY2tzIGZvciBvcHRpb25hbCBjb21wb25lbnRzCisjCitGVE9USEVSVEFSR1M9QFBFUkxGRUFUVVJFU0AgQFBZVEhPTkZFQVRVUkVTQAorCisjCiAjIHRhcmdldHMKICMKLWFsbDogICAgc2Vkc2NyaXB0IEVYQU1QTEUuY29uZiBzdGFuZGFyZGFsbCBuZXQtc25tcC1jb25maWcteCBuZXQtc25tcC1jcmVhdGUtdjMtdXNlciBAUEVSTFRBUkdTQCBAUFlUSE9OVEFSR1NACithbGw6ICAgIHNlZHNjcmlwdCBFWEFNUExFLmNvbmYgIEBGRUFUVVJFVEFSR1NAIHN0YW5kYXJkYWxsIG5ldC1zbm1wLWNvbmZpZy14IG5ldC1zbm1wLWNyZWF0ZS12My11c2VyIEBQRVJMVEFSR1NAIEBQWVRIT05UQVJHU0AKIAogc3RhcnQtZmxhZzoKIAlAdG91Y2ggYnVpbGQtaW4tcHJvZ3Jlc3MtZmxhZwpAQCAtNzMsMjMgKzg3LDIzIEBACiAJJChTSEVMTCkgLi9jb25maWcuc3RhdHVzIC0tcmVjaGVjawogCiAKLXNubXBsaWI6Citzbm1wbGliOiBARkVBVFVSRVRBUkdTQAogCUAoY2Qgc25tcGxpYjsgJChNQUtFKSApCiAKLWFnZW50OgorYWdlbnQ6IEBGRUFUVVJFVEFSR1NACiAJQChjZCBzbm1wbGliOyAkKE1BS0UpICkKIAlAKGNkIGFnZW50OyAkKE1BS0UpICkKIAotYXBwczoKK2FwcHM6IEBGRUFUVVJFVEFSR1NACiAJQChjZCBzbm1wbGliOyAkKE1BS0UpICkKIAlAKGNkIGFnZW50OyAkKE1BS0UpIGxpYnMpCiAJQChjZCBhcHBzOyAkKE1BS0UpICkKIAotc25tcGdldCBzbm1wYnVsa2dldCBzbm1wd2FsayBzbm1wYnVsa3dhbGsgc25tcHRyYW5zbGF0ZSBzbm1wc3RhdHVzIHNubXBkZWx0YSBzbm1wdGFibGUgc25tcHRlc3Qgc25tcHNldCBzbm1wdXNtIHNubXB2YWNtIHNubXBnZXRuZXh0IGVuY29kZV9rZXljaGFuZ2Ugc25tcGRmIHNubXB0cmFwIHNubXB0bHM6Citzbm1wZ2V0IHNubXBidWxrZ2V0IHNubXB3YWxrIHNubXBidWxrd2FsayBzbm1wdHJhbnNsYXRlIHNubXBzdGF0dXMgc25tcGRlbHRhIHNubXB0YWJsZSBzbm1wdGVzdCBzbm1wc2V0IHNubXB1c20gc25tcHZhY20gc25tcGdldG5leHQgZW5jb2RlX2tleWNoYW5nZSBzbm1wZGYgc25tcHRyYXAgc25tcHRsczogQEZFQVRVUkVUQVJHU0AKIAlAKGNkIHNubXBsaWI7ICQoTUFLRSkgKQogCUAoY2QgYXBwczsgJChNQUtFKSAkQCApCiAKLWFnZW50eHRyYXAgc25tcHRyYXBkOgorYWdlbnR4dHJhcCBzbm1wdHJhcGQ6IEBGRUFUVVJFVEFSR1NACiAJQChjZCBzbm1wbGliOyAkKE1BS0UpICkKIAlAKGNkIGFnZW50OyAkKE1BS0UpIGxpYnMpCiAJQChjZCBhcHBzOyAkKE1BS0UpICRAICkKQEAgLTE1MCw3ICsxNjQsNyBAQAogZGlzdGFsbDogJHtzcmNkaXJ9L2NvbmZpZ3VyZSAke3NyY2Rpcn0vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCAKIAogT1RIRVJDTEVBTlRBUkdFVFM9RVhBTVBMRS5jb25mIHNlZHNjcmlwdAotT1RIRVJDTEVBTlRPRE9TPXBlcmxjbGVhbiBAUFlUSE9OQ0xFQU5UQVJHU0AKK09USEVSQ0xFQU5UT0RPUz1wZXJsY2xlYW4gQFBZVEhPTkNMRUFOVEFSR1NAIGNsZWFuZmVhdHVyZXMgcGVybGNsZWFuZmVhdHVyZXMgcHl0aG9uY2xlYW5mZWF0dXJlcwogCiAjCiAjIHBlcmwgc3BlY2lmaWMgYnVpbGQgcnVsZXMKQEAgLTE5MSwxMyArMjA1LDIxIEBACiAJQGlmIHRlc3QgLWYgcGVybC9NYWtlZmlsZTsgdGhlbiBcCiAJICAgKCBjZCBwZXJsIDsgJChNQUtFKSBjbGVhbiApIDsgXAogCWZpCisKIHBlcmxyZWFsY2xlYW46CiAJQGlmIHRlc3QgLWYgcGVybC9NYWtlZmlsZTsgdGhlbiBcCiAJICAgKCBjZCBwZXJsIDsgJChNQUtFKSByZWFsY2xlYW4gKSA7IFwKIAlmaQogCisuaC5mdDoKKwkkKEZFQVRVUkVDSEVDSykgLS1mZWF0dXJlLWdsb2JhbCAkKHRvcF9idWlsZGRpcikvaW5jbHVkZS9uZXQtc25tcC9mZWF0dXJlLWRldGFpbHMuaCBgZGlybmFtZSAkPGAgJDwgJEAgJChDQykgLUkgJCh0b3BfYnVpbGRkaXIpL2luY2x1ZGUgLUkgJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIC1FICQoQ1BQRkxBR1MpICQoQ0ZMQUdTKSAtYwogCi0jCitwZXJsZmVhdHVyZXM6ICQoUEVSTE1PRFVMRUZUUykKKworcGVybGNsZWFuZmVhdHVyZXM6CisJJChSTSkgJChQRVJMTU9EVUxFRlRTKQorCisKICMgcHl0aG9uIHNwZWNpZmljIGJ1aWxkIHJ1bGVzCiAjCiBQWU1BS0U9JChQWVRIT04pIHNldHVwLnB5ICQoUFlUSE9OQVJHUykKQEAgLTIyNSw2ICsyNDcsMTAgQEAKIHB5dGhvbmNsZWFuOgogCUAoZGlyPWBwd2RgOyBjZCBweXRob247ICQoUFlNQUtFKSBjbGVhbiAtLWJhc2VkaXI9JCRkaXIpCiAKK3B5dGhvbmZlYXR1cmVzOiAkKFBZVEhPTk1PRFVMRUZUUykKKworcHl0aG9uY2xlYW5mZWF0dXJlczoKKwkkKFJNKSAkKFBZVEhPTk1PRFVMRUZUUykKIAogIwogIyBtYWtlIGRpc3RjbGVhbiBjb21wbGV0ZWx5IHJlbW92ZXMgYWxsIHRyYWNlcyBvZiBidWlsZGluZyBpbmNsdWRpbmcKQEAgLTI0OSw3ICsyNzUsOCBAQAogCXJtIC1mIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaAkJXAogCQlpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X21vZHVsZV9jb25maWcuaAkJXAogCQlpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmggXAotCQlzbm1wbGliL3NubXBzbV9pbml0LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCQlpbmNsdWRlL25ldC1zbm1wL2ZlYXR1cmUtZGV0YWlscy5oICAgICAgICAgICAgICAgICAgXAorCQlzbm1wbGliL3NubXBzbV9pbml0Lmggc25tcGxpYi9zbm1wc21fc2h1dGRvd24uaCAgICAgXAogICAgICAgICAgICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oICAgICAgICAgICBcCiAJCWFnZW50L21pYmdyb3VwL2FnZW50X21vZHVsZV9pbmNsdWRlcy5oIAlcCiAJCWFnZW50L21pYmdyb3VwL2FnZW50X21vZHVsZV9pbml0cy5oIAlcCkBAIC0yNTgsNyArMjg1LDggQEAKIAkJYWdlbnQvbWliZ3JvdXAvbWliX21vZHVsZV9pbmNsdWRlcy5oIAlcCiAJCWFnZW50L21pYmdyb3VwL21pYl9tb2R1bGVfaW5pdHMuaCAJXAogCQlhZ2VudC9taWJncm91cC9taWJfbW9kdWxlX3NodXRkb3duLmggCVwKLQkJYWdlbnQvbWliZ3JvdXAvbWliX21vZHVsZV9kb3RfY29uZi5oCisJCWFnZW50L21pYmdyb3VwL21pYl9tb2R1bGVfZG90X2NvbmYuaCAgICBcCisJCWxvY2FsL3NubXBjb25mCiAJcm0gLXJmIG1rCiAJcm0gLWYgKi5jb3JlCiAKQEAgLTQzMCwzICs0NTgsNCBAQAogCXNubXBnZXQgc25tcGJ1bGtnZXQgc25tcHdhbGsgc25tcGJ1bGt3YWxrIHNubXB0cmFuc2xhdGUgc25tcHN0YXR1cyBcCiAJc25tcGRlbHRhIHNubXB0YWJsZSBzbm1wdGVzdCBzbm1wc2V0IHNubXB1c20gc25tcHZhY20gc25tcGdldG5leHQgXAogCWVuY29kZV9rZXljaGFuZ2Ugc25tcGRmIHNubXB0cmFwIHNubXB0cmFwZAorLlBIT05ZOiBwZXJsZmVhdHVyZXMgcHl0aG9uZmVhdHVyZXMKZGlmZiAtLWdpdCBhL01ha2VmaWxlLnJ1bGVzIGIvTWFrZWZpbGUucnVsZXMKaW5kZXggNjU2ODdlZi4uOWU5ZTkwMCAxMDA2NDQKLS0tIGEvTWFrZWZpbGUucnVsZXMKKysrIGIvTWFrZWZpbGUucnVsZXMKQEAgLTE0LDYgKzE0LDYyIEBACiAKIG9ianM6ICR7T0JKU30gJHtMT0JKU30KIAorIyBmZWF0dXJlcyByZXF1aXJlIHRoYXQgc3ViZGlycyBiZSBtYWRlICpmaXJzdCogdG8gZ2V0IGRlcGVuZGVuY3kKKyMgY29sbGVjdGlvbiBwcm9jZXNzZWQgaW4gdGhlIHJpZ2h0IG9yZGVyCisuUEhPTlk6IGZlYXR1cmVzIGZ0b2JqcyBmdHN1YmRpcnMKK2ZlYXR1cmVzOiAkKEZUT1RIRVJUQVJHUykgZnRzdWJkaXJzIGZ0b2JqcyAkKEZFQVRVUkVGSUxFKQorZnRvYmpzOiAkKEZUT0JKUykKKyQoRkVBVFVSRUZJTEUpOiAkKEZUT0JKUykgJCh0b3BfYnVpbGRkaXIpL2luY2x1ZGUvbmV0LXNubXAvZmVhdHVyZS1kZXRhaWxzLmgKKwljYXQgJChGVE9CSlMpID4gJChGRUFUVVJFRklMRSkuaW4KKwkkKEZFQVRVUkVQUk9DRVNTKSAkKEZFQVRVUkVGSUxFKSAkKHRvcF9idWlsZGRpcikvaW5jbHVkZS9uZXQtc25tcC9mZWF0dXJlLWRldGFpbHMuaCBARkVBVFVSRV9SRU1PVkVfRkxBR1NAIEBGRUFUVVJFX0FERF9GTEFHU0AKK2Z0c3ViZGlyczoKKwlAaWYgdGVzdCAiJChGVFNVQkRJUlMpIiAhPSAiIjsgdGhlbiBcCisJICAgIFNVQkRJUlM9IiQoRlRTVUJESVJTKSIgOyAgICAgICAgXAorICAgICAgICBlbHNlIAkJCSAJICAgIFwKKyAgICAgICAgICAgIFNVQkRJUlM9IiQoU1VCRElSUykiIDsgICAgICAgICAgXAorICAgICAgICBmaSA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJaWYgdGVzdCAiJCRTVUJESVJTIiAhPSAiIjsgdGhlbiBcCisJCWl0PSIkJFNVQkRJUlMiIDsgXAorCQlmb3IgaSBpbiAkJGl0IDsgZG8gXAorCQkJZWNobyAibWFraW5nIGZlYXR1cmVzIGluIGBwd2RgLyQkaSI7IFwKKwkJCSggY2QgJCRpIDsgJChNQUtFKSBmZWF0dXJlcyApIDsgXAorCQkJaWYgdGVzdCAkJD8gIT0gMCA7IHRoZW4gXAorCQkJCWV4aXQgMSA7IFwKKwkJCWZpICBcCisJCWRvbmUgXAorCWZpCisKKy5QSE9OWTogY2xlYW5mZWF0dXJlcyBjbGVhbmZlYXR1cmVzc3ViZGlycworY2xlYW5mZWF0dXJlczogY2xlYW5mZWF0dXJlc3N1YmRpcnMKKwkgICAgICAgcm0gLWYgJChGVE9CSlMpCisJICAgICAgIHJtIC1mICQoRkVBVFVSRUZJTEUpCisJICAgICAgIHJtIC1mICQodG9wX2J1aWxkZGlyKS9pbmNsdWRlL25ldC1zbm1wL2ZlYXR1cmUtZGV0YWlscy5oCisKK2NsZWFuZmVhdHVyZXNzdWJkaXJzOgorCUBpZiB0ZXN0ICIkKEZUU1VCRElSUykiICE9ICIiOyB0aGVuIFwKKwkgICAgU1VCRElSUz0iJChGVFNVQkRJUlMpIiA7ICAgICAgICBcCisgICAgICAgIGVsc2UgCQkJIAkgICAgXAorICAgICAgICAgICAgU1VCRElSUz0iJChTVUJESVJTKSIgOyAgICAgICAgICBcCisgICAgICAgIGZpIDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwlpZiB0ZXN0ICIkJFNVQkRJUlMiICE9ICIiOyB0aGVuIFwKKwkJaXQ9IiQkU1VCRElSUyIgOyBcCisJCWZvciBpIGluICQkaXQgOyBkbyBcCisJCQllY2hvICJtYWtpbmcgY2xlYW5mZWF0dXJlcyBpbiBgcHdkYC8kJGkiOyBcCisJCQkoIGNkICQkaSA7ICQoTUFLRSkgY2xlYW5mZWF0dXJlcyApIDsgXAorCQkJaWYgdGVzdCAkJD8gIT0gMCA7IHRoZW4gXAorCQkJCWV4aXQgMSA7IFwKKwkJCWZpICBcCisJCWRvbmUgXAorCWZpCisKKyMgZmVhdHVyZS1jaGVjayBkZWZpbml0aW9ucworLlNVRkZJWEVTOiAuZnQKKy5jLmZ0OgorCUB0ZXN0IC1mICQodG9wX2J1aWxkZGlyKS9pbmNsdWRlL25ldC1zbm1wL2ZlYXR1cmUtZGV0YWlscy5oIHx8IFwKKwkgICAgZWNobyAiLyogR2VuZXJhdGVkIGJ5IG1ha2UuIERvIG5vdCBtb2RpZnkgZGlyZWN0bHkgKi8iIFwKKwkJPiAkKHRvcF9idWlsZGRpcikvaW5jbHVkZS9uZXQtc25tcC9mZWF0dXJlLWRldGFpbHMuaAorCSQoRkVBVFVSRUNIRUNLKSAtLWZlYXR1cmUtZ2xvYmFsICQodG9wX2J1aWxkZGlyKS9pbmNsdWRlL25ldC1zbm1wL2ZlYXR1cmUtZGV0YWlscy5oICQobXlzdWJkaXIpICQ8ICRAICQoQ0MpIC1FICQoQ1BQRkxBR1MpICQoQ0ZMQUdTKSAtYworCiBzdWJkaXJzOgogCUBpZiB0ZXN0ICIkKFNVQkRJUlMpIiAhPSAiIjsgdGhlbiBcCiAJCWl0PSIkKFNVQkRJUlMpIiA7IFwKQEAgLTQyLDYgKzk4LDcgQEAKICMgaGVhZGVycwogIwogIyBzZXQgSU5TVEFMTEhFQURFUlMgdG8gYSBsaXN0IG9mIHRoaW5ncyB0byBpbnN0YWxsIGluIGVhY2ggbWFrZWZpbGUuCisjIHNldCBJTlNUQUxMQlVJTFRJTkNMVURFSEVBREVSUyBhIGxpc3QgYnVpbHQgYW5kIHBsYWNlZCBpbnRvIGluY2x1ZGUvbmV0LXNubXAvCiAjIHNldCBJTlNUQUxMQlVJTFRIRUFERVJTIHRvIGEgbGlzdCBvZiB0aGluZ3MgdG8gaW5zdGFsbCBmcm9tIGJ1aWxkZGlyCiAjIHNldCBJTlNUQUxMU1VCRElSSEVBREVSUyBhbmQgSU5TVEFMTFNVQkRJUiB0byBzdWJkaXJlY3RvcnkgaGVhZGVycwogIyBzZXQgSU5TVEFMTFNVQkRJUkhFQURFUlMyIGFuZCBJTlNUQUxMU1VCRElSMiB0byBtb3JlIHN1YmRpcmVjdG9yeSBoZWFkZXJzCkBAIC01MCw2ICsxMDcsMTYgQEAKIGluc3RhbGxoZWFkZXJzOiBpbnN0YWxsbG9jYWxoZWFkZXJzIEBpbnN0YWxsdWNkaGVhZGVyc0AgaW5zdGFsbHN1YmRpcmhlYWRlcnMKIAogaW5zdGFsbGxvY2FsaGVhZGVyczoKKwlAaWYgdGVzdCAiJChJTlNUQUxMQlVJTFRJTkNMVURFSEVBREVSUykiICE9ICIiIDsgdGhlbiBcCisJCWVjaG8gY3JlYXRpbmcgZGlyZWN0b3J5ICQoSU5TVEFMTF9QUkVGSVgpJChpbmNsdWRlZGlyKSA7IFwKKwkJaXQ9IiQoSU5TVEFMTEJVSUxUSU5DTFVERUhFQURFUlMpIiA7IFwKKwkJJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9ta2luc3RhbGxkaXJzICQoSU5TVEFMTF9QUkVGSVgpJChpbmNsdWRlZGlyKS9saWJyYXJ5IDsgXAorCQkkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL21raW5zdGFsbGRpcnMgJChJTlNUQUxMX1BSRUZJWCkkKGluY2x1ZGVkaXIpL2FnZW50IDsgXAorCQlmb3IgaSBpbiAkJGl0IDsgZG8gXAorCQkJJChJTlNUQUxMX0RBVEEpIGluY2x1ZGUvbmV0LXNubXAvJCRpICQoSU5TVEFMTF9QUkVGSVgpJChpbmNsdWRlZGlyKS8kJGkgOyBcCisJCQllY2hvICJpbnN0YWxsaW5nICQkaSBpbiAkKElOU1RBTExfUFJFRklYKSQoaW5jbHVkZWRpcikvJCRpIiA7IFwKKwkJZG9uZSBcCisJZmkKIAlAaWYgdGVzdCAiJChJTlNUQUxMSEVBREVSUykiICE9ICIiIDsgdGhlbiBcCiAJCWVjaG8gY3JlYXRpbmcgZGlyZWN0b3J5ICQoSU5TVEFMTF9QUkVGSVgpJChpbmNsdWRlZGlyKSA7IFwKIAkJaXQ9IiQoSU5TVEFMTEhFQURFUlMpIiA7IFwKQEAgLTMyNyw3ICszOTQsNyBAQAogIyBjbGVhbmluZyB0YXJnZXRzCiAjCiBjbGVhbjogY2xlYW5zdWJkaXJzICQoT1RIRVJDTEVBTlRPRE9TKQotCSQoTElCVE9PTENMRUFOKSAke09CSlN9ICR7TE9CSlN9IGNvcmUgJChTVEFOREFSRENMRUFOVEFSR0VUUykgJChPVEhFUkNMRUFOVEFSR0VUUykKKwkkKExJQlRPT0xDTEVBTikgJHtPQkpTfSAke0xPQkpTfSAgJHtGVE9CSlN9IGNvcmUgJChTVEFOREFSRENMRUFOVEFSR0VUUykgJChPVEhFUkNMRUFOVEFSR0VUUykKIAogY2xlYW5zdWJkaXJzOgogCUBpZiB0ZXN0ICIkKFNVQkRJUlMpIiAhPSAiIjsgdGhlbiBcCkBAIC00MDQsNSArNDcxLDUgQEAKIC5QSE9OWTogY2xlYW4gY2xlYW5zdWJkaXJzIGxpbnQgXAogCWluc3RhbGwgaW5zdGFsbHByb2dzIGluc3RhbGxoZWFkZXJzIGluc3RhbGxsaWJzIFwKIAlpbnN0YWxsYmluIGluc3RhbGxzYmluIGluc3RhbGxzdWJkaXJzIFwKLQlhbGwgc3ViZGlycyBzdGFuZGFyZGFsbCBvYmpzIFwKKwlhbGwgc3ViZGlycyBzdGFuZGFyZGFsbCBvYmpzIGZlYXR1cmVzIFwKIAlkZXBlbmQgbm9zeXNkZXBlbmQgZGlzdGRlcGVuZCBkZXBlbmRkaXJzIG5vc3lzZGVwZW5kZGlycyBkaXN0ZGVwZW5kZGlycwpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUudG9wIGIvTWFrZWZpbGUudG9wCmluZGV4IDMzNGZiYjguLjUwM2Y2MWUgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlLnRvcAorKysgYi9NYWtlZmlsZS50b3AKQEAgLTM2LDYgKzM2LDggQEAKIElOU1RBTEwJCT0gJChMSUJUT09MKSAtLW1vZGU9aW5zdGFsbCBASU5TVEFMTEAKIFVOSU5TVEFMTAk9ICQoTElCVE9PTCkgLS1tb2RlPXVuaW5zdGFsbCBybSAtZgogTElCVE9PTENMRUFOCT0gJChMSUJUT09MKSAtLW1vZGU9Y2xlYW4gcm0gLWYKK0ZFQVRVUkVDSEVDSwk9ICQodG9wX3NyY2RpcikvbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLWNoZWNrCitGRUFUVVJFUFJPQ0VTUwk9ICQodG9wX3NyY2RpcikvbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLXJlbW92ZQogSU5TVEFMTF9EQVRBICAgID0gQElOU1RBTExfREFUQUAKIFNFRAkJPSBAU0VEQAogTE5fUwkJPSBATE5fU0AKQEAgLTQ0LDYgKzQ2LDcgQEAKIFBFUkwgICAgICAgICAgICA9IEBQRVJMUFJPR0AKIFBZVEhPTiAgICAgICAgICA9IEBQWVRIT05QUk9HQAogRklORCAgICAgICAgICAgID0gQEZJTkRACitFR1JFUCAgICAgICAgICAgPSBARUdSRVBACiAKICMKICMgQ29tcGlsZXIgYXJndW1lbnRzCkBAIC03NywxNCArODAsMTQgQEAKICMgNS4zIHdhcyBhdCAxMCwgNS40IGlzIGF0IDE1LCAuLi4gIFRoaXMgbGVhdmVzIHNvbWUgcm9vbSBmb3IgbmVlZGVkCiAjIGNoYW5nZXMgZm9yIHBhc3QgcmVsZWFzZXMgaWYgYWJzb2x1dGVseSBuZWNlc3NhcnkuCiAjCi1MSUJDVVJSRU5UICA9IDI1CitMSUJDVVJSRU5UICA9IDMwCiBMSUJBR0UgICAgICA9IDAKLUxJQlJFVklTSU9OID0gMgorTElCUkVWSVNJT04gPSAzCiAKIExJQl9MRF9DTUQgICAgICA9ICQoTElCVE9PTCkgLS1tb2RlPWxpbmsgJChMSU5LQ0MpICQoQ0ZMQUdTKSAtcnBhdGggJChsaWJkaXIpIC12ZXJzaW9uLWluZm8gJChMSUJDVVJSRU5UKTokKExJQlJFVklTSU9OKTokKExJQkFHRSkgLW8KIExJQl9FWFRFTlNJT04gICA9IGxhCiBMSUJfVkVSU0lPTiAgICAgPQotTElCX0xEQ09ORklHX0NNRCA9ICQoTElCVE9PTCkgLS1tb2RlPWZpbmlzaCAkKGxpYmRpcikKK0xJQl9MRENPTkZJR19DTUQgPSAkKExJQlRPT0wpIC0tbW9kZT1maW5pc2ggJChJTlNUQUxMX1BSRUZJWCkkKGxpYmRpcikKIExJTksJCT0gJChMSUJUT09MKSAtLW1vZGU9bGluayAkKExJTktDQykKICMgUkFOTElCIAk9IEBSQU5MSUJACiBSQU5MSUIJCT0gOgpkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKaW5kZXggYmFhY2UyMS4uOTM5NmFlZSAxMDA2NDQKLS0tIGEvTkVXUworKysgYi9ORVdTCkBAIC0zLDMwICszLDEzMiBAQAogdGhhdCBoYXZlIGJlZW4gZml4ZWQvYXBwbGllZCwgYW5kIHRoZSBDaGFuZ2VMb2cgZmlsZSBmb3IgYSBjb21wcmVoZW5zaXZlCiBsaXN0aW5nIG9mIGFsbCBjaGFuZ2VzIG1hZGUgdG8gdGhlIGNvZGUuCiAKLSo1LjYuMioKKyo1LjcuMyoKKyAgICBNYW55IG1hbnkgYnVnIGZpeGVzIGFuZCBtaW5vciBpbXByb3ZlbWVudHMKKworICAgIHNubXBkLCBzbm1wdHJhcGQgYW5kIGFwcHM6CisgICAgICAtIFBhdGNoIDI1MjU6IGZyb20gUnlhbiBTdGVpbm1ldHo6IEZpeCBhcmd1bWVudCBsZW5ndGggcGFyc2luZyBvZiB0aGUKKwlob3N0IHJlc291cmNlcyBtaWIKKyAgICAgIC0gTWFrZSBFTlZfU0VQQVJBVE9SX0NIQVIgY29uZmlndXJhYmxlCisgICAgICAtIFNFQ1VSSVRZOiBhIGRlbmlhbCBvZiBzZXJ2aWNlIGF0dGFjayB2ZWN0b3Igd2FzIGRpc2NvdmVyZWQgb24KKyAgICAgICAgdGhlIGxpbnV4IGltcGxlbWVudGF0aW9uIG9mIHRoZSBJQ01QLU1JQi4gIFRoaXMgcmVsZWFzZSBmaXhlcworICAgICAgICB0aGlzIGJ1ZyBhbmQgYWxsIHVzZXJzIGFyZSBlbmNvdXJhZ2VkIHRvIHVwZGF0ZSB0aGVpciBTTk1QCisgICAgICAgIGFnZW50IGlmIHRoZXkgbWFrZSB1c2Ugb2YgdGhlIElDTVAtTUlCIHRhYmxlIG9iamVjdHMuCisKKyAgICBwZXJsOgorICAgICAgLSBCVUc6IDI0MDI6IEFkZCBzdXBwb3J0IGZvciBTTk1QdjMgdHJhcHMKKworICAgIFdpbmRvd3M6CisgICAgICAtIFBvcnQgYmF0Y2ggYnVpbGQgaW5mcmFzdHJ1Y3R1cmUgdG8gVmlzdWFsIFN0dWRpbyAyMDEwIGFuZCBsYXRlcgorCUZyb20gVmlzdWFsIFN0dWRpbyAyMDEwIG9uIGl0IGlzIG5vIGxvbmdlciBwb3NzaWJsZSB0byBzcGVjaWZ5CisJaW5jbHVkZSBvciBsaWJyYXJ5IGRpcmVjdG9yaWVzIGdsb2JhbGx5IC0gdGhlc2UgaGF2ZSB0byBiZQorCXNwZWNpZmllZCBwZXIgcHJvamVjdC4gSGVuY2UgdHdvIGFkZGl0aW9uYWwgbWVudSBlbnRyaWVzIGluCisJYnVpbGQuYmF0IHRoYXQgYWxsb3cgdG8gc3BlY2lmeSB0aGVzZSBkaXJlY3Rvcmllcy4KKworKjUuNy4yKgorICAgIHNubXA6CisgICAgICAtIEJVRzogMzUyNjU0OTogQ1ZFLTIwMTItMjE0MSBBcnJheSBpbmRleCBlcnJvciBsZWFkaW5nIHRvIGNyYXNoCiAKICAgICBzbm1wZDoKLSAgICAgIC0gW1BBVENIIDMxOTg3ODFdOiBGaXggY29tcGlsYXRpb24gb2YgZGlzbWFuL3twaW5nLHRyYWNlcm91dGV9IG1vZHVsZXMKLSAgICAgIC0gW0JVRyAzMTY2NTY4XTogRml4IG1pc3NpbmcgaHJTeXN0ZW1Qcm9jZXNzZXMgdmFsdWVzCi0gICAgICAtIFtCVUcgMzUyNjU0OV06IENWRS0yMDEyLTIxNDEgQXJyYXkgaW5kZXggZXJyb3IgbGVhZGluZyB0byBjcmFzaAotICAgICAgLSBbQlVHIDM1MzIwOTBdOiBGaXggaGlnaCBpZkluZGV4IHZhbHVlcyBjcmFzaGluZyBockRldmljZURlc2NyCi0gICAgICAgICAgICAgIE5vdGUgdGhhdCB0aGlzIHdpbGwgYWZmZWN0IHRoZSBpbmRleGluZyBvZiAqYWxsKiBlbnRyaWVzIGluCi0gICAgICAgICAgICAgIHRoZSBockRldmljZVRhYmxlLiAgQXNzdW1wdGlvbnMgYXMgdG8gd2hhdCBpbmRleCBhIGdpdmVuIGRldmljZQotICAgICAgICAgICAgICB3aWxsIHVzZSwgYXJlIG5vIGxvbmdlciB2YWxpZC4KKyAgICAgIC0gQlVHOiAzNTMyMDkwOiBGaXggaGlnaCBpZkluZGV4IHZhbHVlcyBjcmFzaGluZyBockRldmljZURlc2NyCiAKICAgICBidWlsZGluZzoKLSAgICAgIC0gW1BBVENIIDIwOTExNTZdOiBGaXggcGFyYWxsZWwgYnVpbGRzICh1c2luZyAnbWFrZSAtaiA8Tj4nKQorICAgICAgLSBQQVRDSDogMjA5MTE1NjogY29ycmVjdGx5IGRlY2xhcmUgZGVwZW5kZW5jaWVzIGluIE1ha2VmaWxlLiAnbWFrZQorICAgICAgICAtaiA8Tj4nIHNob3VsZCB3b3JrIG5vdy4gQmFja3BvcnQgdGhpcyB0byBWNS00IGFzIGl0IGlzIG5lZWRlZCBmb3IKKyAgICAgICAgY29ycmVjdCBvcGVyYXRpb24gaW4gdGhlIHNpbmdsZSB0aHJlYWRlZCBjYXNlIG9mIG1ha2UgbWlibGliIGFzCisgICAgICAgIHdlbGwuCiAKLSo1LjYuMSoKKyAgICBNYW55IG90aGVyIG1pc2NlbGxhbmVvdXMgbWlub3IgYnVnIGZpeGVzCiAKLSAgICBHZW5lcmFsOgotICAgICAgLSBUaGUgRFRMUyBhbmQgVExTIHRyYW5zcG9ydHMgYW5kIHRoZSBUU00gc2VjdXJpdHkgbW9kZWwgYXJlIG5vCi0gICAgICAgIGxvbmdlciAiYmV0YSIgKHRoZXkndmUgdW5kZXJnb25lIHJpZ29yb3VzIGludGVyb3BlcmFiaWxpdHkgdGVzdGluZykuCi0gICAgICAtIE1hbnkgQnVnIEZpeGVzIChzZWUgdGhlIENIQU5HRVMgYW5kIENoYW5nZUxvZyBmaWxlcyBmb3IgZnVsbCBkZXRhaWxzKQorKjUuNy4xKgogCi0gICAgc25tcGQ6Ci0gICAgICAtIFtQQVRDSCAzMTQxNDYyXTogRml4IG11bHRpLW9wYmplY3QgQWdlbnRYIHN1YmFnZW50IHJlcXVlc3RzCi0gICAgICAtIEZpeCBWQUNNIHBlcnNpc3RhbnQgc3RvcmFnZS4KKyAgbGlibmV0c25tcDoKKyAgICAgIC0gRml4ZWQgdGhlIG1pYi1wYXJzaW5nLWJ1ZyBpbnRyb2R1Y2VkIHNob3J0bHkgYmVmb3JlIDUuNworCisgIGFnZW50OgorICAgICAgLSBmaXhlZCByb3VuZGluZyBlcnJvcnMgZm9yIGRpc2sgcGVyY2VudGFnZSBjYWxjdWxhdGlvbnMKKworICBvcGVuYnNkOgorICAgICAgLSBiZXR0ZXIgc3VwcG9ydCBmb3IgcmVjZW50IG9wZW5ic2QgcmVsZWFzZXMKKworICBmZWF0dXJlczoKKyAgICAgIC0gYnVnIGZpeGVzIHdpdGggbWluaW1hbGlzdCBzdXBwb3J0IGFmdGVyIGFkZGl0aW9uYWwgdXNlciBmZWVkYmFjaworCisgIE1hbnkgb3RoZXIgbWlzY2VsbGFuZW91cyBtaW5vciBidWcgZml4ZXMKKworKjUuNyoKKworICBzbm1wZDoKKyAgICAgIC0gRGVsaXZlcnkgb2YgZGF0YSB2aWEgcmVndWxhcmlseSBzY2hlZHVsZWQgbm90aWZpY2F0aW9ucy4KKyAgICAgICAgKHNlZSAiRGF0YSBEZWxpdmVyeSB2aWEgTm90ZmljYXRpb25zIiBpbiBzbm1wZC5jb25mKQorICAgICAgLSBNYW55IHRpbWUtYmFzZWQgY29uZmlnIG9wdGlvbnMgY2FuIHRha2UgKG0paW5zLCAoaClvdXJzLCAuLi4gYXJndW1lbnRzCisgICAgICAgIChzZWUgdGhlIHNubXBkLmNvbmYgbWFudWFsIHBhZ2UpCisgICAgICAtIFRoZSBQSU5HIGFuZCBUUkFDRVJPVVRFIE1JQnMgbm93IGNvbXBpbGUgYW5kIHdvcmstaXNoIG9uIGxpbnV4CisgICAgICAgIGh0dHA6Ly93d3cubmV0LXNubXAub3JnL3dpa2kvaW5kZXgucGhwL0RJU01BTgorICAgICAgLSBNaWIgaGFuZGxlcnMgY2FuIG5vdyBpbXBsZW1lbnQgYSBkYXRhX2Nsb25lIGZ1bmN0aW9uIGZvcgorICAgICAgICBjbG9uaW5nIHRoZSBteXZvaWQgc3RydWN0dXJlIHZhcmlhYmxlIHRvIGF2b2lkIGRhbmdsaW5nIHBvaW50ZXJzCisgICAgICAtIEZpeGVkIHBlcnNpc3RlbnQgc3RvcmFnZSBvZiBWQUNNIE1JQiBjb25maWd1cmF0aW9uCisgICAgICAtIE11bHRpLWhvbWVkIGFnZW50cyBzZW5kIFVEUCByZXNwb25zZXMgZnJvbSB0aGUgcHJvcGVyIElQIGFkZHJlc3MKKyAgICAgIC0gVGhlIGhyU3RvcmFnZVRhYmxlIGltcGxlbWVudGF0aW9uIG5vdyBzdXBwb3J0cyBsYXJnZSBmaWxlc3lzdGVtcyBiZXR0ZXIKKyAgICAgIC0gb3B0aW1pemF0aW9ucyBmb3IgbGFyZ2Ugcm91dGUgdGFibGVzCisgICAgICAtIEFkZGVkIGEgZGVsaXZlcnlCeU5vdGlmeSBjb25maWcgdG9rZW4gZm9yIHJlZ3VsYXIgZGF0YSBkZWxpdmVyeQorICAgICAgICAoc2VlIHRoZSBzbm1wZC5jb25mIG1hbnVhbCBwYWdlIGFuZCB0aGUgTkVULVNOTVAtUEVSSU9ESUMtTk9USUZZLU1JQikKKyAgICAgIC0gW1BBVENIIDMxNDE0NjJdOiBmaXggYWdlbnR4IHN1YmFnZW50IGlzc3VlcyB3aXRoIG11bHRpcGxlLW9iamVjdCByZXF1ZXN0cworICAgICAgLSBbUEFUQ0ggMzA1NzA5M106IGxpbnV4IHVzZXMgbGlicGNpIGZvciBjcmVhdGluZyB1c2VmdWwgaWZEZXNjciBzdHJpbmdzCisgICAgICAtIFtQQVRDSCAzMTMxMzk3XTogaHVnZSBzcGVlZHVwcyBvZiB0aGUgVENQL1VEUCBUYWJsZXMKKworICBsaWJuZXRzbm1wOgorICAgICAgLSBSZW1vdmVkIHRoZSBvbGRlciBDTVUgY29tcGF0aWJpbGl0eSBzdXBwb3J0CisgICAgICAtIFRoZSBTU0ggdHJhbnNwb3J0IGlzIG5vdyBjb25maWd1cmFibGUKKworICBUTFMvRFRMUyBzdXBwb3J0OgorICAgICAgLSBUaGUgU05NUCBvdmVyIERUTFMgdHJhbnNwb3J0IG5vdyBwcm9wZXJseSBzdXBwb3J0cyBJUHY2CisgICAgICAtIEludHJvZHVjZWQgbmV3IGNvbmZpZ3VyYXRpb24gdG9rZW5zOiBsb2NhbENlcnQvcGVlckNlcnQKKyAgICAgICAgKGRlcHJlY2F0aW5nIHNlcnZlckNlcnQsIGNsaWVudENlcnQsIGRlZlg1MDlTZXJ2ZXJQdWIsIGRlZlg1MDlDbGllbnRQdWIpCisgICAgICAtIFZhcmlvdXMgZml4ZXMgZm9yIHRoZSBUTFMvRFRMUyB0cmFuc3BvcnRzCisKKyAgYXBwczoKKyAgICAgIC0gQWRkZWQgYSBwZXItdmFyaWFibGUgdGltZWQgb3V0cHV0IHN1cHBvcnQgdG8gc25tcHdhbGsgdXNpbmcgLUNUCisgICAgICAtIHNubXBpbmZvcm0gbm93IGNvcnJlY3RseSB1c2VzIHRoZSBsb2NhbCBlbmdpbmVJRCBmb3IgaW5mb3JtcworICAgICAgLSBBIG51bWJlciBvZiBtaWIyYyBidWcgZml4ZXMKKyAgICAgIC0gTmV3IHNubXAuY29uZiB0b2tlbnMgZm9yIHRpbWVvdXRzIGFuZCByZXRyaWVzCisKKyAgYnVpbGRpbmc6CisgICAgICAtIE5ldyBmbGFncyB0byByZWR1Y2UgdGhlIGFtb3VudCBvZiBjb21waWxlZCBjb2RlIHRvIGJhcmUgbWluaW11bXMuCisgICAgICAgIFRoaXMgaXMgcHJvdmlkZWQgYnkgYSBuZXcgZ2VuZXJpYyBmZWF0dXJlIG1hcmtpbmcvc2VsZWN0aW9uIG1lY2hhbmlzbS4KKyAgICAgICAgaHR0cDovL3d3dy5uZXQtc25tcC5vcmcvd2lraS9pbmRleC5waHAvRmVhdHVyZV9NYXJraW5nX2FuZF9TZWxlY3Rpb24KKyAgICAgIC0gSXQncyBub3cgcG9zc2libGUgdG8gYnVpbGQgd2l0aG91dCBTTk1QdjMvVVNNCisgICAgICAgIChlLmcuLCBpZiB5b3Ugb25seSB3YW50IFRMUy9EVExTIHdpdGggU05NUHYzL1RTTSkKKyAgICAgIC0gSXQncyBwb3NzaWJsZSB0byBidWlsZCB0aGUgc3VpdGUgd2l0aCBubyBTRVQgc3VwcG9ydAorICAgICAgICBjb25maWd1cmUgdXNpbmcgLS1lbmFibGUtcmVhZC1vbmx5CisgICAgICAtIEl0J3MgcG9zc2libGUgdG8gYnVpbGQgdGhlIGFnZW50IGFzIGEgbm90aWZ5LW9ubHkgYWdlbnQKKyAgICAgICAgY29uZmlndXJlIHVzaW5nIC0tZW5hYmxlLW5vdGlmeS1vbmx5CisgICAgICAtIEFkZGVkIGEgc2NyaXB0IHRvIHRlc3QgbWVtb3J5IHVzYWdlIHdpdGggdmFyaW91cyBjb25maWcgb3B0aW9ucworICAgICAgICAoc2VlIHRoZSBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0cyBzY3JpcHQpCisgICAgICAtIE5ldC1TTk1QIGNhbiBub3cgYmUgYnVpbHQgdG8gcGVyZm9ybSBsb2NhbCBETlNTRUMgdmFsaWRhdGlvbgorICAgICAgICAoaW5zdGFsbCBETlNTRUMtVG9vbHMnIGxpYnZhbCBhbmQgdXNlIC0td2l0aC1sb2NhbC1kbnNzZWMtdmFsaWRhdGlvbikKKworICB0ZXN0aW5nOgorICAgICAgLSBhIG51bWJlciBvZiBuZXcgQVBJIHVuaXQtdGVzdHMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSBzdWl0ZQorICAgICAgICAodG8gcnVuIHRoZSB0ZXN0czogY2QgdGVzdGluZyAmJiAuL1JVTkZVTExURVNUUyAtZyB1bml0LXRlc3RzKQorICAgICAgLSBUaGUgdW5pdCB0ZXN0cyBjYW4gYmUgbW9yZSBlYXNpbHkgcnVuIHVuZGVyIHZhbGdyaW5kCisgICAgICAgIChTZWUgaHR0cDovL2JpdC5seS9qc2dSbnYgZm9yIGRldGFpbHMpCisKKyAgb3BlbmJzZDoKKyAgICAgIC0gU3VwcG9ydCBmb3IgdXBkYXRpbmcgdGhlIHJvdXRpbmcgdGFibGUgdmlhIFNOTVAKKworICB3aW4zMjoKKyAgICAgIC0gVGhlIHRlc3Rpbmcgc3VpdGUgd29ya3MgYmV0dGVyIHVuZGVyIHdpbjMyIGVudmlyb25tZW50cworICAgICAgLSBNYW55IGJ1aWxkaW5nIGZpeGVzIGZvciB0aGUgd2luMzIgZW52aXJvbm1lbnQocykKKworICBzb2xhcmlzOgorICAgICAgLSBOZXQtU05NUCBub3cgc3VwcG9ydHMgdGhlIFNDVFAtTUlCCisKKyAgRHJhZ29uRmx5QlNELCBGcmVlQlNEODoKKyAgICAgIC0gTmV0LVNOTVAgc2hvdWxkIG5vdyB3b3JrIG9uIERyYWdvbkZseUJTRCBhbmQgRnJlZUJTRDgKKworICBBbmQgb2YgY291cnNlOgorICAgICAgLSBNYW55IG90aGVyIGJ1ZyBmaXhlcy4gIFNlZSB0aGUgQ0hBTkdFUyBhbmQgQ2hhbmdlTG9nIGZvciBkZXRhaWxzLgogCiAqNS42KgogCmRpZmYgLS1naXQgYS9SRUFETUUgYi9SRUFETUUKaW5kZXggMjhiNjY2Yi4uODFjMzhhOSAxMDA2NDQKLS0tIGEvUkVBRE1FCisrKyBiL1JFQURNRQpAQCAtMSw0ICsxLDQgQEAKLQkgICAgICAgUkVBRE1FIGZpbGUgZm9yIG5ldC1zbm1wIFZlcnNpb246IDUuNi4yCisJICAgICAgIFJFQURNRSBmaWxlIGZvciBuZXQtc25tcCBWZXJzaW9uOiA1LjcuMy5wcmU1CiAKIERJU0NMQUlNRVIKIApAQCAtMzUyLDYgKzM1Miw5IEBACiAgICAgQW5kZXJzIFBlcnNzb24gPGFwZXJzc29uQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KICAgICBSb2plciA8cm9qZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgogICAgIEJhcnQgVmFuIEFzc2NoZSA8YmFydC52YW5hc3NjaGVAZ21haWwuY29tPgorICAgIFBhYmxvIENhcmJvbmkgPHBjYXJib25pQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKyAgICBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KKyAgICBCcmlhbiBTaXBvcyA8YnNpcG9zcmtmQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KIAogICBXZSd2ZSBwcm9iYWJseSBmb3Jnb3R0ZW4gcGVvcGxlIG9uIHRoaXMgbGlzdC4gIExldCB1cyBrbm93IGlmIHlvdSd2ZQogICBjb250cmlidXRlZCBjb2RlIGFuZCB3ZSd2ZSBsZWZ0IHlvdSBvdXQuCmRpZmYgLS1naXQgYS9SRUFETUUud2luMzIgYi9SRUFETUUud2luMzIKaW5kZXggYThiNmJmMC4uZTQ5MjQzYiAxMDA2NDQKLS0tIGEvUkVBRE1FLndpbjMyCisrKyBiL1JFQURNRS53aW4zMgpAQCAtNCwxMiArNCwxMSBAQAogKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAKLVRoaXMgZ3VpZGUgZGVzY3JpYmVzIGJ1aWxkaW5nIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBDKysgNi4wIGFuZCBoaWdoZXIsIHdpdGgKLXRoZSBnY2MgY29tcGlsZXIgZnJvbSBNaW5HVyAvIE1TWVMsIGFuZCB3aXRoIHRoZSBnY2MgY29tcGlsZXIgZnJvbSBDeWd3aW4uCi1BcyBkZXZlbG9wZXJzIGJ1aWxkIHdpdGggb3RoZXIgV2luMzIgZW52aXJvbm1lbnRzLCB0aGVpciBub3RlcyB3aWxsIGJlIAotaW5jbHVkZWQgaGVyZS4KK1RoaXMgZ3VpZGUgZGVzY3JpYmVzIGhvdyB0byBidWlsZCBOZXQtU05NUCB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgQysrLCB0aGUKK01pbkdXIGdjYyBjb21waWxlciBvciB0aGUgQ3lnd2luIGdjYyBjb21waWxlci4gIEFzIGRldmVsb3BlcnMgYnVpbGQgd2l0aCBvdGhlcgorV2luMzIgZW52aXJvbm1lbnRzLCB0aGVpciBub3RlcyB3aWxsIGJlIGluY2x1ZGVkIGhlcmUuCiAKLVRoZSByZW1haW5kZXIgb2YgdGhpcyBndWlkZSBoYXMgdGhlIGZvbGxvd2luZyBzZWN0aW9ucyA6CitUaGUgc2VjdGlvbnMgaW4gdGhpcyBndWlkZSBhcmU6CiAKIEN1cnJlbnQgU3RhdHVzIGZvciBXaW4zMiBwbGF0Zm9ybXMKIEludGVyYWN0aW9ucyB3aXRoIE90aGVyIFZlbmRvcidzIFByb2R1Y3RzCkBAIC0zOSwxMyArMzgsMTQgQEAKIAogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0qIFN0YXR1cyBhcyBvZiAyMS1TZXAtMjAxMCBmb3IgV2luMzIgcGxhdGZvcm1zCisqIE5ldC1TTk1QIHN0YXR1cyBmb3IgV2luMzIgcGxhdGZvcm1zCiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAogQWxsIGFwcGxpY2F0aW9ucyBidWlsZCB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgQysrIDYuMCwgTWljcm9zb2Z0IERldmVsb3BtZW50CiBFbnZpcm9ubWVudCAyMDAzIChNU1ZDIDcuMC83LjEpLCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyAyMDA1LCBNaWNyb3NvZnQKLVZpc3VhbCBTdHVkaW8gMjAwOCwgZ2NjIHVuZGVyIEN5Z3dpbiBhbmQgZ2NjIHVuZGVyIE1pbkdXLiAgCitWaXN1YWwgU3R1ZGlvIDIwMDgsIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDIwMTAsIGdjYyB1bmRlciBDeWd3aW4gYW5kIGdjYwordW5kZXIgTWluR1cuCiAKICAgLSAgQWxsIG9mIHRoZSBhcHBsaWNhdGlvbnMgd29yayAoc25tcHdhbGssIHNubXBnZXQsIHNubXBzZXQsIHNubXB0cmFwLCAuLi4pLgogICAtICBUaGUgc3lzdGVtLCBzbm1wLCBpcCwgdGNwLCB1ZHAgYW5kIGljbXAgTUlCLWdyb3VwcyB3b3JrIChyZXF1aXJlcyB0aGUKQEAgLTgwLDYgKzgwLDExIEBACiAgIC0gIEJvdGggYnVpbGRpbmcgdmlhIHRoZSBpbnRlcmFjdGl2ZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCBhbmQgdmlhIHRoZQogICAgICBjb21tYW5kIGxpbmUgKG5tYWtlKSBpcyBzdXBwb3J0ZWQuCiAKKyAgLSAgV2l0aCBWaXN1YWwgU3R1ZGlvIDIwMDUgYW5kIGxhdGVyLCB0aGUgTmV0LVNOTVAgc291cmNlIGNvZGUgY2FuIGJlCisgICAgIGNvbXBpbGVkIGludG8gZWl0aGVyIDMyLWJpdCBvciA2NC1iaXQgZXhlY3V0YWJsZXMgKHRoZSBhbWQ2NC94NjQKKyAgICAgYXJjaGl0ZWN0dXJlKS4gUHJldmlvdXMgVmlzdWFsIFN0dWRpbyB2ZXJzaW9ucyBzdXBwb3J0IDMyLWJpdCBleGVjdXRhYmxlcworICAgICBvbmx5LgorCiAKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgpAQCAtNDczLDggKzQ3OCw4IEBACiB0aGUgRGVidWcgYW5kIFJlbGVhc2UgdmVyc2lvbnMgb2YgYW4gYXBwbGljYXRpb24gY2FuIGJlIGJ1aWx0IGFuZCB0ZXN0ZWQKIHNlcGFyYXRlbHkuCiAKLVZDKysgNi4wLCA3LjEsIDguMCAoMjAwNSkgYW5kIDkuMCAoMjAwOCkgaGF2ZSBiZWVuIHRlc3RlZC4gIEJ1aWxkaW5nIHdpdGgKLWVhcmxpZXIgTWljcm9zb2Z0IGNvbXBpbGVyIHZlcnNpb25zIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCitWQysrIDYuMCwgNy4xLCA4LjAgKDIwMDUpLCA5LjAgKDIwMDgpIGFuZCAxMC4wICgyMDEwKSBoYXZlIGJlZW4gdGVzdGVkLgorQnVpbGRpbmcgd2l0aCBlYXJsaWVyIE1pY3Jvc29mdCBjb21waWxlciB2ZXJzaW9ucyBpcyBubyBsb25nZXIgc3VwcG9ydGVkLgogCiBOb3RlOiBpZiB5b3Ugd2FudCB0byBkaXN0cmlidXRlIHRoZSBnZW5lcmF0ZWQgZXhlY3V0YWJsZSwgeW91IHdpbGwgYWxzbyBuZWVkCiB0byBkaXN0cmlidXRlIHRoZSBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBSZWRpc3RyaWJ1dGFibGUgUGFja2FnZS4gQ2hlY2sgdGhlCkBAIC01MzIsMTIgKzUzNywyMiBAQAogCiAxLiAgT3BlbiBhIGNvbW1hbmQgcHJvbXB0CiAKLTIuICBJbml0aWFsaXplIHRoZSBWaXN1YWwgU3R1ZGlvIGJ1aWxkIGVudmlyb25tZW50IGJ5IHJ1bm5pbmcgVkNWQVJTMzIuYmF0CisyLiAgV2hlbiBidWlsZGluZyB3aXRoIE9wZW5TU0wsIHNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIElOQ0xVREUgYW5kIExJQgorICAgIHN1Y2ggdGhhdCB0aGVzZSBwb2ludCBhdCB0aGUgcHJvcGVyIE9wZW5TU0wgZGlyZWN0b3JpZXMuIEFuIGV4YW1wbGU6CisKKyAgICBzZXQgSU5DTFVERT1DOlxPcGVuU1NMLVdpbjMyXGluY2x1ZGUKKyAgICBzZXQgTElCPUM6XE9wZW5TU0wtV2luMzJcbGliXFZDXHN0YXRpYworCiszLiAgSW5pdGlhbGl6ZSB0aGUgVmlzdWFsIFN0dWRpbyBidWlsZCBlbnZpcm9ubWVudCBieSBydW5uaW5nIHZjdmFyc2FsbC5iYXQKICAgICB3aGljaCBjYW4gYmUgZm91bmQgaW4gdGhlIGJpbiBmb2xkZXIgb2YgeW91ciBWaXN1YWwgU3R1ZGlvIGluc3RhbGwgZm9sZGVyLgorICAgIElmIHlvdSB3YW50IHRvIGdlbmVyYXRlIDY0LWJpdCBiaW5hcmllcyBpbnN0ZWFkIG9mIDMyLWJpdCBiaW5hcmllcywgcnVuCisgICAgdmN2YXJzYWxsLmJhdCB3aXRoIHRoZSBhbWQ2NCBhcmd1bWVudC4gU2VlIGFsc28gIkhvdyB0bzogRW5hYmxlIGEgNjQtQml0CisgICAgVmlzdWFsIEMrKyBUb29sc2V0IGF0IHRoZSBDb21tYW5kIExpbmUiIGZvciBtb3JlIGluZm9ybWF0aW9uCisgICAgKGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS94NGQyYzA5cyUyOHY9dnMuODAlMjkuYXNweCkuCiAKLTMuICBSdW4gd2luMzJcYnVpbGQuYmF0Cis0LiAgUnVuIHdpbjMyXGJ1aWxkLmJhdAogCi00LiAgVGhlIGZvbGxvd2luZyBzY3JlZW4gd2lsbCBhcHBlYXI6Cis1LiAgVGhlIGZvbGxvd2luZyBzY3JlZW4gd2lsbCBhcHBlYXI6CiAKICAgICBOZXQtU05NUCBidWlsZCBhbmQgaW5zdGFsbCBvcHRpb25zCiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtNTY2LDcgKzU4MSw3IEBACiAKICAgICBTZWxlY3Qgb3B0aW9uIHRvIHNldCAvIHRvZ2dsZTogIAogCi01LiAgVG9nZ2xlIHRoZSBvcHRpb25zIG9uIGFuZCBvZmYgYXMgZGVzaXJlZCBieSB0eXBpbmcgdGhlIGxpbmUgbnVtYmVyIAorNi4gIFRvZ2dsZSB0aGUgb3B0aW9ucyBvbiBhbmQgb2ZmIGFzIGRlc2lyZWQgYnkgdHlwaW5nIHRoZSBsaW5lIG51bWJlciAKICAgICBmb2xsb3dlZCBieSA8ZW50ZXI+LiAgCiAKICAgICBUbyBjb21waWxlIHdpdGggT3BlblNTTCwgdGhlIE9wZW5TU0wgbGlicmFyeSBhbmQgaGVhZGVyIGZpbGVzIG11c3QgCkBAIC01ODYsNyArNjAxLDcgQEAKIAogICAgIFdoZW4geW91IGFyZSByZWFkeSB0byBidWlsZCwgdHlwZSBmIDxlbnRlcj4KIAotNi4gIEJ1aWxkaW5nIHdpbGwgYmVnaW4uICBGb2xsb3dpbmcgaXMgYSBzYW1wbGUgc2NyZWVuIHNob3Qgb2YgYSBxdWlldCBidWlsZDoKKzcuICBCdWlsZGluZyB3aWxsIGJlZ2luLiAgRm9sbG93aW5nIGlzIGEgc2FtcGxlIHNjcmVlbiBzaG90IG9mIGEgcXVpZXQgYnVpbGQ6CiAKICAgICBCdWlsZGluZy4uLgogICAgIApAQCAtNjA4LDcgKzYyMyw3IEBACiAgICAgCiAgICAgRG9uZSEKIAotNy4gIElmIHRoZSBmb2xkZXIgdGhhdCBOZXQtU05NUCB3YXMgaW5zdGFsbGVkIHRvIGlzIGV2ZXIgY2hhbmdlZCwgbW9kaWZ5IHRoZSAKKzguICBJZiB0aGUgZm9sZGVyIHRoYXQgTmV0LVNOTVAgd2FzIGluc3RhbGxlZCB0byBpcyBldmVyIGNoYW5nZWQsIG1vZGlmeSB0aGUgCiAgICAgc3lzdGVtIGVudmlyb25tZW50IHZhcmlhYmxlcyBvciByZWdpc3RyeSBrZXlzIGFzIGV4cGxhaW5lZCBpbiB0aGUgCiAgICAgJ0NvbmZpZ3VyYXRpb25fT3ZlcnZpZXcuaHRtbCcgZmlsZSBsb2NhdGVkIGluIHdpbjMyL2Rpc3QvaHRtbGhlbHAuCiAKQEAgLTcyOCwxMCArNzQzLDEyIEBACiA1LiBCdWlsZCB0aGUgYWdlbnQgYW5kIHRoZSBhcHBsaWNhdGlvbnMKIAogICAgYS4gT3BlbiB3aW4zMi5kc3cgKHN0YXRpYyBidWlsZCkgb3Igd2luMzJkbGwuZHN3IChkeW5hbWljIGJ1aWxkKS4KLSAgIGIuIENsaWNrICJCdWlsZC0+QmF0Y2ggQnVpbGQuLi4iICAKLSAgIGMuIFNlbGVjdCB0aGUgcHJvamVjdHMgYW5kIGNvbmZpZ3VyYXRpb25zIHlvdSB3YW50IHRvIGJ1aWxkLgotICAgZC4gQ2xpY2sgIlJlQnVpbGQgQWxsIi4KLSAgIGUuIFdoZW4gYnVpbGRpbmcgaXMgZG9uZSwgVmlldyB0aGUgT3V0cHV0IHdpbmRvdywgY2xpcCBhbmQKKyAgIGIuIElmIHlvdSB3YW50IHRvIGdlbmVyYXRlIDY0LWJpdCBiaW5hcmllcyBpbnN0ZWFkIG9mIDMyLWJpdCBiaW5hcmllcywKKyAgICAgIHNlbGVjdCAiQnVpbGQvQ29uZmlndXJhdGlvbiBNYW5hZ2VyIiBhbmQgYWRkIHRoZSAieDY0IiBwbGF0Zm9ybS4KKyAgIGMuIFNlbGVjdCAiQnVpbGQvQmF0Y2ggQnVpbGQuLi4iICAKKyAgIGQuIFNlbGVjdCB0aGUgcHJvamVjdHMgYW5kIGNvbmZpZ3VyYXRpb25zIHlvdSB3YW50IHRvIGJ1aWxkLgorICAgZS4gQ2xpY2sgIlJlQnVpbGQgQWxsIi4KKyAgIGYuIFdoZW4gYnVpbGRpbmcgaXMgZG9uZSwgVmlldyB0aGUgT3V0cHV0IHdpbmRvdywgY2xpcCBhbmQKICAgICAgIHNhdmUgdG8gYSB0ZXh0IGZpbGUgaWYgdGhlcmUgaXMgc29tZSBpbmZvcm1hdGlvbiB0byBzaGFyZS4KIAogNi4gIElmIHRoZSBQZXJsIG1vZHVsZXMgYXJlIHJlcXVpcmVkLCBjb250aW51ZSB3aXRoIHRoZSBuZXh0IHNlY3Rpb246CkBAIC05MTgsMTYgKzkzNSwxMCBAQAogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAKIFRoZSBkZWZhdWx0IGJ1aWxkIGNvbmZpZ3VyYXRpb24gc3VwcG9ydHMgU05NUCBvdmVyIElQdjQtYmFzZWQgdHJhbnNwb3J0cy4KLUhvd2V2ZXIsIFdpbmRvd3MgWFAgYW5kIFdpbmRvd3MgMjAwMCBpbmNsdWRlIGFuIElQdjYtY2FwYWJsZSBzdGFjaywgd2hpY2gKK0hvd2V2ZXIgV2luZG93cyAyMDAwIGFuZCBsYXRlciBpbmNsdWRlIGFuIElQdjYtY2FwYWJsZSBzdGFjayB3aGljaAogY2FuIGJlIHVzZWQgdG8gcHJvdmlkZSBTTk1QIG92ZXIgSVB2Ni4gIFRvIGVuYWJsZSBJUHY2LCB0aGUgTWljcm9zb2Z0IFBTREsgCi1pcyByZXF1aXJlZCBhbmQgdGhlIGZvbGxvd2luZyBjaGFuZ2VzIHRvIHRoZSBOZXQtU05NUCB3aW4zMiBWaXN1YWwgQysrIAotY29uZmlndXJhdGlvbiBhcmUgbmVlZGVkOgotCi1Qcm9qZWN0IGNoYW5nZXMKLT09PT09PT09PT09PT09PQotCi0gMS4gRWRpdCB0aGUgd2luMzJcbmV0LXNubXBcbmV0LXNubXAtY29uZmlnLmggaGVhZGVyIGZpbGUuICBDaGFuZ2UKLSAgICB0aGUgc2luZ2xlIElORVQ2IGxpbmUgZnJvbToKK2lzIHJlcXVpcmVkIGFuZCBORVRTTk1QX0VOQUJMRV9JUFY2IGhhcyB0byBiZSBlbmFibGVkIGluCit3aW4zMlxuZXQtc25tcFxuZXQtc25tcC1jb25maWcuaC4gQ2hhbmdlIHRoZSBmb2xsb3dpbmcgc2luZ2xlIGxpbmUgZnJvbToKIAogICAgICAgICAvKiAjdW5kZWYgTkVUU05NUF9FTkFCTEVfSVBWNiAqLwogCkBAIC05MzUsMjAgKzk0Niw3IEBACiAKICAgICAgICAJI2RlZmluZSBORVRTTk1QX0VOQUJMRV9JUFY2IDEKIAotIDIuIEVkaXQgdGhlIHdpbjMyXGxpYnNubXBfZGxsXGxpYnNubXAuZGVmIGZpbGUuICBBbGwgdGhlIElQdjYgZnVuY3Rpb25zIHdpbGwKLSAgICBiZSBjb21tZW50ZWQgb3V0IGFuZCB3aWxsIG5lZWQgdG8gYmUgZW5hYmxlZCBieSByZW1vdmluZyAnO0lQdjYnIGZyb20gdGhlCi0gICAgYmVnaW5uaW5nIG9mIGVhY2ggbGluZS4gIAotCi0gICAgRm9yIGV4YW1wbGUsIGNoYW5nZToKLQotCi0gICAgICAgIDtJUHY2ICAgICAgICBuZXRzbm1wX3VkcDZfcGFyc2Vfc2VjdXJpdHkKLQotICAgIHRvOgotCi0gICAgICAgICAgICAgICAgbmV0c25tcF91ZHA2X3BhcnNlX3NlY3VyaXR5Ci0KLSAzLiBDb250aW51ZSB3aXRoIHRoZSBzZWN0aW9uICdNaWNyb3NvZnQgVmlzdWFsIEMrKyAtIEJ1aWxkaW5nIgorTmV4dCwgY29udGludWUgd2l0aCB0aGUgc2VjdGlvbiAnTWljcm9zb2Z0IFZpc3VhbCBDKysgLSBCdWlsZGluZyIKIAogCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEwMjcsOSArMTAyNSw3IEBACiBmb3IgV2luZG93cyBiYXNlZCBzeXN0ZW1zLiBUaGUgY3lnd2luMS5kbGwgcHJvdmlkZXMgYSBQT1NJWCBlbXVsYXRpb24gbGF5ZXIgCiB0aGF0IHNpbXBsaWZpZXMgcG9ydGluZyBVbml4IC8gTGludXggYXBwbGljYXRpb25zIHRvIFdpbmRvd3MuIFRoZSBDeWd3aW4gZGxscwogYXJlIHJlcXVpcmVkIGlmIGFuIGFwcGxpY2F0aW9uIGlzIHRvIGJlIGRpc3RyaWJ1dGVkLiBUaGUgZGVwZW5kZW5jeSBvbiB0aGUgCi1DeWd3aW4gZGxscyBjYW4gYmUgZWxpbWluYXRlZCB3aXRoIHRoZSAtLW1uby1jeWd3aW4gY29tcGlsZXIgZmxhZywgd2hpY2ggdXNlcwotTWluR1cgdG8gY29tcGlsZSBhIG5hdGl2ZSBXaW5kb3dzIGJpbmFyeSwgYnV0IHRoZSBiZW5lZml0IG9mIHRoZSBQT1NJWCBlbXVsYXRpb24KLWlzIGxvc3QuIFRoZSBDeWd3aW4gdG9vbCBjaGFpbiBhbmQgZG9jdW1lbnRhdGlvbiBjYW4gYmUgZm91bmQgYXQ6CitUaGUgQ3lnd2luIHRvb2wgY2hhaW4gYW5kIGRvY3VtZW50YXRpb24gY2FuIGJlIGZvdW5kIGF0OgogCiBodHRwOi8vc291cmNlcy5yZWRoYXQuY29tL2N5Z3dpbi8KIApAQCAtMTA1OSw2ICsxMDU1LDcgQEAKIEFzIGFuIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgY29uZmlndXJlIG9wdGlvbnMgY3JlYXRlIGEgd29ya2luZyBzZXQgb2YKIHByb2dyYW1zOgogCitFTlZfU0VQQVJBVE9SPSI6IiBcCiAuL2NvbmZpZ3VyZSBcCiAJLS13aXRoLW1pYi1tb2R1bGVzPSJob3N0IGFnZW50eCBkaXNtYW4vZXZlbnQtbWliIGV4YW1wbGVzL2V4YW1wbGUiIFwKIAktLXdpdGgtb3V0LW1pYi1tb2R1bGVzPWhvc3QvaHJfbmV0d29yayBcCmRpZmYgLS1naXQgYS9hY2NvbmZpZy5oIGIvYWNjb25maWcuaAppbmRleCBmM2Y3YmZlLi4xMmY4NWM2IDEwMDY0NAotLS0gYS9hY2NvbmZpZy5oCisrKyBiL2FjY29uZmlnLmgKQEAgLTI3LDE1ICsyNyw2IEBACiAgKi8KICNpZm5kZWYgTkVUU05NUF9OT19BVVRPQ09ORl9ERUZJTklUSU9OUwogCi0KLSNpZiBkZWZpbmVkIChXSU4zMikgfHwgZGVmaW5lZCAobWluZ3czMikgfHwgZGVmaW5lZCAoY3lnd2luKQotI2RlZmluZSBFTlZfU0VQQVJBVE9SICI7IgotI2RlZmluZSBFTlZfU0VQQVJBVE9SX0NIQVIgJzsnCi0jZWxzZQotI2RlZmluZSBFTlZfU0VQQVJBVE9SICI6IgotI2RlZmluZSBFTlZfU0VQQVJBVE9SX0NIQVIgJzonCi0jZW5kaWYKLQogLyogZGVmaW5pdGlvbnMgYWRkZWQgYnkgY29uZmlndXJlIG9uLXRoZS1mbHkgKi8KIEBUT1BACiBAQk9UVE9NQApAQCAtNDk0LDExICs0ODUsOCBAQAogICAgYW5kIGFyZSBub3QgdXNpbmcgdGhlIFVDLURhdmlzIFNOTVAgbGlicmFyeS4gKi8KICNkZWZpbmUgVUNEX1NOTVBfTElCUkFSWSAxCiAKLS8qIGFkZCBpbiByZWNlbnQgQ01VIGxpYnJhcnkgZXh0ZW5zaW9ucyAobm90IGNvbXBsZXRlKSAqLwotI3VuZGVmIENNVV9DT01QQVRJQkxFCi0KIC8qIGZpbmFsIGNvbmNsdXNpb24gb24gbmxpc3QgdXNhZ2UgKi8KLSNpZiBkZWZpbmVkKEhBVkVfTkxJU1QpICYmIGRlZmluZWQoSEFWRV9TVFJVQ1RfTkxJU1RfTl9WQUxVRSkgJiYgIWRlZmluZWQoTkVUU05NUF9ET05UX1VTRV9OTElTVCkgJiYgIWRlZmluZWQoTkVUU05NUF9OT19LTUVNX1VTQUdFKQorI2lmIGRlZmluZWQoSEFWRV9OTElTVCkgJiYgZGVmaW5lZChIQVZFX1NUUlVDVF9OTElTVF9OX1ZBTFVFKSAmJiAhZGVmaW5lZChORVRTTk1QX0RPTlRfVVNFX05MSVNUKSAmJiBkZWZpbmVkKEhBVkVfS01FTSkgJiYgIWRlZmluZWQoTkVUU05NUF9OT19LTUVNX1VTQUdFKQogI2RlZmluZSBORVRTTk1QX0NBTl9VU0VfTkxJU1QKICNlbmRpZgogCmRpZmYgLS1naXQgYS9hZ2VudC9NYWtlZmlsZS5kZXBlbmQgYi9hZ2VudC9NYWtlZmlsZS5kZXBlbmQKaW5kZXggYmE0MmM1Yy4uYjUyM2ZhMyAxMDA2NDQKLS0tIGEvYWdlbnQvTWFrZWZpbGUuZGVwZW5kCisrKyBiL2FnZW50L01ha2VmaWxlLmRlcGVuZApAQCAtNSw2ICs1LDcgQEAKIC4vYWdlbnRfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3lzdi5oCiAuL2FnZW50X2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2dlbmVyaWMuaAogLi9hZ2VudF9oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oCisuL2FnZW50X2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9hZ2VudF9oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vYWdlbnRfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL2FnZW50X2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMjQsMTEgKzI1LDggQEAKIC4vYWdlbnRfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL2FnZW50X2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9hZ2VudF9oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9hZ2VudF9oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL2FnZW50X2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9hZ2VudF9oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vYWdlbnRfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vYWdlbnRfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9hZ2VudF9oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vYWdlbnRfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vYWdlbnRfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2FnZW50X2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC03Myw2ICs3MSw3IEBACiAuL2FnZW50X2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2FnZW50X2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2FnZW50X2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9hZ2VudF9oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2FnZW50X2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vYWdlbnRfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL2FnZW50X2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTEyLDYgKzExMSw3IEBACiAuL2FnZW50X2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgKIC4vYWdlbnRfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi9hZ2VudF9pbmRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9hZ2VudF9pbmRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2FnZW50X2luZGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vYWdlbnRfaW5kZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9hZ2VudF9pbmRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0xMzEsMTEgKzEzMSw4IEBACiAuL2FnZW50X2luZGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vYWdlbnRfaW5kZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9hZ2VudF9pbmRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vYWdlbnRfaW5kZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vYWdlbnRfaW5kZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9hZ2VudF9pbmRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL2FnZW50X2luZGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9hZ2VudF9pbmRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9hZ2VudF9pbmRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL2FnZW50X2luZGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9hZ2VudF9pbmRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2FnZW50X2luZGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMTc5LDYgKzE3Niw3IEBACiAuL2FnZW50X2luZGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9hZ2VudF9pbmRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vYWdlbnRfaW5kZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9hZ2VudF9pbmRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9hZ2VudF9pbmRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9hZ2VudF9pbmRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL2FnZW50X2luZGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTIyMiw2ICsyMjAsNyBAQAogLi9hZ2VudF9pbmRleC5sbzogbWliZ3JvdXAvc3RydWN0LmggLi4vYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmgKIC4vYWdlbnRfaW5kZXgubG86IC4uL2FnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuaAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2FnZW50X3JlYWRfY29uZmlnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vYWdlbnRfcmVhZF9jb25maWcubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0yNDEsMTEgKzI0MCw4IEBACiAuL2FnZW50X3JlYWRfY29uZmlnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vYWdlbnRfcmVhZF9jb25maWcubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL2FnZW50X3JlYWRfY29uZmlnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL2FnZW50X3JlYWRfY29uZmlnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2FnZW50X3JlYWRfY29uZmlnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjg5LDYgKzI4NSw3IEBACiAuL2FnZW50X3JlYWRfY29uZmlnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vYWdlbnRfcmVhZF9jb25maWcubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL2FnZW50X3JlYWRfY29uZmlnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTMzNCw0MCArMzMxLDIyIEBACiAuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9zbm1wdjMvdXNtQ29uZi5oIG1pYmdyb3VwL21pYklJL3ZhY21fY29uZi5oCiAuL2FnZW50X3JlYWRfY29uZmlnLmxvOiAuLi9hZ2VudC9taWJncm91cC9taWJfbW9kdWxlX2luY2x1ZGVzLmgKIC4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCBtaWJncm91cC90ZXN0aGFuZGxlci5oCi0uL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaCBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuaAorLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvUm1vbi9yb3dzLmggbWliZ3JvdXAvUm1vbi9hZ3V0aWwuaAorLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmggbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmgKKy4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL1Jtb24vaGlzdG9yeS5oIG1pYmdyb3VwL1Jtb24vZXZlbnQuaAorLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5oCisuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9leGFtcGxlcy93YXRjaGVkLmgKKy4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmgKKy4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuaAorLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5oCisuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmgKIC4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmgKIC4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmgKIC4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmggbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuaAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5oIG1pYmdyb3VwL2hvc3QvaHJfcHJvYy5oCiAuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9ob3N0L2hyX25ldHdvcmsuaCBtaWJncm91cC9ob3N0L2hyX3ByaW50LmgKIC4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2hvc3QvaHJfZGlzay5oIG1pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuaAotLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvZXhhbXBsZXMvd2F0Y2hlZC5oCi0uL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5oCi0uL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL1Jtb24vcm93cy5oIG1pYmdyb3VwL1Jtb24vYWd1dGlsLmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5oIG1pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5oCi0uL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9SbW9uL2hpc3RvcnkuaCBtaWJncm91cC9SbW9uL2V2ZW50LmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uaAotLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVTY2FsYXJzLmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuaAotLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaAotLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuaAotLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oCi0uL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuaAotLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IC4uL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuaAotLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuaAotLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5oCi0uL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c0NvbmYuaAorLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtQ29uZmlndXJhdGlvblVzZVByZWZpeC5oCiAuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5oCiAuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmgKIC4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmgKQEAgLTM4MCw4ICszNTksOCBAQAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvbWliSUkvdGNwLmggbWliZ3JvdXAvbWliSUkvaWNtcC5oCiAuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9taWJJSS91ZHAuaCBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuaAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uaCBtaWJncm91cC9taWJJSS9pcHY2LmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCAuLi9hZ2VudC9taWJncm91cC9taWJkZWZzLmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaAorLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5oCisuL2FnZW50X3JlYWRfY29uZmlnLmxvOiAuLi9hZ2VudC9taWJncm91cC9taWJkZWZzLmggbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oCiAuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oCiAuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC91Y2Qtc25tcC9wYXNzLmgKIC4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oCkBAIC00MDEsMTMgKzM4MCwzNSBAQAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5oIG1pYmdyb3VwL2FnZW50L25zQ2FjaGUuaAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmgKIC4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmgKKy4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVTY2FsYXJzLmgKKy4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmgKKy4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuaAorLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmgKKy4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaAorLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuaAorLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oCisuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuaAorLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmgKKy4vYWdlbnRfcmVhZF9jb25maWcubG86IC4uL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmgKKy4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmgKKy4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmgKKy4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgKKy4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuaAorLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuaAorLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5oCisuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c0NvbmYuaAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5oCiAuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmgKIC4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmgKIC4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5oCi0uL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmgKLS4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuaAotLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5oCisuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oCisuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgKKy4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5oCisuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi9zbm1wVGxzdG1TZXNzaW9uLmgKKy4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmgKKy4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oCisuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuaAorLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmgKIC4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oIG1pYmdyb3VwL21pYklJL3RjcFRhYmxlLmgKIC4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL21pYklJL3VkcFRhYmxlLmgKIC4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5oCkBAIC00MTcsNiArNDE4LDEwIEBACiAuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuaAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuaAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuaAorLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5oCisuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuaAorLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5oCisuL2FnZW50X3JlYWRfY29uZmlnLmxvOiBtaWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmgKIC4vYWdlbnRfcmVhZF9jb25maWcubG86IG1pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaApAQCAtNTA3LDYgKzUxMiw3IEBACiAuL2FnZW50X3JlYWRfY29uZmlnLmxvOiAuLi9hZ2VudC9taWJncm91cC9hZ2VudF9tb2R1bGVfZG90X2NvbmYuaAogLi9hZ2VudF9yZWFkX2NvbmZpZy5sbzogLi4vYWdlbnQvbWliZ3JvdXAvbWliX21vZHVsZV9kb3RfY29uZi5oCiAuL2FnZW50X3JlZ2lzdHJ5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2FnZW50X3JlZ2lzdHJ5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vYWdlbnRfcmVnaXN0cnkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9hZ2VudF9yZWdpc3RyeS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL2FnZW50X3JlZ2lzdHJ5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTUyNiwxMSArNTMyLDggQEAKIC4vYWdlbnRfcmVnaXN0cnkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9hZ2VudF9yZWdpc3RyeS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2FnZW50X3JlZ2lzdHJ5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9hZ2VudF9yZWdpc3RyeS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9hZ2VudF9yZWdpc3RyeS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2FnZW50X3JlZ2lzdHJ5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vYWdlbnRfcmVnaXN0cnkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2FnZW50X3JlZ2lzdHJ5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2FnZW50X3JlZ2lzdHJ5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vYWdlbnRfcmVnaXN0cnkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2FnZW50X3JlZ2lzdHJ5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vYWdlbnRfcmVnaXN0cnkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC01NzQsNiArNTc3LDcgQEAKIC4vYWdlbnRfcmVnaXN0cnkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2FnZW50X3JlZ2lzdHJ5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9hZ2VudF9yZWdpc3RyeS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2FnZW50X3JlZ2lzdHJ5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2FnZW50X3JlZ2lzdHJ5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2FnZW50X3JlZ2lzdHJ5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vYWdlbnRfcmVnaXN0cnkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtNjM1LDExICs2MzksOCBAQAogLi9hZ2VudF9zeXNPUlRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vYWdlbnRfc3lzT1JUYWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2FnZW50X3N5c09SVGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL2FnZW50X3N5c09SVGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vYWdlbnRfc3lzT1JUYWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2FnZW50X3N5c09SVGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9hZ2VudF9zeXNPUlRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9hZ2VudF9zeXNPUlRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2FnZW50X3N5c09SVGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9hZ2VudF9zeXNPUlRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9hZ2VudF9zeXNPUlRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vYWdlbnRfc3lzT1JUYWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTY0OSw2ICs2NTAsNyBAQAogLi9hZ2VudF9zeXNPUlRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9hZ2VudF9zeXNPUlRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9hZ2VudF9zeXNPUlRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vYWdlbnRfc3lzT1JUYWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2FnZW50X3N5c09SVGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9hZ2VudF9zeXNPUlRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2FnZW50X3N5c09SVGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTY4Myw2ICs2ODUsNyBAQAogLi9hZ2VudF9zeXNPUlRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9hZ2VudF9zeXNPUlRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9hZ2VudF9zeXNPUlRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vYWdlbnRfc3lzT1JUYWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9hZ2VudF9zeXNPUlRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2FnZW50X3N5c09SVGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9hZ2VudF9zeXNPUlRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTcyNSw2ICs3MjgsNyBAQAogLi9hZ2VudF9zeXNPUlRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3N5c09SVGFibGUuaAogLi9hZ2VudF9zeXNPUlRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaAogLi9hZ2VudF90cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2FnZW50X3RyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9hZ2VudF90cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oIC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAogLi9hZ2VudF90cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgKIC4vYWdlbnRfdHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgKQEAgLTc0MywxMSArNzQ3LDggQEAKIC4vYWdlbnRfdHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL2FnZW50X3RyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9hZ2VudF90cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9hZ2VudF90cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL2FnZW50X3RyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9hZ2VudF90cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vYWdlbnRfdHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vYWdlbnRfdHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9hZ2VudF90cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vYWdlbnRfdHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vYWdlbnRfdHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2FnZW50X3RyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC03OTEsNiArNzkyLDcgQEAKIC4vYWdlbnRfdHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vYWdlbnRfdHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vYWdlbnRfdHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2FnZW50X3RyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vYWdlbnRfdHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9hZ2VudF90cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vYWdlbnRfdHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC04MzAsNyArODMyLDYgQEAKIC4vYWdlbnRfdHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaAogLi9hZ2VudF90cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL2FnZW50X3RyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgKLS4vYWdlbnRfdHJhcC5sbzogLi4vYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmgKIC4vYXV0b19ubGlzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogLi9hdXRvX25saXN0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaAogLi9rZXJuZWwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKQEAgLTg1NSwxMSArODU2LDggQEAKIC4vbWliX21vZHVsZXMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9taWJfbW9kdWxlcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL21pYl9tb2R1bGVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9taWJfbW9kdWxlcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9taWJfbW9kdWxlcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL21pYl9tb2R1bGVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vbWliX21vZHVsZXMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL21pYl9tb2R1bGVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL21pYl9tb2R1bGVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vbWliX21vZHVsZXMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL21pYl9tb2R1bGVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vbWliX21vZHVsZXMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC04NjksNiArODY3LDcgQEAKIC4vbWliX21vZHVsZXMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL21pYl9tb2R1bGVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9taWJfbW9kdWxlcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL21pYl9tb2R1bGVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vbWliX21vZHVsZXMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9taWJfbW9kdWxlcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9taWJfbW9kdWxlcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtOTAzLDYgKzkwMiw3IEBACiAuL21pYl9tb2R1bGVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9taWJfbW9kdWxlcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vbWliX21vZHVsZXMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9taWJfbW9kdWxlcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9taWJfbW9kdWxlcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9taWJfbW9kdWxlcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL21pYl9tb2R1bGVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X21vZHVsZV9jb25maWcuaApAQCAtOTQwLDQxICs5NDAsMjMgQEAKIC4vbWliX21vZHVsZXMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaAogLi9taWJfbW9kdWxlcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaAogLi9taWJfbW9kdWxlcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaCBtMm0uaAotLi9taWJfbW9kdWxlcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaAogLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvc3RydWN0LmggLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlcy5oCiAuL21pYl9tb2R1bGVzLmxvOiAuLi9hZ2VudC9taWJncm91cC9taWJfbW9kdWxlX2luY2x1ZGVzLmgKIC4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCBtaWJncm91cC90ZXN0aGFuZGxlci5oCi0uL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaCBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuaAorLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvUm1vbi9yb3dzLmggbWliZ3JvdXAvUm1vbi9hZ3V0aWwuaAorLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmggbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmgKKy4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL1Jtb24vaGlzdG9yeS5oIG1pYmdyb3VwL1Jtb24vZXZlbnQuaAorLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5oIG1pYmdyb3VwL2V4YW1wbGVzL3dhdGNoZWQuaAorLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuaAorLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5oCisuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9ob3N0L2hyaF9zdG9yYWdlLmggbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5oCiAuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5oCiAuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5oIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmgKIC4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmggbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5oCiAuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9ob3N0L2hyX3Byb2MuaCBtaWJncm91cC9ob3N0L2hyX25ldHdvcmsuaAogLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvaG9zdC9ocl9wcmludC5oIG1pYmdyb3VwL2hvc3QvaHJfZGlzay5oCi0uL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5oIG1pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuaAotLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvZXhhbXBsZXMvd2F0Y2hlZC5oIG1pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmgKLS4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuaCBtaWJncm91cC9SbW9uL3Jvd3MuaAotLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvUm1vbi9hZ3V0aWwuaCBtaWJncm91cC9SbW9uL3N0YXRpc3RpY3MuaAotLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmggbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmgKLS4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL1Jtb24vZXZlbnQuaCBtaWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oCi0uL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgKLS4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5oCi0uL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlU2NhbGFycy5oCi0uL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5oCi0uL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmgKLS4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5oCi0uL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgKLS4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgKLS4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaAotLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmgKLS4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5oCi0uL21pYl9tb2R1bGVzLmxvOiAuLi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5oCi0uL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5oCi0uL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5oCi0uL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oCi0uL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmgKLS4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmgKLS4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuaAotLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNDb25mLmgKKy4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmgKKy4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL3RzbS1taWIvc25tcFRzbUNvbmZpZ3VyYXRpb25Vc2VQcmVmaXguaAogLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuaAogLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5oIG1pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmgKIC4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL3NubXB2My91c21Vc2VyLmggbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmgKQEAgLTk4NCw3ICs5NjYsNyBAQAogLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvbWliSUkvYXQuaCBtaWJncm91cC9taWJJSS90Y3AuaAogLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvbWliSUkvaWNtcC5oIG1pYmdyb3VwL21pYklJL3VkcC5oCiAuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCBtaWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5oCi0uL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9taWJJSS9pcHY2LmggbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oCisuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9taWJJSS9pcHY2LmggbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5oCiAuL21pYl9tb2R1bGVzLmxvOiAuLi9hZ2VudC9taWJncm91cC9taWJkZWZzLmggbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oCiAuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaAogLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmgKQEAgLTEwMDMsMTMgKzk4NSwzNSBAQAogLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5oIG1pYmdyb3VwL2FnZW50L25zRGVidWcuaAogLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5oIG1pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5oCiAuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5oCisuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlU2NhbGFycy5oCisuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5oCisuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmgKKy4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5oCisuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgKKy4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgKKy4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaAorLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmgKKy4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5oCisuL21pYl9tb2R1bGVzLmxvOiAuLi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5oCisuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5oCisuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5oCisuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oCisuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmgKKy4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmgKKy4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuaAorLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNDb25mLmgKIC4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuaAogLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5oCiAuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5oCiAuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuaAotLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5oCi0uL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmgKLS4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguaAorLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaAorLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oCisuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuaAorLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24vc25tcFRsc3RtU2Vzc2lvbi5oCisuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5oCisuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaAorLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmgKKy4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5oCiAuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9taWJJSS92YXJfcm91dGUuaCBtaWJncm91cC9taWJJSS90Y3BUYWJsZS5oCiAuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9taWJJSS91ZHBUYWJsZS5oIG1pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5oCiAuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5oCkBAIC0xMDE4LDcgKzEwMjIsMTIgQEAKIC4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5oCiAuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oCiAuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5oCisuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmgKKy4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5oCisuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmgKKy4vbWliX21vZHVsZXMubG86IG1pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguaAogLi9taWJfbW9kdWxlcy5sbzogbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oCisuL21pYl9tb2R1bGVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oCiAuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oCiAuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5oCiAuL21pYl9tb2R1bGVzLmxvOiBtaWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgKQEAgLTExMjYsMTEgKzExMzUsOCBAQAogLi9vYmplY3RfbW9uaXRvci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL29iamVjdF9tb25pdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vb2JqZWN0X21vbml0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL29iamVjdF9tb25pdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL29iamVjdF9tb25pdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vb2JqZWN0X21vbml0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9vYmplY3RfbW9uaXRvci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vb2JqZWN0X21vbml0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vb2JqZWN0X21vbml0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9vYmplY3RfbW9uaXRvci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vb2JqZWN0X21vbml0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9vYmplY3RfbW9uaXRvci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTExNDAsNiArMTE0Niw3IEBACiAuL29iamVjdF9tb25pdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9vYmplY3RfbW9uaXRvci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vb2JqZWN0X21vbml0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9vYmplY3RfbW9uaXRvci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL29iamVjdF9tb25pdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vb2JqZWN0X21vbml0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vb2JqZWN0X21vbml0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTExNzQsNiArMTE4MSw3IEBACiAuL29iamVjdF9tb25pdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9vYmplY3RfbW9uaXRvci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vb2JqZWN0X21vbml0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9vYmplY3RfbW9uaXRvci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9vYmplY3RfbW9uaXRvci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9vYmplY3RfbW9uaXRvci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL29iamVjdF9tb25pdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTEyMTQsNiArMTIyMiw3IEBACiAuL29iamVjdF9tb25pdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL29iamVjdF9tb25pdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L29iamVjdF9tb25pdG9yLmgKIC4vc25tcF9hZ2VudC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9zbm1wX2FnZW50LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcF9hZ2VudC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL3NubXBfYWdlbnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9zbm1wX2FnZW50LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTEyMzMsMTEgKzEyNDIsOCBAQAogLi9zbm1wX2FnZW50LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vc25tcF9hZ2VudC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3NubXBfYWdlbnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3NubXBfYWdlbnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vc25tcF9hZ2VudC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBfYWdlbnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9zbm1wX2FnZW50LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9zbm1wX2FnZW50LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3NubXBfYWdlbnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9zbm1wX2FnZW50LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9zbm1wX2FnZW50LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vc25tcF9hZ2VudC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTEyODEsNiArMTI4Nyw3IEBACiAuL3NubXBfYWdlbnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NubXBfYWdlbnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NubXBfYWdlbnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zbm1wX2FnZW50LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NubXBfYWdlbnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc25tcF9hZ2VudC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3NubXBfYWdlbnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTMyMCwxMCArMTMyNywxMCBAQAogLi9zbm1wX2FnZW50LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oCiAuL3NubXBfYWdlbnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmggc25tcGQuaAogLi9zbm1wX2FnZW50LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVzLmgKLS4vc25tcF9hZ2VudC5sbzogLi4vYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmgKLS4vc25tcF9hZ2VudC5sbzogLi4vYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oCiAuL3NubXBfYWdlbnQubG86IC4uL2FnZW50L21pYmdyb3VwL3NtdXgvc211eC5oCi0uL3NubXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAorLi9zbm1wZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9zbm1wZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCisuL3NubXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKIC4vc25tcGQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaAogLi9zbm1wZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgKIC4vc25tcGQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaApAQCAtMTM0MCwxMSArMTM0Nyw4IEBACiAuL3NubXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vc25tcGQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zbm1wZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcGQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vc25tcGQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zbm1wZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9zbm1wZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zbm1wZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9zbm1wZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3NubXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMTM4Nyw2ICsxMzkxLDcgQEAKIC4vc25tcGQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NubXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zbm1wZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NubXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NubXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NubXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vc25tcGQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTQyNiwxNzEgKzE0MzEsNyBAQAogLi9zbm1wZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaAogLi9zbm1wZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi9zbm1wZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oIG0ybS5oIHNubXBkLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL3N0cnVjdC5oIC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZXMuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvdXRpbF9mdW5jcy5oIG1pYmdyb3VwL3V0aWxfZnVuY3MvRXhpdC5oCi0uL3NubXBkLmxvOiBtaWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC91dGlsX2Z1bmNzL3Jlc3RhcnQuaCBtaWJncm91cC9zdHJ1Y3QuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvdXRpbF9mdW5jcy9NSUJfU1RBVFNfQ0FDSEVfVElNRU9VVC5oCi0uL3NubXBkLmxvOiAuLi9hZ2VudC9taWJncm91cC9taWJfbW9kdWxlX2luY2x1ZGVzLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCBtaWJncm91cC90ZXN0aGFuZGxlci5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaCBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuaCBtaWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5oIG1pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2hvc3QvaHJfb3RoZXIuaCBtaWJncm91cC9ob3N0L2hyX3Byb2MuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmggbWliZ3JvdXAvaG9zdC9ocl9wcmludC5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9ob3N0L2hyX2Rpc2suaCBtaWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmggbWliZ3JvdXAvZXhhbXBsZXMvd2F0Y2hlZC5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5oIG1pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvUm1vbi9yb3dzLmggbWliZ3JvdXAvUm1vbi9hZ3V0aWwuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmggbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL1Jtb24vaGlzdG9yeS5oIG1pYmdyb3VwL1Jtb24vZXZlbnQuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVNjYWxhcnMuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuaAotLi9zbm1wZC5sbzogLi4vYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzQ29uZi5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5oIG1pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuaCBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuaCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCBtaWJncm91cC9taWJJSS9hdC5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9taWJJSS9pcC5oIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5oIG1pYmdyb3VwL21pYklJL2F0LmgKLS4vc25tcGQubG86IG1pYmdyb3VwL21pYklJL3RjcC5oIG1pYmdyb3VwL21pYklJL2ljbXAuaCBtaWJncm91cC9taWJJSS91ZHAuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmggbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvbWliSUkvaXB2Ni5oIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaAotLi9zbm1wZC5sbzogLi4vYWdlbnQvbWliZ3JvdXAvbWliZGVmcy5oIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCBtaWJncm91cC91Y2Qtc25tcC9wYXNzLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oIG1pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmggbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oIG1pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmggbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmggbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgKLS4vc25tcGQubG86IG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5oCi0uL3NubXBkLmxvOiBtaWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmggbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9hZ2VudC9uc0NhY2hlLmggbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuaCBtaWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuaCBtaWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmgKLS4vc25tcGQubG86IG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oIG1pYmdyb3VwL21pYklJL3RjcFRhYmxlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL21pYklJL3VkcFRhYmxlLmggbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2NvbnN0YW50cy5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oCi0uL3NubXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgKLS4vc25tcGQubG86IC4uL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgKLS4vc25tcGQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfY29uc3RhbnRzLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGUuaAotLi9zbm1wZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9vaWRzLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9lbnVtcy5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50ZXJmYWNlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9hY2Nlc3MuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdGFfZ2V0LmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaAotLi9zbm1wZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdGFudHMuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgKLS4vc25tcGQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBzdGF0cy5oCi0uL3NubXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2NvbnN0YW50cy5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmgKLS4vc25tcGQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc2NvcGV6b25lLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9vaWRzLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9lbnVtcy5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfZGF0YV9hY2Nlc3MuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9vaWRzLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9lbnVtcy5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfZ2V0LmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oCi0uL3NubXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmgKLS4vc25tcGQubG86IC4uL2FnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmgKLS4vc25tcGQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oCi0uL3NubXBkLmxvOiBtaWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfY29uc3RhbnRzLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5oCi0uL3NubXBkLmxvOiBtaWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5oCi0uL3NubXBkLmxvOiBtaWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9jb25zdGFudHMuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmgKLS4vc25tcGQubG86IG1pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2NvbnN0YW50cy5oCi0uL3NubXBkLmxvOiBtaWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuaAotLi9zbm1wZC5sbzogbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oIG1pYmdyb3VwL3NtdXgvc211eC5oCisuL3NubXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVzLmggbWliZ3JvdXAvc211eC9zbXV4LmgKIC4vc25tcF9wZXJsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL3NubXBfcGVybC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL3NubXBfcGVybC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oIC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMTYxMCwxMSArMTQ1MSw4IEBACiAuL3NubXBfcGVybC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3NubXBfcGVybC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3NubXBfcGVybC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcF9wZXJsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3NubXBfcGVybC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBfcGVybC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBfcGVybC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vc25tcF9wZXJsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3NubXBfcGVybC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXBfcGVybC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vc25tcF9wZXJsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vc25tcF9wZXJsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMTYyNCw2ICsxNDYyLDcgQEAKIC4vc25tcF9wZXJsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbm1wX3BlcmwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NubXBfcGVybC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NubXBfcGVybC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXBfcGVybC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NubXBfcGVybC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zbm1wX3BlcmwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTE2NTgsNiArMTQ5Nyw3IEBACiAuL3NubXBfcGVybC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc25tcF9wZXJsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zbm1wX3BlcmwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zbm1wX3BlcmwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc25tcF9wZXJsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NubXBfcGVybC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3NubXBfcGVybC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xNzE2LDExICsxNTU2LDggQEAKIC4vc25tcF92YXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vc25tcF92YXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vc25tcF92YXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9zbm1wX3ZhcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vc25tcF92YXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vc25tcF92YXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vc25tcF92YXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9zbm1wX3ZhcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vc25tcF92YXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vc25tcF92YXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9zbm1wX3ZhcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9zbm1wX3ZhcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0xNzMwLDYgKzE1NjcsNyBAQAogLi9zbm1wX3ZhcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3NubXBfdmFycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc25tcF92YXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc25tcF92YXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcF92YXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc25tcF92YXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NubXBfdmFycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTc2NCw2ICsxNjAyLDcgQEAKIC4vc25tcF92YXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zbm1wX3ZhcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NubXBfdmFycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NubXBfdmFycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zbm1wX3ZhcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc25tcF92YXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vc25tcF92YXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE4MTIsNiArMTY1MSw3IEBACiAuL3NubXBfdmFycy5sbzogbWliZ3JvdXAvc25tcHYzL3VzbUNvbmYuaCBtaWJncm91cC9taWJJSS92YWNtX2NvbmYuaAogLi9zbm1wX3ZhcnMubG86IHNubXBfcGVybC5oIC4uL2FnZW50L21pYmdyb3VwL2FnZW50X21vZHVsZV9pbml0cy5oCiAuL2hlbHBlcnMvYWxsX2hlbHBlcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vaGVscGVycy9hbGxfaGVscGVycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2hlbHBlcnMvYWxsX2hlbHBlcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9oZWxwZXJzL2FsbF9oZWxwZXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vaGVscGVycy9hbGxfaGVscGVycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0xODMxLDExICsxNjcxLDggQEAKIC4vaGVscGVycy9hbGxfaGVscGVycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL2hlbHBlcnMvYWxsX2hlbHBlcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9oZWxwZXJzL2FsbF9oZWxwZXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9oZWxwZXJzL2FsbF9oZWxwZXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL2hlbHBlcnMvYWxsX2hlbHBlcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9oZWxwZXJzL2FsbF9oZWxwZXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vaGVscGVycy9hbGxfaGVscGVycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vaGVscGVycy9hbGxfaGVscGVycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9oZWxwZXJzL2FsbF9oZWxwZXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vaGVscGVycy9hbGxfaGVscGVycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vaGVscGVycy9hbGxfaGVscGVycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvYWxsX2hlbHBlcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0xODc5LDYgKzE3MTYsNyBAQAogLi9oZWxwZXJzL2FsbF9oZWxwZXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9oZWxwZXJzL2FsbF9oZWxwZXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9oZWxwZXJzL2FsbF9oZWxwZXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaGVscGVycy9hbGxfaGVscGVycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9oZWxwZXJzL2FsbF9oZWxwZXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2hlbHBlcnMvYWxsX2hlbHBlcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9oZWxwZXJzL2FsbF9oZWxwZXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE5MTksNiArMTc1Nyw3IEBACiAuL2hlbHBlcnMvYWxsX2hlbHBlcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKIC4vaGVscGVycy9hbGxfaGVscGVycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF9jYWNoZS5oCiAuL2hlbHBlcnMvYmFieV9zdGVwcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9oZWxwZXJzL2JhYnlfc3RlcHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9oZWxwZXJzL2JhYnlfc3RlcHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9oZWxwZXJzL2JhYnlfc3RlcHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9oZWxwZXJzL2JhYnlfc3RlcHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMTkzOCwxMSArMTc3Nyw4IEBACiAuL2hlbHBlcnMvYmFieV9zdGVwcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL2hlbHBlcnMvYmFieV9zdGVwcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2hlbHBlcnMvYmFieV9zdGVwcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vaGVscGVycy9iYWJ5X3N0ZXBzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL2hlbHBlcnMvYmFieV9zdGVwcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvYmFieV9zdGVwcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvYmFieV9zdGVwcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vaGVscGVycy9iYWJ5X3N0ZXBzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2hlbHBlcnMvYmFieV9zdGVwcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvYmFieV9zdGVwcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vaGVscGVycy9iYWJ5X3N0ZXBzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vaGVscGVycy9iYWJ5X3N0ZXBzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMTk4Niw2ICsxODIyLDcgQEAKIC4vaGVscGVycy9iYWJ5X3N0ZXBzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9oZWxwZXJzL2JhYnlfc3RlcHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hlbHBlcnMvYmFieV9zdGVwcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2hlbHBlcnMvYmFieV9zdGVwcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9oZWxwZXJzL2JhYnlfc3RlcHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaGVscGVycy9iYWJ5X3N0ZXBzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vaGVscGVycy9iYWJ5X3N0ZXBzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTIwNDQsMTEgKzE4ODEsOCBAQAogLi9oZWxwZXJzL2J1bGtfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL2hlbHBlcnMvYnVsa190b19uZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vaGVscGVycy9idWxrX3RvX25leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL2hlbHBlcnMvYnVsa190b19uZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL2hlbHBlcnMvYnVsa190b19uZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vaGVscGVycy9idWxrX3RvX25leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9oZWxwZXJzL2J1bGtfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vaGVscGVycy9idWxrX3RvX25leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vaGVscGVycy9idWxrX3RvX25leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9oZWxwZXJzL2J1bGtfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vaGVscGVycy9idWxrX3RvX25leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9oZWxwZXJzL2J1bGtfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTIwNTgsNiArMTg5Miw3IEBACiAuL2hlbHBlcnMvYnVsa190b19uZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9oZWxwZXJzL2J1bGtfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vaGVscGVycy9idWxrX3RvX25leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9oZWxwZXJzL2J1bGtfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2hlbHBlcnMvYnVsa190b19uZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vaGVscGVycy9idWxrX3RvX25leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vaGVscGVycy9idWxrX3RvX25leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTIwOTIsNiArMTkyNyw3IEBACiAuL2hlbHBlcnMvYnVsa190b19uZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9oZWxwZXJzL2J1bGtfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vaGVscGVycy9idWxrX3RvX25leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9oZWxwZXJzL2J1bGtfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9oZWxwZXJzL2J1bGtfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9oZWxwZXJzL2J1bGtfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL2hlbHBlcnMvYnVsa190b19uZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTIxMzEsNiArMTk2Nyw3IEBACiAuL2hlbHBlcnMvYnVsa190b19uZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oCiAuL2hlbHBlcnMvYnVsa190b19uZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL2hlbHBlcnMvY2FjaGVfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9oZWxwZXJzL2NhY2hlX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9oZWxwZXJzL2NhY2hlX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9oZWxwZXJzL2NhY2hlX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9oZWxwZXJzL2NhY2hlX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMjE1MCwxMSArMTk4Nyw4IEBACiAuL2hlbHBlcnMvY2FjaGVfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL2hlbHBlcnMvY2FjaGVfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2hlbHBlcnMvY2FjaGVfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vaGVscGVycy9jYWNoZV9oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL2hlbHBlcnMvY2FjaGVfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvY2FjaGVfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvY2FjaGVfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vaGVscGVycy9jYWNoZV9oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2hlbHBlcnMvY2FjaGVfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvY2FjaGVfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vaGVscGVycy9jYWNoZV9oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vaGVscGVycy9jYWNoZV9oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjE5OCw2ICsyMDMyLDcgQEAKIC4vaGVscGVycy9jYWNoZV9oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9oZWxwZXJzL2NhY2hlX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hlbHBlcnMvY2FjaGVfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2hlbHBlcnMvY2FjaGVfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9oZWxwZXJzL2NhY2hlX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaGVscGVycy9jYWNoZV9oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vaGVscGVycy9jYWNoZV9oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTIyNTYsMTEgKzIwOTEsOCBAQAogLi9oZWxwZXJzL2RlYnVnX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9oZWxwZXJzL2RlYnVnX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9oZWxwZXJzL2RlYnVnX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL2hlbHBlcnMvZGVidWdfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9oZWxwZXJzL2RlYnVnX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9oZWxwZXJzL2RlYnVnX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9oZWxwZXJzL2RlYnVnX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvZGVidWdfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9oZWxwZXJzL2RlYnVnX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9oZWxwZXJzL2RlYnVnX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2hlbHBlcnMvZGVidWdfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvZGVidWdfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTIyNzAsNiArMjEwMiw3IEBACiAuL2hlbHBlcnMvZGVidWdfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vaGVscGVycy9kZWJ1Z19oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9oZWxwZXJzL2RlYnVnX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9oZWxwZXJzL2RlYnVnX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9oZWxwZXJzL2RlYnVnX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9oZWxwZXJzL2RlYnVnX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vaGVscGVycy9kZWJ1Z19oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0yMzA0LDYgKzIxMzcsNyBAQAogLi9oZWxwZXJzL2RlYnVnX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2hlbHBlcnMvZGVidWdfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vaGVscGVycy9kZWJ1Z19oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaGVscGVycy9kZWJ1Z19oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2hlbHBlcnMvZGVidWdfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9oZWxwZXJzL2RlYnVnX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9oZWxwZXJzL2RlYnVnX2hhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMjM0Myw2ICsyMTc3LDcgQEAKIC4vaGVscGVycy9kZWJ1Z19oYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oCiAuL2hlbHBlcnMvZGVidWdfaGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi9oZWxwZXJzL2luc3RhbmNlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2hlbHBlcnMvaW5zdGFuY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9oZWxwZXJzL2luc3RhbmNlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vaGVscGVycy9pbnN0YW5jZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL2hlbHBlcnMvaW5zdGFuY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMjM2MiwxMSArMjE5Nyw4IEBACiAuL2hlbHBlcnMvaW5zdGFuY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9oZWxwZXJzL2luc3RhbmNlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vaGVscGVycy9pbnN0YW5jZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vaGVscGVycy9pbnN0YW5jZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9oZWxwZXJzL2luc3RhbmNlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vaGVscGVycy9pbnN0YW5jZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvaW5zdGFuY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvaW5zdGFuY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vaGVscGVycy9pbnN0YW5jZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvaW5zdGFuY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2hlbHBlcnMvaW5zdGFuY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9oZWxwZXJzL2luc3RhbmNlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjQxMCw2ICsyMjQyLDcgQEAKIC4vaGVscGVycy9pbnN0YW5jZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vaGVscGVycy9pbnN0YW5jZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vaGVscGVycy9pbnN0YW5jZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2hlbHBlcnMvaW5zdGFuY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vaGVscGVycy9pbnN0YW5jZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9oZWxwZXJzL2luc3RhbmNlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vaGVscGVycy9pbnN0YW5jZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0yNDQ5LDYgKzIyODIsNyBAQAogLi9oZWxwZXJzL2luc3RhbmNlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oCiAuL2hlbHBlcnMvaW5zdGFuY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKIC4vaGVscGVycy9tb2RlX2VuZF9jYWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0yNDY4LDExICsyMzAyLDggQEAKIC4vaGVscGVycy9tb2RlX2VuZF9jYWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vaGVscGVycy9tb2RlX2VuZF9jYWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vaGVscGVycy9tb2RlX2VuZF9jYWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9oZWxwZXJzL21vZGVfZW5kX2NhbGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vaGVscGVycy9tb2RlX2VuZF9jYWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vaGVscGVycy9tb2RlX2VuZF9jYWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vaGVscGVycy9tb2RlX2VuZF9jYWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9oZWxwZXJzL21vZGVfZW5kX2NhbGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vaGVscGVycy9tb2RlX2VuZF9jYWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vaGVscGVycy9tb2RlX2VuZF9jYWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9oZWxwZXJzL21vZGVfZW5kX2NhbGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9oZWxwZXJzL21vZGVfZW5kX2NhbGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0yNTE2LDYgKzIzNDcsNyBAQAogLi9oZWxwZXJzL21vZGVfZW5kX2NhbGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vaGVscGVycy9tb2RlX2VuZF9jYWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaGVscGVycy9tb2RlX2VuZF9jYWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9oZWxwZXJzL21vZGVfZW5kX2NhbGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9oZWxwZXJzL21vZGVfZW5kX2NhbGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMjU3NCwxMSArMjQwNiw4IEBACiAuL2hlbHBlcnMvbXVsdGlwbGV4ZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9oZWxwZXJzL211bHRpcGxleGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vaGVscGVycy9tdWx0aXBsZXhlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vaGVscGVycy9tdWx0aXBsZXhlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9oZWxwZXJzL211bHRpcGxleGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vaGVscGVycy9tdWx0aXBsZXhlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvbXVsdGlwbGV4ZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvbXVsdGlwbGV4ZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vaGVscGVycy9tdWx0aXBsZXhlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvbXVsdGlwbGV4ZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2hlbHBlcnMvbXVsdGlwbGV4ZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9oZWxwZXJzL211bHRpcGxleGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjU4OCw2ICsyNDE3LDcgQEAKIC4vaGVscGVycy9tdWx0aXBsZXhlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vaGVscGVycy9tdWx0aXBsZXhlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vaGVscGVycy9tdWx0aXBsZXhlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL2hlbHBlcnMvbXVsdGlwbGV4ZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9oZWxwZXJzL211bHRpcGxleGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vaGVscGVycy9tdWx0aXBsZXhlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9oZWxwZXJzL211bHRpcGxleGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0yNjIyLDYgKzI0NTIsNyBAQAogLi9oZWxwZXJzL211bHRpcGxleGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9oZWxwZXJzL211bHRpcGxleGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9oZWxwZXJzL211bHRpcGxleGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaGVscGVycy9tdWx0aXBsZXhlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9oZWxwZXJzL211bHRpcGxleGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2hlbHBlcnMvbXVsdGlwbGV4ZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9oZWxwZXJzL211bHRpcGxleGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTI2ODAsMTEgKzI1MTEsOCBAQAogLi9oZWxwZXJzL251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9oZWxwZXJzL251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9oZWxwZXJzL251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL2hlbHBlcnMvbnVsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9oZWxwZXJzL251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9oZWxwZXJzL251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9oZWxwZXJzL251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvbnVsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9oZWxwZXJzL251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9oZWxwZXJzL251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2hlbHBlcnMvbnVsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvbnVsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTI2OTQsNiArMjUyMiw3IEBACiAuL2hlbHBlcnMvbnVsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vaGVscGVycy9udWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9oZWxwZXJzL251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9oZWxwZXJzL251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9oZWxwZXJzL251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9oZWxwZXJzL251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vaGVscGVycy9udWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0yNzI4LDYgKzI1NTcsNyBAQAogLi9oZWxwZXJzL251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2hlbHBlcnMvbnVsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vaGVscGVycy9udWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaGVscGVycy9udWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2hlbHBlcnMvbnVsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9oZWxwZXJzL251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9oZWxwZXJzL251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMjc4NiwxMSArMjYxNiw4IEBACiAuL2hlbHBlcnMvb2xkX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL2hlbHBlcnMvb2xkX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2hlbHBlcnMvb2xkX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vaGVscGVycy9vbGRfYXBpLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL2hlbHBlcnMvb2xkX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvb2xkX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvb2xkX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vaGVscGVycy9vbGRfYXBpLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2hlbHBlcnMvb2xkX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvb2xkX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vaGVscGVycy9vbGRfYXBpLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vaGVscGVycy9vbGRfYXBpLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjgwMCw2ICsyNjI3LDcgQEAKIC4vaGVscGVycy9vbGRfYXBpLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9oZWxwZXJzL29sZF9hcGkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL2hlbHBlcnMvb2xkX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL2hlbHBlcnMvb2xkX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2hlbHBlcnMvb2xkX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL2hlbHBlcnMvb2xkX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9oZWxwZXJzL29sZF9hcGkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTI4MzQsNiArMjY2Miw3IEBACiAuL2hlbHBlcnMvb2xkX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vaGVscGVycy9vbGRfYXBpLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9oZWxwZXJzL29sZF9hcGkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9oZWxwZXJzL29sZF9hcGkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vaGVscGVycy9vbGRfYXBpLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2hlbHBlcnMvb2xkX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL2hlbHBlcnMvb2xkX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0yODkzLDExICsyNzIyLDggQEAKIC4vaGVscGVycy9yZWFkX29ubHkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9oZWxwZXJzL3JlYWRfb25seS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2hlbHBlcnMvcmVhZF9vbmx5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9oZWxwZXJzL3JlYWRfb25seS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9oZWxwZXJzL3JlYWRfb25seS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvcmVhZF9vbmx5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vaGVscGVycy9yZWFkX29ubHkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvcmVhZF9vbmx5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2hlbHBlcnMvcmVhZF9vbmx5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vaGVscGVycy9yZWFkX29ubHkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2hlbHBlcnMvcmVhZF9vbmx5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vaGVscGVycy9yZWFkX29ubHkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0yOTA3LDYgKzI3MzMsNyBAQAogLi9oZWxwZXJzL3JlYWRfb25seS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vaGVscGVycy9yZWFkX29ubHkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL2hlbHBlcnMvcmVhZF9vbmx5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vaGVscGVycy9yZWFkX29ubHkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9oZWxwZXJzL3JlYWRfb25seS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL2hlbHBlcnMvcmVhZF9vbmx5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2hlbHBlcnMvcmVhZF9vbmx5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0yOTQxLDYgKzI3NjgsNyBAQAogLi9oZWxwZXJzL3JlYWRfb25seS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vaGVscGVycy9yZWFkX29ubHkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hlbHBlcnMvcmVhZF9vbmx5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaGVscGVycy9yZWFkX29ubHkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vaGVscGVycy9yZWFkX29ubHkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaGVscGVycy9yZWFkX29ubHkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9oZWxwZXJzL3JlYWRfb25seS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0yOTgwLDYgKzI4MDgsNyBAQAogLi9oZWxwZXJzL3JlYWRfb25seS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaAogLi9oZWxwZXJzL3JlYWRfb25seS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi9oZWxwZXJzL3Jvd19tZXJnZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9oZWxwZXJzL3Jvd19tZXJnZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2hlbHBlcnMvcm93X21lcmdlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vaGVscGVycy9yb3dfbWVyZ2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9oZWxwZXJzL3Jvd19tZXJnZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0yOTk5LDExICsyODI4LDggQEAKIC4vaGVscGVycy9yb3dfbWVyZ2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9oZWxwZXJzL3Jvd19tZXJnZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2hlbHBlcnMvcm93X21lcmdlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9oZWxwZXJzL3Jvd19tZXJnZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9oZWxwZXJzL3Jvd19tZXJnZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvcm93X21lcmdlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vaGVscGVycy9yb3dfbWVyZ2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvcm93X21lcmdlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2hlbHBlcnMvcm93X21lcmdlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vaGVscGVycy9yb3dfbWVyZ2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2hlbHBlcnMvcm93X21lcmdlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vaGVscGVycy9yb3dfbWVyZ2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0zMDQ3LDYgKzI4NzMsNyBAQAogLi9oZWxwZXJzL3Jvd19tZXJnZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vaGVscGVycy9yb3dfbWVyZ2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hlbHBlcnMvcm93X21lcmdlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaGVscGVycy9yb3dfbWVyZ2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vaGVscGVycy9yb3dfbWVyZ2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaGVscGVycy9yb3dfbWVyZ2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9oZWxwZXJzL3Jvd19tZXJnZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0zMTA1LDExICsyOTMyLDggQEAKIC4vaGVscGVycy9zY2FsYXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9oZWxwZXJzL3NjYWxhci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2hlbHBlcnMvc2NhbGFyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9oZWxwZXJzL3NjYWxhci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9oZWxwZXJzL3NjYWxhci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvc2NhbGFyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vaGVscGVycy9zY2FsYXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvc2NhbGFyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2hlbHBlcnMvc2NhbGFyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vaGVscGVycy9zY2FsYXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2hlbHBlcnMvc2NhbGFyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vaGVscGVycy9zY2FsYXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0zMTE5LDYgKzI5NDMsNyBAQAogLi9oZWxwZXJzL3NjYWxhci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vaGVscGVycy9zY2FsYXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL2hlbHBlcnMvc2NhbGFyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vaGVscGVycy9zY2FsYXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9oZWxwZXJzL3NjYWxhci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL2hlbHBlcnMvc2NhbGFyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2hlbHBlcnMvc2NhbGFyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0zMTUzLDYgKzI5NzgsNyBAQAogLi9oZWxwZXJzL3NjYWxhci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vaGVscGVycy9zY2FsYXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hlbHBlcnMvc2NhbGFyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaGVscGVycy9zY2FsYXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vaGVscGVycy9zY2FsYXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaGVscGVycy9zY2FsYXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9oZWxwZXJzL3NjYWxhci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0zMjExLDExICszMDM3LDggQEAKIC4vaGVscGVycy9zY2FsYXJfZ3JvdXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9oZWxwZXJzL3NjYWxhcl9ncm91cC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2hlbHBlcnMvc2NhbGFyX2dyb3VwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9oZWxwZXJzL3NjYWxhcl9ncm91cC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9oZWxwZXJzL3NjYWxhcl9ncm91cC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvc2NhbGFyX2dyb3VwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vaGVscGVycy9zY2FsYXJfZ3JvdXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvc2NhbGFyX2dyb3VwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2hlbHBlcnMvc2NhbGFyX2dyb3VwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vaGVscGVycy9zY2FsYXJfZ3JvdXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2hlbHBlcnMvc2NhbGFyX2dyb3VwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vaGVscGVycy9zY2FsYXJfZ3JvdXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0zMjI1LDYgKzMwNDgsNyBAQAogLi9oZWxwZXJzL3NjYWxhcl9ncm91cC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vaGVscGVycy9zY2FsYXJfZ3JvdXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL2hlbHBlcnMvc2NhbGFyX2dyb3VwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vaGVscGVycy9zY2FsYXJfZ3JvdXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9oZWxwZXJzL3NjYWxhcl9ncm91cC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL2hlbHBlcnMvc2NhbGFyX2dyb3VwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2hlbHBlcnMvc2NhbGFyX2dyb3VwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0zMjU5LDYgKzMwODMsNyBAQAogLi9oZWxwZXJzL3NjYWxhcl9ncm91cC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vaGVscGVycy9zY2FsYXJfZ3JvdXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hlbHBlcnMvc2NhbGFyX2dyb3VwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaGVscGVycy9zY2FsYXJfZ3JvdXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vaGVscGVycy9zY2FsYXJfZ3JvdXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaGVscGVycy9zY2FsYXJfZ3JvdXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9oZWxwZXJzL3NjYWxhcl9ncm91cC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0zMzE3LDExICszMTQyLDggQEAKIC4vaGVscGVycy9zZXJpYWxpemUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9oZWxwZXJzL3NlcmlhbGl6ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2hlbHBlcnMvc2VyaWFsaXplLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9oZWxwZXJzL3NlcmlhbGl6ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9oZWxwZXJzL3NlcmlhbGl6ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvc2VyaWFsaXplLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vaGVscGVycy9zZXJpYWxpemUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvc2VyaWFsaXplLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2hlbHBlcnMvc2VyaWFsaXplLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vaGVscGVycy9zZXJpYWxpemUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2hlbHBlcnMvc2VyaWFsaXplLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vaGVscGVycy9zZXJpYWxpemUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0zMzMxLDYgKzMxNTMsNyBAQAogLi9oZWxwZXJzL3NlcmlhbGl6ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vaGVscGVycy9zZXJpYWxpemUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL2hlbHBlcnMvc2VyaWFsaXplLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vaGVscGVycy9zZXJpYWxpemUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9oZWxwZXJzL3NlcmlhbGl6ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL2hlbHBlcnMvc2VyaWFsaXplLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2hlbHBlcnMvc2VyaWFsaXplLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0zMzY1LDYgKzMxODgsNyBAQAogLi9oZWxwZXJzL3NlcmlhbGl6ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vaGVscGVycy9zZXJpYWxpemUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hlbHBlcnMvc2VyaWFsaXplLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaGVscGVycy9zZXJpYWxpemUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vaGVscGVycy9zZXJpYWxpemUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaGVscGVycy9zZXJpYWxpemUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9oZWxwZXJzL3NlcmlhbGl6ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0zNDA0LDYgKzMyMjgsNyBAQAogLi9oZWxwZXJzL3NlcmlhbGl6ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaAogLi9oZWxwZXJzL3NlcmlhbGl6ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0zNDIzLDExICszMjQ4LDggQEAKIC4vaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0zNDcxLDYgKzMyOTMsNyBAQAogLi9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0zNTEwLDYgKzMzMzMsNyBAQAogLi9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaAogLi9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi9oZWxwZXJzL3N0YXNoX2NhY2hlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2hlbHBlcnMvc3Rhc2hfY2FjaGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9oZWxwZXJzL3N0YXNoX2NhY2hlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vaGVscGVycy9zdGFzaF9jYWNoZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL2hlbHBlcnMvc3Rhc2hfY2FjaGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMzUyOSwxMSArMzM1Myw4IEBACiAuL2hlbHBlcnMvc3Rhc2hfY2FjaGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9oZWxwZXJzL3N0YXNoX2NhY2hlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vaGVscGVycy9zdGFzaF9jYWNoZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vaGVscGVycy9zdGFzaF9jYWNoZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9oZWxwZXJzL3N0YXNoX2NhY2hlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vaGVscGVycy9zdGFzaF9jYWNoZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvc3Rhc2hfY2FjaGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvc3Rhc2hfY2FjaGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vaGVscGVycy9zdGFzaF9jYWNoZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvc3Rhc2hfY2FjaGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2hlbHBlcnMvc3Rhc2hfY2FjaGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9oZWxwZXJzL3N0YXNoX2NhY2hlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMzU3Nyw2ICszMzk4LDcgQEAKIC4vaGVscGVycy9zdGFzaF9jYWNoZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vaGVscGVycy9zdGFzaF9jYWNoZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vaGVscGVycy9zdGFzaF9jYWNoZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2hlbHBlcnMvc3Rhc2hfY2FjaGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vaGVscGVycy9zdGFzaF9jYWNoZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9oZWxwZXJzL3N0YXNoX2NhY2hlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vaGVscGVycy9zdGFzaF9jYWNoZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0zNjE1LDkgKzM0MzcsMTAgQEAKIC4vaGVscGVycy9zdGFzaF9jYWNoZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oCiAuL2hlbHBlcnMvc3Rhc2hfY2FjaGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgKIC4vaGVscGVycy9zdGFzaF9jYWNoZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAotLi9oZWxwZXJzL3N0YXNoX2NhY2hlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX2NhY2hlLmgKIC4vaGVscGVycy9zdGFzaF9jYWNoZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF90b19uZXh0LmgKKy4vaGVscGVycy9zdGFzaF9jYWNoZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF9jYWNoZS5oCiAuL2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9oZWxwZXJzL3N0YXNoX3RvX25leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9oZWxwZXJzL3N0YXNoX3RvX25leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9oZWxwZXJzL3N0YXNoX3RvX25leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9oZWxwZXJzL3N0YXNoX3RvX25leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMzYzNywxMSArMzQ2MCw4IEBACiAuL2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vaGVscGVycy9zdGFzaF90b19uZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vaGVscGVycy9zdGFzaF90b19uZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vaGVscGVycy9zdGFzaF90b19uZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vaGVscGVycy9zdGFzaF90b19uZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMzY4NSw2ICszNTA1LDcgQEAKIC4vaGVscGVycy9zdGFzaF90b19uZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9oZWxwZXJzL3N0YXNoX3RvX25leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9oZWxwZXJzL3N0YXNoX3RvX25leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaGVscGVycy9zdGFzaF90b19uZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vaGVscGVycy9zdGFzaF90b19uZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTM3MjYsNiArMzU0Nyw3IEBACiAuL2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF90b19uZXh0LmgKIC4vaGVscGVycy9zdGFzaF90b19uZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX2NhY2hlLmgKIC4vaGVscGVycy90YWJsZV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9oZWxwZXJzL3RhYmxlX2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vaGVscGVycy90YWJsZV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL2hlbHBlcnMvdGFibGVfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9oZWxwZXJzL3RhYmxlX2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTM3NDUsMTEgKzM1NjcsOCBAQAogLi9oZWxwZXJzL3RhYmxlX2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vaGVscGVycy90YWJsZV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2hlbHBlcnMvdGFibGVfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL2hlbHBlcnMvdGFibGVfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vaGVscGVycy90YWJsZV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvdGFibGVfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9oZWxwZXJzL3RhYmxlX2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9oZWxwZXJzL3RhYmxlX2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2hlbHBlcnMvdGFibGVfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9oZWxwZXJzL3RhYmxlX2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9oZWxwZXJzL3RhYmxlX2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vaGVscGVycy90YWJsZV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTM3OTMsNiArMzYxMiw3IEBACiAuL2hlbHBlcnMvdGFibGVfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2hlbHBlcnMvdGFibGVfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hlbHBlcnMvdGFibGVfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9oZWxwZXJzL3RhYmxlX2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2hlbHBlcnMvdGFibGVfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaGVscGVycy90YWJsZV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL2hlbHBlcnMvdGFibGVfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMzgzMiw2ICszNjUyLDcgQEAKIC4vaGVscGVycy90YWJsZV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaAogLi9oZWxwZXJzL3RhYmxlX2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL2hlbHBlcnMvdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vaGVscGVycy90YWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2hlbHBlcnMvdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9oZWxwZXJzL3RhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vaGVscGVycy90YWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0zODUxLDExICszNjcyLDggQEAKIC4vaGVscGVycy90YWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL2hlbHBlcnMvdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9oZWxwZXJzL3RhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9oZWxwZXJzL3RhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL2hlbHBlcnMvdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9oZWxwZXJzL3RhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vaGVscGVycy90YWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vaGVscGVycy90YWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9oZWxwZXJzL3RhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vaGVscGVycy90YWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vaGVscGVycy90YWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0zODk5LDYgKzM3MTcsNyBAQAogLi9oZWxwZXJzL3RhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9oZWxwZXJzL3RhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9oZWxwZXJzL3RhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaGVscGVycy90YWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9oZWxwZXJzL3RhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2hlbHBlcnMvdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9oZWxwZXJzL3RhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTM5MzgsNiArMzc1Nyw3IEBACiAuL2hlbHBlcnMvdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgKIC4vaGVscGVycy90YWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vaGVscGVycy90YWJsZV9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0zOTU3LDExICszNzc3LDggQEAKIC4vaGVscGVycy90YWJsZV9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vaGVscGVycy90YWJsZV9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vaGVscGVycy90YWJsZV9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vaGVscGVycy90YWJsZV9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC00MDA1LDYgKzM4MjIsNyBAQAogLi9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vaGVscGVycy90YWJsZV9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaGVscGVycy90YWJsZV9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vaGVscGVycy90YWJsZV9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaGVscGVycy90YWJsZV9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC00MDQ0LDYgKzM4NjIsNyBAQAogLi9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaAogLi9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi9oZWxwZXJzL3RhYmxlX2RhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vaGVscGVycy90YWJsZV9kYXRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vaGVscGVycy90YWJsZV9kYXRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vaGVscGVycy90YWJsZV9kYXRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vaGVscGVycy90YWJsZV9kYXRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTQwNjMsMTEgKzM4ODIsOCBAQAogLi9oZWxwZXJzL3RhYmxlX2RhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9oZWxwZXJzL3RhYmxlX2RhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9oZWxwZXJzL3RhYmxlX2RhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL2hlbHBlcnMvdGFibGVfZGF0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9oZWxwZXJzL3RhYmxlX2RhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9oZWxwZXJzL3RhYmxlX2RhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9oZWxwZXJzL3RhYmxlX2RhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvdGFibGVfZGF0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9oZWxwZXJzL3RhYmxlX2RhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9oZWxwZXJzL3RhYmxlX2RhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2hlbHBlcnMvdGFibGVfZGF0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvdGFibGVfZGF0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTQxMTEsNiArMzkyNyw3IEBACiAuL2hlbHBlcnMvdGFibGVfZGF0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vaGVscGVycy90YWJsZV9kYXRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9oZWxwZXJzL3RhYmxlX2RhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9oZWxwZXJzL3RhYmxlX2RhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vaGVscGVycy90YWJsZV9kYXRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2hlbHBlcnMvdGFibGVfZGF0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL2hlbHBlcnMvdGFibGVfZGF0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC00MTUwLDYgKzM5NjcsNyBAQAogLi9oZWxwZXJzL3RhYmxlX2RhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgKIC4vaGVscGVycy90YWJsZV9kYXRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL2hlbHBlcnMvdGFibGVfZGF0YXNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9oZWxwZXJzL3RhYmxlX2RhdGFzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9oZWxwZXJzL3RhYmxlX2RhdGFzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9oZWxwZXJzL3RhYmxlX2RhdGFzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9oZWxwZXJzL3RhYmxlX2RhdGFzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtNDE2OSwxMSArMzk4Nyw4IEBACiAuL2hlbHBlcnMvdGFibGVfZGF0YXNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL2hlbHBlcnMvdGFibGVfZGF0YXNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2hlbHBlcnMvdGFibGVfZGF0YXNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vaGVscGVycy90YWJsZV9kYXRhc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL2hlbHBlcnMvdGFibGVfZGF0YXNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvdGFibGVfZGF0YXNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvdGFibGVfZGF0YXNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vaGVscGVycy90YWJsZV9kYXRhc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2hlbHBlcnMvdGFibGVfZGF0YXNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvdGFibGVfZGF0YXNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vaGVscGVycy90YWJsZV9kYXRhc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vaGVscGVycy90YWJsZV9kYXRhc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtNDIxNyw2ICs0MDMyLDcgQEAKIC4vaGVscGVycy90YWJsZV9kYXRhc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9oZWxwZXJzL3RhYmxlX2RhdGFzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hlbHBlcnMvdGFibGVfZGF0YXNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2hlbHBlcnMvdGFibGVfZGF0YXNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9oZWxwZXJzL3RhYmxlX2RhdGFzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaGVscGVycy90YWJsZV9kYXRhc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vaGVscGVycy90YWJsZV9kYXRhc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTQyNTYsNiArNDA3Miw3IEBACiAuL2hlbHBlcnMvdGFibGVfZGF0YXNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaAogLi9oZWxwZXJzL3RhYmxlX2RhdGFzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKIC4vaGVscGVycy90YWJsZV9pdGVyYXRvci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vaGVscGVycy90YWJsZV9pdGVyYXRvci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL2hlbHBlcnMvdGFibGVfaXRlcmF0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTQyNzUsMTEgKzQwOTIsOCBAQAogLi9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vaGVscGVycy90YWJsZV9pdGVyYXRvci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2hlbHBlcnMvdGFibGVfaXRlcmF0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL2hlbHBlcnMvdGFibGVfaXRlcmF0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vaGVscGVycy90YWJsZV9pdGVyYXRvci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvdGFibGVfaXRlcmF0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2hlbHBlcnMvdGFibGVfaXRlcmF0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vaGVscGVycy90YWJsZV9pdGVyYXRvci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTQzMjMsNiArNDEzNyw3IEBACiAuL2hlbHBlcnMvdGFibGVfaXRlcmF0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2hlbHBlcnMvdGFibGVfaXRlcmF0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hlbHBlcnMvdGFibGVfaXRlcmF0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2hlbHBlcnMvdGFibGVfaXRlcmF0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaGVscGVycy90YWJsZV9pdGVyYXRvci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL2hlbHBlcnMvdGFibGVfaXRlcmF0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtNDM2Myw2ICs0MTc4LDcgQEAKIC4vaGVscGVycy90YWJsZV9pdGVyYXRvci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX2NhY2hlLmgKIC4vaGVscGVycy90YWJsZV9yb3cubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vaGVscGVycy90YWJsZV9yb3cubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9oZWxwZXJzL3RhYmxlX3Jvdy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL2hlbHBlcnMvdGFibGVfcm93LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vaGVscGVycy90YWJsZV9yb3cubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtNDM4MiwxMSArNDE5OCw4IEBACiAuL2hlbHBlcnMvdGFibGVfcm93LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vaGVscGVycy90YWJsZV9yb3cubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9oZWxwZXJzL3RhYmxlX3Jvdy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vaGVscGVycy90YWJsZV9yb3cubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vaGVscGVycy90YWJsZV9yb3cubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9oZWxwZXJzL3RhYmxlX3Jvdy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvdGFibGVfcm93LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9oZWxwZXJzL3RhYmxlX3Jvdy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9oZWxwZXJzL3RhYmxlX3Jvdy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvdGFibGVfcm93LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9oZWxwZXJzL3RhYmxlX3Jvdy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvdGFibGVfcm93LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtNDQzMCw2ICs0MjQzLDcgQEAKIC4vaGVscGVycy90YWJsZV9yb3cubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2hlbHBlcnMvdGFibGVfcm93LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9oZWxwZXJzL3RhYmxlX3Jvdy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2hlbHBlcnMvdGFibGVfcm93LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2hlbHBlcnMvdGFibGVfcm93LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2hlbHBlcnMvdGFibGVfcm93LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vaGVscGVycy90YWJsZV9yb3cubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtNDQ2OSw2ICs0MjgzLDcgQEAKIC4vaGVscGVycy90YWJsZV9yb3cubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgKIC4vaGVscGVycy90YWJsZV9yb3cubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKIC4vaGVscGVycy90YWJsZV90ZGF0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9oZWxwZXJzL3RhYmxlX3RkYXRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vaGVscGVycy90YWJsZV90ZGF0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL2hlbHBlcnMvdGFibGVfdGRhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9oZWxwZXJzL3RhYmxlX3RkYXRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTQ0ODgsMTEgKzQzMDMsOCBAQAogLi9oZWxwZXJzL3RhYmxlX3RkYXRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vaGVscGVycy90YWJsZV90ZGF0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2hlbHBlcnMvdGFibGVfdGRhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL2hlbHBlcnMvdGFibGVfdGRhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vaGVscGVycy90YWJsZV90ZGF0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvdGFibGVfdGRhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9oZWxwZXJzL3RhYmxlX3RkYXRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9oZWxwZXJzL3RhYmxlX3RkYXRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2hlbHBlcnMvdGFibGVfdGRhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9oZWxwZXJzL3RhYmxlX3RkYXRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9oZWxwZXJzL3RhYmxlX3RkYXRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vaGVscGVycy90YWJsZV90ZGF0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTQ1MzYsNiArNDM0OCw3IEBACiAuL2hlbHBlcnMvdGFibGVfdGRhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2hlbHBlcnMvdGFibGVfdGRhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hlbHBlcnMvdGFibGVfdGRhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9oZWxwZXJzL3RhYmxlX3RkYXRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2hlbHBlcnMvdGFibGVfdGRhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaGVscGVycy90YWJsZV90ZGF0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL2hlbHBlcnMvdGFibGVfdGRhdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtNDU3NSw2ICs0Mzg4LDcgQEAKIC4vaGVscGVycy90YWJsZV90ZGF0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaAogLi9oZWxwZXJzL3RhYmxlX3RkYXRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL2hlbHBlcnMvd2F0Y2hlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9oZWxwZXJzL3dhdGNoZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9oZWxwZXJzL3dhdGNoZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9oZWxwZXJzL3dhdGNoZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9oZWxwZXJzL3dhdGNoZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtNDU5NCwxMSArNDQwOCw4IEBACiAuL2hlbHBlcnMvd2F0Y2hlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL2hlbHBlcnMvd2F0Y2hlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2hlbHBlcnMvd2F0Y2hlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vaGVscGVycy93YXRjaGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL2hlbHBlcnMvd2F0Y2hlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvd2F0Y2hlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL2hlbHBlcnMvd2F0Y2hlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vaGVscGVycy93YXRjaGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2hlbHBlcnMvd2F0Y2hlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL2hlbHBlcnMvd2F0Y2hlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vaGVscGVycy93YXRjaGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vaGVscGVycy93YXRjaGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtNDY0Miw2ICs0NDUzLDcgQEAKIC4vaGVscGVycy93YXRjaGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9oZWxwZXJzL3dhdGNoZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hlbHBlcnMvd2F0Y2hlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2hlbHBlcnMvd2F0Y2hlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9oZWxwZXJzL3dhdGNoZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaGVscGVycy93YXRjaGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vaGVscGVycy93YXRjaGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTQ3MDAsMTEgKzQ1MTIsOCBAQAogLi9taWJncm91cC9oZWFkZXJfY29tcGxleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9taWJncm91cC9oZWFkZXJfY29tcGxleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9taWJncm91cC9oZWFkZXJfY29tcGxleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9taWJncm91cC9oZWFkZXJfY29tcGxleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTQ3MTQsNiArNDUyMyw3IEBACiAuL21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9taWJncm91cC9oZWFkZXJfY29tcGxleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9taWJncm91cC9oZWFkZXJfY29tcGxleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTQ3NDgsNiArNDU1OCw3IEBACiAuL21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9taWJncm91cC9oZWFkZXJfY29tcGxleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9taWJncm91cC9oZWFkZXJfY29tcGxleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9taWJncm91cC9oZWFkZXJfY29tcGxleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9taWJncm91cC9oZWFkZXJfY29tcGxleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTQ3ODksNiArNDYwMCw3IEBACiAuL21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmxvOiAuL21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmgKIC4vbWliZ3JvdXAva2VybmVsX3N1bm9zNS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogLi9taWJncm91cC90ZXN0aGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9taWJncm91cC90ZXN0aGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL21pYmdyb3VwL3Rlc3RoYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vbWliZ3JvdXAvdGVzdGhhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9taWJncm91cC90ZXN0aGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC00ODA4LDExICs0NjIwLDggQEAKIC4vbWliZ3JvdXAvdGVzdGhhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9taWJncm91cC90ZXN0aGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL21pYmdyb3VwL3Rlc3RoYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9taWJncm91cC90ZXN0aGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9taWJncm91cC90ZXN0aGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL21pYmdyb3VwL3Rlc3RoYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vbWliZ3JvdXAvdGVzdGhhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL21pYmdyb3VwL3Rlc3RoYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL21pYmdyb3VwL3Rlc3RoYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vbWliZ3JvdXAvdGVzdGhhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL21pYmdyb3VwL3Rlc3RoYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vbWliZ3JvdXAvdGVzdGhhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC00ODU2LDYgKzQ2NjUsNyBAQAogLi9taWJncm91cC90ZXN0aGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vbWliZ3JvdXAvdGVzdGhhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL21pYmdyb3VwL3Rlc3RoYW5kbGVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vbWliZ3JvdXAvdGVzdGhhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vbWliZ3JvdXAvdGVzdGhhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vbWliZ3JvdXAvdGVzdGhhbmRsZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9taWJncm91cC90ZXN0aGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC00ODk2LDYgKzQ3MDYsNyBAQAogLi9taWJncm91cC90ZXN0aGFuZGxlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi9taWJncm91cC90ZXN0aGFuZGxlci5sbzogLi9taWJncm91cC90ZXN0aGFuZGxlci5oCiAuL21pYmdyb3VwL3V0aWxfZnVuY3MubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vbWliZ3JvdXAvdXRpbF9mdW5jcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL21pYmdyb3VwL3V0aWxfZnVuY3MubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9taWJncm91cC91dGlsX2Z1bmNzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vbWliZ3JvdXAvdXRpbF9mdW5jcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC00OTE1LDExICs0NzI2LDggQEAKIC4vbWliZ3JvdXAvdXRpbF9mdW5jcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL21pYmdyb3VwL3V0aWxfZnVuY3MubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9taWJncm91cC91dGlsX2Z1bmNzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9taWJncm91cC91dGlsX2Z1bmNzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL21pYmdyb3VwL3V0aWxfZnVuY3MubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9taWJncm91cC91dGlsX2Z1bmNzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vbWliZ3JvdXAvdXRpbF9mdW5jcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vbWliZ3JvdXAvdXRpbF9mdW5jcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9taWJncm91cC91dGlsX2Z1bmNzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vbWliZ3JvdXAvdXRpbF9mdW5jcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vbWliZ3JvdXAvdXRpbF9mdW5jcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL21pYmdyb3VwL3V0aWxfZnVuY3MubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC00OTYzLDYgKzQ3NzEsNyBAQAogLi9taWJncm91cC91dGlsX2Z1bmNzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9taWJncm91cC91dGlsX2Z1bmNzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9taWJncm91cC91dGlsX2Z1bmNzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vbWliZ3JvdXAvdXRpbF9mdW5jcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9taWJncm91cC91dGlsX2Z1bmNzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL21pYmdyb3VwL3V0aWxfZnVuY3MubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9taWJncm91cC91dGlsX2Z1bmNzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTUwMDEsMTQgKzQ4MTAsMTMgQEAKIC4vbWliZ3JvdXAvdXRpbF9mdW5jcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oCiAuL21pYmdyb3VwL3V0aWxfZnVuY3MubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgKIC4vbWliZ3JvdXAvdXRpbF9mdW5jcy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAotLi9taWJncm91cC91dGlsX2Z1bmNzLmxvOiBtaWJncm91cC9zdHJ1Y3QuaCAuL21pYmdyb3VwL3V0aWxfZnVuY3MuaAotLi9taWJncm91cC91dGlsX2Z1bmNzLmxvOiBtaWJncm91cC91dGlsX2Z1bmNzL0V4aXQuaAotLi9taWJncm91cC91dGlsX2Z1bmNzLmxvOiBtaWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmgKLS4vbWliZ3JvdXAvdXRpbF9mdW5jcy5sbzogbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmgKLS4vbWliZ3JvdXAvdXRpbF9mdW5jcy5sbzogbWliZ3JvdXAvdXRpbF9mdW5jcy9yZXN0YXJ0LmgKLS4vbWliZ3JvdXAvdXRpbF9mdW5jcy5sbzogbWliZ3JvdXAvdXRpbF9mdW5jcy9NSUJfU1RBVFNfQ0FDSEVfVElNRU9VVC5oCisuL21pYmdyb3VwL3V0aWxfZnVuY3MubG86IC4vbWliZ3JvdXAvc3RydWN0LmggLi9taWJncm91cC91dGlsX2Z1bmNzLmgKKy4vbWliZ3JvdXAvdXRpbF9mdW5jcy5sbzogLi9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmgKKy4vbWliZ3JvdXAvdXRpbF9mdW5jcy5sbzogLi9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuaAorLi9taWJncm91cC91dGlsX2Z1bmNzLmxvOiAuL21pYmdyb3VwL3V0aWxfZnVuY3MvTUlCX1NUQVRTX0NBQ0hFX1RJTUVPVVQuaAogLi9taWJncm91cC91dGlsX2Z1bmNzLmxvOiAuL21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmgKIC4vbWliZ3JvdXAvdXRpbF9mdW5jcy5sbzogLi9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oCiAuL21pYmdyb3VwL3V0aWxfZnVuY3MubG86IC4uL2FnZW50L21pYmdyb3VwL21pYmRlZnMuaAogLi9taWJncm91cC93aW5FeHRETEwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vbWliZ3JvdXAvd2luRXh0RExMLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vbWliZ3JvdXAvd2luRXh0RExMLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKZGlmZiAtLWdpdCBhL2FnZW50L01ha2VmaWxlLmluIGIvYWdlbnQvTWFrZWZpbGUuaW4KaW5kZXggZmE1MTBhOS4uNzQ4YjAxYyAxMDA2NDQKLS0tIGEvYWdlbnQvTWFrZWZpbGUuaW4KKysrIGIvYWdlbnQvTWFrZWZpbGUuaW4KQEAgLTMsNiArMyw3IEBACiAjCiAKIHRvcF9idWlsZGRpcgk9IC4uCitteXN1YmRpcj1hZ2VudAogCiAjIHVzZSBHTlUgdnBhdGgsIGlmIGF2YWlsYWJsZSwgdG8gb25seSBzZXQgYSBwYXRoIGZvciBzb3VyY2UgYW5kIGhlYWRlcnMKICMgVlBBVEggd2lsbCBwaWNrIHVwIG9iamVjdHMgdG9vLCB3aGljaCBpcyBiYWQgaWYgeW91IGFyZSBzaGFyaW5nIGEKQEAgLTE2LDYgKzE3LDcgQEAKICMgd2hhdCB0byBpbnN0YWxsCiAjCiBTVUJESVJTPWhlbHBlcnMgbWliZ3JvdXAKK0ZUU1VCRElSUz1taWJncm91cCBoZWxwZXJzCiAKIElOU1RBTExTQklOUFJPR1M9IEBTTk1QREAKIElOU1RBTExMSUJTCT0gbGlibmV0c25tcGFnZW50LiQoTElCX0VYVEVOU0lPTikkKExJQl9WRVJTSU9OKQpAQCAtNzYsOCArNzgsNyBAQAogCiBJTkNMVURFTUlCR1JPVVBESVI9YWdlbnQvbWliZ3JvdXAKIElOQ0xVREVNSUJHUk9VUERJUkhFQURFUlM9c3RydWN0LmggdXRpbF9mdW5jcy5oIHV0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaCBcCi0JdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmggdXRpbF9mdW5jcy9NSUJfU1RBVFNfQ0FDSEVfVElNRU9VVC5oIFwKLQl1dGlsX2Z1bmNzL0V4aXQuaCB1dGlsX2Z1bmNzL3Jlc3RhcnQuaAorCXV0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5oIHV0aWxfZnVuY3MvTUlCX1NUQVRTX0NBQ0hFX1RJTUVPVVQuaAogCiBPVEhFUklOU1RBTEw9aW5zdGFsbG1pYmdyb3VwaGVhZGVycyBARU1CRURQRVJMSU5TVEFMTEAKIE9USEVSVU5JTlNUQUxMPUBFTUJFRFBFUkxVTklOU1RBTExACkBAIC0xMTYsOSArMTE3LDEwIEBACiAKIExBR0VOVExJQlMJPSBATEFHRU5UTElCU0AKIExNSUJMSUJTCT0gQExNSUJMSUJTQAorVkFMX0xJQlMJPSBAVkFMX0xJQlNACiBQRVJMTERPUFRTX0ZPUl9BUFBTID0gQFBFUkxMRE9QVFNfRk9SX0FQUFNACiBQRVJMTERPUFRTX0ZPUl9MSUJTID0gQFBFUkxMRE9QVFNfRk9SX0xJQlNACi1MSUJTCQk9ICQoVVNFTElCUykgQEFHRU5UTElCU0AgJChQRVJMTERPUFRTX0ZPUl9BUFBTKQorTElCUwkJPSAkKFVTRUxJQlMpIEBBR0VOVExJQlNAICQoUEVSTExET1BUU19GT1JfQVBQUykgJChWQUxfTElCUykKIE9VUl9BR0VOVF9MSUJTCT0gJChBR0VOVExJQikgJChNSUJMSUIpICQoTElCUykgQERMTElCU0AKIENQUEZMQUdTCT0gJChUT1BfSU5DTFVERVMpIC1JLiAkKEFHRU5UX0lOQ0xVREVTKSAkKE1JQkdST1VQX0lOQ0xVREVTKSBcCiAJCSAgJChTTk1QTElCX0lOQ0xVREVTKSBAQ1BQRkxBR1NAIApAQCAtMTMwLDI1ICsxMzIsMTcgQEAKIAogIyBsaWJuZXRzbm1wbWlicyBvYmplY3RzLgogQG1pYmdyb3VwX2xpc3RfbG9ACitAbWliZ3JvdXBfbGlzdF9mdEAKIEBtaWJncm91cF9saXN0X29ACiBAYWdlbnRncm91cF9saXN0X2xvQAorQGFnZW50Z3JvdXBfbGlzdF9mdEAKIEBhZ2VudGdyb3VwX2xpc3Rfb0AKK0ZUTUlCT0JKUwk9ICQobWliZ3JvdXBfbGlzdF9mdCkgbWliX21vZHVsZXMuZnQgYXV0b19ubGlzdC5mdAogTE1JQk9CSlMJPSAkKG1pYmdyb3VwX2xpc3RfbG8pIG1pYl9tb2R1bGVzLmxvIGF1dG9fbmxpc3QubG8KIE1JQk9CSlMJCT0gJChtaWJncm91cF9saXN0X28pIG1pYl9tb2R1bGVzLm8gYXV0b19ubGlzdC5vCiAKICMgbGlibmV0c25tcGFnZW50IG9iamVjdHMKIExJQkFHRU5UT0JKUz0gXAotCWFnZW50X2hhbmRsZXIubyBcCi0JYWdlbnRfaW5kZXgubyBcCi0JYWdlbnRfcmVhZF9jb25maWcubyBcCi0JYWdlbnRfcmVnaXN0cnkubyBcCi0JYWdlbnRfc3lzT1JUYWJsZS5vIFwKLQlhZ2VudF90cmFwLm8gXAotCWtlcm5lbC5vIFwKLQlzbm1wX2FnZW50Lm8gXAotCXNubXBfdmFycy5vIFwKLQkkKGFnZW50Z3JvdXBfbGlzdF9vKSBcCi0JQE9USEVSQUdFTlRMSUJPQkpTQCBcCiAJaGVscGVycy9hbGxfaGVscGVycy5vIFwKIAloZWxwZXJzL2JhYnlfc3RlcHMubyBcCiAJaGVscGVycy9idWxrX3RvX25leHQubyBcCkBAIC0xNzUsMjAgKzE2OSwyMCBAQAogCWhlbHBlcnMvdGFibGVfaXRlcmF0b3IubyBcCiAJaGVscGVycy90YWJsZV9yb3cubyBcCiAJaGVscGVycy90YWJsZV90ZGF0YS5vIFwKLQloZWxwZXJzL3dhdGNoZXIubworCWhlbHBlcnMvd2F0Y2hlci5vIFwKKwlhZ2VudF9oYW5kbGVyLm8gXAorCWFnZW50X2luZGV4Lm8gXAorCWFnZW50X3JlYWRfY29uZmlnLm8gXAorCWFnZW50X3JlZ2lzdHJ5Lm8gXAorCWFnZW50X3N5c09SVGFibGUubyBcCisJYWdlbnRfdHJhcC5vIFwKKwlrZXJuZWwubyBcCisJc25tcF9hZ2VudC5vIFwKKwlzbm1wX3ZhcnMubyBcCisJJChhZ2VudGdyb3VwX2xpc3RfbykgXAorCUBPVEhFUkFHRU5UTElCT0JKU0AKIAogTExJQkFHRU5UT0JKUz0gXAotCWFnZW50X2hhbmRsZXIubG8gXAotCWFnZW50X2luZGV4LmxvIFwKLQlhZ2VudF9yZWFkX2NvbmZpZy5sbyBcCi0JYWdlbnRfcmVnaXN0cnkubG8gXAotCWFnZW50X3N5c09SVGFibGUubG8gXAotCWFnZW50X3RyYXAubG8gXAotCWtlcm5lbC5sbyBcCi0Jc25tcF9hZ2VudC5sbyBcCi0Jc25tcF92YXJzLmxvIFwKLQkkKGFnZW50Z3JvdXBfbGlzdF9sbykgXAotCUBPVEhFUkFHRU5UTElCTE9CSlNAIFwKIAloZWxwZXJzL2FsbF9oZWxwZXJzLmxvIFwKIAloZWxwZXJzL2JhYnlfc3RlcHMubG8gXAogCWhlbHBlcnMvYnVsa190b19uZXh0LmxvIFwKQEAgLTIxNSwxOCArMjA5LDcyIEBACiAJaGVscGVycy90YWJsZV9pdGVyYXRvci5sbyBcCiAJaGVscGVycy90YWJsZV9yb3cubG8gXAogCWhlbHBlcnMvdGFibGVfdGRhdGEubG8gXAotCWhlbHBlcnMvd2F0Y2hlci5sbworCWhlbHBlcnMvd2F0Y2hlci5sbyBcCisJYWdlbnRfaGFuZGxlci5sbyBcCisJYWdlbnRfaW5kZXgubG8gXAorCWFnZW50X3JlYWRfY29uZmlnLmxvIFwKKwlhZ2VudF9yZWdpc3RyeS5sbyBcCisJYWdlbnRfc3lzT1JUYWJsZS5sbyBcCisJYWdlbnRfdHJhcC5sbyBcCisJa2VybmVsLmxvIFwKKwlzbm1wX2FnZW50LmxvIFwKKwlzbm1wX3ZhcnMubG8gXAorCSQoYWdlbnRncm91cF9saXN0X2xvKSBcCisJQE9USEVSQUdFTlRMSUJMT0JKU0AKKworTExJQkFHRU5URlRTPSBcCisJaGVscGVycy9hbGxfaGVscGVycy5mdCBcCisJaGVscGVycy9iYWJ5X3N0ZXBzLmZ0IFwKKwloZWxwZXJzL2J1bGtfdG9fbmV4dC5mdCBcCisJaGVscGVycy9jYWNoZV9oYW5kbGVyLmZ0IFwKKwloZWxwZXJzL2RlYnVnX2hhbmRsZXIuZnQgXAorCWhlbHBlcnMvaW5zdGFuY2UuZnQgXAorCWhlbHBlcnMvbW9kZV9lbmRfY2FsbC5mdCBcCisJaGVscGVycy9tdWx0aXBsZXhlci5mdCBcCisJaGVscGVycy9udWxsLmZ0IFwKKwloZWxwZXJzL29sZF9hcGkuZnQgXAorCWhlbHBlcnMvcmVhZF9vbmx5LmZ0IFwKKwloZWxwZXJzL3Jvd19tZXJnZS5mdCBcCisJaGVscGVycy9zY2FsYXIuZnQgXAorCWhlbHBlcnMvc2NhbGFyX2dyb3VwLmZ0IFwKKwloZWxwZXJzL3NlcmlhbGl6ZS5mdCBcCisJaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMuZnQgXAorCWhlbHBlcnMvc3Rhc2hfY2FjaGUuZnQgXAorCWhlbHBlcnMvc3Rhc2hfdG9fbmV4dC5mdCBcCisJaGVscGVycy90YWJsZS5mdCBcCisJaGVscGVycy90YWJsZV9hcnJheS5mdCBcCisJaGVscGVycy90YWJsZV9jb250YWluZXIuZnQgXAorCWhlbHBlcnMvdGFibGVfZGF0YS5mdCBcCisJaGVscGVycy90YWJsZV9kYXRhc2V0LmZ0IFwKKwloZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmZ0IFwKKwloZWxwZXJzL3RhYmxlX3Jvdy5mdCBcCisJaGVscGVycy90YWJsZV90ZGF0YS5mdCBcCisJaGVscGVycy93YXRjaGVyLmZ0IFwKKwlhZ2VudF9oYW5kbGVyLmZ0IFwKKwlhZ2VudF9pbmRleC5mdCBcCisJYWdlbnRfcmVhZF9jb25maWcuZnQgXAorCWFnZW50X3JlZ2lzdHJ5LmZ0IFwKKwlhZ2VudF9zeXNPUlRhYmxlLmZ0IFwKKwlhZ2VudF90cmFwLmZ0IFwKKwlrZXJuZWwuZnQgXAorCXNubXBfYWdlbnQuZnQgXAorCXNubXBfdmFycy5mdCBcCisJJChhZ2VudGdyb3VwX2xpc3RfZnQpIFwKKwlAT1RIRVJBR0VOVExJQkxGVFNACiAKICMgVGhlIGFnZW50IG9iamVjdHMuCiBBR0VOVE9CSlM9c25tcGQubyBAb3RoZXJfYWdlbnRvYmpzQAogTEFHRU5UT0JKUz1zbm1wZC5sbyBAb3RoZXJfbGFnZW50b2Jqc0AKK0ZUQUdFTlRPQkpTPXNubXBkLmZ0IEBvdGhlcl9mdGFnZW50b2Jqc0AKIAogIwogIyBEZWZpbmUgT0JKUyBhbmQgTE9CSlMgZm9yIGNsZWFuIHRhcmdldCAoanVzdCB0aGlzIGRpcmVjdG9yeSkKICMKIE9CSlMJCT0gJChMSUJBR0VOVE9CSlMpICAkKEFHRU5UT0JKUykgIG1pYl9tb2R1bGVzLm8gIGF1dG9fbmxpc3QubwogTE9CSlMJCT0gJChMTElCQUdFTlRPQkpTKSAkKExBR0VOVE9CSlMpIG1pYl9tb2R1bGVzLmxvIGF1dG9fbmxpc3QubG8KK0ZUT0JKUwkJPSAkKExMSUJBR0VOVEZUUykgJChGVEFHRU5UT0JKUykgbWliX21vZHVsZXMuZnQgYXV0b19ubGlzdC5mdAogCitGRUFUVVJFRklMRSAgICAgPSAkKHRvcF9idWlsZGRpcikvaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9mZWF0dXJlcy5oCiAKIGFsbDogYWdlbnRsaWIgc3ViZGlycyBtaWJsaWIgJChJTlNUQUxMQklOUFJPR1MpICQoSU5TVEFMTFNCSU5QUk9HUykKIApkaWZmIC0tZ2l0IGEvYWdlbnQvYWdlbnRfaGFuZGxlci5jIGIvYWdlbnQvYWdlbnRfaGFuZGxlci5jCmluZGV4IGNhNmFlNGMuLjU5ZTk2MTMgMTAwNjQ0Ci0tLSBhL2FnZW50L2FnZW50X2hhbmRsZXIuYworKysgYi9hZ2VudC9hZ2VudF9oYW5kbGVyLmMKQEAgLTksNiArOSw3IEBACiAgKiBkaXN0cmlidXRlZCB3aXRoIHRoZSBOZXQtU05NUCBwYWNrYWdlLgogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogCkBAIC0yMSw2ICsyMiw5IEBACiAKICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGFnZW50X2hhbmRsZXIsIGxpYm5ldHNubXBhZ2VudCkKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGhhbmRsZXJfbWFya19yZXF1ZXN0c19hc19kZWxlZ2F0ZWQsIGFnZW50X2hhbmRsZXIpCiAKIHN0YXRpYyBuZXRzbm1wX21pYl9oYW5kbGVyICpfY2xvbmVfaGFuZGxlcihuZXRzbm1wX21pYl9oYW5kbGVyICppdCk7CiAKQEAgLTU3Niw2ICs1ODAsNyBAQAogICAgICAgICAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7ICAgIC8qIGxlZ2FsICovCiAgICAgICAgIGJyZWFrOwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CiAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMjoKICAgICBjYXNlIE1PREVfU0VUX0FDVElPTjoKQEAgLTU5MCw2ICs1OTUsNyBAQAogICAgICAgICAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICAgICBkZWZhdWx0OgogICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAidW5rbm93biBtb2RlIGluIG5ldHNubXBfY2FsbF9oYW5kbGVycyEgYnVnIVxuIik7CkBAIC02NDEsNiArNjQ3LDggQEAKICAqCiAgKiAgQHJldHVybiBSZXR1cm5zIFNOTVBFUlJfU1VDQ0VTUyBvciBTTk1QX0VSUl8qIGVycm9yIGNvZGUuCiAgKi8KK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihuZXRzbm1wX2NhbGxfbmV4dF9oYW5kbGVyX29uZV9yZXF1ZXN0LG5ldHNubXBfdW51c2VkKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX05FVFNOTVBfQ0FMTF9ORVhUX0hBTkRMRVJfT05FX1JFUVVFU1QKIE5FVFNOTVBfSU5MSU5FIGludAogbmV0c25tcF9jYWxsX25leHRfaGFuZGxlcl9vbmVfcmVxdWVzdChuZXRzbm1wX21pYl9oYW5kbGVyICpjdXJyZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWdpbmZvLApAQCAtNjYyLDYgKzY3MCw3IEBACiAgICAgcmVxdWVzdHMtPm5leHQgPSByZXF1ZXN0OwogICAgIHJldHVybiByZXQ7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9ORVRTTk1QX0NBTExfTkVYVF9IQU5ETEVSX09ORV9SRVFVRVNUICovCiAKIC8qKiBEZWFsbG9jYXRlcyByZXNvdXJjZXMgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gaGFuZGxlci4KICAqICBUaGUgaGFuZGxlciBpcyByZW1vdmVkIGZyb20gY2hhaW4gYW5kIHRoZW4gZnJlZWQuCkBAIC03MDQsMjcgKzcxMyw0MSBAQAogewogICAgIG5ldHNubXBfbWliX2hhbmRsZXIgKmggPSBOVUxMOwogCi0gICAgaWYgKGhhbmRsZXIgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9CisgICAgaWYgKCFoYW5kbGVyKQorICAgICAgICBnb3RvIGVycjsKIAogICAgIGggPSBfY2xvbmVfaGFuZGxlcihoYW5kbGVyKTsKKyAgICBpZiAoIWgpCisgICAgICAgIGdvdG8gZXJyOwogCi0gICAgaWYgKGggIT0gTlVMTCkgeworICAgIC8qCisgICAgICogUHJvdmlkaW5nIGEgY2xvbmUgZnVuY3Rpb24gd2l0aG91dCBhIGZyZWUgZnVuY3Rpb24gaXMgYXNraW5nIGZvcgorICAgICAqIG1lbW9yeSBsZWFrcywgYW5kIHByb3ZpZGluZyBhIGZyZWUgZnVuY3Rpb24gd2l0aG91dCBjbG9uZSBmdW5jdGlvbgorICAgICAqIGlzIGFza2luZyBmb3IgbWVtb3J5IGNvcnJ1cHRpb24uIEhlbmNlIHRoZSBsb2cgc3RhdGVtZW50IGJlbG93LgorICAgICAqLworICAgIGlmICghIWhhbmRsZXItPmRhdGFfY2xvbmUgIT0gISFoYW5kbGVyLT5kYXRhX2ZyZWUpCisgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJkYXRhX2Nsb25lIC8gZGF0YV9mcmVlIGluY29uc2lzdGVudCAoJXMpXG4iLAorICAgICAgICAgICAgICAgICBoYW5kbGVyLT5oYW5kbGVyX25hbWUpOworICAgIGlmIChoYW5kbGVyLT5teXZvaWQgJiYgaGFuZGxlci0+ZGF0YV9jbG9uZSkgeworICAgICAgICBoLT5teXZvaWQgPSBoYW5kbGVyLT5kYXRhX2Nsb25lKGhhbmRsZXItPm15dm9pZCk7CisgICAgICAgIGlmICghaC0+bXl2b2lkKQorICAgICAgICAgICAgZ290byBlcnI7CisgICAgfSBlbHNlCiAgICAgICAgIGgtPm15dm9pZCA9IGhhbmRsZXItPm15dm9pZDsKLSAgICAgICAgaC0+ZGF0YV9mcmVlID0gaGFuZGxlci0+ZGF0YV9mcmVlOworICAgIGgtPmRhdGFfY2xvbmUgPSBoYW5kbGVyLT5kYXRhX2Nsb25lOworICAgIGgtPmRhdGFfZnJlZSA9IGhhbmRsZXItPmRhdGFfZnJlZTsKIAotICAgICAgICBpZiAoaGFuZGxlci0+bmV4dCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBoLT5uZXh0ID0gbmV0c25tcF9oYW5kbGVyX2R1cChoYW5kbGVyLT5uZXh0KTsKLSAgICAgICAgICAgIGlmIChoLT5uZXh0ID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBuZXRzbm1wX2hhbmRsZXJfZnJlZShoKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGgtPm5leHQtPnByZXYgPSBoOwotICAgICAgICB9Ci0gICAgICAgIGgtPnByZXYgPSBOVUxMOwotICAgICAgICByZXR1cm4gaDsKKyAgICBpZiAoaGFuZGxlci0+bmV4dCAhPSBOVUxMKSB7CisgICAgICAgIGgtPm5leHQgPSBuZXRzbm1wX2hhbmRsZXJfZHVwKGhhbmRsZXItPm5leHQpOworICAgICAgICBpZiAoIWgtPm5leHQpCisgICAgICAgICAgICBnb3RvIGVycjsKKyAgICAgICAgaC0+bmV4dC0+cHJldiA9IGg7CiAgICAgfQorICAgIGgtPnByZXYgPSBOVUxMOworICAgIHJldHVybiBoOworCitlcnI6CisgICAgbmV0c25tcF9oYW5kbGVyX2ZyZWUoaCk7CiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKQEAgLTg5NCw5ICs5MTcsMTAgQEAKIH0KIAogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSEFORExFUl9NQVJLX1JFUVVFU1RTX0FTX0RFTEVHQVRFRAogLyoqIFNldHMgYSBsaXN0IG9mIHJlcXVlc3RzIGFzIGRlbGVnYXRlZCBvciBub3QgZGVsZWdhdGVkLgogICogIFN3ZWVwcyB0aHJvdWdoIGdpdmVuIGNoYWluIG9mIHJlcXVlc3RzIGFuZCBzZXRzICdkZWxlZ2F0ZWQnCi0gKiAgZmxhZyBhY2NvcmRpbmdseSB0byB0aGUgaXNkZWxlZ2F0ZWQgcGFyYW1ldGVyLgorICogIGZsYWcgYWNjb3JkaW5nbHkgdG8gdGhlIGlzZGVsZWdhZGVkIHBhcmFtZXRlci4KICAqCiAgKiAgQHBhcmFtIHJlcXVlc3RzIFJlcXVlc3QgbGlzdC4KICAqICBAcGFyYW0gaXNkZWxlZ2F0ZWQgTmV3IHZhbHVlIG9mIHRoZSAnZGVsZWdhdGVkJyBmbGFnLgpAQCAtOTEwLDYgKzkzNCw3IEBACiAgICAgICAgIHJlcXVlc3RzID0gcmVxdWVzdHMtPm5leHQ7CiAgICAgfQogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSEFORExFUl9NQVJLX1JFUVVFU1RTX0FTX0RFTEVHQVRFRCAqLwogCiAvKiogQWRkcyBkYXRhIGZyb20gbm9kZSBsaXN0IHRvIHRoZSByZXF1ZXN0IGluZm9ybWF0aW9uIHN0cnVjdHVyZS4KICAqICBEYXRhIGluIHRoZSByZXF1ZXN0IGNhbiBiZSBsYXRlciBleHRyYWN0ZWQgYW5kIHVzZWQgYnkgc3VibW9kdWxlcy4KQEAgLTEyNDcsNiArMTI3Miw3IEBACiAgICAgc2VfYWRkX3BhaXJfdG9fc2xpc3QoImFnZW50X21vZGUiLCBzdHJkdXAoIkdFVCIpLCBNT0RFX0dFVCk7CiAgICAgc2VfYWRkX3BhaXJfdG9fc2xpc3QoImFnZW50X21vZGUiLCBzdHJkdXAoIkdFVE5FWFQiKSwgTU9ERV9HRVRORVhUKTsKICAgICBzZV9hZGRfcGFpcl90b19zbGlzdCgiYWdlbnRfbW9kZSIsIHN0cmR1cCgiR0VUQlVMSyIpLCBNT0RFX0dFVEJVTEspOworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBzZV9hZGRfcGFpcl90b19zbGlzdCgiYWdlbnRfbW9kZSIsIHN0cmR1cCgiU0VUX0JFR0lOIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgTU9ERV9TRVRfQkVHSU4pOwogICAgIHNlX2FkZF9wYWlyX3RvX3NsaXN0KCJhZ2VudF9tb2RlIiwgc3RyZHVwKCJTRVRfUkVTRVJWRTEiKSwKQEAgLTEyODcsNiArMTMxMyw3IEBACiAgICAgc2VfYWRkX3BhaXJfdG9fc2xpc3QoImJhYnlzdGVwX21vZGUiLCBzdHJkdXAoInBvc3RfcmVxdWVzdCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIE1PREVfQlNURVBfUE9TVF9SRVFVRVNUKTsKICAgICBzZV9hZGRfcGFpcl90b19zbGlzdCgiYmFieXN0ZXBfbW9kZSIsIHN0cmR1cCgib3JpZ2luYWwiKSwgMHhmZmZmKTsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgIC8qCiAgICAgICogeHh4LXJrczogaG1tbS4uIHdpbGwgdGhpcyB3b3JrIGZvciBtb2RlcyB3aGljaCBhcmUgb3InZCB0b2dldGhlcj8KZGlmZiAtLWdpdCBhL2FnZW50L2FnZW50X2luZGV4LmMgYi9hZ2VudC9hZ2VudF9pbmRleC5jCmluZGV4IDRhODlmODkuLjAxMjkyMTcgMTAwNjQ0Ci0tLSBhL2FnZW50L2FnZW50X2luZGV4LmMKKysrIGIvYWdlbnQvYWdlbnRfaW5kZXguYwpAQCAtOCw2ICs4LDcgQEAKIAogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxzaWduYWwuaD4KICNpZiBIQVZFX1NUUklOR19ICiAjaW5jbHVkZSA8c3RyaW5nLmg+CkBAIC00Nyw2ICs0OCwxMCBAQAogI2luY2x1ZGUgImFnZW50eC9jbGllbnQuaCIKICNlbmRpZgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoYWdlbnRfaW5kZXhfYWxsLCBsaWJuZXRzbm1wYWdlbnQpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihyZW1vdmVfaW5kZXgsIGFnZW50X2luZGV4X2FsbCkKKwogICAgICAgICAvKgogICAgICAgICAgKiBJbml0aWFsIHN1cHBvcnQgZm9yIGluZGV4IGFsbG9jYXRpb24KICAgICAgICAgICovCkBAIC00NTAsMTIgKzQ1NSwxNiBAQAogICAgICAgICAgKiBSZWxlYXNlIGFuIGFsbG9jYXRlZCBpbmRleCwKICAgICAgICAgICogICB0byBhbGxvdyBpdCB0byBiZSB1c2VkIGVsc2V3aGVyZQogICAgICAgICAgKi8KK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihyZWxlYXNlX2luZGV4LG5ldHNubXBfdW51c2VkKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JFTEVBU0VfSU5ERVgKIGludAogcmVsZWFzZV9pbmRleChuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKiB2YXJiaW5kKQogewogICAgIHJldHVybiAodW5yZWdpc3Rlcl9pbmRleCh2YXJiaW5kLCBUUlVFLCBOVUxMKSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUxFQVNFX0lOREVYICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRU1PVkVfSU5ERVgKICAgICAgICAgLyoKICAgICAgICAgICogQ29tcGxldGVseSByZW1vdmUgYW4gYWxsb2NhdGVkIGluZGV4LAogICAgICAgICAgKiAgIGR1ZSB0byBlcnJvcnMgaW4gdGhlIHJlZ2lzdHJhdGlvbiBwcm9jZXNzLgpAQCAtNDY1LDYgKzQ3NCw3IEBACiB7CiAgICAgcmV0dXJuICh1bnJlZ2lzdGVyX2luZGV4KHZhcmJpbmQsIEZBTFNFLCBzcykpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUkVNT1ZFX0lOREVYICovCiAKIHZvaWQKIHVucmVnaXN0ZXJfaW5kZXhfYnlfc2Vzc2lvbihuZXRzbm1wX3Nlc3Npb24gKiBzcykKQEAgLTU4OCw2ICs1OTgsOCBAQAogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodW5yZWdpc3Rlcl9pbmRleGVzLG5ldHNubXBfdW51c2VkKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1VOUkVHSVNURVJfSU5ERVhFUwogaW50CiB1bnJlZ2lzdGVyX3N0cmluZ19pbmRleChvaWQgKiBuYW1lLCBzaXplX3QgbmFtZV9sZW4sIGNoYXIgKmNwKQogewpAQCAtNjI3LDYgKzYzOSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlX2xlbiAqIHNpemVvZihvaWQpKTsKICAgICByZXR1cm4gKHVucmVnaXN0ZXJfaW5kZXgoJnZhcmJpbmQsIEZBTFNFLCBtYWluX3Nlc3Npb24pKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1VOUkVHSVNURVJfSU5ERVhFUyAqLwogCiB2b2lkCiBkdW1wX2lkeF9yZWdpc3RyeSh2b2lkKQpAQCAtNjkyLDYgKzcwNSw4IEBACiAgICAgfQogfQogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY291bnRfaW5kZXhlcywgbmV0c25tcF91bnVzZWQpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVU5VU0VECiB1bnNpZ25lZCBsb25nCiBjb3VudF9pbmRleGVzKG9pZCAqIG5hbWUsIHNpemVfdCBuYW1lbGVuLCBpbnQgaW5jbHVkZV91bmFsbG9jYXRlZCkKIHsKQEAgLTcxMSw3ICs3MjYsNyBAQAogICAgIH0KICAgICByZXR1cm4gbjsKIH0KLQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVU5VU0VEICovCiAKICNpZmRlZiBURVNUSU5HCiBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgdmFyYmluZDsKZGlmZiAtLWdpdCBhL2FnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgYi9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jCmluZGV4IDYxZDY2NjcuLmY5ZWYxYWYgMTAwNjQ0Ci0tLSBhL2FnZW50L2FnZW50X3JlYWRfY29uZmlnLmMKKysrIGIvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYwpAQCAtMyw2ICszLDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2lmIEhBVkVfU1lTX1BBUkFNX0gKICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KQEAgLTEwNiwxNyArMTA3LDE4IEBACiAjaW5jbHVkZSAiYWdlbnRfbW9kdWxlX2luY2x1ZGVzLmgiCiAjaW5jbHVkZSAibWliX21vZHVsZV9pbmNsdWRlcy5oIgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoYWdlbnRfcmVhZF9jb25maWdfYWxsLCBsaWJuZXRzbm1wYWdlbnQpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzbm1wZF91bnJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyLCBhZ2VudF9yZWFkX2NvbmZpZ19hbGwpCisKICNpZmRlZiBIQVZFX1VOSVNURF9ICiB2b2lkCiBzbm1wZF9zZXRfYWdlbnRfdXNlcihjb25zdCBjaGFyICp0b2tlbiwgY2hhciAqY3B0cikKIHsKLSNpZiBkZWZpbmVkKEhBVkVfR0VUUFdOQU0pICYmIGRlZmluZWQoSEFWRV9QV0RfSCkKLSAgICBzdHJ1Y3QgcGFzc3dkICAqaW5mbzsKLSNlbmRpZgotCiAgICAgaWYgKGNwdHJbMF0gPT0gJyMnKSB7CiAgICAgICAgIGNoYXIgICAgICAgICAgICplY3A7CiAgICAgICAgIGludCAgICAgICAgICAgICB1aWQ7CisKICAgICAgICAgdWlkID0gc3RydG91bChjcHRyICsgMSwgJmVjcCwgMTApOwogICAgICAgICBpZiAoKmVjcCAhPSAwKSB7CiAgICAgICAgICAgICBjb25maWdfcGVycm9yKCJCYWQgbnVtYmVyIik7CkBAIC0xMjQsNDcgKzEyNiw1MSBAQAogCSAgICBuZXRzbm1wX2RzX3NldF9pbnQoTkVUU05NUF9EU19BUFBMSUNBVElPTl9JRCwgCiAJCQkgICAgICAgTkVUU05NUF9EU19BR0VOVF9VU0VSSUQsIHVpZCk7CiAJfQotICAgIH0KICNpZiBkZWZpbmVkKEhBVkVfR0VUUFdOQU0pICYmIGRlZmluZWQoSEFWRV9QV0RfSCkKLSAgICBlbHNlIGlmICgoaW5mbyA9IGdldHB3bmFtKGNwdHIpKSAhPSBOVUxMKSB7Ci0gICAgICAgIG5ldHNubXBfZHNfc2V0X2ludChORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELCAKLQkJCSAgIE5FVFNOTVBfRFNfQUdFTlRfVVNFUklELCBpbmZvLT5wd191aWQpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGNvbmZpZ19wZXJyb3IoIlVzZXIgbm90IGZvdW5kIGluIHBhc3N3ZCBkYXRhYmFzZSIpOwotICAgIH0KLSAgICBlbmRwd2VudCgpOworICAgICAgICBzdHJ1Y3QgcGFzc3dkICAqaW5mbzsKKworICAgICAgICBpbmZvID0gZ2V0cHduYW0oY3B0cik7CisgICAgICAgIGlmIChpbmZvKQorICAgICAgICAgICAgbmV0c25tcF9kc19zZXRfaW50KE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfQUdFTlRfVVNFUklELCBpbmZvLT5wd191aWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb25maWdfcGVycm9yKCJVc2VyIG5vdCBmb3VuZCBpbiBwYXNzd2QgZGF0YWJhc2UiKTsKKyAgICAgICAgZW5kcHdlbnQoKTsKICNlbmRpZgorICAgIH0KIH0KIAogdm9pZAogc25tcGRfc2V0X2FnZW50X2dyb3VwKGNvbnN0IGNoYXIgKnRva2VuLCBjaGFyICpjcHRyKQogewotI2lmIGRlZmluZWQoSEFWRV9HRVRHUk5BTSkgJiYgZGVmaW5lZChIQVZFX0dSUF9IKQotICAgIHN0cnVjdCBncm91cCAgICppbmZvOwotI2VuZGlmCi0KICAgICBpZiAoY3B0clswXSA9PSAnIycpIHsKICAgICAgICAgY2hhciAgICAgICAgICAgKmVjcDsKICAgICAgICAgaW50ICAgICAgICAgICAgIGdpZCA9IHN0cnRvdWwoY3B0ciArIDEsICZlY3AsIDEwKTsKKwogICAgICAgICBpZiAoKmVjcCAhPSAwKSB7CiAgICAgICAgICAgICBjb25maWdfcGVycm9yKCJCYWQgbnVtYmVyIik7CiAJfSBlbHNlIHsKICAgICAgICAgICAgIG5ldHNubXBfZHNfc2V0X2ludChORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELCAKIAkJCSAgICAgICBORVRTTk1QX0RTX0FHRU5UX0dST1VQSUQsIGdpZCk7CiAJfQotICAgIH0KICNpZiBkZWZpbmVkKEhBVkVfR0VUR1JOQU0pICYmIGRlZmluZWQoSEFWRV9HUlBfSCkKLSAgICBlbHNlIGlmICgoaW5mbyA9IGdldGdybmFtKGNwdHIpKSAhPSBOVUxMKSB7Ci0gICAgICAgIG5ldHNubXBfZHNfc2V0X2ludChORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELCAKLQkJCSAgIE5FVFNOTVBfRFNfQUdFTlRfR1JPVVBJRCwgaW5mby0+Z3JfZ2lkKTsKICAgICB9IGVsc2UgewotICAgICAgICBjb25maWdfcGVycm9yKCJHcm91cCBub3QgZm91bmQgaW4gZ3JvdXAgZGF0YWJhc2UiKTsKLSAgICB9Ci0gICAgZW5kcHdlbnQoKTsKKyAgICAgICAgc3RydWN0IGdyb3VwICAgKmluZm87CisKKyAgICAgICAgaW5mbyA9IGdldGdybmFtKGNwdHIpOworICAgICAgICBpZiAoaW5mbykKKyAgICAgICAgICAgIG5ldHNubXBfZHNfc2V0X2ludChORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0FHRU5UX0dST1VQSUQsIGluZm8tPmdyX2dpZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvbmZpZ19wZXJyb3IoIkdyb3VwIG5vdCBmb3VuZCBpbiBncm91cCBkYXRhYmFzZSIpOworICAgICAgICBlbmRncmVudCgpOwogI2VuZGlmCisgICAgfQogfQogI2VuZGlmCiAKKyNpZm5kZWYgTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVAogdm9pZAogc25tcGRfc2V0X2FnZW50X2FkZHJlc3MoY29uc3QgY2hhciAqdG9rZW4sIGNoYXIgKmNwdHIpCiB7CkBAIC0xOTEsNiArMTk3LDcgQEAKICAgICBuZXRzbm1wX2RzX3NldF9zdHJpbmcoTkVUU05NUF9EU19BUFBMSUNBVElPTl9JRCwgCiAJCQkgIE5FVFNOTVBfRFNfQUdFTlRfUE9SVFMsIGJ1Zik7CiB9CisjZW5kaWYgLyogTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVCAqLwogCiB2b2lkCiBpbml0X2FnZW50X3JlYWRfY29uZmlnKGNvbnN0IGNoYXIgKmFwcCkKQEAgLTI0OCw5ICsyNTUsMTEgQEAKICAgICByZWdpc3Rlcl9hcHBfY29uZmlnX2hhbmRsZXIoImFnZW50Z3JvdXAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbm1wZF9zZXRfYWdlbnRfZ3JvdXAsIE5VTEwsICJncm91cGlkIik7CiAjZW5kaWYKKyNpZm5kZWYgTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVAogICAgIHJlZ2lzdGVyX2FwcF9jb25maWdfaGFuZGxlcigiYWdlbnRhZGRyZXNzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc25tcGRfc2V0X2FnZW50X2FkZHJlc3MsIE5VTEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTTk1QIGJpbmQgYWRkcmVzcyIpOworI2VuZGlmIC8qIE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQgKi8KICAgICBuZXRzbm1wX2RzX3JlZ2lzdGVyX2NvbmZpZyhBU05fQk9PTEVBTiwgYXBwLCAicXVpdCIsIAogCQkJICAgICAgIE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsCiAJCQkgICAgICAgTkVUU05NUF9EU19BR0VOVF9RVUlUX0lNTUVESUFURUxZKTsKQEAgLTMwNiwxMSArMzE1LDE3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGVhc2VyLCBoZWxwKTsKIH0KIAorI2lmZGVmIE5FVFNOTVBfRkVBVFVSRV9SRVFVSVJFX1NOTVBEX1VOUkVHSVNURVJfQ09ORklHX0hBTkRMRVIKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHVucmVnaXN0ZXJfYXBwX2NvbmZpZ19oYW5kbGVyKQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRVFVSVJFX1NOTVBEX1VOUkVHSVNURVJfQ09ORklHX0hBTkRMRVIgKi8KKworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NOTVBEX1VOUkVHSVNURVJfQ09ORklHX0hBTkRMRVIKIHZvaWQKIHNubXBkX3VucmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoY29uc3QgY2hhciAqdG9rZW4pCiB7CiAgICAgdW5yZWdpc3Rlcl9hcHBfY29uZmlnX2hhbmRsZXIodG9rZW4pOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU05NUERfVU5SRUdJU1RFUl9DT05GSUdfSEFORExFUiAqLwogCiAvKgogICogdGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IG1pYi1tb2R1bGVzIHRvIHN0b3JlIHBlcm1lbmFudApkaWZmIC0tZ2l0IGEvYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyBiL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmMKaW5kZXggZGJhYTQ4Yy4uMGRkNmM0MiAxMDA2NDQKLS0tIGEvYWdlbnQvYWdlbnRfcmVnaXN0cnkuYworKysgYi9hZ2VudC9hZ2VudF9yZWdpc3RyeS5jCkBAIC0yMiw2ICsyMiw4IEBACiAjZGVmaW5lIElOX1NOTVBfVkFSU19DCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgorCiAjaW5jbHVkZSA8c2lnbmFsLmg+CiAjaWYgSEFWRV9TVFJJTkdfSAogI2luY2x1ZGUgPHN0cmluZy5oPgpAQCAtNjQsNiArNjYsMTAgQEAKICNpbmNsdWRlICJhZ2VudHgvY2xpZW50LmgiCiAjZW5kaWYKIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGFnZW50X3JlZ2lzdHJ5X2FsbCwgbGlibmV0c25tcGFnZW50KQorCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodW5yZWdpc3Rlcl9taWJfdGFibGVfcm93LCBhZ2VudF9yZWdpc3RyeV9hbGwpCisKIC8qKiBAZGVmZ3JvdXAgYWdlbnRfbG9va3VwX2NhY2hlIExvb2t1cCBjYWNoZSwgc3RvcmluZyB0aGUgcmVnaXN0ZXJlZCBPSURzLgogICogICAgIE1haW50YWluIHRoZSBjYWNoZSB1c2VkIGZvciBsb2NhdGluZyBzdWItdHJlZXMgYW5kIE9JRHMuCiAgKiAgIEBpbmdyb3VwIGFnZW50X3JlZ2lzdHJ5CkBAIC0yMTMsNyArMjE5LDcgQEAKICAqICBAc2VlIHNubXBfb2lkX2NvbXBhcmUoKQogICovCiBORVRTTk1QX1NUQVRJQ19JTkxJTkUgbG9va3VwX2NhY2hlICoKLWxvb2t1cF9jYWNoZV9maW5kKGNvbnN0IGNoYXIgKmNvbnRleHQsIG9pZCAqbmFtZSwgc2l6ZV90IG5hbWVfbGVuLAorbG9va3VwX2NhY2hlX2ZpbmQoY29uc3QgY2hhciAqY29udGV4dCwgY29uc3Qgb2lkICpuYW1lLCBzaXplX3QgbmFtZV9sZW4sCiAgICAgICAgICAgICAgICAgICBpbnQgKnJldGNtcCkgewogICAgIGxvb2t1cF9jYWNoZV9jb250ZXh0ICpjcHRyOwogICAgIGxvb2t1cF9jYWNoZSAqcmV0ID0gTlVMTDsKQEAgLTU0OCw2ICs1NTQsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwdHItPm9pZF9vZmYpOwogfQogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YobmV0c25tcF9zdWJ0cmVlX2NvbXBhcmUsbmV0c25tcF91bnVzZWQpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTkVUU05NUF9TVUJUUkVFX0NPTVBBUkUKIC8qKiBDb21wYXJlcyBPSURzIG9mIGdpdmVuIHN1YnRyZWVzLgogICoKICAqICBAcGFyYW0gYXAsYnAgUG9pbnRlcnMgdG8gdGhlIHN1YnRyZWVzIHRvIGJlIGNvbXBhcmVkLgpAQCAtNTYxLDYgKzU2OSw3IEBACiB7CiAgICAgcmV0dXJuIHNubXBfb2lkX2NvbXBhcmUoYXAtPm5hbWVfYSwgYXAtPm5hbWVsZW4sIGJwLT5uYW1lX2EsIGJwLT5uYW1lbGVuKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX05FVFNOTVBfU1VCVFJFRV9DT01QQVJFICovCiAKIC8qKiBKb2lucyB0aGUgZ2l2ZW4gc3VidHJlZSB3aXRoIHRoZSBjdXJyZW50IHRyZWUuCiAgKiAgVHJlZXMgYXJlIGpvaW5lZCBhbmQgdGhlIG9uZSBzdXBwbGllZCBhcyBwYXJhbWV0ZXIgaXMgZnJlZWQuCkBAIC03NDEsOSArNzUwLDggQEAKIGludAogbmV0c25tcF9zdWJ0cmVlX2xvYWQobmV0c25tcF9zdWJ0cmVlICpuZXdfc3ViLCBjb25zdCBjaGFyICpjb250ZXh0X25hbWUpCiB7Ci0gICAgbmV0c25tcF9zdWJ0cmVlICp0cmVlMSwgKnRyZWUyLCAqbmV3MjsKKyAgICBuZXRzbm1wX3N1YnRyZWUgKnRyZWUxLCAqdHJlZTI7CiAgICAgbmV0c25tcF9zdWJ0cmVlICpwcmV2LCAqbmV4dDsKLSAgICBpbnQgICAgICAgICAgICAgcmVzLCByYyA9IDA7CiAKICAgICBpZiAobmV3X3N1YiA9PSBOVUxMKSB7CiAgICAgICAgIHJldHVybiBNSUJfUkVHSVNURVJFRF9PSzsgICAgICAgLyogRGVnZW5lcmF0ZSBjYXNlICovCkBAIC03ODUsNyArNzkzLDcgQEAKICAgICAvKiAgSGFuZGxlIG5ldyBzdWJ0cmVlcyB0aGF0IHN0YXJ0IGluIHZpcmdpbiB0ZXJyaXRvcnkuICAqLwogCiAgICAgaWYgKHRyZWUxID09IE5VTEwpIHsKLQluZXcyID0gTlVMTDsKKyAgICAgICAgbmV0c25tcF9zdWJ0cmVlICpuZXcyID0gTlVMTDsKIAkvKiAgSXMgdGhlcmUgYW55IG92ZXJsYXAgd2l0aCBsYXRlciBzdWJ0cmVlcz8gICovCiAJaWYgKHRyZWUyICYmIHNubXBfb2lkX2NvbXBhcmUobmV3X3N1Yi0+ZW5kX2EsIG5ld19zdWItPmVuZF9sZW4sCiAJCQkJICAgICAgdHJlZTItPnN0YXJ0X2EsIHRyZWUyLT5zdGFydF9sZW4pID4gMCkgewpAQCAtODQ0LDEwICs4NTIsOCBAQAogCSAgICBJZiB0aGUgbmV3IHN1YnRyZWUgZXh0ZW5kcyBiZXlvbmQgdGhpcyBleGlzdGluZyByZWdpb24sCiAJICAgICAgICAgICAgc3BsaXQgaXQsIGFuZCByZWN1cnNlIHRvIG1lcmdlIHRoZSB0d28gcGFydHMuICAqLwogCi0JcmMgPSBzbm1wX29pZF9jb21wYXJlKG5ld19zdWItPmVuZF9hLCBuZXdfc3ViLT5lbmRfbGVuLCAKLQkJCSAgICAgIHRyZWUxLT5lbmRfYSwgdHJlZTEtPmVuZF9sZW4pOwotCi0gICAgICAgIHN3aXRjaCAocmMpIHsKKwlzd2l0Y2ggKHNubXBfb2lkX2NvbXBhcmUobmV3X3N1Yi0+ZW5kX2EsIG5ld19zdWItPmVuZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVlMS0+ZW5kX2EsIHRyZWUxLT5lbmRfbGVuKSkgewogCiAJY2FzZSAtMToKIAkgICAgLyogIEV4aXN0aW5nIHN1YnRyZWUgY29udGFpbnMgbmV3IG9uZS4gICovCkBAIC05MTgsMTUgKzkyNCwxOCBAQAogCiAJY2FzZSAgMToKIAkgICAgLyogIE5ldyBzdWJ0cmVlIGNvbnRhaW5zIHRoZSBleGlzdGluZyBvbmUuICAqLwotCSAgICBuZXcyID0gbmV0c25tcF9zdWJ0cmVlX3NwbGl0KG5ld19zdWIsIHRyZWUxLT5lbmRfYSx0cmVlMS0+ZW5kX2xlbik7Ci0JICAgIHJlcyA9IG5ldHNubXBfc3VidHJlZV9sb2FkKG5ld19zdWIsIGNvbnRleHRfbmFtZSk7Ci0JICAgIGlmIChyZXMgIT0gTUlCX1JFR0lTVEVSRURfT0spIHsKLSAgICAgICAgICAgICAgICBuZXRzbm1wX3JlbW92ZV9zdWJ0cmVlKG5ldzIpOwotCQluZXRzbm1wX3N1YnRyZWVfZnJlZShuZXcyKTsKLQkJcmV0dXJuIHJlczsKLQkgICAgfQotCSAgICByZXR1cm4gbmV0c25tcF9zdWJ0cmVlX2xvYWQobmV3MiwgY29udGV4dF9uYW1lKTsKLQl9CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbmV0c25tcF9zdWJ0cmVlICpuZXcyID0KKyAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9zdWJ0cmVlX3NwbGl0KG5ld19zdWIsIHRyZWUxLT5lbmRfYSx0cmVlMS0+ZW5kX2xlbik7CisgICAgICAgICAgICAgICAgaW50IHJlcyA9IG5ldHNubXBfc3VidHJlZV9sb2FkKG5ld19zdWIsIGNvbnRleHRfbmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSBNSUJfUkVHSVNURVJFRF9PSykgeworICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3JlbW92ZV9zdWJ0cmVlKG5ldzIpOworICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3N1YnRyZWVfZnJlZShuZXcyKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldHNubXBfc3VidHJlZV9sb2FkKG5ldzIsIGNvbnRleHRfbmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIDA7CiB9CkBAIC05NTQsNyArOTYzLDcgQEAKIH0KIAogbmV0c25tcF9zdWJ0cmVlICoKLW5ldHNubXBfc3VidHJlZV9maW5kX3ByZXYob2lkICpuYW1lLCBzaXplX3QgbGVuLCBuZXRzbm1wX3N1YnRyZWUgKnN1YnRyZWUsCituZXRzbm1wX3N1YnRyZWVfZmluZF9wcmV2KGNvbnN0IG9pZCAqbmFtZSwgc2l6ZV90IGxlbiwgbmV0c25tcF9zdWJ0cmVlICpzdWJ0cmVlLAogCQkJICBjb25zdCBjaGFyICpjb250ZXh0X25hbWUpCiB7CiAgICAgbG9va3VwX2NhY2hlICpsb29rdXBfY2FjaGUgPSBOVUxMOwpAQCAtMTAyNSw3ICsxMDM0LDcgQEAKIH0KIAogbmV0c25tcF9zdWJ0cmVlICoKLW5ldHNubXBfc3VidHJlZV9maW5kX25leHQob2lkICpuYW1lLCBzaXplX3QgbGVuLAorbmV0c25tcF9zdWJ0cmVlX2ZpbmRfbmV4dChjb25zdCBvaWQgKm5hbWUsIHNpemVfdCBsZW4sCiAJCQkgIG5ldHNubXBfc3VidHJlZSAqc3VidHJlZSwgY29uc3QgY2hhciAqY29udGV4dF9uYW1lKQogewogICAgIG5ldHNubXBfc3VidHJlZSAqbXlwdHIgPSBOVUxMOwpAQCAtMTA0OCw3ICsxMDU3LDcgQEAKIH0KIAogbmV0c25tcF9zdWJ0cmVlICoKLW5ldHNubXBfc3VidHJlZV9maW5kKG9pZCAqbmFtZSwgc2l6ZV90IGxlbiwgbmV0c25tcF9zdWJ0cmVlICpzdWJ0cmVlLCAKK25ldHNubXBfc3VidHJlZV9maW5kKGNvbnN0IG9pZCAqbmFtZSwgc2l6ZV90IGxlbiwgbmV0c25tcF9zdWJ0cmVlICpzdWJ0cmVlLCAKIAkJICAgICBjb25zdCBjaGFyICpjb250ZXh0X25hbWUpCiB7CiAgICAgbmV0c25tcF9zdWJ0cmVlICpteXB0cjsKQEAgLTExMTYsNyArMTEyNSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBpbnQgcGVyZm9ybV9jYWxsYmFjaykKIHsKICAgICBuZXRzbm1wX3N1YnRyZWUgKnN1YnRyZWUsICpzdWIyOwotICAgIGludCAgICAgICAgICAgICByZXMsIGk7CisgICAgaW50ICAgICAgICAgICAgIHJlczsKICAgICBzdHJ1Y3QgcmVnaXN0ZXJfcGFyYW1ldGVycyByZWdfcGFybXM7CiAgICAgaW50IG9sZF9sb29rdXBfY2FjaGVfdmFsID0gbmV0c25tcF9nZXRfbG9va3VwX2NhY2hlX3NpemUoKTsKIApAQCAtMTE5Nyw2ICsxMjA2LDcgQEAKIAlyZXN0IG9mIHRoZSByYW5nZS4gICovCiAKICAgICBpZiAocmVzID09IE1JQl9SRUdJU1RFUkVEX09LICYmIHJhbmdlX3N1YmlkICE9IDApIHsKKyAgICAgICAgaW50IGk7CiAJZm9yIChpID0gbWlibG9jW3JhbmdlX3N1YmlkIC0gMV0gKyAxOyBpIDw9IChpbnQpcmFuZ2VfdWJvdW5kOyBpKyspIHsKIAkgICAgc3ViMiA9IG5ldHNubXBfc3VidHJlZV9kZWVwY29weShzdWJ0cmVlKTsKIApAQCAtMTM5Miw3ICsxNDAyLDcgQEAKICAqICAgICAgICAgICAgICAgICAgICAgSWYgcmFuZ2Vfc3ViaWQgaXMgemVybywgdGhlbiB0aGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkLgogICoKICAqICBAcGFyYW0gc3MgCi0gKiAgQHBhcmFtIGNvbnRleHQgCisgKiAgQHBhcmFtIGNvbnRleHQKICAqICBAcGFyYW0gdGltZW91dCAKICAqICBAcGFyYW0gZmxhZ3MgCiAgKgpAQCAtMTQwNSwxMCArMTQxNSwxMCBAQAogICovCiBpbnQKIHJlZ2lzdGVyX21pYl9jb250ZXh0KGNvbnN0IGNoYXIgKm1vZHVsZU5hbWUsCi0gICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmFyaWFibGUgKnZhciwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2YXJpYWJsZSAqdmFyLAogICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHZhcnNpemUsCiAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbnVtdmFycywKLSAgICAgICAgICAgICAgICAgICAgIG9pZCAqIG1pYmxvYywKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9pZCAqIG1pYmxvYywKICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBtaWJsb2NsZW4sCiAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJpb3JpdHksCiAgICAgICAgICAgICAgICAgICAgICBpbnQgcmFuZ2Vfc3ViaWQsCkBAIC0xNDcwLDEwICsxNDgwLDEwIEBACiAgKi8KIGludAogcmVnaXN0ZXJfbWliX3JhbmdlKGNvbnN0IGNoYXIgKm1vZHVsZU5hbWUsCi0gICAgICAgICAgICAgICAgICAgc3RydWN0IHZhcmlhYmxlICp2YXIsCisgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZhcmlhYmxlICp2YXIsCiAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHZhcnNpemUsCiAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG51bXZhcnMsCi0gICAgICAgICAgICAgICAgICAgb2lkICogbWlibG9jLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IG9pZCAqIG1pYmxvYywKICAgICAgICAgICAgICAgICAgICBzaXplX3QgbWlibG9jbGVuLAogICAgICAgICAgICAgICAgICAgIGludCBwcmlvcml0eSwKICAgICAgICAgICAgICAgICAgICBpbnQgcmFuZ2Vfc3ViaWQsIG9pZCByYW5nZV91Ym91bmQsIG5ldHNubXBfc2Vzc2lvbiAqIHNzKQpAQCAtMTUxOSwxMCArMTUyOSwxMCBAQAogICovCiBpbnQKIHJlZ2lzdGVyX21pYl9wcmlvcml0eShjb25zdCBjaGFyICptb2R1bGVOYW1lLAotICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2YXJpYWJsZSAqdmFyLAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2YXJpYWJsZSAqdmFyLAogICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB2YXJzaXplLAogICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBudW12YXJzLAotICAgICAgICAgICAgICAgICAgICAgIG9pZCAqIG1pYmxvYywgc2l6ZV90IG1pYmxvY2xlbiwgaW50IHByaW9yaXR5KQorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9pZCAqIG1pYmxvYywgc2l6ZV90IG1pYmxvY2xlbiwgaW50IHByaW9yaXR5KQogewogICAgIHJldHVybiByZWdpc3Rlcl9taWJfcmFuZ2UobW9kdWxlTmFtZSwgdmFyLCB2YXJzaXplLCBudW12YXJzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlibG9jLCBtaWJsb2NsZW4sIHByaW9yaXR5LCAwLCAwLCBOVUxMKTsKQEAgLTE1NTksOSArMTU2OSw5IEBACiAgKi8KIGludAogcmVnaXN0ZXJfbWliKGNvbnN0IGNoYXIgKm1vZHVsZU5hbWUsCi0gICAgICAgICAgICAgc3RydWN0IHZhcmlhYmxlICp2YXIsCisgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZhcmlhYmxlICp2YXIsCiAgICAgICAgICAgICAgc2l6ZV90IHZhcnNpemUsCi0gICAgICAgICAgICAgc2l6ZV90IG51bXZhcnMsIG9pZCAqIG1pYmxvYywgc2l6ZV90IG1pYmxvY2xlbikKKyAgICAgICAgICAgICBzaXplX3QgbnVtdmFycywgY29uc3Qgb2lkICogbWlibG9jLCBzaXplX3QgbWlibG9jbGVuKQogewogICAgIHJldHVybiByZWdpc3Rlcl9taWJfcHJpb3JpdHkobW9kdWxlTmFtZSwgdmFyLCB2YXJzaXplLCBudW12YXJzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlibG9jLCBtaWJsb2NsZW4sIERFRkFVTFRfTUlCX1BSSU9SSVRZKTsKQEAgLTE3NjMsNiArMTc3Myw3IEBACiAgICAgcmV0dXJuIE1JQl9VTlJFR0lTVEVSRURfT0s7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9VTlJFR0lTVEVSX01JQl9UQUJMRV9ST1cKIGludAogbmV0c25tcF91bnJlZ2lzdGVyX21pYl90YWJsZV9yb3cob2lkICogbmFtZSwgc2l6ZV90IGxlbiwgaW50IHByaW9yaXR5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHZhcl9zdWJpZCwgb2lkIHJhbmdlX3Vib3VuZCwKQEAgLTE4NDEsNiArMTg1Miw3IEBACiAKICAgICByZXR1cm4gMDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1VOUkVHSVNURVJfTUlCX1RBQkxFX1JPVyAqLwogCiAvKioKICAqIFVucmVnaXN0ZXJzIGEgbW9kdWxlIHJlZ2lzdGVyZWQgYWdhaW5zdCBhIGdpdmVuIE9JRCAob3IgcmFuZ2UpIGluIHRoZSBkZWZhdWx0IGNvbnRleHQuIApAQCAtMjEzOSw5ICsyMTUxLDEwIEBACiAgICAgcmV0dXJuIDE7CiB9CiAKLQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGdldF9zZXNzaW9uX2Zvcl9vaWQsbmV0c25tcF91bnVzZWQpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfR0VUX1NFU1NJT05fRk9SX09JRAogbmV0c25tcF9zZXNzaW9uICoKLWdldF9zZXNzaW9uX2Zvcl9vaWQob2lkICpuYW1lLCBzaXplX3QgbGVuLCBjb25zdCBjaGFyICpjb250ZXh0X25hbWUpCitnZXRfc2Vzc2lvbl9mb3Jfb2lkKGNvbnN0IG9pZCAqbmFtZSwgc2l6ZV90IGxlbiwgY29uc3QgY2hhciAqY29udGV4dF9uYW1lKQogewogICAgIG5ldHNubXBfc3VidHJlZSAqbXlwdHI7CiAKQEAgLTIxNTksNiArMjE3Miw3IEBACiAgICAgICAgIHJldHVybiBteXB0ci0+c2Vzc2lvbjsKICAgICB9CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9HRVRfU0VTU0lPTl9GT1JfT0lEICovCiAKIHZvaWQKIHNldHVwX3RyZWUodm9pZCkKQEAgLTIyOTQsMTUgKzIzMDgsOSBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKHMgIT0gTlVMTCkgewotICAgICAgICBTTk1QX0ZSRUUocyk7Ci0gICAgfQotICAgIGlmIChlICE9IE5VTEwpIHsKLSAgICAgICAgU05NUF9GUkVFKGUpOwotICAgIH0KLSAgICBpZiAodiAhPSBOVUxMKSB7Ci0gICAgICAgIFNOTVBfRlJFRSh2KTsKLSAgICB9CisgICAgU05NUF9GUkVFKHMpOworICAgIFNOTVBfRlJFRShlKTsKKyAgICBTTk1QX0ZSRUUodik7CiAKICAgICBkdW1wX2lkeF9yZWdpc3RyeSgpOwogfQpAQCAtMjMxMSw2ICsyMzE5LDkgQEAKIC8qIEVuZCBvZiBNSUIgcmVnaXN0cmF0aW9uIGNvZGUgKi8KIAogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YocmVnaXN0ZXJfc2lnbmFsLCBuZXRzbm1wX3VudXNlZCkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUdJU1RFUl9TSUdOQUwKKwogLyoqIEBkZWZncm91cCBhZ2VudF9zaWduYWxzIFBPU0lYIHNpZ25hbHMgc3VwcG9ydCBmb3IgYWdlbnRzLgogICogICAgIFJlZ2lzdGVyaW5nIGFuZCB1bnJlZ2lzdGVyaW5nIHNpZ25hbCBoYW5kbGVycy4KICAqICAgQGluZ3JvdXAgYWdlbnRfcmVnaXN0cnkKQEAgLTI0MDgsNSArMjQxOSw3IEBACiAvKiogIEB9ICovCiAvKiBFbmQgb2Ygc2lnbmFscyBzdXBwb3J0IGNvZGUgKi8KIAorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUkVHSVNURVJfU0lHTkFMICovCisKIC8qKiAgQH0gKi8KIApkaWZmIC0tZ2l0IGEvYWdlbnQvYWdlbnRfdHJhcC5jIGIvYWdlbnQvYWdlbnRfdHJhcC5jCmluZGV4IGY1ZGJjY2EuLjA4MGI4YmYgMTAwNjQ0Ci0tLSBhL2FnZW50L2FnZW50X3RyYXAuYworKysgYi9hZ2VudC9hZ2VudF90cmFwLmMKQEAgLTE4LDYgKzE4LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2lmIEhBVkVfVU5JU1REX0gKICNpbmNsdWRlIDx1bmlzdGQuaD4KQEAgLTY0LDYgKzY1LDE0IEBACiAjaW5jbHVkZSAiYWdlbnR4L3Byb3RvY29sLmgiCiAjZW5kaWYKIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGFnZW50X3RyYXBfYWxsLCBsaWJuZXRzbm1wYWdlbnQpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0cmFwX3ZhcnNfd2l0aF9jb250ZXh0LCBhZ2VudF90cmFwX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihyZW1vdmVfdHJhcF9zZXNzaW9uLCBhZ2VudF90cmFwX2FsbCkKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHNlbmRfdjN0cmFwLG5ldHNubXBfdW51c2VkKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHNlbmRfdHJhcF9wZHUsbmV0c25tcF91bnVzZWQpCisKIHN0cnVjdCB0cmFwX3NpbmsgewogICAgIG5ldHNubXBfc2Vzc2lvbiAqc2VzcDsKICAgICBzdHJ1Y3QgdHJhcF9zaW5rICpuZXh0OwpAQCAtMTc1LDYgKzE4NCw3IEBACiAgICAgcmV0dXJuIDE7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRU1PVkVfVFJBUF9TRVNTSU9OCiBpbnQKIHJlbW92ZV90cmFwX3Nlc3Npb24obmV0c25tcF9zZXNzaW9uICogc3MpCiB7CkBAIC0yMDcsNiArMjE3LDcgQEAKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRU1PVkVfVFJBUF9TRVNTSU9OICovCiAKICNpZiAhZGVmaW5lZChORVRTTk1QX0RJU0FCTEVfU05NUFYxKSB8fCAhZGVmaW5lZChORVRTTk1QX0RJU0FCTEVfU05NUFYyQykKIHN0YXRpYyBpbnQKQEAgLTg5Myw4ICs5MDQsNiBAQAogewogICAgIG5ldHNubXBfcGR1ICAgICpwZHU7CiAgICAgaW50ICAgICAgICAgICAgcmVzdWx0OwotICAgIGludCAgICAgICAgICAgIGxlbjsKLQogCiAgICAgaWYgKCFzZXNzIHx8ICF0ZW1wbGF0ZV9wZHUpCiAgICAgICAgIHJldHVybjsKQEAgLTkyOCw3ICs5MzcsNyBAQAogICAgICAgICAgICAgICAgIChzZXNzLT5zZWN1cml0eUVuZ2luZUlETGVuID09IDApKSB7CiAgICAgICAgICAgICB1X2NoYXIgICAgICAgICAgdG1wW1NQUklOVF9NQVhfTEVOXTsKIAotICAgICAgICAgICAgbGVuID0gc25tcHYzX2dldF9lbmdpbmVJRCh0bXAsIHNpemVvZih0bXApKTsKKyAgICAgICAgICAgIGludCBsZW4gPSBzbm1wdjNfZ2V0X2VuZ2luZUlEKHRtcCwgc2l6ZW9mKHRtcCkpOwogICAgICAgICAgICAgcGR1LT5zZWN1cml0eUVuZ2luZUlEID0gbmV0c25tcF9tZW1kdXAodG1wLCBsZW4pOwogICAgICAgICAgICAgcGR1LT5zZWN1cml0eUVuZ2luZUlETGVuID0gbGVuOwogICAgICAgICB9CkBAIC05NTYsNiArOTY1LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPSURfTEVOR1RIKHRyYXBfdmVyc2lvbl9pZCksIHZhcnMpOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVFJBUF9WQVJTX1dJVEhfQ09OVEVYVAogLyogU2VuZCBhIHRyYXAgdW5kZXIgYSBjb250ZXh0ICovCiB2b2lkIHNlbmRfdHJhcF92YXJzX3dpdGhfY29udGV4dChpbnQgdHJhcCwgaW50IHNwZWNpZmljLCAKICAgICAgICAgICAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXJzLCBjb25zdCBjaGFyICpjb250ZXh0KQpAQCAtOTcwLDYgKzk4MCw3IEBACiAJCQkJCQkJCSAgY29udGV4dCwgMCk7CiAgICAgCQogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVFJBUF9WQVJTX1dJVEhfQ09OVEVYVCAqLwogCiAvKioKICAqIFNlbmRzIGFuIFNOTVB2MSB0cmFwIChvciB0aGUgU05NUHYyIGVxdWl2YWxlbnQpIHRvIHRoZSBsaXN0IG9mICAKQEAgLTEwNDEsMTggKzEwNTIsMjIgQEAKICAqCiAgKiBAc2VlIHNlbmRfdjJ0cmFwCiAgKi8KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TRU5EX1YzVFJBUAogdm9pZCBzZW5kX3YzdHJhcChuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhcnMsIGNvbnN0IGNoYXIgKmNvbnRleHQpCiB7CiAgICAgbmV0c25tcF9zZW5kX3RyYXBzKC0xLCAtMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHRyYXBfdmVyc2lvbl9pZCwgT0lEX0xFTkdUSCh0cmFwX3ZlcnNpb25faWQpLAogICAgICAgICAgICAgICAgICAgICAgICB2YXJzLCBjb250ZXh0LCAwKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NFTkRfVjNUUkFQICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TRU5EX1RSQVBfUERVCiB2b2lkCiBzZW5kX3RyYXBfcGR1KG5ldHNubXBfcGR1ICpwZHUpCiB7CiAgICAgc2VuZF90cmFwX3ZhcnMoLTEsIC0xLCBwZHUtPnZhcmlhYmxlcyk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TRU5EX1RSQVBfUERVICovCiAKIAogCmRpZmYgLS1naXQgYS9hZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCBiL2FnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCmluZGV4IDgzZmJkMjcuLmQyMGUxMjUgMTAwNjQ0Ci0tLSBhL2FnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCisrKyBiL2FnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCkBAIC01LDYgKzUsNyBAQAogLi9hbGxfaGVscGVycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3lzdi5oCiAuL2FsbF9oZWxwZXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmgKIC4vYWxsX2hlbHBlcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWFjaGluZS9nZW5lcmljLmgKKy4vYWxsX2hlbHBlcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9hbGxfaGVscGVycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL2FsbF9oZWxwZXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vYWxsX2hlbHBlcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtNzMsNiArNzQsNyBAQAogLi9hbGxfaGVscGVycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vYWxsX2hlbHBlcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2FsbF9oZWxwZXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vYWxsX2hlbHBlcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vYWxsX2hlbHBlcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vYWxsX2hlbHBlcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9hbGxfaGVscGVycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMTMsNiArMTE1LDcgQEAKIC4vYWxsX2hlbHBlcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKIC4vYWxsX2hlbHBlcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3Rhc2hfY2FjaGUuaAogLi9iYWJ5X3N0ZXBzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2JhYnlfc3RlcHMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9iYWJ5X3N0ZXBzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vYmFieV9zdGVwcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL2JhYnlfc3RlcHMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMTgwLDYgKzE4Myw3IEBACiAuL2JhYnlfc3RlcHMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2JhYnlfc3RlcHMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2JhYnlfc3RlcHMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9iYWJ5X3N0ZXBzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2JhYnlfc3RlcHMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vYmFieV9zdGVwcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL2JhYnlfc3RlcHMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMjUyLDYgKzI1Niw3IEBACiAuL2J1bGtfdG9fbmV4dC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vYnVsa190b19uZXh0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9idWxrX3RvX25leHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9idWxrX3RvX25leHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9idWxrX3RvX25leHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9idWxrX3RvX25leHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vYnVsa190b19uZXh0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0yODYsNiArMjkxLDcgQEAKIC4vYnVsa190b19uZXh0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9idWxrX3RvX25leHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2J1bGtfdG9fbmV4dC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2J1bGtfdG9fbmV4dC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9idWxrX3RvX25leHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vYnVsa190b19uZXh0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vYnVsa190b19uZXh0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTMyNSw2ICszMzEsNyBAQAogLi9idWxrX3RvX25leHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgKIC4vYnVsa190b19uZXh0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL2NhY2hlX2hhbmRsZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vY2FjaGVfaGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2NhY2hlX2hhbmRsZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9jYWNoZV9oYW5kbGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vY2FjaGVfaGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0zOTIsNiArMzk5LDcgQEAKIC4vY2FjaGVfaGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vY2FjaGVfaGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vY2FjaGVfaGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2NhY2hlX2hhbmRsZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vY2FjaGVfaGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9jYWNoZV9oYW5kbGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vY2FjaGVfaGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC00NjQsNiArNDcyLDcgQEAKIC4vZGVidWdfaGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vZGVidWdfaGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vZGVidWdfaGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL2RlYnVnX2hhbmRsZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9kZWJ1Z19oYW5kbGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vZGVidWdfaGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9kZWJ1Z19oYW5kbGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC00OTgsNiArNTA3LDcgQEAKIC4vZGVidWdfaGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vZGVidWdfaGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vZGVidWdfaGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2RlYnVnX2hhbmRsZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vZGVidWdfaGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9kZWJ1Z19oYW5kbGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vZGVidWdfaGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC01MzcsNiArNTQ3LDcgQEAKIC4vZGVidWdfaGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaAogLi9kZWJ1Z19oYW5kbGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL2luc3RhbmNlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2luc3RhbmNlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vaW5zdGFuY2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9pbnN0YW5jZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL2luc3RhbmNlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTYwNCw2ICs2MTUsNyBAQAogLi9pbnN0YW5jZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vaW5zdGFuY2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2luc3RhbmNlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaW5zdGFuY2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vaW5zdGFuY2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaW5zdGFuY2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9pbnN0YW5jZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC02NDMsNiArNjU1LDcgQEAKIC4vaW5zdGFuY2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgKIC4vaW5zdGFuY2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKIC4vbW9kZV9lbmRfY2FsbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9tb2RlX2VuZF9jYWxsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vbW9kZV9lbmRfY2FsbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL21vZGVfZW5kX2NhbGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9tb2RlX2VuZF9jYWxsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTcxMCw2ICs3MjMsNyBAQAogLi9tb2RlX2VuZF9jYWxsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9tb2RlX2VuZF9jYWxsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9tb2RlX2VuZF9jYWxsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vbW9kZV9lbmRfY2FsbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9tb2RlX2VuZF9jYWxsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL21vZGVfZW5kX2NhbGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9tb2RlX2VuZF9jYWxsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTc4Miw2ICs3OTYsNyBAQAogLi9tdWx0aXBsZXhlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vbXVsdGlwbGV4ZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL211bHRpcGxleGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vbXVsdGlwbGV4ZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9tdWx0aXBsZXhlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL211bHRpcGxleGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL211bHRpcGxleGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC04MTYsNiArODMxLDcgQEAKIC4vbXVsdGlwbGV4ZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL211bHRpcGxleGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9tdWx0aXBsZXhlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL211bHRpcGxleGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL211bHRpcGxleGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL211bHRpcGxleGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vbXVsdGlwbGV4ZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtODg4LDYgKzkwNCw3IEBACiAuL251bGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL251bGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL251bGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9udWxsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vbnVsbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL251bGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vbnVsbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtOTIyLDYgKzkzOSw3IEBACiAuL251bGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL251bGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL251bGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9udWxsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL251bGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vbnVsbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL251bGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtOTk0LDYgKzEwMTIsNyBAQAogLi9vbGRfYXBpLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9vbGRfYXBpLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9vbGRfYXBpLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vb2xkX2FwaS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL29sZF9hcGkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9vbGRfYXBpLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL29sZF9hcGkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTEwMjgsNiArMTA0Nyw3IEBACiAuL29sZF9hcGkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL29sZF9hcGkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL29sZF9hcGkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9vbGRfYXBpLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL29sZF9hcGkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vb2xkX2FwaS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL29sZF9hcGkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTEwMSw2ICsxMTIxLDcgQEAKIC4vcmVhZF9vbmx5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9yZWFkX29ubHkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3JlYWRfb25seS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3JlYWRfb25seS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3JlYWRfb25seS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3JlYWRfb25seS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9yZWFkX29ubHkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTExMzUsNiArMTE1Niw3IEBACiAuL3JlYWRfb25seS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vcmVhZF9vbmx5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9yZWFkX29ubHkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9yZWFkX29ubHkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vcmVhZF9vbmx5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3JlYWRfb25seS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3JlYWRfb25seS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMTc0LDYgKzExOTYsNyBAQAogLi9yZWFkX29ubHkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgKIC4vcmVhZF9vbmx5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL3Jvd19tZXJnZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9yb3dfbWVyZ2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9yb3dfbWVyZ2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9yb3dfbWVyZ2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9yb3dfbWVyZ2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMTI0MSw2ICsxMjY0LDcgQEAKIC4vcm93X21lcmdlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9yb3dfbWVyZ2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3Jvd19tZXJnZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3Jvd19tZXJnZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9yb3dfbWVyZ2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vcm93X21lcmdlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vcm93X21lcmdlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTEzMTMsNiArMTMzNyw3IEBACiAuL3NjYWxhci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vc2NhbGFyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9zY2FsYXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zY2FsYXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zY2FsYXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9zY2FsYXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc2NhbGFyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xMzQ3LDYgKzEzNzIsNyBAQAogLi9zY2FsYXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NjYWxhci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc2NhbGFyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc2NhbGFyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NjYWxhci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zY2FsYXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9zY2FsYXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTQxOSw2ICsxNDQ1LDcgQEAKIC4vc2NhbGFyX2dyb3VwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zY2FsYXJfZ3JvdXAubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NjYWxhcl9ncm91cC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NjYWxhcl9ncm91cC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NjYWxhcl9ncm91cC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NjYWxhcl9ncm91cC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zY2FsYXJfZ3JvdXAubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTE0NTMsNiArMTQ4MCw3IEBACiAuL3NjYWxhcl9ncm91cC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc2NhbGFyX2dyb3VwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zY2FsYXJfZ3JvdXAubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zY2FsYXJfZ3JvdXAubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc2NhbGFyX2dyb3VwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NjYWxhcl9ncm91cC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3NjYWxhcl9ncm91cC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xNTI1LDYgKzE1NTMsNyBAQAogLi9zZXJpYWxpemUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3NlcmlhbGl6ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc2VyaWFsaXplLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc2VyaWFsaXplLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc2VyaWFsaXplLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc2VyaWFsaXplLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NlcmlhbGl6ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTU1OSw2ICsxNTg4LDcgQEAKIC4vc2VyaWFsaXplLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zZXJpYWxpemUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NlcmlhbGl6ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NlcmlhbGl6ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zZXJpYWxpemUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc2VyaWFsaXplLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vc2VyaWFsaXplLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE1OTgsNiArMTYyOCw3IEBACiAuL3NlcmlhbGl6ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaAogLi9zZXJpYWxpemUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKIC4vc25tcF9nZXRfc3RhdGlzdGljLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL3NubXBfZ2V0X3N0YXRpc3RpYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXBfZ2V0X3N0YXRpc3RpYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL3NubXBfZ2V0X3N0YXRpc3RpYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL3NubXBfZ2V0X3N0YXRpc3RpYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0xNjY1LDYgKzE2OTYsNyBAQAogLi9zbm1wX2dldF9zdGF0aXN0aWMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NubXBfZ2V0X3N0YXRpc3RpYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc25tcF9nZXRfc3RhdGlzdGljLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc25tcF9nZXRfc3RhdGlzdGljLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NubXBfZ2V0X3N0YXRpc3RpYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zbm1wX2dldF9zdGF0aXN0aWMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9zbm1wX2dldF9zdGF0aXN0aWMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTcwNCw2ICsxNzM2LDcgQEAKIC4vc25tcF9nZXRfc3RhdGlzdGljLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oCiAuL3NubXBfZ2V0X3N0YXRpc3RpYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi9zdGFzaF9jYWNoZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9zdGFzaF9jYWNoZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3N0YXNoX2NhY2hlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vc3Rhc2hfY2FjaGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9zdGFzaF9jYWNoZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0xNzcxLDYgKzE4MDQsNyBAQAogLi9zdGFzaF9jYWNoZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc3Rhc2hfY2FjaGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3N0YXNoX2NhY2hlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc3Rhc2hfY2FjaGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc3Rhc2hfY2FjaGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc3Rhc2hfY2FjaGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9zdGFzaF9jYWNoZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xODA5LDkgKzE4NDMsMTAgQEAKIC4vc3Rhc2hfY2FjaGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaAogLi9zdGFzaF9jYWNoZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaAogLi9zdGFzaF9jYWNoZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAotLi9zdGFzaF9jYWNoZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF9jYWNoZS5oCiAuL3N0YXNoX2NhY2hlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX3RvX25leHQuaAorLi9zdGFzaF9jYWNoZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF9jYWNoZS5oCiAuL3N0YXNoX3RvX25leHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vc3Rhc2hfdG9fbmV4dC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3N0YXNoX3RvX25leHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9zdGFzaF90b19uZXh0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vc3Rhc2hfdG9fbmV4dC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0xODc5LDYgKzE5MTQsNyBAQAogLi9zdGFzaF90b19uZXh0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zdGFzaF90b19uZXh0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zdGFzaF90b19uZXh0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc3Rhc2hfdG9fbmV4dC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zdGFzaF90b19uZXh0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3N0YXNoX3RvX25leHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9zdGFzaF90b19uZXh0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE5MjAsNiArMTk1Niw3IEBACiAuL3N0YXNoX3RvX25leHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3Rhc2hfdG9fbmV4dC5oCiAuL3N0YXNoX3RvX25leHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3Rhc2hfY2FjaGUuaAogLi90YWJsZV9hcnJheS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi90YWJsZV9hcnJheS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3RhYmxlX2FycmF5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vdGFibGVfYXJyYXkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi90YWJsZV9hcnJheS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0xOTg3LDYgKzIwMjQsNyBAQAogLi90YWJsZV9hcnJheS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdGFibGVfYXJyYXkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3RhYmxlX2FycmF5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vdGFibGVfYXJyYXkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdGFibGVfYXJyYXkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdGFibGVfYXJyYXkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi90YWJsZV9hcnJheS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0yMDI2LDYgKzIwNjQsNyBAQAogLi90YWJsZV9hcnJheS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaAogLi90YWJsZV9hcnJheS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi90YWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi90YWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vdGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi90YWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0yMDkzLDYgKzIxMzIsNyBAQAogLi90YWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vdGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi90YWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0yMTMyLDYgKzIxNzIsNyBAQAogLi90YWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaAogLi90YWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi90YWJsZV9jb250YWluZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vdGFibGVfY29udGFpbmVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdGFibGVfY29udGFpbmVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vdGFibGVfY29udGFpbmVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vdGFibGVfY29udGFpbmVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTIxOTksNiArMjI0MCw3IEBACiAuL3RhYmxlX2NvbnRhaW5lci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdGFibGVfY29udGFpbmVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi90YWJsZV9jb250YWluZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi90YWJsZV9jb250YWluZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdGFibGVfY29udGFpbmVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3RhYmxlX2NvbnRhaW5lci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3RhYmxlX2NvbnRhaW5lci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0yMjM4LDYgKzIyODAsNyBAQAogLi90YWJsZV9jb250YWluZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgKIC4vdGFibGVfY29udGFpbmVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL3RhYmxlX2RhdGEubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vdGFibGVfZGF0YS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3RhYmxlX2RhdGEubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi90YWJsZV9kYXRhLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vdGFibGVfZGF0YS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0yMzA1LDYgKzIzNDgsNyBAQAogLi90YWJsZV9kYXRhLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi90YWJsZV9kYXRhLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi90YWJsZV9kYXRhLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vdGFibGVfZGF0YS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi90YWJsZV9kYXRhLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3RhYmxlX2RhdGEubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi90YWJsZV9kYXRhLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTIzNDQsNiArMjM4OCw3IEBACiAuL3RhYmxlX2RhdGEubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgKIC4vdGFibGVfZGF0YS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi90YWJsZV9kYXRhc2V0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL3RhYmxlX2RhdGFzZXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi90YWJsZV9kYXRhc2V0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vdGFibGVfZGF0YXNldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL3RhYmxlX2RhdGFzZXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMjQxMSw2ICsyNDU2LDcgQEAKIC4vdGFibGVfZGF0YXNldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdGFibGVfZGF0YXNldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdGFibGVfZGF0YXNldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3RhYmxlX2RhdGFzZXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdGFibGVfZGF0YXNldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi90YWJsZV9kYXRhc2V0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdGFibGVfZGF0YXNldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0yNDUwLDYgKzI0OTYsNyBAQAogLi90YWJsZV9kYXRhc2V0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oCiAuL3RhYmxlX2RhdGFzZXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKIC4vdGFibGVfaXRlcmF0b3IubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vdGFibGVfaXRlcmF0b3IubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi90YWJsZV9pdGVyYXRvci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL3RhYmxlX2l0ZXJhdG9yLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vdGFibGVfaXRlcmF0b3IubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMjUxNyw2ICsyNTY0LDcgQEAKIC4vdGFibGVfaXRlcmF0b3IubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3RhYmxlX2l0ZXJhdG9yLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi90YWJsZV9pdGVyYXRvci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3RhYmxlX2l0ZXJhdG9yLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3RhYmxlX2l0ZXJhdG9yLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3RhYmxlX2l0ZXJhdG9yLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdGFibGVfaXRlcmF0b3IubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMjU1Nyw2ICsyNjA1LDcgQEAKIC4vdGFibGVfaXRlcmF0b3IubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKIC4vdGFibGVfaXRlcmF0b3IubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3Rhc2hfY2FjaGUuaAogLi90YWJsZV9yb3cubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vdGFibGVfcm93LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdGFibGVfcm93LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vdGFibGVfcm93LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vdGFibGVfcm93LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTI2MjQsNiArMjY3Myw3IEBACiAuL3RhYmxlX3Jvdy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdGFibGVfcm93LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi90YWJsZV9yb3cubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi90YWJsZV9yb3cubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdGFibGVfcm93LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3RhYmxlX3Jvdy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3RhYmxlX3Jvdy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0yNjYzLDYgKzI3MTMsNyBAQAogLi90YWJsZV9yb3cubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgKIC4vdGFibGVfcm93LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL3RhYmxlX3RkYXRhLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL3RhYmxlX3RkYXRhLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdGFibGVfdGRhdGEubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi90YWJsZV90ZGF0YS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL3RhYmxlX3RkYXRhLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTI3MzAsNiArMjc4MSw3IEBACiAuL3RhYmxlX3RkYXRhLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi90YWJsZV90ZGF0YS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdGFibGVfdGRhdGEubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi90YWJsZV90ZGF0YS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi90YWJsZV90ZGF0YS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi90YWJsZV90ZGF0YS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3RhYmxlX3RkYXRhLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTI3NjksNiArMjgyMSw3IEBACiAuL3RhYmxlX3RkYXRhLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oCiAuL3RhYmxlX3RkYXRhLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL3dhdGNoZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vd2F0Y2hlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3dhdGNoZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi93YXRjaGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vd2F0Y2hlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0yODM2LDYgKzI4ODksNyBAQAogLi93YXRjaGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi93YXRjaGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi93YXRjaGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vd2F0Y2hlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi93YXRjaGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3dhdGNoZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi93YXRjaGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKZGlmZiAtLWdpdCBhL2FnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYyBiL2FnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYwppbmRleCAxZWQxMDhhLi5lMWUxYjc4IDEwMDY0NAotLS0gYS9hZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMKKysrIGIvYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jCkBAIC0yLDYgKzIsNyBAQAogICogIEB7ICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KIApAQCAtMTIsNiArMTMsOSBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9zdGFzaF9jYWNoZS5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YobWliX2hlbHBlcnMsIGxpYm5ldHNubXBhZ2VudCkKKworCiAvKiogY2FsbCB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgZm9yIGFsbCBoYW5kbGVycyB3aXRoIGluaXRfIHJvdXRpbmVzLiAqLwogdm9pZAogbmV0c25tcF9pbml0X2hlbHBlcnModm9pZCkKQEAgLTIwLDggKzI0LDE2IEBACiAgICAgbmV0c25tcF9pbml0X3NlcmlhbGl6ZSgpOwogICAgIG5ldHNubXBfaW5pdF9yZWFkX29ubHlfaGVscGVyKCk7CiAgICAgbmV0c25tcF9pbml0X2J1bGtfdG9fbmV4dF9oZWxwZXIoKTsKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9EQVRBU0VUCiAgICAgbmV0c25tcF9pbml0X3RhYmxlX2RhdGFzZXQoKTsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0RBVEFTRVQgKi8KKworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JPV19NRVJHRQorICAgIG5ldHNubXBfaW5pdF9yb3dfbWVyZ2UoKTsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JPV19NRVJHRSAqLworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NUQVNIX0NBQ0hFCiAgICAgbmV0c25tcF9pbml0X3N0YXNoX2NhY2hlX2hlbHBlcigpOworI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU1RBU0hfQ0FDSEUgKi8KIH0KIAogLyoqIEBkZWZncm91cCB1dGlsaXRpZXMgdXRpbGl0eV9oYW5kbGVycwpkaWZmIC0tZ2l0IGEvYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMgYi9hZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYwppbmRleCA4NTE1ZGVhLi5kNzlhY2JjIDEwMDY0NAotLS0gYS9hZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYworKysgYi9hZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYwpAQCAtMyw5ICszLDE5IEBACiAgKiAkSWQkCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KIAorbmV0c25tcF9mZWF0dXJlX3Byb3ZpZGUoYmFieV9zdGVwcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihiYWJ5X3N0ZXBzLCBtaWJfaGVscGVycykKKworI2lmZGVmIE5FVFNOTVBfRkVBVFVSRV9SRVFVSVJFX0JBQllfU1RFUFMKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX3JlcXVlc3RzX2Vycm9yKQorI2VuZGlmCisKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9CQUJZX1NURVBTCisKICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmg+CiAKICNkZWZpbmUgQkFCWV9TVEVQU19QRVJfTU9ERV9NQVggICAgIDQKQEAgLTE0LDYgKzI0LDcgQEAKIHN0YXRpYyB1X3Nob3J0IGdldF9tb2RlX21hcFtCQUJZX1NURVBTX1BFUl9NT0RFX01BWF0gPSB7CiAgICAgTU9ERV9CU1RFUF9QUkVfUkVRVUVTVCwgTU9ERV9CU1RFUF9PQkpFQ1RfTE9PS1VQLCBCU1RFUF9VU0VfT1JJR0lOQUwsIE1PREVfQlNURVBfUE9TVF9SRVFVRVNUIH07CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiBzdGF0aWMgdV9zaG9ydCBzZXRfbW9kZV9tYXBbU05NUF9NU0dfSU5URVJOQUxfU0VUX01BWF1bQkFCWV9TVEVQU19QRVJfTU9ERV9NQVhdID0gewogICAgIC8qUjEqLwogICAgIHsgTU9ERV9CU1RFUF9QUkVfUkVRVUVTVCwgTU9ERV9CU1RFUF9PQkpFQ1RfTE9PS1VQLCBNT0RFX0JTVEVQX1JPV19DUkVBVEUsCkBAIC0zMyw2ICs0NCw3IEBACiAgICAgeyBNT0RFX0JTVEVQX1VORE9fQ09NTUlULCBNT0RFX0JTVEVQX1VORE9fU0VULCBNT0RFX0JTVEVQX1VORE9fQ0xFQU5VUCwKICAgICAgIE1PREVfQlNURVBfUE9TVF9SRVFVRVNUfQogfTsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogc3RhdGljIGludAogX2JhYnlfc3RlcHNfaGVscGVyKG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIsCkBAIC01MSw2ICs2MywyMCBAQAogICogIEB7CiAgKi8KIAorc3RhdGljIG5ldHNubXBfYmFieV9zdGVwc19tb2RlcyAqCituZXRzbm1wX2JhYnlfc3RlcHNfbW9kZXNfcmVmKG5ldHNubXBfYmFieV9zdGVwc19tb2RlcyAqbWQpCit7CisgICAgbWQtPnJlZmNudCsrOworICAgIHJldHVybiBtZDsKK30KKworc3RhdGljIHZvaWQKK25ldHNubXBfYmFieV9zdGVwc19tb2Rlc19kZXJlZihuZXRzbm1wX2JhYnlfc3RlcHNfbW9kZXMgKm1kKQoreworICAgIGlmICgtLW1kLT5yZWZjbnQgPT0gMCkKKwlmcmVlKG1kKTsKK30KKwogLyoqIHJldHVybnMgYSBiYWJ5X3N0ZXBzIGhhbmRsZXIgdGhhdCBjYW4gYmUgaW5qZWN0ZWQgaW50byBhIGdpdmVuCiAgKiAgaGFuZGxlciBjaGFpbi4KICAqLwpAQCAtNzEsNyArOTcsMTAgQEAKICAgICAgICAgbWggPSBOVUxMOwogICAgIH0KICAgICBlbHNlIHsKKwltZC0+cmVmY250ID0gMTsKICAgICAgICAgbWgtPm15dm9pZCA9IG1kOworCW1oLT5kYXRhX2Nsb25lID0gKHZvaWQgKigqKSh2b2lkICopKW5ldHNubXBfYmFieV9zdGVwc19tb2Rlc19yZWY7CisJbWgtPmRhdGFfZnJlZSA9ICh2b2lkICgqKSh2b2lkICopKW5ldHNubXBfYmFieV9zdGVwc19tb2Rlc19kZXJlZjsKICAgICAgICAgaWYgKDAgPT0gbW9kZXMpCiAgICAgICAgICAgICBtb2RlcyA9IEJBQllfU1RFUF9BTEw7CiAgICAgICAgIG1kLT5yZWdpc3RlcmVkID0gbW9kZXM7CkBAIC0xMDQsNiArMTMzLDcgQEAKIAogICAgIHN3aXRjaCAocmVxaW5mby0+bW9kZSkgewogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CiAgICAgICAgIC8qCiAgICAgICAgICAqIGNsZWFyIGNvbXBsZXRlZCBtb2RlcwpAQCAtMTIxLDYgKzE1MSw3IEBACiAgICAgY2FzZSBNT0RFX1NFVF9VTkRPOgogICAgICAgICBtb2RlX21hcF9wdHIgPSBzZXRfbW9kZV9tYXBbcmVxaW5mby0+bW9kZV07CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAgICAgCiAgICAgZGVmYXVsdDoKICAgICAgICAgLyoKQEAgLTIyMiw2ICsyNTMsNyBAQAogICAgICAgICBpZiAoQlNURVBfVVNFX09SSUdJTkFMICE9IG1vZGVfbWFwX3B0cltpXSkgewogICAgICAgICAgICAgdV9pbnQgICAgbW9kZV9mbGFnOwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAqIHNraXAgdW5kbyBjb21taXQgaWYgY29tbWl0IHdhc24ndCBoaXQsIGFuZAogICAgICAgICAgICAgICogdW5kb19jbGVhbnVwIGlmIHVuZG9fc2V0dXAgd2Fzbid0IGhpdC4KQEAgLTI0MCw2ICsyNzIsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICBza2lwcGluZyB1bmRvIGNsZWFudXAgKG5vIHVuZG8gc2V0dXApXG4iKSk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICAgICAgICAgICAgIHJlcWluZm8tPm1vZGUgPSBtb2RlX21hcF9wdHJbaV07CiAgICAgICAgICAgICBtb2RlX2ZsYWcgPSBuZXRzbm1wX2JhYnlfc3RlcF9tb2RlMmZsYWcoIG1vZGVfbWFwX3B0cltpXSApOwpAQCAtMjkzLDcgKzMyNiwxMCBAQAogICAgICAgICAgKiBpbiBjb21taXQsIGZyZWUgb3IgdW5kby4pCiAgICAgICAgICAqLwogICAgICAgICBpZiAoTU9ERV9JU19HRVQoc2F2ZV9tb2RlKQotICAgICAgICAgICAgfHwgKHNhdmVfbW9kZSA8IFNOTVBfTVNHX0lOVEVSTkFMX1NFVF9DT01NSVQpKSB7CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAorICAgICAgICAgICAgfHwgKHNhdmVfbW9kZSA8IFNOTVBfTVNHX0lOVEVSTkFMX1NFVF9DT01NSVQpCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgICAgICAgICApIHsKICAgICAgICAgICAgIHJjID0gbmV0c25tcF9jaGVja19yZXF1ZXN0c19lcnJvcihyZXF1ZXN0cyk7CiAgICAgICAgICAgICBpZihyYykgewogICAgICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJiYWJ5X3N0ZXBzIiwgIiAgIEVSUk9SOnJlcXVlc3QgZXJyb3JcbiIpKTsKQEAgLTMxNSwxMiArMzUxLDE1IEBACiAgKiAgaGFuZGxlciBhcyBhIHJ1bi10aW1lIGluamVjdGFibGUgaGFuZGxlciBmb3IgY29uZmlndXJhdGlvbiBmaWxlCiAgKiAgdXNlLgogICovCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YobmV0c25tcF9iYWJ5X3N0ZXBzX2hhbmRsZXJfaW5pdCxuZXRzbm1wX3VudXNlZCkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9ORVRTTk1QX0JBQllfU1RFUFNfSEFORExFUl9JTklUCiB2b2lkCiBuZXRzbm1wX2JhYnlfc3RlcHNfaGFuZGxlcl9pbml0KHZvaWQpCiB7CiAgICAgbmV0c25tcF9yZWdpc3Rlcl9oYW5kbGVyX2J5X25hbWUoImJhYnlfc3RlcHMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfYmFieV9zdGVwc19oYW5kbGVyX2dldChCQUJZX1NURVBfQUxMKSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9ORVRTTk1QX0JBQllfU1RFUFNfSEFORExFUl9JTklUICovCiAKIC8qKiBAfSAqLwogCkBAIC0zOTEsNiArNDMwLDcgQEAKICAgICAgICAgICAgIG1ldGhvZCA9IGFjY2Vzc19tZXRob2RzLT5nZXRfdmFsdWVzOwogICAgICAgICBicmVhazsKICAgICAgICAgCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgTU9ERV9CU1RFUF9DSEVDS19WQUxVRToKICAgICAgICAgaWYoIGFjY2Vzc19tZXRob2RzLT5vYmplY3Rfc3ludGF4X2NoZWNrcyApCiAgICAgICAgICAgICBtZXRob2QgPSBhY2Nlc3NfbWV0aG9kcy0+b2JqZWN0X3N5bnRheF9jaGVja3M7CkBAIC00NDAsNiArNDgwLDcgQEAKICAgICAgICAgaWYoIGFjY2Vzc19tZXRob2RzLT51bmRvX2NsZWFudXAgKQogICAgICAgICAgICAgbWV0aG9kID0gYWNjZXNzX21ldGhvZHMtPnVuZG9fY2xlYW51cDsKICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgIAogICAgIGNhc2UgTU9ERV9CU1RFUF9QT1NUX1JFUVVFU1Q6CiAgICAgICAgIGlmKCBhY2Nlc3NfbWV0aG9kcy0+cG9zdF9yZXF1ZXN0ICkKQEAgLTQ4NCw2ICs1MjUsNyBAQAogICAgIHN3aXRjaCggbW9kZSApIHsKICAgICAgICAgY2FzZSBNT0RFX0JTVEVQX09CSkVDVF9MT09LVVA6CiAgICAgICAgICAgICByZXR1cm4gQkFCWV9TVEVQX09CSkVDVF9MT09LVVA7CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICBjYXNlIE1PREVfQlNURVBfU0VUX1ZBTFVFOgogICAgICAgICAgICAgcmV0dXJuIEJBQllfU1RFUF9TRVRfVkFMVUU7CiAgICAgICAgIGNhc2UgTU9ERV9CU1RFUF9JUlJFVkVSU0lCTEVfQ09NTUlUOgpAQCAtNTA4LDYgKzU1MCw3IEBACiAgICAgICAgICAgICByZXR1cm4gQkFCWV9TVEVQX0NPTU1JVDsKICAgICAgICAgY2FzZSBNT0RFX0JTVEVQX1VORE9fQ09NTUlUOgogICAgICAgICAgICAgcmV0dXJuIEJBQllfU1RFUF9VTkRPX0NPTU1JVDsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIG5ldHNubXBfYXNzZXJ0KCJ1bmtub3duIGZsYWciKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTE2LDMgKzU1OSw3IEBACiB9CiAvKiogIEB9ICovCiAKKyNlbHNlICAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0JBQllfU1RFUFMgKi8KK25ldHNubXBfZmVhdHVyZV91bnVzZWQoYmFieV9zdGVwcyk7CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9CQUJZX1NURVBTICovCisKZGlmZiAtLWdpdCBhL2FnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jIGIvYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMKaW5kZXggNmJiMzJhMC4uNTIwYTRjZiAxMDA2NDQKLS0tIGEvYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMKKysrIGIvYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMKQEAgLTksNiArOSw3IEBACiAgKiBkaXN0cmlidXRlZCB3aXRoIHRoZSBOZXQtU05NUCBwYWNrYWdlLgogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2lmIEhBVkVfU1RSSU5HX0gKICNpbmNsdWRlIDxzdHJpbmcuaD4KQEAgLTIxLDYgKzIyLDExIEBACiAKICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg+CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjYWNoZV9oYW5kbGVyLCBtaWJfaGVscGVycykKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGNhY2hlX2ZpbmRfYnlfb2lkLCBjYWNoZV9oYW5kbGVyKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGNhY2hlX2dldF9oZWFkLCBjYWNoZV9oYW5kbGVyKQorCiBzdGF0aWMgbmV0c25tcF9jYWNoZSAgKmNhY2hlX2hlYWQgPSBOVUxMOwogc3RhdGljIGludCAgICAgICAgICAgICBjYWNoZV9vdXRzdGFuZGluZ192YWxpZCA9IDA7CiBzdGF0aWMgaW50ICAgICAgICAgICAgIF9jYWNoZV9sb2FkKCBuZXRzbm1wX2NhY2hlICpjYWNoZSApOwpAQCAtNzksNiArODUsMTQgQEAKICAqICB0aGUgY2FjaGUgd2hlbiBpdCBleHBpcmVzLiBUaGlzIGlzIHVzZWZ1bCBmb3Iga2VlcGluZyB0aGUgY2FjaGUgZnJlc2gsCiAgKiAgZXZlbiBpbiB0aGUgYWJzZW5jZSBvZiBpbmNvbWluZyBzbm1wIHJlcXVlc3RzLgogICoKKyAqICBJZiBORVRTTk1QX0NBQ0hFX1JFU0VUX1RJTUVSX09OX1VTRSBpcyBzZXQsIHRoZSBleHBpcnkgdGltZXIgd2lsbCBiZQorICogIHJlc2V0IG9uIGVhY2ggY2FjaGUgYWNjZXNzLiBJbiBwcmFjdGljZSB0aGUgJ3RpbWVvdXQnIGJlY29tZXMgYSB0aW1lcgorICogIHdoaWNoIHRyaWdnZXJzIHdoZW4gdGhlIGNhY2hlIGlzIG5vIGxvbmdlciBuZWVkZWQuIFRoaXMgaXMgdXNlZnVsCisgKiAgaWYgdGhlIGNhY2hlIGlzIGF1dG9tYXRpY2FsbHkga2VwdCBzeW5jaHJvbml6ZWQ6IGUuZy4gYnkgcmVjZWl2aW5nCisgKiAgY2hhbmdlIG5vdGlmaWNhdGlvbnMgZnJvbSBOZXRsaW5rLCBpbm90aWZ5IG9yIHNpbWlsYXIuIFRoaXMgc2hvdWxkCisgKiAgbm90IGJlIHVzZWQgaWYgY2FjaGUgaXMgbm90IHN5bmNocm9uaXplZCBhdXRvbWF0aWNhbGx5IGFzIGl0IHdvdWxkCisgKiAgcmVzdWx0IGluIHN0YWxlIGNhY2hlIGluZm9ybWF0aW9uIHdoZW4gaWYgcG9sbGluZyBoYXBwZW5zIHRvbyBmYXN0LgorICoKICAqCiAgKiAgSGVyZSBhcmUgc29tZSBzdWdnZXN0aW9ucyBmb3Igc29tZSBjb21tb24gc2l0dWF0aW9ucy4KICAqCkBAIC0xMTAsMTIgKzEyNCwyMCBAQAogICogICAgICAgICAgTkVUU05NUF9DQUNIRV9ET05UX0FVVE9fUkVMRUFTRQogICogICAgICAgICAgTkVUU05NUF9DQUNIRV9BVVRPX1JFTE9BRAogICoKKyAqICBEeW5hbWljYWxseSB1cGRhdGVkLCB1bmxvYWRlZCBhZnRlciB0aW1lb3V0OgorICogICAgICBJZiB0aGUgY2FjaGUgaXMga2VwdCB1cCB0byBkYXRlIGR5bmFtaWNhbGx5IGJ5IGxpc3RlbmluZyBmb3IKKyAqICAgICAgY2hhbmdlIG5vdGlmaWNhdGlvbnMgc29tZWhvdywgYnV0IGl0IHNob3VsZCBub3QgYmUgaW4gbWVtb3J5CisgKiAgICAgIGlmIGl0J3Mgbm90IG5lZWRlZC4gU2V0IHRoZSBmb2xsb3dpbmcgZmxhZzoKKyAqCisgKiAgICAgICAgICBORVRTTk1QX0NBQ0hFX1JFU0VUX1RJTUVSX09OX1VTRQorICoKICAqICBAewogICovCiAKIHN0YXRpYyB2b2lkCiBfY2FjaGVfZnJlZSggbmV0c25tcF9jYWNoZSAqY2FjaGUgKTsKIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NBQ0hFX0dFVF9IRUFECiAvKiogZ2V0IGNhY2hlIGhlYWQKICAqIEBpbnRlcm5hbAogICogdW5hZHZlcnRpc2VkIGZ1bmN0aW9uIHRvIGdldCBjYWNoZSBoZWFkLiBZb3UgcmVhbGx5IHNob3VsZCBub3QKQEAgLTEyNiw3ICsxNDgsOSBAQAogewogICAgIHJldHVybiBjYWNoZV9oZWFkOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0FDSEVfR0VUX0hFQUQgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NBQ0hFX0ZJTkRfQllfT0lECiAvKiogZmluZCBleGlzdGluZyBjYWNoZQogICovCiBuZXRzbm1wX2NhY2hlICoKQEAgLTE0Miw2ICsxNjYsNyBAQAogICAgIAogICAgIHJldHVybiBOVUxMOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0FDSEVfRklORF9CWV9PSUQgKi8KIAogLyoqIHJldHVybnMgYSBjYWNoZQogICovCkBAIC0xODYsNiArMjExLDIyIEBACiAgICAgcmV0dXJuIGNhY2hlOwogfQogCitzdGF0aWMgbmV0c25tcF9jYWNoZSAqCituZXRzbm1wX2NhY2hlX3JlZihuZXRzbm1wX2NhY2hlICpjYWNoZSkKK3sKKyAgICBjYWNoZS0+cmVmY250Kys7CisgICAgcmV0dXJuIGNhY2hlOworfQorCitzdGF0aWMgdm9pZAorbmV0c25tcF9jYWNoZV9kZXJlZihuZXRzbm1wX2NhY2hlICpjYWNoZSkKK3sKKyAgICBpZiAoLS1jYWNoZS0+cmVmY250ID09IDApIHsKKyAgICAgICAgbmV0c25tcF9jYWNoZV9yZW1vdmUoY2FjaGUpOworICAgICAgICBuZXRzbm1wX2NhY2hlX2ZyZWUoY2FjaGUpOworICAgIH0KK30KKwogLyoqIGZyZWVzIGEgY2FjaGUKICAqLwogaW50CkBAIC0yMDUsOCArMjQ2LDggQEAKICAgICAgICAgICAgIHNwcmludF9yZWFsbG9jX29iamlkKCh1X2NoYXIgKiopICZidWYsICZidWZfbGVuLCAmb3V0X2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIHBvcy0+cm9vdG9pZCwgcG9zLT5yb290b2lkX2xlbik7CiAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfV0FSTklORywKLQkJICAgICAibm90IGZyZWVpbmcgY2FjaGUgd2l0aCByb290IE9JRCAlcyAoc3RpbGwgaW4gbGlzdClcbiIsCi0JCSAgICAgYnVmKTsKKyAgICAgICAgICAgICAgICAgICAgICJub3QgZnJlZWluZyBjYWNoZSB3aXRoIHJvb3QgT0lEICVzIChzdGlsbCBpbiBsaXN0KVxuIiwKKyAgICAgICAgICAgICAgICAgICAgIGJ1Zik7CiAgICAgICAgICAgICBmcmVlKGJ1Zik7CiAgICAgICAgICAgICByZXR1cm4gU05NUF9FUlJfR0VORVJSOwogICAgICAgICB9CkBAIC0yMTgsNiArMjU5LDkgQEAKICAgICBpZiAoY2FjaGUtPnZhbGlkKQogICAgICAgICBfY2FjaGVfZnJlZShjYWNoZSk7CiAKKyAgICBpZiAoY2FjaGUtPnRpbWVzdGFtcE0pCisJZnJlZShjYWNoZS0+dGltZXN0YW1wTSk7CisKICAgICBpZiAoY2FjaGUtPnJvb3RvaWQpCiAgICAgICAgIGZyZWUoY2FjaGUtPnJvb3RvaWQpOwogCkBAIC0zNTMsNiArMzk3LDE3IEBACiAgICAgcmV0dXJuIHJldDsKIH0KIAorLyoqIE1ha2VzIHN1cmUgdGhhdCBtZW1vcnkgYWxsb2NhdGVkIGZvciB0aGUgY2FjaGUgaXMgZnJlZWQgd2hlbiB0aGUgaGFuZGxlcgorICogIGlzIHVucmVnaXN0ZXJlZC4KKyAqLwordm9pZCBuZXRzbm1wX2NhY2hlX2hhbmRsZXJfb3duc19jYWNoZShuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyKQoreworICAgIG5ldHNubXBfYXNzZXJ0KGhhbmRsZXItPm15dm9pZCk7CisgICAgKChuZXRzbm1wX2NhY2hlICopaGFuZGxlci0+bXl2b2lkKS0+cmVmY250Kys7CisgICAgaGFuZGxlci0+ZGF0YV9jbG9uZSA9ICh2b2lkICooKikodm9pZCAqKSluZXRzbm1wX2NhY2hlX3JlZjsKKyAgICBoYW5kbGVyLT5kYXRhX2ZyZWUgPSAodm9pZCgqKSh2b2lkKikpbmV0c25tcF9jYWNoZV9kZXJlZjsKK30KKwogLyoqIHJldHVybnMgYSBjYWNoZSBoYW5kbGVyIHRoYXQgY2FuIGJlIGluamVjdGVkIGludG8gYSBnaXZlbiBoYW5kbGVyIGNoYWluLiAgCiAgKi8KIG5ldHNubXBfbWliX2hhbmRsZXIgKgpAQCAtMzY4LDEyICs0MjMsMTUgQEAKICAgICAgICAgY2FjaGUgPSBuZXRzbm1wX2NhY2hlX2NyZWF0ZSh0aW1lb3V0LCBsb2FkX2hvb2ssIGZyZWVfaG9vaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb290b2lkLCByb290b2lkX2xlbik7CiAgICAgICAgIHJldC0+bXl2b2lkID0gKHZvaWQgKikgY2FjaGU7CisgICAgICAgIG5ldHNubXBfY2FjaGVfaGFuZGxlcl9vd25zX2NhY2hlKHJldCk7CiAgICAgfQogICAgIHJldHVybiByZXQ7CiB9CiAKIC8qKiBmdW5jdGlvbmFsbHkgdGhlIHNhbWUgYXMgY2FsbGluZyBuZXRzbm1wX3JlZ2lzdGVyX2hhbmRsZXIoKSBidXQgYWxzbwogICogaW5qZWN0cyBhIGNhY2hlIGhhbmRsZXIgYXQgdGhlIHNhbWUgdGltZSBmb3IgeW91LiAqLworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKG5ldHNubXBfY2FjaGVfaGFuZGxlcl9yZWdpc3RlcixuZXRzbm1wX3VudXNlZCkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9ORVRTTk1QX0NBQ0hFX0hBTkRMRVJfUkVHSVNURVIKIGludAogbmV0c25tcF9jYWNoZV9oYW5kbGVyX3JlZ2lzdGVyKG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKiByZWdpbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfY2FjaGUqIGNhY2hlKQpAQCAtMzg0LDkgKzQ0MiwxMiBAQAogICAgIG5ldHNubXBfaW5qZWN0X2hhbmRsZXIocmVnaW5mbywgaGFuZGxlcik7CiAgICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfaGFuZGxlcihyZWdpbmZvKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX05FVFNOTVBfQ0FDSEVfSEFORExFUl9SRUdJU1RFUiAqLwogCiAvKiogZnVuY3Rpb25hbGx5IHRoZSBzYW1lIGFzIGNhbGxpbmcgbmV0c25tcF9yZWdpc3Rlcl9oYW5kbGVyKCkgYnV0IGFsc28KICAqIGluamVjdHMgYSBjYWNoZSBoYW5kbGVyIGF0IHRoZSBzYW1lIHRpbWUgZm9yIHlvdS4gKi8KK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihuZXRzbm1wX3JlZ2lzdGVyX2NhY2hlX2hhbmRsZXIsbmV0c25tcF91bnVzZWQpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTkVUU05NUF9SRUdJU1RFUl9DQUNIRV9IQU5ETEVSCiBpbnQKIG5ldHNubXBfcmVnaXN0ZXJfY2FjaGVfaGFuZGxlcihuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICogcmVnaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGltZW91dCwgTmV0c25tcENhY2hlTG9hZCAqIGxvYWRfaG9vaywKQEAgLTQwMCw4ICs0NjEsOSBAQAogICAgIG5ldHNubXBfaW5qZWN0X2hhbmRsZXIocmVnaW5mbywgaGFuZGxlcik7CiAgICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfaGFuZGxlcihyZWdpbmZvKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX05FVFNOTVBfUkVHSVNURVJfQ0FDSEVfSEFORExFUiAqLwogCi1ORVRTTk1QX1NUQVRJQ19JTkxJTkUgY2hhciAqCitzdGF0aWMgY2hhciAqCiBfYnVpbGRfY2FjaGVfbmFtZShjb25zdCBjaGFyICpuYW1lKQogewogICAgIGNoYXIgKmR1cCA9IChjaGFyKiltYWxsb2Moc3RybGVuKG5hbWUpICsgc3RybGVuKENBQ0hFX05BTUUpICsgMik7CkBAIC00NDEsMTEgKzUwMywxNCBAQAogfQogCiAvKiogRXh0cmFjdCB0aGUgY2FjaGUgaW5mb3JtYXRpb24gZm9yIGEgZ2l2ZW4gcmVxdWVzdCAoUERVKSAqLworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKG5ldHNubXBfZXh0cmFjdF9jYWNoZV9pbmZvLG5ldHNubXBfdW51c2VkKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX05FVFNOTVBfRVhUUkFDVF9DQUNIRV9JTkZPCiBuZXRzbm1wX2NhY2hlICAqCiBuZXRzbm1wX2V4dHJhY3RfY2FjaGVfaW5mbyhuZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mbyAqIHJlcWluZm8pCiB7CiAgICAgcmV0dXJuIG5ldHNubXBfY2FjaGVfcmVxaW5mb19leHRyYWN0KHJlcWluZm8sIENBQ0hFX05BTUUpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTkVUU05NUF9FWFRSQUNUX0NBQ0hFX0lORk8gKi8KIAogCiAvKiogQ2hlY2sgaWYgdGhlIGNhY2hlIHRpbWVvdXQgaGFzIHBhc3NlZC4gU2V0cyBhbmQgcmV0dXJuIHRoZSBleHBpcmVkIGZsYWcuICovCkBAIC00NTQsMTEgKzUxOSwxMyBAQAogewogICAgIGlmKE5VTEwgPT0gY2FjaGUpCiAgICAgICAgIHJldHVybiAwOwotICAgIAotICAgIGlmKCFjYWNoZS0+dmFsaWQgfHwgKE5VTEwgPT0gY2FjaGUtPnRpbWVzdGFtcCkgfHwgKC0xID09IGNhY2hlLT50aW1lb3V0KSkKKyAgICBpZiAoY2FjaGUtPmV4cGlyZWQpCisgICAgICAgIHJldHVybiAxOworICAgIGlmKCFjYWNoZS0+dmFsaWQgfHwgKE5VTEwgPT0gY2FjaGUtPnRpbWVzdGFtcE0pIHx8ICgtMSA9PSBjYWNoZS0+dGltZW91dCkpCiAgICAgICAgIGNhY2hlLT5leHBpcmVkID0gMTsKICAgICBlbHNlCi0gICAgICAgIGNhY2hlLT5leHBpcmVkID0gYXRpbWVfcmVhZHkoY2FjaGUtPnRpbWVzdGFtcCwgMTAwMCAqIGNhY2hlLT50aW1lb3V0KTsKKyAgICAgICAgY2FjaGUtPmV4cGlyZWQgPSBuZXRzbm1wX3JlYWR5X21vbm90b25pYyhjYWNoZS0+dGltZXN0YW1wTSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAwICogY2FjaGUtPnRpbWVvdXQpOwogICAgIAogICAgIHJldHVybiBjYWNoZS0+ZXhwaXJlZDsKIH0KQEAgLTQ5MiwxMSArNTU5LDE0IEBACiAvKiogSXMgdGhlIGNhY2hlIHZhbGlkIGZvciBhIGdpdmVuIHJlcXVlc3Q/CiAgKiBmb3IgYmFja3dhcmRzIGNvbXBhdGFiaWxpdHkuIG5ldHNubXBfY2FjaGVfaXNfdmFsaWQoKSBpcyBwcmVmZXJyZWQuCiAgKi8KK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihuZXRzbm1wX2lzX2NhY2hlX3ZhbGlkLG5ldHNubXBfdW51c2VkKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX05FVFNOTVBfSVNfQ0FDSEVfVkFMSUQKIGludAogbmV0c25tcF9pc19jYWNoZV92YWxpZChuZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mbyAqIHJlcWluZm8pCiB7CiAgICAgcmV0dXJuIG5ldHNubXBfY2FjaGVfaXNfdmFsaWQocmVxaW5mbywgQ0FDSEVfTkFNRSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9ORVRTTk1QX0lTX0NBQ0hFX1ZBTElEICovCiAKIC8qKiBJbXBsZW1lbnRzIHRoZSBjYWNoZSBoYW5kbGVyICovCiBpbnQKQEAgLTUyNiw3ICs1OTYsNyBAQAogICAgICAgICAgICAgICAgICAgICJjYWNoZSBub3QgZm91bmQsIGRpc2FibGVkIG9yIGhhZCBubyBsb2FkIG1ldGhvZFxuIikpOwogICAgICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKICAgICB9Ci0gICAgc25wcmludGYoYWRkcnN0ciwgc2l6ZW9mKGFkZHJzdHIpLCAiJXAiLCBjYWNoZSk7CisgICAgc25wcmludGYoYWRkcnN0cixzaXplb2YoYWRkcnN0ciksICIlbGQiLCAobG9uZyBpbnQpY2FjaGUpOwogICAgIERFQlVHTVNHVEwoKCJoZWxwZXI6Y2FjaGVfaGFuZGxlciIsICJ1c2luZyBjYWNoZSAlczogIiwgYWRkcnN0cikpOwogICAgIERFQlVHTVNHT0lEKCgiaGVscGVyOmNhY2hlX2hhbmRsZXIiLCBjYWNoZS0+cm9vdG9pZCwgY2FjaGUtPnJvb3RvaWRfbGVuKSk7CiAgICAgREVCVUdNU0coKCJoZWxwZXI6Y2FjaGVfaGFuZGxlciIsICJcbiIpKTsKQEAgLTU0Niw3ICs2MTYsOSBAQAogICAgIGNhc2UgTU9ERV9HRVQ6CiAgICAgY2FzZSBNT0RFX0dFVE5FWFQ6CiAgICAgY2FzZSBNT0RFX0dFVEJVTEs6CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAgICAgICAgIC8qCiAgICAgICAgICAqIG9ubHkgdG91Y2ggY2FjaGUgb25jZSBwZXIgcGR1IHJlcXVlc3QsIHRvIHByZXZlbnQgYSBjYWNoZQpAQCAtNTY4LDYgKzY0MCw3IEBACiAgICAgICAgIC8qKiBuZXh0IGhhbmRsZXIgY2FsbGVkIGF1dG9tYXRpY2FsbHkgLSAnQVVUT19ORVhUJyAqLwogICAgICAgICBicmVhazsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBjYXNlIE1PREVfU0VUX1JFU0VSVkUyOgogICAgIGNhc2UgTU9ERV9TRVRfRlJFRToKICAgICBjYXNlIE1PREVfU0VUX0FDVElPTjoKQEAgLTU4OSw2ICs2NjIsNyBAQAogICAgICAgICB9CiAgICAgICAgIC8qKiBuZXh0IGhhbmRsZXIgY2FsbGVkIGF1dG9tYXRpY2FsbHkgLSAnQVVUT19ORVhUJyAqLwogICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgIGRlZmF1bHQ6CiAgICAgICAgIHNubXBfbG9nKExPR19XQVJOSU5HLCAiY2FjaGVfaGFuZGxlcjogVW5yZWNvZ25pc2VkIG1vZGUgKCVkKVxuIiwKQEAgLTU5Niw2ICs2NzAsOCBAQAogICAgICAgICBuZXRzbm1wX3JlcXVlc3Rfc2V0X2Vycm9yX2FsbChyZXF1ZXN0cywgU05NUF9FUlJfR0VORVJSKTsKICAgICAgICAgcmV0dXJuIFNOTVBfRVJSX0dFTkVSUjsKICAgICB9CisgICAgaWYgKGNhY2hlLT5mbGFncyAmIE5FVFNOTVBfQ0FDSEVfUkVTRVRfVElNRVJfT05fVVNFKQorICAgICAgICBuZXRzbm1wX3NldF9tb25vdG9uaWNfbWFya2VyKCZjYWNoZS0+dGltZXN0YW1wTSk7CiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiB9CiAKQEAgLTY0MCwxMCArNzE2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCByZWxlYXNlX2NhY2hlZF9yZXNvdXJjZXMsIE5VTEwpOwogICAgICAgICBjYWNoZV9vdXRzdGFuZGluZ192YWxpZCA9IDE7CiAgICAgfQotICAgIGlmIChjYWNoZS0+dGltZXN0YW1wKQotICAgICAgICBhdGltZV9zZXRNYXJrZXIoY2FjaGUtPnRpbWVzdGFtcCk7Ci0gICAgZWxzZQotICAgICAgICBjYWNoZS0+dGltZXN0YW1wID0gYXRpbWVfbmV3TWFya2VyKCk7CisgICAgbmV0c25tcF9zZXRfbW9ub3RvbmljX21hcmtlcigmY2FjaGUtPnRpbWVzdGFtcE0pOwogICAgIERFQlVHTVNHVCgoImhlbHBlcjpjYWNoZV9oYW5kbGVyIiwgIiBsb2FkZWQgKCVkKVxuIiwgY2FjaGUtPnRpbWVvdXQpKTsKIAogICAgIHJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9hZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgYi9hZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMKaW5kZXggMmQwN2I2OS4uYTVlZTg0MSAxMDA2NDQKLS0tIGEvYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jCisrKyBiL2FnZW50L2hlbHBlcnMvaW5zdGFuY2UuYwpAQCAtOSw2ICs5LDcgQEAKICAqIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgpAQCAtMjYsNyArMjcsMTEgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaD4KIAorbmV0c25tcF9mZWF0dXJlX3Byb3ZpZGUoaW5zdGFuY2UpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaW5zdGFuY2UsIG1pYl9oZWxwZXJzKQorCiB0eXBlZGVmIHN0cnVjdCBuZXRzbm1wX251bV9maWxlX2luc3RhbmNlX3MgeworICAgIGludCAgIHJlZmNudDsKICAgICBjaGFyICpmaWxlX25hbWU7CiAgICAgRklMRSAqZmlsZXA7CiAgICAgdV9jaGFyIHR5cGU7CkBAIC0zOSw2ICs0NCwyMiBAQAogICogIEB7CiAgKi8KIAorc3RhdGljIG5ldHNubXBfbnVtX2ZpbGVfaW5zdGFuY2UgKgorbmV0c25tcF9udW1fZmlsZV9pbnN0YW5jZV9yZWYobmV0c25tcF9udW1fZmlsZV9pbnN0YW5jZSAqbmZpKQoreworICAgIG5maS0+cmVmY250Kys7CisgICAgcmV0dXJuIG5maTsKK30KKworc3RhdGljIHZvaWQKK25ldHNubXBfbnVtX2ZpbGVfaW5zdGFuY2VfZGVyZWYobmV0c25tcF9udW1fZmlsZV9pbnN0YW5jZSAqbmZpKQoreworICAgIGlmICgtLW5maS0+cmVmY250ID09IDApIHsKKwlmcmVlKG5maS0+ZmlsZV9uYW1lKTsKKwlmcmVlKG5maSk7CisgICAgfQorfQorCiAvKioKICAqIENyZWF0ZXMgYW4gaW5zdGFuY2UgaGVscGVyIGhhbmRsZXIsIGNhbGxzIG5ldHNubXBfY3JlYXRlX2hhbmRsZXIsIHdoaWNoCiAgKiB0aGVuIGNvdWxkIGJlIHJlZ2lzdGVyZWQsIHVzaW5nIG5ldHNubXBfcmVnaXN0ZXJfaGFuZGxlcigpLgpAQCAtMTExLDcgKzEzMiw3IEBACiBnZXRfcmVnKGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICAgIGNvbnN0IGNoYXIgKm91cm5hbWUsCiAgICAgICAgIGNvbnN0IG9pZCAqIHJlZ19vaWQsIHNpemVfdCByZWdfb2lkX2xlbiwKLSAgICAgICAgdm9pZCAqaXQsCisgICAgICAgIG5ldHNubXBfbnVtX2ZpbGVfaW5zdGFuY2UgKml0LAogICAgICAgICBpbnQgbW9kZXMsCiAgICAgICAgIE5ldHNubXBfTm9kZV9IYW5kbGVyICogc2NhbGFyaCwgTmV0c25tcF9Ob2RlX0hhbmRsZXIgKiBzdWJoYW5kbGVyLAogICAgICAgICBjb25zdCBjaGFyICpjb250ZXh0TmFtZSkKQEAgLTEyNiw3ICsxNDcsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnX29pZCwgcmVnX29pZF9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2Rlcyk7CiAgICAgICAgIG15aGFuZGxlciA9IG5ldHNubXBfY3JlYXRlX2hhbmRsZXIob3VybmFtZSwgc2NhbGFyaCk7Ci0gICAgICAgIG15aGFuZGxlci0+bXl2b2lkID0gKHZvaWQgKikgaXQ7CisgICAgICAgIG15aGFuZGxlci0+bXl2b2lkID0gaXQ7CisJbXloYW5kbGVyLT5kYXRhX2Nsb25lID0gKHZvaWQqKCopKHZvaWQqKSluZXRzbm1wX251bV9maWxlX2luc3RhbmNlX3JlZjsKKwlteWhhbmRsZXItPmRhdGFfZnJlZSA9ICh2b2lkKCopKHZvaWQqKSluZXRzbm1wX251bV9maWxlX2luc3RhbmNlX2RlcmVmOwogICAgICAgICBuZXRzbm1wX2luamVjdF9oYW5kbGVyKG15cmVnLCBteWhhbmRsZXIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG15cmVnID0KQEAgLTEzNCw3ICsxNTcsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxhcmgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdfb2lkLCByZWdfb2lkX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVzKTsKLSAgICAgICAgbXlyZWctPmhhbmRsZXItPm15dm9pZCA9ICh2b2lkICopIGl0OworICAgICAgICBteXJlZy0+aGFuZGxlci0+bXl2b2lkID0gaXQ7CisJbXlyZWctPmhhbmRsZXItPmRhdGFfY2xvbmUKKwkgICAgPSAodm9pZCAqKCopKHZvaWQgKikpbmV0c25tcF9udW1fZmlsZV9pbnN0YW5jZV9yZWY7CisJbXlyZWctPmhhbmRsZXItPmRhdGFfZnJlZQorCSAgICA9ICh2b2lkICgqKSh2b2lkICopKW5ldHNubXBfbnVtX2ZpbGVfaW5zdGFuY2VfZGVyZWY7CiAgICAgfQogICAgIGlmIChjb250ZXh0TmFtZSkKICAgICAgICAgbXlyZWctPmNvbnRleHROYW1lID0gc3RyZHVwKGNvbnRleHROYW1lKTsKQEAgLTE0Miw2ICsxNjksOCBAQAogfQogCiAvKiBXYXRjaGVkICdsb25nJyBpbnN0YW5jZXMgYXJlIHdyaXRhYmxlIG9uIGJvdGggMzItYml0IGFuZCA2NC1iaXQgc3lzdGVtcyAgKi8KK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihyZWFkX29ubHlfdWxvbmdfaW5zdGFuY2UsaW5zdGFuY2UpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUkVBRF9PTkxZX1VMT05HX0lOU1RBTkNFCiBpbnQKIG5ldHNubXBfcmVnaXN0ZXJfcmVhZF9vbmx5X3Vsb25nX2luc3RhbmNlKGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvaWQgKiByZWdfb2lkLApAQCAtMTQ5LDI4ICsxNzgsMzQgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5ldHNubXBfTm9kZV9IYW5kbGVyICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmhhbmRsZXIpCiB7Ci0gICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9pbnN0YW5jZSgKKyAgICByZXR1cm4gbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX2luc3RhbmNlMigKICAgICAgICAgICAgICAgIG5ldHNubXBfY3JlYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uKAogICAgICAgICAgICAgICAgICAgIG5hbWUsIHN1YmhhbmRsZXIsIHJlZ19vaWQsIHJlZ19vaWRfbGVuLCBIQU5ETEVSX0NBTl9ST05MWSksCiAgICAgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV93YXRjaGVyX2luZm8oCiAgICAgICAgICAgICAgICAgICAgKHZvaWQgKilpdCwgc2l6ZW9mKHVfbG9uZyksCiAgICAgICAgICAgICAgICAgICAgQVNOX1VOU0lHTkVELCBXQVRDSEVSX0ZJWEVEX1NJWkUpKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JFQURfT05MWV9VTE9OR19JTlNUQU5DRSAqLwogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodWxvbmdfaW5zdGFuY2UsaW5zdGFuY2UpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVUxPTkdfSU5TVEFOQ0UKIGludAogbmV0c25tcF9yZWdpc3Rlcl91bG9uZ19pbnN0YW5jZShjb25zdCBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvaWQgKiByZWdfb2lkLCBzaXplX3QgcmVnX29pZF9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqIGl0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOZXRzbm1wX05vZGVfSGFuZGxlciAqIHN1YmhhbmRsZXIpCiB7Ci0gICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9pbnN0YW5jZSgKKyAgICByZXR1cm4gbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX2luc3RhbmNlMigKICAgICAgICAgICAgICAgIG5ldHNubXBfY3JlYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uKAogICAgICAgICAgICAgICAgICAgIG5hbWUsIHN1YmhhbmRsZXIsIHJlZ19vaWQsIHJlZ19vaWRfbGVuLCBIQU5ETEVSX0NBTl9SV1JJVEUpLAogICAgICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfd2F0Y2hlcl9pbmZvKAogICAgICAgICAgICAgICAgICAgICh2b2lkICopaXQsIHNpemVvZih1X2xvbmcpLAogICAgICAgICAgICAgICAgICAgIEFTTl9VTlNJR05FRCwgV0FUQ0hFUl9GSVhFRF9TSVpFKSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9VTE9OR19JTlNUQU5DRSAqLwogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YocmVhZF9vbmx5X2NvdW50ZXIzMl9pbnN0YW5jZSxpbnN0YW5jZSkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUFEX09OTFlfQ09VTlRFUjMyX0lOU1RBTkNFCiBpbnQKIG5ldHNubXBfcmVnaXN0ZXJfcmVhZF9vbmx5X2NvdW50ZXIzMl9pbnN0YW5jZShjb25zdCBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9pZCAqIHJlZ19vaWQsCkBAIC0xNzksMTQgKzIxNCwxNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5ldHNubXBfTm9kZV9IYW5kbGVyICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJoYW5kbGVyKQogewotICAgIHJldHVybiBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfaW5zdGFuY2UoCisgICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9pbnN0YW5jZTIoCiAgICAgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigKICAgICAgICAgICAgICAgICAgICBuYW1lLCBzdWJoYW5kbGVyLCByZWdfb2lkLCByZWdfb2lkX2xlbiwgSEFORExFUl9DQU5fUk9OTFkpLAogICAgICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfd2F0Y2hlcl9pbmZvKAogICAgICAgICAgICAgICAgICAgICh2b2lkICopaXQsIHNpemVvZih1X2xvbmcpLAogICAgICAgICAgICAgICAgICAgIEFTTl9DT1VOVEVSLCBXQVRDSEVSX0ZJWEVEX1NJWkUpKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JFQURfT05MWV9DT1VOVEVSMzJfSU5TVEFOQ0UgKi8KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHJlYWRfb25seV9sb25nX2luc3RhbmNlLGluc3RhbmNlKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JFQURfT05MWV9MT05HX0lOU1RBTkNFCiBpbnQKIG5ldHNubXBfcmVnaXN0ZXJfcmVhZF9vbmx5X2xvbmdfaW5zdGFuY2UoY29uc3QgY2hhciAqbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2lkICogcmVnX29pZCwKQEAgLTE5NCwyNiArMjMyLDMyIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgKml0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOZXRzbm1wX05vZGVfSGFuZGxlciAqIHN1YmhhbmRsZXIpCiB7Ci0gICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9pbnN0YW5jZSgKKyAgICByZXR1cm4gbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX2luc3RhbmNlMigKICAgICAgICAgICAgICAgIG5ldHNubXBfY3JlYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uKAogICAgICAgICAgICAgICAgICAgIG5hbWUsIHN1YmhhbmRsZXIsIHJlZ19vaWQsIHJlZ19vaWRfbGVuLCBIQU5ETEVSX0NBTl9ST05MWSksCiAgICAgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV93YXRjaGVyX2luZm8oCiAgICAgICAgICAgICAgICAgICAgKHZvaWQgKilpdCwgc2l6ZW9mKGxvbmcpLCBBU05fSU5URUdFUiwgV0FUQ0hFUl9GSVhFRF9TSVpFKSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUFEX09OTFlfTE9OR19JTlNUQU5DRSAqLwogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YobG9uZ19pbnN0YW5jZSxpbnN0YW5jZSkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT05HX0lOU1RBTkNFCiBpbnQKIG5ldHNubXBfcmVnaXN0ZXJfbG9uZ19pbnN0YW5jZShjb25zdCBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9pZCAqIHJlZ19vaWQsIHNpemVfdCByZWdfb2lkX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nICppdCwgTmV0c25tcF9Ob2RlX0hhbmRsZXIgKiBzdWJoYW5kbGVyKQogewotICAgIHJldHVybiBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfaW5zdGFuY2UoCisgICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9pbnN0YW5jZTIoCiAgICAgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigKICAgICAgICAgICAgICAgICAgICBuYW1lLCBzdWJoYW5kbGVyLCByZWdfb2lkLCByZWdfb2lkX2xlbiwgSEFORExFUl9DQU5fUldSSVRFKSwKICAgICAgICAgICAgICAgIG5ldHNubXBfY3JlYXRlX3dhdGNoZXJfaW5mbygKICAgICAgICAgICAgICAgICAgICAodm9pZCAqKWl0LCBzaXplb2YobG9uZyksIEFTTl9JTlRFR0VSLCBXQVRDSEVSX0ZJWEVEX1NJWkUpKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPTkdfSU5TVEFOQ0UgKi8KIAogLyogV2F0Y2hlZCAnaW50JyBpbnN0YW5jZXMgYXJlIG9ubHkgd3JpdGFibGUgb24gMzItYml0IHN5c3RlbXMgICovCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YocmVhZF9vbmx5X3VpbnRfaW5zdGFuY2UsaW5zdGFuY2UpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUkVBRF9PTkxZX1VJTlRfSU5TVEFOQ0UKIGludAogbmV0c25tcF9yZWdpc3Rlcl9yZWFkX29ubHlfdWludF9pbnN0YW5jZShjb25zdCBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvaWQgKiByZWdfb2lkLApAQCAtMjIxLDQyICsyNjUsNTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICppdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV0c25tcF9Ob2RlX0hhbmRsZXIgKiBzdWJoYW5kbGVyKQogewotICAgIHJldHVybiBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfaW5zdGFuY2UoCisgICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9pbnN0YW5jZTIoCiAgICAgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigKICAgICAgICAgICAgICAgICAgICBuYW1lLCBzdWJoYW5kbGVyLCByZWdfb2lkLCByZWdfb2lkX2xlbiwgSEFORExFUl9DQU5fUk9OTFkpLAogICAgICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfd2F0Y2hlcl9pbmZvKAogICAgICAgICAgICAgICAgICAgICh2b2lkICopaXQsIHNpemVvZih1bnNpZ25lZCBpbnQpLAogICAgICAgICAgICAgICAgICAgIEFTTl9VTlNJR05FRCwgV0FUQ0hFUl9GSVhFRF9TSVpFKSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUFEX09OTFlfVUlOVF9JTlNUQU5DRSAqLwogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodWludF9pbnN0YW5jZSxpbnN0YW5jZSkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9VSU5UX0lOU1RBTkNFCiBpbnQKIG5ldHNubXBfcmVnaXN0ZXJfdWludF9pbnN0YW5jZShjb25zdCBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9pZCAqIHJlZ19vaWQsIHNpemVfdCByZWdfb2lkX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKml0LCBOZXRzbm1wX05vZGVfSGFuZGxlciAqIHN1YmhhbmRsZXIpCiB7Ci0gICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9pbnN0YW5jZSgKKyAgICByZXR1cm4gbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX2luc3RhbmNlMigKICAgICAgICAgICAgICAgIG5ldHNubXBfY3JlYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uKAogICAgICAgICAgICAgICAgICAgIG5hbWUsIHN1YmhhbmRsZXIsIHJlZ19vaWQsIHJlZ19vaWRfbGVuLCBIQU5ETEVSX0NBTl9SV1JJVEUpLAogICAgICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfd2F0Y2hlcl9pbmZvKAogICAgICAgICAgICAgICAgICAgICh2b2lkICopaXQsIHNpemVvZih1bnNpZ25lZCBpbnQpLAogICAgICAgICAgICAgICAgICAgIEFTTl9VTlNJR05FRCwgV0FUQ0hFUl9GSVhFRF9TSVpFKSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9VSU5UX0lOU1RBTkNFICovCiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihyZWFkX29ubHlfaW50X2luc3RhbmNlLGluc3RhbmNlKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JFQURfT05MWV9JTlRfSU5TVEFOQ0UKIGludAogbmV0c25tcF9yZWdpc3Rlcl9yZWFkX29ubHlfaW50X2luc3RhbmNlKGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9pZCAqIHJlZ19vaWQsIHNpemVfdCByZWdfb2lkX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICppdCwgTmV0c25tcF9Ob2RlX0hhbmRsZXIgKiBzdWJoYW5kbGVyKQogewotICAgIHJldHVybiBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfaW5zdGFuY2UoCisgICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9pbnN0YW5jZTIoCiAgICAgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigKICAgICAgICAgICAgICAgICAgICBuYW1lLCBzdWJoYW5kbGVyLCByZWdfb2lkLCByZWdfb2lkX2xlbiwgSEFORExFUl9DQU5fUk9OTFkpLAogICAgICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfd2F0Y2hlcl9pbmZvKAogICAgICAgICAgICAgICAgICAgICh2b2lkICopaXQsIHNpemVvZihpbnQpLCBBU05fSU5URUdFUiwgV0FUQ0hFUl9GSVhFRF9TSVpFKSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUFEX09OTFlfSU5UX0lOU1RBTkNFICovCiAKICAgLyoKICAgICogQ29tcGF0aWJpbGl0eSB3aXRoIGVhcmxpZXIgKGluY29uc2lzdGVudGx5IG5hbWVkKSByb3V0aW5lCiAgICAqLworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHJlZ2lzdGVyX3JlYWRfb25seV9pbnRfaW5zdGFuY2UsbmV0c25tcF91bnVzZWQpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUkVHSVNURVJfUkVBRF9PTkxZX0lOVF9JTlNUQU5DRQogaW50CiByZWdpc3Rlcl9yZWFkX29ubHlfaW50X2luc3RhbmNlKGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9pZCAqIHJlZ19vaWQsIHNpemVfdCByZWdfb2lkX2xlbiwKQEAgLTI2NiwxMSArMzE5LDE0IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ19vaWQsIHJlZ19vaWRfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdCwgc3ViaGFuZGxlcik7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUdJU1RFUl9SRUFEX09OTFlfSU5UX0lOU1RBTkNFICovCiAKIC8qCiAgKiBDb250ZXh0IHJlZ2lzdHJhdGlvbnMKICAqLwogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YocmVnaXN0ZXJfcmVhZF9vbmx5X3Vsb25nX2luc3RhbmNlX2NvbnRleHQsaW5zdGFuY2UpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUkVHSVNURVJfUkVBRF9PTkxZX1VMT05HX0lOU1RBTkNFX0NPTlRFWFQKIGludAogbmV0c25tcF9yZWdpc3Rlcl9yZWFkX29ubHlfdWxvbmdfaW5zdGFuY2VfY29udGV4dChjb25zdCBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvaWQgKiByZWdfb2lkLApAQCAtMjg1LDExICszNDEsMTQgQEAKICAgICAgICAgICBuYW1lLCBzdWJoYW5kbGVyLCByZWdfb2lkLCByZWdfb2lkX2xlbiwgSEFORExFUl9DQU5fUk9OTFkpOwogICAgIGlmIChteXJlZyAmJiBjb250ZXh0TmFtZSkKICAgICAgIG15cmVnLT5jb250ZXh0TmFtZSA9IHN0cmR1cChjb250ZXh0TmFtZSk7Ci0gICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9pbnN0YW5jZSgKKyAgICByZXR1cm4gbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX2luc3RhbmNlMigKICAgICAgICAgbXlyZWcsIG5ldHNubXBfY3JlYXRlX3dhdGNoZXJfaW5mbygKICAgICAgICAgICAgICh2b2lkICopaXQsIHNpemVvZih1X2xvbmcpLCBBU05fVU5TSUdORUQsIFdBVENIRVJfRklYRURfU0laRSkpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUkVHSVNURVJfUkVBRF9PTkxZX1VMT05HX0lOU1RBTkNFX0NPTlRFWFQgKi8KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHJlZ2lzdGVyX3Vsb25nX2luc3RhbmNlX2NvbnRleHQsaW5zdGFuY2UpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUkVHSVNURVJfVUxPTkdfSU5TVEFOQ0VfQ09OVEVYVAogaW50CiBuZXRzbm1wX3JlZ2lzdGVyX3Vsb25nX2luc3RhbmNlX2NvbnRleHQoY29uc3QgY2hhciAqbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvaWQgKiByZWdfb2lkLCBzaXplX3QgcmVnX29pZF9sZW4sCkBAIC0zMDIsMTEgKzM2MSwxNCBAQAogICAgICAgICAgIG5hbWUsIHN1YmhhbmRsZXIsIHJlZ19vaWQsIHJlZ19vaWRfbGVuLCBIQU5ETEVSX0NBTl9SV1JJVEUpOwogICAgIGlmIChteXJlZyAmJiBjb250ZXh0TmFtZSkKICAgICAgIG15cmVnLT5jb250ZXh0TmFtZSA9IHN0cmR1cChjb250ZXh0TmFtZSk7Ci0gICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9pbnN0YW5jZSgKKyAgICByZXR1cm4gbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX2luc3RhbmNlMigKICAgICAgICAgbXlyZWcsIG5ldHNubXBfY3JlYXRlX3dhdGNoZXJfaW5mbygKICAgICAgICAgICAgICh2b2lkICopaXQsIHNpemVvZih1X2xvbmcpLCBBU05fVU5TSUdORUQsIFdBVENIRVJfRklYRURfU0laRSkpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUkVHSVNURVJfVUxPTkdfSU5TVEFOQ0VfQ09OVEVYVCAqLwogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YocmVnaXN0ZXJfcmVhZF9vbmx5X2NvdW50ZXIzMl9pbnN0YW5jZV9jb250ZXh0LGluc3RhbmNlKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JFR0lTVEVSX1JFQURfT05MWV9DT1VOVEVSMzJfSU5TVEFOQ0VfQ09OVEVYVAogaW50CiBuZXRzbm1wX3JlZ2lzdGVyX3JlYWRfb25seV9jb3VudGVyMzJfaW5zdGFuY2VfY29udGV4dChjb25zdCBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2lkICogcmVnX29pZCwKQEAgLTMyMSwxMSArMzgzLDE0IEBACiAgICAgICAgICAgbmFtZSwgc3ViaGFuZGxlciwgcmVnX29pZCwgcmVnX29pZF9sZW4sIEhBTkRMRVJfQ0FOX1JPTkxZKTsKICAgICBpZiAobXlyZWcgJiYgY29udGV4dE5hbWUpCiAgICAgICBteXJlZy0+Y29udGV4dE5hbWUgPSBzdHJkdXAoY29udGV4dE5hbWUpOwotICAgIHJldHVybiBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfaW5zdGFuY2UoCisgICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9pbnN0YW5jZTIoCiAgICAgICAgIG15cmVnLCBuZXRzbm1wX2NyZWF0ZV93YXRjaGVyX2luZm8oCiAgICAgICAgICAgICAodm9pZCAqKWl0LCBzaXplb2YodV9sb25nKSwgQVNOX0NPVU5URVIsIFdBVENIRVJfRklYRURfU0laRSkpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUkVHSVNURVJfUkVBRF9PTkxZX0NPVU5URVIzMl9JTlNUQU5DRV9DT05URVhUICovCiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihyZWdpc3Rlcl9yZWFkX29ubHlfbG9uZ19pbnN0YW5jZV9jb250ZXh0LGluc3RhbmNlKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JFR0lTVEVSX1JFQURfT05MWV9MT05HX0lOU1RBTkNFX0NPTlRFWFQKIGludAogbmV0c25tcF9yZWdpc3Rlcl9yZWFkX29ubHlfbG9uZ19pbnN0YW5jZV9jb250ZXh0KGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2lkICogcmVnX29pZCwKQEAgLTM0MCwxMSArNDA1LDE0IEBACiAgICAgICAgICAgbmFtZSwgc3ViaGFuZGxlciwgcmVnX29pZCwgcmVnX29pZF9sZW4sIEhBTkRMRVJfQ0FOX1JPTkxZKTsKICAgICBpZiAobXlyZWcgJiYgY29udGV4dE5hbWUpCiAgICAgICBteXJlZy0+Y29udGV4dE5hbWUgPSBzdHJkdXAoY29udGV4dE5hbWUpOwotICAgIHJldHVybiBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfaW5zdGFuY2UoCisgICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9pbnN0YW5jZTIoCiAgICAgICAgIG15cmVnLCBuZXRzbm1wX2NyZWF0ZV93YXRjaGVyX2luZm8oCiAgICAgICAgICAgICAodm9pZCAqKWl0LCBzaXplb2YobG9uZyksIEFTTl9JTlRFR0VSLCBXQVRDSEVSX0ZJWEVEX1NJWkUpKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JFR0lTVEVSX1JFQURfT05MWV9MT05HX0lOU1RBTkNFX0NPTlRFWFQgKi8KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHJlZ2lzdGVyX2xvbmdfaW5zdGFuY2VfY29udGV4dCxpbnN0YW5jZSkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUdJU1RFUl9MT05HX0lOU1RBTkNFX0NPTlRFWFQKIGludAogbmV0c25tcF9yZWdpc3Rlcl9sb25nX2luc3RhbmNlX2NvbnRleHQoY29uc3QgY2hhciAqbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9pZCAqIHJlZ19vaWQsIHNpemVfdCByZWdfb2lkX2xlbiwKQEAgLTM1NywxMSArNDI1LDE0IEBACiAgICAgICAgICAgbmFtZSwgc3ViaGFuZGxlciwgcmVnX29pZCwgcmVnX29pZF9sZW4sIEhBTkRMRVJfQ0FOX1JXUklURSk7CiAgICAgaWYgKG15cmVnICYmIGNvbnRleHROYW1lKQogICAgICAgbXlyZWctPmNvbnRleHROYW1lID0gc3RyZHVwKGNvbnRleHROYW1lKTsKLSAgICByZXR1cm4gbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX2luc3RhbmNlKAorICAgIHJldHVybiBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfaW5zdGFuY2UyKAogICAgICAgICBteXJlZywgbmV0c25tcF9jcmVhdGVfd2F0Y2hlcl9pbmZvKAogICAgICAgICAgICAgKHZvaWQgKilpdCwgc2l6ZW9mKGxvbmcpLCBBU05fSU5URUdFUiwgV0FUQ0hFUl9GSVhFRF9TSVpFKSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUdJU1RFUl9MT05HX0lOU1RBTkNFX0NPTlRFWFQgKi8KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHJlZ2lzdGVyX2ludF9pbnN0YW5jZV9jb250ZXh0LGluc3RhbmNlKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JFR0lTVEVSX0lOVF9JTlNUQU5DRV9DT05URVhUCiBpbnQKIG5ldHNubXBfcmVnaXN0ZXJfaW50X2luc3RhbmNlX2NvbnRleHQoY29uc3QgY2hhciAqbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2lkICogcmVnX29pZCwKQEAgLTM3NSwxMSArNDQ2LDE0IEBACiAgICAgICAgICAgbmFtZSwgc3ViaGFuZGxlciwgcmVnX29pZCwgcmVnX29pZF9sZW4sIEhBTkRMRVJfQ0FOX1JXUklURSk7CiAgICAgaWYgKG15cmVnICYmIGNvbnRleHROYW1lKQogICAgICAgbXlyZWctPmNvbnRleHROYW1lID0gc3RyZHVwKGNvbnRleHROYW1lKTsKLSAgICByZXR1cm4gbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX2luc3RhbmNlKAorICAgIHJldHVybiBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfaW5zdGFuY2UyKAogICAgICAgICBteXJlZywgbmV0c25tcF9jcmVhdGVfd2F0Y2hlcl9pbmZvKAogICAgICAgICAgICAgKHZvaWQgKilpdCwgc2l6ZW9mKGludCksIEFTTl9JTlRFR0VSLCBXQVRDSEVSX0ZJWEVEX1NJWkUpKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JFR0lTVEVSX0lOVF9JTlNUQU5DRV9DT05URVhUICovCiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihyZWdpc3Rlcl9yZWFkX29ubHlfaW50X2luc3RhbmNlX2NvbnRleHQsaW5zdGFuY2UpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUkVHSVNURVJfUkVBRF9PTkxZX0lOVF9JTlNUQU5DRV9DT05URVhUCiBpbnQKIG5ldHNubXBfcmVnaXN0ZXJfcmVhZF9vbmx5X2ludF9pbnN0YW5jZV9jb250ZXh0KGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvaWQgKiByZWdfb2lkLApAQCAtMzkzLDE0ICs0NjcsMTcgQEAKICAgICAgICAgICBuYW1lLCBzdWJoYW5kbGVyLCByZWdfb2lkLCByZWdfb2lkX2xlbiwgSEFORExFUl9DQU5fUk9OTFkpOwogICAgIGlmIChteXJlZyAmJiBjb250ZXh0TmFtZSkKICAgICAgIG15cmVnLT5jb250ZXh0TmFtZSA9IHN0cmR1cChjb250ZXh0TmFtZSk7Ci0gICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9pbnN0YW5jZSgKKyAgICByZXR1cm4gbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX2luc3RhbmNlMigKICAgICAgICAgbXlyZWcsIG5ldHNubXBfY3JlYXRlX3dhdGNoZXJfaW5mbygKICAgICAgICAgICAgICh2b2lkICopaXQsIHNpemVvZihpbnQpLCBBU05fSU5URUdFUiwgV0FUQ0hFUl9GSVhFRF9TSVpFKSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUdJU1RFUl9SRUFEX09OTFlfSU5UX0lOU1RBTkNFX0NPTlRFWFQgKi8KIAogLyoKICAqIENvbXBhdGliaWxpdHkgd2l0aCBlYXJsaWVyIChpbmNvbnNpc3RlbnRseSBuYW1lZCkgcm91dGluZQogICovCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YocmVhZF9vbmx5X2ludF9pbnN0YW5jZV9jb250ZXh0LGluc3RhbmNlKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JFQURfT05MWV9JTlRfSU5TVEFOQ0VfQ09OVEVYVAogaW50CiByZWdpc3Rlcl9yZWFkX29ubHlfaW50X2luc3RhbmNlX2NvbnRleHQoY29uc3QgY2hhciAqbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvaWQgKiByZWdfb2lkLCBzaXplX3QgcmVnX29pZF9sZW4sCkBAIC00MTMsNyArNDkwLDEwIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0LCBzdWJoYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0TmFtZSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUFEX09OTFlfSU5UX0lOU1RBTkNFX0NPTlRFWFQgKi8KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHJlZ2lzdGVyX251bV9maWxlX2luc3RhbmNlLGluc3RhbmNlKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JFR0lTVEVSX05VTV9GSUxFX0lOU1RBTkNFCiBpbnQKIG5ldHNubXBfcmVnaXN0ZXJfbnVtX2ZpbGVfaW5zdGFuY2UoY29uc3QgY2hhciAqbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2lkICogcmVnX29pZCwgc2l6ZV90IHJlZ19vaWRfbGVuLApAQCAtNDM4LDExICs1MTgsMTIgQEAKICAgICAgICAgcmV0dXJuIE1JQl9SRUdJU1RSQVRJT05fRkFJTEVEOwogICAgIH0KIAorICAgIG5maS0+cmVmY250ID0gMTsKICAgICBteXJlZyA9IGdldF9yZWcobmFtZSwgImZpbGVfbnVtX2hhbmRsZXIiLCByZWdfb2lkLCByZWdfb2lkX2xlbiwgbmZpLAogICAgICAgICAgICAgICAgICAgICBtb2RlLCBuZXRzbm1wX2luc3RhbmNlX251bV9maWxlX2hhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgIHN1YmhhbmRsZXIsIGNvbnRleHROYW1lKTsKICAgICBpZiAoTlVMTCA9PSBteXJlZykgewotICAgICAgICBmcmVlKG5maSk7IC8qIFNOTVBfRlJFRSBvdmVya2lsbCBvbiBsb2NhbCB2YXIgKi8KKyAgICAgICAgbmV0c25tcF9udW1fZmlsZV9pbnN0YW5jZV9kZXJlZihuZmkpOwogICAgICAgICByZXR1cm4gTUlCX1JFR0lTVFJBVElPTl9GQUlMRUQ7CiAgICAgfQogCkBAIC00NTMsNyArNTM0LDEwIEBACiAKICAgICByZXR1cm4gbmV0c25tcF9yZWdpc3Rlcl9pbnN0YW5jZShteXJlZyk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUdJU1RFUl9OVU1fRklMRV9JTlNUQU5DRSAqLwogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YocmVnaXN0ZXJfaW50X2luc3RhbmNlLGluc3RhbmNlKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JFR0lTVEVSX0lOVF9JTlNUQU5DRQogLyoqCiAgKiBUaGlzIGZ1bmN0aW9uIHJlZ2lzdGVycyBhbiBpbnQgaGVscGVyIGhhbmRsZXIgdG8gYSBzcGVjaWZpZWQgT0lELgogICoKQEAgLTQ3NywxMiArNTYxLDEzIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvaWQgKiByZWdfb2lkLCBzaXplX3QgcmVnX29pZF9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKml0LCBOZXRzbm1wX05vZGVfSGFuZGxlciAqIHN1YmhhbmRsZXIpCiB7Ci0gICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9pbnN0YW5jZSgKKyAgICByZXR1cm4gbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX2luc3RhbmNlMigKICAgICAgICAgICAgICAgIG5ldHNubXBfY3JlYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uKAogICAgICAgICAgICAgICAgICAgIG5hbWUsIHN1YmhhbmRsZXIsIHJlZ19vaWQsIHJlZ19vaWRfbGVuLCBIQU5ETEVSX0NBTl9SV1JJVEUpLAogICAgICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfd2F0Y2hlcl9pbmZvKAogICAgICAgICAgICAgICAgICAgICh2b2lkICopaXQsIHNpemVvZihpbnQpLCBBU05fSU5URUdFUiwgV0FUQ0hFUl9GSVhFRF9TSVpFKSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUdJU1RFUl9JTlRfSU5TVEFOQ0UgKi8KIAogI2lmZGVmIEhBVkVfRE1BTExPQ19ICiBzdGF0aWMgdm9pZCBmcmVlX3dyYXBwZXIodm9pZCAqIHApCkBAIC00OTMsMjkwICs1NzgsNiBAQAogI2RlZmluZSBmcmVlX3dyYXBwZXIgZnJlZQogI2VuZGlmCiAKLSNpZm5kZWYgTkVUU05NUF9OT19ERVBSRUNBVEVEX0ZVTkNUSU9OUwotCi0vKioKLSAqIFxkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgdW51c2VkIGFuZCBzY2hlZHVsZWQgZm9yIHJlbW92YWwgaW4gTmV0LVNOTVAgNS42Ci0gKi8KLWludAotbmV0c25tcF9pbnN0YW5jZV91bG9uZ19oYW5kbGVyKG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mbyAqcmVxaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3JlcXVlc3RfaW5mbyAqcmVxdWVzdHMpCi17Ci0KLSAgICB1X2xvbmcgICAgICAgICAqaXQgPSAodV9sb25nICopIGhhbmRsZXItPm15dm9pZDsKLSAgICB1X2xvbmcgICAgICAgICAqaXRfc2F2ZTsKLQotICAgIERFQlVHTVNHVEwoKCJuZXRzbm1wX2luc3RhbmNlX3Vsb25nX2hhbmRsZXIiLCAiR290IHJlcXVlc3Q6ICAlZFxuIiwKLSAgICAgICAgICAgICAgICByZXFpbmZvLT5tb2RlKSk7Ci0KLSAgICBzd2l0Y2ggKHJlcWluZm8tPm1vZGUpIHsKLSAgICAgICAgLyoKLSAgICAgICAgICogZGF0YSByZXF1ZXN0cyAKLSAgICAgICAgICovCi0gICAgY2FzZSBNT0RFX0dFVDoKLSAgICAgICAgc25tcF9zZXRfdmFyX3R5cGVkX3ZhbHVlKHJlcXVlc3RzLT5yZXF1ZXN0dmIsIEFTTl9VTlNJR05FRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1X2NoYXIgKikgaXQsIHNpemVvZigqaXQpKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgLyoKLSAgICAgICAgICogU0VUIHJlcXVlc3RzLiAgU2hvdWxkIG9ubHkgZ2V0IGhlcmUgaWYgcmVnaXN0ZXJlZCBSV1JJVEUgCi0gICAgICAgICAqLwotICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6Ci0gICAgICAgIGlmIChyZXF1ZXN0cy0+cmVxdWVzdHZiLT50eXBlICE9IEFTTl9VTlNJR05FRCkKLSAgICAgICAgICAgIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IocmVxaW5mbywgcmVxdWVzdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBfRVJSX1dST05HVFlQRSk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMjoKLSAgICAgICAgLyoKLSAgICAgICAgICogc3RvcmUgb2xkIGluZm8gZm9yIHVuZG8gbGF0ZXIgCi0gICAgICAgICAqLwotICAgICAgICBpdF9zYXZlID0gbmV0c25tcF9tZW1kdXAoaXQsIHNpemVvZih1X2xvbmcpKTsKLSAgICAgICAgaWYgKGl0X3NhdmUgPT0gTlVMTCkgewotICAgICAgICAgICAgbmV0c25tcF9zZXRfcmVxdWVzdF9lcnJvcihyZXFpbmZvLCByZXF1ZXN0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU05NUF9FUlJfUkVTT1VSQ0VVTkFWQUlMQUJMRSk7Ci0gICAgICAgICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKLSAgICAgICAgfQotICAgICAgICBuZXRzbm1wX3JlcXVlc3RfYWRkX2xpc3RfZGF0YShyZXF1ZXN0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfZGF0YV9saXN0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJTlNUQU5DRV9IQU5ETEVSX05BTUUsIGl0X3NhdmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZnJlZV93cmFwcGVyKSk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBNT0RFX1NFVF9BQ1RJT046Ci0gICAgICAgIC8qCi0gICAgICAgICAqIHVwZGF0ZSBjdXJyZW50IAotICAgICAgICAgKi8KLSAgICAgICAgREVCVUdNU0dUTCgoInRlc3RoYW5kbGVyIiwgInVwZGF0ZWQgdV9sb25nICVsdSAtPiAlbHVcbiIsICppdCwKLSAgICAgICAgICAgICAgICAgICAgKihyZXF1ZXN0cy0+cmVxdWVzdHZiLT52YWwuaW50ZWdlcikpKTsKLSAgICAgICAgKml0ID0gKihyZXF1ZXN0cy0+cmVxdWVzdHZiLT52YWwuaW50ZWdlcik7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBNT0RFX1NFVF9VTkRPOgotICAgICAgICAqaXQgPQotICAgICAgICAgICAgKigodV9sb25nICopIG5ldHNubXBfcmVxdWVzdF9nZXRfbGlzdF9kYXRhKHJlcXVlc3RzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOU1RBTkNFX0hBTkRMRVJfTkFNRSkpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgTU9ERV9TRVRfQ09NTUlUOgotICAgIGNhc2UgTU9ERV9TRVRfRlJFRToKLSAgICAgICAgLyoKLSAgICAgICAgICogbm90aGluZyB0byBkbyAKLSAgICAgICAgICovCi0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIGlmIChoYW5kbGVyLT5uZXh0ICYmIGhhbmRsZXItPm5leHQtPmFjY2Vzc19tZXRob2QpCi0gICAgICAgIHJldHVybiBuZXRzbm1wX2NhbGxfbmV4dF9oYW5kbGVyKGhhbmRsZXIsIHJlZ2luZm8sIHJlcWluZm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RzKTsKLQotICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwotfQotCi0vKioKLSAqIFxkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgdW51c2VkIGFuZCBzY2hlZHVsZWQgZm9yIHJlbW92YWwgaW4gTmV0LVNOTVAgNS42Ci0gKi8KLWludAotbmV0c25tcF9pbnN0YW5jZV9jb3VudGVyMzJfaGFuZGxlcihuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWdpbmZvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mbyAqcmVxaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9yZXF1ZXN0X2luZm8gKnJlcXVlc3RzKQotewotCi0gICAgdV9sb25nICAgICAgICAgKml0ID0gKHVfbG9uZyAqKSBoYW5kbGVyLT5teXZvaWQ7Ci0KLSAgICBERUJVR01TR1RMKCgibmV0c25tcF9pbnN0YW5jZV9jb3VudGVyMzJfaGFuZGxlciIsCi0gICAgICAgICAgICAgICAgIkdvdCByZXF1ZXN0OiAgJWRcbiIsIHJlcWluZm8tPm1vZGUpKTsKLQotICAgIHN3aXRjaCAocmVxaW5mby0+bW9kZSkgewotICAgICAgICAvKgotICAgICAgICAgKiBkYXRhIHJlcXVlc3RzIAotICAgICAgICAgKi8KLSAgICBjYXNlIE1PREVfR0VUOgotICAgICAgICBzbm1wX3NldF92YXJfdHlwZWRfdmFsdWUocmVxdWVzdHMtPnJlcXVlc3R2YiwgQVNOX0NPVU5URVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodV9jaGFyICopIGl0LCBzaXplb2YoKml0KSk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgICAgIC8qCi0gICAgICAgICAqIFNFVCByZXF1ZXN0cy4gIFNob3VsZCBvbmx5IGdldCBoZXJlIGlmIHJlZ2lzdGVyZWQgUldSSVRFIAotICAgICAgICAgKi8KLSAgICBkZWZhdWx0OgotICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLAotICAgICAgICAgICAgICAgICAibmV0c25tcF9pbnN0YW5jZV9jb3VudGVyMzJfaGFuZGxlcjogaWxsZWdhbCBtb2RlXG4iKTsKLSAgICAgICAgbmV0c25tcF9zZXRfcmVxdWVzdF9lcnJvcihyZXFpbmZvLCByZXF1ZXN0cywgU05NUF9FUlJfR0VORVJSKTsKLSAgICAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7Ci0gICAgfQotICAgIGlmIChoYW5kbGVyLT5uZXh0ICYmIGhhbmRsZXItPm5leHQtPmFjY2Vzc19tZXRob2QpCi0gICAgICAgIHJldHVybiBuZXRzbm1wX2NhbGxfbmV4dF9oYW5kbGVyKGhhbmRsZXIsIHJlZ2luZm8sIHJlcWluZm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RzKTsKLSAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKLX0KLQotLyoqCi0gKiBcZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIHVudXNlZCBhbmQgc2NoZWR1bGVkIGZvciByZW1vdmFsIGluIE5ldC1TTk1QIDUuNgotICovCi1pbnQKLW5ldHNubXBfaW5zdGFuY2VfbG9uZ19oYW5kbGVyKG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWdpbmZvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm8gKnJlcWluZm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3JlcXVlc3RfaW5mbyAqcmVxdWVzdHMpCi17Ci0KLSAgICBsb25nICAgICAgICAgICAqaXQgPSAobG9uZyAqKSBoYW5kbGVyLT5teXZvaWQ7Ci0gICAgbG9uZyAgICAgICAgICAgKml0X3NhdmU7Ci0KLSAgICBERUJVR01TR1RMKCgibmV0c25tcF9pbnN0YW5jZV9sb25nX2hhbmRsZXIiLCAiR290IHJlcXVlc3Q6ICAlZFxuIiwKLSAgICAgICAgICAgICAgICByZXFpbmZvLT5tb2RlKSk7Ci0KLSAgICBzd2l0Y2ggKHJlcWluZm8tPm1vZGUpIHsKLSAgICAgICAgLyoKLSAgICAgICAgICogZGF0YSByZXF1ZXN0cyAKLSAgICAgICAgICovCi0gICAgY2FzZSBNT0RFX0dFVDoKLSAgICAgICAgc25tcF9zZXRfdmFyX3R5cGVkX3ZhbHVlKHJlcXVlc3RzLT5yZXF1ZXN0dmIsIEFTTl9JTlRFR0VSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVfY2hhciAqKSBpdCwgc2l6ZW9mKCppdCkpOwotICAgICAgICBicmVhazsKLQotICAgICAgICAvKgotICAgICAgICAgKiBTRVQgcmVxdWVzdHMuICBTaG91bGQgb25seSBnZXQgaGVyZSBpZiByZWdpc3RlcmVkIFJXUklURSAKLSAgICAgICAgICovCi0gICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMToKLSAgICAgICAgaWYgKHJlcXVlc3RzLT5yZXF1ZXN0dmItPnR5cGUgIT0gQVNOX0lOVEVHRVIpCi0gICAgICAgICAgICBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yKHJlcWluZm8sIHJlcXVlc3RzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTk1QX0VSUl9XUk9OR1RZUEUpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTI6Ci0gICAgICAgIC8qCi0gICAgICAgICAqIHN0b3JlIG9sZCBpbmZvIGZvciB1bmRvIGxhdGVyIAotICAgICAgICAgKi8KLSAgICAgICAgaXRfc2F2ZSA9IG5ldHNubXBfbWVtZHVwKGl0LCBzaXplb2YobG9uZykpOwotICAgICAgICBpZiAoaXRfc2F2ZSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yKHJlcWluZm8sIHJlcXVlc3RzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTk1QX0VSUl9SRVNPVVJDRVVOQVZBSUxBQkxFKTsKLSAgICAgICAgICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwotICAgICAgICB9Ci0gICAgICAgIG5ldHNubXBfcmVxdWVzdF9hZGRfbGlzdF9kYXRhKHJlcXVlc3RzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV9kYXRhX2xpc3QKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElOU1RBTkNFX0hBTkRMRVJfTkFNRSwgaXRfc2F2ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmcmVlX3dyYXBwZXIpKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIE1PREVfU0VUX0FDVElPTjoKLSAgICAgICAgLyoKLSAgICAgICAgICogdXBkYXRlIGN1cnJlbnQgCi0gICAgICAgICAqLwotICAgICAgICBERUJVR01TR1RMKCgidGVzdGhhbmRsZXIiLCAidXBkYXRlZCB1X2xvbmcgJWx1IC0+ICVsdVxuIiwgKml0LAotICAgICAgICAgICAgICAgICAgICAqKHJlcXVlc3RzLT5yZXF1ZXN0dmItPnZhbC5pbnRlZ2VyKSkpOwotICAgICAgICAqaXQgPSAqKHJlcXVlc3RzLT5yZXF1ZXN0dmItPnZhbC5pbnRlZ2VyKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIE1PREVfU0VUX1VORE86Ci0gICAgICAgICppdCA9Ci0gICAgICAgICAgICAqKCh1X2xvbmcgKikgbmV0c25tcF9yZXF1ZXN0X2dldF9saXN0X2RhdGEocmVxdWVzdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5TVEFOQ0VfSEFORExFUl9OQU1FKSk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBNT0RFX1NFVF9DT01NSVQ6Ci0gICAgY2FzZSBNT0RFX1NFVF9GUkVFOgotICAgICAgICAvKgotICAgICAgICAgKiBub3RoaW5nIHRvIGRvIAotICAgICAgICAgKi8KLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGlmIChoYW5kbGVyLT5uZXh0ICYmIGhhbmRsZXItPm5leHQtPmFjY2Vzc19tZXRob2QpCi0gICAgICAgIHJldHVybiBuZXRzbm1wX2NhbGxfbmV4dF9oYW5kbGVyKGhhbmRsZXIsIHJlZ2luZm8sIHJlcWluZm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RzKTsKLSAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKLX0KLQotLyoqCi0gKiBcZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIHVudXNlZCBhbmQgc2NoZWR1bGVkIGZvciByZW1vdmFsIGluIE5ldC1TTk1QIDUuNgotICovCi1pbnQKLW5ldHNubXBfaW5zdGFuY2VfaW50X2hhbmRsZXIobmV0c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm8gKnJlcWluZm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfcmVxdWVzdF9pbmZvICpyZXF1ZXN0cykKLXsKLQotICAgIGludCAqaXQgPSAoaW50ICopIGhhbmRsZXItPm15dm9pZDsKLSAgICBpbnQgKml0X3NhdmU7Ci0gICAgbG9uZyB0bXBfaXQ7Ci0gICAgCi0gICAgREVCVUdNU0dUTCgoIm5ldHNubXBfaW5zdGFuY2VfaW50X2hhbmRsZXIiLCAiR290IHJlcXVlc3Q6ICAlZFxuIiwKLSAgICAgICAgICAgICAgICByZXFpbmZvLT5tb2RlKSk7Ci0KLSAgICBzd2l0Y2ggKHJlcWluZm8tPm1vZGUpIHsKLSAgICAgICAgLyoKLSAgICAgICAgICogZGF0YSByZXF1ZXN0cyAKLSAgICAgICAgICovCi0gICAgY2FzZSBNT0RFX0dFVDoKLQkvKgotCSAqIFVzZSBhIGxvbmcgaGVyZSwgb3RoZXJ3aXNlIG9uIDY0IGJpdCB1c2Ugb2YgYW4gaW50IHdvdWxkIGZhaWwKLQkgKi8KLQl0bXBfaXQgPSAqaXQ7Ci0gICAgICAgIHNubXBfc2V0X3Zhcl90eXBlZF92YWx1ZShyZXF1ZXN0cy0+cmVxdWVzdHZiLCBBU05fSU5URUdFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1X2NoYXIgKikgJnRtcF9pdCwgc2l6ZW9mKHRtcF9pdCkpOwotICAgICAgICBicmVhazsKLQotICAgICAgICAvKgotICAgICAgICAgKiBTRVQgcmVxdWVzdHMuICBTaG91bGQgb25seSBnZXQgaGVyZSBpZiByZWdpc3RlcmVkIFJXUklURSAKLSAgICAgICAgICovCi0gICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMToKLSAgICAgICAgaWYgKHJlcXVlc3RzLT5yZXF1ZXN0dmItPnR5cGUgIT0gQVNOX0lOVEVHRVIpCi0gICAgICAgICAgICBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yKHJlcWluZm8sIHJlcXVlc3RzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTk1QX0VSUl9XUk9OR1RZUEUpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTI6Ci0gICAgICAgIC8qCi0gICAgICAgICAqIHN0b3JlIG9sZCBpbmZvIGZvciB1bmRvIGxhdGVyIAotICAgICAgICAgKi8KLSAgICAgICAgaXRfc2F2ZSA9IG5ldHNubXBfbWVtZHVwKGl0LCBzaXplb2YoaW50KSk7Ci0gICAgICAgIGlmIChpdF9zYXZlID09IE5VTEwpIHsKLSAgICAgICAgICAgIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IocmVxaW5mbywgcmVxdWVzdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBfRVJSX1JFU09VUkNFVU5BVkFJTEFCTEUpOwotICAgICAgICAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7Ci0gICAgICAgIH0KLSAgICAgICAgbmV0c25tcF9yZXF1ZXN0X2FkZF9saXN0X2RhdGEocmVxdWVzdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfY3JlYXRlX2RhdGFfbGlzdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSU5TVEFOQ0VfSEFORExFUl9OQU1FLCBpdF9zYXZlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZyZWVfd3JhcHBlcikpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgTU9ERV9TRVRfQUNUSU9OOgotICAgICAgICAvKgotICAgICAgICAgKiB1cGRhdGUgY3VycmVudCAKLSAgICAgICAgICovCi0gICAgICAgIERFQlVHTVNHVEwoKCJ0ZXN0aGFuZGxlciIsICJ1cGRhdGVkIGludCAlZCAtPiAlbGRcbiIsICppdCwKLSAgICAgICAgICAgICAgICAgICAgKihyZXF1ZXN0cy0+cmVxdWVzdHZiLT52YWwuaW50ZWdlcikpKTsKLSAgICAgICAgKml0ID0gKGludCkgKihyZXF1ZXN0cy0+cmVxdWVzdHZiLT52YWwuaW50ZWdlcik7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBNT0RFX1NFVF9VTkRPOgotICAgICAgICAqaXQgPQotICAgICAgICAgICAgKigodV9pbnQgKikgbmV0c25tcF9yZXF1ZXN0X2dldF9saXN0X2RhdGEocmVxdWVzdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTlNUQU5DRV9IQU5ETEVSX05BTUUpKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIE1PREVfU0VUX0NPTU1JVDoKLSAgICBjYXNlIE1PREVfU0VUX0ZSRUU6Ci0gICAgICAgIC8qCi0gICAgICAgICAqIG5vdGhpbmcgdG8gZG8gCi0gICAgICAgICAqLwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgaWYgKGhhbmRsZXItPm5leHQgJiYgaGFuZGxlci0+bmV4dC0+YWNjZXNzX21ldGhvZCkKLSAgICAgICAgcmV0dXJuIG5ldHNubXBfY2FsbF9uZXh0X2hhbmRsZXIoaGFuZGxlciwgcmVnaW5mbywgcmVxaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdHMpOwotICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwotfQotCi0jZW5kaWYgLyogTkVUU05NUF9OT19ERVBSRUNBVEVEX0ZVTkNUSU9OUyAqLwotCiBpbnQKIG5ldHNubXBfaW5zdGFuY2VfbnVtX2ZpbGVfaGFuZGxlcihuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKnJlZ2luZm8sCkBAIC03ODQsNyArNTg1LDEwIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9yZXF1ZXN0X2luZm8gKnJlcXVlc3RzKQogewogICAgIG5ldHNubXBfbnVtX2ZpbGVfaW5zdGFuY2UgKm5maTsKLSAgICB1X2xvbmcgaXQsICppdF9zYXZlOworICAgIHVfbG9uZyBpdDsKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCisgICAgdV9sb25nICppdF9zYXZlOworI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgIGludCByYzsKIAogICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaGFuZGxlcik7CkBAIC04MjYsNiArNjMwLDcgQEAKICAgICAgICAgLyoKICAgICAgICAgICogU0VUIHJlcXVlc3RzLiAgU2hvdWxkIG9ubHkgZ2V0IGhlcmUgaWYgcmVnaXN0ZXJlZCBSV1JJVEUgCiAgICAgICAgICAqLworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBjYXNlIE1PREVfU0VUX1JFU0VSVkUxOgogICAgICAgICBuZXRzbm1wX2Fzc2VydChOVUxMID09IG5maS0+ZmlsZXApOwogICAgICAgICBpZiAocmVxdWVzdHMtPnJlcXVlc3R2Yi0+dHlwZSAhPSBuZmktPnR5cGUpCkBAIC04OTgsNiArNzAzLDEyIEBACiAgICAgICAgICAgICBuZmktPmZpbGVwID0gTlVMTDsKICAgICAgICAgfQogICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKyAgICBkZWZhdWx0OgorICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLAorICAgICAgICAgICAgICAgICAibmV0c25tcF9pbnN0YW5jZV9udW1fZmlsZV9oYW5kbGVyOiBpbGxlZ2FsIG1vZGVcbiIpOworICAgICAgICBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yKHJlcWluZm8sIHJlcXVlc3RzLCBTTk1QX0VSUl9HRU5FUlIpOworICAgICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKICAgICB9CiAKICAgICBpZiAoaGFuZGxlci0+bmV4dCAmJiBoYW5kbGVyLT5uZXh0LT5hY2Nlc3NfbWV0aG9kKQpAQCAtOTA2LDkzICs3MTcsNiBAQAogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQogCi0jaWZuZGVmIE5FVFNOTVBfTk9fREVQUkVDQVRFRF9GVU5DVElPTlMKLQotLyoqCi0gKiBcZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIHVudXNlZCBhbmQgc2NoZWR1bGVkIGZvciByZW1vdmFsIGluIE5ldC1TTk1QIDUuNgotICovCi1pbnQKLW5ldHNubXBfaW5zdGFuY2VfdWludF9oYW5kbGVyKG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWdpbmZvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm8gKnJlcWluZm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3JlcXVlc3RfaW5mbyAqcmVxdWVzdHMpCi17Ci0KLSAgICB1bnNpZ25lZCBpbnQgKml0ID0gKHVuc2lnbmVkIGludCAqKSBoYW5kbGVyLT5teXZvaWQ7Ci0gICAgdW5zaWduZWQgaW50ICppdF9zYXZlOwotICAgIHVuc2lnbmVkIGxvbmcgdG1wX2l0OwotICAgIAotICAgIERFQlVHTVNHVEwoKCJuZXRzbm1wX2luc3RhbmNlX3VpbnRfaGFuZGxlciIsICJHb3QgcmVxdWVzdDogICVkXG4iLAotICAgICAgICAgICAgICAgIHJlcWluZm8tPm1vZGUpKTsKLQotICAgIHN3aXRjaCAocmVxaW5mby0+bW9kZSkgewotICAgICAgICAvKgotICAgICAgICAgKiBkYXRhIHJlcXVlc3RzIAotICAgICAgICAgKi8KLSAgICBjYXNlIE1PREVfR0VUOgotCS8qCi0JICogVXNlIGEgbG9uZyBoZXJlLCBvdGhlcndpc2Ugb24gNjQgYml0IHVzZSBvZiBhbiBpbnQgd291bGQgZmFpbAotCSAqLwotCXRtcF9pdCA9ICppdDsKLSAgICAgICAgc25tcF9zZXRfdmFyX3R5cGVkX3ZhbHVlKHJlcXVlc3RzLT5yZXF1ZXN0dmIsIEFTTl9VTlNJR05FRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1X2NoYXIgKikgJnRtcF9pdCwgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgLyoKLSAgICAgICAgICogU0VUIHJlcXVlc3RzLiAgU2hvdWxkIG9ubHkgZ2V0IGhlcmUgaWYgcmVnaXN0ZXJlZCBSV1JJVEUgCi0gICAgICAgICAqLwotICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6Ci0gICAgICAgIGlmIChyZXF1ZXN0cy0+cmVxdWVzdHZiLT50eXBlICE9IEFTTl9VTlNJR05FRCkKLSAgICAgICAgICAgIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IocmVxaW5mbywgcmVxdWVzdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBfRVJSX1dST05HVFlQRSk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMjoKLSAgICAgICAgLyoKLSAgICAgICAgICogc3RvcmUgb2xkIGluZm8gZm9yIHVuZG8gbGF0ZXIgCi0gICAgICAgICAqLwotICAgICAgICBpdF9zYXZlID0gbmV0c25tcF9tZW1kdXAoaXQsIHNpemVvZih1X2ludCkpOwotICAgICAgICBpZiAoaXRfc2F2ZSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yKHJlcWluZm8sIHJlcXVlc3RzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTk1QX0VSUl9SRVNPVVJDRVVOQVZBSUxBQkxFKTsKLSAgICAgICAgICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwotICAgICAgICB9Ci0gICAgICAgIG5ldHNubXBfcmVxdWVzdF9hZGRfbGlzdF9kYXRhKHJlcXVlc3RzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV9kYXRhX2xpc3QKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElOU1RBTkNFX0hBTkRMRVJfTkFNRSwgaXRfc2F2ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmcmVlX3dyYXBwZXIpKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIE1PREVfU0VUX0FDVElPTjoKLSAgICAgICAgLyoKLSAgICAgICAgICogdXBkYXRlIGN1cnJlbnQgCi0gICAgICAgICAqLwotICAgICAgICBERUJVR01TR1RMKCgidGVzdGhhbmRsZXIiLCAidXBkYXRlZCB1aW50ICVkIC0+ICVsZFxuIiwgKml0LAotICAgICAgICAgICAgICAgICAgICAqKHJlcXVlc3RzLT5yZXF1ZXN0dmItPnZhbC5pbnRlZ2VyKSkpOwotICAgICAgICAqaXQgPSAodW5zaWduZWQgaW50KSAqKHJlcXVlc3RzLT5yZXF1ZXN0dmItPnZhbC5pbnRlZ2VyKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIE1PREVfU0VUX1VORE86Ci0gICAgICAgICppdCA9Ci0gICAgICAgICAgICAqKCh1X2ludCAqKSBuZXRzbm1wX3JlcXVlc3RfZ2V0X2xpc3RfZGF0YShyZXF1ZXN0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOU1RBTkNFX0hBTkRMRVJfTkFNRSkpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgTU9ERV9TRVRfQ09NTUlUOgotICAgIGNhc2UgTU9ERV9TRVRfRlJFRToKLSAgICAgICAgLyoKLSAgICAgICAgICogbm90aGluZyB0byBkbyAKLSAgICAgICAgICovCi0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBpZiAoaGFuZGxlci0+bmV4dCAmJiBoYW5kbGVyLT5uZXh0LT5hY2Nlc3NfbWV0aG9kKQotICAgICAgICByZXR1cm4gbmV0c25tcF9jYWxsX25leHRfaGFuZGxlcihoYW5kbGVyLCByZWdpbmZvLCByZXFpbmZvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0cyk7Ci0gICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7Ci19Ci0KLSNlbmRpZiAvKiBORVRTTk1QX05PX0RFUFJFQ0FURURfRlVOQ1RJT05TICovCi0KIGludAogbmV0c25tcF9pbnN0YW5jZV9oZWxwZXJfaGFuZGxlcihuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWdpbmZvLApAQCAtMTAyNSw2ICs3NDksNyBAQAogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CiAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMjoKICAgICBjYXNlIE1PREVfU0VUX0FDVElPTjoKQEAgLTEwNDAsNiArNzY1LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RzKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgIGNhc2UgTU9ERV9HRVRORVhUOgogICAgICAgICBpZiAoY21wIDwgMCB8fCAoY21wID09IDAgJiYgcmVxdWVzdHMtPmluY2x1c2l2ZSkpIHsKQEAgLTEwNjUsNiArNzkxLDExIEBACiAgICAgICAgICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKICAgICAgICAgfQogICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLAorICAgICAgICAgICAgICAgICAibmV0c25tcF9pbnN0YW5jZV9oZWxwZXJfaGFuZGxlcjogaWxsZWdhbCBtb2RlXG4iKTsKKyAgICAgICAgbmV0c25tcF9zZXRfcmVxdWVzdF9lcnJvcihyZXFpbmZvLCByZXF1ZXN0cywgU05NUF9FUlJfR0VORVJSKTsKKyAgICAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiAgICAgfQogICAgIC8qCiAgICAgICogZ290IGhlcmUgb25seSBpZiBpbGxlZ2FsIG1vZGUgZm91bmQgCmRpZmYgLS1naXQgYS9hZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYyBiL2FnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jCmluZGV4IGQ3ZGQzMDIuLjBiZmNjNjkgMTAwNjQ0Ci0tLSBhL2FnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jCisrKyBiL2FnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jCkBAIC05LDEyICs5LDE3IEBACiAgKiBkaXN0cmlidXRlZCB3aXRoIHRoZSBOZXQtU05NUCBwYWNrYWdlLgogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KIAogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L21vZGVfZW5kX2NhbGwuaD4KIAorbmV0c25tcF9mZWF0dXJlX3Byb3ZpZGUobW9kZV9lbmRfY2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihtb2RlX2VuZF9jYWxsLCBtaWJfaGVscGVycykKKworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX01PREVfRU5EX0NBTEwKIC8qKiBAZGVmZ3JvdXAgbW9kZV9lbmRfY2FsbCBtb2RlX2VuZF9jYWxsCiAgKiAgQXQgdGhlIGVuZCBvZiBhIHNlcmllcyBvZiByZXF1ZXN0cywgY2FsbCBhbm90aGVyIGhhbmRsZXIgaG9vay4KICAqICBIYW5kbGVycyB0aGF0IHdhbnQgdG8gbG9vcCB0aHJvdWdoIGEgc2VyaWVzIG9mIHJlcXVlc3RzIGFuZCB0aGVuCkBAIC0xMTMsNSArMTE4LDEwIEBACiAgICAgCiAgICAgcmV0dXJuIHJldDI7CiB9CisjZWxzZQorbmV0c25tcF9mZWF0dXJlX3VudXNlZChtb2RlX2VuZF9jYWxsKTsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX01PREVfRU5EX0NBTEwgKi8KKworCiAvKiogIEB9ICovCiAKZGlmZiAtLWdpdCBhL2FnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYyBiL2FnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYwppbmRleCBlNTQzZjU3Li4yYTdhNjY0IDEwMDY0NAotLS0gYS9hZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMKKysrIGIvYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jCkBAIC04NCw2ICs4NCw3IEBACiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMToKICAgICBjYXNlIE1PREVfU0VUX1JFU0VSVkUyOgogICAgIGNhc2UgTU9ERV9TRVRfQUNUSU9OOgpAQCAtMTAwLDYgKzEwMSw3IEBACiAgICAgICAgIC8qCiAgICAgICAgICAqIFhYWDogcHJvY2VzcyBTRVRzIHNwZWNpYWxseSwgYW5kIHBvc3NpYmx5IG90aGVycyAKICAgICAgICAgICovCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgZGVmYXVsdDoKICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgInVuc3VwcG9ydGVkIG1vZGUgZm9yIG11bHRpcGxleGVyOiAlZFxuIiwKICAgICAgICAgICAgICAgICAgcmVxaW5mby0+bW9kZSk7CmRpZmYgLS1naXQgYS9hZ2VudC9oZWxwZXJzL29sZF9hcGkuYyBiL2FnZW50L2hlbHBlcnMvb2xkX2FwaS5jCmluZGV4IGZkYzhiZDYuLmQyYjk5ZDkgMTAwNjQ0Ci0tLSBhL2FnZW50L2hlbHBlcnMvb2xkX2FwaS5jCisrKyBiL2FnZW50L2hlbHBlcnMvb2xkX2FwaS5jCkBAIC0xMyw2ICsxMyw4IEBACiAKICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaD4KIAorI2luY2x1ZGUgPHN0ZGRlZi5oPgorCiAjZGVmaW5lIE1JQl9DTElFTlRTX0FSRV9FVklMIDEKIAogI2lmZGVmIEhBVkVfRE1BTExPQ19ICkBAIC00OSw2ICs1MSwxOSBAQAogICAgIHJldHVybiBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyKCJvbGRfYXBpIiwgbmV0c25tcF9vbGRfYXBpX2hlbHBlcik7CiB9CiAKK3N0cnVjdCB2YXJpYWJsZSAqCituZXRzbm1wX2R1cGxpY2F0ZV92YXJpYWJsZShjb25zdCBzdHJ1Y3QgdmFyaWFibGUgKnZhcikKK3sKKyAgICBzdHJ1Y3QgdmFyaWFibGUgKnZhcjIgPSBOVUxMOworICAgIAorICAgIGlmICh2YXIpIHsKKyAgICAgICAgY29uc3QgaW50IHZhcnNpemUgPSBvZmZzZXRvZihzdHJ1Y3QgdmFyaWFibGUsIG5hbWUpICsgdmFyLT5uYW1lbGVuICogc2l6ZW9mKHZhci0+bmFtZVswXSk7CisgICAgICAgIHZhcjIgPSBtYWxsb2ModmFyc2l6ZSk7CisgICAgICAgIGlmICh2YXIyKQorICAgICAgICAgICAgbWVtY3B5KHZhcjIsIHZhciwgdmFyc2l6ZSk7CisgICAgfQorICAgIHJldHVybiB2YXIyOworfQogCiAvKiogUmVnaXN0ZXJzIGFuIG9sZCBBUEkgc2V0IGludG8gdGhlIG1pYiB0cmVlLiAgRnVuY3Rpb25hbGx5IHRoaXMKICAqIG1pbWljcyB0aGUgb2xkIHJlZ2lzdGVyX21pYl9jb250ZXh0KCkgZnVuY3Rpb24gKGFuZCBpbiBmYWN0IHRoZSBuZXcKQEAgLTU2LDEwICs3MSwxMCBAQAogICovCiBpbnQKIG5ldHNubXBfcmVnaXN0ZXJfb2xkX2FwaShjb25zdCBjaGFyICptb2R1bGVOYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2YXJpYWJsZSAqdmFyLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2YXJpYWJsZSAqdmFyLAogICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB2YXJzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBudW12YXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgIG9pZCAqIG1pYmxvYywKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvaWQgKiBtaWJsb2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG1pYmxvY2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJpb3JpdHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJhbmdlX3N1YmlkLApAQCAtODAsOSArOTUsOCBAQAogICAgICAgICBpZiAocmVnaW5mbyA9PSBOVUxMKQogICAgICAgICAgICAgcmV0dXJuIFNOTVBfRVJSX0dFTkVSUjsKIAotICAgICAgICB2cCA9IG5ldHNubXBfbWVtZHVwKChjb25zdCBzdHJ1Y3QgdmFyaWFibGUgKikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGNvbnN0IGNoYXIgKikgdmFyICsgdmFyc2l6ZSAqIGkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcnNpemUpOworCXZwID0gbmV0c25tcF9kdXBsaWNhdGVfdmFyaWFibGUoKGNvbnN0IHN0cnVjdCB2YXJpYWJsZSAqKQorCQkJCQkoKGNvbnN0IGNoYXIgKikgdmFyICsgdmFyc2l6ZSAqIGkpKTsKIAogICAgICAgICByZWdpbmZvLT5oYW5kbGVyID0gZ2V0X29sZF9hcGlfaGFuZGxlcigpOwogICAgICAgICByZWdpbmZvLT5oYW5kbGVyTmFtZSA9IHN0cmR1cChtb2R1bGVOYW1lKTsKQEAgLTEwMCw2ICsxMTQsOSBAQAogICAgICAgICBtZW1jcHkocmVnaW5mby0+cm9vdG9pZCArIG1pYmxvY2xlbiwgdnAtPm5hbWUsIHZwLT5uYW1lbGVuCiAgICAgICAgICAgICAgICAqIHNpemVvZihvaWQpKTsKICAgICAgICAgcmVnaW5mby0+aGFuZGxlci0+bXl2b2lkID0gKHZvaWQgKikgdnA7CisgICAgICAgIHJlZ2luZm8tPmhhbmRsZXItPmRhdGFfY2xvbmUKKwkgICAgPSAodm9pZCAqKCopKHZvaWQgKikpbmV0c25tcF9kdXBsaWNhdGVfdmFyaWFibGU7CisgICAgICAgIHJlZ2luZm8tPmhhbmRsZXItPmRhdGFfZnJlZSA9IGZyZWU7CiAKICAgICAgICAgcmVnaW5mby0+cHJpb3JpdHkgPSBwcmlvcml0eTsKICAgICAgICAgcmVnaW5mby0+cmFuZ2Vfc3ViaWQgPSByYW5nZV9zdWJpZDsKQEAgLTEwNywxNCArMTI0LDE1IEBACiAgICAgICAgIHJlZ2luZm8tPnJhbmdlX3Vib3VuZCA9IHJhbmdlX3Vib3VuZDsKICAgICAgICAgcmVnaW5mby0+dGltZW91dCA9IHRpbWVvdXQ7CiAgICAgICAgIHJlZ2luZm8tPmNvbnRleHROYW1lID0gKGNvbnRleHQpID8gc3RyZHVwKGNvbnRleHQpIDogTlVMTDsKLSAgICAgICAgcmVnaW5mby0+bW9kZXMgPSBIQU5ETEVSX0NBTl9SV1JJVEU7CisgICAgICAgIHJlZ2luZm8tPm1vZGVzID0gdnAtPmFjbCA9PSBORVRTTk1QX09MREFQSV9ST05MWSA/IEhBTkRMRVJfQ0FOX1JPTkxZIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICBIQU5ETEVSX0NBTl9SV1JJVEU7CiAKICAgICAgICAgLyoKICAgICAgICAgICogcmVnaXN0ZXIgb3Vyc2VsdmVzIGluIHRoZSBtaWIgdHJlZSAKICAgICAgICAgICovCiAgICAgICAgIGlmIChuZXRzbm1wX3JlZ2lzdGVyX2hhbmRsZXIocmVnaW5mbykgIT0gTUlCX1JFR0lTVEVSRURfT0spIHsKICAgICAgICAgICAgIC8qKiBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUocmVnaW5mbyk7IGFscmVhZHkgZnJlZWQgKi8KLSAgICAgICAgICAgIFNOTVBfRlJFRSh2cCk7CisgICAgICAgICAgICAvKiBTTk1QX0ZSRUUodnApOyBhbHJlYWR5IGZyZWVkICovCiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIFNOTVBFUlJfU1VDQ0VTUzsKQEAgLTEyMyw3ICsxNDEsNyBAQAogLyoqIHJlZ2lzdGVycyBhIHJvdyB3aXRoaW4gYSBtaWIgdGFibGUgKi8KIGludAogbmV0c25tcF9yZWdpc3Rlcl9taWJfdGFibGVfcm93KGNvbnN0IGNoYXIgKm1vZHVsZU5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZhcmlhYmxlICp2YXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZhcmlhYmxlICp2YXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHZhcnNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG51bXZhcnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2lkICogbWlibG9jLApAQCAtMTM3LDggKzE1NSw4IEBACiAgICAgb2lkICAgICAgICAgICAgIHVib3VuZCA9IDA7CiAKICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtdmFyczsgaSsrKSB7Ci0gICAgICAgIHN0cnVjdCB2YXJpYWJsZSAqdnIgPQotICAgICAgICAgICAgKHN0cnVjdCB2YXJpYWJsZSAqKSAoKGNoYXIgKikgdmFyICsgKGkgKiB2YXJzaXplKSk7CisgICAgICAgIGNvbnN0IHN0cnVjdCB2YXJpYWJsZSAqdnIgPQorICAgICAgICAgICAgKGNvbnN0IHN0cnVjdCB2YXJpYWJsZSAqKSAoKGNvbnN0IGNoYXIgKikgdmFyICsgKGkgKiB2YXJzaXplKSk7CiAgICAgICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKnI7CiAgICAgICAgIGlmICggdmFyX3N1YmlkID4gKGludCltaWJsb2NsZW4gKSB7CiAgICAgICAgICAgICBicmVhazsgICAgLyogZG9lc24ndCBtYWtlIHNlbnNlICovCkBAIC0xNzksMTQgKzE5NywxNSBAQAogICAgICAgICAgICAgICAgICAgICAgci0+cm9vdG9pZF9sZW4pKTsKICAgICAgICAgREVCVUdNU0coKCJuZXRzbm1wX3JlZ2lzdGVyX21pYl90YWJsZV9yb3ciLCAiKCVkKVxuIiwKICAgICAgICAgICAgICAgICAgICAgICh2YXJfc3ViaWQgLSB2ci0+bmFtZWxlbikpKTsKLSAgICAgICAgci0+aGFuZGxlci0+bXl2b2lkID0gKHZvaWQgKikgbWFsbG9jKHZhcnNpemUpOworICAgICAgICByLT5oYW5kbGVyLT5teXZvaWQgPSBuZXRzbm1wX2R1cGxpY2F0ZV92YXJpYWJsZSh2cik7CisgICAgICAgIHItPmhhbmRsZXItPmRhdGFfY2xvbmUgPSAodm9pZCAqKCopKHZvaWQgKikpbmV0c25tcF9kdXBsaWNhdGVfdmFyaWFibGU7CisgICAgICAgIHItPmhhbmRsZXItPmRhdGFfZnJlZSA9IGZyZWU7CiAKICAgICAgICAgaWYgKHItPmhhbmRsZXItPm15dm9pZCA9PSBOVUxMKSB7CiAgICAgICAgICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUocik7CiAgICAgICAgICAgICByYyA9IE1JQl9SRUdJU1RSQVRJT05fRkFJTEVEOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgbWVtY3B5KChjaGFyICopIHItPmhhbmRsZXItPm15dm9pZCwgdnIsIHZhcnNpemUpOwogCiAgICAgICAgIHItPmNvbnRleHROYW1lID0gKGNvbnRleHQpID8gc3RyZHVwKGNvbnRleHQpIDogTlVMTDsKIApAQCAtMjU2LDEzICsyNzUsMTMgQEAKICAgICBpbnQgICAgICAgICAgICAgc3RhdHVzOwogCiAgICAgc3RydWN0IHZhcmlhYmxlICp2cDsKLSAgICBXcml0ZU1ldGhvZCAgICAqd3JpdGVfbWV0aG9kID0gTlVMTDsKLSAgICBzaXplX3QgICAgICAgICAgbGVuOwotICAgIHVfY2hhciAgICAgICAgICphY2Nlc3MgPSBOVUxMOwogICAgIG5ldHNubXBfb2xkX2FwaV9jYWNoZSAqY2FjaGVwdHI7CiAgICAgbmV0c25tcF9hZ2VudF9zZXNzaW9uICpvbGRhc3AgPSBOVUxMOwotICAgIG9pZCAgICAgICAgICAgICB0bXBfbmFtZVtNQVhfT0lEX0xFTl07CisgICAgdV9jaGFyICAgICAgICAgKmFjY2VzcyA9IE5VTEw7CisgICAgV3JpdGVNZXRob2QgICAgKndyaXRlX21ldGhvZCA9IE5VTEw7CisgICAgc2l6ZV90ICAgICAgICAgIGxlbjsKICAgICBzaXplX3QgICAgICAgICAgdG1wX2xlbjsKKyAgICBvaWQgICAgICAgICAgICAgdG1wX25hbWVbTUFYX09JRF9MRU5dOwogCiAgICAgdnAgPSAoc3RydWN0IHZhcmlhYmxlICopIGhhbmRsZXItPm15dm9pZDsKIApAQCAtMjkzLDcgKzMxMiw5IEBACiAgICAgICAgIHN3aXRjaCAocmVxaW5mby0+bW9kZSkgewogICAgICAgICBjYXNlIE1PREVfR0VUOgogICAgICAgICBjYXNlIE1PREVfR0VUTkVYVDoKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAqIEFjdHVhbGx5IGNhbGwgdGhlIG9sZCBtaWItbW9kdWxlIGZ1bmN0aW9uIAogICAgICAgICAgICAgICovCkBAIC0zMjQsNyArMzQ1LDkgQEAKICAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICAqIHJlc3VsdCByZXR1cm5lZCAKICAgICAgICAgICAgICAgICAgKi8KKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgICAgICAgICAgaWYgKHJlcWluZm8tPm1vZGUgIT0gTU9ERV9TRVRfUkVTRVJWRTEpCisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAgICAgICAgICAgICBzbm1wX3NldF92YXJfdHlwZWRfdmFsdWUocmVxdWVzdHMtPnJlcXVlc3R2YiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN2cC0+dHlwZSwgYWNjZXNzLCBsZW4pOwogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTM0OSw3ICszNzIsOSBAQAogICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAqIEFBQTogZmFsbCB0aHJvdWdoIGZvciBldmVyeXRoaW5nIHRoYXQgaXMgYSBzZXQgKHNlZSBCQkIpIAogICAgICAgICAgICAgICovCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAgICAgaWYgKHJlcWluZm8tPm1vZGUgIT0gTU9ERV9TRVRfUkVTRVJWRTEpCisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBjYWNoZXB0ciA9IFNOTVBfTUFMTE9DX1RZUEVERUYobmV0c25tcF9vbGRfYXBpX2NhY2hlKTsKZGlmZiAtLWdpdCBhL2FnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMgYi9hZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jCmluZGV4IGI4NWNmYjUuLjBiMDZkNGYgMTAwNjQ0Ci0tLSBhL2FnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMKKysrIGIvYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYwpAQCAtNDQsNiArNDQsNyBAQAogCiAgICAgc3dpdGNoIChyZXFpbmZvLT5tb2RlKSB7CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMToKICAgICBjYXNlIE1PREVfU0VUX1JFU0VSVkUyOgogICAgIGNhc2UgTU9ERV9TRVRfQUNUSU9OOgpAQCAtNTIsNiArNTMsNyBAQAogICAgIGNhc2UgTU9ERV9TRVRfVU5ETzoKICAgICAgICAgbmV0c25tcF9yZXF1ZXN0X3NldF9lcnJvcl9hbGwocmVxdWVzdHMsIFNOTVBfRVJSX05PVFdSSVRBQkxFKTsKICAgICAgICAgcmV0dXJuIFNOTVBfRVJSX05PVFdSSVRBQkxFOworI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAgICAgY2FzZSBNT0RFX0dFVDoKICAgICBjYXNlIE1PREVfR0VUTkVYVDoKZGlmZiAtLWdpdCBhL2FnZW50L2hlbHBlcnMvcm93X21lcmdlLmMgYi9hZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jCmluZGV4IDkzZDM1MzIuLjRhOGU0NzYgMTAwNjQ0Ci0tLSBhL2FnZW50L2hlbHBlcnMvcm93X21lcmdlLmMKKysrIGIvYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYwpAQCAtMSw0ICsxLDUgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgpAQCAtMTEsNiArMTIsMTIgQEAKICNpbmNsdWRlIDxzdHJpbmdzLmg+CiAjZW5kaWYKIAorbmV0c25tcF9mZWF0dXJlX3Byb3ZpZGUocm93X21lcmdlKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHJvd19tZXJnZSwgcm93X21lcmdlX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihyb3dfbWVyZ2VfYWxsLCBtaWJfaGVscGVycykKKworCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUk9XX01FUkdFCiAvKiogQGRlZmdyb3VwIHJvd19tZXJnZSByb3dfbWVyZ2UKICAqICBDYWxscyBzdWIgaGFuZGxlcnMgd2l0aCByZXF1ZXN0IGZvciBvbmUgcm93IGF0IGEgdGltZS4KICAqICBAaW5ncm91cCB1dGlsaXRpZXMKQEAgLTM4LDYgKzQ1LDggQEAKIAogLyoqIGZ1bmN0aW9uYWxseSB0aGUgc2FtZSBhcyBjYWxsaW5nIG5ldHNubXBfcmVnaXN0ZXJfaGFuZGxlcigpIGJ1dCBhbHNvCiAgKiBpbmplY3RzIGEgcm93X21lcmdlIGhhbmRsZXIgYXQgdGhlIHNhbWUgdGltZSBmb3IgeW91LiAqLworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHJlZ2lzdGVyX3Jvd19tZXJnZSwgcm93X21lcmdlX2FsbCkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUdJU1RFUl9ST1dfTUVSR0UKIGludAogbmV0c25tcF9yZWdpc3Rlcl9yb3dfbWVyZ2UobmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnaW5mbykKIHsKQEAgLTQ1LDYgKzU0LDcgQEAKIAkJICAgIG5ldHNubXBfZ2V0X3Jvd19tZXJnZV9oYW5kbGVyKHJlZ2luZm8tPnJvb3RvaWRfbGVuKzEpKTsKICAgICByZXR1cm4gbmV0c25tcF9yZWdpc3Rlcl9oYW5kbGVyKHJlZ2luZm8pOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUkVHSVNURVJfUk9XX01FUkdFICovCiAKIHN0YXRpYyB2b2lkCiBfcm1fc3RhdHVzX2ZyZWUodm9pZCAqbWVtKQpAQCAtMzYyLDUgKzM3MiwxMCBAQAogICAgIG5ldHNubXBfcmVnaXN0ZXJfaGFuZGxlcl9ieV9uYW1lKCJyb3dfbWVyZ2UiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfZ2V0X3Jvd19tZXJnZV9oYW5kbGVyKC0xKSk7CiB9CisjZWxzZSAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JPV19NRVJHRSAqLworbmV0c25tcF9mZWF0dXJlX3VudXNlZChyb3dfbWVyZ2UpOworI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUk9XX01FUkdFICovCisKKwogLyoqICBAfSAqLwogCmRpZmYgLS1naXQgYS9hZ2VudC9oZWxwZXJzL3NjYWxhci5jIGIvYWdlbnQvaGVscGVycy9zY2FsYXIuYwppbmRleCBiNzM0YzA0Li43YTRjOWUwIDEwMDY0NAotLS0gYS9hZ2VudC9oZWxwZXJzL3NjYWxhci5jCisrKyBiL2FnZW50L2hlbHBlcnMvc2NhbGFyLmMKQEAgLTE2Miw2ICsxNjIsNyBAQAogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CiAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMjoKICAgICBjYXNlIE1PREVfU0VUX0FDVElPTjoKQEAgLTE4MCw2ICsxODEsNyBAQAogICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICAgfQogICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgIGNhc2UgTU9ERV9HRVRORVhUOgogICAgICAgICByZWdpbmZvLT5yb290b2lkW3JlZ2luZm8tPnJvb3RvaWRfbGVuKytdID0gMDsKZGlmZiAtLWdpdCBhL2FnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMgYi9hZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jCmluZGV4IDA5Y2VlMWEuLjZiN2YwOTggMTAwNjQ0Ci0tLSBhL2FnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMKKysrIGIvYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYwpAQCAtMTUsNiArMTUsMTcgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oPgogCitzdGF0aWMgbmV0c25tcF9zY2FsYXJfZ3JvdXAqCitjbG9uZV9zY2FsYXJfZ3JvdXAobmV0c25tcF9zY2FsYXJfZ3JvdXAqIHNyYykKK3sKKyAgbmV0c25tcF9zY2FsYXJfZ3JvdXAgKnQgPSBTTk1QX01BTExPQ19UWVBFREVGKG5ldHNubXBfc2NhbGFyX2dyb3VwKTsKKyAgaWYodCAhPSBOVUxMKSB7CisgICAgdC0+bGJvdW5kID0gc3JjLT5sYm91bmQ7CisgICAgdC0+dWJvdW5kID0gc3JjLT51Ym91bmQ7CisgIH0KKyAgcmV0dXJuIHQ7Cit9CisKIC8qKiBAZGVmZ3JvdXAgc2NhbGFyX2dyb3VwX2dyb3VwIHNjYWxhcl9ncm91cAogICogIFByb2Nlc3MgZ3JvdXBzIG9mIHNjYWxhcnMuCiAgKiAgQGluZ3JvdXAgbGVhZgpAQCAtMzgsNiArNDksOCBAQAogCSAgICBzZ3JvdXAtPmxib3VuZCA9IGZpcnN0OwogCSAgICBzZ3JvdXAtPnVib3VuZCA9IGxhc3Q7CiAgICAgICAgICAgICByZXQtPm15dm9pZCA9ICh2b2lkICopc2dyb3VwOworICAgICAgICAgICAgcmV0LT5kYXRhX2ZyZWUgPSBmcmVlOworICAgICAgICAgICAgcmV0LT5kYXRhX2Nsb25lID0gKHZvaWQgKigqKSh2b2lkICopKWNsb25lX3NjYWxhcl9ncm91cDsKIAl9CiAgICAgfQogICAgIHJldHVybiByZXQ7CkBAIC05NiwxMiArMTA5LDE0IEBACiAgICAgICAgIHJldCA9IFNOTVBfTk9TVUNIT0JKRUNUOwogICAgICAgICAvKiBGYWxsdGhyb3VnaCAqLwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CiAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMjoKICAgICBjYXNlIE1PREVfU0VUX0FDVElPTjoKICAgICBjYXNlIE1PREVfU0VUX0NPTU1JVDoKICAgICBjYXNlIE1PREVfU0VUX1VORE86CiAgICAgY2FzZSBNT0RFX1NFVF9GUkVFOgorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICBpZiAoY21wICE9IDAgfHwKICAgICAgICAgICAgIHJlcXVlc3RzLT5yZXF1ZXN0dmItPm5hbWVfbGVuZ3RoIDw9IHJlZ2luZm8tPnJvb3RvaWRfbGVuKSB7CiAJICAgIC8qCmRpZmYgLS1naXQgYS9hZ2VudC9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5jIGIvYWdlbnQvaGVscGVycy9zbm1wX2dldF9zdGF0aXN0aWMuYwppbmRleCBiOWRhYzc2Li5lZmFjMmFjIDEwMDY0NAotLS0gYS9hZ2VudC9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5jCisrKyBiL2FnZW50L2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmMKQEAgLTEsOSArMSwxOSBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmg+CiAKK25ldHNubXBfZmVhdHVyZV9wcm92aWRlKGhlbHBlcl9zdGF0aXN0aWNzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGhlbHBlcl9zdGF0aXN0aWNzLCBtaWJfaGVscGVycykKKworI2lmZGVmIE5FVFNOTVBfRkVBVFVSRV9SRVFVSVJFX0hFTFBFUl9TVEFUSVNUSUNTCisvKiBpZiB3ZSdyZSBub3QgbmVlZGVkLCB0aGVuIG5laXRoZXIgaXMgdGhpcyAqLworbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoc3RhdGlzdGljcykKKyNlbmRpZgorCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSEVMUEVSX1NUQVRJU1RJQ1MKIHN0YXRpYyBpbnQKIG5ldHNubXBfZ2V0X3N0YXRpc3RpY19oZWxwZXJfaGFuZGxlcihuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKnJlZ2luZm8sCkBAIC00NiwzICs1Niw2IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2dldF9zdGF0aXN0aWNfaGFuZGxlcihiZWdpbiAtIHN0YXJ0KSk7CiAgICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfc2NhbGFyX2dyb3VwKHJlZ2luZm8sIHN0YXJ0LCBzdGFydCArIChlbmQgLSBiZWdpbikpOwogfQorI2Vsc2UgLyogIU5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSEVMUEVSX0dFVF9TVEFUSVNUSUNTICovCituZXRzbm1wX2ZlYXR1cmVfdW51c2VkKGhlbHBlcl9zdGF0aXN0aWNzKTsKKyNlbmRpZiAvKiAhTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9IRUxQRVJfR0VUX1NUQVRJU1RJQ1MgKi8KZGlmZiAtLWdpdCBhL2FnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYyBiL2FnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYwppbmRleCBjOTk4MzYzLi41ZGExNzk2IDEwMDY0NAotLS0gYS9hZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMKKysrIGIvYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jCkBAIC0xLDI0ICsxLDI1IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CiAKKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KIAotI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L3N0YXNoX2NhY2hlLmg+CituZXRzbm1wX2ZlYXR1cmVfcHJvdmlkZShzdGFzaF9jYWNoZSkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzdGFzaF9jYWNoZSwgbWliX2hlbHBlcnMpCisjaWZkZWYgTkVUU05NUF9GRUFUVVJFX1JFUVVJUkVfU1RBU0hfQ0FDSEUKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKG9pZF9zdGFzaCkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKG9pZF9zdGFzaF9pdGVyYXRlKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUob2lkX3N0YXNoX2dldF9kYXRhKQorI2VuZGlmCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TVEFTSF9DQUNIRQogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L3N0YXNoX3RvX25leHQuaD4KIAorI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L3N0YXNoX2NhY2hlLmg+CisKIGV4dGVybiBOZXRzbm1wQ2FjaGVMb2FkIF9uZXRzbm1wX3N0YXNoX2NhY2hlX2xvYWQ7CiBleHRlcm4gTmV0c25tcENhY2hlRnJlZSBfbmV0c25tcF9zdGFzaF9jYWNoZV9mcmVlOwogIAotI2lmZGVmIEhBVkVfRE1BTExPQ19ICi1zdGF0aWMgdm9pZCBmcmVlX3dyYXBwZXIodm9pZCAqIHApCi17Ci0gICAgZnJlZShwKTsKLX0KLSNlbHNlCi0jZGVmaW5lIGZyZWVfd3JhcHBlciBmcmVlCi0jZW5kaWYKLQogLyoqIEBkZWZncm91cCBzdGFzaF9jYWNoZSBzdGFzaF9jYWNoZQogICogIEF1dG9tYXRpY2FsbHkgY2FjaGVzIGRhdGEgZm9yIGNlcnRhaW4gaGFuZGxlcnMuCiAgKiAgVGhpcyBoYW5kbGVyIGNhY2hlcyBkYXRhIGluIGFuIG9wdGltaXplZCB3YXkgd2hpY2ggbWF5IGFsbGV2aWF0ZQpAQCAtNzEsNyArNzIsNyBAQAogICAgIH0KIAogICAgIGhhbmRsZXItPm15dm9pZCA9IGNpbmZvOwotICAgIGhhbmRsZXItPmRhdGFfZnJlZSA9ICZmcmVlX3dyYXBwZXI7CisgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyX293bnNfY2FjaGUoaGFuZGxlcik7CiAKICAgICByZXR1cm4gaGFuZGxlcjsKIH0KQEAgLTI0NiwzICsyNDcsNiBAQAogfQogLyoqICBAfSAqLwogCisjZWxzZSAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NUQVNIX0NBQ0hFICovCituZXRzbm1wX2ZlYXR1cmVfdW51c2VkKHN0YXNoX2NhY2hlKTsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NUQVNIX0NBQ0hFICovCmRpZmYgLS1naXQgYS9hZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYyBiL2FnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jCmluZGV4IGY2NzllMDQuLmQ3YmFmZmQgMTAwNjQ0Ci0tLSBhL2FnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jCisrKyBiL2FnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jCkBAIC0xLDggKzEsMTggQEAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KIAorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCituZXRzbm1wX2ZlYXR1cmVfcHJvdmlkZShzdGFzaF90b19uZXh0KQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHN0YXNoX3RvX25leHQsIG1pYl9oZWxwZXJzKQorCisjaWZkZWYgTkVUU05NUF9GRUFUVVJFX1JFUVVJUkVfU1RBU0hfVE9fTkVYVAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUob2lkX3N0YXNoKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUob2lkX3N0YXNoX2FkZF9kYXRhKQorI2VuZGlmCisKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TVEFTSF9UT19ORVhUCiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvc3Rhc2hfdG9fbmV4dC5oPgogCiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvc3Rhc2hfY2FjaGUuaD4KQEAgLTExNCwzICsxMjQsNiBAQAogfQogLyoqICBAfSAqLwogCisjZWxzZSAgLyogISBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NUQVNIX1RPX05FWFQgKi8KK25ldHNubXBfZmVhdHVyZV91bnVzZWQoc3Rhc2hfdG9fbmV4dCk7CisjZW5kaWYgLyogISBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NUQVNIX1RPX05FWFQgKi8KZGlmZiAtLWdpdCBhL2FnZW50L2hlbHBlcnMvdGFibGUuYyBiL2FnZW50L2hlbHBlcnMvdGFibGUuYwppbmRleCA5ZWIwMTMyLi44ODJlODRjIDEwMDY0NAotLS0gYS9hZ2VudC9oZWxwZXJzL3RhYmxlLmMKKysrIGIvYWdlbnQvaGVscGVycy90YWJsZS5jCkBAIC0yMSwxMSArMjEsMTYgQEAKIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgogCisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAKICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC90YWJsZS5oPgogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUob2lkX3N0YXNoKQorI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKwogI2lmIEhBVkVfU1RSSU5HX0gKICNpbmNsdWRlIDxzdHJpbmcuaD4KICNlbHNlCkBAIC0zNCw2ICszOSwxMyBAQAogCiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfYWxsLCBtaWJfaGVscGVycykKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRhYmxlX2J1aWxkX3Jlc3VsdCwgdGFibGVfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRhYmxlX2dldF9vcl9jcmVhdGVfcm93X3N0YXNoLCB0YWJsZV9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YocmVnaXN0cmF0aW9uX293bnNfdGFibGVfaW5mbywgdGFibGVfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRhYmxlX3NwYXJzZSwgdGFibGVfYWxsKQorCiBzdGF0aWMgdm9pZCAgICAgdGFibGVfaGVscGVyX2NsZWFudXAobmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm8gKnJlcWluZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9yZXF1ZXN0X2luZm8gKnJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXR1cyk7CkBAIC0xMDUsNiArMTE3LDMxIEBACiAgICAgcmV0dXJuIHJldDsKIH0KIAorLyoqIENvbmZpZ3VyZXMgYSBoYW5kbGVyIHN1Y2ggdGhhdCB0YWJsZSByZWdpc3RyYXRpb24gaW5mb3JtYXRpb24gaXMgZnJlZWQgYnkKKyAqICBuZXRzbm1wX2hhbmRsZXJfZnJlZSgpLiBTaG91bGQgb25seSBiZSBjYWxsZWQgaWYgaGFuZGxlci0+bXl2b2lkIHBvaW50cyB0bworICogIGFuIG9iamVjdCBvZiB0eXBlIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8uCisgKi8KK3ZvaWQgbmV0c25tcF9oYW5kbGVyX293bnNfdGFibGVfaW5mbyhuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyKQoreworICAgIG5ldHNubXBfYXNzZXJ0KGhhbmRsZXIpOworICAgIG5ldHNubXBfYXNzZXJ0KGhhbmRsZXItPm15dm9pZCk7CisgICAgaGFuZGxlci0+ZGF0YV9jbG9uZQorCT0gKHZvaWQgKigqKSh2b2lkICopKSBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX2Nsb25lOworICAgIGhhbmRsZXItPmRhdGFfZnJlZQorCT0gKHZvaWQgKCopKHZvaWQgKikpIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fZnJlZTsKK30KKworLyoqIENvbmZpZ3VyZXMgYSBoYW5kbGVyIHN1Y2ggdGhhdCB0YWJsZSByZWdpc3RyYXRpb24gaW5mb3JtYXRpb24gaXMgZnJlZWQgYnkKKyAqICBuZXRzbm1wX2hhbmRsZXJfZnJlZSgpLiBTaG91bGQgb25seSBiZSBjYWxsZWQgaWYgcmVnLT5oYW5kbGVyLT5teXZvaWQKKyAqICBwb2ludHMgdG8gYW4gb2JqZWN0IG9mIHR5cGUgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mby4KKyAqLworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JFR0lTVFJBVElPTl9PV05TX1RBQkxFX0lORk8KK3ZvaWQgbmV0c25tcF9yZWdpc3RyYXRpb25fb3duc190YWJsZV9pbmZvKG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKnJlZykKK3sKKyAgICBpZiAocmVnKQorICAgICAgICBuZXRzbm1wX2hhbmRsZXJfb3duc190YWJsZV9pbmZvKHJlZy0+aGFuZGxlcik7Cit9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUdJU1RSQVRJT05fT1dOU19UQUJMRV9JTkZPICovCiAKIC8qKiBjcmVhdGVzIGEgdGFibGUgaGFuZGxlciBnaXZlbiB0aGUgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyBvYmplY3QsCiAgKiAgaW5zZXJ0cyBpdCBpbnRvIHRoZSByZXF1ZXN0IGNoYWluIGFuZCB0aGVuIGNhbGxzCkBAIC0xMjYsNyArMTYzLDYgQEAKIHsKICAgICAvKiBMb2NhdGUgInRoaXMiIHJlZ2luZm8gKi8KICAgICAvKiBTTk1QX0ZSRUUocmVnaW5mby0+bXl2b2lkKTsgKi8KLSAgICAvKiByZWdpbmZvLT5teXZvaWQgPSBOVUxMOyAqLwogICAgIHJldHVybiBuZXRzbm1wX3VucmVnaXN0ZXJfaGFuZGxlcihyZWdpbmZvKTsKIH0KIApAQCAtMjEyLDE1ICsyNDgsMjAgQEAKICAgICAgKiBpbiB0aGUgbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm8uIAogICAgICAqLwogICAgIGlmIChuZXRzbm1wX2FnZW50X2dldF9saXN0X2RhdGEocmVxaW5mbywgaGFuZGxlci0+bmV4dC0+aGFuZGxlcl9uYW1lKSkgeworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgaWYgKE1PREVfSVNfU0VUKHJlcWluZm8tPm1vZGUpKSB7CiAgICAgICAgICAgICByZXR1cm4gbmV0c25tcF9jYWxsX25leHRfaGFuZGxlcihoYW5kbGVyLCByZWdpbmZvLCByZXFpbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdHMpOwogICAgICAgICB9IGVsc2UgeworI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogLyoqIFhYWC1ya3M6IG1lbW9yeSBsZWFrLiBhZGQgY2xlYW51cCBoYW5kbGVyPyAqLwogICAgICAgICAgICAgbmV0c25tcF9mcmVlX2FnZW50X2RhdGFfc2V0cyhyZXFpbmZvKTsKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgIH0KKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICB9CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgaWYgKCBNT0RFX0lTX1NFVChyZXFpbmZvLT5tb2RlKSAmJgogICAgICAgICAgKHJlcWluZm8tPm1vZGUgIT0gTU9ERV9TRVRfUkVTRVJWRTEpKSB7CiAgICAgICAgIC8qCkBAIC0yMzYsNiArMjc3LDcgQEAKICAgICAgICAgICAgIG5lZWRfcHJvY2Vzc2luZyA9IDE7CiAgICAgfQogICAgIGVsc2UgeworI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAvKgogICAgICAgICAgKiBmb3IgR0VUUywgb25seSBjb250aW51ZSBpZiB3ZSBoYXZlIGF0IGxlYXN0IG9uZSB2YWxpZCByZXF1ZXN0LgogICAgICAgICAgKiBmb3IgUkVTRVJWRTEsIG9ubHkgY29udGludWUgaWYgd2UgaGF2ZSBpbmRleGVzIGZvciBhbGwgcmVxdWVzdHMuCkBAIC0yNzEsNiArMzEzLDcgQEAKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgIGlmIChyZXFpbmZvLT5tb2RlID09IE1PREVfU0VUX1JFU0VSVkUxKSB7CiAgICAgICAgICAgICBERUJVR0lGKCJoZWxwZXI6dGFibGU6c2V0IikgewogICAgICAgICAgICAgICAgIHVfY2hhciAgICAgICAgICpidWYgPSBOVUxMOwpAQCAtMjk4LDYgKzM0MSw3IEBACiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICAgICAgICAgLyoKICAgICAgICAgICogY2hlY2sgdG8gbWFrZSBzdXJlIGl0cyBpbiB0YWJsZSByYW5nZSAKQEAgLTM1MywxMCArMzk3LDEzIEBACiAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICogIFJlamVjdCByZXF1ZXN0cyBvZiB0aGUgZm9ybSAnbXlUYWJsZS5OJyAgIChOICE9IDEpCiAgICAgICAgICAgICAgKi8KKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgICAgICBpZiAocmVxaW5mby0+bW9kZSA9PSBNT0RFX1NFVF9SRVNFUlZFMSkKICAgICAgICAgICAgICAgICB0YWJsZV9oZWxwZXJfY2xlYW51cChyZXFpbmZvLCByZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBfRVJSX05PVFdSSVRBQkxFKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHJlcWluZm8tPm1vZGUgPT0gTU9ERV9HRVQpCisgICAgICAgICAgICBlbHNlCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgICAgICAgICBpZiAocmVxaW5mby0+bW9kZSA9PSBNT0RFX0dFVCkKICAgICAgICAgICAgICAgICB0YWJsZV9oZWxwZXJfY2xlYW51cChyZXFpbmZvLCByZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBfTk9TVUNIT0JKRUNUKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNDI4LDEwICs0NzUsMTIgQEAKICAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICAqICBSZWplY3QgcmVxdWVzdHMgb2YgdGhlIGZvcm0gJ215RW50cnkuTicgICAoaW52YWxpZCBOKQogICAgICAgICAgICAgICAgICAqLworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgICAgICAgICBpZiAocmVxaW5mby0+bW9kZSA9PSBNT0RFX1NFVF9SRVNFUlZFMSkKICAgICAgICAgICAgICAgICAgICAgdGFibGVfaGVscGVyX2NsZWFudXAocmVxaW5mbywgcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU05NUF9FUlJfTk9UV1JJVEFCTEUpOwogICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlcWluZm8tPm1vZGUgPT0gTU9ERV9HRVQpCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICAgICAgICAgICAgIHRhYmxlX2hlbHBlcl9jbGVhbnVwKHJlcWluZm8sIHJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBfTk9TVUNIT0JKRUNUKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQ5OSw4ICs1NDgsMTAgQEAKICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgaWYgKHJlcWluZm8tPm1vZGUgPT0gTU9ERV9HRVQgKSB7CiAgICAgICAgICAgICAgICAgdGFibGVfaGVscGVyX2NsZWFudXAocmVxaW5mbywgcmVxdWVzdCwgU05NUF9OT1NVQ0hPQkpFQ1QpOworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVxaW5mby0+bW9kZSA9PSBNT0RFX1NFVF9SRVNFUlZFMSApIHsKICAgICAgICAgICAgICAgICB0YWJsZV9oZWxwZXJfY2xlYW51cChyZXFpbmZvLCByZXF1ZXN0LCBTTk1QX0VSUl9OT1RXUklUQUJMRSk7CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtNjIzLDYgKzY3NCw3IEBACiAgICAgICAgICAgICBERUJVR01TR1RMKCgiaGVscGVyOnRhYmxlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICJpbnZhbGlkIGluZGV4KGVzKSBmb3IgdGFibGUgLSBza2lwcGluZ1xuIikpOwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAgICAgaWYgKCBNT0RFX0lTX1NFVChyZXFpbmZvLT5tb2RlKSApIHsKICAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICAqIG5vIHBvaW50IGluIGNvbnRpbnVpbmcgd2l0aG91dCBpbmRleGVzIGZvciBzZXQuCkBAIC02MzUsNiArNjg3LDcgQEAKICAgICAgICAgICAgICAgICBuZWVkX3Byb2Nlc3NpbmcgPSAwOyAvKiBkb24ndCBjYWxsIG5leHQgaGFuZGxlciAqLwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAgICAgdGFibGVfaGVscGVyX2NsZWFudXAocmVxaW5mbywgcmVxdWVzdCwgU05NUF9OT1NVQ0hJTlNUQU5DRSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtNjQzLDcgKzY5Niw5IEBACiAgICAgICAgICsrbmVlZF9wcm9jZXNzaW5nOwogCiAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZvciBlYWNoIHJlcXVlc3QgKi8KKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgfQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAgICAgLyoKICAgICAgKiBiYWlsIGlmIHRoZXJlIGlzIG5vdGhpbmcgZm9yIG91ciBjaGlsZCBoYW5kbGVycwpAQCAtNzU2LDYgKzgxMSw3IEBACiAKIC8qKiBjcmVhdGUgc3BhcnNlIHRhYmxlIGhhbmRsZXIKICAqLworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX1NQQVJTRQogbmV0c25tcF9taWJfaGFuZGxlciAqCiBuZXRzbm1wX3NwYXJzZV90YWJsZV9oYW5kbGVyX2dldCh2b2lkKQogewpAQCAtODAyLDggKzg1OCwxMCBAQAogICAgIC8qKiBib3RoIGhhbmRsZXJzIG5vdyBpbiByZWdpbmZvLCBzbyBub3RoaW5nIHRvIGRvIG9uIGVycm9yICovCiAgICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfaGFuZGxlcihyZWdpbmZvKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX1NQQVJTRSAqLwogCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9CVUlMRF9SRVNVTFQKIC8qKiBCdWlsZHMgdGhlIHJlc3VsdCB0byBiZSByZXR1cm5lZCB0byB0aGUgYWdlbnQgZ2l2ZW4gdGhlIHRhYmxlIGluZm9ybWF0aW9uLgogICogIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHJldHVybiByZXN1bHRzIGZyb20gbG93ZWwgbGV2ZWwgaGFuZGxlcnMgdG8KICAqICB0aGUgYWdlbnQuICBJdCB0YWtlcyBjYXJlIG9mIGJ1aWxkaW5nIHRoZSBwcm9wZXIgcmVzdWx0aW5nIG9pZApAQCAtODM3LDcgKzg5NSw2IEBACiAgICAgcmV0dXJuIFNOTVBFUlJfU1VDQ0VTUzsKIH0KIAotCiAvKiogZ2l2ZW4gYSByZWdpc3RyYXRpb24gaW5mbyBvYmplY3QsIGEgcmVxdWVzdCBvYmplY3QgYW5kIHRoZSB0YWJsZQogICogIGluZm8gb2JqZWN0IGl0IGJ1aWxkcyB0aGUgcmVxdWVzdC0+cmVxdWVzdHZiLT5uYW1lIG9pZCBmcm9tIHRoZQogICogIGluZGV4IHZhbHVlcyBhbmQgY29sdW1uIGluZm9ybWF0aW9uIGZvdW5kIGluIHRoZSB0YWJsZV9pbmZvCkBAIC04NzQsNiArOTMxLDcgQEAKIAogICAgIHJldHVybiBTTk1QRVJSX1NVQ0NFU1M7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9CVUlMRF9SRVNVTFQgKi8KIAogLyoqIGdpdmVuIGEgcmVnaXN0cmF0aW9uIGluZm8gb2JqZWN0LCBhIHJlcXVlc3Qgb2JqZWN0IGFuZCB0aGUgdGFibGUKICAqICBpbmZvIG9iamVjdCBpdCBidWlsZHMgdGhlIHJlcXVlc3QtPnJlcXVlc3R2Yi0+bmFtZSBvaWQgZnJvbSB0aGUKQEAgLTk5Miw2ICsxMDUwLDIyIEBACiAgICAgcmV0dXJuIDA7CiB9CiAKK25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKgorbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19jbG9uZShuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICp0cmkpCit7CisgICAgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqY29weTsKKyAgICBjb3B5ID0gbWFsbG9jKHNpemVvZigqY29weSkpOworICAgIGlmIChjb3B5KSB7CisgICAgICAgICpjb3B5ID0gKnRyaTsKKyAgICAgICAgY29weS0+aW5kZXhlcyA9IHNubXBfY2xvbmVfdmFyYmluZCh0cmktPmluZGV4ZXMpOworICAgICAgICBpZiAoIWNvcHktPmluZGV4ZXMpIHsKKyAgICAgICAgICAgIGZyZWUoY29weSk7CisgICAgICAgICAgICBjb3B5ID0gTlVMTDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gY29weTsKK30KKwogdm9pZAogbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19mcmVlKG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRyaSkKIHsKQEAgLTExNTAsNiArMTIyNCw3IEBACiAgICAgdmFfZW5kKGRlYnVnYXJncyk7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiBzdGF0aWMgdm9pZAogX3Jvd19zdGFzaF9kYXRhX2xpc3RfZnJlZSh2b2lkICpwdHIpIHsKICAgICBuZXRzbm1wX29pZF9zdGFzaF9ub2RlICoqdG1wID0gKG5ldHNubXBfb2lkX3N0YXNoX25vZGUgKiopcHRyOwpAQCAtMTE1Nyw2ICsxMjMyLDcgQEAKICAgICBmcmVlKHB0cik7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9HRVRfT1JfQ1JFQVRFX1JPV19TVEFTSAogLyoqIHJldHVybnMgYSByb3ctd2lkZSBwbGFjZSB0byBzdG9yZSBkYXRhIGluLgogICAgIEB0b2RvIFRoaXMgZnVuY3Rpb24gd2lsbCBsaWtlbHkgY2hhbmdlIHRvIGFkZCBmcmVlIHBvaW50ZXIgZnVuY3Rpb25zLiAqLwogbmV0c25tcF9vaWRfc3Rhc2hfbm9kZSAqKgpAQCAtMTE4Myw2ICsxMjU5LDggQEAKICAgICB9CiAgICAgcmV0dXJuIHN0YXNocDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0dFVF9PUl9DUkVBVEVfUk9XX1NUQVNIICovCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKIC8qCiAgKiBhZHZhbmNlIHRoZSB0YWJsZSBpbmZvIGNvbG51bSB0byB0aGUgbmV4dCBjb2x1bW4sIG9yIDAgaWYgdGhlcmUgYXJlIG5vIG1vcmUKZGlmZiAtLWdpdCBhL2FnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyBiL2FnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYwppbmRleCBiOTk4OTI5Li43Yzk4YWFlIDEwMDY0NAotLS0gYS9hZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMKKysrIGIvYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jCkBAIC00LDYgKzQsNyBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgpAQCAtMjAsNiArMjEsMTUgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRhYmxlX2FycmF5X2FsbCwgbWliX2hlbHBlcnMpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0YWJsZV9hcnJheV9yZWdpc3Rlcix0YWJsZV9hcnJheV9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfYXJyYXlfZmluZF90YWJsZV9hcnJheV9oYW5kbGVyLHRhYmxlX2FycmF5X2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0YWJsZV9hcnJheV9leHRyYWN0X2FycmF5X2NvbnRleHQsdGFibGVfYXJyYXlfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRhYmxlX2FycmF5X2NoZWNrX3Jvd19zdGF0dXMsdGFibGVfYXJyYXlfYWxsKQorCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfQ09OVEFJTkVSCisKIC8qCiAgKiBzbm1wLmg6I2RlZmluZSBTTk1QX01TR19JTlRFUk5BTF9TRVRfQkVHSU4gICAgICAgIC0xIAogICogc25tcC5oOiNkZWZpbmUgU05NUF9NU0dfSU5URVJOQUxfU0VUX1JFU0VSVkUxICAgICAwIApAQCAtMTk0LDYgKzIwNCw3IEBACiAgICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfdGFibGUocmVnaW5mbywgdGFicmVnKTsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0FSUkFZX1JFR0lTVEVSCiBpbnQKIG5ldHNubXBfdGFibGVfYXJyYXlfcmVnaXN0ZXIobmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqdGFicmVnLApAQCAtMjA3LDggKzIxOCwxMCBAQAogICAgIHJldHVybiBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lcl9yZWdpc3RlcihyZWdpbmZvLCB0YWJyZWcsIGNiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXIsIGdyb3VwX3Jvd3MpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfQVJSQVlfUkVHSVNURVIgKi8KIAogLyoqIGZpbmQgdGhlIGhhbmRsZXIgZm9yIHRoZSB0YWJsZV9hcnJheSBoZWxwZXIuICovCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfQVJSQVlfRklORF9UQUJMRV9BUlJBWV9IQU5ETEVSCiBuZXRzbm1wX21pYl9oYW5kbGVyICoKIG5ldHNubXBfZmluZF90YWJsZV9hcnJheV9oYW5kbGVyKG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKnJlZ2luZm8pCiB7CkBAIC0yMjQsMTUgKzIzNywxOSBAQAogCiAgICAgcmV0dXJuIG1oOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfQVJSQVlfRklORF9UQUJMRV9BUlJBWV9IQU5ETEVSICovCiAKIC8qKiBmaW5kIHRoZSBjb250ZXh0IGRhdGEgdXNlZCBieSB0aGUgdGFibGVfYXJyYXkgaGVscGVyICovCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfQVJSQVlfRVhUUkFDVF9BUlJBWV9DT05URVhUCiBuZXRzbm1wX2NvbnRhaW5lciAgICAgICoKIG5ldHNubXBfZXh0cmFjdF9hcnJheV9jb250ZXh0KG5ldHNubXBfcmVxdWVzdF9pbmZvICpyZXF1ZXN0KQogewogICAgIHJldHVybiAobmV0c25tcF9jb250YWluZXIqKW5ldHNubXBfcmVxdWVzdF9nZXRfbGlzdF9kYXRhKHJlcXVlc3QsIFRBQkxFX0FSUkFZX05BTUUpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfQVJSQVlfRVhUUkFDVF9BUlJBWV9DT05URVhUICovCiAKIC8qKiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0byB2YWxpZGF0ZSBSb3dTdGF0dXMgdHJhbnNpdGlvbnMuICovCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfQVJSQVlfQ0hFQ0tfUk9XX1NUQVRVUwogaW50CiBuZXRzbm1wX3RhYmxlX2FycmF5X2NoZWNrX3Jvd19zdGF0dXMobmV0c25tcF90YWJsZV9hcnJheV9jYWxsYmFja3MgKmNiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfcmVxdWVzdF9ncm91cCAqYWcsCkBAIC0zMTEsNiArMzI4LDcgQEAKIAogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfQVJSQVlfQ0hFQ0tfUk9XX1NUQVRVUyAqLwogCiAvKiogQH0gKi8KIApAQCAtMzQ1LDM3ICszNjMsMTMgQEAKIC8qCiAgKiBjb250ZXh0IGluZm8gZm9yIFNFVCByZXF1ZXN0cwogICovCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogdHlwZWRlZiBzdHJ1Y3Qgc2V0X2NvbnRleHRfcyB7CiAgICAgbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm8gKmFndHJlcV9pbmZvOwogICAgIHRhYmxlX2NvbnRhaW5lcl9kYXRhICp0YWQ7CiAgICAgaW50ICAgICAgICAgICAgIHN0YXR1czsKIH0gc2V0X2NvbnRleHQ7Ci0KLXN0YXRpYyB2b2lkCi1yZWxlYXNlX25ldHNubXBfcmVxdWVzdF9ncm91cChuZXRzbm1wX2luZGV4ICpnLCB2b2lkICp2KQotewotICAgIG5ldHNubXBfcmVxdWVzdF9ncm91cF9pdGVtICp0bXA7Ci0gICAgbmV0c25tcF9yZXF1ZXN0X2dyb3VwICpncm91cCA9IChuZXRzbm1wX3JlcXVlc3RfZ3JvdXAgKikgZzsKLQotICAgIGlmICghZykKLSAgICAgICAgcmV0dXJuOwotICAgIHdoaWxlIChncm91cC0+bGlzdCkgewotICAgICAgICB0bXAgPSBncm91cC0+bGlzdDsKLSAgICAgICAgZ3JvdXAtPmxpc3QgPSB0bXAtPm5leHQ7Ci0gICAgICAgIGZyZWUodG1wKTsKLSAgICB9Ci0KLSAgICBmcmVlKGdyb3VwKTsKLX0KLQotc3RhdGljIHZvaWQKLXJlbGVhc2VfbmV0c25tcF9yZXF1ZXN0X2dyb3Vwcyh2b2lkICp2cCkKLXsKLSAgICBuZXRzbm1wX2NvbnRhaW5lciAqYyA9IChuZXRzbm1wX2NvbnRhaW5lciopdnA7Ci0gICAgQ09OVEFJTkVSX0ZPUl9FQUNIKGMsIChuZXRzbm1wX2NvbnRhaW5lcl9vYmpfZnVuYyopCi0gICAgICAgICAgICAgICAgICAgICAgIHJlbGVhc2VfbmV0c25tcF9yZXF1ZXN0X2dyb3VwLCBOVUxMKTsKLSAgICBDT05UQUlORVJfRlJFRShjKTsKLX0KKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogdm9pZAogYnVpbGRfbmV3X29pZChuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWdpbmZvLApAQCAtNjAwLDEwICs1OTQsMTIgQEAKICAgICAgICAgcm93ID0gZy0+ZXhpc3Rpbmdfcm93ID0gKG5ldHNubXBfaW5kZXgqKUNPTlRBSU5FUl9GSU5EKHRhZC0+dGFibGUsICZpbmRleCk7CiAgICAgICAgIGlmICghZy0+ZXhpc3Rpbmdfcm93KSB7CiAgICAgICAgICAgICBpZiAoIXRhZC0+Y2ItPmNyZWF0ZV9yb3cpIHsKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgICAgICAgICAgaWYoTU9ERV9JU19TRVQoYWd0cmVxX2luZm8tPm1vZGUpKQogICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yKGFndHJlcV9pbmZvLCBjdXJyZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBfRVJSX05PVFdSSVRBQkxFKTsKICAgICAgICAgICAgICAgICBlbHNlCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IoYWd0cmVxX2luZm8sIGN1cnJlbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU05NUF9OT1NVQ0hJTlNUQU5DRSk7CiAgICAgICAgICAgICAgICAgZnJlZShnKTsKQEAgLTYzMiw2ICs2MjgsMzMgQEAKICAgICB9IC8qKiBmb3IoIGN1cnJlbnQgLi4uICkgKi8KIH0KIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKK3N0YXRpYyB2b2lkCityZWxlYXNlX25ldHNubXBfcmVxdWVzdF9ncm91cChuZXRzbm1wX2luZGV4ICpnLCB2b2lkICp2KQoreworICAgIG5ldHNubXBfcmVxdWVzdF9ncm91cF9pdGVtICp0bXA7CisgICAgbmV0c25tcF9yZXF1ZXN0X2dyb3VwICpncm91cCA9IChuZXRzbm1wX3JlcXVlc3RfZ3JvdXAgKikgZzsKKworICAgIGlmICghZykKKyAgICAgICAgcmV0dXJuOworICAgIHdoaWxlIChncm91cC0+bGlzdCkgeworICAgICAgICB0bXAgPSBncm91cC0+bGlzdDsKKyAgICAgICAgZ3JvdXAtPmxpc3QgPSB0bXAtPm5leHQ7CisgICAgICAgIGZyZWUodG1wKTsKKyAgICB9CisKKyAgICBmcmVlKGdyb3VwKTsKK30KKworc3RhdGljIHZvaWQKK3JlbGVhc2VfbmV0c25tcF9yZXF1ZXN0X2dyb3Vwcyh2b2lkICp2cCkKK3sKKyAgICBuZXRzbm1wX2NvbnRhaW5lciAqYyA9IChuZXRzbm1wX2NvbnRhaW5lciopdnA7CisgICAgQ09OVEFJTkVSX0ZPUl9FQUNIKGMsIChuZXRzbm1wX2NvbnRhaW5lcl9vYmpfZnVuYyopCisgICAgICAgICAgICAgICAgICAgICAgIHJlbGVhc2VfbmV0c25tcF9yZXF1ZXN0X2dyb3VwLCBOVUxMKTsKKyAgICBDT05UQUlORVJfRlJFRShjKTsKK30KKwogc3RhdGljIHZvaWQKIHByb2Nlc3Nfc2V0X2dyb3VwKG5ldHNubXBfaW5kZXggKm8sIHZvaWQgKmMpCiB7CkBAIC04MjUsNiArODQ4LDcgQEAKIAogICAgIHJldHVybiBjb250ZXh0LnN0YXR1czsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtODYwLDYgKzg4NCw3IEBACiAgICAgICAgICAgICAgICAgICAgIG1vZGVfbmFtZVthZ3RyZXFfaW5mby0+bW9kZV0pKTsKICAgICB9CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgaWYgKE1PREVfSVNfU0VUKGFndHJlcV9pbmZvLT5tb2RlKSkgewogICAgICAgICAvKgogICAgICAgICAgKiBuZXRzbm1wX211dGV4X2xvY2soJnRhZC0+bG9jayk7CkBAIC04NzAsNiArODk1LDcgQEAKICAgICAgICAgICogbmV0c25tcF9tdXRleF91bmxvY2soJnRhZC0+bG9jayk7CiAgICAgICAgICAqLwogICAgIH0gZWxzZQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICByYyA9IHByb2Nlc3NfZ2V0X3JlcXVlc3RzKHJlZ2luZm8sIGFndHJlcV9pbmZvLCByZXF1ZXN0cywgdGFkKTsKIAogICAgIGlmIChyYyAhPSBTTk1QX0VSUl9OT0VSUk9SKSB7CkBAIC04ODksNCArOTE1LDUgQEAKICAgICAKICAgICByZXR1cm4gcmM7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9DT05UQUlORVIgKi8KIC8qKiBAZW5kY29uZCAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYyBiL2FnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMKaW5kZXggODJjN2YyOS4uMDhlOTc0MSAxMDA2NDQKLS0tIGEvYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYworKysgYi9hZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jCkBAIC00LDYgKzQsNyBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgpAQCAtMjAsNiArMjEsMTcgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaD4KIAorbmV0c25tcF9mZWF0dXJlX3Byb3ZpZGUodGFibGVfY29udGFpbmVyKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRhYmxlX2NvbnRhaW5lciwgdGFibGVfY29udGFpbmVyX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0YWJsZV9jb250YWluZXJfcmVwbGFjZV9yb3csIHRhYmxlX2NvbnRhaW5lcl9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfY29udGFpbmVyX2V4dHJhY3QsIHRhYmxlX2NvbnRhaW5lcl9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfY29udGFpbmVyX21hbmFnZW1lbnQsIHRhYmxlX2NvbnRhaW5lcl9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfY29udGFpbmVyX3Jvd19yZW1vdmUsIHRhYmxlX2NvbnRhaW5lcl9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfY29udGFpbmVyX3Jvd19pbnNlcnQsIHRhYmxlX2NvbnRhaW5lcl9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfY29udGFpbmVyX2FsbCwgbWliX2hlbHBlcnMpCisKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9DT05UQUlORVIKKwogLyoKICAqIHNubXAuaDojZGVmaW5lIFNOTVBfTVNHX0lOVEVSTkFMX1NFVF9CRUdJTiAgICAgICAgLTEgCiAgKiBzbm1wLmg6I2RlZmluZSBTTk1QX01TR19JTlRFUk5BTF9TRVRfUkVTRVJWRTEgICAgIDAgCkBAIC0zNSw2ICs0Nyw5IEBACiAgKi8KIHR5cGVkZWYgc3RydWN0IGNvbnRhaW5lcl90YWJsZV9kYXRhX3MgewogCisgICAgLyoqIE51bWJlciBvZiBoYW5kbGVycyB3aG9zZSBteXZvaWQgcG9pbnRlciBwb2ludHMgdG8gdGhpcyBzdHJ1Y3R1cmUuICovCisgICAgaW50IHJlZmNudDsKKwogICAgLyoqIHJlZ2lzdHJhdGlvbiBpbmZvIGZvciB0aGUgdGFibGUgKi8KICAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICp0YmxyZWdfaW5mbzsKIApAQCAtMTYwLDYgKzE3NSw3IEBACiAgKgogICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfQ09OVEFJTkVSX01BTkFHRU1FTlQKIGNvbnRhaW5lcl90YWJsZV9kYXRhICoKIG5ldHNubXBfdGNvbnRhaW5lcl9jcmVhdGVfdGFibGUoIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2NvbnRhaW5lciAqY29udGFpbmVyLCBsb25nIGZsYWdzICkKQEAgLTIwNCw2ICsyMjAsNyBAQAogICAgIFNOTVBfRlJFRSh0YWJsZSk7CiAgICAgcmV0dXJuOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfQ09OVEFJTkVSX01BTkFHRU1FTlQgKi8KIAogICAgIC8qCiAgICAgICogVGhlIHZhcmlvdXMgc3RhbmRhbG9uZSByb3cgb3BlcmF0aW9uIHJvdXRpbmVzCkBAIC0yMzAsNiArMjQ3LDcgQEAKICAgICByZXR1cm4gTlVMTDsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0NPTlRBSU5FUl9SRVBMQUNFX1JPVwogaW50CiBuZXRzbm1wX3Rjb250YWluZXJfcmVwbGFjZV9yb3coIGNvbnRhaW5lcl90YWJsZV9kYXRhICp0YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9pbmRleCAqb2xkX3JvdywgbmV0c25tcF9pbmRleCAqbmV3X3JvdyApCkBAIC0yNDAsNiArMjU4LDcgQEAKICAgICBuZXRzbm1wX3Rjb250YWluZXJfYWRkX3JvdyggICAgdGFibGUsIG5ld19yb3cgKTsKICAgICByZXR1cm4gMDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0NPTlRBSU5FUl9SRVBMQUNFX1JPVyAqLwogCiAgICAgLyogbmV0c25tcF90Y29udGFpbmVyX3JlbW92ZV9kZWxldGVfcm93KCkgd2lsbCBiZSB0YWJsZS1zcGVjaWZpYyB0b28gKi8KIApAQCAtMjUwLDYgKzI2OSwyMCBAQAogICoKICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KIAorc3RhdGljIGNvbnRhaW5lcl90YWJsZV9kYXRhICoKK25ldHNubXBfY29udGFpbmVyX3RhYmxlX2RhdGFfY2xvbmUoY29udGFpbmVyX3RhYmxlX2RhdGEgKnRhZCkKK3sKKyAgICArK3RhZC0+cmVmY250OworICAgIHJldHVybiB0YWQ7Cit9CisKK3N0YXRpYyB2b2lkCituZXRzbm1wX2NvbnRhaW5lcl90YWJsZV9kYXRhX2ZyZWUoY29udGFpbmVyX3RhYmxlX2RhdGEgKnRhZCkKK3sKKyAgICBpZiAoLS10YWQtPnJlZmNudCA9PSAwKQorCWZyZWUodGFkKTsKK30KKwogLyoqIHJldHVybnMgYSBuZXRzbm1wX21pYl9oYW5kbGVyIG9iamVjdCBmb3IgdGhlIHRhYmxlX2NvbnRhaW5lciBoZWxwZXIgKi8KIG5ldHNubXBfbWliX2hhbmRsZXIgKgogbmV0c25tcF9jb250YWluZXJfdGFibGVfaGFuZGxlcl9nZXQobmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqdGFicmVnLApAQCAtMjc0LDYgKzMwNyw3IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAorICAgIHRhZC0+cmVmY250ID0gMTsKICAgICB0YWQtPnRibHJlZ19pbmZvID0gdGFicmVnOyAgLyogd2UgbmVlZCBpdCB0b28sIGJ1dCBpdCByZWFsbHkgaXMgbm90IG91cnMgKi8KICAgICBpZihrZXlfdHlwZSkKICAgICAgICAgdGFkLT5rZXlfdHlwZSA9IGtleV90eXBlOwpAQCAtMjkwLDYgKzMyNCw4IEBACiAgICAgICAgIGNvbnRhaW5lci0+bmNvbXBhcmUgPSBuZXRzbm1wX25jb21wYXJlX25ldHNubXBfaW5kZXg7CiAgICAgCiAgICAgaGFuZGxlci0+bXl2b2lkID0gKHZvaWQqKXRhZDsKKyAgICBoYW5kbGVyLT5kYXRhX2Nsb25lID0gKHZvaWQgKigqKSh2b2lkICopKW5ldHNubXBfY29udGFpbmVyX3RhYmxlX2RhdGFfY2xvbmU7CisgICAgaGFuZGxlci0+ZGF0YV9mcmVlID0gKHZvaWQgKCopKHZvaWQgKikpbmV0c25tcF9jb250YWluZXJfdGFibGVfZGF0YV9mcmVlOwogICAgIGhhbmRsZXItPmZsYWdzIHw9IE1JQl9IQU5ETEVSX0FVVE9fTkVYVDsKICAgICAKICAgICByZXR1cm4gaGFuZGxlcjsKQEAgLTMyOCwxOSArMzY0LDIzIEBACiAgICAgaWYgKHRhZCkgewogICAgICAgICBDT05UQUlORVJfRlJFRSggdGFkLT50YWJsZSApOwogICAgICAgICB0YWQtPnRhYmxlID0gTlVMTDsKLSAgICAgICAgZnJlZSh0YWQpOwotICAgICAgICByZWdpbmZvLT5oYW5kbGVyLT5teXZvaWQgPSBOVUxMOworCS8qCisJICogTm90ZTogZG9uJ3QgZnJlZSB0aGUgbWVtb3J5IHRhZCBwb2ludHMgYXQgaGVyZSAtIHRoYXQgaXMgZG9uZQorCSAqIGJ5IG5ldHNubXBfY29udGFpbmVyX3RhYmxlX2RhdGFfZnJlZSgpLgorCSAqLwogICAgIH0KICAgICByZXR1cm4gbmV0c25tcF91bnJlZ2lzdGVyX3RhYmxlKCByZWdpbmZvICk7CiB9CiAKIC8qKiByZXRyaWV2ZSB0aGUgY29udGFpbmVyIHVzZWQgYnkgdGhlIHRhYmxlX2NvbnRhaW5lciBoZWxwZXIgKi8KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9DT05UQUlORVJfRVhUUkFDVAogbmV0c25tcF9jb250YWluZXIqCiBuZXRzbm1wX2NvbnRhaW5lcl90YWJsZV9jb250YWluZXJfZXh0cmFjdChuZXRzbm1wX3JlcXVlc3RfaW5mbyAqcmVxdWVzdCkKIHsKICAgICByZXR1cm4gKG5ldHNubXBfY29udGFpbmVyICopCiAgICAgICAgICBuZXRzbm1wX3JlcXVlc3RfZ2V0X2xpc3RfZGF0YShyZXF1ZXN0LCBUQUJMRV9DT05UQUlORVJfQ09OVEFJTkVSKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0NPTlRBSU5FUl9FWFRSQUNUICovCiAKICNpZm5kZWYgTkVUU05NUF9VU0VfSU5MSU5FCiAvKiogZmluZCB0aGUgY29udGV4dCBkYXRhIHVzZWQgYnkgdGhlIHRhYmxlX2NvbnRhaW5lciBoZWxwZXIgKi8KQEAgLTM2NSw2ICs0MDUsNyBAQAogfQogI2VuZGlmIC8qIGlubGluZSAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfQ09OVEFJTkVSX1JPV19JTlNFUlQKIC8qKiBpbnNlcnRzIGEgbmV3bHkgY3JlYXRlZCB0YWJsZV9jb250YWluZXIgZW50cnkgaW50byBhIHJlcXVlc3QgbGlzdCAqLwogdm9pZAogbmV0c25tcF9jb250YWluZXJfdGFibGVfcm93X2luc2VydChuZXRzbm1wX3JlcXVlc3RfaW5mbyAqcmVxdWVzdCwKQEAgLTQzMiw3ICs0NzMsOSBAQAogICAgICAgICB9CiAgICAgfQogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfQ09OVEFJTkVSX1JPV19JTlNFUlQgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0NPTlRBSU5FUl9ST1dfUkVNT1ZFCiAvKiogcmVtb3ZlcyBhIHRhYmxlX2NvbnRhaW5lciBlbnRyeSBmcm9tIGEgcmVxdWVzdCBsaXN0ICovCiB2b2lkCiBuZXRzbm1wX2NvbnRhaW5lcl90YWJsZV9yb3dfcmVtb3ZlKG5ldHNubXBfcmVxdWVzdF9pbmZvICpyZXF1ZXN0LApAQCAtNDk5LDYgKzU0Miw3IEBACiAgICAgICAgIH0KICAgICB9CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9DT05UQUlORVJfUk9XX1JFTU9WRSAqLwogCiAvKiogQGNvbmQgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC02MTAsMTEgKzY1NCwxNSBAQAogICAgICAgICAgICAgICogbm90IHJlc3VsdHMgZm91bmQuIEZvciBhIGdldCwgdGhhdCBpcyBhbiBlcnJvcgogICAgICAgICAgICAgICovCiAgICAgICAgICAgICBERUJVR01TR1RMKCgidGFibGVfY29udGFpbmVyIiwgIm5vIHJvdyBmb3VuZFxuIikpOworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgICAgIGlmKChhZ3RyZXFfaW5mby0+bW9kZSAhPSBNT0RFX1NFVF9SRVNFUlZFMSkgfHwgLyogZ2V0ICovCiAgICAgICAgICAgICAgICAocmVnaW5mby0+bW9kZXMgJiBIQU5ETEVSX0NBTl9OT1RfQ1JFQVRFKSkgeyAvKiBubyBjcmVhdGUgKi8KKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgICAgICAgICBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yKGFndHJlcV9pbmZvLCByZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU05NUF9OT1NVQ0hJTlNUQU5DRSk7CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAgICAgfQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICB9CiAgICAgfSAvKiogR0VUL1NFVCAqLwogICAgIApAQCAtNjc2LDcgKzcyNCwxMSBAQAogICAgICAqIHJlZ2lzdHJhdGlvbi4KICAgICAgKi8KICAgICBvbGRtb2RlID0gYWd0cmVxX2luZm8tPm1vZGU7Ci0gICAgaWYoTU9ERV9JU19HRVQob2xkbW9kZSkgfHwgKE1PREVfU0VUX1JFU0VSVkUxID09IG9sZG1vZGUpKSB7CisgICAgaWYoTU9ERV9JU19HRVQob2xkbW9kZSkKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCisgICAgICAgfHwgKE1PREVfU0VUX1JFU0VSVkUxID09IG9sZG1vZGUpCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgICAgICkgewogICAgICAgICBuZXRzbm1wX3JlcXVlc3RfaW5mbyAqY3Vycl9yZXF1ZXN0OwogICAgICAgICAvKgogICAgICAgICAgKiBMb29wIHRocm91Z2ggZWFjaCBvZiB0aGUgcmVxdWVzdHMsIGFuZApAQCAtODE2LDQgKzg2OCw5IEBACiAgKgogICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogCisjZWxzZSAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0NPTlRBSU5FUiAqLworbmV0c25tcF9mZWF0dXJlX3VudXNlZCh0YWJsZV9jb250YWluZXIpOworI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfQ09OVEFJTkVSICovCiAvKiogQH0gKi8KKworCmRpZmYgLS1naXQgYS9hZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyBiL2FnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCmluZGV4IGMzYTdmOWUuLjY1OWQ5MDMgMTAwNjQ0Ci0tLSBhL2FnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCisrKyBiL2FnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCkBAIC0xLDQgKzEsNSBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CkBAIC0xNCw2ICsxNSwyNyBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L3RhYmxlLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5Lmg+CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0YWJsZV9kYXRhX2FsbCwgbWliX2hlbHBlcnMpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0YWJsZV9kYXRhLCB0YWJsZV9kYXRhX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihyZWdpc3Rlcl9yZWFkX29ubHlfdGFibGVfZGF0YSwgdGFibGVfZGF0YV9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoZXh0cmFjdF90YWJsZV9yb3dfZGF0YSwgdGFibGVfZGF0YV9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaW5zZXJ0X3RhYmxlX3JvdywgdGFibGVfZGF0YV9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfZGF0YV9kZWxldGVfdGFibGUsIHRhYmxlX2RhdGFfYWxsKQorCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfZGF0YV9leHRyYXMsIHRhYmxlX2RhdGFfYWxsKQorCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfZGF0YV9jcmVhdGVfdGFibGUsIHRhYmxlX2RhdGFfZXh0cmFzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRhYmxlX2RhdGFfY3JlYXRlX3JvdywgdGFibGVfZGF0YV9leHRyYXMpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfZGF0YV9jb3B5X3JvdywgdGFibGVfZGF0YV9leHRyYXMpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfZGF0YV9yZW1vdmVfZGVsZXRlX3JvdywgdGFibGVfZGF0YV9leHRyYXMpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfZGF0YV91bnJlZ2lzdGVyLCB0YWJsZV9kYXRhX2V4dHJhcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0YWJsZV9kYXRhX3Jvd19jb3VudCwgdGFibGVfZGF0YV9leHRyYXMpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfZGF0YV9yb3dfb3BlcmF0aW9ucywgdGFibGVfZGF0YV9leHRyYXMpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfZGF0YV9yb3dfZmlyc3QsIHRhYmxlX2RhdGFfZXh0cmFzKQorCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfREFUQQorCiAvKiogQGRlZmdyb3VwIHRhYmxlX2RhdGEgdGFibGVfZGF0YQogICogIEhlbHBzIHlvdSBpbXBsZW1lbnQgYSB0YWJsZSB3aXRoIGRhdGFtYXR0ZWQgc3RvcmFnZS4KICAqICBAaW5ncm91cCB0YWJsZQpAQCAtOTAsNiArMTEyLDcgQEAKICAgICAgICAgbmV3cm93LT5pbmRleF9vaWQgPQogICAgICAgICAgICAgc25tcF9kdXBsaWNhdGVfb2JqaWQocm93LT5pbmRleF9vaWQsIHJvdy0+aW5kZXhfb2lkX2xlbik7CiAgICAgICAgIGlmICghbmV3cm93LT5pbmRleF9vaWQpIHsKKyAgICAgICAgICAgIGZyZWUobmV3cm93LT5pbmRleGVzKTsKICAgICAgICAgICAgIGZyZWUobmV3cm93KTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CkBAIC0yODcsMTIgKzMxMCwxNSBAQAogICAgICAqIEdlbmVyaWMgQVBJIC0gbW9zdGx5IHJlbmFtZWQgd3JhcHBlcnMKICAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9EQVRBX0NSRUFURV9UQUJMRQogbmV0c25tcF90YWJsZV9kYXRhICoKIG5ldHNubXBfdGFibGVfZGF0YV9jcmVhdGVfdGFibGUoY29uc3QgY2hhciAqbmFtZSwgbG9uZyBmbGFncykKIHsKICAgICByZXR1cm4gbmV0c25tcF9jcmVhdGVfdGFibGVfZGF0YSggbmFtZSApOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfREFUQV9DUkVBVEVfVEFCTEUgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0RBVEFfREVMRVRFX1RBQkxFCiB2b2lkCiBuZXRzbm1wX3RhYmxlX2RhdGFfZGVsZXRlX3RhYmxlKCBuZXRzbm1wX3RhYmxlX2RhdGEgKnRhYmxlICkKIHsKQEAgLTMxMiwxNCArMzM4LDEzIEBACiAgICAgfQogICAgIHRhYmxlLT5maXJzdF9yb3cgPSBOVUxMOwogCi0gICAgaWYgKHRhYmxlLT5uYW1lKSB7Ci0gICAgICAgIFNOTVBfRlJFRSh0YWJsZS0+bmFtZSk7Ci0gICAgICAgIHRhYmxlLT5uYW1lID0gTlVMTDsKLSAgICB9CisgICAgU05NUF9GUkVFKHRhYmxlLT5uYW1lKTsKICAgICBTTk1QX0ZSRUUodGFibGUpOwogICAgIHJldHVybjsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0RBVEFfREVMRVRFX1RBQkxFICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9EQVRBX0NSRUFURV9ST1cKIG5ldHNubXBfdGFibGVfcm93ICoKIG5ldHNubXBfdGFibGVfZGF0YV9jcmVhdGVfcm93KCB2b2lkKiBlbnRyeSApCiB7CkBAIC0zMjgsOSArMzUzLDExIEBACiAgICAgICAgIHJvdy0+ZGF0YSA9IGVudHJ5OwogICAgIHJldHVybiByb3c7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9EQVRBX0NSRUFURV9ST1cgKi8KIAogICAgIC8qIG5ldHNubXBfdGFibGVfZGF0YV9jbG9uZV9yb3coKSBkZWZpbmVkIGFib3ZlICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9EQVRBX0NPUFlfUk9XCiBpbnQKIG5ldHNubXBfdGFibGVfZGF0YV9jb3B5X3JvdyggbmV0c25tcF90YWJsZV9yb3cgICpvbGRfcm93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3RhYmxlX3JvdyAgKm5ld19yb3cgKQpAQCAtMzQ4LDYgKzM3NSw3IEBACiAgICAgLyogWFhYIC0gRG9lc24ndCBjb3B5IHRhYmxlLXNwZWNpZmljIHJvdyBzdHJ1Y3R1cmUgKi8KICAgICByZXR1cm4gMDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0RBVEFfQ09QWV9ST1cgKi8KIAogICAgIC8qCiAgICAgICogbmV0c25tcF90YWJsZV9kYXRhX2RlbGV0ZV9yb3coKQpAQCAtMzU3LDEyICszODUsMTQgQEAKICAgICAgKiAgICAgYWxsIGRlZmluZWQgYWJvdmUKICAgICAgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0RBVEFfUkVNT1ZFX0RFTEVURV9ST1cKIHZvaWQgKgogbmV0c25tcF90YWJsZV9kYXRhX3JlbW92ZV9kZWxldGVfcm93KG5ldHNubXBfdGFibGVfZGF0YSAqdGFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF90YWJsZV9yb3cgKnJvdykKIHsKICAgICByZXR1cm4gbmV0c25tcF90YWJsZV9kYXRhX3JlbW92ZV9hbmRfZGVsZXRlX3Jvdyh0YWJsZSwgcm93KTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0RBVEFfUkVNT1ZFX0RFTEVURV9ST1cgKi8KIAogCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC00MDQsNiArNDM0LDggQEAKICAgICByZXR1cm4gbmV0c25tcF9yZWdpc3Rlcl90YWJsZShyZWdpbmZvLCB0YWJsZV9pbmZvKTsKIH0KIAorCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUkVHSVNURVJfUkVBRF9PTkxZX1RBQkxFX0RBVEEKIC8qKiByZWdpc3RlcnMgYSBoYW5kbGVyIGFzIGEgcmVhZC1vbmx5IGRhdGEgdGFibGUKICAqICBJZiB0YWJsZV9pbmZvICE9IE5VTEwsIGl0IHJlZ2lzdGVycyBpdCBhcyBhIG5vcm1hbCB0YWJsZSB0b28uICovCiBpbnQKQEAgLTQxNCwxMyArNDQ2LDE2IEBACiAgICAgbmV0c25tcF9pbmplY3RfaGFuZGxlcihyZWdpbmZvLCBuZXRzbm1wX2dldF9yZWFkX29ubHlfaGFuZGxlcigpKTsKICAgICByZXR1cm4gbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9kYXRhKHJlZ2luZm8sIHRhYmxlLCB0YWJsZV9pbmZvKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JFR0lTVEVSX1JFQURfT05MWV9UQUJMRV9EQVRBICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9EQVRBX1VOUkVHSVNURVIKIGludAogbmV0c25tcF91bnJlZ2lzdGVyX3RhYmxlX2RhdGEobmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnaW5mbykKIHsKICAgICAvKiBmcmVlIHRhYmxlOyAqLwogICAgIHJldHVybiBuZXRzbm1wX3VucmVnaXN0ZXJfdGFibGUocmVnaW5mbyk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9EQVRBX1VOUkVHSVNURVIgKi8KIAogLyoKICAqIFRoZSBoZWxwZXIgaGFuZGxlciB0aGF0IHRha2VzIGNhcmUgb2YgcGFzc2luZyBhIHNwZWNpZmljIHJvdyBvZgpAQCAtNDUzLDcgKzQ4OCw5IEBACiAgICAgICAgIHN3aXRjaCAocmVxaW5mby0+bW9kZSkgewogICAgICAgICBjYXNlIE1PREVfR0VUOgogICAgICAgICBjYXNlIE1PREVfR0VUTkVYVDoKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICAgICBuZXRzbm1wX3JlcXVlc3RfYWRkX2xpc3RfZGF0YShyZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV9kYXRhX2xpc3QoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQUJMRV9EQVRBX1RBQkxFLCB0YWJsZSwgTlVMTCkpOwpAQCAtNTI3LDkgKzU2NCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICAgICAgICAgICogZXF1YWwgbWF0Y2gsIHJldHVybiB0aGUgbmV4dCByb3cgCiAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyb3cpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3cgPSByb3ctPm5leHQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICByb3cgPSByb3ctPm5leHQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvKgpAQCAtNjA2LDYgKzY0MSw3IEBACiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMToKICAgICAgICAgICAgIHZhbGlkX3JlcXVlc3QgPSAxOwogICAgICAgICAgICAgaWYgKE5VTEwgIT0KQEAgLTYzMCw2ICs2NjYsNyBAQAogICAgICAgICBjYXNlIE1PREVfU0VUX0ZSRUU6CiAgICAgICAgIGNhc2UgTU9ERV9TRVRfVU5ETzoKICAgICAgICAgICAgIHZhbGlkX3JlcXVlc3QgPSAxOworI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAgICAgICAgIH0KICAgICB9CkBAIC02NzIsNiArNzA5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRBQkxFX0RBVEFfUk9XKTsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0VYVFJBQ1RfVEFCTEVfUk9XX0RBVEEKIC8qKiBleHRyYWN0cyB0aGUgZGF0YSBmcm9tIHRoZSByb3cgYmVpbmcgYWNjZXNzZWQgcGFzc2VkIGZyb20gdGhlCiAgKiB0YWJsZV9kYXRhIGhlbHBlciAqLwogdm9pZCAgICAgICAgICAgKgpAQCAtNjg0LDcgKzcyMiw5IEBACiAgICAgZWxzZQogICAgICAgICByZXR1cm4gTlVMTDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0VYVFJBQ1RfVEFCTEVfUk9XX0RBVEEgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lOU0VSVF9UQUJMRV9ST1cKIC8qKiBpbnNlcnRzIGEgbmV3bHkgY3JlYXRlZCB0YWJsZV9kYXRhIHJvdyBpbnRvIGEgcmVxdWVzdCAqLwogdm9pZAogbmV0c25tcF9pbnNlcnRfdGFibGVfcm93KG5ldHNubXBfcmVxdWVzdF9pbmZvICpyZXF1ZXN0LApAQCAtNzQ5LDYgKzc4OSw3IEBACiAgICAgICAgIH0KICAgICB9CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JTlNFUlRfVEFCTEVfUk9XICovCiAKIC8qIGJ1aWxkcyBhIHJlc3VsdCBnaXZlbiBhIHJvdywgYSB2YXJiaW5kIHRvIHNldCBhbmQgdGhlIGRhdGEgKi8KIGludApAQCAtODYwLDExICs5MDEsMTMgQEAKICAgICAgKiBHZW5lcmljIEFQSSAtIG1vc3RseSByZW5hbWVkIHdyYXBwZXJzCiAgICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfREFUQV9ST1dfRklSU1QKIG5ldHNubXBfdGFibGVfcm93ICoKIG5ldHNubXBfdGFibGVfZGF0YV9yb3dfZmlyc3QobmV0c25tcF90YWJsZV9kYXRhICp0YWJsZSkKIHsKICAgICByZXR1cm4gbmV0c25tcF90YWJsZV9kYXRhX2dldF9maXJzdF9yb3codGFibGUpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfREFUQV9ST1dfRklSU1QgKi8KIAogbmV0c25tcF90YWJsZV9yb3cgKgogbmV0c25tcF90YWJsZV9kYXRhX3Jvd19nZXQoICBuZXRzbm1wX3RhYmxlX2RhdGEgKnRhYmxlLApAQCAtOTI5LDExICs5NzIsMTMgQEAKICAgICByZXR1cm4gbmV0c25tcF90YWJsZV9kYXRhX3Jvd19uZXh0X2J5b2lkKHRhYmxlLCBpbnN0YW5jZSwgbGVuKTsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0RBVEFfUk9XX0NPVU5UCiBpbnQKIG5ldHNubXBfdGFibGVfZGF0YV9yb3dfY291bnQobmV0c25tcF90YWJsZV9kYXRhICp0YWJsZSkKIHsKICAgICByZXR1cm4gbmV0c25tcF90YWJsZV9kYXRhX251bV9yb3dzKHRhYmxlKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0RBVEFfUk9XX0NPVU5UICovCiAKIAogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtOTQzLDYgKzk4OCw3IEBACiAgKgogICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfREFUQV9ST1dfT1BFUkFUSU9OUwogdm9pZCAqCiBuZXRzbm1wX3RhYmxlX2RhdGFfZW50cnlfZmlyc3QobmV0c25tcF90YWJsZV9kYXRhICp0YWJsZSkKIHsKQEAgLTEwMDIsNiArMTA0OCw3IEBACiAgICAgICAgIG5ldHNubXBfdGFibGVfZGF0YV9yb3dfbmV4dF9ieW9pZCh0YWJsZSwgaW5zdGFuY2UsIGxlbik7CiAgICAgcmV0dXJuIChyb3cgPyByb3ctPmRhdGEgOiBOVUxMICk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9EQVRBX1JPV19PUEVSQVRJT05TICovCiAKICAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgICogR2VuZXJpYyBBUEkgLSBtb3N0bHkgcmVuYW1lZCB3cmFwcGVycwpAQCAtMTAxMyw1ICsxMDYwLDkgQEAKICAqCiAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAKKyNlbHNlIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfREFUQSAqLworbmV0c25tcF9mZWF0dXJlX3VudXNlZCh0YWJsZV9kYXRhKTsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0RBVEEgKi8KKwogLyoqIEB9IAogICovCmRpZmYgLS1naXQgYS9hZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyBiL2FnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCmluZGV4IDI0MDNiMmYuLjkzMWMyN2EgMTAwNjQ0Ci0tLSBhL2FnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCisrKyBiL2FnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCkBAIC0xLDUgKzEsNyBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KIApAQCAtMTEsNiArMTMsMzQgQEAKICNpbmNsdWRlIDxzdHJpbmdzLmg+CiAjZW5kaWYKIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRhYmxlX2RhdGFzZXRfYWxsLCBtaWJfaGVscGVycykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0YWJsZV9kYXRhc2V0LCB0YWJsZV9kYXRhc2V0X2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0YWJsZV9kYXRhc2V0X3JlbW92ZV9yb3csIHRhYmxlX2RhdGFzZXRfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRhYmxlX2RhdGFfc2V0X2NvbHVtbiwgdGFibGVfZGF0YXNldF9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfZGF0YXNldF9nZXRfbmV3cm93LCB0YWJsZV9kYXRhc2V0X2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0YWJsZV9zZXRfYWRkX2luZGV4ZXMsIHRhYmxlX2RhdGFzZXRfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGRlbGV0ZV90YWJsZV9kYXRhX3NldCwgdGFibGVfZGF0YXNldF9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfc2V0X211bHRpX2FkZF9kZWZhdWx0X3JvdywgdGFibGVfZGF0YXNldF9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfZGF0YXNldF91bnJlZ2lzdGVyX2F1dG9fZGF0YV90YWJsZSwgdGFibGVfZGF0YXNldF9hbGwpCisKKyNpZmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVRVUlSRV9UQUJMRV9EQVRBU0VUCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV9nZXRfb3JfY3JlYXRlX3Jvd19zdGFzaCkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX2RhdGFfZGVsZXRlX3RhYmxlKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfZGF0YSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKG9pZF9zdGFzaF9nZXRfZGF0YSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKG9pZF9zdGFzaF9hZGRfZGF0YSkKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVRVUlSRV9UQUJMRV9EQVRBU0VUICovCisKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9EQVRBU0VUCisKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShvaWRfc3Rhc2gpCisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworCisjaWZuZGVmIE5FVFNOTVBfRElTQUJMRV9NSUJfTE9BRElORworbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUobWliX3RvX2Fzbl90eXBlKQorI2VuZGlmIC8qIE5FVFNOTVBfRElTQUJMRV9NSUJfTE9BRElORyAqLworCiBzdGF0aWMgbmV0c25tcF9kYXRhX2xpc3QgKmF1dG9fdGFibGVzOwogCiB0eXBlZGVmIHN0cnVjdCBkYXRhX3NldF90YWJsZXNfcyB7CkBAIC0xMzQsNiArMTY0LDcgQEAKIH0KIAogLyoqIHJlbW92ZXMgYSByb3cgZnJvbSB0aGUgdGFibGUsIGJ1dCBkb2Vzbid0IGRlbGV0ZS9mcmVlIHRoZSBjb2x1bW4gdmFsdWVzICovCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfREFUQVNFVF9SRU1PVkVfUk9XCiBORVRTTk1QX0lOTElORSB2b2lkCiBuZXRzbm1wX3RhYmxlX2RhdGFzZXRfcmVtb3ZlX3JvdyhuZXRzbm1wX3RhYmxlX2RhdGFfc2V0ICp0YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfdGFibGVfcm93ICpyb3cpCkBAIC0xNDMsNiArMTc0LDcgQEAKIAogICAgIG5ldHNubXBfdGFibGVfZGF0YV9yZW1vdmVfYW5kX2RlbGV0ZV9yb3codGFibGUtPnRhYmxlLCByb3cpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfREFUQVNFVF9SRU1PVkVfUk9XICovCiAKIC8qKiByZW1vdmVzIGEgcm93IGZyb20gdGhlIHRhYmxlIGFuZCB0aGVuIGRlbGV0ZXMgaXQgKGFuZCBhbGwgaXRzIGRhdGEpICovCiBORVRTTk1QX0lOTElORSB2b2lkCkBAIC0xNzIsNiArMjA0LDcgQEAKICAgICByZXR1cm4gdGFibGVfc2V0OwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfREVMRVRFX1RBQkxFX0RBVEFfU0VUCiB2b2lkIG5ldHNubXBfZGVsZXRlX3RhYmxlX2RhdGFfc2V0KG5ldHNubXBfdGFibGVfZGF0YV9zZXQgKnRhYmxlX3NldCkKIHsKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFfc2V0X3N0b3JhZ2UgKnB0ciwgKm5leHQ7CkBAIC0xOTAsNiArMjIzLDcgQEAKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFfZGVsZXRlX3RhYmxlKHRhYmxlX3NldC0+dGFibGUpOwogICAgIGZyZWUodGFibGVfc2V0KTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0RFTEVURV9UQUJMRV9EQVRBX1NFVCAqLwogCiAvKiogY2xvbmVzIGEgZGF0YXNldCByb3csIGluY2x1ZGluZyBhbGwgZGF0YS4gKi8KIG5ldHNubXBfdGFibGVfcm93ICoKQEAgLTI1MCw5ICsyODQsMTAgQEAKICAgICBmb3IgKDsgZGVmcm93OyBkZWZyb3cgPSBkZWZyb3ctPm5leHQpIHsKICAgICAgICAgbmV0c25tcF9zZXRfcm93X2NvbHVtbihyb3csIGRlZnJvdy0+Y29sdW1uLCBkZWZyb3ctPnR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmcm93LT5kYXRhLnZvaWRwLCBkZWZyb3ctPmRhdGFfbGVuKTsKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgIGlmIChkZWZyb3ctPndyaXRhYmxlKQogICAgICAgICAgICAgbmV0c25tcF9tYXJrX3Jvd19jb2x1bW5fd3JpdGFibGUocm93LCBkZWZyb3ctPmNvbHVtbiwgMSk7Ci0KKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgfQogICAgIHJldHVybiByb3c7CiB9CkBAIC0zMjcsNiArMzYyLDcgQEAKICAqICB0aGlzIGlzIGEgd3JhcHBlciBhcm91bmQgY2FsbGluZyBuZXRzbm1wX3RhYmxlX3NldF9hZGRfZGVmYXVsdF9yb3cKICAqICByZXBlYXRlZGx5IGZvciB5b3UuCiAgKi8KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9TRVRfTVVMVElfQUREX0RFRkFVTFRfUk9XCiB2b2lkCiBuZXRzbm1wX3RhYmxlX3NldF9tdWx0aV9hZGRfZGVmYXVsdF9yb3cobmV0c25tcF90YWJsZV9kYXRhX3NldCAqdHNldCwgLi4uKQogewpAQCAtMzQ5LDcgKzM4NSw3IEBACiAKICAgICB2YV9lbmQoZGVidWdhcmdzKTsKIH0KLQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfU0VUX01VTFRJX0FERF9ERUZBVUxUX1JPVyAqLwogCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgKgpAQCAtMzg5LDYgKzQyNSw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfdGFibGVfZGF0YV9zZXQgKmRhdGFfc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICp0YWJsZV9pbmZvKQogeworICAgIGludCByZXQ7CisKICAgICBpZiAoTlVMTCA9PSB0YWJsZV9pbmZvKSB7CiAgICAgICAgIC8qCiAgICAgICAgICAqIGFsbG9jYXRlIHRoZSB0YWJsZSBpZiBvbmUgd2Fzbid0IGFsbG9jYXRlZCAKQEAgLTQyNiw4ICs0NjQsMTEgQEAKIAogICAgIG5ldHNubXBfaW5qZWN0X2hhbmRsZXIocmVnaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfZ2V0X3RhYmxlX2RhdGFfc2V0X2hhbmRsZXIoZGF0YV9zZXQpKTsKLSAgICByZXR1cm4gbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9kYXRhKHJlZ2luZm8sIGRhdGFfc2V0LT50YWJsZSwKKyAgICByZXQgPSBuZXRzbm1wX3JlZ2lzdGVyX3RhYmxlX2RhdGEocmVnaW5mbywgZGF0YV9zZXQtPnRhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfaW5mbyk7CisgICAgaWYgKHJldCA9PSBTTk1QRVJSX1NVQ0NFU1MgJiYgcmVnaW5mby0+aGFuZGxlcikKKyAgICAgICAgbmV0c25tcF9oYW5kbGVyX293bnNfdGFibGVfaW5mbyhyZWdpbmZvLT5oYW5kbGVyLT5uZXh0KTsKKyAgICByZXR1cm4gcmV0OwogfQogCiBuZXdyb3dfc3Rhc2ggICAqCkBAIC00ODgsNiArNTI5LDcgQEAKICAgICAgICAgcm93ID0gbmV0c25tcF9leHRyYWN0X3RhYmxlX3JvdyhyZXF1ZXN0KTsKICAgICAgICAgdGFibGVfaW5mbyA9IG5ldHNubXBfZXh0cmFjdF90YWJsZV9pbmZvKHJlcXVlc3QpOwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICBpZiAoTU9ERV9JU19TRVQocmVxaW5mby0+bW9kZSkpIHsKIAogICAgICAgICAgICAgLyoKQEAgLTU1NiwxMiArNTk4LDE3IEBACiAgICAgICAgICAgICAgICAgcmVxaW5mby0+bW9kZSA9PSBNT0RFX1NFVF9SRVNFUlZFMikKICAgICAgICAgICAgICAgICByb3cgPSBuZXdyb3c7CiAgICAgICAgIH0KKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgICAgICBpZiAocm93KQogICAgICAgICAgICAgZGF0YSA9IChuZXRzbm1wX3RhYmxlX2RhdGFfc2V0X3N0b3JhZ2UgKikgcm93LT5kYXRhOwogCiAgICAgICAgIGlmICghcm93IHx8ICF0YWJsZV9pbmZvIHx8ICFkYXRhKSB7Ci0gICAgICAgICAgICBpZiAoIU1PREVfSVNfU0VUKHJlcWluZm8tPm1vZGUpIHx8ICF0YWJsZV9pbmZvKSB7CisgICAgICAgICAgICBpZiAoIXRhYmxlX2luZm8KKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCisgICAgICAgICAgICAgICAgfHwgIU1PREVfSVNfU0VUKHJlcWluZm8tPm1vZGUpCisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IocmVxaW5mbywgcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBfTk9TVUNISU5TVEFOQ0UpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNTkyLDYgKzYzOSw3IEBACiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMToKICAgICAgICAgICAgIGlmIChkYXRhKSB7CiAgICAgICAgICAgICAgICAgLyoKQEAgLTgwOCw2ICs4NTYsMTIgQEAKIAkJbmV3cm93ID0gTlVMTDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLAorICAgICAgICAgICAgICAgICAgICAgInRhYmxlX2RhdGFzZXQ6IHVua25vd24gbW9kZSBwYXNzZWQgaW50byB0aGUgaGFuZGxlclxuIik7CisgICAgICAgICAgICByZXR1cm4gU05NUF9FUlJfR0VORVJSOwogICAgICAgICB9CiAgICAgfQogCkBAIC04MjgsNiArODgyLDcgQEAKIC8qKgogICogZXh0cmFjdHMgYSBuZXRzbm1wX3RhYmxlX2RhdGFfc2V0IHBvaW50ZXIgZnJvbSBhIGdpdmVuIHJlcXVlc3QKICAqLworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0RBVEFfU0VUX0NPTFVNTgogbmV0c25tcF90YWJsZV9kYXRhX3NldF9zdG9yYWdlICoKIG5ldHNubXBfZXh0cmFjdF90YWJsZV9kYXRhX3NldF9jb2x1bW4obmV0c25tcF9yZXF1ZXN0X2luZm8gKnJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNvbHVtbikKQEAgLTgzOSw3ICs4OTQsNyBAQAogICAgIH0KICAgICByZXR1cm4gZGF0YTsKIH0KLQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfREFUQV9TRVRfQ09MVU1OICovCiAKIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAqCkBAIC04NjcsOSArOTIyLDIzIEBACiAgICAgaWYgKCFyZWdpc3RyYXRpb25fbmFtZSkgewogICAgICAgICByZWdpc3RyYXRpb25fbmFtZSA9IHRhYmxlX3NldC0+dGFibGUtPm5hbWU7CiAgICAgfQotICAgIG5ldHNubXBfYWRkX2xpc3RfZGF0YSgmYXV0b190YWJsZXMsIG5ldHNubXBfY3JlYXRlX2RhdGFfbGlzdChyZWdpc3RyYXRpb25fbmFtZSwgdGFibGVzLCBOVUxMKSk7ICAgICAvKiBYWFggKi8KKyAgICBuZXRzbm1wX2FkZF9saXN0X2RhdGEoJmF1dG9fdGFibGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV9kYXRhX2xpc3QocmVnaXN0cmF0aW9uX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZXMsIGZyZWUpKTsgICAgIC8qIFhYWCAqLwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfREFUQVNFVF9VTlJFR0lTVEVSX0FVVE9fREFUQV9UQUJMRQorLyoqIFVuZG8gdGhlIGVmZmVjdCBvZiBuZXRzbm1wX3JlZ2lzdGVyX2F1dG9fZGF0YV90YWJsZSgpLgorICovCit2b2lkCituZXRzbm1wX3VucmVnaXN0ZXJfYXV0b19kYXRhX3RhYmxlKG5ldHNubXBfdGFibGVfZGF0YV9zZXQgKnRhYmxlX3NldCwKKwkJCQkgICBjaGFyICpyZWdpc3RyYXRpb25fbmFtZSkKK3sKKyAgICBuZXRzbm1wX3JlbW92ZV9saXN0X25vZGUoJmF1dG9fdGFibGVzLCByZWdpc3RyYXRpb25fbmFtZQorCQkJICAgICA/IHJlZ2lzdHJhdGlvbl9uYW1lIDogdGFibGVfc2V0LT50YWJsZS0+bmFtZSk7Cit9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9EQVRBU0VUX1VOUkVHSVNURVJfQVVUT19EQVRBX1RBQkxFICovCisKICNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HCiBzdGF0aWMgdm9pZAogX3RhYmxlX3NldF9hZGRfaW5kZXhlcyhuZXRzbm1wX3RhYmxlX2RhdGFfc2V0ICp0YWJsZV9zZXQsIHN0cnVjdCB0cmVlICp0cCkKQEAgLTExMzIsOCArMTIwMSwxMCBAQAogICAgICAgICAgICAgICAgICAgICAiYWRkaW5nIGRhdGEgYXQgY29sdW1uICVkIG9mIHR5cGUgJWRcbiIsIGRyLT5jb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgIGRyLT50eXBlKSk7CiAgICAgICAgIG5ldHNubXBfc2V0X3Jvd19jb2x1bW4ocm93LCBkci0+Y29sdW1uLCBkci0+dHlwZSwgYnVmLCBidWZfc2l6ZSk7CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICBpZiAoZHItPndyaXRhYmxlKQogICAgICAgICAgICAgbmV0c25tcF9tYXJrX3Jvd19jb2x1bW5fd3JpdGFibGUocm93LCBkci0+Y29sdW1uLCAxKTsgICAgICAgLyogbWFrZSB3cml0YWJsZSAqLworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICB9CiAgICAgcmMgPSBuZXRzbm1wX3RhYmxlX2RhdGFfYWRkX3Jvdyh0YWJsZXMtPnRhYmxlX3NldC0+dGFibGUsIHJvdyk7CiAgICAgaWYgKFNOTVBFUlJfU1VDQ0VTUyAhPSByYykgewpAQCAtMTE0Niw2ICsxMjE3LDcgQEAKIH0KIAogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogbmV0c25tcF9vaWRfc3Rhc2hfbm9kZSAqKgogbmV0c25tcF90YWJsZV9kYXRhc2V0X2dldF9vcl9jcmVhdGVfc3Rhc2gobmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm8gKnJlcWluZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3RhYmxlX2RhdGFfc2V0ICpkYXRhdGFibGUsCkBAIC0xMTc2LDYgKzEyNDgsNyBAQAogICAgIHJldHVybiBzdGFzaHA7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9EQVRBU0VUX0dFVF9ORVdST1cKIG5ldHNubXBfdGFibGVfcm93ICoKIG5ldHNubXBfdGFibGVfZGF0YXNldF9nZXRfbmV3cm93KG5ldHNubXBfcmVxdWVzdF9pbmZvICpyZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm8gKnJlcWluZm8sCkBAIC0xMTk5LDYgKzEyNzIsOCBAQAogCiAgICAgcmV0dXJuIG5ld3Jvd3N0YXNoLT5uZXdyb3c7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9EQVRBU0VUX0dFVF9ORVdST1cgKi8KKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICoKQEAgLTEyNDcsNiArMTMyMiw3IEBACiAgICAgcmV0dXJuIHN0YXJ0OwogfQogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogLyoqCiAgKiBtYXJrcyBhIGdpdmVuIGNvbHVtbiBpbiBhIHJvdyBhcyB3cml0YWJsZSBvciBub3QuCiAgKi8KQEAgLTEyODAsNiArMTM1Niw3IEBACiAgICAgfQogICAgIHJldHVybiBTTk1QRVJSX1NVQ0NFU1M7CiB9CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKIC8qKgogICogU2V0cyBhIGdpdmVuIGNvbHVtbiBpbiBhIHJvdyB3aXRoIGRhdGEgZ2l2ZW4gYSB0eXBlLCB2YWx1ZSwKQEAgLTEzNTQsNiArMTQzMSw3IEBACiAgICAgcmV0dXJuIFNOTVBFUlJfU1VDQ0VTUzsKIH0KIAorCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgKgogICogRGF0YSBTZXQgQVBJOiBJbmRleCBvcGVyYXRpb25zCkBAIC0xMzcxLDYgKzE0NDksNyBAQAogCiAvKiogYWRkcyBtdWx0aXBsZSBpbmRleGVzIHRvIGEgdGFibGVfZGF0YXNldCBoZWxwZXIgb2JqZWN0LgogICogIFRvIGVuZCB0aGUgbGlzdCwgdXNlIGEgMCBhZnRlciB0aGUgbGlzdCBvZiBBU04gaW5kZXggdHlwZXMuICovCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfU0VUX0FERF9JTkRFWEVTCiB2b2lkCiBuZXRzbm1wX3RhYmxlX3NldF9hZGRfaW5kZXhlcyhuZXRzbm1wX3RhYmxlX2RhdGFfc2V0ICp0c2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKQpAQCAtMTM4Niw2ICsxNDY1LDEwIEBACiAKICAgICB2YV9lbmQoZGVidWdhcmdzKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX1NFVF9BRERfSU5ERVhFUyAqLwogCisjZWxzZSAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0RBVEFTRVQgKi8KK25ldHNubXBfZmVhdHVyZV91bnVzZWQodGFibGVfZGF0YXNldCk7CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9EQVRBU0VUICovCiAvKiogQH0gCiAgKi8KZGlmZiAtLWdpdCBhL2FnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyBiL2FnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwppbmRleCA4N2M3NDEyLi44ZWQ1Y2QwIDEwMDY0NAotLS0gYS9hZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKKysrIGIvYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCkBAIC04NCw2ICs4NCw3IEBACiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KIAorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCkBAIC05OSw2ICsxMDAsMTggQEAKICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9zdGFzaF9jYWNoZS5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfaXRlcmF0b3JfYWxsLCBtaWJfaGVscGVycykKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRhYmxlX2l0ZXJhdG9yX2luc2VydF9jb250ZXh0LCB0YWJsZV9pdGVyYXRvcl9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfaXRlcmF0b3JfY3JlYXRlX3RhYmxlLCB0YWJsZV9pdGVyYXRvcl9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfaXRlcmF0b3Jfcm93X2ZpcnN0LCB0YWJsZV9pdGVyYXRvcl9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfaXRlcmF0b3Jfcm93X2NvdW50LCB0YWJsZV9pdGVyYXRvcl9hbGwpCisKKyNpZmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVRVUlSRV9TVEFTSF9DQUNIRQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoZGF0YV9saXN0X2dldF9saXN0X25vZGUpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShvaWRfc3Rhc2hfYWRkX2RhdGEpCisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFUVVJUkVfU1RBU0hfQ0FDSEUgKi8KKwogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICoKICAqIEl0ZXJhdG9yIEFQSTogVGFibGUgbWFpbnRlbmFuY2UKQEAgLTExNyw2ICsxMzAsNyBAQAogICAgICAqCiAgICAgICogVGltZSB3aWxsIHNob3cgd2hldGhlciB0aGlzIGlzIGEgc2Vuc2libGUgYXBwcm9hY2ggb3Igbm90LgogICAgICAqLworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0lURVJBVE9SX0NSRUFURV9UQUJMRQogbmV0c25tcF9pdGVyYXRvcl9pbmZvICoKIG5ldHNubXBfaXRlcmF0b3JfY3JlYXRlX3RhYmxlKCBOZXRzbm1wX0ZpcnN0X0RhdGFfUG9pbnQgKmZpcnN0RFAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV0c25tcF9OZXh0X0RhdGFfUG9pbnQgICpuZXh0RFAsCkBAIC0xMzcsNyArMTUxLDkgQEAKIAogICAgIHJldHVybiBpaW5mbzsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0lURVJBVE9SX0NSRUFURV9UQUJMRSAqLwogCisvKiogRnJlZSB0aGUgbWVtb3J5IHRoYXQgd2FzIGFsbG9jYXRlZCBmb3IgYSB0YWJsZSBpdGVyYXRvci4gKi8KIHZvaWQKIG5ldHNubXBfaXRlcmF0b3JfZGVsZXRlX3RhYmxlKCBuZXRzbm1wX2l0ZXJhdG9yX2luZm8gKmlpbmZvICkKIHsKQEAgLTE0OCw2ICsxNjQsNyBAQAogICAgICAgICBzbm1wX2ZyZWVfdmFyYmluZCggaWluZm8tPmluZGV4ZXMgKTsKICAgICAgICAgaWluZm8tPmluZGV4ZXMgPSBOVUxMOwogICAgIH0KKyAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX2ZyZWUoaWluZm8tPnRhYmxlX3JlZ2luZm8pOwogICAgIFNOTVBfRlJFRSggaWluZm8gKTsKIH0KIApAQCAtMTY1LDcgKzE4MiwzNyBAQAogICoKICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KIAotLyoqIHJldHVybnMgYSBuZXRzbm1wX21pYl9oYW5kbGVyIG9iamVjdCBmb3IgdGhlIHRhYmxlX2l0ZXJhdG9yIGhlbHBlciAqLworc3RhdGljIG5ldHNubXBfaXRlcmF0b3JfaW5mbyAqCituZXRzbm1wX2l0ZXJhdG9yX3JlZihuZXRzbm1wX2l0ZXJhdG9yX2luZm8gKmlpbmZvKQoreworICAgIGlpbmZvLT5yZWZjbnQrKzsKKyAgICByZXR1cm4gaWluZm87Cit9CisKK3N0YXRpYyB2b2lkCituZXRzbm1wX2l0ZXJhdG9yX2RlcmVmKG5ldHNubXBfaXRlcmF0b3JfaW5mbyAqaWluZm8pCit7CisgICAgaWYgKC0taWluZm8tPnJlZmNudCA9PSAwKQorICAgICAgICBuZXRzbm1wX2l0ZXJhdG9yX2RlbGV0ZV90YWJsZShpaW5mbyk7Cit9CisKK3ZvaWQgbmV0c25tcF9oYW5kbGVyX293bnNfaXRlcmF0b3JfaW5mbyhuZXRzbm1wX21pYl9oYW5kbGVyICpoKQoreworICAgIG5ldHNubXBfYXNzZXJ0KGgpOworICAgIG5ldHNubXBfYXNzZXJ0KGgtPm15dm9pZCk7CisgICAgKChuZXRzbm1wX2l0ZXJhdG9yX2luZm8gKikoaC0+bXl2b2lkKSktPnJlZmNudCsrOworICAgIGgtPmRhdGFfY2xvbmUgPSAodm9pZCAqKCopKHZvaWQgKikpbmV0c25tcF9pdGVyYXRvcl9yZWY7CisgICAgaC0+ZGF0YV9mcmVlICA9ICh2b2lkKCopKHZvaWQgKikpbmV0c25tcF9pdGVyYXRvcl9kZXJlZjsKK30KKworLyoqCisgKiBSZXR1cm5zIGEgbmV0c25tcF9taWJfaGFuZGxlciBvYmplY3QgZm9yIHRoZSB0YWJsZV9pdGVyYXRvciBoZWxwZXIuCisgKgorICogVGhlIGNhbGxlciByZW1haW5zIHRoZSBvd25lciBvZiB0aGUgaXRlcmF0b3IgaW5mb3JtYXRpb24gb2JqZWN0IGlmCisgKiB0aGUgZmxhZyBORVRTTk1QX0hBTkRMRVJfT1dOU19JSU5GTyBoYXMgbm90IGJlZW4gc2V0LCBhbmQgdGhlIGNyZWF0ZWQKKyAqIGhhbmRsZXIgYmVjb21lcyB0aGUgb3duZXIgb2YgdGhlIGl0ZXJhdG9yIGluZm9ybWF0aW9uIGlmIHRoZSBmbGFnCisgKiBORVRTTk1QX0hBTkRMRVJfT1dOU19JSU5GTyBoYXMgYmVlbiBzZXQuCisgKi8KIG5ldHNubXBfbWliX2hhbmRsZXIgKgogbmV0c25tcF9nZXRfdGFibGVfaXRlcmF0b3JfaGFuZGxlcihuZXRzbm1wX2l0ZXJhdG9yX2luZm8gKmlpbmZvKQogewpAQCAtMTgyLDYgKzIyOSw4IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgbWUtPm15dm9pZCA9IGlpbmZvOworICAgIGlmIChpaW5mby0+ZmxhZ3MgJiBORVRTTk1QX0hBTkRMRVJfT1dOU19JSU5GTykKKyAgICAgICAgbmV0c25tcF9oYW5kbGVyX293bnNfaXRlcmF0b3JfaW5mbyhtZSk7CiAgICAgcmV0dXJuIG1lOwogfQogCkBAIC0xOTUsNyArMjQ0LDExIEBACiAgKgogICogQHBhcmFtIHJlZ2luZm8gaXMgYSBwb2ludGVyIHRvIGEgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiBzdHJ1Y3QKICAqCi0gKiBAcGFyYW0gaWluZm8gaXMgYSBwb2ludGVyIHRvIGEgbmV0c25tcF9pdGVyYXRvcl9pbmZvIHN0cnVjdAorICogQHBhcmFtIGlpbmZvIEEgcG9pbnRlciB0byBhIG5ldHNubXBfaXRlcmF0b3JfaW5mbyBzdHJ1Y3QuIElmIHRoZSBmbGFnCisgKiBORVRTTk1QX0hBTkRMRVJfT1dOU19JSU5GTyBpcyBub3Qgc2V0IGluIGlpbmZvLT5mbGFncywgdGhlIGNhbGxlciByZW1haW5zCisgKiB0aGUgb3duZXIgb2YgdGhpcyBzdHJ1Y3R1cmUuIEFuZCBpZiB0aGUgZmxhZyBORVRTTk1QX0hBTkRMRVJfT1dOU19JSU5GTyBpcworICogc2V0IGluIGlpbmZvLT5mbGFncywgb3duZXJzaGlwIG9mIHRoaXMgZGF0YSBzdHJ1Y3R1cmUgaXMgcGFzc2VkIHRvIHRoZQorICogaGFuZGxlci4KICAqCiAgKiBAcmV0dXJuIE1JQl9SRUdJU1RFUkVEX09LIGlzIHJldHVybmVkIGlmIHRoZSByZWdpc3RyYXRpb24gd2FzIGEgc3VjY2Vzcy4KICAqCUZhaWx1cmVzIGFyZSBNSUJfUkVHSVNUUkFUSU9OX0ZBSUxFRCwgTUlCX0RVUExJQ0FURV9SRUdJU1RSQVRJT04uCkBAIC0yMDYsNyArMjU5LDkgQEAKIG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IobmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvICppaW5mbykKIHsKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TVEFTSF9DQUNIRQogICAgIHJlZ2luZm8tPm1vZGVzIHw9IEhBTkRMRVJfQ0FOX1NUQVNIOworI2VuZGlmICAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NUQVNIX0NBQ0hFICovCiAgICAgbmV0c25tcF9pbmplY3RfaGFuZGxlcihyZWdpbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9nZXRfdGFibGVfaXRlcmF0b3JfaGFuZGxlcihpaW5mbykpOwogICAgIGlmICghaWluZm8pCkBAIC0yMzcsNiArMjkyLDcgQEAKICAgICByZXR1cm4gbmV0c25tcF9yZXF1ZXN0X2dldF9saXN0X2RhdGEocmVxdWVzdCwgVEFCTEVfSVRFUkFUT1JfTkFNRSk7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9JVEVSQVRPUl9JTlNFUlRfQ09OVEVYVAogLyoqIGluc2VydHMgdGFibGVfaXRlcmF0b3Igc3BlY2lmaWMgZGF0YSBmb3IgYSBuZXdseQogICogIGNyZWF0ZWQgcm93IGludG8gYSByZXF1ZXN0ICovCiBORVRTTk1QX0lOTElORSB2b2lkCkBAIC0zMDEsNiArMzU3LDcgQEAKICAgICAgICAgfQogICAgIH0KIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0lURVJBVE9SX0lOU0VSVF9DT05URVhUICovCiAKICNkZWZpbmUgVElfUkVRVUVTVF9DQUNIRSAidGlfY2FjaGUiCiAKQEAgLTQwMywxMiArNDYwLDE0IEBACiAgICAgdm9pZCAgICAgICAgICAgKmNhbGxiYWNrX2RhdGFfY29udGV4dCA9IE5VTEw7CiAgICAgdGlfY2FjaGVfaW5mbyAgKnRpX2luZm8gPSBOVUxMOwogICAgIGludCAgICAgICAgICAgICByZXF1ZXN0X2NvdW50ID0gMDsKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TVEFTSF9DQUNIRQogICAgIG5ldHNubXBfb2lkX3N0YXNoX25vZGUgKipjaW5mbyA9IE5VTEw7CiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICpvbGRfaW5kZXhlcyA9IE5VTEwsICp2YjsKICAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICp0YWJsZV9yZWdfaW5mbyA9IE5VTEw7CiAgICAgaW50IGk7CiAgICAgbmV0c25tcF9kYXRhX2xpc3QgICAgKmxkYXRhID0gTlVMTDsKLSAgICAKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NUQVNIX0NBQ0hFICovCisKICAgICBpaW5mbyA9IChuZXRzbm1wX2l0ZXJhdG9yX2luZm8gKikgaGFuZGxlci0+bXl2b2lkOwogICAgIGlmICghaWluZm8gfHwgIXJlZ2luZm8gfHwgIXJlcWluZm8pCiAgICAgICAgIHJldHVybiBTTk1QX0VSUl9HRU5FUlI7CkBAIC00MzQsNiArNDkzLDcgQEAKIAogICAgIC8qIHByZWxpbWluYXJ5IGFuYWx5c2lzICovCiAgICAgc3dpdGNoIChyZXFpbmZvLT5tb2RlKSB7CisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU1RBU0hfQ0FDSEUKICAgICBjYXNlIE1PREVfR0VUX1NUQVNIOgogICAgICAgICBjaW5mbyA9IG5ldHNubXBfZXh0cmFjdF9zdGFzaF9jYWNoZShyZXFpbmZvKTsKICAgICAgICAgdGFibGVfcmVnX2luZm8gPSBuZXRzbm1wX2ZpbmRfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8ocmVnaW5mbyk7CkBAIC00NTIsNiArNTEyLDcgQEAKICAgICAgICAgLyogcmVtZW1iZXIgdGhlIGluZGV4ZXMgdGhhdCB3ZXJlIG9yaWdpbmFsbHkgcGFyc2VkLiAqLwogICAgICAgICBvbGRfaW5kZXhlcyA9IHRhYmxlX2luZm8tPmluZGV4ZXM7CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU1RBU0hfQ0FDSEUgKi8KIAogICAgIGNhc2UgTU9ERV9HRVRORVhUOgogICAgICAgICBmb3IocmVxdWVzdCA9IHJlcXVlc3RzIDsgcmVxdWVzdDsgcmVxdWVzdCA9IHJlcXVlc3QtPm5leHQpIHsKQEAgLTUwNSw4ICs1NjYsMTEgQEAKICAgICAgKi8KICAgICBpZiAocmVxaW5mby0+bW9kZSA9PSBNT0RFX0dFVCB8fAogICAgICAgICByZXFpbmZvLT5tb2RlID09IE1PREVfR0VUTkVYVCB8fAotICAgICAgICByZXFpbmZvLT5tb2RlID09IE1PREVfR0VUX1NUQVNIIHx8Ci0gICAgICAgIHJlcWluZm8tPm1vZGUgPT0gTU9ERV9TRVRfUkVTRVJWRTEpIHsKKyAgICAgICAgcmVxaW5mby0+bW9kZSA9PSBNT0RFX0dFVF9TVEFTSAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKKyAgICAgICAgfHwgcmVxaW5mby0+bW9kZSA9PSBNT0RFX1NFVF9SRVNFUlZFMQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworICAgICAgICApIHsKICAgICAgICAgLyoKICAgICAgICAgICogQ291bnQgdGhlIG51bWJlciBvZiByZXF1ZXN0IGluIHRoZSBsaXN0LAogICAgICAgICAgKiAgIHNvIHRoYXQgd2UnbGwga25vdyB3aGVuIHdlJ3JlIGZpbmlzaGVkCkBAIC01OTUsNyArNjU5LDkgQEAKIAogICAgICAgICAgICAgICAgICAgICBzd2l0Y2gocmVxaW5mby0+bW9kZSkgewogICAgICAgICAgICAgICAgICAgICBjYXNlIE1PREVfR0VUOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgICAgICAgICAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMToKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGxvb2tpbmcgZm9yIGV4YWN0IG1hdGNoZXMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkX29pZF9ub2FsbG9jKG15bmFtZSwgTUFYX09JRF9MRU4sICZteW5hbWVfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb2lkLCBjb2xvaWRfbGVuLCBpbmRleF9zZWFyY2gpOwpAQCAtNjMwLDYgKzY5Niw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NUQVNIX0NBQ0hFCiAgICAgICAgICAgICAgICAgICAgIGNhc2UgTU9ERV9HRVRfU1RBU0g6CiAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjb2xsZWN0IGRhdGEgZm9yIGVhY2ggY29sdW1uIGZvciBldmVyeSByb3cgKi8KICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkX29pZF9ub2FsbG9jKG15bmFtZSwgTUFYX09JRF9MRU4sICZteW5hbWVfbGVuLApAQCAtNjgxLDYgKzc0OCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICByZXFpbmZvLT5tb2RlID0gTU9ERV9HRVRfU1RBU0g7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRpZiAgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TVEFTSF9DQUNIRSAqLwogCiAgICAgICAgICAgICAgICAgICAgIGNhc2UgTU9ERV9HRVRORVhUOgogICAgICAgICAgICAgICAgICAgICAgICAgLyogbG9va2luZyBmb3IgIm5leHQiIG1hdGNoZXMgKi8KQEAgLTcyMCwxMiArNzg4LDE0IEBACiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgICAgICAgICAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMjoKICAgICAgICAgICAgICAgICAgICAgY2FzZSBNT0RFX1NFVF9GUkVFOgogICAgICAgICAgICAgICAgICAgICBjYXNlIE1PREVfU0VUX1VORE86CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgTU9ERV9TRVRfQ09NTUlUOgogICAgICAgICAgICAgICAgICAgICAgICAgLyogbmVlZGVkIHByb2Nlc3NpbmcgYWxyZWFkeSBkb25lIGluIFJFU0VSVkUxICovCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwKQEAgLTc4OCw4ICs4NTgsMTEgQEAKICAgICB9CiAKICAgICBpZiAocmVxaW5mby0+bW9kZSA9PSBNT0RFX0dFVCB8fAotICAgICAgICByZXFpbmZvLT5tb2RlID09IE1PREVfR0VUTkVYVCB8fAotICAgICAgICByZXFpbmZvLT5tb2RlID09IE1PREVfU0VUX1JFU0VSVkUxKSB7CisgICAgICAgIHJlcWluZm8tPm1vZGUgPT0gTU9ERV9HRVRORVhUCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAorICAgICAgICB8fCByZXFpbmZvLT5tb2RlID09IE1PREVfU0VUX1JFU0VSVkUxCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgICAgICkgewogICAgICAgICAvKiBwZXIgcmVxdWVzdCBsYXN0IG1pbnV0ZSBwcm9jZXNzaW5nICovCiAgICAgICAgIGZvcihyZXF1ZXN0ID0gcmVxdWVzdHMgOyByZXF1ZXN0OyByZXF1ZXN0ID0gcmVxdWVzdC0+bmV4dCkgewogICAgICAgICAgICAgaWYgKHJlcXVlc3QtPnByb2Nlc3NlZCkKQEAgLTgyNSw3ICs4OTgsOSBAQAogICAgICAgICAgICAgICAgIC8qIEZBTEwgVEhST1VHSCAqLwogCiAgICAgICAgICAgICBjYXNlIE1PREVfR0VUOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICAgICAgICAgaWYgKHRpX2luZm8tPmRhdGFfY29udGV4dCkKICAgICAgICAgICAgICAgICAgICAgLyogd2UgZG9uJ3QgYWRkIGEgZnJlZSBwb2ludGVyLCBzaW5jZSBpdCdzIGluIHRoZQogICAgICAgICAgICAgICAgICAgICAgICBUSV9SRVFVRVNUX0NBQ0hFIGluc3RlYWQgKi8KQEAgLTg0OCwxMCArOTIzLDEyIEBACiAgICAgICAgIGlmIChyZXFpbmZvLT5tb2RlID09IE1PREVfR0VUTkVYVCkgewogICAgICAgICAgICAgcmVxaW5mby0+bW9kZSA9IE1PREVfR0VUOwogICAgICAgICB9CisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU1RBU0hfQ0FDSEUKICAgICB9IGVsc2UgaWYgKHJlcWluZm8tPm1vZGUgPT0gTU9ERV9HRVRfU1RBU0gpIHsKICAgICAgICAgbmV0c25tcF9mcmVlX3JlcXVlc3RfZGF0YV9zZXRzKHJlcXRtcCk7CiAgICAgICAgIFNOTVBfRlJFRShyZXF0bXApOwogICAgICAgICB0YWJsZV9pbmZvLT5pbmRleGVzID0gb2xkX2luZGV4ZXM7CisjZW5kaWYgIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU1RBU0hfQ0FDSEUgKi8KICAgICB9CiAKIApAQCAtODgyLDYgKzk1OSw3IEBACiAgKgogICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfSVRFUkFUT1JfUk9XX0ZJUlNUCiB2b2lkICoKIG5ldHNubXBfaXRlcmF0b3Jfcm93X2ZpcnN0KCBuZXRzbm1wX2l0ZXJhdG9yX2luZm8gKmlpbmZvICkgewogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqdnAxLCAqdnAyOwpAQCAtOTAwLDYgKzk3OCw3IEBACiAgICAgc25tcF9mcmVlX3ZhcmJpbmQoIHZwMSApOwogICAgIHJldHVybiBjdHgyOyAgLyogb3IgKmN0eDIgPz8gKi8KIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0lURVJBVE9SX1JPV19GSVJTVCAqLwogCiB2b2lkICoKIG5ldHNubXBfaXRlcmF0b3Jfcm93X2dldCggbmV0c25tcF9pdGVyYXRvcl9pbmZvICppaW5mbywgdm9pZCAqcm93ICkKQEAgLTExMDgsNiArMTE4Nyw3IEBACiAgICAgcmV0dXJuICggdnAyID8gY3R4MiA6IE5VTEwgKTsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0lURVJBVE9SX1JPV19DT1VOVAogaW50CiBuZXRzbm1wX2l0ZXJhdG9yX3Jvd19jb3VudCggbmV0c25tcF9pdGVyYXRvcl9pbmZvICppaW5mbyApCiB7CkBAIC0xMTQzLDYgKzEyMjMsNyBAQAogICAgIHNubXBfZnJlZV92YXJiaW5kKCB2cDEgKTsKICAgICByZXR1cm4gaTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX0lURVJBVE9SX1JPV19DT1VOVCAqLwogCiAKIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL2FnZW50L2hlbHBlcnMvdGFibGVfcm93LmMgYi9hZ2VudC9oZWxwZXJzL3RhYmxlX3Jvdy5jCmluZGV4IGJiYzQ4NGYuLjJhMzNmMjMgMTAwNjQ0Ci0tLSBhL2FnZW50L2hlbHBlcnMvdGFibGVfcm93LmMKKysrIGIvYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYwpAQCAtOCw2ICs4LDcgQEAKICNkZWZpbmUgVEFCTEVfUk9XX0RBVEEgICJ0YWJsZV9yb3ciCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaWYgSEFWRV9TVFJJTkdfSAogI2luY2x1ZGUgPHN0cmluZy5oPgpAQCAtMjMsNiArMjQsMTEgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRhYmxlX3Jvd19hbGwsIG1pYl9oZWxwZXJzKQorCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfcm93X2V4dHJhY3QsIHRhYmxlX3Jvd19hbGwpCisKKwogLyoKICAqIHNubXAuaDojZGVmaW5lIFNOTVBfTVNHX0lOVEVSTkFMX1NFVF9CRUdJTiAgICAgICAgLTEgCiAgKiBzbm1wLmg6I2RlZmluZSBTTk1QX01TR19JTlRFUk5BTF9TRVRfUkVTRVJWRTEgICAgIDAgCkBAIC0xNTQsMTEgKzE2MCwxMyBAQAogCiAKIC8qKiByZXR1cm4gdGhlIHJvdyBkYXRhIHN0cnVjdHVyZSBzdXBwbGllZCB0byB0aGUgdGFibGVfcm93IGhlbHBlciAqLworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX1JPV19FWFRSQUNUCiB2b2lkICoKIG5ldHNubXBfdGFibGVfcm93X2V4dHJhY3QobmV0c25tcF9yZXF1ZXN0X2luZm8gKnJlcXVlc3QpCiB7CiAgICAgcmV0dXJuIG5ldHNubXBfcmVxdWVzdF9nZXRfbGlzdF9kYXRhKHJlcXVlc3QsIFRBQkxFX1JPV19EQVRBKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX1JPV19FWFRSQUNUICovCiAvKiogQGNvbmQgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdpdCBhL2FnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYyBiL2FnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYwppbmRleCBjZjE2NmUzLi44ODY1MDg0IDEwMDY0NAotLS0gYS9hZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMKKysrIGIvYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jCkBAIC0xLDQgKzEsNSBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CkBAIC0xOSw2ICsyMCwyMiBAQAogI2luY2x1ZGUgPGRtYWxsb2MuaD4KICNlbmRpZgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfdGRhdGFfYWxsLCBtaWJfaGVscGVycykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0YWJsZV90ZGF0YSwgdGFibGVfdGRhdGFfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRhYmxlX3RkYXRhX2RlbGV0ZV90YWJsZSwgdGFibGVfdGRhdGFfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRhYmxlX3RkYXRhX2V4dHJhY3RfdGFibGUsIHRhYmxlX3RkYXRhX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0YWJsZV90ZGF0YV9yZW1vdmVfcm93LCB0YWJsZV90ZGF0YV9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGFibGVfdGRhdGFfaW5zZXJ0X3JvdywgdGFibGVfdGRhdGFfYWxsKQorCisjaWZkZWYgTkVUU05NUF9GRUFUVVJFX1JFUVVJUkVfVEFCTEVfVERBVEEKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX2NvbnRhaW5lcl9yb3dfaW5zZXJ0KQorI2lmZGVmIE5FVFNOTVBfRkVBVFVSRV9SRVFVSVJFX1RBQkxFX1REQVRBX1JFTU9WRV9ST1cKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX2NvbnRhaW5lcl9yb3dfcmVtb3ZlKQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRVFVSVJFX1RBQkxFX1REQVRBX1JFTU9WRV9ST1cgKi8KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVRVUlSRV9UQUJMRV9UREFUQSAqLworCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfVERBVEEKKwogLyoqIEBkZWZncm91cCB0ZGF0YSB0ZGF0YQogICogIEltcGxlbWVudCBhIHRhYmxlIHdpdGggZGF0YW1hdHRlZCBzdG9yYWdlLgogICogIEBpbmdyb3VwIHRhYmxlCkBAIC03Miw2ICs4OSw3IEBACiAgICAgcmV0dXJuIHRhYmxlOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfVERBVEFfREVMRVRFX1RBQkxFCiAvKiogY3JlYXRlcyBhbmQgcmV0dXJucyBhICd0ZGF0YScgdGFibGUgZGF0YSBzdHJ1Y3R1cmUgKi8KIHZvaWQKIG5ldHNubXBfdGRhdGFfZGVsZXRlX3RhYmxlKG5ldHNubXBfdGRhdGEgKnRhYmxlKQpAQCAtODcsNiArMTA1LDcgQEAKICAgICBTTk1QX0ZSRUUodGFibGUpOwogICAgIHJldHVybjsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX1REQVRBX0RFTEVURV9UQUJMRSAqLwogCiAvKiogY3JlYXRlcyBhbmQgcmV0dXJucyBhIHBvaW50ZXIgdG8gbmV3IHJvdyBkYXRhIHN0cnVjdHVyZSAqLwogbmV0c25tcF90ZGF0YV9yb3cgKgpAQCAtOTcsNiArMTE2LDggQEAKIH0KIAogLyoqIGNsb25lcyBhICd0ZGF0YScgcm93LiBET0VTIE5PVCBDTE9ORSBUSEUgVEFCTEUtU1BFQ0lGSUMgRU5UUlkgREFUQS4gKi8KK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0ZGF0YV9jbG9uZV9yb3csIHRhYmxlX3RkYXRhX2FsbCkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UREFUQV9DTE9ORV9ST1cKIG5ldHNubXBfdGRhdGFfcm93ICoKIG5ldHNubXBfdGRhdGFfY2xvbmVfcm93KG5ldHNubXBfdGRhdGFfcm93ICpyb3cpCiB7CkBAIC0xMjksOSArMTUwLDEyIEBACiAKICAgICByZXR1cm4gbmV3cm93OwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVERBVEFfQ0xPTkVfUk9XICovCiAKIC8qKiBjb3B5IHRoZSBjb250ZW50cyBvZiBhICd0ZGF0YScgcm93LgogICAgIERPRVMgTk9UIENPUFkgVEhFIFRBQkxFLVNQRUNJRklDIEVOVFJZIERBVEEuICovCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGRhdGFfY29weV9yb3csIHRhYmxlX3RkYXRhX2FsbCkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UREFUQV9DT1BZX1JPVwogaW50CiBuZXRzbm1wX3RkYXRhX2NvcHlfcm93KG5ldHNubXBfdGRhdGFfcm93ICpkc3Rfcm93LCBuZXRzbm1wX3RkYXRhX3JvdyAqc3JjX3JvdykKIHsKQEAgLTE1NSw2ICsxNzksNyBAQAogCiAgICAgcmV0dXJuIDA7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UREFUQV9DT1BZX1JPVyAqLwogCiAvKiogZGVsZXRlcyB0aGUgbWVtb3J5IHVzZWQgYnkgdGhlIHNwZWNpZmllZCByb3cKICAqICByZXR1cm5zIHRoZSB0YWJsZS1zcGVjaWZpYyBlbnRyeSBkYXRhCkBAIC0yMzEsNiArMjU2LDggQEAKIH0KIAogLyoqIHN3YXBzIG91dCBvcmlncm93IHdpdGggbmV3cm93LiAgVGhpcyBkb2VzICpub3QqIGRlbGV0ZS9mcmVlIGFueXRoaW5nISAqLworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRkYXRhX3JlcGxhY2Vfcm93LCB0YWJsZV90ZGF0YV9hbGwpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVERBVEFfUkVQTEFDRV9ST1cKIHZvaWQKIG5ldHNubXBfdGRhdGFfcmVwbGFjZV9yb3cobmV0c25tcF90ZGF0YSAqdGFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF90ZGF0YV9yb3cgKm9yaWdyb3csCkBAIC0yMzksNiArMjY2LDcgQEAKICAgICBuZXRzbm1wX3RkYXRhX3JlbW92ZV9yb3codGFibGUsIG9yaWdyb3cpOwogICAgIG5ldHNubXBfdGRhdGFfYWRkX3Jvdyh0YWJsZSwgbmV3cm93KTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1REQVRBX1JFUExBQ0VfUk9XICovCiAKIC8qKgogICogcmVtb3ZlcyBhIHJvdyBmcm9tIHRoZSBnaXZlbiB0YWJsZSBhbmQgcmV0dXJucyBpdCAobm8gZnJlZSdzIGNhbGxlZCkKQEAgLTMzMyw3ICszNjEsOSBAQAogICAgICAgICBuZWVkX3Byb2Nlc3NpbmcgPSAwOyAvKiBvbmx5IG5lZWQgcHJvY2Vzc2luZyBpZiBzb21lIHZhcnMgZm91bmQgKi8KICAgICAgICAgLyoqIEZhbGwgdGhyb3VnaCAqLwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICAgICAgICAgZm9yIChyZXF1ZXN0ID0gcmVxdWVzdHM7IHJlcXVlc3Q7IHJlcXVlc3QgPSByZXF1ZXN0LT5uZXh0KSB7CiAgICAgICAgICAgICBpZiAocmVxdWVzdC0+cHJvY2Vzc2VkKQpAQCAtMzgwLDEzICs0MTAsMTcgQEAKICAgICAgICAgICAgICAgICAgIHRhYmxlLT5jb250YWluZXIsIFRBQkxFX0NPTlRBSU5FUl9LRVlfTkVUU05NUF9JTkRFWCk7CiB9CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0ZGF0YV91bnJlZ2lzdGVyLCB0YWJsZV90ZGF0YV9hbGwpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVERBVEFfVU5SRUdJU1RFUgogaW50CiBuZXRzbm1wX3RkYXRhX3VucmVnaXN0ZXIobmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAgICAqcmVnaW5mbykKIHsKICAgICAvKiBmcmVlIHRhYmxlOyAqLwogICAgIHJldHVybiBuZXRzbm1wX2NvbnRhaW5lcl90YWJsZV91bnJlZ2lzdGVyKHJlZ2luZm8pOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVERBVEFfVU5SRUdJU1RFUiAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfVERBVEFfRVhUUkFDVF9UQUJMRQogLyoqIGV4dHJhY3RzIHRoZSB0ZGF0YSB0YWJsZSBmcm9tIHRoZSByZXF1ZXN0IHN0cnVjdHVyZSAqLwogbmV0c25tcF90ZGF0YSAqCiBuZXRzbm1wX3RkYXRhX2V4dHJhY3RfdGFibGUobmV0c25tcF9yZXF1ZXN0X2luZm8gKnJlcXVlc3QpCkBAIC0zOTQsOCArNDI4LDExIEBACiAgICAgcmV0dXJuIChuZXRzbm1wX3RkYXRhICopIG5ldHNubXBfcmVxdWVzdF9nZXRfbGlzdF9kYXRhKHJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRBQkxFX1REQVRBX1RBQkxFKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX1REQVRBX0VYVFJBQ1RfVEFCTEUgKi8KIAogLyoqIGV4dHJhY3RzIHRoZSB0ZGF0YSBjb250YWluZXIgZnJvbSB0aGUgcmVxdWVzdCBzdHJ1Y3R1cmUgKi8KK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0ZGF0YV9leHRyYWN0X2NvbnRhaW5lciwgdGFibGVfdGRhdGFfYWxsKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1REQVRBX0VYVFJBQ1RfQ09OVEFJTkVSCiBuZXRzbm1wX2NvbnRhaW5lciAqCiBuZXRzbm1wX3RkYXRhX2V4dHJhY3RfY29udGFpbmVyKG5ldHNubXBfcmVxdWVzdF9pbmZvICpyZXF1ZXN0KQogewpAQCAtNDAzLDYgKzQ0MCw3IEBACiAgICAgICAgIG5ldHNubXBfcmVxdWVzdF9nZXRfbGlzdF9kYXRhKHJlcXVlc3QsIFRBQkxFX1REQVRBX1RBQkxFKTsKICAgICByZXR1cm4gKCB0ZGF0YSA/IHRkYXRhLT5jb250YWluZXIgOiBOVUxMICk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UREFUQV9FWFRSQUNUX0NPTlRBSU5FUiAqLwogCiAvKiogZXh0cmFjdHMgdGhlIHRkYXRhIHJvdyBiZWluZyBhY2Nlc3NlZCBmcm9tIHRoZSByZXF1ZXN0IHN0cnVjdHVyZSAqLwogbmV0c25tcF90ZGF0YV9yb3cgKgpAQCAtNDI0LDYgKzQ2Miw3IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEFCTEVfVERBVEFfSU5TRVJUX1JPVwogLyoqIGluc2VydHMgYSBuZXdseSBjcmVhdGVkIHRkYXRhIHJvdyBpbnRvIGEgcmVxdWVzdCAqLwogTkVUU05NUF9JTkxJTkUgdm9pZAogbmV0c25tcF9pbnNlcnRfdGRhdGFfcm93KG5ldHNubXBfcmVxdWVzdF9pbmZvICpyZXF1ZXN0LApAQCAtNDMxLDcgKzQ3MCw5IEBACiB7CiAgICAgbmV0c25tcF9jb250YWluZXJfdGFibGVfcm93X2luc2VydChyZXF1ZXN0LCAobmV0c25tcF9pbmRleCAqKXJvdyk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9UREFUQV9JTlNFUlRfUk9XICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9UREFUQV9SRU1PVkVfUk9XCiAvKiogaW5zZXJ0cyBhIG5ld2x5IGNyZWF0ZWQgdGRhdGEgcm93IGludG8gYSByZXF1ZXN0ICovCiBORVRTTk1QX0lOTElORSB2b2lkCiBuZXRzbm1wX3JlbW92ZV90ZGF0YV9yb3cobmV0c25tcF9yZXF1ZXN0X2luZm8gKnJlcXVlc3QsCkBAIC00MzksNiArNDgwLDcgQEAKIHsKICAgICBuZXRzbm1wX2NvbnRhaW5lcl90YWJsZV9yb3dfcmVtb3ZlKHJlcXVlc3QsIChuZXRzbm1wX2luZGV4ICopcm93KTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RBQkxFX1REQVRBX1JFTU9WRV9ST1cgKi8KIAogCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC01MzYsNiArNTc4LDggQEAKICAgICByZXR1cm4gKG5ldHNubXBfdGRhdGFfcm93KilDT05UQUlORVJfTkVYVCggdGFibGUtPmNvbnRhaW5lciwgJmluZGV4ICk7CiB9CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0ZGF0YV9yb3dfY291bnQsIHRhYmxlX3RkYXRhX2FsbCkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UREFUQV9ST1dfQ09VTlQKIGludAogbmV0c25tcF90ZGF0YV9yb3dfY291bnQobmV0c25tcF90ZGF0YSAqdGFibGUpCiB7CkBAIC01NDMsNiArNTg3LDcgQEAKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIENPTlRBSU5FUl9TSVpFKCB0YWJsZS0+Y29udGFpbmVyICk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UREFUQV9ST1dfQ09VTlQgKi8KIAogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICoKQEAgLTU1Miw2ICs1OTcsOCBAQAogCiAKIC8qKiBjb21wYXJlIGEgcm93IHdpdGggdGhlIGdpdmVuIGluZGV4IHZhbHVlcyAqLworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRkYXRhX2NvbXBhcmVfaWR4LCB0YWJsZV90ZGF0YV9hbGwpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVERBVEFfQ09NUEFSRV9JRFgKIGludAogbmV0c25tcF90ZGF0YV9jb21wYXJlX2lkeChuZXRzbm1wX3RkYXRhX3JvdyAgICAgKnJvdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICppbmRleGVzKQpAQCAtNTYzLDYgKzYxMCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhlcyk7CiAgICAgcmV0dXJuIG5ldHNubXBfdGRhdGFfY29tcGFyZV9vaWQocm93LCBzZWFyY2hmb3IsIHNlYXJjaGZvcl9sZW4pOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVERBVEFfQ09NUEFSRV9JRFggKi8KIAogLyoqIGNvbXBhcmUgYSByb3cgd2l0aCB0aGUgZ2l2ZW4gaW5kZXggT0lEICovCiBpbnQKQEAgLTU5NCw2ICs2NDIsMTAgQEAKICAgICByZXR1cm4gc25tcF9vaWR0cmVlX2NvbXBhcmUoIGluZGV4LT5vaWRzLCBpbmRleC0+bGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGFyZXRvLCAgIGNvbXBhcmV0b19sZW4pOwogfQorI2Vsc2UgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9UREFUQSAqLworbmV0c25tcF9mZWF0dXJlX3VudXNlZCh0YWJsZV90ZGF0YSk7CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQUJMRV9UREFUQSAqLworCiAKIC8qKiBAfSAKICAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvaGVscGVycy93YXRjaGVyLmMgYi9hZ2VudC9oZWxwZXJzL3dhdGNoZXIuYwppbmRleCBkZTU5NjgwLi45YjM5MzNiIDEwMDY0NAotLS0gYS9hZ2VudC9oZWxwZXJzL3dhdGNoZXIuYworKysgYi9hZ2VudC9oZWxwZXJzL3dhdGNoZXIuYwpAQCAtMSw0ICsxLDUgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgpAQCAtMTksNiArMjAsMTkgQEAKICNkZWZpbmUgZnJlZV93cmFwcGVyIGZyZWUKICNlbmRpZgogCituZXRzbm1wX2ZlYXR1cmVfcHJvdmlkZSh3YXRjaGVyX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih3YXRjaGVyX2FsbCwgbWliX2hlbHBlcnMpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yod2F0Y2hlcl9jcmVhdGVfaW5mbzYsIHdhdGNoZXJfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHdhdGNoZXJfcmVnaXN0ZXJfdGltZXN0YW1wLCB3YXRjaGVyX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih3YXRjaGVyX3Vsb25nX3NjYWxhciwgd2F0Y2hlcl9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yod2F0Y2hlcl9yZWFkX29ubHlfdWxvbmdfc2NhbGFyLCB3YXRjaGVyX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih3YXRjaGVyX3JlYWRfb25seV9pbnRfc2NhbGFyLCB3YXRjaGVyX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih3YXRjaGVyX2xvbmdfc2NhbGFyLCB3YXRjaGVyX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih3YXRjaGVyX3JlYWRfb25seV9sb25nX3NjYWxhciwgd2F0Y2hlcl9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yod2F0Y2hlcl9pbnRfc2NhbGFyLCB3YXRjaGVyX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihyZWFkX29ubHlfY291bnRlcjMyX3NjYWxhciwgd2F0Y2hlcl9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yod2F0Y2hlcl9zcGlubG9jaywgd2F0Y2hlcl9hbGwpCisKIC8qKiBAZGVmZ3JvdXAgd2F0Y2hlciB3YXRjaGVyCiAgKiAgV2F0Y2ggYSBzcGVjaWZpZWQgdmFyaWFibGUgYW5kIHByb2Nlc3MgaXQgYXMgYW4gaW5zdGFuY2Ugb3Igc2NhbGFyIG9iamVjdAogICogIEBpbmdyb3VwIGxlYWYKQEAgLTUxLDYgKzY1LDcgQEAKICAgICByZXR1cm4gd2luZm87CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9XQVRDSEVSX0NSRUFURV9JTkZPNgogbmV0c25tcF93YXRjaGVyX2luZm8gKgogbmV0c25tcF9jcmVhdGVfd2F0Y2hlcl9pbmZvNih2b2lkICpkYXRhLCBzaXplX3Qgc2l6ZSwgdV9jaGFyIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmbGFncywgc2l6ZV90IG1heF9zaXplLCBzaXplX3QqIHNpemVfcCkKQEAgLTYxLDYgKzc2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV9wKTsKICAgICByZXR1cm4gd2luZm87CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9XQVRDSEVSX0NSRUFURV9JTkZPNiAqLwogCiBuZXRzbm1wX3dhdGNoZXJfaW5mbyAqCiBuZXRzbm1wX2luaXRfd2F0Y2hlcl9pbmZvKG5ldHNubXBfd2F0Y2hlcl9pbmZvICp3aW5mbywKQEAgLTgyLDYgKzk4LDExIEBACiAgICAgcmV0dXJuIHdpbmZvOwogfQogCisvKioKKyAqIFJlZ2lzdGVyIGEgd2F0Y2hlZCBzY2FsYXIuIFRoZSBjYWxsZXIgcmVtYWlucyB0aGUgb3duZXIgb2Ygd2F0Y2hpbmZvLgorICoKKyAqIEBzZWUgbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX2luc3RhbmNlMigpCisgKi8KIGludAogbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX2luc3RhbmNlKG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKnJlZ2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF93YXRjaGVyX2luZm8gICAgICAgICAqd2F0Y2hpbmZvKQpAQCAtOTUsNiArMTE2LDMwIEBACiAgICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfaW5zdGFuY2UocmVnaW5mbyk7CiB9CiAKKy8qKgorICogUmVnaXN0ZXIgYSB3YXRjaGVkIHNjYWxhci4gT3duZXJzaGlwIG9mIHdhdGNoaW5mbyBpcyB0cmFuc2ZlcnJlZCB0byB0aGUgaGFuZGxlci4KKyAqCisgKiBAc2VlIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9pbnN0YW5jZSgpCisgKi8KK2ludAorbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX2luc3RhbmNlMihuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWdpbmZvLAorCQkJCSAgIG5ldHNubXBfd2F0Y2hlcl9pbmZvICAgICAgICAgKndhdGNoaW5mbykKK3sKKyAgICBuZXRzbm1wX21pYl9oYW5kbGVyICp3aGFuZGxlcjsKKworICAgIHdoYW5kbGVyICAgICAgICAgPSBuZXRzbm1wX2dldF93YXRjaGVyX2hhbmRsZXIoKTsKKyAgICB3aGFuZGxlci0+bXl2b2lkID0gKHZvaWQgKil3YXRjaGluZm87CisgICAgbmV0c25tcF9vd25zX3dhdGNoZXJfaW5mbyh3aGFuZGxlcik7CisKKyAgICBuZXRzbm1wX2luamVjdF9oYW5kbGVyKHJlZ2luZm8sIHdoYW5kbGVyKTsKKyAgICByZXR1cm4gbmV0c25tcF9yZWdpc3Rlcl9pbnN0YW5jZShyZWdpbmZvKTsKK30KKworLyoqCisgKiBSZWdpc3RlciBhIHdhdGNoZWQgc2NhbGFyLiBUaGUgY2FsbGVyIHJlbWFpbnMgdGhlIG93bmVyIG9mIHdhdGNoaW5mby4KKyAqCisgKiBAc2VlIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zY2FsYXIyKCkKKyAqLwogaW50CiBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfc2NhbGFyKG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKnJlZ2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF93YXRjaGVyX2luZm8gICAgICAgICAqd2F0Y2hpbmZvKQpAQCAtMTA4LDYgKzE1MywzNCBAQAogICAgIHJldHVybiBuZXRzbm1wX3JlZ2lzdGVyX3NjYWxhcihyZWdpbmZvKTsKIH0KIAorLyoqCisgKiBSZWdpc3RlciBhIHdhdGNoZWQgc2NhbGFyLiBPd25lcnNoaXAgb2Ygd2F0Y2hpbmZvIGlzIHRyYW5zZmVycmVkIHRvIHRoZSBoYW5kbGVyLgorICoKKyAqIEBzZWUgbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX3NjYWxhcigpCisgKi8KK2ludAorbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX3NjYWxhcjIobmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3dhdGNoZXJfaW5mbyAgICAgICAgICp3YXRjaGluZm8pCit7CisgICAgbmV0c25tcF9taWJfaGFuZGxlciAqd2hhbmRsZXI7CisKKyAgICB3aGFuZGxlciAgICAgICAgID0gbmV0c25tcF9nZXRfd2F0Y2hlcl9oYW5kbGVyKCk7CisgICAgd2hhbmRsZXItPm15dm9pZCA9ICh2b2lkICopd2F0Y2hpbmZvOworICAgIG5ldHNubXBfb3duc193YXRjaGVyX2luZm8od2hhbmRsZXIpOworCisgICAgbmV0c25tcF9pbmplY3RfaGFuZGxlcihyZWdpbmZvLCB3aGFuZGxlcik7CisgICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfc2NhbGFyKHJlZ2luZm8pOworfQorCit2b2lkCituZXRzbm1wX293bnNfd2F0Y2hlcl9pbmZvKG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIpCit7CisgICAgbmV0c25tcF9hc3NlcnQoaGFuZGxlcik7CisgICAgbmV0c25tcF9hc3NlcnQoaGFuZGxlci0+bXl2b2lkKTsKKyAgICBoYW5kbGVyLT5kYXRhX2Nsb25lID0gKHZvaWQgKigqKSh2b2lkICopKW5ldHNubXBfY2xvbmVfd2F0Y2hlcl9pbmZvOworICAgIGhhbmRsZXItPmRhdGFfZnJlZSA9IGZyZWU7Cit9CisKIC8qKiBAY29uZCAqLwogCiBORVRTTk1QX1NUQVRJQ19JTkxJTkUgc2l6ZV90CkBAIC0xOTEsNiArMjY0LDcgQEAKICAgICAgICAgLyoKICAgICAgICAgICogU0VUIHJlcXVlc3RzLiAgU2hvdWxkIG9ubHkgZ2V0IGhlcmUgaWYgcmVnaXN0ZXJlZCBSV1JJVEUgCiAgICAgICAgICAqLworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBjYXNlIE1PREVfU0VUX1JFU0VSVkUxOgogICAgICAgICBpZiAocmVxdWVzdHMtPnJlcXVlc3R2Yi0+dHlwZSAhPSB3aW5mby0+dHlwZSkgewogICAgICAgICAgICAgbmV0c25tcF9zZXRfcmVxdWVzdF9lcnJvcihyZXFpbmZvLCByZXF1ZXN0cywgU05NUF9FUlJfV1JPTkdUWVBFKTsKQEAgLTI0Niw2ICszMjAsMTIgQEAKIAogICAgIGNhc2UgTU9ERV9TRVRfQ09NTUlUOgogICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKworICAgIGRlZmF1bHQ6CisgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJ3YXRjaGVyIGhhbmRsZXIgY2FsbGVkIHdpdGggYW4gdW5rbm93biBtb2RlOiAlZFxuIiwKKyAgICAgICAgICAgICAgICAgcmVxaW5mby0+bW9kZSk7CisgICAgICAgIHJldHVybiBTTk1QX0VSUl9HRU5FUlI7CiAKICAgICB9CiAKQEAgLTI4NCw2ICszNjQsNyBAQAogICAgIHJldHVybiBuZXRzbm1wX3JlZ2lzdGVyX3NjYWxhcihyZWdpbmZvKTsgICAvKiBYWFggLSBvciBpbnN0YW5jZT8gKi8KIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1dBVENIRVJfUkVHSVNURVJfVElNRVNUQU1QCiBpbnQKIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF90aW1lc3RhbXAobmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2VyX3QgdGltZXN0YW1wKQpAQCAtMjk0LDYgKzM3NSw3IEBACiAKICAgICByZXR1cm4gbmV0c25tcF93YXRjaGVkX3RpbWVzdGFtcF9yZWdpc3Rlcih3aGFuZGxlciwgcmVnaW5mbywgdGltZXN0YW1wKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1dBVENIRVJfUkVHSVNURVJfVElNRVNUQU1QICovCiAKIAogaW50CkBAIC0zMzEsMTEgKzQxMywxMyBAQAogICAgICAgICAgKiBUaW1lc3RhbXBzIGFyZSBpbmhlcmVudGx5IFJlYWQtT25seSwKICAgICAgICAgICogIHNvIGRvbid0IG5lZWQgdG8gc3VwcG9ydCBTRVQgcmVxdWVzdHMuCiAgICAgICAgICAqLworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBjYXNlIE1PREVfU0VUX1JFU0VSVkUxOgogICAgICAgICBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yKHJlcWluZm8sIHJlcXVlc3RzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBfRVJSX05PVFdSSVRBQkxFKTsKICAgICAgICAgaGFuZGxlci0+ZmxhZ3MgfD0gTUlCX0hBTkRMRVJfQVVUT19ORVhUX09WRVJSSURFX09OQ0U7CiAgICAgICAgIHJldHVybiBTTk1QX0VSUl9OT1RXUklUQUJMRTsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICB9CiAKICAgICAvKiBuZXh0IGhhbmRsZXIgY2FsbGVkIGF1dG9tYXRpY2FsbHkgLSAnQVVUT19ORVhUJyAqLwpAQCAtMzQ5LDYgKzQzMyw4IEBACiAgICAgICoKICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfV0FUQ0hFUl9TUElOTE9DSworCiBuZXRzbm1wX21pYl9oYW5kbGVyICoKIG5ldHNubXBfZ2V0X3dhdGNoZWRfc3BpbmxvY2tfaGFuZGxlcih2b2lkKQogewpAQCAtMzc0LDcgKzQ2MCw3IEBACiAgICAgd2luZm8gICAgICAgICAgICA9IG5ldHNubXBfY3JlYXRlX3dhdGNoZXJfaW5mbygodm9pZCAqKXNwaW5sb2NrLAogCQkgICAgICAgICAgIHNpemVvZihpbnQpLCBBU05fSU5URUdFUiwgV0FUQ0hFUl9GSVhFRF9TSVpFKTsKICAgICBuZXRzbm1wX2luamVjdF9oYW5kbGVyKHJlZ2luZm8sIHdoYW5kbGVyKTsKLSAgICByZXR1cm4gbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX3NjYWxhcihyZWdpbmZvLCB3aW5mbyk7CisgICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zY2FsYXIyKHJlZ2luZm8sIHdpbmZvKTsKIH0KIAogCkBAIC0zOTgsNiArNDg0LDcgQEAKICAgICAgICAgLyoKICAgICAgICAgICogRW5zdXJlIHRoZSBhc3NpZ25lZCB2YWx1ZSBtYXRjaGVzIHRoZSBjdXJyZW50IG9uZQogICAgICAgICAgKi8KKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMToKICAgICAgICAgZm9yIChyZXF1ZXN0PXJlcXVlc3RzOyByZXF1ZXN0OyByZXF1ZXN0PXJlcXVlc3QtPm5leHQpIHsKICAgICAgICAgICAgIGlmIChyZXF1ZXN0LT5wcm9jZXNzZWQpCkBAIC00MTgsMTEgKzUwNSwxMyBAQAogICAgIGNhc2UgTU9ERV9TRVRfQ09NTUlUOgogCSgqc3BpbmxvY2spKys7CiAJYnJlYWs7CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgfQogCiAgICAgLyogbmV4dCBoYW5kbGVyIGNhbGxlZCBhdXRvbWF0aWNhbGx5IC0gJ0FVVE9fTkVYVCcgKi8KICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1dBVENIRVJfU1BJTkxPQ0sgKi8KIAogICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgKgpAQCAtNDMxLDExOCArNTIwLDE0MiBAQAogICAgICAqCiAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAorbmV0c25tcF93YXRjaGVyX2luZm8gKgorbmV0c25tcF9jbG9uZV93YXRjaGVyX2luZm8obmV0c25tcF93YXRjaGVyX2luZm8gKndpbmZvKQoreworICAgIG5ldHNubXBfd2F0Y2hlcl9pbmZvICpjb3B5ID0gbWFsbG9jKHNpemVvZigqY29weSkpOworICAgIGlmIChjb3B5KQorCSpjb3B5ID0gKndpbmZvOworICAgIHJldHVybiBjb3B5OworfQorCitzdGF0aWMgaW50CityZWdpc3Rlcl9zY2FsYXJfd2F0Y2hlcihjb25zdCBjaGFyKiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2lkKiByZWdfb2lkLCBzaXplX3QgcmVnX29pZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhLCBzaXplX3Qgc2l6ZSwgdV9jaGFyIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICBOZXRzbm1wX05vZGVfSGFuZGxlciAqIHN1YmhhbmRsZXIsIGludCBtb2RlKQoreworICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKnJlZ2luZm8gPSBOVUxMOworICAgIG5ldHNubXBfbWliX2hhbmRsZXIgKndoYW5kbGVyID0gTlVMTDsKKyAgICBuZXRzbm1wX3dhdGNoZXJfaW5mbyogd2F0Y2hpbmZvID0KKyAgICAgICAgbmV0c25tcF9jcmVhdGVfd2F0Y2hlcl9pbmZvKGRhdGEsIHNpemUsIHR5cGUsIFdBVENIRVJfRklYRURfU0laRSk7CisgICAgaWYgKHdhdGNoaW5mbykKKyAgICAgICAgd2hhbmRsZXIgPSBuZXRzbm1wX2dldF93YXRjaGVyX2hhbmRsZXIoKTsKKyAgICBpZiAod2F0Y2hpbmZvICYmIHdoYW5kbGVyKSB7CisgICAgICAgIHdoYW5kbGVyLT5teXZvaWQgPSB3YXRjaGluZm87CisJbmV0c25tcF9vd25zX3dhdGNoZXJfaW5mbyh3aGFuZGxlcik7CisgICAgICAgIHJlZ2luZm8gPQorICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oCisgICAgICAgICAgICAgICAgbmFtZSwgc3ViaGFuZGxlciwgcmVnX29pZCwgcmVnX29pZF9sZW4sIG1vZGUpOworICAgIH0KKyAgICBpZiAod2F0Y2hpbmZvICYmIHdoYW5kbGVyICYmIHJlZ2luZm8pIHsKKyAgICAgICAgbmV0c25tcF9pbmplY3RfaGFuZGxlcihyZWdpbmZvLCB3aGFuZGxlcik7CisgICAgICAgIHJldHVybiBuZXRzbm1wX3JlZ2lzdGVyX3NjYWxhcihyZWdpbmZvKTsKKyAgICB9CisgICAgaWYgKHdoYW5kbGVyKQorICAgICAgICBuZXRzbm1wX2hhbmRsZXJfZnJlZSh3aGFuZGxlcik7CisgICAgZWxzZSBpZiAod2F0Y2hpbmZvKQorICAgICAgICBmcmVlKHdhdGNoaW5mbyk7CisgICAgcmV0dXJuIFNOTVBfRVJSX1JFU09VUkNFVU5BVkFJTEFCTEU7Cit9CisKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9XQVRDSEVSX1VMT05HX1NDQUxBUgogaW50CiBuZXRzbm1wX3JlZ2lzdGVyX3Vsb25nX3NjYWxhcihjb25zdCBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2lkICogcmVnX29pZCwgc2l6ZV90IHJlZ19vaWRfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nICogaXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOZXRzbm1wX05vZGVfSGFuZGxlciAqIHN1YmhhbmRsZXIpCiB7Ci0gICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zY2FsYXIoCi0gICAgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigKLSAgICAgICAgICAgICAgICAgICBuYW1lLCBzdWJoYW5kbGVyLAotICAgICAgICAgICAgICAgICAgIHJlZ19vaWQsIHJlZ19vaWRfbGVuLAotICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JXUklURSApLAotICAgICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfd2F0Y2hlcl9pbmZvKAotICAgICAgICAgICAgICAgICAgICh2b2lkICopaXQsIHNpemVvZiggdV9sb25nICksCi0gICAgICAgICAgICAgICAgICAgQVNOX1VOU0lHTkVELCBXQVRDSEVSX0ZJWEVEX1NJWkUgKSk7CisgICAgcmV0dXJuIHJlZ2lzdGVyX3NjYWxhcl93YXRjaGVyKAorICAgICAgICBuYW1lLCByZWdfb2lkLCByZWdfb2lkX2xlbiwKKyAgICAgICAgKHZvaWQgKilpdCwgc2l6ZW9mKCB1X2xvbmcgKSwKKyAgICAgICAgQVNOX1VOU0lHTkVELCBzdWJoYW5kbGVyLCBIQU5ETEVSX0NBTl9SV1JJVEUpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfV0FUQ0hFUl9VTE9OR19TQ0FMQVIgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1dBVENIRVJfUkVBRF9PTkxZX1VMT05HX1NDQUxBUgogaW50CiBuZXRzbm1wX3JlZ2lzdGVyX3JlYWRfb25seV91bG9uZ19zY2FsYXIoY29uc3QgY2hhciAqbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9pZCAqIHJlZ19vaWQsIHNpemVfdCByZWdfb2lkX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqIGl0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV0c25tcF9Ob2RlX0hhbmRsZXIgKiBzdWJoYW5kbGVyKQogewotICAgIHJldHVybiBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfc2NhbGFyKAotICAgICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oCi0gICAgICAgICAgICAgICAgICAgbmFtZSwgc3ViaGFuZGxlciwKLSAgICAgICAgICAgICAgICAgICByZWdfb2lkLCByZWdfb2lkX2xlbiwKLSAgICAgICAgICAgICAgICAgICBIQU5ETEVSX0NBTl9ST05MWSApLAotICAgICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfd2F0Y2hlcl9pbmZvKAotICAgICAgICAgICAgICAgICAgICh2b2lkICopaXQsIHNpemVvZiggdV9sb25nICksCi0gICAgICAgICAgICAgICAgICAgQVNOX1VOU0lHTkVELCBXQVRDSEVSX0ZJWEVEX1NJWkUgKSk7CisgICAgcmV0dXJuIHJlZ2lzdGVyX3NjYWxhcl93YXRjaGVyKAorICAgICAgICBuYW1lLCByZWdfb2lkLCByZWdfb2lkX2xlbiwKKyAgICAgICAgKHZvaWQgKilpdCwgc2l6ZW9mKCB1X2xvbmcgKSwKKyAgICAgICAgQVNOX1VOU0lHTkVELCBzdWJoYW5kbGVyLCBIQU5ETEVSX0NBTl9ST05MWSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9XQVRDSEVSX1JFQURfT05MWV9VTE9OR19TQ0FMQVIgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1dBVENIRVJfTE9OR19TQ0FMQVIKIGludAogbmV0c25tcF9yZWdpc3Rlcl9sb25nX3NjYWxhcihjb25zdCBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2lkICogcmVnX29pZCwgc2l6ZV90IHJlZ19vaWRfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyAqIGl0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV0c25tcF9Ob2RlX0hhbmRsZXIgKiBzdWJoYW5kbGVyKQogewotICAgIHJldHVybiBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfc2NhbGFyKAotICAgICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oCi0gICAgICAgICAgICAgICAgICAgbmFtZSwgc3ViaGFuZGxlciwKLSAgICAgICAgICAgICAgICAgICByZWdfb2lkLCByZWdfb2lkX2xlbiwKLSAgICAgICAgICAgICAgICAgICBIQU5ETEVSX0NBTl9SV1JJVEUgKSwKLSAgICAgICAgICAgICAgIG5ldHNubXBfY3JlYXRlX3dhdGNoZXJfaW5mbygKLSAgICAgICAgICAgICAgICAgICAodm9pZCAqKWl0LCBzaXplb2YoIGxvbmcgKSwKLSAgICAgICAgICAgICAgICAgICBBU05fSU5URUdFUiwgV0FUQ0hFUl9GSVhFRF9TSVpFICkpOworICAgIHJldHVybiByZWdpc3Rlcl9zY2FsYXJfd2F0Y2hlcigKKyAgICAgICAgbmFtZSwgcmVnX29pZCwgcmVnX29pZF9sZW4sCisgICAgICAgICh2b2lkICopaXQsIHNpemVvZiggbG9uZyApLAorICAgICAgICBBU05fSU5URUdFUiwgc3ViaGFuZGxlciwgSEFORExFUl9DQU5fUldSSVRFKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1dBVENIRVJfTE9OR19TQ0FMQVIgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1dBVENIRVJfUkVBRF9PTkxZX0xPTkdfU0NBTEFSCiBpbnQKIG5ldHNubXBfcmVnaXN0ZXJfcmVhZF9vbmx5X2xvbmdfc2NhbGFyKGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvaWQgKiByZWdfb2lkLCBzaXplX3QgcmVnX29pZF9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nICogaXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOZXRzbm1wX05vZGVfSGFuZGxlciAqIHN1YmhhbmRsZXIpCiB7Ci0gICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zY2FsYXIoCi0gICAgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigKLSAgICAgICAgICAgICAgICAgICBuYW1lLCBzdWJoYW5kbGVyLAotICAgICAgICAgICAgICAgICAgIHJlZ19vaWQsIHJlZ19vaWRfbGVuLAotICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JPTkxZICksCi0gICAgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV93YXRjaGVyX2luZm8oCi0gICAgICAgICAgICAgICAgICAgKHZvaWQgKilpdCwgc2l6ZW9mKCBsb25nICksCi0gICAgICAgICAgICAgICAgICAgQVNOX0lOVEVHRVIsIFdBVENIRVJfRklYRURfU0laRSApKTsKKyAgICByZXR1cm4gcmVnaXN0ZXJfc2NhbGFyX3dhdGNoZXIoCisgICAgICAgIG5hbWUsIHJlZ19vaWQsIHJlZ19vaWRfbGVuLAorICAgICAgICAodm9pZCAqKWl0LCBzaXplb2YoIGxvbmcgKSwKKyAgICAgICAgQVNOX0lOVEVHRVIsIHN1YmhhbmRsZXIsIEhBTkRMRVJfQ0FOX1JPTkxZKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1dBVENIRVJfUkVBRF9PTkxZX0xPTkdfU0NBTEFSICovCiAKIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1dBVENIRVJfSU5UX1NDQUxBUgogaW50CiBuZXRzbm1wX3JlZ2lzdGVyX2ludF9zY2FsYXIoY29uc3QgY2hhciAqbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9pZCAqIHJlZ19vaWQsIHNpemVfdCByZWdfb2lkX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqIGl0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV0c25tcF9Ob2RlX0hhbmRsZXIgKiBzdWJoYW5kbGVyKQogewotICAgIHJldHVybiBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfc2NhbGFyKAotICAgICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oCi0gICAgICAgICAgICAgICAgICAgbmFtZSwgc3ViaGFuZGxlciwKLSAgICAgICAgICAgICAgICAgICByZWdfb2lkLCByZWdfb2lkX2xlbiwKLSAgICAgICAgICAgICAgICAgICBIQU5ETEVSX0NBTl9SV1JJVEUgKSwKLSAgICAgICAgICAgICAgIG5ldHNubXBfY3JlYXRlX3dhdGNoZXJfaW5mbygKLSAgICAgICAgICAgICAgICAgICAodm9pZCAqKWl0LCBzaXplb2YoIGludCApLAotICAgICAgICAgICAgICAgICAgIEFTTl9JTlRFR0VSLCBXQVRDSEVSX0ZJWEVEX1NJWkUgKSk7CisgICAgcmV0dXJuIHJlZ2lzdGVyX3NjYWxhcl93YXRjaGVyKAorICAgICAgICBuYW1lLCByZWdfb2lkLCByZWdfb2lkX2xlbiwKKyAgICAgICAgKHZvaWQgKilpdCwgc2l6ZW9mKCBpbnQgKSwKKyAgICAgICAgQVNOX0lOVEVHRVIsIHN1YmhhbmRsZXIsIEhBTkRMRVJfQ0FOX1JXUklURSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9XQVRDSEVSX0lOVF9TQ0FMQVIgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1dBVENIRVJfUkVBRF9PTkxZX0lOVF9TQ0FMQVIKIGludAogbmV0c25tcF9yZWdpc3Rlcl9yZWFkX29ubHlfaW50X3NjYWxhcihjb25zdCBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2lkICogcmVnX29pZCwgc2l6ZV90IHJlZ19vaWRfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICogaXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOZXRzbm1wX05vZGVfSGFuZGxlciAqIHN1YmhhbmRsZXIpCiB7Ci0gICAgcmV0dXJuIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zY2FsYXIoCi0gICAgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigKLSAgICAgICAgICAgICAgICAgICBuYW1lLCBzdWJoYW5kbGVyLAotICAgICAgICAgICAgICAgICAgIHJlZ19vaWQsIHJlZ19vaWRfbGVuLAotICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JPTkxZICksCi0gICAgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV93YXRjaGVyX2luZm8oCi0gICAgICAgICAgICAgICAgICAgKHZvaWQgKilpdCwgc2l6ZW9mKCBpbnQgKSwKLSAgICAgICAgICAgICAgICAgICBBU05fSU5URUdFUiwgV0FUQ0hFUl9GSVhFRF9TSVpFICkpOworICAgIHJldHVybiByZWdpc3Rlcl9zY2FsYXJfd2F0Y2hlcigKKyAgICAgICAgbmFtZSwgcmVnX29pZCwgcmVnX29pZF9sZW4sCisgICAgICAgICh2b2lkICopaXQsIHNpemVvZiggaW50ICksCisgICAgICAgIEFTTl9JTlRFR0VSLCBzdWJoYW5kbGVyLCBIQU5ETEVSX0NBTl9ST05MWSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9XQVRDSEVSX1JFQURfT05MWV9JTlRfU0NBTEFSICovCiAKLQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JFQURfT05MWV9DT1VOVEVSMzJfU0NBTEFSCiBpbnQKIG5ldHNubXBfcmVnaXN0ZXJfcmVhZF9vbmx5X2NvdW50ZXIzMl9zY2FsYXIoY29uc3QgY2hhciAqbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9pZCAqIHJlZ19vaWQsIHNpemVfdCByZWdfb2lkX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqIGl0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV0c25tcF9Ob2RlX0hhbmRsZXIgKiBzdWJoYW5kbGVyKQogewotICAgIHJldHVybiBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfc2NhbGFyKAotICAgICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oCi0gICAgICAgICAgICAgICAgICAgbmFtZSwgc3ViaGFuZGxlciwKLSAgICAgICAgICAgICAgICAgICByZWdfb2lkLCByZWdfb2lkX2xlbiwKLSAgICAgICAgICAgICAgICAgICBIQU5ETEVSX0NBTl9ST05MWSApLAotICAgICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfd2F0Y2hlcl9pbmZvKAotICAgICAgICAgICAgICAgICAgICh2b2lkICopaXQsIHNpemVvZiggdV9sb25nICksCi0gICAgICAgICAgICAgICAgICAgQVNOX0NPVU5URVIsIFdBVENIRVJfRklYRURfU0laRSApKTsKKyAgICByZXR1cm4gcmVnaXN0ZXJfc2NhbGFyX3dhdGNoZXIoCisgICAgICAgIG5hbWUsIHJlZ19vaWQsIHJlZ19vaWRfbGVuLAorICAgICAgICAodm9pZCAqKWl0LCBzaXplb2YoIHVfbG9uZyApLAorICAgICAgICBBU05fQ09VTlRFUiwgc3ViaGFuZGxlciwgSEFORExFUl9DQU5fUk9OTFkpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUkVBRF9PTkxZX0NPVU5URVIzMl9TQ0FMQVIgKi8KIC8qKiAgQH0gKi8KIApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kIGIvYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kCmluZGV4IGRhYmYwYWIuLmE0ZTk3MTEgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZAorKysgYi9hZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQKQEAgLTM4LDYgKzM4LDcgQEAKIC4vaGVhZGVyX2NvbXBsZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL2hlYWRlcl9jb21wbGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9oZWFkZXJfY29tcGxleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL2hlYWRlcl9jb21wbGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vaGVhZGVyX2NvbXBsZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9oZWFkZXJfY29tcGxleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9oZWFkZXJfY29tcGxleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtNzMsNiArNzQsNyBAQAogLi9oZWFkZXJfY29tcGxleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vaGVhZGVyX2NvbXBsZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hlYWRlcl9jb21wbGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaGVhZGVyX2NvbXBsZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vaGVhZGVyX2NvbXBsZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaGVhZGVyX2NvbXBsZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9oZWFkZXJfY29tcGxleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMTQsNiArMTE2LDcgQEAKIC4vaGVhZGVyX2NvbXBsZXgubG86IGhlYWRlcl9jb21wbGV4LmgKIC4va2VybmVsX3N1bm9zNS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogLi90ZXN0aGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi90ZXN0aGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3Rlc3RoYW5kbGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vdGVzdGhhbmRsZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi90ZXN0aGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0xODEsNiArMTg0LDcgQEAKIC4vdGVzdGhhbmRsZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3Rlc3RoYW5kbGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi90ZXN0aGFuZGxlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3Rlc3RoYW5kbGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3Rlc3RoYW5kbGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3Rlc3RoYW5kbGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdGVzdGhhbmRsZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMjIxLDYgKzIyNSw3IEBACiAuL3Rlc3RoYW5kbGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL3Rlc3RoYW5kbGVyLmxvOiB0ZXN0aGFuZGxlci5oCiAuL3V0aWxfZnVuY3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vdXRpbF9mdW5jcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3V0aWxfZnVuY3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi91dGlsX2Z1bmNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vdXRpbF9mdW5jcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0yODgsNiArMjkzLDcgQEAKIC4vdXRpbF9mdW5jcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdXRpbF9mdW5jcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdXRpbF9mdW5jcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3V0aWxfZnVuY3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdXRpbF9mdW5jcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi91dGlsX2Z1bmNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdXRpbF9mdW5jcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0zMjYsMTMgKzMzMiwxNSBAQAogLi91dGlsX2Z1bmNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgKIC4vdXRpbF9mdW5jcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaAogLi91dGlsX2Z1bmNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oIHN0cnVjdC5oCi0uL3V0aWxfZnVuY3MubG86IHV0aWxfZnVuY3MuaCB1dGlsX2Z1bmNzL0V4aXQuaCB1dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmgKLS4vdXRpbF9mdW5jcy5sbzogdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmggdXRpbF9mdW5jcy9yZXN0YXJ0LmgKKy4vdXRpbF9mdW5jcy5sbzogdXRpbF9mdW5jcy5oIHV0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaAorLi91dGlsX2Z1bmNzLmxvOiB1dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuaAogLi91dGlsX2Z1bmNzLmxvOiB1dGlsX2Z1bmNzL01JQl9TVEFUU19DQUNIRV9USU1FT1VULmggdXRpbGl0aWVzL2V4ZWN1dGUuaAogLi91dGlsX2Z1bmNzLmxvOiB1Y2Qtc25tcC9lcnJvcm1pYi5oIG1pYmRlZnMuaAogLi93aW5FeHRETEwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vd2luRXh0RExMLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vd2luRXh0RExMLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKIC4vYWdlbnQvZXh0ZW5kLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2FnZW50L2V4dGVuZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2FnZW50L2V4dGVuZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL2FnZW50L2V4dGVuZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL2FnZW50L2V4dGVuZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC00MDAsNiArNDA4LDcgQEAKIC4vYWdlbnQvZXh0ZW5kLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9hZ2VudC9leHRlbmQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2FnZW50L2V4dGVuZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2FnZW50L2V4dGVuZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9hZ2VudC9leHRlbmQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vYWdlbnQvZXh0ZW5kLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vYWdlbnQvZXh0ZW5kLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTQ0Miw2ICs0NTEsNyBAQAogLi9hZ2VudC9leHRlbmQubG86IGFnZW50L2V4dGVuZC5oIHV0aWxpdGllcy9leGVjdXRlLmggc3RydWN0LmgKIC4vYWdlbnQvZXh0ZW5kLmxvOiB1dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuaCBtaWJkZWZzLmgKIC4vYWdlbnQvbnNDYWNoZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9hZ2VudC9uc0NhY2hlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vYWdlbnQvbnNDYWNoZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL2FnZW50L25zQ2FjaGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9hZ2VudC9uc0NhY2hlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTUwOSw2ICs1MTksNyBAQAogLi9hZ2VudC9uc0NhY2hlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9hZ2VudC9uc0NhY2hlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9hZ2VudC9uc0NhY2hlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vYWdlbnQvbnNDYWNoZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9hZ2VudC9uc0NhY2hlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2FnZW50L25zQ2FjaGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9hZ2VudC9uc0NhY2hlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTU4Miw2ICs1OTMsNyBAQAogLi9hZ2VudC9uc0RlYnVnLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9hZ2VudC9uc0RlYnVnLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9hZ2VudC9uc0RlYnVnLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vYWdlbnQvbnNEZWJ1Zy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2FnZW50L25zRGVidWcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9hZ2VudC9uc0RlYnVnLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2FnZW50L25zRGVidWcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTYxNiw2ICs2MjgsNyBAQAogLi9hZ2VudC9uc0RlYnVnLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9hZ2VudC9uc0RlYnVnLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9hZ2VudC9uc0RlYnVnLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vYWdlbnQvbnNEZWJ1Zy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9hZ2VudC9uc0RlYnVnLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2FnZW50L25zRGVidWcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9hZ2VudC9uc0RlYnVnLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTY1Niw2ICs2NjksNyBAQAogLi9hZ2VudC9uc0RlYnVnLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL2FnZW50L25zRGVidWcubG86IGFnZW50L25zRGVidWcuaAogLi9hZ2VudC9uc0xvZ2dpbmcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vYWdlbnQvbnNMb2dnaW5nLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vYWdlbnQvbnNMb2dnaW5nLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vYWdlbnQvbnNMb2dnaW5nLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vYWdlbnQvbnNMb2dnaW5nLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTcyMyw2ICs3MzcsNyBAQAogLi9hZ2VudC9uc0xvZ2dpbmcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2FnZW50L25zTG9nZ2luZy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vYWdlbnQvbnNMb2dnaW5nLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vYWdlbnQvbnNMb2dnaW5nLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2FnZW50L25zTG9nZ2luZy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9hZ2VudC9uc0xvZ2dpbmcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9hZ2VudC9uc0xvZ2dpbmcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtNzYzLDYgKzc3OCw3IEBACiAuL2FnZW50L25zTG9nZ2luZy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi9hZ2VudC9uc0xvZ2dpbmcubG86IGFnZW50L25zTG9nZ2luZy5oCiAuL2FnZW50L25zTW9kdWxlVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vYWdlbnQvbnNNb2R1bGVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2FnZW50L25zTW9kdWxlVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9hZ2VudC9uc01vZHVsZVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vYWdlbnQvbnNNb2R1bGVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC04MzAsNiArODQ2LDcgQEAKIC4vYWdlbnQvbnNNb2R1bGVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vYWdlbnQvbnNNb2R1bGVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vYWdlbnQvbnNNb2R1bGVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2FnZW50L25zTW9kdWxlVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vYWdlbnQvbnNNb2R1bGVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9hZ2VudC9uc01vZHVsZVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vYWdlbnQvbnNNb2R1bGVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC04NzAsNiArODg3LDcgQEAKIC4vYWdlbnQvbnNNb2R1bGVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi9hZ2VudC9uc01vZHVsZVRhYmxlLmxvOiAuL2FnZW50L25zTW9kdWxlVGFibGUuaAogLi9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTkzNyw2ICs5NTUsNyBAQAogLi9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtOTc3LDYgKzk5Niw3IEBACiAuL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUubG86IC4vYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmgKIC4vYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMTA0NCw2ICsxMDY0LDcgQEAKIC4vYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTA4NCw2ICsxMTA1LDcgQEAKIC4vYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKIC4vYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUubG86IC4vYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuaAogLi9hZ2VudHgvYWdlbnR4X2NvbmZpZy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9hZ2VudHgvYWdlbnR4X2NvbmZpZy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2FnZW50eC9hZ2VudHhfY29uZmlnLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vYWdlbnR4L2FnZW50eF9jb25maWcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9hZ2VudHgvYWdlbnR4X2NvbmZpZy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0xMTUxLDYgKzExNzMsNyBAQAogLi9hZ2VudHgvYWdlbnR4X2NvbmZpZy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vYWdlbnR4L2FnZW50eF9jb25maWcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2FnZW50eC9hZ2VudHhfY29uZmlnLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vYWdlbnR4L2FnZW50eF9jb25maWcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vYWdlbnR4L2FnZW50eF9jb25maWcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vYWdlbnR4L2FnZW50eF9jb25maWcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9hZ2VudHgvYWdlbnR4X2NvbmZpZy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMTkyLDYgKzEyMTUsNyBAQAogLi9hZ2VudHgvYWdlbnR4X2NvbmZpZy5sbzogLi4vLi4vYWdlbnQvc25tcGQuaCBhZ2VudHgvYWdlbnR4X2NvbmZpZy5oCiAuL2FnZW50eC9hZ2VudHhfY29uZmlnLmxvOiBhZ2VudHgvcHJvdG9jb2wuaAogLi9hZ2VudHgvY2xpZW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2FnZW50eC9jbGllbnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9hZ2VudHgvY2xpZW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vYWdlbnR4L2NsaWVudC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL2FnZW50eC9jbGllbnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMTI1OSw2ICsxMjgzLDcgQEAKIC4vYWdlbnR4L2NsaWVudC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vYWdlbnR4L2NsaWVudC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vYWdlbnR4L2NsaWVudC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2FnZW50eC9jbGllbnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vYWdlbnR4L2NsaWVudC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9hZ2VudHgvY2xpZW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vYWdlbnR4L2NsaWVudC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMzAwLDYgKzEzMjUsNyBAQAogLi9hZ2VudHgvY2xpZW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2luZGV4LmgKIC4vYWdlbnR4L2NsaWVudC5sbzogYWdlbnR4L3Byb3RvY29sLmggYWdlbnR4L2NsaWVudC5oIGFnZW50eC9zdWJhZ2VudC5oCiAuL2FnZW50eC9tYXN0ZXJfYWRtaW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vYWdlbnR4L21hc3Rlcl9hZG1pbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2FnZW50eC9tYXN0ZXJfYWRtaW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9hZ2VudHgvbWFzdGVyX2FkbWluLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vYWdlbnR4L21hc3Rlcl9hZG1pbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0xMzY3LDYgKzEzOTMsNyBAQAogLi9hZ2VudHgvbWFzdGVyX2FkbWluLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9hZ2VudHgvbWFzdGVyX2FkbWluLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9hZ2VudHgvbWFzdGVyX2FkbWluLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vYWdlbnR4L21hc3Rlcl9hZG1pbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9hZ2VudHgvbWFzdGVyX2FkbWluLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2FnZW50eC9tYXN0ZXJfYWRtaW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9hZ2VudHgvbWFzdGVyX2FkbWluLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE0MTEsNiArMTQzOCw3IEBACiAuL2FnZW50eC9tYXN0ZXJfYWRtaW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5oCiAuL2FnZW50eC9tYXN0ZXJfYWRtaW4ubG86IC4vYWdlbnR4L21hc3Rlci5oCiAuL2FnZW50eC9tYXN0ZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vYWdlbnR4L21hc3Rlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2FnZW50eC9tYXN0ZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9hZ2VudHgvbWFzdGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vYWdlbnR4L21hc3Rlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0xNDc4LDYgKzE1MDYsNyBAQAogLi9hZ2VudHgvbWFzdGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9hZ2VudHgvbWFzdGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9hZ2VudHgvbWFzdGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vYWdlbnR4L21hc3Rlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9hZ2VudHgvbWFzdGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2FnZW50eC9tYXN0ZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9hZ2VudHgvbWFzdGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE1NTIsNiArMTU4MSw3IEBACiAuL2FnZW50eC9wcm90b2NvbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vYWdlbnR4L3Byb3RvY29sLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9hZ2VudHgvcHJvdG9jb2wubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9hZ2VudHgvcHJvdG9jb2wubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9hZ2VudHgvcHJvdG9jb2wubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9hZ2VudHgvcHJvdG9jb2wubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vYWdlbnR4L3Byb3RvY29sLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xNTg2LDkgKzE2MTYsMTEgQEAKIC4vYWdlbnR4L3Byb3RvY29sLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9hZ2VudHgvcHJvdG9jb2wubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2FnZW50eC9wcm90b2NvbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2FnZW50eC9wcm90b2NvbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9hZ2VudHgvcHJvdG9jb2wubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vYWdlbnR4L3Byb3RvY29sLmxvOiBhZ2VudHgvcHJvdG9jb2wuaAogLi9hZ2VudHgvc3ViYWdlbnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vYWdlbnR4L3N1YmFnZW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vYWdlbnR4L3N1YmFnZW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vYWdlbnR4L3N1YmFnZW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vYWdlbnR4L3N1YmFnZW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTE2NTYsNiArMTY4OCw3IEBACiAuL2FnZW50eC9zdWJhZ2VudC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vYWdlbnR4L3N1YmFnZW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9hZ2VudHgvc3ViYWdlbnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9hZ2VudHgvc3ViYWdlbnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vYWdlbnR4L3N1YmFnZW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2FnZW50eC9zdWJhZ2VudC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL2FnZW50eC9zdWJhZ2VudC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xNzAwLDcgKzE3MzMsMTE3IEBACiAuL2FnZW50eC9zdWJhZ2VudC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmgKIC4vYWdlbnR4L3N1YmFnZW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3N5c09SVGFibGUuaAogLi9hZ2VudHgvc3ViYWdlbnQubG86IC4vYWdlbnR4L3N1YmFnZW50LmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdmFyYmluZF9hcGkuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdWNkX2NvbXBhdC5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmFjdG9yeS5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2xpc3Rfc3NsbC5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2l0ZXJhdG9yLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0LmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfbW9kdWxlX2NvbmZpZy5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mZF9ldmVudF9tYW5hZ2VyLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhci5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhcl9ncm91cC5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yb3dfbWVyZ2UuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tb2RlX2VuZF9jYWxsLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmgKKy4vZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaAorLi9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCisuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmxvOiAuL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmgKIC4vZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMTc2OCw2ICsxOTExLDcgQEAKIC4vZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTgwOCw2ICsxOTUyLDcgQEAKIC4vZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKIC4vZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUubG86IC4vZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaAogLi9kaXNtYW4vbXRlRXZlbnRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9kaXNtYW4vbXRlRXZlbnRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2Rpc21hbi9tdGVFdmVudFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vZGlzbWFuL210ZUV2ZW50VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9kaXNtYW4vbXRlRXZlbnRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0xODc1LDYgKzIwMjAsNyBAQAogLi9kaXNtYW4vbXRlRXZlbnRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vZGlzbWFuL210ZUV2ZW50VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2Rpc21hbi9tdGVFdmVudFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vZGlzbWFuL210ZUV2ZW50VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vZGlzbWFuL210ZUV2ZW50VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vZGlzbWFuL210ZUV2ZW50VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9kaXNtYW4vbXRlRXZlbnRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xOTE4LDYgKzIwNjQsNyBAQAogLi9kaXNtYW4vbXRlRXZlbnRUYWJsZS5sbzogLi9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oCiAuL2Rpc21hbi9tdGVFdmVudFRhYmxlLmxvOiAuL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaAogLi9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2Rpc21hbi9tdGVPYmplY3RzVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vZGlzbWFuL210ZU9iamVjdHNUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL2Rpc21hbi9tdGVPYmplY3RzVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMTk4NSw2ICsyMTMyLDcgQEAKIC4vZGlzbWFuL210ZU9iamVjdHNUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vZGlzbWFuL210ZU9iamVjdHNUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vZGlzbWFuL210ZU9iamVjdHNUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2Rpc21hbi9tdGVPYmplY3RzVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vZGlzbWFuL210ZU9iamVjdHNUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vZGlzbWFuL210ZU9iamVjdHNUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0yMDU5LDYgKzIyMDcsNyBAQAogLi9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0yMDkzLDYgKzIyNDIsNyBAQAogLi9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0yMTY4LDYgKzIzMTgsNyBAQAogLi9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMjIwMiw2ICsyMzUzLDcgQEAKIC4vZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTIyNzcsNiArMjQyOSw3IEBACiAuL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMjMxMSw2ICsyNDY0LDcgQEAKIC4vZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0yMzUzLDYgKzI1MDcsNyBAQAogLi9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmxvOiAuL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaAogLi9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmxvOiAuL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaAogLi9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMjQyMCw2ICsyNTc1LDcgQEAKIC4vZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0yNDk5LDYgKzI2NTUsNyBAQAogLi9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTI1MzMsNiArMjY5MCw3IEBACiAuL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMjYwOCw2ICsyNzY2LDcgQEAKIC4vZXhhbXBsZXMvZGF0YV9zZXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL2V4YW1wbGVzL2RhdGFfc2V0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9leGFtcGxlcy9kYXRhX3NldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL2V4YW1wbGVzL2RhdGFfc2V0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vZXhhbXBsZXMvZGF0YV9zZXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9leGFtcGxlcy9kYXRhX3NldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9leGFtcGxlcy9kYXRhX3NldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMjY0Miw2ICsyODAxLDcgQEAKIC4vZXhhbXBsZXMvZGF0YV9zZXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2V4YW1wbGVzL2RhdGFfc2V0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9leGFtcGxlcy9kYXRhX3NldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2V4YW1wbGVzL2RhdGFfc2V0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2V4YW1wbGVzL2RhdGFfc2V0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2V4YW1wbGVzL2RhdGFfc2V0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vZXhhbXBsZXMvZGF0YV9zZXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMjcxNCw2ICsyODc0LDcgQEAKIC4vZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0yNzQ4LDYgKzI5MDksNyBAQAogLi9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTI4MjEsNiArMjk4Myw3IEBACiAuL2V4YW1wbGVzL2V4YW1wbGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL2V4YW1wbGVzL2V4YW1wbGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL2V4YW1wbGVzL2V4YW1wbGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9leGFtcGxlcy9leGFtcGxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vZXhhbXBsZXMvZXhhbXBsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL2V4YW1wbGVzL2V4YW1wbGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vZXhhbXBsZXMvZXhhbXBsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMjg1NSw2ICszMDE4LDcgQEAKIC4vZXhhbXBsZXMvZXhhbXBsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vZXhhbXBsZXMvZXhhbXBsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vZXhhbXBsZXMvZXhhbXBsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2V4YW1wbGVzL2V4YW1wbGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vZXhhbXBsZXMvZXhhbXBsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9leGFtcGxlcy9leGFtcGxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vZXhhbXBsZXMvZXhhbXBsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0yOTI4LDYgKzMwOTIsNyBAQAogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMjk2Miw2ICszMTI3LDcgQEAKIC4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTMwMDMsNiArMzE2OSw3IEBACiAuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5sbzogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuaAogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MubG86IC4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfZW51bXMuaAogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0zMDcwLDYgKzMyMzcsNyBAQAogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0zMTE0LDYgKzMyODIsNyBAQAogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5sbzogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5oCiAuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmxvOiAuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5oCiAuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTMxODEsNiArMzM1MCw3IEBACiAuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5sbzogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5oCiAuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmxvOiAuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zX2xvY2FsLmgKQEAgLTMyMTksNiArMzM4OSw3IEBACiAuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zX2xvY2FsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zuc19sb2NhbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnNfbG9jYWwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zuc19sb2NhbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zX2xvY2FsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnNfbG9jYWwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnNfbG9jYWwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTMyNTMsNiArMzQyNCw3IEBACiAuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zX2xvY2FsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zuc19sb2NhbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnNfbG9jYWwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zuc19sb2NhbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zuc19sb2NhbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zuc19sb2NhbC5sbzogLi9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5oCiAuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zX2xvY2FsLmxvOiAuL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2VudW1zLmgKQEAgLTMyOTAsNiArMzQ2Miw3IEBACiAuL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vZXhhbXBsZXMvbm90aWZpY2F0aW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9leGFtcGxlcy9ub3RpZmljYXRpb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9leGFtcGxlcy9ub3RpZmljYXRpb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9leGFtcGxlcy9ub3RpZmljYXRpb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9leGFtcGxlcy9ub3RpZmljYXRpb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vZXhhbXBsZXMvbm90aWZpY2F0aW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0zMzI0LDYgKzM0OTcsNyBAQAogLi9leGFtcGxlcy9ub3RpZmljYXRpb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vZXhhbXBsZXMvbm90aWZpY2F0aW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vZXhhbXBsZXMvbm90aWZpY2F0aW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9leGFtcGxlcy9ub3RpZmljYXRpb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9leGFtcGxlcy9ub3RpZmljYXRpb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMzM2NCw2ICszNTM4LDcgQEAKIC4vZXhhbXBsZXMvbm90aWZpY2F0aW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5sbzogbm90aWZpY2F0aW9uLmgKIC4vZXhhbXBsZXMvc2NhbGFyX2ludC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9leGFtcGxlcy9zY2FsYXJfaW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vZXhhbXBsZXMvc2NhbGFyX2ludC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL2V4YW1wbGVzL3NjYWxhcl9pbnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9leGFtcGxlcy9zY2FsYXJfaW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTM0MzEsNiArMzYwNiw3IEBACiAuL2V4YW1wbGVzL3NjYWxhcl9pbnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2V4YW1wbGVzL3NjYWxhcl9pbnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2V4YW1wbGVzL3NjYWxhcl9pbnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9leGFtcGxlcy9zY2FsYXJfaW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2V4YW1wbGVzL3NjYWxhcl9pbnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vZXhhbXBsZXMvc2NhbGFyX2ludC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL2V4YW1wbGVzL3NjYWxhcl9pbnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMzUwMyw2ICszNjc5LDcgQEAKIC4vZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9leGFtcGxlcy91Y2REZW1vUHVibGljLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9leGFtcGxlcy91Y2REZW1vUHVibGljLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0zNTM3LDYgKzM3MTQsNyBAQAogLi9leGFtcGxlcy91Y2REZW1vUHVibGljLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9leGFtcGxlcy91Y2REZW1vUHVibGljLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9leGFtcGxlcy91Y2REZW1vUHVibGljLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9leGFtcGxlcy91Y2REZW1vUHVibGljLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9leGFtcGxlcy91Y2REZW1vUHVibGljLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTM2MTEsNiArMzc4OSw3IEBACiAuL2V4YW1wbGVzL3dhdGNoZWQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL2V4YW1wbGVzL3dhdGNoZWQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL2V4YW1wbGVzL3dhdGNoZWQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9leGFtcGxlcy93YXRjaGVkLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vZXhhbXBsZXMvd2F0Y2hlZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL2V4YW1wbGVzL3dhdGNoZWQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vZXhhbXBsZXMvd2F0Y2hlZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMzY0NSw2ICszODI0LDcgQEAKIC4vZXhhbXBsZXMvd2F0Y2hlZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vZXhhbXBsZXMvd2F0Y2hlZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vZXhhbXBsZXMvd2F0Y2hlZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2V4YW1wbGVzL3dhdGNoZWQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vZXhhbXBsZXMvd2F0Y2hlZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9leGFtcGxlcy93YXRjaGVkLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vZXhhbXBsZXMvd2F0Y2hlZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0zNzE4LDYgKzM4OTgsNyBAQAogLi9ob3N0L2hyX2RldmljZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vaG9zdC9ocl9kZXZpY2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL2hvc3QvaHJfZGV2aWNlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vaG9zdC9ocl9kZXZpY2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9ob3N0L2hyX2RldmljZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL2hvc3QvaHJfZGV2aWNlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2hvc3QvaHJfZGV2aWNlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0zNzUyLDYgKzM5MzMsNyBAQAogLi9ob3N0L2hyX2RldmljZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vaG9zdC9ocl9kZXZpY2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hvc3QvaHJfZGV2aWNlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaG9zdC9ocl9kZXZpY2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vaG9zdC9ocl9kZXZpY2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaG9zdC9ocl9kZXZpY2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCiAuL2hvc3QvaHJfZGV2aWNlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaApAQCAtMzc5NCw2ICszOTc2LDcgQEAKIC4vaG9zdC9ocl9kaXNrLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9ob3N0L2hyX2Rpc2subG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL2hvc3QvaHJfZGlzay5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL2hvc3QvaHJfZGlzay5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2hvc3QvaHJfZGlzay5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL2hvc3QvaHJfZGlzay5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9ob3N0L2hyX2Rpc2subG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTM4MjgsNiArNDAxMSw3IEBACiAuL2hvc3QvaHJfZGlzay5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vaG9zdC9ocl9kaXNrLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9ob3N0L2hyX2Rpc2subG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9ob3N0L2hyX2Rpc2subG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vaG9zdC9ocl9kaXNrLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2hvc3QvaHJfZGlzay5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKIC4vaG9zdC9ocl9kaXNrLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaApAQCAtMzgzOCw2ICs0MDIyLDcgQEAKIC4vaG9zdC9ocl9kaXNrLmxvOiAuL2hvc3QvaHJfZGlzay5oCiAuL2hvc3QvaHJfZGlzay5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oCiAuL2hvc3QvaHJfZmlsZXN5cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9ob3N0L2hyX2ZpbGVzeXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9ob3N0L2hyX2ZpbGVzeXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9ob3N0L2hyX2ZpbGVzeXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9ob3N0L2hyX2ZpbGVzeXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMzkwNSw2ICs0MDkwLDcgQEAKIC4vaG9zdC9ocl9maWxlc3lzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9ob3N0L2hyX2ZpbGVzeXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hvc3QvaHJfZmlsZXN5cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2hvc3QvaHJfZmlsZXN5cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9ob3N0L2hyX2ZpbGVzeXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaG9zdC9ocl9maWxlc3lzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vaG9zdC9ocl9maWxlc3lzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTM5NDcsNiArNDEzMyw3IEBACiAuL2hvc3QvaHJfZmlsZXN5cy5sbzogaG9zdF9yZXMuaCAuL2hvc3QvaHJfZmlsZXN5cy5oIC4vaG9zdC9ocl9zdG9yYWdlLmgKIC4vaG9zdC9ocl9maWxlc3lzLmxvOiAuL2hvc3QvaHJfZGlzay5oCiAuL2hvc3QvaHJoX2ZpbGVzeXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vaG9zdC9ocmhfZmlsZXN5cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2hvc3QvaHJoX2ZpbGVzeXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9ob3N0L2hyaF9maWxlc3lzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vaG9zdC9ocmhfZmlsZXN5cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC00MDE0LDYgKzQyMDEsNyBAQAogLi9ob3N0L2hyaF9maWxlc3lzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9ob3N0L2hyaF9maWxlc3lzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9ob3N0L2hyaF9maWxlc3lzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaG9zdC9ocmhfZmlsZXN5cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9ob3N0L2hyaF9maWxlc3lzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2hvc3QvaHJoX2ZpbGVzeXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9ob3N0L2hyaF9maWxlc3lzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTQwOTAsNiArNDI3OCw3IEBACiAuL2hvc3QvaHJoX3N0b3JhZ2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL2hvc3QvaHJoX3N0b3JhZ2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL2hvc3QvaHJoX3N0b3JhZ2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9ob3N0L2hyaF9zdG9yYWdlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vaG9zdC9ocmhfc3RvcmFnZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL2hvc3QvaHJoX3N0b3JhZ2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vaG9zdC9ocmhfc3RvcmFnZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtNDEyNCw2ICs0MzEzLDcgQEAKIC4vaG9zdC9ocmhfc3RvcmFnZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vaG9zdC9ocmhfc3RvcmFnZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vaG9zdC9ocmhfc3RvcmFnZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2hvc3QvaHJoX3N0b3JhZ2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vaG9zdC9ocmhfc3RvcmFnZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9ob3N0L2hyaF9zdG9yYWdlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vaG9zdC9ocmhfc3RvcmFnZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC00MTY3LDYgKzQzNTcsNyBAQAogLi9ob3N0L2hyaF9zdG9yYWdlLmxvOiBob3N0X3Jlcy5oIC4vaG9zdC9ocmhfZmlsZXN5cy5oIC4vaG9zdC9ocmhfc3RvcmFnZS5oCiAuL2hvc3QvaHJoX3N0b3JhZ2UubG86IC4vaG9zdC9ocl9kaXNrLmgKIC4vaG9zdC9ocl9uZXR3b3JrLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2hvc3QvaHJfbmV0d29yay5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2hvc3QvaHJfbmV0d29yay5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL2hvc3QvaHJfbmV0d29yay5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL2hvc3QvaHJfbmV0d29yay5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC00MjM0LDYgKzQ0MjUsNyBAQAogLi9ob3N0L2hyX25ldHdvcmsubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2hvc3QvaHJfbmV0d29yay5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vaG9zdC9ocl9uZXR3b3JrLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaG9zdC9ocl9uZXR3b3JrLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2hvc3QvaHJfbmV0d29yay5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9ob3N0L2hyX25ldHdvcmsubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9ob3N0L2hyX25ldHdvcmsubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtNDMwOSw2ICs0NTAxLDcgQEAKIC4vaG9zdC9ocl9vdGhlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vaG9zdC9ocl9vdGhlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vaG9zdC9ocl9vdGhlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL2hvc3QvaHJfb3RoZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9ob3N0L2hyX290aGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vaG9zdC9ocl9vdGhlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9ob3N0L2hyX290aGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC00MzQzLDYgKzQ1MzYsNyBAQAogLi9ob3N0L2hyX290aGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9ob3N0L2hyX290aGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9ob3N0L2hyX290aGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaG9zdC9ocl9vdGhlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9ob3N0L2hyX290aGVyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2hvc3QvaHJfb3RoZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCiAuL2hvc3QvaHJfb3RoZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oCkBAIC00Mzg2LDYgKzQ1ODAsNyBAQAogLi9ob3N0L2hyX3BhcnRpdGlvbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vaG9zdC9ocl9wYXJ0aXRpb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL2hvc3QvaHJfcGFydGl0aW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vaG9zdC9ocl9wYXJ0aXRpb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9ob3N0L2hyX3BhcnRpdGlvbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL2hvc3QvaHJfcGFydGl0aW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2hvc3QvaHJfcGFydGl0aW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC00NDIwLDYgKzQ2MTUsNyBAQAogLi9ob3N0L2hyX3BhcnRpdGlvbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vaG9zdC9ocl9wYXJ0aXRpb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hvc3QvaHJfcGFydGl0aW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaG9zdC9ocl9wYXJ0aXRpb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vaG9zdC9ocl9wYXJ0aXRpb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaG9zdC9ocl9wYXJ0aXRpb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCiAuL2hvc3QvaHJfcGFydGl0aW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaApAQCAtNDQ2NCw2ICs0NjYwLDcgQEAKIC4vaG9zdC9ocl9wcmludC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vaG9zdC9ocl9wcmludC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vaG9zdC9ocl9wcmludC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL2hvc3QvaHJfcHJpbnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9ob3N0L2hyX3ByaW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vaG9zdC9ocl9wcmludC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9ob3N0L2hyX3ByaW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC00NDk4LDYgKzQ2OTUsNyBAQAogLi9ob3N0L2hyX3ByaW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9ob3N0L2hyX3ByaW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9ob3N0L2hyX3ByaW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaG9zdC9ocl9wcmludC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9ob3N0L2hyX3ByaW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2hvc3QvaHJfcHJpbnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCiAuL2hvc3QvaHJfcHJpbnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oCkBAIC00NTA1LDkgKzQ3MDMsOSBAQAogLi9ob3N0L2hyX3ByaW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaAogLi9ob3N0L2hyX3ByaW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgKIC4vaG9zdC9ocl9wcmludC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZkX2V2ZW50X21hbmFnZXIuaAotLi9ob3N0L2hyX3ByaW50LmxvOiAuL2hvc3QvaHJfcHJpbnQuaCBzdHJ1Y3QuaCB1dGlsX2Z1bmNzLmggdXRpbF9mdW5jcy9FeGl0LmgKKy4vaG9zdC9ocl9wcmludC5sbzogLi9ob3N0L2hyX3ByaW50Lmggc3RydWN0LmggdXRpbF9mdW5jcy5oCiAuL2hvc3QvaHJfcHJpbnQubG86IHV0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaAotLi9ob3N0L2hyX3ByaW50LmxvOiB1dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuaCB1dGlsX2Z1bmNzL3Jlc3RhcnQuaAorLi9ob3N0L2hyX3ByaW50LmxvOiB1dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuaAogLi9ob3N0L2hyX3ByaW50LmxvOiB1dGlsX2Z1bmNzL01JQl9TVEFUU19DQUNIRV9USU1FT1VULmgKIC4vaG9zdC9ocl9wcm9jLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL2hvc3QvaHJfcHJvYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCkBAIC00NTQzLDYgKzQ3NDEsNyBAQAogLi9ob3N0L2hyX3Byb2MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL2hvc3QvaHJfcHJvYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vaG9zdC9ocl9wcm9jLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vaG9zdC9ocl9wcm9jLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vaG9zdC9ocl9wcm9jLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vaG9zdC9ocl9wcm9jLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2hvc3QvaHJfcHJvYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtNDU3Nyw2ICs0Nzc2LDcgQEAKIC4vaG9zdC9ocl9wcm9jLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9ob3N0L2hyX3Byb2MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hvc3QvaHJfcHJvYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2hvc3QvaHJfcHJvYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9ob3N0L2hyX3Byb2MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaG9zdC9ocl9wcm9jLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vaG9zdC9ocl9wcm9jLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTQ2NTQsNiArNDg1NCw3IEBACiAuL2hvc3QvaHJfc3RvcmFnZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vaG9zdC9ocl9zdG9yYWdlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9ob3N0L2hyX3N0b3JhZ2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9ob3N0L2hyX3N0b3JhZ2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9ob3N0L2hyX3N0b3JhZ2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9ob3N0L2hyX3N0b3JhZ2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vaG9zdC9ocl9zdG9yYWdlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC00Njg4LDYgKzQ4ODksNyBAQAogLi9ob3N0L2hyX3N0b3JhZ2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2hvc3QvaHJfc3RvcmFnZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vaG9zdC9ocl9zdG9yYWdlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaG9zdC9ocl9zdG9yYWdlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2hvc3QvaHJfc3RvcmFnZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9ob3N0L2hyX3N0b3JhZ2UubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCiAuL2hvc3QvaHJfc3RvcmFnZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgKQEAgLTQ3NjMsNiArNDk2NSw3IEBACiAuL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vaG9zdC9oclNXSW5zdGFsbGVkVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vaG9zdC9oclNXSW5zdGFsbGVkVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vaG9zdC9oclNXSW5zdGFsbGVkVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTQ3OTcsNiArNTAwMCw3IEBACiAuL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vaG9zdC9oclNXSW5zdGFsbGVkVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTQ4MzgsNiArNTA0Miw3IEBACiAuL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N3aW5zdC5oCiAuL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmxvOiAuL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmgKIC4vaG9zdC9ocl9zd2luc3QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vaG9zdC9ocl9zd2luc3QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9ob3N0L2hyX3N3aW5zdC5sbzogaG9zdF9yZXMuaAogLi9ob3N0L2hyX3N3aW5zdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL2hvc3QvaHJfc3dpbnN0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKQEAgLTQ5MDYsNiArNTExMSw3IEBACiAuL2hvc3QvaHJfc3dpbnN0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9ob3N0L2hyX3N3aW5zdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vaG9zdC9ocl9zd2luc3QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9ob3N0L2hyX3N3aW5zdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9ob3N0L2hyX3N3aW5zdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9ob3N0L2hyX3N3aW5zdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKIC4vaG9zdC9ocl9zd2luc3QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oCkBAIC00OTQ1LDYgKzUxNTEsNyBAQAogLi9ob3N0L2hyX3N3cnVuLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9ob3N0L2hyX3N3cnVuLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9ob3N0L2hyX3N3cnVuLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vaG9zdC9ocl9zd3J1bi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2hvc3QvaHJfc3dydW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9ob3N0L2hyX3N3cnVuLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2hvc3QvaHJfc3dydW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTQ5ODMsNiArNTE5MCw3IEBACiAuL2hvc3QvaHJfc3dydW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2hvc3QvaHJfc3dydW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2hvc3QvaHJfc3dydW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9ob3N0L2hyX3N3cnVuLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2hvc3QvaHJfc3dydW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vaG9zdC9ocl9zd3J1bi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKIC4vaG9zdC9ocl9zd3J1bi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgKQEAgLTUwMjcsNiArNTIzNSw3IEBACiAuL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vaG9zdC9oclNXUnVuUGVyZlRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9ob3N0L2hyU1dSdW5QZXJmVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9ob3N0L2hyU1dSdW5QZXJmVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9ob3N0L2hyU1dSdW5QZXJmVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9ob3N0L2hyU1dSdW5QZXJmVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vaG9zdC9oclNXUnVuUGVyZlRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC01MDYxLDYgKzUyNzAsNyBAQAogLi9ob3N0L2hyU1dSdW5QZXJmVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vaG9zdC9oclNXUnVuUGVyZlRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaG9zdC9oclNXUnVuUGVyZlRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9ob3N0L2hyU1dSdW5QZXJmVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9ob3N0L2hyU1dSdW5QZXJmVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtNTEzNiw2ICs1MzQ2LDcgQEAKIC4vaG9zdC9oclNXUnVuVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL2hvc3QvaHJTV1J1blRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9ob3N0L2hyU1dSdW5UYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL2hvc3QvaHJTV1J1blRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vaG9zdC9oclNXUnVuVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9ob3N0L2hyU1dSdW5UYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9ob3N0L2hyU1dSdW5UYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtNTE3MCw2ICs1MzgxLDcgQEAKIC4vaG9zdC9oclNXUnVuVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2hvc3QvaHJTV1J1blRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9ob3N0L2hyU1dSdW5UYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2hvc3QvaHJTV1J1blRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2hvc3QvaHJTV1J1blRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2hvc3QvaHJTV1J1blRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vaG9zdC9oclNXUnVuVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtNTIxMSw2ICs1NDIzLDcgQEAKIC4vaG9zdC9oclNXUnVuVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3dydW4uaAogLi9ob3N0L2hyU1dSdW5UYWJsZS5sbzogLi9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmggLi9ob3N0L2hyU1dSdW5UYWJsZS5oCiAuL2hvc3QvaHJfc3lzdGVtLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2hvc3QvaHJfc3lzdGVtLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vaG9zdC9ocl9zeXN0ZW0ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9ob3N0L2hyX3N5c3RlbS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL2hvc3QvaHJfc3lzdGVtLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTUyNzgsNiArNTQ5MSw3IEBACiAuL2hvc3QvaHJfc3lzdGVtLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9ob3N0L2hyX3N5c3RlbS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vaG9zdC9ocl9zeXN0ZW0ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9ob3N0L2hyX3N5c3RlbS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9ob3N0L2hyX3N5c3RlbS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9ob3N0L2hyX3N5c3RlbS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL2hvc3QvaHJfc3lzdGVtLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTUzMTksNiArNTUzMyw3IEBACiAuL2hvc3QvaHJfc3lzdGVtLmxvOiBob3N0X3Jlcy5oIC4vaG9zdC9ocl9zeXN0ZW0uaAogLi9ob3N0L2hyX3N5c3RlbS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0LmgKIC4vaXAtbWliL2lwX3NjYWxhcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vaXAtbWliL2lwX3NjYWxhcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9pcC1taWIvaXBfc2NhbGFycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL2lwLW1pYi9pcF9zY2FsYXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vaXAtbWliL2lwX3NjYWxhcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtNTM4Niw2ICs1NjAxLDcgQEAKIC4vaXAtbWliL2lwX3NjYWxhcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2lwLW1pYi9pcF9zY2FsYXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9pcC1taWIvaXBfc2NhbGFycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2lwLW1pYi9pcF9zY2FsYXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2lwLW1pYi9pcF9zY2FsYXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2lwLW1pYi9pcF9zY2FsYXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vaXAtbWliL2lwX3NjYWxhcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtNTQ2Miw2ICs1Njc4LDcgQEAKIC4vbWliSUkvYXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL21pYklJL2F0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9taWJJSS9hdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL21pYklJL2F0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vbWliSUkvYXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9taWJJSS9hdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9taWJJSS9hdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtNTQ5Niw2ICs1NzEzLDcgQEAKIC4vbWliSUkvYXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL21pYklJL2F0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9taWJJSS9hdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL21pYklJL2F0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL21pYklJL2F0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL21pYklJL2F0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vbWliSUkvYXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtNTU3Myw2ICs1NzkxLDcgQEAKIC4vbWliSUkvaWNtcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vbWliSUkvaWNtcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vbWliSUkvaWNtcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL21pYklJL2ljbXAubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9taWJJSS9pY21wLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vbWliSUkvaWNtcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9taWJJSS9pY21wLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC01NjA3LDYgKzU4MjYsNyBAQAogLi9taWJJSS9pY21wLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9taWJJSS9pY21wLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9taWJJSS9pY21wLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vbWliSUkvaWNtcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9taWJJSS9pY21wLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL21pYklJL2ljbXAubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9taWJJSS9pY21wLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTU2NTAsNiArNTg3MCw3IEBACiAuL21pYklJL2ljbXAubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgKIC4vbWliSUkvaWNtcC5sbzogdXRpbF9mdW5jcy9NSUJfU1RBVFNfQ0FDSEVfVElNRU9VVC5oIC4vbWliSUkvaWNtcC5oCiAuL21pYklJL2ludGVyZmFjZXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vbWliSUkvaW50ZXJmYWNlcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL21pYklJL2ludGVyZmFjZXMubG86IC4uLy4uL2FnZW50L2tlcm5lbC5oCiAuL21pYklJL2ludGVyZmFjZXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9taWJJSS9pbnRlcmZhY2VzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKQEAgLTU3MTgsNiArNTkzOSw3IEBACiAuL21pYklJL2ludGVyZmFjZXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL21pYklJL2ludGVyZmFjZXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL21pYklJL2ludGVyZmFjZXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9taWJJSS9pbnRlcmZhY2VzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL21pYklJL2ludGVyZmFjZXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vbWliSUkvaW50ZXJmYWNlcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL21pYklJL2ludGVyZmFjZXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtNTc2MCw5ICs1OTgyLDEyIEBACiAuL21pYklJL2ludGVyZmFjZXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oCiAuL21pYklJL2ludGVyZmFjZXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgKIC4vbWliSUkvaW50ZXJmYWNlcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaAotLi9taWJJSS9pbnRlcmZhY2VzLmxvOiAuL21pYklJL2ludGVyZmFjZXMuaCBzdHJ1Y3QuaAorLi9taWJJSS9pbnRlcmZhY2VzLmxvOiAuL21pYklJL2ludGVyZmFjZXMuaCBzdHJ1Y3QuaCB1dGlsX2Z1bmNzLmgKIC4vbWliSUkvaW50ZXJmYWNlcy5sbzogdXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5oCisuL21pYklJL2ludGVyZmFjZXMubG86IHV0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5oCisuL21pYklJL2ludGVyZmFjZXMubG86IHV0aWxfZnVuY3MvTUlCX1NUQVRTX0NBQ0hFX1RJTUVPVVQuaAogLi9taWJJSS9pcEFkZHIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vbWliSUkvaXBBZGRyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vbWliSUkvaXBBZGRyLmxvOiAuLi8uLi9hZ2VudC9rZXJuZWwuaAogLi9taWJJSS9pcEFkZHIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9taWJJSS9pcEFkZHIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaApAQCAtNTgzMSw2ICs2MDU2LDcgQEAKIC4vbWliSUkvaXBBZGRyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9taWJJSS9pcEFkZHIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL21pYklJL2lwQWRkci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL21pYklJL2lwQWRkci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9taWJJSS9pcEFkZHIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vbWliSUkvaXBBZGRyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vbWliSUkvaXBBZGRyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTU5MDksNiArNjEzNSw3IEBACiAuL21pYklJL2lwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9taWJJSS9pcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vbWliSUkvaXAubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9taWJJSS9pcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL21pYklJL2lwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vbWliSUkvaXAubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vbWliSUkvaXAubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTU5NDMsNiArNjE3MCw3IEBACiAuL21pYklJL2lwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9taWJJSS9pcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vbWliSUkvaXAubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9taWJJSS9pcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9taWJJSS9pcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9taWJJSS9pcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL21pYklJL2lwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTYwMjIsNiArNjI1MCw3IEBACiAuL21pYklJL2lwQ2lkclJvdXRlVGFibGVfYWNjZXNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vbWliSUkvaXBDaWRyUm91dGVUYWJsZV9hY2Nlc3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL21pYklJL2lwQ2lkclJvdXRlVGFibGVfYWNjZXNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vbWliSUkvaXBDaWRyUm91dGVUYWJsZV9hY2Nlc3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vbWliSUkvaXBDaWRyUm91dGVUYWJsZV9hY2Nlc3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTYwNTYsNiArNjI4NSw3IEBACiAuL21pYklJL2lwQ2lkclJvdXRlVGFibGVfYWNjZXNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vbWliSUkvaXBDaWRyUm91dGVUYWJsZV9hY2Nlc3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL21pYklJL2lwQ2lkclJvdXRlVGFibGVfYWNjZXNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTYwOTcsNiArNjMyNyw3IEBACiAuL21pYklJL2lwQ2lkclJvdXRlVGFibGVfYWNjZXNzLmxvOiAuL21pYklJL2lwQ2lkclJvdXRlVGFibGVfYWNjZXNzLmgKIC4vbWliSUkvaXBDaWRyUm91dGVUYWJsZV9hY2Nlc3MubG86IC4vbWliSUkvaXBDaWRyUm91dGVUYWJsZV9lbnVtcy5oCiAuL21pYklJL2lwQ2lkclJvdXRlVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vbWliSUkvaXBDaWRyUm91dGVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL21pYklJL2lwQ2lkclJvdXRlVGFibGUubG86IC4vbWliSUkvcm91dGVfaGVhZGVycy5oCiAuL21pYklJL2lwQ2lkclJvdXRlVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKQEAgLTYxNjUsNiArNjM5Niw3IEBACiAuL21pYklJL2lwQ2lkclJvdXRlVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL21pYklJL2lwQ2lkclJvdXRlVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL21pYklJL2lwQ2lkclJvdXRlVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL21pYklJL2lwQ2lkclJvdXRlVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vbWliSUkvaXBDaWRyUm91dGVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL21pYklJL2lwQ2lkclJvdXRlVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtNjI0Myw2ICs2NDc1LDcgQEAKIC4vbWliSUkvaXBDaWRyUm91dGVUYWJsZV9jaGVja2Zucy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vbWliSUkvaXBDaWRyUm91dGVUYWJsZV9jaGVja2Zucy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vbWliSUkvaXBDaWRyUm91dGVUYWJsZV9jaGVja2Zucy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL21pYklJL2lwQ2lkclJvdXRlVGFibGVfY2hlY2tmbnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2NoZWNrZm5zLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vbWliSUkvaXBDaWRyUm91dGVUYWJsZV9jaGVja2Zucy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2NoZWNrZm5zLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC02Mjc3LDEwICs2NTEwLDEyIEBACiAuL21pYklJL2lwQ2lkclJvdXRlVGFibGVfY2hlY2tmbnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL21pYklJL2lwQ2lkclJvdXRlVGFibGVfY2hlY2tmbnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL21pYklJL2lwQ2lkclJvdXRlVGFibGVfY2hlY2tmbnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2NoZWNrZm5zLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL21pYklJL2lwQ2lkclJvdXRlVGFibGVfY2hlY2tmbnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vbWliSUkvaXBDaWRyUm91dGVUYWJsZV9jaGVja2Zucy5sbzogLi9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2NoZWNrZm5zLmgKIC4vbWliSUkvaXBDaWRyUm91dGVUYWJsZV9jaGVja2Zucy5sbzogLi9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2VudW1zLmgKIC4vbWliSUkvaXB2Ni5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9taWJJSS9pcHY2LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vbWliSUkvaXB2Ni5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL21pYklJL2lwdjYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9taWJJSS9pcHY2LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTYzNDgsNiArNjU4Myw3IEBACiAuL21pYklJL2lwdjYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL21pYklJL2lwdjYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL21pYklJL2lwdjYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9taWJJSS9pcHY2LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL21pYklJL2lwdjYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vbWliSUkvaXB2Ni5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL21pYklJL2lwdjYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtNjM5MCw2ICs2NjI2LDcgQEAKIC4vbWliSUkvaXB2Ni5sbzogLi4vLi4vYWdlbnQva2VybmVsLmggLi9taWJJSS9pcHY2LmggLi9taWJJSS92YXJfcm91dGUuaAogLi9taWJJSS9pcHY2LmxvOiAuL21pYklJL3JvdXRlX3dyaXRlLmggLi9taWJJSS9hdC5oIC4vbWliSUkvaW50ZXJmYWNlcy5oCiAuL21pYklJL2tlcm5lbF9saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9taWJJSS9rZXJuZWxfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9taWJJSS9rZXJuZWxfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9taWJJSS9rZXJuZWxfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9taWJJSS9rZXJuZWxfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtNjQ1Nyw2ICs2Njk0LDcgQEAKIC4vbWliSUkva2VybmVsX2xpbnV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9taWJJSS9rZXJuZWxfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL21pYklJL2tlcm5lbF9saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL21pYklJL2tlcm5lbF9saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9taWJJSS9rZXJuZWxfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vbWliSUkva2VybmVsX2xpbnV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vbWliSUkva2VybmVsX2xpbnV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTY0OTUsNyArNjczMyw3IEBACiAuL21pYklJL2tlcm5lbF9saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oCiAuL21pYklJL2tlcm5lbF9saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaAogLi9taWJJSS9rZXJuZWxfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKLS4vbWliSUkva2VybmVsX2xpbnV4LmxvOiAuL21pYklJL2tlcm5lbF9saW51eC5oCisuL21pYklJL2tlcm5lbF9saW51eC5sbzogLi9taWJJSS9rZXJuZWxfbGludXguaCAuL21pYklJL2tlcm5lbF9taWIuaAogLi9taWJJSS9rZXJuZWxfbmV0YnNkLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL21pYklJL2tlcm5lbF9uZXRic2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9taWJJSS9rZXJuZWxfbmV0YnNkLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKQEAgLTY1MzAsNiArNjc2OCw3IEBACiAuL21pYklJL2tlcm5lbF9uZXRic2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL21pYklJL2tlcm5lbF9uZXRic2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL21pYklJL2tlcm5lbF9uZXRic2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9taWJJSS9rZXJuZWxfbmV0YnNkLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vbWliSUkva2VybmVsX25ldGJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL21pYklJL2tlcm5lbF9uZXRic2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vbWliSUkva2VybmVsX25ldGJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtNjU2NCw2ICs2ODAzLDcgQEAKIC4vbWliSUkva2VybmVsX25ldGJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vbWliSUkva2VybmVsX25ldGJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vbWliSUkva2VybmVsX25ldGJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL21pYklJL2tlcm5lbF9uZXRic2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vbWliSUkva2VybmVsX25ldGJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9taWJJSS9rZXJuZWxfbmV0YnNkLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vbWliSUkva2VybmVsX25ldGJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC02NjAzLDYgKzY4NDMsMTE1IEBACiAuL21pYklJL2tlcm5lbF9uZXRic2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgKIC4vbWliSUkva2VybmVsX25ldGJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi9taWJJSS9rZXJuZWxfbmV0YnNkLmxvOiAuL21pYklJL2tlcm5lbF9uZXRic2QuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9wZHVfYXBpLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdWNkX2NvbXBhdC5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZhY3RvcnkuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbGlzdF9zc2xsLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9pdGVyYXRvci5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfbW9kdWxlX2NvbmZpZy5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mZF9ldmVudF9tYW5hZ2VyLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2NhbGFyLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zY2FsYXJfZ3JvdXAuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3Jvd19tZXJnZS5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21vZGVfZW5kX2NhbGwuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV90ZGF0YS5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaAorLi9taWJJSS9rZXJuZWxfc3lzY3RsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oCisuL21pYklJL2tlcm5lbF9zeXNjdGwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKKy4vbWliSUkva2VybmVsX3N5c2N0bC5sbzogLi9taWJJSS9rZXJuZWxfc3lzY3RsLmgKIC4vbWliSUkvbXRhX3NlbmRtYWlsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL21pYklJL210YV9zZW5kbWFpbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL21pYklJL210YV9zZW5kbWFpbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCkBAIC02NjM3LDYgKzY5ODYsNyBAQAogLi9taWJJSS9tdGFfc2VuZG1haWwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL21pYklJL210YV9zZW5kbWFpbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vbWliSUkvbXRhX3NlbmRtYWlsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vbWliSUkvbXRhX3NlbmRtYWlsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vbWliSUkvbXRhX3NlbmRtYWlsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vbWliSUkvbXRhX3NlbmRtYWlsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL21pYklJL210YV9zZW5kbWFpbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtNjY3MSw2ICs3MDIxLDcgQEAKIC4vbWliSUkvbXRhX3NlbmRtYWlsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9taWJJSS9tdGFfc2VuZG1haWwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL21pYklJL210YV9zZW5kbWFpbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL21pYklJL210YV9zZW5kbWFpbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9taWJJSS9tdGFfc2VuZG1haWwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vbWliSUkvbXRhX3NlbmRtYWlsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vbWliSUkvbXRhX3NlbmRtYWlsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTY3NDQsNiArNzA5NSw3IEBACiAuL21pYklJL3JvdXRlX3dyaXRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9taWJJSS9yb3V0ZV93cml0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vbWliSUkvcm91dGVfd3JpdGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9taWJJSS9yb3V0ZV93cml0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL21pYklJL3JvdXRlX3dyaXRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vbWliSUkvcm91dGVfd3JpdGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vbWliSUkvcm91dGVfd3JpdGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTY3NzgsNiArNzEzMCw3IEBACiAuL21pYklJL3JvdXRlX3dyaXRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9taWJJSS9yb3V0ZV93cml0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vbWliSUkvcm91dGVfd3JpdGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9taWJJSS9yb3V0ZV93cml0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9taWJJSS9yb3V0ZV93cml0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9taWJJSS9yb3V0ZV93cml0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL21pYklJL3JvdXRlX3dyaXRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTY4MTksNiArNzE3Miw3IEBACiAuL21pYklJL3JvdXRlX3dyaXRlLmxvOiAuL21pYklJL2lwLmggLi9taWJJSS92YXJfcm91dGUuaAogLi9taWJJSS9yb3V0ZV93cml0ZS5sbzogLi9taWJJSS9yb3V0ZV93cml0ZS5oIC4vbWliSUkvYXQuaAogLi9taWJJSS9zZXRTZXJpYWxOby5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9taWJJSS9zZXRTZXJpYWxOby5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL21pYklJL3NldFNlcmlhbE5vLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vbWliSUkvc2V0U2VyaWFsTm8ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9taWJJSS9zZXRTZXJpYWxOby5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC02ODg2LDYgKzcyNDAsNyBAQAogLi9taWJJSS9zZXRTZXJpYWxOby5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vbWliSUkvc2V0U2VyaWFsTm8ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL21pYklJL3NldFNlcmlhbE5vLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vbWliSUkvc2V0U2VyaWFsTm8ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vbWliSUkvc2V0U2VyaWFsTm8ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vbWliSUkvc2V0U2VyaWFsTm8ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9taWJJSS9zZXRTZXJpYWxOby5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC02OTI2LDYgKzcyODEsNyBAQAogLi9taWJJSS9zZXRTZXJpYWxOby5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi9taWJJSS9zZXRTZXJpYWxOby5sbzogLi9taWJJSS9zZXRTZXJpYWxOby5oCiAuL21pYklJL3NubXBfbWliXzVfNS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9taWJJSS9zbm1wX21pYl81XzUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9taWJJSS9zbm1wX21pYl81XzUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9taWJJSS9zbm1wX21pYl81XzUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9taWJJSS9zbm1wX21pYl81XzUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtNjk5Myw2ICs3MzQ5LDcgQEAKIC4vbWliSUkvc25tcF9taWJfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9taWJJSS9zbm1wX21pYl81XzUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL21pYklJL3NubXBfbWliXzVfNS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL21pYklJL3NubXBfbWliXzVfNS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9taWJJSS9zbm1wX21pYl81XzUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vbWliSUkvc25tcF9taWJfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vbWliSUkvc25tcF9taWJfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTcwMzUsNiArNzM5Miw3IEBACiAuL21pYklJL3NubXBfbWliXzVfNS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaAogLi9taWJJSS9zbm1wX21pYl81XzUubG86IC4vbWliSUkvc25tcF9taWJfNV81LmggLi9taWJJSS91cGRhdGVzLmgKIC4vbWliSUkvc25tcF9taWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vbWliSUkvc25tcF9taWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9taWJJSS9zbm1wX21pYi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL21pYklJL3NubXBfbWliLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vbWliSUkvc25tcF9taWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtNzEwMiw2ICs3NDYwLDcgQEAKIC4vbWliSUkvc25tcF9taWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL21pYklJL3NubXBfbWliLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9taWJJSS9zbm1wX21pYi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL21pYklJL3NubXBfbWliLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL21pYklJL3NubXBfbWliLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL21pYklJL3NubXBfbWliLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vbWliSUkvc25tcF9taWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtNzE3Nyw2ICs3NTM2LDcgQEAKIC4vbWliSUkvc3lzT1JUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vbWliSUkvc3lzT1JUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vbWliSUkvc3lzT1JUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL21pYklJL3N5c09SVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9taWJJSS9zeXNPUlRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vbWliSUkvc3lzT1JUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9taWJJSS9zeXNPUlRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC03MjExLDYgKzc1NzEsNyBAQAogLi9taWJJSS9zeXNPUlRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9taWJJSS9zeXNPUlRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9taWJJSS9zeXNPUlRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vbWliSUkvc3lzT1JUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9taWJJSS9zeXNPUlRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL21pYklJL3N5c09SVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9taWJJSS9zeXNPUlRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTcyNTQsNiArNzYxNSw3IEBACiAuL21pYklJL3N5c09SVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgKIC4vbWliSUkvc3lzT1JUYWJsZS5sbzogLi9taWJJSS9zeXNPUlRhYmxlLmgKIC4vbWliSUkvc3lzdGVtX21pYi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9taWJJSS9zeXN0ZW1fbWliLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vbWliSUkvc3lzdGVtX21pYi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL21pYklJL3N5c3RlbV9taWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9taWJJSS9zeXN0ZW1fbWliLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTczMjEsNiArNzY4Myw3IEBACiAuL21pYklJL3N5c3RlbV9taWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL21pYklJL3N5c3RlbV9taWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL21pYklJL3N5c3RlbV9taWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9taWJJSS9zeXN0ZW1fbWliLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL21pYklJL3N5c3RlbV9taWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vbWliSUkvc3lzdGVtX21pYi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL21pYklJL3N5c3RlbV9taWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtNzM2MSwxMiArNzcyNCwxMiBAQAogLi9taWJJSS9zeXN0ZW1fbWliLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL21pYklJL3N5c3RlbV9taWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oCiAuL21pYklJL3N5c3RlbV9taWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgKLS4vbWliSUkvc3lzdGVtX21pYi5sbzogdXRpbF9mdW5jcy5oIHV0aWxfZnVuY3MvRXhpdC5oCi0uL21pYklJL3N5c3RlbV9taWIubG86IHV0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaAotLi9taWJJSS9zeXN0ZW1fbWliLmxvOiB1dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuaCB1dGlsX2Z1bmNzL3Jlc3RhcnQuaAotLi9taWJJSS9zeXN0ZW1fbWliLmxvOiBzdHJ1Y3QuaCB1dGlsX2Z1bmNzL01JQl9TVEFUU19DQUNIRV9USU1FT1VULmgKKy4vbWliSUkvc3lzdGVtX21pYi5sbzogdXRpbF9mdW5jcy5oIHV0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaAorLi9taWJJSS9zeXN0ZW1fbWliLmxvOiB1dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuaCBzdHJ1Y3QuaAorLi9taWJJSS9zeXN0ZW1fbWliLmxvOiB1dGlsX2Z1bmNzL01JQl9TVEFUU19DQUNIRV9USU1FT1VULmgKIC4vbWliSUkvc3lzdGVtX21pYi5sbzogLi9taWJJSS9zeXN0ZW1fbWliLmggLi9taWJJSS91cGRhdGVzLmgKIC4vbWliSUkvdGNwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL21pYklJL3RjcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL21pYklJL3RjcC5sbzogLi9taWJJSS9taWJJSV9jb21tb24uaAogLi9taWJJSS90Y3AubG86IC4uLy4uL2FnZW50L2tlcm5lbC5oCiAuL21pYklJL3RjcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCkBAIC03NDM2LDYgKzc3OTksNyBAQAogLi9taWJJSS90Y3AubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL21pYklJL3RjcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vbWliSUkvdGNwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vbWliSUkvdGNwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL21pYklJL3RjcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9taWJJSS90Y3AubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9taWJJSS90Y3AubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtNzQ4MCw2ICs3ODQ0LDcgQEAKIC4vbWliSUkvdGNwLmxvOiB1dGlsX2Z1bmNzL01JQl9TVEFUU19DQUNIRV9USU1FT1VULmggLi9taWJJSS90Y3AuaAogLi9taWJJSS90Y3AubG86IC4vbWliSUkvdGNwVGFibGUuaAogLi9taWJJSS90Y3BUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9taWJJSS90Y3BUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL21pYklJL3RjcFRhYmxlLmxvOiAuL21pYklJL21pYklJX2NvbW1vbi5oCiAuL21pYklJL3RjcFRhYmxlLmxvOiAuLi8uLi9hZ2VudC9rZXJuZWwuaAogLi9taWJJSS90Y3BUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCkBAIC03NTQ5LDYgKzc5MTQsNyBAQAogLi9taWJJSS90Y3BUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vbWliSUkvdGNwVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL21pYklJL3RjcFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vbWliSUkvdGNwVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vbWliSUkvdGNwVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vbWliSUkvdGNwVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9taWJJSS90Y3BUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC03NjI1LDYgKzc5OTEsNyBAQAogLi9taWJJSS91ZHAubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL21pYklJL3VkcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vbWliSUkvdWRwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vbWliSUkvdWRwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vbWliSUkvdWRwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vbWliSUkvdWRwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL21pYklJL3VkcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtNzY1OSw2ICs4MDI2LDcgQEAKIC4vbWliSUkvdWRwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9taWJJSS91ZHAubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL21pYklJL3VkcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL21pYklJL3VkcC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9taWJJSS91ZHAubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vbWliSUkvdWRwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vbWliSUkvdWRwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTc3MzgsNiArODEwNiw3IEBACiAuL21pYklJL3VkcFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9taWJJSS91ZHBUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vbWliSUkvdWRwVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9taWJJSS91ZHBUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL21pYklJL3VkcFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vbWliSUkvdWRwVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vbWliSUkvdWRwVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTc3NzIsNiArODE0MSw3IEBACiAuL21pYklJL3VkcFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9taWJJSS91ZHBUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vbWliSUkvdWRwVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9taWJJSS91ZHBUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9taWJJSS91ZHBUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9taWJJSS91ZHBUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL21pYklJL3VkcFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTc4NDYsNiArODIxNiw3IEBACiAuL21pYklJL3VwZGF0ZXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL21pYklJL3VwZGF0ZXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL21pYklJL3VwZGF0ZXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9taWJJSS91cGRhdGVzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vbWliSUkvdXBkYXRlcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL21pYklJL3VwZGF0ZXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vbWliSUkvdXBkYXRlcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtNzg4MCw2ICs4MjUxLDcgQEAKIC4vbWliSUkvdXBkYXRlcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vbWliSUkvdXBkYXRlcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vbWliSUkvdXBkYXRlcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL21pYklJL3VwZGF0ZXMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vbWliSUkvdXBkYXRlcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9taWJJSS91cGRhdGVzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vbWliSUkvdXBkYXRlcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC03OTUyLDYgKzgzMjQsNyBAQAogLi9taWJJSS92YWNtX2NvbmYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL21pYklJL3ZhY21fY29uZi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vbWliSUkvdmFjbV9jb25mLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vbWliSUkvdmFjbV9jb25mLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vbWliSUkvdmFjbV9jb25mLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vbWliSUkvdmFjbV9jb25mLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL21pYklJL3ZhY21fY29uZi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtNzk4Niw2ICs4MzU5LDcgQEAKIC4vbWliSUkvdmFjbV9jb25mLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9taWJJSS92YWNtX2NvbmYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL21pYklJL3ZhY21fY29uZi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL21pYklJL3ZhY21fY29uZi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9taWJJSS92YWNtX2NvbmYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vbWliSUkvdmFjbV9jb25mLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vbWliSUkvdmFjbV9jb25mLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTgwNjAsNiArODQzNCw3IEBACiAuL21pYklJL3ZhY21fY29udGV4dC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vbWliSUkvdmFjbV9jb250ZXh0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9taWJJSS92YWNtX2NvbnRleHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9taWJJSS92YWNtX2NvbnRleHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9taWJJSS92YWNtX2NvbnRleHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9taWJJSS92YWNtX2NvbnRleHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vbWliSUkvdmFjbV9jb250ZXh0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC04MDk0LDYgKzg0NjksNyBAQAogLi9taWJJSS92YWNtX2NvbnRleHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL21pYklJL3ZhY21fY29udGV4dC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vbWliSUkvdmFjbV9jb250ZXh0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vbWliSUkvdmFjbV9jb250ZXh0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL21pYklJL3ZhY21fY29udGV4dC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9taWJJSS92YWNtX2NvbnRleHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9taWJJSS92YWNtX2NvbnRleHQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtODE2Nyw2ICs4NTQzLDcgQEAKIC4vbWliSUkvdmFjbV92YXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9taWJJSS92YWNtX3ZhcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL21pYklJL3ZhY21fdmFycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL21pYklJL3ZhY21fdmFycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL21pYklJL3ZhY21fdmFycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL21pYklJL3ZhY21fdmFycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9taWJJSS92YWNtX3ZhcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTgyMDEsNiArODU3OCw3IEBACiAuL21pYklJL3ZhY21fdmFycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vbWliSUkvdmFjbV92YXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9taWJJSS92YWNtX3ZhcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9taWJJSS92YWNtX3ZhcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vbWliSUkvdmFjbV92YXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL21pYklJL3ZhY21fdmFycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL21pYklJL3ZhY21fdmFycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC04MjQzLDYgKzg2MjEsNyBAQAogLi9taWJJSS92YWNtX3ZhcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oCiAuL21pYklJL3ZhY21fdmFycy5sbzogLi9taWJJSS92YWNtX3ZhcnMuaCB1dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmgKIC4vbWliSUkvdmFyX3JvdXRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL21pYklJL3Zhcl9yb3V0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL21pYklJL3Zhcl9yb3V0ZS5sbzogLi9taWJJSS9yb3V0ZV9oZWFkZXJzLmgKIC4vbWliSUkvdmFyX3JvdXRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vbWliSUkvdmFyX3JvdXRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKQEAgLTgzMTEsNiArODY5MCw3IEBACiAuL21pYklJL3Zhcl9yb3V0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vbWliSUkvdmFyX3JvdXRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9taWJJSS92YXJfcm91dGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9taWJJSS92YXJfcm91dGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vbWliSUkvdmFyX3JvdXRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL21pYklJL3Zhcl9yb3V0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL21pYklJL3Zhcl9yb3V0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC04MzUzLDcgKzg3MzMsOSBAQAogLi9taWJJSS92YXJfcm91dGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgKIC4vbWliSUkvdmFyX3JvdXRlLmxvOiAuL21pYklJL2lwLmggLi9taWJJSS92YXJfcm91dGUuaCAuL21pYklJL3JvdXRlX3dyaXRlLmgKIC4vbWliSUkvdmFyX3JvdXRlLmxvOiAuL21pYklJL2F0LmggLi4vLi4vYWdlbnQva2VybmVsLmggLi9taWJJSS9pbnRlcmZhY2VzLmgKLS4vbWliSUkvdmFyX3JvdXRlLmxvOiBzdHJ1Y3QuaAorLi9taWJJSS92YXJfcm91dGUubG86IHN0cnVjdC5oIHV0aWxfZnVuY3MuaCB1dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmgKKy4vbWliSUkvdmFyX3JvdXRlLmxvOiB1dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuaAorLi9taWJJSS92YXJfcm91dGUubG86IHV0aWxfZnVuY3MvTUlCX1NUQVRTX0NBQ0hFX1RJTUVPVVQuaAogLi9taXNjL2lwZndhY2MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKIC4vbWlzYy9pcGZ3YWNjLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vbWlzYy9pcGZ3YWNjLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKQEAgLTgzODgsNiArODc3MCw3IEBACiAuL21pc2MvaXBmd2FjYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vbWlzYy9pcGZ3YWNjLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9taXNjL2lwZndhY2MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9taXNjL2lwZndhY2MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9taXNjL2lwZndhY2MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9taXNjL2lwZndhY2MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vbWlzYy9pcGZ3YWNjLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC04NDIyLDYgKzg4MDUsNyBAQAogLi9taXNjL2lwZndhY2MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL21pc2MvaXBmd2FjYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vbWlzYy9pcGZ3YWNjLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vbWlzYy9pcGZ3YWNjLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL21pc2MvaXBmd2FjYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9taXNjL2lwZndhY2MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9taXNjL2lwZndhY2MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtODQ2Miw2ICs4ODQ2LDcgQEAKIC4vbWlzYy9pcGZ3YWNjLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL21pc2MvaXBmd2FjYy5sbzogdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmggLi9taXNjL2lwZndhY2MuaAogLi9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtODUyOSw2ICs4OTE0LDcgQEAKIC4vbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC04NTcxLDYgKzg5NTcsNyBAQAogLi9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2NhbGxiYWNrcy5oCiAuL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cubG86IC4vbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5oCiAuL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTg2MzgsNiArOTAyNSw3IEBACiAuL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTg2NzksNiArOTA2Nyw3IEBACiAuL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmxvOiBoZWFkZXJfY29tcGxleC5oCiAuL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmxvOiAuL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmgKIC4vbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTg3NDYsNiArOTEzNSw3IEBACiAuL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtODgzMiw2ICs5MjIyLDcgQEAKIC4vUm1vbi9hZ3V0aWwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL1Jtb24vYWd1dGlsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9SbW9uL2FndXRpbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL1Jtb24vYWd1dGlsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vUm1vbi9hZ3V0aWwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9SbW9uL2FndXRpbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9SbW9uL2FndXRpbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtODg2Niw2ICs5MjU3LDcgQEAKIC4vUm1vbi9hZ3V0aWwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL1Jtb24vYWd1dGlsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9SbW9uL2FndXRpbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL1Jtb24vYWd1dGlsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL1Jtb24vYWd1dGlsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL1Jtb24vYWd1dGlsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vUm1vbi9hZ3V0aWwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtODkzOSw2ICs5MzMxLDcgQEAKIC4vUm1vbi9hbGFybS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vUm1vbi9hbGFybS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vUm1vbi9hbGFybS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL1Jtb24vYWxhcm0ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9SbW9uL2FsYXJtLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vUm1vbi9hbGFybS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9SbW9uL2FsYXJtLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC04OTczLDYgKzkzNjYsNyBAQAogLi9SbW9uL2FsYXJtLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9SbW9uL2FsYXJtLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9SbW9uL2FsYXJtLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vUm1vbi9hbGFybS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9SbW9uL2FsYXJtLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL1Jtb24vYWxhcm0ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9SbW9uL2FsYXJtLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTkwMTMsNiArOTQwNyw3IEBACiAuL1Jtb24vYWxhcm0ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKIC4vUm1vbi9hbGFybS5sbzogLi9SbW9uL2FsYXJtLmggLi9SbW9uL2FndXRpbF9hcGkuaCAuL1Jtb24vcm93X2FwaS5oCiAuL1Jtb24vYWxhcm1UYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9SbW9uL2FsYXJtVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9SbW9uL2FsYXJtVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9SbW9uL2FsYXJtVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9SbW9uL2FsYXJtVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtOTA4MCw2ICs5NDc1LDcgQEAKIC4vUm1vbi9hbGFybVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9SbW9uL2FsYXJtVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL1Jtb24vYWxhcm1UYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL1Jtb24vYWxhcm1UYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9SbW9uL2FsYXJtVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vUm1vbi9hbGFybVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vUm1vbi9hbGFybVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTkxMjAsNiArOTUxNiw3IEBACiAuL1Jtb24vYWxhcm1UYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi9SbW9uL2FsYXJtVGFibGUubG86IHV0aWxpdGllcy9pcXVlcnkuaCAuL1Jtb24vYWxhcm1UYWJsZS5oCiAuL1Jtb24vZXZlbnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vUm1vbi9ldmVudC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL1Jtb24vZXZlbnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9SbW9uL2V2ZW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vUm1vbi9ldmVudC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC05MTg3LDYgKzk1ODQsNyBAQAogLi9SbW9uL2V2ZW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9SbW9uL2V2ZW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9SbW9uL2V2ZW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vUm1vbi9ldmVudC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9SbW9uL2V2ZW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL1Jtb24vZXZlbnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9SbW9uL2V2ZW50LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTkyNjAsNiArOTY1OCw3IEBACiAuL1Jtb24vaGlzdG9yeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vUm1vbi9oaXN0b3J5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9SbW9uL2hpc3RvcnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9SbW9uL2hpc3RvcnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9SbW9uL2hpc3RvcnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9SbW9uL2hpc3RvcnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vUm1vbi9oaXN0b3J5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC05Mjk0LDYgKzk2OTMsNyBAQAogLi9SbW9uL2hpc3RvcnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL1Jtb24vaGlzdG9yeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vUm1vbi9oaXN0b3J5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vUm1vbi9oaXN0b3J5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL1Jtb24vaGlzdG9yeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9SbW9uL2hpc3RvcnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9SbW9uL2hpc3RvcnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtOTM2Nyw2ICs5NzY3LDcgQEAKIC4vUm1vbi9yb3dzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9SbW9uL3Jvd3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL1Jtb24vcm93cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL1Jtb24vcm93cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL1Jtb24vcm93cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL1Jtb24vcm93cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9SbW9uL3Jvd3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTk0MDEsNiArOTgwMiw3IEBACiAuL1Jtb24vcm93cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vUm1vbi9yb3dzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9SbW9uL3Jvd3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9SbW9uL3Jvd3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vUm1vbi9yb3dzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL1Jtb24vcm93cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL1Jtb24vcm93cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC05NDc0LDYgKzk4NzYsNyBAQAogLi9SbW9uL3N0YXRpc3RpY3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL1Jtb24vc3RhdGlzdGljcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vUm1vbi9zdGF0aXN0aWNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vUm1vbi9zdGF0aXN0aWNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vUm1vbi9zdGF0aXN0aWNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vUm1vbi9zdGF0aXN0aWNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL1Jtb24vc3RhdGlzdGljcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtOTUwOCw2ICs5OTExLDcgQEAKIC4vUm1vbi9zdGF0aXN0aWNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9SbW9uL3N0YXRpc3RpY3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL1Jtb24vc3RhdGlzdGljcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL1Jtb24vc3RhdGlzdGljcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9SbW9uL3N0YXRpc3RpY3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vUm1vbi9zdGF0aXN0aWNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vUm1vbi9zdGF0aXN0aWNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTk1ODIsNiArOTk4Niw3IEBACiAuL3NjdHAtbWliL3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NjdHAtbWliL3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTk2MTYsNiArMTAwMjEsNyBAQAogLi9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NjdHAtbWliL3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC05NjkwLDYgKzEwMDk2LDcgQEAKIC4vc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTk3MjQsNiArMTAxMzEsNyBAQAogLi9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtOTc5OCw2ICsxMDIwNiw3IEBACiAuL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc2N0cC1taWIvc2N0cEFzc29jVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc2N0cC1taWIvc2N0cEFzc29jVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc2N0cC1taWIvc2N0cEFzc29jVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTk4MzIsNiArMTAyNDEsNyBAQAogLi9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc2N0cC1taWIvc2N0cEFzc29jVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc2N0cC1taWIvc2N0cEFzc29jVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc2N0cC1taWIvc2N0cEFzc29jVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc2N0cC1taWIvc2N0cEFzc29jVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC05OTA2LDYgKzEwMzE2LDcgQEAKIC4vc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTk5NDAsNiArMTAzNTEsNyBAQAogLi9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTAwMTQsNiArMTA0MjYsNyBAQAogLi9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xMDA0OCw2ICsxMDQ2MSw3IEBACiAuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTEwMTIyLDYgKzEwNTM2LDcgQEAKIC4vc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTEwMTU2LDYgKzEwNTcxLDcgQEAKIC4vc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTEwMjMwLDYgKzEwNjQ2LDcgQEAKIC4vc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xMDI2NCw2ICsxMDY4MSw3IEBACiAuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTAzMzgsNiArMTA3NTYsNyBAQAogLi9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTEwMzcyLDYgKzEwNzkxLDcgQEAKIC4vc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMDQ0Niw2ICsxMDg2Niw3IEBACiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zY3RwLW1pYi9zY3RwU2NhbGFycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zY3RwLW1pYi9zY3RwU2NhbGFycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTEwNDgwLDYgKzEwOTAxLDcgQEAKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zY3RwLW1pYi9zY3RwU2NhbGFycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NjdHAtbWliL3NjdHBTY2FsYXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTA1NTQsNiArMTA5NzYsNyBAQAogLi9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzX2NvbW1vbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzX2NvbW1vbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTA1ODgsNiArMTEwMTEsNyBAQAogLi9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzX2NvbW1vbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzX2NvbW1vbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTA2NjEsNiArMTEwODUsNyBAQAogLi9zY3RwLW1pYi9zY3RwU2NhbGFyc19mcmVlYnNkLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zY3RwLW1pYi9zY3RwU2NhbGFyc19mcmVlYnNkLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9zY3RwLW1pYi9zY3RwU2NhbGFyc19mcmVlYnNkLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc2N0cC1taWIvc2N0cFNjYWxhcnNfZnJlZWJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzX2ZyZWVic2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9zY3RwLW1pYi9zY3RwU2NhbGFyc19mcmVlYnNkLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzX2ZyZWVic2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTEwNjk1LDYgKzExMTIwLDcgQEAKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfZnJlZWJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfZnJlZWJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfZnJlZWJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NjdHAtbWliL3NjdHBTY2FsYXJzX2ZyZWVic2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfZnJlZWJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zY3RwLW1pYi9zY3RwU2NhbGFyc19mcmVlYnNkLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfZnJlZWJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMDc2OCw2ICsxMTE5NCw3IEBACiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzX2xpbnV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zY3RwLW1pYi9zY3RwU2NhbGFyc19saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zY3RwLW1pYi9zY3RwU2NhbGFyc19saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzX2xpbnV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTEwODAyLDYgKzExMjI5LDcgQEAKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzX2xpbnV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zY3RwLW1pYi9zY3RwU2NhbGFyc19saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NjdHAtbWliL3NjdHBTY2FsYXJzX2xpbnV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzX2xpbnV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzX2xpbnV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTA4NzUsNiArMTEzMDMsNyBAQAogLi9zY3RwLW1pYi9zY3RwU2NhbGFyc19zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfc29sYXJpczIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzX3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc2N0cC1taWIvc2N0cFNjYWxhcnNfc29sYXJpczIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zY3RwLW1pYi9zY3RwU2NhbGFyc19zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzX3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzX3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xMDkwOSw2ICsxMTMzOCw3IEBACiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzX3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zY3RwLW1pYi9zY3RwU2NhbGFyc19zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfc29sYXJpczIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zY3RwLW1pYi9zY3RwU2NhbGFyc19zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zY3RwLW1pYi9zY3RwU2NhbGFyc19zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zY3RwLW1pYi9zY3RwU2NhbGFyc19zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3NjdHAtbWliL3NjdHBTY2FsYXJzX3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTEwOTUwLDYgKzExMzgwLDcgQEAKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfc29sYXJpczIubG86IC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmgKIC4vc2N0cC1taWIvc2N0cFNjYWxhcnNfc29sYXJpczIubG86IGtlcm5lbF9zdW5vczUuaAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0xMTAxNyw2ICsxMTQ0OCw3IEBACiAuL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTExMDk4LDYgKzExNTMwLDcgQEAKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19mcmVlYnNkLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX2ZyZWVic2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NjdHAtbWliL3NjdHBUYWJsZXNfZnJlZWJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NjdHAtbWliL3NjdHBUYWJsZXNfZnJlZWJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NjdHAtbWliL3NjdHBUYWJsZXNfZnJlZWJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NjdHAtbWliL3NjdHBUYWJsZXNfZnJlZWJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX2ZyZWVic2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTExMTMyLDYgKzExNTY1LDcgQEAKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19mcmVlYnNkLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX2ZyZWVic2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NjdHAtbWliL3NjdHBUYWJsZXNfZnJlZWJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NjdHAtbWliL3NjdHBUYWJsZXNfZnJlZWJzZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX2ZyZWVic2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19mcmVlYnNkLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19mcmVlYnNkLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTExMTc0LDEwICsxMTYwOCw4IEBACiAuL3NjdHAtbWliL3NjdHBUYWJsZXNfZnJlZWJzZC5sbzogLi9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5oCiAuL3NjdHAtbWliL3NjdHBUYWJsZXNfZnJlZWJzZC5sbzogLi9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5oCiAuL3NjdHAtbWliL3NjdHBUYWJsZXNfZnJlZWJzZC5sbzogLi9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUuaAotLi9zY3RwLW1pYi9zY3RwVGFibGVzX2ZyZWVic2QubG86IHV0aWxfZnVuY3MuaCB1dGlsX2Z1bmNzL0V4aXQuaAotLi9zY3RwLW1pYi9zY3RwVGFibGVzX2ZyZWVic2QubG86IHV0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaAotLi9zY3RwLW1pYi9zY3RwVGFibGVzX2ZyZWVic2QubG86IHV0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5oCi0uL3NjdHAtbWliL3NjdHBUYWJsZXNfZnJlZWJzZC5sbzogdXRpbF9mdW5jcy9yZXN0YXJ0Lmggc3RydWN0LmgKKy4vc2N0cC1taWIvc2N0cFRhYmxlc19mcmVlYnNkLmxvOiB1dGlsX2Z1bmNzLmggdXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5oCisuL3NjdHAtbWliL3NjdHBUYWJsZXNfZnJlZWJzZC5sbzogdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmggc3RydWN0LmgKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19mcmVlYnNkLmxvOiB1dGlsX2Z1bmNzL01JQl9TVEFUU19DQUNIRV9USU1FT1VULmgKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX2xpbnV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKQEAgLTExMjEzLDYgKzExNjQ1LDcgQEAKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NjdHAtbWliL3NjdHBUYWJsZXNfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX2xpbnV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX2xpbnV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xMTI0Nyw2ICsxMTY4MCw3IEBACiAuL3NjdHAtbWliL3NjdHBUYWJsZXNfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NjdHAtbWliL3NjdHBUYWJsZXNfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NjdHAtbWliL3NjdHBUYWJsZXNfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zY3RwLW1pYi9zY3RwVGFibGVzX2xpbnV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NjdHAtbWliL3NjdHBUYWJsZXNfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3NjdHAtbWliL3NjdHBUYWJsZXNfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTEzMjQsNiArMTE3NTgsNyBAQAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc2N0cC1taWIvc2N0cFRhYmxlc19zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NjdHAtbWliL3NjdHBUYWJsZXNfc29sYXJpczIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NjdHAtbWliL3NjdHBUYWJsZXNfc29sYXJpczIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTExMzU4LDYgKzExNzkzLDcgQEAKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NjdHAtbWliL3NjdHBUYWJsZXNfc29sYXJpczIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMTQwMCwxMyArMTE4MzYsMTIgQEAKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19zb2xhcmlzMi5sbzogLi9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5oCiAuL3NjdHAtbWliL3NjdHBUYWJsZXNfc29sYXJpczIubG86IC4vc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuaAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX3NvbGFyaXMyLmxvOiAuL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5oCi0uL3NjdHAtbWliL3NjdHBUYWJsZXNfc29sYXJpczIubG86IHV0aWxfZnVuY3MuaCB1dGlsX2Z1bmNzL0V4aXQuaAotLi9zY3RwLW1pYi9zY3RwVGFibGVzX3NvbGFyaXMyLmxvOiB1dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmgKLS4vc2N0cC1taWIvc2N0cFRhYmxlc19zb2xhcmlzMi5sbzogdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmgKLS4vc2N0cC1taWIvc2N0cFRhYmxlc19zb2xhcmlzMi5sbzogdXRpbF9mdW5jcy9yZXN0YXJ0Lmggc3RydWN0LmgKKy4vc2N0cC1taWIvc2N0cFRhYmxlc19zb2xhcmlzMi5sbzogdXRpbF9mdW5jcy5oIHV0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaAorLi9zY3RwLW1pYi9zY3RwVGFibGVzX3NvbGFyaXMyLmxvOiB1dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuaCBzdHJ1Y3QuaAogLi9zY3RwLW1pYi9zY3RwVGFibGVzX3NvbGFyaXMyLmxvOiB1dGlsX2Z1bmNzL01JQl9TVEFUU19DQUNIRV9USU1FT1VULmgKIC4vc2N0cC1taWIvc2N0cFRhYmxlc19zb2xhcmlzMi5sbzoga2VybmVsX3N1bm9zNS5oCiAuL3NtdXgvc211eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9zbXV4L3NtdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zbXV4L3NtdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9zbXV4L3NtdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9zbXV4L3NtdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMTE0NzQsNiArMTE5MDksNyBAQAogLi9zbXV4L3NtdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NtdXgvc211eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc211eC9zbXV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc211eC9zbXV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NtdXgvc211eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zbXV4L3NtdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9zbXV4L3NtdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTE1NDcsNiArMTE5ODMsNyBAQAogLi9zbXV4L3NubXBfYmdwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbXV4L3NubXBfYmdwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9zbXV4L3NubXBfYmdwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc211eC9zbm1wX2JncC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NtdXgvc25tcF9iZ3AubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9zbXV4L3NubXBfYmdwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NtdXgvc25tcF9iZ3AubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTExNTgxLDYgKzEyMDE4LDcgQEAKIC4vc211eC9zbm1wX2JncC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc211eC9zbm1wX2JncC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc211eC9zbm1wX2JncC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NtdXgvc25tcF9iZ3AubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc211eC9zbm1wX2JncC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zbXV4L3NubXBfYmdwLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vc211eC9zbm1wX2JncC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMTY1NCw2ICsxMjA5Miw3IEBACiAuL3NtdXgvc25tcF9vc3BmLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbXV4L3NubXBfb3NwZi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc211eC9zbm1wX29zcGYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zbXV4L3NubXBfb3NwZi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NtdXgvc25tcF9vc3BmLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc211eC9zbm1wX29zcGYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc211eC9zbm1wX29zcGYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTExNjg4LDYgKzEyMTI3LDcgQEAKIC4vc211eC9zbm1wX29zcGYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NtdXgvc25tcF9vc3BmLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zbXV4L3NubXBfb3NwZi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NtdXgvc25tcF9vc3BmLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NtdXgvc25tcF9vc3BmLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NtdXgvc25tcF9vc3BmLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vc211eC9zbm1wX29zcGYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTE3NjEsNiArMTIyMDEsNyBAQAogLi9zbXV4L3NubXBfcmlwMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vc211eC9zbm1wX3JpcDIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NtdXgvc25tcF9yaXAyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc211eC9zbm1wX3JpcDIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zbXV4L3NubXBfcmlwMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NtdXgvc25tcF9yaXAyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NtdXgvc25tcF9yaXAyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xMTc5NSw2ICsxMjIzNiw3IEBACiAuL3NtdXgvc25tcF9yaXAyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zbXV4L3NubXBfcmlwMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc211eC9zbm1wX3JpcDIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zbXV4L3NubXBfcmlwMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zbXV4L3NubXBfcmlwMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zbXV4L3NubXBfcmlwMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3NtdXgvc25tcF9yaXAyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTExODM1LDYgKzEyMjc3LDcgQEAKIC4vc211eC9zbm1wX3JpcDIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmggc211eC5oCiAuL3NtdXgvc25tcF9yaXAyLmxvOiAuL3NtdXgvc25tcF9yaXAyLmgKIC4vc25tcHYzL3NubXBFbmdpbmUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vc25tcHYzL3NubXBFbmdpbmUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zbm1wdjMvc25tcEVuZ2luZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL3NubXB2My9zbm1wRW5naW5lLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vc25tcHYzL3NubXBFbmdpbmUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMTE5MDIsNiArMTIzNDUsNyBAQAogLi9zbm1wdjMvc25tcEVuZ2luZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc25tcHYzL3NubXBFbmdpbmUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NubXB2My9zbm1wRW5naW5lLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc25tcHYzL3NubXBFbmdpbmUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc25tcHYzL3NubXBFbmdpbmUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc25tcHYzL3NubXBFbmdpbmUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9zbm1wdjMvc25tcEVuZ2luZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMTk0NCw2ICsxMjM4OCw3IEBACiAuL3NubXB2My9zbm1wRW5naW5lLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2NhbGxiYWNrcy5oCiAuL3NubXB2My9zbm1wRW5naW5lLmxvOiB1dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmggLi9zbm1wdjMvc25tcEVuZ2luZS5oCiAuL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcHYzL3NubXBNUERTdGF0c181XzUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTEyMDExLDYgKzEyNDU2LDcgQEAKIC4vc25tcHYzL3NubXBNUERTdGF0c181XzUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vc25tcHYzL3NubXBNUERTdGF0c181XzUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTIwODYsNiArMTI1MzIsNyBAQAogLi9zbm1wdjMvc25tcE1QRFN0YXRzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbm1wdjMvc25tcE1QRFN0YXRzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9zbm1wdjMvc25tcE1QRFN0YXRzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc25tcHYzL3NubXBNUERTdGF0cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXB2My9zbm1wTVBEU3RhdHMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9zbm1wdjMvc25tcE1QRFN0YXRzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NubXB2My9zbm1wTVBEU3RhdHMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTEyMTIwLDYgKzEyNTY3LDcgQEAKIC4vc25tcHYzL3NubXBNUERTdGF0cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc25tcHYzL3NubXBNUERTdGF0cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc25tcHYzL3NubXBNUERTdGF0cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NubXB2My9zbm1wTVBEU3RhdHMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc25tcHYzL3NubXBNUERTdGF0cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zbm1wdjMvc25tcE1QRFN0YXRzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vc25tcHYzL3NubXBNUERTdGF0cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMjE5NSw2ICsxMjY0Myw3IEBACiAuL3NubXB2My91c21Db25mLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbm1wdjMvdXNtQ29uZi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc25tcHYzL3VzbUNvbmYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zbm1wdjMvdXNtQ29uZi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXB2My91c21Db25mLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc25tcHYzL3VzbUNvbmYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc25tcHYzL3VzbUNvbmYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTEyMjI5LDYgKzEyNjc4LDcgQEAKIC4vc25tcHYzL3VzbUNvbmYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NubXB2My91c21Db25mLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zbm1wdjMvdXNtQ29uZi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NubXB2My91c21Db25mLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NubXB2My91c21Db25mLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NubXB2My91c21Db25mLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vc25tcHYzL3VzbUNvbmYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTIyNjgsNiArMTI3MTgsNyBAQAogLi9zbm1wdjMvdXNtQ29uZi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaAogLi9zbm1wdjMvdXNtQ29uZi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi9zbm1wdjMvdXNtU3RhdHNfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL3NubXB2My91c21TdGF0c181XzUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zbm1wdjMvdXNtU3RhdHNfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vc25tcHYzL3VzbVN0YXRzXzVfNS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL3NubXB2My91c21TdGF0c181XzUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMTIzMzUsNiArMTI3ODYsNyBAQAogLi9zbm1wdjMvdXNtU3RhdHNfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zbm1wdjMvdXNtU3RhdHNfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zbm1wdjMvdXNtU3RhdHNfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc25tcHYzL3VzbVN0YXRzXzVfNS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zbm1wdjMvdXNtU3RhdHNfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NubXB2My91c21TdGF0c181XzUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9zbm1wdjMvdXNtU3RhdHNfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTEyNDEwLDYgKzEyODYyLDcgQEAKIC4vc25tcHYzL3VzbVN0YXRzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbm1wdjMvdXNtU3RhdHMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NubXB2My91c21TdGF0cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NubXB2My91c21TdGF0cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXB2My91c21TdGF0cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NubXB2My91c21TdGF0cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zbm1wdjMvdXNtU3RhdHMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTEyNDQ0LDYgKzEyODk3LDcgQEAKIC4vc25tcHYzL3VzbVN0YXRzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zbm1wdjMvdXNtU3RhdHMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NubXB2My91c21TdGF0cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NubXB2My91c21TdGF0cy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zbm1wdjMvdXNtU3RhdHMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc25tcHYzL3VzbVN0YXRzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vc25tcHYzL3VzbVN0YXRzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTEyNDg2LDYgKzEyOTQwLDcgQEAKIC4vc25tcHYzL3VzbVN0YXRzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2NhbGxiYWNrcy5oCiAuL3NubXB2My91c21TdGF0cy5sbzogdXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5oIC4vc25tcHYzL3VzbVN0YXRzLmgKIC4vc25tcHYzL3VzbVVzZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vc25tcHYzL3VzbVVzZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zbm1wdjMvdXNtVXNlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL3NubXB2My91c21Vc2VyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vc25tcHYzL3VzbVVzZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMTI1NTMsNiArMTMwMDgsNyBAQAogLi9zbm1wdjMvdXNtVXNlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc25tcHYzL3VzbVVzZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NubXB2My91c21Vc2VyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc25tcHYzL3VzbVVzZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc25tcHYzL3VzbVVzZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc25tcHYzL3VzbVVzZXIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9zbm1wdjMvdXNtVXNlci5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMjYyNiw2ICsxMzA4Miw3IEBACiAuL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTEyNjYwLDYgKzEzMTE3LDcgQEAKIC4vdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTI3MzQsNiArMTMxOTIsNyBAQAogLi90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTEyNzY4LDYgKzEzMjI3LDcgQEAKIC4vdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMjgwOCw2ICsxMzI2OCw3IEBACiAuL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKIC4vdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5sbzogLi90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgKIC4vdGFyZ2V0L3RhcmdldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi90YXJnZXQvdGFyZ2V0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdGFyZ2V0L3RhcmdldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL3RhcmdldC90YXJnZXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi90YXJnZXQvdGFyZ2V0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTEyODc1LDYgKzEzMzM2LDcgQEAKIC4vdGFyZ2V0L3RhcmdldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdGFyZ2V0L3RhcmdldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdGFyZ2V0L3RhcmdldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3RhcmdldC90YXJnZXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdGFyZ2V0L3RhcmdldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi90YXJnZXQvdGFyZ2V0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdGFyZ2V0L3RhcmdldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMjkxNiw2ICsxMzM3OCw3IEBACiAuL3RhcmdldC90YXJnZXQubG86IC4vdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaAogLi90YXJnZXQvdGFyZ2V0LmxvOiAuL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCB0YXJnZXQuaAogLi90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0xMjk4Myw2ICsxMzQ0Niw3IEBACiAuL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTEzMDU2LDYgKzEzNTIwLDcgQEAKIC4vdGFyZ2V0L3RhcmdldF9jb3VudGVycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdGFyZ2V0L3RhcmdldF9jb3VudGVycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vdGFyZ2V0L3RhcmdldF9jb3VudGVycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3RhcmdldC90YXJnZXRfY291bnRlcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vdGFyZ2V0L3RhcmdldF9jb3VudGVycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xMzA5MCw2ICsxMzU1NSw3IEBACiAuL3RhcmdldC90YXJnZXRfY291bnRlcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3RhcmdldC90YXJnZXRfY291bnRlcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3RhcmdldC90YXJnZXRfY291bnRlcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3RhcmdldC90YXJnZXRfY291bnRlcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdGFyZ2V0L3RhcmdldF9jb3VudGVycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3RhcmdldC90YXJnZXRfY291bnRlcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTMxNjMsNiArMTM2MjksNyBAQAogLi90c20tbWliL3NubXBUc21Db25maWd1cmF0aW9uVXNlUHJlZml4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi90c20tbWliL3NubXBUc21Db25maWd1cmF0aW9uVXNlUHJlZml4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi90c20tbWliL3NubXBUc21Db25maWd1cmF0aW9uVXNlUHJlZml4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vdHNtLW1pYi9zbm1wVHNtQ29uZmlndXJhdGlvblVzZVByZWZpeC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3RzbS1taWIvc25tcFRzbUNvbmZpZ3VyYXRpb25Vc2VQcmVmaXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi90c20tbWliL3NubXBUc21Db25maWd1cmF0aW9uVXNlUHJlZml4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3RzbS1taWIvc25tcFRzbUNvbmZpZ3VyYXRpb25Vc2VQcmVmaXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTEzMTk3LDYgKzEzNjY0LDcgQEAKIC4vdHNtLW1pYi9zbm1wVHNtQ29uZmlndXJhdGlvblVzZVByZWZpeC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdHNtLW1pYi9zbm1wVHNtQ29uZmlndXJhdGlvblVzZVByZWZpeC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdHNtLW1pYi9zbm1wVHNtQ29uZmlndXJhdGlvblVzZVByZWZpeC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3RzbS1taWIvc25tcFRzbUNvbmZpZ3VyYXRpb25Vc2VQcmVmaXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdHNtLW1pYi9zbm1wVHNtQ29uZmlndXJhdGlvblVzZVByZWZpeC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi90c20tbWliL3NubXBUc21Db25maWd1cmF0aW9uVXNlUHJlZml4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdHNtLW1pYi9zbm1wVHNtQ29uZmlndXJhdGlvblVzZVByZWZpeC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMzI3MCw2ICsxMzczOCw3IEBACiAuL3R1bm5lbC90dW5uZWwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3R1bm5lbC90dW5uZWwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3R1bm5lbC90dW5uZWwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi90dW5uZWwvdHVubmVsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdHVubmVsL3R1bm5lbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3R1bm5lbC90dW5uZWwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vdHVubmVsL3R1bm5lbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTMzMDQsNiArMTM3NzMsNyBAQAogLi90dW5uZWwvdHVubmVsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi90dW5uZWwvdHVubmVsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi90dW5uZWwvdHVubmVsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vdHVubmVsL3R1bm5lbC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi90dW5uZWwvdHVubmVsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3R1bm5lbC90dW5uZWwubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi90dW5uZWwvdHVubmVsLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTEzMzg1LDYgKzEzODU1LDcgQEAKIC4vdWNkLXNubXAvZGlzay5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdWNkLXNubXAvZGlzay5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vdWNkLXNubXAvZGlzay5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3VjZC1zbm1wL2Rpc2subG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi91Y2Qtc25tcC9kaXNrLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vdWNkLXNubXAvZGlzay5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi91Y2Qtc25tcC9kaXNrLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xMzQxOSw2ICsxMzg5MCw3IEBACiAuL3VjZC1zbm1wL2Rpc2subG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3VjZC1zbm1wL2Rpc2subG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3VjZC1zbm1wL2Rpc2subG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi91Y2Qtc25tcC9kaXNrLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3VjZC1zbm1wL2Rpc2subG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdWNkLXNubXAvZGlzay5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3VjZC1zbm1wL2Rpc2subG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTM0OTQsNiArMTM5NjYsNyBAQAogLi91Y2Qtc25tcC9kaXNrX2h3LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi91Y2Qtc25tcC9kaXNrX2h3LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi91Y2Qtc25tcC9kaXNrX2h3LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vdWNkLXNubXAvZGlza19ody5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3VjZC1zbm1wL2Rpc2tfaHcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi91Y2Qtc25tcC9kaXNrX2h3LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3VjZC1zbm1wL2Rpc2tfaHcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTEzNTI4LDYgKzE0MDAxLDcgQEAKIC4vdWNkLXNubXAvZGlza19ody5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdWNkLXNubXAvZGlza19ody5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdWNkLXNubXAvZGlza19ody5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3VjZC1zbm1wL2Rpc2tfaHcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdWNkLXNubXAvZGlza19ody5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi91Y2Qtc25tcC9kaXNrX2h3LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdWNkLXNubXAvZGlza19ody5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMzYwMyw2ICsxNDA3Nyw3IEBACiAuL3VjZC1zbm1wL2Rpc2tpby5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdWNkLXNubXAvZGlza2lvLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi91Y2Qtc25tcC9kaXNraW8ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi91Y2Qtc25tcC9kaXNraW8ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi91Y2Qtc25tcC9kaXNraW8ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi91Y2Qtc25tcC9kaXNraW8ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vdWNkLXNubXAvZGlza2lvLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xMzYzNyw2ICsxNDExMiw3IEBACiAuL3VjZC1zbm1wL2Rpc2tpby5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdWNkLXNubXAvZGlza2lvLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi91Y2Qtc25tcC9kaXNraW8ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi91Y2Qtc25tcC9kaXNraW8ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdWNkLXNubXAvZGlza2lvLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3VjZC1zbm1wL2Rpc2tpby5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3VjZC1zbm1wL2Rpc2tpby5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMzY3OCw2ICsxNDE1NCw3IEBACiAuL3VjZC1zbm1wL2Rpc2tpby5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaAogLi91Y2Qtc25tcC9kaXNraW8ubG86IHV0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5oIC4vdWNkLXNubXAvZGlza2lvLmgKIC4vdWNkLXNubXAvZGxtb2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vdWNkLXNubXAvZGxtb2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi91Y2Qtc25tcC9kbG1vZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL3VjZC1zbm1wL2RsbW9kLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vdWNkLXNubXAvZGxtb2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMTM3NDUsNiArMTQyMjIsNyBAQAogLi91Y2Qtc25tcC9kbG1vZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdWNkLXNubXAvZGxtb2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3VjZC1zbm1wL2RsbW9kLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vdWNkLXNubXAvZGxtb2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdWNkLXNubXAvZGxtb2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdWNkLXNubXAvZGxtb2QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi91Y2Qtc25tcC9kbG1vZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMzc4MywxMCArMTQyNjEsNiBAQAogLi91Y2Qtc25tcC9kbG1vZC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oCiAuL3VjZC1zbm1wL2RsbW9kLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oCiAuL3VjZC1zbm1wL2RsbW9kLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCi0uL3VjZC1zbm1wL2RsbW9kLmxvOiBzdHJ1Y3QuaCB1dGlsX2Z1bmNzLmggdXRpbF9mdW5jcy9FeGl0LmgKLS4vdWNkLXNubXAvZGxtb2QubG86IHV0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaAotLi91Y2Qtc25tcC9kbG1vZC5sbzogdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmggdXRpbF9mdW5jcy9yZXN0YXJ0LmgKLS4vdWNkLXNubXAvZGxtb2QubG86IHV0aWxfZnVuY3MvTUlCX1NUQVRTX0NBQ0hFX1RJTUVPVVQuaAogLi91Y2Qtc25tcC9kbG1vZC5sbzogLi91Y2Qtc25tcC9kbG1vZC5oCiAuL3VjZC1zbm1wL2Vycm9ybWliLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL3VjZC1zbm1wL2Vycm9ybWliLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKQEAgLTEzODIyLDYgKzE0Mjk2LDcgQEAKIC4vdWNkLXNubXAvZXJyb3JtaWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3VjZC1zbm1wL2Vycm9ybWliLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi91Y2Qtc25tcC9lcnJvcm1pYi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3VjZC1zbm1wL2Vycm9ybWliLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdWNkLXNubXAvZXJyb3JtaWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi91Y2Qtc25tcC9lcnJvcm1pYi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi91Y2Qtc25tcC9lcnJvcm1pYi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTM4NTYsNiArMTQzMzEsNyBAQAogLi91Y2Qtc25tcC9lcnJvcm1pYi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdWNkLXNubXAvZXJyb3JtaWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3VjZC1zbm1wL2Vycm9ybWliLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vdWNkLXNubXAvZXJyb3JtaWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdWNkLXNubXAvZXJyb3JtaWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdWNkLXNubXAvZXJyb3JtaWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi91Y2Qtc25tcC9lcnJvcm1pYi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMzg5OCw2ICsxNDM3NCw3IEBACiAuL3VjZC1zbm1wL2Vycm9ybWliLmxvOiAuL3VjZC1zbm1wL2Vycm9ybWliLmggbWliZGVmcy5oCiAuL3VjZC1zbm1wL2Vycm9ybWliLmxvOiB1dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmgKIC4vdWNkLXNubXAvZXh0ZW5zaWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi91Y2Qtc25tcC9leHRlbnNpYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdWNkLXNubXAvZXh0ZW5zaWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL3VjZC1zbm1wL2V4dGVuc2libGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi91Y2Qtc25tcC9leHRlbnNpYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTEzOTY1LDYgKzE0NDQyLDcgQEAKIC4vdWNkLXNubXAvZXh0ZW5zaWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdWNkLXNubXAvZXh0ZW5zaWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdWNkLXNubXAvZXh0ZW5zaWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3VjZC1zbm1wL2V4dGVuc2libGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdWNkLXNubXAvZXh0ZW5zaWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi91Y2Qtc25tcC9leHRlbnNpYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdWNkLXNubXAvZXh0ZW5zaWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xNDAwNiwxMCArMTQ0ODQsOSBAQAogLi91Y2Qtc25tcC9leHRlbnNpYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaAogLi91Y2Qtc25tcC9leHRlbnNpYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2NhbGxiYWNrcy5oCiAuL3VjZC1zbm1wL2V4dGVuc2libGUubG86IHN0cnVjdC5oIC4vdWNkLXNubXAvZXh0ZW5zaWJsZS5oIG1pYmRlZnMuaAotLi91Y2Qtc25tcC9leHRlbnNpYmxlLmxvOiAuLi8uLi9hZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmggdXRpbF9mdW5jcy9FeGl0LmgKKy4vdWNkLXNubXAvZXh0ZW5zaWJsZS5sbzogLi4vLi4vYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oCiAuL3VjZC1zbm1wL2V4dGVuc2libGUubG86IHV0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaAogLi91Y2Qtc25tcC9leHRlbnNpYmxlLmxvOiB1dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuaAotLi91Y2Qtc25tcC9leHRlbnNpYmxlLmxvOiB1dGlsX2Z1bmNzL3Jlc3RhcnQuaAogLi91Y2Qtc25tcC9leHRlbnNpYmxlLmxvOiB1dGlsX2Z1bmNzL01JQl9TVEFUU19DQUNIRV9USU1FT1VULmgKIC4vdWNkLXNubXAvZXh0ZW5zaWJsZS5sbzogdXRpbGl0aWVzL2V4ZWN1dGUuaAogLi91Y2Qtc25tcC9maWxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCkBAIC0xNDA0Niw2ICsxNDUyMyw3IEBACiAuL3VjZC1zbm1wL2ZpbGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3VjZC1zbm1wL2ZpbGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3VjZC1zbm1wL2ZpbGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi91Y2Qtc25tcC9maWxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdWNkLXNubXAvZmlsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3VjZC1zbm1wL2ZpbGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vdWNkLXNubXAvZmlsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTQwODAsNiArMTQ1NTgsNyBAQAogLi91Y2Qtc25tcC9maWxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi91Y2Qtc25tcC9maWxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi91Y2Qtc25tcC9maWxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vdWNkLXNubXAvZmlsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi91Y2Qtc25tcC9maWxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3VjZC1zbm1wL2ZpbGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi91Y2Qtc25tcC9maWxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE0MTU0LDYgKzE0NjMzLDcgQEAKIC4vdWNkLXNubXAvaHB1eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdWNkLXNubXAvaHB1eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vdWNkLXNubXAvaHB1eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3VjZC1zbm1wL2hwdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi91Y2Qtc25tcC9ocHV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vdWNkLXNubXAvaHB1eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi91Y2Qtc25tcC9ocHV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xNDE4OCw2ICsxNDY2OCw3IEBACiAuL3VjZC1zbm1wL2hwdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3VjZC1zbm1wL2hwdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3VjZC1zbm1wL2hwdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi91Y2Qtc25tcC9ocHV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3VjZC1zbm1wL2hwdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdWNkLXNubXAvaHB1eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3VjZC1zbm1wL2hwdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTQyMjgsNiArMTQ3MDksNyBAQAogLi91Y2Qtc25tcC9ocHV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL3VjZC1zbm1wL2hwdXgubG86IC4vdWNkLXNubXAvaHB1eC5oIG1pYmRlZnMuaAogLi91Y2Qtc25tcC9sbVNlbnNvcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vdWNkLXNubXAvbG1TZW5zb3JzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdWNkLXNubXAvbG1TZW5zb3JzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vdWNkLXNubXAvbG1TZW5zb3JzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vdWNkLXNubXAvbG1TZW5zb3JzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTE0Mjk1LDYgKzE0Nzc3LDcgQEAKIC4vdWNkLXNubXAvbG1TZW5zb3JzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi91Y2Qtc25tcC9sbVNlbnNvcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3VjZC1zbm1wL2xtU2Vuc29ycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3VjZC1zbm1wL2xtU2Vuc29ycy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi91Y2Qtc25tcC9sbVNlbnNvcnMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdWNkLXNubXAvbG1TZW5zb3JzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdWNkLXNubXAvbG1TZW5zb3JzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE0MzY5LDYgKzE0ODUyLDcgQEAKIC4vdWNkLXNubXAvbG1zZW5zb3JzTWliLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi91Y2Qtc25tcC9sbXNlbnNvcnNNaWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi91Y2Qtc25tcC9sbXNlbnNvcnNNaWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTE0NDAzLDYgKzE0ODg3LDcgQEAKIC4vdWNkLXNubXAvbG1zZW5zb3JzTWliLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi91Y2Qtc25tcC9sbXNlbnNvcnNNaWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi91Y2Qtc25tcC9sbXNlbnNvcnNNaWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdWNkLXNubXAvbG1zZW5zb3JzTWliLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdWNkLXNubXAvbG1zZW5zb3JzTWliLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE0NDc4LDYgKzE0OTYzLDcgQEAKIC4vdWNkLXNubXAvbG9hZGF2ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdWNkLXNubXAvbG9hZGF2ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vdWNkLXNubXAvbG9hZGF2ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3VjZC1zbm1wL2xvYWRhdmUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi91Y2Qtc25tcC9sb2FkYXZlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vdWNkLXNubXAvbG9hZGF2ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi91Y2Qtc25tcC9sb2FkYXZlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xNDUxMiw2ICsxNDk5OCw3IEBACiAuL3VjZC1zbm1wL2xvYWRhdmUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3VjZC1zbm1wL2xvYWRhdmUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3VjZC1zbm1wL2xvYWRhdmUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi91Y2Qtc25tcC9sb2FkYXZlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3VjZC1zbm1wL2xvYWRhdmUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdWNkLXNubXAvbG9hZGF2ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3VjZC1zbm1wL2xvYWRhdmUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTQ1ODksNiArMTUwNzYsNyBAQAogLi91Y2Qtc25tcC9tZW1vcnlfYWl4NC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdWNkLXNubXAvbWVtb3J5X2FpeDQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3VjZC1zbm1wL21lbW9yeV9haXg0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vdWNkLXNubXAvbWVtb3J5X2FpeDQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi91Y2Qtc25tcC9tZW1vcnlfYWl4NC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3VjZC1zbm1wL21lbW9yeV9haXg0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3VjZC1zbm1wL21lbW9yeV9haXg0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xNDYyMyw2ICsxNTExMSw3IEBACiAuL3VjZC1zbm1wL21lbW9yeV9haXg0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi91Y2Qtc25tcC9tZW1vcnlfYWl4NC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdWNkLXNubXAvbWVtb3J5X2FpeDQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi91Y2Qtc25tcC9tZW1vcnlfYWl4NC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi91Y2Qtc25tcC9tZW1vcnlfYWl4NC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi91Y2Qtc25tcC9tZW1vcnlfYWl4NC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3VjZC1zbm1wL21lbW9yeV9haXg0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE0Njk4LDYgKzE1MTg3LDcgQEAKIC4vdWNkLXNubXAvbWVtb3J5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi91Y2Qtc25tcC9tZW1vcnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3VjZC1zbm1wL21lbW9yeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3VjZC1zbm1wL21lbW9yeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3VjZC1zbm1wL21lbW9yeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3VjZC1zbm1wL21lbW9yeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi91Y2Qtc25tcC9tZW1vcnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTE0NzMyLDYgKzE1MjIyLDcgQEAKIC4vdWNkLXNubXAvbWVtb3J5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi91Y2Qtc25tcC9tZW1vcnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3VjZC1zbm1wL21lbW9yeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3VjZC1zbm1wL21lbW9yeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi91Y2Qtc25tcC9tZW1vcnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdWNkLXNubXAvbWVtb3J5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdWNkLXNubXAvbWVtb3J5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE0ODA2LDYgKzE1Mjk3LDcgQEAKIC4vdWNkLXNubXAvbWVtb3J5X2RhcndpbjcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3VjZC1zbm1wL21lbW9yeV9kYXJ3aW43LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi91Y2Qtc25tcC9tZW1vcnlfZGFyd2luNy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3VjZC1zbm1wL21lbW9yeV9kYXJ3aW43LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdWNkLXNubXAvbWVtb3J5X2RhcndpbjcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi91Y2Qtc25tcC9tZW1vcnlfZGFyd2luNy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi91Y2Qtc25tcC9tZW1vcnlfZGFyd2luNy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTQ4NDAsNiArMTUzMzIsNyBAQAogLi91Y2Qtc25tcC9tZW1vcnlfZGFyd2luNy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdWNkLXNubXAvbWVtb3J5X2RhcndpbjcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3VjZC1zbm1wL21lbW9yeV9kYXJ3aW43LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vdWNkLXNubXAvbWVtb3J5X2RhcndpbjcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdWNkLXNubXAvbWVtb3J5X2RhcndpbjcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdWNkLXNubXAvbWVtb3J5X2RhcndpbjcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi91Y2Qtc25tcC9tZW1vcnlfZGFyd2luNy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xNDkxNSw2ICsxNTQwOCw3IEBACiAuL3VjZC1zbm1wL21lbW9yeV9keW5peC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdWNkLXNubXAvbWVtb3J5X2R5bml4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi91Y2Qtc25tcC9tZW1vcnlfZHluaXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi91Y2Qtc25tcC9tZW1vcnlfZHluaXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi91Y2Qtc25tcC9tZW1vcnlfZHluaXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi91Y2Qtc25tcC9tZW1vcnlfZHluaXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vdWNkLXNubXAvbWVtb3J5X2R5bml4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xNDk0OSw2ICsxNTQ0Myw3IEBACiAuL3VjZC1zbm1wL21lbW9yeV9keW5peC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdWNkLXNubXAvbWVtb3J5X2R5bml4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi91Y2Qtc25tcC9tZW1vcnlfZHluaXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi91Y2Qtc25tcC9tZW1vcnlfZHluaXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdWNkLXNubXAvbWVtb3J5X2R5bml4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3VjZC1zbm1wL21lbW9yeV9keW5peC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3VjZC1zbm1wL21lbW9yeV9keW5peC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xNTAyNCw2ICsxNTUxOSw3IEBACiAuL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xNTA1OCw2ICsxNTU1NCw3IEBACiAuL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xNTA5NywxMCArMTU1OTQsOCBAQAogLi91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgKIC4vdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oCiAuL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0LmgKLS4vdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmxvOiB1dGlsX2Z1bmNzLmggdXRpbF9mdW5jcy9FeGl0LmgKLS4vdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmxvOiB1dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmgKLS4vdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmxvOiB1dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuaAotLi91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIubG86IHV0aWxfZnVuY3MvcmVzdGFydC5oIHN0cnVjdC5oCisuL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5sbzogdXRpbF9mdW5jcy5oIHV0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaAorLi91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIubG86IHV0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5oIHN0cnVjdC5oCiAuL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5sbzogdXRpbF9mdW5jcy9NSUJfU1RBVFNfQ0FDSEVfVElNRU9VVC5oCiAuL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5sbzogLi91Y2Qtc25tcC9tZW1vcnkuaAogLi91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIubG86IC4vdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmggbWliZGVmcy5oCkBAIC0xNTEzOCw2ICsxNTYzMyw3IEBACiAuL3VjZC1zbm1wL21lbW9yeV9ocHV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi91Y2Qtc25tcC9tZW1vcnlfaHB1eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vdWNkLXNubXAvbWVtb3J5X2hwdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi91Y2Qtc25tcC9tZW1vcnlfaHB1eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3VjZC1zbm1wL21lbW9yeV9ocHV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vdWNkLXNubXAvbWVtb3J5X2hwdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vdWNkLXNubXAvbWVtb3J5X2hwdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTE1MTcyLDYgKzE1NjY4LDcgQEAKIC4vdWNkLXNubXAvbWVtb3J5X2hwdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3VjZC1zbm1wL21lbW9yeV9ocHV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi91Y2Qtc25tcC9tZW1vcnlfaHB1eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3VjZC1zbm1wL21lbW9yeV9ocHV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3VjZC1zbm1wL21lbW9yeV9ocHV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3VjZC1zbm1wL21lbW9yeV9ocHV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdWNkLXNubXAvbWVtb3J5X2hwdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTUyNDcsNiArMTU3NDQsNyBAQAogLi91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdWNkLXNubXAvbWVtb3J5X25ldGJzZDEubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vdWNkLXNubXAvbWVtb3J5X25ldGJzZDEubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xNTI4MSw2ICsxNTc3OSw3IEBACiAuL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdWNkLXNubXAvbWVtb3J5X25ldGJzZDEubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE1MzU2LDYgKzE1ODU1LDcgQEAKIC4vdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTE1MzkwLDYgKzE1ODkwLDcgQEAKIC4vdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE1NDMzLDYgKzE1OTM0LDcgQEAKIC4vdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmxvOiAuL3VjZC1zbm1wL21lbW9yeS5oCiAuL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5sbzogLi91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCBtaWJkZWZzLmgKIC4vdWNkLXNubXAvcGFzcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi91Y2Qtc25tcC9wYXNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdWNkLXNubXAvcGFzcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL3VjZC1zbm1wL3Bhc3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi91Y2Qtc25tcC9wYXNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTE1NTAwLDYgKzE2MDAyLDcgQEAKIC4vdWNkLXNubXAvcGFzcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdWNkLXNubXAvcGFzcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdWNkLXNubXAvcGFzcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3VjZC1zbm1wL3Bhc3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdWNkLXNubXAvcGFzcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi91Y2Qtc25tcC9wYXNzLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdWNkLXNubXAvcGFzcy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xNTU0MCw5ICsxNjA0Myw4IEBACiAuL3VjZC1zbm1wL3Bhc3MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKIC4vdWNkLXNubXAvcGFzcy5sbzogc3RydWN0LmggLi91Y2Qtc25tcC9wYXNzLmggbWliZGVmcy5oCiAuL3VjZC1zbm1wL3Bhc3MubG86IC4vdWNkLXNubXAvcGFzc19jb21tb24uaCAuL3VjZC1zbm1wL2V4dGVuc2libGUuaAotLi91Y2Qtc25tcC9wYXNzLmxvOiB1dGlsX2Z1bmNzLmggdXRpbF9mdW5jcy9FeGl0LmgKLS4vdWNkLXNubXAvcGFzcy5sbzogdXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5oCi0uL3VjZC1zbm1wL3Bhc3MubG86IHV0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5oIHV0aWxfZnVuY3MvcmVzdGFydC5oCisuL3VjZC1zbm1wL3Bhc3MubG86IHV0aWxfZnVuY3MuaCB1dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmgKKy4vdWNkLXNubXAvcGFzcy5sbzogdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmgKIC4vdWNkLXNubXAvcGFzcy5sbzogdXRpbF9mdW5jcy9NSUJfU1RBVFNfQ0FDSEVfVElNRU9VVC5oCiAuL3VjZC1zbm1wL3Bhc3NfY29tbW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL3VjZC1zbm1wL3Bhc3NfY29tbW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKQEAgLTE1NTc4LDYgKzE2MDgwLDcgQEAKIC4vdWNkLXNubXAvcGFzc19jb21tb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3VjZC1zbm1wL3Bhc3NfY29tbW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi91Y2Qtc25tcC9wYXNzX2NvbW1vbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3VjZC1zbm1wL3Bhc3NfY29tbW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdWNkLXNubXAvcGFzc19jb21tb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi91Y2Qtc25tcC9wYXNzX2NvbW1vbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi91Y2Qtc25tcC9wYXNzX2NvbW1vbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTU2MTIsNiArMTYxMTUsNyBAQAogLi91Y2Qtc25tcC9wYXNzX2NvbW1vbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdWNkLXNubXAvcGFzc19jb21tb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3VjZC1zbm1wL3Bhc3NfY29tbW9uLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vdWNkLXNubXAvcGFzc19jb21tb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdWNkLXNubXAvcGFzc19jb21tb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdWNkLXNubXAvcGFzc19jb21tb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi91Y2Qtc25tcC9wYXNzX2NvbW1vbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xNTY1MSwxMiArMTYxNTUsMTIgQEAKIC4vdWNkLXNubXAvcGFzc19jb21tb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgKIC4vdWNkLXNubXAvcGFzc19jb21tb24ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKIC4vdWNkLXNubXAvcGFzc19jb21tb24ubG86IC4uLy4uL2FnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaAotLi91Y2Qtc25tcC9wYXNzX2NvbW1vbi5sbzogdXRpbF9mdW5jcy9FeGl0LmggdXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5oCi0uL3VjZC1zbm1wL3Bhc3NfY29tbW9uLmxvOiB1dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuaAotLi91Y2Qtc25tcC9wYXNzX2NvbW1vbi5sbzogdXRpbF9mdW5jcy9yZXN0YXJ0Lmggc3RydWN0LmgKKy4vdWNkLXNubXAvcGFzc19jb21tb24ubG86IHV0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaAorLi91Y2Qtc25tcC9wYXNzX2NvbW1vbi5sbzogdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmggc3RydWN0LmgKIC4vdWNkLXNubXAvcGFzc19jb21tb24ubG86IHV0aWxfZnVuY3MvTUlCX1NUQVRTX0NBQ0hFX1RJTUVPVVQuaAogLi91Y2Qtc25tcC9wYXNzX2NvbW1vbi5sbzogLi91Y2Qtc25tcC9wYXNzX2NvbW1vbi5oCiAuL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi91Y2Qtc25tcC9wYXNzX3BlcnNpc3QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi91Y2Qtc25tcC9wYXNzX3BlcnNpc3QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi91Y2Qtc25tcC9wYXNzX3BlcnNpc3QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi91Y2Qtc25tcC9wYXNzX3BlcnNpc3QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMTU3MjQsNiArMTYyMjgsNyBAQAogLi91Y2Qtc25tcC9wYXNzX3BlcnNpc3QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdWNkLXNubXAvcGFzc19wZXJzaXN0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vdWNkLXNubXAvcGFzc19wZXJzaXN0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi91Y2Qtc25tcC9wYXNzX3BlcnNpc3QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi91Y2Qtc25tcC9wYXNzX3BlcnNpc3QubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTU3NjQsMTIgKzE2MjY5LDExIEBACiAuL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi91Y2Qtc25tcC9wYXNzX3BlcnNpc3QubG86IHN0cnVjdC5oIC4vdWNkLXNubXAvcGFzc19wZXJzaXN0LmggbWliZGVmcy5oCiAuL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5sbzogLi91Y2Qtc25tcC9wYXNzX2NvbW1vbi5oIC4vdWNkLXNubXAvZXh0ZW5zaWJsZS5oCi0uL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5sbzogdXRpbF9mdW5jcy5oIHV0aWxfZnVuY3MvRXhpdC5oCi0uL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5sbzogdXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5oCisuL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5sbzogdXRpbF9mdW5jcy5oIHV0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaAogLi91Y2Qtc25tcC9wYXNzX3BlcnNpc3QubG86IHV0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5oCi0uL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5sbzogdXRpbF9mdW5jcy9yZXN0YXJ0LmgKIC4vdWNkLXNubXAvcGFzc19wZXJzaXN0LmxvOiB1dGlsX2Z1bmNzL01JQl9TVEFUU19DQUNIRV9USU1FT1VULmgKIC4vdWNkLXNubXAvcHJvYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi91Y2Qtc25tcC9wcm9jLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdWNkLXNubXAvcHJvYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL3VjZC1zbm1wL3Byb2MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi91Y2Qtc25tcC9wcm9jLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTE1ODM3LDYgKzE2MzQxLDcgQEAKIC4vdWNkLXNubXAvcHJvYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdWNkLXNubXAvcHJvYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdWNkLXNubXAvcHJvYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3VjZC1zbm1wL3Byb2MubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdWNkLXNubXAvcHJvYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi91Y2Qtc25tcC9wcm9jLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdWNkLXNubXAvcHJvYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xNTg3NywxMSArMTYzODIsMTIgQEAKIC4vdWNkLXNubXAvcHJvYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi91Y2Qtc25tcC9wcm9jLmxvOiBzdHJ1Y3QuaCAuL3VjZC1zbm1wL3Byb2MuaCBtaWJkZWZzLmgKIC4vdWNkLXNubXAvcHJvYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zd3J1bi5oCi0uL3VjZC1zbm1wL3Byb2MubG86IC4vdWNkLXNubXAvZXJyb3JtaWIuaCB1dGlsX2Z1bmNzLmggdXRpbF9mdW5jcy9FeGl0LmgKKy4vdWNkLXNubXAvcHJvYy5sbzogLi91Y2Qtc25tcC9lcnJvcm1pYi5oIHV0aWxfZnVuY3MuaAogLi91Y2Qtc25tcC9wcm9jLmxvOiB1dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmgKLS4vdWNkLXNubXAvcHJvYy5sbzogdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmggdXRpbF9mdW5jcy9yZXN0YXJ0LmgKKy4vdWNkLXNubXAvcHJvYy5sbzogdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmgKIC4vdWNkLXNubXAvcHJvYy5sbzogdXRpbF9mdW5jcy9NSUJfU1RBVFNfQ0FDSEVfVElNRU9VVC5oIC4uLy4uL2FnZW50L2tlcm5lbC5oCiAuL3VjZC1zbm1wL3Byb3h5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL3VjZC1zbm1wL3Byb3h5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdWNkLXNubXAvcHJveHkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi91Y2Qtc25tcC9wcm94eS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL3VjZC1zbm1wL3Byb3h5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTE1OTQ5LDYgKzE2NDU1LDcgQEAKIC4vdWNkLXNubXAvcHJveHkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3VjZC1zbm1wL3Byb3h5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi91Y2Qtc25tcC9wcm94eS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3VjZC1zbm1wL3Byb3h5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3VjZC1zbm1wL3Byb3h5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3VjZC1zbm1wL3Byb3h5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdWNkLXNubXAvcHJveHkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTU5ODksNiArMTY0OTYsNyBAQAogLi91Y2Qtc25tcC9wcm94eS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaAogLi91Y2Qtc25tcC9wcm94eS5sbzogLi91Y2Qtc25tcC9wcm94eS5oCiAuL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdWNkLXNubXAvdmVyc2lvbmluZm8ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi91Y2Qtc25tcC92ZXJzaW9uaW5mby5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTE2MDU2LDYgKzE2NTY0LDcgQEAKIC4vdWNkLXNubXAvdmVyc2lvbmluZm8ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi91Y2Qtc25tcC92ZXJzaW9uaW5mby5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdWNkLXNubXAvdmVyc2lvbmluZm8ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTYwOTUsMTAgKzE2NjA0LDggQEAKIC4vdWNkLXNubXAvdmVyc2lvbmluZm8ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgKIC4vdWNkLXNubXAvdmVyc2lvbmluZm8ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKIC4vdWNkLXNubXAvdmVyc2lvbmluZm8ubG86IHN0cnVjdC5oIC4vdWNkLXNubXAvdmVyc2lvbmluZm8uaCBtaWJkZWZzLmgKLS4vdWNkLXNubXAvdmVyc2lvbmluZm8ubG86IHV0aWxfZnVuY3MuaCB1dGlsX2Z1bmNzL0V4aXQuaAotLi91Y2Qtc25tcC92ZXJzaW9uaW5mby5sbzogdXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5oCi0uL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmxvOiB1dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuaAotLi91Y2Qtc25tcC92ZXJzaW9uaW5mby5sbzogdXRpbF9mdW5jcy9yZXN0YXJ0LmgKKy4vdWNkLXNubXAvdmVyc2lvbmluZm8ubG86IHV0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaCB1dGlsX2Z1bmNzL3Jlc3RhcnQuaAorLi91Y2Qtc25tcC92ZXJzaW9uaW5mby5sbzogdXRpbF9mdW5jcy5oIHV0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5oCiAuL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmxvOiB1dGlsX2Z1bmNzL01JQl9TVEFUU19DQUNIRV9USU1FT1VULmgKIC4vdWNkLXNubXAvdm1zdGF0X2FpeDQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKIC4vdWNkLXNubXAvdm1zdGF0X2FpeDQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaApAQCAtMTYxMzQsNiArMTY2NDEsNyBAQAogLi91Y2Qtc25tcC92bXN0YXRfYWl4NC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdWNkLXNubXAvdm1zdGF0X2FpeDQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vdWNkLXNubXAvdm1zdGF0X2FpeDQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi91Y2Qtc25tcC92bXN0YXRfYWl4NC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xNjE2OCw2ICsxNjY3Niw3IEBACiAuL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi91Y2Qtc25tcC92bXN0YXRfYWl4NC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdWNkLXNubXAvdm1zdGF0X2FpeDQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi91Y2Qtc25tcC92bXN0YXRfYWl4NC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi91Y2Qtc25tcC92bXN0YXRfYWl4NC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi91Y2Qtc25tcC92bXN0YXRfYWl4NC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE2MjQyLDYgKzE2NzUxLDcgQEAKIC4vdWNkLXNubXAvdm1zdGF0X2JzZGk0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi91Y2Qtc25tcC92bXN0YXRfYnNkaTQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi91Y2Qtc25tcC92bXN0YXRfYnNkaTQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTE2Mjc2LDYgKzE2Nzg2LDcgQEAKIC4vdWNkLXNubXAvdm1zdGF0X2JzZGk0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi91Y2Qtc25tcC92bXN0YXRfYnNkaTQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi91Y2Qtc25tcC92bXN0YXRfYnNkaTQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdWNkLXNubXAvdm1zdGF0X2JzZGk0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdWNkLXNubXAvdm1zdGF0X2JzZGk0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE2MzUxLDYgKzE2ODYyLDcgQEAKIC4vdWNkLXNubXAvdm1zdGF0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi91Y2Qtc25tcC92bXN0YXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3VjZC1zbm1wL3Ztc3RhdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3VjZC1zbm1wL3Ztc3RhdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3VjZC1zbm1wL3Ztc3RhdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3VjZC1zbm1wL3Ztc3RhdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi91Y2Qtc25tcC92bXN0YXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTE2Mzg1LDYgKzE2ODk3LDcgQEAKIC4vdWNkLXNubXAvdm1zdGF0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi91Y2Qtc25tcC92bXN0YXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3VjZC1zbm1wL3Ztc3RhdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3VjZC1zbm1wL3Ztc3RhdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi91Y2Qtc25tcC92bXN0YXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdWNkLXNubXAvdm1zdGF0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdWNkLXNubXAvdm1zdGF0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE2NDYwLDYgKzE2OTczLDcgQEAKIC4vdWNkLXNubXAvdm1zdGF0X2RhcndpbjcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9kYXJ3aW43LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi91Y2Qtc25tcC92bXN0YXRfZGFyd2luNy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3VjZC1zbm1wL3Ztc3RhdF9kYXJ3aW43LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdWNkLXNubXAvdm1zdGF0X2RhcndpbjcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi91Y2Qtc25tcC92bXN0YXRfZGFyd2luNy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi91Y2Qtc25tcC92bXN0YXRfZGFyd2luNy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTY0OTQsNiArMTcwMDgsNyBAQAogLi91Y2Qtc25tcC92bXN0YXRfZGFyd2luNy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdWNkLXNubXAvdm1zdGF0X2RhcndpbjcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9kYXJ3aW43LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vdWNkLXNubXAvdm1zdGF0X2RhcndpbjcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdWNkLXNubXAvdm1zdGF0X2RhcndpbjcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdWNkLXNubXAvdm1zdGF0X2RhcndpbjcubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi91Y2Qtc25tcC92bXN0YXRfZGFyd2luNy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xNjU2OSw2ICsxNzA4NCw3IEBACiAuL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdWNkLXNubXAvdm1zdGF0X2R5bml4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi91Y2Qtc25tcC92bXN0YXRfZHluaXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi91Y2Qtc25tcC92bXN0YXRfZHluaXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi91Y2Qtc25tcC92bXN0YXRfZHluaXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi91Y2Qtc25tcC92bXN0YXRfZHluaXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vdWNkLXNubXAvdm1zdGF0X2R5bml4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xNjYwMyw2ICsxNzExOSw3IEBACiAuL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdWNkLXNubXAvdm1zdGF0X2R5bml4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi91Y2Qtc25tcC92bXN0YXRfZHluaXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi91Y2Qtc25tcC92bXN0YXRfZHluaXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdWNkLXNubXAvdm1zdGF0X2R5bml4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xNjY3Nyw2ICsxNzE5NCw3IEBACiAuL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xNjcxMSw2ICsxNzIyOSw3IEBACiAuL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xNjc4Nyw2ICsxNzMwNiw3IEBACiAuL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi91Y2Qtc25tcC92bXN0YXRfaHB1eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vdWNkLXNubXAvdm1zdGF0X2hwdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi91Y2Qtc25tcC92bXN0YXRfaHB1eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vdWNkLXNubXAvdm1zdGF0X2hwdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vdWNkLXNubXAvdm1zdGF0X2hwdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTE2ODIxLDYgKzE3MzQxLDcgQEAKIC4vdWNkLXNubXAvdm1zdGF0X2hwdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi91Y2Qtc25tcC92bXN0YXRfaHB1eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdWNkLXNubXAvdm1zdGF0X2hwdXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTY4NjIsNiArMTczODMsNyBAQAogLi91Y2Qtc25tcC92bXN0YXRfaHB1eC5sbzogbWliZGVmcy5oIHV0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaAogLi91Y2Qtc25tcC92bXN0YXRfaHB1eC5sbzogLi91Y2Qtc25tcC92bXN0YXQuaCAuL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmgKIC4vdWNkLXNubXAvdm1zdGF0X2xpbnV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0xNjkyOSw2ICsxNzQ1MSw3IEBACiAuL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdWNkLXNubXAvdm1zdGF0X2xpbnV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi91Y2Qtc25tcC92bXN0YXRfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi91Y2Qtc25tcC92bXN0YXRfbGludXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdWNkLXNubXAvdm1zdGF0X2xpbnV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xNzAwNSw2ICsxNzUyOCw3IEBACiAuL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vdWNkLXNubXAvdm1zdGF0X25ldGJzZDEubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vdWNkLXNubXAvdm1zdGF0X25ldGJzZDEubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vdWNkLXNubXAvdm1zdGF0X25ldGJzZDEubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTE3MDM5LDYgKzE3NTYzLDcgQEAKIC4vdWNkLXNubXAvdm1zdGF0X25ldGJzZDEubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdWNkLXNubXAvdm1zdGF0X25ldGJzZDEubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTcxMTQsNiArMTc2MzksNyBAQAogLi91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTcxNDgsNiArMTc2NzQsNyBAQAogLi91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaApAQCAtMTcyMjIsNiArMTc3NDksNyBAQAogLi91dGlsX2Z1bmNzL0V4aXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3V0aWxfZnVuY3MvRXhpdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vdXRpbF9mdW5jcy9FeGl0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vdXRpbF9mdW5jcy9FeGl0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdXRpbF9mdW5jcy9FeGl0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vdXRpbF9mdW5jcy9FeGl0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3V0aWxfZnVuY3MvRXhpdC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTcyNTgsNiArMTc3ODYsNyBAQAogLi91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xNzI5Nyw2ICsxNzgyNiw3IEBACiAuL3V0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3V0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3V0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi91dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3V0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vdXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTczMzEsNiArMTc4NjEsNyBAQAogLi91dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi91dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi91dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vdXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi91dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3V0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi91dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE3NDA0LDYgKzE3OTM1LDcgQEAKIC4vdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi91dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi91dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTE3NDM4LDYgKzE3OTcwLDcgQEAKIC4vdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi91dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi91dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE3NTExLDYgKzE4MDQ0LDcgQEAKIC4vdXRpbF9mdW5jcy9yZXN0YXJ0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi91dGlsX2Z1bmNzL3Jlc3RhcnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3V0aWxfZnVuY3MvcmVzdGFydC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3V0aWxfZnVuY3MvcmVzdGFydC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3V0aWxfZnVuY3MvcmVzdGFydC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3V0aWxfZnVuY3MvcmVzdGFydC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi91dGlsX2Z1bmNzL3Jlc3RhcnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTE3NTQ1LDYgKzE4MDc5LDcgQEAKIC4vdXRpbF9mdW5jcy9yZXN0YXJ0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi91dGlsX2Z1bmNzL3Jlc3RhcnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3V0aWxfZnVuY3MvcmVzdGFydC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3V0aWxfZnVuY3MvcmVzdGFydC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi91dGlsX2Z1bmNzL3Jlc3RhcnQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdXRpbGl0aWVzL2V4ZWN1dGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKIC4vdXRpbGl0aWVzL2V4ZWN1dGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaApAQCAtMTc1ODAsNiArMTgxMTUsNyBAQAogLi91dGlsaXRpZXMvZXhlY3V0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdXRpbGl0aWVzL2V4ZWN1dGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3V0aWxpdGllcy9leGVjdXRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vdXRpbGl0aWVzL2V4ZWN1dGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi91dGlsaXRpZXMvZXhlY3V0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3V0aWxpdGllcy9leGVjdXRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3V0aWxpdGllcy9leGVjdXRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xNzYxNCw2ICsxODE1MCw3IEBACiAuL3V0aWxpdGllcy9leGVjdXRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi91dGlsaXRpZXMvZXhlY3V0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdXRpbGl0aWVzL2V4ZWN1dGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi91dGlsaXRpZXMvZXhlY3V0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi91dGlsaXRpZXMvZXhlY3V0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi91dGlsaXRpZXMvZXhlY3V0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3V0aWxpdGllcy9leGVjdXRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTE3NjU1LDYgKzE4MTkyLDcgQEAKIC4vdXRpbGl0aWVzL2V4ZWN1dGUubG86IHVjZC1zbm1wL2Vycm9ybWliLmggbWliZGVmcy5oIC4vdXRpbGl0aWVzL2V4ZWN1dGUuaAogLi91dGlsaXRpZXMvZXhlY3V0ZS5sbzogc3RydWN0LmgKIC4vdXRpbGl0aWVzL2lxdWVyeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi91dGlsaXRpZXMvaXF1ZXJ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdXRpbGl0aWVzL2lxdWVyeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL3V0aWxpdGllcy9pcXVlcnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi91dGlsaXRpZXMvaXF1ZXJ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTE3NzIyLDYgKzE4MjYwLDcgQEAKIC4vdXRpbGl0aWVzL2lxdWVyeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdXRpbGl0aWVzL2lxdWVyeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdXRpbGl0aWVzL2lxdWVyeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3V0aWxpdGllcy9pcXVlcnkubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdXRpbGl0aWVzL2lxdWVyeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi91dGlsaXRpZXMvaXF1ZXJ5LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKIC4vdXRpbGl0aWVzL2lxdWVyeS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xNzc5NSw2ICsxODMzNCw3IEBACiAuL3V0aWxpdGllcy9vdmVycmlkZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdXRpbGl0aWVzL292ZXJyaWRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi91dGlsaXRpZXMvb3ZlcnJpZGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi91dGlsaXRpZXMvb3ZlcnJpZGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi91dGlsaXRpZXMvb3ZlcnJpZGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi91dGlsaXRpZXMvb3ZlcnJpZGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vdXRpbGl0aWVzL292ZXJyaWRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xNzgyOSw2ICsxODM2OSw3IEBACiAuL3V0aWxpdGllcy9vdmVycmlkZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdXRpbGl0aWVzL292ZXJyaWRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi91dGlsaXRpZXMvb3ZlcnJpZGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi91dGlsaXRpZXMvb3ZlcnJpZGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdXRpbGl0aWVzL292ZXJyaWRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3V0aWxpdGllcy9vdmVycmlkZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3V0aWxpdGllcy9vdmVycmlkZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiBiL2FnZW50L21pYmdyb3VwL01ha2VmaWxlLmluCmluZGV4IGY2NDFhYjcuLjIzNDFhYjQgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL01ha2VmaWxlLmluCisrKyBiL2FnZW50L21pYmdyb3VwL01ha2VmaWxlLmluCkBAIC0xLDQgKzEsNiBAQAogdG9wX2J1aWxkZGlyPS4uLy4uCitteXN1YmRpcj1hZ2VudC9taWJncm91cAorCiAjIGN1cnJlbnRseSBhc3N1bWVzIGdjYzogICAgKFhYWDogZml4IHZpYSBjb25maWd1cmUgdGVzdHMpCiBETEZMQUdTPS1mUElDIC1zaGFyZWQKIApAQCAtMTYsNiArMTgsOCBAQAogCiBPVEhFUkNMRUFOVEFSR0VUUz1AZGxsY2xlYW5zQAogCitGRUFUVVJFRklMRT0uLi8uLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2ZlYXR1cmVzLW1pYmdyb3Vwcy5oCisKICMgTmVlZCBhIHNwZWNpYWwgLmMgLT4gLm8gZGVmaW5pdGlvbiBoZXJlIHRvIG1ha2Ugc3VyZSB3ZSBwbGFjZSB0aGUKICMgb2JqZWN0IGZpbGVzIGluIHRoZSBzdWIgZGlyZWN0b3J5LgogCkBAIC0yNSwxMCArMjksMTIgQEAKIEBtaWJfbW9kdWxlX2xpc3Rfb0AKIEBtaWJfbW9kdWxlX2xpc3RfbG9ACiBAbWliX21vZHVsZV9saXN0X2NACitAbWliX21vZHVsZV9saXN0X2Z0QAogCi1PQkpTICA9ICQobWliX21vZHVsZV9saXN0X28pCi1MT0JKUyA9ICQobWliX21vZHVsZV9saXN0X2xvKQotU1JDUyAgPSAkKG1pYl9tb2R1bGVfbGlzdF9jKQorT0JKUyAgID0gJChtaWJfbW9kdWxlX2xpc3RfbykKK0xPQkpTICA9ICQobWliX21vZHVsZV9saXN0X2xvKQorU1JDUyAgID0gJChtaWJfbW9kdWxlX2xpc3RfYykKK0ZUT0JKUyA9ICQobWliX21vZHVsZV9saXN0X2Z0KQogCiBhbGw6IHN0YW5kYXJkYWxsICQoTE9CSlMpCiAKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jIGIvYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMKaW5kZXggYzljMmFlYS4uNjE4MTYyOCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMKQEAgLTEwLDExICsxMCwyMiBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KICNpbmNsdWRlICJ1dGlsaXRpZXMvaXF1ZXJ5LmgiCiAjaW5jbHVkZSAiYWxhcm1UYWJsZS5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShpcXVlcnkpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShxdWVyeV9zZXRfZGVmYXVsdF9zZXNzaW9uKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfdGRhdGEpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja192Yl90eXBlX2FuZF9tYXhfc2l6ZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX3RkYXRhX2V4dHJhY3RfdGFibGUpCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfdGRhdGFfaW5zZXJ0X3JvdykKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGlxdWVyeV9wZHVfc2Vzc2lvbikKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKwogLyoqIEluaXRpYWxpemVzIHRoZSBhbGFybVRhYmxlIG1vZHVsZSAqLwogdm9pZAogaW5pdF9hbGFybVRhYmxlKHZvaWQpCkBAIC02Niw3ICs3Nyw3IEBACiAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWxhcm1lZF92YXJfbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgdV9sb25nIHNhbXBsZV90eXBlLAogICAgICAgICAgICAgICAgICAgICAgdV9sb25nIHZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgdV9sb25nIHRoZV90aHJlc2hvbGQsIGNoYXIgKmFsYXJtX2Rlc2NyKTsKKyAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyB0aGVfdGhyZXNob2xkLCBjb25zdCBjaGFyICphbGFybV9kZXNjcik7CiAKICNkZWZpbmUgQUxBUk1fU1RSMV9MRU4JMzIKIHR5cGVkZWYgZW51bSB7CkBAIC0xODAsOCArMTkxLDggQEAKICAgICAgICAgcmV0dXJuIDsKICAgICB9CiAKLSAgICBERUJVR01TR1RMKCgicm1vbjphbGFybVRhYmxlIiwgImFsYXJtSW5kZXguJWQgbGFzdCB2YWx1ZSAoJWQpXG4iLCBlbnRyeS0+YWxhcm1JbmRleCwgZW50cnktPmxhc3RfYWJzX3ZhbHVlKSk7Ci0gICAgREVCVUdNU0dUTCgoInJtb246YWxhcm1UYWJsZSIsICJhbGFybUluZGV4LiVkIG5ld192YWx1ZSAoJWQpXG4iLCBlbnRyeS0+YWxhcm1JbmRleCwgbmV3X3ZhbHVlKSk7CisgICAgREVCVUdNU0dUTCgoInJtb246YWxhcm1UYWJsZSIsICJhbGFybUluZGV4LiVsZCBsYXN0IHZhbHVlICglbGQpXG4iLCBlbnRyeS0+YWxhcm1JbmRleCwgZW50cnktPmxhc3RfYWJzX3ZhbHVlKSk7CisgICAgREVCVUdNU0dUTCgoInJtb246YWxhcm1UYWJsZSIsICJhbGFybUluZGV4LiVsZCBuZXdfdmFsdWUgKCVsZClcbiIsIGVudHJ5LT5hbGFybUluZGV4LCBuZXdfdmFsdWUpKTsKIAogICAgIGVudHJ5LT5hbGFybVZhbHVlID0gKFNBTVBMRV9UWVBFX0FCU09MVVRFID09IGVudHJ5LT5hbGFybVNhbXBsZVR5cGUpID8KICAgICAgICAgbmV3X3ZhbHVlIDogbmV3X3ZhbHVlIC0gZW50cnktPmxhc3RfYWJzX3ZhbHVlOwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jIGIvYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jCmluZGV4IDhkMmQ0YTEuLmJiODdiZmUgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYworKysgYi9hZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMKQEAgLTE5LDYgKzE5LDcgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaWYgSEFWRV9TVERMSUJfSAogI2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtNDksNiArNTAsOCBAQAogI2luY2x1ZGUgImFndXRpbF9hcGkuaCIKICNpbmNsdWRlICJyb3dfYXBpLmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHNucHJpbnRfb2JqaWQpCisKIC8qCiAgKiBGaWxlIHNjb3BlIGRlZmluaXRpb25zIHNlY3Rpb24gCiAgKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL1Jtb24vcm93X2FwaS5oIGIvYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dfYXBpLmgKaW5kZXggMmQzYzgzMi4uOWY1NzZiZSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dfYXBpLmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dfYXBpLmgKQEAgLTc5LDcgKzc5LDcgQEAKICAqIEFwaSBwcm90b3R5cGVzIAogICovCiB2b2lkICAgICAgICAgICAgUk9XQVBJX2luaXRfdGFibGUoVEFCTEVfREVGSU5USU9OX1QgKiB0YWJsZV9wdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyBtYXhfbnVtYmVyX29mX2VudHJpZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU5UUllfQ0FMTEJBQ0tfVCAqIENsYmtDcmVhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU5UUllfQ0FMTEJBQ0tfVCAqIENsYmtDbG9uZSwKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jIGIvYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMKaW5kZXggOTI0YTkzYi4uYWMyNmUzMCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMKQEAgLTI1NSw3ICsyNTUsNyBAQAogCiB2b2lkCiBST1dBUElfaW5pdF90YWJsZShUQUJMRV9ERUZJTlRJT05fVCAqIHRhYmxlX3B0ciwKLSAgICAgICAgICAgICAgICAgIGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAgdV9sb25nIG1heF9udW1iZXJfb2ZfZW50cmllcywKICAgICAgICAgICAgICAgICAgIEVOVFJZX0NBTExCQUNLX1QgKiBDbGJrQ3JlYXRlLAogICAgICAgICAgICAgICAgICAgRU5UUllfQ0FMTEJBQ0tfVCAqIENsYmtDbG9uZSwKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jIGIvYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMKaW5kZXggMjM5ZWViMy4uNDgzNzlhMiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMKQEAgLTEsNSArMSw2IEBACiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC93YXRjaGVyLmg+CkBAIC0xNSw2ICsxNiwxMiBAQAogI2RlZmluZSBTSEVMTENPTU1BTkQgMwogI2VuZGlmCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGV4dHJhY3RfdGFibGVfcm93X2RhdGEpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV9kYXRhX2RlbGV0ZV90YWJsZSkKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShpbnNlcnRfdGFibGVfcm93KQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworCiBvaWQgIG5zX2V4dGVuZF9vaWRbXSAgICA9IHsgMSwgMywgNiwgMSwgNCwgMSwgODA3MiwgMSwgMywgMiB9Owogb2lkICBleHRlbmRfY291bnRfb2lkW10gPSB7IDEsIDMsIDYsIDEsIDQsIDEsIDgwNzIsIDEsIDMsIDIsIDEgfTsKIG9pZCAgZXh0ZW5kX2NvbmZpZ19vaWRbXSA9IHsgMSwgMywgNiwgMSwgNCwgMSwgODA3MiwgMSwgMywgMiwgMiB9OwpAQCAtMjcsNyArMzQsNyBAQAogICAgIHNpemVfdCAgICAgICAgICAgICAgb2lkX2xlbjsKICAgICBsb25nICAgICAgICAgICAgICAgIG51bV9lbnRyaWVzOwogICAgIG5ldHNubXBfZXh0ZW5kICAgICAqZWhlYWQ7Ci0gICAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAgICAgICAqcmVnWzNdOworICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gICAgICAgKnJlZ1s0XTsKICAgICBzdHJ1Y3QgZXh0ZW5kX3JlZ2lzdHJhdGlvbl9ibG9ja19zICpuZXh0OwogfSBleHRlbmRfcmVnaXN0cmF0aW9uX2Jsb2NrOwogZXh0ZW5kX3JlZ2lzdHJhdGlvbl9ibG9jayAqZXJlZ19oZWFkID0gTlVMTDsKQEAgLTUwLDYgKzU3LDcgQEAKIFdyaXRlTWV0aG9kIGZpeEV4ZWMyRXJyb3I7CiBGaW5kVmFyTWV0aG9kIHZhcl9leHRlbnNpYmxlX29sZDsKIG9pZCAgb2xkX2V4dGVuc2libGVfdmFyaWFibGVzX29pZFtdID0geyBORVRTTk1QX1VDREFWSVNfTUlCLCBORVRTTk1QX1NIRUxMTUlCTlVNLCAxIH07CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogc3RydWN0IHZhcmlhYmxlMiBvbGRfZXh0ZW5zaWJsZV92YXJpYWJsZXNbXSA9IHsKICAgICB7TUlCSU5ERVgsICAgICBBU05fSU5URUdFUiwgICBORVRTTk1QX09MREFQSV9ST05MWSwKICAgICAgdmFyX2V4dGVuc2libGVfb2xkLCAxLCB7TUlCSU5ERVh9fSwKQEAgLTY2LDYgKzc0LDI0IEBACiAgICAge0VSUk9SRklYQ01ELCAgQVNOX09DVEVUX1NUUiwgTkVUU05NUF9PTERBUElfUk9OTFksCiAgICAgIHZhcl9leHRlbnNpYmxlX29sZCwgMSwge0VSUk9SRklYQ01EfX0KIH07CisjZWxzZSAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCitzdHJ1Y3QgdmFyaWFibGUyIG9sZF9leHRlbnNpYmxlX3ZhcmlhYmxlc1tdID0geworICAgIHtNSUJJTkRFWCwgICAgIEFTTl9JTlRFR0VSLCAgIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfZXh0ZW5zaWJsZV9vbGQsIDEsIHtNSUJJTkRFWH19LAorICAgIHtFUlJPUk5BTUUsICAgIEFTTl9PQ1RFVF9TVFIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfZXh0ZW5zaWJsZV9vbGQsIDEsIHtFUlJPUk5BTUV9fSwKKyAgICB7U0hFTExDT01NQU5ELCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX2V4dGVuc2libGVfb2xkLCAxLCB7U0hFTExDT01NQU5EfX0sCisgICAge0VSUk9SRkxBRywgICAgQVNOX0lOVEVHRVIsICAgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9leHRlbnNpYmxlX29sZCwgMSwge0VSUk9SRkxBR319LAorICAgIHtFUlJPUk1TRywgICAgIEFTTl9PQ1RFVF9TVFIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfZXh0ZW5zaWJsZV9vbGQsIDEsIHtFUlJPUk1TR319LAorICAgIHtFUlJPUkZJWCwgICAgIEFTTl9JTlRFR0VSLCAgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9leHRlbnNpYmxlX29sZCwgMSwge0VSUk9SRklYfX0sCisgICAge0VSUk9SRklYQ01ELCAgQVNOX09DVEVUX1NUUiwgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9leHRlbnNpYmxlX29sZCwgMSwge0VSUk9SRklYQ01EfX0KK307CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogI2VuZGlmCiAKIApAQCAtOTcsNyArMTIzLDggQEAKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEgICAgICAgICAgICAgICAgKmRpbmZvOwogICAgIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gICAqdGluZm87CiAgICAgbmV0c25tcF93YXRjaGVyX2luZm8gICAgICAgICAgICAgICp3aW5mbzsKLSAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICAgICAgKnJlZzsKKyAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICAgICAgKnJlZyA9IE5VTEw7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYzsKIAogICAgIGZvciAoIGVwdHI9ZXJlZ19oZWFkOyBlcHRyOyBlcHRyPWVwdHItPm5leHQgKSB7CiAgICAgICAgIGlmICghc25tcF9vaWRfY29tcGFyZSggYmFzZSwgbGVuLCBlcHRyLT5yb290X29pZCwgZXB0ci0+b2lkX2xlbikpCkBAIC0xMDUsNiArMTMyLDggQEAKICAgICB9CiAgICAgaWYgKCFlcHRyKSB7CiAgICAgICAgIGVwdHIgPSBTTk1QX01BTExPQ19UWVBFREVGKCBleHRlbmRfcmVnaXN0cmF0aW9uX2Jsb2NrICk7CisgICAgICAgIGlmICghZXB0cikKKyAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICBlcHRyLT5yb290X29pZCA9IHNubXBfZHVwbGljYXRlX29iamlkKCBiYXNlLCBsZW4gKTsKICAgICAgICAgZXB0ci0+b2lkX2xlbiAgPSBsZW47CiAgICAgICAgIGVwdHItPm51bV9lbnRyaWVzID0gMDsKQEAgLTEyNSwxMCArMTU0LDIwIEBACiAgICAgdGluZm8tPm1pbl9jb2x1bW4gPSBDT0xVTU5fRVhUQ0ZHX0ZJUlNUX0NPTFVNTjsKICAgICB0aW5mby0+bWF4X2NvbHVtbiA9IENPTFVNTl9FWFRDRkdfTEFTVF9DT0xVTU47CiAgICAgb2lkX2J1ZltsZW5dID0gMjsKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgcmVnICAgPSBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigKICAgICAgICAgICAgICAgICAibnNFeHRlbmRDb25maWdUYWJsZSIsIGhhbmRsZV9uc0V4dGVuZENvbmZpZ1RhYmxlLCAKICAgICAgICAgICAgICAgICBvaWRfYnVmLCBsZW4rMSwgSEFORExFUl9DQU5fUldSSVRFKTsKLSAgICBuZXRzbm1wX3JlZ2lzdGVyX3RhYmxlX2RhdGEoIHJlZywgZGluZm8sIHRpbmZvICk7CisjZWxzZSAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgcmVnICAgPSBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigKKyAgICAgICAgICAgICAgICAibnNFeHRlbmRDb25maWdUYWJsZSIsIGhhbmRsZV9uc0V4dGVuZENvbmZpZ1RhYmxlLCAKKyAgICAgICAgICAgICAgICBvaWRfYnVmLCBsZW4rMSwgSEFORExFUl9DQU5fUk9OTFkpOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKyAgICByYyA9IG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfZGF0YSggcmVnLCBkaW5mbywgdGluZm8gKTsKKyAgICBpZiAocmMgIT0gU05NUEVSUl9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gYmFpbDsKKyAgICB9CisgICAgbmV0c25tcF9oYW5kbGVyX293bnNfdGFibGVfaW5mbyhyZWctPmhhbmRsZXItPm5leHQpOwogICAgIGVwdHItPnJlZ1swXSA9IHJlZzsKIAogICAgICAgICAvKgpAQCAtMTQ1LDcgKzE4NCwxMCBAQAogICAgIHJlZyAgID0gbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oCiAgICAgICAgICAgICAgICAgIm5zRXh0ZW5kT3V0MVRhYmxlIiwgaGFuZGxlX25zRXh0ZW5kT3V0cHV0MVRhYmxlLCAKICAgICAgICAgICAgICAgICBvaWRfYnVmLCBsZW4rMSwgSEFORExFUl9DQU5fUk9OTFkpOwotICAgIG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfZGF0YSggcmVnLCBkaW5mbywgdGluZm8gKTsKKyAgICByYyA9IG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfZGF0YSggcmVnLCBkaW5mbywgdGluZm8gKTsKKyAgICBpZiAocmMgIT0gU05NUEVSUl9TVUNDRVNTKQorICAgICAgICBnb3RvIGJhaWw7CisgICAgbmV0c25tcF9oYW5kbGVyX293bnNfdGFibGVfaW5mbyhyZWctPmhhbmRsZXItPm5leHQpOwogICAgIGVwdHItPnJlZ1sxXSA9IHJlZzsKIAogICAgICAgICAvKgpAQCAtMTY0LDcgKzIwNiwxMCBAQAogICAgIHJlZyAgID0gbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oCiAgICAgICAgICAgICAgICAgIm5zRXh0ZW5kT3V0MlRhYmxlIiwgaGFuZGxlX25zRXh0ZW5kT3V0cHV0MlRhYmxlLCAKICAgICAgICAgICAgICAgICBvaWRfYnVmLCBsZW4rMSwgSEFORExFUl9DQU5fUk9OTFkpOwotICAgIG5ldHNubXBfcmVnaXN0ZXJfdGFibGUoIHJlZywgdGluZm8gKTsKKyAgICByYyA9IG5ldHNubXBfcmVnaXN0ZXJfdGFibGUoIHJlZywgdGluZm8gKTsKKyAgICBpZiAocmMgIT0gU05NUEVSUl9TVUNDRVNTKQorICAgICAgICBnb3RvIGJhaWw7CisgICAgbmV0c25tcF9oYW5kbGVyX293bnNfdGFibGVfaW5mbyhyZWctPmhhbmRsZXItPm5leHQpOwogICAgIGVwdHItPnJlZ1syXSA9IHJlZzsKIAogICAgICAgICAvKgpAQCAtMTc3LDkgKzIyMiw0NCBAQAogICAgIHdpbmZvID0gbmV0c25tcF9jcmVhdGVfd2F0Y2hlcl9pbmZvKAogICAgICAgICAgICAgICAgICYoZXB0ci0+bnVtX2VudHJpZXMpLCBzaXplb2YoZXB0ci0+bnVtX2VudHJpZXMpLAogICAgICAgICAgICAgICAgIEFTTl9JTlRFR0VSLCBXQVRDSEVSX0ZJWEVEX1NJWkUpOwotICAgIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zY2FsYXIoIHJlZywgd2luZm8gKTsKKyAgICByYyA9IG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zY2FsYXIyKCByZWcsIHdpbmZvICk7CisgICAgaWYgKHJjICE9IFNOTVBFUlJfU1VDQ0VTUykKKyAgICAgICAgZ290byBiYWlsOworICAgIGVwdHItPnJlZ1szXSA9IHJlZzsKIAogICAgIHJldHVybiBlcHRyOworCitiYWlsOgorICAgIGlmIChlcHRyLT5yZWdbM10pCisgICAgICAgIG5ldHNubXBfdW5yZWdpc3Rlcl9oYW5kbGVyKGVwdHItPnJlZ1szXSk7CisgICAgaWYgKGVwdHItPnJlZ1syXSkKKyAgICAgICAgbmV0c25tcF91bnJlZ2lzdGVyX2hhbmRsZXIoZXB0ci0+cmVnWzJdKTsKKyAgICBpZiAoZXB0ci0+cmVnWzFdKQorICAgICAgICBuZXRzbm1wX3VucmVnaXN0ZXJfaGFuZGxlcihlcHRyLT5yZWdbMV0pOworICAgIGlmIChlcHRyLT5yZWdbMF0pCisgICAgICAgIG5ldHNubXBfdW5yZWdpc3Rlcl9oYW5kbGVyKGVwdHItPnJlZ1swXSk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkCitfdW5yZWdpc3Rlcl9leHRlbmQoZXh0ZW5kX3JlZ2lzdHJhdGlvbl9ibG9jayAqZXB0cikKK3sKKyAgICBleHRlbmRfcmVnaXN0cmF0aW9uX2Jsb2NrICpwcmV2OworCisgICAgbmV0c25tcF9hc3NlcnQoZXB0cik7CisgICAgZm9yIChwcmV2ID0gZXJlZ19oZWFkOyBwcmV2ICYmIHByZXYtPm5leHQgIT0gZXB0cjsgcHJldiA9IHByZXYtPm5leHQpCisJOworICAgIGlmIChwcmV2KSB7CisgICAgICAgIG5ldHNubXBfYXNzZXJ0KGVwdHIgPT0gcHJldi0+bmV4dCk7CisJcHJldi0+bmV4dCA9IGVwdHItPm5leHQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbmV0c25tcF9hc3NlcnQoZXB0ciA9PSBlcmVnX2hlYWQpOworCWVyZWdfaGVhZCA9IGVwdHItPm5leHQ7CisgICAgfQorCisgICAgbmV0c25tcF90YWJsZV9kYXRhX2RlbGV0ZV90YWJsZShlcHRyLT5kaW5mbyk7CisgICAgZnJlZShlcHRyLT5yb290X29pZCk7CisgICAgZnJlZShlcHRyKTsKIH0KIAogaW50CkBAIC0xOTMsNiArMjczLDcgQEAKICAgICAgICAgbmV0c25tcF91bnJlZ2lzdGVyX2hhbmRsZXIoIGVwdHItPnJlZ1swXSApOwogICAgICAgICBuZXRzbm1wX3VucmVnaXN0ZXJfaGFuZGxlciggZXB0ci0+cmVnWzFdICk7CiAgICAgICAgIG5ldHNubXBfdW5yZWdpc3Rlcl9oYW5kbGVyKCBlcHRyLT5yZWdbMl0gKTsKKyAgICAgICAgbmV0c25tcF91bnJlZ2lzdGVyX2hhbmRsZXIoIGVwdHItPnJlZ1szXSApOwogICAgICAgICBTTk1QX0ZSRUUoZXB0cik7CiAgICAgfQogICAgIGVyZWdfaGVhZCA9IE5VTEw7CkBAIC0yMjQsNiArMzA1LDE3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbmRfY2xlYXJfY2FsbGJhY2ssIE5VTEwpOwogfQogCit2b2lkCitzaHV0ZG93bl9leHRlbmQodm9pZCkKK3sKKyNpZm5kZWYgVVNJTkdfVUNEX1NOTVBfRVhURU5TSUJMRV9NT0RVTEUKKyAgICBmcmVlKGNvbXBhdGFiaWxpdHlfZW50cmllcyk7CisgICAgY29tcGF0YWJpbGl0eV9lbnRyaWVzID0gTlVMTDsKKyNlbmRpZgorICAgIHdoaWxlIChlcmVnX2hlYWQpCisJX3VucmVnaXN0ZXJfZXh0ZW5kKGVyZWdfaGVhZCk7Cit9CisKICAgICAgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgICAgICoKICAgICAgICAgICogIENhY2hlZC1kYXRhIGhvb2tzCkBAIC00NjUsNiArNTU3LDEwIEBACiAgICAgfQogCiAgICAgZXB0ciAgICAgID0gX3JlZ2lzdGVyX2V4dGVuZCggb2lkX2J1Ziwgb2lkX2xlbiApOworICAgIGlmICghZXB0cikgeworICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiRmFpbGVkIHRvIHJlZ2lzdGVyIGV4dGVuZCBlbnRyeSAnJXMnIC0gcG9zc2libHkgZHVwbGljYXRlIG5hbWUuXG4iLCBleGVjX25hbWUgKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBleHRlbnNpb24gPSBfbmV3X2V4dGVuc2lvbiggZXhlY19uYW1lLCBmbGFncywgZXB0ciApOwogICAgIGlmIChleHRlbnNpb24pIHsKICAgICAgICAgZXh0ZW5zaW9uLT5jb21tYW5kICA9IHN0cmR1cCggZXhlY19jb21tYW5kICk7CkBAIC02MjcsNiArNzIzLDcgQEAKICAgICAgICAgICoKICAgICAgICAgICoqKioqKioqKiovCiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CiAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICogVmFsaWRhdGUgdGhlIG5ldyBhc3NpZ25tZW50cwpAQCAtOTUyLDYgKzEwNDksNyBAQAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8gCiAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IocmVxaW5mbywgcmVxdWVzdCwgU05NUF9FUlJfR0VORVJSKTsKQEAgLTk1OSw2ICsxMDU3LDcgQEAKICAgICAgICAgfQogICAgIH0KIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAvKgogICAgICAqIElmIHdlJ3JlIG1hcmtpbmcgYSBnaXZlbiByb3cgYXMgYWN0aXZlLAogICAgICAqICB0aGVuIHdlIG5lZWQgdG8gY2hlY2sgdGhhdCBpdCdzIHJlYWR5LgpAQCAtOTgzLDcgKzEwODIsOCBAQAogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotCisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworICAgIAogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQogCkBAIC0xNDcxLDYgKzE1NzEsNyBAQAogICAgIGlkeCA9IG5hbWVbbmFtZV9sZW4tMV0gLTE7CiAgICAgZXh0ZW4gPSAmY29tcGF0YWJpbGl0eV9lbnRyaWVzWyBpZHggXTsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBzd2l0Y2ggKGFjdGlvbikgewogICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CiAgICAgICAgIGlmICh2YXJfdmFsX3R5cGUgIT0gQVNOX0lOVEVHRVIpIHsKQEAgLTE0OTEsNiArMTU5Miw3IEBACiAgICAgY2FzZSBNT0RFX1NFVF9DT01NSVQ6CiAgICAgICAgIG5ldHNubXBfY2FjaGVfY2hlY2tfYW5kX3JlbG9hZCggZXh0ZW4tPmVmaXhfZW50cnktPmNhY2hlICk7CiAgICAgfQorI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIFVTSU5HX1VDRF9TTk1QX0VYVEVOU0lCTEVfTU9EVUxFICovCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuaCBiL2FnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5oCmluZGV4IDRiMTgxZjkuLjhiNzZjZDQgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5oCisrKyBiL2FnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5oCkBAIC0yOCw2ICsyOCw3IEBACiB9IG5ldHNubXBfZXh0ZW5kOwogCiB2b2lkICAgICAgICAgICAgICAgICBpbml0X2V4dGVuZCh2b2lkKTsKK3ZvaWQgICAgICAgICAgICAgICAgIHNodXRkb3duX2V4dGVuZCh2b2lkKTsKIE5ldHNubXBfTm9kZV9IYW5kbGVyIGhhbmRsZV9uc0V4dGVuZENvbmZpZ1RhYmxlOwogTmV0c25tcF9Ob2RlX0hhbmRsZXIgaGFuZGxlX25zRXh0ZW5kT3V0cHV0MVRhYmxlOwogTmV0c25tcF9Ob2RlX0hhbmRsZXIgaGFuZGxlX25zRXh0ZW5kT3V0cHV0MlRhYmxlOwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jIGIvYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jCmluZGV4IDU4MTVlOTAuLmQzMjI2M2IgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYworKysgYi9hZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMKQEAgLTEsNCArMSw1IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvc2NhbGFyLmg+CkBAIC0xMiw2ICsxMyw5IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oPgogI2luY2x1ZGUgImFnZW50L25zQ2FjaGUuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2FjaGVfZ2V0X2hlYWQpCisKKwogLyoKICAqIHVzZSB1bmFkdmVydGlzZWQgZnVuY3Rpb24gdG8gZ2V0IGNhY2hlIGhlYWQuIFlvdSByZWFsbHkgc2hvdWxkIG5vdAogICogZG8gdGhpcywgc2luY2UgdGhlIGludGVybmFsIHN0b3JhZ2UgbWVjaGFuaXNtIG1pZ2h0IGNoYW5nZS4KQEAgLTEwMiw3ICsxMDYsNyBAQAogICAgIC8qCiAgICAgICogLi4uLiBhbmQgcmVnaXN0ZXIgdGhlIHRhYmxlIHdpdGggdGhlIGFnZW50LgogICAgICAqLwotICAgIG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IoCisgICAgbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9pdGVyYXRvcjIoCiAgICAgICAgIG5ldHNubXBfY3JlYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uKAogICAgICAgICAgICAgInR6Q2FjaGVUYWJsZSIsIGhhbmRsZV9uc0NhY2hlVGFibGUsCiAgICAgICAgICAgICBuc0NhY2hlVGFibGVfb2lkLCBPSURfTEVOR1RIKG5zQ2FjaGVUYWJsZV9vaWQpLApAQCAtMTM3LDYgKzE0MSw3IEBACiAJYnJlYWs7CiAKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBjYXNlIE1PREVfU0VUX1JFU0VSVkUxOgogCWZvciAocmVxdWVzdCA9IHJlcXVlc3RzOyByZXF1ZXN0OyByZXF1ZXN0PXJlcXVlc3QtPm5leHQpIHsKICAgICAgICAgICAgIGlmICggcmVxdWVzdC0+c3RhdHVzICE9IDAgKSB7CkBAIC0xNTgsNiArMTYzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfQUdFTlRfQ0FDSEVfVElNRU9VVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICpyZXF1ZXN0cy0+cmVxdWVzdHZiLT52YWwuaW50ZWdlcik7CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICB9CiAKICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKQEAgLTE4Nyw2ICsxOTMsNyBAQAogCWJyZWFrOwogCiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMToKIAlmb3IgKHJlcXVlc3QgPSByZXF1ZXN0czsgcmVxdWVzdDsgcmVxdWVzdD1yZXF1ZXN0LT5uZXh0KSB7CiAgICAgICAgICAgICBpZiAoIHJlcXVlc3QtPnN0YXR1cyAhPSAwICkgewpAQCAtMjExLDYgKzIxOCw3IEBACiAJbmV0c25tcF9kc19zZXRfYm9vbGVhbihORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfQUdFTlRfTk9fQ0FDSElORywgZW5hYmxlZCk7CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICB9CiAKICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKQEAgLTI5NSw5ICszMDMsMTAgQEAKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAJCX0KIAkJc3RhdHVzID0gKGNhY2hlX2VudHJ5LT5lbmFibGVkID8KLQkgICAgICAgICAgICAgICAgICAgKGNhY2hlX2VudHJ5LT50aW1lc3RhbXAgPwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIWF0aW1lX3JlYWR5KGNhY2hlX2VudHJ5LT50aW1lc3RhbXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAwKmNhY2hlX2VudHJ5LT50aW1lb3V0KSA/CisJICAgICAgICAgICAgICAgICAgIChjYWNoZV9lbnRyeS0+dGltZXN0YW1wTSA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYWNoZV9lbnRyeS0+dGltZW91dCA+PSAwICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhbmV0c25tcF9yZWFkeV9tb25vdG9uaWMoY2FjaGVfZW50cnktPnRpbWVzdGFtcE0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwMCpjYWNoZV9lbnRyeS0+dGltZW91dCkgPwogCSAgICAgICAgICAgICAgICAgICAgICAgIE5TQ0FDSEVfU1RBVFVTX0FDVElWRToKIAkgICAgICAgICAgICAgICAgICAgICAgICBOU0NBQ0hFX1NUQVRVU19FWFBJUkVEKSA6CiAJICAgICAgICAgICAgICAgICAgICAgIE5TQ0FDSEVfU1RBVFVTX0VNUFRZKSA6CkBAIC0zMTQsNiArMzIzLDcgQEAKIAlicmVhazsKIAogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CiAgICAgICAgIGZvciAocmVxdWVzdD1yZXF1ZXN0czsgcmVxdWVzdDsgcmVxdWVzdD1yZXF1ZXN0LT5uZXh0KSB7CiAgICAgICAgICAgICBpZiAocmVxdWVzdC0+cHJvY2Vzc2VkICE9IDApCkBAIC00MDQsMTQgKzQxNCwxNSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAJCSAgICBjYXNlIE5TQ0FDSEVfU1RBVFVTX0VNUFRZOgogICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfZW50cnktPmZyZWVfY2FjaGUoY2FjaGVfZW50cnksIGNhY2hlX2VudHJ5LT5tYWdpYyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmcmVlKGNhY2hlX2VudHJ5LT50aW1lc3RhbXApOwotICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfZW50cnktPnRpbWVzdGFtcCA9IE5VTEw7CisgICAgICAgICAgICAgICAgICAgICAgICBmcmVlKGNhY2hlX2VudHJ5LT50aW1lc3RhbXBNKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX2VudHJ5LT50aW1lc3RhbXBNID0gTlVMTDsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCQl9CiAJICAgICAgICBicmVhazsKIAkgICAgfQogCX0KIAlicmVhazsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgfQogCiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMgYi9hZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMKaW5kZXggNTM0ZDE4Yy4uODlhOTBiMCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jCisrKyBiL2FnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYwpAQCAtOTEsNyArOTEsNyBAQAogICAgIC8qCiAgICAgICogLi4uLiBhbmQgcmVnaXN0ZXIgdGhlIHRhYmxlIHdpdGggdGhlIGFnZW50LgogICAgICAqLwotICAgIG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IoCisgICAgbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9pdGVyYXRvcjIoCiAgICAgICAgIG5ldHNubXBfY3JlYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uKAogICAgICAgICAgICAgInR6RGVidWdUYWJsZSIsIGhhbmRsZV9uc0RlYnVnVGFibGUsCiAgICAgICAgICAgICBuc0RlYnVnVG9rZW5UYWJsZV9vaWQsIE9JRF9MRU5HVEgobnNEZWJ1Z1Rva2VuVGFibGVfb2lkKSwKQEAgLTEyNCw2ICsxMjQsNyBAQAogCWJyZWFrOwogCiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMToKIAlmb3IgKHJlcXVlc3QgPSByZXF1ZXN0czsgcmVxdWVzdDsgcmVxdWVzdD1yZXF1ZXN0LT5uZXh0KSB7CiAgICAgICAgICAgICBpZiAocmVxdWVzdC0+cHJvY2Vzc2VkICE9IDApCkBAIC0xNDksNiArMTUwLDcgQEAKIAkgICAgZW5hYmxlZCA9IDA7CiAJc25tcF9zZXRfZG9fZGVidWdnaW5nKCBlbmFibGVkICk7CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICB9CiAKICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKQEAgLTE3OSw2ICsxODEsNyBAQAogCWJyZWFrOwogCiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMToKIAlmb3IgKHJlcXVlc3QgPSByZXF1ZXN0czsgcmVxdWVzdDsgcmVxdWVzdD1yZXF1ZXN0LT5uZXh0KSB7CiAgICAgICAgICAgICBpZiAocmVxdWVzdC0+cHJvY2Vzc2VkICE9IDApCkBAIC0yMDQsNiArMjA3LDcgQEAKIAkgICAgZW5hYmxlZCA9IDA7CiAJc25tcF9zZXRfZG9fZGVidWdnaW5nKCBlbmFibGVkICk7CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICB9CiAKICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKQEAgLTIzNSw2ICsyMzksNyBAQAogCWJyZWFrOwogCiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMToKIAlmb3IgKHJlcXVlc3QgPSByZXF1ZXN0czsgcmVxdWVzdDsgcmVxdWVzdD1yZXF1ZXN0LT5uZXh0KSB7CiAgICAgICAgICAgICBpZiAocmVxdWVzdC0+cHJvY2Vzc2VkICE9IDApCkBAIC0yNjEsNiArMjY2LDcgQEAKIAluZXRzbm1wX2RzX3NldF9ib29sZWFuKE5FVFNOTVBfRFNfTElCUkFSWV9JRCwKIAkgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCX0RVTVBfUEFDS0VULCBlbmFibGVkKTsKICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgIH0KIAogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwpAQCAtMzQ1LDYgKzM1MSw3IEBACiAJYnJlYWs7CiAKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBjYXNlIE1PREVfU0VUX1JFU0VSVkUxOgogCWZvciAocmVxdWVzdCA9IHJlcXVlc3RzOyByZXF1ZXN0OyByZXF1ZXN0PXJlcXVlc3QtPm5leHQpIHsKICAgICAgICAgICAgIGlmIChyZXF1ZXN0LT5wcm9jZXNzZWQgIT0gMCkKQEAgLTQ1MSw2ICs0NTgsNyBAQAogCSAgICB9CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgIH0KIAogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMgYi9hZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYwppbmRleCAzNDRlNTNhLi43ZjIwYmRiIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYworKysgYi9hZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYwpAQCAtMSw0ICsxLDUgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9zY2FsYXIuaD4KQEAgLTEyLDYgKzEzLDExIEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaD4KICNpbmNsdWRlICJhZ2VudC9uc0xvZ2dpbmcuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUobG9nZ2luZ19leHRlcm5hbCkKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV9pdGVyYXRvcl9pbnNlcnRfY29udGV4dCkKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKwogLyoKICAqIE9JRCBhbmQgY29sdW1ucyBmb3IgdGhlIGxvZ2dpbmcgdGFibGUuCiAgKi8KQEAgLTU4LDcgKzY0LDcgQEAKICAgICAvKgogICAgICAqIC4uLi4gYW5kIHJlZ2lzdGVyIHRoZSB0YWJsZSB3aXRoIHRoZSBhZ2VudC4KICAgICAgKi8KLSAgICBuZXRzbm1wX3JlZ2lzdGVyX3RhYmxlX2l0ZXJhdG9yKAorICAgIG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IyKAogICAgICAgICBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigKICAgICAgICAgICAgICJ0ekxvZ2dpbmdUYWJsZSIsIGhhbmRsZV9uc0xvZ2dpbmdUYWJsZSwKICAgICAgICAgICAgIG5zTG9nZ2luZ1RhYmxlX29pZCwgT0lEX0xFTkdUSChuc0xvZ2dpbmdUYWJsZV9vaWQpLApAQCAtMTg2LDYgKzE5Miw3IEBACiAJYnJlYWs7CiAKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBjYXNlIE1PREVfU0VUX1JFU0VSVkUxOgogICAgICAgICBmb3IgKHJlcXVlc3Q9cmVxdWVzdHM7IHJlcXVlc3Q7IHJlcXVlc3Q9cmVxdWVzdC0+bmV4dCkgewogICAgICAgICAgICAgaWYgKCByZXF1ZXN0LT5zdGF0dXMgIT0gMCApIHsKQEAgLTQ1OCw2ICs0NjUsNyBAQAogCSAgICB9CiAJfQogCWJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICB9CiAKICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYwppbmRleCAxZDc2M2YzLi44NGJkOGZhIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jCkBAIC00LDEwICs0LDEzIEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgIm5zTW9kdWxlVGFibGUuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfZGF0YXNldCkKKwogdm9pZAogbnNNb2R1bGVUYWJsZV9mcmVlKHZvaWQgKmNvbnRleHQsIG5ldHNubXBfaXRlcmF0b3JfaW5mbyAqZG9udF9jYXJlKQogewpAQCAtNzIsNyArNzUsNyBAQAogICAgICAqLwogICAgIERFQlVHTVNHVEwoKCJpbml0aWFsaXplX3RhYmxlX25zTW9kdWxlVGFibGUiLAogICAgICAgICAgICAgICAgICJSZWdpc3RlcmluZyB0YWJsZSBuc01vZHVsZVRhYmxlIGFzIGEgdGFibGUgaXRlcmF0b3JcbiIpKTsKLSAgICBuZXRzbm1wX3JlZ2lzdGVyX3RhYmxlX2l0ZXJhdG9yKG15X2hhbmRsZXIsIGlpbmZvKTsKKyAgICBuZXRzbm1wX3JlZ2lzdGVyX3RhYmxlX2l0ZXJhdG9yMihteV9oYW5kbGVyLCBpaW5mbyk7CiB9CiAKIC8qKiBJbml0aWFsaXplcyB0aGUgbnNNb2R1bGVUYWJsZSBtb2R1bGUgKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jIGIvYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMKaW5kZXggZGMxZjdmYS4uZDdkM2NlOSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMKQEAgLTMsNiArMyw3IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCkBAIC0xMCw2ICsxMSw4IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaD4KICNpbmNsdWRlICJuc1RyYW5zYWN0aW9uVGFibGUuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfZGF0YXNldCkKKwogLyoqIEluaXRpYWxpemUgdGhlIG5zVHJhbnNhY3Rpb25UYWJsZSB0YWJsZSBieSBkZWZpbmluZyBpdCdzIGNvbnRlbnRzCiAgICBhbmQgaG93IGl0J3Mgc3RydWN0dXJlZCAqLwogdm9pZApAQCAtNjEsNyArNjQsNyBAQAogICAgICAqLwogICAgIERFQlVHTVNHVEwoKCJpbml0aWFsaXplX3RhYmxlX25zVHJhbnNhY3Rpb25UYWJsZSIsCiAgICAgICAgICAgICAgICAgIlJlZ2lzdGVyaW5nIHRhYmxlIG5zVHJhbnNhY3Rpb25UYWJsZSBhcyBhIHRhYmxlIGl0ZXJhdG9yXG4iKSk7Ci0gICAgbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9pdGVyYXRvcihteV9oYW5kbGVyLCBpaW5mbyk7CisgICAgbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9pdGVyYXRvcjIobXlfaGFuZGxlciwgaWluZm8pOwogfQogCiAvKiogSW5pdGlhbGl6ZXMgdGhlIG5zVHJhbnNhY3Rpb25UYWJsZSBtb2R1bGUgKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMgYi9hZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jCmluZGV4IDQxMGIwMDIuLjc5ZmE5N2QgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYwpAQCAtNCwxMSArNCwxOCBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS92YWNtLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KICNpbmNsdWRlICJuc1ZhY21BY2Nlc3NUYWJsZS5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja192Yl9zdG9yYWdldHlwZSkKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja192Yl90eXBlX2FuZF9tYXhfc2l6ZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX2l0ZXJhdG9yX2luc2VydF9jb250ZXh0KQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworCiAvKiogSW5pdGlhbGl6ZXMgdGhlIG5zVmFjbUFjY2Vzc1RhYmxlIG1vZHVsZSAqLwogdm9pZAogaW5pdF9yZWdpc3Rlcl9uc1ZhY21fY29udGV4dChjb25zdCBjaGFyICpjb250ZXh0KQpAQCAtMjIsMTAgKzI5LDE3IEBACiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvICAgICAgICAgICAqaWluZm87CiAgICAgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqdGFibGVfaW5mbzsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICByZWcgPSBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigKICAgICAgICAgIm5zVmFjbUFjY2Vzc1RhYmxlIiwgbnNWYWNtQWNjZXNzVGFibGVfaGFuZGxlciwKICAgICAgICAgbnNWYWNtQWNjZXNzVGFibGVfb2lkLCBPSURfTEVOR1RIKG5zVmFjbUFjY2Vzc1RhYmxlX29pZCksCiAgICAgICAgIEhBTkRMRVJfQ0FOX1JXUklURSk7CisjZWxzZSAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgcmVnID0gbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oCisgICAgICAgICJuc1ZhY21BY2Nlc3NUYWJsZSIsIG5zVmFjbUFjY2Vzc1RhYmxlX2hhbmRsZXIsCisgICAgICAgIG5zVmFjbUFjY2Vzc1RhYmxlX29pZCwgT0lEX0xFTkdUSChuc1ZhY21BY2Nlc3NUYWJsZV9vaWQpLAorICAgICAgICBIQU5ETEVSX0NBTl9ST05MWSk7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAgICAgdGFibGVfaW5mbyA9IFNOTVBfTUFMTE9DX1RZUEVERUYobmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyk7CiAgICAgbmV0c25tcF90YWJsZV9oZWxwZXJfYWRkX2luZGV4ZXModGFibGVfaW5mbywKQEAgLTQ2LDcgKzYwLDcgQEAKICAgICBpZiAoIGNvbnRleHQgJiYgY29udGV4dFswXSApCiAgICAgICAgIHJlZy0+Y29udGV4dE5hbWUgPSBzdHJkdXAoY29udGV4dCk7CiAKLSAgICBuZXRzbm1wX3JlZ2lzdGVyX3RhYmxlX2l0ZXJhdG9yKHJlZywgaWluZm8pOworICAgIG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IyKHJlZywgaWluZm8pOwogfQogCiB2b2lkCkBAIC0xODksNiArMjAzLDcgQEAKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgLyoKICAgICAgICAgICogV3JpdGUtc3VwcG9ydAogICAgICAgICAgKi8KQEAgLTMzNCw2ICszNDksNyBAQAogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICB9CiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiB9CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jIGIvYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYwppbmRleCBlZWM4MjcxLi5iNTkwYzdhIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jCisrKyBiL2FnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMKQEAgLTIsNiArMiw3IEBACiAgKiAgQWdlbnRYIENvbmZpZ3VyYXRpb24KICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgpAQCAtMjAsNiArMjEsOSBAQAogI2luY2x1ZGUgImFnZW50eC9hZ2VudHhfY29uZmlnLmgiCiAjaW5jbHVkZSAiYWdlbnR4L3Byb3RvY29sLmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHVzZXJfaW5mb3JtYXRpb24pCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShzdHJpbmdfdGltZV90b19zZWNzKQorCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKiBDb21tb24gbWFzdGVyIGFuZCBzdWItYWdlbnQKQEAgLTExNiw4ICsxMjAsMTIgQEAKIHZvaWQKIGFnZW50eF9wYXJzZV9hZ2VudHhfdGltZW91dChjb25zdCBjaGFyICp0b2tlbiwgY2hhciAqY3B0cikKIHsKLSAgICBpbnQgeCA9IGF0b2koY3B0cik7CisgICAgaW50IHggPSBuZXRzbm1wX3N0cmluZ190aW1lX3RvX3NlY3MoY3B0cik7CiAgICAgREVCVUdNU0dUTCgoImFnZW50eC9jb25maWcvdGltZW91dCIsICIlc1xuIiwgY3B0cikpOworICAgIGlmICh4ID09IC0xKSB7CisgICAgICAgIGNvbmZpZ19wZXJyb3IoIkludmFsaWQgdGltZW91dCB2YWx1ZSIpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIG5ldHNubXBfZHNfc2V0X2ludChORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELAogICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0FHRU5UX0FHRU5UWF9USU1FT1VULCB4ICogT05FX1NFQyk7CiB9CkBAIC0xNTIsMTEgKzE2MCwxNCBAQAogICAgIHJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKCI6YWdlbnR4IiwgdG9rZW4sIHBhcnNlciwgcmVsZWFzZXIsIGhlbHApOwogfQogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoYWdlbnR4X3VucmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIsIG5ldHNubXBfdW51c2VkKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0FHRU5UWF9VTlJFR0lTVEVSX0NPTkZJR19IQU5ETEVSCiB2b2lkCiBhZ2VudHhfdW5yZWdpc3Rlcl9jb25maWdfaGFuZGxlcihjb25zdCBjaGFyICp0b2tlbikKIHsKICAgICB1bnJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKCI6YWdlbnR4IiwgdG9rZW4pOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQUdFTlRYX1VOUkVHSVNURVJfQ09ORklHX0hBTkRMRVIgKi8KIAogdm9pZAogYWdlbnR4X2NvbmZpZ19pbml0KHZvaWQpCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMgYi9hZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMKaW5kZXggNTg5ODdlMy4uZDM2ZmUyZCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jCisrKyBiL2FnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYwpAQCAtMyw2ICszLDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KQEAgLTQxLDYgKzQyLDggQEAKICNpbmNsdWRlICJhZ2VudHgvY2xpZW50LmgiCiAjaW5jbHVkZSAiYWdlbnR4L3N1YmFnZW50LmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHNldF9hZ2VudF91cHRpbWUpCisKICAgICAgICAgLyoKICAgICAgICAgICogQWdlbnRYIGhhbmRsaW5nIHV0aWxpdHkgcm91dGluZXMKICAgICAgICAgICoKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyBiL2FnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYwppbmRleCAxZmZjMDQzLi5jNDJhNDJhIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jCkBAIC0xNCw2ICsxNCw3IEBACiAKIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaWYgSEFWRV9JT19ICiAjaW5jbHVkZSA8aW8uaD4KICNlbmRpZgpAQCAtNTAsNiArNTEsMTAgQEAKICNpbmNsdWRlICJhZ2VudHgvcHJvdG9jb2wuaCIKICNpbmNsdWRlICJhZ2VudHgvbWFzdGVyX2FkbWluLmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGhhbmRsZXJfbWFya19yZXF1ZXN0c19hc19kZWxlZ2F0ZWQpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh1bml4X3NvY2tldF9wYXRocykKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGZyZWVfYWdlbnRfc25tcF9zZXNzaW9uX2J5X3Nlc3Npb24pCisKIHZvaWQKIHJlYWxfaW5pdF9tYXN0ZXIodm9pZCkKIHsKQEAgLTQ2MCw2ICs0NjUsNyBAQAogICAgICAgICBwZHUgPSBzbm1wX3BkdV9jcmVhdGUoQUdFTlRYX01TR19HRVRORVhUKTsKICAgICAgICAgYnJlYWs7CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMToKICAgICAgICAgcGR1ID0gc25tcF9wZHVfY3JlYXRlKEFHRU5UWF9NU0dfVEVTVFNFVCk7CiAgICAgICAgIGJyZWFrOwpAQCAtNDgzLDYgKzQ4OSw3IEBACiAgICAgY2FzZSBNT0RFX1NFVF9GUkVFOgogICAgICAgICBwZHUgPSBzbm1wX3BkdV9jcmVhdGUoQUdFTlRYX01TR19DTEVBTlVQU0VUKTsKICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAgICAgZGVmYXVsdDoKICAgICAgICAgc25tcF9sb2coTE9HX1dBUk5JTkcsCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgYi9hZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKaW5kZXggODY2OTM2ZS4uNGVhZWFiNiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCisrKyBiL2FnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwpAQCAtMiw2ICsyLDcgQEAKICAqICBBZ2VudFggQWRtaW5pc3RyYXRpdmUgcmVxdWVzdCBoYW5kbGluZwogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2lmZGVmIEhBVkVfU1RSSU5HX0gKQEAgLTQxLDYgKzQyLDExIEBACiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5oPgogI2luY2x1ZGUgIm1hc3Rlci5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh1bnJlZ2lzdGVyX21pYl90YWJsZV9yb3cpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0cmFwX3ZhcnNfd2l0aF9jb250ZXh0KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2FsY3VsYXRlX3NlY3RpbWVfZGlmZikKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGFsbG9jYXRlX2dsb2JhbGNhY2hlaWQpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShyZW1vdmVfaW5kZXgpCiAKIG5ldHNubXBfc2Vzc2lvbiAqCiBmaW5kX2FnZW50eF9zZXNzaW9uKG5ldHNubXBfc2Vzc2lvbiAqIHNlc3Npb24sIGludCBzZXNzaWQpCkBAIC05Nyw3ICsxMDMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfbGVuZ3RoKTsKICAgICBzcC0+c2VjdXJpdHlBdXRoUHJvdG9MZW4gPSBwZHUtPnZhcmlhYmxlcy0+bmFtZV9sZW5ndGg7CiAgICAgc3AtPnNlY3VyaXR5TmFtZSA9IHN0cmR1cCgoY2hhciAqKSBwZHUtPnZhcmlhYmxlcy0+dmFsLnN0cmluZyk7Ci0gICAgc3AtPmVuZ2luZVRpbWUgPSAobmV0c25tcF9nZXRfYWdlbnRfcnVudGltZSgpICsgNTApIC8gMTAwOworICAgIHNwLT5lbmdpbmVUaW1lID0gKHVpbnQzMl90KSgobmV0c25tcF9nZXRfYWdlbnRfcnVudGltZSgpICsgNTApIC8gMTAwKSAmIDB4N2ZmZmZmZmZMOwogCiAgICAgc3AtPnN1YnNlc3Npb24gPSBzZXNzaW9uOyAgIC8qIGxpbmsgYmFjayB0byBoZWFkICovCiAgICAgc3AtPmZsYWdzIHw9IFNOTVBfRkxBR1NfU1VCU0VTU0lPTjsKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jIGIvYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMKaW5kZXggMWMwMGRiMS4uMWY5ZDMxYyAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMKQEAgLTIsNiArMiw3IEBACiAgKiAgQWdlbnRYIHN1Yi1hZ2VudAogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2lmZGVmIEhBVkVfU1RETElCX0gKQEAgLTQ0LDYgKzQ1LDExIEBACiAKICNpbmNsdWRlICJzdWJhZ2VudC5oIgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoYWdlbnR4X3N1YmFnZW50LCBhZ2VudHhfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGFnZW50eF9lbmFibGVfc3ViYWdlbnQsIGFnZW50eF9zdWJhZ2VudCkKKworbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUocmVtb3ZlX3RyYXBfc2Vzc2lvbikKKwogI2lmZGVmIFVTSU5HX0FHRU5UWF9TVUJBR0VOVF9NT0RVTEUKIAogc3RhdGljIFNOTVBDYWxsYmFjayBzdWJhZ2VudF9yZWdpc3Rlcl9waW5nX2FsYXJtOwpAQCAtNTMsMTAgKzU5LDEyIEBACiBpbnQgICAgICAgICAgICAgaGFuZGxlX3N1YmFnZW50X3Jlc3BvbnNlKGludCBvcCwgbmV0c25tcF9zZXNzaW9uICogc2Vzc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlcWlkLCBuZXRzbm1wX3BkdSAqcGR1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICptYWdpYyk7CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogaW50ICAgICAgICAgICAgIGhhbmRsZV9zdWJhZ2VudF9zZXRfcmVzcG9uc2UoaW50IG9wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9zZXNzaW9uICogc2Vzc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXFpZCwgbmV0c25tcF9wZHUgKnBkdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKm1hZ2ljKTsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiB2b2lkICAgICAgICAgICAgc3ViYWdlbnRfc3RhcnR1cF9jYWxsYmFjayh1bnNpZ25lZCBpbnQgY2xpZW50cmVnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY2xpZW50YXJnKTsKIGludCAgICAgICAgICAgICBzdWJhZ2VudF9vcGVuX21hc3Rlcl9zZXNzaW9uKHZvaWQpOwpAQCAtMTU2LDEyICsxNjQsMTUgQEAKICAgICByZXR1cm4gcmM7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9BR0VOVFhfRU5BQkxFX1NVQkFHRU5UCiB2b2lkCiBuZXRzbm1wX2VuYWJsZV9zdWJhZ2VudCh2b2lkKSB7CiAgICAgbmV0c25tcF9kc19zZXRfYm9vbGVhbihORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELCBORVRTTk1QX0RTX0FHRU5UX1JPTEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVUJfQUdFTlQpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQUdFTlRYX0VOQUJMRV9TVUJBR0VOVCAqLwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogc3RydWN0IGFnZW50X25ldHNubXBfc2V0X2luZm8gKgogc2F2ZV9zZXRfdmFycyhuZXRzbm1wX3Nlc3Npb24gKiBzcywgbmV0c25tcF9wZHUgKnBkdSkKIHsKQEAgLTIzMCw2ICsyNDEsNyBAQAogICAgICAgICBwcmV2ID0gcHRyOwogICAgIH0KIH0KKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKIHN0YXRpYyB2b2lkCiBzZW5kX2FnZW50eF9lcnJvcihuZXRzbm1wX3Nlc3Npb24gKnNlc3Npb24sIG5ldHNubXBfcGR1ICpwZHUsIGludCBlcnJzdGF0LCBpbnQgZXJyaW5kZXgpCkBAIC0zOTMsNiArNDA1LDcgQEAKICAgICAgICAgREVCVUdNU0dUTCgoImFnZW50eC9zdWJhZ2VudCIsICIgIC0+IHJlc3BvbnNlXG4iKSk7CiAgICAgICAgIHJldHVybiAxOwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgQUdFTlRYX01TR19URVNUU0VUOgogICAgICAgICAvKgogICAgICAgICAgKiBYWFhXV1cgd2UgaGF2ZSB0byBtYXAgdGhpcyB0d2ljZSB0byBib3RoIFJFU0VSVkUxIGFuZCBSRVNFUlZFMiAKQEAgLTQ3MCw2ICs0ODMsNyBAQAogICAgICAgICBteWNhbGxiYWNrID0gaGFuZGxlX3N1YmFnZW50X3NldF9yZXNwb25zZTsKICAgICAgICAgcmV0bWFnaWMgPSBhc2k7CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8gCiAKICAgICBkZWZhdWx0OgogICAgICAgICBTTk1QX0ZSRUUoc21hZ2ljKTsKQEAgLTU0MSwxMSArNTU1LDEzIEBACiAgICAgICAgICAgICAgICAgKHVuc2lnbmVkKXBkdS0+cmVxaWQsICh1bnNpZ25lZClwZHUtPnRyYW5zaWQsCiAgICAgICAgICAgICAgICAgKHVuc2lnbmVkKXBkdS0+c2Vzc2lkKSk7CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgaWYgKHBkdS0+Y29tbWFuZCA9PSBTTk1QX01TR19JTlRFUk5BTF9TRVRfRlJFRSB8fAogICAgICAgICBwZHUtPmNvbW1hbmQgPT0gU05NUF9NU0dfSU5URVJOQUxfU0VUX1VORE8gfHwKICAgICAgICAgcGR1LT5jb21tYW5kID09IFNOTVBfTVNHX0lOVEVSTkFMX1NFVF9DT01NSVQpIHsKICAgICAgICAgZnJlZV9zZXRfdmFycyhzbWFnaWMtPnNlc3Npb24sIHBkdSk7CiAgICAgfQorI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgIGlmIChzbWFnaWMtPm9yaWdpbmFsX2NvbW1hbmQgPT0gQUdFTlRYX01TR19HRVRORVhUKSB7CiAgICAgICAgIERFQlVHTVNHVEwoKCJhZ2VudHgvc3ViYWdlbnQiLApAQCAtNjA3LDYgKzYyMyw3IEBACiAgICAgcmV0dXJuIDE7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiBpbnQKIGhhbmRsZV9zdWJhZ2VudF9zZXRfcmVzcG9uc2UoaW50IG9wLCBuZXRzbm1wX3Nlc3Npb24gKiBzZXNzaW9uLCBpbnQgcmVxaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfcGR1ICpwZHUsIHZvaWQgKm1hZ2ljKQpAQCAtNjY4LDcgKzY4NSw3IEBACiAgICAgREVCVUdNU0dUTCgoImFnZW50eC9zdWJhZ2VudCIsICIgIEZJTklTSEVEXG4iKSk7CiAgICAgcmV0dXJuIDE7CiB9Ci0KKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKIAogaW50CkBAIC02NzcsNyArNjk0LDcgQEAKIHsKICAgICBzdHJ1Y3QgcmVnaXN0ZXJfcGFyYW1ldGVycyAqcmVnX3Bhcm1zID0KICAgICAgICAgKHN0cnVjdCByZWdpc3Rlcl9wYXJhbWV0ZXJzICopIHNlcnZlcmFyZzsKLSAgICBuZXRzbm1wX3Nlc3Npb24gKmFnZW50eF9zcyA9IChuZXRzbm1wX3Nlc3Npb24gKikgY2xpZW50YXJnOworICAgIG5ldHNubXBfc2Vzc2lvbiAqYWdlbnR4X3NzID0gKihuZXRzbm1wX3Nlc3Npb24gKiopY2xpZW50YXJnOwogCiAgICAgaWYgKG1pbm9ySUQgPT0gU05NUERfQ0FMTEJBQ0tfUkVHSVNURVJfT0lEKQogICAgICAgICByZXR1cm4gYWdlbnR4X3JlZ2lzdGVyKGFnZW50eF9zcywKQEAgLTcwMyw3ICs3MjAsNyBAQAogewogICAgIGNvbnN0IHN0cnVjdCByZWdpc3Rlcl9zeXNPUl9wYXJhbWV0ZXJzICpyZWdfcGFybXMgPQogICAgICAgICAoY29uc3Qgc3RydWN0IHJlZ2lzdGVyX3N5c09SX3BhcmFtZXRlcnMgKikgc2VydmVyYXJnOwotICAgIG5ldHNubXBfc2Vzc2lvbiAqYWdlbnR4X3NzID0gKG5ldHNubXBfc2Vzc2lvbiAqKSBjbGllbnRhcmc7CisgICAgbmV0c25tcF9zZXNzaW9uICphZ2VudHhfc3MgPSAqKG5ldHNubXBfc2Vzc2lvbiAqKiljbGllbnRhcmc7CiAKICAgICBpZiAobWlub3JJRCA9PSBTTk1QRF9DQUxMQkFDS19SRUdfU1lTT1IpCiAgICAgICAgIHJldHVybiBhZ2VudHhfYWRkX2FnZW50Y2FwcyhhZ2VudHhfc3MsCkBAIC03MTksNyArNzM2LDcgQEAKIHN0YXRpYyBpbnQKIHN1YmFnZW50X3NodXRkb3duKGludCBtYWpvcklELCBpbnQgbWlub3JJRCwgdm9pZCAqc2VydmVyYXJnLCB2b2lkICpjbGllbnRhcmcpCiB7Ci0gICAgbmV0c25tcF9zZXNzaW9uICp0aGVzZXNzaW9uID0gKG5ldHNubXBfc2Vzc2lvbiAqKWNsaWVudGFyZzsKKyAgICBuZXRzbm1wX3Nlc3Npb24gKnRoZXNlc3Npb24gPSAqKG5ldHNubXBfc2Vzc2lvbiAqKiljbGllbnRhcmc7CiAgICAgREVCVUdNU0dUTCgoImFnZW50eC9zdWJhZ2VudCIsICJzaHV0dGluZyBkb3duIHNlc3Npb24uLi4uXG4iKSk7CiAgICAgaWYgKHRoZXNlc3Npb24gPT0gTlVMTCkgewogCURFQlVHTVNHVEwoKCJhZ2VudHgvc3ViYWdlbnQiLCAiRW1wdHkgc2Vzc2lvbiB0byBzaHV0ZG93blxuIikpOwpAQCAtNzQ3LDIyICs3NjQsMjkgQEAKIHZvaWQKIGFnZW50eF9yZWdpc3Rlcl9jYWxsYmFja3MobmV0c25tcF9zZXNzaW9uICogcykKIHsKKyAgICBuZXRzbm1wX3Nlc3Npb24gKnNlc3NfcDsKKwogICAgIERFQlVHTVNHVEwoKCJhZ2VudHgvc3ViYWdlbnQiLAogICAgICAgICAgICAgICAgICJyZWdpc3RlcmluZyBjYWxsYmFja3MgZm9yIHNlc3Npb24gJXBcbiIsIHMpKTsKKyAgICBzZXNzX3AgPSBuZXRzbm1wX21lbWR1cCgmcywgc2l6ZW9mKHMpKTsKKyAgICBuZXRzbm1wX2Fzc2VydChzZXNzX3ApOworICAgIHMtPm15dm9pZCA9IHNlc3NfcDsKKyAgICBpZiAoIXNlc3NfcCkKKyAgICAgICAgcmV0dXJuOwogICAgIHNubXBfcmVnaXN0ZXJfY2FsbGJhY2soU05NUF9DQUxMQkFDS19MSUJSQVJZLCBTTk1QX0NBTExCQUNLX1NIVVRET1dOLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViYWdlbnRfc2h1dGRvd24sIHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViYWdlbnRfc2h1dGRvd24sIHNlc3NfcCk7CiAgICAgc25tcF9yZWdpc3Rlcl9jYWxsYmFjayhTTk1QX0NBTExCQUNLX0FQUExJQ0FUSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU05NUERfQ0FMTEJBQ0tfUkVHSVNURVJfT0lELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlbnR4X3JlZ2lzdHJhdGlvbl9jYWxsYmFjaywgcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2VudHhfcmVnaXN0cmF0aW9uX2NhbGxiYWNrLCBzZXNzX3ApOwogICAgIHNubXBfcmVnaXN0ZXJfY2FsbGJhY2soU05NUF9DQUxMQkFDS19BUFBMSUNBVElPTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBEX0NBTExCQUNLX1VOUkVHSVNURVJfT0lELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlbnR4X3JlZ2lzdHJhdGlvbl9jYWxsYmFjaywgcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2VudHhfcmVnaXN0cmF0aW9uX2NhbGxiYWNrLCBzZXNzX3ApOwogICAgIHNubXBfcmVnaXN0ZXJfY2FsbGJhY2soU05NUF9DQUxMQkFDS19BUFBMSUNBVElPTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBEX0NBTExCQUNLX1JFR19TWVNPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZW50eF9zeXNPUl9jYWxsYmFjaywgcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2VudHhfc3lzT1JfY2FsbGJhY2ssIHNlc3NfcCk7CiAgICAgc25tcF9yZWdpc3Rlcl9jYWxsYmFjayhTTk1QX0NBTExCQUNLX0FQUExJQ0FUSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU05NUERfQ0FMTEJBQ0tfVU5SRUdfU1lTT1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2VudHhfc3lzT1JfY2FsbGJhY2ssIHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlbnR4X3N5c09SX2NhbGxiYWNrLCBzZXNzX3ApOwogfQogCiAvKgpAQCAtNzc1LDE5ICs3OTksMjAgQEAKICAgICBERUJVR01TR1RMKCgiYWdlbnR4L3N1YmFnZW50IiwKICAgICAgICAgICAgICAgICAidW5yZWdpc3RlcmluZyBjYWxsYmFja3MgZm9yIHNlc3Npb24gJXBcbiIsIHNzKSk7CiAgICAgc25tcF91bnJlZ2lzdGVyX2NhbGxiYWNrKFNOTVBfQ0FMTEJBQ0tfTElCUkFSWSwgU05NUF9DQUxMQkFDS19TSFVURE9XTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViYWdlbnRfc2h1dGRvd24sIHNzLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViYWdlbnRfc2h1dGRvd24sIHNzLT5teXZvaWQsIDEpOwogICAgIHNubXBfdW5yZWdpc3Rlcl9jYWxsYmFjayhTTk1QX0NBTExCQUNLX0FQUExJQ0FUSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTk1QRF9DQUxMQkFDS19SRUdJU1RFUl9PSUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZW50eF9yZWdpc3RyYXRpb25fY2FsbGJhY2ssIHNzLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlbnR4X3JlZ2lzdHJhdGlvbl9jYWxsYmFjaywgc3MtPm15dm9pZCwgMSk7CiAgICAgc25tcF91bnJlZ2lzdGVyX2NhbGxiYWNrKFNOTVBfQ0FMTEJBQ0tfQVBQTElDQVRJT04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBEX0NBTExCQUNLX1VOUkVHSVNURVJfT0lELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2VudHhfcmVnaXN0cmF0aW9uX2NhbGxiYWNrLCBzcywgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZW50eF9yZWdpc3RyYXRpb25fY2FsbGJhY2ssIHNzLT5teXZvaWQsIDEpOwogICAgIHNubXBfdW5yZWdpc3Rlcl9jYWxsYmFjayhTTk1QX0NBTExCQUNLX0FQUExJQ0FUSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTk1QRF9DQUxMQkFDS19SRUdfU1lTT1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZW50eF9zeXNPUl9jYWxsYmFjaywgc3MsIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2VudHhfc3lzT1JfY2FsbGJhY2ssIHNzLT5teXZvaWQsIDEpOwogICAgIHNubXBfdW5yZWdpc3Rlcl9jYWxsYmFjayhTTk1QX0NBTExCQUNLX0FQUExJQ0FUSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTk1QRF9DQUxMQkFDS19VTlJFR19TWVNPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlbnR4X3N5c09SX2NhbGxiYWNrLCBzcywgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZW50eF9zeXNPUl9jYWxsYmFjaywgc3MtPm15dm9pZCwgMSk7CisgICAgU05NUF9GUkVFKHNzLT5teXZvaWQpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmggYi9hZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaAppbmRleCAxZDc2N2FlLi5mYzVmMjZhIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaAorKysgYi9hZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaApAQCAtNSw2ICs1LDEzIEBACiAvKiB0aGVzZSBnbyBpbnRvIGJvdGggdGhlIG1pbmkgYWdlbnQgYW5kIHRoZSBmdWxsIGFnZW50ICovCiBjb25maWdfcmVxdWlyZShzbm1wdjNtaWJzKQogCisvKiB2ZXJ5IGZldyBkZWZhdWx0IG1pYnMgKi8KK2NvbmZpZ19hZGRfbWliKFNOTVB2Mi1NSUIpCitjb25maWdfYWRkX21pYihJRi1NSUIpCitjb25maWdfYWRkX21pYihJUC1NSUIpCitjb25maWdfYWRkX21pYihUQ1AtTUlCKQorY29uZmlnX2FkZF9taWIoVURQLU1JQikKKwogI2lmZGVmIE5FVFNOTVBfTUlOSV9BR0VOVAogCiAvKiBsaW1pdCB0aGUgbWliSUkgbW9kdWxlcyB0byB0aGUgYmFyZSBtaW5pbXVtICovCkBAIC0xMywxNSArMjAsNiBAQAogY29uZmlnX3JlcXVpcmUobWliSUkvc3lzT1JUYWJsZSkKIGNvbmZpZ19yZXF1aXJlKG1pYklJL3ZhY21fdmFycykKIGNvbmZpZ19yZXF1aXJlKG1pYklJL3ZhY21fY29uZikKLWNvbmZpZ19yZXF1aXJlKHV0aWxfZnVuY3MvRXhpdCkKLWNvbmZpZ19yZXF1aXJlKHV0aWxfZnVuY3MvcmVzdGFydCkKLQotLyogdmVyeSBmZXcgZGVmYXVsdCBtaWJzICovCi1jb25maWdfYWRkX21pYihTTk1QdjItTUlCKQotY29uZmlnX2FkZF9taWIoSUYtTUlCKQotY29uZmlnX2FkZF9taWIoSVAtTUlCKQotY29uZmlnX2FkZF9taWIoVENQLU1JQikKLWNvbmZpZ19hZGRfbWliKFVEUC1NSUIpCiAKICNlbHNlIC8qICFORVRTTk1QX01JTklfQUdFTlQgPT0gdGhlIGZ1bGwgc2hhYmFuZyAqLwogCkBAIC0zMywyMiArMzEsMjEgQEAKIGNvbmZpZ19yZXF1aXJlKGFnZW50X21pYnMpCiBjb25maWdfcmVxdWlyZShhZ2VudHgpCiBjb25maWdfcmVxdWlyZShkaXNtYW4vZXZlbnQpCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogY29uZmlnX3JlcXVpcmUoZGlzbWFuL3NjaGVkdWxlKQorI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIGNvbmZpZ19yZXF1aXJlKHV0aWxpdGllcykKIAogLyogZGVmYXVsdCBNSUJzIHRvIGF1dG8taW5jbHVkZSBmb3IgcGFyc2luZyAqLwogLyogTk9URTogd2UgY29uc2lkZXIgdGhlc2UgTUlCcyB1c2VycyB3aWxsIGxpa2VseSB3YW50IHRvIGxvYWQgYnkKICAgIGRlZmF1bHQsIGV2ZW4gaWYgdGhleSdyZSBub3Qgc3VwcG9ydGluZyBpdCBpbiB0aGUgYWdlbnQgKGllLCB0aGUKICAgIGNvbW1hbmQgbGluZSB0b29scyBuZWVkIHRvIGxvYWQgdGhlbSBhbnl3YXkpICovCi1jb25maWdfYWRkX21pYihTTk1QdjItTUlCKQotY29uZmlnX2FkZF9taWIoSUYtTUlCKQotY29uZmlnX2FkZF9taWIoSVAtTUlCKQotY29uZmlnX2FkZF9taWIoVENQLU1JQikKLWNvbmZpZ19hZGRfbWliKFVEUC1NSUIpCiBjb25maWdfYWRkX21pYihIT1NULVJFU09VUkNFUy1NSUIpCiBjb25maWdfYWRkX21pYihOT1RJRklDQVRJT04tTE9HLU1JQikKIGNvbmZpZ19hZGRfbWliKERJU01BTi1FVkVOVC1NSUIpCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogY29uZmlnX2FkZF9taWIoRElTTUFOLVNDSEVEVUxFLU1JQikKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKIC8qIGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBleHRyYSBtb2R1bGVzICovCiAvKiB0aGVzZSBzeW1ib2xzIGFyZSBzZXQgaW4gdGhlIGhvc3Qgc3BlY2lmaWMgbmV0LXNubXAvc3lzdGVtLzxvcz4uaCBmaWxlcyAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYyBiL2FnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzg5ODc5YQotLS0gL2Rldi9udWxsCisrKyBiL2FnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMKQEAgLTAsMCArMSw0NzUgQEAKKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KKworI2luY2x1ZGUgPGxpbWl0cy5oPgorCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjb250YWluZXJfZmlmbykKKworI2luY2x1ZGUgImRlbGl2ZXJCeU5vdGlmeS5oIgorCisvKiB3ZSBzaG91bGQgbmV2ZXIgc3BsaXQgYmV5b25kIHRoaXMgKi8KKyNkZWZpbmUgTUFYX01FU1NBR0VfQ09VTlQgMTI4CisjZGVmaW5lIEJBU0VfUEFDS0VUX1NJWkUgMTAwIC8qIHNob3VsZCBiZSBlbm91Z2ggdG8gc3RvcmUgU05NUHYzIG1zZyBoZWFkZXJzICovCisKKy8qIGlmIHYgaXMgIU5VTEwsIHRoZW4gZXN0aW1hdGUgaXQncyBsaWtlbHkgc2l6ZSAqLworI2RlZmluZSBFU1RJTUFURV9WQVJfU0laRSh2KSAodj8odi0+bmFtZV9sZW5ndGggKyB2LT52YWxfbGVuICsgOCk6MCkKKwordm9pZCBwYXJzZV9kZWxpdmVyX2NvbmZpZyhjb25zdCBjaGFyICosIGNoYXIgKik7Cit2b2lkIHBhcnNlX2RlbGl2ZXJfbWF4c2l6ZV9jb25maWcoY29uc3QgY2hhciAqLCBjaGFyICopOwordm9pZCBwYXJzZV9kYXRhX25vdGlmaWNhdGlvbl9vaWRfY29uZmlnKGNvbnN0IGNoYXIgKiwgY2hhciAqKTsKK3ZvaWQgcGFyc2VfcGVyaW9kaWNfdGltZV9vaWRfY29uZmlnKGNvbnN0IGNoYXIgKiwgY2hhciAqKTsKK3ZvaWQgcGFyc2VfbWVzc2FnZV9udW1iZXJfb2lkX2NvbmZpZyhjb25zdCBjaGFyICosIGNoYXIgKik7Cit2b2lkIHBhcnNlX21heF9tZXNzYWdlX251bWJlcl9vaWRfY29uZmlnKGNvbnN0IGNoYXIgKiwgY2hhciAqKTsKK3ZvaWQgZnJlZV9kZWxpdmVyX2NvbmZpZyh2b2lkKTsKKworc3RhdGljIHZvaWQgX3NjaGVkdWxlX25leHRfZXhlY3V0ZV90aW1lKHZvaWQpOworCitvaWQgICAgZGF0YV9ub3RpZmljYXRpb25fb2lkW01BWF9PSURfTEVOXQorICAgICAgID0geyAxLCAzLCA2LCAxLCA0LCAxLCA4MDcyLCAzLCAxLCA1LCA0LCAwLCAxIH07CitzaXplX3QgZGF0YV9ub3RpZmljYXRpb25fb2lkX2xlbiA9IDEzOworCitvaWQgICAgbmV0c25tcF9wZXJpb2RpY190aW1lX29pZFtNQVhfT0lEX0xFTl0KKyAgICAgICA9IHsgMSwgMywgNiwgMSwgNCwgMSwgODA3MiwgMywgMSwgNSwgMywgMSwgMCB9Oworc2l6ZV90IG5ldHNubXBfcGVyaW9kaWNfdGltZV9vaWRfbGVuID0gMTM7CisKK29pZCAgICBuZXRzbm1wX21lc3NhZ2VfbnVtYmVyX29pZFtNQVhfT0lEX0xFTl0KKyAgICAgICA9IHsgMSwgMywgNiwgMSwgNCwgMSwgODA3MiwgMywgMSwgNSwgMywgMiwgMCB9Oworc2l6ZV90IG5ldHNubXBfbWVzc2FnZV9udW1iZXJfb2lkX2xlbiA9IDEzOworCitvaWQgICAgbmV0c25tcF9tYXhfbWVzc2FnZV9udW1iZXJfb2lkW01BWF9PSURfTEVOXQorICAgICAgID0geyAxLCAzLCA2LCAxLCA0LCAxLCA4MDcyLCAzLCAxLCA1LCAzLCAzLCAwIH07CitzaXplX3QgbmV0c25tcF9tYXhfbWVzc2FnZV9udW1iZXJfb2lkX2xlbiA9IDEzOworCitvaWQgb2JqaWRfc25tcHRyYXBbXSA9IHsgMSwgMywgNiwgMSwgNiwgMywgMSwgMSwgNCwgMSwgMCB9OworCisjZGVmaW5lIERFRkFVTFRfTUFYX0RFTElWRVJfU0laRSAtMTsKK3N0YXRpYyBpbnQgZGVmYXVsdF9tYXhfc2l6ZTsKK3Vuc2lnbmVkIGludCBhbGFybV9yZWc7CitzdGF0aWMgbmV0c25tcF9jb250YWluZXIgKmRlbGl2ZXJfY29udGFpbmVyOworCitzdGF0aWMgaW50CitfZGVsaXZlcl9jb21wYXJlKGRlbGl2ZXJfYnlfbm90aWZ5ICpsaHMsIGRlbGl2ZXJfYnlfbm90aWZ5ICpyaHMpIHsKKyAgICAvKiBzb3J0IGJ5IHRoZSBuZXh0X3J1biB0aW1lICovCisgICAgaWYgKGxocy0+bmV4dF9ydW4gPCByaHMtPm5leHRfcnVuKQorICAgICAgICByZXR1cm4gLTE7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gMTsKK30KKworLyoqIEluaXRpYWxpemVzIHRoZSBtdGVUcmlnZ2VyIG1vZHVsZSAqLwordm9pZAoraW5pdF9kZWxpdmVyQnlOb3RpZnkodm9pZCkKK3sKKyAgICAvKiByZWdpc3RlciB0aGUgY29uZmlnIHRva2VucyAqLworICAgIHNubXBkX3JlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKCJkZWxpdmVyQnlOb3RpZnkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwYXJzZV9kZWxpdmVyX2NvbmZpZywgJmZyZWVfZGVsaXZlcl9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlstcF0gWy1tXSBbLXMgbWF4c2l6ZV0gRlJFUVVFTkNZIE9JRCIpOworCisgICAgc25tcGRfcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoImRlbGl2ZXJCeU5vdGlmeU1heFBhY2tldFNpemUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwYXJzZV9kZWxpdmVyX21heHNpemVfY29uZmlnLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaXplSW5CeXRlcyIpOworCisgICAgc25tcGRfcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoImRlbGl2ZXJCeU5vdGlmeU9pZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBhcnNlX2RhdGFfbm90aWZpY2F0aW9uX29pZF9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgLyogWFhYOiByZXNldCB0byBkZWZhdWx0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9JRCIpOworCisgICAgc25tcGRfcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoImRlbGl2ZXJCeU5vdGlmeUZyZXF1ZW5jeU9pZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBhcnNlX3BlcmlvZGljX3RpbWVfb2lkX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAvKiBYWFg6IHJlc2V0IHRvIGRlZmF1bHQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT0lEIik7CisKKyAgICBzbm1wZF9yZWdpc3Rlcl9jb25maWdfaGFuZGxlcigiZGVsaXZlckJ5Tm90aWZ5TWVzc2FnZU51bWJlck9pZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBhcnNlX21lc3NhZ2VfbnVtYmVyX29pZF9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgLyogWFhYOiByZXNldCB0byBkZWZhdWx0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9JRCIpOworCisgICAgc25tcGRfcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoImRlbGl2ZXJCeU5vdGlmeU1heE1lc3NhZ2VOdW1iZXJPaWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwYXJzZV9tYXhfbWVzc2FnZV9udW1iZXJfb2lkX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAvKiBYWFg6IHJlc2V0IHRvIGRlZmF1bHQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT0lEIik7CisKKyAgICAvKiBjcmVhdGUgdGhlIGNvbnRhaW5lciB0byBzdG9yZSB0aGUgY29uZmlnIG9iamVjdHMqLworICAgIGRlbGl2ZXJfY29udGFpbmVyID0gbmV0c25tcF9jb250YWluZXJfZmluZCgiZGVsaXZlckJ5Tm90aWZ5OmZpZm8iKTsKKyAgICBpZiAoTlVMTCA9PSBkZWxpdmVyX2NvbnRhaW5lcikgeworICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLAorICAgICAgICAgICAgICAgICAiZGVsaXZlckJ5Tm90aWZ5OiBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBvdXIgZGF0YSBjb250YWluZXJcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGRlbGl2ZXJfY29udGFpbmVyLT5jb250YWluZXJfbmFtZSA9IHN0cmR1cCgiZGVsaXZlckJ5Tm90aWZ5Iik7CisgICAgZGVsaXZlcl9jb250YWluZXItPmNvbXBhcmUgPSAobmV0c25tcF9jb250YWluZXJfY29tcGFyZSAqKSBfZGVsaXZlcl9jb21wYXJlOworCisgICAgLyogc2V0IHRoZSBkZWZhdWx0cyAqLworICAgIGRlZmF1bHRfbWF4X3NpemUgPSBERUZBVUxUX01BWF9ERUxJVkVSX1NJWkU7CisKKyAgICBhbGFybV9yZWcgPSAwOworfQorCit2b2lkCitfcGFyc2VfY29uZmlnX29pZChjb25zdCBjaGFyICp0b2tlbiwgY2hhciAqbGluZSwKKyAgICAgICAgICAgICAgICAgIG9pZCAqb2lkX3N0b3JlLCBzaXplX3QgKm9pZF9zdG9yZV9sZW4pIHsKKyAgICBzaXplX3QgdG1wX2xlbiA9IE1BWF9PSURfTEVOOworICAgIC8qIHBhcnNlIHRoZSBPSUQgZ2l2ZW4gKi8KKworICAgIGlmICghc25tcF9wYXJzZV9vaWQobGluZSwgb2lkX3N0b3JlLCAmdG1wX2xlbikpIHsKKyAgICAgICAgY2hhciBidWZbU1BSSU5UX01BWF9MRU5dOworICAgICAgICBzbnByaW50ZihidWYsIFNQUklOVF9NQVhfTEVOLTEsICJ1bmtub3duICVzIE9JRDogJXMiLCB0b2tlbiwgbGluZSk7CisgICAgICAgIGNvbmZpZ19wZXJyb3IoYnVmKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgICpvaWRfc3RvcmVfbGVuID0gdG1wX2xlbjsKK30KKwordm9pZAorcGFyc2VfZGF0YV9ub3RpZmljYXRpb25fb2lkX2NvbmZpZyhjb25zdCBjaGFyICp0b2tlbiwgY2hhciAqbGluZSkgeworICAgIF9wYXJzZV9jb25maWdfb2lkKHRva2VuLCBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgIGRhdGFfbm90aWZpY2F0aW9uX29pZCwgJmRhdGFfbm90aWZpY2F0aW9uX29pZF9sZW4pOworfQorCit2b2lkCitwYXJzZV9wZXJpb2RpY190aW1lX29pZF9jb25maWcoY29uc3QgY2hhciAqdG9rZW4sIGNoYXIgKmxpbmUpIHsKKyAgICBfcGFyc2VfY29uZmlnX29pZCh0b2tlbiwgbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3BlcmlvZGljX3RpbWVfb2lkLCAmbmV0c25tcF9wZXJpb2RpY190aW1lX29pZF9sZW4pOworfQorCit2b2lkCitwYXJzZV9tZXNzYWdlX251bWJlcl9vaWRfY29uZmlnKGNvbnN0IGNoYXIgKnRva2VuLCBjaGFyICpsaW5lKSB7CisgICAgX3BhcnNlX2NvbmZpZ19vaWQodG9rZW4sIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9tZXNzYWdlX251bWJlcl9vaWQsCisgICAgICAgICAgICAgICAgICAgICAgJm5ldHNubXBfbWVzc2FnZV9udW1iZXJfb2lkX2xlbik7Cit9CisKK3ZvaWQKK3BhcnNlX21heF9tZXNzYWdlX251bWJlcl9vaWRfY29uZmlnKGNvbnN0IGNoYXIgKnRva2VuLCBjaGFyICpsaW5lKSB7CisgICAgX3BhcnNlX2NvbmZpZ19vaWQodG9rZW4sIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9tYXhfbWVzc2FnZV9udW1iZXJfb2lkLAorICAgICAgICAgICAgICAgICAgICAgICZuZXRzbm1wX21heF9tZXNzYWdlX251bWJlcl9vaWRfbGVuKTsKK30KKwordm9pZAorcGFyc2VfZGVsaXZlcl9jb25maWcoY29uc3QgY2hhciAqdG9rZW4sIGNoYXIgKmxpbmUpIHsKKyAgICBjb25zdCBjaGFyICpjcCA9IGxpbmU7CisgICAgY2hhciBidWZbU1BSSU5UX01BWF9MRU5dOworICAgIHNpemVfdCBidWZfbGVuID0gU1BSSU5UX01BWF9MRU47CisgICAgaW50IG1heF9zaXplID0gREVGQVVMVF9NQVhfREVMSVZFUl9TSVpFOworICAgIGludCBmcmVxdWVuY3k7CisgICAgb2lkIHRhcmdldF9vaWRbTUFYX09JRF9MRU5dOworICAgIHNpemVfdCB0YXJnZXRfb2lkX2xlbiA9IE1BWF9PSURfTEVOOworICAgIGRlbGl2ZXJfYnlfbm90aWZ5ICpuZXdfbm90aWZ5ID0gTlVMTDsKKyAgICBpbnQgZmxhZ3MgPSAwOworCisgICAgd2hpbGUoY3AgJiYgKmNwID09ICctJykgeworICAgICAgICBzd2l0Y2ggKCooY3ArMSkpIHsKKyAgICAgICAgY2FzZSAncyc6CisgICAgICAgICAgICBjcCA9IHNraXBfdG9rZW5fY29uc3QoY3ApOworICAgICAgICAgICAgaWYgKCFjcCkgeworICAgICAgICAgICAgICAgIGNvbmZpZ19wZXJyb3IoIm5vIGFyZ3VtZW50IGdpdmVuIHRvIC1zIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbWF4X3NpemUgPSBhdG9pKGNwKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgJ3AnOgorICAgICAgICAgICAgZmxhZ3MgPSBmbGFncyB8IE5FVFNOTVBfREVMSVZFUl9OT19QRVJJT0RfT0lEOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSAnbSc6CisgICAgICAgICAgICBmbGFncyA9IGZsYWdzIHwgTkVUU05NUF9ERUxJVkVSX05PX01TR19DT1VOVFM7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgY29uZmlnX3BlcnJvcigidW5rbm93biBmbGFnIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY3AgPSBza2lwX3Rva2VuX2NvbnN0KGNwKTsKKyAgICB9CisKKyAgICBpZiAoIWNwKSB7CisgICAgICAgIGNvbmZpZ19wZXJyb3IoIm5vIGZyZXF1ZW5jeSBnaXZlbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNvcHlfbndvcmQoY3AsIGJ1ZiwgYnVmX2xlbik7CisgICAgZnJlcXVlbmN5ID0gbmV0c25tcF9zdHJpbmdfdGltZV90b19zZWNzKGJ1Zik7CisgICAgY3AgPSBza2lwX3Rva2VuX2NvbnN0KGNwKTsKKworICAgIGlmIChmcmVxdWVuY3kgPD0gMCkgeworICAgICAgICBjb25maWdfcGVycm9yKCJpbGxlZ2FsIGZyZXF1ZW5jeSBnaXZlbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFjcCkgeworICAgICAgICBjb25maWdfcGVycm9yKCJubyBPSUQgZ2l2ZW4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIHBhcnNlIHRoZSBPSUQgZ2l2ZW4gKi8KKyAgICBpZiAoIXNubXBfcGFyc2Vfb2lkKGNwLCB0YXJnZXRfb2lkLCAmdGFyZ2V0X29pZF9sZW4pKSB7CisgICAgICAgIGNvbmZpZ19wZXJyb3IoInVua25vd24gZGVsaXZlckJ5Tm90aWZ5IE9JRCIpOworICAgICAgICBERUJVR01TR1RMKCgiZGVsaXZlckJ5Tm90aWZ5IiwgIlRoZSBPSUQgd2l0aCB0aGUgcHJvYmxlbTogJXNcbiIsIGNwKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBzZXQgdXAgdGhlIG9iamVjdCB0byBzdG9yZSBhbGwgdGhlIGRhdGEgKi8KKyAgICBuZXdfbm90aWZ5ID0gU05NUF9NQUxMT0NfVFlQRURFRihkZWxpdmVyX2J5X25vdGlmeSk7CisgICAgbmV3X25vdGlmeS0+ZnJlcXVlbmN5ID0gZnJlcXVlbmN5OworICAgIG5ld19ub3RpZnktPm1heF9wYWNrZXRfc2l6ZSA9IG1heF9zaXplOworICAgIG5ld19ub3RpZnktPmxhc3RfcnVuID0gdGltZShOVUxMKTsKKyAgICBuZXdfbm90aWZ5LT5uZXh0X3J1biA9IG5ld19ub3RpZnktPmxhc3RfcnVuICsgZnJlcXVlbmN5OworICAgIG5ld19ub3RpZnktPmZsYWdzID0gZmxhZ3M7CisKKyAgICBuZXdfbm90aWZ5LT50YXJnZXQgPSBtYWxsb2ModGFyZ2V0X29pZF9sZW4gKiBzaXplb2Yob2lkKSk7CisgICAgbmV3X25vdGlmeS0+dGFyZ2V0X2xlbiA9IHRhcmdldF9vaWRfbGVuOworICAgIG1lbWNweShuZXdfbm90aWZ5LT50YXJnZXQsIHRhcmdldF9vaWQsIHRhcmdldF9vaWRfbGVuKnNpemVvZihvaWQpKTsKKworICAgIC8qIFhYWDogbmVlZCB0byBkbyB0aGUgd2hvbGUgY29udGFpbmVyICovCisgICAgc25tcF9hbGFybV9yZWdpc3RlcihjYWxjdWxhdGVfdGltZV91bnRpbF9uZXh0X3J1bihuZXdfbm90aWZ5LCBOVUxMKSwgMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAmZGVsaXZlcl9leGVjdXRlLCBOVUxMKTsKKworICAgIC8qIGFkZCBpdCB0byB0aGUgY29udGFpbmVyICovCisgICAgQ09OVEFJTkVSX0lOU0VSVChkZWxpdmVyX2NvbnRhaW5lciwgbmV3X25vdGlmeSk7CisgICAgX3NjaGVkdWxlX25leHRfZXhlY3V0ZV90aW1lKCk7Cit9CisKK3ZvaWQKK3BhcnNlX2RlbGl2ZXJfbWF4c2l6ZV9jb25maWcoY29uc3QgY2hhciAqdG9rZW4sIGNoYXIgKmxpbmUpIHsKKyAgICBkZWZhdWx0X21heF9zaXplID0gYXRvaShsaW5lKTsKK30KKworc3RhdGljIHZvaWQKK19mcmVlX2RlbGl2ZXJfb2JqKGRlbGl2ZXJfYnlfbm90aWZ5ICpvYmosIHZvaWQgKmNvbnRleHQpIHsKKyAgICBuZXRzbm1wX2Fzc2VydF9vcl9yZXR1cm4ob2JqICE9IE5VTEwsICk7CisgICAgU05NUF9GUkVFKG9iai0+dGFyZ2V0KTsKKyAgICBTTk1QX0ZSRUUob2JqKTsKK30KKwordm9pZAorZnJlZV9kZWxpdmVyX2NvbmZpZyh2b2lkKSB7CisgICAgZGVmYXVsdF9tYXhfc2l6ZSA9IERFRkFVTFRfTUFYX0RFTElWRVJfU0laRTsKKyAgICBDT05UQUlORVJfQ0xFQVIoZGVsaXZlcl9jb250YWluZXIsCisgICAgICAgICAgICAgICAgICAgIChuZXRzbm1wX2NvbnRhaW5lcl9vYmpfZnVuYyAqKSBfZnJlZV9kZWxpdmVyX29iaiwgTlVMTCk7CisgICAgaWYgKGFsYXJtX3JlZykgeworICAgICAgICBzbm1wX2FsYXJtX3VucmVnaXN0ZXIoYWxhcm1fcmVnKTsKKyAgICAgICAgYWxhcm1fcmVnID0gMDsKKyAgICB9Cit9CisKK3ZvaWQKK2RlbGl2ZXJfZXhlY3V0ZSh1bnNpZ25lZCBpbnQgY2xpZW50cmVnLCB2b2lkICpjbGllbnRhcmcpIHsKKyAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhcnMsICp3YWxrZXIsICpkZWxpdmVyX25vdGlmaWNhdGlvbiwgKnZhcnRtcDsKKyAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnJlYWR5X2Zvcl9kZWxpdmVyeVtNQVhfTUVTU0FHRV9DT1VOVF07CisgICAgbmV0c25tcF9zZXNzaW9uICpzZXNzOworICAgIGludCByYywgaTsKKyAgICBkZWxpdmVyX2J5X25vdGlmeSAqb2JqOworICAgIG5ldHNubXBfaXRlcmF0b3IgKml0ZXJhdG9yOworICAgIHRpbWVfdCAgICAgICAgICAgIG5vdyA9IHRpbWUoTlVMTCk7CisgICAgdV9sb25nICAgICAgICAgICAgbWVzc2FnZV9jb3VudCwgbWF4X21lc3NhZ2VfY291bnQsIHRtcF9sb25nOworICAgIHVfbG9uZyAgICAgICAgICAgKm1heF9tZXNzYWdlX2NvdW50X3B0cnNbTUFYX01FU1NBR0VfQ09VTlRdOworICAgIHNpemVfdCAgICAgICAgICAgIGVzdGltYXRlZF9wa3Rfc2l6ZTsKKworICAgIERFQlVHTVNHVEwoKCJkZWxpdmVyQnlOb3RpZnkiLCAiU3RhcnRpbmcgdGhlIGV4ZWN1dGUgcm91dGluZVxuIikpOworCisgICAgLyogWFhYOiBuZWVkIHRvIGRvIHRoZSB3aG9sZSBjb250YWluZXIgKi8KKyAgICBpdGVyYXRvciA9IENPTlRBSU5FUl9JVEVSQVRPUihkZWxpdmVyX2NvbnRhaW5lcik7CisgICAgbmV0c25tcF9hc3NlcnRfb3JfcmV0dXJuKGl0ZXJhdG9yICE9IE5VTEwsKTsKKworICAgIHNlc3MgPSBuZXRzbm1wX3F1ZXJ5X2dldF9kZWZhdWx0X3Nlc3Npb24oKTsKKworICAgIGZvcihvYmogPSBJVEVSQVRPUl9GSVJTVChpdGVyYXRvcik7IG9iajsKKyAgICAgICAgb2JqID0gSVRFUkFUT1JfTkVYVChpdGVyYXRvcikpIHsKKworICAgICAgICAvKiBjaGVjayBpZiB3ZSBuZWVkIHRvIHJ1biB0aGlzIG9uZSB5ZXQgKi8KKyAgICAgICAgaWYgKG9iai0+bmV4dF9ydW4gPiBub3cpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBtYXhfbWVzc2FnZV9jb3VudCA9IDE7CisgICAgICAgIG1lc3NhZ2VfY291bnQgPSAwOworCisgICAgICAgIC8qIGZpbGwgdGhlIHZhcmJpbmQgbGlzdCB3aXRoIHRoZSB0YXJnZXQgb2JqZWN0ICovCisgICAgICAgIHZhcnMgPSBTTk1QX01BTExPQ19UWVBFREVGKCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKTsKKyAgICAgICAgc25tcF9zZXRfdmFyX29iamlkKCB2YXJzLCBvYmotPnRhcmdldCwgb2JqLT50YXJnZXRfbGVuICk7CisgICAgICAgIHZhcnMtPnR5cGUgPSBBU05fTlVMTDsKKworICAgICAgICAvKiB3YWxrIHRoZSBPSUQgdHJlZSBmb3IgdGhlIGRhdGEgKi8KKyAgICAgICAgcmMgPSBuZXRzbm1wX3F1ZXJ5X3dhbGsodmFycywgc2Vzcyk7CisgICAgICAgIGlmIChyYyAhPSBTTk1QX0VSUl9OT0VSUk9SKSB7CisgICAgICAgICAgICAvKiBYWFg6IGRpc2FibGU/IGFuZCByZXNldCB0aGUgbmV4dCBxdWVyeSB0aW1lIHBvaW50ISAqLworICAgICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgImRlbGl2ZXJCeU5vdGlmeTogZmFpbGVkIHRvIGlzc3VlIHRoZSBxdWVyeSIpOworICAgICAgICAgICAgSVRFUkFUT1JfUkVMRUFTRShpdGVyYXRvcik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB3YWxrZXIgPSB2YXJzOworCisgICAgICAgIHdoaWxlICh3YWxrZXIpIHsKKworICAgICAgICAgICAgLyogU2V0IHVwIHRoZSBub3RpZmljYXRpb24gaXRzZWxmICovCisgICAgICAgICAgICBkZWxpdmVyX25vdGlmaWNhdGlvbiA9IE5VTEw7CisgICAgICAgICAgICBlc3RpbWF0ZWRfcGt0X3NpemUgPSBCQVNFX1BBQ0tFVF9TSVpFOworCisgICAgICAgICAgICAvKiBhZGQgaW4gdGhlIG5vdGlmaWNhdGlvbiB0eXBlICovCisgICAgICAgICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZkZWxpdmVyX25vdGlmaWNhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqaWRfc25tcHRyYXAsIE9JRF9MRU5HVEgob2JqaWRfc25tcHRyYXApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU05fT0JKRUNUX0lELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX25vdGlmaWNhdGlvbl9vaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfbm90aWZpY2F0aW9uX29pZF9sZW4gKiBzaXplb2Yob2lkKSk7CisgICAgICAgICAgICBlc3RpbWF0ZWRfcGt0X3NpemUgKz0gRVNUSU1BVEVfVkFSX1NJWkUoZGVsaXZlcl9ub3RpZmljYXRpb24pOworCisgICAgICAgICAgICAvKiBhZGQgaW4gdGhlIGN1cnJlbnQgbWVzc2FnZSBudW1iZXIgaW4gdGhpcyBzZXF1ZW5jZSAqLworICAgICAgICAgICAgaWYgKCEob2JqLT5mbGFncyAmIE5FVFNOTVBfREVMSVZFUl9OT19QRVJJT0RfT0lEKSkgeworICAgICAgICAgICAgICAgIHRtcF9sb25nID0gb2JqLT5mcmVxdWVuY3k7CisgICAgICAgICAgICAgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmZGVsaXZlcl9ub3RpZmljYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3BlcmlvZGljX3RpbWVfb2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9wZXJpb2RpY190aW1lX29pZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU05fVU5TSUdORUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3Qgdm9pZCAqKSAmdG1wX2xvbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodG1wX2xvbmcpKTsKKyAgICAgICAgICAgICAgICBlc3RpbWF0ZWRfcGt0X3NpemUgKz0gRVNUSU1BVEVfVkFSX1NJWkUoZGVsaXZlcl9ub3RpZmljYXRpb24pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBhZGQgaW4gdGhlIGN1cnJlbnQgbWVzc2FnZSBudW1iZXIgaW4gdGhpcyBzZXF1ZW5jZSAqLworICAgICAgICAgICAgbWVzc2FnZV9jb3VudCsrOworICAgICAgICAgICAgaWYgKG1lc3NhZ2VfY291bnQgPiBNQVhfTUVTU0FHRV9DT1VOVCkgeworICAgICAgICAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJkZWxpdmVyeSBjb25zdHJ1Y3QgZ3JldyB0b28gbGFyZ2UuLi4gIGdpdmluZyB1cFxuIik7CisgICAgICAgICAgICAgICAgLyogWFhYOiBkaXNhYmxlIGl0ICovCisgICAgICAgICAgICAgICAgLyogWFhYOiBzZW5kIGEgbm90aWZpY2F0aW9uIGFib3V0IGl0PyAqLworICAgICAgICAgICAgICAgIElURVJBVE9SX1JFTEVBU0UoaXRlcmF0b3IpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogc3RvcmUgdGhpcyBmb3IgbGF0ZXIgdXBkYXRpbmcgYW5kIHNlbmRpbmcgKi8KKyAgICAgICAgICAgIHJlYWR5X2Zvcl9kZWxpdmVyeVttZXNzYWdlX2NvdW50LTFdID0gZGVsaXZlcl9ub3RpZmljYXRpb247CisKKyAgICAgICAgICAgIGlmICghKG9iai0+ZmxhZ3MgJiBORVRTTk1QX0RFTElWRVJfTk9fTVNHX0NPVU5UUykpIHsKKyAgICAgICAgICAgICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZkZWxpdmVyX25vdGlmaWNhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfbWVzc2FnZV9udW1iZXJfb2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9tZXNzYWdlX251bWJlcl9vaWRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNOX1VOU0lHTkVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IHZvaWQgKikgJm1lc3NhZ2VfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YobWVzc2FnZV9jb3VudCkpOworICAgICAgICAgICAgICAgIGVzdGltYXRlZF9wa3Rfc2l6ZSArPSBFU1RJTUFURV9WQVJfU0laRShkZWxpdmVyX25vdGlmaWNhdGlvbik7CisKKyAgICAgICAgICAgICAgICAvKiBhZGQgaW4gdGhlIG1heCBtZXNzYWdlIG51bWJlciBjb3VudCBmb3IgdGhpcyBzZXF1ZW5jZSAqLworICAgICAgICAgICAgICAgIHZhcnRtcCA9IHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJmRlbGl2ZXJfbm90aWZpY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9tYXhfbWVzc2FnZV9udW1iZXJfb2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9tYXhfbWVzc2FnZV9udW1iZXJfb2lkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTTl9VTlNJR05FRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCB2b2lkICopICZtYXhfbWVzc2FnZV9jb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihtYXhfbWVzc2FnZV9jb3VudCkpOworICAgICAgICAgICAgICAgIGVzdGltYXRlZF9wa3Rfc2l6ZSArPSBFU1RJTUFURV9WQVJfU0laRShkZWxpdmVyX25vdGlmaWNhdGlvbik7CisKKyAgICAgICAgICAgICAgICAvKiB3ZSdsbCBuZWVkIHRvIHVwZGF0ZSB0aGlzIGNvdW50ZXIgbGF0ZXIgKi8KKyAgICAgICAgICAgICAgICBtYXhfbWVzc2FnZV9jb3VudF9wdHJzW21lc3NhZ2VfY291bnQtMV0gPQorICAgICAgICAgICAgICAgICAgICAodV9sb25nICopIHZhcnRtcC0+dmFsLmludGVnZXI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIGp1c3QgdG8gYmUgc3VyZSAqLworICAgICAgICAgICAgICAgIG1heF9tZXNzYWdlX2NvdW50X3B0cnNbbWVzc2FnZV9jb3VudC0xXSA9IE5VTEw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qIGNvcHkgaW4gdGhlIGNvbGxlY3RlZCBkYXRhICovCisgICAgICAgICAgICB3aGlsZSh3YWxrZXIpIHsKKyAgICAgICAgICAgICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZkZWxpdmVyX25vdGlmaWNhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhbGtlci0+bmFtZSwgd2Fsa2VyLT5uYW1lX2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhbGtlci0+dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhbGtlci0+dmFsLnN0cmluZywgd2Fsa2VyLT52YWxfbGVuKTsKKworICAgICAgICAgICAgICAgIC8qIDggYnl0ZSBwYWRkaW5nIGZvciBBU04gZW5jb2RpbmdzIGFuIGEgZmV3IGV4dHJhIE9JRCBieXRlcyAqLworICAgICAgICAgICAgICAgIGVzdGltYXRlZF9wa3Rfc2l6ZSArPSBFU1RJTUFURV9WQVJfU0laRSh3YWxrZXIpOworCisgICAgICAgICAgICAgICAgd2Fsa2VyID0gd2Fsa2VyLT5uZXh0X3ZhcmlhYmxlOworCisgICAgICAgICAgICAgICAgLyogaWYgdGhlIGN1cnJlbnQgc2l6ZSBQTFVTIHRoZSBuZXh0IG9uZSAod2hpY2ggaXMgbm93CisgICAgICAgICAgICAgICAgICAgaW4gJ3dhbGtlcicpIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbGltZXQgdGhlbiB3ZSBzdG9wIGhlcmUgKi8KKyAgICAgICAgICAgICAgICBpZiAob2JqLT5tYXhfcGFja2V0X3NpemUgPiAwICYmCisgICAgICAgICAgICAgICAgICAgIGVzdGltYXRlZF9wa3Rfc2l6ZSArCisgICAgICAgICAgICAgICAgICAgIEVTVElNQVRFX1ZBUl9TSVpFKHdhbGtlcikgPj0KKyAgICAgICAgICAgICAgICAgICAgb2JqLT5tYXhfcGFja2V0X3NpemUpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBzZW5kIG91dCB0aGUgbm90aWZpY2F0aW9uICovCisgICAgICAgICAgICBzZW5kX3YydHJhcChkZWxpdmVyX25vdGlmaWNhdGlvbik7CisgICAgICAgIH0KKworICAgICAgICBmb3IoaSA9IDA7IGkgPCBtZXNzYWdlX2NvdW50OyBpKyspIHsKKyAgICAgICAgICAgIC8qIHVwZGF0ZSB0aGUgbWF4IGNvdW50IHBvaW50ZXIgKi8KKyAgICAgICAgICAgIGlmIChtYXhfbWVzc2FnZV9jb3VudF9wdHJzW2ldKQorICAgICAgICAgICAgICAgICoobWF4X21lc3NhZ2VfY291bnRfcHRyc1tpXSkgPSBtZXNzYWdlX2NvdW50OworICAgICAgICAgICAgCisgICAgICAgICAgICBzZW5kX3YydHJhcChyZWFkeV9mb3JfZGVsaXZlcnlbaV0pOworICAgICAgICAgICAgc25tcF9mcmVlX3ZhcmJpbmQocmVhZHlfZm9yX2RlbGl2ZXJ5W2ldKTsKKyAgICAgICAgfQorCisgICAgICAgIHNubXBfZnJlZV92YXJiaW5kKHZhcnMpOworCisgICAgICAgIC8qIHJlY29yZCB0aGlzIGFzIHRoZSB0aW1lIHByb2Nlc3NlZCAqLworICAgICAgICAvKiBYWFg6IHRoaXMgbWF5IGNyZWVwIGJ5IGEgZmV3IHNlY29uZHMgd2hlbiBwcm9jZXNzaW5nIGFuZCBtYXliZSB3ZSB3YW50CisgICAgICAgICAgIHRvIGRvIHRoZSB0aW1lIHN0YW1wIGF0IHRoZSBiZWdpbm5pbmc/ICovCisgICAgICAgIG9iai0+bGFzdF9ydW4gPSB0aW1lKE5VTEwpOworICAgIH0KKyAgICBJVEVSQVRPUl9SRUxFQVNFKGl0ZXJhdG9yKTsKKworICAgIC8qIGNhbGN1bGF0ZSB0aGUgbmV4dCB0aW1lIHRvIHNsZWVwIGZvciAqLworICAgIF9zY2hlZHVsZV9uZXh0X2V4ZWN1dGVfdGltZSgpOworfQorCitpbnQKK2NhbGN1bGF0ZV90aW1lX3VudGlsX25leHRfcnVuKGRlbGl2ZXJfYnlfbm90aWZ5ICppdCwgdGltZV90ICpub3cpIHsKKyAgICB0aW1lX3QgICAgICAgICAgbG9jYWxfbm93OworCisgICAgLyogaWYgd2Ugd2VyZW4ndCBwYXNzZWQgYSB2YWxpZCB0aW1lLCBmYWtlIGl0ICovCisgICAgaWYgKE5VTEwgPT0gbm93KSB7CisgICAgICAgIG5vdyA9ICZsb2NhbF9ub3c7CisgICAgICAgIHRpbWUoJmxvY2FsX25vdyk7CisgICAgfQorCisgICAgbmV0c25tcF9hc3NlcnRfb3JfcmV0dXJuKGl0LT5sYXN0X3J1biAhPSAwLCAtMSk7CisKKyAgICAvKiBzZXQgdGhlIHRpbWVzdGFtcCBmb3IgdGhlIG5leHQgcnVuICovCisgICAgaXQtPm5leHRfcnVuID0gaXQtPmxhc3RfcnVuICsgaXQtPmZyZXF1ZW5jeTsKKworICAgIC8qIGhvdyBsb25nIHVudGlsIHRoZSBuZXh0IHJ1bj8gKi8KKyAgICByZXR1cm4gaXQtPm5leHRfcnVuIC0gKm5vdzsKK30KKworc3RhdGljIHZvaWQKK19zY2hlZHVsZV9uZXh0X2V4ZWN1dGVfdGltZSh2b2lkKSB7CisgICAgdGltZV90ICAgICAgICAgICAgIGxvY2FsX25vdyA9IHRpbWUoTlVMTCk7CisgICAgaW50ICAgICAgICAgICAgICAgIHNsZWVwX2ZvciA9IElOVF9NQVg7CisgICAgaW50ICAgICAgICAgICAgICAgIG5leHRfdGltZTsKKyAgICBuZXRzbm1wX2l0ZXJhdG9yICAqaXRlcmF0b3I7CisgICAgZGVsaXZlcl9ieV9ub3RpZnkgKm9iajsKKworICAgIERFQlVHTVNHVEwoKCJkZWxpdmVyQnlOb3RpZnkiLCAiQ2FsY3VsYXRpbmcgc2NoZWR1bGluZyBuZWVkZWRcbiIpKTsKKworICAgIGlmIChhbGFybV9yZWcpIHsKKyAgICAgICAgc25tcF9hbGFybV91bnJlZ2lzdGVyKGFsYXJtX3JlZyk7CisgICAgICAgIGFsYXJtX3JlZyA9IDA7CisgICAgfQorCisgICAgaXRlcmF0b3IgPSBDT05UQUlORVJfSVRFUkFUT1IoZGVsaXZlcl9jb250YWluZXIpOworICAgIGlmIChOVUxMID09IGl0ZXJhdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3Iob2JqID0gSVRFUkFUT1JfRklSU1QoaXRlcmF0b3IpOyBvYmo7CisgICAgICAgIG9iaiA9IElURVJBVE9SX05FWFQoaXRlcmF0b3IpKSB7CisgICAgICAgIG5leHRfdGltZSA9IGNhbGN1bGF0ZV90aW1lX3VudGlsX25leHRfcnVuKG9iaiwgJmxvY2FsX25vdyk7CisgICAgICAgIERFQlVHTVNHVEwoKCJkZWxpdmVyQnlOb3RpZnkiLCAiICBvYmo6ICVkIChsYXN0PSVkLCBuZXh0X3J1bj0lZClcbiIsIG5leHRfdGltZSwgb2JqLT5sYXN0X3J1biwgb2JqLT5uZXh0X3J1bikpOworICAgICAgICBpZiAobmV4dF90aW1lIDwgc2xlZXBfZm9yKQorICAgICAgICAgICAgc2xlZXBfZm9yID0gbmV4dF90aW1lOworICAgIH0KKworICAgIGlmIChzbGVlcF9mb3IgIT0gSU5UX01BWCkgeworICAgICAgICBpZiAoc2xlZXBfZm9yIDwgMSkKKyAgICAgICAgICAgIHNsZWVwX2ZvciA9IDE7IC8qIGdpdmUgYXQgbGVhc3QgYSBzbWFsbCBwYXVzZSAqLworICAgICAgICBERUJVR01TR1RMKCgiZGVsaXZlckJ5Tm90aWZ5IiwgIk5leHQgZXhlY3V0aW9uIGluICVkIChtYXggPSAlZCkgc2Vjb25kc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgc2xlZXBfZm9yLCBJTlRfTUFYKSk7CisgICAgICAgIGFsYXJtX3JlZyA9IHNubXBfYWxhcm1fcmVnaXN0ZXIoc2xlZXBfZm9yLCAwLCAmZGVsaXZlcl9leGVjdXRlLCBOVUxMKTsKKyAgICB9CisKKyAgICBJVEVSQVRPUl9SRUxFQVNFKGl0ZXJhdG9yKTsKK30KKwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaCBiL2FnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkyYzM2NgotLS0gL2Rldi9udWxsCisrKyBiL2FnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmgKQEAgLTAsMCArMSw0MCBAQAorI2lmbmRlZiBERUxJVkVSQllOT1RJRllfSAorI2RlZmluZSBERUxJVkVSQllOT1RJRllfSCAxCisKKyNpZiBUSU1FX1dJVEhfU1lTX1RJTUUKKyMgaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyMgaW5jbHVkZSA8dGltZS5oPgorI2Vsc2UKKyMgaWYgSEFWRV9TWVNfVElNRV9ICisjICBpbmNsdWRlIDxzeXMvdGltZS5oPgorIyBlbHNlCisjICBpbmNsdWRlIDx0aW1lLmg+CisjIGVuZGlmCisjZW5kaWYKKworY29uZmlnX2FkZF9taWIoTkVULVNOTVAtUEVSSU9ESUMtTk9USUZZLU1JQikKKwordm9pZCBpbml0X2RlbGl2ZXJCeU5vdGlmeSh2b2lkKTsKKwordm9pZCBwYXJzZV9kZWxpdmVyX2NvbmZpZyhjb25zdCBjaGFyICosIGNoYXIgKik7Cit2b2lkIGZyZWVfZGVsaXZlcl9jb25maWcodm9pZCk7CisKK1NOTVBBbGFybUNhbGxiYWNrIGRlbGl2ZXJfZXhlY3V0ZTsKKworI2RlZmluZSBORVRTTk1QX0RFTElWRVJfTk9fUEVSSU9EX09JRCAgIDB4MDEKKyNkZWZpbmUgTkVUU05NUF9ERUxJVkVSX05PX01TR19DT1VOVFMgICAweDAyCisKKy8qIGltcGxlbWVudGF0aW9uIGRldGFpbHMgKi8KK3R5cGVkZWYgc3RydWN0IGRlbGl2ZXJfYnlfbm90aWZ5X3MgeworICAgaW50ICAgICBmcmVxdWVuY3k7CisgICBpbnQgICAgIGxhc3RfcnVuOworICAgaW50ICAgICBuZXh0X3J1bjsKKyAgIG9pZCAgICAqdGFyZ2V0OworICAgc2l6ZV90ICB0YXJnZXRfbGVuOworICAgaW50ICAgICBtYXhfcGFja2V0X3NpemU7CisgICBpbnQgICAgIGZsYWdzOworfSBkZWxpdmVyX2J5X25vdGlmeTsKKworaW50IGNhbGN1bGF0ZV90aW1lX3VudGlsX25leHRfcnVuKGRlbGl2ZXJfYnlfbm90aWZ5ICppdCwgdGltZV90ICpub3cpOworCisjZW5kaWYgLyogZGVsaXZlckJ5Tm90aWZ5X2ggKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi5oIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuLmgKaW5kZXggODBmM2UxZi4uNmI3Y2RkNSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuLmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuLmgKQEAgLTMsNyArMywxMCBAQAogICovCiBjb25maWdfcmVxdWlyZShkaXNtYW4vZXZlbnQtbWliKQogY29uZmlnX3JlcXVpcmUoZGlzbWFuL2V4cHJlc3Npb24tbWliKQorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKKy8qIHRoZSBzY2hlZHVsZSBtaWIgaXMgYWxsIGFib3V0IHdyaXRpbmcgKFNFVHMpICovIAogY29uZmlnX3JlcXVpcmUoZGlzbWFuL3NjaGVkdWxlKQorI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIC8qIGNvbmZpZ19yZXF1aXJlKGRpc21hbi9uc2xvb2t1cC1taWIpICAgKi8KIC8qIGNvbmZpZ19yZXF1aXJlKGRpc21hbi9waW5nLW1pYikgICAgICAgKi8KIC8qIGNvbmZpZ19yZXF1aXJlKGRpc21hbi90cmFjZXJvdXRlLW1pYikgKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMKaW5kZXggMDUzNjBkMy4uYmM0ZmYwYiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMKQEAgLTQsMTIgKzQsMTcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSAiZGlzbWFuL2V2ZW50L210ZUV2ZW50LmgiCiAjaW5jbHVkZSAiZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuaCIKICNpbmNsdWRlICJkaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5oIgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoZGlzbWFuX2RlYnVnZ2luZywgbGlibmV0c25tcG1pYnMpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YobXRlZXZlbnQsIGxpYm5ldHNubXBtaWJzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKG10ZWV2ZW50X3JlbW92ZWVudHJ5LCBtdGVldmVudCkKKwogbmV0c25tcF90ZGF0YSAqZXZlbnRfdGFibGVfZGF0YTsKIAogICAgIC8qCkBAIC0xMTksNiArMTI0LDcgQEAKICAgICAgKgogICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfRElTTUFOX0RFQlVHR0lORwogdm9pZAogX210ZUV2ZW50X2R1bXAodm9pZCkKIHsKQEAgLTE0MCw3ICsxNDYsNyBAQAogICAgIH0KICAgICBERUJVR01TR1RMKCgiZGlzbWFuOmV2ZW50OmR1bXAiLCAiRXZlbnRUYWJsZSAlZCBlbnRyaWVzXG4iLCBpKSk7CiB9Ci0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0RJU01BTl9ERUJVR0dJTkcgKi8KIAogLyoKICAqIENyZWF0ZSBhIG5ldyByb3cgaW4gdGhlIGV2ZW50IHRhYmxlIApAQCAtMTk2LDYgKzIwMiw3IEBACiB9CiAKIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX01URUVWRU5UX1JFTU9WRUVOVFJZCiAvKgogICogUmVtb3ZlIGEgcm93IGZyb20gdGhlIGV2ZW50IHRhYmxlIAogICovCkBAIC0yMDgsOSArMjE1LDkgQEAKICAgICAgICAgcmV0dXJuOyAgICAgICAgICAgICAgICAgLyogTm90aGluZyB0byByZW1vdmUgKi8KICAgICBlbnRyeSA9IChzdHJ1Y3QgbXRlRXZlbnQgKikKICAgICAgICAgbmV0c25tcF90ZGF0YV9yZW1vdmVfYW5kX2RlbGV0ZV9yb3coZXZlbnRfdGFibGVfZGF0YSwgcm93KTsKLSAgICBpZiAoZW50cnkpCi0gICAgICAgIFNOTVBfRlJFRShlbnRyeSk7CisgICAgU05NUF9GUkVFKGVudHJ5KTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX01URUVWRU5UX1JFTU9WRUVOVFJZICovCiAKICAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgKgpAQCAtMjIyLDEwICsyMjksMTIgQEAKIF9tdGVFdmVudF9maXJlX25vdGlmeSggc3RydWN0IG10ZUV2ZW50ICAgICpldmVudCwKICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG10ZVRyaWdnZXIgICp0cmlnZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICBvaWQgKnN1ZmZpeCwgc2l6ZV90IHNmeF9sZW4gKTsKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiBpbnQKIF9tdGVFdmVudF9maXJlX3NldCggICAgc3RydWN0IG10ZUV2ZW50ICAgICpldmVudCwKICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG10ZVRyaWdnZXIgICp0cmlnZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICBvaWQgKnN1ZmZpeCwgc2l6ZV90IHNmeF9sZW4gKTsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogaW50CiBtdGVFdmVudF9maXJlKCBjaGFyICpvd25lciwgY2hhciAqZXZlbnQsICAgICAgLyogRXZlbnQgdG8gaW52b2tlICAgICovCkBAIC0yNjEsMTEgKzI3MCwxMyBAQAogICAgICAgICBfbXRlRXZlbnRfZmlyZV9ub3RpZnkoIGVudHJ5LCB0cmlnZ2VyLCBzdWZmaXgsIHNfbGVuICk7CiAgICAgICAgIGZpcmVkID0gMTsKICAgICB9CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGlmIChlbnRyeS0+bXRlRXZlbnRBY3Rpb25zICYgTVRFX0VWRU5UX1NFVCkgewogICAgICAgICBERUJVR01TR1RMKCgiZGlzbWFuOmV2ZW50OmZpcmUiLCAiRmlyaW5nIHNldCBldmVudFxuIikpOwogICAgICAgICBfbXRlRXZlbnRfZmlyZV9zZXQoIGVudHJ5LCB0cmlnZ2VyLCBzdWZmaXgsIHNfbGVuICk7CiAgICAgICAgIGZpcmVkID0gMTsKICAgICB9CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICAgICBpZiAoIWZpcmVkKQogICAgICAgICBERUJVR01TR1RMKCgiZGlzbWFuOmV2ZW50OmZpcmUiLCAiTWF0Y2hlZCBldmVudCBpcyBlbXB0eVxuIikpOwpAQCAtNDM0LDYgKzQ0NSw3IEBACiB9CiAKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKIGludAogX210ZUV2ZW50X2ZpcmVfc2V0KCBzdHJ1Y3QgbXRlRXZlbnQgICAqZW50cnksICAgICAgLyogVGhlIGV2ZW50IHRvIGZpcmUgKi8KICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG10ZVRyaWdnZXIgKnRyaWdnZXIsICAgIC8qIFRyaWdnZXIgdGhhdCBmaXJlZCAqLwpAQCAtNDc3LDQgKzQ4OSw0IEBACiAKICAgICAvKiBYWFggLSBOZWVkIHRvIGNoZWNrIHJlc3VsdCAqLwogfQotCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmMgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmMKaW5kZXggNzJlM2FlMy4uMjQxOTJhNiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jCisrKyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuYwpAQCAtNCw2ICs0LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmg+CkBAIC0xMSw2ICsxMiw3IEBACiAjaW5jbHVkZSAiZGlzbWFuL2V2ZW50L210ZUV2ZW50LmgiCiAjaW5jbHVkZSAiZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShpcXVlcnkpCiAKIC8qKiBJbml0aWFsaXplcyB0aGUgbXRlRXZlbnRzQ29uZiBtb2R1bGUgKi8KIHZvaWQKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jCmluZGV4IDkzNGExYzUuLjdkMmM5NGEgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYwpAQCAtNywxMSArNywxOSBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KICNpbmNsdWRlICJkaXNtYW4vZXZlbnQvbXRlRXZlbnQuaCIKICNpbmNsdWRlICJkaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV90ZGF0YSkKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja192Yl90eXBlX2FuZF9tYXhfc2l6ZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX3ZiX29pZCkKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKworc3RhdGljIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm87CiAKIC8qIEluaXRpYWxpemVzIHRoZSBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlIG1vZHVsZSAqLwogdm9pZApAQCAtMjAsNyArMjgsNiBAQAogICAgIHN0YXRpYyBvaWQgIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGVfb2lkW10gICA9IHsgMSwgMywgNiwgMSwgMiwgMSwgODgsIDEsIDQsIDMgfTsKICAgICBzaXplX3QgICAgICBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlX29pZF9sZW4gPSBPSURfTEVOR1RIKG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGVfb2lkKTsKICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICAgICpyZWc7Ci0gICAgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqdGFibGVfaW5mbzsKIAogICAgIC8qCiAgICAgICogRW5zdXJlIHRoZSAoY29tYmluZWQpIHRhYmxlIGNvbnRhaW5lciBpcyBhdmFpbGFibGUuLi4KQEAgLTMwLDExICszNywxOSBAQAogICAgIC8qCiAgICAgICogLi4uIHRoZW4gc2V0IHVwIHRoZSBNSUIgaW50ZXJmYWNlIHRvIHRoZSBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlIHNsaWNlCiAgICAgICovCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIHJlZyA9IG5ldHNubXBfY3JlYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uKCJtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZV9oYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlX29pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZV9vaWRfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQU5ETEVSX0NBTl9SV1JJVEUpOworI2Vsc2UgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworICAgIHJlZyA9IG5ldHNubXBfY3JlYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uKCJtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZV9oYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlX29pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZV9vaWRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQU5ETEVSX0NBTl9ST05MWSk7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAgICAgdGFibGVfaW5mbyA9IFNOTVBfTUFMTE9DX1RZUEVERUYobmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyk7CiAgICAgbmV0c25tcF90YWJsZV9oZWxwZXJfYWRkX2luZGV4ZXModGFibGVfaW5mbywKQEAgLTUyLDYgKzY3LDE0IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50X3RhYmxlX2RhdGEpKTsKIH0KIAordm9pZAorc2h1dGRvd25fbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZSh2b2lkKQoreworICAgIGlmICh0YWJsZV9pbmZvKSB7CisJbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19mcmVlKHRhYmxlX2luZm8pOworCXRhYmxlX2luZm8gPSBOVUxMOworICAgIH0KK30KIAogCiAvKiogaGFuZGxlcyByZXF1ZXN0cyBmb3IgdGhlIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUgdGFibGUgKi8KQEAgLTEwOSw2ICsxMzIsOCBAQAogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCisKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgIC8qCiAgICAgICAgICAqIFdyaXRlLXN1cHBvcnQKICAgICAgICAgICovCkBAIC0yMzUsNiArMjYwLDcgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBicmVhazsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgfQogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaCBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgKaW5kZXggYmUyYmNjNi4uYWJkNjExMCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaAorKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oCkBAIC05LDYgKzksNyBAQAogICogZnVuY3Rpb24gZGVjbGFyYXRpb25zIAogICovCiB2b2lkICAgICAgICAgICAgaW5pdF9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlKHZvaWQpOwordm9pZCAgICAgICAgICAgIHNodXRkb3duX210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUodm9pZCk7CiBOZXRzbm1wX05vZGVfSGFuZGxlciBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlX2hhbmRsZXI7CiAKIC8qCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuYwppbmRleCA5Nzc4M2MxLi5lZTY5NmYxIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMKQEAgLTcsMTEgKzcsMjAgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSAiZGlzbWFuL2V2ZW50L210ZUV2ZW50LmgiCiAjaW5jbHVkZSAiZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfdGRhdGEpCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfdmJfdHlwZV9hbmRfbWF4X3NpemUpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja192Yl9vaWQpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja192Yl90cnV0aHZhbHVlKQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworCitzdGF0aWMgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqdGFibGVfaW5mbzsKIAogLyogSW5pdGlhbGl6ZXMgdGhlIG10ZUV2ZW50U2V0VGFibGUgbW9kdWxlICovCiB2b2lkCkBAIC0yMCw3ICsyOSw2IEBACiAgICAgc3RhdGljIG9pZCAgbXRlRXZlbnRTZXRUYWJsZV9vaWRbXSAgID0geyAxLCAzLCA2LCAxLCAyLCAxLCA4OCwgMSwgNCwgNCB9OwogICAgIHNpemVfdCAgICAgIG10ZUV2ZW50U2V0VGFibGVfb2lkX2xlbiA9IE9JRF9MRU5HVEgobXRlRXZlbnRTZXRUYWJsZV9vaWQpOwogICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gICAgKnJlZzsKLSAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICp0YWJsZV9pbmZvOwogCiAgICAgLyoKICAgICAgKiBFbnN1cmUgdGhlIChjb21iaW5lZCkgdGFibGUgY29udGFpbmVyIGlzIGF2YWlsYWJsZS4uLgpAQCAtMzAsMTEgKzM4LDE5IEBACiAgICAgLyoKICAgICAgKiAuLi4gdGhlbiBzZXQgdXAgdGhlIE1JQiBpbnRlcmZhY2UgdG8gdGhlIG10ZUV2ZW50U2V0VGFibGUgc2xpY2UKICAgICAgKi8KKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgcmVnID0gbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oIm10ZUV2ZW50U2V0VGFibGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVFdmVudFNldFRhYmxlX2hhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10ZUV2ZW50U2V0VGFibGVfb2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVFdmVudFNldFRhYmxlX29pZF9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JXUklURSk7CisjZWxzZSAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgcmVnID0gbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oIm10ZUV2ZW50U2V0VGFibGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVFdmVudFNldFRhYmxlX2hhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10ZUV2ZW50U2V0VGFibGVfb2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVFdmVudFNldFRhYmxlX29pZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JPTkxZKTsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICAgICB0YWJsZV9pbmZvID0gU05NUF9NQUxMT0NfVFlQRURFRihuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvKTsKICAgICBuZXRzbm1wX3RhYmxlX2hlbHBlcl9hZGRfaW5kZXhlcyh0YWJsZV9pbmZvLApAQCAtNTIsNiArNjgsMTUgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRfdGFibGVfZGF0YSkpOwogfQogCit2b2lkCitzaHV0ZG93bl9tdGVFdmVudFNldFRhYmxlKHZvaWQpCit7CisgICAgaWYgKHRhYmxlX2luZm8pIHsKKwluZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX2ZyZWUodGFibGVfaW5mbyk7CisJdGFibGVfaW5mbyA9IE5VTEw7CisgICAgfQorfQorCiAKIC8qKiBoYW5kbGVzIHJlcXVlc3RzIGZvciB0aGUgbXRlRXZlbnRTZXRUYWJsZSB0YWJsZSAqLwogaW50CkBAIC0xMjMsNiArMTQ4LDcgQEAKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgLyoKICAgICAgICAgICogV3JpdGUtc3VwcG9ydAogICAgICAgICAgKi8KQEAgLTI3OCw2ICszMDQsNyBAQAogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICB9CiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiB9CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5oIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuaAppbmRleCBiOGNiMTI0Li43MWVjMDlhIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5oCisrKyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmgKQEAgLTksNiArOSw3IEBACiAgKiBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgCiAgKi8KIHZvaWQgICAgICAgICAgICBpbml0X210ZUV2ZW50U2V0VGFibGUodm9pZCk7Cit2b2lkICAgICAgICAgICAgc2h1dGRvd25fbXRlRXZlbnRTZXRUYWJsZSh2b2lkKTsKIE5ldHNubXBfTm9kZV9IYW5kbGVyIG10ZUV2ZW50U2V0VGFibGVfaGFuZGxlcjsKIAogLyoKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jCmluZGV4IDJjMjFlNjcuLmM1YjUzNGUgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYwpAQCAtNywxMiArNywyNCBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KICNpbmNsdWRlICJ1dGlsaXRpZXMvaXF1ZXJ5LmgiCiAjaW5jbHVkZSAiZGlzbWFuL2V2ZW50L210ZUV2ZW50LmgiCiAjaW5jbHVkZSAiZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaXF1ZXJ5KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfdGRhdGEpCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaXF1ZXJ5X3BkdV9zZXNzaW9uKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfdmJfdHlwZV9hbmRfbWF4X3NpemUpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShtdGVldmVudF9yZW1vdmVlbnRyeSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX3ZiX3RydXRodmFsdWUpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV90ZGF0YV9pbnNlcnRfcm93KQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworCitzdGF0aWMgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqdGFibGVfaW5mbzsKIAogLyogSW5pdGlhbGl6ZXMgdGhlIG10ZUV2ZW50VGFibGUgbW9kdWxlICovCiB2b2lkCkBAIC0yMSw3ICszMyw2IEBACiAgICAgc3RhdGljIG9pZCAgbXRlRXZlbnRUYWJsZV9vaWRbXSAgID0geyAxLCAzLCA2LCAxLCAyLCAxLCA4OCwgMSwgNCwgMiB9OwogICAgIHNpemVfdCAgICAgIG10ZUV2ZW50VGFibGVfb2lkX2xlbiA9IE9JRF9MRU5HVEgobXRlRXZlbnRUYWJsZV9vaWQpOwogICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gICAgKnJlZzsKLSAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICp0YWJsZV9pbmZvOwogCiAgICAgLyoKICAgICAgKiBFbnN1cmUgdGhlIChjb21iaW5lZCkgdGFibGUgY29udGFpbmVyIGlzIGF2YWlsYWJsZS4uLgpAQCAtMzEsMTEgKzQyLDE5IEBACiAgICAgLyoKICAgICAgKiAuLi4gdGhlbiBzZXQgdXAgdGhlIE1JQiBpbnRlcmZhY2UgdG8gdGhlIG10ZUV2ZW50VGFibGUgc2xpY2UKICAgICAgKi8KKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgcmVnID0gbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oIm10ZUV2ZW50VGFibGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVFdmVudFRhYmxlX2hhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10ZUV2ZW50VGFibGVfb2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVFdmVudFRhYmxlX29pZF9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JXUklURSk7CisjZWxzZSAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgcmVnID0gbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oIm10ZUV2ZW50VGFibGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVFdmVudFRhYmxlX2hhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10ZUV2ZW50VGFibGVfb2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVFdmVudFRhYmxlX29pZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JPTkxZKTsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICAgICB0YWJsZV9pbmZvID0gU05NUF9NQUxMT0NfVFlQRURFRihuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvKTsKICAgICBuZXRzbm1wX3RhYmxlX2hlbHBlcl9hZGRfaW5kZXhlcyh0YWJsZV9pbmZvLApAQCAtNTMsNiArNzIsMTQgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRfdGFibGVfZGF0YSkpOwogfQogCit2b2lkCitzaHV0ZG93bl9tdGVFdmVudFRhYmxlKHZvaWQpCit7CisgICAgaWYgKHRhYmxlX2luZm8pIHsKKwluZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX2ZyZWUodGFibGVfaW5mbyk7CisJdGFibGVfaW5mbyA9IE5VTEw7CisgICAgfQorfQogCiAvKiogaGFuZGxlcyByZXF1ZXN0cyBmb3IgdGhlIG10ZUV2ZW50VGFibGUgdGFibGUgKi8KIGludApAQCAtMTExLDYgKzEzOCw4IEBACiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKKworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgLyoKICAgICAgICAgICogV3JpdGUtc3VwcG9ydAogICAgICAgICAgKi8KQEAgLTMzOCw2ICszNjcsOCBAQAogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKwogICAgIH0KICAgICBERUJVR01TR1RMKCgiZGlzbWFuOmV2ZW50Om1pYiIsICJUYWJsZSBoYW5kbGVyLCBkb25lXG4iKSk7CiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5oIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuaAppbmRleCBhN2Q3NTYwLi5hZGMxYzMwIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5oCisrKyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmgKQEAgLTksNiArOSw3IEBACiAgKiBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgCiAgKi8KIHZvaWQgICAgICAgICAgICBpbml0X210ZUV2ZW50VGFibGUodm9pZCk7Cit2b2lkICAgICAgICAgICAgc2h1dGRvd25fbXRlRXZlbnRUYWJsZSh2b2lkKTsKIE5ldHNubXBfTm9kZV9IYW5kbGVyIG10ZUV2ZW50VGFibGVfaGFuZGxlcjsKIAogLyoKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmMgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jCmluZGV4IDEyM2FmN2YuLmNmOTUwYzEgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuYwpAQCAtMjM2LDggKzIzNiw3IEBACiAgICAgICAgIHJldHVybjsgICAgICAgICAgICAgICAgIC8qIE5vdGhpbmcgdG8gcmVtb3ZlICovCiAgICAgZW50cnkgPSAoc3RydWN0IG10ZU9iamVjdCAqKQogICAgICAgICBuZXRzbm1wX3RkYXRhX3JlbW92ZV9hbmRfZGVsZXRlX3JvdyhvYmplY3RzX3RhYmxlX2RhdGEsIHJvdyk7Ci0gICAgaWYgKGVudHJ5KQotICAgICAgICBTTk1QX0ZSRUUoZW50cnkpOworICAgIFNOTVBfRlJFRShlbnRyeSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jCmluZGV4IDU4NDNmNTguLmY3ZjZlMDIgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMKQEAgLTcsMTEgKzcsMjEgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSAiZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuaCIKICNpbmNsdWRlICJkaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX3RkYXRhKQorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX3ZiX29pZCkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX3ZiX3RydXRodmFsdWUpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV90ZGF0YV9pbnNlcnRfcm93KQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworCitzdGF0aWMgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqdGFibGVfaW5mbzsKKwogLyoqIEluaXRpYWxpemVzIHRoZSBtdGVPYmplY3RzVGFibGUgbW9kdWxlICovCiB2b2lkCiBpbml0X210ZU9iamVjdHNUYWJsZSh2b2lkKQpAQCAtMjAsNyArMzAsNiBAQAogICAgIHN0YXRpYyBvaWQgbXRlT2JqZWN0c1RhYmxlX29pZFtdID0geyAxLCAzLCA2LCAxLCAyLCAxLCA4OCwgMSwgMywgMSB9OwogICAgIHNpemVfdCAgICAgbXRlT2JqZWN0c1RhYmxlX29pZF9sZW4gPSBPSURfTEVOR1RIKG10ZU9iamVjdHNUYWJsZV9vaWQpOwogICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gICAgKnJlZzsKLSAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICp0YWJsZV9pbmZvOwogCiAgICAgLyoKICAgICAgKiBFbnN1cmUgdGhlIG9iamVjdCB0YWJsZSBjb250YWluZXIgaXMgYXZhaWxhYmxlLi4uCkBAIC0zMCwxMSArMzksMTkgQEAKICAgICAvKgogICAgICAqIC4uLiB0aGVuIHNldCB1cCB0aGUgTUlCIGludGVyZmFjZSB0byB0aGlzIHRhYmxlCiAgICAgICovCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIHJlZyA9IG5ldHNubXBfY3JlYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uKCJtdGVPYmplY3RzVGFibGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVPYmplY3RzVGFibGVfaGFuZGxlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRlT2JqZWN0c1RhYmxlX29pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRlT2JqZWN0c1RhYmxlX29pZF9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JXUklURSk7CisjZWxzZSAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgcmVnID0gbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oIm10ZU9iamVjdHNUYWJsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10ZU9iamVjdHNUYWJsZV9oYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVPYmplY3RzVGFibGVfb2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVPYmplY3RzVGFibGVfb2lkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEFORExFUl9DQU5fUk9OTFkpOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgIHRhYmxlX2luZm8gPSBTTk1QX01BTExPQ19UWVBFREVGKG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8pOwogICAgIG5ldHNubXBfdGFibGVfaGVscGVyX2FkZF9pbmRleGVzKHRhYmxlX2luZm8sCkBAIC01MCw2ICs2NywxNSBAQAogICAgIG5ldHNubXBfdGRhdGFfcmVnaXN0ZXIocmVnLCBvYmplY3RzX3RhYmxlX2RhdGEsIHRhYmxlX2luZm8pOwogfQogCit2b2lkCitzaHV0ZG93bl9tdGVPYmplY3RzVGFibGUodm9pZCkKK3sKKyAgICBpZiAodGFibGVfaW5mbykgeworCW5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fZnJlZSh0YWJsZV9pbmZvKTsKKwl0YWJsZV9pbmZvID0gTlVMTDsKKyAgICB9Cit9CisKIAogLyoqIGhhbmRsZXMgcmVxdWVzdHMgZm9yIHRoZSBtdGVPYmplY3RzVGFibGUgdGFibGUgKi8KIGludApAQCAtMTA1LDYgKzEzMSw3IEBACiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgIC8qCiAgICAgICAgICAqIFdyaXRlLXN1cHBvcnQKICAgICAgICAgICovCkBAIC0zMTQsNiArMzQxLDcgQEAKICAgICAgICAgc25tcF9zdG9yZV9uZWVkZWQoTlVMTCk7CiAKICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLyAKICAgICB9CiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiB9CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmggYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmgKaW5kZXggMTRiZmIyNi4uZjVjZDdiYyAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5oCisrKyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuaApAQCAtOSw2ICs5LDcgQEAKICAqIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyAKICAqLwogdm9pZCAgICAgICAgICAgIGluaXRfbXRlT2JqZWN0c1RhYmxlKHZvaWQpOwordm9pZCAgICAgICAgICAgIHNodXRkb3duX210ZU9iamVjdHNUYWJsZSh2b2lkKTsKIE5ldHNubXBfTm9kZV9IYW5kbGVyIG10ZU9iamVjdHNUYWJsZV9oYW5kbGVyOwogCiAvKgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMKaW5kZXggY2Y1MWVkYi4uNWEwZGNiYSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYworKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jCkBAIC00LDExICs0LDE2IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgImRpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmgiCiAjaW5jbHVkZSAiZGlzbWFuL2V2ZW50L210ZUV2ZW50LmgiCiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihkaXNtYW5fZGVidWdnaW5nLCBsaWJuZXRzbm1wbWlicykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihtdGV0cmlnZ2VyLCBsaWJuZXRzbm1wbWlicykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihtdGV0cmlnZ2VyX3JlbW92ZWVudHJ5LCBtdGV0cmlnZ2VyKQorCiBuZXRzbm1wX3RkYXRhICp0cmlnZ2VyX3RhYmxlX2RhdGE7CiAKIG9pZCAgICBfc3lzVXBUaW1lX2luc3RhbmNlW10gPSB7IDEsIDMsIDYsIDEsIDIsIDEsIDEsIDMsIDAgfTsKQEAgLTUzLDYgKzU4LDcgQEAKICAgICAgKgogICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfRElTTUFOX0RFQlVHR0lORwogdm9pZAogX210ZVRyaWdnZXJfZHVtcCh2b2lkKQogewpAQCAtNzQsNyArODAsNyBAQAogICAgIH0KICAgICBERUJVR01TR1RMKCgiZGlzbWFuOmV2ZW50OmR1bXAiLCAiVHJpZ2dlclRhYmxlICVkIGVudHJpZXNcbiIsIGkpKTsKIH0KLQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfRElTTUFOX0RFQlVHR0lORyAqLwogCiAvKgogICogQ3JlYXRlIGEgbmV3IHJvdyBpbiB0aGUgdHJpZ2dlciB0YWJsZSAKQEAgLTE0Miw2ICsxNDgsNyBAQAogICAgIHJldHVybiByb3c7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9NVEVUUklHR0VSX1JFTU9WRUVOVFJZCiAvKgogICogUmVtb3ZlIGEgcm93IGZyb20gdGhlIHRyaWdnZXIgdGFibGUgCiAgKi8KQEAgLTE1OSw2ICsxNjYsNyBAQAogICAgICAgICBTTk1QX0ZSRUUoZW50cnkpOwogICAgIH0KIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX01URVRSSUdHRVJfUkVNT1ZFRU5UUlkgKi8KIAogICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICAqCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYwppbmRleCBhZDQ2OWQ3Li5lZDFlYzMwIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMKQEAgLTcsMTEgKzcsMTkgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSAiZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuaCIKICNpbmNsdWRlICJkaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV90ZGF0YSkKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja192Yl90eXBlX2FuZF9tYXhfc2l6ZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX3ZiX3RydXRodmFsdWUpCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisKK3N0YXRpYyBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICp0YWJsZV9pbmZvOwogCiAvKiogSW5pdGlhbGl6ZXMgdGhlIG10ZVRyaWdnZXJCb29sZWFuVGFibGUgbW9kdWxlICovCiB2b2lkCkBAIC0yMCw3ICsyOCw2IEBACiAgICAgc3RhdGljIG9pZCBtdGVUQm9vbFRhYmxlX29pZFtdICAgID0geyAxLCAzLCA2LCAxLCAyLCAxLCA4OCwgMSwgMiwgNSB9OwogICAgIHNpemVfdCAgICAgbXRlVEJvb2xUYWJsZV9vaWRfbGVuICA9IE9JRF9MRU5HVEgobXRlVEJvb2xUYWJsZV9vaWQpOwogICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gICAgKnJlZzsKLSAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICp0YWJsZV9pbmZvOwogCiAgICAgLyoKICAgICAgKiBFbnN1cmUgdGhlIChjb21iaW5lZCkgdGFibGUgY29udGFpbmVyIGlzIGF2YWlsYWJsZS4uLgpAQCAtMzAsMTEgKzM3LDE5IEBACiAgICAgLyoKICAgICAgKiAuLi4gdGhlbiBzZXQgdXAgdGhlIE1JQiBpbnRlcmZhY2UgdG8gdGhlIG10ZVRyaWdnZXJCb29sZWFuVGFibGUgc2xpY2UKICAgICAgKi8KKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgcmVnID0gbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oIm10ZVRyaWdnZXJCb29sZWFuVGFibGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlX2hhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10ZVRCb29sVGFibGVfb2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVUQm9vbFRhYmxlX29pZF9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JXUklURSk7CisjZWxzZSAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgcmVnID0gbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oIm10ZVRyaWdnZXJCb29sZWFuVGFibGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlX2hhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10ZVRCb29sVGFibGVfb2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVUQm9vbFRhYmxlX29pZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JXUklURSk7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAgICAgdGFibGVfaW5mbyA9IFNOTVBfTUFMTE9DX1RZUEVERUYobmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyk7CiAgICAgbmV0c25tcF90YWJsZV9oZWxwZXJfYWRkX2luZGV4ZXModGFibGVfaW5mbywKQEAgLTUxLDYgKzY2LDE0IEBACiAgICAgREVCVUdNU0dUTCgoImRpc21hbjpldmVudDppbml0IiwgIlRyaWdnZXIgQm9vbCBUYWJsZVxuIikpOwogfQogCit2b2lkCitzaHV0ZG93bl9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlKHZvaWQpCit7CisgICAgaWYgKHRhYmxlX2luZm8pIHsKKwluZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX2ZyZWUodGFibGVfaW5mbyk7CisJdGFibGVfaW5mbyA9IE5VTEw7CisgICAgfQorfQogCiAvKiogaGFuZGxlcyByZXF1ZXN0cyBmb3IgdGhlIG10ZVRyaWdnZXJCb29sZWFuVGFibGUgdGFibGUgKi8KIGludApAQCAtMTI4LDYgKzE1MSw3IEBACiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgIC8qCiAgICAgICAgICAqIFdyaXRlLXN1cHBvcnQKICAgICAgICAgICovCkBAIC0yODUsNiArMzA5LDcgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBicmVhazsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgfQogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuaCBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgKaW5kZXggZDJkMmRjYi4uZjJkZGQ3NyAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuaAorKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oCkBAIC05LDYgKzksNyBAQAogICogZnVuY3Rpb24gZGVjbGFyYXRpb25zIAogICovCiB2b2lkICAgICAgICAgICAgaW5pdF9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlKHZvaWQpOwordm9pZCAgICAgICAgICAgIHNodXRkb3duX210ZVRyaWdnZXJCb29sZWFuVGFibGUodm9pZCk7CiBOZXRzbm1wX05vZGVfSGFuZGxlciBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlX2hhbmRsZXI7CiAKIC8qCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jCmluZGV4IDNjZTkxMDYuLmU3YmI2OWIgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jCisrKyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jCkBAIC00LDYgKzQsNyBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaD4KQEAgLTE0LDYgKzE1LDcgQEAKIAogI2luY2x1ZGUgPGN0eXBlLmg+CiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGlxdWVyeSkKIAogLyoqIEluaXRpYWxpemVzIHRoZSBtdGVUcmlnZ2VyQ29uZiBtb2R1bGUgKi8KIHZvaWQKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMKaW5kZXggZTA5Mjk4Mi4uYzJjMmU4ZSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMKQEAgLTcsMTEgKzcsMTcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSAiZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuaCIKICNpbmNsdWRlICJkaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfdGRhdGEpCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfdmJfb2lkKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfdmJfdHJ1dGh2YWx1ZSkKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogLyoqIEluaXRpYWxpemVzIHRoZSBtdGVUcmlnZ2VyRGVsdGFUYWJsZSBtb2R1bGUgKi8KIHZvaWQKQEAgLTIxLDYgKzI3LDcgQEAKICAgICBzaXplX3QgICAgICBtdGVURGVsdGFUYWJsZV9vaWRfbGVuID0gT0lEX0xFTkdUSChtdGVURGVsdGFUYWJsZV9vaWQpOwogICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gICAgKnJlZzsKICAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICp0YWJsZV9pbmZvOworICAgIGludCAgICAgICAgIHJjOwogCiAgICAgLyoKICAgICAgKiBFbnN1cmUgdGhlIChjb21iaW5lZCkgdGFibGUgY29udGFpbmVyIGlzIGF2YWlsYWJsZS4uLgpAQCAtMzAsMTEgKzM3LDE5IEBACiAgICAgLyoKICAgICAgKiAuLi4gdGhlbiBzZXQgdXAgdGhlIE1JQiBpbnRlcmZhY2UgdG8gdGhlIG10ZVRyaWdnZXJEZWx0YVRhYmxlIHNsaWNlCiAgICAgICovCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIHJlZyA9IG5ldHNubXBfY3JlYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uKCJtdGVUcmlnZ2VyRGVsdGFUYWJsZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10ZVRyaWdnZXJEZWx0YVRhYmxlX2hhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10ZVREZWx0YVRhYmxlX29pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRlVERlbHRhVGFibGVfb2lkX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEFORExFUl9DQU5fUldSSVRFKTsKKyNlbHNlIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKyAgICByZWcgPSBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigibXRlVHJpZ2dlckRlbHRhVGFibGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVUcmlnZ2VyRGVsdGFUYWJsZV9oYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVURGVsdGFUYWJsZV9vaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10ZVREZWx0YVRhYmxlX29pZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JPTkxZKTsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICAgICB0YWJsZV9pbmZvID0gU05NUF9NQUxMT0NfVFlQRURFRihuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvKTsKICAgICBuZXRzbm1wX3RhYmxlX2hlbHBlcl9hZGRfaW5kZXhlcyh0YWJsZV9pbmZvLApAQCAtNDcsNyArNjIsMTAgQEAKICAgICB0YWJsZV9pbmZvLT5tYXhfY29sdW1uID0gQ09MVU1OX01URVRSSUdHRVJERUxUQURJU0NPTlRJTlVJVFlJRFRZUEU7CiAKICAgICAvKiBSZWdpc3RlciB0aGlzIHVzaW5nIHRoZSAoY29tbW9uKSB0cmlnZ2VyX3RhYmxlX2RhdGEgY29udGFpbmVyICovCi0gICAgbmV0c25tcF90ZGF0YV9yZWdpc3RlcihyZWcsIHRyaWdnZXJfdGFibGVfZGF0YSwgdGFibGVfaW5mbyk7CisgICAgcmMgPSBuZXRzbm1wX3RkYXRhX3JlZ2lzdGVyKHJlZywgdHJpZ2dlcl90YWJsZV9kYXRhLCB0YWJsZV9pbmZvKTsKKyAgICBpZiAocmMgIT0gU05NUEVSUl9TVUNDRVNTKQorICAgICAgICByZXR1cm47CisgICAgbmV0c25tcF9oYW5kbGVyX293bnNfdGFibGVfaW5mbyhyZWctPmhhbmRsZXItPm5leHQpOwogICAgIERFQlVHTVNHVEwoKCJkaXNtYW46ZXZlbnQ6aW5pdCIsICJUcmlnZ2VyIERlbHRhIFRhYmxlXG4iKSk7CiB9CiAKQEAgLTEwOSw2ICsxMjcsNyBAQAogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAvKgogICAgICAgICAgKiBXcml0ZS1zdXBwb3J0CiAgICAgICAgICAqLwpAQCAtMjQ4LDYgKzI2Nyw3IEBACiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgIH0KICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKIH0KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYwppbmRleCAyNTAyNmVlLi4yMmI2ODNlIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jCkBAIC03LDExICs3LDE4IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgImRpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmgiCiAjaW5jbHVkZSAiZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV90ZGF0YSkKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja192Yl90eXBlX2FuZF9tYXhfc2l6ZSkKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKworc3RhdGljIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm87CiAKIC8qIEluaXRpYWxpemVzIHRoZSBtdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUgbW9kdWxlICovCiB2b2lkCkBAIC0yMCw3ICsyNyw3IEBACiAgICAgc3RhdGljIG9pZCBtdGVURXhpc3RUYWJsZV9vaWRbXSAgID0geyAxLCAzLCA2LCAxLCAyLCAxLCA4OCwgMSwgMiwgNCB9OwogICAgIHNpemVfdCAgICAgbXRlVEV4aXN0VGFibGVfb2lkX2xlbiA9IE9JRF9MRU5HVEgobXRlVEV4aXN0VGFibGVfb2lkKTsKICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICAgICpyZWc7Ci0gICAgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqdGFibGVfaW5mbzsKKyAgICBpbnQgICAgICAgIHJjOwogCiAgICAgLyoKICAgICAgKiBFbnN1cmUgdGhlIChjb21iaW5lZCkgdGFibGUgY29udGFpbmVyIGlzIGF2YWlsYWJsZS4uLgpAQCAtMzAsMTEgKzM3LDE5IEBACiAgICAgLyoKICAgICAgKiAuLi4gdGhlbiBzZXQgdXAgdGhlIE1JQiBpbnRlcmZhY2UgdG8gdGhlIG10ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZSBzbGljZQogICAgICAqLworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICByZWcgPSBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigibXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlX2hhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10ZVRFeGlzdFRhYmxlX29pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRlVEV4aXN0VGFibGVfb2lkX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEFORExFUl9DQU5fUldSSVRFKTsKKyNlbHNlIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKyAgICByZWcgPSBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigibXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlX2hhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10ZVRFeGlzdFRhYmxlX29pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRlVEV4aXN0VGFibGVfb2lkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEFORExFUl9DQU5fUk9OTFkpOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgIHRhYmxlX2luZm8gPSBTTk1QX01BTExPQ19UWVBFREVGKG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8pOwogICAgIG5ldHNubXBfdGFibGVfaGVscGVyX2FkZF9pbmRleGVzKHRhYmxlX2luZm8sCkBAIC00Nyw3ICs2MiwxMSBAQAogICAgIHRhYmxlX2luZm8tPm1heF9jb2x1bW4gPSBDT0xVTU5fTVRFVFJJR0dFUkVYSVNURU5DRUVWRU5UOwogCiAgICAgLyogUmVnaXN0ZXIgdGhpcyB1c2luZyB0aGUgKGNvbW1vbikgdHJpZ2dlcl90YWJsZV9kYXRhIGNvbnRhaW5lciAqLwotICAgIG5ldHNubXBfdGRhdGFfcmVnaXN0ZXIocmVnLCB0cmlnZ2VyX3RhYmxlX2RhdGEsIHRhYmxlX2luZm8pOworICAgIHJjID0gbmV0c25tcF90ZGF0YV9yZWdpc3RlcihyZWcsIHRyaWdnZXJfdGFibGVfZGF0YSwgdGFibGVfaW5mbyk7CisgICAgaWYgKHJjICE9IFNOTVBFUlJfU1VDQ0VTUykKKyAgICAgICAgcmV0dXJuOworCisgICAgbmV0c25tcF9oYW5kbGVyX293bnNfdGFibGVfaW5mbyhyZWctPmhhbmRsZXItPm5leHQpOwogICAgIERFQlVHTVNHVEwoKCJkaXNtYW46ZXZlbnQ6aW5pdCIsICJUcmlnZ2VyIEV4aXN0IFRhYmxlXG4iKSk7CiB9CiAKQEAgLTEyMyw2ICsxNDIsNyBAQAogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAvKgogICAgICAgICAgKiBXcml0ZS1zdXBwb3J0CiAgICAgICAgICAqLwpAQCAtMjY0LDYgKzI4NCw3IEBACiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgIH0KICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKIH0KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYwppbmRleCAxNDVmMDc5Li44OGMyZjhiIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jCkBAIC03LDEyICs3LDI3IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSAidXRpbGl0aWVzL2lxdWVyeS5oIgogI2luY2x1ZGUgImRpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmgiCiAjaW5jbHVkZSAiZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShpcXVlcnkpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV90ZGF0YSkKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShpcXVlcnlfcGR1X3Nlc3Npb24pCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja192Yl90eXBlX2FuZF9tYXhfc2l6ZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX3ZiX29pZCkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX3ZiX3VpbnQpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShtdGV0cmlnZ2VyX3JlbW92ZWVudHJ5KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfdmJfdHJ1dGh2YWx1ZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX3RkYXRhX2luc2VydF9yb3cpCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisKK3N0YXRpYyBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICp0YWJsZV9pbmZvOwogCiAvKiogSW5pdGlhbGl6ZXMgdGhlIG10ZVRyaWdnZXJUYWJsZSBtb2R1bGUgKi8KIHZvaWQKQEAgLTIxLDcgKzM2LDYgQEAKICAgICBzdGF0aWMgb2lkICBtdGVUcmlnZ2VyVGFibGVfb2lkW10gICA9IHsgMSwgMywgNiwgMSwgMiwgMSwgODgsIDEsIDIsIDIgfTsKICAgICBzaXplX3QgICAgICBtdGVUcmlnZ2VyVGFibGVfb2lkX2xlbiA9IE9JRF9MRU5HVEgobXRlVHJpZ2dlclRhYmxlX29pZCk7CiAgICAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAgICAqcmVnOwotICAgIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm87CiAKICAgICAvKgogICAgICAqIEVuc3VyZSB0aGUgKGNvbWJpbmVkKSB0YWJsZSBjb250YWluZXIgaXMgYXZhaWxhYmxlLi4uCkBAIC0zMSwxMSArNDUsMTkgQEAKICAgICAvKgogICAgICAqIC4uLiB0aGVuIHNldCB1cCB0aGUgTUlCIGludGVyZmFjZSB0byB0aGUgbXRlVHJpZ2dlclRhYmxlIHNsaWNlCiAgICAgICovCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIHJlZyA9IG5ldHNubXBfY3JlYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uKCJtdGVUcmlnZ2VyVGFibGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVUcmlnZ2VyVGFibGVfaGFuZGxlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRlVHJpZ2dlclRhYmxlX29pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRlVHJpZ2dlclRhYmxlX29pZF9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JXUklURSk7CisjZWxzZSAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgcmVnID0gbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oIm10ZVRyaWdnZXJUYWJsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10ZVRyaWdnZXJUYWJsZV9oYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVUcmlnZ2VyVGFibGVfb2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVUcmlnZ2VyVGFibGVfb2lkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEFORExFUl9DQU5fUk9OTFkpOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgIHRhYmxlX2luZm8gPSBTTk1QX01BTExPQ19UWVBFREVGKG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8pOwogICAgIG5ldHNubXBfdGFibGVfaGVscGVyX2FkZF9pbmRleGVzKHRhYmxlX2luZm8sCkBAIC01Miw2ICs3NCwxNSBAQAogICAgIERFQlVHTVNHVEwoKCJkaXNtYW46ZXZlbnQ6aW5pdCIsICJUcmlnZ2VyIFRhYmxlXG4iKSk7CiB9CiAKK3ZvaWQKK3NodXRkb3duX210ZVRyaWdnZXJUYWJsZSh2b2lkKQoreworICAgIGlmICh0YWJsZV9pbmZvKSB7CisJbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19mcmVlKHRhYmxlX2luZm8pOworCXRhYmxlX2luZm8gPSBOVUxMOworICAgIH0KK30KKwogCiAvKiogaGFuZGxlcyByZXF1ZXN0cyBmb3IgdGhlIG10ZVRyaWdnZXJUYWJsZSB0YWJsZSAqLwogaW50CkBAIC0xNTIsNiArMTgzLDcgQEAKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgLyoKICAgICAgICAgICogV3JpdGUtc3VwcG9ydAogICAgICAgICAgKi8KQEAgLTQ2OCw2ICs1MDAsOSBAQAogICAgICAgICBzbm1wX3N0b3JlX25lZWRlZChOVUxMKTsKIAogICAgICAgICBicmVhazsKKworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKwogICAgIH0KICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKIH0KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuaCBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuaAppbmRleCBlMzgyNjEyLi5jNWMzOTNhIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5oCkBAIC0xMSw2ICsxMSw3IEBACiAgKiBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgCiAgKi8KIHZvaWQgICAgICAgICAgICBpbml0X210ZVRyaWdnZXJUYWJsZSh2b2lkKTsKK3ZvaWQgICAgICAgICAgICBzaHV0ZG93bl9tdGVUcmlnZ2VyVGFibGUodm9pZCk7CiBOZXRzbm1wX05vZGVfSGFuZGxlciBtdGVUcmlnZ2VyVGFibGVfaGFuZGxlcjsKIAogLyoKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYwppbmRleCAxZjY2NDllLi41YWVkMGM4IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jCkBAIC03LDExICs3LDE4IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgImRpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmgiCiAjaW5jbHVkZSAiZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV90ZGF0YSkKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja192Yl90eXBlX2FuZF9tYXhfc2l6ZSkKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKworc3RhdGljIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm87CiAKIC8qKiBJbml0aWFsaXplcyB0aGUgbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlIG1vZHVsZSAqLwogdm9pZApAQCAtMjAsNyArMjcsNiBAQAogICAgIHN0YXRpYyBvaWQgbXRlVFRocmVzaFRhYmxlX29pZFtdICAgPSB7IDEsIDMsIDYsIDEsIDIsIDEsIDg4LCAxLCAyLCA2IH07CiAgICAgc2l6ZV90ICAgICBtdGVUVGhyZXNoVGFibGVfb2lkX2xlbiA9IE9JRF9MRU5HVEgobXRlVFRocmVzaFRhYmxlX29pZCk7CiAgICAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAgICAqcmVnOwotICAgIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm87CiAKICAgICAvKgogICAgICAqIEVuc3VyZSB0aGUgKGNvbWJpbmVkKSB0YWJsZSBjb250YWluZXIgaXMgYXZhaWxhYmxlLi4uCkBAIC0zMCwxMSArMzYsMTkgQEAKICAgICAvKgogICAgICAqIC4uLiB0aGVuIHNldCB1cCB0aGUgTUlCIGludGVyZmFjZSB0byB0aGUgbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlIHNsaWNlCiAgICAgICovCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIHJlZyA9IG5ldHNubXBfY3JlYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uKCJtdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVUcmlnZ2VyVGhyZXNob2xkVGFibGVfaGFuZGxlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRlVFRocmVzaFRhYmxlX29pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRlVFRocmVzaFRhYmxlX29pZF9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JXUklURSk7CisjZWxzZSAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgcmVnID0gbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oIm10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZV9oYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVUVGhyZXNoVGFibGVfb2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVUVGhyZXNoVGFibGVfb2lkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEFORExFUl9DQU5fUk9OTFkpOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgIHRhYmxlX2luZm8gPSBTTk1QX01BTExPQ19UWVBFREVGKG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8pOwogICAgIG5ldHNubXBfdGFibGVfaGVscGVyX2FkZF9pbmRleGVzKHRhYmxlX2luZm8sCkBAIC01MSw2ICs2NSwxNSBAQAogICAgIERFQlVHTVNHVEwoKCJkaXNtYW46ZXZlbnQ6aW5pdCIsICJUcmlnZ2VyIFRocmVzaG9sZCBUYWJsZVxuIikpOwogfQogCit2b2lkCitzaHV0ZG93bl9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUodm9pZCkKK3sKKyAgICBpZiAodGFibGVfaW5mbykgeworCW5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fZnJlZSh0YWJsZV9pbmZvKTsKKwl0YWJsZV9pbmZvID0gTlVMTDsKKyAgICB9Cit9CisKIAogLyoqIGhhbmRsZXMgcmVxdWVzdHMgZm9yIHRoZSBtdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUgdGFibGUgKi8KIGludApAQCAtMTY1LDYgKzE4OCw3IEBACiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgIC8qCiAgICAgICAgICAqIFdyaXRlLXN1cHBvcnQKICAgICAgICAgICovCkBAIC0zNTgsNiArMzgyLDggQEAKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBicmVhazsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisKICAgICB9CiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiB9CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmggYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmgKaW5kZXggMjgyY2M2Ny4uODBmNWYyYSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oCisrKyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaApAQCAtOSw2ICs5LDcgQEAKICAqIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyAKICAqLwogdm9pZCAgICAgICAgICAgIGluaXRfbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlKHZvaWQpOwordm9pZCAgICAgICAgICAgIHNodXRkb3duX210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZSh2b2lkKTsKIE5ldHNubXBfTm9kZV9IYW5kbGVyIG10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZV9oYW5kbGVyOwogCiAvKgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXJyb3JUYWJsZS5jIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXJyb3JUYWJsZS5jCmluZGV4IGRiYzIyMTcuLmE3NTllMmQgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEVycm9yVGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFcnJvclRhYmxlLmMKQEAgLTcsMTEgKzcsMTQgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSAiZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbi5oIgogI2luY2x1ZGUgImRpc21hbi9leHByL2V4cEVycm9yVGFibGUuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfdGRhdGEpCisKIC8qIEluaXRpYWxpemVzIHRoZSBleHBFeHByZXNzaW9uRXJyb3JUYWJsZSBtb2R1bGUgKi8KIHZvaWQKIGluaXRfZXhwRXJyb3JUYWJsZSh2b2lkKQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbkNvbmYuYyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25Db25mLmMKaW5kZXggNTE4ZGQ4OC4uODI2ZDY3OSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbkNvbmYuYworKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uQ29uZi5jCkBAIC00LDYgKzQsNyBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KIApAQCAtMTQsNiArMTUsOCBAQAogI2luY2x1ZGUgImRpc21hbi9leHByL2V4cE9iamVjdC5oIgogI2luY2x1ZGUgImRpc21hbi9leHByL2V4cEV4cHJlc3Npb25Db25mLmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGlxdWVyeSkKKwogLyogSW5pdGlhbGl6ZXMgdGhlIGV4cEV4cHJlc3Npb25Db25mIG1vZHVsZSAqLwogdm9pZAogaW5pdF9leHBFeHByZXNzaW9uQ29uZih2b2lkKQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmMgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYwppbmRleCA5MDZiNWU1Li43OWFhNzE1IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYwpAQCAtNywxMiArNywyMSBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KICNpbmNsdWRlICJ1dGlsaXRpZXMvaXF1ZXJ5LmgiCiAjaW5jbHVkZSAiZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbi5oIgogI2luY2x1ZGUgImRpc21hbi9leHByL2V4cEV4cHJlc3Npb25UYWJsZS5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShpcXVlcnkpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV90ZGF0YSkKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja192Yl90eXBlX2FuZF9tYXhfc2l6ZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX3RkYXRhX2luc2VydF9yb3cpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShpcXVlcnlfcGR1X3Nlc3Npb24pCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisKIC8qIEluaXRpYWxpemVzIHRoZSBleHBFeHByZXNzaW9uVGFibGUgbW9kdWxlICovCiB2b2lkCiBpbml0X2V4cEV4cHJlc3Npb25UYWJsZSh2b2lkKQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0Q29uZi5jIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0Q29uZi5jCmluZGV4IGM3NWM5MzQuLjY0MDY5ZDkgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdENvbmYuYworKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmMKQEAgLTQsMTIgKzQsMTUgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSAidXRpbGl0aWVzL2lxdWVyeS5oIgogI2luY2x1ZGUgImRpc21hbi9leHByL2V4cE9iamVjdC5oIgogI2luY2x1ZGUgImRpc21hbi9leHByL2V4cE9iamVjdENvbmYuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaXF1ZXJ5KQorCiAvKiBJbml0aWFsaXplcyB0aGUgZXhwT2JqZWN0Q29uZiBtb2R1bGUgKi8KIHZvaWQKIGluaXRfZXhwT2JqZWN0Q29uZih2b2lkKQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0VGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdFRhYmxlLmMKaW5kZXggOWM0OWMwZC4uYWRkYTQzOCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0VGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RUYWJsZS5jCkBAIC03LDExICs3LDE4IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgImRpc21hbi9leHByL2V4cE9iamVjdC5oIgogI2luY2x1ZGUgImRpc21hbi9leHByL2V4cE9iamVjdFRhYmxlLmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX3RkYXRhKQorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX3ZiX29pZCkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX3ZiX3RydXRodmFsdWUpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV90ZGF0YV9pbnNlcnRfcm93KQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAvKiBJbml0aWFsaXplcyB0aGUgZXhwT2JqZWN0VGFibGUgbW9kdWxlICovCiB2b2lkCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFcnJvclRhYmxlLmMgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFcnJvclRhYmxlLmMKaW5kZXggYzYwNWU5YS4uMWZlYjNlZSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXJyb3JUYWJsZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuYwpAQCAtMTM5LDQgKzEzOSw2IEBACiAgICAgICAgICp2YXJfbGVuID0gU3RvcmFnZVRtcC0+ZXhwRXJyb3JJbnN0YW5jZUxlbiAqIHNpemVvZihvaWQpOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSBTdG9yYWdlVG1wLT5leHBFcnJvckluc3RhbmNlOwogICAgIH0KKworICAgIHJldHVybiBOVUxMOwogfQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYwppbmRleCA1YWFiOTUyLi4yMTI5NTJkIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYwpAQCAtMjEsNiArMjEsNyBAQAogICogVGhpcyBzaG91bGQgYWx3YXlzIGJlIGluY2x1ZGVkIGZpcnN0IGJlZm9yZSBhbnl0aGluZyBlbHNlIAogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpZiBIQVZFX1NURExJQl9ICiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjZW5kaWYKQEAgLTQ1LDYgKzQ2LDEwIEBACiAjaW5jbHVkZSAiZXhwT2JqZWN0VGFibGUuaCIKICNpbmNsdWRlICJleHBWYWx1ZVRhYmxlLmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRkb21haW5fc3VwcG9ydCkKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShoZWFkZXJfY29tcGxleF9maW5kX2VudHJ5KQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAvKgogICogZXhwRXhwcmVzc2lvblRhYmxlX3ZhcmlhYmxlc19vaWQ6CkBAIC0zMTgsOSArMzIzLDcgQEAKICAgICBjaGFyICAgICAgICAgICAqY3B0cjsKICAgICBzaXplX3QgICAgICAgICAgdG1waW50OwogICAgIHN0cnVjdCBleHBFeHByZXNzaW9uVGFibGVfZGF0YSAqU3RvcmFnZVRtcDsKLSAgICBzdHJ1Y3QgZXhwT2JqZWN0VGFibGVfZGF0YSAqT2JqZWN0U3RvcmFnZVRtcDsKLSAgICBzdHJ1Y3QgZXhwVmFsdWVUYWJsZV9kYXRhICpWYWx1ZVN0b3JhZ2VUbXA7Ci0gICAgc3RydWN0IGhlYWRlcl9jb21wbGV4X2luZGV4ICpoY2luZGV4LCAqaGNfb2JqZWN0LCAqaGNfdmFsdWU7CisgICAgc3RydWN0IGhlYWRlcl9jb21wbGV4X2luZGV4ICpoY2luZGV4OwogCiAgICAgREVCVUdNU0dUTCgoImV4cEV4cHJlc3Npb25UYWJsZSIsICJzdG9yaW5nIGRhdGEuLi4gICIpKTsKIApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmMKaW5kZXggZmNhZGZlNy4uZTA1N2Y1NiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBPYmplY3RUYWJsZS5jCkBAIC0yMiw2ICsyMiw3IEBACiAgKiBUaGlzIHNob3VsZCBhbHdheXMgYmUgaW5jbHVkZWQgZmlyc3QgYmVmb3JlIGFueXRoaW5nIGVsc2UgCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2lmIEhBVkVfU1RETElCX0gKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNlbmRpZgpAQCAtMzQsNiArMzUsOSBAQAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2VuZGlmCiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShoZWFkZXJfY29tcGxleF9maW5kX2VudHJ5KQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAvKgogICogbWluaW1hbCBpbmNsdWRlIGRpcmVjdGl2ZXMgCkBAIC0yMTYsNyArMjIwLDYgQEAKIHBhcnNlX2V4cE9iamVjdFRhYmxlKGNvbnN0IGNoYXIgKnRva2VuLCBjaGFyICpsaW5lKQogewogICAgIHNpemVfdCAgICAgICAgICB0bXBpbnQ7Ci0gICAgb2lkICAgICAgICAgICAgKnRtcG9pZCA9IE5VTEw7CiAgICAgc3RydWN0IGV4cE9iamVjdFRhYmxlX2RhdGEgKlN0b3JhZ2VUbXAgPQogICAgICAgICBTTk1QX01BTExPQ19TVFJVQ1QoZXhwT2JqZWN0VGFibGVfZGF0YSk7CiAKQEAgLTQwMyw2ICs0MDYsNyBAQAogICAgICAgICB9CiAgICAgfQogICAgIERFQlVHTVNHVEwoKCJleHBPYmplY3RUYWJsZSIsICJzdG9yYWdlIGRvbmVcbiIpKTsKKyAgICByZXR1cm4gMDsKIH0KIAogCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBWYWx1ZVRhYmxlLmMgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBWYWx1ZVRhYmxlLmMKaW5kZXggZDNjMDI5NS4uNmIzMTVjNiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwVmFsdWVUYWJsZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuYwpAQCAtMjQ1LDcgKzI0NSw2IEBACiAgICAgY2hhciAgICAgICAgICAgKnJlc3VsdCwgKnJlc3VsdGJhazsKICAgICBjaGFyICAgICAgICAgICAqdGVtcCwgKnRlbXBiYWs7CiAgICAgY2hhciAgICAgICAgICAgIGludGNoYXJbMTBdOwotICAgIGludCAgICAgICAgICAgICBkb2xsYXIxLCBkb2xsYXIyOwogICAgIGludCAgICAgICAgICAgICBpID0gMCwgaiwgaywgbDsKICAgICBsb25nICAgICAgICAgICAgdmFsdWU7CiAgICAgdW5zaWduZWQgbG9uZyAgIHJlc3VsdF91X2xvbmc7CkBAIC0zMjIsNyArMzIxLDYgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHN0cnVjdCB2YXJpYWJsZV9saXN0ICp2YXJzOwogICAgICAgICAgICAgaW50ICAgICAgICAgICAgIHN0YXR1czsKLSAgICAgICAgICAgIGludCAgICAgICAgICAgICBjb3VudCA9IDE7CiAKICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgKiBJbml0aWFsaXplIHRoZSBTTk1QIGxpYnJhcnkKQEAgLTM2OSw3ICszNjcsNyBAQAogCiAgICAgICAgICAgICAgICAgdmFycyA9IHJlc3BvbnNlLT52YXJpYWJsZXM7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSAqKHZhcnMtPnZhbC5pbnRlZ2VyKTsKLSAgICAgICAgICAgICAgICBzcHJpbnRmKGludGNoYXIsICIldSIsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICBzcHJpbnRmKGludGNoYXIsICIlbHUiLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgZm9yIChrID0gMTsgayA8PSBzdHJsZW4oaW50Y2hhcik7IGsrKykgewogICAgICAgICAgICAgICAgICAgICAqcmVzdWx0ID0gaW50Y2hhcltrIC0gMV07CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCsrOwpAQCAtNDMzLDE1ICs0MzEsMTEgQEAKIAogCiB2b2lkCi1idWlsZF92YWx1ZXRhYmxlKCkKK2J1aWxkX3ZhbHVldGFibGUodm9pZCkKIHsKICAgICBzdHJ1Y3QgZXhwRXhwcmVzc2lvblRhYmxlX2RhdGEgKmV4cHN0b3JhZ2U7CiAgICAgc3RydWN0IGV4cE9iamVjdFRhYmxlX2RhdGEgKm9ianN0b3JhZ2UsICpvYmpmb3VuZCA9IE5VTEw7CiAgICAgc3RydWN0IGhlYWRlcl9jb21wbGV4X2luZGV4ICpoY2luZGV4LCAqb2JqZWN0X2hjaW5kZXg7Ci0gICAgY2hhciAgICAgICAgICAgKm93bmVyOwotICAgIHNpemVfdCAgICAgICAgICBvd25lcl9sZW47Ci0gICAgY2hhciAgICAgICAgICAgKm5hbWU7Ci0gICAgc2l6ZV90ICAgICAgICAgIG5hbWVfbGVuOwogICAgIGNoYXIgICAgICAgICAgICpleHByZXNzaW9uOwogICAgIG9pZCAgICAgICAgICAgICppbmRleDsKICAgICBpbnQgICAgICAgICAgICAgaSA9IDAsIGosIGw7CkBAIC01MjUsOSArNTE5LDcgQEAKICAgICAgICAgICAgIG9pZCAgICAgICAgICAgICpuZXh0X09JRDsKICAgICAgICAgICAgIHNpemVfdCAgICAgICAgICBuZXh0X09JRF9sZW47CiAgICAgICAgICAgICB0YWdnZXRPSURfbGVuID0gb2JqZm91bmQtPmV4cE9iamVjdElETGVuOwotICAgICAgICAgICAgc3RydWN0IHZhcmlhYmxlX2xpc3QgKnZhcnM7CiAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgc3RhdHVzOwotICAgICAgICAgICAgaW50ICAgICAgICAgICAgIGNvdW50ID0gMTsKICAgICAgICAgICAgIHN0cnVjdCBzbm1wX3Nlc3Npb24gKnNzOwogICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAqIEluaXRpYWxpemUgdGhlIFNOTVAgbGlicmFyeQpAQCAtNjM5LDEyICs2MzEsNyBAQAogICAgICAgICAgICAgICAgICAgaW50IGV4YWN0LCBzaXplX3QgKnZhcl9sZW4sIFdyaXRlTWV0aG9kICoqIHdyaXRlX21ldGhvZCkKIHsKIAotICAgIHN0YXRpYyBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhcnM7Ci0gICAgc2l6ZV90ICAgICAgICAgIG5ld2xlbiA9Ci0gICAgICAgICpsZW5ndGggLSAoc2l6ZW9mKGV4cFZhbHVlVGFibGVfdmFyaWFibGVzX29pZCkgLyBzaXplb2Yob2lkKSArCi0gICAgICAgICAgICAgICAgICAgMyAtIDEpOwogICAgIHN0cnVjdCBleHBWYWx1ZVRhYmxlX2RhdGEgKlN0b3JhZ2VUbXAgPSBOVUxMOwotICAgIHVuc2lnbmVkIGludCAgICBjb3VudGVyMzI7CiAKIAogCkBAIC03MTksNiArNzA2LDcgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgZGVmYXVsdDoKICAgICAgICAgRVJST1JfTVNHKCIiKTsKKwlyZXR1cm4gTlVMTDsKICAgICB9CiB9CiAKQEAgLTc4OCw2ICs3NzYsNyBAQAogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJldHVybiAoYSAvIGIpOwogICAgIH0KKyAgICByZXR1cm4gMDsKIH0KIAogdW5zaWduZWQgbG9uZwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMKaW5kZXggM2UwNzg2Zi4uNDhhZGQ2OCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jCkBAIC00LDEwICs0LDE0IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgIm10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfZGF0YXNldCkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX3NldF9tdWx0aV9hZGRfZGVmYXVsdF9yb3cpCisKIG5ldHNubXBfdGFibGVfZGF0YV9zZXQgKm10ZUV2ZW50Tm90aWZfdGFibGVfc2V0OwogCiAKQEAgLTYxLDEyICs2NSwyMSBAQAogICAgICAqIG5vdGU6IGlmIHlvdSBkb24ndCBuZWVkIGEgc3ViaGFuZGxlciB0byBkZWFsIHdpdGggYW55IGFzcGVjdHMKICAgICAgKiBvZiB0aGUgcmVxdWVzdCwgY2hhbmdlIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGVfaGFuZGxlciB0byAiTlVMTCIgCiAgICAgICovCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfZGF0YV9zZXQobmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgibXRlRXZlbnROb3RpZmljYXRpb25UYWJsZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZV9oYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGVfb2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGVfb2lkX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQU5ETEVSX0NBTl9SV1JJVEUpLCBtdGVFdmVudE5vdGlmX3RhYmxlX3NldCwgTlVMTCk7CisjZWxzZSAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9kYXRhX3NldChuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlX2hhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZV9vaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZV9vaWRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JPTkxZKSwgbXRlRXZlbnROb3RpZl90YWJsZV9zZXQsIE5VTEwpOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIH0KIAogLyoqIEluaXRpYWxpemVzIHRoZSBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlIG1vZHVsZSAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMKaW5kZXggYjRiZDdhMS4uMjJiYWQ3MyAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jCkBAIC00LDYgKzQsNyBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KICNpbmNsdWRlICJtdGVUcmlnZ2VyVGFibGUuaCIKQEAgLTExLDYgKzEyLDkgQEAKICNpbmNsdWRlICJtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgiCiAjaW5jbHVkZSAibXRlT2JqZWN0c1RhYmxlLmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX2RhdGFzZXQpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV9zZXRfbXVsdGlfYWRkX2RlZmF1bHRfcm93KQorCiBzdGF0aWMgbmV0c25tcF90YWJsZV9kYXRhX3NldCAqdGFibGVfc2V0ID0gTlVMTDsKIAogLyoqIEluaXRpYWxpemUgdGhlIG10ZUV2ZW50VGFibGUgdGFibGUgYnkgZGVmaW5pbmcgaXRzIGNvbnRlbnRzIGFuZCBob3cgaXQncyBzdHJ1Y3R1cmVkICovCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMKaW5kZXggNzdkYmUxMC4uMDljZWIyYSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYwpAQCAtOCw2ICs4LDcgQEAKICAqIFRoaXMgc2hvdWxkIGFsd2F5cyBiZSBpbmNsdWRlZCBmaXJzdCBiZWZvcmUgYW55dGhpbmcgZWxzZSAKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaWYgSEFWRV9TVERMSUJfSAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2VuZGlmCkBAIC0xNyw2ICsxOCw5IEBACiAjaW5jbHVkZSA8c3RyaW5ncy5oPgogI2VuZGlmCiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShoZWFkZXJfY29tcGxleF9maW5kX2VudHJ5KQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAvKgogICogbWluaW1hbCBpbmNsdWRlIGRpcmVjdGl2ZXMgCkBAIC00OCw2ICs1Miw3IEBACiAgKi8KIAogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogc3RydWN0IHZhcmlhYmxlMiBtdGVPYmplY3RzVGFibGVfdmFyaWFibGVzW10gPSB7CiAgICAgLyoKICAgICAgKiBtYWdpYyBudW1iZXIgICAgICAgICwgdmFyaWFibGUgdHlwZSAsIHJvL3J3ICwgY2FsbGJhY2sgZm4gICwgTCwgb2lkc3VmZml4IApAQCAtNjMsNiArNjgsMjQgQEAKICAgICAgdmFyX210ZU9iamVjdHNUYWJsZSwgMiwgezEsIDV9fSwKIAogfTsKKyNlbHNlIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KK3N0cnVjdCB2YXJpYWJsZTIgbXRlT2JqZWN0c1RhYmxlX3ZhcmlhYmxlc1tdID0geworICAgIC8qCisgICAgICogbWFnaWMgbnVtYmVyICAgICAgICAsIHZhcmlhYmxlIHR5cGUgLCByby9ydyAsIGNhbGxiYWNrIGZuICAsIEwsIG9pZHN1ZmZpeCAKKyAgICAgKi8KKyNkZWZpbmUgICBNVEVPQkpFQ1RTSUQgICAgICAgICAgNQorICAgIHtNVEVPQkpFQ1RTSUQsIEFTTl9PQkpFQ1RfSUQsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfbXRlT2JqZWN0c1RhYmxlLCAyLCB7MSwgM319LAorI2RlZmluZSAgIE1URU9CSkVDVFNJRFdJTERDQVJEICA2CisgICAge01URU9CSkVDVFNJRFdJTERDQVJELCBBU05fSU5URUdFUiwgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9tdGVPYmplY3RzVGFibGUsIDIsIHsxLCA0fX0sCisjZGVmaW5lICAgTVRFT0JKRUNUU0VOVFJZU1RBVFVTICA3CisgICAge01URU9CSkVDVFNFTlRSWVNUQVRVUywgQVNOX0lOVEVHRVIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfbXRlT2JqZWN0c1RhYmxlLCAyLCB7MSwgNX19LAorCit9OworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKwogLyoKICAqIChMID0gbGVuZ3RoIG9mIHRoZSBvaWRzdWZmaXgpIAogICovCkBAIC0zMDIsNiArMzI1LDEwIEBACiAKICAgICBERUJVR01TR1RMKCgibXRlT2JqZWN0c1RhYmxlIiwKICAgICAgICAgICAgICAgICAidmFyX210ZU9iamVjdHNUYWJsZTogRW50ZXJpbmcuLi4gIFxuIikpOworCisJLyogc2V0IGRlZmF1bHQgdmFsdWUgKi8KKwkqd3JpdGVfbWV0aG9kID0gTlVMTDsKKwogICAgIC8qCiAgICAgICogdGhpcyBhc3N1bWVzIHlvdSBoYXZlIHJlZ2lzdGVyZWQgYWxsIHlvdXIgZGF0YSBwcm9wZXJseQogICAgICAqLwpAQCAtMzIwLDE3ICszNDcsMjMgQEAKIAogCiAgICAgY2FzZSBNVEVPQkpFQ1RTSUQ6CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAqd3JpdGVfbWV0aG9kID0gd3JpdGVfbXRlT2JqZWN0c0lEOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSAoU3RvcmFnZVRtcC0+bXRlT2JqZWN0c0lETGVuKSAqIHNpemVvZihvaWQpOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSBTdG9yYWdlVG1wLT5tdGVPYmplY3RzSUQ7CiAKICAgICBjYXNlIE1URU9CSkVDVFNJRFdJTERDQVJEOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZU9iamVjdHNJRFdpbGRjYXJkOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBzaXplb2YoU3RvcmFnZVRtcC0+bXRlT2JqZWN0c0lEV2lsZGNhcmQpOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSAmIFN0b3JhZ2VUbXAtPm10ZU9iamVjdHNJRFdpbGRjYXJkOwogCiAgICAgY2FzZSBNVEVPQkpFQ1RTRU5UUllTVEFUVVM6CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAqd3JpdGVfbWV0aG9kID0gd3JpdGVfbXRlT2JqZWN0c0VudHJ5U3RhdHVzOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBzaXplb2YoU3RvcmFnZVRtcC0+bXRlT2JqZWN0c0VudHJ5U3RhdHVzKTsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgJiBTdG9yYWdlVG1wLT5tdGVPYmplY3RzRW50cnlTdGF0dXM7CiAKQEAgLTM0Myw2ICszNzYsNyBAQAogCiAKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKIAogaW50CiB3cml0ZV9tdGVPYmplY3RzSUQoaW50IGFjdGlvbiwKQEAgLTc4OCw2ICs4MjIsOSBAQAogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQogCisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworCisKIHZvaWQKIG10ZV9hZGRfb2JqZWN0cyhuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKiB2YXJzLAogICAgICAgICAgICAgICAgIHN0cnVjdCBtdGVUcmlnZ2VyVGFibGVfZGF0YSAqaXRlbSwgY29uc3QgY2hhciAqb3duZXIsCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmggYi9hZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmgKaW5kZXggZDNjM2M1MC4uNGQ0NGM4NyAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5oCisrKyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaApAQCAtNTksMTEgKzU5LDEyIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvaWQgKiBvaWRuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG9pZG5hbWVfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlzd2lsZCk7CisKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9tdGVPYmplY3RzSUQ7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9tdGVPYmplY3RzSURXaWxkY2FyZDsKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX210ZU9iamVjdHNFbnRyeVN0YXR1czsKLQotICAgICBXcml0ZU1ldGhvZCAgICAgd3JpdGVfbXRlT2JqZWN0c0VudHJ5U3RhdHVzOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogCiAKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jCmluZGV4IGZiYTQ5ODAuLjViMTc5MjcgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYwpAQCAtNDgsNiArNDgsNyBAQAogICovCiAKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKIHN0cnVjdCB2YXJpYWJsZTIgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZV92YXJpYWJsZXNbXSA9IHsKICAgICAvKgogICAgICAqIG1hZ2ljIG51bWJlciAgICAgICAgLCB2YXJpYWJsZSB0eXBlICwgcm8vcncgLCBjYWxsYmFjayBmbiAgLCBMLCBvaWRzdWZmaXggCkBAIC03Myw4ICs3NCwzNiBAQAogI2RlZmluZSAgIE1URVRSSUdHRVJCT09MRUFORVZFTlQgIDkKICAgICB7TVRFVFJJR0dFUkJPT0xFQU5FVkVOVCwgQVNOX09DVEVUX1NUUiwgTkVUU05NUF9PTERBUElfUldSSVRFLAogICAgICB2YXJfbXRlVHJpZ2dlckJvb2xlYW5UYWJsZSwgMiwgezEsIDd9fSwKLQogfTsKKyNlbHNlIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KK3N0cnVjdCB2YXJpYWJsZTIgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZV92YXJpYWJsZXNbXSA9IHsKKyAgICAvKgorICAgICAqIG1hZ2ljIG51bWJlciAgICAgICAgLCB2YXJpYWJsZSB0eXBlICwgcm8vcncgLCBjYWxsYmFjayBmbiAgLCBMLCBvaWRzdWZmaXggCisgICAgICovCisjZGVmaW5lICAgTVRFVFJJR0dFUkJPT0xFQU5DT01QQVJJU09OICAzCisgICAge01URVRSSUdHRVJCT09MRUFOQ09NUEFSSVNPTiwgQVNOX0lOVEVHRVIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfbXRlVHJpZ2dlckJvb2xlYW5UYWJsZSwgMiwgezEsIDF9fSwKKyNkZWZpbmUgICBNVEVUUklHR0VSQk9PTEVBTlZBTFVFICA0CisgICAge01URVRSSUdHRVJCT09MRUFOVkFMVUUsIEFTTl9JTlRFR0VSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJCb29sZWFuVGFibGUsIDIsIHsxLCAyfX0sCisjZGVmaW5lICAgTVRFVFJJR0dFUkJPT0xFQU5TVEFSVFVQICA1CisgICAge01URVRSSUdHRVJCT09MRUFOU1RBUlRVUCwgQVNOX0lOVEVHRVIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfbXRlVHJpZ2dlckJvb2xlYW5UYWJsZSwgMiwgezEsIDN9fSwKKyNkZWZpbmUgICBNVEVUUklHR0VSQk9PTEVBTk9CSkVDVFNPV05FUiAgNgorICAgIHtNVEVUUklHR0VSQk9PTEVBTk9CSkVDVFNPV05FUiwgQVNOX09DVEVUX1NUUiwgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLCAyLCB7MSwgNH19LAorI2RlZmluZSAgIE1URVRSSUdHRVJCT09MRUFOT0JKRUNUUyAgNworICAgIHtNVEVUUklHR0VSQk9PTEVBTk9CSkVDVFMsIEFTTl9PQ1RFVF9TVFIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfbXRlVHJpZ2dlckJvb2xlYW5UYWJsZSwgMiwgezEsIDV9fSwKKyNkZWZpbmUgICBNVEVUUklHR0VSQk9PTEVBTkVWRU5UT1dORVIgIDgKKyAgICB7TVRFVFJJR0dFUkJPT0xFQU5FVkVOVE9XTkVSLCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJCb29sZWFuVGFibGUsIDIsIHsxLCA2fX0sCisjZGVmaW5lICAgTVRFVFJJR0dFUkJPT0xFQU5FVkVOVCAgOQorICAgIHtNVEVUUklHR0VSQk9PTEVBTkVWRU5ULCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJCb29sZWFuVGFibGUsIDIsIHsxLCA3fX0sCit9OworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKwogLyoKICAqIChMID0gbGVuZ3RoIG9mIHRoZSBvaWRzdWZmaXgpIAogICovCkBAIC0xMjYsNiArMTU1LDEwIEBACiAKICAgICBERUJVR01TR1RMKCgibXRlVHJpZ2dlckJvb2xlYW5UYWJsZSIsCiAgICAgICAgICAgICAgICAgInZhcl9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlOiBFbnRlcmluZy4uLiAgXG4iKSk7CisKKwkvKiBzZXQgZGVmYXVsdCB2YWx1ZSAqLworCSp3cml0ZV9tZXRob2QgPSBOVUxMOworCiAgICAgLyoKICAgICAgKiB0aGlzIGFzc3VtZXMgeW91IGhhdmUgcmVnaXN0ZXJlZCBhbGwgeW91ciBkYXRhIHByb3Blcmx5CiAgICAgICovCkBAIC0xNDQsMzcgKzE3Nyw1MSBAQAogCiAKICAgICBjYXNlIE1URVRSSUdHRVJCT09MRUFOQ09NUEFSSVNPTjoKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgICp3cml0ZV9tZXRob2QgPSB3cml0ZV9tdGVUcmlnZ2VyQm9vbGVhbkNvbXBhcmlzb247CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAqdmFyX2xlbiA9IHNpemVvZihTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyQm9vbGVhbkNvbXBhcmlzb24pOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSAmIFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJCb29sZWFuQ29tcGFyaXNvbjsKIAogICAgIGNhc2UgTVRFVFJJR0dFUkJPT0xFQU5WQUxVRToKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgICp3cml0ZV9tZXRob2QgPSB3cml0ZV9tdGVUcmlnZ2VyQm9vbGVhblZhbHVlOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBzaXplb2YoU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckJvb2xlYW5WYWx1ZSk7CiAgICAgICAgIHJldHVybiAodV9jaGFyICopICYgU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckJvb2xlYW5WYWx1ZTsKIAogICAgIGNhc2UgTVRFVFJJR0dFUkJPT0xFQU5TVEFSVFVQOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJCb29sZWFuU3RhcnR1cDsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICp2YXJfbGVuID0gc2l6ZW9mKFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJCb29sZWFuU3RhcnR1cCk7CiAgICAgICAgIHJldHVybiAodV9jaGFyICopICYgU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckJvb2xlYW5TdGFydHVwOwogCiAgICAgY2FzZSBNVEVUUklHR0VSQk9PTEVBTk9CSkVDVFNPV05FUjoKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgICp3cml0ZV9tZXRob2QgPSB3cml0ZV9tdGVUcmlnZ2VyQm9vbGVhbk9iamVjdHNPd25lcjsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICp2YXJfbGVuID0gU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckJvb2xlYW5PYmplY3RzT3duZXJMZW47CiAgICAgICAgIHJldHVybiAodV9jaGFyICopIFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJCb29sZWFuT2JqZWN0c093bmVyOwogCiAgICAgY2FzZSBNVEVUUklHR0VSQk9PTEVBTk9CSkVDVFM6CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAqd3JpdGVfbWV0aG9kID0gd3JpdGVfbXRlVHJpZ2dlckJvb2xlYW5PYmplY3RzOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyQm9vbGVhbk9iamVjdHNMZW47CiAgICAgICAgIHJldHVybiAodV9jaGFyICopIFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJCb29sZWFuT2JqZWN0czsKIAogICAgIGNhc2UgTVRFVFJJR0dFUkJPT0xFQU5FVkVOVE9XTkVSOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJCb29sZWFuRXZlbnRPd25lcjsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICp2YXJfbGVuID0gU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckJvb2xlYW5FdmVudE93bmVyTGVuOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyQm9vbGVhbkV2ZW50T3duZXI7CiAKICAgICBjYXNlIE1URVRSSUdHRVJCT09MRUFORVZFTlQ6CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAqd3JpdGVfbWV0aG9kID0gd3JpdGVfbXRlVHJpZ2dlckJvb2xlYW5FdmVudDsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICp2YXJfbGVuID0gU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckJvb2xlYW5FdmVudExlbjsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckJvb2xlYW5FdmVudDsKIApAQCAtMTg3LDYgKzIzNCw3IEBACiAKIAogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogCiBpbnQKIHdyaXRlX210ZVRyaWdnZXJCb29sZWFuQ29tcGFyaXNvbihpbnQgYWN0aW9uLApAQCAtODAwLDMgKzg0OCw1IEBACiAgICAgfQogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQorCisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuaCBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgKaW5kZXggZjY4NTU4Ni4uNjQxM2RhNSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuaAorKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oCkBAIC0zMSw2ICszMSw3IEBACiAgICAgIHZvaWQgICAgICAgICAgICBpbml0X210ZVRyaWdnZXJCb29sZWFuVGFibGUodm9pZCk7CiAgICAgIEZpbmRWYXJNZXRob2QgICB2YXJfbXRlVHJpZ2dlckJvb2xlYW5UYWJsZTsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX210ZVRyaWdnZXJCb29sZWFuQ29tcGFyaXNvbjsKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX210ZVRyaWdnZXJCb29sZWFuVmFsdWU7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9tdGVUcmlnZ2VyQm9vbGVhblN0YXJ0dXA7CkBAIC0zOCw2ICszOSw3IEBACiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9tdGVUcmlnZ2VyQm9vbGVhbk9iamVjdHM7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9tdGVUcmlnZ2VyQm9vbGVhbkV2ZW50T3duZXI7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9tdGVUcmlnZ2VyQm9vbGVhbkV2ZW50OworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogCiAKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMKaW5kZXggMTM3ZTA5Ny4uYzgyOWU2YSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMKQEAgLTQ4LDYgKzQ4LDcgQEAKICAqLwogCiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiBzdHJ1Y3QgdmFyaWFibGUyIG10ZVRyaWdnZXJEZWx0YVRhYmxlX3ZhcmlhYmxlc1tdID0gewogICAgIC8qCiAgICAgICogbWFnaWMgbnVtYmVyICAgICAgICAsIHZhcmlhYmxlIHR5cGUgLCByby9ydyAsIGNhbGxiYWNrIGZuICAsIEwsIG9pZHN1ZmZpeCAKQEAgLTYxLDggKzYyLDI0IEBACiAjZGVmaW5lICAgTVRFVFJJR0dFUkRFTFRBRElTQ09OVElOVUlUWUlEVFlQRSAgNQogICAgIHtNVEVUUklHR0VSREVMVEFESVNDT05USU5VSVRZSURUWVBFLCBBU05fSU5URUdFUiwgTkVUU05NUF9PTERBUElfUldSSVRFLAogICAgICB2YXJfbXRlVHJpZ2dlckRlbHRhVGFibGUsIDIsIHsxLCAzfX0sCi0KIH07CisjZWxzZSAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCitzdHJ1Y3QgdmFyaWFibGUyIG10ZVRyaWdnZXJEZWx0YVRhYmxlX3ZhcmlhYmxlc1tdID0geworICAgIC8qCisgICAgICogbWFnaWMgbnVtYmVyICAgICAgICAsIHZhcmlhYmxlIHR5cGUgLCByby9ydyAsIGNhbGxiYWNrIGZuICAsIEwsIG9pZHN1ZmZpeCAKKyAgICAgKi8KKyNkZWZpbmUgICBNVEVUUklHR0VSREVMVEFESVNDT05USU5VSVRZSUQgIDMKKyAgICB7TVRFVFJJR0dFUkRFTFRBRElTQ09OVElOVUlUWUlELCBBU05fT0JKRUNUX0lELCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJEZWx0YVRhYmxlLCAyLCB7MSwgMX19LAorI2RlZmluZSAgIE1URVRSSUdHRVJERUxUQURJU0NPTlRJTlVJVFlJRFdJTERDQVJEICA0CisgICAge01URVRSSUdHRVJERUxUQURJU0NPTlRJTlVJVFlJRFdJTERDQVJELCBBU05fSU5URUdFUiwgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9tdGVUcmlnZ2VyRGVsdGFUYWJsZSwgMiwgezEsIDJ9fSwKKyNkZWZpbmUgICBNVEVUUklHR0VSREVMVEFESVNDT05USU5VSVRZSURUWVBFICA1CisgICAge01URVRSSUdHRVJERUxUQURJU0NPTlRJTlVJVFlJRFRZUEUsIEFTTl9JTlRFR0VSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJEZWx0YVRhYmxlLCAyLCB7MSwgM319LAorfTsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisKIC8qCiAgKiAoTCA9IGxlbmd0aCBvZiB0aGUgb2lkc3VmZml4KSAKICAqLwpAQCAtMTE0LDYgKzEzMSwxMCBAQAogCiAgICAgREVCVUdNU0dUTCgoIm10ZVRyaWdnZXJEZWx0YVRhYmxlIiwKICAgICAgICAgICAgICAgICAidmFyX210ZVRyaWdnZXJEZWx0YVRhYmxlOiBFbnRlcmluZy4uLiAgXG4iKSk7CisKKyAgICAvKiBzZXQgZGVmYXVsdCB2YWx1ZSAqLworCSp3cml0ZV9tZXRob2QgPSBOVUxMOworCiAgICAgLyoKICAgICAgKiB0aGlzIGFzc3VtZXMgeW91IGhhdmUgcmVnaXN0ZXJlZCBhbGwgeW91ciBkYXRhIHByb3Blcmx5CiAgICAgICovCkBAIC0xMjksMjQgKzE1MCwyOSBAQAogCiAKICAgICBjYXNlIE1URVRSSUdHRVJERUxUQURJU0NPTlRJTlVJVFlJRDoKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgICp3cml0ZV9tZXRob2QgPSB3cml0ZV9tdGVUcmlnZ2VyRGVsdGFEaXNjb250aW51aXR5SUQ7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAqdmFyX2xlbiA9CiAgICAgICAgICAgICBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyRGVsdGFEaXNjb250aW51aXR5SURMZW4gKiBzaXplb2Yob2lkKTsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckRlbHRhRGlzY29udGludWl0eUlEOwogCiAgICAgY2FzZSBNVEVUUklHR0VSREVMVEFESVNDT05USU5VSVRZSURXSUxEQ0FSRDoKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgICp3cml0ZV9tZXRob2QgPSB3cml0ZV9tdGVUcmlnZ2VyRGVsdGFEaXNjb250aW51aXR5SURXaWxkY2FyZDsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICp2YXJfbGVuID0KICAgICAgICAgICAgIHNpemVvZihTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyRGVsdGFEaXNjb250aW51aXR5SURXaWxkY2FyZCk7CiAgICAgICAgIHJldHVybiAodV9jaGFyICopICYgU3RvcmFnZVRtcC0+CiAgICAgICAgICAgICBtdGVUcmlnZ2VyRGVsdGFEaXNjb250aW51aXR5SURXaWxkY2FyZDsKIAogICAgIGNhc2UgTVRFVFJJR0dFUkRFTFRBRElTQ09OVElOVUlUWUlEVFlQRToKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgICp3cml0ZV9tZXRob2QgPSB3cml0ZV9tdGVUcmlnZ2VyRGVsdGFEaXNjb250aW51aXR5SURUeXBlOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBzaXplb2YoU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckRlbHRhRGlzY29udGludWl0eUlEVHlwZSk7CiAgICAgICAgIHJldHVybiAodV9jaGFyICopICYgU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckRlbHRhRGlzY29udGludWl0eUlEVHlwZTsKIAotCiAgICAgZGVmYXVsdDoKICAgICAgICAgRVJST1JfTVNHKCIiKTsKICAgICB9CkBAIC0xNTUsNyArMTgxLDcgQEAKIAogCiAKLQorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKIGludAogd3JpdGVfbXRlVHJpZ2dlckRlbHRhRGlzY29udGludWl0eUlEKGludCBhY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9jaGFyICogdmFyX3ZhbCwKQEAgLTQxNCwzICs0NDAsNCBAQAogICAgIH0KICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKIH0KKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuaCBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5oCmluZGV4IDBlOGExN2UuLmZhNDg3MmEgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5oCisrKyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5oCkBAIC0zMCw4ICszMCwxMCBAQAogICAgICB2b2lkICAgICAgICAgICAgaW5pdF9tdGVUcmlnZ2VyRGVsdGFUYWJsZSh2b2lkKTsKICAgICAgRmluZFZhck1ldGhvZCAgIHZhcl9tdGVUcmlnZ2VyRGVsdGFUYWJsZTsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX210ZVRyaWdnZXJEZWx0YURpc2NvbnRpbnVpdHlJRDsKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX210ZVRyaWdnZXJEZWx0YURpc2NvbnRpbnVpdHlJRFdpbGRjYXJkOwogICAgICBXcml0ZU1ldGhvZCAgICAgd3JpdGVfbXRlVHJpZ2dlckRlbHRhRGlzY29udGludWl0eUlEVHlwZTsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICNlbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgLyogX01JQkdST1VQX01URVRSSUdHRVJERUxUQVRBQkxFX0ggKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYwppbmRleCBjNTc2MWI1Li40ZTZiNjRiIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jCkBAIC00OCw2ICs0OCw3IEBACiAgKi8KIAogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogc3RydWN0IHZhcmlhYmxlMiBtdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGVfdmFyaWFibGVzW10gPSB7CiAgICAgLyoKICAgICAgKiBtYWdpYyBudW1iZXIgICAgICAgICwgdmFyaWFibGUgdHlwZSAsIHJvL3J3ICwgY2FsbGJhY2sgZm4gICwgTCwgb2lkc3VmZml4IApAQCAtNzAsOCArNzEsMzMgQEAKICNkZWZpbmUgICBNVEVUUklHR0VSRVhJU1RFTkNFRVZFTlQgIDgKICAgICB7TVRFVFJJR0dFUkVYSVNURU5DRUVWRU5ULCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9SV1JJVEUsCiAgICAgIHZhcl9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUsIDIsIHsxLCA2fX0sCi0KIH07CisjZWxzZSAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCitzdHJ1Y3QgdmFyaWFibGUyIG10ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZV92YXJpYWJsZXNbXSA9IHsKKyAgICAvKgorICAgICAqIG1hZ2ljIG51bWJlciAgICAgICAgLCB2YXJpYWJsZSB0eXBlICwgcm8vcncgLCBjYWxsYmFjayBmbiAgLCBMLCBvaWRzdWZmaXggCisgICAgICovCisjZGVmaW5lICAgTVRFVFJJR0dFUkVYSVNURU5DRVRFU1QgIDMKKyAgICB7TVRFVFJJR0dFUkVYSVNURU5DRVRFU1QsIEFTTl9CSVRfU1RSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZSwgMiwgezEsIDF9fSwKKyNkZWZpbmUgICBNVEVUUklHR0VSRVhJU1RFTkNFU1RBUlRVUCAgNAorICAgIHtNVEVUUklHR0VSRVhJU1RFTkNFU1RBUlRVUCwgQVNOX0JJVF9TVFIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLCAyLCB7MSwgMn19LAorI2RlZmluZSAgIE1URVRSSUdHRVJFWElTVEVOQ0VPQkpFQ1RTT1dORVIgIDUKKyAgICB7TVRFVFJJR0dFUkVYSVNURU5DRU9CSkVDVFNPV05FUiwgQVNOX09DVEVUX1NUUiwgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUsIDIsIHsxLCAzfX0sCisjZGVmaW5lICAgTVRFVFJJR0dFUkVYSVNURU5DRU9CSkVDVFMgIDYKKyAgICB7TVRFVFJJR0dFUkVYSVNURU5DRU9CSkVDVFMsIEFTTl9PQ1RFVF9TVFIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLCAyLCB7MSwgNH19LAorI2RlZmluZSAgIE1URVRSSUdHRVJFWElTVEVOQ0VFVkVOVE9XTkVSICA3CisgICAge01URVRSSUdHRVJFWElTVEVOQ0VFVkVOVE9XTkVSLCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZSwgMiwgezEsIDV9fSwKKyNkZWZpbmUgICBNVEVUUklHR0VSRVhJU1RFTkNFRVZFTlQgIDgKKyAgICB7TVRFVFJJR0dFUkVYSVNURU5DRUVWRU5ULCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZSwgMiwgezEsIDZ9fSwKK307CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworCiAvKgogICogKEwgPSBsZW5ndGggb2YgdGhlIG9pZHN1ZmZpeCkgCiAgKi8KQEAgLTEzMSw2ICsxNTcsMTAgQEAKIAogICAgIERFQlVHTVNHVEwoKCJtdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUiLAogICAgICAgICAgICAgICAgICJ2YXJfbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlOiBFbnRlcmluZy4uLiAgXG4iKSk7CisKKwkvKiBzZXQgZGVmYXVsdCB2YWx1ZSAqLworCSp3cml0ZV9tZXRob2QgPSBOVUxMOworCiAgICAgLyoKICAgICAgKiB0aGlzIGFzc3VtZXMgeW91IGhhdmUgcmVnaXN0ZXJlZCBhbGwgeW91ciBkYXRhIHByb3Blcmx5CiAgICAgICovCkBAIC0xNDksMzIgKzE3OSw0NCBAQAogCiAKICAgICBjYXNlIE1URVRSSUdHRVJFWElTVEVOQ0VURVNUOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJFeGlzdGVuY2VUZXN0OworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyRXhpc3RlbmNlVGVzdExlbjsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckV4aXN0ZW5jZVRlc3Q7CiAKICAgICBjYXNlIE1URVRSSUdHRVJFWElTVEVOQ0VTVEFSVFVQOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJFeGlzdGVuY2VTdGFydHVwOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyRXhpc3RlbmNlU3RhcnR1cExlbjsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckV4aXN0ZW5jZVN0YXJ0dXA7CiAKICAgICBjYXNlIE1URVRSSUdHRVJFWElTVEVOQ0VPQkpFQ1RTT1dORVI6CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAqd3JpdGVfbWV0aG9kID0gd3JpdGVfbXRlVHJpZ2dlckV4aXN0ZW5jZU9iamVjdHNPd25lcjsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICp2YXJfbGVuID0gU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckV4aXN0ZW5jZU9iamVjdHNPd25lckxlbjsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckV4aXN0ZW5jZU9iamVjdHNPd25lcjsKIAogICAgIGNhc2UgTVRFVFJJR0dFUkVYSVNURU5DRU9CSkVDVFM6CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAqd3JpdGVfbWV0aG9kID0gd3JpdGVfbXRlVHJpZ2dlckV4aXN0ZW5jZU9iamVjdHM7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAqdmFyX2xlbiA9IFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJFeGlzdGVuY2VPYmplY3RzTGVuOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyRXhpc3RlbmNlT2JqZWN0czsKIAogICAgIGNhc2UgTVRFVFJJR0dFUkVYSVNURU5DRUVWRU5UT1dORVI6CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAqd3JpdGVfbWV0aG9kID0gd3JpdGVfbXRlVHJpZ2dlckV4aXN0ZW5jZUV2ZW50T3duZXI7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAqdmFyX2xlbiA9IFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJFeGlzdGVuY2VFdmVudE93bmVyTGVuOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyRXhpc3RlbmNlRXZlbnRPd25lcjsKIAogICAgIGNhc2UgTVRFVFJJR0dFUkVYSVNURU5DRUVWRU5UOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJFeGlzdGVuY2VFdmVudDsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICp2YXJfbGVuID0gU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckV4aXN0ZW5jZUV2ZW50TGVuOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyRXhpc3RlbmNlRXZlbnQ7CiAKQEAgLTE4Nyw2ICsyMjksNyBAQAogCiAKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKIAogaW50CiB3cml0ZV9tdGVUcmlnZ2VyRXhpc3RlbmNlVGVzdChpbnQgYWN0aW9uLApAQCAtNzM1LDMgKzc3OCw1IEBACiAgICAgfQogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQorCisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oCmluZGV4IDQwZGJkNGUuLjc1YzY0MjcgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaAorKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgKQEAgLTI5LDExICsyOSwxMyBAQAogICAgICB2b2lkICAgICAgICAgICAgaW5pdF9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUodm9pZCk7CiAgICAgIEZpbmRWYXJNZXRob2QgICB2YXJfbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlOwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICBXcml0ZU1ldGhvZCAgICAgd3JpdGVfbXRlVHJpZ2dlckV4aXN0ZW5jZVRlc3Q7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9tdGVUcmlnZ2VyRXhpc3RlbmNlU3RhcnR1cDsKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX210ZVRyaWdnZXJFeGlzdGVuY2VPYmplY3RzT3duZXI7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9tdGVUcmlnZ2VyRXhpc3RlbmNlT2JqZWN0czsKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX210ZVRyaWdnZXJFeGlzdGVuY2VFdmVudE93bmVyOwogICAgICBXcml0ZU1ldGhvZCAgICAgd3JpdGVfbXRlVHJpZ2dlckV4aXN0ZW5jZUV2ZW50OworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBfTUlCR1JPVVBfTVRFVFJJR0dFUkVYSVNURU5DRVRBQkxFX0ggKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYwppbmRleCA1YTJiZDdiLi44MGE0NWEzIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jCkBAIC04LDYgKzgsNyBAQAogICogVGhpcyBzaG91bGQgYWx3YXlzIGJlIGluY2x1ZGVkIGZpcnN0IGJlZm9yZSBhbnl0aGluZyBlbHNlIAogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpZiBIQVZFX1NURExJQl9ICiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjZW5kaWYKQEAgLTIwLDYgKzIxLDEzIEBACiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjZW5kaWYKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUobWliX3NucHJpbnRfdmFyaWFibGUpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0ZG9tYWluX3N1cHBvcnQpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja192Yl91aW50KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoc3RyaW5nX3RpbWVfdG9fc2VjcykKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShoZWFkZXJfY29tcGxleF9maW5kX2VudHJ5KQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAvKgogICogbWluaW1hbCBpbmNsdWRlIGRpcmVjdGl2ZXMgCkBAIC03OCw2ICs4Niw3IEBACiAgKi8KIAogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogc3RydWN0IHZhcmlhYmxlMiBtdGVUcmlnZ2VyVGFibGVfdmFyaWFibGVzW10gPSB7CiAgICAgLyoKICAgICAgKiBtYWdpYyBudW1iZXIgICAgICAgICwgdmFyaWFibGUgdHlwZSAsIHJvL3J3ICwgY2FsbGJhY2sgZm4gICwgTCwgb2lkc3VmZml4IApAQCAtMTIxLDggKzEzMCw1NCBAQAogI2RlZmluZSAgIE1URVRSSUdHRVJFTlRSWVNUQVRVUyAgMTcKICAgICB7TVRFVFJJR0dFUkVOVFJZU1RBVFVTLCBBU05fSU5URUdFUiwgTkVUU05NUF9PTERBUElfUldSSVRFLAogICAgICB2YXJfbXRlVHJpZ2dlclRhYmxlLCAyLCB7MSwgMTV9fSwKLQogfTsKKyNlbHNlIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KK3N0cnVjdCB2YXJpYWJsZTIgbXRlVHJpZ2dlclRhYmxlX3ZhcmlhYmxlc1tdID0geworICAgIC8qCisgICAgICogbWFnaWMgbnVtYmVyICAgICAgICAsIHZhcmlhYmxlIHR5cGUgLCByby9ydyAsIGNhbGxiYWNrIGZuICAsIEwsIG9pZHN1ZmZpeCAKKyAgICAgKi8KKyNkZWZpbmUgICBNVEVUUklHR0VSQ09NTUVOVCAgICAgNQorICAgIHtNVEVUUklHR0VSQ09NTUVOVCwgQVNOX09DVEVUX1NUUiwgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9tdGVUcmlnZ2VyVGFibGUsIDIsIHsxLCAzfX0sCisjZGVmaW5lICAgTVRFVFJJR0dFUlRFU1QgICAgICAgIDYKKyAgICB7TVRFVFJJR0dFUlRFU1QsIEFTTl9PQ1RFVF9TVFIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfbXRlVHJpZ2dlclRhYmxlLCAyLCB7MSwgNH19LAorI2RlZmluZSAgIE1URVRSSUdHRVJTQU1QTEVUWVBFICA3CisgICAge01URVRSSUdHRVJTQU1QTEVUWVBFLCBBU05fSU5URUdFUiwgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9tdGVUcmlnZ2VyVGFibGUsIDIsIHsxLCA1fX0sCisjZGVmaW5lICAgTVRFVFJJR0dFUlZBTFVFSUQgICAgIDgKKyAgICB7TVRFVFJJR0dFUlZBTFVFSUQsIEFTTl9PQkpFQ1RfSUQsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfbXRlVHJpZ2dlclRhYmxlLCAyLCB7MSwgNn19LAorI2RlZmluZSAgIE1URVRSSUdHRVJWQUxVRUlEV0lMRENBUkQgIDkKKyAgICB7TVRFVFJJR0dFUlZBTFVFSURXSUxEQ0FSRCwgQVNOX0lOVEVHRVIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfbXRlVHJpZ2dlclRhYmxlLCAyLCB7MSwgN319LAorI2RlZmluZSAgIE1URVRSSUdHRVJUQVJHRVRUQUcgICAxMAorICAgIHtNVEVUUklHR0VSVEFSR0VUVEFHLCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJUYWJsZSwgMiwgezEsIDh9fSwKKyNkZWZpbmUgICBNVEVUUklHR0VSQ09OVEVYVE5BTUUgIDExCisgICAge01URVRSSUdHRVJDT05URVhUTkFNRSwgQVNOX09DVEVUX1NUUiwgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9tdGVUcmlnZ2VyVGFibGUsIDIsIHsxLCA5fX0sCisjZGVmaW5lICAgTVRFVFJJR0dFUkNPTlRFWFROQU1FV0lMRENBUkQgIDEyCisgICAge01URVRSSUdHRVJDT05URVhUTkFNRVdJTERDQVJELCBBU05fSU5URUdFUiwgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9tdGVUcmlnZ2VyVGFibGUsIDIsIHsxLCAxMH19LAorI2RlZmluZSAgIE1URVRSSUdHRVJGUkVRVUVOQ1kgICAxMworICAgIHtNVEVUUklHR0VSRlJFUVVFTkNZLCBBU05fVU5TSUdORUQsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfbXRlVHJpZ2dlclRhYmxlLCAyLCB7MSwgMTF9fSwKKyNkZWZpbmUgICBNVEVUUklHR0VST0JKRUNUU09XTkVSICAxNAorICAgIHtNVEVUUklHR0VST0JKRUNUU09XTkVSLCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJUYWJsZSwgMiwgezEsIDEyfX0sCisjZGVmaW5lICAgTVRFVFJJR0dFUk9CSkVDVFMgICAgIDE1CisgICAge01URVRSSUdHRVJPQkpFQ1RTLCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJUYWJsZSwgMiwgezEsIDEzfX0sCisjZGVmaW5lICAgTVRFVFJJR0dFUkVOQUJMRUQgICAgIDE2CisgICAge01URVRSSUdHRVJFTkFCTEVELCBBU05fSU5URUdFUiwgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9tdGVUcmlnZ2VyVGFibGUsIDIsIHsxLCAxNH19LAorI2RlZmluZSAgIE1URVRSSUdHRVJFTlRSWVNUQVRVUyAgMTcKKyAgICB7TVRFVFJJR0dFUkVOVFJZU1RBVFVTLCBBU05fSU5URUdFUiwgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9tdGVUcmlnZ2VyVGFibGUsIDIsIHsxLCAxNX19LAorfTsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisKIC8qCiAgKiAoTCA9IGxlbmd0aCBvZiB0aGUgb2lkc3VmZml4KSAKICAqLwpAQCAtNDAzLDggKzQ1OCwxNyBAQAogICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAncic6CiAgICAgICAgICAgICBpZiAoY3ApIHsKKyAgICAgICAgICAgICAgICBpbnQgZnJlcTsKICAgICAgICAgICAgICAgICBjcCA9IGNvcHlfbndvcmQoY3AsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOwotICAgICAgICAgICAgICAgIFN0b3JhZ2VOZXctPm10ZVRyaWdnZXJGcmVxdWVuY3kgPSBzdHJ0b3VsKGJ1ZiwgTlVMTCwgMCk7CisgICAgICAgICAgICAgICAgZnJlcSA9IG5ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2VjcyhidWYpOworICAgICAgICAgICAgICAgIGlmIChmcmVxID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19wZXJyb3IoIkludmFsaWQgLXIgdmFsdWVcbiIpOworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBYWFg6IGZyZWUgU3RvcmFnZU5ldyAKKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RvcmFnZU5ldy0+bXRlVHJpZ2dlckZyZXF1ZW5jeSA9ICh1bnNpZ2VuZCBsb25nKSBmcmVxOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBjb25maWdfcGVycm9yKCJObyBwYXJhbWV0ZXIgYWZ0ZXIgLXIgZ2l2ZW5cbiIpOwogICAgICAgICAgICAgICAgIC8qCkBAIC01OTMsNyArNjU3LDcgQEAKIAogICAgIERFQlVHTVNHVEwoKCJtdGVUcmlnZ2VyVGFibGUiLCAiYWRkZWQgc2ltcGxlIG1vbml0b3I6ICVzXG4iLAogICAgICAgICAgICAgICAgIFN0b3JhZ2VOZXctPm10ZVRyaWdnZXJOYW1lKSk7Ci19Cit9IC8qIHBhcnNlX3NpbXBsZV9tb25pdG9yICovCiAKIAogLyoKQEAgLTEwNzYsOSArMTE0MCw3IEBACiAgICAgICAgIG10ZV9lbmFibGVfdHJpZ2dlcihTdG9yYWdlVG1wKTsKIAogICAgIERFQlVHTVNHVEwoKCJtdGVUcmlnZ2VyVGFibGUiLCAiZG9uZS5cbiIpKTsKLX0KLQotCit9IC8qIHBhcnNlX210ZVRyaWdnZXJUYWJsZSAqLwogCiAKIC8qCkBAIC0xNDI5LDE0ICsxNDkxLDIwIEBACiAKICAgICBERUJVR01TR1RMKCgibXRlVHJpZ2dlclRhYmxlIiwKICAgICAgICAgICAgICAgICAidmFyX210ZVRyaWdnZXJUYWJsZTogRW50ZXJpbmcuLi4gIFxuIikpOworCisJLyogc2V0IGRlZmF1bHQgdmFsdWUgKi8KKwkqd3JpdGVfbWV0aG9kID0gTlVMTDsKKwogICAgIC8qCiAgICAgICogdGhpcyBhc3N1bWVzIHlvdSBoYXZlIHJlZ2lzdGVyZWQgYWxsIHlvdXIgZGF0YSBwcm9wZXJseQogICAgICAqLwogICAgIGlmICgoU3RvcmFnZVRtcCA9CiAgICAgICAgICBoZWFkZXJfY29tcGxleChtdGVUcmlnZ2VyVGFibGVTdG9yYWdlLCB2cCwgbmFtZSwgbGVuZ3RoLCBleGFjdCwKICAgICAgICAgICAgICAgICAgICAgICAgIHZhcl9sZW4sIHdyaXRlX21ldGhvZCkpID09IE5VTEwpIHsKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgIGlmICh2cC0+bWFnaWMgPT0gTVRFVFJJR0dFUkVOVFJZU1RBVFVTKQogICAgICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJFbnRyeVN0YXR1czsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIApAQCAtMTQ0OCw2NyArMTUxNiw5MyBAQAogCiAKICAgICBjYXNlIE1URVRSSUdHRVJDT01NRU5UOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJDb21tZW50OworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyQ29tbWVudExlbjsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckNvbW1lbnQ7CiAKICAgICBjYXNlIE1URVRSSUdHRVJURVNUOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJUZXN0OworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyVGVzdExlbjsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgU3RvcmFnZVRtcC0+bXRlVHJpZ2dlclRlc3Q7CiAKICAgICBjYXNlIE1URVRSSUdHRVJTQU1QTEVUWVBFOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJTYW1wbGVUeXBlOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBzaXplb2YoU3RvcmFnZVRtcC0+bXRlVHJpZ2dlclNhbXBsZVR5cGUpOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSAmIFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJTYW1wbGVUeXBlOwogCiAgICAgY2FzZSBNVEVUUklHR0VSVkFMVUVJRDoKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgICp3cml0ZV9tZXRob2QgPSB3cml0ZV9tdGVUcmlnZ2VyVmFsdWVJRDsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICp2YXJfbGVuID0gU3RvcmFnZVRtcC0+bXRlVHJpZ2dlclZhbHVlSURMZW4gKiBzaXplb2Yob2lkKTsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgU3RvcmFnZVRtcC0+bXRlVHJpZ2dlclZhbHVlSUQ7CiAKICAgICBjYXNlIE1URVRSSUdHRVJWQUxVRUlEV0lMRENBUkQ6CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAqd3JpdGVfbWV0aG9kID0gd3JpdGVfbXRlVHJpZ2dlclZhbHVlSURXaWxkY2FyZDsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICp2YXJfbGVuID0gc2l6ZW9mKFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJWYWx1ZUlEV2lsZGNhcmQpOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSAmIFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJWYWx1ZUlEV2lsZGNhcmQ7CiAKICAgICBjYXNlIE1URVRSSUdHRVJUQVJHRVRUQUc6CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAqd3JpdGVfbWV0aG9kID0gd3JpdGVfbXRlVHJpZ2dlclRhcmdldFRhZzsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICp2YXJfbGVuID0gU3RvcmFnZVRtcC0+bXRlVHJpZ2dlclRhcmdldFRhZ0xlbjsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgU3RvcmFnZVRtcC0+bXRlVHJpZ2dlclRhcmdldFRhZzsKIAogICAgIGNhc2UgTVRFVFJJR0dFUkNPTlRFWFROQU1FOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJDb250ZXh0TmFtZTsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICp2YXJfbGVuID0gU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckNvbnRleHROYW1lTGVuOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyQ29udGV4dE5hbWU7CiAKICAgICBjYXNlIE1URVRSSUdHRVJDT05URVhUTkFNRVdJTERDQVJEOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJDb250ZXh0TmFtZVdpbGRjYXJkOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBzaXplb2YoU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckNvbnRleHROYW1lV2lsZGNhcmQpOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSAmIFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJDb250ZXh0TmFtZVdpbGRjYXJkOwogCiAgICAgY2FzZSBNVEVUUklHR0VSRlJFUVVFTkNZOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJGcmVxdWVuY3k7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAqdmFyX2xlbiA9IHNpemVvZihTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyRnJlcXVlbmN5KTsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgJiBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyRnJlcXVlbmN5OwogCiAgICAgY2FzZSBNVEVUUklHR0VST0JKRUNUU09XTkVSOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJPYmplY3RzT3duZXI7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAqdmFyX2xlbiA9IFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJPYmplY3RzT3duZXJMZW47CiAgICAgICAgIHJldHVybiAodV9jaGFyICopIFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJPYmplY3RzT3duZXI7CiAKICAgICBjYXNlIE1URVRSSUdHRVJPQkpFQ1RTOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJPYmplY3RzOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyT2JqZWN0c0xlbjsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgU3RvcmFnZVRtcC0+bXRlVHJpZ2dlck9iamVjdHM7CiAKICAgICBjYXNlIE1URVRSSUdHRVJFTkFCTEVEOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJFbmFibGVkOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBzaXplb2YoU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckVuYWJsZWQpOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSAmIFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJFbmFibGVkOwogCiAgICAgY2FzZSBNVEVUUklHR0VSRU5UUllTVEFUVVM6CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAqd3JpdGVfbWV0aG9kID0gd3JpdGVfbXRlVHJpZ2dlckVudHJ5U3RhdHVzOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBzaXplb2YoU3RvcmFnZVRtcC0+bXRlVHJpZ2dlckVudHJ5U3RhdHVzKTsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgJiBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyRW50cnlTdGF0dXM7CiAKQEAgLTE1MjEsNyArMTYxNSw3IEBACiAKIAogCi0KKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiBpbnQKIHdyaXRlX210ZVRyaWdnZXJDb21tZW50KGludCBhY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICB1X2NoYXIgKiB2YXJfdmFsLApAQCAtMTYwOCw3ICsxNzAyLDcgQEAKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwotfQorfSAvKiB3cml0ZV9tdGVUcmlnZ2VyQ29tbWVudCAqLwogCiAKIApAQCAtMTY5NSw3ICsxNzg5LDcgQEAKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwotfQorfSAvKiB3cml0ZV9tdGVUcmlnZ2VyVGVzdCAqLwogCiAKIApAQCAtMTc3OCw3ICsxODcyLDcgQEAKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwotfQorfSAvKiB3cml0ZV9tdGVUcmlnZ2VyU2FtcGxlVHlwZSAqLwogCiAKIApAQCAtMTg3Miw3ICsxOTY2LDcgQEAKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwotfQorfSAvKiB3cml0ZV9tdGVUcmlnZ2VyVmFsdWVJRCAqLwogCiAKIApAQCAtMTk1Niw3ICsyMDUwLDcgQEAKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwotfQorfSAvKiB3cml0ZV9tdGVUcmlnZ2VyVmFsdWVJRFdpbGRjYXJkICovCiAKIAogCkBAIC0yMDQ1LDcgKzIxMzksNyBAQAogICAgICAgICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7Ci19Cit9IC8qIHdyaXRlX210ZVRyaWdnZXJUYXJnZXRUYWcgKi8KIAogCiAKQEAgLTIxMzUsNyArMjIyOSw3IEBACiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKLX0KK30gLyogd3JpdGVfbXRlVHJpZ2dlckNvbnRleHROYW1lICovCiAKIAogCkBAIC0yMjE5LDcgKzIzMTMsNyBAQAogICAgICAgICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7Ci19Cit9IC8qIHdyaXRlX210ZVRyaWdnZXJDb250ZXh0TmFtZVdpbGRjYXJkICovCiAKIAogCkBAIC0yMzA2LDcgKzI0MDAsNyBAQAogICAgICAgICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7Ci19Cit9IC8qIHdyaXRlX210ZVRyaWdnZXJGcmVxdWVuY3kgKi8KIAogCiAKQEAgLTIzOTYsNyArMjQ5MCw3IEBACiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKLX0KK30gLyogd3JpdGVfbXRlVHJpZ2dlck9iamVjdHNPd25lciAqLwogCiAKIApAQCAtMjQ4NSw3ICsyNTc5LDcgQEAKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwotfQorfSAvKiB3cml0ZV9tdGVUcmlnZ2VyT2JqZWN0cyAqLwogCiAKIApAQCAtMjU3NCwxMCArMjY2OCw3IEBACiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKLX0KLQotCi0KK30gLyogd3JpdGVfbXRlVHJpZ2dlckVuYWJsZWQgKi8KIAogCiAKQEAgLTI5MDUsNyArMjk5NiwxMSBAQAogICAgICAgICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7Ci19Cit9IC8qIHdyaXRlX210ZVRyaWdnZXJFbnRyeVN0YXR1cyAqLworCisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworCisKIAogLyoKICAqIHNlbmQgdHJhcCAKQEAgLTMwMDAsNyArMzA5NSw4IEBACiAKICAgICBzZW5kX3YydHJhcCh2YXJfbGlzdCk7CiAgICAgc25tcF9mcmVlX3ZhcmJpbmQodmFyX2xpc3QpOwotfQorfSAvKiBzZW5kX210ZV90cmFwICovCisKIAogdm9pZAogbGFzdF9zdGF0ZV9jbGVhbih2b2lkICpkYXRhKQpAQCAtMzAxMCw2ICszMTA2LDcgQEAKICAgICBTTk1QX0ZSRUUoY2xlYW5tZSk7CiB9CiAKKwogLyoKICAqIHJldHJpZXZlcyByZXF1ZXN0ZWQgaW5mbyBpbiBwZHUgZnJvbSB0aGUgY3VycmVudCB0YXJnZXQgCiAgKi8KQEAgLTMxMDEsNyArMzE5OCw3IEBACiAgICAgYnVmW3NpemVvZihidWYpIC0gMV0gPSAnXDAnOwogICAgIERFQlVHTVNHVEwoKCJtdGVUcmlnZ2VyVGFibGUiLCAiZ290IGEgdmFyaWFibGVzOiAlc1xuIiwgYnVmKSk7CiAgICAgcmV0dXJuIHJlc3BvbnNlOwotfQorfSAvKiBtdGVfZ2V0X3Jlc3BvbnNlICovCiAKIAogLyoKQEAgLTMxMzIsNyArMzIyOSw2IEBACiB9CiAKIAotCiAvKgogICogUmV0dXJuIDAgaWYgdGhlIGRpc2NvbnRpbnVpdHkgb2JqZWN0IHdhcyBjaGVja2VkIGFuZCBubyBkaXNjb250aW51aXR5IGhhcwogICogb2NjdXJyZWQsIDEgaWYgdGhlIGRpc2NvbnRpbnVpdHkgb2JqZWN0IHdhcyBjaGVja2VkIGFuZCBhIGRpc2NvbnRpbnVpdHkKQEAgLTMyNjMsNyArMzM1OSw3IEBACiAgICAgICovCiAgICAgREVCVUdNU0dUTCgoIm10ZV9kaXNjbyIsICJubyBkaXNjb250aW51aXR5XG4iKSk7CiAgICAgcmV0dXJuIDA7Ci19Cit9IC8qIG10ZV9kaXNjb250aW51aXR5X29jY3VycmVkICovCiAKIAogdm9pZApAQCAtMzY3MCw3ICszNzY2LDggQEAKICAgICB9CiAKICAgICBpdGVtLT5zdGFydGVkID0gTVRFX1NUQVJURUQ7Ci19Cit9IC8qIG10ZV9ydW5fdHJpZ2dlciAqLworCiAKIAogLyoKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaAppbmRleCAxODkxNGRkLi5jNDI3NjAyIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oCkBAIC0yMjksNyArMjI5LDcgQEAKICAgICAgbmV0c25tcF9wZHUgICAgKm10ZV9nZXRfcmVzcG9uc2Uoc3RydWN0IG10ZVRyaWdnZXJUYWJsZV9kYXRhICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfcGR1ICopOwogCi0KKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9tdGVUcmlnZ2VyQ29tbWVudDsKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX210ZVRyaWdnZXJUZXN0OwogICAgICBXcml0ZU1ldGhvZCAgICAgd3JpdGVfbXRlVHJpZ2dlclNhbXBsZVR5cGU7CkBAIC0yNDMsOCArMjQzLDcgQEAKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX210ZVRyaWdnZXJPYmplY3RzOwogICAgICBXcml0ZU1ldGhvZCAgICAgd3JpdGVfbXRlVHJpZ2dlckVuYWJsZWQ7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9tdGVUcmlnZ2VyRW50cnlTdGF0dXM7Ci0KLSAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX210ZVRyaWdnZXJFbnRyeVN0YXR1czsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICAgICAgdm9pZCAgICAgICAgICAgIG10ZV9lbmFibGVfdHJpZ2dlcihzdHJ1Y3QgbXRlVHJpZ2dlclRhYmxlX2RhdGEgKml0ZW0pOwogICAgICB2b2lkICAgICAgICAgICAgbXRlX2Rpc2FibGVfdHJpZ2dlcihzdHJ1Y3QgbXRlVHJpZ2dlclRhYmxlX2RhdGEKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYwppbmRleCAyOGIzM2Q4Li5iZTk2M2MxIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jCkBAIC00OCw2ICs0OCw3IEBACiAgKi8KIAogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogc3RydWN0IHZhcmlhYmxlMiBtdGVUcmlnZ2VyVGhyZXNob2xkVGFibGVfdmFyaWFibGVzW10gPSB7CiAgICAgLyoKICAgICAgKiBtYWdpYyBudW1iZXIgICAgICAgICwgdmFyaWFibGUgdHlwZSAsIHJvL3J3ICwgY2FsbGJhY2sgZm4gICwgTCwgb2lkc3VmZml4IApAQCAtOTcsMTMgKzk4LDY1IEBACiAjZGVmaW5lICAgTVRFVFJJR0dFUlRIUkVTSE9MRERFTFRBRkFMTElOR0VWRU5UICAxNwogICAgIHtNVEVUUklHR0VSVEhSRVNIT0xEREVMVEFGQUxMSU5HRVZFTlQsIEFTTl9PQ1RFVF9TVFIsIE5FVFNOTVBfT0xEQVBJX1JXUklURSwKICAgICAgdmFyX210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZSwgMiwgezEsIDE1fX0sCi0KIH07CisjZWxzZSAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCitzdHJ1Y3QgdmFyaWFibGUyIG10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZV92YXJpYWJsZXNbXSA9IHsKKyAgICAvKgorICAgICAqIG1hZ2ljIG51bWJlciAgICAgICAgLCB2YXJpYWJsZSB0eXBlICwgcm8vcncgLCBjYWxsYmFjayBmbiAgLCBMLCBvaWRzdWZmaXggCisgICAgICovCisjZGVmaW5lICAgTVRFVFJJR0dFUlRIUkVTSE9MRFNUQVJUVVAgIDMKKyAgICB7TVRFVFJJR0dFUlRIUkVTSE9MRFNUQVJUVVAsIEFTTl9JTlRFR0VSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZSwgMiwgezEsIDF9fSwKKyNkZWZpbmUgICBNVEVUUklHR0VSVEhSRVNIT0xEUklTSU5HICA0CisgICAge01URVRSSUdHRVJUSFJFU0hPTERSSVNJTkcsIEFTTl9JTlRFR0VSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZSwgMiwgezEsIDJ9fSwKKyNkZWZpbmUgICBNVEVUUklHR0VSVEhSRVNIT0xERkFMTElORyAgNQorICAgIHtNVEVUUklHR0VSVEhSRVNIT0xERkFMTElORywgQVNOX0lOVEVHRVIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLCAyLCB7MSwgM319LAorI2RlZmluZSAgIE1URVRSSUdHRVJUSFJFU0hPTERERUxUQVJJU0lORyAgNgorICAgIHtNVEVUUklHR0VSVEhSRVNIT0xEREVMVEFSSVNJTkcsIEFTTl9JTlRFR0VSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZSwgMiwgezEsIDR9fSwKKyNkZWZpbmUgICBNVEVUUklHR0VSVEhSRVNIT0xEREVMVEFGQUxMSU5HICA3CisgICAge01URVRSSUdHRVJUSFJFU0hPTERERUxUQUZBTExJTkcsIEFTTl9JTlRFR0VSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZSwgMiwgezEsIDV9fSwKKyNkZWZpbmUgICBNVEVUUklHR0VSVEhSRVNIT0xET0JKRUNUU09XTkVSICA4CisgICAge01URVRSSUdHRVJUSFJFU0hPTERPQkpFQ1RTT1dORVIsIEFTTl9PQ1RFVF9TVFIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLCAyLCB7MSwgNn19LAorI2RlZmluZSAgIE1URVRSSUdHRVJUSFJFU0hPTERPQkpFQ1RTICA5CisgICAge01URVRSSUdHRVJUSFJFU0hPTERPQkpFQ1RTLCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZSwgMiwgezEsIDd9fSwKKyNkZWZpbmUgICBNVEVUUklHR0VSVEhSRVNIT0xEUklTSU5HRVZFTlRPV05FUiAgMTAKKyAgICB7TVRFVFJJR0dFUlRIUkVTSE9MRFJJU0lOR0VWRU5UT1dORVIsIEFTTl9PQ1RFVF9TVFIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLCAyLCB7MSwgOH19LAorI2RlZmluZSAgIE1URVRSSUdHRVJUSFJFU0hPTERSSVNJTkdFVkVOVCAgMTEKKyAgICB7TVRFVFJJR0dFUlRIUkVTSE9MRFJJU0lOR0VWRU5ULCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZSwgMiwgezEsIDl9fSwKKyNkZWZpbmUgICBNVEVUUklHR0VSVEhSRVNIT0xERkFMTElOR0VWRU5UT1dORVIgIDEyCisgICAge01URVRSSUdHRVJUSFJFU0hPTERGQUxMSU5HRVZFTlRPV05FUiwgQVNOX09DVEVUX1NUUiwgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUsIDIsIHsxLCAxMH19LAorI2RlZmluZSAgIE1URVRSSUdHRVJUSFJFU0hPTERGQUxMSU5HRVZFTlQgIDEzCisgICAge01URVRSSUdHRVJUSFJFU0hPTERGQUxMSU5HRVZFTlQsIEFTTl9PQ1RFVF9TVFIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLCAyLCB7MSwgMTF9fSwKKyNkZWZpbmUgICBNVEVUUklHR0VSVEhSRVNIT0xEREVMVEFSSVNJTkdFVkVOVE9XTkVSICAxNAorICAgIHtNVEVUUklHR0VSVEhSRVNIT0xEREVMVEFSSVNJTkdFVkVOVE9XTkVSLCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZSwgMiwgezEsIDEyfX0sCisjZGVmaW5lICAgTVRFVFJJR0dFUlRIUkVTSE9MRERFTFRBUklTSU5HRVZFTlQgIDE1CisgICAge01URVRSSUdHRVJUSFJFU0hPTERERUxUQVJJU0lOR0VWRU5ULCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZSwgMiwgezEsIDEzfX0sCisjZGVmaW5lICAgTVRFVFJJR0dFUlRIUkVTSE9MRERFTFRBRkFMTElOR0VWRU5UT1dORVIgIDE2CisgICAge01URVRSSUdHRVJUSFJFU0hPTERERUxUQUZBTExJTkdFVkVOVE9XTkVSLCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZSwgMiwgezEsIDE0fX0sCisjZGVmaW5lICAgTVRFVFJJR0dFUlRIUkVTSE9MRERFTFRBRkFMTElOR0VWRU5UICAxNworICAgIHtNVEVUUklHR0VSVEhSRVNIT0xEREVMVEFGQUxMSU5HRVZFTlQsIEFTTl9PQ1RFVF9TVFIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLCAyLCB7MSwgMTV9fSwKK307CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworCisKIC8qCiAgKiAoTCA9IGxlbmd0aCBvZiB0aGUgb2lkc3VmZml4KSAKICAqLwogCi0KIC8qCiAgKiBnbG9iYWwgc3RvcmFnZSBvZiBvdXIgZGF0YSwgc2F2ZWQgaW4gYW5kIGNvbmZpZ3VyZWQgYnkgaGVhZGVyX2NvbXBsZXgoKSAKICAqLwpAQCAtMTUxLDYgKzIwNCwxMCBAQAogCiAgICAgREVCVUdNU0dUTCgoIm10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZSIsCiAgICAgICAgICAgICAgICAgInZhcl9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGU6IEVudGVyaW5nLi4uICBcbiIpKTsKKworCS8qIHNldCBkZWZhdWx0IHZhbHVlICovCisJKndyaXRlX21ldGhvZCA9IE5VTEw7CisKICAgICAvKgogICAgICAqIHRoaXMgYXNzdW1lcyB5b3UgaGF2ZSByZWdpc3RlcmVkIGFsbCB5b3VyIGRhdGEgcHJvcGVybHkKICAgICAgKi8KQEAgLTE3MCw4MCArMjI3LDExMCBAQAogCiAKICAgICBjYXNlIE1URVRSSUdHRVJUSFJFU0hPTERTVEFSVFVQOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJUaHJlc2hvbGRTdGFydHVwOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBzaXplb2YoU3RvcmFnZVRtcC0+bXRlVHJpZ2dlclRocmVzaG9sZFN0YXJ0dXApOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSAmIFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJUaHJlc2hvbGRTdGFydHVwOwogCiAgICAgY2FzZSBNVEVUUklHR0VSVEhSRVNIT0xEUklTSU5HOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJUaHJlc2hvbGRSaXNpbmc7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAqdmFyX2xlbiA9IHNpemVvZihTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyVGhyZXNob2xkUmlzaW5nKTsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgJiBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyVGhyZXNob2xkUmlzaW5nOwogCiAgICAgY2FzZSBNVEVUUklHR0VSVEhSRVNIT0xERkFMTElORzoKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgICp3cml0ZV9tZXRob2QgPSB3cml0ZV9tdGVUcmlnZ2VyVGhyZXNob2xkRmFsbGluZzsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICp2YXJfbGVuID0gc2l6ZW9mKFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJUaHJlc2hvbGRGYWxsaW5nKTsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgJiBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyVGhyZXNob2xkRmFsbGluZzsKIAogICAgIGNhc2UgTVRFVFJJR0dFUlRIUkVTSE9MRERFTFRBUklTSU5HOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJUaHJlc2hvbGREZWx0YVJpc2luZzsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICp2YXJfbGVuID0gc2l6ZW9mKFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJUaHJlc2hvbGREZWx0YVJpc2luZyk7CiAgICAgICAgIHJldHVybiAodV9jaGFyICopICYgU3RvcmFnZVRtcC0+bXRlVHJpZ2dlclRocmVzaG9sZERlbHRhUmlzaW5nOwogCiAgICAgY2FzZSBNVEVUUklHR0VSVEhSRVNIT0xEREVMVEFGQUxMSU5HOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJUaHJlc2hvbGREZWx0YUZhbGxpbmc7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAqdmFyX2xlbiA9IHNpemVvZihTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyVGhyZXNob2xkRGVsdGFGYWxsaW5nKTsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgJiBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyVGhyZXNob2xkRGVsdGFGYWxsaW5nOwogCiAgICAgY2FzZSBNVEVUUklHR0VSVEhSRVNIT0xET0JKRUNUU09XTkVSOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJUaHJlc2hvbGRPYmplY3RzT3duZXI7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAqdmFyX2xlbiA9IFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJUaHJlc2hvbGRPYmplY3RzT3duZXJMZW47CiAgICAgICAgIHJldHVybiAodV9jaGFyICopIFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJUaHJlc2hvbGRPYmplY3RzT3duZXI7CiAKICAgICBjYXNlIE1URVRSSUdHRVJUSFJFU0hPTERPQkpFQ1RTOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJUaHJlc2hvbGRPYmplY3RzOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyVGhyZXNob2xkT2JqZWN0c0xlbjsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgU3RvcmFnZVRtcC0+bXRlVHJpZ2dlclRocmVzaG9sZE9iamVjdHM7CiAKICAgICBjYXNlIE1URVRSSUdHRVJUSFJFU0hPTERSSVNJTkdFVkVOVE9XTkVSOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJUaHJlc2hvbGRSaXNpbmdFdmVudE93bmVyOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyVGhyZXNob2xkUmlzaW5nRXZlbnRPd25lckxlbjsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgU3RvcmFnZVRtcC0+bXRlVHJpZ2dlclRocmVzaG9sZFJpc2luZ0V2ZW50T3duZXI7CiAKICAgICBjYXNlIE1URVRSSUdHRVJUSFJFU0hPTERSSVNJTkdFVkVOVDoKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgICp3cml0ZV9tZXRob2QgPSB3cml0ZV9tdGVUcmlnZ2VyVGhyZXNob2xkUmlzaW5nRXZlbnQ7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAqdmFyX2xlbiA9IFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJUaHJlc2hvbGRSaXNpbmdFdmVudExlbjsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgU3RvcmFnZVRtcC0+bXRlVHJpZ2dlclRocmVzaG9sZFJpc2luZ0V2ZW50OwogCiAgICAgY2FzZSBNVEVUUklHR0VSVEhSRVNIT0xERkFMTElOR0VWRU5UT1dORVI6CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAqd3JpdGVfbWV0aG9kID0gd3JpdGVfbXRlVHJpZ2dlclRocmVzaG9sZEZhbGxpbmdFdmVudE93bmVyOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyVGhyZXNob2xkRmFsbGluZ0V2ZW50T3duZXJMZW47CiAgICAgICAgIHJldHVybiAodV9jaGFyICopIFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJUaHJlc2hvbGRGYWxsaW5nRXZlbnRPd25lcjsKIAogICAgIGNhc2UgTVRFVFJJR0dFUlRIUkVTSE9MREZBTExJTkdFVkVOVDoKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgICp3cml0ZV9tZXRob2QgPSB3cml0ZV9tdGVUcmlnZ2VyVGhyZXNob2xkRmFsbGluZ0V2ZW50OworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyVGhyZXNob2xkRmFsbGluZ0V2ZW50TGVuOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyVGhyZXNob2xkRmFsbGluZ0V2ZW50OwogCiAgICAgY2FzZSBNVEVUUklHR0VSVEhSRVNIT0xEREVMVEFSSVNJTkdFVkVOVE9XTkVSOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJUaHJlc2hvbGREZWx0YVJpc2luZ0V2ZW50T3duZXI7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAqdmFyX2xlbiA9IFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJUaHJlc2hvbGREZWx0YVJpc2luZ0V2ZW50T3duZXJMZW47CiAgICAgICAgIHJldHVybiAodV9jaGFyICopIFN0b3JhZ2VUbXAtPgogICAgICAgICAgICAgbXRlVHJpZ2dlclRocmVzaG9sZERlbHRhUmlzaW5nRXZlbnRPd25lcjsKIAogICAgIGNhc2UgTVRFVFJJR0dFUlRIUkVTSE9MRERFTFRBUklTSU5HRVZFTlQ6CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAqd3JpdGVfbWV0aG9kID0gd3JpdGVfbXRlVHJpZ2dlclRocmVzaG9sZERlbHRhUmlzaW5nRXZlbnQ7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAqdmFyX2xlbiA9IFN0b3JhZ2VUbXAtPm10ZVRyaWdnZXJUaHJlc2hvbGREZWx0YVJpc2luZ0V2ZW50TGVuOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyVGhyZXNob2xkRGVsdGFSaXNpbmdFdmVudDsKIAogICAgIGNhc2UgTVRFVFJJR0dFUlRIUkVTSE9MRERFTFRBRkFMTElOR0VWRU5UT1dORVI6CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAqd3JpdGVfbWV0aG9kID0gd3JpdGVfbXRlVHJpZ2dlclRocmVzaG9sZERlbHRhRmFsbGluZ0V2ZW50T3duZXI7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICAqdmFyX2xlbiA9CiAgICAgICAgICAgICBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyVGhyZXNob2xkRGVsdGFGYWxsaW5nRXZlbnRPd25lckxlbjsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgU3RvcmFnZVRtcC0+CiAgICAgICAgICAgICBtdGVUcmlnZ2VyVGhyZXNob2xkRGVsdGFGYWxsaW5nRXZlbnRPd25lcjsKIAogICAgIGNhc2UgTVRFVFJJR0dFUlRIUkVTSE9MRERFTFRBRkFMTElOR0VWRU5UOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX210ZVRyaWdnZXJUaHJlc2hvbGREZWx0YUZhbGxpbmdFdmVudDsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICp2YXJfbGVuID0gU3RvcmFnZVRtcC0+bXRlVHJpZ2dlclRocmVzaG9sZERlbHRhRmFsbGluZ0V2ZW50TGVuOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSBTdG9yYWdlVG1wLT5tdGVUcmlnZ2VyVGhyZXNob2xkRGVsdGFGYWxsaW5nRXZlbnQ7CiAKQEAgLTI1Niw3ICszNDMsNyBAQAogCiAKIAotCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAKIGludAogd3JpdGVfbXRlVHJpZ2dlclRocmVzaG9sZFN0YXJ0dXAoaW50IGFjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfY2hhciAqIHZhcl92YWwsCkBAIC0xNjA3LDMgKzE2OTQsNSBAQAogICAgIH0KICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKIH0KKworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaCBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaAppbmRleCA3YWE2Y2VjLi44ZjMzMDExIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAgICAgIHZvaWQgICAgICAgICAgICBpbml0X210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZSh2b2lkKTsKICAgICAgRmluZFZhck1ldGhvZCAgIHZhcl9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGU7CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9tdGVUcmlnZ2VyVGhyZXNob2xkU3RhcnR1cDsKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX210ZVRyaWdnZXJUaHJlc2hvbGRSaXNpbmc7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9tdGVUcmlnZ2VyVGhyZXNob2xkRmFsbGluZzsKQEAgLTQyLDUgKzQzLDYgQEAKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX210ZVRyaWdnZXJUaHJlc2hvbGREZWx0YVJpc2luZ0V2ZW50OwogICAgICBXcml0ZU1ldGhvZCAgICAgd3JpdGVfbXRlVHJpZ2dlclRocmVzaG9sZERlbHRhRmFsbGluZ0V2ZW50T3duZXI7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9tdGVUcmlnZ2VyVGhyZXNob2xkRGVsdGFGYWxsaW5nRXZlbnQ7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAjZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIF9NSUJHUk9VUF9NVEVUUklHR0VSVEhSRVNIT0xEVEFCTEVfSCAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYwppbmRleCAyMjVjOTVjLi4wZjcxZGE2IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYwpAQCAtMTYsOSArMTYsMTQgQEAKICAqIFRoaXMgc2hvdWxkIGFsd2F5cyBiZSBpbmNsdWRlZCBmaXJzdCBiZWZvcmUgYW55dGhpbmcgZWxzZSAKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaGVhZGVyX2NvbXBsZXhfZmluZF9lbnRyeSkKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKwogI2luY2x1ZGUgPGFycGEvaW5ldC5oPgogI2luY2x1ZGUgPG5ldGRiLmg+CiAKQEAgLTQ2LDYgKzUxLDcgQEAKICAgICB7IDEsIDMsIDYsIDEsIDIsIDEsIDgyLCAxLCAzIH07CiAKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKIHN0cnVjdCB2YXJpYWJsZTIgbG9va3VwQ3RsVGFibGVfdmFyaWFibGVzW10gPSB7CiAgICAgLyoKICAgICAgKiBtYWdpYyBudW1iZXIgICAgICAgICwgdmFyaWFibGUgdHlwZSAsIHJvL3J3ICwgY2FsbGJhY2sgZm4gICwgTCwgb2lkc3VmZml4CkBAIC02Myw2ICs2OSwyNSBAQAogICAgIHtDT0xVTU5fTE9PS1VQQ1RMUk9XU1RBVFVTLCBBU05fSU5URUdFUiwgTkVUU05NUF9PTERBUElfUldSSVRFLAogICAgICB2YXJfbG9va3VwQ3RsVGFibGUsIDIsIHsxLCA4fX0KIH07CisjZWxzZSAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCitzdHJ1Y3QgdmFyaWFibGUyIGxvb2t1cEN0bFRhYmxlX3ZhcmlhYmxlc1tdID0geworICAgIC8qCisgICAgICogbWFnaWMgbnVtYmVyICAgICAgICAsIHZhcmlhYmxlIHR5cGUgLCByby9ydyAsIGNhbGxiYWNrIGZuICAsIEwsIG9pZHN1ZmZpeAorICAgICAqLworICAgIHtDT0xVTU5fTE9PS1VQQ1RMVEFSR0VUQUREUkVTU1RZUEUsIEFTTl9JTlRFR0VSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX2xvb2t1cEN0bFRhYmxlLCAyLCB7MSwgM319LAorICAgIHtDT0xVTU5fTE9PS1VQQ1RMVEFSR0VUQUREUkVTUywgICBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX2xvb2t1cEN0bFRhYmxlLCAyLCB7MSwgNH19LAorICAgIHtDT0xVTU5fTE9PS1VQQ1RMT1BFUlNUQVRVUywgQVNOX0lOVEVHRVIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfbG9va3VwQ3RsVGFibGUsIDIsIHsxLCA1fX0sCisgICAge0NPTFVNTl9MT09LVVBDVExUSU1FLCAgICAgIEFTTl9VTlNJR05FRCwgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9sb29rdXBDdGxUYWJsZSwgMiwgezEsIDZ9fSwKKyAgICB7Q09MVU1OX0xPT0tVUENUTFJDLCAgICAgICAgIEFTTl9JTlRFR0VSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX2xvb2t1cEN0bFRhYmxlLCAyLCB7MSwgN319LAorICAgIHtDT0xVTU5fTE9PS1VQQ1RMUk9XU1RBVFVTLCBBU05fSU5URUdFUiwgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9sb29rdXBDdGxUYWJsZSwgMiwgezEsIDh9fQorfTsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKIAogLyoKQEAgLTM3Myw2ICszOTgsNyBAQAogICAgICAgICAgICAgICAgICAgIGludCBleGFjdCwgc2l6ZV90ICp2YXJfbGVuLCBXcml0ZU1ldGhvZCAqKiB3cml0ZV9tZXRob2QpCiB7CiAgICAgc3RydWN0IGxvb2t1cFRhYmxlX2RhdGEgKlN0b3JhZ2VUbXAgPSBOVUxMOworICAgICAgICAqd3JpdGVfbWV0aG9kID0gTlVMTDsKIAogICAgIC8qCiAgICAgICogdGhpcyBhc3N1bWVzIHlvdSBoYXZlIHJlZ2lzdGVyZWQgYWxsIHlvdXIgZGF0YSBwcm9wZXJseQpAQCAtMzkwLDEyICs0MTYsMTYgQEAKICAgICAgKi8KICAgICBzd2l0Y2ggKHZwLT5tYWdpYykgewogICAgIGNhc2UgQ09MVU1OX0xPT0tVUENUTFRBUkdFVEFERFJFU1NUWVBFOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX2xvb2t1cEN0bFRhcmdldEFkZHJlc3NUeXBlOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSBzaXplb2YoU3RvcmFnZVRtcC0+bG9va3VwQ3RsVGFyZ2V0QWRkcmVzc1R5cGUpOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSAmIFN0b3JhZ2VUbXAtPmxvb2t1cEN0bFRhcmdldEFkZHJlc3NUeXBlOwogCiAgICAgY2FzZSBDT0xVTU5fTE9PS1VQQ1RMVEFSR0VUQUREUkVTUzoKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgICp3cml0ZV9tZXRob2QgPSB3cml0ZV9sb29rdXBDdGxUYXJnZXRBZGRyZXNzOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgKnZhcl9sZW4gPSAoU3RvcmFnZVRtcC0+bG9va3VwQ3RsVGFyZ2V0QWRkcmVzc0xlbik7CiAgICAgICAgIHJldHVybiAodV9jaGFyICopIFN0b3JhZ2VUbXAtPmxvb2t1cEN0bFRhcmdldEFkZHJlc3M7CiAKQEAgLTQxMiw3ICs0NDIsOSBAQAogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSAmIFN0b3JhZ2VUbXAtPmxvb2t1cEN0bFJjOwogCiAgICAgY2FzZSBDT0xVTU5fTE9PS1VQQ1RMUk9XU1RBVFVTOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX2xvb2t1cEN0bFJvd1N0YXR1czsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICp2YXJfbGVuID0gc2l6ZW9mKFN0b3JhZ2VUbXAtPmxvb2t1cEN0bFJvd1N0YXR1cyk7CiAgICAgICAgIHJldHVybiAodV9jaGFyICopICYgU3RvcmFnZVRtcC0+bG9va3VwQ3RsUm93U3RhdHVzOwogCkBAIC01MDUsOSArNTM3LDkgQEAKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGdldHRpbWVvZmRheSgmdHBzdGFydCwgTlVMTCk7Ci0gICAgICAgIGxvb2t1cCA9IGdldGhvc3RieWFkZHIoJmFkZHJfaW4sIHNpemVvZihhZGRyX2luKSwgQUZfSU5FVCk7Ci0gICAgICAgIGdldHRpbWVvZmRheSgmdHBlbmQsIE5VTEwpOworICAgICAgICBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soJnRwc3RhcnQpOworICAgICAgICBsb29rdXAgPSBuZXRzbm1wX2dldGhvc3RieWFkZHIoJmFkZHJfaW4sIHNpemVvZihhZGRyX2luKSwgQUZfSU5FVCk7CisgICAgICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmdHBlbmQpOwogICAgICAgICB0aW1ldXNlID0gMTAwMDAwMCAqICh0cGVuZC50dl9zZWMgLSB0cHN0YXJ0LnR2X3NlYykgKwogICAgICAgICAgICAgdHBlbmQudHZfdXNlYyAtIHRwc3RhcnQudHZfdXNlYzsKICAgICAgICAgdGltZXVzZSAvPSAxMDAwOwpAQCAtNTU1LDkgKzU4Nyw5IEBACiAgICAgICAgIHN0cnVjdCBhZGRyaW5mbyBoaW50cyA9IHsgMCwgQUZfSU5FVDYsIFNPQ0tfREdSQU0gfTsKICNlbmRpZgogCi0gICAgICAgIGdldHRpbWVvZmRheSgmdHBzdGFydCwgTlVMTCk7Ci0gICAgICAgIGxvb2t1cCA9IGdldGhvc3RieW5hbWUoYWRkcmVzcyk7Ci0gICAgICAgIGdldHRpbWVvZmRheSgmdHBlbmQsIE5VTEwpOworICAgICAgICBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soJnRwc3RhcnQpOworICAgICAgICBsb29rdXAgPSBuZXRzbm1wX2dldGhvc3RieW5hbWUoYWRkcmVzcyk7CisgICAgICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmdHBlbmQpOwogICAgICAgICB0aW1ldXNlNCA9IDEwMDAwMDAgKiAodHBlbmQudHZfc2VjIC0gdHBzdGFydC50dl9zZWMpICsKICAgICAgICAgICAgIHRwZW5kLnR2X3VzZWMgLSB0cHN0YXJ0LnR2X3VzZWM7CiAgICAgICAgIGlmIChsb29rdXAgPT0gTlVMTCkgewpAQCAtNTg0LDYgKzYxNiw3IEBACiAgICAgICAgICAgICAgICAgICAgIHRlbXAgPSBhZGRfcmVzdWx0KGl0ZW0sIG4sIElORVRBRERSRVNTVFlQRV9VTktOT1dOLCAiIiwgMCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBERUJVR01TR1RMKCgibG9va3VwQ3RsVGFibGUiLCAiQWRkaW5nICVkICVzXG4iLCBuLCBidWYpKTsKIAogICAgICAgICAgICAgICAgIGlmIChuID09IDEpCiAgICAgICAgICAgICAgICAgICAgIGl0ZW0tPlJlc3VsdHNUYWJsZSA9IHRlbXA7CkBAIC01OTYsOSArNjI5LDkgQEAKICAgICAgICAgfQogCiAjaWYgSEFWRV9HRVRBRERSSU5GTwotICAgICAgICBnZXR0aW1lb2ZkYXkoJnRwc3RhcnQsIE5VTEwpOwotICAgICAgICByZXMgPSBnZXRhZGRyaW5mbyhhZGRyZXNzLCBOVUxMLCAmaGludHMsICZhaXMpOwotICAgICAgICBnZXR0aW1lb2ZkYXkoJnRwZW5kLCBOVUxMKTsKKyAgICAgICAgbmV0c25tcF9nZXRfbW9ub3RvbmljX2Nsb2NrKCZ0cHN0YXJ0KTsKKyAgICAgICAgcmVzID0gbmV0c25tcF9nZXRhZGRyaW5mbyhhZGRyZXNzLCBOVUxMLCAmaGludHMsICZhaXMpOworICAgICAgICBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soJnRwZW5kKTsKICAgICAgICAgdGltZXVzZTYgPSAxMDAwMDAwICogKHRwZW5kLnR2X3NlYyAtIHRwc3RhcnQudHZfc2VjKSArCiAgICAgICAgICAgICB0cGVuZC50dl91c2VjIC0gdHBzdGFydC50dl91c2VjOwogCkBAIC02MTYsMTQgKzY0OSwxNCBAQAogICAgICAgICAgICAgICAgIHN3aXRjaCAoYWlwLT5haV9mYW1pbHkpIHsKICAgICAgICAgICAgICAgICBjYXNlIEFGX0lORVQ6CiAgICAgICAgICAgICAgICAgICAgIGluZXRfbnRvcChhaXAtPmFpX2ZhbWlseSwKLSAgICAgICAgICAgICAgICAgICAgICAgICYoKHN0cnVjdCBzb2NrYWRkcl9pbiAqKWFpcC0+YWlfYWRkciktPnNpbl9hZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICYoKHN0cnVjdCBzb2NrYWRkcl9pbiAqKWFpcC0+YWlfYWRkciktPnNpbl9hZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgYnVmLCBzaXplb2YoYnVmKSk7CiAgICAgICAgICAgICAgICAgICAgIGJ1ZmxlbiA9IHN0cmxlbihidWYpOwogICAgICAgICAgICAgICAgICAgICB0ZW1wID0gYWRkX3Jlc3VsdChpdGVtLCBuLCBJTkVUQUREUkVTU1RZUEVfSVBWNCwgYnVmLCBidWZsZW4pOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIEFGX0lORVQ2OgogICAgICAgICAgICAgICAgICAgICBpbmV0X250b3AoYWlwLT5haV9mYW1pbHksCi0gICAgICAgICAgICAgICAgICAgICAgICAmKChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopYWlwLT5haV9hZGRyKS0+c2luNl9hZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICYoKHN0cnVjdCBzb2NrYWRkcl9pbjYgKilhaXAtPmFpX2FkZHIpLT5zaW42X2FkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIHNpemVvZihidWYpKTsKICAgICAgICAgICAgICAgICAgICAgYnVmbGVuID0gc3RybGVuKGJ1Zik7CiAgICAgICAgICAgICAgICAgICAgIHRlbXAgPSBhZGRfcmVzdWx0KGl0ZW0sIG4sIElORVRBRERSRVNTVFlQRV9JUFY2LCBidWYsIGJ1Zmxlbik7CkBAIC02NDYsOSArNjc5LDkgQEAKICAgICAgICAgICAgIGZyZWVhZGRyaW5mbyhhaXMpOwogICAgICAgICB9CiAjZWxpZiBIQVZFX0dFVEhPU1RCWU5BTUUyCi0gICAgICAgIGdldHRpbWVvZmRheSgmdHBzdGFydCwgTlVMTCk7CisgICAgICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmdHBzdGFydCk7CiAgICAgICAgIGxvb2t1cCA9IGdldGhvc3RieW5hbWUyKGFkZHJlc3MsIEFGX0lORVQ2KTsKLSAgICAgICAgZ2V0dGltZW9mZGF5KCZ0cGVuZCwgTlVMTCk7CisgICAgICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmdHBlbmQpOwogICAgICAgICB0aW1ldXNlNiA9IDEwMDAwMDAgKiAodHBlbmQudHZfc2VjIC0gdHBzdGFydC50dl9zZWMpICsKICAgICAgICAgICAgIHRwZW5kLnR2X3VzZWMgLSB0cHN0YXJ0LnR2X3VzZWM7CiAKQEAgLTcxNSw5ICs3NDgsOSBAQAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBERUJVR01TR1RMKCgibG9va3VwQ3RsVGFibGUiLCAiZXJyb3IhIFxuIikpOwogCi0gICAgICAgIGdldHRpbWVvZmRheSgmdHBzdGFydCwgTlVMTCk7Ci0gICAgICAgIGxvb2t1cCA9IGdldGhvc3RieWFkZHIoJmFkZHJfaW42LCBzaXplb2YoYWRkcl9pbjYpLCBBRl9JTkVUNik7Ci0gICAgICAgIGdldHRpbWVvZmRheSgmdHBlbmQsIE5VTEwpOworICAgICAgICBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soJnRwc3RhcnQpOworICAgICAgICBsb29rdXAgPSBuZXRzbm1wX2dldGhvc3RieWFkZHIoJmFkZHJfaW42LCBzaXplb2YoYWRkcl9pbjYpLCBBRl9JTkVUNik7CisgICAgICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmdHBlbmQpOwogICAgICAgICB0aW1ldXNlID0gMTAwMDAwMCAqICh0cGVuZC50dl9zZWMgLSB0cHN0YXJ0LnR2X3NlYykgKwogICAgICAgICAgICAgdHBlbmQudHZfdXNlYyAtIHRwc3RhcnQudHZfdXNlYzsKICAgICAgICAgdGltZXVzZSAvPSAxMDAwOwpAQCAtODkyLDYgKzkyNSw3IEBACiB9CiAKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKIGludAogd3JpdGVfbG9va3VwQ3RsVGFyZ2V0QWRkcmVzc1R5cGUoaW50IGFjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfY2hhciAqIHZhcl92YWwsCkBAIC0xMzc4LDMgKzE0MTIsNCBAQAogICAgIH0KICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKIH0KKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuaCBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5oCmluZGV4IDdhNzI5YWIuLjA4NWIyNWIgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5oCisrKyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5oCkBAIC02NCwxMiArNjQsMTMgQEAKIHZvaWQgICAgICAgICAgICBwYXJzZV9sb29rdXBDdGxUYWJsZShjb25zdCBjaGFyICosIGNoYXIgKik7CiBTTk1QQ2FsbGJhY2sgICAgc3RvcmVfbG9va3VwQ3RsVGFibGU7CiAKLQorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgCiBXcml0ZU1ldGhvZCAgICAgd3JpdGVfbG9va3VwQ3RsVGFyZ2V0QWRkcmVzc1R5cGU7CiBXcml0ZU1ldGhvZCAgICAgd3JpdGVfbG9va3VwQ3RsVGFyZ2V0QWRkcmVzczsKIFdyaXRlTWV0aG9kICAgICB3cml0ZV9sb29rdXBDdGxSb3dTdGF0dXM7CiAKIFdyaXRlTWV0aG9kICAgICB3cml0ZV9sb29rdXBDdGxSb3dTdGF0dXM7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAvKgogICogY29sdW1uIG51bWJlciBkZWZpbml0aW9ucyBmb3IgdGFibGUgbG9va3VwQ3RsVGFibGUgCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jCmluZGV4IDM1MjE4ZjguLjg3YjA5ZWYgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jCkBAIC01NSw2ICs1NSw3IEBACiBzdGF0aWMgX19pbmxpbmVfXyBpbnQgaXB2Nl9hZGRyX2FueShzdHJ1Y3QgaW42X2FkZHIgKik7CiBzdGF0aWMgY2hhciAgICAqcHJfYWRkcihzdHJ1Y3QgaW42X2FkZHIgKiwgaW50KTsKIHN0YXRpYyBjaGFyICAgICpwcl9hZGRyX24oc3RydWN0IGluNl9hZGRyICopOwordm9pZCBwaW5nQ3RsVGFibGVfY2xlYW5lcihzdHJ1Y3QgaGVhZGVyX2NvbXBsZXhfaW5kZXggKnRoZXN0dWZmKTsKIAogLyoKICAqcGluZ0N0bFRhYmxlX3ZhcmlhYmxlc19vaWQ6CkBAIC02NCw2ICs2NSw3IEBACiAKIG9pZCAgICAgICAgICAgICBwaW5nQ3RsVGFibGVfdmFyaWFibGVzX29pZFtdID0KICAgICB7IDEsIDMsIDYsIDEsIDIsIDEsIDgwLCAxLCAyIH07CitzdGF0aWMgY29uc3QgaW50IHBpbmdDdGxUYWJsZV92YXJpYWJsZXNfb2lkX2xlbiA9IHNpemVvZihwaW5nQ3RsVGFibGVfdmFyaWFibGVzX29pZCkvc2l6ZW9mKHBpbmdDdGxUYWJsZV92YXJpYWJsZXNfb2lkWzBdKTsKIAogLyogdHJhcCAqLwogb2lkICAgICAgICAgICAgIHBpbmdQcm9iZUZhaWxlZFtdID0geyAxLCAzLCA2LCAxLCAyLCAxLCA4MCwgMCwgMSB9OwpAQCAtMTU3LDE0ICsxNTksMjQgQEAKICAgICBERUJVR01TR1RMKCgicGluZ0N0bFRhYmxlIiwgImRvbmUuXG4iKSk7CiB9CiAKK3ZvaWQgc2h1dGRvd25fcGluZ0N0bFRhYmxlKHZvaWQpCit7CisgICAgc25tcF91bnJlZ2lzdGVyX2NhbGxiYWNrKFNOTVBfQ0FMTEJBQ0tfTElCUkFSWSwgU05NUF9DQUxMQkFDS19TVE9SRV9EQVRBLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZV9waW5nQ3RsVGFibGUsIE5VTEwsIDEpOworICAgIHNubXBkX3VucmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoInBpbmdDdGxUYWJsZSIpOworICAgIHVucmVnaXN0ZXJfbWliKHBpbmdDdGxUYWJsZV92YXJpYWJsZXNfb2lkLCBwaW5nQ3RsVGFibGVfdmFyaWFibGVzX29pZF9sZW4pOworICAgIHBpbmdDdGxUYWJsZV9jbGVhbmVyKHBpbmdDdGxUYWJsZVN0b3JhZ2UpOworICAgIHBpbmdDdGxUYWJsZVN0b3JhZ2UgPSBOVUxMOworfQorCiBzdHJ1Y3QgcGluZ0N0bFRhYmxlX2RhdGEgKgogY3JlYXRlX3BpbmdDdGxUYWJsZV9kYXRhKHZvaWQpCiB7CiAgICAgc3RydWN0IHBpbmdDdGxUYWJsZV9kYXRhICpTdG9yYWdlTmV3ID0gTlVMTDsKKwogICAgIFN0b3JhZ2VOZXcgPSBTTk1QX01BTExPQ19TVFJVQ1QocGluZ0N0bFRhYmxlX2RhdGEpOwotICAgIGlmIChTdG9yYWdlTmV3ID09IE5VTEwpIHsKLSAgICAgICAgZXhpdCgxKTsKLSAgICB9CisgICAgaWYgKFN0b3JhZ2VOZXcgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgU3RvcmFnZU5ldy0+cGluZ0N0bFRhcmdldEFkZHJlc3NUeXBlID0gMTsKICAgICBTdG9yYWdlTmV3LT5waW5nQ3RsVGFyZ2V0QWRkcmVzcyA9IHN0cmR1cCgiIik7CiAgICAgU3RvcmFnZU5ldy0+cGluZ0N0bFRhcmdldEFkZHJlc3NMZW4gPSAwOwpAQCAtMTcyLDE5ICsxODQsMTcgQEAKICAgICBTdG9yYWdlTmV3LT5waW5nQ3RsVGltZU91dCA9IDM7CiAgICAgU3RvcmFnZU5ldy0+cGluZ0N0bFByb2JlQ291bnQgPSAxOwogICAgIFN0b3JhZ2VOZXctPnBpbmdDdGxBZG1pblN0YXR1cyA9IDI7Ci0gICAgU3RvcmFnZU5ldy0+cGluZ0N0bERhdGFGaWxsID0gKGNoYXIgKikgbWFsbG9jKHN0cmxlbigiMDAiKSArIDEpOworICAgIFN0b3JhZ2VOZXctPnBpbmdDdGxEYXRhRmlsbCA9IHN0cmR1cCgiMDAiKTsKICAgICBpZiAoU3RvcmFnZU5ldy0+cGluZ0N0bERhdGFGaWxsID09IE5VTEwpIHsKLSAgICAgICAgZXhpdCgxKTsKKyAgICAgICAgZnJlZShTdG9yYWdlTmV3KTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIG1lbWNweShTdG9yYWdlTmV3LT5waW5nQ3RsRGF0YUZpbGwsICIwMCIsIHN0cmxlbigiMDAiKSArIDEpOwotICAgIFN0b3JhZ2VOZXctPnBpbmdDdGxEYXRhRmlsbFtzdHJsZW4oIjAwIildID0gJ1wwJzsKICAgICBTdG9yYWdlTmV3LT5waW5nQ3RsRGF0YUZpbGxMZW4gPSBzdHJsZW4oU3RvcmFnZU5ldy0+cGluZ0N0bERhdGFGaWxsKTsKICAgICBTdG9yYWdlTmV3LT5waW5nQ3RsRnJlcXVlbmN5ID0gMDsKICAgICBTdG9yYWdlTmV3LT5waW5nQ3RsTWF4Um93cyA9IDUwOwogICAgIFN0b3JhZ2VOZXctPnBpbmdDdGxTdG9yYWdlVHlwZSA9IDE7CiAgICAgU3RvcmFnZU5ldy0+cGluZ0N0bFRyYXBHZW5lcmF0aW9uID0gc3RyZHVwKCIiKTsKICAgICBTdG9yYWdlTmV3LT5waW5nQ3RsVHJhcEdlbmVyYXRpb25MZW4gPSAwOwotICAgIFN0b3JhZ2VOZXctPnBpbmdDdGxUcmFwR2VuZXJhdGlvbkxlbiA9IDA7CiAgICAgU3RvcmFnZU5ldy0+cGluZ0N0bFRyYXBQcm9iZUZhaWx1cmVGaWx0ZXIgPSAxOwogICAgIFN0b3JhZ2VOZXctPnBpbmdDdGxUcmFwVGVzdEZhaWx1cmVGaWx0ZXIgPSAxOwogICAgIFN0b3JhZ2VOZXctPnBpbmdDdGxUeXBlID0gY2FsbG9jKDEsIHNpemVvZihvaWQpICogc2l6ZW9mKDIpKTsgICAgICAgLyogMC4wICovCkBAIC0yMDUsNiArMjE1LDIwIEBACiAgICAgcmV0dXJuIFN0b3JhZ2VOZXc7CiB9CiAKK3N0YXRpYyB2b2lkIGZyZWVfcGluZ0N0bFRhYmxlX2RhdGEoc3RydWN0IHBpbmdDdGxUYWJsZV9kYXRhICpTdG9yYWdlRGVsKQoreworICAgIG5ldHNubXBfYXNzZXJ0KFN0b3JhZ2VEZWwpOworICAgIGZyZWUoU3RvcmFnZURlbC0+cGluZ0N0bE93bmVySW5kZXgpOworICAgIGZyZWUoU3RvcmFnZURlbC0+cGluZ0N0bFRlc3ROYW1lKTsKKyAgICBmcmVlKFN0b3JhZ2VEZWwtPnBpbmdDdGxUYXJnZXRBZGRyZXNzKTsKKyAgICBmcmVlKFN0b3JhZ2VEZWwtPnBpbmdDdGxEYXRhRmlsbCk7CisgICAgZnJlZShTdG9yYWdlRGVsLT5waW5nQ3RsVHJhcEdlbmVyYXRpb24pOworICAgIGZyZWUoU3RvcmFnZURlbC0+cGluZ0N0bFR5cGUpOworICAgIGZyZWUoU3RvcmFnZURlbC0+cGluZ0N0bERlc2NyKTsKKyAgICBmcmVlKFN0b3JhZ2VEZWwtPnBpbmdDdGxTb3VyY2VBZGRyZXNzKTsKKyAgICBmcmVlKFN0b3JhZ2VEZWwpOworfQorCiAvKgogICogcGluZ0N0bFRhYmxlX2FkZCgpOiBhZGRzIGEgc3RydWN0dXJlIG5vZGUgdG8gb3VyIGRhdGEgc2V0IAogICovCkBAIC0yMjEsMTUgKzI0NSwxNiBAQAogICAgICAqLwogCiAKLSAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLCAoY2hhciAqKSB0aGVkYXRhLT5waW5nQ3RsT3duZXJJbmRleCwgdGhlZGF0YS0+cGluZ0N0bE93bmVySW5kZXhMZW4pOyAgICAgICAvKiBwaW5nQ3RsT3duZXJJbmRleCAqLwotICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnMsIE5VTEwsIDAsIEFTTl9PQ1RFVF9TVFIsIChjaGFyICopIHRoZWRhdGEtPnBpbmdDdGxUZXN0TmFtZSwgdGhlZGF0YS0+cGluZ0N0bFRlc3ROYW1lTGVuKTsgICAvKiBwaW5nQ3RsT3BlcmF0aW9uTmFtZSAqLwotCi0KKyAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlZGF0YS0+cGluZ0N0bE93bmVySW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVkYXRhLT5waW5nQ3RsT3duZXJJbmRleExlbik7CisgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFycywgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZWRhdGEtPnBpbmdDdGxUZXN0TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZWRhdGEtPnBpbmdDdGxUZXN0TmFtZUxlbik7CiAgICAgaGVhZGVyX2NvbXBsZXhfYWRkX2RhdGEoJnBpbmdDdGxUYWJsZVN0b3JhZ2UsIHZhcnMsIHRoZWRhdGEpOwogCiAgICAgREVCVUdNU0dUTCgoInBpbmdDdGxUYWJsZSIsICJyZWdpc3RlcmVkIGFuIGVudHJ5XG4iKSk7Ci0gICAgdmFycyA9IE5VTEw7Ci0gICAgREVCVUdNU0dUTCgoInBpbmdDdGxUYWJsZSIsICJkb25lLlxuIikpOworCiAgICAgcmV0dXJuIFNOTVBFUlJfU1VDQ0VTUzsKIH0KIApAQCAtMjM3LDEyICsyNjIsMTYgQEAKIHBpbmdSZXN1bHRzVGFibGVfYWRkKHN0cnVjdCBwaW5nQ3RsVGFibGVfZGF0YSAqdGhlZGF0YSkKIHsKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhcnNfbGlzdCA9IE5VTEw7Ci0gICAgc3RydWN0IHBpbmdSZXN1bHRzVGFibGVfZGF0YSAqcCA9IE5VTEw7CisgICAgc3RydWN0IHBpbmdSZXN1bHRzVGFibGVfZGF0YSAqcDsKKwogICAgIHAgPSB0aGVkYXRhLT5waW5nUmVzdWx0czsKICAgICBpZiAodGhlZGF0YS0+cGluZ1Jlc3VsdHMgIT0gTlVMTCkgewogCi0gICAgICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnNfbGlzdCwgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwgKGNoYXIgKikgcC0+cGluZ0N0bE93bmVySW5kZXgsIHAtPnBpbmdDdGxPd25lckluZGV4TGVuKTsgIC8qIHBpbmdDdGxPd25lckluZGV4ICovCi0gICAgICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnNfbGlzdCwgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwgKGNoYXIgKikgcC0+cGluZ0N0bFRlc3ROYW1lLCBwLT5waW5nQ3RsVGVzdE5hbWVMZW4pOyAgICAgIC8qIHBpbmdDdGxPcGVyYXRpb25OYW1lICovCisgICAgICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnNfbGlzdCwgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLT5waW5nQ3RsT3duZXJJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLT5waW5nQ3RsT3duZXJJbmRleExlbik7CisgICAgICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnNfbGlzdCwgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLT5waW5nQ3RsVGVzdE5hbWUsIHAtPnBpbmdDdGxUZXN0TmFtZUxlbik7CiAKICAgICAgICAgLyoKICAgICAgICAgICogWFhYOiBmaWxsIGluIGRlZmF1bHQgcm93IHZhbHVlcyBoZXJlIGludG8gU3RvcmFnZU5ldyAKQEAgLTI2Miw4ICsyOTEsNiBAQAogCiAgICAgfQogCi0gICAgREVCVUdNU0dUTCgoInBpbmdSZXN1bHRzVGFibGUiLCAiZG9uZS5cbiIpKTsKLSAgICB2YXJzX2xpc3QgPSBOVUxMOwogICAgIHJldHVybiBTTk1QRVJSX1NVQ0NFU1M7CiB9CiAKQEAgLTI3MiwxMSArMjk5LDE4IEBACiBwaW5nUHJvYmVIaXN0b3J5VGFibGVfYWRkKHN0cnVjdCBwaW5nUHJvYmVIaXN0b3J5VGFibGVfZGF0YSAqdGhlZGF0YSkKIHsKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhcnNfbGlzdDsKKwogICAgIHZhcnNfbGlzdCA9IE5VTEw7CiAgICAgaWYgKHRoZWRhdGEgIT0gTlVMTCkgewotICAgICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzX2xpc3QsIE5VTEwsIDAsIEFTTl9PQ1RFVF9TVFIsIChjaGFyICopIHRoZWRhdGEtPnBpbmdDdGxPd25lckluZGV4LCB0aGVkYXRhLT5waW5nQ3RsT3duZXJJbmRleExlbik7ICAgICAgLyogcGluZ0N0bE93bmVySW5kZXggKi8KLSAgICAgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFyc19saXN0LCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLCAoY2hhciAqKSB0aGVkYXRhLT5waW5nQ3RsVGVzdE5hbWUsIHRoZWRhdGEtPnBpbmdDdGxUZXN0TmFtZUxlbik7ICAvKiBwaW5nQ3RsVGVzdE5hbWUgKi8KLSAgICAgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFyc19saXN0LCBOVUxMLCAwLCBBU05fVU5TSUdORUQsIChjaGFyICopICZ0aGVkYXRhLT5waW5nUHJvYmVIaXN0b3J5SW5kZXgsIHNpemVvZih0aGVkYXRhLT5waW5nUHJvYmVIaXN0b3J5SW5kZXgpKTsgLyogcGluZ1Byb2JlSGlzdG9yeUluZGV4ICovCisgICAgICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnNfbGlzdCwgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVkYXRhLT5waW5nQ3RsT3duZXJJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVkYXRhLT5waW5nQ3RsT3duZXJJbmRleExlbik7CisgICAgICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnNfbGlzdCwgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVkYXRhLT5waW5nQ3RsVGVzdE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlZGF0YS0+cGluZ0N0bFRlc3ROYW1lTGVuKTsKKyAgICAgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFyc19saXN0LCBOVUxMLCAwLCBBU05fVU5TSUdORUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRoZWRhdGEtPnBpbmdQcm9iZUhpc3RvcnlJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodGhlZGF0YS0+cGluZ1Byb2JlSGlzdG9yeUluZGV4KSk7CiAKICAgICAgICAgLyoKICAgICAgICAgICogWFhYOiBmaWxsIGluIGRlZmF1bHQgcm93IHZhbHVlcyBoZXJlIGludG8gU3RvcmFnZU5ldyAKQEAgLTI5NSw1NiArMzI5LDQzIEBACiAgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nUHJvYmVIaXN0b3J5VGFibGUiLCAib3V0IGZpbmlzaGVkXG4iKSk7CiAgICAgfQogICAgIAotICAgIHZhcnNfbGlzdCA9IE5VTEw7Ci0gICAgREVCVUdNU0dUTCgoInBpbmdQcm9iZUhpc3RvcnlUYWJsZSIsICJkb25lLlxuIikpOwogICAgIHJldHVybiBTTk1QRVJSX1NVQ0NFU1M7CiB9CiAKIGludAogcGluZ1Byb2JlSGlzdG9yeVRhYmxlX2FkZGFsbChzdHJ1Y3QgcGluZ0N0bFRhYmxlX2RhdGEgKnRoZWRhdGEpCiB7Ci0gICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXJzX2xpc3QgPSBOVUxMOwotICAgIHN0cnVjdCBwaW5nUHJvYmVIaXN0b3J5VGFibGVfZGF0YSAqcCA9IE5VTEw7Ci0gICAgcCA9IHRoZWRhdGEtPnBpbmdQcm9iZUhpczsKLSAgICBpZiAodGhlZGF0YS0+cGluZ1Byb2JlSGlzICE9IE5VTEwpCi0gICAgICAgIGRvIHsKLSAgICAgICAgICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnNfbGlzdCwgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwgKGNoYXIgKikgcC0+cGluZ0N0bE93bmVySW5kZXgsIHAtPnBpbmdDdGxPd25lckluZGV4TGVuKTsgICAgICAvKiBwaW5nQ3RsT3duZXJJbmRleCAqLwotICAgICAgICAgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFyc19saXN0LCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLCAoY2hhciAqKSBwLT5waW5nQ3RsVGVzdE5hbWUsIHAtPnBpbmdDdGxUZXN0TmFtZUxlbik7ICAvKiBwaW5nQ3RsVGVzdE5hbWUgKi8KLSAgICAgICAgICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnNfbGlzdCwgTlVMTCwgMCwgQVNOX1VOU0lHTkVELCAoY2hhciAqKSAmcC0+cGluZ1Byb2JlSGlzdG9yeUluZGV4LCBzaXplb2YocC0+cGluZ1Byb2JlSGlzdG9yeUluZGV4KSk7IC8qIHBpbmdQcm9iZUhpc3RvcnlJbmRleCAqLworICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFyc19saXN0OworICAgIHN0cnVjdCBwaW5nUHJvYmVIaXN0b3J5VGFibGVfZGF0YSAqcDsKIAotICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIFhYWDogZmlsbCBpbiBkZWZhdWx0IHJvdyB2YWx1ZXMgaGVyZSBpbnRvIFN0b3JhZ2VOZXcgCi0gICAgICAgICAgICAgKiAKLSAgICAgICAgICAgICAqLworICAgIGZvciAocCA9IHRoZWRhdGEtPnBpbmdQcm9iZUhpczsgcDsgcCA9IHAtPm5leHQpIHsKKyAgICAgICAgdmFyc19saXN0ID0gTlVMTDsKKyAgICAgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFyc19saXN0LCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAtPnBpbmdDdGxPd25lckluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAtPnBpbmdDdGxPd25lckluZGV4TGVuKTsKKyAgICAgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFyc19saXN0LCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAtPnBpbmdDdGxUZXN0TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLT5waW5nQ3RsVGVzdE5hbWVMZW4pOworICAgICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzX2xpc3QsIE5VTEwsIDAsIEFTTl9VTlNJR05FRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcC0+cGluZ1Byb2JlSGlzdG9yeUluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihwLT5waW5nUHJvYmVIaXN0b3J5SW5kZXgpKTsKKyAgICAgICAgaGVhZGVyX2NvbXBsZXhfYWRkX2RhdGEoJnBpbmdQcm9iZUhpc3RvcnlUYWJsZVN0b3JhZ2UsIHZhcnNfbGlzdCwgcCk7CisgICAgfQogCi0KLSAgICAgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nUHJvYmVIaXN0b3J5VGFibGUiLCAiYWRkaW5nIGRhdGEuLi4gICIpKTsKLSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgKiBhZGQgdGhlIGluZGV4IHZhcmlhYmxlcyB0byB0aGUgdmFyYmluZCBsaXN0LCB3aGljaCBpcyAKLSAgICAgICAgICAgICAqIHVzZWQgYnkgaGVhZGVyX2NvbXBsZXggdG8gaW5kZXggdGhlIGRhdGEgCi0gICAgICAgICAgICAgKi8KLQotICAgICAgICAgICAgaGVhZGVyX2NvbXBsZXhfYWRkX2RhdGEoJnBpbmdQcm9iZUhpc3RvcnlUYWJsZVN0b3JhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJzX2xpc3QsIHApOwotCi0KLSAgICAgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nUHJvYmVIaXN0b3J5VGFibGUiLCAib3V0IGZpbmlzaGVkXG4iKSk7Ci0gICAgICAgICAgICB2YXJzX2xpc3QgPSBOVUxMOwotICAgICAgICAgICAgcCA9IHAtPm5leHQ7Ci0gICAgICAgIH0gd2hpbGUgKHAgIT0gTlVMTCk7Ci0KLSAgICBERUJVR01TR1RMKCgicGluZ1Byb2JlSGlzdG9yeVRhYmxlIiwgImRvbmUuXG4iKSk7CiAgICAgcmV0dXJuIFNOTVBFUlJfU1VDQ0VTUzsKIH0KIAogdm9pZAogcGluZ0N0bFRhYmxlX2NsZWFuZXIoc3RydWN0IGhlYWRlcl9jb21wbGV4X2luZGV4ICp0aGVzdHVmZikKIHsKLSAgICBzdHJ1Y3QgaGVhZGVyX2NvbXBsZXhfaW5kZXggKmhjaXB0cjsKKyAgICBzdHJ1Y3QgaGVhZGVyX2NvbXBsZXhfaW5kZXggKmhjaXB0ciwgKm5leHQ7CisgICAgc3RydWN0IHBpbmdDdGxUYWJsZV9kYXRhICpTdG9yYWdlRGVsOwogCiAgICAgREVCVUdNU0dUTCgoInBpbmdQcm9iZUhpc3RvcnlUYWJsZSIsICJjbGVhbmVyb3V0ICAiKSk7Ci0gICAgZm9yIChoY2lwdHIgPSB0aGVzdHVmZjsgaGNpcHRyICE9IE5VTEw7IGhjaXB0ciA9IGhjaXB0ci0+bmV4dCkgewotICAgICAgICBoZWFkZXJfY29tcGxleF9leHRyYWN0X2VudHJ5KCZwaW5nQ3RsVGFibGVTdG9yYWdlLCBoY2lwdHIpOworICAgIGZvciAoaGNpcHRyID0gdGhlc3R1ZmY7IGhjaXB0cjsgaGNpcHRyID0gbmV4dCkgeworICAgICAgICBuZXh0ID0gaGNpcHRyLT5uZXh0OworICAgICAgICBTdG9yYWdlRGVsID0gaGVhZGVyX2NvbXBsZXhfZXh0cmFjdF9lbnRyeSgmcGluZ0N0bFRhYmxlU3RvcmFnZSwgaGNpcHRyKTsKKyAgICAgICAgZnJlZV9waW5nQ3RsVGFibGVfZGF0YShTdG9yYWdlRGVsKTsKICAgICAgICAgREVCVUdNU0dUTCgoInBpbmdQcm9iZUhpc3RvcnlUYWJsZSIsICJjbGVhbmVyICAiKSk7CiAgICAgfQogfQpAQCAtODQyLDEwICs4NjMsMTUgQEAKICAgICBzaXplX3QgICAgICAgICAgbmV3b2lkX2xlbjsKICAgICB1bnNpZ25lZCBsb25nICAgY291bnQgPSAwOwogCi0gICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFycywgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwgKGNoYXIgKikgdGhlZGF0YS0+cGluZ0N0bE93bmVySW5kZXgsIHRoZWRhdGEtPnBpbmdDdGxPd25lckluZGV4TGVuKTsgICAgICAgLyogcGluZ0N0bE93bmVySW5kZXggKi8KLSAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLCAoY2hhciAqKSB0aGVkYXRhLT5waW5nQ3RsVGVzdE5hbWUsIHRoZWRhdGEtPnBpbmdDdGxUZXN0TmFtZUxlbik7ICAgLyogcGluZ0N0bE9wZXJhdGlvbk5hbWUgKi8KKyAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlZGF0YS0+cGluZ0N0bE93bmVySW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVkYXRhLT5waW5nQ3RsT3duZXJJbmRleExlbik7CisgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFycywgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZWRhdGEtPnBpbmdDdGxUZXN0TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZWRhdGEtPnBpbmdDdGxUZXN0TmFtZUxlbik7CiAKICAgICBoZWFkZXJfY29tcGxleF9nZW5lcmF0ZV9vaWQobmV3b2lkLCAmbmV3b2lkX2xlbiwgTlVMTCwgMCwgdmFycyk7CisgICAgc25tcF9mcmVlX3ZhcmJpbmQodmFycyk7CiAKICAgICBmb3IgKGhjaXB0cjIgPSBwaW5nUHJvYmVIaXN0b3J5VGFibGVTdG9yYWdlOyBoY2lwdHIyICE9IE5VTEw7CiAgICAgICAgICBoY2lwdHIyID0gaGNpcHRyMi0+bmV4dCkgewpAQCAtODYzLDE3ICs4ODksMjEgQEAKIHsKICAgICBzdHJ1Y3QgaGVhZGVyX2NvbXBsZXhfaW5kZXggKmhjaXB0cjIgPSBOVUxMOwogICAgIHN0cnVjdCBoZWFkZXJfY29tcGxleF9pbmRleCAqaGNpbGFzdCA9IE5VTEw7Ci0gICAgc3RydWN0IHBpbmdQcm9iZUhpc3RvcnlUYWJsZV9kYXRhICpTdG9yYWdlVG1wID0gTlVMTDsKKyAgICBzdHJ1Y3QgcGluZ1Byb2JlSGlzdG9yeVRhYmxlX2RhdGEgKlN0b3JhZ2VUbXAsICpTdG9yYWdlRGVsOwogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFycyA9IE5VTEw7CiAgICAgb2lkICAgICAgICAgICAgIG5ld29pZFtNQVhfT0lEX0xFTl07CiAgICAgc2l6ZV90ICAgICAgICAgIG5ld29pZF9sZW47CiAgICAgdGltZV90ICAgICAgICAgIGxhc3RfdGltZSA9IDIxNDc0ODM2NDc7CiAgICAgdGltZV90ICAgICAgICAgIHRwOwogCi0gICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFycywgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwgKGNoYXIgKikgdGhlZGF0YS0+cGluZ0N0bE93bmVySW5kZXgsIHRoZWRhdGEtPnBpbmdDdGxPd25lckluZGV4TGVuKTsgICAgICAgLyogcGluZ0N0bE93bmVySW5kZXggKi8KLSAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLCAoY2hhciAqKSB0aGVkYXRhLT5waW5nQ3RsVGVzdE5hbWUsIHRoZWRhdGEtPnBpbmdDdGxUZXN0TmFtZUxlbik7ICAgLyogcGluZ0N0bE9wZXJhdGlvbk5hbWUgKi8KLQorICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnMsIE5VTEwsIDAsIEFTTl9PQ1RFVF9TVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVkYXRhLT5waW5nQ3RsT3duZXJJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZWRhdGEtPnBpbmdDdGxPd25lckluZGV4TGVuKTsKKyAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlZGF0YS0+cGluZ0N0bFRlc3ROYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlZGF0YS0+cGluZ0N0bFRlc3ROYW1lTGVuKTsKICAgICBoZWFkZXJfY29tcGxleF9nZW5lcmF0ZV9vaWQobmV3b2lkLCAmbmV3b2lkX2xlbiwgTlVMTCwgMCwgdmFycyk7CisgICAgc25tcF9mcmVlX3ZhcmJpbmQodmFycyk7CiAKICAgICBmb3IgKGhjaWxhc3QgPSBoY2lwdHIyID0gcGluZ1Byb2JlSGlzdG9yeVRhYmxlU3RvcmFnZTsgaGNpcHRyMiAhPSBOVUxMOwogICAgICAgICAgaGNpcHRyMiA9IGhjaXB0cjItPm5leHQpIHsKQEAgLTg5Myw3ICs5MjMsMjUgQEAKIAogICAgICAgICB9CiAgICAgfQotICAgIGhlYWRlcl9jb21wbGV4X2V4dHJhY3RfZW50cnkoJnBpbmdQcm9iZUhpc3RvcnlUYWJsZVN0b3JhZ2UsIGhjaWxhc3QpOworICAgIFN0b3JhZ2VEZWwgPQorICAgICAgICBoZWFkZXJfY29tcGxleF9leHRyYWN0X2VudHJ5KCZwaW5nUHJvYmVIaXN0b3J5VGFibGVTdG9yYWdlLCBoY2lsYXN0KTsKKyAgICBmb3IgKGhjaXB0cjIgPSBwaW5nQ3RsVGFibGVTdG9yYWdlOyBoY2lwdHIyOyBoY2lwdHIyID0gaGNpcHRyMi0+bmV4dCkgeworICAgICAgICBzdHJ1Y3QgcGluZ0N0bFRhYmxlX2RhdGEgKnRtcDsKKworICAgICAgICB0bXAgPSBoY2lwdHIyLT5kYXRhOworICAgICAgICBpZiAodG1wLT5waW5nUHJvYmVIaXMgPT0gU3RvcmFnZURlbCkgeworICAgICAgICAgICAgdG1wLT5waW5nUHJvYmVIaXMgPSB0bXAtPnBpbmdQcm9iZUhpcy0+bmV4dDsKKyAgICAgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nUHJvYmVIaXN0b3J5VGFibGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgImRlbGV0aW5nIHRoZSBsYXN0IG9uZSBzdWNjZWVkZWQhXG4iKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAJfQorICAgIH0KKyAgICBpZiAoU3RvcmFnZURlbCkgeworICAgICAgICBmcmVlKFN0b3JhZ2VEZWwtPnBpbmdQcm9iZUhpc3RvcnlUaW1lKTsKKyAgICAgICAgZnJlZShTdG9yYWdlRGVsLT5waW5nQ3RsVGVzdE5hbWUpOworICAgICAgICBmcmVlKFN0b3JhZ2VEZWwtPnBpbmdDdGxPd25lckluZGV4KTsKKyAgICAgICAgZnJlZShTdG9yYWdlRGVsKTsKKyAgICB9CiAgICAgREVCVUdNU0dUTCgoInBpbmdQcm9iZUhpc3RvcnlUYWJsZSIsCiAgICAgICAgICAgICAgICAgImRlbGV0ZSB0aGUgbGFzdCBvbmUgc3VjY2VzcyFcbiIpKTsKIH0KQEAgLTk2OSw4ICsxMDE3LDEwIEBACiB7CiAgICAgY2hhciAgICAgICAgICAgKnB0cjsKIAotICAgIGlmICgocHRyID0gc29ja19udG9wX2hvc3Qoc2EsIHNhbGVuKSkgPT0gTlVMTCkKLSAgICAgICAgcHJpbnRmKCJzb2NrX250b3BfaG9zdCBlcnJvciIpOyAvKiBpbmV0X250b3AoKSBzZXRzIGVycm5vICovCisgICAgaWYgKChwdHIgPSBzb2NrX250b3BfaG9zdChzYSwgc2FsZW4pKSA9PSBOVUxMKSB7CisgICAgICAgIC8qIGluZXRfbnRvcCgpIHNldHMgZXJybm8gKi8KKyAgICAgICAgc25tcF9sb2dfcGVycm9yKCJwaW5nQ3RsVGFibGU6IHNvY2tfbnRvcF9ob3N0KCkiKTsKKyAgICB9CiAgICAgcmV0dXJuIChwdHIpOwogfQogCkBAIC0xMDIzLDcgKzEwNzMsNyBAQAogICAgIGhpbnRzLmFpX2ZhbWlseSA9IGZhbWlseTsgICAvKiBBRl9VTlNQRUMsIEFGX0lORVQsIEFGX0lORVQ2LCBldGMuICovCiAgICAgaGludHMuYWlfc29ja3R5cGUgPSBzb2NrdHlwZTsgICAgICAgLyogMCwgU09DS19TVFJFQU0sIFNPQ0tfREdSQU0sIGV0Yy4gKi8KIAotICAgIGlmICgobiA9IGdldGFkZHJpbmZvKGhvc3QsIHNlcnYsICZoaW50cywgJnJlcykpICE9IDApCisgICAgaWYgKChuID0gbmV0c25tcF9nZXRhZGRyaW5mbyhob3N0LCBzZXJ2LCAmaGludHMsICZyZXMpKSAhPSAwKQogICAgICAgICByZXR1cm4gKE5VTEwpOwogCiAgICAgcmV0dXJuIChyZXMpOyAgICAgICAgICAgICAgIC8qIHJldHVybiBwb2ludGVyIHRvIGZpcnN0IG9uIGxpbmtlZCBsaXN0ICovCkBAIC0xMDUxLDE3ICsxMTAxLDE4IEBACiAgICAgaGludHMuYWlfZmFtaWx5ID0gZmFtaWx5OyAgIC8qIDAsIEFGX0lORVQsIEFGX0lORVQ2LCBldGMuICovCiAgICAgaGludHMuYWlfc29ja3R5cGUgPSBzb2NrdHlwZTsgICAgICAgLyogMCwgU09DS19TVFJFQU0sIFNPQ0tfREdSQU0sIGV0Yy4gKi8KIAotICAgIGlmICgobiA9IGdldGFkZHJpbmZvKGhvc3QsIHNlcnYsICZoaW50cywgJnJlcykpICE9IDApCisgICAgaWYgKChuID0gbmV0c25tcF9nZXRhZGRyaW5mbyhob3N0LCBzZXJ2LCAmaGludHMsICZyZXMpKSAhPSAwKSB7CiAjaWYgSEFWRV9HQUlfU1RSRVJST1IKLSAgICAgICAgcHJpbnRmKCJob3N0X3NlcnYgZXJyb3IgZm9yICVzLCAlczogJXMiLAotICAgICAgICAgICAgICAgKGhvc3QgPT0gTlVMTCkgPyAiKG5vIGhvc3RuYW1lKSIgOiBob3N0LAotICAgICAgICAgICAgICAgKHNlcnYgPT0gTlVMTCkgPyAiKG5vIHNlcnZpY2UgbmFtZSkiIDogc2VydiwKLSAgICAgICAgICAgICAgIGdhaV9zdHJlcnJvcihuKSk7CisgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJob3N0X3NlcnYgZXJyb3IgZm9yICVzLCAlczogJXMiLAorICAgICAgICAgICAgICAgICAoaG9zdCA9PSBOVUxMKSA/ICIobm8gaG9zdG5hbWUpIiA6IGhvc3QsCisgICAgICAgICAgICAgICAgIChzZXJ2ID09IE5VTEwpID8gIihubyBzZXJ2aWNlIG5hbWUpIiA6IHNlcnYsCisgICAgICAgICAgICAgICAgIGdhaV9zdHJlcnJvcihuKSk7CiAjZWxzZQotICAgICAgICBwcmludGYoImhvc3Rfc2VydiBlcnJvciBmb3IgJXMsICVzIiwKLSAgICAgICAgICAgICAgIChob3N0ID09IE5VTEwpID8gIihubyBob3N0bmFtZSkiIDogaG9zdCwKLSAgICAgICAgICAgICAgIChzZXJ2ID09IE5VTEwpID8gIihubyBzZXJ2aWNlIG5hbWUpIiA6IHNlcnYpOworICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiaG9zdF9zZXJ2IGVycm9yIGZvciAlcywgJXMiLAorICAgICAgICAgICAgICAgICAoaG9zdCA9PSBOVUxMKSA/ICIobm8gaG9zdG5hbWUpIiA6IGhvc3QsCisgICAgICAgICAgICAgICAgIChzZXJ2ID09IE5VTEwpID8gIihubyBzZXJ2aWNlIG5hbWUpIiA6IHNlcnYpOwogI2VuZGlmCisgICAgfQogCiAgICAgcmV0dXJuIChyZXMpOyAgICAgICAgICAgICAgIC8qIHJldHVybiBwb2ludGVyIHRvIGZpcnN0IG9uIGxpbmtlZCBsaXN0ICovCiB9CkBAIC0xMTA1LDEzICsxMTU2LDE2IEBACiAgICAgb2lkICAgICAgICAgICAgIHBpbmdSZXN1bHRzU2VuZFByb2Jlc1tdID0KICAgICAgICAgeyAxLCAzLCA2LCAxLCAyLCAxLCA4MCwgMSwgMywgMSwgOCB9OwogCi0gICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFycywgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwgKGNoYXIgKikgaXRlbS0+cGluZ0N0bE93bmVySW5kZXgsIGl0ZW0tPnBpbmdDdGxPd25lckluZGV4TGVuKTsgICAgIC8qIHBpbmdDdGxPd25lckluZGV4ICovCi0gICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFycywgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwgKGNoYXIgKikgaXRlbS0+cGluZ0N0bFRlc3ROYW1lLCBpdGVtLT5waW5nQ3RsVGVzdE5hbWVMZW4pOyAvKiBwaW5nQ3RsT3BlcmF0aW9uTmFtZSAqLwotICAgIFN0b3JhZ2VUbXAgPSBTTk1QX01BTExPQ19TVFJVQ1QocGluZ1Jlc3VsdHNUYWJsZV9kYXRhKTsKLSAgICBpZiAoKFN0b3JhZ2VUbXAgPQotICAgICAgICAgKHN0cnVjdCBwaW5nUmVzdWx0c1RhYmxlX2RhdGEgKikKLSAgICAgICAgIGhlYWRlcl9jb21wbGV4X2dldChwaW5nUmVzdWx0c1RhYmxlU3RvcmFnZSwgdmFycykpID09IE5VTEwpCi0gICAgICAgIHJldHVybiA7CisgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFycywgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0tPnBpbmdDdGxPd25lckluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS0+cGluZ0N0bE93bmVySW5kZXhMZW4pOworICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnMsIE5VTEwsIDAsIEFTTl9PQ1RFVF9TVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLT5waW5nQ3RsVGVzdE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLT5waW5nQ3RsVGVzdE5hbWVMZW4pOworICAgIFN0b3JhZ2VUbXAgPSBoZWFkZXJfY29tcGxleF9nZXQocGluZ1Jlc3VsdHNUYWJsZVN0b3JhZ2UsIHZhcnMpOworICAgIHNubXBfZnJlZV92YXJiaW5kKHZhcnMpOworICAgIGlmICghU3RvcmFnZVRtcCkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgLyoKICAgICAgKiBzbm1wVHJhcCBvaWQgCkBAIC0xMjM3LDE0ICsxMjkxLDE2IEBACiAgICAgLyogc3RydWN0IHBpbmdQcm9iZUhpc3RvcnlUYWJsZV9kYXRhICogY3VycmVudD1OVUxMOyAqLwogICAgIHN0cnVjdCBwaW5nUHJvYmVIaXN0b3J5VGFibGVfZGF0YSBjdXJyZW50X3ZhcjsKICAgICBpbnQgICAgICAgICAgICAgc29ja2ZkOworICAgIGludCAgICAgICAgICAgICBzZWxlY3RfcmVzdWx0OwogICAgIGludCAgICAgICAgICAgICBjdXJyZW50X3Byb2JlX3RlbXA7CiAgICAgaW50ICAgICAgICAgICAgIHN1Y2Nlc3NfcHJvYmUgPSAwOwogICAgIGludCAgICAgICAgICAgICBmYWlsX3Byb2JlID0gMDsKICAgICBpbnQgICAgICAgICAgICAgZmxhZzsKLSAgICB1bnNpZ25lZCBsb25nICAqc3VtcnR0OworICAgIHVuc2lnbmVkIGxvbmcgICBzdW1ydHQ7CiAgICAgc3RydWN0IHRpbWV2YWwgIHR2OwogCi0gICAgc3VtcnR0ID0gKHVuc2lnbmVkIGxvbmcgKikgbWFsbG9jKHNpemVvZih1bnNpZ25lZCBsb25nKSk7CisgICAgbWVtc2V0KHNlbmRidWYsIDAsIHNpemVvZihzZW5kYnVmKSk7CisKICAgICBzb2NrZmQgPSBzb2NrZXQocHItPnNhc2VuZC0+c2FfZmFtaWx5LCBTT0NLX1JBVywgcHItPmljbXBwcm90byk7CiAgICAgaWYgKHNvY2tmZCA8IDApIHsKIAlzbm1wX2xvZ19wZXJyb3IoInBpbmdDdGxUYWJsZTogZmFpbGVkIHRvIGNyZWF0ZSBzb2NrZXQiKTsKQEAgLTEyNjMsMjkgKzEzMTksMjkgQEAKICAgICAgICAgKCpwci0+ZnNlbmQpIChkYXRhbGVuLCBwaWQsIG5zZW50LCBzb2NrZmQsIHNlbmRidWYpOwogICAgICAgICBuc2VudCsrOwogICAgICAgICBsZW4gPSBwci0+c2FsZW47Ci0gICAgICAgIGlmIChyZWFkYWJsZV90aW1lbyhzb2NrZmQsIGl0ZW0tPnBpbmdDdGxUaW1lT3V0KSA9PSAwKSB7Ci0gICAgICAgICAgICAvKiBwcmludGYoInNvY2tldCB0aW1lb3V0IVxuIik7ICovCi0gICAgICAgICAgICBuID0gLTE7Ci0gICAgICAgICAgICBmYWlsX3Byb2JlID0gZmFpbF9wcm9iZSArIDE7Ci0gICAgICAgICAgICBmbGFnID0gMTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG4gPSByZWN2ZnJvbShzb2NrZmQsIHJlY3ZidWYsIHNpemVvZihyZWN2YnVmKSwgMCwgcHItPnNhcmVjdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAmbGVuKTsKLSAgICAgICAgICAgIHN1Y2Nlc3NfcHJvYmUgPSBzdWNjZXNzX3Byb2JlICsgMTsKLSAgICAgICAgICAgIGZsYWcgPSAwOwotICAgICAgICB9CisgICAgICAgIHNlbGVjdF9yZXN1bHQgPSByZWFkYWJsZV90aW1lbyhzb2NrZmQsIGl0ZW0tPnBpbmdDdGxUaW1lT3V0KTsKKyAgICAgICAgZG8geworICAgICAgICAgICAgaWYgKHNlbGVjdF9yZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLCAic29ja2V0IHRpbWVvdXRcbiIpKTsKKyAgICAgICAgICAgICAgICBuID0gLTE7CisgICAgICAgICAgICAgICAgZmFpbF9wcm9iZSA9IGZhaWxfcHJvYmUgKyAxOworICAgICAgICAgICAgICAgIGZsYWcgPSAxOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBuID0gcmVjdmZyb20oc29ja2ZkLCByZWN2YnVmLCBzaXplb2YocmVjdmJ1ZiksIDAsIHByLT5zYXJlY3YsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZsZW4pOworICAgICAgICAgICAgICAgIHN1Y2Nlc3NfcHJvYmUgPSBzdWNjZXNzX3Byb2JlICsgMTsKKyAgICAgICAgICAgICAgICBmbGFnID0gMDsKKyAgICAgICAgICAgIH0KIAotICAgICAgICBnZXR0aW1lb2ZkYXkoJnR2YWwsIE5VTEwpOworICAgICAgICAgICAgbmV0c25tcF9nZXRfbW9ub3RvbmljX2Nsb2NrKCZ0dmFsKTsKIAotICAgICAgICB0aW1lKCZ0aW1lcCk7CisgICAgICAgICAgICB0aW1lKCZ0aW1lcCk7CiAKLSAgICAgICAgKCpwci0+ZnByb2MpIChyZWN2YnVmLCBuLCAmdHZhbCwgdGltZXAsIGl0ZW0sIGFpLCBkYXRhbGVuLCBtaW5ydHQsCi0gICAgICAgICAgICAgICAgICAgICAgbWF4cnR0LCBzdW1ydHQsIGF2ZXJhZ2VydHQsIGN1cnJlbnRfcHJvYmVfdGVtcCwKLSAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzX3Byb2JlLCBmYWlsX3Byb2JlLCBmbGFnLCAmY3VycmVudF92YXIsIHBpZCk7Ci0gICAgICAgIGlmIChjdXJyZW50X3Byb2JlX3RlbXAgPj0gaXRlbS0+cGluZ0N0bFByb2JlQ291bnQpIHsKLSAgICAgICAgICAgIFNOTVBfRlJFRShzdW1ydHQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgICAgICAgICAoKnByLT5mcHJvYykgKHJlY3ZidWYsIG4sICZ0dmFsLCB0aW1lcCwgaXRlbSwgYWksIGRhdGFsZW4sIG1pbnJ0dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4cnR0LCAmc3VtcnR0LCBhdmVyYWdlcnR0LCBjdXJyZW50X3Byb2JlX3RlbXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NfcHJvYmUsIGZhaWxfcHJvYmUsIGZsYWcsICZjdXJyZW50X3ZhciwgcGlkKTsKKyAgICAgICAgICAgIHNlbGVjdF9yZXN1bHQgPSByZWFkYWJsZV90aW1lbyhzb2NrZmQsIDApOworICAgICAgICB9IHdoaWxlIChzZWxlY3RfcmVzdWx0ID4gMCk7CiAgICAgfQogICAgIGNsb3NlKHNvY2tmZCk7CiB9CkBAIC0xMzIwLDkgKzEzNzYsMTEgQEAKICAgICBzdGF0aWMgaW50ICAgICAgcHJvYmVGYWlsZWQgPSAwOwogICAgIHN0YXRpYyBpbnQgICAgICB0ZXN0RmFpbGVkID0gMDsKICAgICBzdGF0aWMgaW50ICAgICAgc2VyaWVzID0gMDsKLQogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFycyA9IE5VTEw7CiAgICAgc3RydWN0IHBpbmdSZXN1bHRzVGFibGVfZGF0YSAqU3RvcmFnZU5ldyA9IE5VTEw7CisKKyAgICBERUJVR01TR1RMKCgicGluZ0N0bFRhYmxlIiwgInByb2NfdjQoZmxhZyA9ICVkKVxuIiwgZmxhZykpOworCiAgICAgaWYgKGZsYWcgPT0gMCkgewogICAgICAgICBzZXJpZXMgPSAwOwogICAgICAgICBpcCA9IChzdHJ1Y3QgaXAgKikgcHRyOyAvKiBzdGFydCBvZiBJUCBoZWFkZXIgKi8KQEAgLTEzMzAsMTQgKzEzODgsMjAgQEAKIAogICAgICAgICBpY21wID0gKHN0cnVjdCBpY21wICopIChwdHIgKyBobGVuMSk7ICAgLyogc3RhcnQgb2YgSUNNUCBoZWFkZXIgKi8KICAgICAgICAgaWYgKChpY21wbGVuID0gbGVuIC0gaGxlbjEpIDwgOCkKLSAgICAgICAgICAgIHByaW50ZigiaWNtcGxlbiAoJWQpIDwgOCIsIGljbXBsZW4pOworICAgICAgICAgICAgREVCVUdNU0dUTCgoInBpbmdDdGxUYWJsZSIsICJpY21wbGVuICglZCkgPCA4IiwgaWNtcGxlbikpOworCisgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLCAiSUNNUCB0eXBlID0gJWQgKCVzYSByZXBseSlcbiIsCisgICAgICAgICAgICAgICAgICAgIGljbXAtPmljbXBfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgaWNtcC0+aWNtcF90eXBlID09IElDTVBfRUNIT1JFUExZID8gIiIgOiAibm90IGEgIikpOwogCiAgICAgICAgIGlmIChpY21wLT5pY21wX3R5cGUgPT0gSUNNUF9FQ0hPUkVQTFkpIHsKLSAgICAgICAgICAgIGlmIChpY21wLT5pY21wX2lkICE9IHBpZCkKLSAgICAgICAgICAgICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsgICAgICAgICAvKiBub3QgYSByZXNwb25zZSB0byBvdXIgRUNIT19SRVFVRVNUICovCi0gICAgICAgICAgICBpZiAoaWNtcGxlbiA8IDE2KQotICAgICAgICAgICAgICAgIHByaW50ZigiaWNtcGxlbiAoJWQpIDwgMTYiLCBpY21wbGVuKTsKKyAgICAgICAgICAgIGlmIChpY21wLT5pY21wX2lkICE9IHBpZCkgeworICAgICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLCAibm90IGEgcmVzcG9uc2UgdG8gb3VyIEVDSE9fUkVRVUVTVFxuIikpOworICAgICAgICAgICAgICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOworICAgICAgICAgICAgfQogCisgICAgICAgICAgICBpZiAoaWNtcGxlbiA8IDE2KQorICAgICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLCAiaWNtcGxlbiAoJWQpIDwgMTYiLCBpY21wbGVuKSk7CiAKICAgICAgICAgICAgIHR2c2VuZCA9IChzdHJ1Y3QgdGltZXZhbCAqKSBpY21wLT5pY21wX2RhdGE7CiAKQEAgLTEzNDUsMTQgKzE0MDksMTkgQEAKICAgICAgICAgICAgICAgICByb3VuZF9kb3VibGUoKDEwMDAwMDAgKiAodHZyZWN2LT50dl9zZWMgLSB0dnNlbmQtPnR2X3NlYykgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHZyZWN2LT50dl91c2VjIC0gdHZzZW5kLT50dl91c2VjKSAvIDEwMDApOwogCi0gICAgICAgICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLCAoY2hhciAqKSBpdGVtLT5waW5nQ3RsT3duZXJJbmRleCwgaXRlbS0+cGluZ0N0bE93bmVySW5kZXhMZW4pOyAgICAgLyogcGluZ0N0bE93bmVySW5kZXggKi8KLSAgICAgICAgICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnMsIE5VTEwsIDAsIEFTTl9PQ1RFVF9TVFIsIChjaGFyICopIGl0ZW0tPnBpbmdDdGxUZXN0TmFtZSwgaXRlbS0+cGluZ0N0bFRlc3ROYW1lTGVuKTsgLyogcGluZ0N0bFRlc3ROYW1lICovCisgICAgICAgICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLT5waW5nQ3RsT3duZXJJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS0+cGluZ0N0bE93bmVySW5kZXhMZW4pOworICAgICAgICAgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFycywgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS0+cGluZ0N0bFRlc3ROYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLT5waW5nQ3RsVGVzdE5hbWVMZW4pOwogCi0KLSAgICAgICAgICAgIGlmICgoU3RvcmFnZU5ldyA9Ci0gICAgICAgICAgICAgICAgIGhlYWRlcl9jb21wbGV4X2dldChwaW5nUmVzdWx0c1RhYmxlU3RvcmFnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcnMpKSA9PSBOVUxMKQorICAgICAgICAgICAgU3RvcmFnZU5ldyA9IGhlYWRlcl9jb21wbGV4X2dldChwaW5nUmVzdWx0c1RhYmxlU3RvcmFnZSwgdmFycyk7CisgICAgICAgICAgICBzbm1wX2ZyZWVfdmFyYmluZCh2YXJzKTsKKyAgICAgICAgICAgIGlmICghU3RvcmFnZU5ldykgeworICAgICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLCAiU3RvcmFnZU5ldyA9PSBOVUxMXG4iKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFNOTVBfRVJSX05PU1VDSE5BTUU7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChjdXJyZW50X3Byb2JlID09IDEpIHsKICAgICAgICAgICAgICAgICAqYXZlcmFnZXJ0dCA9IHJ0dDsKQEAgLTEzNjAsNyArMTQyOSw2IEBACiAgICAgICAgICAgICAgICAgKm1heHJ0dCA9IHJ0dDsKICAgICAgICAgICAgICAgICAqc3VtcnR0ID0gcnR0OwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBwcmludGYoImVsc2VcbiIpOwogICAgICAgICAgICAgICAgIGlmIChydHQgPCAqbWlucnR0KQogICAgICAgICAgICAgICAgICAgICAqbWlucnR0ID0gcnR0OwogICAgICAgICAgICAgICAgIGlmIChydHQgPiAqbWF4cnR0KQpAQCAtMTM4NCw2ICsxNDUyLDcgQEAKICAgICAgICAgICAgICAgICBTdG9yYWdlTmV3LT5waW5nUmVzdWx0c1J0dFN1bU9mU3F1YXJlcyArIHJ0dCAqIHJ0dDsKIAogCSAgICBTdG9yYWdlTmV3LT5waW5nUmVzdWx0c0xhc3RHb29kUHJvYmVfdGltZSA9IHRpbWVwOworICAgICAgICAgICAgZnJlZShTdG9yYWdlTmV3LT5waW5nUmVzdWx0c0xhc3RHb29kUHJvYmUpOwogICAgICAgICAgICAgU3RvcmFnZU5ldy0+cGluZ1Jlc3VsdHNMYXN0R29vZFByb2JlID0KICAgICAgICAgICAgICAgICBuZXRzbm1wX21lbWR1cChkYXRlX25fdGltZSgmdGltZXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZTdG9yYWdlTmV3LT5waW5nUmVzdWx0c0xhc3RHb29kUHJvYmVMZW4pLApAQCAtMTQyOCw1MiArMTQ5NywzOSBAQAogCiAgICAgICAgICAgICBpZiAoU3RvcmFnZU5ldy0+cGluZ1Jlc3VsdHNTZW5kUHJvYmVzID09IDEpCiAgICAgICAgICAgICAgICAgaXRlbS0+cGluZ1Byb2JlSGlzID0gdGVtcDsKLSAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIChjdXJyZW50X3RlbXApLT5uZXh0ID0gdGVtcDsKLSAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgY3VycmVudF90ZW1wID0gdGVtcDsKIAotICAgICAgICAgICAgaWYgKFN0b3JhZ2VOZXctPnBpbmdSZXN1bHRzU2VuZFByb2JlcyA+PQotICAgICAgICAgICAgICAgIGl0ZW0tPnBpbmdDdGxQcm9iZUNvdW50KSB7CisgICAgICAgICAgICBpZiAoU3RvcmFnZU5ldy0+cGluZ1Jlc3VsdHNTZW5kUHJvYmVzID49IGl0ZW0tPnBpbmdDdGxQcm9iZUNvdW50KQogICAgICAgICAgICAgICAgIGN1cnJlbnRfdGVtcC0+bmV4dCA9IE5VTEw7Ci0gICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChpdGVtLT5waW5nUHJvYmVIaXMgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgIGlmIChwaW5nUHJvYmVIaXN0b3J5VGFibGVfY291bnQoaXRlbSkgPAotICAgICAgICAgICAgICAgICAgICBpdGVtLT5waW5nQ3RsTWF4Um93cykgewotICAgICAgICAgICAgICAgICAgICBpZiAocGluZ1Byb2JlSGlzdG9yeVRhYmxlX2FkZChjdXJyZW50X3RlbXApICE9Ci0gICAgICAgICAgICAgICAgICAgICAgICBTTk1QRVJSX1NVQ0NFU1MpCi0gICAgICAgICAgICAgICAgICAgICAgICBERUJVR01TR1RMKCgicGluZ1Byb2JlSGlzdG9yeVRhYmxlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWdpc3RlcmVkIGFuIGVudHJ5IGVycm9yXG4iKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAocGluZ1Byb2JlSGlzdG9yeVRhYmxlX2NvdW50KGl0ZW0pID49IGl0ZW0tPnBpbmdDdGxNYXhSb3dzKQogICAgICAgICAgICAgICAgICAgICBwaW5nUHJvYmVIaXN0b3J5VGFibGVfZGVsTGFzdChpdGVtKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHBpbmdQcm9iZUhpc3RvcnlUYWJsZV9hZGQoY3VycmVudF90ZW1wKSAhPQotICAgICAgICAgICAgICAgICAgICAgICAgU05NUEVSUl9TVUNDRVNTKQotICAgICAgICAgICAgICAgICAgICAgICAgREVCVUdNU0dUTCgoInBpbmdQcm9iZUhpc3RvcnlUYWJsZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVnaXN0ZXJlZCBhbiBlbnRyeSBlcnJvclxuIikpOwotCi0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChwaW5nUHJvYmVIaXN0b3J5VGFibGVfYWRkKGN1cnJlbnRfdGVtcCkgIT0gU05NUEVSUl9TVUNDRVNTKQorICAgICAgICAgICAgICAgICAgICBERUJVR01TR1RMKCgicGluZ1Byb2JlSGlzdG9yeVRhYmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZhaWxlZCB0byBhZGQgYSByb3dcbiIpKTsKIAkgICAgfQogICAgICAgICB9Ci0gICAgfQotCi0gICAgZWxzZSBpZiAoZmxhZyA9PSAxKQotICAgIHsKLQotCisgICAgfSBlbHNlIGlmIChmbGFnID09IDEpIHsKICAgICAgICAgaWYgKHNlcmllcyA9PSAwKQogICAgICAgICAgICAgcHJvYmVGYWlsZWQgPSAxOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBwcm9iZUZhaWxlZCA9IHByb2JlRmFpbGVkICsgMTsKICAgICAgICAgc2VyaWVzID0gMTsKICAgICAgICAgdGVzdEZhaWxlZCA9IHRlc3RGYWlsZWQgKyAxOwotICAgICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLCAoY2hhciAqKSBpdGVtLT5waW5nQ3RsT3duZXJJbmRleCwgaXRlbS0+cGluZ0N0bE93bmVySW5kZXhMZW4pOyAvKiAgcGluZ0N0bE93bmVySW5kZXggKi8KLSAgICAgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFycywgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwgKGNoYXIgKikgaXRlbS0+cGluZ0N0bFRlc3ROYW1lLCBpdGVtLT5waW5nQ3RsVGVzdE5hbWVMZW4pOyAgICAgLyogcGluZ0N0bFRlc3ROYW1lICovCisgICAgICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnMsIE5VTEwsIDAsIEFTTl9PQ1RFVF9TVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS0+cGluZ0N0bE93bmVySW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS0+cGluZ0N0bE93bmVySW5kZXhMZW4pOworICAgICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0tPnBpbmdDdGxUZXN0TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLT5waW5nQ3RsVGVzdE5hbWVMZW4pOwogCi0KLSAgICAgICAgaWYgKChTdG9yYWdlTmV3ID0KLSAgICAgICAgICAgICBoZWFkZXJfY29tcGxleF9nZXQocGluZ1Jlc3VsdHNUYWJsZVN0b3JhZ2UsIHZhcnMpKSA9PSBOVUxMKQorICAgICAgICBTdG9yYWdlTmV3ID0gaGVhZGVyX2NvbXBsZXhfZ2V0KHBpbmdSZXN1bHRzVGFibGVTdG9yYWdlLCB2YXJzKTsKKyAgICAgICAgc25tcF9mcmVlX3ZhcmJpbmQodmFycyk7CisgICAgICAgIGlmICghU3RvcmFnZU5ldykKICAgICAgICAgICAgIHJldHVybiBTTk1QX0VSUl9OT1NVQ0hOQU1FOwogCiAgICAgICAgIGlmIChjdXJyZW50X3Byb2JlID09IDEpIHsKQEAgLTE2MDMsNyArMTY1OSw3IEBACiAgICAgaWNtcC0+aWNtcF9jb2RlID0gMDsKICAgICBpY21wLT5pY21wX2lkID0gcGlkOwogICAgIGljbXAtPmljbXBfc2VxID0gbnNlbnQ7Ci0gICAgZ2V0dGltZW9mZGF5KChzdHJ1Y3QgdGltZXZhbCAqKSBpY21wLT5pY21wX2RhdGEsIE5VTEwpOworICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygoc3RydWN0IHRpbWV2YWwgKikgaWNtcC0+aWNtcF9kYXRhKTsKIAogICAgIGxlbiA9IDggKyBkYXRhbGVuOyAgICAgICAgICAvKiBjaGVja3N1bSBJQ01QIGhlYWRlciBhbmQgZGF0YSAqLwogICAgIGljbXAtPmljbXBfY2tzdW0gPSAwOwpAQCAtMTYyMSwxMiArMTY3NywxNSBAQAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFycyA9IE5VTEw7CiAgICAgc3RydWN0IHBpbmdSZXN1bHRzVGFibGVfZGF0YSAqU3RvcmFnZU5ldyA9IE5VTEw7CiAKLSAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLCAoY2hhciAqKSBpdGVtLT5waW5nQ3RsT3duZXJJbmRleCwgaXRlbS0+cGluZ0N0bE93bmVySW5kZXhMZW4pOyAgICAgLyogcGluZ0N0bE93bmVySW5kZXggICovCi0gICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFycywgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwgKGNoYXIgKikgaXRlbS0+cGluZ0N0bFRlc3ROYW1lLCBpdGVtLT5waW5nQ3RsVGVzdE5hbWVMZW4pOyAvKiBwaW5nQ3RsVGVzdE5hbWUgICovCisgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFycywgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0tPnBpbmdDdGxPd25lckluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS0+cGluZ0N0bE93bmVySW5kZXhMZW4pOworICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnMsIE5VTEwsIDAsIEFTTl9PQ1RFVF9TVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLT5waW5nQ3RsVGVzdE5hbWUsIGl0ZW0tPnBpbmdDdGxUZXN0TmFtZUxlbik7CiAKLQotICAgIGlmICgoU3RvcmFnZU5ldyA9Ci0gICAgICAgICBoZWFkZXJfY29tcGxleF9nZXQocGluZ1Jlc3VsdHNUYWJsZVN0b3JhZ2UsIHZhcnMpKSA9PSBOVUxMKQorICAgIFN0b3JhZ2VOZXcgPSBoZWFkZXJfY29tcGxleF9nZXQocGluZ1Jlc3VsdHNUYWJsZVN0b3JhZ2UsIHZhcnMpOworICAgIHNubXBfZnJlZV92YXJiaW5kKHZhcnMpOworICAgIGlmICghU3RvcmFnZU5ldykKICAgICAgICAgcmV0dXJuOwogCiAgICAgU3RvcmFnZU5ldy0+cGluZ1Jlc3VsdHNTZW5kUHJvYmVzID0gMDsKQEAgLTE2NTQsMzQgKzE3MTMsNDEgQEAKIAogICAgICAgICBhaSA9IGhvc3Rfc2Vydihob3N0LCBOVUxMLCAwLCAwKTsKIAotICAgICAgICBwcmludGYoIlBJTkcgJXMgKCVzKTogJWQgZGF0YSBieXRlc1xuIiwgYWktPmFpX2Nhbm9ubmFtZSwKLSAgICAgICAgICAgICAgIHNvY2tfbnRvcF9ob3N0KGFpLT5haV9hZGRyLCBhaS0+YWlfYWRkcmxlbiksIGRhdGFsZW4pOworICAgICAgICBpZiAoYWkpIHsKKyAgICAgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLCAiUElORyAlcyAoJXMpOiAlZCBkYXRhIGJ5dGVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgYWktPmFpX2Nhbm9ubmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tfbnRvcF9ob3N0KGFpLT5haV9hZGRyLCBhaS0+YWlfYWRkcmxlbiksIGRhdGFsZW4pKTsKIAotICAgICAgICAvKgotICAgICAgICAgKiA0aW5pdGlhbGl6ZSBhY2NvcmRpbmcgdG8gcHJvdG9jb2wgCi0gICAgICAgICAqLwotICAgICAgICBpZiAoYWktPmFpX2ZhbWlseSA9PSBBRl9JTkVUKSB7Ci0gICAgICAgICAgICBwciA9ICZwcm90b192NDsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiA0aW5pdGlhbGl6ZSBhY2NvcmRpbmcgdG8gcHJvdG9jb2wgCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmIChhaS0+YWlfZmFtaWx5ID09IEFGX0lORVQpIHsKKyAgICAgICAgICAgICAgICBwciA9ICZwcm90b192NDsKICNpZmRlZglJUFY2Ci0gICAgICAgIH0gZWxzZSBpZiAoYWktPmFpX2ZhbWlseSA9PSBBRl9JTkVUNikgewotICAgICAgICAgICAgcHIgPSAmcHJvdG9fdjY7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFpLT5haV9mYW1pbHkgPT0gQUZfSU5FVDYpIHsKKyAgICAgICAgICAgICAgICBwciA9ICZwcm90b192NjsKIAotICAgICAgICAgICAgaWYgKElONl9JU19BRERSX1Y0TUFQUEVEKCYoKChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWktPmFpX2FkZHIpLT5zaW42X2FkZHIpKSkKLSAgICAgICAgICAgICAgICBwcmludGYoImNhbm5vdCBwaW5nIElQdjQtbWFwcGVkIElQdjYgYWRkcmVzcyIpOworICAgICAgICAgICAgICAgIGlmIChJTjZfSVNfQUREUl9WNE1BUFBFRCgmKCgoc3RydWN0IHNvY2thZGRyX2luNiAqKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhaS0+YWlfYWRkciktPnNpbjZfYWRkcikpKQorICAgICAgICAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiY2Fubm90IHBpbmcgSVB2NC1tYXBwZWQgSVB2NiBhZGRyZXNzIik7CiAjZW5kaWYKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBwcmludGYoInVua25vd24gYWRkcmVzcyBmYW1pbHkgJWQiLCBhaS0+YWlfZmFtaWx5KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgInVua25vd24gYWRkcmVzcyBmYW1pbHkgJWQiLCBhaS0+YWlfZmFtaWx5KTsKKyAgICAgICAgICAgIH0KIAotICAgICAgICBwci0+c2FzZW5kID0gYWktPmFpX2FkZHI7Ci0gICAgICAgIHByLT5zYXJlY3YgPSBjYWxsb2MoMSwgYWktPmFpX2FkZHJsZW4pOwotICAgICAgICBwci0+c2FsZW4gPSBhaS0+YWlfYWRkcmxlbjsKLSAgICAgICAgcmVhZGxvb3AoaXRlbSwgYWksIGRhdGFsZW4sIG1pbnJ0dCwgbWF4cnR0LCBhdmVyYWdlcnR0LCBwaWQpOworICAgICAgICAgICAgcHItPnNhc2VuZCA9IGFpLT5haV9hZGRyOworICAgICAgICAgICAgcHItPnNhcmVjdiA9IGNhbGxvYygxLCBhaS0+YWlfYWRkcmxlbik7CisgICAgICAgICAgICBwci0+c2FsZW4gPSBhaS0+YWlfYWRkcmxlbjsKKyAgICAgICAgICAgIHJlYWRsb29wKGl0ZW0sIGFpLCBkYXRhbGVuLCBtaW5ydHQsIG1heHJ0dCwgYXZlcmFnZXJ0dCwgcGlkKTsKKyAgICAgICAgICAgIGZyZWUocHItPnNhcmVjdik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiUElORzogbmFtZSByZXNvbHV0aW9uIGZvciAlcyBmYWlsZWQuXG4iLCBob3N0KTsKKyAgICAgICAgfQogCiAgICAgICAgIFNOTVBfRlJFRShtaW5ydHQpOwogICAgICAgICBTTk1QX0ZSRUUobWF4cnR0KTsKICAgICAgICAgU05NUF9GUkVFKGF2ZXJhZ2VydHQpOwotICAgICAgICBTTk1QX0ZSRUUoYWkpOworICAgICAgICBmcmVlYWRkcmluZm8oYWkpOwogICAgIH0KIAogICAgIGVsc2UgaWYgKGl0ZW0tPnBpbmdDdGxUYXJnZXRBZGRyZXNzVHlwZSA9PSAyKSB7CkBAIC0xNzU3LDEzICsxODIzLDExIEBACiAgICAgICAgIGhvc3RuYW1lID0gdGFyZ2V0OwogCiAgICAgICAgIGlmIChpcHY2X2FkZHJfYW55KCZzb3VyY2Uuc2luNl9hZGRyKSkgewotCiAgICAgICAgICAgICBzb2NrbGVuX3QgICAgICAgYWxlbjsKICAgICAgICAgICAgIGludCAgICAgICAgICAgICBwcm9iZV9mZCA9IHNvY2tldChBRl9JTkVUNiwgU09DS19ER1JBTSwgMCk7CiAKICAgICAgICAgICAgIGlmIChwcm9iZV9mZCA8IDApIHsKLSAgICAgICAgICAgICAgICBwcmludGYoImVycm9yIVxuIik7Ci0gICAgICAgICAgICAgICAgcGVycm9yKCJzb2NrZXQiKTsKKyAgICAgICAgICAgICAgICBzbm1wX2xvZ19wZXJyb3IoInBpbmdDdGxUYWJsZTogSVB2NiBkYXRhZ3JhbSBzb2NrZXQgY3JlYXRpb24iKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoZGV2aWNlKSB7CkBAIC0xNzgyLDYgKzE4NDYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlvY3RsKHByb2JlX2ZkLCBTSU9DR0lGSU5ERVgsICZpZnIpIDwgMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAicGluZzogdW5rbm93biBpZmFjZSAlc1xuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldmljZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2UocHJvYmVfZmQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0aG9wLnNpbjZfc2NvcGVfaWQgPSBpZnIuaWZyX2lmaW5kZXg7CkBAIC0xNzk0LDEyICsxODU5LDE0IEBACiAgICAgICAgICAgICAgICAgKHByb2JlX2ZkLCAoc3RydWN0IHNvY2thZGRyICopICZmaXJzdGhvcCwKICAgICAgICAgICAgICAgICAgc2l6ZW9mKGZpcnN0aG9wKSkgPT0gLTEpIHsKICAgICAgICAgICAgICAgICBwZXJyb3IoImNvbm5lY3QiKTsKKyAgICAgICAgICAgICAgICBjbG9zZShwcm9iZV9mZCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYWxlbiA9IHNpemVvZihzb3VyY2UpOwogICAgICAgICAgICAgaWYgKGdldHNvY2tuYW1lKHByb2JlX2ZkLCAoc3RydWN0IHNvY2thZGRyICopICZzb3VyY2UsICZhbGVuKQogICAgICAgICAgICAgICAgID09IC0xKSB7CiAgICAgICAgICAgICAgICAgcGVycm9yKCJnZXRzb2NrbmFtZSIpOworICAgICAgICAgICAgICAgIGNsb3NlKHByb2JlX2ZkKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBzb3VyY2Uuc2luNl9wb3J0ID0gMDsKQEAgLTE5MTIsMTUgKzE5NzksMTYgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIHByaW50ZigiUElORyAlcyglcykgIiwgaG9zdG5hbWUsCi0gICAgICAgICAgICAgICBwcl9hZGRyKCZ3aGVyZXRvLnNpbjZfYWRkciwgb3B0aW9ucykpOworICAgICAgICBERUJVR01TR1RMKCgicGluZ0N0bFRhYmxlIiwgIlBJTkcgJXMoJXMpICIsIGhvc3RuYW1lLAorICAgICAgICAgICAgICAgICAgICBwcl9hZGRyKCZ3aGVyZXRvLnNpbjZfYWRkciwgb3B0aW9ucykpKTsKICAgICAgICAgaWYgKGZsb3dsYWJlbCkKLSAgICAgICAgICAgIHByaW50ZigiLCBmbG93IDB4JTA1eCwgIiwgKHVuc2lnbmVkKSBudG9obChmbG93bGFiZWwpKTsKKyAgICAgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLCAiLCBmbG93IDB4JTA1eCwgIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCkgbnRvaGwoZmxvd2xhYmVsKSkpOwogICAgICAgICBpZiAoZGV2aWNlIHx8IChvcHRpb25zICYgRl9OVU1FUklDKSkgewotICAgICAgICAgICAgcHJpbnRmKCJmcm9tICVzICVzOiAiLAotICAgICAgICAgICAgICAgICAgIHByX2FkZHJfbigmc291cmNlLnNpbjZfYWRkciksIGRldmljZSA/IDogIiIpOworICAgICAgICAgICAgREVCVUdNU0dUTCgoInBpbmdDdGxUYWJsZSIsICJmcm9tICVzICVzOiAiLAorICAgICAgICAgICAgICAgICAgICAgICAgcHJfYWRkcl9uKCZzb3VyY2Uuc2luNl9hZGRyKSwgZGV2aWNlID8gOiAiIikpOwogICAgICAgICB9Ci0gICAgICAgIHByaW50ZigiJWQgZGF0YSBieXRlc1xuIiwgZGF0YWxlbik7CisgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLCAiJWQgZGF0YSBieXRlc1xuIiwgZGF0YWxlbikpOwogCiAgICAgICAgIHNldHVwKGljbXBfc29jaywgb3B0aW9ucywgdWlkLCB0aW1lb3V0LCBwcmVsb2FkLCBpbnRlcnZhbCwgZGF0YWxlbiwKICAgICAgICAgICAgICAgKGNoYXIgKikgb3V0cGFjaywgJmlkZW50LCAmc3RhcnRfdGltZSwgJnNjcmVlbl93aWR0aCwKQEAgLTE5NDYsMTggKzIwMTQsMjAgQEAKICAgICBjaGFyICAgICAgICAgICAqaG9zdCA9IE5VTEw7CiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXJzID0gTlVMTDsKIAotICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnMsIE5VTEwsIDAsIEFTTl9PQ1RFVF9TVFIsIChjaGFyICopIGl0ZW0tPnBpbmdDdGxPd25lckluZGV4LCBpdGVtLT5waW5nQ3RsT3duZXJJbmRleExlbik7ICAgICAvKiBwaW5nQ3RsT3duZXJJbmRleCAgKi8KLSAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLCAoY2hhciAqKSBpdGVtLT5waW5nQ3RsVGVzdE5hbWUsIGl0ZW0tPnBpbmdDdGxUZXN0TmFtZUxlbik7IC8qIHBpbmdDdGxUZXN0TmFtZSAgKi8KKyAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS0+cGluZ0N0bE93bmVySW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLT5waW5nQ3RsT3duZXJJbmRleExlbik7CisgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFycywgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0tPnBpbmdDdGxUZXN0TmFtZSwgaXRlbS0+cGluZ0N0bFRlc3ROYW1lTGVuKTsKIAotCi0gICAgaWYgKChTdG9yYWdlTmV3ID0KLSAgICAgICAgIGhlYWRlcl9jb21wbGV4X2dldChwaW5nUmVzdWx0c1RhYmxlU3RvcmFnZSwgdmFycykpICE9IE5VTEwpIHsKKyAgICBTdG9yYWdlTmV3ID0gaGVhZGVyX2NvbXBsZXhfZ2V0KHBpbmdSZXN1bHRzVGFibGVTdG9yYWdlLCB2YXJzKTsKKyAgICBzbm1wX2ZyZWVfdmFyYmluZCh2YXJzKTsKKyAgICBpZiAoU3RvcmFnZU5ldykgewogICAgICAgICBTdG9yYWdlTmV3LT5waW5nUmVzdWx0c1NlbmRQcm9iZXMgPSAwOwogICAgICAgICBTdG9yYWdlTmV3LT5waW5nUmVzdWx0c1Byb2JlUmVzcG9uc2VzID0gMDsKICAgICAgICAgcmV0dXJuOwotCiAgICAgfQotICAgIGFpID0gbWFsbG9jKHNpemVvZihzdHJ1Y3QgYWRkcmluZm8pKTsKKwogICAgIGhvc3QgPSBpdGVtLT5waW5nQ3RsVGFyZ2V0QWRkcmVzczsKICAgICBhaSA9IGhvc3Rfc2Vydihob3N0LCBOVUxMLCAwLCAwKTsKICAgICBTdG9yYWdlVG1wID0gU05NUF9NQUxMT0NfU1RSVUNUKHBpbmdSZXN1bHRzVGFibGVfZGF0YSk7CkBAIC0xOTgwLDI2ICsyMDUwLDE0IEBACiAKICAgICBpZiAoaXRlbS0+cGluZ0N0bFRhcmdldEFkZHJlc3NUeXBlID09IDEKICAgICAgICAgfHwgaXRlbS0+cGluZ0N0bFRhcmdldEFkZHJlc3NUeXBlID09IDE2KSB7Ci0gICAgICAgIGlmIChhaSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBTdG9yYWdlVG1wLT5waW5nUmVzdWx0c0lwVGFyZ2V0QWRkcmVzc1R5cGUgPSAwOwotICAgICAgICAgICAgU3RvcmFnZVRtcC0+cGluZ1Jlc3VsdHNJcFRhcmdldEFkZHJlc3MgPSBzdHJkdXAoIiIpOwotICAgICAgICAgICAgU3RvcmFnZVRtcC0+cGluZ1Jlc3VsdHNJcFRhcmdldEFkZHJlc3NMZW4gPSAwOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgU3RvcmFnZVRtcC0+cGluZ1Jlc3VsdHNJcFRhcmdldEFkZHJlc3NUeXBlID0gMTsKLSAgICAgICAgICAgIFN0b3JhZ2VUbXAtPnBpbmdSZXN1bHRzSXBUYXJnZXRBZGRyZXNzID0KLSAgICAgICAgICAgICAgICAoY2hhciAqKQotICAgICAgICAgICAgICAgIG1hbGxvYyhzdHJsZW4oc29ja19udG9wX2hvc3QoYWktPmFpX2FkZHIsIGFpLT5haV9hZGRybGVuKSkKLSAgICAgICAgICAgICAgICAgICAgICAgKyAxKTsKLSAgICAgICAgICAgIFN0b3JhZ2VUbXAtPnBpbmdSZXN1bHRzSXBUYXJnZXRBZGRyZXNzID0KLSAgICAgICAgICAgICAgICBzdHJkdXAoc29ja19udG9wX2hvc3QoYWktPmFpX2FkZHIsIGFpLT5haV9hZGRybGVuKSk7Ci0gICAgICAgICAgICBTdG9yYWdlVG1wLT4KLSAgICAgICAgICAgICAgICBwaW5nUmVzdWx0c0lwVGFyZ2V0QWRkcmVzc1tzdHJsZW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc29ja19udG9wX2hvc3QKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFpLT5haV9hZGRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWktPmFpX2FkZHJsZW4pKV0gPSAnXDAnOwotICAgICAgICAgICAgU3RvcmFnZVRtcC0+cGluZ1Jlc3VsdHNJcFRhcmdldEFkZHJlc3NMZW4gPQotICAgICAgICAgICAgICAgIHN0cmxlbihzb2NrX250b3BfaG9zdChhaS0+YWlfYWRkciwgYWktPmFpX2FkZHJsZW4pKTsKLSAgICAgICAgfQorICAgICAgICBjb25zdCBjaGFyKiBzdHI7CisKKyAgICAgICAgU3RvcmFnZVRtcC0+cGluZ1Jlc3VsdHNJcFRhcmdldEFkZHJlc3NUeXBlID0gYWkgPyAxIDogMDsKKyAgICAgICAgc3RyID0gYWkgPyBzb2NrX250b3BfaG9zdChhaS0+YWlfYWRkciwgYWktPmFpX2FkZHJsZW4pIDogTlVMTDsKKyAgICAgICAgaWYgKCFzdHIpCisgICAgICAgICAgICBzdHIgPSAiIjsKKyAgICAgICAgU3RvcmFnZVRtcC0+cGluZ1Jlc3VsdHNJcFRhcmdldEFkZHJlc3MgPSBzdHJkdXAoc3RyKTsKKyAgICAgICAgU3RvcmFnZVRtcC0+cGluZ1Jlc3VsdHNJcFRhcmdldEFkZHJlc3NMZW4gPSBzdHJsZW4oc3RyKTsKICAgICB9CiAgICAgaWYgKGl0ZW0tPnBpbmdDdGxUYXJnZXRBZGRyZXNzVHlwZSA9PSAyKSB7CiAKQEAgLTIwMTQsMTAgKzIwNzIsNyBAQAogCiAgICAgICAgIGlmIChpbmV0X3B0b24oQUZfSU5FVDYsIGhvc3QsICZ0by0+c2luNl9hZGRyKSA+IDApIHsKICAgICAgICAgICAgIFN0b3JhZ2VUbXAtPnBpbmdSZXN1bHRzSXBUYXJnZXRBZGRyZXNzVHlwZSA9IDI7Ci0gICAgICAgICAgICBTdG9yYWdlVG1wLT5waW5nUmVzdWx0c0lwVGFyZ2V0QWRkcmVzcyA9Ci0gICAgICAgICAgICAgICAgKGNoYXIgKikgbWFsbG9jKHN0cmxlbihob3N0KSArIDEpOwogICAgICAgICAgICAgU3RvcmFnZVRtcC0+cGluZ1Jlc3VsdHNJcFRhcmdldEFkZHJlc3MgPSBzdHJkdXAoaG9zdCk7Ci0gICAgICAgICAgICBTdG9yYWdlVG1wLT5waW5nUmVzdWx0c0lwVGFyZ2V0QWRkcmVzc1tzdHJsZW4oaG9zdCldID0gJ1wwJzsKICAgICAgICAgICAgIFN0b3JhZ2VUbXAtPnBpbmdSZXN1bHRzSXBUYXJnZXRBZGRyZXNzTGVuID0gc3RybGVuKGhvc3QpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaHAgPSBnZXRob3N0YnluYW1lMihob3N0LCBBRl9JTkVUNik7CkBAIC0yMDI2LDEzICsyMDgxLDggQEAKICAgICAgICAgICAgICAgICBtZW1tb3ZlKChjYWRkcl90KSAmIHRvLT5zaW42X2FkZHIsIGhwLT5oX2FkZHIsIDE2KTsKICAgICAgICAgICAgICAgICBob3N0bmFtZSA9IGluZXRfbnRvcChBRl9JTkVUNiwgJnRvLT5zaW42X2FkZHIsIHBhLCA2NCk7CiAgICAgICAgICAgICAgICAgU3RvcmFnZVRtcC0+cGluZ1Jlc3VsdHNJcFRhcmdldEFkZHJlc3NUeXBlID0gMjsKLSAgICAgICAgICAgICAgICBTdG9yYWdlVG1wLT5waW5nUmVzdWx0c0lwVGFyZ2V0QWRkcmVzcyA9Ci0gICAgICAgICAgICAgICAgICAgIChjaGFyICopIG1hbGxvYyhzdHJsZW4oaG9zdG5hbWUpICsgMSk7CiAgICAgICAgICAgICAgICAgU3RvcmFnZVRtcC0+cGluZ1Jlc3VsdHNJcFRhcmdldEFkZHJlc3MgPSBzdHJkdXAoaG9zdG5hbWUpOwotICAgICAgICAgICAgICAgIFN0b3JhZ2VUbXAtPnBpbmdSZXN1bHRzSXBUYXJnZXRBZGRyZXNzW3N0cmxlbihob3N0bmFtZSldID0KLSAgICAgICAgICAgICAgICAgICAgJ1wwJzsKLSAgICAgICAgICAgICAgICBTdG9yYWdlVG1wLT5waW5nUmVzdWx0c0lwVGFyZ2V0QWRkcmVzc0xlbiA9Ci0gICAgICAgICAgICAgICAgICAgIHN0cmxlbihob3N0bmFtZSk7CisgICAgICAgICAgICAgICAgU3RvcmFnZVRtcC0+cGluZ1Jlc3VsdHNJcFRhcmdldEFkZHJlc3NMZW4gPSBzdHJsZW4oaG9zdG5hbWUpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAodm9pZCkgZnByaW50ZihzdGRlcnIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYWNlcm91dGU6IHVua25vd24gaG9zdCAlc1xuIiwgaG9zdCk7CkBAIC0yMDYxLDggKzIxMTEsNyBAQAogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotICAgIFNOTVBfRlJFRShhaSk7Ci0KKyAgICBmcmVlYWRkcmluZm8oYWkpOwogfQogCiAKQEAgLTIwNzIsMTIgKzIxMjEsMTYgQEAKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhcnMgPSBOVUxMOwogICAgIHN0cnVjdCBwaW5nUmVzdWx0c1RhYmxlX2RhdGEgKlN0b3JhZ2VUbXAgPSBOVUxMOwogCi0gICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFycywgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwgKGNoYXIgKikgdGhlZGF0YS0+cGluZ0N0bE93bmVySW5kZXgsIHRoZWRhdGEtPnBpbmdDdGxPd25lckluZGV4TGVuKTsgICAgICAgLyogcGluZ0N0bE93bmVySW5kZXggKi8KLSAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLCAoY2hhciAqKSB0aGVkYXRhLT5waW5nQ3RsVGVzdE5hbWUsIHRoZWRhdGEtPnBpbmdDdGxUZXN0TmFtZUxlbik7ICAgLyogcGluZ0N0bFRlc3ROYW1lICovCisgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFycywgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZWRhdGEtPnBpbmdDdGxPd25lckluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlZGF0YS0+cGluZ0N0bE93bmVySW5kZXhMZW4pOworICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnMsIE5VTEwsIDAsIEFTTl9PQ1RFVF9TVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVkYXRhLT5waW5nQ3RsVGVzdE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVkYXRhLT5waW5nQ3RsVGVzdE5hbWVMZW4pOwogCi0KLSAgICBpZiAoKFN0b3JhZ2VUbXAgPQotICAgICAgICAgaGVhZGVyX2NvbXBsZXhfZ2V0KHBpbmdSZXN1bHRzVGFibGVTdG9yYWdlLCB2YXJzKSkgPT0gTlVMTCkKKyAgICBTdG9yYWdlVG1wID0gaGVhZGVyX2NvbXBsZXhfZ2V0KHBpbmdSZXN1bHRzVGFibGVTdG9yYWdlLCB2YXJzKTsKKyAgICBzbm1wX2ZyZWVfdmFyYmluZCh2YXJzKTsKKyAgICBpZiAoIVN0b3JhZ2VUbXApCiAgICAgICAgIHJldHVybiBTTk1QX0VSUl9OT1NVQ0hOQU1FOwogICAgIFN0b3JhZ2VUbXAtPnBpbmdSZXN1bHRzT3BlclN0YXR1cyA9IHZhbDsKIApAQCAtMjA4OSwxOSArMjE0MiwyMyBAQAogaW50CiBwaW5nUmVzdWx0c1RhYmxlX2RlbChzdHJ1Y3QgcGluZ0N0bFRhYmxlX2RhdGEgKnRoZWRhdGEpCiB7Ci0gICAgc3RydWN0IGhlYWRlcl9jb21wbGV4X2luZGV4ICpoY2lwdHIyID0gTlVMTDsKKyAgICBzdHJ1Y3QgaGVhZGVyX2NvbXBsZXhfaW5kZXggKmhjaXB0cjIsICpuZXh0OwogICAgIHN0cnVjdCBwaW5nUmVzdWx0c1RhYmxlX2RhdGEgKlN0b3JhZ2VEZWwgPSBOVUxMOwogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFycyA9IE5VTEw7CiAgICAgb2lkICAgICAgICAgICAgIG5ld29pZFtNQVhfT0lEX0xFTl07CiAgICAgc2l6ZV90ICAgICAgICAgIG5ld29pZF9sZW47CiAKLSAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLCAoY2hhciAqKSB0aGVkYXRhLT5waW5nQ3RsT3duZXJJbmRleCwgdGhlZGF0YS0+cGluZ0N0bE93bmVySW5kZXhMZW4pOyAgICAgICAvKiBwaW5nQ3RsT3duZXJJbmRleCAqLwotICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnMsIE5VTEwsIDAsIEFTTl9PQ1RFVF9TVFIsIChjaGFyICopIHRoZWRhdGEtPnBpbmdDdGxUZXN0TmFtZSwgdGhlZGF0YS0+cGluZ0N0bFRlc3ROYW1lTGVuKTsgICAvKiBwaW5nQ3RsT3BlcmF0aW9uTmFtZSAqLwotCisgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFycywgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZWRhdGEtPnBpbmdDdGxPd25lckluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlZGF0YS0+cGluZ0N0bE93bmVySW5kZXhMZW4pOworICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnMsIE5VTEwsIDAsIEFTTl9PQ1RFVF9TVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVkYXRhLT5waW5nQ3RsVGVzdE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVkYXRhLT5waW5nQ3RsVGVzdE5hbWVMZW4pOwogICAgIGhlYWRlcl9jb21wbGV4X2dlbmVyYXRlX29pZChuZXdvaWQsICZuZXdvaWRfbGVuLCBOVUxMLCAwLCB2YXJzKTsKKyAgICBzbm1wX2ZyZWVfdmFyYmluZCh2YXJzKTsKIAotICAgIGZvciAoaGNpcHRyMiA9IHBpbmdSZXN1bHRzVGFibGVTdG9yYWdlOyBoY2lwdHIyICE9IE5VTEw7Ci0gICAgICAgICBoY2lwdHIyID0gaGNpcHRyMi0+bmV4dCkgeworICAgIGZvciAoaGNpcHRyMiA9IHBpbmdSZXN1bHRzVGFibGVTdG9yYWdlOyBoY2lwdHIyOyBoY2lwdHIyID0gbmV4dCkgeworICAgICAgICBuZXh0ID0gaGNpcHRyMi0+bmV4dDsKICAgICAgICAgaWYgKHNubXBfb2lkX2NvbXBhcmUobmV3b2lkLCBuZXdvaWRfbGVuLCBoY2lwdHIyLT5uYW1lLCBuZXdvaWRfbGVuKQogICAgICAgICAgICAgPT0gMCkgewogICAgICAgICAgICAgU3RvcmFnZURlbCA9CkBAIC0yMTI1LDE5ICsyMTgyLDIzIEBACiBpbnQKIHBpbmdQcm9iZUhpc3RvcnlUYWJsZV9kZWwoc3RydWN0IHBpbmdDdGxUYWJsZV9kYXRhICp0aGVkYXRhKQogewotICAgIHN0cnVjdCBoZWFkZXJfY29tcGxleF9pbmRleCAqaGNpcHRyMiA9IE5VTEw7CisgICAgc3RydWN0IGhlYWRlcl9jb21wbGV4X2luZGV4ICpoY2lwdHIyLCAqbmV4dDsKICAgICBzdHJ1Y3QgcGluZ1Byb2JlSGlzdG9yeVRhYmxlX2RhdGEgKlN0b3JhZ2VEZWwgPSBOVUxMOwogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFycyA9IE5VTEw7CiAgICAgb2lkICAgICAgICAgICAgIG5ld29pZFtNQVhfT0lEX0xFTl07CiAgICAgc2l6ZV90ICAgICAgICAgIG5ld29pZF9sZW47CiAKLSAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLCAoY2hhciAqKSB0aGVkYXRhLT5waW5nQ3RsT3duZXJJbmRleCwgdGhlZGF0YS0+cGluZ0N0bE93bmVySW5kZXhMZW4pOyAgICAgICAvKiBwaW5nQ3RsT3duZXJJbmRleCAqLwotICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnMsIE5VTEwsIDAsIEFTTl9PQ1RFVF9TVFIsIChjaGFyICopIHRoZWRhdGEtPnBpbmdDdGxUZXN0TmFtZSwgdGhlZGF0YS0+cGluZ0N0bFRlc3ROYW1lTGVuKTsgICAvKiBwaW5nQ3RsT3BlcmF0aW9uTmFtZSAqLwotCisgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFycywgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZWRhdGEtPnBpbmdDdGxPd25lckluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlZGF0YS0+cGluZ0N0bE93bmVySW5kZXhMZW4pOworICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnMsIE5VTEwsIDAsIEFTTl9PQ1RFVF9TVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVkYXRhLT5waW5nQ3RsVGVzdE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVkYXRhLT5waW5nQ3RsVGVzdE5hbWVMZW4pOwogICAgIGhlYWRlcl9jb21wbGV4X2dlbmVyYXRlX29pZChuZXdvaWQsICZuZXdvaWRfbGVuLCBOVUxMLCAwLCB2YXJzKTsKKyAgICBzbm1wX2ZyZWVfdmFyYmluZCh2YXJzKTsKIAotICAgIGZvciAoaGNpcHRyMiA9IHBpbmdQcm9iZUhpc3RvcnlUYWJsZVN0b3JhZ2U7IGhjaXB0cjIgIT0gTlVMTDsKLSAgICAgICAgIGhjaXB0cjIgPSBoY2lwdHIyLT5uZXh0KSB7CisgICAgZm9yIChoY2lwdHIyID0gcGluZ1Byb2JlSGlzdG9yeVRhYmxlU3RvcmFnZTsgaGNpcHRyMjsgaGNpcHRyMiA9IG5leHQpIHsKKyAgICAgICAgbmV4dCA9IGhjaXB0cjItPm5leHQ7CiAgICAgICAgIGlmIChzbm1wX29pZF9jb21wYXJlKG5ld29pZCwgbmV3b2lkX2xlbiwgaGNpcHRyMi0+bmFtZSwgbmV3b2lkX2xlbikKICAgICAgICAgICAgID09IDApIHsKICAgICAgICAgICAgIFN0b3JhZ2VEZWwgPQpAQCAtNDAxMSwxNCArNDA3MiwxMyBAQAogICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdmFyX3ZhbF9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgIHVfY2hhciAqIHN0YXRQLCBvaWQgKiBuYW1lLCBzaXplX3QgbmFtZV9sZW4pCiB7Ci0gICAgc3RydWN0IHBpbmdDdGxUYWJsZV9kYXRhICpTdG9yYWdlVG1wID0gTlVMTDsKKyAgICBzdHJ1Y3QgcGluZ0N0bFRhYmxlX2RhdGEgKlN0b3JhZ2VUbXA7CiAgICAgc3RhdGljIHN0cnVjdCBwaW5nQ3RsVGFibGVfZGF0YSAqU3RvcmFnZU5ldywgKlN0b3JhZ2VEZWw7CiAgICAgc2l6ZV90ICAgICAgICAgIG5ld2xlbiA9CiAgICAgICAgIG5hbWVfbGVuIC0gKHNpemVvZihwaW5nQ3RsVGFibGVfdmFyaWFibGVzX29pZCkgLyBzaXplb2Yob2lkKSArCiAgICAgICAgICAgICAgICAgICAgIDMgLSAxKTsKICAgICBzdGF0aWMgaW50ICAgICAgb2xkX3ZhbHVlOwogICAgIGludCAgICAgICAgICAgICBzZXRfdmFsdWU7Ci0gICAgc3RhdGljIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFycywgKnZwOwogICAgIHN0cnVjdCBoZWFkZXJfY29tcGxleF9pbmRleCAqaGNpcHRyID0gTlVMTDsKIAogICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLApAQCAtNDExNyw2ICs0MTc3LDggQEAKICAgICAgICAgICogbWVtb3J5IHJlc2V2ZXJhdGlvbiwgZmluYWwgcHJlcGFyYXRpb24uLi4gCiAgICAgICAgICAqLwogICAgICAgICBpZiAoU3RvcmFnZVRtcCA9PSBOVUxMKSB7CisgICAgICAgICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhcnMsICp2cDsKKwogICAgICAgICAgICAgaWYgKHNldF92YWx1ZSA9PSBSU19ERVNUUk9ZKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiAgICAgICAgICAgICB9CkBAIC00MTM2LDE1ICs0MTk4LDE0IEBACiAgICAgICAgICAgICAgICAgIChuYW1lCiAgICAgICAgICAgICAgICAgICBbc2l6ZW9mKHBpbmdDdGxUYWJsZV92YXJpYWJsZXNfb2lkKSAvIHNpemVvZihvaWQpICsKICAgICAgICAgICAgICAgICAgICAyXSksIG5ld2xlbiwgdmFycykgIT0gU05NUEVSUl9TVUNDRVNTKSB7Ci0gICAgICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAgICAgKiBYWFg6IGZyZWUsIHplcm8gdmFycyAKLSAgICAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgICAgICAvKiBzbm1wX2ZyZWVfdmFyYmluZCh2YXJzKTsgKi8KKyAgICAgICAgICAgICAgICBzbm1wX2ZyZWVfdmFyYmluZCh2YXJzKTsKICAgICAgICAgICAgICAgICByZXR1cm4gU05NUF9FUlJfSU5DT05TSVNURU5UTkFNRTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHZwID0gdmFyczsKIAogICAgICAgICAgICAgU3RvcmFnZU5ldyA9IGNyZWF0ZV9waW5nQ3RsVGFibGVfZGF0YSgpOworICAgICAgICAgICAgaWYgKCFTdG9yYWdlTmV3KQorICAgICAgICAgICAgICAgIHJldHVybiBTTk1QX0VSUl9HRU5FUlI7CiAgICAgICAgICAgICBpZiAodnAtPnZhbF9sZW4gPD0gMzIpIHsKICAgICAgICAgICAgICAgICBTdG9yYWdlTmV3LT5waW5nQ3RsT3duZXJJbmRleCA9IG1hbGxvYyh2cC0+dmFsX2xlbiArIDEpOwogICAgICAgICAgICAgICAgIG1lbWNweShTdG9yYWdlTmV3LT5waW5nQ3RsT3duZXJJbmRleCwgdnAtPnZhbC5zdHJpbmcsCkBAIC00MTgxLDEwICs0MjQyLDcgQEAKICAgICAgICAgICAgIFN0b3JhZ2VOZXctPnBpbmdDdGxSb3dTdGF0dXMgPSBzZXRfdmFsdWU7CiAKIAotICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIFhYWDogZnJlZSwgemVybyB2YXJzLCBubyBsb25nZXIgbmVlZGVkPyAKLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgLyogc25tcF9mcmVlX3ZhcmJpbmQodmFycyk7ICovCisgICAgICAgICAgICBzbm1wX2ZyZWVfdmFyYmluZCh2YXJzKTsKICAgICAgICAgfQogCiAKQEAgLTQxOTUsMTIgKzQyNTMsMTcgQEAKIAogICAgIGNhc2UgRlJFRToKICAgICAgICAgLyoKLSAgICAgICAgICogWFhYOiBmcmVlLCB6ZXJvIHZhcnMgCi0gICAgICAgICAqLwotCi0gICAgICAgIC8qCiAgICAgICAgICAqIFJlbGVhc2UgYW55IHJlc291cmNlcyB0aGF0IGhhdmUgYmVlbiBhbGxvY2F0ZWQgCiAgICAgICAgICAqLworCisgICAgICAgIGlmIChzZXRfdmFsdWUgPT0gUlNfREVTVFJPWSAmJiBTdG9yYWdlTmV3KQorICAgICAgICAgICAgZnJlZV9waW5nQ3RsVGFibGVfZGF0YShTdG9yYWdlTmV3KTsKKyAgICAgICAgU3RvcmFnZU5ldyA9IE5VTEw7CisKKyAgICAgICAgaWYgKFN0b3JhZ2VEZWwpIHsKKyAgICAgICAgICAgIGZyZWVfcGluZ0N0bFRhYmxlX2RhdGEoU3RvcmFnZURlbCk7CisgICAgICAgICAgICBTdG9yYWdlRGVsID0gTlVMTDsKKyAgICAgICAgfQogICAgICAgICBicmVhazsKIAogCkBAIC00MjcxLDEwICs0MzM0LDggQEAKICAgICAgICAgICAgICAgICBoZWFkZXJfY29tcGxleF9maW5kX2VudHJ5KHBpbmdDdGxUYWJsZVN0b3JhZ2UsIFN0b3JhZ2VOZXcpOwogICAgICAgICAgICAgU3RvcmFnZURlbCA9CiAgICAgICAgICAgICAgICAgaGVhZGVyX2NvbXBsZXhfZXh0cmFjdF9lbnRyeSgmcGluZ0N0bFRhYmxlU3RvcmFnZSwgaGNpcHRyKTsKLQotICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIFhYWDogZnJlZSBpdCAKLSAgICAgICAgICAgICAqLworICAgICAgICAgICAgZnJlZV9waW5nQ3RsVGFibGVfZGF0YShTdG9yYWdlRGVsKTsKKyAgICAgICAgICAgIFN0b3JhZ2VEZWwgPSBOVUxMOwogICAgICAgICB9IGVsc2UgaWYgKFN0b3JhZ2VEZWwgIT0gTlVMTCkgewogICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAqIHJvdyBkZWxldGlvbiwgc28gYWRkIGl0IGFnYWluIApAQCAtNDI4Miw2ICs0MzQzLDcgQEAKICAgICAgICAgICAgIHBpbmdDdGxUYWJsZV9hZGQoU3RvcmFnZURlbCk7CiAgICAgICAgICAgICBwaW5nUmVzdWx0c1RhYmxlX2FkZChTdG9yYWdlRGVsKTsKICAgICAgICAgICAgIHBpbmdQcm9iZUhpc3RvcnlUYWJsZV9hZGRhbGwoU3RvcmFnZURlbCk7CisgICAgICAgICAgICBTdG9yYWdlRGVsID0gTlVMTDsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIFN0b3JhZ2VUbXAtPnBpbmdDdGxSb3dTdGF0dXMgPSBvbGRfdmFsdWU7CiAgICAgICAgIH0KQEAgLTQzMDMsMzcgKzQzNjUsOCBAQAogICAgICAgICB9CiAKICAgICAgICAgaWYgKFN0b3JhZ2VEZWwgIT0gTlVMTCkgewotICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIGlmKHN0cmxlbihTdG9yYWdlRGVsLT5waW5nQ3RsT3duZXJJbmRleCkhPTApCi0gICAgICAgICAgICAgKiBTTk1QX0ZSRUUoU3RvcmFnZURlbC0+cGluZ0N0bE93bmVySW5kZXgpOwotICAgICAgICAgICAgICogcHJpbnRmKCJDT01NSVQxIFxuIik7Ci0gICAgICAgICAgICAgKiBpZihzdHJsZW4oU3RvcmFnZURlbC0+cGluZ0N0bFRlc3ROYW1lKSE9MCkKLSAgICAgICAgICAgICAqIFNOTVBfRlJFRShTdG9yYWdlRGVsLT5waW5nQ3RsVGVzdE5hbWUpOwotICAgICAgICAgICAgICogcHJpbnRmKCJDT01NSVQyIFxuIik7Ci0gICAgICAgICAgICAgKiBpZihzdHJsZW4oU3RvcmFnZURlbC0+cGluZ0N0bFRhcmdldEFkZHJlc3MpIT0wKQotICAgICAgICAgICAgICogU05NUF9GUkVFKFN0b3JhZ2VEZWwtPnBpbmdDdGxUYXJnZXRBZGRyZXNzKTsKLSAgICAgICAgICAgICAqIHByaW50ZigiQ09NTUlUMyBcbiIpOwotICAgICAgICAgICAgICogaWYoc3RybGVuKFN0b3JhZ2VEZWwtPnBpbmdDdGxEYXRhRmlsbCkhPTApCi0gICAgICAgICAgICAgKiBTTk1QX0ZSRUUoU3RvcmFnZURlbC0+cGluZ0N0bERhdGFGaWxsKTsKLSAgICAgICAgICAgICAqIHByaW50ZigiQ09NTUlUNCBcbiIpOwotICAgICAgICAgICAgICogaWYoc3RybGVuKFN0b3JhZ2VEZWwtPnBpbmdDdGxUcmFwR2VuZXJhdGlvbikhPTApCi0gICAgICAgICAgICAgKiBTTk1QX0ZSRUUoU3RvcmFnZURlbC0+cGluZ0N0bFRyYXBHZW5lcmF0aW9uKTsKLSAgICAgICAgICAgICAqIHByaW50ZigiQ09NTUlUNSBcbiIpOwotICAgICAgICAgICAgICogaWYoU3RvcmFnZURlbC0+cGluZ0N0bFR5cGVMZW4hPTApCi0gICAgICAgICAgICAgKiBTTk1QX0ZSRUUoU3RvcmFnZURlbC0+cGluZ0N0bFR5cGUpOwotICAgICAgICAgICAgICogcHJpbnRmKCJDT01NSVQ2IFxuIik7Ci0gICAgICAgICAgICAgKiBpZihzdHJsZW4oU3RvcmFnZURlbC0+cGluZ0N0bERlc2NyKSE9MCkKLSAgICAgICAgICAgICAqIFNOTVBfRlJFRShTdG9yYWdlRGVsLT5waW5nQ3RsRGVzY3IpOwotICAgICAgICAgICAgICogcHJpbnRmKCJDT01NSVQ3IFxuIik7Ci0gICAgICAgICAgICAgKiBpZihzdHJsZW4oU3RvcmFnZURlbC0+cGluZ0N0bFNvdXJjZUFkZHJlc3MpIT0wKQotICAgICAgICAgICAgICogU05NUF9GUkVFKFN0b3JhZ2VEZWwtPnBpbmdDdGxTb3VyY2VBZGRyZXNzKTsKLSAgICAgICAgICAgICAqIHByaW50ZigiQ09NTUlUOCBcbiIpOwotICAgICAgICAgICAgICovCisgICAgICAgICAgICBmcmVlX3BpbmdDdGxUYWJsZV9kYXRhKFN0b3JhZ2VEZWwpOwogICAgICAgICAgICAgU3RvcmFnZURlbCA9IE5VTEw7Ci0gICAgICAgICAgICAvKiBTdG9yYWdlRGVsID0gMDsgKi8KLSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgKiBYWFg6IGZyZWUgaXQsIGl0cyBkZWFkIAotICAgICAgICAgICAgICovCiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAoU3RvcmFnZVRtcAogICAgICAgICAgICAgICAgICYmIFN0b3JhZ2VUbXAtPnBpbmdDdGxSb3dTdGF0dXMgPT0gUlNfQ1JFQVRFQU5ER08pIHsKQEAgLTQ1MDYsMTQgKzQ1MzksMTMgQEAKICAgICAgKiBDaGVjayB0aGF0IHBhY2tldHMgPCByYXRlKnRpbWUgKyBwcmVsb2FkIAogICAgICAqLwogICAgIGlmICgoKmN1cl90aW1lKS50dl9zZWMgPT0gMCkgewotCi0gICAgICAgIGdldHRpbWVvZmRheShjdXJfdGltZSwgTlVMTCk7CisgICAgICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jayhjdXJfdGltZSk7CiAgICAgICAgIHRva2VucyA9IGludGVydmFsICogKHByZWxvYWQgLSAxKTsKICAgICB9IGVsc2UgewogICAgICAgICBsb25nICAgICAgICAgICAgbnRva2VuczsKICAgICAgICAgc3RydWN0IHRpbWV2YWwgIHR2OwogCi0gICAgICAgIGdldHRpbWVvZmRheSgmdHYsIE5VTEwpOworICAgICAgICBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soJnR2KTsKICAgICAgICAgbnRva2VucyA9ICh0di50dl9zZWMgLSAoKmN1cl90aW1lKS50dl9zZWMpICogMTAwMCArCiAgICAgICAgICAgICAodHYudHZfdXNlYyAtICgqY3VyX3RpbWUpLnR2X3VzZWMpIC8gMTAwMDsKICAgICAgICAgaWYgKCFpbnRlcnZhbCkgewpAQCAtNDczOCw3ICs0NzcwLDcgQEAKIAogICAgICppZGVudCA9IGdldHBpZCgpICYgMHhGRkZGOwogCi0gICAgZ2V0dGltZW9mZGF5KHN0YXJ0X3RpbWUsIE5VTEwpOworICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jayhzdGFydF90aW1lKTsKIAogI2lmIDAKICAgICBpZiAoKmRlYWRsaW5lKSB7CkBAIC00ODIyLDExICs0ODU0LDExIEBACiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBpZiAobnBhY2tldHMgJiYgbnJlY2VpdmVkID49IG5wYWNrZXRzKSB7Ci0gICAgICAgICAgICBwcmludGYoIm5wYWNrZXRzLG5yZWNlaXZlZD0lbGRcbiIsIG5yZWNlaXZlZCk7CisgICAgICAgICAgICBERUJVR01TR1RMKCgicGluZ0N0bFRhYmxlIiwgIm5wYWNrZXRzLG5yZWNlaXZlZD0lbGRcbiIsIG5yZWNlaXZlZCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGRlYWRsaW5lICYmIG5lcnJvcnMpIHsKLSAgICAgICAgICAgIHByaW50ZigiZGVhZGxpbmVcbiIpOworICAgICAgICAgICAgREVCVUdNU0dUTCgoInBpbmdDdGxUYWJsZSIsICJkZWFkbGluZVxuIikpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtNDg0MSw3ICs0ODczLDcgQEAKICAgICAgICAgICogU2VuZCBwcm9iZXMgc2NoZWR1bGVkIHRvIHRoaXMgdGltZS4gCiAgICAgICAgICAqLwogICAgICAgICBkbyB7Ci0gICAgICAgICAgICBwcmludGYoInBpbmdlclxuIik7CisgICAgICAgICAgICBERUJVR01TR1RMKCgicGluZ0N0bFRhYmxlIiwgInBpbmdlclxuIikpOwogICAgICAgICAgICAgbmV4dCA9CiAgICAgICAgICAgICAgICAgcGluZ2VyKGljbXBfc29jaywgcHJlbG9hZCwgY21zZ2xlbiwgY21zZ2J1Ziwgd2hlcmV0bywKICAgICAgICAgICAgICAgICAgICAgICAgJnJ0dF9hZGRlbmQsIHVpZCwgb3B0aW9ucywgaW50ZXJ2YWwsIGRhdGFsZW4sCkBAIC00ODQ5LDExICs0ODgxLDExIEBACiAgICAgICAgICAgICAgICAgICAgICAgIGRlYWRsaW5lLCAmYWNrZWQsICZucGFja2V0cywgJm5yZWNlaXZlZCwKICAgICAgICAgICAgICAgICAgICAgICAgJm50cmFuc21pdHRlZCwgJm5lcnJvcnMsICZjb25maXJtX2ZsYWcsICZjb25maXJtLAogICAgICAgICAgICAgICAgICAgICAgICAmcGlwZXNpemUsICZjdXJfdGltZSk7Ci0gICAgICAgICAgICBwcmludGYoIjE6bmV4dD0lZFxuIiwgbmV4dCk7CisgICAgICAgICAgICBERUJVR01TR1RMKCgicGluZ0N0bFRhYmxlIiwgIjE6bmV4dD0lZFxuIiwgbmV4dCkpOwogICAgICAgICAgICAgbmV4dCA9CiAgICAgICAgICAgICAgICAgc2NoZWR1bGVfZXhpdChuZXh0LCBkZWFkbGluZSwgJm5wYWNrZXRzLCAmbnJlY2VpdmVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm50cmFuc21pdHRlZCwgJnRtYXgpOwotICAgICAgICAgICAgcHJpbnRmKCIyOm5leHQ9JWRcbiIsIG5leHQpOworICAgICAgICAgICAgREVCVUdNU0dUTCgoInBpbmdDdGxUYWJsZSIsICIyOm5leHQ9JWRcbiIsIG5leHQpKTsKICAgICAgICAgfSB3aGlsZSAobmV4dCA8PSAwKTsKIAogICAgICAgICAvKgpAQCAtNDk0Miw4ICs0OTc0LDYgQEAKICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBpbmdQcm9iZUhpc3RvcnlUYWJsZV9kYXRhICp0ZW1wID0gTlVMTDsKICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXJzID0gTlVMTDsKIAotCi0KICAgICAgICAgICAgICAgICAgICAgaWYgKHNlcmllcyA9PSAwKQogICAgICAgICAgICAgICAgICAgICAgICAgcHJvYmVGYWlsZWQgPSAxOwogICAgICAgICAgICAgICAgICAgICBlbHNlCkBAIC00OTUxLDEzICs0OTgxLDE3IEBACiAgICAgICAgICAgICAgICAgICAgIHNlcmllcyA9IDE7CiAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQgPSB0ZXN0RmFpbGVkICsgMTsKIAotICAgICAgICAgICAgICAgICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLCAoY2hhciAqKSBpdGVtLT5waW5nQ3RsT3duZXJJbmRleCwgaXRlbS0+cGluZ0N0bE93bmVySW5kZXhMZW4pOyAgICAgLyogIHBpbmdDdGxPd25lckluZGV4ICAqLwotICAgICAgICAgICAgICAgICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLCAoY2hhciAqKSBpdGVtLT5waW5nQ3RsVGVzdE5hbWUsIGl0ZW0tPnBpbmdDdGxUZXN0TmFtZUxlbik7IC8qICBwaW5nQ3RsVGVzdE5hbWUgICovCisgICAgICAgICAgICAgICAgICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnMsIE5VTEwsIDAsIEFTTl9PQ1RFVF9TVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS0+cGluZ0N0bE93bmVySW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS0+cGluZ0N0bE93bmVySW5kZXhMZW4pOworICAgICAgICAgICAgICAgICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0tPnBpbmdDdGxUZXN0TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLT5waW5nQ3RsVGVzdE5hbWVMZW4pOwogCi0KLSAgICAgICAgICAgICAgICAgICAgaWYgKChTdG9yYWdlTmV3ID0KLSAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJfY29tcGxleF9nZXQocGluZ1Jlc3VsdHNUYWJsZVN0b3JhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcnMpKSA9PSBOVUxMKQorICAgICAgICAgICAgICAgICAgICBTdG9yYWdlTmV3ID0gaGVhZGVyX2NvbXBsZXhfZ2V0KHBpbmdSZXN1bHRzVGFibGVTdG9yYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcnMpOworICAgICAgICAgICAgICAgICAgICBzbm1wX2ZyZWVfdmFyYmluZCh2YXJzKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFTdG9yYWdlTmV3KQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICAgICAgICAgIFN0b3JhZ2VOZXctPnBpbmdSZXN1bHRzU2VuZFByb2JlcyA9CkBAIC01MDUyLDcgKzUwODYsNyBAQAogICAgICAgICAgICAgICAgICAgICBub3Rfb3VycyA9IDE7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBwcmludGYoImNjPj0wLGVsc2VcbiIpOworICAgICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLCAiY2M+PTAsZWxzZVxuIikpOwogI2lmZGVmIFNPX1RJTUVTVEFNUAogICAgICAgICAgICAgICAgIGZvciAoYyA9IENNU0dfRklSU1RIRFIoJm1zZyk7IGM7IGMgPSBDTVNHX05YVEhEUigmbXNnLCBjKSkgewogICAgICAgICAgICAgICAgICAgICBpZiAoYy0+Y21zZ19sZXZlbCAhPSBTT0xfU09DS0VUIHx8CkBAIC01MDY3LDcgKzUxMDEsNyBAQAogICAgICAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIEZfTEFURU5DWSkgfHwgcmVjdl90aW1lcCA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIEZfTEFURU5DWSkgfHwKICAgICAgICAgICAgICAgICAgICAgICAgIGlvY3RsKGljbXBfc29jaywgU0lPQ0dTVEFNUCwgJnJlY3ZfdGltZSkpCi0gICAgICAgICAgICAgICAgICAgICAgICBnZXR0aW1lb2ZkYXkoJnJlY3ZfdGltZSwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soJnJlY3ZfdGltZSk7CiAgICAgICAgICAgICAgICAgICAgIHJlY3ZfdGltZXAgPSAmcmVjdl90aW1lOwogICAgICAgICAgICAgICAgIH0KIApAQCAtNTE2NywxOSArNTIwMSwxNCBAQAogICAgICAgICBzdHJ1Y3QgdGltZXZhbCAgdG1wX3R2OwogICAgICAgICBtZW1jcHkoJnRtcF90diwgcHRyLCBzaXplb2YodG1wX3R2KSk7CiAKLSAgICAgIHJlc3RhbXA6CiAgICAgICAgIHR2c3ViKHR2LCAmdG1wX3R2KTsKICAgICAgICAgdHJpcHRpbWUgPSB0di0+dHZfc2VjICogMTAwMDAwMCArIHR2LT50dl91c2VjOwogICAgICAgICBpZiAodHJpcHRpbWUgPCAwKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwKLSAgICAgICAgICAgICAgICAgICAgIldhcm5pbmc6IHRpbWUgb2YgZGF5IGdvZXMgYmFjayAoJWxkdXMpLCB0YWtpbmcgY291bnRlcm1lYXN1cmVzLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgdHJpcHRpbWUpOworICAgICAgICAgICAgc25tcF9sb2coTE9HX0lORk8sCisgICAgICAgICAgICAgICAgICAgICAiV2FybmluZzogaW52YWxpZCB0aW1lc3RhbXAgaW4gSUNNUCByZXNwb25zZS5cbiIpOwogICAgICAgICAgICAgdHJpcHRpbWUgPSAwOwotICAgICAgICAgICAgaWYgKCEob3B0aW9ucyAmIEZfTEFURU5DWSkpIHsKLSAgICAgICAgICAgICAgICBnZXR0aW1lb2ZkYXkodHYsIE5VTEwpOworICAgICAgICAgICAgaWYgKCEob3B0aW9ucyAmIEZfTEFURU5DWSkpCiAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBGX0xBVEVOQ1k7Ci0gICAgICAgICAgICAgICAgZ290byByZXN0YW1wOwotICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmICghY3NmYWlsZWQpIHsKICAgICAgICAgICAgICgqdHN1bSkgKz0gdHJpcHRpbWU7CkBAIC01MjIxLDMyICs1MjUwLDM0IEBACiAgICAgfSBlbHNlIHsKICAgICAgICAgaW50ICAgICAgICAgICAgIGk7CiAgICAgICAgIF9fdTggICAgICAgICAgICpjcCwgKmRwOwotICAgICAgICBwcmludGYoIiVkIGJ5dGVzIGZyb20gJXM6IGljbXBfc2VxPSV1IiwgY2MsIGZyb20sIHNlcSk7CisKKyAgICAgICAgREVCVUdNU0dUTCgoInBpbmdDdGxUYWJsZSIsICIlZCBieXRlcyBmcm9tICVzOiBpY21wX3NlcT0ldSIsIGNjLCBmcm9tLAorICAgICAgICAgICAgICAgICAgICBzZXEpKTsKIAogICAgICAgICBpZiAoaG9wcyA+PSAwKQotICAgICAgICAgICAgcHJpbnRmKCIgdHRsPSVkIiwgaG9wcyk7CisgICAgICAgICAgICBERUJVR01TR1RMKCgicGluZ0N0bFRhYmxlIiwgIiB0dGw9JWQiLCBob3BzKSk7CiAKICAgICAgICAgaWYgKGNjIDwgZGF0YWxlbiArIDgpIHsKLSAgICAgICAgICAgIHByaW50ZigiICh0cnVuY2F0ZWQpXG4iKTsKKyAgICAgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLCAiICh0cnVuY2F0ZWQpXG4iKSk7CiAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQogICAgICAgICBpZiAodGltaW5nKSB7CiAgICAgICAgICAgICBpZiAodHJpcHRpbWUgPj0gMTAwMDAwKQotICAgICAgICAgICAgICAgIHByaW50ZigiIHRpbWU9JWxkIG1zIiwgdHJpcHRpbWUgLyAxMDAwKTsKKyAgICAgICAgICAgICAgICBERUJVR01TR1RMKCgicGluZ0N0bFRhYmxlIiwgIiB0aW1lPSVsZCBtcyIsIHRyaXB0aW1lIC8gMTAwMCkpOwogICAgICAgICAgICAgZWxzZSBpZiAodHJpcHRpbWUgPj0gMTAwMDApCi0gICAgICAgICAgICAgICAgcHJpbnRmKCIgdGltZT0lbGQuJTAxbGQgbXMiLCB0cmlwdGltZSAvIDEwMDAsCi0gICAgICAgICAgICAgICAgICAgICAgICh0cmlwdGltZSAlIDEwMDApIC8gMTAwKTsKKyAgICAgICAgICAgICAgICBERUJVR01TR1RMKCgicGluZ0N0bFRhYmxlIiwgIiB0aW1lPSVsZC4lMDFsZCBtcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpcHRpbWUgLyAxMDAwLCAodHJpcHRpbWUgJSAxMDAwKSAvIDEwMCkpOwogICAgICAgICAgICAgZWxzZSBpZiAodHJpcHRpbWUgPj0gMTAwMCkKLSAgICAgICAgICAgICAgICBwcmludGYoIiB0aW1lPSVsZC4lMDJsZCBtcyIsIHRyaXB0aW1lIC8gMTAwMCwKLSAgICAgICAgICAgICAgICAgICAgICAgKHRyaXB0aW1lICUgMTAwMCkgLyAxMCk7CisgICAgICAgICAgICAgICAgREVCVUdNU0dUTCgoInBpbmdDdGxUYWJsZSIsICIgdGltZT0lbGQuJTAybGQgbXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaXB0aW1lIC8gMTAwMCwgKHRyaXB0aW1lICUgMTAwMCkgLyAxMCkpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHByaW50ZigiIHRpbWU9JWxkLiUwM2xkIG1zIiwgdHJpcHRpbWUgLyAxMDAwLAotICAgICAgICAgICAgICAgICAgICAgICB0cmlwdGltZSAlIDEwMDApOworICAgICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLCAiIHRpbWU9JWxkLiUwM2xkIG1zIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlwdGltZSAvIDEwMDAsIHRyaXB0aW1lICUgMTAwMCkpOwogICAgICAgICB9CiAgICAgICAgIGlmIChkdXBmbGFnKQotICAgICAgICAgICAgcHJpbnRmKCIgKERVUCEpIik7CisgICAgICAgICAgICBERUJVR01TR1RMKCgicGluZ0N0bFRhYmxlIiwgIiAoRFVQISkiKSk7CiAgICAgICAgIGlmIChjc2ZhaWxlZCkKLSAgICAgICAgICAgIHByaW50ZigiIChCQUQgQ0hFQ0tTVU0hKSIpOworICAgICAgICAgICAgREVCVUdNU0dUTCgoInBpbmdDdGxUYWJsZSIsICIgKEJBRCBDSEVDS1NVTSEpIikpOwogCiAgICAgICAgIC8qCiAgICAgICAgICAqIGNoZWNrIHRoZSBkYXRhIApAQCAtNTI1NSwxMyArNTI4NiwxNCBAQAogICAgICAgICBkcCA9ICh1X2NoYXIgKikmb3V0cGFja1s4ICsgc2l6ZW9mKHN0cnVjdCB0aW1ldmFsKV07CiAgICAgICAgIGZvciAoaSA9IHNpemVvZihzdHJ1Y3QgdGltZXZhbCk7IGkgPCBkYXRhbGVuOyArK2ksICsrY3AsICsrZHApIHsKICAgICAgICAgICAgIGlmICgqY3AgIT0gKmRwKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJcbndyb25nIGRhdGEgYnl0ZSAjJWQgc2hvdWxkIGJlIDB4JXggYnV0IHdhcyAweCV4IiwKLSAgICAgICAgICAgICAgICAgICAgICAgaSwgKmRwLCAqY3ApOworICAgICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcbndyb25nIGRhdGEgYnl0ZSAjJWQgc2hvdWxkIGJlIDB4JXggYnV0IHdhcyAweCV4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCAqZHAsICpjcCkpOwogICAgICAgICAgICAgICAgIGNwID0gKHVfY2hhciAqKSBwdHIgKyBzaXplb2Yoc3RydWN0IHRpbWV2YWwpOwogICAgICAgICAgICAgICAgIGZvciAoaSA9IHNpemVvZihzdHJ1Y3QgdGltZXZhbCk7IGkgPCBkYXRhbGVuOyArK2ksICsrY3ApIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKChpICUgMzIpID09IHNpemVvZihzdHJ1Y3QgdGltZXZhbCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIlxuIyVkXHQiLCBpKTsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIleCAiLCAqY3ApOworICAgICAgICAgICAgICAgICAgICAgICAgREVCVUdNU0dUTCgoInBpbmdDdGxUYWJsZSIsICJcbiMlZFx0IiwgaSkpOworICAgICAgICAgICAgICAgICAgICBERUJVR01TR1RMKCgicGluZ0N0bFRhYmxlIiwgIiV4ICIsICpjcCkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTUyNjksMTIgKzUzMDEsMTYgQEAKICAgICB9CiAKIAotICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnMsIE5VTEwsIDAsIEFTTl9PQ1RFVF9TVFIsIChjaGFyICopIGl0ZW0tPnBpbmdDdGxPd25lckluZGV4LCBpdGVtLT5waW5nQ3RsT3duZXJJbmRleExlbik7ICAgICAvKiAgcGluZ0N0bE93bmVySW5kZXggICovCi0gICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgmdmFycywgTlVMTCwgMCwgQVNOX09DVEVUX1NUUiwgKGNoYXIgKikgaXRlbS0+cGluZ0N0bFRlc3ROYW1lLCBpdGVtLT5waW5nQ3RsVGVzdE5hbWVMZW4pOyAvKiAgcGluZ0N0bFRlc3ROYW1lICAqLworICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoJnZhcnMsIE5VTEwsIDAsIEFTTl9PQ1RFVF9TVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLT5waW5nQ3RsT3duZXJJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0tPnBpbmdDdGxPd25lckluZGV4TGVuKTsKKyAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCZ2YXJzLCBOVUxMLCAwLCBBU05fT0NURVRfU1RSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS0+cGluZ0N0bFRlc3ROYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS0+cGluZ0N0bFRlc3ROYW1lTGVuKTsKIAotCi0gICAgaWYgKChTdG9yYWdlTmV3ID0KLSAgICAgICAgIGhlYWRlcl9jb21wbGV4X2dldChwaW5nUmVzdWx0c1RhYmxlU3RvcmFnZSwgdmFycykpID09IE5VTEwpCisgICAgU3RvcmFnZU5ldyA9IGhlYWRlcl9jb21wbGV4X2dldChwaW5nUmVzdWx0c1RhYmxlU3RvcmFnZSwgdmFycyk7CisgICAgc25tcF9mcmVlX3ZhcmJpbmQodmFycyk7CisgICAgaWYgKCFTdG9yYWdlTmV3KQogICAgICAgICByZXR1cm4gU05NUF9FUlJfTk9TVUNITkFNRTsKIAogCkBAIC01Mjg5LDYgKzUzMjUsNyBAQAogICAgIFN0b3JhZ2VOZXctPnBpbmdSZXN1bHRzUnR0U3VtT2ZTcXVhcmVzID0gKnRzdW0yOwogCiAgICAgU3RvcmFnZU5ldy0+cGluZ1Jlc3VsdHNMYXN0R29vZFByb2JlX3RpbWUgPSB0aW1lcDsKKyAgICBmcmVlKFN0b3JhZ2VOZXctPnBpbmdSZXN1bHRzTGFzdEdvb2RQcm9iZSk7CiAgICAgU3RvcmFnZU5ldy0+cGluZ1Jlc3VsdHNMYXN0R29vZFByb2JlID0KICAgICAgICAgbmV0c25tcF9tZW1kdXAoZGF0ZV9uX3RpbWUoJnRpbWVwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmU3RvcmFnZU5ldy0+cGluZ1Jlc3VsdHNMYXN0R29vZFByb2JlTGVuKSwKQEAgLTUzOTksMjAgKzU0MzYsMjEgQEAKIAogICAgIHB1dGNoYXIoJ1xuJyk7CiAgICAgZmZsdXNoKHN0ZG91dCk7Ci0gICAgcHJpbnRmKCItLS0gJXMgcGluZyBzdGF0aXN0aWNzIC0tLVxuIiwgaG9zdG5hbWUpOworICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLCAiLS0tICVzIHBpbmcgc3RhdGlzdGljcyAtLS1cbiIsIGhvc3RuYW1lKSk7CiAKICAgICBpZiAoKm5yZXBlYXRzKQotICAgICAgICBwcmludGYoIiwgKyVsZCBkdXBsaWNhdGVzIiwgKm5yZXBlYXRzKTsKKyAgICAgICAgREVCVUdNU0dUTCgoInBpbmdDdGxUYWJsZSIsICIsICslbGQgZHVwbGljYXRlcyIsICpucmVwZWF0cykpOwogICAgIGlmICgqbmNoZWNrc3VtKQotICAgICAgICBwcmludGYoIiwgKyVsZCBjb3JydXB0ZWQiLCAqbmNoZWNrc3VtKTsKKyAgICAgICAgREVCVUdNU0dUTCgoInBpbmdDdGxUYWJsZSIsICIsICslbGQgY29ycnVwdGVkIiwgKm5jaGVja3N1bSkpOwogICAgIGlmICgqbmVycm9ycykKLSAgICAgICAgcHJpbnRmKCIsICslbGQgZXJyb3JzIiwgKm5lcnJvcnMpOworICAgICAgICBERUJVR01TR1RMKCgicGluZ0N0bFRhYmxlIiwgIiwgKyVsZCBlcnJvcnMiLCAqbmVycm9ycykpOwogICAgIGlmICgqbnRyYW5zbWl0dGVkKSB7Ci0gICAgICAgIHByaW50ZigiLCAlZCUlIGxvc3MiLAotICAgICAgICAgICAgICAgKGludCkgKCgoKGxvbmcgbG9uZykgKCgqbnRyYW5zbWl0dGVkKSAtCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpucmVjZWl2ZWQpKSkgKiAxMDApIC8KLSAgICAgICAgICAgICAgICAgICAgICAoKm50cmFuc21pdHRlZCkpKTsKLSAgICAgICAgcHJpbnRmKCIsIHRpbWUgJWxkbXMiLCAxMDAwICogdHYudHZfc2VjICsgdHYudHZfdXNlYyAvIDEwMDApOworICAgICAgICBERUJVR01TR1RMKCgicGluZ0N0bFRhYmxlIiwgIiwgJWQlJSBsb3NzIiwKKyAgICAgICAgICAgICAgICAgICAgKGludCkgKCgoKGxvbmcgbG9uZykgKCgqbnRyYW5zbWl0dGVkKSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKm5yZWNlaXZlZCkpKSAqIDEwMCkgLworICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpudHJhbnNtaXR0ZWQpKSkpOworICAgICAgICBERUJVR01TR1RMKCgicGluZ0N0bFRhYmxlIiwgIiwgdGltZSAlbGRtcyIsCisgICAgICAgICAgICAgICAgICAgIDEwMDAgKiB0di50dl9zZWMgKyB0di50dl91c2VjIC8gMTAwMCkpOwogICAgIH0KICAgICBwdXRjaGFyKCdcbicpOwogCkBAIC01NDIzLDIxICs1NDYxLDIzIEBACiAgICAgICAgICgqdHN1bTIpIC89ICgqbnJlY2VpdmVkKSArICgqbnJlcGVhdHMpOwogICAgICAgICB0bWRldiA9IGxsc3FydCgoKnRzdW0yKSAtICgqdHN1bSkgKiAoKnRzdW0pKTsKIAotICAgICAgICBwcmludGYKLSAgICAgICAgICAgICgicnR0IG1pbi9hdmcvbWF4L21kZXYgPSAlbGQuJTAzbGQvJWx1LiUwM2xkLyVsZC4lMDNsZC8lbGQuJTAzbGQgbXMiLAotICAgICAgICAgICAgICgqdG1pbikgLyAxMDAwLCAoKnRtaW4pICUgMTAwMCwKLSAgICAgICAgICAgICAodW5zaWduZWQgbG9uZykgKCgqdHN1bSkgLyAxMDAwKSwgKGxvbmcpICgoKnRzdW0pICUgMTAwMCksCi0gICAgICAgICAgICAgKCp0bWF4KSAvIDEwMDAsICgqdG1heCkgJSAxMDAwLCB0bWRldiAvIDEwMDAsIHRtZGV2ICUgMTAwMCk7CisgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLCAicnR0IG1pbi9hdmcvbWF4L21kZXYgPSAlbGQuJTAzbGQvJWx1LiUwM2xkIgorICAgICAgICAgICAgICAgICAgICAiLyVsZC4lMDNsZC8lbGQuJTAzbGQgbXMiLAorICAgICAgICAgICAgICAgICAgICAoKnRtaW4pIC8gMTAwMCwgKCp0bWluKSAlIDEwMDAsCisgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKSAoKCp0c3VtKSAvIDEwMDApLCAobG9uZykgKCgqdHN1bSkgJSAxMDAwKSwKKyAgICAgICAgICAgICAgICAgICAgKCp0bWF4KSAvIDEwMDAsICgqdG1heCkgJSAxMDAwLCB0bWRldiAvIDEwMDAsCisgICAgICAgICAgICAgICAgICAgIHRtZGV2ICUgMTAwMCkpOwogICAgIH0KICAgICBpZiAoKCpwaXBlc2l6ZSkgPiAxKQotICAgICAgICBwcmludGYoIiwgcGlwZSAlZCIsICpwaXBlc2l6ZSk7CisgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLCAiLCBwaXBlICVkIiwgKnBpcGVzaXplKSk7CiAgICAgaWYgKCgqbnRyYW5zbWl0dGVkKSA+IDEKICAgICAgICAgJiYgKCFpbnRlcnZhbCB8fCAob3B0aW9ucyAmIChGX0ZMT09EIHwgRl9BREFQVElWRSkpKSkgewogICAgICAgICBpbnQgICAgICAgICAgICAgaXBnID0KICAgICAgICAgICAgICgxMDAwMDAwICogKGxvbmcgbG9uZykgdHYudHZfc2VjICsKICAgICAgICAgICAgICB0di50dl91c2VjKSAvICgoKm50cmFuc21pdHRlZCkgLSAxKTsKLSAgICAgICAgcHJpbnRmKCIsIGlwZy9ld21hICVkLiUwM2QvJWQuJTAzZCBtcyIsIGlwZyAvIDEwMDAsIGlwZyAlIDEwMDAsCi0gICAgICAgICAgICAgICAoKnJ0dCkgLyA4MDAwLCAoKCpydHQpIC8gOCkgJSAxMDAwKTsKKyAgICAgICAgREVCVUdNU0dUTCgoInBpbmdDdGxUYWJsZSIsICIsIGlwZy9ld21hICVkLiUwM2QvJWQuJTAzZCBtcyIsCisgICAgICAgICAgICAgICAgICAgIGlwZyAvIDEwMDAsIGlwZyAlIDEwMDAsCisgICAgICAgICAgICAgICAgICAgICgqcnR0KSAvIDgwMDAsICgoKnJ0dCkgLyA4KSAlIDEwMDApKTsKICAgICB9CiAgICAgcHV0Y2hhcignXG4nKTsKICAgICByZXR1cm47CkBAIC01NDYwLDE5ICs1NTAwLDE5IEBACiAgICAgICAgICAgICAoKChsb25nIGxvbmcpICgoKm50cmFuc21pdHRlZCkgLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpucmVjZWl2ZWQpKSkgKiAxMDApIC8gKCpudHJhbnNtaXR0ZWQpOwogCi0gICAgZnByaW50ZihzdGRlcnIsICJcciVsZC8lbGQgcGFja2V0cywgJWQlJSBsb3NzIiwgKm50cmFuc21pdHRlZCwKLSAgICAgICAgICAgICpucmVjZWl2ZWQsIGxvc3MpOworICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLCAiXG4lbGQvJWxkIHBhY2tldHMsICVkJSUgbG9zcyIsICpudHJhbnNtaXR0ZWQsCisgICAgICAgICAgICAgICAgKm5yZWNlaXZlZCwgbG9zcykpOwogCiAgICAgaWYgKCgqbnJlY2VpdmVkKSAmJiB0aW1pbmcpIHsKICAgICAgICAgdGF2ZyA9ICgqdHN1bSkgLyAoKCpucmVjZWl2ZWQpICsgKCpucmVwZWF0cykpOwogCi0gICAgICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAgICAgICAgICIsIG1pbi9hdmcvZXdtYS9tYXggPSAlbGQuJTAzbGQvJWx1LiUwM2xkLyVkLiUwM2QvJWxkLiUwM2xkIG1zIiwKLSAgICAgICAgICAgICAgICAoKnRtaW4pIC8gMTAwMCwgKCp0bWluKSAlIDEwMDAsIHRhdmcgLyAxMDAwLCB0YXZnICUgMTAwMCwKLSAgICAgICAgICAgICAgICAoKnJ0dCkgLyA4MDAwLCAoKCpydHQpIC8gOCkgJSAxMDAwLCAoKnRtYXgpIC8gMTAwMCwKLSAgICAgICAgICAgICAgICAoKnRtYXgpICUgMTAwMCk7CisgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLCAiLCBtaW4vYXZnL2V3bWEvbWF4ID0gJWxkLiUwM2xkLyVsdS4lMDNsZCIKKyAgICAgICAgICAgICAgICAgICAgIi8lZC4lMDNkLyVsZC4lMDNsZCBtcyIsCisgICAgICAgICAgICAgICAgICAgICgqdG1pbikgLyAxMDAwLCAoKnRtaW4pICUgMTAwMCwgdGF2ZyAvIDEwMDAsIHRhdmcgJSAxMDAwLAorICAgICAgICAgICAgICAgICAgICAoKnJ0dCkgLyA4MDAwLCAoKCpydHQpIC8gOCkgJSAxMDAwLCAoKnRtYXgpIC8gMTAwMCwKKyAgICAgICAgICAgICAgICAgICAgKCp0bWF4KSAlIDEwMDApKTsKICAgICB9Ci0gICAgZnByaW50ZihzdGRlcnIsICJcbiIpOworICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLCAiXG4iKSk7CiB9CiAKIApAQCAtNTUzMCwxMiArNTU3MCwxMCBAQAogICAgICAgICBpZiAob3B0aW9ucyAmIEZfRkxPT0QpCiAgICAgICAgICAgICB3cml0ZShTVERPVVRfRklMRU5PLCAiRSIsIDEpOwogICAgICAgICBlbHNlIGlmIChlLT5lZV9lcnJubyAhPSBFTVNHU0laRSkKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAicGluZzogbG9jYWwgZXJyb3I6ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICBzdHJlcnJvcihlLT5lZV9lcnJubykpOworICAgICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgInBpbmc6IGxvY2FsIGVycm9yOiAlc1xuIiwgc3RyZXJyb3IoZS0+ZWVfZXJybm8pKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCi0gICAgICAgICAgICAgICAgICAgICJwaW5nOiBsb2NhbCBlcnJvcjogTWVzc2FnZSB0b28gbG9uZywgbXR1PSV1XG4iLAotICAgICAgICAgICAgICAgICAgICBlLT5lZV9pbmZvKTsKKyAgICAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJwaW5nOiBsb2NhbCBlcnJvcjogTWVzc2FnZSB0b28gbG9uZywgbXR1PSV1XG4iLAorICAgICAgICAgICAgICAgICAgICAgZS0+ZWVfaW5mbyk7CiAgICAgICAgICgqbmVycm9ycykrKzsKICAgICB9IGVsc2UgaWYgKGUtPmVlX29yaWdpbiA9PSBTT19FRV9PUklHSU5fSUNNUDYpIHsKICAgICAgICAgaWYgKHJlcyA8IHNpemVvZihpY21waCkgfHwKQEAgLTU2NTcsNyArNTY5NSw3IEBACiAgICAgaWNtcGggPSAoc3RydWN0IGljbXA2X2hkciAqKSBidWY7CiAgICAgaWYgKGNjIDwgOCkgewogICAgICAgICBpZiAob3B0aW9ucyAmIEZfVkVSQk9TRSkKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAicGluZzogcGFja2V0IHRvbyBzaG9ydCAoJWQgYnl0ZXMpXG4iLCBjYyk7CisgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAicGluZzogcGFja2V0IHRvbyBzaG9ydCAoJWQgYnl0ZXMpXG4iLCBjYyk7CiAgICAgICAgIHJldHVybiAxOwogICAgIH0KICAgICBpZiAoaWNtcGgtPmljbXA2X3R5cGUgPT0gSUNNUDZfRUNIT19SRVBMWSkgewpAQCAtNTcxMCwxNiArNTc0OCwxNyBAQAogICAgICAgICAgICAgICAgIHdyaXRlKFNURE9VVF9GSUxFTk8sICJcYkUiLCAyKTsKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHByaW50ZigiRnJvbSAlczogaWNtcF9zZXE9JXUgIiwKLSAgICAgICAgICAgICAgICAgICBwcl9hZGRyKCZmcm9tLT5zaW42X2FkZHIsIG9wdGlvbnMpLAotICAgICAgICAgICAgICAgICAgIGljbXBoMS0+aWNtcDZfc2VxKTsKKyAgICAgICAgICAgIERFQlVHTVNHVEwoKCJwaW5nQ3RsVGFibGUiLCAiRnJvbSAlczogaWNtcF9zZXE9JXUgIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHByX2FkZHIoJmZyb20tPnNpbjZfYWRkciwgb3B0aW9ucyksCisgICAgICAgICAgICAgICAgICAgICAgICBpY21waDEtPmljbXA2X3NlcSkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAqIFdlJ3ZlIGdvdCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBFQ0hPUkVQTFkgCiAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgIGlmICghKG9wdGlvbnMgJiBGX1ZFUkJPU0UpIHx8IHVpZCkKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgICAgIHByaW50ZigiRnJvbSAlczogIiwgcHJfYWRkcigmZnJvbS0+c2luNl9hZGRyLCBvcHRpb25zKSk7CisgICAgICAgICAgICBERUJVR01TR1RMKCgicGluZ0N0bFRhYmxlIiwgIkZyb20gJXM6ICIsCisgICAgICAgICAgICAgICAgICAgICAgICBwcl9hZGRyKCZmcm9tLT5zaW42X2FkZHIsIG9wdGlvbnMpKSk7CiAgICAgICAgIH0KICAgICAgICAgLyogcHJfaWNtcGgoaWNtcGgtPmljbXA2X3R5cGUsIGljbXBoLT5pY21wNl9jb2RlLCBudG9obChpY21waC0+aWNtcDZfbXR1KSk7ICovCiAgICAgfQpAQCAtNTc4NCw4ICs1ODIzLDggQEAKICAgICBzdHJ1Y3QgaG9zdGVudCAqaHAgPSBOVUxMOwogCiAgICAgaWYgKCEob3B0aW9ucyAmIEZfTlVNRVJJQykpCi0gICAgICAgIGhwID0gZ2V0aG9zdGJ5YWRkcigoX191OCAqKSBhZGRyLCBzaXplb2Yoc3RydWN0IGluNl9hZGRyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEFGX0lORVQ2KTsKKyAgICAgICAgaHAgPSBuZXRzbm1wX2dldGhvc3RieWFkZHIoKF9fdTggKikgYWRkciwgc2l6ZW9mKHN0cnVjdCBpbjZfYWRkciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFGX0lORVQ2KTsKIAogICAgIHJldHVybiBocCA/IGhwLT5oX25hbWUgOiBwcl9hZGRyX24oYWRkcik7CiB9CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oCmluZGV4IGVhOGRhMzEuLmNhNjlkMTMgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oCisrKyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oCkBAIC0yMDYsNiArMjA2LDcgQEAKICAqIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyAKICAqLwogdm9pZCAgICAgICAgICAgIGluaXRfcGluZ0N0bFRhYmxlKHZvaWQpOwordm9pZCAgICAgICAgICAgIHNodXRkb3duX3BpbmdDdGxUYWJsZSh2b2lkKTsKIEZpbmRWYXJNZXRob2QgICB2YXJfcGluZ0N0bFRhYmxlOwogdm9pZCAgICAgICAgICAgIHBhcnNlX3BpbmdDdGxUYWJsZShjb25zdCBjaGFyICosIGNoYXIgKik7CiBTTk1QQ2FsbGJhY2sgICAgc3RvcmVfcGluZ0N0bFRhYmxlOwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jCmluZGV4IDRmYjk4NTAuLjBjYmRiYzYgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYworKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmMKQEAgLTQsMTIgKzQsMTYgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8Y3R5cGUuaD4KICNpbmNsdWRlICJkaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmgiCiAjaW5jbHVkZSAiZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShpcXVlcnkpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShzdHJpbmdfdGltZV90b19zZWNzKQorCiBzdGF0aWMgaW50IHNjaGVkRW50cmllczsKIAogLyoqIEluaXRpYWxpemVzIHRoZSBzY2hlZENvbmYgbW9kdWxlICovCkBAIC01MSw3ICs1NSw3IEBACiB7CiAgICAgbmV0c25tcF90ZGF0YV9yb3cgICAgICAgKnJvdzsKICAgICBzdHJ1Y3Qgc2NoZWRUYWJsZV9lbnRyeSAqZW50cnk7Ci0gICAgY2hhciAgIGJ1ZlsyNF07CisgICAgY2hhciAgIGJ1ZlsyNF0sIHRtcGJ1ZltTUFJJTlRfTUFYX0xFTl07CiAgICAgbG9uZyAgIGZyZXF1ZW5jeTsKICAgICBsb25nICAgdmFsdWU7CiAgICAgc2l6ZV90IHRtcGludDsKQEAgLTY1LDcgKzY5LDEzIEBACiAgICAgLyoKICAgICAgKiAgUGFyc2UgdGhlIGNvbmZpZ3VyZSBkaXJlY3RpdmUgbGluZQogICAgICAqLwotICAgIGxpbmUgPSByZWFkX2NvbmZpZ19yZWFkX2RhdGEoQVNOX0lOVEVHRVIsICAgbGluZSwgJmZyZXF1ZW5jeSwgJnRtcGludCk7CisgICAgbGluZSA9IGNvcHlfbndvcmQobGluZSwgdG1wYnVmLCBzaXplb2YodG1wYnVmKSk7CisgICAgZnJlcXVlbmN5ID0gbmV0c25tcF9zdHJpbmdfdGltZV90b19zZWNzKHRtcGJ1Zik7CisgICAgaWYgKGZyZXF1ZW5jeSA9PSAtMSkgeworICAgICAgICBjb25maWdfcGVycm9yKCJJbGxlZ2FsIGZyZXF1ZW5jeSBzcGVjaWZpZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGxpbmUgPSByZWFkX2NvbmZpZ19yZWFkX2RhdGEoQVNOX09CSkVDVF9JRCwgbGluZSwgJnZhcl9wdHIsICAgJnZhcl9sZW4pOwogICAgIGlmICh2YXJfbGVuID09IDApIHsKICAgICAgICAgY29uZmlnX3BlcnJvcigiaW52YWxpZCBzcGVjaWZpY2F0aW9uIGZvciBzY2hlZFZhcmlhYmxlIik7CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMKaW5kZXggYzkxNDc2OS4uYzNkYjM0ZiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYwpAQCAtNCwxMSArNCwxNiBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KICNpbmNsdWRlICJkaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmgiCiAjaW5jbHVkZSAidXRpbGl0aWVzL2lxdWVyeS5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShpcXVlcnkpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzY2hlZF9uZXh0cm93dGltZSwgbmV0c25tcF91bnVzZWQpCisKIG5ldHNubXBfdGRhdGEgKnNjaGVkdWxlX3RhYmxlOwogCiAKQEAgLTI5NywxNSArMzAyLDE0IEBACiAgICAgICAgICAgICAgZW50cnktPnNjaGVkTmV4dFJ1biA9IG5vdyArIGVudHJ5LT5zY2hlZEludGVydmFsOwogICAgICAgICB9CiAgICAgICAgIERFQlVHTVNHVEwoKCJkaXNtYW46c2NoZWR1bGU6dGltZSIsICJwZXJpb2RpYzogKCVsZCkgJXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LT5zY2hlZE5leHRSdW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjdGltZSgmZW50cnktPnNjaGVkTmV4dFJ1bikpKTsKKyAgICAgICAgICAgICAgICAgICAgKGxvbmcpIGVudHJ5LT5zY2hlZE5leHRSdW4sIGN0aW1lKCZlbnRyeS0+c2NoZWROZXh0UnVuKSkpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgU0NIRURfVFlQRV9PTkVTSE9UOgogICAgICAgICBpZiAoIGVudHJ5LT5zY2hlZExhc3RSdW4gKSB7CiAgICAgICAgICAgICBERUJVR01TR1RMKCgiZGlzbWFuOnNjaGVkdWxlOnRpbWUiLCAib25lLXNob3Q6IGV4cGlyZWQgKCVsZCkgJXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LT5zY2hlZE5leHRSdW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjdGltZSgmZW50cnktPnNjaGVkTmV4dFJ1bikpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSBlbnRyeS0+c2NoZWROZXh0UnVuLAorICAgICAgICAgICAgICAgICAgICAgICAgY3RpbWUoJmVudHJ5LT5zY2hlZE5leHRSdW4pKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgLyogRmFsbHRocm91Z2ggKi8KQEAgLTM0Miw4ICszNDYsOCBAQAogICAgICAgICAgKiAgICB0aGUgZmlyc3Qgc3BlY2lmaWVkIGRheSAoaW4gdGhhdCBtb250aCkKICAgICAgICAgICovCiAKLSAgICAgICAgbG9jYWx0aW1lX3IoICZub3csICZub3dfdG0gKTsKLSAgICAgICAgbG9jYWx0aW1lX3IoICZub3csICZuZXh0X3RtICk7CisgICAgICAgICh2b2lkKSBsb2NhbHRpbWVfciggJm5vdywgJm5vd190bSApOworICAgICAgICAodm9pZCkgbG9jYWx0aW1lX3IoICZub3csICZuZXh0X3RtICk7CiAKICAgICAgICAgbmV4dF90bS50bV9tb249LTE7CiAgICAgICAgIG5leHRfdG0udG1fbWRheT0tMTsKQEAgLTQyMCw4ICs0MjQsNyBAQAogICAgICAgICAgKi8KICAgICAgICAgZW50cnktPnNjaGVkTmV4dFJ1biA9IG1rdGltZSggJm5leHRfdG0gKTsKICAgICAgICAgREVCVUdNU0dUTCgoImRpc21hbjpzY2hlZHVsZTp0aW1lIiwgImNhbGVuZGFyOiAoJWxkKSAlcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnktPnNjaGVkTmV4dFJ1biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0aW1lKCZlbnRyeS0+c2NoZWROZXh0UnVuKSkpOworICAgICAgICAgICAgICAgICAgICAobG9uZykgZW50cnktPnNjaGVkTmV4dFJ1biwgY3RpbWUoJmVudHJ5LT5zY2hlZE5leHRSdW4pKSk7CiAgICAgICAgIHJldHVybjsKIAogICAgIGRlZmF1bHQ6CkBAIC00MzUsMTEgKzQzOCwxMyBAQAogICAgIHJldHVybjsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NDSEVEX05FWFRST1dUSU1FCiB2b2lkCiBzY2hlZF9uZXh0Um93VGltZSggbmV0c25tcF90ZGF0YV9yb3cgKnJvdyApCiB7CiAgICAgc2NoZWRfbmV4dFRpbWUoKHN0cnVjdCBzY2hlZFRhYmxlX2VudHJ5ICopIHJvdy0+ZGF0YSApOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU0NIRURfTkVYVFJPV1RJTUUgKi8KIAogLyoKICAqIGNyZWF0ZSBhIG5ldyByb3cgaW4gdGhlIHRhYmxlIApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMKaW5kZXggZDg4NjNmZC4uYmJhNDhmZCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jCkBAIC03LDEyICs3LDI3IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgInV0aWxpdGllcy9pcXVlcnkuaCIKICNpbmNsdWRlICJkaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmgiCiAjaW5jbHVkZSAiZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaXF1ZXJ5KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaXF1ZXJ5X3BkdV9zZXNzaW9uKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfdGRhdGEpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShkYXRlX25fdGltZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX3ZiX3VpbnQpCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfdmJfdHlwZV9hbmRfbWF4X3NpemUpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja192Yl9vaWQpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja192Yl90cnV0aHZhbHVlKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfdGRhdGFfaW5zZXJ0X3JvdykKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKworc3RhdGljIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm87CisKIC8qKiBJbml0aWFsaXplcyB0aGUgc2NoZWRUYWJsZSBtb2R1bGUgKi8KIHZvaWQKIGluaXRfc2NoZWRUYWJsZSh2b2lkKQpAQCAtMjAsNyArMzUsNiBAQAogICAgIHN0YXRpYyBvaWQgICAgICBzY2hlZFRhYmxlX29pZFtdID0geyAxLCAzLCA2LCAxLCAyLCAxLCA2MywgMSwgMiB9OwogICAgIHNpemVfdCAgICAgICAgICBzY2hlZFRhYmxlX29pZF9sZW4gPSBPSURfTEVOR1RIKHNjaGVkVGFibGVfb2lkKTsKICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICAgICpyZWc7Ci0gICAgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqdGFibGVfaW5mbzsKIAogICAgIERFQlVHTVNHVEwoKCJkaXNtYW46c2NoZWR1bGU6aW5pdCIsICJJbml0aWFsaXppbmcgdGFibGVcbiIpKTsKICAgICAvKgpAQCAtNDgsNiArNjIsMTQgQEAKICAgICBuZXRzbm1wX3RkYXRhX3JlZ2lzdGVyKHJlZywgc2NoZWR1bGVfdGFibGUsIHRhYmxlX2luZm8pOwogfQogCit2b2lkCitzaHV0ZG93bl9zY2hlZFRhYmxlKHZvaWQpCit7CisgICAgaWYgKHRhYmxlX2luZm8pIHsKKwluZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX2ZyZWUodGFibGVfaW5mbyk7CisJdGFibGVfaW5mbyA9IE5VTEw7CisgICAgfQorfQogCiAvKiogaGFuZGxlcyByZXF1ZXN0cyBmb3IgdGhlIHNjaGVkVGFibGUgdGFibGUgKi8KIGludApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuaCBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmgKaW5kZXggZWZkMWYyZS4uNTIwMzNiYSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuaAorKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5oCkBAIC04LDYgKzgsNyBAQAogICogZnVuY3Rpb24gZGVjbGFyYXRpb25zIAogICovCiB2b2lkICAgICAgICAgICAgaW5pdF9zY2hlZFRhYmxlKHZvaWQpOwordm9pZCAgICAgICAgICAgIHNodXRkb3duX3NjaGVkVGFibGUodm9pZCk7CiBOZXRzbm1wX05vZGVfSGFuZGxlciBzY2hlZFRhYmxlX2hhbmRsZXI7CiAKIC8qCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jCmluZGV4IDQ2ZmU5N2QuLmI5MjVjNWUgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jCkBAIC0xOCwxMCArMTgsMTUgQEAKIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPHB0aHJlYWQuaD4KICNpbmNsdWRlIDxtYXRoLmg+CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShoZWFkZXJfY29tcGxleF9maW5kX2VudHJ5KQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworCiAjaW5jbHVkZSAidHJhY2VSb3V0ZUN0bFRhYmxlLmgiCiAjaW5jbHVkZSAidHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5oIgogI2luY2x1ZGUgInRyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5oIgpAQCAtMTY5NSw4ICsxNzAwLDYgQEAKICAgICAgICAgICogQmFjayBvdXQgYW55IGNoYW5nZXMgbWFkZSBpbiB0aGUgQUNUSU9OIGNhc2UgCiAgICAgICAgICAqLwogICAgICAgICBTTk1QX0ZSRUUoU3RvcmFnZVRtcC0+dHJhY2VSb3V0ZUN0bFRhcmdldEFkZHJlc3MpOwotICAgICAgICBTdG9yYWdlVG1wLT50cmFjZVJvdXRlQ3RsVGFyZ2V0QWRkcmVzcyA9IE5VTEw7Ci0KICAgICAgICAgU3RvcmFnZVRtcC0+dHJhY2VSb3V0ZUN0bFRhcmdldEFkZHJlc3MgPSB0bXB2YXI7CiAgICAgICAgIFN0b3JhZ2VUbXAtPnRyYWNlUm91dGVDdGxUYXJnZXRBZGRyZXNzTGVuID0gdG1wbGVuOwogICAgICAgICBicmVhazsKQEAgLTI0NjksNyArMjQ3Miw2IEBACiAgICAgICAgICAqIEJhY2sgb3V0IGFueSBjaGFuZ2VzIG1hZGUgaW4gdGhlIEFDVElPTiBjYXNlIAogICAgICAgICAgKi8KICAgICAgICAgU05NUF9GUkVFKFN0b3JhZ2VUbXAtPnRyYWNlUm91dGVDdGxTb3VyY2VBZGRyZXNzKTsKLSAgICAgICAgU3RvcmFnZVRtcC0+dHJhY2VSb3V0ZUN0bFNvdXJjZUFkZHJlc3MgPSBOVUxMOwogICAgICAgICBTdG9yYWdlVG1wLT50cmFjZVJvdXRlQ3RsU291cmNlQWRkcmVzcyA9IHRtcHZhcjsKICAgICAgICAgU3RvcmFnZVRtcC0+dHJhY2VSb3V0ZUN0bFNvdXJjZUFkZHJlc3NMZW4gPSB0bXBsZW47CiAgICAgICAgIGJyZWFrOwpAQCAtMjY1MSw3ICsyNjUzLDYgQEAKICAgICAgICAgICogQmFjayBvdXQgYW55IGNoYW5nZXMgbWFkZSBpbiB0aGUgQUNUSU9OIGNhc2UgCiAgICAgICAgICAqLwogICAgICAgICBTTk1QX0ZSRUUoU3RvcmFnZVRtcC0+dHJhY2VSb3V0ZUN0bE1pc2NPcHRpb25zKTsKLSAgICAgICAgU3RvcmFnZVRtcC0+dHJhY2VSb3V0ZUN0bE1pc2NPcHRpb25zID0gTlVMTDsKICAgICAgICAgU3RvcmFnZVRtcC0+dHJhY2VSb3V0ZUN0bE1pc2NPcHRpb25zID0gdG1wdmFyOwogICAgICAgICBTdG9yYWdlVG1wLT50cmFjZVJvdXRlQ3RsTWlzY09wdGlvbnNMZW4gPSB0bXBsZW47CiAgICAgICAgIGJyZWFrOwpAQCAtMzMwMSw3ICszMzAyLDYgQEAKICAgICAgICAgICogQmFjayBvdXQgYW55IGNoYW5nZXMgbWFkZSBpbiB0aGUgQUNUSU9OIGNhc2UgCiAgICAgICAgICAqLwogICAgICAgICBTTk1QX0ZSRUUoU3RvcmFnZVRtcC0+dHJhY2VSb3V0ZUN0bERlc2NyKTsKLSAgICAgICAgU3RvcmFnZVRtcC0+dHJhY2VSb3V0ZUN0bERlc2NyID0gTlVMTDsKICAgICAgICAgU3RvcmFnZVRtcC0+dHJhY2VSb3V0ZUN0bERlc2NyID0gdG1wdmFyOwogICAgICAgICBTdG9yYWdlVG1wLT50cmFjZVJvdXRlQ3RsRGVzY3JMZW4gPSB0bXBsZW47CiAgICAgICAgIGJyZWFrOwpAQCAtMzQ4NCw3ICszNDg0LDYgQEAKICAgICAgICAgICogQmFjayBvdXQgYW55IGNoYW5nZXMgbWFkZSBpbiB0aGUgQUNUSU9OIGNhc2UgCiAgICAgICAgICAqLwogICAgICAgICBTTk1QX0ZSRUUoU3RvcmFnZVRtcC0+dHJhY2VSb3V0ZUN0bFRyYXBHZW5lcmF0aW9uKTsKLSAgICAgICAgU3RvcmFnZVRtcC0+dHJhY2VSb3V0ZUN0bFRyYXBHZW5lcmF0aW9uID0gTlVMTDsKICAgICAgICAgU3RvcmFnZVRtcC0+dHJhY2VSb3V0ZUN0bFRyYXBHZW5lcmF0aW9uID0gdG1wdmFyOwogICAgICAgICBTdG9yYWdlVG1wLT50cmFjZVJvdXRlQ3RsVHJhcEdlbmVyYXRpb25MZW4gPSB0bXBsZW47CiAgICAgICAgIGJyZWFrOwpAQCAtMzY2MCw3ICszNjU5LDYgQEAKICAgICAgICAgICogQmFjayBvdXQgYW55IGNoYW5nZXMgbWFkZSBpbiB0aGUgQUNUSU9OIGNhc2UgCiAgICAgICAgICAqLwogICAgICAgICBTTk1QX0ZSRUUoU3RvcmFnZVRtcC0+dHJhY2VSb3V0ZUN0bFR5cGUpOwotICAgICAgICBTdG9yYWdlVG1wLT50cmFjZVJvdXRlQ3RsVHlwZSA9IE5VTEw7CiAgICAgICAgIFN0b3JhZ2VUbXAtPnRyYWNlUm91dGVDdGxUeXBlID0gdG1wdmFyOwogICAgICAgICBTdG9yYWdlVG1wLT50cmFjZVJvdXRlQ3RsVHlwZUxlbiA9IHRtcGxlbjsKICAgICAgICAgYnJlYWs7CkBAIC01OTgxLDcgKzU5NzksNyBAQAogICAgICAgICByZXR1cm4gKGhpKTsKICAgICB9CiAKLSAgICBocCA9IGdldGhvc3RieW5hbWUoaG9zdG5hbWUpOworICAgIGhwID0gbmV0c25tcF9nZXRob3N0YnluYW1lKGhvc3RuYW1lKTsKICAgICBpZiAoaHAgPT0gTlVMTCkgewogICAgICAgICBGcHJpbnRmKHN0ZGVyciwgIiVzOiB1bmtub3duIGhvc3QgJXNcbiIsICJ0cmFjZXJvdXRlIiwgaG9zdG5hbWUpOwogICAgICAgICBwcmludGYoImhwPU5VTExcbiIpOwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jIGIvYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jCmluZGV4IDE5ZTczYjYuLmFiYTZjZjEgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmMKQEAgLTE4LDYgKzE4LDggQEAKIAogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KKwogI2lmIEhBVkVfU1RETElCX0gKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNlbmRpZgpAQCAtNDAsNiArNDIsOCBAQAogI2luY2x1ZGUgInRyYWNlUm91dGVIb3BzVGFibGUuaCIKICNpbmNsdWRlICJoZWFkZXJfY29tcGxleC5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV9kYXRhc2V0KQorCiAvKgogICp0cmFjZVJvdXRlUmVzdWx0c1RhYmxlX3ZhcmlhYmxlc19vaWQ6CiAgKgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYyBiL2FnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMKaW5kZXggZWY4MzQ1MC4uNmViNjlmNyAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYworKysgYi9hZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jCkBAIC0zOSw3ICszOSw4IEBACiAgICAgZm9yIChwID0gYWRkcnM7IHA7IHAgPSBwLT5pZmFfbmV4dCkgewogCiAgICAgICAgIGlmICghbGlzdF9oZWFkKSB7Ci0gICAgICAgICAgICBpZiAoIChsaXN0X2hlYWQgPSAoc3RydWN0IGlmbmFtZSAqKSBtYWxsb2MgKHNpemVvZihzdHJ1Y3QgaWZuYW1lKSkpIDwgMCkgeworICAgICAgICAgICAgbGlzdF9oZWFkID0gbWFsbG9jKHNpemVvZihzdHJ1Y3QgaWZuYW1lKSk7CisgICAgICAgICAgICBpZiAoIWxpc3RfaGVhZCkgewogICAgICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6ZG90M1N0YXRzVGFibGU6aW50ZXJmYWNlX25hbWVfbGlzdF9nZXQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWRcbiIpKTsKICAgICAgICAgICAgICAgICBzbm1wX2xvZyAoTE9HX0VSUiwgImFjY2Vzczpkb3QzU3RhdHNUYWJsZSxpbnRlcmZhY2VfbmFtZV9saXN0X2dldCwgbWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkXG4iKTsKQEAgLTU5LDcgKzYwLDggQEAKICAgICAgICAgaWYgKG5hbWVwdHIxKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKCAobmFtZXB0cjItPmlmbl9uZXh0ID0gKHN0cnVjdCBpZm5hbWUgKikgbWFsbG9jIChzaXplb2Yoc3RydWN0IGlmbmFtZSkpKSA8IDApIHsKKyAgICAgICAgbmFtZXB0cjItPmlmbl9uZXh0ID0gbWFsbG9jKHNpemVvZihzdHJ1Y3QgaWZuYW1lKSk7CisgICAgICAgIGlmICghbmFtZXB0cjItPmlmbl9uZXh0KSB7CiAgICAgICAgICAgICBERUJVR01TR1RMKCgiYWNjZXNzOmRvdDNTdGF0c1RhYmxlOmludGVyZmFjZV9uYW1lX2xpc3RfZ2V0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICJtZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWRcbiIpKTsKICAgICAgICAgICAgIHNubXBfbG9nIChMT0dfRVJSLCAiYWNjZXNzOmRvdDNTdGF0c1RhYmxlLGludGVyZmFjZV9uYW1lX2xpc3RfZ2V0LCBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWRcbiIpOwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jIGIvYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCmluZGV4IDU0MTQwMDEuLjc0ZjMzYmYgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYworKysgYi9hZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMKQEAgLTIxMSw3ICsyMTEsNiBAQAogaW50CiBkb3QzU3RhdHNUYWJsZV9jb250YWluZXJfbG9hZChuZXRzbm1wX2NvbnRhaW5lciAqIGNvbnRhaW5lcikKIHsKLSAgICBkb3QzU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICpyb3dyZXFfY3R4OwogICAgIHNpemVfdCAgICAgICAgICBjb3VudCA9IDA7CiAgICAgaW50ICAgICAgICAgICAgIGZkOwogI2lmIGRlZmluZWQobGludXgpCkBAIC0yNjksNiArMjY4LDggQEAKICAgICAgKi8KIAogICAgIGZvciAocCA9IGxpc3RfaGVhZDsgcDsgcCA9IHAtPmlmbl9uZXh0KSB7CisgICAgICAgIGRvdDNTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKnJvd3JlcV9jdHg7CisKICAgICAgICAgREVCVUdNU0dUTCgoImFjY2Vzczpkb3QzU3RhdHNUYWJsZSIsICJwcm9jZXNzaW5nICclcydcbiIsIHAtPm5hbWUpKTsKIAogICAgICAgICAvKgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhY2UuYyBiL2FnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWNlLmMKaW5kZXggNzQzNDI0YS4uZTA3NDFmMyAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhY2UuYworKysgYi9hZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2ludGVyZmFjZS5jCkBAIC0zMSw2ICszMSw3IEBACiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KIAogLyoKQEAgLTQ2LDYgKzQ3LDEwIEBACiAKICNpbmNsdWRlIDxjdHlwZS5oPgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShyb3dfbWVyZ2UpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShiYWJ5X3N0ZXBzKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfYWxsX3JlcXVlc3RzX2Vycm9yKQorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqKioKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmMgYi9hZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5jCmluZGV4IGRhZWQ4ZjMuLmNjNmEwNGEgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYwpAQCAtNjUsOCArNjUsMTggQEAKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV9zZXRfbXVsdGlfYWRkX2RlZmF1bHRfcm93KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodW5yZWdpc3Rlcl9hdXRvX2RhdGFfdGFibGUpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShkZWxldGVfdGFibGVfZGF0YV9zZXQpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV9kYXRhc2V0KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfc2V0X211bHRpX2FkZF9kZWZhdWx0X3JvdykKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX2RhdGFzZXRfdW5yZWdpc3Rlcl9hdXRvX2RhdGFfdGFibGUpCisKK3N0YXRpYyBuZXRzbm1wX3RhYmxlX2RhdGFfc2V0ICp0YWJsZV9zZXQ7CisKIC8qCiAgKiBvdXIgaW5pdGlhbGl6YXRpb24gcm91dGluZSwgYXV0b21hdGljYWxseSBjYWxsZWQgYnkgdGhlIGFnZW50IAogICovCkBAIC03Niw3ICs4Niw2IEBACiB2b2lkCiBpbml0X2RhdGFfc2V0KHZvaWQpCiB7Ci0gICAgbmV0c25tcF90YWJsZV9kYXRhX3NldCAqdGFibGVfc2V0OwogICAgIG5ldHNubXBfdGFibGVfcm93ICpyb3c7CiAKICAgICAvKgpAQCAtMjA0LDMgKzIxMywxMSBAQAogCiAgICAgREVCVUdNU0dUTCgoImV4YW1wbGVfZGF0YV9zZXQiLCAiRG9uZSBpbml0aWFsaXppbmcuXG4iKSk7CiB9CisKK3ZvaWQKK3NodXRkb3duX2RhdGFfc2V0KHZvaWQpCit7CisgICAgbmV0c25tcF91bnJlZ2lzdGVyX2F1dG9fZGF0YV90YWJsZSh0YWJsZV9zZXQsIE5VTEwpOworICAgIG5ldHNubXBfZGVsZXRlX3RhYmxlX2RhdGFfc2V0KHRhYmxlX3NldCk7CisgICAgdGFibGVfc2V0ID0gTlVMTDsKK30KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmggYi9hZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5oCmluZGV4IGU1NmY2MDAuLmM5Y2Y4YjIgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuaApAQCAtNiw2ICs2LDcgQEAKICNlbmRpZgogCiB2b2lkICAgICAgICAgICAgaW5pdF9kYXRhX3NldCh2b2lkKTsKK3ZvaWQgICAgICAgICAgICBzaHV0ZG93bl9kYXRhX3NldCh2b2lkKTsKIAogCiAjaWZkZWYgX19jcGx1c3BsdXMKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYyBiL2FnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYwppbmRleCA4MzNhNGY3Li41ZDU0NTY5IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jCkBAIC0xNzIsNiArMTcyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihkZWxheV90aW1lKSk7CiAgICAgICAgIGJyZWFrOwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CiAgICAgICAgIC8qCiAgICAgICAgICAqIGNoZWNrIHR5cGUgCkBAIC0yNDYsNiArMjQ3LDcgQEAKICAgICAgICAgICogd2UgZG9uJ3QgaGF2ZSBhbnl0aGluZyB0byBhY3R1YWxseSBkbyBoZXJlIAogICAgICAgICAgKi8KICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgfQogCiAgICAgLyoKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmMgYi9hZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jCmluZGV4IGI2OTFhN2YuLjhlYTJkMDMgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYwpAQCAtNCwxMiArNCwxNyBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KICNpbmNsdWRlICJuZXRTbm1wSG9zdHNUYWJsZS5oIgogI2luY2x1ZGUgIm5ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmgiCiAjaW5jbHVkZSAibmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKG9pZF9zdGFzaCkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKG9pZF9zdGFzaF9nZXRfZGF0YSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKG9pZF9zdGFzaF9hZGRfZGF0YSkKKwogc3RhdGljIG5ldHNubXBfb2lkX3N0YXNoX25vZGUgKnVuZG9TdG9yYWdlID0gTlVMTDsKIHN0YXRpYyBuZXRzbm1wX29pZF9zdGFzaF9ub2RlICpjb21taXRTdG9yYWdlID0gTlVMTDsKIApAQCAtOTIsNyArOTcsNyBAQAogICAgICAqLwogICAgIERFQlVHTVNHVEwoKCJpbml0aWFsaXplX3RhYmxlX25ldFNubXBIb3N0c1RhYmxlIiwKICAgICAgICAgICAgICAgICAiUmVnaXN0ZXJpbmcgdGFibGUgbmV0U25tcEhvc3RzVGFibGUgYXMgYSB0YWJsZSBpdGVyYXRvclxuIikpOwotICAgIG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IobXlfaGFuZGxlciwgaWluZm8pOworICAgIG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IyKG15X2hhbmRsZXIsIGlpbmZvKTsKIH0KIAogLyoqIEluaXRpYWxpemVzIHRoZSBuZXRTbm1wSG9zdHNUYWJsZSBtb2R1bGUgKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmMgYi9hZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5jCmluZGV4IDRjYjkzMzkuLjI1YTczMzAgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuYwpAQCAtMTQsMTEgKzE0LDE0IEBACiAgKiBzdGFuZGFyZCBoZWFkZXJzIAogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgIm5ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmgiCiAjaW5jbHVkZSAibmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnNfbG9jYWwuaCIKICNpbmNsdWRlICJuZXRTbm1wSG9zdHNUYWJsZV9lbnVtcy5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja19zdG9yYWdlX3RyYW5zaXRpb24pCisKIC8qKiBEZWNpZGVzIGlmIGFuIGluY29taW5nIHZhbHVlIGZvciB0aGUgbmV0U25tcEhvc3RBZGRyZXNzVHlwZSBtaWIgbm9kZSBpcyBsZWdhbC4KICAqICBAcGFyYW0gdHlwZSAgICBUaGUgaW5jb21pbmcgZGF0YSB0eXBlLgogICogIEBwYXJhbSB2YWwgICAgIFRoZSB2YWx1ZSB0byBiZSBjaGVja2VkLgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jIGIvYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jCmluZGV4IDQzODBmY2UuLmRiNGQyOTUgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYworKysgYi9hZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMKQEAgLTIzLDEzICsyMywyMCBAQAogICogc3RhcnQgYmUgaW5jbHVkaW5nIHRoZSBhcHByb3ByaWF0ZSBoZWFkZXIgZmlsZXMgCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KIAogLyoKKyAqIGlmIC0tZW5hYmxlLW1pbmltYWxpc3QgaGFzIGJlZW4gdHVybmVkIG9uLCB3ZSBuZWVkIHRvIHJlZ2lzdGVyCisgKiB0aGUgc3VwcG9ydCB3ZSBuZWVkIHNvIHRoZSBuZWVkZWQgZnVuY3Rpb25zIGFyZW4ndCByZW1vdmVkIGF0IGNvbXBpbGUgdGltZQorICovCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShsb25nX2luc3RhbmNlKQorCisvKgogICogVGhlbiwgd2UgZGVjbGFyZSB0aGUgdmFyaWFibGVzIHdlIHdhbnQgdG8gYmUgYWNjZXNzZWQgCiAgKi8KLXN0YXRpYyBsb25nICAgICAgZXhhbXBsZTEgPSA0MjsgIC8qIGRlZmF1bHQgdmFsdWUgKi8KK3N0YXRpYyBsb25nICAgICBleGFtcGxlMSA9IDQyOyAgLyogZGVmYXVsdCB2YWx1ZSAqLwogCiAvKgogICogb3VyIGluaXRpYWxpemF0aW9uIHJvdXRpbmUsIGF1dG9tYXRpY2FsbHkgY2FsbGVkIGJ5IHRoZSBhZ2VudCAKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYyBiL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYwppbmRleCAyYjY4NjhlLi4yNzcyMDAxIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jCkBAIC0xLDggKzEsMTYgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGhhcmR3YXJlX2NwdSwgbGlibmV0c25tcG1pYnMpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihoYXJkd2FyZV9jcHVfY29weV9zdGF0cywgaGFyZHdhcmVfY3B1KQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGhhcmR3YXJlX2NwdV9sb2FkLCBoYXJkd2FyZV9jcHUpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaGFyZHdhcmVfY3B1X2dldF9jYWNoZSwgaGFyZHdhcmVfY3B1KQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGhhcmR3YXJlX2NwdV9nZXRfYnlOYW1lLCBoYXJkd2FyZV9jcHUpCisKIGV4dGVybiBOZXRzbm1wQ2FjaGVMb2FkIG5ldHNubXBfY3B1X2FyY2hfbG9hZDsKIHN0YXRpYyB2b2lkIF9jcHVfdXBkYXRlX3N0YXRzKCB1bnNpZ25lZCBpbnQsIHZvaWQqICk7CiAKQEAgLTEwNywxNCArMTE1LDE0IEBACiAgICAgICAgICAgICByZXR1cm4gY3B1OwogICAgICAgICB9CiAgICAgfQotICAgIGlmIChjcHUpCi0gICAgICAgIFNOTVBfRlJFRShjcHUpOyAvKiBqdXN0IGluIGNhc2UgKi8KKyAgICBTTk1QX0ZSRUUoY3B1KTsgLyoganVzdCBpbiBjYXNlICovCiAgICAgcmV0dXJuIE5VTEw7ICAvKiBTaG91bGRuJ3QgaGFwcGVuISAqLwogfQogCiAgICAgLyoKICAgICAgKiBXb3JrIHdpdGggYSBsaXN0IG9mIENQVSBlbnRyaWVzLCBpbmRleGVkIGJ5IG5hbWUKICAgICAgKi8KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9IQVJEV0FSRV9DUFVfR0VUX0JZTkFNRQogbmV0c25tcF9jcHVfaW5mbyAqbmV0c25tcF9jcHVfZ2V0X2J5TmFtZSggY2hhciAqbmFtZSwgaW50IGNyZWF0ZSApIHsKICAgICBuZXRzbm1wX2NwdV9pbmZvICpjcHU7CiAKQEAgLTE1MiwxMSArMTYwLDE1IEBACiAgICAgfQogICAgIHJldHVybiBjcHU7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9IQVJEV0FSRV9DUFVfR0VUX0JZTkFNRSAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSEFSRFdBUkVfQ1BVX0dFVF9DQUNIRQogbmV0c25tcF9jYWNoZSAqbmV0c25tcF9jcHVfZ2V0X2NhY2hlKCB2b2lkICkgewogICAgIHJldHVybiBfY3B1X2NhY2hlOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSEFSRFdBUkVfQ1BVX0dFVF9DQUNIRSAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSEFSRFdBUkVfQ1BVX0xPQUQKIGludCBuZXRzbm1wX2NwdV9sb2FkKCB2b2lkICkgewogICAgICAgICAvKgogICAgICAgICAgKiBJZiB3ZSdyZSBhdXRvbWF0aWNhbGx5IHVwZGF0aW5nIHRoZSBzdGF0cyByZWd1bGFybHksCkBAIC0xNjUsNiArMTc3LDcgQEAKICAgICByZXR1cm4gKCBfY3B1QXV0b1VwZGF0ZSA/IDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG5ldHNubXBfY2FjaGVfY2hlY2tfYW5kX3JlbG9hZCggX2NwdV9jYWNoZSApKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0hBUkRXQVJFX0NQVV9MT0FEICovCiAKICAgICAvKgogICAgICAqIENhbGwgdGhlIHN5c3RlbS1zcGVjaWZpYyBsb2FkIHJvdXRpbmUgcmVndWxhcmx5LApAQCAtMjIwLDEwICsyMzMsMTQgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdS0+d2FpdF90aWNrcyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHUtPmtlcm5fdGlja3MgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1LT5pbnRycHRfdGlja3MgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1LT5zaXJxX3RpY2tzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1LT5zaXJxX3RpY2tzICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdS0+c3RlYWxfdGlja3MgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1LT5ndWVzdF90aWNrcyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHUtPmd1ZXN0bmljZV90aWNrczsKICAgICB9CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9IQVJEV0FSRV9DUFVfQ09QWV9TVEFUUwogdm9pZCBfY3B1X2NvcHlfc3RhdHMoIG5ldHNubXBfY3B1X2luZm8gKmNwdSApCiB7CiAgICAgbmV0c25tcF9jcHVfaW5mbyAqY3B1MjsKQEAgLTI0Myw2ICsyNjAsOSBAQAogICAgIGNwdTItPmtlcm5fdGlja3MgPSBjcHUtPmtlcm5fdGlja3M7CiAgICAgY3B1Mi0+aW50cnB0X3RpY2tzID0gY3B1LT5pbnRycHRfdGlja3M7CiAgICAgY3B1Mi0+c2lycV90aWNrcyA9IGNwdS0+c2lycV90aWNrczsKKyAgICBjcHUyLT5zdGVhbF90aWNrcyA9IGNwdS0+c3RlYWxfdGlja3M7CisgICAgY3B1Mi0+Z3Vlc3RfdGlja3MgPSBjcHUtPmd1ZXN0X3RpY2tzOworICAgIGNwdTItPmd1ZXN0bmljZV90aWNrcyA9IGNwdS0+Z3Vlc3RuaWNlX3RpY2tzOwogCiAgICAgY3B1Mi0+bkludGVycnVwdHMgID0gY3B1LT5uSW50ZXJydXB0czsKICAgICBjcHUyLT5uQ3R4U3dpdGNoZXMgPSBjcHUtPm5DdHhTd2l0Y2hlczsKQEAgLTI1MSwzICsyNzEsNCBAQAogICAgIGNwdTItPnBhZ2VJbiAgICAgPSBjcHUtPnBhZ2VJbjsKICAgICBjcHUyLT5wYWdlT3V0ICAgID0gY3B1LT5wYWdlT3V0OwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSEFSRFdBUkVfQ1BVX0NPUFlfU1RBVFMgKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa2luZm8uYyBiL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa2luZm8uYwppbmRleCBmYWNiYzdiLi4zN2NmODQ3IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tpbmZvLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9raW5mby5jCkBAIC0yLDYgKzIsNyBAQAogICogIERyYWdvbkZseSBraW5mbyBpbnRlcmZhY2UKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oPgpAQCAtMTMsNiArMTQsNyBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaGFyZHdhcmVfY3B1X2NvcHlfc3RhdHMpCiB2b2lkIF9jcHVfY29weV9zdGF0cyggbmV0c25tcF9jcHVfaW5mbyAqY3B1ICk7CiAKICAgICAvKgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jIGIvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jCmluZGV4IDVkNmVhZjEuLmIxZGMzMDggMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYworKysgYi9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMKQEAgLTk5LDExICs5OSwxMiBAQAogICAgIHN0YXRpYyBjaGFyICpidWZmICA9IE5VTEw7CiAgICAgc3RhdGljIGludCAgIGJzaXplID0gMDsKICAgICBzdGF0aWMgaW50ICAgZmlyc3QgPSAxOwotICAgIHN0YXRpYyBpbnQgICBoYXNfY3B1XzI2ID0gMTsKKyAgICBzdGF0aWMgaW50ICAgbnVtX2NwdWxpbmVfZWxlbSA9IDA7CiAgICAgaW50ICAgICAgICAgIGJ5dGVzX3JlYWQsIHN0YXRmZCwgaTsKICAgICBjaGFyICAgICAgICAqYjEsICpiMjsKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgY3VzZWxsID0gMCwgY2ljZWxsID0gMCwgY3N5c2xsID0gMCwgY2lkZWxsID0gMCwKLSAgICAgICAgICAgICAgICAgICAgICAgY2lvd2xsID0gMCwgY2lycWxsID0gMCwgY3NvZnRsbCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgIGNpb3dsbCA9IDAsIGNpcnFsbCA9IDAsIGNzb2Z0bGwgPSAwLCBjc3RlYWxsbCA9IDAsCisgICAgICAgICAgICAgICAgICAgICAgIGNndWVzdGxsID0gMCwgY2d1ZXN0X25pY2VsbCA9IDA7CiAgICAgbmV0c25tcF9jcHVfaW5mbyogY3B1OwogCiAgICAgaWYgKChzdGF0ZmQgPSBvcGVuKFNUQVRfRklMRSwgT19SRE9OTFksIDApKSA9PSAtMSkgewpAQCAtMTU4LDIyICsxNTksMzMgQEAKICAgICAgICAgICAgIGIxKys7CiAgICAgICAgIH0KIAotCWlmICghaGFzX2NwdV8yNiB8fAotICAgICAgICAgICAgc3NjYW5mKGIxLCAiJWxsdSAlbGx1ICVsbHUgJWxsdSAlbGx1ICVsbHUgJWxsdSIsICZjdXNlbGwsCi0gICAgICAgICAgICAgICAgICAgJmNpY2VsbCwgJmNzeXNsbCwgJmNpZGVsbCwgJmNpb3dsbCwgJmNpcnFsbCwgJmNzb2Z0bGwpICE9IDcpIHsKLQkgICAgaGFzX2NwdV8yNiA9IDA7Ci0JICAgIHNzY2FuZihiMSwgIiVsbHUgJWxsdSAlbGx1ICVsbHUiLCAmY3VzZWxsLCAmY2ljZWxsLCAmY3N5c2xsLAotICAgICAgICAgICAgICAgICAgICZjaWRlbGwpOworICAgICAgICBudW1fY3B1bGluZV9lbGVtID0gc3NjYW5mKGIxLCAiJWxsdSAlbGx1ICVsbHUgJWxsdSAlbGx1ICVsbHUgJWxsdSAlbGx1ICVsbHUgJWxsdSIsCisgICAgICAgICAmY3VzZWxsLCAmY2ljZWxsLCAmY3N5c2xsLCAmY2lkZWxsLCAmY2lvd2xsLCAmY2lycWxsLCAmY3NvZnRsbCwgJmNzdGVhbGxsLCAmY2d1ZXN0bGwsICZjZ3Vlc3RfbmljZWxsKTsKKyAgICAgICAgREVCVUdNU0dUTCgoImNwdSIsICIvcHJvYy9zdGF0IGNwdSBsaW5lIG51bWJlciBvZiBlbGVtZW50czogJWlcbiIsIG51bV9jcHVsaW5lX2VsZW0pKTsKIAotCX0gZWxzZSB7Ci0gICAgICAgICAgICBjcHUtPndhaXRfdGlja3MgICA9ICh1bnNpZ25lZCBsb25nIGxvbmcpY2lvd2xsOwotICAgICAgICAgICAgY3B1LT5pbnRycHRfdGlja3MgPSAodW5zaWduZWQgbG9uZyBsb25nKWNpcnFsbDsKLSAgICAgICAgICAgIGNwdS0+c2lycV90aWNrcyAgID0gKHVuc2lnbmVkIGxvbmcgbG9uZyljc29mdGxsOwotIAl9Ci0gICAgICAgIGNwdS0+dXNlcl90aWNrcyA9ICh1bnNpZ25lZCBsb25nIGxvbmcpY3VzZWxsOwotICAgICAgICBjcHUtPm5pY2VfdGlja3MgPSAodW5zaWduZWQgbG9uZyBsb25nKWNpY2VsbDsKLSAgICAgICAgY3B1LT5zeXNfdGlja3MgID0gKHVuc2lnbmVkIGxvbmcgbG9uZyljc3lzbGw7Ci0gICAgICAgIGNwdS0+aWRsZV90aWNrcyA9ICh1bnNpZ25lZCBsb25nIGxvbmcpY2lkZWxsOworICAgICAgICAvKiBrZXJuZWwgMi42LjMzIGFuZCBhYm92ZSAqLworICAgICAgICBpZiAobnVtX2NwdWxpbmVfZWxlbSA9PSAxMCkgeworICAgICAgICAgICAgY3B1LT5ndWVzdG5pY2VfdGlja3MgPSBjZ3Vlc3RfbmljZWxsOworICAgICAgICB9CisgICAgICAgIC8qIGtlcm5lbCAyLjYuMjQgYW5kIGFib3ZlICovCisgICAgICAgIGlmIChudW1fY3B1bGluZV9lbGVtID49IDkpIHsKKyAgICAgICAgICAgIGNwdS0+Z3Vlc3RfdGlja3MgPSBjZ3Vlc3RsbDsKKyAgICAgICAgfQorICAgICAgICAvKiBrZXJuZWwgMi42LjExIGFuZCBhYm92ZSAqLworICAgICAgICBpZiAobnVtX2NwdWxpbmVfZWxlbSA+PSA4KSB7CisgICAgICAgICAgICBjcHUtPnN0ZWFsX3RpY2tzID0gY3N0ZWFsbGw7CisgICAgICAgIH0KKyAgICAgICAgLyoga2VybmVsIDIuNiAqLworICAgICAgICBpZiAobnVtX2NwdWxpbmVfZWxlbSA+PSA1KSB7CisgICAgICAgICAgICBjcHUtPndhaXRfdGlja3MgICA9IGNpb3dsbDsKKyAgICAgICAgICAgIGNwdS0+aW50cnB0X3RpY2tzID0gY2lycWxsOworICAgICAgICAgICAgY3B1LT5zaXJxX3RpY2tzICAgPSBjc29mdGxsOworICAgICAgICB9CisgICAgICAgIC8qIHJlc3QgKi8KKyAgICAgICAgY3B1LT51c2VyX3RpY2tzID0gY3VzZWxsOworICAgICAgICBjcHUtPm5pY2VfdGlja3MgPSBjaWNlbGw7CisgICAgICAgIGNwdS0+c3lzX3RpY2tzICA9IGNzeXNsbDsKKyAgICAgICAgY3B1LT5pZGxlX3RpY2tzID0gY2lkZWxsOwogICAgIH0KICAgICBpZiAoIGIxID09IGJ1ZmYgKSB7CiAJaWYgKGZpcnN0KQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9tYWNoLmMgYi9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X21hY2guYwppbmRleCBkNTI3YjNkLi43ZjA5MGM5IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X21hY2guYworKysgYi9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X21hY2guYwpAQCAtMTA4LDYgKzEwOCw3IEBACiAgICAgY3B1MC0+cGFnZUluID0gdm1zdGF0LnBhZ2VpbnM7CiAgICAgY3B1MC0+cGFnZU91dCA9IHZtc3RhdC5wYWdlb3V0czsKIAkvKiBub3QgaW1wbGVtZW50ZWQ6IHN3YXBJbiwgc3dhcE91dCwgbkludGVycnVwdHMsIG5DdHhTd2l0Y2hlcyAqLworICAgIHJldHVybiAxOwogfQogCiAgCSAgCSAKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbmxpc3QuYyBiL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbmxpc3QuYwppbmRleCBhOWViMWUyLi45NzQwMjhhIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X25saXN0LmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9ubGlzdC5jCkBAIC0zLDYgKzMsNyBAQAogICogICAgIGUuZy4gRnJlZUJTRAogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1Lmg+CkBAIC0zMSw2ICszMiw3IEBACiAjZGVmaW5lIENQVV9TWU1CT0wgICJjcF90aW1lIgogI2RlZmluZSBNRU1fU1lNQk9MICAiY250IgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShoYXJkd2FyZV9jcHVfY29weV9zdGF0cykKIHZvaWQgX2NwdV9jb3B5X3N0YXRzKCBuZXRzbm1wX2NwdV9pbmZvICpjcHUgKTsKIAogICAgIC8qCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BlcmZzdGF0LmMgYi9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BlcmZzdGF0LmMKaW5kZXggZjBmZjJkMi4uNWZkZDUzMSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jCisrKyBiL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYwpAQCAtMyw2ICszLDcgQEAKICAqICAgICBlLmcuIEFJWAogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1Lmg+CkBAIC0xNCw2ICsxNSw3IEBACiAjaW5jbHVkZSA8c3lzL3Byb3Rvc3cuaD4KICNpbmNsdWRlIDxsaWJwZXJmc3RhdC5oPgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShoYXJkd2FyZV9jcHVfY29weV9zdGF0cykKIHZvaWQgX2NwdV9jb3B5X3N0YXRzKCBuZXRzbm1wX2NwdV9pbmZvICpjcHUgKTsKIAogICAgIC8qCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jIGIvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYwppbmRleCAyOTI4MmY4Li41ZWNiNjhlIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jCisrKyBiL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMKQEAgLTMsNiArMyw3IEBACiAgKiAgICAgZS5nLiBCU0QvT1MsIE5ldEJTRCwgT3BlbkJTRCwgbGF0ZXIgRGFyd2luIHJlbGVhc2VzCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaD4KQEAgLTMwLDYgKzMxLDggQEAKICNpbmNsdWRlIDx2bS92bV9leHRlcm4uaD4KICNlbmRpZgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShoYXJkd2FyZV9jcHVfY29weV9zdGF0cykKKwogdm9pZCBfY3B1X2NvcHlfc3RhdHMoIG5ldHNubXBfY3B1X2luZm8gKmNwdSApOwogCiAgICAgLyoKQEAgLTg3LDExICs5MCw4IEBACiAjZGVmaW5lIE5FVFNOTVBfS0VSTl9DUFUgIEtFUk5fQ1BUSU1FCiAKICNlbGlmIGRlZmluZWQoX19GcmVlQlNEX18pCi0jZGVmaW5lIE5FVFNOTVBfS0VSTl9DUFUgIDAgICAgLyogZHVtbXkgdmFsdWUgLSBzeXNjdGxuYW1ldG9taWIoMikgc2hvdWxkIGJlIHVzZWQgKi8KLSNpZiBkZWZpbmVkKEhBVkVfS0VSTl9DUF9USU1FUykKICNkZWZpbmUgTkVUU05NUF9LRVJOX01DUFUgMSAgICAvKiBFbmFibGUgc3VwcG9ydCBmb3IgbXVsdGktY3B1IHN0YXRzLiBWYWxpZCBmb3IgRnJlZUJTRCA+PTYuNCwgPj03LjEsID49OC4wIGFuZCBiZXlvbmQgKi8KICNkZWZpbmUgTkVUU05NUF9LRVJOX01DUFVfVFlQRSBORVRTTk1QX0NQVV9TVEFUUwotI2VuZGlmCiAKICNlbHNlCiAjZXJyb3IgIk5vIENQVSBzdGF0aXN0aWNzIHN5c2N0bCB0b2tlbiIKQEAgLTE1OSw5ICsxNTksNiBAQAogICAgICAqIExvYWQgdGhlIGxhdGVzdCBDUFUgdXNhZ2Ugc3RhdGlzdGljcwogICAgICAqLwogaW50IG5ldHNubXBfY3B1X2FyY2hfbG9hZCggbmV0c25tcF9jYWNoZSAqY2FjaGUsIHZvaWQgKm1hZ2ljICkgewotI2lmZGVmIE5FVFNOTVBfS0VSTl9NQ1BVCi0gICAgaW50ICAgICAgICAgICAgICAgICAgICAgaTsKLSNlbmRpZgogCiAgICAgLyoKICAgICAgKiBTdHJpY3RseSBzcGVha2luZywgQlNEaSBvdWdodCB0byB1c2UKQEAgLTE3MSwxNCArMTY4LDE5IEBACiAgICAgICogRG9uJ3QgZmlnaHQgaXQsIERhdmUgLSBnbyB3aXRoIHRoZSBmbG93Li4uLgogICAgICAqLwogICAgIE5FVFNOTVBfQ1BVX1NUQVRTIGNwdV9zdGF0c1tDUFVTVEFURVNdOworICAgIHNpemVfdCAgICAgICAgIGNwdV9zaXplICA9IHNpemVvZihjcHVfc3RhdHMpOwogI2lmICFkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAhZGVmaW5lZChfX05ldEJTRF9fKQogICAgIGludCAgICAgICAgICAgIGNwdV9taWJbXSA9IHsgQ1RMX0tFUk4sIE5FVFNOTVBfS0VSTl9DUFUgfTsKICNlbmRpZgorI2lmZGVmIF9fRnJlZUJTRF9fCisgICAgc3RhdGljIGludCAgICAgY3BfdGltZXMgPSAtMTsKKyNlbmRpZgogI2lmZGVmIEtFUk5fQ1BUSU1FMgogICAgIGludCAgICAgICAgICAgIG1jcHVfbWliW10gPSB7IENUTF9LRVJOLCBLRVJOX0NQVElNRTIsIDAgfTsKICNlbmRpZgotICAgIHNpemVfdCAgICAgICAgIGNwdV9zaXplICA9IHNpemVvZihjcHVfc3RhdHMpOwogI2lmZGVmIE5FVFNOTVBfS0VSTl9NQ1BVIAorICAgIGludCAgICAgICAgICAgIGk7CisgICAgaW50ICAgICAgICAgICAgYWN0X2NwdSA9IGNwdV9udW07CiAgICAgTkVUU05NUF9LRVJOX01DUFVfVFlQRSAqbWNwdV9zdGF0czsKICAgICBzaXplX3QgICAgICAgICBtY3B1X3NpemU7CiAjZW5kaWYKQEAgLTE4Nyw3ICsxODksNyBAQAogICAgIHNpemVfdCAgICAgICAgIG1lbV9zaXplICA9IHNpemVvZihORVRTTk1QX1ZNX1NUQVRTX1RZUEUpOwogICAgIG5ldHNubXBfY3B1X2luZm8gKmNwdSA9IG5ldHNubXBfY3B1X2dldF9ieUlkeCggLTEsIDAgKTsKIAotI2lmIChkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fTmV0QlNEX18pKQorI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19OZXRCU0RfXykKICAgICBzeXNjdGxieW5hbWUoImtlcm4uY3BfdGltZSIsIGNwdV9zdGF0cywgJmNwdV9zaXplLCBOVUxMLCAwKTsKICNlbHNlCiAgICAgc3lzY3RsKGNwdV9taWIsIDIsICBjcHVfc3RhdHMsICZjcHVfc2l6ZSwgTlVMTCwgMCk7CkBAIC0yMTcsMjQgKzIxOSwzNiBAQAogI2VuZGlmCiAKICNpZmRlZiBORVRTTk1QX0tFUk5fTUNQVQotI2lmIGRlZmluZWQoSEFWRV9LRVJOX0NQX1RJTUVTKQotICAgIHN5c2N0bGJ5bmFtZSgia2Vybi5jcF90aW1lcyIsIE5VTEwsICZtY3B1X3NpemUsIE5VTEwsIDApOworI2lmIGRlZmluZWQoS0VSTl9DUFRJTUUyKQorICAgIG1jcHVfc2l6ZSAgPSBjcHVfbnVtKnNpemVvZihjcHVfc3RhdHMpOwogICAgIG1jcHVfc3RhdHMgPSBtYWxsb2MobWNwdV9zaXplKTsKLSAgICBzeXNjdGxieW5hbWUoImtlcm4uY3BfdGltZXMiLCBtY3B1X3N0YXRzLCAmbWNwdV9zaXplLCBOVUxMLCAwKTsKLSNlbGlmIGRlZmluZWQoS0VSTl9DUFRJTUUyKQotICAgIG1jcHVfc2l6ZSAgPSBzaXplb2YoY3B1X3N0YXRzKTsKLSAgICBtY3B1X3N0YXRzID0gbWFsbG9jKG1jcHVfc2l6ZSk7Ci0jZWxzZQorI2VsaWYgZGVmaW5lZChfX05ldEJTRF9fKQogICAgIG1jcHVfc2l6ZSAgPSBjcHVfbnVtKnNpemVvZihjcHVfc3RhdHMpOwogICAgIG1jcHVfc3RhdHMgPSBtYWxsb2MobWNwdV9zaXplKTsKICAgICBzeXNjdGxieW5hbWUoImtlcm4uY3BfdGltZSIsIG1jcHVfc3RhdHMsICZtY3B1X3NpemUsIE5VTEwsIDApOworI2VsaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykKKyAgICBpZiAoY3BfdGltZXMgPT0gLTEpIHsKKwlpbnQgcmV0ID0gc3lzY3RsYnluYW1lKCJrZXJuLmNwX3RpbWVzIiwgTlVMTCwgJm1jcHVfc2l6ZSwgTlVMTCwgMCk7CisJY3BfdGltZXMgPSByZXQgPT0gLTEgPyAwIDogMTsKKyAgICB9CisgICAgaWYgKGNwX3RpbWVzKSB7CisJc3lzY3RsYnluYW1lKCJrZXJuLmNwX3RpbWVzIiwgTlVMTCwgJm1jcHVfc2l6ZSwgTlVMTCwgMCk7CisJbWNwdV9zdGF0cyA9IG1hbGxvYyhtY3B1X3NpemUpOworCXN5c2N0bGJ5bmFtZSgia2Vybi5jcF90aW1lcyIsIG1jcHVfc3RhdHMsICZtY3B1X3NpemUsIE5VTEwsIDApOworICAgIH0KKyAgICBlbHNlIHsKKwltY3B1X3NpemUgID0gc2l6ZW9mKGNwdV9zdGF0cyk7CisJbWNwdV9zdGF0cyA9IG1hbGxvYyhtY3B1X3NpemUpOworCXN5c2N0bGJ5bmFtZSgia2Vybi5jcF90aW1lIiwgbWNwdV9zdGF0cywgJm1jcHVfc2l6ZSwgTlVMTCwgMCk7CisJYWN0X2NwdSA9IDE7CisgICAgfQogI2VuZGlmCi0gICAgZm9yICggaSA9IDA7IGkgPCBjcHVfbnVtOyBpKysgKSB7CisgICAgZm9yICggaSA9IDA7IGkgPCBhY3RfY3B1OyBpKysgKSB7CiAgICAgICAgIGNwdSA9IG5ldHNubXBfY3B1X2dldF9ieUlkeCggaSwgMCApOwogICAgICAgICAvKiBYWFggLSBwZXItQ1BVIHN0YXRpc3RpY3MgLSBtY3B1X21pYltpXS4/Pz8gKi8KICNpZmRlZiBLRVJOX0NQVElNRTIKIAltY3B1X21pYlsyXSA9IGk7Ci0Jc3lzY3RsKG1jcHVfbWliLCAzLCBtY3B1X3N0YXRzLCAmbWNwdV9zaXplLCBOVUxMLCAwKTsKKwlzeXNjdGwobWNwdV9taWIsIDMsIG1jcHVfc3RhdHMraSpDUFVTVEFURVMsICZtY3B1X3NpemUsIE5VTEwsIDApOwogI2VuZGlmCiAJLyogQWxtb3N0IGNvcHkgJiBwYXN0ZSBvZiBwcmV2aW91cyBjcHUgc3RhdHMgc3R1ZmYgOikgKi8KIAljcHUtPnVzZXJfdGlja3MgPSBtY3B1X3N0YXRzWyhpKkNQVVNUQVRFUykrQ1BfVVNFUl07CkBAIC0yNTAsNyArMjY0LDcgQEAKIAkgICAgICogICBYWFggLSBEbyB0aGVzZSByZWFsbHkgYmVsb25nIGhlcmUgPwogCSAgICAgKi8KIAotCS8qIFRoZXJlJ3Mgbm8gcmVhbGx5IG5lZWQgdG8gZXhlY3V0ZSBhbm90aGVyIHN5c2N0bCgpCisJLyogVGhlcmUncyBubyByZWFsIG5lZWQgdG8gZXhlY3V0ZSBhbm90aGVyIHN5c2N0bCgpCiAJICoKIAkgKiBzeXNjdGwobWVtX21pYiwgMiwgJm1lbV9zdGF0cywgJm1lbV9zaXplLCBOVUxMLCAwKTsKIAkgKi8KQEAgLTI2NiwxMCArMjgwLDEwIEBACiAjZW5kaWYKICAgICB9CiAgICAgZnJlZShtY3B1X3N0YXRzKTsKLSNlbHNlCisjZWxzZQkvKiBORVRTTk1QX0tFUk5fTUNQVSAqLwogICAgICAgICAvKiBDb3B5ICJvdmVyYWxsIiBmaWd1cmVzIHRvIGNwdTAgZW50cnkgKi8KICAgICBfY3B1X2NvcHlfc3RhdHMoIGNwdSApOwotI2VuZGlmCisjZW5kaWYgIC8qIE5FVFNOTVBfS0VSTl9NQ1BVICovCiAKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaCBiL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaAppbmRleCBlMzBhNWE2Li44Y2JmNDM5IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy5oCkBAIC0zLDYgKzMsOCBAQAogY29uZmlnX3JlcXVpcmUoaGFyZHdhcmUvZnN5cy9mc3lzX21udGN0bCkKICNlbGlmIGRlZmluZWQoSEFWRV9HRVRWRlNTVEFUKSB8fCBkZWZpbmVkKEhBVkVfR0VURlNTVEFUKQogY29uZmlnX3JlcXVpcmUoaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMpCi0jZWxzZQorI2VsaWYgZGVmaW5lZChIQVZFX0dFVE1OVEVOVCkgJiYgIWRlZmluZWQoaXJpeDYpCiBjb25maWdfcmVxdWlyZShoYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50KQorI2Vsc2UKK2NvbmZpZ19yZXF1aXJlKGhhcmR3YXJlL2ZzeXMvZnN5c192b2lkKQogI2VuZGlmCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfZ2V0ZnNzdGF0cy5jIGIvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYwppbmRleCBhZGRiMzJhLi4wNTAyN2Y0IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfZ2V0ZnNzdGF0cy5jCisrKyBiL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmMKQEAgLTE2MSw2ICsxNjEsOCBAQAogICAgICAgICBpZiAoICBzdGF0c1tpXS5OU0ZTX0ZMQUdTICYgTU5UX1JPT1RGUyApIHsKICAgICAgICAgICAgIGVudHJ5LT5mbGFncyB8PSBORVRTTk1QX0ZTX0ZMQUdfQk9PVEFCTEU7CiAgICAgICAgIH0KLSAgICAgICAgCisgICAgICAgIG5ldHNubXBfZnN5c19jYWxjdWxhdGUzMihlbnRyeSk7CiAgICAgfQorCisgICAgZnJlZShzdGF0cyk7CiB9CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50Y3RsLmMgYi9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50Y3RsLmMKaW5kZXggOGViNDNjZS4uOWZiYjA2OCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGN0bC5jCisrKyBiL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRjdGwuYwpAQCAtOTYsNyArOTYsNyBAQAogICAgIC8qCiAgICAgICogUmV0cmlldmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnRseSBtb3VudGVkIGZpbGVzeXN0ZW1zLi4uCiAgICAgICovCi0gICAgcmV0ID0gbW50Y3RsKE1DVExfUVVFUlksIHNpemVvZih1aW50KSwgJnNpemUpOworICAgIHJldCA9IG1udGN0bChNQ1RMX1FVRVJZLCBzaXplb2YodWludCksICh2b2lkICopICZzaXplKTsKICAgICBpZiAoIHJldCAhPSAwIHx8IHNpemU8PTAgKSB7CiAgICAgICAgIHNubXBfbG9nX3BlcnJvciggImluaXRpYWwgbW50Y3RsIGZhaWxlZCIgKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTA4LDcgKzEwOCw3IEBACiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICByZXQgPSBtbnRjdGwoTUNUTF9RVUVSWSwgc2l6ZSwgYWl4bW50ICk7CisgICAgcmV0ID0gbW50Y3RsKE1DVExfUVVFUlksIHNpemUsICh2b2lkICopIGFpeG1udCk7CiAgICAgaWYgKCByZXQgPD0gMCApIHsKICAgICAgICAgZnJlZShhaXhtbnQpOwogICAgICAgICBzbm1wX2xvZ19wZXJyb3IoICJtYWluIG1udGN0bCBmYWlsZWQiICk7CkBAIC0xNzMsNiArMTczLDcgQEAKICAgICAgICAgZW50cnktPmF2YWlsID0gIHN0YXRfYnVmLmZfYmF2YWlsOwogICAgICAgICBlbnRyeS0+aW51bXNfdG90YWwgPSBzdGF0X2J1Zi5mX2ZpbGVzOwogICAgICAgICBlbnRyeS0+aW51bXNfYXZhaWwgPSBzdGF0X2J1Zi5mX2ZmcmVlOworICAgICAgICBuZXRzbm1wX2ZzeXNfY2FsY3VsYXRlMzIoZW50cnkpOwogICAgIH0KICAgICBmcmVlKGFpeG1udCk7CiAgICAgYWl4bW50ICA9IE5VTEw7CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMgYi9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMKaW5kZXggNjNhODUzOC4uOTRkMjNkYiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jCisrKyBiL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYwpAQCAtMjU1LDYgKzI1NSw3IEBACiAgICAgICAgICAgICBlbnRyeS0+YXZhaWwgPSAgc3RhdF9idWYuZl9iYXZhaWw7CiAgICAgICAgIGVudHJ5LT5pbnVtc190b3RhbCA9IHN0YXRfYnVmLmZfZmlsZXM7CiAgICAgICAgIGVudHJ5LT5pbnVtc19hdmFpbCA9IHN0YXRfYnVmLmZfZmZyZWU7CisgICAgICAgIG5ldHNubXBfZnN5c19jYWxjdWxhdGUzMihlbnRyeSk7CiAgICAgfQogICAgIGZjbG9zZSggZnAgKTsKIH0KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c192b2lkLmMgYi9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfdm9pZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlZGMzNDQKLS0tIC9kZXYvbnVsbAorKysgYi9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfdm9pZC5jCkBAIC0wLDAgKzEsMjQgQEAKKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oPgorCitpbnQKK19mc3lzX3JlbW90ZSggY2hhciAqZGV2aWNlLCBpbnQgdHlwZSApCit7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludAorX2ZzeXNfdHlwZSggY2hhciAqdHlwZW5hbWUgKQoreworICAgIHJldHVybiBORVRTTk1QX0ZTX1RZUEVfVU5LTk9XTjsKK30KKwordm9pZAorbmV0c25tcF9mc3lzX2FyY2hfaW5pdCggdm9pZCApCit7IH0KKwordm9pZAorbmV0c25tcF9mc3lzX2FyY2hfbG9hZCggdm9pZCApCit7IH0KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jIGIvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMKaW5kZXggMDQ4ZWU2Ni4uYTZjZDk0ZCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMKQEAgLTEsOCArMSwxMyBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaD4KKyNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2VuZGlmCiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihod19mc3lzX2dldF9jb250YWluZXIsIG5ldHNubXBfdW51c2VkKQogCiBleHRlcm4gdm9pZCAgICAgICAgICAgICBuZXRzbm1wX2ZzeXNfYXJjaF9sb2FkKCB2b2lkICk7CiBleHRlcm4gdm9pZCAgICAgICAgICAgICBuZXRzbm1wX2ZzeXNfYXJjaF9pbml0KCB2b2lkICk7CkBAIC01OSwxMCArNjQsMTIgQEAKICAgICBfZnN5c19mcmVlKCk7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9IV19GU1lTX0dFVF9DT05UQUlORVIKIC8qCiAgKiAgUmV0dXJuIHRoZSBtYWluIGZzeXMgY29udGFpbmVyCiAgKi8KIG5ldHNubXBfY29udGFpbmVyICpuZXRzbm1wX2ZzeXNfZ2V0X2NvbnRhaW5lciggdm9pZCApIHsgcmV0dXJuIF9mc3lzX2NvbnRhaW5lcjsgfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSFdfRlNZU19HRVRfQ09OVEFJTkVSICovCiAKIC8qCiAgKiAgUmV0dXJuIHRoZSBtYWluIGZzeXMgY2FjaGUgY29udHJvbCBzdHJ1Y3R1cmUgKGlmIGRlZmluZWQpCkBAIC0yMzYsNyArMjQzLDcgQEAKICAgICAgICAgc3AtPmlkeC5vaWRzWzBdID0gKytfZnN5c19pZHg7CiAgICAgfQogCi0gICAgREVCVUdNU0dUTCgoImZzeXM6bmV3IiwgIkNyZWF0ZSBmaWxlc3lzdGVtIGVudHJ5IChpbmRleCA9ICVkXG4iLCBfZnN5c19pZHgpKTsKKyAgICBERUJVR01TR1RMKCgiZnN5czpuZXciLCAiQ3JlYXRlIGZpbGVzeXN0ZW0gZW50cnkgKGluZGV4ID0gJWQpXG4iLCBfZnN5c19pZHgpKTsKICAgICBDT05UQUlORVJfSU5TRVJUKCBfZnN5c19jb250YWluZXIsIHNwICk7CiAgICAgcmV0dXJuIHNwOwogfQpAQCAtMjQ3LDcgKzI1NCw3IEBACiAgKiAgICAoYXR0ZW1wdGluZyB0byBhdm9pZCAzMi1iaXQgb3ZlcmZsb3chKQogICovCiB1bnNpZ25lZCBsb25nIGxvbmcKLV9mc3lzX3RvX0soIGludCBzaXplLCBpbnQgdW5pdHMgKQorX2ZzeXNfdG9fSyggdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIHVuc2lnbmVkIGxvbmcgbG9uZyB1bml0cyApCiB7CiAgICAgaW50IGZhY3RvciA9IDE7CiAKQEAgLTMwOSwzICszMTYsMzQgQEAKICAgICByZXR1cm4gKGludCl2OwogfQogCisjaWZuZGVmIElOVDMyX01BWAorI2RlZmluZSBJTlQzMl9NQVggMHg3ZmZmZmZmZgorI2VuZGlmCisKKyNpZm5kZWYgUFJJdTY0CisjZGVmaW5lIFBSSXU2NCAibGx1IgorI2VuZGlmCisKKy8qIHJlY2FsY3VsYXRlIGYtPnNpemVfMzIsIHVzZWRfMzIsIGF2YWlsXzMyIGFuZCB1bml0c18zMiBmcm9tIGYtPnNpemUgJiBjb21wLiovCit2b2lkCituZXRzbm1wX2ZzeXNfY2FsY3VsYXRlMzIobmV0c25tcF9mc3lzX2luZm8gKmYpCit7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHMgPSBmLT5zaXplOworICAgIHVuc2lnbmVkIHNoaWZ0ID0gMDsKKworICAgIHdoaWxlIChzID4gSU5UMzJfTUFYKSB7CisgICAgICAgIHMgPSBzID4+IDE7CisgICAgICAgIHNoaWZ0Kys7CisgICAgfQorCisgICAgZi0+c2l6ZV8zMiA9IHM7CisgICAgZi0+dW5pdHNfMzIgPSBmLT51bml0cyA8PCBzaGlmdDsKKyAgICBmLT5hdmFpbF8zMiA9IGYtPmF2YWlsID4+IHNoaWZ0OworICAgIGYtPnVzZWRfMzIgPSBmLT51c2VkID4+IHNoaWZ0OworCisgICAgREVCVUdNU0dUTCgoImZzeXMiLCAiUmVzdWx0cyBvZiAzMi1iaXQgY29udmVyc2lvbjogc2l6ZSAlIiBQUkl1NjQgIiAtPiAlbHU7IgorCQkiIHVuaXRzICUiIFBSSXU2NCAiIC0+ICVsdTsgYXZhaWwgJSIgUFJJdTY0ICIgLT4gJWx1OyIKKyAgICAgICAgICAgICAgICAiIHVzZWQgJSIgUFJJdTY0ICIgLT4gJWx1XG4iLAorCQkodWludDY0X3QpZi0+c2l6ZSwgZi0+c2l6ZV8zMiwgKHVpbnQ2NF90KWYtPnVuaXRzLCBmLT51bml0c18zMiwKKwkJKHVpbnQ2NF90KWYtPmF2YWlsLCBmLT5hdmFpbF8zMiwgKHVpbnQ2NF90KWYtPnVzZWQsIGYtPnVzZWRfMzIpKTsKK30KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oIGIvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LmgKaW5kZXggYzMzNDUwYS4uN2U0ZTg4ZSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LmgKQEAgLTMsNyArMyw3IEBACiAjaWYgZGVmaW5lZChsaW51eCkKIGNvbmZpZ19yZXF1aXJlKGhhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXgpCiAKLSNlbGlmIChkZWZpbmVkKGRhcndpbjcpIHx8IGRlZmluZWQoZGFyd2luOCkgfHwgZGVmaW5lZChkYXJ3aW45KSkKKyNlbGlmIChkZWZpbmVkKGRhcndpbikpCiBjb25maWdfcmVxdWlyZShoYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2RhcndpbikKIAogI2VsaWYgKGRlZmluZWQoZnJlZWJzZDIpIHx8IGRlZmluZWQoZnJlZWJzZDMpIHx8IGRlZmluZWQoZnJlZWJzZDQpICB8fCBkZWZpbmVkKGZyZWVic2Q1KXx8IGRlZmluZWQoZnJlZWJzZDYpKQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jIGIvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jCmluZGV4IGIxOGE5YjguLmJhZGM3NzUgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYworKysgYi9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmMKQEAgLTMsNiArMywxMiBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvbWVtb3J5Lmg+CiAKKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgorCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaGFyZHdhcmVfbWVtb3J5LCBuZXRzbm1wX3VudXNlZCkKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKG1lbW9yeV9nZXRfY2FjaGUsIGhhcmR3YXJlX21lbW9yeSkKKwogZXh0ZXJuIE5ldHNubXBDYWNoZUxvYWQgbmV0c25tcF9tZW1fYXJjaF9sb2FkOwogCiBuZXRzbm1wX21lbW9yeV9pbmZvICpfbWVtX2hlYWQgID0gTlVMTDsKQEAgLTg3LDkgKzkzLDExIEBACiAKIAogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTUVNT1JZX0dFVF9DQUNIRQogbmV0c25tcF9jYWNoZSAqbmV0c25tcF9tZW1vcnlfZ2V0X2NhY2hlKCB2b2lkICkgewogICAgIHJldHVybiBfbWVtX2NhY2hlOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTUVNT1JZX0dFVF9DQUNIRSAqLwogCiBpbnQgbmV0c25tcF9tZW1vcnlfbG9hZCggdm9pZCApIHsKICAgICAgcmV0dXJuIG5ldHNubXBfY2FjaGVfY2hlY2tfYW5kX3JlbG9hZCggX21lbV9jYWNoZSApOwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9kYXJ3aW4uYyBiL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZGFyd2luLmMKaW5kZXggNDkxNGYwYy4uNWE1NTk3NCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9kYXJ3aW4uYworKysgYi9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2Rhcndpbi5jCkBAIC01LDEwICs1LDE0IEBACiAKICNpbmNsdWRlIDxkaXJlbnQuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxtYWNoL21hY2hfaG9zdC5oPgorCiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KICNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CiAKKyNpbmNsdWRlIDxtYWNoL21hY2guaD4KKyNpbmNsdWRlIDxtYWNoL21hY2hfdGltZS5oPgorI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CisjaW5jbHVkZSA8SU9LaXQvcHMvSU9Qb3dlclNvdXJjZXMuaD4KIAogLyoKICAqIFJldGFpbmVkIGZyb20gVUNEIGltcGxlbWVudGF0aW9uCkBAIC00NCw4ICs0OCw3IEBACiAgICAgIG1hY2hfcG9ydCA9IG1hY2hfaG9zdF9zZWxmKCk7CiAgICAgIGVycm9yID0gaG9zdF9wcm9jZXNzb3Jfc2V0cyhtYWNoX3BvcnQsICZwc2V0cywgJnBjbnQpOwogICAgICBpZiAoZXJyb3IgIT0gS0VSTl9TVUNDRVNTKSB7Ci0gICAgICAgIHNucHJpbnRmKGVycm1zZywgc2l6ZW9mKGVycm1zZyksICJFcnJvciBpbiBob3N0X3Byb2Nlc3Nvcl9zZXRzKCk6ICVzXG4iLCBtYWNoX2Vycm9yX3N0cmluZyhlcnJvcikpOwotICAgICAgICBzbm1wX2xvZ19wZXJyb3IoZXJybXNnKTsKKyAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgIkVycm9yIGluIGhvc3RfcHJvY2Vzc29yX3NldHMoKTogJXNcbiIsIG1hY2hfZXJyb3Jfc3RyaW5nKGVycm9yKSk7CiAgICAgICAgIHJldHVybigwKTsKICAgICAgfQogCkBAIC03NSw3ICs3OCw3IEBACiAgICAgICAgICAgICBmb3IgKGFkZHJlc3MgPSAwOzsgYWRkcmVzcyArPSBzaXplKSB7CiAgICAgICAgICAgICAgICAgLyogR2V0IG1lbW9yeSByZWdpb24uICovCiAgICAgICAgICAgICAgICAgY291bnQgPSBWTV9SRUdJT05fRVhURU5ERURfSU5GT19DT1VOVDsgCi0gICAgICAgICAgICAgICAgaWYgKHZtX3JlZ2lvbih0YXNrc1tqXSwgJmFkZHJlc3MsICZzaXplLCBWTV9SRUdJT05fRVhURU5ERURfSU5GTywgKHZtX3JlZ2lvbl9leHRlbmRlZF9pbmZvX3QpJmluZm8sICZjb3VudCwgJm9iamVjdF9uYW1lKSAhPSBLRVJOX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICBpZiAodm1fcmVnaW9uKHRhc2tzW2pdLCAmYWRkcmVzcywgJnNpemUsIFZNX1JFR0lPTl9FWFRFTkRFRF9JTkZPLCAmaW5mbywgJmNvdW50LCAmb2JqZWN0X25hbWUpICE9IEtFUk5fU1VDQ0VTUykgewogICAgICAgICAgICAgICAgICAgICAvKiBObyBtb3JlIG1lbW9yeSByZWdpb25zLiAqLwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5jIGIvYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjMuYwppbmRleCA2MGFmOWU2Li5lMzRkYTE5IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5jCisrKyBiL2FnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YzLmMKQEAgLTI2LDkgKzI2LDkgQEAKIAlpbnQgICAgICAgICAgICAgYSA9IDA7CiAKICAgICAgICAgd2hpbGUgKChkYXRhID0gc2Vuc29yc19nZXRfZmVhdHVyZXMoIGNoaXAsICZhKSkpIHsKLSAgICAgICAgICAgIERFQlVHTVNHVEwoKCJzZW5zb3JzOmFyY2g6ZGV0YWlsIiwgImdldF9mZWF0dXJlcyAoJXMsICVkKVxuIiwgZGF0YS0+bmFtZSwgZGF0YS0+bnVtYmVyKSk7CiAJICAgIGludCAgICAgICAgICAgICBiID0gMDsKLSAKKworICAgICAgICAgICAgREVCVUdNU0dUTCgoInNlbnNvcnM6YXJjaDpkZXRhaWwiLCAiZ2V0X2ZlYXR1cmVzICglcywgJWQpXG4iLCBkYXRhLT5uYW1lLCBkYXRhLT5udW1iZXIpKTsKIAogICAgICAgICAgICAgd2hpbGUgKChkYXRhMiA9IHNlbnNvcnNfZ2V0X2FsbF9zdWJmZWF0dXJlcyggY2hpcCwgZGF0YSwgJmIpKSkgewogICAgICAgICAgICAgICAgIGNoYXIgICAgICAgICAgICpsYWJlbCA9IE5VTEw7CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jIGIvYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYwppbmRleCBlZTQyNTQ0Li5kMzRkOTA2IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jCisrKyBiL2FnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMKQEAgLTE4LDYgKzE4LDEzIEBACiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KICNpbmNsdWRlICJoZWFkZXJfY29tcGxleC5oIgogCisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGhlYWRlcl9jb21wbGV4X2FsbCwgbGlibmV0c25tcG1pYnMpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihoZWFkZXJfY29tcGxleF9mcmVlX2FsbCwgaGVhZGVyX2NvbXBsZXhfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGhlYWRlcl9jb21wbGV4X2ZpbmRfZW50cnksIGhlYWRlcl9jb21wbGV4X2FsbCkKKwogaW50CiBoZWFkZXJfY29tcGxleF9nZW5lcmF0ZV92YXJvaWQobmV0c25tcF92YXJpYWJsZV9saXN0ICogdmFyKQogewpAQCAtMzM3LDggKzM0NCw5IEBACiB9CiAKIHN0cnVjdCBoZWFkZXJfY29tcGxleF9pbmRleCAqCi1oZWFkZXJfY29tcGxleF9hZGRfZGF0YShzdHJ1Y3QgaGVhZGVyX2NvbXBsZXhfaW5kZXggKip0aGVkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICogdmFyLCB2b2lkICpkYXRhKQoraGVhZGVyX2NvbXBsZXhfbWF5YmVfYWRkX2RhdGEoc3RydWN0IGhlYWRlcl9jb21wbGV4X2luZGV4ICoqdGhlZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqIHZhciwgdm9pZCAqZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkb250X2FsbG93X2R1cGxpY2F0ZXMpCiB7CiAgICAgb2lkICAgICAgICAgICAgIG5ld29pZFtNQVhfT0lEX0xFTl07CiAgICAgc2l6ZV90ICAgICAgICAgIG5ld29pZF9sZW47CkBAIC0zNDksNyArMzU3LDggQEAKIAogICAgIGhlYWRlcl9jb21wbGV4X2dlbmVyYXRlX29pZChuZXdvaWQsICZuZXdvaWRfbGVuLCBOVUxMLCAwLCB2YXIpOwogICAgIHJldCA9Ci0gICAgICAgIGhlYWRlcl9jb21wbGV4X2FkZF9kYXRhX2J5X29pZCh0aGVkYXRhLCBuZXdvaWQsIG5ld29pZF9sZW4sIGRhdGEpOworICAgICAgICBoZWFkZXJfY29tcGxleF9tYXliZV9hZGRfZGF0YV9ieV9vaWQodGhlZGF0YSwgbmV3b2lkLCBuZXdvaWRfbGVuLCBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9udF9hbGxvd19kdXBsaWNhdGVzKTsKICAgICAvKgogICAgICAqIGZyZWUgdGhlIHZhcmlhYmxlIGxpc3QsIGJ1dCBub3QgdGhlIGVuY2xvc2VkIGRhdGEhICBpdCdzIG5vdCBvdXJzISAKICAgICAgKi8KQEAgLTM1OCwzNCArMzY3LDIxIEBACiB9CiAKIHN0cnVjdCBoZWFkZXJfY29tcGxleF9pbmRleCAqCi1oZWFkZXJfY29tcGxleF9hZGRfZGF0YV9ieV9vaWQoc3RydWN0IGhlYWRlcl9jb21wbGV4X2luZGV4ICoqdGhlZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvaWQgKiBuZXdvaWQsIHNpemVfdCBuZXdvaWRfbGVuLCB2b2lkICpkYXRhKQoraGVhZGVyX2NvbXBsZXhfYWRkX2RhdGEoc3RydWN0IGhlYWRlcl9jb21wbGV4X2luZGV4ICoqdGhlZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqIHZhciwgdm9pZCAqZGF0YSkKIHsKLSAgICBzdHJ1Y3QgaGVhZGVyX2NvbXBsZXhfaW5kZXggKmhjaXB0cm4sICpoY2lwdHJwLCAqb3Vyc2VsZjsKLSAgICBpbnQgcmM7CisgICAgcmV0dXJuCisgICAgICAgIGhlYWRlcl9jb21wbGV4X21heWJlX2FkZF9kYXRhKHRoZWRhdGEsIHZhciwgZGF0YSwgMCk7Cit9CiAKLSAgICBpZiAodGhlZGF0YSA9PSBOVUxMIHx8IG5ld29pZCA9PSBOVUxMIHx8IGRhdGEgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBmb3IgKGhjaXB0cm4gPSAqdGhlZGF0YSwgaGNpcHRycCA9IE5VTEw7Ci0gICAgICAgICBoY2lwdHJuICE9IE5VTEw7IGhjaXB0cnAgPSBoY2lwdHJuLCBoY2lwdHJuID0gaGNpcHRybi0+bmV4dCkgewotICAgICAgICAvKgotICAgICAgICAgKiBYWFg6IGNoZWNrIGZvciA9PSBhbmQgZXJyb3IgKG92ZXJsYXBwaW5nIHRhYmxlIGVudHJpZXMpIAotICAgICAgICAgKiA4LzIwMDUgcmtzIE9rLCBJIGFkZGVkIGR1cGxpY2F0ZSBlbnRyeSBjaGVjaywgYnV0IG9ubHkgbG9nCi0gICAgICAgICAqICAgICAgICAgICAgd2FybmluZyBhbmQgY29udGludWUsIGJlY2F1c2UgaXQgc2VlbXMgdGhhdCBub2JvZHkKLSAgICAgICAgICogICAgICAgICAgICB0aGF0IGNhbGxzIHRoaXMgZnVjbnRpb24gZG9lcyBlcnJvciBjaGVja2luZyEuCi0gICAgICAgICAqLwotICAgICAgICByYyA9IHNubXBfb2lkX2NvbXBhcmUoaGNpcHRybi0+bmFtZSwgaGNpcHRybi0+bmFtZWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld29pZCwgbmV3b2lkX2xlbik7Ci0gICAgICAgIGlmIChyYyA+IDApCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZWxzZSBpZiAoMCA9PSByYykgewotICAgICAgICAgICAgc25tcF9sb2coTE9HX1dBUk5JTkcsICJoZWFkZXJfY29tcGxleF9hZGRfZGF0YV9ieV9vaWQgd2l0aCAiCi0gICAgICAgICAgICAgICAgICAgICAiZHVwbGljYXRlIGluZGV4LlxuIik7Ci0gICAgICAgICAgICAvKiogdW5jb21tZW50IG51bGwgcmV0dXJuIHdoZW4gY2FsbGVycyBkbyBlcnJvciBjaGVja2luZyAqLwotICAgICAgICAgICAgLyoqIHJldHVybiBOVUxMOyAqLwotICAgICAgICB9Ci0gICAgfQorc3RydWN0IGhlYWRlcl9jb21wbGV4X2luZGV4ICoKK19oZWFkZXJfY29tcGxleF9hZGRfYmV0d2VlbihzdHJ1Y3QgaGVhZGVyX2NvbXBsZXhfaW5kZXggKip0aGVkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBoZWFkZXJfY29tcGxleF9pbmRleCAqaGNpcHRycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaGVhZGVyX2NvbXBsZXhfaW5kZXggKmhjaXB0cm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2lkICogbmV3b2lkLCBzaXplX3QgbmV3b2lkX2xlbiwgdm9pZCAqZGF0YSkKK3sKKyAgICBzdHJ1Y3QgaGVhZGVyX2NvbXBsZXhfaW5kZXggKm91cnNlbGY7CiAKICAgICAvKgogICAgICAqIG5wdHIgc2hvdWxkIG5vdyBwb2ludCB0byB0aGUgc3BvdCB0aGF0IHdlIG5lZWQgdG8gYWRkIG91cnNlbHZlcwpAQCAtNDI5LDYgKzQyNSw1MCBAQAogICAgIHJldHVybiBoY2lwdHJwOwogfQogCisKK3N0cnVjdCBoZWFkZXJfY29tcGxleF9pbmRleCAqCitoZWFkZXJfY29tcGxleF9tYXliZV9hZGRfZGF0YV9ieV9vaWQoc3RydWN0IGhlYWRlcl9jb21wbGV4X2luZGV4ICoqdGhlZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvaWQgKiBuZXdvaWQsIHNpemVfdCBuZXdvaWRfbGVuLCB2b2lkICpkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkb250X2FsbG93X2R1cGxpY2F0ZXMpCit7CisgICAgc3RydWN0IGhlYWRlcl9jb21wbGV4X2luZGV4ICpoY2lwdHJuLCAqaGNpcHRycDsKKyAgICBpbnQgcmM7CisKKyAgICBpZiAodGhlZGF0YSA9PSBOVUxMIHx8IG5ld29pZCA9PSBOVUxMIHx8IGRhdGEgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBmb3IgKGhjaXB0cm4gPSAqdGhlZGF0YSwgaGNpcHRycCA9IE5VTEw7CisgICAgICAgICBoY2lwdHJuICE9IE5VTEw7IGhjaXB0cnAgPSBoY2lwdHJuLCBoY2lwdHJuID0gaGNpcHRybi0+bmV4dCkgeworICAgICAgICAvKgorICAgICAgICAgKiBYWFg6IGNoZWNrIGZvciA9PSBhbmQgZXJyb3IgKG92ZXJsYXBwaW5nIHRhYmxlIGVudHJpZXMpIAorICAgICAgICAgKiA4LzIwMDUgcmtzIE9rLCBJIGFkZGVkIGR1cGxpY2F0ZSBlbnRyeSBjaGVjaywgYnV0IG9ubHkgbG9nCisgICAgICAgICAqICAgICAgICAgICAgd2FybmluZyBhbmQgY29udGludWUsIGJlY2F1c2UgaXQgc2VlbXMgdGhhdCBub2JvZHkKKyAgICAgICAgICogICAgICAgICAgICB0aGF0IGNhbGxzIHRoaXMgZnVjbnRpb24gZG9lcyBlcnJvciBjaGVja2luZyEuCisgICAgICAgICAqLworICAgICAgICByYyA9IHNubXBfb2lkX2NvbXBhcmUoaGNpcHRybi0+bmFtZSwgaGNpcHRybi0+bmFtZWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld29pZCwgbmV3b2lkX2xlbik7CisgICAgICAgIGlmIChyYyA+IDApCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZWxzZSBpZiAoMCA9PSByYykgeworICAgICAgICAgICAgc25tcF9sb2coTE9HX1dBUk5JTkcsICJoZWFkZXJfY29tcGxleF9hZGRfZGF0YV9ieV9vaWQgd2l0aCAiCisgICAgICAgICAgICAgICAgICAgICAiZHVwbGljYXRlIGluZGV4LlxuIik7CisgICAgICAgICAgICBpZiAoZG9udF9hbGxvd19kdXBsaWNhdGVzKQorICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIF9oZWFkZXJfY29tcGxleF9hZGRfYmV0d2Vlbih0aGVkYXRhLCBoY2lwdHJwLCBoY2lwdHJuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3b2lkLCBuZXdvaWRfbGVuLCBkYXRhKTsKK30KKworc3RydWN0IGhlYWRlcl9jb21wbGV4X2luZGV4ICoKK2hlYWRlcl9jb21wbGV4X2FkZF9kYXRhX2J5X29pZChzdHJ1Y3QgaGVhZGVyX2NvbXBsZXhfaW5kZXggKip0aGVkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9pZCAqIG5ld29pZCwgc2l6ZV90IG5ld29pZF9sZW4sIHZvaWQgKmRhdGEpCit7CisgICAgcmV0dXJuIGhlYWRlcl9jb21wbGV4X21heWJlX2FkZF9kYXRhX2J5X29pZCh0aGVkYXRhLCBuZXdvaWQsIG5ld29pZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLCAwKTsKK30KKwogLyoKICAqIGV4dHJhY3RzIGFuIGVudHJ5IGZyb20gdGhlIHN0b3JhZ2Ugc3BhY2UgKHJlbW92aW5nIGl0IGZyb20gZnV0dXJlCiAgKiBhY2Nlc3NlcykgYW5kIHJldHVybnMgdGhlIGRhdGEgc3RvcmVkIHRoZXJlCkBAIC00ODUsNiArNTI1LDcgQEAKIC8qCiAgKiBjb21wbGV0ZWx5IHdpcGUgb3V0IGFsbCBlbnRyaWVzIGluIG91ciBkYXRhIHN0b3JlIAogICovCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSEVBREVSX0NPTVBMRVhfRlJFRV9BTEwKIHZvaWQKIGhlYWRlcl9jb21wbGV4X2ZyZWVfYWxsKHN0cnVjdCBoZWFkZXJfY29tcGxleF9pbmRleCAqdGhlc3R1ZmYsCiAgICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb21wbGV4Q2xlYW5lciAqIGNsZWFuZXIpCkBAIC00OTYsNyArNTM3LDkgQEAKICAgICAgICAgaGVhZGVyX2NvbXBsZXhfZnJlZV9lbnRyeShoY2lwdHIsIGNsZWFuZXIpOwogICAgIH0KIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0hFQURFUl9DT01QTEVYX0ZSRUVfQUxMICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9IRUFERVJfQ09NUExFWF9GSU5EX0VOVFJZCiBzdHJ1Y3QgaGVhZGVyX2NvbXBsZXhfaW5kZXggKgogaGVhZGVyX2NvbXBsZXhfZmluZF9lbnRyeShzdHJ1Y3QgaGVhZGVyX2NvbXBsZXhfaW5kZXggKnRoZXN0dWZmLAogICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICp0aGVlbnRyeSkKQEAgLTUwNyw2ICs1NTAsNyBAQAogICAgICAgICAgaGNpcHRyID0gaGNpcHRyLT5uZXh0KTsKICAgICByZXR1cm4gaGNpcHRyOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSEVBREVSX0NPTVBMRVhfRklORF9FTlRSWSAqLwogCiAjaWZkZWYgVEVTVElORwogCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5oIGIvYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguaAppbmRleCAyMDI4Y2VlLi4yYTE3MjhhIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5oCisrKyBiL2FnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmgKQEAgLTU3LDYgKzU3LDEwIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqdGhlZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdmFyLCB2b2lkICpkYXRhKTsKK3N0cnVjdCBoZWFkZXJfY29tcGxleF9pbmRleCAqaGVhZGVyX2NvbXBsZXhfbWF5YmVfYWRkX2RhdGEoc3RydWN0IGhlYWRlcl9jb21wbGV4X2luZGV4ICoqdGhlZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICogdmFyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZG9udF9hbGxvd19kdXBsaWNhdGVzKTsKIAogLyoKICAqIE5vdGU6IG5ld29pZCBpcyBjb3BpZWQvY2xvbmVkIGZvciB5b3UgCkBAIC02OCw1ICs3MiwxMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdvaWRfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZGF0YSk7CitzdHJ1Y3QgaGVhZGVyX2NvbXBsZXhfaW5kZXggKmhlYWRlcl9jb21wbGV4X21heWJlX2FkZF9kYXRhX2J5X29pZChzdHJ1Y3QgaGVhZGVyX2NvbXBsZXhfaW5kZXggKip0aGVkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2lkICogbmV3b2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG5ld29pZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRvbnRfYWxsb3dfZHVwbGljYXRlcyk7CiAKICNlbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgLyogX01JQkdST1VQX0hFQURFUl9DT01QTEVYX0ggKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMgYi9hZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jCmluZGV4IGJiNTUxODEuLjNlZjA1ZTkgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYwpAQCAtNyw2ICs3LDcgQEAKICAqIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9kYXRhX2FjY2Vzcy9zd2luc3QuaD4KQEAgLTE0LDYgKzE1LDEwIEBACiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzb2Z0d2FyZV9pbnN0YWxsZWQsIGxpYm5ldHNubXBtaWJzKQorCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yoc3dpbnN0X2VudHJ5X3JlbW92ZSwgbmV0c25tcF91bnVzZWQpCisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKQEAgLTE4MSw2ICsxODYsNyBAQAogLyoKICAqIHJlbW92ZSBhIHJvdyBmcm9tIHRoZSB0YWJsZSAKICAqLworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NXSU5TVF9FTlRSWV9SRU1PVkUKIHZvaWQKIG5ldHNubXBfc3dpbnN0X2VudHJ5X3JlbW92ZShuZXRzbm1wX2NvbnRhaW5lciAqIGNvbnRhaW5lciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3N3aW5zdF9lbnRyeSAqZW50cnkpCkBAIC0xOTAsNiArMTk2LDcgQEAKICAgICAgICAgcmV0dXJuOyAgICAgICAgICAgICAgICAgLyogTm90aGluZyB0byByZW1vdmUgKi8KICAgICBDT05UQUlORVJfUkVNT1ZFKGNvbnRhaW5lciwgZW50cnkpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU1dJTlNUX0VOVFJZX1JFTU9WRSAqLwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaCBiL2FnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgKaW5kZXggMGM4MDU2MS4uYmRhM2U0NyAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaAorKysgYi9hZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oCkBAIC0xNCw3ICsxNCw2IEBACiAvKgogICogYWxsIHBsYXRmb3JtcyB1c2UgdGhpcyBnZW5lcmljIGNvZGUKICAqLwotY29uZmlnX3JlcXVpcmUoaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QpCiBjb25maWdfZXhjbHVkZShob3N0L2hyX3N3aW5zdCkKIAogLyoKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X2Rhcndpbi5jIGIvYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfZGFyd2luLmMKaW5kZXggYmJmNWEyZi4uN2E0NzM3MiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfZGFyd2luLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfZGFyd2luLmMKQEAgLTcsNiArNyw3IEBACiAgKiBkaXN0cmlidXRlZCB3aXRoIHRoZSBOZXQtU05NUCBwYWNrYWdlLgogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaD4KQEAgLTI2LDYgKzI3LDkgQEAKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgogI2luY2x1ZGUgPEFwcGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjb250YWluZXJfZGlyZWN0b3J5KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoZGF0ZV9uX3RpbWUpCisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiBzdGF0aWMgaW50IF9hZGRfYXBwbGljYXRpb25zX2luX2RpcihuZXRzbm1wX2NvbnRhaW5lciAqLCBjb25zdCBjaGFyKiBwYXRoKTsKQEAgLTEyNSw3ICsxMjksOCBAQAogICAgIHJldHVybiAwOwogfQogCi12b2lkICBfZHVtcF9mbGFncyh1X2xvbmcgZmxhZ3MpCitzdGF0aWMgdm9pZAorX2R1bXBfZmxhZ3ModV9sb25nIGZsYWdzKQogewogICAgIHN0YXRpYyBzdHJ1Y3QgewogICAgICAgICBjb25zdCBjaGFyKm5hbWU7CkBAIC0yNTEsNiArMjU2LDggQEAKICAgICAgICAgICAgIHJjID0gLTE7CiAgICAgICAgICAgICBTTk1QX0NGUmVsZWFzZShwcm9kTmFtZSk7CiAgICAgICAgICAgICBTTk1QX0NGUmVsZWFzZSh2ZXJzaW9uKTsKKyAgICAgICAgICAgIENGUmVsZWFzZShjdXJyZW50UGF0aCk7CisgICAgICAgICAgICBDRlJlbGVhc2UoY3VycmVudFVSTCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC0yODEsNyArMjg4LDcgQEAKICAgICByZXR1cm4gcmM7CiB9CiAKLWludAorc3RhdGljIGludAogX2NoZWNrX2J1bmRsZWRfYXBwKENGVVJMUmVmIGN1cnJlbnRVUkwsIENGU3RyaW5nUmVmICpwcm9kTmFtZSwKICAgICAgICAgICAgICAgICAgICBDRlN0cmluZ1JlZiAqdmVyc2lvbiwgY29uc3QgY2hhciogZmlsZSkKIHsKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYyBiL2FnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYwppbmRleCBiYzhlZTJlLi5hMTIyY2IxIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jCkBAIC0zLDYgKzMsNyBAQAogICogICAgIGhyU1dJbnN0YWxsZWRUYWJsZSBkYXRhIGFjY2VzczoKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CkBAIC0zMSwxMiArMzIsMTkgQEAKICNpbmNsdWRlIDxwa2dpbmZvLmg+CiAjZW5kaWYKIAorI2lmZGVmIEhBVkVfUEtHX0gKKyNkZWZpbmUgcmVzdHJpY3QKKyNpbmNsdWRlIDxwa2cuaD4KKyNlbmRpZgorCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3dpbnN0Lmg+CiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGRhdGVfbl90aW1lKQorCiAgICAvKgogICAgICogTG9jYXRpb24gb2YgcGFja2FnZSBkaXJlY3RvcnkuCiAgICAgKiBVc2VkIGZvcjoKQEAgLTk0LDUyICsxMDIsMTE1IEBACiAgICAgc2l6ZV90ICAgICAgICAgICAgICAgIGRhdGVfbGVuOwogICAgIGludCAgICAgICAgICAgICAgICAgICBpID0gMTsKICAgICBuZXRzbm1wX3N3aW5zdF9lbnRyeSAqZW50cnk7CisjaWZkZWYgSEFWRV9MSUJQS0cKKyAgICBzdHJ1Y3QgcGtnZGIgKmRiID0gTlVMTDsKKyAgICBzdHJ1Y3QgcGtnZGJfaXQgKml0ID0gTlVMTDsKKyAgICBzdHJ1Y3QgcGtnICpwa2cgPSBOVUxMOworICAgIGNoYXIgcGtnbmFtZVsgU05NUF9NQVhQQVRIIF07CisgICAgY2hhciBwa2dkYXRlWyBCVUZTSVogXTsKKyAgICBpbnQgcGtnbmcgPSAwOwogCi0gICAgaWYgKCAhcGtnX2RpcmVjdG9yeVswXSApIHsKLSAgICAgICAgcmV0dXJuIDE7ICAgIC8qIENhbid0IHJlcG9ydCBpbnN0YWxsZWQgcGFja2FnZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0aGVyZSBpc24ndCBhIGxpc3Qgb2YgdGhlbSEgKi8KKyAgICBpZiAocGtnX2luaXQoTlVMTCwgTlVMTCkpIHsKKyAgICAgICAgc25tcF9sb2coIExPR19FUlIsICJTV0luc3Q6IGVycm9yIGluaXRpYWxpemluZyBwa2duZyBkYlxuIiApOworICAgICAgICByZXR1cm4gMTsKICAgICB9Ci0gICAgZCA9IG9wZW5kaXIoIHBrZ19kaXJlY3RvcnkgKTsKLSAgICBpZiAoIWQpCisKKyAgICBpZiAocGtnZGJfb3BlbigmZGIsIFBLR0RCX0RFRkFVTFQpICE9IEVQS0dfT0spIHsKKwlzbm1wX2xvZyggTE9HX0VSUiwgIlNXSW5zdDogZXJyb3Igb3BlbmluZyBwa2duZyBkYlxuIiApOwogCXJldHVybiAxOwotICAgIHdoaWxlICgoZHAgPSByZWFkZGlyKGQpKSAhPSBOVUxMKSB7Ci0gICAgICAgIGlmICggJy4nID09IGRwLT5kX25hbWVbMF0gKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGVudHJ5ID0gbmV0c25tcF9zd2luc3RfZW50cnlfY3JlYXRlKCBpKysgKTsKLSAgICAgICAgaWYgKE5VTEwgPT0gZW50cnkpCi0gICAgICAgICAgICBjb250aW51ZTsgICAvKiBlcnJvciBhbHJlYWR5IGxvZ2dlZCBieSBmdW5jdGlvbiAqLwotICAgICAgICBDT05UQUlORVJfSU5TRVJUKGNvbnRhaW5lciwgZW50cnkpOworICAgIH0KKworICAgIGlmIChwa2dfc3RhdHVzKE5VTEwpID09IFBLR19TVEFUVVNfQUNUSVZFKSB7CisJcGtnbmcgPSAxOworICAgIH0gZWxzZSB7CisJc25tcF9sb2coIExPR19JTkZPLCAiU1dJbnN0OiBub3QgYSBwa2duZyBzeXN0ZW1cbiIgKTsKKyAgICB9CisKKyAgICAvKiBpZiB3ZSBhcmUgdXNpbmcgRnJlZUJTRCdzIHBrZ25nICovCisgICAgaWYgKHBrZ25nKSB7CisgICAgICAgIGlmICgoaXQgPSBwa2dkYl9xdWVyeShkYiwgTlVMTCwgTUFUQ0hfQUxMKSkgPT0gTlVMTCkgeworICAgICAgICAgICAgc25tcF9sb2coIExPR19FUlIsICJTV0luc3Q6IGVycm9yIHF1ZXJ5aW5nIHBrZ25nIGRiXG4iICk7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlIChwa2dkYl9pdF9uZXh0KGl0LCAmcGtnLCBQS0dfTE9BRF9CQVNJQykgPT0gRVBLR19PSykgeworICAgICAgICAgICAgcGtnX3NucHJpbnRmKHBrZ25hbWUsIHNpemVvZihwa2duYW1lKSwgIiVuLSV2IiwgcGtnLCBwa2cpOworICAgICAgICAgICAgcGtnX3NucHJpbnRmKHBrZ2RhdGUsIHNpemVvZihwa2dkYXRlKSwgIiV0IiwgcGtnKTsKKworICAgICAgICAgICAgZW50cnkgPSBuZXRzbm1wX3N3aW5zdF9lbnRyeV9jcmVhdGUoIGkrKyApOworCisgICAgICAgICAgICBpZiAoTlVMTCA9PSBlbnRyeSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsgICAvKiBlcnJvciBhbHJlYWR5IGxvZ2dlZCBieSBmdW5jdGlvbiAqLworCisgICAgICAgICAgICBDT05UQUlORVJfSU5TRVJUKGNvbnRhaW5lciwgZW50cnkpOworCisgICAgICAgICAgICBlbnRyeS0+c3dOYW1lX2xlbiA9IHNucHJpbnRmKCBlbnRyeS0+c3dOYW1lLCBzaXplb2YoZW50cnktPnN3TmFtZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMiLCBwa2duYW1lICk7CisgICAgICAgICAgICBpZiAoZW50cnktPnN3TmFtZV9sZW4gPj0gc2l6ZW9mKGVudHJ5LT5zd05hbWUpKQorICAgICAgICAgICAgICAgIGVudHJ5LT5zd05hbWVfbGVuID0gc2l6ZW9mKGVudHJ5LT5zd05hbWUpLTE7CisKKyAgICAgICAgICAgIGluc3RhbGxfdGltZSA9IGF0b2kocGtnZGF0ZSk7CisgICAgICAgICAgICBjcCA9IGRhdGVfbl90aW1lKCAmaW5zdGFsbF90aW1lLCAmZGF0ZV9sZW4gKTsKKyAgICAgICAgICAgIG1lbWNweSggZW50cnktPnN3RGF0ZSwgY3AsIGRhdGVfbGVuICk7CisgICAgICAgICAgICBlbnRyeS0+c3dEYXRlX2xlbiA9IGRhdGVfbGVuOworICAgICAgICB9CisKKyAgICAgICAgcGtnZGJfaXRfZnJlZShpdCk7CisgICAgICAgIHBrZ2RiX2Nsb3NlKGRiKTsKKyAgICAgICAgcGtnX3NodXRkb3duKCk7CisgICAgfSBlbHNlIHsKKyNlbmRpZiAvKiBIQVZFX0xJQlBLRyAqLworICAgICAgICBpZiAoICFwa2dfZGlyZWN0b3J5WzBdICkgeworICAgICAgICAgICAgcmV0dXJuIDE7ICAgIC8qIENhbid0IHJlcG9ydCBpbnN0YWxsZWQgcGFja2FnZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0aGVyZSBpc24ndCBhIGxpc3Qgb2YgdGhlbSEgKi8KKyAgICAgICAgfQorCisgICAgICAgIGQgPSBvcGVuZGlyKCBwa2dfZGlyZWN0b3J5ICk7CisgICAgICAgIGlmICghZCkKKyAgICAgICAgICAgIHJldHVybiAxOworCisgICAgICAgIHdoaWxlICgoZHAgPSByZWFkZGlyKGQpKSAhPSBOVUxMKSB7CisgICAgICAgICAgICBpZiAoICcuJyA9PSBkcC0+ZF9uYW1lWzBdICkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHNucHJpbnRmKCBidWYsIEJVRlNJWiwgIiVzLyVzIiwgcGtnX2RpcmVjdG9yeSwgZHAtPmRfbmFtZSApOworICAgICAgICAgICAgaWYgKHN0YXQoIGJ1ZiwgJnN0YXRfYnVmICkgPCAwKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgZW50cnkgPSBuZXRzbm1wX3N3aW5zdF9lbnRyeV9jcmVhdGUoIGkrKyApOworICAgICAgICAgICAgaWYgKE5VTEwgPT0gZW50cnkpCisgICAgICAgICAgICAgICAgY29udGludWU7ICAgLyogZXJyb3IgYWxyZWFkeSBsb2dnZWQgYnkgZnVuY3Rpb24gKi8KKyAgICAgICAgICAgIENPTlRBSU5FUl9JTlNFUlQoY29udGFpbmVyLCBlbnRyeSk7CiAKICNpZmRlZiBIQVZFX1BLR0lORk8KLSAgICAgICAgdiA9IHBrZ3BhcmFtKCBkcC0+ZF9uYW1lLCAiVkVSU0lPTiIgKTsKLSAgICAgICAgYyA9IHBrZ3BhcmFtKCBkcC0+ZF9uYW1lLCAiQ0FURUdPUlkiICk7CisJICAgIHYgPSBwa2dwYXJhbSggZHAtPmRfbmFtZSwgIlZFUlNJT04iICk7CisJICAgIGMgPSBwa2dwYXJhbSggZHAtPmRfbmFtZSwgIkNBVEVHT1JZIiApOwogCi0gICAgICAgIGVudHJ5LT5zd05hbWVfbGVuID0gc25wcmludGYoIGVudHJ5LT5zd05hbWUsIHNpemVvZihlbnRyeS0+c3dOYW1lKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzLSVzIiwgZHAtPmRfbmFtZSwgdiApOwotCWlmIChlbnRyeS0+c3dOYW1lX2xlbiA+PSBzaXplb2YoZW50cnktPnN3TmFtZSkpCi0JICAgIGVudHJ5LT5zd05hbWVfbGVuID0gc2l6ZW9mKGVudHJ5LT5zd05hbWUpLTE7Ci0gICAgICAgIGVudHJ5LT5zd1R5cGUgPSAoTlVMTCAhPSBzdHJzdHIoIGMsICJzeXN0ZW0iKSkKLSAgICAgICAgICAgICAgICAgICAgICAgID8gMiAgICAgIC8qIG9wZXJhdGluZ1N5c3RlbSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgOiA0OyAgICAgLyogIGFwcGxpY2F0aW9uICAgICovCisJICAgIGVudHJ5LT5zd05hbWVfbGVuID0gc25wcmludGYoIGVudHJ5LT5zd05hbWUsIHNpemVvZihlbnRyeS0+c3dOYW1lKSwKKwkJCQkJICAiJXMtJXMiLCBkcC0+ZF9uYW1lLCB2ICk7CisJICAgIGlmIChlbnRyeS0+c3dOYW1lX2xlbiA+PSBzaXplb2YoZW50cnktPnN3TmFtZSkpCisJCWVudHJ5LT5zd05hbWVfbGVuID0gc2l6ZW9mKGVudHJ5LT5zd05hbWUpLTE7CisJICAgIGVudHJ5LT5zd1R5cGUgPSAoTlVMTCAhPSBzdHJzdHIoIGMsICJzeXN0ZW0iKSkKKwkJCSAgICA/IDIgICAgICAvKiBvcGVyYXRpbmdTeXN0ZW0gKi8KKwkJCSAgICA6IDQ7ICAgICAvKiAgYXBwbGljYXRpb24gICAgKi8KIAotICAgICAgICAvKiBEbyB3ZSBuZWVkIHRvIGZyZWUgJ3YnICYgJ2MnID8/PyAqLworCSAgICAvKiBEbyB3ZSBuZWVkIHRvIGZyZWUgJ3YnICYgJ2MnID8/PyAqLwogI2Vsc2UKLSAgICAgICAgZW50cnktPnN3TmFtZV9sZW4gPSBzbnByaW50ZiggZW50cnktPnN3TmFtZSwgc2l6ZW9mKGVudHJ5LT5zd05hbWUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMiLCBkcC0+ZF9uYW1lICk7Ci0JaWYgKGVudHJ5LT5zd05hbWVfbGVuID49IHNpemVvZihlbnRyeS0+c3dOYW1lKSkKLQkgICAgZW50cnktPnN3TmFtZV9sZW4gPSBzaXplb2YoZW50cnktPnN3TmFtZSktMTsKKwkgICAgZW50cnktPnN3TmFtZV9sZW4gPSBzbnByaW50ZiggZW50cnktPnN3TmFtZSwgc2l6ZW9mKGVudHJ5LT5zd05hbWUpLAorCQkJCQkgICIlcyIsIGRwLT5kX25hbWUgKTsKKwkgICAgaWYgKGVudHJ5LT5zd05hbWVfbGVuID49IHNpemVvZihlbnRyeS0+c3dOYW1lKSkKKwkJZW50cnktPnN3TmFtZV9sZW4gPSBzaXplb2YoZW50cnktPnN3TmFtZSktMTsKIAotICAgICAgICAvKiBubyBpbmZvcm1hdGlvbiBhYm91dCBPL1MgdnMgYXBwbGljYXRpb24gcGFja2FnZXMgPz8/ICovCisJICAgIC8qIG5vIGluZm9ybWF0aW9uIGFib3V0IE8vUyB2cyBhcHBsaWNhdGlvbiBwYWNrYWdlcyA/Pz8gKi8KICNlbmRpZgogCi0gICAgICAgIHNucHJpbnRmKCBidWYsIEJVRlNJWiwgIiVzLyVzIiwgcGtnX2RpcmVjdG9yeSwgZHAtPmRfbmFtZSApOwotICAgICAgICBzdGF0KCBidWYsICZzdGF0X2J1ZiApOwotICAgICAgICBpbnN0YWxsX3RpbWUgPSBzdGF0X2J1Zi5zdF9tdGltZTsKLSAgICAgICAgY3AgPSBkYXRlX25fdGltZSggJmluc3RhbGxfdGltZSwgJmRhdGVfbGVuICk7Ci0gICAgICAgIG1lbWNweSggZW50cnktPnN3RGF0ZSwgY3AsIGRhdGVfbGVuICk7Ci0gICAgICAgIGVudHJ5LT5zd0RhdGVfbGVuID0gZGF0ZV9sZW47CisJICAgIGluc3RhbGxfdGltZSA9IHN0YXRfYnVmLnN0X210aW1lOworCSAgICBjcCA9IGRhdGVfbl90aW1lKCAmaW5zdGFsbF90aW1lLCAmZGF0ZV9sZW4gKTsKKwkgICAgbWVtY3B5KCBlbnRyeS0+c3dEYXRlLCBjcCwgZGF0ZV9sZW4gKTsKKwkgICAgZW50cnktPnN3RGF0ZV9sZW4gPSBkYXRlX2xlbjsKKwl9CisJY2xvc2VkaXIoIGQgKTsKKyNpZmRlZiBIQVZFX0xJQlBLRwogICAgIH0KLSAgICBjbG9zZWRpciggZCApOworI2VuZGlmCiAKICAgICBERUJVR01TR1RMKCgic3dpbnN0OmxvYWQ6YXJjaCIsIiBsb2FkZWQgJWQgZW50cmllc1xuIiwKICAgICAgICAgICAgICAgICAoaW50KUNPTlRBSU5FUl9TSVpFKGNvbnRhaW5lcikpKTsKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3JwbS5jIGIvYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmMKaW5kZXggZGFlOGY2YS4uNzE1OTViZSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmMKQEAgLTMsNiArMyw3IEBACiAgKiAgICAgaHJTV0luc3RhbGxlZFRhYmxlIGRhdGEgYWNjZXNzOgogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaWZkZWYgSEFWRV9TVERMSUJfSApAQCAtNDMsNiArNDQsOCBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2RhdGFfYWNjZXNzL3N3aW5zdC5oPgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShkYXRlX25fdGltZSkKKwogICAgLyoKICAgICAqIExvY2F0aW9uIG9mIFJQTSBwYWNrYWdlIGRpcmVjdG9yeS4KICAgICAqIFVzZWQgZm9yOgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jIGIvYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jCmluZGV4IDgxMjAzMGYuLmQxOGVhNWYgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYworKysgYi9hZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMKQEAgLTksMTEgKzksMTYgQEAKICAqIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAKICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2RhdGFfYWNjZXNzL3N3cnVuLmg+CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzb2Z0d2FyZV9ydW5uaW5nLCBsaWJuZXRzbm1wbWlicykKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHN3cnVuX21heF9wcm9jZXNzZXMsIHNvZnR3YXJlX3J1bm5pbmcpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yoc3dydW5fY291bnRfcHJvY2Vzc2VzX2J5X25hbWUsIHNvZnR3YXJlX3J1bm5pbmcpCiAKIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKgpAQCAtNzYsMTIgKzgxLDE1IEBACiAgICAgcmV0dXJuICggc3dydW5fY29udGFpbmVyID8gQ09OVEFJTkVSX1NJWkUoc3dydW5fY29udGFpbmVyKSA6IDAgKTsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NXUlVOX01BWF9QUk9DRVNTRVMKIGludAogc3dydW5fbWF4X3Byb2Nlc3Nlcyggdm9pZCApCiB7CiAgICAgcmV0dXJuIF9zd3J1bl9tYXg7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TV1JVTl9NQVhfUFJPQ0VTU0VTICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TV1JVTl9DT1VOVF9QUk9DRVNTRVNfQllfTkFNRQogaW50CiBzd3J1bl9jb3VudF9wcm9jZXNzZXNfYnlfbmFtZSggY2hhciAqbmFtZSApCiB7CkBAIC0xMDIsNyArMTEwLDcgQEAKIAogICAgIHJldHVybiBpOwogfQotCisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TV1JVTl9DT1VOVF9QUk9DRVNTRVNfQllfTkFNRSAqLwogCiAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyoKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fZGFyd2luLmMgYi9hZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2Rhcndpbi5jCmluZGV4IGJiZWZjNGUuLjNiMDBmZTMgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fZGFyd2luLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9kYXJ3aW4uYwpAQCAtMTIwLDcgKzEyMCw3IEBACiAgICAgICAgICAqIHNraXAgZW1wdHkgbmFtZXMuCiAgICAgICAgICAqIHBfc3RhdCA9IChTSURMfFNSVU58U1NMRUVQfFNTVE9QfFNaT01CKQogICAgICAgICAgKi8KLSAgICAgICAgaWYgKChOVUxMID09IHByb2Nlc3Nlc1tpXS5rcF9wcm9jLnBfY29tbSkgfHwKKyAgICAgICAgaWYgKCgnXDAnID09IHByb2Nlc3Nlc1tpXS5rcF9wcm9jLnBfY29tbVswXSkgfHwKICAgICAgICAgICAgICgwID09IHByb2Nlc3Nlc1tpXS5rcF9wcm9jLnBfcGlkKSkgewogICAgICAgICAgICAgREVCVUdNU0dUTCgoInN3cnVuOmxvYWQ6YXJjaCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAiIHNraXBwaW5nIHBfY29tbSAnJXMnLCBwaWQgJTVkLCBwX3BzdGF0ICVkXG4iLApAQCAtMTkzLDcgKzE5Myw3IEBACiAgICAgICAgICAgICB9IGF0LCBuczsKICAgICAgICAgICAgIGF0LnVxID0gdGFza2luZm8ucHRpbmZvLnB0aV90b3RhbF91c2VyICsKICAgICAgICAgICAgICAgICAgICAgdGFza2luZm8ucHRpbmZvLnB0aV90b3RhbF9zeXN0ZW07Ci0gICAgICAgICAgICBucy51dyA9IEFic29sdXRlVG9OYW5vc2Vjb25kcyggYXQudXcgKTsKKyAgICAgICAgICAgIG5zID0gYXQ7CiAgICAgICAgICAgICBucy51cSA9IG5zLnVxIC8gMTAwMDAwMDBMTDsgLyogbmFubyB0byBkZWNpICovCiAgICAgICAgICAgICBpZiAodGFza19tZW0gPiBJTlQzMl9NQVgpIHsKICAgICAgICAgICAgICAgICBERUJVR01TR1RMKCgic3dydW46bG9hZDphcmNoIiwgU1dSVU5JTkRFTlQgIm1lbSBvdmVyZmxvd1xuIikpOwpAQCAtMjEwLDcgKzIxMCw3IEBACiAgICAgZnJlZShwcm9jZXNzZXMpOwogCiAgICAgREVCVUdNU0dUTCgoInN3cnVuOmxvYWQ6YXJjaCIsIiBsb2FkZWQgJWQgZW50cmllc1xuIiwKLSAgICAgICAgICAgICAgICBDT05UQUlORVJfU0laRShjb250YWluZXIpKSk7CisgICAgICAgICAgICAgICAgKGludClDT05UQUlORVJfU0laRShjb250YWluZXIpKSk7CiAKICAgICByZXR1cm4gMDsKIH0KQEAgLTM4Niw4ICszODYsOCBAQAogICAgICAgICAgICAgYnJlYWs7IC8qIEVuZCBvZiBleGVjX3BhdGggcmVhY2hlZC4gKi8KICAgICB9CiAgICAgaWYgKGNwICE9IGV4ZWNfcGF0aCArIGxlbikgewotICAgICAgICBERUJVR01TR1RMKCgic3dydW46bG9hZDphcmNoOl9jbiIsIiBPRkYgQlkgJWRcbiIsCi0gICAgICAgICAgICAgICAgICAgIChleGVjX3BhdGggKyBsZW4pIC0gY3ApKTsKKyAgICAgICAgREVCVUdNU0dUTCgoInN3cnVuOmxvYWQ6YXJjaDpfY24iLCAiIE9GRiBCWSAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgKGludCkoKGV4ZWNfcGF0aCArIGxlbikgLSBjcCkpKTsKICAgICAgICAgbmV0c25tcF9hc3NlcnQoIGNwID09IGV4ZWNfcGF0aCArIGxlbiApOwogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmMKaW5kZXggNmY5NDBiZi4uYWQ4YWVlMyAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5jCkBAIC0yMyw2ICsyMyw4IEBACiAKICNkZWZpbmUgTVlUQUJMRSAiaHJTV0luc3RhbGxlZFRhYmxlIgogCitzdGF0aWMgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqdGFibGVfaW5mbzsKKwogc3RhdGljIHZvaWQgX2NhY2hlX2ZyZWUobmV0c25tcF9jYWNoZSAqIGNhY2hlLCB2b2lkICptYWdpYyk7CiBzdGF0aWMgaW50IF9jYWNoZV9sb2FkKG5ldHNubXBfY2FjaGUgKiBjYWNoZSwgdm9pZCAqbWFnaWMpOwogCkBAIC0zNiw2ICszOCwxNSBAQAogICAgIGluaXRpYWxpemVfdGFibGVfaHJTV0luc3RhbGxlZFRhYmxlKCk7CiB9CiAKK3ZvaWQKK3NodXRkb3duX2hyU1dJbnN0YWxsZWRUYWJsZSh2b2lkKQoreworICAgIGlmICh0YWJsZV9pbmZvKSB7CisJbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19mcmVlKHRhYmxlX2luZm8pOworCXRhYmxlX2luZm8gPSBOVUxMOworICAgIH0KK30KKwogLyoqIEluaXRpYWxpemUgdGhlIGhyU1dJbnN0YWxsZWRUYWJsZSB0YWJsZSBieSBkZWZpbmluZyBpdHMgY29udGVudHMgYW5kIGhvdyBpdCdzIHN0cnVjdHVyZWQgKi8KIHZvaWQKIGluaXRpYWxpemVfdGFibGVfaHJTV0luc3RhbGxlZFRhYmxlKHZvaWQpCkBAIC00OCw3ICs1OSw2IEBACiAgICAgbmV0c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciA9IE5VTEw7CiAgICAgbmV0c25tcF9jb250YWluZXIgKmNvbnRhaW5lciA9IE5VTEw7CiAgICAgbmV0c25tcF9jYWNoZSAqY2FjaGUgPSBOVUxMOwotICAgIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm8gPSBOVUxMOwogCiAgICAgREVCVUdNU0dUTCgoImhyU1dJbnN0YWxsZWQiLCAiaW5pdGlhbGl6ZVxuIikpOwogCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5oIGIvYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuaAppbmRleCAyYTFkYTIzLi40OGYxN2U4IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5oCisrKyBiL2FnZW50L21pYmdyb3VwL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmgKQEAgLTExLDYgKzExLDcgQEAKICAqIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyAKICAqLwogdm9pZCAgICAgICAgICAgIGluaXRfaHJTV0luc3RhbGxlZFRhYmxlKHZvaWQpOwordm9pZCAgICAgICAgICAgIHNodXRkb3duX2hyU1dJbnN0YWxsZWRUYWJsZSh2b2lkKTsKIHZvaWQgICAgICAgICAgICBpbml0aWFsaXplX3RhYmxlX2hyU1dJbnN0YWxsZWRUYWJsZSh2b2lkKTsKIE5ldHNubXBfTm9kZV9IYW5kbGVyIGhyU1dJbnN0YWxsZWRUYWJsZV9oYW5kbGVyOwogCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5jCmluZGV4IDBiZjQ3MWIuLjQzYjQ0ZDEgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5jCkBAIC0zMiw4ICszMiwxNSBAQAogICAgIGluaXRpYWxpemVfdGFibGVfaHJTV1J1blBlcmZUYWJsZSgpOwogfQogCit2b2lkCitzaHV0ZG93bl9oclNXUnVuUGVyZlRhYmxlKHZvaWQpCit7CisgICAgc2h1dGRvd25fdGFibGVfaHJTV1J1blBlcmZUYWJsZSgpOworfQorCiBleHRlcm4gb2lkICAgICAgaHJTV1J1blRhYmxlX29pZFtdOwogZXh0ZXJuIHNpemVfdCAgIGhyU1dSdW5UYWJsZV9vaWRfbGVuOworc3RhdGljIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm87CiAKIC8qKiBJbml0aWFsaXplIHRoZSBoclNXUnVuUGVyZlRhYmxlIHRhYmxlIGJ5IGRlZmluaW5nIGl0cyBjb250ZW50cyBhbmQgaG93IGl0J3Mgc3RydWN0dXJlZCAqLwogdm9pZApAQCAtNDUsNyArNTIsNiBAQAogICAgICAgICBPSURfTEVOR1RIKGhyU1dSdW5QZXJmVGFibGVfb2lkKTsKICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWc7CiAgICAgbmV0c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciA9IE5VTEw7Ci0gICAgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqdGFibGVfaW5mbyA9IE5VTEw7CiAKICAgICByZWcgPQogICAgICAgICBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigiaHJTV1J1blBlcmZUYWJsZSIsCkBAIC0xMjgsNiArMTM0LDE1IEBACiAgICAgICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZShyZWcpOwogfQogCit2b2lkCitzaHV0ZG93bl90YWJsZV9oclNXUnVuUGVyZlRhYmxlKHZvaWQpCit7CisgICAgaWYgKHRhYmxlX2luZm8pIHsKKwluZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX2ZyZWUodGFibGVfaW5mbyk7CisJdGFibGVfaW5mbyA9IE5VTEw7CisgICAgfQorfQorCiAvKiogaGFuZGxlcyByZXF1ZXN0cyBmb3IgdGhlIGhyU1dSdW5QZXJmVGFibGUgdGFibGUgKi8KIGludAogaHJTV1J1blBlcmZUYWJsZV9oYW5kbGVyKG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIsCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuaCBiL2FnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5oCmluZGV4IGI3OTM2MjcuLjQ1M2ZkYTMgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5oCisrKyBiL2FnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5oCkBAIC0yMSw3ICsyMSw5IEBACiAgKiBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgCiAgKi8KIHZvaWQgICAgICAgICAgICBpbml0X2hyU1dSdW5QZXJmVGFibGUodm9pZCk7Cit2b2lkICAgICAgICAgICAgc2h1dGRvd25faHJTV1J1blBlcmZUYWJsZSh2b2lkKTsKIHZvaWQgICAgICAgICAgICBpbml0aWFsaXplX3RhYmxlX2hyU1dSdW5QZXJmVGFibGUodm9pZCk7Cit2b2lkICAgICAgICAgICAgc2h1dGRvd25fdGFibGVfaHJTV1J1blBlcmZUYWJsZSh2b2lkKTsKIE5ldHNubXBfTm9kZV9IYW5kbGVyIGhyU1dSdW5QZXJmVGFibGVfaGFuZGxlcjsKIAogLyoKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmMgYi9hZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5jCmluZGV4IDlkOTI4NDEuLjAzYWQyNTYgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuYwpAQCAtMjYsNiArMjYsOCBAQAogCiAjZGVmaW5lIE1ZVEFCTEUgImhyU1dSdW5UYWJsZSIKIAorc3RhdGljIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm87CisKIC8qKiBJbml0aWFsaXplcyB0aGUgaHJTV1J1blRhYmxlIG1vZHVsZSAqLwogdm9pZAogaW5pdF9oclNXUnVuVGFibGUodm9pZCkKQEAgLTM2LDYgKzM4LDE1IEBACiAgICAgaW5pdGlhbGl6ZV90YWJsZV9oclNXUnVuVGFibGUoKTsKIH0KIAordm9pZAorc2h1dGRvd25faHJTV1J1blRhYmxlKHZvaWQpCit7CisgICAgaWYgKHRhYmxlX2luZm8pIHsKKwluZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX2ZyZWUodGFibGVfaW5mbyk7CisJdGFibGVfaW5mbyA9IE5VTEw7CisgICAgfQorfQorCiBvaWQgICAgICBoclNXUnVuVGFibGVfb2lkW10gPSB7IDEsIDMsIDYsIDEsIDIsIDEsIDI1LCA0LCAyIH07CiBzaXplX3QgICBoclNXUnVuVGFibGVfb2lkX2xlbiA9IE9JRF9MRU5HVEgoaHJTV1J1blRhYmxlX29pZCk7CiAKQEAgLTQ1LDEzICs1NiwxNSBAQAogewogICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKnJlZzsKICAgICBuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyID0gTlVMTDsKLSAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICp0YWJsZV9pbmZvID0gTlVMTDsKLQorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICNpZmRlZiBORVRTTk1QX0lOQ0xVREVfSFJTV1JVTl9XUklURV9TVVBQT1JUCiAjICBkZWZpbmUgU1dSVU5fQUNDRVNTX0xFVkVMIEhBTkRMRVJfQ0FOX1JXUklURQogI2Vsc2UKICMgIGRlZmluZSBTV1JVTl9BQ0NFU1NfTEVWRUwgSEFORExFUl9DQU5fUk9OTFkKICNlbmRpZgorI2Vsc2UgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLyAKKyMgIGRlZmluZSBTV1JVTl9BQ0NFU1NfTEVWRUwgSEFORExFUl9DQU5fUk9OTFkKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgcmVnID0KICAgICAgICAgbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oTVlUQUJMRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJTV1J1blRhYmxlX2hhbmRsZXIsCkBAIC0yMTcsNiArMjMwLDcgQEAKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICNpZmRlZiBORVRTTk1QX0lOQ0xVREVfSFJTV1JVTl9XUklURV9TVVBQT1JUCiAgICAgICAgIC8qCiAgICAgICAgICAqIFdyaXRlLXN1cHBvcnQKQEAgLTMyOSw2ICszNDMsNyBAQAogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogI2VuZGlmIC8qIE5FVFNOTVBfSU5DTFVERV9IUlNXUlVOX1dSSVRFX1NVUFBPUlQgKi8KKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgfQogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuaCBiL2FnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmgKaW5kZXggNmNhNDk4OS4uZGU4MGZjMCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuaAorKysgYi9hZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5oCkBAIC0yMiw2ICsyMiw3IEBACiAgKiBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgCiAgKi8KIHZvaWQgICAgICAgICAgICBpbml0X2hyU1dSdW5UYWJsZSh2b2lkKTsKK3ZvaWQgICAgICAgICAgICBzaHV0ZG93bl9oclNXUnVuVGFibGUodm9pZCk7CiB2b2lkICAgICAgICAgICAgaW5pdGlhbGl6ZV90YWJsZV9oclNXUnVuVGFibGUodm9pZCk7CiBOZXRzbm1wX05vZGVfSGFuZGxlciBoclNXUnVuVGFibGVfaGFuZGxlcjsKIApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMgYi9hZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYwppbmRleCA2NzkyNjRiLi5jNGFjNTJmIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYworKysgYi9hZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYwpAQCAtMTMzLDggKzEzMywxMCBAQAogdm9pZCAgICAgICAgICAgIEluaXRfSFJfRGlzayh2b2lkKTsKIGludCAgICAgICAgICAgICBHZXRfTmV4dF9IUl9EaXNrKHZvaWQpOwogaW50ICAgICAgICAgICAgIEdldF9OZXh0X0hSX0Rpc2tfUGFydGl0aW9uKGNoYXIgKiwgc2l6ZV90LCBpbnQpOworI2lmICEoZGVmaW5lZChhaXg0KSB8fCBkZWZpbmVkKGFpeDUpIHx8IGRlZmluZWQoYWl4NikgfHwgZGVmaW5lZChhaXg3KSkKIHN0YXRpYyB2b2lkICAgICBBZGRfSFJfRGlza19lbnRyeShjb25zdCBjaGFyICosIGludCwgaW50LCBpbnQsIGludCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICosIGludCwgaW50KTsKKyNlbmRpZgogc3RhdGljIHZvaWQgICAgIFNhdmVfSFJfRGlza19HZW5lcmFsKHZvaWQpOwogc3RhdGljIHZvaWQgICAgIFNhdmVfSFJfRGlza19TcGVjaWZpYyh2b2lkKTsKIHN0YXRpYyBpbnQgICAgICBRdWVyeV9EaXNrKGludCwgY29uc3QgY2hhciAqKTsKQEAgLTE1MCw3ICsxNTIsOSBAQAogc3RhdGljIGludCAgICAgIEhSRF9pbmRleDsKIHN0YXRpYyBjaGFyICAgICBIUkRfc2F2ZWRNb2RlbFs0MF07CiBzdGF0aWMgbG9uZyAgICAgSFJEX3NhdmVkQ2FwYWNpdHkgPSAxMDQ0OworI2lmIGRlZmluZWQoRElPQ19ERVNDUklCRSkgfHwgZGVmaW5lZChES0lPQ0lORk8pIHx8IGRlZmluZWQoSEFWRV9MSU5VWF9IRFJFR19IKQogc3RhdGljIGludCAgICAgIEhSRF9zYXZlZEZsYWdzOworI2VuZGlmCiBzdGF0aWMgdGltZV90ICAgSFJEX2hpc3RvcnlbSFJERVZfVFlQRV9NQVNLICsgMV07CiAKICNpZmRlZiBESU9DX0RFU0NSSUJFCkBAIC02NjgsNiArNjcyLDcgQEAKIHN0YXRpYyBIUkRfZGlza190IGRpc2tfZGV2aWNlc1tNQVhfTlVNQkVSX0RJU0tfVFlQRVNdOwogc3RhdGljIGludCAgICAgIEhSX251bWJlcl9kaXNrX3R5cGVzID0gMDsKIAorI2lmICEoZGVmaW5lZChhaXg0KSB8fCBkZWZpbmVkKGFpeDUpIHx8IGRlZmluZWQoYWl4NikgfHwgZGVmaW5lZChhaXg3KSkKIHN0YXRpYyB2b2lkCiBBZGRfSFJfRGlza19lbnRyeShjb25zdCBjaGFyICpkZXZwYXJ0X3N0cmluZywKICAgICAgICAgICAgICAgICAgIGludCBmaXJzdF9jdGwsCkBAIC03MjQsNiArNzI5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgZGV2cGFydF9zdHJpbmcsIG5icl9jcmVhdGVkKSk7CiAjZW5kaWYKIH0KKyNlbmRpZgogCiB2b2lkCiBJbml0X0hSX0Rpc2sodm9pZCkKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jIGIvYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKaW5kZXggNjBhMTYyOS4uYjIzZDMyMiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKQEAgLTE0LDYgKzE0LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvbWVtb3J5Lmg+CkBAIC02Myw2ICs2NCwxMCBAQAogI2luY2x1ZGUgPHN5cy9zdGF0ZnMuaD4KICNlbmRpZgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShzZV9maW5kX2ZyZWVfdmFsdWVfaW5fc2xpc3QpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShkYXRlX25fdGltZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGN0aW1lX3RvX3RpbWV0KQorCiAjaWYgZGVmaW5lZChic2RpNCkgfHwgZGVmaW5lZChmcmVlYnNkMykgfHwgZGVmaW5lZChmcmVlYnNkNCkgfHwgZGVmaW5lZChmcmVlYnNkNSkgfHwgZGVmaW5lZChkYXJ3aW4pCiAjaWYgSEFWRV9HRVRGU1NUQVQgJiYgZGVmaW5lZChNRlNOQU1FTEVOKQogI2RlZmluZSBNT1VOVF9ORlMJIm5mcyIKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jIGIvYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMKaW5kZXggNDhkNzQ3ZC4uNmNjZTU4YyAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMKQEAgLTQsNiArNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oPgpAQCAtMjIsNiArMjMsOSBAQAogI2luY2x1ZGUgIm1pYklJL2ludGVyZmFjZXMuaCIKICNpbmNsdWRlICJocl9uZXR3b3JrLmgiCiAKKyNpZiAhZGVmaW5lZCggc29sYXJpczIgKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaW50ZXJmYWNlX2xlZ2FjeSkKKyNlbmRpZiAvKiAhc29sYXJpczIgKi8KIAogICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqCiAJICoKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMgYi9hZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jCmluZGV4IGFiZTc2OTIuLjNiOWFiZDYgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYwpAQCAtNDcsNiArNDcsMTAgQEAKICNpZmRlZiBORVRTTk1QX0NBTl9HRVRfRElTS19MQUJFTAogc3RhdGljIGNoYXIgICAgIEhSUF9zYXZlZExhYmVsWzEwMjRdOwogI2VuZGlmCisjaWZkZWYgZGFyd2luCitleHRlcm4gaW50CitHZXRfSFJfRGlza19MYWJlbChjaGFyICpzdHJpbmcsIHNpemVfdCBzdHJfbGVuLCBjb25zdCBjaGFyICpkZXZmdWxsKTsKKyNlbmRpZgogCiBzdGF0aWMgaW50ICAgICAgSFJQX0Rpc2tJbmRleDsKIApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyBiL2FnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMKaW5kZXggYzAzYWU0NC4uMjU1ODJiZCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYworKysgYi9hZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jCkBAIC00LDYgKzQsNyBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaWYgSEFWRV9TWVNfUEFSQU1fSAogI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgpAQCAtNzEsNiArNzIsOCBAQAogCiAjZGVmaW5lIEhSU1dJTlNUX01PTk9UT05JQ0FMTFlfSU5DUkVBU0lORwogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShkYXRlX25fdGltZSkKKwogICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqCiAJICoKIAkgKiAgS2VybmVsICYgaW50ZXJmYWNlIGluZm9ybWF0aW9uLApAQCAtNTEyLDkgKzUxNSwxMiBAQAogICAgICAgICAgICAgICAgIHNucHJpbnRmKHN0cmluZywgc2l6ZW9mKHN0cmluZyksICIlcy8lcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpLT5zd2lfZGlyZWN0b3J5LCBzd2ktPnN3aV9uYW1lKTsKICAgICAgICAgICAgICAgICBzdHJpbmdbIHNpemVvZihzdHJpbmcpLTEgXSA9IDA7Ci0gICAgICAgICAgICAgICAgc3RhdChzdHJpbmcsICZzdGF0X2J1Zik7Ci0gICAgICAgICAgICAgICAgcmV0ID0gZGF0ZV9uX3RpbWUoJnN0YXRfYnVmLnN0X210aW1lLCB2YXJfbGVuKTsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdChzdHJpbmcsICZzdGF0X2J1ZikgPj0gMCkKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gZGF0ZV9uX3RpbWUoJnN0YXRfYnVmLnN0X210aW1lLCB2YXJfbGVuKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyOwogICAgICAgICAgICAgfSBlbHNlIHsKK2VycjoKICNpZiBORVRTTk1QX05PX0RVTU1ZX1ZBTFVFUwogICAgICAgICAgICAgICAgIHJldCA9IE5VTEw7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jIGIvYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jCmluZGV4IGRkYTFkM2YuLmY0MGU5OTcgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYworKysgYi9hZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMKQEAgLTUyNCw2ICs1MjQsMTIgQEAKICAgICBpZiAoKGNwID0gZ2V0X3Byb2NfZmlsZV9saW5lKCIvcHJvYy8lZC9zdGF0IiwgcGlkLCBidWYsIGJ1ZmxlbikpID09IE5VTEwgKQogCXJldHVybiBOVUxMOwogICAgIGZvciAoaSA9IDA7ICpjcCAmJiBpIDwgc2tpcDsgKytpKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIFRoZSBzZWNvbmQgZmllbGQgaXMgJ2NvbW0nIGFuZCBjYW4gY29udGFpbiBzcGFjZXMuIEhlbmNlIHNraXAgdG8KKyAgICAgICAgICogdGhlIGNsb3NpbmcgcGFyZW50aGVzaXMuCisgICAgICAgICAqLworICAgICAgICBpZiAoaSA9PSAxICYmICpjcCA9PSAnKCcpCisgICAgICAgICAgICBjcCA9IHN0cnJjaHIoY3AsICcpJyk7CiAJY3AgPSBza2lwX3RvX25leHRfZmllbGQoY3ApOwogICAgIH0KICAgICByZXR1cm4gY3A7CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jIGIvYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYwppbmRleCA4OGIwZmJiLi5kOTljYzdkIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jCisrKyBiL2FnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMKQEAgLTE1LDYgKzE1LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpZiBIQVZFX1NUUklOR19ICiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjZWxzZQpAQCAtNzcsNiArNzgsOCBAQAogI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KICNlbmRpZgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShkYXRlX25fdGltZSkKKwogI2lmICFkZWZpbmVkKFVUTVBfRklMRSkgJiYgZGVmaW5lZChfUEFUSF9VVE1QKQogI2RlZmluZSBVVE1QX0ZJTEUgX1BBVEhfVVRNUAogI2VuZGlmCkBAIC05OCwxMSArMTAxLDE2IEBACiAjaWYgZGVmaW5lZChzb2xhcmlzMikKIHN0YXRpYyBzdHJ1Y3Qgb3BlbnByb21pbyAqIG9wX21hbGxvYyhzaXplX3Qgc2l6ZSk7CiBzdGF0aWMgdm9pZCBvcF9mcmVlKHN0cnVjdCBvcGVucHJvbWlvICpvcCk7CisKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiBzdGF0aWMgaW50IHNldF9zb2xhcmlzX2Jvb3Rjb21tYW5kX3BhcmFtZXRlcihpbnQgYWN0aW9uLCB1X2NoYXIgKiB2YXJfdmFsLCB1X2NoYXIgdmFyX3ZhbF90eXBlLCBzaXplX3QgdmFyX3ZhbF9sZW4sIHVfY2hhciAqIHN0YXRQLCBvaWQgKiBuYW1lLCBzaXplX3QgbmFtZV9sZW4pOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKwogc3RhdGljIGludCBzZXRfc29sYXJpc19lZXByb21fcGFyYW1ldGVyKGNvbnN0IGNoYXIgKmtleSwgY29uc3QgY2hhciAqdmFsdWUsIHNpemVfdCB2YWx1ZV9sZW4pOwogc3RhdGljIGludCBnZXRfc29sYXJpc19lZXByb21fcGFyYW1ldGVyKGNvbnN0IGNoYXIgKnBhcmFtZXRlciwgY2hhciAqb3V0cHV0KTsKIHN0YXRpYyBsb25nICAgICBnZXRfbWF4X3NvbGFyaXNfcHJvY2Vzc2VzKHZvaWQpOwogI2VuZGlmCisKIHN0YXRpYyBpbnQgICAgICBnZXRfbG9hZF9kZXYodm9pZCk7CiBzdGF0aWMgaW50ICAgICAgY291bnRfdXNlcnModm9pZCk7CiBleHRlcm4gaW50ICAgICAgY291bnRfcHJvY2Vzc2VzKHZvaWQpOwpAQCAtMTIzLDYgKzEzMSw3IEBACiAjZGVmaW5lCUhSU1lTX01BWFBST0NTCQk3CiAKICNpZiBkZWZpbmVkKHNvbGFyaXMyKQorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKIHN0cnVjdCB2YXJpYWJsZTIgaHJzeXN0ZW1fdmFyaWFibGVzW10gPSB7CiAgICAge0hSU1lTX1VQVElNRSwgQVNOX1RJTUVUSUNLUywgTkVUU05NUF9PTERBUElfUk9OTFksCiAgICAgIHZhcl9ocnN5cywgMSwgezF9fSwKQEAgLTEzOSw2ICsxNDgsMjQgQEAKICAgICB7SFJTWVNfTUFYUFJPQ1MsIEFTTl9JTlRFR0VSLCBORVRTTk1QX09MREFQSV9ST05MWSwKICAgICAgdmFyX2hyc3lzLCAxLCB7N319CiB9OworI2Vsc2UgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworc3RydWN0IHZhcmlhYmxlMiBocnN5c3RlbV92YXJpYWJsZXNbXSA9IHsKKyAgICB7SFJTWVNfVVBUSU1FLCBBU05fVElNRVRJQ0tTLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX2hyc3lzLCAxLCB7MX19LAorICAgIHtIUlNZU19EQVRFLCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9ST05MWSwKKyAgICAgdmFyX2hyc3lzLCAxLCB7Mn19LAorICAgIHtIUlNZU19MT0FEX0RFViwgQVNOX0lOVEVHRVIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfaHJzeXMsIDEsIHszfX0sCisgICAge0hSU1lTX0xPQURfUEFSQU0sIEFTTl9PQ1RFVF9TVFIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfaHJzeXMsIDEsIHs0fX0sCisgICAge0hSU1lTX1VTRVJTLCBBU05fR0FVR0UsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfaHJzeXMsIDEsIHs1fX0sCisgICAge0hSU1lTX1BST0NTLCBBU05fR0FVR0UsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfaHJzeXMsIDEsIHs2fX0sCisgICAge0hSU1lTX01BWFBST0NTLCBBU05fSU5URUdFUiwgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9ocnN5cywgMSwgezd9fQorfTsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAjZWxzZQogc3RydWN0IHZhcmlhYmxlMiBocnN5c3RlbV92YXJpYWJsZXNbXSA9IHsKICAgICB7SFJTWVNfVVBUSU1FLCBBU05fVElNRVRJQ0tTLCBORVRTTk1QX09MREFQSV9ST05MWSwKQEAgLTE1Nyw2ICsxODQsNyBAQAogICAgICB2YXJfaHJzeXMsIDEsIHs3fX0KIH07CiAjZW5kaWYKKwogb2lkICAgICAgICAgICAgIGhyc3lzdGVtX3ZhcmlhYmxlc19vaWRbXSA9IHsgMSwgMywgNiwgMSwgMiwgMSwgMjUsIDEgfTsKIAogCkBAIC0yNTAsNyArMjc4LDkgQEAKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgJiBsb25nX3JldHVybjsKICAgICBjYXNlIEhSU1lTX0RBVEU6CiAjaWYgZGVmaW5lZChIQVZFX01LVElNRSkgJiYgZGVmaW5lZChIQVZFX1NUSU1FKQorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgCiAgICAgICAgICp3cml0ZV9tZXRob2Q9bnNfc2V0X3RpbWU7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogI2VuZGlmCiAgICAgICAgIHRpbWUoJm5vdyk7CiAgICAgICAgIHJldHVybiAodV9jaGFyICopIGRhdGVfbl90aW1lKCZub3csIHZhcl9sZW4pOwpAQCAtMjY2LDcgKzI5Niw5IEBACiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQogI2VsaWYgZGVmaW5lZChzb2xhcmlzMikKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgICp3cml0ZV9tZXRob2Q9c2V0X3NvbGFyaXNfYm9vdGNvbW1hbmRfcGFyYW1ldGVyOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgaWYgKCBnZXRfc29sYXJpc19lZXByb21fcGFyYW1ldGVyKCJib290LWNvbW1hbmQiLGJvb3RwYXJhbSkgKSB7CiAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCJ1bmFibGUgdG8gbG9va3VwIGJvb3QtY29tbWFuZCBmcm9tIGVlcHJvbVxuIik7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTM2NSw2ICszOTcsNyBAQAogICAgIGZyZWUob3ApOwogfQogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogc3RhdGljIGludAogc2V0X3NvbGFyaXNfYm9vdGNvbW1hbmRfcGFyYW1ldGVyKGludCBhY3Rpb24sCiAgICAgICAgICAgICB1X2NoYXIgKiB2YXJfdmFsLApAQCAtNDI5LDYgKzQ2Miw3IEBACiAgICAgfQogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQorI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogc3RhdGljIGludCBzZXRfc29sYXJpc19lZXByb21fcGFyYW1ldGVyKGNvbnN0IGNoYXIgKmtleSwgY29uc3QgY2hhciAqdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHZhcl92YWxfbGVuKSB7CkBAIC01MDgsNiArNTQyLDcgQEAKICNlbmRpZgogCiAjaWYgZGVmaW5lZChIQVZFX01LVElNRSkgJiYgZGVmaW5lZChIQVZFX1NUSU1FKQorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKIGludAogbnNfc2V0X3RpbWUoaW50IGFjdGlvbiwKICAgICAgICAgICAgIHVfY2hhciAqIHZhcl92YWwsCkBAIC02MDEsNiArNjM2LDcgQEAKICAgICB9CiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiB9CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogI2VuZGlmCiAKICAgICAgICAgICAgICAgICAvKgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uaCBiL2FnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmgKaW5kZXggNWUxMmMwZC4uZmVmZmE2MCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uaAorKysgYi9hZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oCkBAIC05LDcgKzksOSBAQAogZXh0ZXJuIEZpbmRWYXJNZXRob2QgdmFyX2hyc3lzOwogCiAjaWYgZGVmaW5lZChIQVZFX01LVElNRSkgJiYgZGVmaW5lZChIQVZFX1NUSU1FKQorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKIGludCBuc19zZXRfdGltZShpbnQgYWN0aW9uLCB1X2NoYXIgKiB2YXJfdmFsLCB1X2NoYXIgdmFyX3ZhbF90eXBlLCBzaXplX3QgdmFyX3ZhbF9sZW4sIHVfY2hhciAqIHN0YXRQLCBvaWQgKiBuYW1lLCBzaXplX3QgbmFtZV9sZW4pOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICNlbmRpZgogCiAjZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIF9NSUJHUk9VUF9IUlNZU1RFTV9IICovCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMgYi9hZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMKaW5kZXggZWMzNDNlZC4uNGFhYjZhMCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jCisrKyBiL2FnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYwpAQCAtMTQsNiArMTQsNyBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9tZW1vcnkuaD4KQEAgLTYwLDYgKzYxLDggQEAKICNpbmNsdWRlIDxzeXMvc3RhdGZzLmg+CiAjZW5kaWYKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoZGF0ZV9uX3RpbWUpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjdGltZV90b190aW1ldCkKIAogI2RlZmluZSBIUkZTX01PTk9UT05JQ0FMTFlfSU5DUkVBU0lORwogCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9ob3N0L2hyaF9zdG9yYWdlLmMgYi9hZ2VudC9taWJncm91cC9ob3N0L2hyaF9zdG9yYWdlLmMKaW5kZXggYzQ1OGQ0ZC4uY2EyZjg1NCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL2hvc3QvaHJoX3N0b3JhZ2UuYwpAQCAtMTMwLDYgKzEzMCwxMCBAQAogCQkJICAgICAgIE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsCiAJCQkgICAgICAgTkVUU05NUF9EU19BR0VOVF9TS0lQTkZTSU5IT1NUUkVTT1VSQ0VTKTsKIAorICAgIG5ldHNubXBfZHNfcmVnaXN0ZXJfY29uZmlnKEFTTl9CT09MRUFOLCBhcHBuYW1lLCAicmVhbFN0b3JhZ2VVbml0cyIsCisgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19BUFBMSUNBVElPTl9JRCwKKyAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0FHRU5UX1JFQUxTVE9SQUdFVU5JVFMpOworCiAgICAgc25tcGRfcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoInN0b3JhZ2VVc2VORlMiLCBwYXJzZV9zdG9yYWdlX2NvbmZpZywgTlVMTCwKIAkiMSB8IDJcdFx0KDEgPSBlbmFibGUsIDIgPSBkaXNhYmxlKSIpOwogfQpAQCAtNDE0LDI3ICs0MTgsMzkgQEAKICAgICAgICAgICAgIHJldHVybiAodV9jaGFyICopIG1lbS0+ZGVzY3I7CiAgICAgICAgIH0KICAgICBjYXNlIEhSU1RPUkVfVU5JVFM6Ci0gICAgICAgIGlmIChzdG9yZV9pZHggPiBORVRTTk1QX01FTV9UWVBFX01BWCkKLSAgICAgICAgICAgIGxvbmdfcmV0dXJuID0gSFJGU19lbnRyeS0+dW5pdHM7Ci0gICAgICAgIGVsc2UgeworICAgICAgICBpZiAoc3RvcmVfaWR4ID4gTkVUU05NUF9NRU1fVFlQRV9NQVgpIHsKKyAgICAgICAgICAgIGlmIChuZXRzbm1wX2RzX2dldF9ib29sZWFuKE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsCisgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfQUdFTlRfUkVBTFNUT1JBR0VVTklUUykpCisgICAgICAgICAgICAgICAgbG9uZ19yZXR1cm4gPSBIUkZTX2VudHJ5LT51bml0cyAmIDB4ZmZmZmZmZmY7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbG9uZ19yZXR1cm4gPSBIUkZTX2VudHJ5LT51bml0c18zMjsKKyAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmICggIW1lbSB8fCBtZW0tPnVuaXRzID09IC0xICkKICAgICAgICAgICAgICAgICBnb3RvIHRyeV9uZXh0OwogICAgICAgICAgICAgbG9uZ19yZXR1cm4gPSBtZW0tPnVuaXRzOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiAodV9jaGFyICopICYgbG9uZ19yZXR1cm47CiAgICAgY2FzZSBIUlNUT1JFX1NJWkU6Ci0gICAgICAgIGlmIChzdG9yZV9pZHggPiBORVRTTk1QX01FTV9UWVBFX01BWCkKLSAgICAgICAgICAgIGxvbmdfcmV0dXJuID0gSFJGU19lbnRyeS0+c2l6ZTsKLSAgICAgICAgZWxzZSB7CisgICAgICAgIGlmIChzdG9yZV9pZHggPiBORVRTTk1QX01FTV9UWVBFX01BWCkgeworICAgICAgICAgICAgaWYgKG5ldHNubXBfZHNfZ2V0X2Jvb2xlYW4oTkVUU05NUF9EU19BUFBMSUNBVElPTl9JRCwKKyAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19BR0VOVF9SRUFMU1RPUkFHRVVOSVRTKSkKKyAgICAgICAgICAgICAgICBsb25nX3JldHVybiA9IEhSRlNfZW50cnktPnNpemUgJiAweGZmZmZmZmZmOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxvbmdfcmV0dXJuID0gSFJGU19lbnRyeS0+c2l6ZV8zMjsKKyAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmICggIW1lbSB8fCBtZW0tPnNpemUgPT0gLTEgKQogICAgICAgICAgICAgICAgIGdvdG8gdHJ5X25leHQ7CiAgICAgICAgICAgICBsb25nX3JldHVybiA9IG1lbS0+c2l6ZTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSAmIGxvbmdfcmV0dXJuOwogICAgIGNhc2UgSFJTVE9SRV9VU0VEOgotICAgICAgICBpZiAoc3RvcmVfaWR4ID4gTkVUU05NUF9NRU1fVFlQRV9NQVgpCi0gICAgICAgICAgICBsb25nX3JldHVybiA9IEhSRlNfZW50cnktPnVzZWQ7Ci0gICAgICAgIGVsc2UgeworICAgICAgICBpZiAoc3RvcmVfaWR4ID4gTkVUU05NUF9NRU1fVFlQRV9NQVgpIHsKKyAgICAgICAgICAgIGlmIChuZXRzbm1wX2RzX2dldF9ib29sZWFuKE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsCisgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfQUdFTlRfUkVBTFNUT1JBR0VVTklUUykpCisgICAgICAgICAgICAgICAgbG9uZ19yZXR1cm4gPSBIUkZTX2VudHJ5LT51c2VkICYgMHhmZmZmZmZmZjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsb25nX3JldHVybiA9IEhSRlNfZW50cnktPnVzZWRfMzI7CisgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAoICFtZW0gfHwgbWVtLT5zaXplID09IC0xIHx8IG1lbS0+ZnJlZSA9PSAtMSApCiAgICAgICAgICAgICAgICAgZ290byB0cnlfbmV4dDsKICAgICAgICAgICAgIGxvbmdfcmV0dXJuID0gbWVtLT5zaXplIC0gbWVtLT5mcmVlOwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jIGIvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jCmluZGV4IDVmNWM3ZmYuLjI2ZTMxZmMgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYworKysgYi9hZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMKQEAgLTQsMTUgKzQsMjUgQEAKICAqICRJZCQKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KLSNpbmNsdWRlICJtaWJJSS9taWJJSV9jb21tb24uaCIKLSNpbmNsdWRlICJpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oIgotI2luY2x1ZGUgImlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCIKIAogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaD4KICNpbmNsdWRlIDxuZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaD4KIAorI2luY2x1ZGUgIm1pYklJL21pYklJX2NvbW1vbi5oIgorI2luY2x1ZGUgImlmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCIKKyNpbmNsdWRlICJpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgiCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpbnRlcmZhY2VfYWxsLCBsaWJuZXRzbm1wbWlicykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpbnRlcmZhY2UsIGludGVyZmFjZV9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaW50ZXJmYWNlX2FjY2Vzc19lbnRyeV9zZXRfYWRtaW5fc3RhdHVzLCBpbnRlcmZhY2VfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGludGVyZmFjZV9sZWdhY3ksIGludGVyZmFjZV9hbGwpCisKKyNpZmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVRVUlSRV9JTlRFUkZBQ0VfQUNDRVNTX0VOVFJZX1NFVF9BRE1JTl9TVEFUVVMKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGludGVyZmFjZV9hcmNoX3NldF9hZG1pbl9zdGF0dXMpCisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFUVVJUkVfSU5URVJGQUNFX0FDQ0VTU19FTlRSWV9TRVRfQURNSU5fU1RBVFVTICovCiAKIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKgpAQCAtMzM3LDYgKzM0Nyw3IEBACiAgICAgZnJlZShlbnRyeSk7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JTlRFUkZBQ0VfTEVHQUNZCiAvKgogICogQmxlY2ggLSBiYWNrd2FyZHMgY29tcGF0aWJsZSBtaWJJSS9pbnRlcmZhY2VzIHN0eWxlIGludGVyZmFjZQogICogZnVuY3Rpb25zLCBzbyB3ZSBkb24ndCBoYXZlIHRvIHVwZGF0ZSBvbGRlciBtb2R1bGVzIHRvIHVzZQpAQCAtMzQ2LDMzICszNTcsMzMgQEAKICAgICAhIGRlZmluZWQoIE5FVFNOTVBfTk9fQkFDS1dBUkRTX0NPTVBBVEFCSUxJVFkgKQogCiBzdGF0aWMgbmV0c25tcF9pdGVyYXRvciAqaXQgPSBOVUxMOwotc3RhdGljIG5ldHNubXBfY29udGFpbmVyICpjID0gTlVMTDsKLXN0YXRpYyBuZXRzbm1wX2ludGVyZmFjZV9lbnRyeSAqZSA9IE5VTEw7CitzdGF0aWMgaWZUYWJsZV9yb3dyZXFfY3R4ICpyb3cgPSBOVUxMOwogCiAvKioKLSAqIAorICogU2V0dXAgYW4gaXRlcmF0b3IgZm9yIHNjYW5uaW5nIHRoZSBpbnRlcmZhY2VzIHVzaW5nIHRoZSBjYWNoZWQgZW50cnkKKyAqIGZyb20gaWYtbWliL2lmVGFibGUuCiAgKi8KIHZvaWQKIEludGVyZmFjZV9TY2FuX0luaXQodm9pZCkKIHsKLSAgICAvKgotICAgICAqIGlmVGFibGUgY29udGFpbmVyIHNob3VsZG4ndCBjaGFuZ2UsIHNvIHdlIHNob3VsZG4nIGhhdmUgdG8KLSAgICAgKiByZS1mZXRjaCBpdCBldmVyeSB0aW1lLgotICAgICAqLwotICAgIGlmIChOVUxMICE9IGMpCi0gICAgICAgIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9jb250YWluZXJfZnJlZShjLCAwKTsKLQotICAgIGMgPSBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfY29udGFpbmVyX2xvYWQoTlVMTCwgMCk7CisgICAgbmV0c25tcF9jb250YWluZXIgKmNvbnQgPSBOVUxMOworICAgIG5ldHNubXBfY2FjaGUgKmNhY2hlICAgID0gTlVMTDsgCiAgICAgCi0gICAgaWYgKE5VTEwgIT0gYykgeworICAgIGNhY2hlID0gbmV0c25tcF9jYWNoZV9maW5kX2J5X29pZChpZlRhYmxlX29pZCwgaWZUYWJsZV9vaWRfc2l6ZSk7CisgICAgaWYgKE5VTEwgIT0gY2FjaGUpIHsKKyAgICAgICAgbmV0c25tcF9jYWNoZV9jaGVja19hbmRfcmVsb2FkKGNhY2hlKTsKKyAgICAgICAgY29udCA9IChuZXRzbm1wX2NvbnRhaW5lciopIGNhY2hlLT5tYWdpYzsKKyAgICB9CisgICAgCisgICAgaWYgKE5VTEwgIT0gY29udCkgewogICAgICAgICBpZiAoTlVMTCAhPSBpdCkKICAgICAgICAgICAgIElURVJBVE9SX1JFTEVBU0UoaXQpOwogICAgIAotICAgICAgICBpdCA9IENPTlRBSU5FUl9JVEVSQVRPUihjKTsKKyAgICAgICAgaXQgPSBDT05UQUlORVJfSVRFUkFUT1IoY29udCk7CiAgICAgfQogICAgCiAgICAgaWYgKE5VTEwgIT0gaXQpCi0gICAgICAgIGUgPSAobmV0c25tcF9pbnRlcmZhY2VfZW50cnkqKUlURVJBVE9SX0ZJUlNUKGl0KTsKKyAgICAgICAgcm93ID0gKGlmVGFibGVfcm93cmVxX2N0eCopSVRFUkFUT1JfRklSU1QoaXQpOwogfQogCiBpbnQKQEAgLTM5NCw5ICs0MDUsMTIgQEAKIEludGVyZmFjZV9TY2FuX05leHRJbnQoaW50ICppbmRleCwgY2hhciAqbmFtZSwgbmV0c25tcF9pbnRlcmZhY2VfZW50cnkgKiplbnRyeSwKICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZGMpCiB7Ci0gICAgaWYgKE5VTEwgPT0gZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgbmV0c25tcF9pbnRlcmZhY2VfZW50cnkqIGUgPSBOVUxMOwogCisgICAgaWYgKE5VTEwgPT0gcm93KQorICAgICAgICByZXR1cm4gMDsKKyAgICAKKyAgICBlID0gcm93LT5kYXRhLmlmZW50cnk7CiAgICAgaWYoaW5kZXgpCiAgICAgICAgICppbmRleCA9IGUtPmluZGV4OwogCkBAIC00MDYsMTMgKzQyMCwxNCBAQAogICAgIGlmIChlbnRyeSkKICAgICAgICAgKmVudHJ5ID0gZTsKIAotICAgIGUgPSAobmV0c25tcF9pbnRlcmZhY2VfZW50cnkqKUlURVJBVE9SX05FWFQoaXQpOworICAgIHJvdyA9IChpZlRhYmxlX3Jvd3JlcV9jdHgqKSBJVEVSQVRPUl9ORVhUKGl0KTsKIAogICAgIHJldHVybiAxOwogfQogI2VuZGlmIC8qIE5FVFNOTVBfTk9fQkFDS1dBUkRTX0NPTVBBVEFCSUxJVFkgKi8KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lOVEVSRkFDRV9MRUdBQ1kgKi8KIAotCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSU5URVJGQUNFX0FDQ0VTU19FTlRSWV9TRVRfQURNSU5fU1RBVFVTCiAvKioKICAqCiAgKiBAcmV0dmFsIDAgICA6IHN1Y2Nlc3MKQEAgLTQ0MSw2ICs0NTYsNyBAQAogICAgIHJldHVybiByYzsKIH0KICNlbmRpZgorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSU5URVJGQUNFX0FDQ0VTU19FTlRSWV9TRVRfQURNSU5fU1RBVFVTICovCiAKIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKgpAQCAtNDU2LDYgKzQ3Miw3IEBACiAgICAgICAgICAgICAgICAgICAoKGNvbnN0IG5ldHNubXBfaW50ZXJmYWNlX2VudHJ5ICopIHJocyktPm5hbWUpOwogfQogCisjaWZuZGVmIE5FVFNOTVBfQUNDRVNTX0lOVEVSRkFDRV9OT0FSQ0gKIC8qKgogICovCiBzdGF0aWMgdm9pZApAQCAtNDYzLDYgKzQ4MCw3IEBACiB7CiAgICAgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2VudHJ5X2ZyZWUoZW50cnkpOwogfQorI2VuZGlmCiAKIC8qKgogICovCkBAIC02ODEsOCArNjk5LDcgQEAKICAgICAgICAoMCA9PSBzdHJjbXAobGhzLT5kZXNjciwgcmhzLT5kZXNjcikpKQogICAgICAgICA7CiAgICAgZWxzZSB7Ci0gICAgICAgIGlmIChOVUxMICE9IGxocy0+ZGVzY3IpCi0gICAgICAgICAgICBTTk1QX0ZSRUUobGhzLT5kZXNjcik7CisgICAgICAgIFNOTVBfRlJFRShsaHMtPmRlc2NyKTsKICAgICAgICAgaWYgKHJocy0+ZGVzY3IpIHsKICAgICAgICAgICAgIGxocy0+ZGVzY3IgPSBzdHJkdXAocmhzLT5kZXNjcik7CiAgICAgICAgICAgICBpZihOVUxMID09IGxocy0+ZGVzY3IpCkBAIC03MTAsOCArNzI3LDcgQEAKICAgICAgICAgaWYocmhzLT5wYWRkcl9sZW4pCiAgICAgICAgICAgICBtZW1jcHkobGhzLT5wYWRkcixyaHMtPnBhZGRyLHJocy0+cGFkZHJfbGVuKTsKICAgICB9IGVsc2UgewotICAgICAgICBpZiAoTlVMTCAhPSBsaHMtPnBhZGRyKQotICAgICAgICAgICAgU05NUF9GUkVFKGxocy0+cGFkZHIpOworICAgICAgICBTTk1QX0ZSRUUobGhzLT5wYWRkcik7CiAgICAgICAgIGlmIChyaHMtPnBhZGRyKSB7CiAgICAgICAgICAgICBsaHMtPnBhZGRyID0gKGNoYXIqKW1hbGxvYyhyaHMtPnBhZGRyX2xlbik7CiAgICAgICAgICAgICBpZihOVUxMID09IGxocy0+cGFkZHIpCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMgYi9hZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMKaW5kZXggNWJmYmY5YS4uZGIyYzI0NSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jCisrKyBiL2FnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYwpAQCAtNCw2ICs0LDcgQEAKICAqICRJZCQKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlICJtaWJJSS9taWJJSV9jb21tb24uaCIKICNpbmNsdWRlICJpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oIgpAQCAtMTMsNiArMTQsOCBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oPgogI2luY2x1ZGUgImlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCIKIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGludGVyZmFjZV9pb2N0bF9mbGFnc19zZXQsIGludGVyZmFjZV9hbGwpCisKICNpZmRlZiBIQVZFX05FVF9JRl9ICiAjaW5jbHVkZSA8bmV0L2lmLmg+CiAjZW5kaWYKQEAgLTI4Miw2ICsyODUsNyBAQAogICAgIHJldHVybiByYzsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lOVEVSRkFDRV9JT0NUTF9GTEFHU19TRVQKIC8qKgogICogaW50ZXJmYWNlIGVudHJ5IGZsYWdzIGlvY3RsIHdyYXBwZXIKICAqCkBAIC0zNDksNiArMzUzLDcgQEAKIAogICAgIHJldHVybiAwOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSU5URVJGQUNFX0lPQ1RMX0ZMQUdTX1NFVCAqLwogI2VuZGlmIC8qIFNJT0NHSUZGTEFHUyAqLwogCiAjaWZkZWYgU0lPQ0dJRk1UVQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jIGIvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jCmluZGV4IGRmMDk3MzcuLmYxOTZmYzggMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYworKysgYi9hZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMKQEAgLTQsMTQgKzQsNTYgQEAKICAqICRJZCQKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoZmRfZXZlbnRfbWFuYWdlcikKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGRlbGV0ZV9wcmVmaXhfaW5mbykKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNyZWF0ZV9wcmVmaXhfaW5mbykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpbnRlcmZhY2VfYXJjaF9zZXRfYWRtaW5fc3RhdHVzLCBpbnRlcmZhY2VfYWxsKQorCisjaWZkZWYgTkVUU05NUF9GRUFUVVJFX1JFUVVJUkVfSU5URVJGQUNFX0FSQ0hfU0VUX0FETUlOX1NUQVRVUworbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaW50ZXJmYWNlX2lvY3RsX2ZsYWdzX3NldCkKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVRVUlSRV9JTlRFUkZBQ0VfQVJDSF9TRVRfQURNSU5fU1RBVFVTICovCisKKyNpZmRlZiBIQVZFX1BDSV9MT09LVVBfTkFNRQorI2luY2x1ZGUgPHBjaS9wY2kuaD4KKyNpbmNsdWRlIDxzZXRqbXAuaD4KK3N0YXRpYyBzdHJ1Y3QgcGNpX2FjY2VzcyAqcGNpX2FjY2VzczsKKworLyogQXZvaWQgbGV0dGluZyBsaWJwY2kgY2FsbCBleGl0KDEpIHdoZW4gbm8gUENJIGJ1cyBpcyBhdmFpbGFibGUuICovCitzdGF0aWMgaW50IGRvX2xvbmdqbXAgPTA7CitzdGF0aWMgam1wX2J1ZiBlcnJfYnVmOworc3RhdGljIHZvaWQKK25ldHNubXBfcGNpX2Vycm9yKGNoYXIgKm1zZywgLi4uKQoreworICAgIHZhX2xpc3QgYXJnczsKKyAgICBjaGFyICpidWY7CisgICAgaW50IGJ1ZmxlbjsKKworICAgIHZhX3N0YXJ0KGFyZ3MsIG1zZyk7CisgICAgYnVmbGVuID0gc3RybGVuKCJwY2lsaWI6ICIpK3N0cmxlbihtc2cpKzI7CisgICAgYnVmID0gbWFsbG9jKGJ1Zmxlbik7CisgICAgc25wcmludGYoYnVmLCBidWZsZW4sICJwY2lsaWI6ICVzXG4iLCBtc2cpOworICAgIHNubXBfdmxvZyhMT0dfRVJSLCBidWYsIGFyZ3MpOworICAgIGZyZWUoYnVmKTsKKyAgICB2YV9lbmQoYXJncyk7CisgICAgaWYgKGRvX2xvbmdqbXApCisJbG9uZ2ptcChlcnJfYnVmLCAxKTsKKyAgICBlbHNlCisJZXhpdCgxKTsKK30KKyNlbmRpZgorCiAjaWZkZWYgSEFWRV9MSU5VWF9FVEhUT09MX0gKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2lmbmRlZiBIQVZFX1BDSV9MT09LVVBfTkFNRQogdHlwZWRlZiBfX3U2NCB1NjQ7ICAgICAgICAgLyogaGFjaywgc28gd2UgbWF5IGluY2x1ZGUga2VybmVsJ3MgZXRodG9vbC5oICovCiB0eXBlZGVmIF9fdTMyIHUzMjsgICAgICAgICAvKiBkaXR0byAqLwogdHlwZWRlZiBfX3UxNiB1MTY7ICAgICAgICAgLyogZGl0dG8gKi8KIHR5cGVkZWYgX191OCB1ODsgICAgICAgICAgIC8qIGRpdHRvICovCisjZW5kaWYKKwogI2luY2x1ZGUgPGxpbnV4L2V0aHRvb2wuaD4KICNlbmRpZiAvKiBIQVZFX0xJTlVYX0VUSFRPT0xfSCAqLwogCkBAIC0zNCw3ICs3Niw2IEBACiAKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KIApAQCAtMTI3LDYgKzE2OCwyNiBAQAogICAgIGxpc3RfaW5mby5saXN0X2hlYWQgPSAmcHJlZml4X2hlYWRfbGlzdDsKICAgICBuZXRzbm1wX3ByZWZpeF9saXN0ZW4oKTsKICNlbmRpZgorCisjaWZkZWYgSEFWRV9QQ0lfTE9PS1VQX05BTUUKKyAgICBwY2lfYWNjZXNzID0gcGNpX2FsbG9jKCk7CisgICAgaWYgKCFwY2lfYWNjZXNzKSB7CisJc25tcF9sb2coTE9HX0VSUiwgInBjaWxpYjogcGNpX2FsbG9jIGZhaWxlZFxuIik7CisJcmV0dXJuOworICAgIH0KKworICAgIHBjaV9hY2Nlc3MtPmVycm9yID0gbmV0c25tcF9wY2lfZXJyb3I7CisKKyAgICBkb19sb25nam1wID0gMTsKKyAgICBpZiAoc2V0am1wKGVycl9idWYpKSB7CisgICAgICAgIHBjaV9jbGVhbnVwKHBjaV9hY2Nlc3MpOworCXNubXBfbG9nKExPR19FUlIsICJwY2lsaWI6IHBjaV9pbml0IGZhaWxlZFxuIik7CisgICAgICAgIHBjaV9hY2Nlc3MgPSBOVUxMOworICAgIH0KKyAgICBlbHNlIGlmIChwY2lfYWNjZXNzKQorCXBjaV9pbml0KHBjaV9hY2Nlc3MpOworICAgIGRvX2xvbmdqbXAgPSAwOworI2VuZGlmCiB9CiAKIC8qCkBAIC0yNTYsNiArMzE3LDY5IEBACiAgICAgfQogfQogCisjaWZkZWYgSEFWRV9QQ0lfTE9PS1VQX05BTUUKKworLyogR2V0IHZhbHVlIGZyb20gc3lzZnMgZmlsZSAqLworc3RhdGljIGludCBzeXNmc19nZXRfaWQoY29uc3QgY2hhciAqcGF0aCwgdW5zaWduZWQgc2hvcnQgKmlkKQoreworICAgIEZJTEUgKmZpbjsKKyAgICBpbnQgbjsKKworICAgIGlmICghKGZpbiA9IGZvcGVuKHBhdGgsICJyIikpKSB7CisgICAgICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6aW50ZXJmYWNlIiwKKyAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBvcGVuICVzXG4iLCBwYXRoKSk7CisJcmV0dXJuIDA7CisgICAgfQorCisgICAgbiA9IGZzY2FuZihmaW4sICIlaHgiLCBpZCk7CisgICAgZmNsb3NlKGZpbik7CisKKyAgICByZXR1cm4gbiA9PSAxOworfQorCisvKiBHZXQgaW50ZXJmYWNlIGRlc2NyaXB0aW9uIGZvciBQQ0kgZGV2aWNlCisgKiBieSB1c2luZyBzeXNmcyB0byBmaW5kIHZlbmRvciBhbmQgZGV2aWNlCisgKiB0aGVuIGxvb2t1cCBuYW1lICgtbHBjaSkKKyAqCisgKiBGb3Igc29mdHdhcmUgaW50ZXJmYWNlcyB0aGVyZSBpcyBubyBQQ0kgaW5mb3JtYXRpb24KKyAqIHNvIGRlc2NyaXB0aW9uIHdpbGwgbm90IGJlIHNldC4KKyAqLworc3RhdGljIHZvaWQKK19hcmNoX2ludGVyZmFjZV9kZXNjcmlwdGlvbl9nZXQobmV0c25tcF9pbnRlcmZhY2VfZW50cnkgKmVudHJ5KQoreworICAgIGNvbnN0IGNoYXIgKmRlc2NyOworICAgIGNoYXIgYnVmWzI1Nl07CisgICAgdW5zaWduZWQgc2hvcnQgdmVuZG9yX2lkLCBkZXZpY2VfaWQ7CisKKyAgICBpZiAoIXBjaV9hY2Nlc3MpCisJcmV0dXJuOworCisgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwKKwkgICAgICIvc3lzL2NsYXNzL25ldC8lcy9kZXZpY2UvdmVuZG9yIiwgZW50cnktPm5hbWUpOworCisgICAgaWYgKCFzeXNmc19nZXRfaWQoYnVmLCAmdmVuZG9yX2lkKSkKKwlyZXR1cm47CisKKyAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLAorCSAgICAgIi9zeXMvY2xhc3MvbmV0LyVzL2RldmljZS9kZXZpY2UiLCBlbnRyeS0+bmFtZSk7CisKKyAgICBpZiAoIXN5c2ZzX2dldF9pZChidWYsICZkZXZpY2VfaWQpKQorCXJldHVybjsKKworICAgIGRlc2NyID0gcGNpX2xvb2t1cF9uYW1lKHBjaV9hY2Nlc3MsIGJ1Ziwgc2l6ZW9mKGJ1ZiksCisJCQkgICAgUENJX0xPT0tVUF9WRU5ET1IgfCBQQ0lfTE9PS1VQX0RFVklDRSwKKwkJCSAgICB2ZW5kb3JfaWQsIGRldmljZV9pZCwgMCwgMCk7CisgICAgaWYgKGRlc2NyKSB7CisJZnJlZShlbnRyeS0+ZGVzY3IpOworCWVudHJ5LT5kZXNjciA9IHN0cmR1cChkZXNjcik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgREVCVUdNU0dUTCgoImFjY2VzczppbnRlcmZhY2UiLAorICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHBjaV9sb29rdXBfbmFtZSB2ZW5kb3I9JSNoeCBkZXZpY2U9JSNoeFxuIiwKKwkJICAgIHZlbmRvcl9pZCwgZGV2aWNlX2lkKSk7CisgICAgfQorfQorI2VuZGlmCisKIAogI2lmZGVmIE5FVFNOTVBfRU5BQkxFX0lQVjYKIC8qKgpAQCAtNjEzLDkgKzczNyw5IEBACiAgICAgICAgIH0KICAgICAgICAgZW50cnktPm5zX2ZsYWdzID0gZmxhZ3M7IC8qIGluaXRpYWwgZmxhZ3M7IHdlJ2xsIHNldCBtb3JlIGxhdGVyICovCiAKLSAgICAgICAgLyoKLSAgICAgICAgICogeHh4LXJrczogZ2V0IGRlc2NyIGJ5IGxpbmtpbmcgbWVtIGZyb20gL3Byb2MvcGNpIGFuZCAvcHJvYy9pb21lbQotICAgICAgICAgKi8KKyNpZmRlZiBIQVZFX1BDSV9MT09LVVBfTkFNRQorCV9hcmNoX2ludGVyZmFjZV9kZXNjcmlwdGlvbl9nZXQoZW50cnkpOworI2VuZGlmCiAKIAogICAgICAgICAvKgpAQCAtNzc5LDYgKzkwMyw3IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JTlRFUkZBQ0VfQVJDSF9TRVRfQURNSU5fU1RBVFVTCiBpbnQKIG5ldHNubXBfYXJjaF9zZXRfYWRtaW5fc3RhdHVzKG5ldHNubXBfaW50ZXJmYWNlX2VudHJ5ICogZW50cnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaWZBZG1pblN0YXR1c192YWwpCkBAIC03OTUsNiArOTIwLDcgQEAKICAgICByZXR1cm4gbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2lvY3RsX2ZsYWdzX3NldCgtMSwgZW50cnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUZGX1VQLCBhbmRfY29tcGxlbWVudCk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JTlRFUkZBQ0VfQVJDSF9TRVRfQURNSU5fU1RBVFVTICovCiAKICNpZmRlZiBIQVZFX0xJTlVYX0VUSFRPT0xfSAogLyoqCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYyBiL2FnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jCmluZGV4IDIwNDU2OGIuLjgzNDBkYzYgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jCisrKyBiL2FnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jCkBAIC00LDEwICs0LDEzIEBACiAgKiAkSWQkCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSAibWliSUkvbWliSUlfY29tbW9uLmgiCiAjaW5jbHVkZSAiaWYtbWliL2lmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaCIKIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGludGVyZmFjZV9hcmNoX3NldF9hZG1pbl9zdGF0dXMsIGludGVyZmFjZV9hbGwpCisKICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCiAjaWYgSEFWRV9TWVNfSU9DVExfSApAQCAtMzg2LDYgKzM4OSw3IEBACiAgICAgcmV0dXJuICpzcGVlZDsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lOVEVSRkFDRV9BUkNIX1NFVF9BRE1JTl9TVEFUVVMKIGludAogbmV0c25tcF9hcmNoX3NldF9hZG1pbl9zdGF0dXMobmV0c25tcF9pbnRlcmZhY2VfZW50cnkgKiBlbnRyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpZkFkbWluU3RhdHVzX3ZhbCkKQEAgLTM5OSw0ICs0MDMsNSBAQAogCiAgICAgcmV0dXJuIC00OwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSU5URVJGQUNFX0FSQ0hfU0VUX0FETUlOX1NUQVRVUyAqLwogCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMgYi9hZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMKaW5kZXggMmIwZmM0Yy4uOGFhNDdmOCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jCisrKyBiL2FnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYwpAQCAtMiw2ICsyLDcgQEAKICAqICBJbnRlcmZhY2UgTUlCIGFyY2hpdGVjdHVyZSBzdXBwb3J0IGZvciBTb2xhcmlzCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSAiaWYtbWliL2lmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaCIKICNpbmNsdWRlICJrZXJuZWxfc3Vub3M1LmgiCkBAIC0xNiw2ICsxNyw4IEBACiAjaW5jbHVkZSA8c3RyaW5ncy5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaW50ZXJmYWNlX2FyY2hfc2V0X2FkbWluX3N0YXR1cywgaW50ZXJmYWNlX2FsbCkKKwogc3RhdGljIGludCBfc2V0X2lwX2ZsYWdzX3Y0KG5ldHNubXBfaW50ZXJmYWNlX2VudHJ5ICosIG1pYjJfaWZFbnRyeV90ICopOwogc3RhdGljIGludCBfbWF0Y2hfaWZuYW1lX3Y0YWRkcih2b2lkICppZm5hbWUsIHZvaWQgKmlwYWRkcik7CiBzdGF0aWMgaW50IF9nZXRfdjRhZGRyKG1pYjJfaWZFbnRyeV90ICppZmUsIG1pYjJfaXBBZGRyRW50cnlfdCAqZSk7CkBAIC0zNDUsNiArMzQ4LDcgQEAKIH0KICNlbmRpZiAvKiBTT0xBUklTX0hBVkVfSVBWNl9NSUJfU1VQUE9SVCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSU5URVJGQUNFX0FSQ0hfU0VUX0FETUlOX1NUQVRVUwogaW50CiBuZXRzbm1wX2FyY2hfc2V0X2FkbWluX3N0YXR1cyhuZXRzbm1wX2ludGVyZmFjZV9lbnRyeSAqIGVudHJ5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlmQWRtaW5TdGF0dXNfdmFsKQpAQCAtMzU2LDMgKzM2MCw0IEBACiAgICAgICovCiAgICAgcmV0dXJuICgtMSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JTlRFUkZBQ0VfQVJDSF9TRVRfQURNSU5fU1RBVFVTICovCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jIGIvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYwppbmRleCBjY2UzODgxLi42MDc2ZDE5IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jCisrKyBiL2FnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMKQEAgLTYsNiArNiw3IEBACiAgKiAkSWQkCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSAibWliSUkvbWliSUlfY29tbW9uLmgiCiAjaW5jbHVkZSAiaWYtbWliL2lmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaCIKQEAgLTI5LDYgKzMwLDggQEAKICNpbmNsdWRlIDxuZXQvaWZfdHlwZXMuaD4KICNpbmNsdWRlIDxuZXQvaWZfbWVkaWEuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGludGVyZmFjZV9hcmNoX3NldF9hZG1pbl9zdGF0dXMsIGludGVyZmFjZV9hbGwpCisKIC8qCiAgKiBhY2NvdW50IGZvciBtaW5vciBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZyZWVCU0QgYW5kIE9wZW5CU0QuCiAgKiBJZiB0aGlzIGdldHMgdW5ydWx5LCBzcGxpdCBzdHVmZiBvdXQgaW50byB0aGUgcmVzcGVjdGl2ZQpAQCAtNTYxLDYgKzU2NCw3IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JTlRFUkZBQ0VfQVJDSF9TRVRfQURNSU5fU1RBVFVTCiBpbnQKIG5ldHNubXBfYXJjaF9zZXRfYWRtaW5fc3RhdHVzKG5ldHNubXBfaW50ZXJmYWNlX2VudHJ5ICogZW50cnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaWZBZG1pblN0YXR1c192YWwpCkBAIC01NzUsMyArNTc5LDQgQEAKIAogICAgIHJldHVybiAtNDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lOVEVSRkFDRV9BUkNIX1NFVF9BRE1JTl9TVEFUVVMgKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYwppbmRleCA4MDgyOWNjLi5kOWI3MjUyIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jCkBAIC0xNCw5ICsxNCwxNCBAQAogICogc3RhbmRhcmQgTmV0LVNOTVAgaW5jbHVkZXMgCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGludGVyZmFjZV9hY2Nlc3NfZW50cnlfc2V0X2FkbWluX3N0YXR1cykKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKwogLyoKICAqIGluY2x1ZGUgb3VyIHBhcmVudCBoZWFkZXIgCiAgKi8KQEAgLTE3ODMsNiArMTc4OCw5IEBACiAKIAogLyoqIEB9ICovCisKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoqKgpAQCAtMjMyOSw2ICsyMzM3LDggQEAKIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaWZUYWJsZV9jaGVja19kZXBlbmRlbmNpZXMgKi8KIAogCisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworCiBzdGF0aWMgaW50CiBfaWZfbnVtYmVyX2hhbmRsZXIobmV0c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciwKICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWdpbmZvLApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oIGIvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oCmluZGV4IDQ1MmI4NjMuLmU5MDYzNGYgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaAorKysgYi9hZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgKQEAgLTQ1MSw2ICs0NTEsNyBAQAogCiAKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAvKgogICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgKiBTRVQgZnVuY3Rpb24gZGVjbGFyYXRpb25zCkBAIC02NjYsNyArNjY3LDcgQEAKIAogCiAgICAgaW50ICAgICAgICAgICAgIGlmVGFibGVfY2hlY2tfZGVwZW5kZW5jaWVzKGlmVGFibGVfcm93cmVxX2N0eCAqIGN0eCk7Ci0KKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICAgICAvKgogICAgICAqIERVTU1ZIG1hcmtlcnMsIGlnbm9yZQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jIGIvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jCmluZGV4IGZhZjM3ZDYuLmI4YTA5YjUgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYworKysgYi9hZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMKQEAgLTgsOSArOCwxMiBAQAogICogc3RhbmRhcmQgTmV0LVNOTVAgaW5jbHVkZXMgCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY29udGFpbmVyX2xpbmtlZF9saXN0KQorCiAvKgogICogaW5jbHVkZSBvdXIgcGFyZW50IGhlYWRlciAKICAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYyBiL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMKaW5kZXggNDlkZTM1Ni4uNDFkMzhlZSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYworKysgYi9hZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jCkBAIC0zMCw2ICszMCw3IEBACiAgKiBzdGFuZGFyZCBOZXQtU05NUCBpbmNsdWRlcyAKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCkBAIC00Nyw2ICs0OCwyMSBAQAogCiAjaW5jbHVkZSA8Y3R5cGUuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlmVGFibGVfZXh0ZXJuYWxfYWNjZXNzLCBsaWJuZXRzbm1wbWlicykKKworbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUocm93X21lcmdlKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoYmFieV9zdGVwcykKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX2FsbF9yZXF1ZXN0c19lcnJvcikKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpZnRhYmxlX2NvbnRhaW5lcl9nZXQsIGlmVGFibGVfZXh0ZXJuYWxfYWNjZXNzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlmeHRhYmxlX3NodXRkb3duX2ludGVyZmFjZSwgbmV0c25tcF91bnVzZWQpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaWZYVGFibGVfY29udGFpbmVyX3NpemUsIGlmWFRhYmxlX2V4dGVybmFsX2FjY2VzcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpZlhUYWJsZV9yZWdpc3RyYXRpb25fc2V0LCBpZlhUYWJsZV9leHRlcm5hbF9hY2Nlc3MpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaWZYVGFibGVfcmVnaXN0cmF0aW9uX2dldCwgaWZYVGFibGVfZXh0ZXJuYWxfYWNjZXNzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlmWFRhYmxlX2NvbnRhaW5lcl9nZXQsIGlmWFRhYmxlX2V4dGVybmFsX2FjY2VzcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpZnRhYmxlX2NvbnRhaW5lcl9zaXplLCBpZlRhYmxlX2V4dGVybmFsX2FjY2VzcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpZnRhYmxlX3JlZ2lzdHJhdGlvbl9zZXQsIGlmVGFibGVfZXh0ZXJuYWxfYWNjZXNzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlmdGFibGVfcmVnaXN0cmF0aW9uX2dldCwgaWZUYWJsZV9leHRlcm5hbF9hY2Nlc3MpCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoqKgpAQCAtODIsMTkgKzk4LDIzIEBACiBzdGF0aWMgdm9pZCAgICAgX2lmVGFibGVfY29udGFpbmVyX3NodXRkb3duKGlmVGFibGVfaW50ZXJmYWNlX2N0eCAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmX2N0eCk7CiAKLQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lGVEFCTEVfQ09OVEFJTkVSX0dFVAogbmV0c25tcF9jb250YWluZXIgKgogaWZUYWJsZV9jb250YWluZXJfZ2V0KHZvaWQpCiB7CiAgICAgcmV0dXJuIGlmVGFibGVfaWZfY3R4LmNvbnRhaW5lcjsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lGVEFCTEVfQ09OVEFJTkVSX0dFVCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSUZUQUJMRV9SRUdJU1RSQVRJT05fR0VUCiBpZlRhYmxlX3JlZ2lzdHJhdGlvbiAqCiBpZlRhYmxlX3JlZ2lzdHJhdGlvbl9nZXQodm9pZCkKIHsKICAgICByZXR1cm4gaWZUYWJsZV9pZl9jdHgudXNlcl9jdHg7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JRlRBQkxFX1JFR0lTVFJBVElPTl9HRVQgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lGVEFCTEVfUkVHSVNUUkFUSU9OX1NFVAogaWZUYWJsZV9yZWdpc3RyYXRpb24gKgogaWZUYWJsZV9yZWdpc3RyYXRpb25fc2V0KGlmVGFibGVfcmVnaXN0cmF0aW9uICogbmV3cmVnKQogewpAQCAtMTAyLDEyICsxMjIsMTUgQEAKICAgICBpZlRhYmxlX2lmX2N0eC51c2VyX2N0eCA9IG5ld3JlZzsKICAgICByZXR1cm4gb2xkOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSUZUQUJMRV9SRUdJU1RSQVRJT05fU0VUICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JRlRBQkxFX0NPTlRBSU5FUl9TSVpFCiBpbnQKIGlmVGFibGVfY29udGFpbmVyX3NpemUodm9pZCkKIHsKICAgICByZXR1cm4gQ09OVEFJTkVSX1NJWkUoaWZUYWJsZV9pZl9jdHguY29udGFpbmVyKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lGVEFCTEVfQ09OVEFJTkVSX1NJWkUgKi8KIAogdV9pbnQKIGlmVGFibGVfZGlydHlfZ2V0KHZvaWQpCkBAIC0xNDUsNyArMTY4LDcgQEAKIHN0YXRpYyBOZXRzbm1wX05vZGVfSGFuZGxlciBfbWZkX2lmVGFibGVfcG9zdF9yZXF1ZXN0Owogc3RhdGljIE5ldHNubXBfTm9kZV9IYW5kbGVyIF9tZmRfaWZUYWJsZV9vYmplY3RfbG9va3VwOwogc3RhdGljIE5ldHNubXBfTm9kZV9IYW5kbGVyIF9tZmRfaWZUYWJsZV9nZXRfdmFsdWVzOwotI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKKyNpZiAhKGRlZmluZWQoTkVUU05NUF9OT19XUklURV9TVVBQT1JUKSB8fCBkZWZpbmVkKE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCkpCiBzdGF0aWMgTmV0c25tcF9Ob2RlX0hhbmRsZXIgX21mZF9pZlRhYmxlX2NoZWNrX29iamVjdHM7CiBzdGF0aWMgTmV0c25tcF9Ob2RlX0hhbmRsZXIgX21mZF9pZlRhYmxlX3VuZG9fc2V0dXA7CiBzdGF0aWMgTmV0c25tcF9Ob2RlX0hhbmRsZXIgX21mZF9pZlRhYmxlX3NldF92YWx1ZXM7CkBAIC0xNjAsNyArMTgzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICogdmFyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29sdW1uKTsKLSNlbmRpZgorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCB8fCBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQgKi8KIAogaWZUYWJsZV9kYXRhICAgKmlmVGFibGVfYWxsb2NhdGVfZGF0YSh2b2lkKTsKIApAQCAtMjUwLDcgKzI3Myw3IEBACiAgICAgYWNjZXNzX211bHRpcGxleGVyLT5wb3N0X3JlcXVlc3QgPSBfbWZkX2lmVGFibGVfcG9zdF9yZXF1ZXN0OwogCiAKLSNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCisjaWYgIShkZWZpbmVkKE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCkgfHwgZGVmaW5lZChORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQpKQogICAgIC8qCiAgICAgICogUkVRVUlSRUQgd3JhcHBlcnMgZm9yIHNldCByZXF1ZXN0IGhhbmRsaW5nCiAgICAgICovCkBAIC0yNzMsNyArMjk2LDcgQEAKICAgICAgKi8KICAgICBhY2Nlc3NfbXVsdGlwbGV4ZXItPmNvbnNpc3RlbmN5X2NoZWNrcyA9CiAgICAgICAgIF9tZmRfaWZUYWJsZV9jaGVja19kZXBlbmRlbmNpZXM7Ci0jZW5kaWYKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgfHwgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUICovCiAKICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAqCkBAIC0yODYsMTEgKzMwOSwxNCBAQAogICAgIHJlZ2luZm8gPQogICAgICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NyZWF0ZSgiaWZUYWJsZSIsIGhhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmVGFibGVfb2lkLCBpZlRhYmxlX29pZF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQU5ETEVSX0NBTl9CQUJZX1NURVAKLSNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEhBTkRMRVJfQ0FOX1JXUklURQotI2VuZGlmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQU5ETEVSX0NBTl9CQUJZX1NURVAgfAorI2lmICEoZGVmaW5lZChORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQpIHx8IGRlZmluZWQoTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEFORExFUl9DQU5fUldSSVRFCisjZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQU5ETEVSX0NBTl9ST05MWQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCB8fCBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQgKi8KKyAgICAgICAgICAgICk7CisKICAgICBpZiAoTlVMTCA9PSByZWdpbmZvKSB7CiAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJlcnJvciByZWdpc3RlcmluZyB0YWJsZSBpZlRhYmxlXG4iKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzA4LDcgKzMzNCw3IEBACiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+cG9zdF9yZXF1ZXN0KQogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX1BPU1RfUkVRVUVTVDsKIAotI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKKyNpZiAhKGRlZmluZWQoTkVUU05NUF9OT19XUklURV9TVVBQT1JUKSB8fCBkZWZpbmVkKE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCkpCiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+c2V0X3ZhbHVlcykKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9TRVRfVkFMVUVTOwogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPmlycmV2ZXJzaWJsZV9jb21taXQpCkBAIC0zMzEsNyArMzU3LDcgQEAKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9DT01NSVQ7CiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+dW5kb19jb21taXQpCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfVU5ET19DT01NSVQ7Ci0jZW5kaWYKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgfHwgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUICovCiAKICAgICBoYW5kbGVyID0gbmV0c25tcF9iYWJ5X3N0ZXBzX2hhbmRsZXJfZ2V0KG1mZF9tb2Rlcyk7CiAgICAgbmV0c25tcF9pbmplY3RfaGFuZGxlcihyZWdpbmZvLCBoYW5kbGVyKTsKQEAgLTM3Myw3ICszOTksNyBAQAogICAgICAqLwogICAgIHsKICAgICAgICAgY29uc3Qgb2lkICAgICAgIGlmdGxjX29pZFtdID0geyBJRlRBQkxFX0xBU1RfQ0hBTkdFIH07Ci0gICAgICAgIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zY2FsYXIobmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24KKyAgICAgICAgbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX3NjYWxhcjIobmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoImlmVGFibGVMYXN0Q2hhbmdlZCIsIE5VTEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmdGxjX29pZCwgT0lEX0xFTkdUSChpZnRsY19vaWQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQU5ETEVSX0NBTl9ST05MWSksCkBAIC0xMDM5LDggKzEwNjUsOCBAQAogCiAKIAorI2lmICEoZGVmaW5lZChORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQpIHx8IGRlZmluZWQoTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUKSkKIAotI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIFNFVCBwcm9jZXNzaW5nCkBAIC0xODE4LDcgKzE4NDQsNyBAQAogCiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIF9tZmRfaWZUYWJsZV9pcnJldmVyc2libGVfY29tbWl0ICovCi0jZW5kaWYKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgfHwgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKQEAgLTE5NjQsNiArMTk5MCw3IEBACiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIF9pZlRhYmxlX2NvbnRhaW5lcl9zaHV0ZG93biAqLwogCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JRlRBQkxFX0VYVEVSTkFMX0FDQ0VTUwogaWZUYWJsZV9yb3dyZXFfY3R4ICoKIGlmVGFibGVfcm93X2ZpbmRfYnlfbWliX2luZGV4KGlmVGFibGVfbWliX2luZGV4ICogbWliX2lkeCkKIHsKQEAgLTE5ODksMyArMjAxNiw0IEBACiAKICAgICByZXR1cm4gcm93cmVxX2N0eDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lGVEFCTEVfRVhURVJOQUxfQUNDRVNTICovCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jCmluZGV4IDIzZjcxMzcuLmJiM2U3MzYgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jCkBAIC0xNCw2ICsxNCw3IEBACiAgKiBzdGFuZGFyZCBOZXQtU05NUCBpbmNsdWRlcyAKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCkBAIC0yOSw2ICszMCw5IEBACiAKICNpbmNsdWRlICJpZlhUYWJsZV9pbnRlcmZhY2UuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaWZUYWJsZV9jb250YWluZXJfZ2V0KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaWZUYWJsZV9jb250YWluZXJfc2l6ZSkKKwogLyoKICAqIG5vdCBzdXJlIGlmIHdlIHdhbnQgdG8gc3VwcG9ydCBzZXQgZm9yIHByb21pc2N1b3VzIG1vZGUsIGJlY2F1c2UKICAqIDEpIGNhcmVmdWwgdGhvdWdodCBzaG91bGQgZ28gaW50byBhbnkgc2V0dGFibGUgb2JqZWN0IHRoYXQgcGVyZm9ybXMKQEAgLTE1NzIsNiArMTU3Niw3IEBACiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGlmQ291bnRlckRpc2NvbnRpbnVpdHlUaW1lX2dldCAqLwogCiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAKIC8qKiBAfSAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTI1MzAsNSArMjUzNSw3IEBACiAgICAgcmV0dXJuIHJjOwogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpZlhUYWJsZV9jaGVja19kZXBlbmRlbmNpZXMgKi8KIAorI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKwogLyoqIEB9ICovCiAvKiogQHsgKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oIGIvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgKaW5kZXggZjliMjVkNC4uYmEyMmY5NyAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgKQEAgLTIxOCw3ICsyMTgsNyBAQAogICAgICAqIE9JRDogLjEuMy42LjEuMi4xLjMxLjEuMSwgbGVuZ3RoOiA5CiAgICAgICovCiAKLQorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBpbnQgICAgICAgICAgICAgaWZYVGFibGVfdW5kb19zZXR1cChpZlhUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCk7CiAgICAgaW50ICAgICAgICAgICAgIGlmWFRhYmxlX3VuZG9fY2xlYW51cChpZlhUYWJsZV9yb3dyZXFfY3R4ICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgpOwpAQCAtNDM4LDcgKzQzOCw3IEBACiAKIAogICAgIGludCAgICAgICAgICAgICBpZlhUYWJsZV9jaGVja19kZXBlbmRlbmNpZXMoaWZYVGFibGVfcm93cmVxX2N0eCAqIGN0eCk7Ci0KKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICAgICAvKgogICAgICAqIERVTU1ZIG1hcmtlcnMsIGlnbm9yZQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oIGIvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oCmluZGV4IDcyOGVmNTcuLjY3ZTE5OTYgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaAorKysgYi9hZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmgKQEAgLTY3LDcgKzY3LDExIEBACiAgICAgICogVE9ETzo0MDU6cjogUmV2aWV3IElGWFRBQkxFX1NFVFRBQkxFX0NPTFMgbWFjcm8uCiAgICAgICogT1IgdG9nZXRoZXIgYWxsIHRoZSB3cml0YWJsZSBjb2xzLgogICAgICAqLworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICNkZWZpbmUgSUZYVEFCTEVfU0VUVEFCTEVfQ09MUyAoQ09MVU1OX0lGTElOS1VQRE9XTlRSQVBFTkFCTEVfRkxBRyB8IENPTFVNTl9JRkFMSUFTX0ZMQUcpCisjZWxzZSAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisjZGVmaW5lIElGWFRBQkxFX1NFVFRBQkxFX0NPTFMgMAorI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8gCiAgICAgLyoKICAgICAgKiBOT1RFUyBvbiBlbnVtcwogICAgICAqID09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMgYi9hZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMKaW5kZXggMTUwNzRlYS4uMjNiNTBkMCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYwpAQCAtMzAsNiArMzAsOCBAQAogICogc3RhbmRhcmQgTmV0LVNOTVAgaW5jbHVkZXMgCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCkBAIC00OCw2ICs1MCwxNiBAQAogCiAjaW5jbHVkZSA8Y3R5cGUuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlmWFRhYmxlX2V4dGVybmFsX2FjY2VzcywgbGlibmV0c25tcG1pYnMpCisKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHJvd19tZXJnZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNhY2hlX2ZpbmRfYnlfb2lkKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoYmFieV9zdGVwcykKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX2FsbF9yZXF1ZXN0c19lcnJvcikKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja192Yl90eXBlX2FuZF9tYXhfc2l6ZSkKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKioqCkBAIC04MSwxOSArOTMsMjMgQEAKIHN0YXRpYyB2b2lkICAgICBfaWZYVGFibGVfY29udGFpbmVyX3NodXRkb3duKGlmWFRhYmxlX2ludGVyZmFjZV9jdHggKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZfY3R4KTsKIAotCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSUZYVEFCTEVfQ09OVEFJTkVSX0dFVAogbmV0c25tcF9jb250YWluZXIgKgogaWZYVGFibGVfY29udGFpbmVyX2dldCh2b2lkKQogewogICAgIHJldHVybiBpZlhUYWJsZV9pZl9jdHguY29udGFpbmVyOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSUZYVEFCTEVfQ09OVEFJTkVSX0dFVCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSUZYVEFCTEVfUkVHSVNUUkFUSU9OX0dFVAogaWZYVGFibGVfcmVnaXN0cmF0aW9uICoKIGlmWFRhYmxlX3JlZ2lzdHJhdGlvbl9nZXQodm9pZCkKIHsKICAgICByZXR1cm4gaWZYVGFibGVfaWZfY3R4LnVzZXJfY3R4OwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSUZYVEFCTEVfUkVHSVNUUkFUSU9OX0dFVCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSUZYVEFCTEVfUkVHSVNUUkFUSU9OX1NFVAogaWZYVGFibGVfcmVnaXN0cmF0aW9uICoKIGlmWFRhYmxlX3JlZ2lzdHJhdGlvbl9zZXQoaWZYVGFibGVfcmVnaXN0cmF0aW9uICogbmV3cmVnKQogewpAQCAtMTAxLDEyICsxMTcsMTUgQEAKICAgICBpZlhUYWJsZV9pZl9jdHgudXNlcl9jdHggPSBuZXdyZWc7CiAgICAgcmV0dXJuIG9sZDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lGWFRBQkxFX1JFR0lTVFJBVElPTl9TRVQgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lGWFRBQkxFX0NPTlRBSU5FUl9TSVpFCiBpbnQKIGlmWFRhYmxlX2NvbnRhaW5lcl9zaXplKHZvaWQpCiB7CiAgICAgcmV0dXJuIENPTlRBSU5FUl9TSVpFKGlmWFRhYmxlX2lmX2N0eC5jb250YWluZXIpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSUZYVEFCTEVfQ09OVEFJTkVSX1NJWkUgKi8KIAogdV9pbnQKIGlmWFRhYmxlX2RpcnR5X2dldCh2b2lkKQpAQCAtMTMwLDcgKzE0OSw3IEBACiBzdGF0aWMgTmV0c25tcF9Ob2RlX0hhbmRsZXIgX21mZF9pZlhUYWJsZV9wb3N0X3JlcXVlc3Q7CiBzdGF0aWMgTmV0c25tcF9Ob2RlX0hhbmRsZXIgX21mZF9pZlhUYWJsZV9vYmplY3RfbG9va3VwOwogc3RhdGljIE5ldHNubXBfTm9kZV9IYW5kbGVyIF9tZmRfaWZYVGFibGVfZ2V0X3ZhbHVlczsKLSNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCisjaWYgIShkZWZpbmVkKE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCkgfHwgZGVmaW5lZChORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQpKQogc3RhdGljIE5ldHNubXBfTm9kZV9IYW5kbGVyIF9tZmRfaWZYVGFibGVfY2hlY2tfb2JqZWN0czsKIHN0YXRpYyBOZXRzbm1wX05vZGVfSGFuZGxlciBfbWZkX2lmWFRhYmxlX3VuZG9fc2V0dXA7CiBzdGF0aWMgTmV0c25tcF9Ob2RlX0hhbmRsZXIgX21mZF9pZlhUYWJsZV9zZXRfdmFsdWVzOwpAQCAtMTQ1LDcgKzE2NCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciwgaW50IGNvbHVtbik7Ci0jZW5kaWYKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgfHwgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUICovCiAKIGlmWFRhYmxlX2RhdGEgICppZlhUYWJsZV9hbGxvY2F0ZV9kYXRhKHZvaWQpOwogCkBAIC0yMjMsNyArMjQyLDcgQEAKICAgICBhY2Nlc3NfbXVsdGlwbGV4ZXItPnBvc3RfcmVxdWVzdCA9IF9tZmRfaWZYVGFibGVfcG9zdF9yZXF1ZXN0OwogCiAKLSNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCisjaWYgIShkZWZpbmVkKE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCkgfHwgZGVmaW5lZChORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQpKQogICAgIC8qCiAgICAgICogUkVRVUlSRUQgd3JhcHBlcnMgZm9yIHNldCByZXF1ZXN0IGhhbmRsaW5nCiAgICAgICovCkBAIC0yNDYsNyArMjY1LDcgQEAKICAgICAgKi8KICAgICBhY2Nlc3NfbXVsdGlwbGV4ZXItPmNvbnNpc3RlbmN5X2NoZWNrcyA9CiAgICAgICAgIF9tZmRfaWZYVGFibGVfY2hlY2tfZGVwZW5kZW5jaWVzOwotI2VuZGlmCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUIHx8IE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCAqLwogCiAgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgKgpAQCAtMjYwLDExICsyNzksMTQgQEAKICAgICAgICAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jcmVhdGUoImlmWFRhYmxlIiwgaGFuZGxlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZYVGFibGVfb2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlhUYWJsZV9vaWRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEFORExFUl9DQU5fQkFCWV9TVEVQCi0jaWZuZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBIQU5ETEVSX0NBTl9SV1JJVEUKLSNlbmRpZgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEFORExFUl9DQU5fQkFCWV9TVEVQIHwKKyNpZiAhKGRlZmluZWQoTkVUU05NUF9OT19XUklURV9TVVBQT1JUKSB8fCBkZWZpbmVkKE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JXUklURQorI2Vsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEFORExFUl9DQU5fUk9OTFkKKyNlbmRpZiAgICAgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICB8fCBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQgKi8KKyAgICAgICAgICAgICk7CisKICAgICBpZiAoTlVMTCA9PSByZWdpbmZvKSB7CiAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJlcnJvciByZWdpc3RlcmluZyB0YWJsZSBpZlhUYWJsZVxuIik7CiAgICAgICAgIHJldHVybjsKQEAgLTI4Miw3ICszMDQsNyBAQAogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnBvc3RfcmVxdWVzdCkKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9QT1NUX1JFUVVFU1Q7CiAKLSNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCisjaWYgIShkZWZpbmVkKE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCkgfHwgZGVmaW5lZChORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQpKQogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnNldF92YWx1ZXMpCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfU0VUX1ZBTFVFUzsKICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT5pcnJldmVyc2libGVfY29tbWl0KQpAQCAtMzA1LDcgKzMyNyw3IEBACiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfQ09NTUlUOwogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnVuZG9fY29tbWl0KQogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX1VORE9fQ09NTUlUOwotI2VuZGlmCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUIHx8IE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCAqLwogCiAgICAgaGFuZGxlciA9IG5ldHNubXBfYmFieV9zdGVwc19oYW5kbGVyX2dldChtZmRfbW9kZXMpOwogICAgIG5ldHNubXBfaW5qZWN0X2hhbmRsZXIocmVnaW5mbywgaGFuZGxlcik7CkBAIC0zNTIsNiArMzc0LDcgQEAKICAqIEBpbnRlcm5hbAogICogU2h1dGRvd24gdGhlIHRhYmxlIGlmWFRhYmxlCiAgKi8KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JRlhUQUJMRV9TSFVURE9XTl9JTlRFUkZBQ0UKIHZvaWQKIF9pZlhUYWJsZV9zaHV0ZG93bl9pbnRlcmZhY2UoaWZYVGFibGVfcmVnaXN0cmF0aW9uICogcmVnX3B0cikKIHsKQEAgLTM2MCw2ICszODMsNyBAQAogICAgICAqLwogICAgIF9pZlhUYWJsZV9jb250YWluZXJfc2h1dGRvd24oJmlmWFRhYmxlX2lmX2N0eCk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JRlhUQUJMRV9TSFVURE9XTl9JTlRFUkZBQ0UgKi8KIAogdm9pZAogaWZYVGFibGVfdmFsaWRfY29sdW1uc19zZXQobmV0c25tcF9jb2x1bW5faW5mbyAqdmMpCkBAIC05MTIsNyArOTM2LDcgQEAKICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogX21mZF9pZlhUYWJsZV9nZXRfdmFsdWVzICovCiAKLSNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCisjaWYgIShkZWZpbmVkKE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCkgfHwgZGVmaW5lZChORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQpKQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogU0VUIHByb2Nlc3NpbmcKQEAgLTExOTMsNyArMTIxNyw2IEBACiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIF9tZmRfaWZYVGFibGVfY2hlY2tfb2JqZWN0cyAqLwogCi0KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqIFNFVDogY2hlY2sgZGVwZW5kZW5jaWVzCkBAIC0xNzA5LDcgKzE3MzIsOCBAQAogCiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIF9tZmRfaWZYVGFibGVfaXJyZXZlcnNpYmxlX2NvbW1pdCAqLwotI2VuZGlmCisKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgfHwgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKQEAgLTE3OTgsMTMgKzE4MjIsMTcgQEAKIHZvaWQKIGlmWFRhYmxlX2NvbnRhaW5lcl9pbml0X3BlcnNpc3RlbmNlKG5ldHNubXBfY29udGFpbmVyICpjb250YWluZXIpCiB7CisgICAgbmV0c25tcF9jb250YWluZXIgKipjb250YWluZXJfcDsKICAgICBpbnQgICAgICAgICAgICAgcmM7CiAKICAgICByZWdpc3Rlcl9jb25maWdfaGFuZGxlcihOVUxMLCByb3dfdG9rZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lmWFRhYmxlX2NvbnRhaW5lcl9yb3dfcmVzdG9yZSwgTlVMTCwgTlVMTCk7CisgICAgbmV0c25tcF9hc3NlcnQoY29udGFpbmVyKTsKKyAgICBjb250YWluZXJfcCA9IG5ldHNubXBfbWVtZHVwKCZjb250YWluZXIsIHNpemVvZihjb250YWluZXIpKTsKKyAgICBuZXRzbm1wX2Fzc2VydChjb250YWluZXJfcCk7CiAgICAgcmMgPSBzbm1wX3JlZ2lzdGVyX2NhbGxiYWNrKFNOTVBfQ0FMTEJBQ0tfTElCUkFSWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU05NUF9DQUxMQkFDS19TVE9SRV9EQVRBLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaWZYVGFibGVfY29udGFpbmVyX3NhdmVfcm93cywgY29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lmWFRhYmxlX2NvbnRhaW5lcl9zYXZlX3Jvd3MsIGNvbnRhaW5lcl9wKTsKIAogICAgIGlmIChyYyAhPSBTTk1QX0VSUl9OT0VSUk9SKQogICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiZXJyb3IgcmVnaXN0ZXJpbmcgZm9yIFNUT1JFX0RBVEEgY2FsbGJhY2sgIgpAQCAtMTgyNyw3ICsxODU1LDcgQEAKICAgICAvKgogICAgICAqIHNhdmUgYWxsIHJvd3MKICAgICAgKi8KLSAgICBDT05UQUlORVJfRk9SX0VBQ0goKG5ldHNubXBfY29udGFpbmVyICopIGNsaWVudGFyZywKKyAgICBDT05UQUlORVJfRk9SX0VBQ0goKihuZXRzbm1wX2NvbnRhaW5lciAqKiljbGllbnRhcmcsCiAgICAgICAgICAgICAgICAgICAgICAgIChuZXRzbm1wX2NvbnRhaW5lcl9vYmpfZnVuYyAqKQogICAgICAgICAgICAgICAgICAgICAgICBfaWZYVGFibGVfY29udGFpbmVyX3Jvd19zYXZlLCB0eXBlKTsKIApAQCAtMjE0NCw2ICsyMTcyLDcgQEAKIH0KIAogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSUZYVEFCTEVfRVhURVJOQUxfQUNDRVNTCiBpZlhUYWJsZV9yb3dyZXFfY3R4ICoKIGlmWFRhYmxlX3Jvd19maW5kX2J5X21pYl9pbmRleChpZlhUYWJsZV9taWJfaW5kZXggKiBtaWJfaWR4KQogewpAQCAtMjE2OSwzICsyMTk4LDQgQEAKIAogICAgIHJldHVybiByb3dyZXFfY3R4OwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSUZYVEFCTEVfRVhURVJOQUxfQUNDRVNTICovCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZS5oIGIvYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGUuaAppbmRleCBhMmI0ZWU0Li4yYzczMWE2IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZS5oCisrKyBiL2FnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlLmgKQEAgLTIyLDYgKzIyLDEwIEBACiAjaWYgZGVmaW5lZCggbGludXggKQogY29uZmlnX3JlcXVpcmUoaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXgpCiBjb25maWdfcmVxdWlyZShpcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9pb2N0bCkKKyNlbGlmIGRlZmluZWQoIGZyZWVic2Q3ICkgfHwgZGVmaW5lZCggbmV0YnNkNSApIHx8IGRlZmluZWQoIG9wZW5ic2Q0ICkgfHwgZGVmaW5lZCggZHJhZ29uZmx5ICkgfHwgZGVmaW5lZCggZGFyd2luICkKK2NvbmZpZ19yZXF1aXJlKGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX3N5c2N0bCkKKyNlbGlmIGRlZmluZWQoc29sYXJpczIpICYmIGRlZmluZWQoIEhBVkVfTUlCMl9JUElGU1RBVFNFTlRSWV9UICkKK2NvbmZpZ19yZXF1aXJlKGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX3NvbGFyaXMpCiAjZWxzZQogY29uZmlnX2Vycm9yKHRoZSByb3V0ZSBkYXRhIGFjY2VzcyBsaWJyYXJ5IGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBlbnZpcm9ubWVudC4pCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jIGIvYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMKaW5kZXggZTI5MDFmOS4uODRjMTgxMCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMKQEAgLTI0Miw4ICsyNDIsNyBAQAogICAgIGxocy0+cnRfcHJvdG8gPSByaHMtPnJ0X3Byb3RvOwogCiAjaWZkZWYgVVNJTkdfSVBfRk9SV0FSRF9NSUJfSVBDSURSUk9VVEVUQUJMRV9JUENJRFJST1VURVRBQkxFX01PRFVMRQotICAgIGlmIChOVUxMICE9IGxocy0+cnRfaW5mbykKLSAgICAgICAgU05NUF9GUkVFKGxocy0+cnRfaW5mbyk7CisgICAgU05NUF9GUkVFKGxocy0+cnRfaW5mbyk7CiAgICAgaWYgKE5VTEwgIT0gcmhzLT5ydF9pbmZvKQogICAgICAgICBzbm1wX2Nsb25lX21lbSgodm9pZCAqKikgJmxocy0+cnRfaW5mbywgcmhzLT5ydF9pbmZvLAogICAgICAgICAgICAgICAgICAgICAgICByaHMtPnJ0X2luZm9fbGVuICogc2l6ZW9mKG9pZCkpOwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfaW9jdGwuYyBiL2FnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2lvY3RsLmMKaW5kZXggODE1YzQxNS4uZmY4OTE2MSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfaW9jdGwuYworKysgYi9hZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9pb2N0bC5jCkBAIC01Niw2ICs1Niw3IEBACiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaD4KIAogI2luY2x1ZGUgImlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaCIKQEAgLTk3LDcgKzk4LDcgQEAKIAogICAgIHMgPSBzb2NrZXQoQUZfSU5FVCwgU09DS19SQVcsIE5FVFNOTVBfUk9VVEVfV1JJVEVfUFJPVE9DT0wpOwogICAgIGlmIChzIDwgMCkgewotICAgICAgICBzbm1wX2xvZ19wZXJyb3IoInNvY2tldCIpOworICAgICAgICBzbm1wX2xvZ19wZXJyb3IoIm5ldHNubXBfaW9jdGxfcm91dGVfc2V0X3Y0OiBzb2NrZXQiKTsKICAgICAgICAgcmV0dXJuIC0zOwogICAgIH0KIApAQCAtMTA2LDcgKzEwNyw3IEBACiAgICAgZHN0LnNpbl9mYW1pbHkgPSBBRl9JTkVUOwogICAgIG1lbWNweSgmZHN0LnNpbl9hZGRyLnNfYWRkciwgZW50cnktPnJ0X2Rlc3QsIDQpOwogICAgIERFQlVHU1RSID0gaW5ldF9udG9hKGRzdC5zaW5fYWRkcik7Ci0gICAgREVCVUdNU0dUTCgoImFjY2Vzczpyb3V0ZSIsIioqKiByb3V0ZSB0byAlc1xuIiwgREVCVUdTVFIpKTsKKyAgICBERUJVR01TR1RMKCgiYWNjZXNzOnJvdXRlIiwiYWRkIHJvdXRlIHRvICVzXG4iLCBERUJVR1NUUikpOwogCiAgICAgZ2F0ZXdheS5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKICAgICBtZW1jcHkoJmdhdGV3YXkuc2luX2FkZHIuc19hZGRyLCBlbnRyeS0+cnRfbmV4dGhvcCwgNCk7CkBAIC0xMTQsNyArMTE1LDEwIEBACiAgICAgREVCVUdNU0dUTCgoImFjY2Vzczpyb3V0ZSIsIiAgICB2aWEgJXNcbiIsIERFQlVHU1RSKSk7CiAKICAgICBtYXNrLnNpbl9mYW1pbHkgPSBBRl9JTkVUOwotICAgIG1hc2suc2luX2FkZHIuc19hZGRyID0gaHRvbmwoMCk7CisgICAgaWYgKGVudHJ5LT5ydF9wZnhfbGVuICE9IDApCisJbWFzay5zaW5fYWRkci5zX2FkZHIgPSBuZXRzbm1wX2lwYWRkcmVzc19pcHY0X21hc2soZW50cnktPnJ0X3BmeF9sZW4pOworICAgIGVsc2UKKwltYXNrLnNpbl9hZGRyLnNfYWRkciA9IGVudHJ5LT5ydF9tYXNrOwogICAgIERFQlVHU1RSID0gaW5ldF9udG9hKG1hc2suc2luX2FkZHIpOwogICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6cm91dGUiLCIgICAgbWFzayAlc1xuIiwgREVCVUdTVFIpKTsKIApAQCAtMTMzLDMwICsxMzcsMzEgQEAKICNlbmRpZgogCiAgICAgcmMgPSBpb2N0bChzLCBTSU9DQUREUlQsIChjYWRkcl90KSAmIHJvdXRlKTsKLSAgICBjbG9zZShzKTsKICAgICBpZiAocmMgPCAwKSB7Ci0gICAgICAgIHNubXBfbG9nX3BlcnJvcigiaW9jdGwiKTsKLSAgICAgICAgcmV0dXJuIC00OworICAgICAgICBzbm1wX2xvZ19wZXJyb3IoIm5ldHNubXBfaW9jdGxfcm91dGVfc2V0X3Y0OiBpb2N0bCIpOworICAgICAgICByYyA9IC00OwogICAgIH0KKyAgICBjbG9zZShzKTsKIAotICAgIHJldHVybiAwOworICAgIHJldHVybiByYzsKIH0KICNlbmRpZgogCiAjaWYgZGVmaW5lZCBTSU9DREVMUlQgJiYgIWRlZmluZWQoaXJpeDYpCiBpbnQgX25ldHNubXBfaW9jdGxfcm91dGVfZGVsZXRlX3Y0KG5ldHNubXBfcm91dGVfZW50cnkgKiBlbnRyeSkKIHsKLSAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gZHN0OworICAgIHN0cnVjdCBzb2NrYWRkcl9pbiBkc3QsIG1hc2s7CiAgICAgc3RydWN0IHNvY2thZGRyX2luIGdhdGV3YXk7CiAgICAgaW50ICAgICAgICAgICAgIHMsIHJjOwogICAgIFJURU5UUlkgICAgICAgICByb3V0ZTsKKyAgICBjaGFyICAgICAgICAgICAqREVCVUdTVFI7CiAKICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGVudHJ5KTsgLyogY2hlY2tlZCBpbiBuZXRzbm1wX2FyY2hfcm91dGVfZGVsZXRlICovCiAgICAgbmV0c25tcF9hc3NlcnQoKDQgPT0gZW50cnktPnJ0X2Rlc3RfbGVuKSAmJiAoNCA9PSBlbnRyeS0+cnRfbmV4dGhvcF9sZW4pKTsKIAogICAgIHMgPSBzb2NrZXQoQUZfSU5FVCwgU09DS19SQVcsIE5FVFNOTVBfUk9VVEVfV1JJVEVfUFJPVE9DT0wpOwogICAgIGlmIChzIDwgMCkgewotICAgICAgICBzbm1wX2xvZ19wZXJyb3IoInNvY2tldCIpOworICAgICAgICBzbm1wX2xvZ19wZXJyb3IoIm5ldHNubXBfaW9jdGxfcm91dGVfZGVsZXRlX3Y0OiBzb2NrZXQiKTsKICAgICAgICAgcmV0dXJuIC0zOwogICAgIH0KIApAQCAtMTY0LDExICsxNjksMjAgQEAKIAogICAgIGRzdC5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKICAgICBtZW1jcHkoJmRzdC5zaW5fYWRkci5zX2FkZHIsIGVudHJ5LT5ydF9kZXN0LCA0KTsKKyAgICBERUJVR1NUUiA9IGluZXRfbnRvYShkc3Quc2luX2FkZHIpOworICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6cm91dGUiLCJkZWwgcm91dGUgdG8gJXNcbiIsIERFQlVHU1RSKSk7CisKKyAgICBtYXNrLnNpbl9mYW1pbHkgPSBBRl9JTkVUOworICAgIGlmIChlbnRyeS0+cnRfcGZ4X2xlbiAhPSAwKQorCW1hc2suc2luX2FkZHIuc19hZGRyID0gbmV0c25tcF9pcGFkZHJlc3NfaXB2NF9tYXNrKGVudHJ5LT5ydF9wZnhfbGVuKTsKKyAgICBlbHNlCisJbWFzay5zaW5fYWRkci5zX2FkZHIgPSBlbnRyeS0+cnRfbWFzazsKIAogICAgIGdhdGV3YXkuc2luX2ZhbWlseSA9IEFGX0lORVQ7CiAgICAgbWVtY3B5KCZnYXRld2F5LnNpbl9hZGRyLnNfYWRkciwgZW50cnktPnJ0X25leHRob3AsIDQpOwogCiAgICAgbWVtY3B5KCZyb3V0ZS5ydF9kc3QsICZkc3QsIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pKTsKKyAgICBtZW1jcHkoJnJvdXRlLnJ0X2dlbm1hc2ssICZtYXNrLCBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKSk7CiAgICAgbWVtY3B5KCZyb3V0ZS5ydF9nYXRld2F5LCAmZ2F0ZXdheSwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbikpOwogCiAgICAgaWYgKDMyID09IGVudHJ5LT5ydF9wZnhfbGVuKQpAQCAtMTgyLDExICsxOTYsMTEgQEAKICNlbmRpZgogCiAgICAgcmMgPSBpb2N0bChzLCBTSU9DREVMUlQsIChjYWRkcl90KSAmIHJvdXRlKTsKLSAgICBjbG9zZShzKTsKICAgICBpZiAocmMgPCAwKSB7Ci0gICAgICAgIHNubXBfbG9nX3BlcnJvcigiaW9jdGwiKTsKKyAgICAgICAgc25tcF9sb2dfcGVycm9yKCJuZXRzbm1wX2lvY3RsX3JvdXRlX2RlbGV0ZV92NDogaW9jdGwiKTsKICAgICAgICAgcmMgPSAtNDsKICAgICB9CisgICAgY2xvc2Uocyk7CiAKICAgICByZXR1cm4gcmM7CiB9CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jIGIvYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYwppbmRleCBmOGQ3OGE5Li4wZjgwZmU4IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jCisrKyBiL2FnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMKQEAgLTcyLDcgKzcyLDcgQEAKICAgICB3aGlsZSAoZmdldHMobGluZSwgc2l6ZW9mKGxpbmUpLCBpbikpIHsKICAgICAgICAgY2hhciAgICAgICAgICAgIHJ0ZW50X25hbWVbMzJdOwogICAgICAgICBpbnQgICAgICAgICAgICAgcmVmY250LCByYzsKLSAgICAgICAgdWludDMyX3QgICAgICAgIGRlc3QsIG5leHRob3AsIG1hc2ssIHRtcF9tYXNrOworICAgICAgICB1aW50MzJfdCAgICAgICAgZGVzdCwgbmV4dGhvcCwgbWFzazsKICAgICAgICAgdW5zaWduZWQgICAgICAgIGZsYWdzLCB1c2U7CiAKICAgICAgICAgZW50cnkgPSBuZXRzbm1wX2FjY2Vzc19yb3V0ZV9lbnRyeV9jcmVhdGUoKTsKQEAgLTg5LDcgKzg5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICogWFhYOiBmaXggdHlwZSBvZiB0aGUgYXJncyAKICAgICAgICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAgICAgICZmbGFncywgJnJlZmNudCwgJnVzZSwgJmVudHJ5LT5ydF9tZXRyaWMxLAotICAgICAgICAgICAgICAgICAgICAmdG1wX21hc2spOworICAgICAgICAgICAgICAgICAgICAmbWFzayk7CiAgICAgICAgIERFQlVHTVNHVEwoKCI5OmFjY2Vzczpyb3V0ZTpjb250YWluZXIiLCAibGluZSB8JXN8XG4iLCBsaW5lKSk7CiAgICAgICAgIGlmICg4ICE9IHJjKSB7CiAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLApAQCAtMTIxLDEwICsxMjEsOCBAQAogICAgICAgICAgKi8KICAgICAgICAgZW50cnktPm5zX3J0X2luZGV4ID0gKysoKmluZGV4KTsKIAotICAgICAgICBtYXNrID0gaHRvbmwodG1wX21hc2spOwotCiAjaWZkZWYgVVNJTkdfSVBfRk9SV0FSRF9NSUJfSVBDSURSUk9VVEVUQUJMRV9JUENJRFJST1VURVRBQkxFX01PRFVMRQotICAgICAgICBlbnRyeS0+cnRfbWFzayA9IG1hc2s7CisgICAgICAgIG1lbWNweSgmZW50cnktPnJ0X21hc2ssICZtYXNrLCA0KTsKICAgICAgICAgLyoqIGVudHJ5LT5ydF90b3MgPSBYWFg7ICovCiAgICAgICAgIC8qKiBydCBpbmZvID8/ICovCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX3NvbGFyaXMuYyBiL2FnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX3NvbGFyaXMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDhhZDIyCi0tLSAvZGV2L251bGwKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfc29sYXJpcy5jCkBAIC0wLDAgKzEsMjU4IEBACisvKgorICogIEludGVyZmFjZSBNSUIgYXJjaGl0ZWN0dXJlIHN1cHBvcnQKKyAqCisgKiAkSWQkCisgKi8KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgorI2luY2x1ZGUgIm1pYklJL21pYklJX2NvbW1vbi5oIgorCisjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oPgorCisjaW5jbHVkZSA8aW5ldC9pcC5oPgorI2luY2x1ZGUgPGluZXQvbWliMi5oPgorCisjaW5jbHVkZSAiaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfaW9jdGwuaCIKKyNpbmNsdWRlICJpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oIgorI2luY2x1ZGUgImlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuaCIKKworc3RhdGljIGludCBfbG9hZF92NChuZXRzbm1wX2NvbnRhaW5lciAqY29udGFpbmVyLCB1X2xvbmcgKmNvdW50KTsKK3N0YXRpYyBpbnQgX2xvYWRfdjYobmV0c25tcF9jb250YWluZXIgKmNvbnRhaW5lciwgdV9sb25nICpjb3VudCk7CisKKy8qKiBhcmNoIHNwZWNpZmljIGxvYWQKKyAqIEBpbnRlcm5hbAorICoKKyAqIEByZXR2YWwgIDAgc3VjY2VzcworICogQHJldHZhbCAtMSBubyBjb250YWluZXIgc3BlY2lmaWVkCisgKiBAcmV0dmFsIC0yIGNvdWxkIG5vdCBvcGVuIGRhdGEgZmlsZQorICovCitpbnQKK25ldHNubXBfYWNjZXNzX3JvdXRlX2NvbnRhaW5lcl9hcmNoX2xvYWQobmV0c25tcF9jb250YWluZXIqIGNvbnRhaW5lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9pbnQgbG9hZF9mbGFncykKK3sKKyAgICB1X2xvbmcgICAgICAgICAgY291bnQgPSAwOworICAgIGludCAgICAgICAgICAgICByYzsKKworICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6cm91dGU6Y29udGFpbmVyIiwKKyAgICAgICAgICAgICAgICAicm91dGVfY29udGFpbmVyX2FyY2hfbG9hZCAoZmxhZ3MgJXgpXG4iLCBsb2FkX2ZsYWdzKSk7CisKKyAgICBpZiAoTlVMTCA9PSBjb250YWluZXIpIHsKKyAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgIm5vIGNvbnRhaW5lciBzcGVjaWZpZWQvZm91bmQgZm9yIGFjY2Vzc19yb3V0ZVxuIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICByYyA9IF9sb2FkX3Y0KGNvbnRhaW5lciwgJmNvdW50KTsKKyAgICAKKyNpZmRlZiBORVRTTk1QX0VOQUJMRV9JUFY2CisgICAgaWYoKDAgIT0gcmMpIHx8IChsb2FkX2ZsYWdzICYgTkVUU05NUF9BQ0NFU1NfUk9VVEVfTE9BRF9JUFY0X09OTFkpKQorICAgICAgICByZXR1cm4gcmM7CisKKyAgICAvKgorICAgICAqIGxvYWQgaXB2Ni4gaXB2NiBtb2R1bGUgbWlnaHQgbm90IGJlIGxvYWRlZCwKKyAgICAgKiBzbyBpZ25vcmUgLTIgZXJyIChmaWxlIG5vdCBmb3VuZCkKKyAgICAgKi8KKyAgICByYyA9IF9sb2FkX3Y2KGNvbnRhaW5lciwgJmNvdW50KTsKKyAgICBpZiAoLTIgPT0gcmMpCisgICAgICAgIHJjID0gMDsKKyNlbmRpZgorCisgICAgcmV0dXJuIHJjOworfQorCisvKgorICogY3JlYXRlIGEgbmV3IGVudHJ5CisgKi8KK2ludAorbmV0c25tcF9hcmNoX3JvdXRlX2NyZWF0ZShuZXRzbm1wX3JvdXRlX2VudHJ5ICplbnRyeSkKK3sKKyAgICBpZiAoTlVMTCA9PSBlbnRyeSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgaWYgKDQgIT0gZW50cnktPnJ0X2Rlc3RfbGVuKSB7CisgICAgICAgIERFQlVHTVNHVCgoImFjY2Vzczpyb3V0ZTpjcmVhdGUiLCAib25seSBpcHY0IHN1cHBvcnRlZFxuIikpOworICAgICAgICByZXR1cm4gLTI7CisgICAgfQorCisgICAgLyogcmV0dXJuIF9uZXRzbm1wX2lvY3RsX3JvdXRlX3NldF92NChlbnRyeSk7ICovCisgICAgcmV0dXJuIC0yOworfQorCisvKgorICogY3JlYXRlIGEgbmV3IGVudHJ5CisgKi8KK2ludAorbmV0c25tcF9hcmNoX3JvdXRlX2RlbGV0ZShuZXRzbm1wX3JvdXRlX2VudHJ5ICplbnRyeSkKK3sKKyAgICBpZiAoTlVMTCA9PSBlbnRyeSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgaWYgKDQgIT0gZW50cnktPnJ0X2Rlc3RfbGVuKSB7CisgICAgICAgIERFQlVHTVNHVCgoImFjY2Vzczpyb3V0ZTpjcmVhdGUiLCAib25seSBpcHY0IHN1cHBvcnRlZFxuIikpOworICAgICAgICByZXR1cm4gLTI7CisgICAgfQorCisgICAgLyogcmV0dXJuIF9uZXRzbm1wX2lvY3RsX3JvdXRlX2RlbGV0ZV92NChlbnRyeSk7ICovCisgICAgcmV0dXJuIC0yOworfQorCisKK3N0YXRpYyBpbnQKK0lQX0NtcF9Sb3V0ZSh2b2lkICphZGRyLCB2b2lkICplcCkKK3sKKyAgICBtaWIyX2lwUm91dGVFbnRyeV90ICpFcCA9IGVwLCAqQWRkciA9IGFkZHI7CisKKyAgICBpZiAoKEVwLT5pcFJvdXRlRGVzdCA9PSBBZGRyLT5pcFJvdXRlRGVzdCkgJiYKKyAgICAgICAgKEVwLT5pcFJvdXRlTmV4dEhvcCA9PSBBZGRyLT5pcFJvdXRlTmV4dEhvcCkgJiYKKyAgICAgICAgKEVwLT5pcFJvdXRlVHlwZSA9PSBBZGRyLT5pcFJvdXRlVHlwZSkgJiYKKyAgICAgICAgKEVwLT5pcFJvdXRlUHJvdG8gPT0gQWRkci0+aXBSb3V0ZVByb3RvKSAmJgorICAgICAgICAoRXAtPmlwUm91dGVNYXNrID09IEFkZHItPmlwUm91dGVNYXNrKSAmJgorICAgICAgICAoRXAtPmlwUm91dGVJbmZvLnJlX21heF9mcmFnID09IEFkZHItPmlwUm91dGVJbmZvLnJlX21heF9mcmFnKSAmJgorICAgICAgICAoRXAtPmlwUm91dGVJbmZvLnJlX3J0dCA9PSBBZGRyLT5pcFJvdXRlSW5mby5yZV9ydHQpICYmCisgICAgICAgIChFcC0+aXBSb3V0ZUluZm8ucmVfcmVmID09IEFkZHItPmlwUm91dGVJbmZvLnJlX3JlZikgJiYKKyAgICAgICAgKEVwLT5pcFJvdXRlSW5mby5yZV9mcmFnX2ZsYWcgPT0gQWRkci0+aXBSb3V0ZUluZm8ucmVfZnJhZ19mbGFnKSAmJgorICAgICAgICAoRXAtPmlwUm91dGVJbmZvLnJlX3NyY19hZGRyID09IEFkZHItPmlwUm91dGVJbmZvLnJlX3NyY19hZGRyKSAmJgorICAgICAgICAoRXAtPmlwUm91dGVJbmZvLnJlX2lyZV90eXBlID09IEFkZHItPmlwUm91dGVJbmZvLnJlX2lyZV90eXBlKSAmJgorICAgICAgICAoRXAtPmlwUm91dGVJbmZvLnJlX29icGt0ID09IEFkZHItPmlwUm91dGVJbmZvLnJlX29icGt0KSAmJgorICAgICAgICAoRXAtPmlwUm91dGVJbmZvLnJlX2licGt0ID09IEFkZHItPmlwUm91dGVJbmZvLnJlX2licGt0KQorICAgICAgICApCisgICAgICAgIHJldHVybiAoMCk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gKDEpOyAgICAgICAgICAgICAvKiBOb3QgZm91bmQgKi8KK30KKworCitzdGF0aWMgaW50CitJUDZfQ21wX1JvdXRlKHZvaWQgKmFkZHIsIHZvaWQgKmVwKQoreworICAgIG1pYjJfaXB2NlJvdXRlRW50cnlfdCAqRXAgPSBlcCwgKkFkZHIgPSBhZGRyOworCisgICAgaWYgKChtZW1jbXAoJkVwLT5pcHY2Um91dGVEZXN0LCAmQWRkci0+aXB2NlJvdXRlRGVzdCwgMTYpID09IDApICYmCisgICAgICAgIChtZW1jbXAoJkVwLT5pcHY2Um91dGVOZXh0SG9wLCAmQWRkci0+aXB2NlJvdXRlTmV4dEhvcCwgMTYpID09IDApICYmCisgICAgICAgIChFcC0+aXB2NlJvdXRlVHlwZSA9PSBBZGRyLT5pcHY2Um91dGVUeXBlKSAmJgorICAgICAgICAoRXAtPmlwdjZSb3V0ZUluZm8ucmVfbWF4X2ZyYWcgPT0gQWRkci0+aXB2NlJvdXRlSW5mby5yZV9tYXhfZnJhZykgJiYKKyAgICAgICAgKEVwLT5pcHY2Um91dGVJbmZvLnJlX3J0dCA9PSBBZGRyLT5pcHY2Um91dGVJbmZvLnJlX3J0dCkgJiYKKyAgICAgICAgKEVwLT5pcHY2Um91dGVJbmZvLnJlX3JlZiA9PSBBZGRyLT5pcHY2Um91dGVJbmZvLnJlX3JlZikgJiYKKyAgICAgICAgKEVwLT5pcHY2Um91dGVJbmZvLnJlX2ZyYWdfZmxhZyA9PSBBZGRyLT5pcHY2Um91dGVJbmZvLnJlX2ZyYWdfZmxhZykgJiYKKyAgICAgICAgKG1lbWNtcCgmRXAtPmlwdjZSb3V0ZUluZm8ucmVfc3JjX2FkZHIsICZBZGRyLT5pcHY2Um91dGVJbmZvLnJlX3NyY19hZGRyLCAxNikgPT0gMCkgJiYKKyAgICAgICAgKEVwLT5pcHY2Um91dGVJbmZvLnJlX2lyZV90eXBlID09IEFkZHItPmlwdjZSb3V0ZUluZm8ucmVfaXJlX3R5cGUpICYmCisgICAgICAgIChFcC0+aXB2NlJvdXRlSW5mby5yZV9vYnBrdCA9PSBBZGRyLT5pcHY2Um91dGVJbmZvLnJlX29icGt0KSAmJgorICAgICAgICAoRXAtPmlwdjZSb3V0ZUluZm8ucmVfaWJwa3QgPT0gQWRkci0+aXB2NlJvdXRlSW5mby5yZV9pYnBrdCkKKyAgICAgICAgKQorICAgICAgICByZXR1cm4gKDApOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuICgxKTsgICAgICAgICAgICAgLyogTm90IGZvdW5kICovCit9CisKKworc3RhdGljIGludCBfbG9hZF92NChuZXRzbm1wX2NvbnRhaW5lciAqY29udGFpbmVyLCB1X2xvbmcgKmNvdW50KQoreworICAgIG5ldHNubXBfcm91dGVfZW50cnkgKmVudHJ5OworICAgIG1pYjJfaXBSb3V0ZUVudHJ5X3QgQ3VyZW50cnksIE5leHRlbnRyeTsKKyAgICBpbnQgcmVxX3R5cGU7CisKKyAgICBmb3IgKE5leHRlbnRyeS5pcFJvdXRlRGVzdCA9ICh1X2xvbmcpIC0yLCByZXFfdHlwZSA9IEdFVF9GSVJTVDs7CisgICAgICAgICAgICAgTmV4dGVudHJ5ID0gQ3VyZW50cnksIHJlcV90eXBlID0gR0VUX05FWFQpIHsKKwlpZiAoZ2V0TWlic3RhdChNSUJfSVBfUk9VVEUsICZDdXJlbnRyeSwgc2l6ZW9mKG1pYjJfaXBSb3V0ZUVudHJ5X3QpLAorCQkgICAgICAgcmVxX3R5cGUsICZJUF9DbXBfUm91dGUsICZOZXh0ZW50cnkpICE9IDApCisJICAgIGJyZWFrOworI2lmZGVmIEhBVkVfREVGSU5FRF9JUkVfQ0FDSEUKKwlpZiAoQ3VyZW50cnkuaXBSb3V0ZUluZm8ucmVfaXJlX3R5cGUgJiBJUkVfQ0FDSEUpCisJICAgIGNvbnRpbnVlOworI2VuZGlmIC8qIEhBVkVfREVGSU5FRF9JUkVfQ0FDSEUgKi8KKwlpZiAoQ3VyZW50cnkuaXBSb3V0ZUluZm8ucmVfaXJlX3R5cGUgJiBJUkVfQlJPQURDQVNUKQorCSAgICBjb250aW51ZTsKKwllbnRyeSA9IG5ldHNubXBfYWNjZXNzX3JvdXRlX2VudHJ5X2NyZWF0ZSgpOworCUN1cmVudHJ5LmlwUm91dGVJZkluZGV4Lm9fYnl0ZXNbQ3VyZW50cnkuaXBSb3V0ZUlmSW5kZXgub19sZW5ndGhdID0gJ1wwJzsKKwllbnRyeS0+aWZfaW5kZXggPSBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW5kZXhfZmluZCgKKyAgICAgICAgICAgICAgICBDdXJlbnRyeS5pcFJvdXRlSWZJbmRleC5vX2J5dGVzKTsKKwllbnRyeS0+bnNfcnRfaW5kZXggPSBlbnRyeS0+aWZfaW5kZXg7CisKKwllbnRyeS0+cnRfZGVzdF90eXBlID0gSU5FVEFERFJFU1NUWVBFX0lQVjQ7CisJZW50cnktPnJ0X2Rlc3RfbGVuID0gNDsKKwltZW1jcHkoZW50cnktPnJ0X2Rlc3QsICZDdXJlbnRyeS5pcFJvdXRlRGVzdCwgNCk7CisJbWVtY3B5KCZlbnRyeS0+cnRfbWFzaywgJkN1cmVudHJ5LmlwUm91dGVNYXNrLCA0KTsKKworCWVudHJ5LT5ydF9uZXh0aG9wX3R5cGUgPSBJTkVUQUREUkVTU1RZUEVfSVBWNDsKKwllbnRyeS0+cnRfbmV4dGhvcF9sZW4gPSA0OworCW1lbWNweShlbnRyeS0+cnRfbmV4dGhvcCwgJkN1cmVudHJ5LmlwUm91dGVOZXh0SG9wLCA0KTsKKworCWVudHJ5LT5ydF9wZnhfbGVuID0gbmV0c25tcF9pcGFkZHJlc3NfaXB2NF9wcmVmaXhfbGVuKEN1cmVudHJ5LmlwUm91dGVNYXNrKTsKKwllbnRyeS0+cnRfdHlwZSA9IEN1cmVudHJ5LmlwUm91dGVUeXBlOworCWVudHJ5LT5ydF9wcm90byA9IEN1cmVudHJ5LmlwUm91dGVQcm90bzsKKwllbnRyeS0+cnRfYWdlID0gQ3VyZW50cnkuaXBSb3V0ZUFnZTsKKwllbnRyeS0+cnRfbWV0cmljMSA9IEN1cmVudHJ5LmlwUm91dGVNZXRyaWMxOworCWVudHJ5LT5ydF9tZXRyaWMyID0gQ3VyZW50cnkuaXBSb3V0ZU1ldHJpYzI7CisJZW50cnktPnJ0X21ldHJpYzMgPSBDdXJlbnRyeS5pcFJvdXRlTWV0cmljMzsKKwllbnRyeS0+cnRfbWV0cmljNCA9IEN1cmVudHJ5LmlwUm91dGVNZXRyaWM0OworCisJLyoKKwkgKiBpbnNlcnQgaW50byBjb250YWluZXIKKwkgKi8KKwlpZiAoQ09OVEFJTkVSX0lOU0VSVChjb250YWluZXIsIGVudHJ5KSA8IDApIHsKKwkgICAgREVCVUdNU0dUTCgoImFjY2Vzczpyb3V0ZTpjb250YWluZXIiLCAiZXJyb3Igd2l0aCByb3V0ZV9lbnRyeTogaW5zZXJ0IGludG8gY29udGFpbmVyIGZhaWxlZC5cbiIpKTsKKwkgICAgbmV0c25tcF9hY2Nlc3Nfcm91dGVfZW50cnlfZnJlZShlbnRyeSk7CisJICAgIGNvbnRpbnVlOworCX0KKwkqY291bnQrKzsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKKworc3RhdGljIGludCBfbG9hZF92NihuZXRzbm1wX2NvbnRhaW5lciAqY29udGFpbmVyLCB1X2xvbmcgKmNvdW50KQoreworICAgIG5ldHNubXBfcm91dGVfZW50cnkgKmVudHJ5OworICAgIG1pYjJfaXB2NlJvdXRlRW50cnlfdCBDdXJlbnRyeSwgTmV4dGVudHJ5OworICAgIGludCByZXFfdHlwZTsKKworICAgIG1lbXNldCgmTmV4dGVudHJ5LCAwLCBzaXplb2YoTmV4dGVudHJ5KSk7CisgICAgZm9yIChyZXFfdHlwZSA9IEdFVF9GSVJTVDs7CisgICAgICAgICAgICAgTmV4dGVudHJ5ID0gQ3VyZW50cnksIHJlcV90eXBlID0gR0VUX05FWFQpIHsKKwlpZiAoZ2V0TWlic3RhdChNSUJfSVA2X1JPVVRFLCAmQ3VyZW50cnksIHNpemVvZihtaWIyX2lwdjZSb3V0ZUVudHJ5X3QpLAorCQkgICAgICAgcmVxX3R5cGUsICZJUDZfQ21wX1JvdXRlLCAmTmV4dGVudHJ5KSAhPSAwKQorCSAgICBicmVhazsKKyNpZmRlZiBIQVZFX0RFRklORURfSVJFX0NBQ0hFCisJaWYgKEN1cmVudHJ5LmlwdjZSb3V0ZUluZm8ucmVfaXJlX3R5cGUgJiBJUkVfQ0FDSEUpCisJICAgIGNvbnRpbnVlOworI2VuZGlmIC8qIEhBVkVfREVGSU5FRF9JUkVfQ0FDSEUgKi8KKwlpZiAoQ3VyZW50cnkuaXB2NlJvdXRlSW5mby5yZV9pcmVfdHlwZSAmIElSRV9CUk9BRENBU1QpCisJICAgIGNvbnRpbnVlOworCWVudHJ5ID0gbmV0c25tcF9hY2Nlc3Nfcm91dGVfZW50cnlfY3JlYXRlKCk7CisJQ3VyZW50cnkuaXB2NlJvdXRlSWZJbmRleC5vX2J5dGVzW0N1cmVudHJ5LmlwdjZSb3V0ZUlmSW5kZXgub19sZW5ndGhdID0gJ1wwJzsKKwllbnRyeS0+aWZfaW5kZXggPSBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW5kZXhfZmluZCgKKyAgICAgICAgICAgICAgICBDdXJlbnRyeS5pcHY2Um91dGVJZkluZGV4Lm9fYnl0ZXMpOworCWVudHJ5LT5uc19ydF9pbmRleCA9IGVudHJ5LT5pZl9pbmRleDsKKworCWVudHJ5LT5ydF9kZXN0X3R5cGUgPSBJTkVUQUREUkVTU1RZUEVfSVBWNjsKKwllbnRyeS0+cnRfZGVzdF9sZW4gPSAxNjsKKwltZW1jcHkoZW50cnktPnJ0X2Rlc3QsICZDdXJlbnRyeS5pcHY2Um91dGVEZXN0LCAxNik7CisKKwllbnRyeS0+cnRfbmV4dGhvcF90eXBlID0gSU5FVEFERFJFU1NUWVBFX0lQVjY7CisJZW50cnktPnJ0X25leHRob3BfbGVuID0gMTY7CisJbWVtY3B5KGVudHJ5LT5ydF9uZXh0aG9wLCAmQ3VyZW50cnkuaXB2NlJvdXRlTmV4dEhvcCwgMTYpOworCisJZW50cnktPnJ0X3BmeF9sZW4gPSBDdXJlbnRyeS5pcHY2Um91dGVQZnhMZW5ndGg7CisJZW50cnktPnJ0X3R5cGUgPSBDdXJlbnRyeS5pcHY2Um91dGVUeXBlOworCWVudHJ5LT5ydF9wcm90byA9IEN1cmVudHJ5LmlwdjZSb3V0ZVByb3RvY29sOworCWVudHJ5LT5ydF9hZ2UgPSBDdXJlbnRyeS5pcHY2Um91dGVBZ2U7CisJZW50cnktPnJ0X3BvbGljeSA9IGNhbGxvYygzLCBzaXplb2Yob2lkKSk7CisJZW50cnktPnJ0X3BvbGljeV9sZW4gPSAzOworCWVudHJ5LT5ydF9wb2xpY3lbMl0gPSBDdXJlbnRyeS5pcHY2Um91dGVQb2xpY3k7CisJZW50cnktPnJ0X21ldHJpYzEgPSBDdXJlbnRyeS5pcHY2Um91dGVNZXRyaWM7CisJZW50cnktPnJ0X21ldHJpYzIgPSBDdXJlbnRyeS5pcHY2Um91dGVXZWlnaHQ7CisKKwkvKgorCSAqIGluc2VydCBpbnRvIGNvbnRhaW5lcgorCSAqLworCWlmIChDT05UQUlORVJfSU5TRVJUKGNvbnRhaW5lciwgZW50cnkpIDwgMCkgeworCSAgICBERUJVR01TR1RMKCgiYWNjZXNzOnJvdXRlOmNvbnRhaW5lciIsICJlcnJvciB3aXRoIHJvdXRlX2VudHJ5OiBpbnNlcnQgaW50byBjb250YWluZXIgZmFpbGVkLlxuIikpOworCSAgICBuZXRzbm1wX2FjY2Vzc19yb3V0ZV9lbnRyeV9mcmVlKGVudHJ5KTsKKwkgICAgY29udGludWU7CisJfQorCSpjb3VudCsrOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX3N5c2N0bC5jIGIvYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfc3lzY3RsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDRmOTI2YgotLS0gL2Rldi9udWxsCisrKyBiL2FnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX3N5c2N0bC5jCkBAIC0wLDAgKzEsNDM2IEBACisvKgorICogIEludGVyZmFjZSBNSUIgYXJjaGl0ZWN0dXJlIHN1cHBvcnQKKyAqCisgKiAkSWQkCisgKi8KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgorI2luY2x1ZGUgIm1pYklJL21pYklJX2NvbW1vbi5oIgorCisjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oPgorI2luY2x1ZGUgPG5ldC9pZl9kbC5oPgorCisjaW5jbHVkZSAiaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfc3lzY3RsLmgiCisjaW5jbHVkZSAiaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaCIKKyNpbmNsdWRlICJpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmgiCisKK3N0YXRpYyBpbnQgX2xvYWRfaXB2NChuZXRzbm1wX2NvbnRhaW5lciosIGludCopOworc3RhdGljIGludCBfbG9hZF9pcHY2KG5ldHNubXBfY29udGFpbmVyKiwgaW50Kik7CitzdGF0aWMgaW50IF9jcmVhdGVfaXB2NChuZXRzbm1wX3JvdXRlX2VudHJ5ICopOworc3RhdGljIGludCBfY3JlYXRlX2lwdjYobmV0c25tcF9yb3V0ZV9lbnRyeSAqKTsKK3N0YXRpYyBpbnQgX2RlbGV0ZV9pcHY0KG5ldHNubXBfcm91dGVfZW50cnkgKik7CitzdGF0aWMgaW50IF9kZWxldGVfaXB2NihuZXRzbm1wX3JvdXRlX2VudHJ5ICopOworCisjaWYgIWRlZmluZWQoU0FfU0laRSkgJiYgIWRlZmluZWQoUlRfUk9VTkRVUCkKKyNkZWZpbmUgUlRfUk9VTkRVUChhKSAgXAorICAgICAgICAoKGEpID4gMCA/ICgxICsgKCgoYSkgLSAxKSB8IChzaXplb2YobG9uZykgLSAxKSkpIDogc2l6ZW9mKGxvbmcpKQorI2VuZGlmCisjaWZuZGVmIFNBX1NJWkUKKyNkZWZpbmUgU0FfU0laRSh4KSBSVF9ST1VORFVQKCgoc3RydWN0IHNvY2thZGRyICopKHgpKS0+c2FfbGVuKQorI2VuZGlmCisKKy8qKiBhcmNoIHNwZWNpZmljIGxvYWQKKyAqIEBpbnRlcm5hbAorICoKKyAqIEByZXR2YWwgIDAgc3VjY2VzcworICogQHJldHZhbCAtMSBubyBjb250YWluZXIgc3BlY2lmaWVkCisgKiBAcmV0dmFsIC0yIGNvdWxkIG5vdCBhY2Nlc3MgZGF0YSBzb3VyY2UKKyAqLworaW50CituZXRzbm1wX2FjY2Vzc19yb3V0ZV9jb250YWluZXJfYXJjaF9sb2FkKG5ldHNubXBfY29udGFpbmVyKiBjb250YWluZXIsCisJCQkJCSB1X2ludCBsb2FkX2ZsYWdzKQoreworICAgIGludCBjb3VudCwgZXJyOworCisgICAgZXJyID0gMDsKKworICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6cm91dGU6Y29udGFpbmVyIiwgInJvdXRlX2NvbnRhaW5lcl9hcmNoX2xvYWRcbiIpKTsKKworICAgIGlmIChjb250YWluZXIgPT0gTlVMTCkgeworICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAibm8gY29udGFpbmVyIHNwZWNpZmllZC9mb3VuZCBmb3IgYWNjZXNzX3JvdXRlXG4iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGVyciA9IF9sb2FkX2lwdjQoY29udGFpbmVyLCAmY291bnQpOworICAgIGlmIChlcnIgIT0gMCkgeworICAgICAgICBORVRTTk1QX0xPR09OQ0UoKExPR19FUlIsICJfbG9hZF9pcHY0IGZhaWxlZCAlZFxuIiwgZXJyKSk7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIGlmIChlcnIgIT0gMCB8fCBsb2FkX2ZsYWdzICYgTkVUU05NUF9BQ0NFU1NfUk9VVEVfTE9BRF9JUFY0X09OTFkpCisJcmV0dXJuIGVycjsKKworICAgIGVyciA9IF9sb2FkX2lwdjYoY29udGFpbmVyLCAmY291bnQpOworICAgIGlmIChlcnIgIT0gMCkgeworICAgICAgICBORVRTTk1QX0xPR09OQ0UoKExPR19FUlIsICJfbG9hZF9pcHY2IGZhaWxlZCAlZFxuIiwgZXJyKSk7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworb3V0OgorICAgIHJldHVybiAoZXJyID09IDAgPyAwIDogLTMpOworfQorCisvKiogYXJjaCBzcGVjaWZpYyBuZXcgcm91dGUgZW50cnkgY3JlYXRpb24KKyAqIEBpbnRlcm5hbAorICoKKyAqIEByZXR2YWwgIDAgc3VjY2VzcworICogQHJldHZhbCAtMSBpbnZhbGlkIGVudHJ5IHNwZWNpZmllZAorICogQHJldHZhbCAtMiBjb3VsZCBub3QgY3JlYXRlIHJvdXRlIGVudHJ5CisgKi8KK2ludAorbmV0c25tcF9hcmNoX3JvdXRlX2NyZWF0ZShuZXRzbm1wX3JvdXRlX2VudHJ5ICplbnRyeSkKK3sKKyAgICBpbnQgZXJyOworCisgICAgaWYgKE5VTEwgPT0gZW50cnkpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHN3aXRjaCAoZW50cnktPnJ0X2Rlc3RfdHlwZSkgeworICAgIGNhc2UgSU5FVEFERFJFU1NUWVBFX0lQVjQ6CisgICAgICAgIGVyciA9IF9jcmVhdGVfaXB2NChlbnRyeSk7CisgICAgICAgIGJyZWFrOworI2lmZGVmIE5FVFNOTVBfRU5BQkxFX0lQVjYKKyAgICBjYXNlIElORVRBRERSRVNTVFlQRV9JUFY2OgorICAgICAgICBlcnIgPSBfY3JlYXRlX2lwdjYoZW50cnkpOworICAgICAgICBicmVhazsKKyNlbmRpZgorICAgIGRlZmF1bHQ6CisgICAgICAgIGVyciA9IDA7CisgICAgfQorCisgICAgcmV0dXJuIChlcnIgPT0gMCA/IDAgOiAtMik7Cit9CisKKy8qKiBhcmNoIHNwZWNpZmljIG5ldyByb3V0ZSBlbnRyeSBkZWxldGlvbgorICogQGludGVybmFsCisgKgorICogQHJldHZhbCAgMCBzdWNjZXNzCisgKiBAcmV0dmFsIC0xIGludmFsaWQgZW50cnkgc3BlY2lmaWVkCisgKiBAcmV0dmFsIC0yIGNvdWxkIG5vdCBkZWxldGUgcm91dGUgZW50cnkKKyAqLworaW50CituZXRzbm1wX2FyY2hfcm91dGVfZGVsZXRlKG5ldHNubXBfcm91dGVfZW50cnkgKmVudHJ5KQoreworICAgIGludCBlcnI7CisKKyAgICBERUJVR01TR1RMKCgiYWNjZXNzOnJvdXRlOmNvbnRhaW5lciIsCisgICAgICAgICAgICAgICAgInJvdXRlX2NvbnRhaW5lcl9hcmNoX2RlbGV0ZVxuIikpOworCisgICAgaWYgKE5VTEwgPT0gZW50cnkpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHN3aXRjaCAoZW50cnktPnJ0X2Rlc3RfdHlwZSkgeworICAgIGNhc2UgSU5FVEFERFJFU1NUWVBFX0lQVjQ6CisgICAgICAgIGVyciA9IF9kZWxldGVfaXB2NChlbnRyeSk7CisgICAgICAgIGJyZWFrOworI2lmZGVmIE5FVFNOTVBfRU5BQkxFX0lQVjYKKyAgICBjYXNlIElORVRBRERSRVNTVFlQRV9JUFY2OgorICAgICAgICBlcnIgPSBfZGVsZXRlX2lwdjYoZW50cnkpOworICAgICAgICBicmVhazsKKyNlbmRpZgorICAgIGRlZmF1bHQ6CisgICAgICAgIGVyciA9IDA7CisgICAgfQorCisgICAgcmV0dXJuIChlcnIgPT0gMCA/IDAgOiAtMik7Cit9CisKKyNpZiBkZWZpbmVkKGZyZWVic2Q0KSB8fCBkZWZpbmVkKG5ldGJzZDQpIHx8IGRlZmluZWQob3BlbmJzZCkgfHwgZGVmaW5lZChkYXJ3aW4pCitzdGF0aWMgaW50CitfdHlwZV9mcm9tX2ZsYWdzKGludCBmbGFncykKK3sKKyAgICBpZiAoZmxhZ3MgJiBSVEZfVVApIHsKKyAgICAgICAgaWYgKGZsYWdzICYgUlRGX0JMQUNLSE9MRSkKKyAgICAgICAgICAgIHJldHVybiBJTkVUQ0lEUlJPVVRFVFlQRV9SRUpFQ1Q7CisjaWZkZWYgUlRGX0xPQ0FMCisgICAgICAgIGVsc2UgaWYgKGZsYWdzICYgUlRGX0xPQ0FMKQorICAgICAgICAgICAgcmV0dXJuIElORVRDSURSUk9VVEVUWVBFX0xPQ0FMOworI2VuZGlmCisgICAgICAgIGVsc2UgaWYgKGZsYWdzICYgUlRGX0dBVEVXQVkpCisgICAgICAgICAgICByZXR1cm4gSU5FVENJRFJST1VURVRZUEVfUkVNT1RFOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gSU5FVENJRFJST1VURVRZUEVfT1RIRVI7CisgICAgfQorICAgIHJldHVybiAwOworfQorCisKK3N0YXRpYyBpbnQKK19sb2FkX3JvdXRpbmdfdGFibGVfZnJvbV9zeXNjdGwobmV0c25tcF9jb250YWluZXIqIGNvbnRhaW5lciwgaW50ICppbmRleCwKKyAgICBpbnQgZmFtaWx5KQoreworICAgIGNoYXIgKmJ1ZiwgKmxpbSwgKm5leHQ7CisgICAgaW50IG1pYls2XTsKKyAgICBzaXplX3QgbmVlZGVkOworICAgIGludCBlcnI7CisgICAgdV9jaGFyIGRlc3RfbGVuLCBkZXN0X3R5cGU7CisgICAgc3RydWN0IHJ0X21zZ2hkciAqcnRtOworCisgICAgYnVmID0gTlVMTDsKKyAgICBlcnIgPSAwOworCisgICAgaWYgKGZhbWlseSA9PSBBRl9JTkVUKSB7CisgICAgICAgIGRlc3RfbGVuID0gNDsKKyAgICAgICAgZGVzdF90eXBlID0gSU5FVEFERFJFU1NUWVBFX0lQVjQ7CisgICAgfSBlbHNlIGlmIChmYW1pbHkgPT0gQUZfSU5FVDYpIHsKKyAgICAgICAgZGVzdF9sZW4gPSAxNjsKKyAgICAgICAgZGVzdF90eXBlID0gSU5FVEFERFJFU1NUWVBFX0lQVjY7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZXJyID0gRUlOVkFMOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisKKyAgICBtaWJbMF0gPSBDVExfTkVUOworICAgIG1pYlsxXSA9IFBGX1JPVVRFOworICAgIG1pYlsyXSA9IDA7CisgICAgbWliWzNdID0gZmFtaWx5OworICAgIG1pYls0XSA9IE5FVF9SVF9EVU1QOworICAgIG1pYls1XSA9IDA7CisKKyAgICBpZiAoc3lzY3RsKG1pYiwgKHNpemVvZihtaWIpIC8gc2l6ZW9mKG1pYlswXSkpLCBOVUxMLCAmbmVlZGVkLCBOVUxMLAorICAgICAgICAwKSA9PSAtMSkgeworICAgICAgICBlcnIgPSBlcnJubzsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgaWYgKChidWYgPSBtYWxsb2MobmVlZGVkKSkgPT0gTlVMTCkgeworICAgICAgICBlcnIgPSBFTk9NRU07CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIGlmIChzeXNjdGwobWliLCAoc2l6ZW9mKG1pYikgLyBzaXplb2YobWliWzBdKSksIGJ1ZiwgJm5lZWRlZCwgTlVMTCwKKyAgICAgICAgMCkgPT0gLTEpIHsKKyAgICAgICAgZXJyID0gZXJybm87CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIGxpbSA9IGJ1ZiArIG5lZWRlZDsKKworICAgIGZvciAobmV4dCA9IGJ1ZjsgbmV4dCA8IGxpbTsgbmV4dCArPSBydG0tPnJ0bV9tc2dsZW4pIHsgICAgCisJc3RydWN0IHNvY2thZGRyICppZl9uYW1lID0gTlVMTCwgKmlmX2FkZHIgPSBOVUxMOworCXN0cnVjdCBzb2NrYWRkciAqZGVzdF9zYSA9IE5VTEwsICpnYXRld2F5X3NhID0gTlVMTCwgKm5ldG1hc2tfc2EgPSBOVUxMOworCW5ldHNubXBfcm91dGVfZW50cnkgKmVudHJ5OworCWNoYXIgKmFkZHJfcHRyOworCisgICAgICAgIHJ0bSA9IChzdHJ1Y3QgcnRfbXNnaGRyKiluZXh0OworCisgICAgICAgIC8qIAorICAgICAgICAgKiBTb21lIGNvZGUgaW4gbmV0c3RhdCBjaGVja3MgZm9yIHRoaXMgKCJuZXRtYXNrcyBkb25lIiBjYXNlKS4KKyAgICAgICAgICogRmlsdGVyIHRoaXMgb3V0IChJIGRvbid0IGtub3cgd2h5IGl0IHNob3VsZCBleGlzdCkuCisgICAgICAgICAqLworICAgICAgICBpZiAocnRtLT5ydG1fYWRkcnMgPT0gUlRBX0RTVCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGVudHJ5ID0gbmV0c25tcF9hY2Nlc3Nfcm91dGVfZW50cnlfY3JlYXRlKCk7CisgICAgICAgIGlmIChlbnRyeSA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIC0zOworICAgICAgICBtZW1zZXQoZW50cnktPnJ0X2Rlc3QsIDAsIGRlc3RfbGVuKTsKKyAgICAgICAgZW50cnktPnJ0X21hc2sgPSAwOworICAgICAgICBtZW1zZXQoZW50cnktPnJ0X25leHRob3AsIDAsIGRlc3RfbGVuKTsKKworICAgICAgICBhZGRyX3B0ciA9IChjaGFyICopKHJ0bSArIDEpOworCisJaWYgKHJ0bS0+cnRtX2FkZHJzICYgIFJUQV9EU1QpIHsKKwkgICAgZGVzdF9zYSA9IChzdHJ1Y3Qgc29ja2FkZHIgKilhZGRyX3B0cjsKKwkgICAgYWRkcl9wdHIgKz0gU0FfU0laRShkZXN0X3NhKTsKKwl9CisJaWYgKHJ0bS0+cnRtX2FkZHJzICYgIFJUQV9HQVRFV0FZKSB7CisJICAgIGdhdGV3YXlfc2EgPSAoc3RydWN0IHNvY2thZGRyICopYWRkcl9wdHI7CisJICAgIGFkZHJfcHRyICs9IFNBX1NJWkUoZ2F0ZXdheV9zYSk7CisJfQorCWlmIChydG0tPnJ0bV9hZGRycyAmICBSVEFfTkVUTUFTSykgeworCSAgICBuZXRtYXNrX3NhID0gKHN0cnVjdCBzb2NrYWRkciAqKWFkZHJfcHRyOworCSAgICBhZGRyX3B0ciArPSBTQV9TSVpFKG5ldG1hc2tfc2EpOworCX0KKwlpZiAocnRtLT5ydG1fYWRkcnMgJiAgUlRBX0lGUCkgeworCSAgICBpZl9uYW1lID0gKHN0cnVjdCBzb2NrYWRkciAqKWFkZHJfcHRyOworCSAgICBhZGRyX3B0ciArPSBTQV9TSVpFKGlmX25hbWUpOworCX0KKwlpZiAocnRtLT5ydG1fYWRkcnMgJiAgUlRBX0lGQSkgeworCSAgICBpZl9hZGRyID0gKHN0cnVjdCBzb2NrYWRkciAqKWFkZHJfcHRyOworCSAgICBhZGRyX3B0ciArPSBTQV9TSVpFKGlmX2FkZHIpOworCX0KKworICAgICAgICBlbnRyeS0+aWZfaW5kZXggPSBydG0tPnJ0bV9pbmRleDsKKworICAgICAgICAvKiBhcmJpdHJhcnkgaW5kZXggKi8KKyAgICAgICAgZW50cnktPm5zX3J0X2luZGV4ID0gKysoKmluZGV4KTsKKworICAgICAgICAvKiBjb3B5IGRlc3QgJiBuZXh0IGhvcCAqLworICAgICAgICBlbnRyeS0+cnRfZGVzdF90eXBlID0gZGVzdF90eXBlOworICAgICAgICBlbnRyeS0+cnRfZGVzdF9sZW4gPSBkZXN0X2xlbjsKKyAgICAgICAgaWYgKHJ0bS0+cnRtX2FkZHJzICYgUlRBX0RTVCkgeworICAgICAgICAgICAgaWYgKGZhbWlseSA9PSBBRl9JTkVUKQorICAgICAgICAgICAgICAgIG1lbWNweShlbnRyeS0+cnRfZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgJigoc3RydWN0IHNvY2thZGRyX2luKilkZXN0X3NhKS0+c2luX2FkZHIsIGRlc3RfbGVuKTsKKyNpZmRlZiBORVRTTk1QX0VOQUJMRV9JUFY2CisgICAgICAgICAgICBpZiAoZmFtaWx5ID09IEFGX0lORVQ2KQorICAgICAgICAgICAgICAgIG1lbWNweShlbnRyeS0+cnRfZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgJigoc3RydWN0IHNvY2thZGRyX2luNiopZGVzdF9zYSktPnNpbjZfYWRkciwgZGVzdF9sZW4pOworI2VuZGlmCisgICAgICAgIH0KKworICAgICAgICBlbnRyeS0+cnRfbmV4dGhvcF90eXBlID0gZGVzdF90eXBlOworICAgICAgICBlbnRyeS0+cnRfbmV4dGhvcF9sZW4gPSBkZXN0X2xlbjsKKyAgICAgICAgaWYgKHJ0bS0+cnRtX2FkZHJzICYgUlRBX0dBVEVXQVkpIHsKKyAgICAgICAgICAgIGlmIChmYW1pbHkgPT0gQUZfSU5FVCkKKyAgICAgICAgICAgICAgICBtZW1jcHkoZW50cnktPnJ0X25leHRob3AsCisgICAgICAgICAgICAgICAgICAgICYoKHN0cnVjdCBzb2NrYWRkcl9pbiopZ2F0ZXdheV9zYSktPnNpbl9hZGRyLCBkZXN0X2xlbik7CisjaWZkZWYgTkVUU05NUF9FTkFCTEVfSVBWNgorICAgICAgICAgICAgaWYgKGZhbWlseSA9PSBBRl9JTkVUNikKKyAgICAgICAgICAgICAgICBtZW1jcHkoZW50cnktPnJ0X25leHRob3AsCisgICAgICAgICAgICAgICAgICAgICYoKHN0cnVjdCBzb2NrYWRkcl9pbjYqKWdhdGV3YXlfc2EpLT5zaW42X2FkZHIsIGRlc3RfbGVuKTsKKyNlbmRpZgorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGZhbWlseSA9PSBBRl9JTkVUKQorICAgICAgICAgICAgICAgIG1lbWNweShlbnRyeS0+cnRfbmV4dGhvcCwKKyAgICAgICAgICAgICAgICAgICAgJigoc3RydWN0IHNvY2thZGRyX2luKilpZl9hZGRyKS0+c2luX2FkZHIsIGRlc3RfbGVuKTsKKyNpZmRlZiBORVRTTk1QX0VOQUJMRV9JUFY2CisgICAgICAgICAgICBpZiAoZmFtaWx5ID09IEFGX0lORVQ2KQorICAgICAgICAgICAgICAgIG1lbWNweShlbnRyeS0+cnRfbmV4dGhvcCwKKyAgICAgICAgICAgICAgICAgICAgJigoc3RydWN0IHNvY2thZGRyX2luNiopaWZfYWRkciktPnNpbjZfYWRkciwgZGVzdF9sZW4pOworI2VuZGlmCisgICAgICAgIH0KKworICAgICAgICBpZiAoZmFtaWx5ID09IEFGX0lORVQpIHsKKwkgICAgaWYgKG5ldG1hc2tfc2EpIHsKKyAgICAgICAgICAgIC8qIGNvdW50IGJpdHMgaW4gbWFzayAqLworCQllbnRyeS0+cnRfcGZ4X2xlbiA9IG5ldHNubXBfaXBhZGRyZXNzX2lwdjRfcHJlZml4X2xlbigKKwkJCSgoc3RydWN0IHNvY2thZGRyX2luICopbmV0bWFza19zYSktPnNpbl9hZGRyLnNfYWRkcik7CisJCW1lbWNweSgmZW50cnktPnJ0X21hc2ssICYoKHN0cnVjdCBzb2NrYWRkcl9pbiAqKW5ldG1hc2tfc2EpLT5zaW5fYWRkciwgNCk7CisJICAgIH0KKwkgICAgZWxzZSB7CisJCWVudHJ5LT5ydF9wZnhfbGVuID0gMzI7CisJICAgIH0KKyAgICAgICAgfQorI2lmZGVmIE5FVFNOTVBfRU5BQkxFX0lQVjYKKyAgICAgICAgaWYgKGZhbWlseSA9PSBBRl9JTkVUNikgeworCSAgICBpZiAobmV0bWFza19zYSkgeworICAgICAgICAgICAgLyogY291bnQgYml0cyBpbiBtYXNrICovCisJCWVudHJ5LT5ydF9wZnhfbGVuID0gbmV0c25tcF9pcGFkZHJlc3NfaXB2Nl9wcmVmaXhfbGVuKAorCQkJKChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopbmV0bWFza19zYSktPnNpbjZfYWRkcik7CisJCW1lbWNweSgmZW50cnktPnJ0X21hc2ssICYoKHN0cnVjdCBzb2NrYWRkcl9pbjYgKiluZXRtYXNrX3NhKS0+c2luNl9hZGRyLCAxNik7CisJICAgIH0KKwkgICAgZWxzZSB7CisJCWVudHJ5LT5ydF9wZnhfbGVuID0gMTI4OworCSAgICB9CisgICAgICAgIH0KKyNlbmRpZgorCisjaWZkZWYgVVNJTkdfSVBfRk9SV0FSRF9NSUJfSU5FVENJRFJST1VURVRBQkxFX0lORVRDSURSUk9VVEVUQUJMRV9NT0RVTEUKKyAgICAgICAgLyoKKyAgICBpbmV0Q2lkclJvdXRlUG9saWN5IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgIE9CSkVDVCBJREVOVElGSUVSIAorICAgICAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgICAgIlRoaXMgb2JqZWN0IGlzIGFuIG9wYXF1ZSBvYmplY3Qgd2l0aG91dCBhbnkgZGVmaW5lZCAKKyAgICAgICAgICAgICAgICBzZW1hbnRpY3MuICBJdHMgcHVycG9zZSBpcyB0byBzZXJ2ZSBhcyBhbiBhZGRpdGlvbmFsIAorICAgICAgICAgICAgICAgIGluZGV4IHdoaWNoIG1heSBkZWxpbmVhdGUgYmV0d2VlbiBtdWx0aXBsZSBlbnRyaWVzIHRvIAorICAgICAgICAgICAgICAgIHRoZSBzYW1lIGRlc3RpbmF0aW9uLiAgVGhlIHZhbHVlIHsgMCAwIH0gc2hhbGwgYmUgdXNlZCAKKyAgICAgICAgICAgICAgICBhcyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhpcyBvYmplY3QuIgorICAgICAgICAqLworCWVudHJ5LT5ydF9wb2xpY3kgPSBjYWxsb2MoMywgc2l6ZW9mKG9pZCkpOworCWVudHJ5LT5ydF9wb2xpY3lbMl0gPSBlbnRyeS0+aWZfaW5kZXg7CisJZW50cnktPnJ0X3BvbGljeV9sZW4gPSBzaXplb2Yob2lkKSozOworI2VuZGlmCisKKyAgICAgICAgZW50cnktPnJ0X3R5cGUgPSBfdHlwZV9mcm9tX2ZsYWdzKHJ0bS0+cnRtX2ZsYWdzKTsKKwllbnRyeS0+cnRfYWdlID0gcnRtLT5ydG1fcm14LnJteF9leHBpcmU7CisJZW50cnktPnJ0X25leHRob3BfYXMgPSAwOworCS8qIGVudHJ5LT5ydF9tZXRyaWMxID0gcnRtLT5ydG1fcm14LnJteF9ob3Bjb3VudDsgKi8KKworICAgICAgICBpZiAocnRtLT5ydG1fZmxhZ3MgJiBSVEZfRFlOQU1JQykKKyAgICAgICAgICAgIGVudHJ5LT5ydF9wcm90byA9IElBTkFJUFJPVVRFUFJPVE9DT0xfSUNNUDsKKyAgICAgICAgZWxzZSBpZiAocnRtLT5ydG1fZmxhZ3MgJiBSVEZfU1RBVElDKQorICAgICAgICAgICAgZW50cnktPnJ0X3Byb3RvID0gSUFOQUlQUk9VVEVQUk9UT0NPTF9ORVRNR01UOworI2lmZGVmIFJURl9MT0NBTAorICAgICAgICBlbHNlIGlmIChydG0tPnJ0bV9mbGFncyAmIFJURl9MT0NBTCkKKyAgICAgICAgICAgIGVudHJ5LT5ydF9wcm90byA9IElBTkFJUFJPVVRFUFJPVE9DT0xfTE9DQUw7CisjZW5kaWYKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZW50cnktPnJ0X3Byb3RvID0gSUFOQUlQUk9VVEVQUk9UT0NPTF9PVEhFUjsKKworICAgICAgICBpZiAoQ09OVEFJTkVSX0lOU0VSVChjb250YWluZXIsIGVudHJ5KSA8IDApIHsKKyAgICAgICAgICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6cm91dGU6Y29udGFpbmVyIiwKKyAgICAgICAgICAgICAgICAiZXJyb3Igd2l0aCByb3V0ZV9lbnRyeTogaW5zZXJ0IGludG8gY29udGFpbmVyIGZhaWxlZC5cbiIpKTsKKyAgICAgICAgICAgIG5ldHNubXBfYWNjZXNzX3JvdXRlX2VudHJ5X2ZyZWUoZW50cnkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICB9CisKK291dDoKKyAgICBmcmVlKGJ1Zik7CisKKyAgICByZXR1cm4gZXJyOworfQorCisvKioKKyAqIG5ldHNubXBfYWNjZXNzX3JvdXRlX2NvbnRhaW5lcl9hcmNoX2xvYWQqIGZ1bmN0aW9ucy4KKyAqLworc3RhdGljIGludAorX2xvYWRfaXB2NChuZXRzbm1wX2NvbnRhaW5lciogY29udGFpbmVyLCBpbnQgKmluZGV4KQoreworCisgICAgREVCVUdNU0dUTCgoImFjY2Vzczpyb3V0ZTpjb250YWluZXIiLAorICAgICAgICAgICAgICAgICJyb3V0ZV9jb250YWluZXJfYXJjaF9sb2FkIGlwdjRcbiIpKTsKKyAgICByZXR1cm4gX2xvYWRfcm91dGluZ190YWJsZV9mcm9tX3N5c2N0bChjb250YWluZXIsIGluZGV4LCBBRl9JTkVUKTsKK30KKworc3RhdGljIGludAorX2xvYWRfaXB2NihuZXRzbm1wX2NvbnRhaW5lciogY29udGFpbmVyLCBpbnQgKmluZGV4KQoreworCisjaWZkZWYgTkVUU05NUF9FTkFCTEVfSVBWNgorICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6cm91dGU6Y29udGFpbmVyIiwKKyAgICAgICAgICAgICAgICAicm91dGVfY29udGFpbmVyX2FyY2hfbG9hZCBpcHY2XG4iKSk7CisgICAgcmV0dXJuIF9sb2FkX3JvdXRpbmdfdGFibGVfZnJvbV9zeXNjdGwoY29udGFpbmVyLCBpbmRleCwgQUZfSU5FVDYpOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCisvKioKKyAqIG5ldHNubXBfYWNjZXNzX3JvdXRlX2NyZWF0ZSogZnVuY3Rpb25zLgorICoKKyAqIFRPRE86IGFkZCBsb2dpYyBzaW1pbGFyIHRvIG5ld3JvdXRlKC4uKSBpbiBzYmluL3JvdXRlL3JvdXRlLmMgLgorICovCitzdGF0aWMgaW50CitfY3JlYXRlX2lwdjQobmV0c25tcF9yb3V0ZV9lbnRyeSAqZW50cnkpCit7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorX2NyZWF0ZV9pcHY2KG5ldHNubXBfcm91dGVfZW50cnkgKmVudHJ5KQoreworCisgICAgcmV0dXJuIDA7Cit9CisKKy8qKgorICogbmV0c25tcF9hY2Nlc3Nfcm91dGVfZGVsZXRlKiBmdW5jdGlvbnMuCisgKgorICogVE9ETzogYWRkIGxvZ2ljIHNpbWlsYXIgdG8gbmV3cm91dGUoLi4pIGluIHNiaW4vcm91dGUvcm91dGUuYyAuCisgKi8KK3N0YXRpYyBpbnQKK19kZWxldGVfaXB2NChuZXRzbm1wX3JvdXRlX2VudHJ5ICplbnRyeSkKK3sKKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50CitfZGVsZXRlX2lwdjYobmV0c25tcF9yb3V0ZV9lbnRyeSAqZW50cnkpCit7CisjaWZkZWYgTkVUU05NUF9FTkFCTEVfSVBWNgorCisjZW5kaWYKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBkZWZpbmVkKGZyZWVic2Q3KSB8fCBkZWZpbmVkKG5ldGJzZCkgfHwgZGVmaW5lZChvcGVuYnNkKSAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfc3lzY3RsLmggYi9hZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9zeXNjdGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWVjY2M3Ci0tLSAvZGV2L251bGwKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfc3lzY3RsLmgKQEAgLTAsMCArMSw5IEBACisjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorI2luY2x1ZGUgPG5ldC9pZi5oPgorI2luY2x1ZGUgPG5ldC9yb3V0ZS5oPgorI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGlmYWRkcnMuaD4KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYwppbmRleCA4ZGVmMWQ5Li4wZjAxM2VhIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jCkBAIC0xNCw2ICsxNCw3IEBACiAgKiBzdGFuZGFyZCBOZXQtU05NUCBpbmNsdWRlcyAKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCkBAIC0yNiw2ICsyNyw5IEBACiAKICNpbmNsdWRlICJpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGluZXRDaWRyUm91dGVUYWJsZV9jb250YWluZXJfZ2V0KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnRhaW5lcl9zaXplKQorCiBjb25zdCBvaWQgICAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX29pZFtdID0geyBJTkVUQ0lEUlJPVVRFVEFCTEVfT0lEIH07CiBjb25zdCBpbnQgICAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX29pZF9zaXplID0KIE9JRF9MRU5HVEgoaW5ldENpZHJSb3V0ZVRhYmxlX29pZCk7CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jIGIvYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwppbmRleCA1NTljMGNhLi41ZGY0NmI2IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKQEAgLTMwLDYgKzMwLDcgQEAKICAqIHN0YW5kYXJkIE5ldC1TTk1QIGluY2x1ZGVzIAogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAKQEAgLTQ2LDYgKzQ3LDE2IEBACiAKICNpbmNsdWRlIDxjdHlwZS5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaW5ldENpZHJSb3V0ZVRhYmxlX2V4dGVybmFsX2FjY2VzcywgbGlibmV0c25tcG1pYnMpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShyb3dfbWVyZ2UpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShiYWJ5X3N0ZXBzKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfY29udGFpbmVyX3Jvd19pbnNlcnQpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja19hbGxfcmVxdWVzdHNfZXJyb3IpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpbmV0Q2lkclJvdXRlVGFibGVfY29udGFpbmVyX3NpemUsIGluZXRDaWRyUm91dGVUYWJsZV9leHRlcm5hbF9hY2Nlc3MpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaW5ldENpZHJSb3V0ZVRhYmxlX3JlZ2lzdHJhdGlvbl9zZXQsIGluZXRDaWRyUm91dGVUYWJsZV9leHRlcm5hbF9hY2Nlc3MpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaW5ldENpZHJSb3V0ZVRhYmxlX3JlZ2lzdHJhdGlvbl9nZXQsIGluZXRDaWRyUm91dGVUYWJsZV9leHRlcm5hbF9hY2Nlc3MpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnRhaW5lcl9nZXQsIGluZXRDaWRyUm91dGVUYWJsZV9leHRlcm5hbF9hY2Nlc3MpCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqKioKQEAgLTgyLDE5ICs5MywyMyBAQAogICAgICAgICAgICAgICAgIF9pbmV0Q2lkclJvdXRlVGFibGVfY29udGFpbmVyX3NodXRkb3duKGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2VfY3R4ICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZl9jdHgpOwogCi0KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JTkVUQ0lEUlJPVVRFVEFCTEVfQ09OVEFJTkVSX0dFVAogbmV0c25tcF9jb250YWluZXIgKgogaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnRhaW5lcl9nZXQodm9pZCkKIHsKICAgICByZXR1cm4gaW5ldENpZHJSb3V0ZVRhYmxlX2lmX2N0eC5jb250YWluZXI7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JTkVUQ0lEUlJPVVRFVEFCTEVfQ09OVEFJTkVSX0dFVCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSU5FVENJRFJST1VURVRBQkxFX1JFR0lTVFJBVElPTl9HRVQKIGluZXRDaWRyUm91dGVUYWJsZV9yZWdpc3RyYXRpb24gKgogaW5ldENpZHJSb3V0ZVRhYmxlX3JlZ2lzdHJhdGlvbl9nZXQodm9pZCkKIHsKICAgICByZXR1cm4gaW5ldENpZHJSb3V0ZVRhYmxlX2lmX2N0eC51c2VyX2N0eDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lORVRDSURSUk9VVEVUQUJMRV9SRUdJU1RSQVRJT05fR0VUICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JTkVUQ0lEUlJPVVRFVEFCTEVfUkVHSVNUUkFUSU9OX1NFVAogaW5ldENpZHJSb3V0ZVRhYmxlX3JlZ2lzdHJhdGlvbiAqCiBpbmV0Q2lkclJvdXRlVGFibGVfcmVnaXN0cmF0aW9uX3NldChpbmV0Q2lkclJvdXRlVGFibGVfcmVnaXN0cmF0aW9uICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3JlZykKQEAgLTEwNCwxMiArMTE5LDE1IEBACiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2lmX2N0eC51c2VyX2N0eCA9IG5ld3JlZzsKICAgICByZXR1cm4gb2xkOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSU5FVENJRFJST1VURVRBQkxFX1JFR0lTVFJBVElPTl9TRVQgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lORVRDSURSUk9VVEVUQUJMRV9DT05UQUlORVJfU0laRQogaW50CiBpbmV0Q2lkclJvdXRlVGFibGVfY29udGFpbmVyX3NpemUodm9pZCkKIHsKICAgICByZXR1cm4gQ09OVEFJTkVSX1NJWkUoaW5ldENpZHJSb3V0ZVRhYmxlX2lmX2N0eC5jb250YWluZXIpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSU5FVENJRFJST1VURVRBQkxFX0NPTlRBSU5FUl9TSVpFICovCiAKIHVfaW50CiBpbmV0Q2lkclJvdXRlVGFibGVfZGlydHlfZ2V0KHZvaWQpCkBAIC0xNDAsNyArMTU4LDcgQEAKIHN0YXRpYyBOZXRzbm1wX05vZGVfSGFuZGxlciBfbWZkX2luZXRDaWRyUm91dGVUYWJsZV9wb3N0X3JlcXVlc3Q7CiBzdGF0aWMgTmV0c25tcF9Ob2RlX0hhbmRsZXIgX21mZF9pbmV0Q2lkclJvdXRlVGFibGVfb2JqZWN0X2xvb2t1cDsKIHN0YXRpYyBOZXRzbm1wX05vZGVfSGFuZGxlciBfbWZkX2luZXRDaWRyUm91dGVUYWJsZV9nZXRfdmFsdWVzOwotI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKKyNpZiAhKGRlZmluZWQoTkVUU05NUF9OT19XUklURV9TVVBQT1JUKSB8fCBkZWZpbmVkKE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCkpCiBzdGF0aWMgTmV0c25tcF9Ob2RlX0hhbmRsZXIgX21mZF9pbmV0Q2lkclJvdXRlVGFibGVfY2hlY2tfb2JqZWN0czsKIHN0YXRpYyBOZXRzbm1wX05vZGVfSGFuZGxlciBfbWZkX2luZXRDaWRyUm91dGVUYWJsZV91bmRvX3NldHVwOwogc3RhdGljIE5ldHNubXBfTm9kZV9IYW5kbGVyIF9tZmRfaW5ldENpZHJSb3V0ZVRhYmxlX3NldF92YWx1ZXM7CkBAIC0xNTAsNyArMTY4LDcgQEAKIHN0YXRpYyBOZXRzbm1wX05vZGVfSGFuZGxlciBfbWZkX2luZXRDaWRyUm91dGVUYWJsZV91bmRvX2NvbW1pdDsKIHN0YXRpYyBOZXRzbm1wX05vZGVfSGFuZGxlciBfbWZkX2luZXRDaWRyUm91dGVUYWJsZV9pcnJldmVyc2libGVfY29tbWl0Owogc3RhdGljIE5ldHNubXBfTm9kZV9IYW5kbGVyIF9tZmRfaW5ldENpZHJSb3V0ZVRhYmxlX2NoZWNrX2RlcGVuZGVuY2llczsKLSNlbmRpZgorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCB8fCBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQgKi8KIAogTkVUU05NUF9TVEFUSUNfSU5MSU5FIGludAogICAgICAgICAgICAgICAgIF9pbmV0Q2lkclJvdXRlVGFibGVfY2hlY2tfaW5kZXhlcyhpbmV0Q2lkclJvdXRlVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgpOwpAQCAtMjM3LDcgKzI1NSw3IEBACiAgICAgICAgIF9tZmRfaW5ldENpZHJSb3V0ZVRhYmxlX3Bvc3RfcmVxdWVzdDsKIAogCi0jaWZuZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAorI2lmICEoZGVmaW5lZChORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQpIHx8IGRlZmluZWQoTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUKSkKICAgICAvKgogICAgICAqIFJFUVVJUkVEIHdyYXBwZXJzIGZvciBzZXQgcmVxdWVzdCBoYW5kbGluZwogICAgICAqLwpAQCAtMjYyLDcgKzI4MCw3IEBACiAgICAgICovCiAgICAgYWNjZXNzX211bHRpcGxleGVyLT5jb25zaXN0ZW5jeV9jaGVja3MgPQogICAgICAgICBfbWZkX2luZXRDaWRyUm91dGVUYWJsZV9jaGVja19kZXBlbmRlbmNpZXM7Ci0jZW5kaWYKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgfHwgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUICovCiAKICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAqCkBAIC0yOTgsNyArMzE2LDcgQEAKICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT5wb3N0X3JlcXVlc3QpCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfUE9TVF9SRVFVRVNUOwogCi0jaWZuZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAorI2lmICEoZGVmaW5lZChORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQpIHx8IGRlZmluZWQoTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUKSkKICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT5zZXRfdmFsdWVzKQogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX1NFVF9WQUxVRVM7CiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+aXJyZXZlcnNpYmxlX2NvbW1pdCkKQEAgLTMyMSw3ICszMzksNyBAQAogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX0NPTU1JVDsKICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT51bmRvX2NvbW1pdCkKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9VTkRPX0NPTU1JVDsKLSNlbmRpZgorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCB8fCBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQgKi8KIAogICAgIGhhbmRsZXIgPSBuZXRzbm1wX2JhYnlfc3RlcHNfaGFuZGxlcl9nZXQobWZkX21vZGVzKTsKICAgICBuZXRzbm1wX2luamVjdF9oYW5kbGVyKHJlZ2luZm8sIGhhbmRsZXIpOwpAQCAtMTIxMCw2ICsxMjI4LDggQEAKICAgICBpZiAoTUZEX1NVQ0NFU1MgIT0gcmMpCiAgICAgICAgIHJldHVybiBTTk1QX0VSUl9OT0NSRUFUSU9OOwogCisgICAgLyogTU9SRSBDSEVDS0lORyBSRVFVSVJFRCAqLworCiAgICAgLyoKICAgICAgKiAoSU5ERVgpIGluZXRDaWRyUm91dGVEZXN0KDIpL0luZXRBZGRyZXNzL0FTTl9PQ1RFVF9TVFIvY2hhcihjaGFyKS8vTC9hL3cvZS9SL2QvaCAKICAgICAgKi8KQEAgLTEzMDgsNyArMTMyOCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2N0eCwgcm93cmVxX2N0eCk7CiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIF9pbmV0Q2lkclJvdXRlVGFibGVfY2hlY2tfaW5kZXhlcyAqLwogCi0jaWZuZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAorI2lmICEoZGVmaW5lZChORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQpIHx8IGRlZmluZWQoTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUKSkKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIFNFVCBwcm9jZXNzaW5nCkBAIC0yMTkyLDcgKzIyMTIsNyBAQAogCiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIF9tZmRfaW5ldENpZHJSb3V0ZVRhYmxlX2lycmV2ZXJzaWJsZV9jb21taXQgKi8KLSNlbmRpZgorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCB8fCBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgpAQCAtMjMyOCw5ICsyMzQ4LDkgQEAKIAogICAgIGlmX2N0eC0+Y29udGFpbmVyLT5jb250YWluZXJfbmFtZSA9IHN0cmR1cCgiaW5ldENpZHJSb3V0ZVRhYmxlIik7CiAKLSAgICAvKiBzZXQgYWxsb3cgZHVwbGljYXRlcyB0aGlzIG1ha2VzIGluc2VydCBPKDEpICovCi0gICAgbmV0c25tcF9iaW5hcnlfYXJyYXlfb3B0aW9uc19zZXQoaWZfY3R4LT5jb250YWluZXIsIDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OVEFJTkVSX0tFWV9BTExPV19EVVBMSUNBVEVTKTsKKyAgIC8qIHNldCBhbGxvdyBkdXBsaWNhdGVzIHRoaXMgbWFrZXMgaW5zZXJ0IE8oMSkgKi8KKyAgIG5ldHNubXBfYmluYXJ5X2FycmF5X29wdGlvbnNfc2V0KGlmX2N0eC0+Y29udGFpbmVyLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OVEFJTkVSX0tFWV9BTExPV19EVVBMSUNBVEVTKTsKIAogICAgIGlmIChOVUxMICE9IGlmX2N0eC0+Y2FjaGUpCiAgICAgICAgIGlmX2N0eC0+Y2FjaGUtPm1hZ2ljID0gKHZvaWQgKikgaWZfY3R4LT5jb250YWluZXI7CkBAIC0yMzUzLDYgKzIzNzMsNyBAQAogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBfaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnRhaW5lcl9zaHV0ZG93biAqLwogCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JTkVUQ0lEUlJPVVRFVEFCTEVfRVhURVJOQUxfQUNDRVNTCiBpbmV0Q2lkclJvdXRlVGFibGVfcm93cmVxX2N0eCAqCiBpbmV0Q2lkclJvdXRlVGFibGVfcm93X2ZpbmRfYnlfbWliX2luZGV4KGluZXRDaWRyUm91dGVUYWJsZV9taWJfaW5kZXggKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWJfaWR4KQpAQCAtMjM4MCwzICsyNDAxLDQgQEAKIAogICAgIHJldHVybiByb3dyZXFfY3R4OwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSU5FVENJRFJST1VURVRBQkxFX0VYVEVSTkFMX0FDQ0VTUyAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jIGIvYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCmluZGV4IGEzMWY0Y2MuLjQ1Zjg0ODMgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYworKysgYi9hZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKQEAgLTMwLDYgKzMwLDcgQEAKICAqIHN0YW5kYXJkIE5ldC1TTk1QIGluY2x1ZGVzIAogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAKQEAgLTQ2LDYgKzQ3LDE3IEBACiAKICNpbmNsdWRlIDxjdHlwZS5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaXBDaWRyUm91dGVUYWJsZV9leHRlcm5hbF9hY2Nlc3MsIGxpYm5ldHNubXBtaWJzKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUocm93X21lcmdlKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoYmFieV9zdGVwcykKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX2NvbnRhaW5lcl9yb3dfaW5zZXJ0KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfYWxsX3JlcXVlc3RzX2Vycm9yKQorCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpcENpZHJSb3V0ZVRhYmxlX2NvbnRhaW5lcl9zaXplLCBpcENpZHJSb3V0ZVRhYmxlX2V4dGVybmFsX2FjY2VzcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpcENpZHJSb3V0ZVRhYmxlX3JlZ2lzdHJhdGlvbl9zZXQsIGlwQ2lkclJvdXRlVGFibGVfZXh0ZXJuYWxfYWNjZXNzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlwQ2lkclJvdXRlVGFibGVfcmVnaXN0cmF0aW9uX2dldCwgaXBDaWRyUm91dGVUYWJsZV9leHRlcm5hbF9hY2Nlc3MpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaXBDaWRyUm91dGVUYWJsZV9jb250YWluZXJfZ2V0LCBpcENpZHJSb3V0ZVRhYmxlX2V4dGVybmFsX2FjY2VzcykKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoqKgpAQCAtODEsMTkgKzkzLDIzIEBACiAgICAgICAgICAgICAgICAgX2lwQ2lkclJvdXRlVGFibGVfY29udGFpbmVyX3NodXRkb3duKGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlX2N0eCAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmX2N0eCk7CiAKLQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQQ0lEUlJPVVRFVEFCTEVfQ09OVEFJTkVSX0dFVAogbmV0c25tcF9jb250YWluZXIgKgogaXBDaWRyUm91dGVUYWJsZV9jb250YWluZXJfZ2V0KHZvaWQpCiB7CiAgICAgcmV0dXJuIGlwQ2lkclJvdXRlVGFibGVfaWZfY3R4LmNvbnRhaW5lcjsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQQ0lEUlJPVVRFVEFCTEVfQ09OVEFJTkVSX0dFVCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBDSURSUk9VVEVUQUJMRV9SRUdJU1RSQVRJT05fR0VUCiBpcENpZHJSb3V0ZVRhYmxlX3JlZ2lzdHJhdGlvbiAqCiBpcENpZHJSb3V0ZVRhYmxlX3JlZ2lzdHJhdGlvbl9nZXQodm9pZCkKIHsKICAgICByZXR1cm4gaXBDaWRyUm91dGVUYWJsZV9pZl9jdHgudXNlcl9jdHg7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUENJRFJST1VURVRBQkxFX1JFR0lTVFJBVElPTl9HRVQgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQQ0lEUlJPVVRFVEFCTEVfUkVHSVNUUkFUSU9OX1NFVAogaXBDaWRyUm91dGVUYWJsZV9yZWdpc3RyYXRpb24gKgogaXBDaWRyUm91dGVUYWJsZV9yZWdpc3RyYXRpb25fc2V0KGlwQ2lkclJvdXRlVGFibGVfcmVnaXN0cmF0aW9uICogbmV3cmVnKQogewpAQCAtMTAxLDEyICsxMTcsMTUgQEAKICAgICBpcENpZHJSb3V0ZVRhYmxlX2lmX2N0eC51c2VyX2N0eCA9IG5ld3JlZzsKICAgICByZXR1cm4gb2xkOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBDSURSUk9VVEVUQUJMRV9SRUdJU1RSQVRJT05fU0VUICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUENJRFJST1VURVRBQkxFX0NPTlRBSU5FUl9TSVpFCiBpbnQKIGlwQ2lkclJvdXRlVGFibGVfY29udGFpbmVyX3NpemUodm9pZCkKIHsKICAgICByZXR1cm4gQ09OVEFJTkVSX1NJWkUoaXBDaWRyUm91dGVUYWJsZV9pZl9jdHguY29udGFpbmVyKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQQ0lEUlJPVVRFVEFCTEVfQ09OVEFJTkVSX1NJWkUgKi8KIAogdV9pbnQKIGlwQ2lkclJvdXRlVGFibGVfZGlydHlfZ2V0KHZvaWQpCkBAIC0xMzAsNyArMTQ5LDcgQEAKIHN0YXRpYyBOZXRzbm1wX05vZGVfSGFuZGxlciBfbWZkX2lwQ2lkclJvdXRlVGFibGVfcG9zdF9yZXF1ZXN0Owogc3RhdGljIE5ldHNubXBfTm9kZV9IYW5kbGVyIF9tZmRfaXBDaWRyUm91dGVUYWJsZV9vYmplY3RfbG9va3VwOwogc3RhdGljIE5ldHNubXBfTm9kZV9IYW5kbGVyIF9tZmRfaXBDaWRyUm91dGVUYWJsZV9nZXRfdmFsdWVzOwotI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKKyNpZiAhKGRlZmluZWQoTkVUU05NUF9OT19XUklURV9TVVBQT1JUKSB8fCBkZWZpbmVkKE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCkpCiBzdGF0aWMgTmV0c25tcF9Ob2RlX0hhbmRsZXIgX21mZF9pcENpZHJSb3V0ZVRhYmxlX2NoZWNrX29iamVjdHM7CiBzdGF0aWMgTmV0c25tcF9Ob2RlX0hhbmRsZXIgX21mZF9pcENpZHJSb3V0ZVRhYmxlX3VuZG9fc2V0dXA7CiBzdGF0aWMgTmV0c25tcF9Ob2RlX0hhbmRsZXIgX21mZF9pcENpZHJSb3V0ZVRhYmxlX3NldF92YWx1ZXM7CkBAIC0xNDQsNyArMTYzLDcgQEAKICAgICAgICAgICAgICAgICBfaXBDaWRyUm91dGVUYWJsZV91bmRvX2NvbHVtbihpcENpZHJSb3V0ZVRhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqIHZhciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29sdW1uKTsKLSNlbmRpZgorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCB8fCBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQgKi8KIAogTkVUU05NUF9TVEFUSUNfSU5MSU5FIGludAogICAgICAgICAgICAgICAgIF9pcENpZHJSb3V0ZVRhYmxlX2NoZWNrX2luZGV4ZXMoaXBDaWRyUm91dGVUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCk7CkBAIC0yMjcsNyArMjQ2LDcgQEAKICAgICBhY2Nlc3NfbXVsdGlwbGV4ZXItPnBvc3RfcmVxdWVzdCA9IF9tZmRfaXBDaWRyUm91dGVUYWJsZV9wb3N0X3JlcXVlc3Q7CiAKIAotI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKKyNpZiAhKGRlZmluZWQoTkVUU05NUF9OT19XUklURV9TVVBQT1JUKSB8fCBkZWZpbmVkKE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCkpCiAgICAgLyoKICAgICAgKiBSRVFVSVJFRCB3cmFwcGVycyBmb3Igc2V0IHJlcXVlc3QgaGFuZGxpbmcKICAgICAgKi8KQEAgLTI0NSw3ICsyNjQsNyBAQAogICAgIGFjY2Vzc19tdWx0aXBsZXhlci0+dW5kb19jb21taXQgPSBfbWZkX2lwQ2lkclJvdXRlVGFibGVfdW5kb19jb21taXQ7CiAgICAgYWNjZXNzX211bHRpcGxleGVyLT5pcnJldmVyc2libGVfY29tbWl0ID0KICAgICAgICAgX21mZF9pcENpZHJSb3V0ZVRhYmxlX2lycmV2ZXJzaWJsZV9jb21taXQ7Ci0jZW5kaWYKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgfHwgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUICovCiAKICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAqCkBAIC0yNzgsNyArMjk3LDcgQEAKICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT5wb3N0X3JlcXVlc3QpCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfUE9TVF9SRVFVRVNUOwogCi0jaWZuZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAorI2lmICEoZGVmaW5lZChORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQpIHx8IGRlZmluZWQoTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUKSkKICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT5zZXRfdmFsdWVzKQogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX1NFVF9WQUxVRVM7CiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+aXJyZXZlcnNpYmxlX2NvbW1pdCkKQEAgLTMwMSw3ICszMjAsNyBAQAogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX0NPTU1JVDsKICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT51bmRvX2NvbW1pdCkKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9VTkRPX0NPTU1JVDsKLSNlbmRpZgorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCB8fCBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQgKi8KIAogICAgIGhhbmRsZXIgPSBuZXRzbm1wX2JhYnlfc3RlcHNfaGFuZGxlcl9nZXQobWZkX21vZGVzKTsKICAgICBuZXRzbm1wX2luamVjdF9oYW5kbGVyKHJlZ2luZm8sIGhhbmRsZXIpOwpAQCAtMTE1MSw3ICsxMTcwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2N0eCwgcm93cmVxX2N0eCk7CiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIF9pcENpZHJSb3V0ZVRhYmxlX2NoZWNrX2luZGV4ZXMgKi8KIAotI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKKyNpZiAhKGRlZmluZWQoTkVUU05NUF9OT19XUklURV9TVVBQT1JUKSB8fCBkZWZpbmVkKE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCkpCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBTRVQgcHJvY2Vzc2luZwpAQCAtMjE0NSw3ICsyMTY0LDcgQEAKIAogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBfbWZkX2lwQ2lkclJvdXRlVGFibGVfaXJyZXZlcnNpYmxlX2NvbW1pdCAqLwotI2VuZGlmCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUIHx8IE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCkBAIC0yMzA0LDYgKzIzMjMsNyBAQAogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBfaXBDaWRyUm91dGVUYWJsZV9jb250YWluZXJfc2h1dGRvd24gKi8KIAogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBDSURSUk9VVEVUQUJMRV9FWFRFUk5BTF9BQ0NFU1MKIGlwQ2lkclJvdXRlVGFibGVfcm93cmVxX2N0eCAqCiBpcENpZHJSb3V0ZVRhYmxlX3Jvd19maW5kX2J5X21pYl9pbmRleChpcENpZHJSb3V0ZVRhYmxlX21pYl9pbmRleCAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWJfaWR4KQpAQCAtMjMzMSwzICsyMzUxLDQgQEAKIAogICAgIHJldHVybiByb3dyZXFfY3R4OwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBDSURSUk9VVEVUQUJMRV9FWFRFUk5BTF9BQ0NFU1MgKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnAuaCBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnAuaAppbmRleCBlOWMzNzFiLi42NDhjYjI4IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwLmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycC5oCkBAIC0xOCw4ICsxOCwxMiBAQAogICogICAgYmUgaGFuZGxlZCBpbiB0aGUgKl9ocHV4LmggaGVhZGVyIGZpbGUuCiAgKi8KIGNvbmZpZ19yZXF1aXJlKGlwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uKQotI2lmIGRlZmluZWQoIGxpbnV4ICkKKyNpZiBkZWZpbmVkKCBIQVZFX0xJTlVYX1JUTkVUTElOS19IICkKK2NvbmZpZ19yZXF1aXJlKGlwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbmV0bGluaykKKyNlbGlmIGRlZmluZWQoIGxpbnV4ICkKIGNvbmZpZ19yZXF1aXJlKGlwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXgpCisjZWxpZiBkZWZpbmVkKCBmcmVlYnNkNyApIHx8IGRlZmluZWQgKCBuZXRic2Q1ICkgfHwgZGVmaW5lZCggb3BlbmJzZDQgKSB8fCBkZWZpbmVkKCBkcmFnb25mbHkgKSB8fCBkZWZpbmVkKCBkYXJ3aW4gKQorY29uZmlnX3JlcXVpcmUoaXAtbWliL2RhdGFfYWNjZXNzL2FycF9zeXNjdGwpCiAjZWxzZQogLyoKICAqIGNvdWxkbid0IGRldGVybWluZSB0aGUgY29ycmVjdCBmaWxlIQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYyBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmMKaW5kZXggNWM3ZDZkNS4uMjk1ODcxOSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYworKysgYi9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jCkBAIC0xMSwxMDIgKzExLDYgQEAKIAogLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qCi0gKiBsb2NhbCBzdGF0aWMgcHJvdG90eXBlcwotICovCi1zdGF0aWMgdm9pZCBfYWNjZXNzX2FycF9lbnRyeV9yZWxlYXNlKG5ldHNubXBfYXJwX2VudHJ5ICogZW50cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnVudXNlZCk7Ci0KLS8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0vKgotICogZXh0ZXJuYWwgcGVyLWFyY2hpdGVjdHVyZSBmdW5jdGlvbnMgcHJvdG90eXBlcwotICoKLSAqIFRoZXNlIHNob3VsZG4ndCBiZSBjYWxsZWQgYnkgdGhlIGdlbmVyYWwgcHVibGljLCBzbyB0aGV5IGFyZW4ndCBpbgotICogdGhlIGhlYWRlciBmaWxlLgotICovCi1leHRlcm4gaW50Ci1uZXRzbm1wX2FjY2Vzc19hcnBfY29udGFpbmVyX2FyY2hfbG9hZChuZXRzbm1wX2NvbnRhaW5lciogY29udGFpbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9pbnQgbG9hZF9mbGFncyk7Ci0KLQotLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLS8qCi0gKiBjb250YWluZXIgZnVuY3Rpb25zCi0gKi8KLS8qKgotICovCi1uZXRzbm1wX2NvbnRhaW5lciAqCi1uZXRzbm1wX2FjY2Vzc19hcnBfY29udGFpbmVyX2luaXQodV9pbnQgZmxhZ3MpCi17Ci0gICAgbmV0c25tcF9jb250YWluZXIgKmNvbnRhaW5lcjE7Ci0KLSAgICBERUJVR01TR1RMKCgiYWNjZXNzOmFycDpjb250YWluZXIiLCAiaW5pdFxuIikpOwotCi0gICAgLyoKLSAgICAgKiBjcmVhdGUgdGhlIGNvbnRhaW5lcnMuIG9uZSBpbmRleGVkIGJ5IGlmSW5kZXgsIHRoZSBvdGhlcgotICAgICAqIGluZGV4ZWQgYnkgaWZOYW1lLgotICAgICAqLwotICAgIGNvbnRhaW5lcjEgPSBuZXRzbm1wX2NvbnRhaW5lcl9maW5kKCJhY2Nlc3NfYXJwOnRhYmxlX2NvbnRhaW5lciIpOwotICAgIGlmIChOVUxMID09IGNvbnRhaW5lcjEpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIHJldHVybiBjb250YWluZXIxOwotfQotCi0vKioKLSAqIEByZXR2YWwgTlVMTCAgZXJyb3IKLSAqIEByZXR2YWwgIU5VTEwgcG9pbnRlciB0byBjb250YWluZXIKLSAqLwotbmV0c25tcF9jb250YWluZXIqCi1uZXRzbm1wX2FjY2Vzc19hcnBfY29udGFpbmVyX2xvYWQobmV0c25tcF9jb250YWluZXIqIGNvbnRhaW5lciwgdV9pbnQgbG9hZF9mbGFncykKLXsKLSAgICBpbnQgcmM7Ci0KLSAgICBERUJVR01TR1RMKCgiYWNjZXNzOmFycDpjb250YWluZXIiLCAibG9hZFxuIikpOwotCi0gICAgaWYgKE5VTEwgPT0gY29udGFpbmVyKSB7Ci0gICAgICAgIGNvbnRhaW5lciA9IG5ldHNubXBfY29udGFpbmVyX2ZpbmQoImFjY2VzczphcnA6dGFibGVfY29udGFpbmVyIik7Ci0gICAgICAgIGlmIChjb250YWluZXIpCi0gICAgICAgICAgICBjb250YWluZXItPmNvbnRhaW5lcl9uYW1lID0gc3RyZHVwKCJhcnAiKTsKLSAgICB9Ci0gICAgaWYgKE5VTEwgPT0gY29udGFpbmVyKSB7Ci0gICAgICAgIHNubXBfbG9nKExPR19FUlIsICJubyBjb250YWluZXIgc3BlY2lmaWVkL2ZvdW5kIGZvciBhY2Nlc3NfYXJwXG4iKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgcmMgPSAgbmV0c25tcF9hY2Nlc3NfYXJwX2NvbnRhaW5lcl9hcmNoX2xvYWQoY29udGFpbmVyLCBsb2FkX2ZsYWdzKTsKLSAgICBpZiAoMCAhPSByYykgewotICAgICAgICBuZXRzbm1wX2FjY2Vzc19hcnBfY29udGFpbmVyX2ZyZWUoY29udGFpbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9BQ0NFU1NfQVJQX0ZSRUVfTk9GTEFHUyk7Ci0gICAgICAgIGNvbnRhaW5lciA9IE5VTEw7Ci0gICAgfQotCi0gICAgcmV0dXJuIGNvbnRhaW5lcjsKLX0KLQotdm9pZAotbmV0c25tcF9hY2Nlc3NfYXJwX2NvbnRhaW5lcl9mcmVlKG5ldHNubXBfY29udGFpbmVyICpjb250YWluZXIsIHVfaW50IGZyZWVfZmxhZ3MpCi17Ci0gICAgREVCVUdNU0dUTCgoImFjY2VzczphcnA6Y29udGFpbmVyIiwgImZyZWVcbiIpKTsKLQotICAgIGlmIChOVUxMID09IGNvbnRhaW5lcikgewotICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiaW52YWxpZCBjb250YWluZXIgZm9yIG5ldHNubXBfYWNjZXNzX2FycF9mcmVlXG4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmKCEgKGZyZWVfZmxhZ3MgJiBORVRTTk1QX0FDQ0VTU19BUlBfRlJFRV9ET05UX0NMRUFSKSkgewotICAgICAgICAvKgotICAgICAgICAgKiBmcmVlIGFsbCBpdGVtcy4KLSAgICAgICAgICovCi0gICAgICAgIENPTlRBSU5FUl9DTEVBUihjb250YWluZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAobmV0c25tcF9jb250YWluZXJfb2JqX2Z1bmMqKV9hY2Nlc3NfYXJwX2VudHJ5X3JlbGVhc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLSAgICB9Ci0KLSAgICBpZighIChmcmVlX2ZsYWdzICYgTkVUU05NUF9BQ0NFU1NfQVJQX0ZSRUVfS0VFUF9DT05UQUlORVIpKQotICAgICAgICBDT05UQUlORVJfRlJFRShjb250YWluZXIpOwotfQotCi0vKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotLyoKICAqIGFycF9lbnRyeSBmdW5jdGlvbnMKICAqLwogLyoqCkBAIC0xNDAsMTQgKzQ0LDYgQEAKICAqLwogCiAvKioKLSAqLwotdm9pZAotX2FjY2Vzc19hcnBfZW50cnlfcmVsZWFzZShuZXRzbm1wX2FycF9lbnRyeSAqIGVudHJ5LCB2b2lkICpjb250ZXh0KQotewotICAgIG5ldHNubXBfYWNjZXNzX2FycF9lbnRyeV9mcmVlKGVudHJ5KTsKLX0KLQotLyoqCiAgKiBVcGRhdGUgZ2l2ZW4gZW50cnkgd2l0aCBuZXcgZGF0YS4gQ2FsY3VsYXRlIG5ldyBhcnBfbGFzdF91cGRhdGVkLCBpZiBhbnkKICAqIGZpZWxkIGlzIGNoYW5nZWQuCiAgKi8KQEAgLTE1Niw2ICs1Miw3IEBACiB7CiAgICAgaW50IG1vZGlmaWVkID0gMDsKIAorICAgIGVudHJ5LT5nZW5lcmF0aW9uID0gbmV3X2RhdGEtPmdlbmVyYXRpb247CiAgICAgaWYgKGVudHJ5LT5hcnBfaXBhZGRyZXNzX2xlbiAhPSBuZXdfZGF0YS0+YXJwX2lwYWRkcmVzc19sZW4KICAgICAgICAgICAgIHx8IG1lbWNtcChlbnRyeS0+YXJwX2lwYWRkcmVzcywgbmV3X2RhdGEtPmFycF9pcGFkZHJlc3MsIGVudHJ5LT5hcnBfaXBhZGRyZXNzX2xlbikgIT0gMCApIHsKICAgICAgICAgbW9kaWZpZWQgPSAxOwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jCmluZGV4IDRkZGFmZmQuLmEyZmE0OWEgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYworKysgYi9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMKQEAgLTE0LDY4ICsxNCw3NCBAQAogI2luY2x1ZGUgPGFycGEvaW5ldC5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8YXNtL3R5cGVzLmg+Ci0jaWZkZWYgSEFWRV9MSU5VWF9SVE5FVExJTktfSAotI2luY2x1ZGUgPGxpbnV4L3J0bmV0bGluay5oPgotI2VuZGlmCi0jaWZkZWYgTkVUU05NUF9FTkFCTEVfSVBWNgotI2RlZmluZSBOSVA2KGFkZHIpIFwKLSAgICAgICAgbnRvaHMoKGFkZHIpLnM2X2FkZHIxNlswXSksIFwKLSAgICAgICAgbnRvaHMoKGFkZHIpLnM2X2FkZHIxNlsxXSksIFwKLSAgICAgICAgbnRvaHMoKGFkZHIpLnM2X2FkZHIxNlsyXSksIFwKLSAgICAgICAgbnRvaHMoKGFkZHIpLnM2X2FkZHIxNlszXSksIFwKLSAgICAgICAgbnRvaHMoKGFkZHIpLnM2X2FkZHIxNls0XSksIFwKLSAgICAgICAgbnRvaHMoKGFkZHIpLnM2X2FkZHIxNls1XSksIFwKLSAgICAgICAgbnRvaHMoKGFkZHIpLnM2X2FkZHIxNls2XSksIFwKLSAgICAgICAgbnRvaHMoKGFkZHIpLnM2X2FkZHIxNls3XSkKLSNkZWZpbmUgTklQNl9GTVQgIiUwNHg6JTA0eDolMDR4OiUwNHg6JTA0eDolMDR4OiUwNHg6JTA0eCIKLSNlbmRpZgogCi1pbnQgX2xvYWRfdjQobmV0c25tcF9jb250YWluZXIgKmNvbnRhaW5lciwgaW50IGlkeF9vZmZzZXQpOwotI2lmZGVmIE5FVFNOTVBfRU5BQkxFX0lQVjYKLXN0YXRpYyBpbnQgX2xvYWRfdjYobmV0c25tcF9jb250YWluZXIgKmNvbnRhaW5lciwgaW50IGlkeF9vZmZzZXQpOwotI2VuZGlmCi0jaWZkZWYgSEFWRV9MSU5VWF9SVE5FVExJTktfSAotaW50IGdldF90cmFuc2xhdGlvbl90YWJsZV9pbmZvIChpbnQgc2QsIGludCAqc3RhdHVzLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqYnVmZiwgc2l6ZV90IHNpemUpOwotaW50IGZpbGx1cF9lbnRyeV9pbmZvKG5ldHNubXBfYXJwX2VudHJ5ICplbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgbmxtc2doZHIgKm5sbXApOwotI2VuZGlmCi0vKioKLSAqLwotaW50Ci1uZXRzbm1wX2FjY2Vzc19hcnBfY29udGFpbmVyX2FyY2hfbG9hZChuZXRzbm1wX2NvbnRhaW5lciAqY29udGFpbmVyKQorc3RhdGljIGludCBfbG9hZF92NChuZXRzbm1wX2FycF9hY2Nlc3MgKmFjY2Vzcyk7CisKK25ldHNubXBfYXJwX2FjY2VzcyAqCituZXRzbm1wX2FjY2Vzc19hcnBfY3JlYXRlKHVfaW50IGluaXRfZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgIE5ldHNubXBBY2Nlc3NBcnBVcGRhdGUgKnVwZGF0ZV9ob29rLAorICAgICAgICAgICAgICAgICAgICAgICAgICBOZXRzbm1wQWNjZXNzQXJwR0MgKmdjX2hvb2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqY2FjaGVfdGltZW91dCwgaW50ICpjYWNoZV9mbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqY2FjaGVfZXhwaXJlZCkKIHsKLSAgICBpbnQgcmMgPSAwLCBpZHhfb2Zmc2V0ID0gMDsKKyAgICBuZXRzbm1wX2FycF9hY2Nlc3MgKmFjY2VzczsKIAotICAgIHJjID0gX2xvYWRfdjQoY29udGFpbmVyLCBpZHhfb2Zmc2V0KTsKLSAgICBpZihyYyA8IDApIHsKLSAgICAgICAgdV9pbnQgZmxhZ3MgPSBORVRTTk1QX0FDQ0VTU19BUlBfRlJFRV9LRUVQX0NPTlRBSU5FUjsKLSAgICAgICAgbmV0c25tcF9hY2Nlc3NfYXJwX2NvbnRhaW5lcl9mcmVlKGNvbnRhaW5lciwgZmxhZ3MpOworICAgIGFjY2VzcyA9IFNOTVBfTUFMTE9DX1RZUEVERUYobmV0c25tcF9hcnBfYWNjZXNzKTsKKyAgICBpZiAoTlVMTCA9PSBhY2Nlc3MpIHsKKyAgICAgICAgc25tcF9sb2coTE9HX0VSUiwibWFsbG9jIGVycm9yIGluIG5ldHNubXBfYWNjZXNzX2FycF9jcmVhdGVcbiIpOworICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSNpZiBkZWZpbmVkIChORVRTTk1QX0VOQUJMRV9JUFY2KQotICAgIGlkeF9vZmZzZXQgPSAocmMgPCAwKSA/IDAgOiByYzsKKyAgICBhY2Nlc3MtPmFyY2hfbWFnaWMgPSBOVUxMOworICAgIGFjY2Vzcy0+bWFnaWMgPSBOVUxMOworICAgIGFjY2Vzcy0+dXBkYXRlX2hvb2sgPSB1cGRhdGVfaG9vazsKKyAgICBhY2Nlc3MtPmdjX2hvb2sgPSBnY19ob29rOworICAgIGFjY2Vzcy0+c3luY2hyb25pemVkID0gMDsKIAotICAgIHJjID0gX2xvYWRfdjYoY29udGFpbmVyLCBpZHhfb2Zmc2V0KTsKLSAgICBpZihyYyA8IDApIHsKLSAgICAgICAgdV9pbnQgZmxhZ3MgPSBORVRTTk1QX0FDQ0VTU19BUlBfRlJFRV9LRUVQX0NPTlRBSU5FUjsKLSAgICAgICAgbmV0c25tcF9hY2Nlc3NfYXJwX2NvbnRhaW5lcl9mcmVlKGNvbnRhaW5lciwgZmxhZ3MpOwotICAgIH0KLSNlbmRpZgorICAgIGlmIChjYWNoZV90aW1lb3V0ICE9IE5VTEwpCisgICAgICAgICpjYWNoZV90aW1lb3V0ID0gNTsKKyAgICBpZiAoY2FjaGVfZmxhZ3MgIT0gTlVMTCkKKyAgICAgICAgKmNhY2hlX2ZsYWdzIHw9IE5FVFNOTVBfQ0FDSEVfRE9OVF9GUkVFX0JFRk9SRV9MT0FECisgICAgICAgICAgICAgICAgICAgICAgICB8IE5FVFNOTVBfQ0FDSEVfQVVUT19SRUxPQUQ7CisgICAgYWNjZXNzLT5jYWNoZV9leHBpcmVkID0gY2FjaGVfZXhwaXJlZDsKIAotICAgIC8qCi0gICAgICogcmV0dXJuIG5vIGVycm9ycyAoMCkgaWYgd2UgZm91bmQgYW55IGludGVyZmFjZXMKLSAgICAgKi8KLSAgICBpZihyYyA+IDApCi0gICAgICAgIHJjID0gMDsKKyAgICByZXR1cm4gYWNjZXNzOworfQorCitpbnQgbmV0c25tcF9hY2Nlc3NfYXJwX2RlbGV0ZShuZXRzbm1wX2FycF9hY2Nlc3MgKmFjY2VzcykKK3sKKyAgICBpZiAoTlVMTCA9PSBhY2Nlc3MpCisgICAgICAgIHJldHVybiAwOworCisgICAgbmV0c25tcF9hY2Nlc3NfYXJwX3VubG9hZChhY2Nlc3MpOworICAgIGZyZWUoYWNjZXNzKTsKKworICAgIHJldHVybiAwOworfQorCitpbnQgbmV0c25tcF9hY2Nlc3NfYXJwX2xvYWQobmV0c25tcF9hcnBfYWNjZXNzICphY2Nlc3MpCit7CisgICAgaW50IHJjID0gMDsKKworICAgIGFjY2Vzcy0+Z2VuZXJhdGlvbisrOworICAgIHJjID1fbG9hZF92NChhY2Nlc3MpOworICAgIGFjY2Vzcy0+Z2NfaG9vayhhY2Nlc3MpOworICAgIGFjY2Vzcy0+c3luY2hyb25pemVkID0gKHJjID09IDApOwogCiAgICAgcmV0dXJuIHJjOwogfQogCitpbnQgbmV0c25tcF9hY2Nlc3NfYXJwX3VubG9hZChuZXRzbm1wX2FycF9hY2Nlc3MgKmFjY2VzcykKK3sKKyAgICBhY2Nlc3MtPnN5bmNocm9uaXplZCA9IDA7CisKKyAgICByZXR1cm4gMDsKK30KKwogLyoqCiAgKi8KLWludAotX2xvYWRfdjQobmV0c25tcF9jb250YWluZXIgKmNvbnRhaW5lciwgaW50IGlkeF9vZmZzZXQpCitzdGF0aWMgaW50CitfbG9hZF92NChuZXRzbm1wX2FycF9hY2Nlc3MgKmFjY2VzcykKIHsKICAgICBGSUxFICAgICAgICAgICAqaW47CiAgICAgY2hhciAgICAgICAgICAgIGxpbmVbMTI4XTsKQEAgLTg1LDcgKzkxLDcgQEAKICAgICBjaGFyICAgICAgICAgICAqYXJwX3Rva2VuOwogICAgIGludCAgICAgICAgICAgICBpOwogCi0gICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBjb250YWluZXIpOworICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gYWNjZXNzKTsKIAogI2RlZmluZSBQUk9DRklMRSAiL3Byb2MvbmV0L2FycCIKICAgICBpZiAoIShpbiA9IGZvcGVuKFBST0NGSUxFLCAiciIpKSkgewpAQCAtMTMyLDYgKzEzOCw3IEBACiAgICAgICAgIC8qCiAgICAgICAgICAqIGxvb2sgdXAgaWZJbmRleAogICAgICAgICAgKi8KKyAgICAgICAgZW50cnktPmdlbmVyYXRpb24gPSBhY2Nlc3MtPmdlbmVyYXRpb247CiAgICAgICAgIGVudHJ5LT5pZl9pbmRleCA9IG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9pbmRleF9maW5kKGlmbmFtZSk7CiAgICAgICAgIGlmKDAgPT0gZW50cnktPmlmX2luZGV4KSB7CiAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCJjb3VsZG4ndCBmaW5kIGlmSW5kZXggZm9yICclcycsIHNraXBwaW5nXG4iLApAQCAtMTQ0LDcgKzE1MSw3IEBACiAgICAgICAgICAqIG5vdyB0aGF0IHdlJ3ZlIHBhc3NlZCBhbGwgdGhlIHBvc3NpYmxlICdjb250aW51ZScsIGFzc2lnbgogICAgICAgICAgKiBpbmRleCBvZmZzZXQuCiAgICAgICAgICAqLwotICAgICAgICBlbnRyeS0+bnNfYXJwX2luZGV4ID0gKytpZHhfb2Zmc2V0OworICAgICAgICAvKiBlbnRyeS0+bnNfYXJwX2luZGV4ID0gKytpZHhfb2Zmc2V0OyAqLwogCiAgICAgICAgIC8qCiAgICAgICAgICAqIHBhcnNlIGlwIGFkZHIKQEAgLTE5OSwyNDkgKzIwNiw5IEBACiAgICAgICAgIC8qCiAgICAgICAgICAqIGFkZCBlbnRyeSB0byBjb250YWluZXIKICAgICAgICAgICovCi0gICAgICAgIGlmIChDT05UQUlORVJfSU5TRVJUKGNvbnRhaW5lciwgZW50cnkpIDwgMCkKLSAgICAgICAgewotICAgICAgICAgICAgREVCVUdNU0dUTCgoImFjY2VzczphcnA6Y29udGFpbmVyIiwiZXJyb3Igd2l0aCBhcnBfZW50cnk6IGluc2VydCBpbnRvIGNvbnRhaW5lciBmYWlsZWQuXG4iKSk7Ci0gICAgICAgICAgICBuZXRzbm1wX2FjY2Vzc19hcnBfZW50cnlfZnJlZShlbnRyeSk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQorICAgICAgICBhY2Nlc3MtPnVwZGF0ZV9ob29rKGFjY2VzcywgZW50cnkpOwogICAgIH0KIAogICAgIGZjbG9zZShpbik7Ci0gICAgaWYoIHJjIDwgMCApCi0gICAgICAgIHJldHVybiByYzsKLQotICAgIHJldHVybiBpZHhfb2Zmc2V0OwotfQotCi0jaWYgZGVmaW5lZCAoTkVUU05NUF9FTkFCTEVfSVBWNikKLXN0YXRpYyBpbnQKLV9sb2FkX3Y2KG5ldHNubXBfY29udGFpbmVyICpjb250YWluZXIsIGludCBpZHhfb2Zmc2V0KQotewotICAgIGNoYXIgICAgICAgICAgICAgIGJ1ZmZlclsxNjM4NF07Ci0jaWYgZGVmaW5lZChIQVZFX0xJTlVYX1JUTkVUTElOS19IKQotICAgIHN0cnVjdCBubG1zZ2hkciAgICpubG1wOwotI2VuZGlmCi0gICAgaW50ICAgICAgICAgICAgICAgc2QgPSAwOwotICAgIGludCAgICAgICAgICAgICAgIHN0YXR1cyA9IDA7Ci0gICAgaW50ICAgICAgICAgICAgICAgcmMgPSAwOwotICAgIGludCAgICAgICAgICAgICAgIGxlbiwgcmVxX2xlbjsKLSAgICBuZXRzbm1wX2FycF9lbnRyeSAqZW50cnk7Ci0KLSAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGNvbnRhaW5lcik7Ci0jaWYgZGVmaW5lZChIQVZFX0xJTlVYX1JUTkVUTElOS19IKQotICAgIGlmKChzZCA9IHNvY2tldCAoUEZfTkVUTElOSywgU09DS19ER1JBTSwgTkVUTElOS19ST1VURSkpIDwgMCkgewotICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCJVbmFibGUgdG8gY3JlYXRlIG5ldGxpbmsgc29ja2V0XG4iKTsKLSAgICAgICAgcmV0dXJuIC0yOwotICAgIH0KLQotICAgIGlmKGdldF90cmFuc2xhdGlvbl90YWJsZV9pbmZvIChzZCwgJnN0YXR1cywgYnVmZmVyLCBzaXplb2YoYnVmZmVyKSkgPCAwKSB7Ci0gICAgICAgc25tcF9sb2coTE9HX0VSUiwiVW5hYmxlIHRvIGZldGNoIHRyYW5zbGF0aW9uIHRhYmxlIGluZm9cbiIpOwotICAgICAgIGNsb3NlKHNkKTsKLSAgICAgICByZXR1cm4gLTI7Ci0gICAgfQotCi0gICAgZm9yIChubG1wID0gKHN0cnVjdCBubG1zZ2hkciAqKWJ1ZmZlcjsgc3RhdHVzID4gc2l6ZW9mKCpubG1wKTsgKSB7Ci0gICAgICAgICBsZW4gPSBubG1wLT5ubG1zZ19sZW47Ci0gICAgICAgICByZXFfbGVuID0gbGVuIC0gc2l6ZW9mKCpubG1wKTsKLSAgICAgICAgIGlmIChyZXFfbGVuIDwgMCB8fCBsZW4gPiBzdGF0dXMpIHsKLSAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCJpbnZhbGlkIGxlbmd0aFxuIik7Ci0gICAgICAgICAgICAgcmV0dXJuIC0yOwotICAgICAgICAgfQotICAgICAgICAgaWYgKCFOTE1TR19PSyAobmxtcCwgc3RhdHVzKSkgewotICAgICAgICAgICAgIHNubXBfbG9nKExPR19FUlIsIk5MTVNHIG5vdCBPS1xuIik7Ci0gICAgICAgICAgICAgcmV0dXJuIC0yOwotICAgICAgICAgfQotICAgICAgICAgZW50cnkgPSBuZXRzbm1wX2FjY2Vzc19hcnBfZW50cnlfY3JlYXRlKCk7Ci0gICAgICAgICBpZihOVUxMID09IGVudHJ5KSB7Ci0gICAgICAgICAgICByYyA9IC0zOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICB9Ci0gICAgICAgICBlbnRyeS0+bnNfYXJwX2luZGV4ID0gKytpZHhfb2Zmc2V0OwotICAgICAgICAgaWYoZmlsbHVwX2VudHJ5X2luZm8gKGVudHJ5LCBubG1wKSA8IDApIHsKLSAgICAgICAgICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6YXJwOmxvYWRfdjYiLCAic2tpcHBpbmcgbmV0bGluayBtZXNzYWdlIHRoYXQiCi0gICAgICAgICAgICAgICAgICAgICAgICAiIGRpZCBub3QgY29udGFpbiB2YWxpZCBBUlAgaW5mb3JtYXRpb25cbiIpKTsKLSAgICAgICAgICAgIG5ldHNubXBfYWNjZXNzX2FycF9lbnRyeV9mcmVlKGVudHJ5KTsKLSAgICAgICAgICAgIHN0YXR1cyAtPSBOTE1TR19BTElHTihsZW4pOwotICAgICAgICAgICAgbmxtcCA9IChzdHJ1Y3Qgbmxtc2doZHIqKSgoY2hhciopbmxtcCArIE5MTVNHX0FMSUdOKGxlbikpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICB9Ci0gICAgICAgICBDT05UQUlORVJfSU5TRVJUKGNvbnRhaW5lciwgZW50cnkpOwotICAgICAgICAgc3RhdHVzIC09IE5MTVNHX0FMSUdOKGxlbik7Ci0gICAgICAgICBubG1wID0gKHN0cnVjdCBubG1zZ2hkciopKChjaGFyKilubG1wICsgTkxNU0dfQUxJR04obGVuKSk7Ci0gICAgfQotCi0gICAgY2xvc2Uoc2QpOwotI2VuZGlmCi0gICAgaWYocmM8MCkgewotICAgICAgICByZXR1cm4gcmM7Ci0gICAgfQotCi0gICAgcmV0dXJuIGlkeF9vZmZzZXQ7Ci19Ci0jaWYgZGVmaW5lZChIQVZFX0xJTlVYX1JUTkVUTElOS19IKQotaW50IAotZ2V0X3RyYW5zbGF0aW9uX3RhYmxlX2luZm8gKGludCBzZCwgaW50ICpzdGF0dXMsIGNoYXIgKmJ1ZmYsIHNpemVfdCBzaXplKQotewotICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICAgICAgc3RydWN0IG5sbXNnaGRyIG47Ci0gICAgICAgICAgICAgICAgc3RydWN0IG5kbXNnIHI7Ci0gICAgICAgICAgICAgICAgY2hhciAgIGJ1ZlsxMDI0XTsKLSAgICB9IHJlcTsKLSAgICBzdHJ1Y3QgcnRhdHRyICAgKnJ0YTsKLQotICAgIG1lbXNldCgmcmVxLCAwLCBzaXplb2YocmVxKSk7Ci0gICAgcmVxLm4ubmxtc2dfbGVuID0gTkxNU0dfTEVOR1RIIChzaXplb2Yoc3RydWN0IG5kbXNnKSk7Ci0gICAgcmVxLm4ubmxtc2dfZmxhZ3MgPSBOTE1fRl9SRVFVRVNUIHwgTkxNX0ZfUk9PVDsKLSAgICByZXEubi5ubG1zZ190eXBlID0gUlRNX0dFVE5FSUdIOwotCi0gICAgcmVxLnIubmRtX2ZhbWlseSA9IEFGX0lORVQ2OwotICAgIHJ0YSA9IChzdHJ1Y3QgcnRhdHRyICopKCgoY2hhciAqKSZyZXEpICsgTkxNU0dfQUxJR04ocmVxLm4ubmxtc2dfbGVuKSk7Ci0gICAgcnRhLT5ydGFfbGVuID0gUlRBX0xFTkdUSCgxNik7Ci0KLSAgICBpZihzZW5kKHNkLCAmcmVxLCByZXEubi5ubG1zZ19sZW4sIDApIDwgMCkgewotICAgICAgIHNubXBfbG9nKExPR19FUlIsIlNlbmRpbmcgcmVxdWVzdCBmYWlsZWRcbiIpOwotICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0gICAgaWYoKCpzdGF0dXMgPSByZWN2KHNkLCBidWZmLCBzaXplLCAwKSkgPCAwKSB7Ci0gICAgICAgc25tcF9sb2coTE9HX0VSUiwiUmVjaWV2aW5nIHJlcXVlc3QgZmFpbGVkXG4iKTsKLSAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAgIGlmKCpzdGF0dXMgPT0gMCkgewotICAgICAgIHNubXBfbG9nKExPR19FUlIsIkVuZCBvZiBmaWxlXG4iKTsKLSAgICAgICByZXR1cm4gLTE7Ci0gICAgfQogICAgIHJldHVybiAwOwogfQotCi1pbnQKLWZpbGx1cF9lbnRyeV9pbmZvKG5ldHNubXBfYXJwX2VudHJ5ICplbnRyeSwgc3RydWN0IG5sbXNnaGRyICpubG1wKQotewotICAgIHN0cnVjdCBuZG1zZyAgICpydG1wOwotICAgIHN0cnVjdCBpbjZfYWRkciAqaW42cDsKLSAgICBzdHJ1Y3QgcnRhdHRyICAqdGJbTkRBX01BWCArIDFdLCAqcnRhOwotICAgIHNpemVfdCAgICAgICAgICBpbl9sZW4sIG91dF9sZW47Ci0gICAgdW5zaWduZWQgaW50ICAgIGk7Ci0gICAgaW50ICAgICAgICAgICAgIGxlbmd0aDsKLSAgICBjaGFyICAgICAgICAgICAgYWRkcls0MF07Ci0gICAgdV9jaGFyICAgICAgICAgKmJ1ZjsKLSAgICB1X2NoYXIgICAgICAgICAqaHdhZGRyOwotCi0gICAgcnRtcCA9IChzdHJ1Y3QgbmRtc2cgKikgTkxNU0dfREFUQShubG1wKTsKLSAgICBpZiAobmxtcC0+bmxtc2dfdHlwZSAhPSBSVE1fTkVXTkVJR0gpIHsKLSAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgIldyb25nIG5ldGxpbmsgbWVzc2FnZSB0eXBlICVkXG4iLCBubG1wLT5ubG1zZ190eXBlKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLQotICAgIGlmIChydG1wLT5uZG1fc3RhdGUgIT0gTlVEX05PQVJQKSB7Ci0gICAgICAgIG1lbXNldCh0YiwgMCwgc2l6ZW9mKHN0cnVjdCBydGF0dHIgKikgKiAoTkRBX01BWCArIDEpKTsKLSAgICAgICAgbGVuZ3RoID0gbmxtcC0+bmxtc2dfbGVuIC0gTkxNU0dfTEVOR1RIKHNpemVvZigqcnRtcCkpOwotICAgICAgICBpZiAobGVuZ3RoIDwgMCkgewotICAgICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgIm5ldGxpbmsgbWVzc2FnZSBsZW5ndGggJWQgPCAlZCBpcyBpbnZhbGlkXG4iLAotICAgICAgICAgICAgICAgICAgICAgbmxtcC0+bmxtc2dfbGVuLCAoaW50KU5MTVNHX0xFTkdUSChzaXplb2YoKnJ0bXApKSk7Ci0gICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIH0KLSAgICAgICAgLyoKLSAgICAgICAgICogdGhpcyBpcyB3aGF0IHRoZSBrZXJuZWwtcmVtb3ZlZCBOREFfUlRBIGRlZmluZSBkaWQgCi0gICAgICAgICAqLwotICAgICAgICBydGEgPSAoKHN0cnVjdCBydGF0dHIgKikgKCgoY2hhciAqKSAocnRtcCkpICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOTE1TR19BTElHTihzaXplb2Yoc3RydWN0IG5kbXNnKSkpKTsKLSAgICAgICAgd2hpbGUgKFJUQV9PSyhydGEsIGxlbmd0aCkpIHsKLSAgICAgICAgICAgIGlmIChydGEtPnJ0YV90eXBlIDw9IE5EQV9NQVgpCi0gICAgICAgICAgICAgICAgdGJbcnRhLT5ydGFfdHlwZV0gPSBydGE7Ci0gICAgICAgICAgICBydGEgPSBSVEFfTkVYVChydGEsIGxlbmd0aCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGxlbmd0aCkgewotICAgICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgIlJlY2VpdmVkIHVuZXZlbiBudW1iZXIgb2YgbmV0bGluayIKLSAgICAgICAgICAgICAgICAgICAgICAgICIgbWVzc2FnZXMgLSAlZCBieXRlcyByZW1haW5pbmdcbiIsIGxlbmd0aCk7Ci0gICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIH0KLSAgICAgICAgLyoKLSAgICAgICAgICogRmlsbCB1cCB0aGUgaW5kZXgKLSAgICAgICAgICovCi0gICAgICAgIGVudHJ5LT5pZl9pbmRleCA9IHJ0bXAtPm5kbV9pZmluZGV4OwotICAgICAgICAvKgotICAgICAgICAgKiBGaWxsIHVwIGlwIGFkZHJlc3MgCi0gICAgICAgICAqLwotICAgICAgICBpZiAodGJbTkRBX0RTVF0pIHsKLSAgICAgICAgICAgIG1lbXNldCgmYWRkciwgJ1wwJywgc2l6ZW9mKGFkZHIpKTsKLSAgICAgICAgICAgIGluNnAgPSAoc3RydWN0IGluNl9hZGRyICopIFJUQV9EQVRBKHRiW05EQV9EU1RdKTsKLSAgICAgICAgICAgIHNwcmludGYoYWRkciwgTklQNl9GTVQsIE5JUDYoKmluNnApKTsKLSAgICAgICAgICAgIGluX2xlbiA9IGVudHJ5LT5hcnBfaXBhZGRyZXNzX2xlbiA9Ci0gICAgICAgICAgICAgICAgc2l6ZW9mKGVudHJ5LT5hcnBfaXBhZGRyZXNzKTsKLSAgICAgICAgICAgIG5ldHNubXBfYXNzZXJ0KDE2ID09IGluX2xlbik7Ci0gICAgICAgICAgICBvdXRfbGVuID0gMDsKLSAgICAgICAgICAgIGJ1ZiA9IGVudHJ5LT5hcnBfaXBhZGRyZXNzOwotICAgICAgICAgICAgaWYgKDEgIT0gbmV0c25tcF9oZXhfdG9fYmluYXJ5KCZidWYsICZpbl9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9sZW4sIDAsIGFkZHIsICI6IikpIHsKLSAgICAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiZXJyb3IgcGFyc2luZyAnJXMnLCBza2lwcGluZ1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS0+YXJwX2lwYWRkcmVzcyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbmV0c25tcF9hc3NlcnQoMTYgPT0gb3V0X2xlbik7Ci0gICAgICAgICAgICBlbnRyeS0+YXJwX2lwYWRkcmVzc19sZW4gPSBvdXRfbGVuOwotICAgICAgICB9Ci0gICAgICAgIGlmICh0YltOREFfTExBRERSXSkgewotICAgICAgICAgICAgbWVtc2V0KCZhZGRyLCAnXDAnLCBzaXplb2YoYWRkcikpOwotICAgICAgICAgICAgaHdhZGRyID0gUlRBX0RBVEEodGJbTkRBX0xMQUREUl0pOwotICAgICAgICAgICAgZW50cnktPmFycF9waHlzYWRkcmVzc19sZW4gPSBSVEFfUEFZTE9BRCh0YltOREFfTExBRERSXSk7Ci0gICAgICAgICAgICBidWYgPSBlbnRyeS0+YXJwX3BoeXNhZGRyZXNzOwotICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGVudHJ5LT5hcnBfcGh5c2FkZHJlc3NfbGVuOyBpKyspCi0gICAgICAgICAgICAgICAgZW50cnktPmFycF9waHlzYWRkcmVzc1tpXSA9IGh3YWRkcltpXTsKLSAgICAgICAgfQotCi0gICAgICAgIHN3aXRjaCAocnRtcC0+bmRtX3N0YXRlKSB7Ci0gICAgICAgIGNhc2UgTlVEX0lOQ09NUExFVEU6Ci0gICAgICAgICAgICBlbnRyeS0+YXJwX3N0YXRlID0gSU5FVE5FVFRPTUVESUFTVEFURV9JTkNPTVBMRVRFOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTlVEX1JFQUNIQUJMRToKLSAgICAgICAgY2FzZSBOVURfUEVSTUFORU5UOgotICAgICAgICAgICAgZW50cnktPmFycF9zdGF0ZSA9IElORVRORVRUT01FRElBU1RBVEVfUkVBQ0hBQkxFOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTlVEX1NUQUxFOgotICAgICAgICAgICAgZW50cnktPmFycF9zdGF0ZSA9IElORVRORVRUT01FRElBU1RBVEVfU1RBTEU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBOVURfREVMQVk6Ci0gICAgICAgICAgICBlbnRyeS0+YXJwX3N0YXRlID0gSU5FVE5FVFRPTUVESUFTVEFURV9ERUxBWTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5VRF9QUk9CRToKLSAgICAgICAgICAgIGVudHJ5LT5hcnBfc3RhdGUgPSBJTkVUTkVUVE9NRURJQVNUQVRFX1BST0JFOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTlVEX0ZBSUxFRDoKLSAgICAgICAgICAgIGVudHJ5LT5hcnBfc3RhdGUgPSBJTkVUTkVUVE9NRURJQVNUQVRFX0lOVkFMSUQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBOVURfTk9ORToKLSAgICAgICAgICAgIGVudHJ5LT5hcnBfc3RhdGUgPSBJTkVUTkVUVE9NRURJQVNUQVRFX1VOS05PV047Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJVbnJlY29nbml6ZWQgQVJQIGVudHJ5IHN0YXRlICVkIiwgcnRtcC0+bmRtX3N0YXRlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgc3dpdGNoIChydG1wLT5uZG1fc3RhdGUpIHsKLSAgICAgICAgY2FzZSBOVURfSU5DT01QTEVURToKLSAgICAgICAgY2FzZSBOVURfRkFJTEVEOgotICAgICAgICBjYXNlIE5VRF9OT05FOgotICAgICAgICAgICAgZW50cnktPmFycF90eXBlID0gSU5FVE5FVFRPTUVESUFUWVBFX0lOVkFMSUQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBOVURfUkVBQ0hBQkxFOgotICAgICAgICBjYXNlIE5VRF9TVEFMRToKLSAgICAgICAgY2FzZSBOVURfREVMQVk6Ci0gICAgICAgIGNhc2UgTlVEX1BST0JFOgotICAgICAgICAgICAgZW50cnktPmFycF90eXBlID0gSU5FVE5FVFRPTUVESUFUWVBFX0RZTkFNSUM7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBOVURfUEVSTUFORU5UOgotICAgICAgICAgICAgZW50cnktPmFycF90eXBlID0gSU5FVE5FVFRPTUVESUFUWVBFX1NUQVRJQzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgZW50cnktPmFycF90eXBlID0gSU5FVE5FVFRPTUVESUFUWVBFX0xPQ0FMOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gLTE7ICAgICAgICAgICAgICAvKiBjb3VsZCBub3QgY3JlYXRlIGRhdGEgZm9yIHRoaXMgaW50ZXJmYWNlICovCi0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0jZW5kaWYKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9uZXRsaW5rLmMgYi9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX25ldGxpbmsuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDU5YzIzCi0tLSAvZGV2L251bGwKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9uZXRsaW5rLmMKQEAgLTAsMCArMSwzMDQgQEAKKy8qCisgKiAgSW50ZXJmYWNlIE1JQiBhcmNoaXRlY3R1cmUgc3VwcG9ydAorICovCisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KKworI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg+CisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvcnRuZXRsaW5rLmg+CisKKworc3RhdGljIGludCBmaWxsdXBfZW50cnlfaW5mbyhuZXRzbm1wX2FycF9lbnRyeSAqZW50cnksIHN0cnVjdCBubG1zZ2hkciAqaCk7CitzdGF0aWMgdm9pZCBuZXRzbm1wX2FjY2Vzc19hcnBfcmVhZF9uZXRsaW5rKGludCBmZCwgdm9pZCAqZGF0YSk7CisKKy8qKgorICovCituZXRzbm1wX2FycF9hY2Nlc3MgKgorbmV0c25tcF9hY2Nlc3NfYXJwX2NyZWF0ZSh1X2ludCBpbml0X2ZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBOZXRzbm1wQWNjZXNzQXJwVXBkYXRlICp1cGRhdGVfaG9vaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTmV0c25tcEFjY2Vzc0FycEdDICpnY19ob29rLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKmNhY2hlX3RpbWVvdXQsIGludCAqY2FjaGVfZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmNhY2hlX2V4cGlyZWQpCit7CisgICAgbmV0c25tcF9hcnBfYWNjZXNzICphY2Nlc3M7CisKKyAgICBhY2Nlc3MgPSBTTk1QX01BTExPQ19UWVBFREVGKG5ldHNubXBfYXJwX2FjY2Vzcyk7CisgICAgaWYgKE5VTEwgPT0gYWNjZXNzKSB7CisgICAgICAgIHNubXBfbG9nKExPR19FUlIsIm1hbGxvYyBlcnJvciBpbiBuZXRzbm1wX2FjY2Vzc19hcnBfY3JlYXRlXG4iKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgYWNjZXNzLT5hcmNoX21hZ2ljID0gTlVMTDsKKyAgICBhY2Nlc3MtPm1hZ2ljID0gTlVMTDsKKyAgICBhY2Nlc3MtPnVwZGF0ZV9ob29rID0gdXBkYXRlX2hvb2s7CisgICAgYWNjZXNzLT5nY19ob29rID0gZ2NfaG9vazsKKyAgICBhY2Nlc3MtPnN5bmNocm9uaXplZCA9IDA7CisKKyAgICBpZiAoY2FjaGVfdGltZW91dCAhPSBOVUxMKQorICAgICAgICAqY2FjaGVfdGltZW91dCA9IDU7CisgICAgaWYgKGNhY2hlX2ZsYWdzICE9IE5VTEwpCisgICAgICAgICpjYWNoZV9mbGFncyB8PSBORVRTTk1QX0NBQ0hFX1JFU0VUX1RJTUVSX09OX1VTRSB8IE5FVFNOTVBfQ0FDSEVfRE9OVF9GUkVFX0JFRk9SRV9MT0FEOworICAgIGFjY2Vzcy0+Y2FjaGVfZXhwaXJlZCA9IGNhY2hlX2V4cGlyZWQ7CisKKyAgICBERUJVR01TR1RMKCgiYWNjZXNzOm5ldGxpbms6YXJwIiwgImNyZWF0ZSBhcnAgY2FjaGVcbiIpKTsKKworICAgIHJldHVybiBhY2Nlc3M7Cit9CisKK2ludCBuZXRzbm1wX2FjY2Vzc19hcnBfZGVsZXRlKG5ldHNubXBfYXJwX2FjY2VzcyAqYWNjZXNzKQoreworICAgIGlmIChOVUxMID09IGFjY2VzcykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBuZXRzbm1wX2FjY2Vzc19hcnBfdW5sb2FkKGFjY2Vzcyk7CisgICAgZnJlZShhY2Nlc3MpOworCisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBuZXRzbm1wX2FjY2Vzc19hcnBfbG9hZChuZXRzbm1wX2FycF9hY2Nlc3MgKmFjY2VzcykKK3sKKyAgICBpbnQgciwgZmQgPSAodWludHB0cl90KSBhY2Nlc3MtPmFyY2hfbWFnaWM7CisgICAgc3RydWN0IHsKKyAgICAgICAgc3RydWN0IG5sbXNnaGRyIG47CisgICAgICAgIHN0cnVjdCBuZG1zZyByOworICAgIH0gcmVxOworCisgICAgaWYgKGFjY2Vzcy0+c3luY2hyb25pemVkKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChmZCA9PSAwKSB7CisgICAgICAgIHN0cnVjdCBzb2NrYWRkcl9ubCBzYTsKKworICAgICAgICBmZCA9IHNvY2tldChQRl9ORVRMSU5LLCBTT0NLX0RHUkFNLCBORVRMSU5LX1JPVVRFKTsKKyAgICAgICAgaWYgKGZkIDwgMCkgeworICAgICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwibmV0c25tcF9hY2Nlc3NfYXJwX2xvYWQ6IG5ldGxpbmsgc29ja2V0IGNyZWF0ZSBlcnJvclxuIik7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgYWNjZXNzLT5hcmNoX21hZ2ljID0gKHZvaWQgKikodWludHB0cl90KWZkOworCisgICAgICAgIG1lbXNldCgmc2EsIDAsIHNpemVvZihzYSkpOworICAgICAgICBzYS5ubF9mYW1pbHkgPSBBRl9ORVRMSU5LOworICAgICAgICBzYS5ubF9ncm91cHMgPSBSVE1HUlBfTkVJR0g7CisgICAgICAgIGlmIChiaW5kKGZkLCAoc3RydWN0IHNvY2thZGRyKikgJnNhLCBzaXplb2Yoc2EpKSA8IDApIHsKKyAgICAgICAgICAgIHNubXBfbG9nKExPR19FUlIsIm5ldHNubXBfYWNjZXNzX2FycF9sb2FkOiBuZXRsaW5rIGJpbmQgZmFpbGVkXG4iKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyZWdpc3Rlcl9yZWFkZmQoZmQsIG5ldHNubXBfYWNjZXNzX2FycF9yZWFkX25ldGxpbmssIGFjY2VzcykgIT0gMCkgeworICAgICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwibmV0c25tcF9hY2Nlc3NfYXJwX2xvYWQ6IGVycm9yIHJlZ2lzdGVyaW5nIG5ldGxpbmsgc29ja2V0XG4iKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6bmV0bGluazphcnAiLCAic3luY2hyb25pemluZyBhcnAgdGFibGVcbiIpKTsKKworICAgIGFjY2Vzcy0+Z2VuZXJhdGlvbisrOworCisgICAgbWVtc2V0KCZyZXEsIDAsIHNpemVvZihyZXEpKTsKKyAgICByZXEubi5ubG1zZ19sZW4gPSBzaXplb2YocmVxKTsKKyAgICByZXEubi5ubG1zZ19mbGFncyA9IE5MTV9GX1JFUVVFU1QgfCBOTE1fRl9ST09UOworICAgIHJlcS5uLm5sbXNnX3R5cGUgPSBSVE1fR0VUTkVJR0g7CisgICAgcmVxLnIubmRtX2ZhbWlseSA9IEFGX1VOU1BFQzsKKworICAgIHIgPSBzZW5kKGZkLCAmcmVxLCByZXEubi5ubG1zZ19sZW4sIDApOworICAgIGlmIChyIDwgMCkgeworICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCJuZXRzbm1wX2FjY2Vzc19hcnBfcmVmcmVzaDogc2VuZCBmYWlsZWRcbiIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgd2hpbGUgKCFhY2Nlc3MtPnN5bmNocm9uaXplZCkKKyAgICAgICAgbmV0c25tcF9hY2Nlc3NfYXJwX3JlYWRfbmV0bGluayhmZCwgYWNjZXNzKTsKKyAgICBhY2Nlc3MtPmdjX2hvb2soYWNjZXNzKTsKKworICAgIHJldHVybiAwOworfQorCitpbnQgbmV0c25tcF9hY2Nlc3NfYXJwX3VubG9hZChuZXRzbm1wX2FycF9hY2Nlc3MgKmFjY2VzcykKK3sKKyAgICBpbnQgZmQ7CisKKyAgICBERUJVR01TR1RMKCgiYWNjZXNzOm5ldGxpbms6YXJwIiwgInVubG9hZCBhcnAgY2FjaGVcbiIpKTsKKworICAgIGZkID0gKHVpbnRwdHJfdCkgYWNjZXNzLT5hcmNoX21hZ2ljOworICAgIGlmIChmZCA+IDApIHsKKyAgICAgICAgIHVucmVnaXN0ZXJfcmVhZGZkKGZkKTsKKyAgICAgICAgIGNsb3NlKGZkKTsKKyAgICAgICAgIGFjY2Vzcy0+YXJjaF9tYWdpYyA9IE5VTEw7CisJIGFjY2Vzcy0+c3luY2hyb25pemVkID0gMDsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIG5ldHNubXBfYWNjZXNzX2FycF9yZWFkX25ldGxpbmsoaW50IGZkLCB2b2lkICpkYXRhKQoreworICAgIG5ldHNubXBfYXJwX2FjY2VzcyAqYWNjZXNzID0gKG5ldHNubXBfYXJwX2FjY2VzcyAqKSBkYXRhOworICAgIG5ldHNubXBfYXJwX2VudHJ5ICplbnRyeTsKKyAgICBjaGFyIGJ1ZlsxNjM4NF07CisgICAgc3RydWN0IG5sbXNnaGRyICpoOworICAgIGludCByLCBsZW47CisKKyAgICBkbyB7CisgICAgICAgIHIgPSByZWN2KGZkLCBidWYsIHNpemVvZihidWYpLCBNU0dfRE9OVFdBSVQpOworICAgICAgICBpZiAociA8IDApIHsKKyAgICAgICAgICAgIGlmIChlcnJubyA9PSBFSU5UUikKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChlcnJubyA9PSBFQUdBSU4pCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgc25tcF9sb2coTE9HX1dBUk5JTkcsICJuZXRsaW5rIGJ1ZmZlciBvdmVycnVuXG4iKTsKKyAgICAgICAgICAgIGFjY2Vzcy0+c3luY2hyb25pemVkID0gMDsKKyAgICAgICAgICAgIGlmIChhY2Nlc3MtPmNhY2hlX2V4cGlyZWQgIT0gTlVMTCkKKwkJKmFjY2Vzcy0+Y2FjaGVfZXhwaXJlZCA9IDE7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9IHdoaWxlICgwKTsKKyAgICBsZW4gPSByOworCisgICAgZm9yIChoID0gKHN0cnVjdCBubG1zZ2hkciAqKSBidWY7IE5MTVNHX09LKGgsIGxlbik7IGggPSBOTE1TR19ORVhUKGgsIGxlbikpIHsKKyAgICAgICAgIGlmIChoLT5ubG1zZ190eXBlID09IE5MTVNHX0RPTkUpIHsKKyAgICAgICAgICAgICBhY2Nlc3MtPnN5bmNocm9uaXplZCA9IDE7CisgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICB9CisKKyAgICAgICAgIGVudHJ5ID0gbmV0c25tcF9hY2Nlc3NfYXJwX2VudHJ5X2NyZWF0ZSgpOworICAgICAgICAgaWYgKE5VTEwgPT0gZW50cnkpCisgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6bmV0bGluazphcnAiLCAiYXJwIG5ldGxpbmsgbm90aWZpY2F0aW9uXG4iKSk7CisgICAgCisgICAgICAgICBlbnRyeS0+Z2VuZXJhdGlvbiA9IGFjY2Vzcy0+Z2VuZXJhdGlvbjsKKyAgICAgICAgIHIgPSBmaWxsdXBfZW50cnlfaW5mbyAoZW50cnksIGgpOworICAgICAgICAgaWYgKHIgPiAwKSB7CisgICAgICAgICAgICAgYWNjZXNzLT51cGRhdGVfaG9vayhhY2Nlc3MsIGVudHJ5KTsKKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgaWYgKHIgPCAwKSB7CisgICAgICAgICAgICAgICAgIE5FVFNOTVBfTE9HT05DRSgoTE9HX0VSUiwgImZpbGxpbmcgZW50cnkgaW5mbyBmYWlsZWRcbiIpKTsKKyAgICAgICAgICAgICAgICAgREVCVUdNU0dUTCgoImFjY2VzczpuZXRsaW5rOmFycCIsICJmaWxsaW5nIGVudHJ5IGluZm8gZmFpbGVkXG4iKSk7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIG5ldHNubXBfYWNjZXNzX2FycF9lbnRyeV9mcmVlKGVudHJ5KTsKKyAgICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyBpbnQKK2ZpbGx1cF9lbnRyeV9pbmZvKG5ldHNubXBfYXJwX2VudHJ5ICplbnRyeSwgc3RydWN0IG5sbXNnaGRyICpubG1wKQoreworICAgIHN0cnVjdCBuZG1zZyAgICpydG1wOworICAgIHN0cnVjdCBydGF0dHIgICp0YltOREFfTUFYICsgMV0sICpydGE7CisgICAgaW50ICAgICAgICAgICAgIGxlbmd0aDsKKworICAgIHJ0bXAgPSAoc3RydWN0IG5kbXNnICopIE5MTVNHX0RBVEEobmxtcCk7CisgICAgc3dpdGNoIChubG1wLT5ubG1zZ190eXBlKSB7CisgICAgY2FzZSBSVE1fTkVXTkVJR0g6CisgICAgICAgIGlmIChydG1wLT5uZG1fc3RhdGUgPT0gTlVEX0ZBSUxFRCkKKyAgICAgICAgICAgIGVudHJ5LT5mbGFncyA9IE5FVFNOTVBfQUNDRVNTX0FSUF9FTlRSWV9GTEFHX0RFTEVURTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZW50cnktPmZsYWdzID0gMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSVE1fREVMTkVJR0g6CisgICAgICAgIGVudHJ5LT5mbGFncyA9IE5FVFNOTVBfQUNDRVNTX0FSUF9FTlRSWV9GTEFHX0RFTEVURTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSVE1fR0VUTkVJR0g6CisgICAgICAgIHJldHVybiAwOworICAgIGRlZmF1bHQ6CisgICAgICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6bmV0bGluazphcnAiLAorICAgICAgICAgICAgICAgICAgICAiV3JvbmcgTmV0bGluayBtZXNzYWdlIHR5cGUgJWRcbiIsIG5sbXAtPm5sbXNnX3R5cGUpKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmIChydG1wLT5uZG1fc3RhdGUgPT0gTlVEX05PQVJQKSB7CisgICAgICAgIC8qIE5VRF9OT0FSUCBpcyBmb3IgYnJvYWRjYXN0IGFkZHJlc3NlcyBhbmQgc2ltaWxhciwKKyAgICAgICAgICogZHJvcCB0aGVtIHNpbGVudGx5ICovCisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIG1lbXNldCh0YiwgMCwgc2l6ZW9mKHN0cnVjdCBydGF0dHIgKikgKiAoTkRBX01BWCArIDEpKTsKKyAgICBsZW5ndGggPSBubG1wLT5ubG1zZ19sZW4gLSBOTE1TR19MRU5HVEgoc2l6ZW9mKCpydG1wKSk7CisgICAgcnRhID0gKChzdHJ1Y3QgcnRhdHRyICopICgoKGNoYXIgKikgKHJ0bXApKSArIE5MTVNHX0FMSUdOKHNpemVvZihzdHJ1Y3QgbmRtc2cpKSkpOworICAgIHdoaWxlIChSVEFfT0socnRhLCBsZW5ndGgpKSB7CisgICAgICAgIGlmIChydGEtPnJ0YV90eXBlIDw9IE5EQV9NQVgpCisgICAgICAgICAgICB0YltydGEtPnJ0YV90eXBlXSA9IHJ0YTsKKyAgICAgICAgcnRhID0gUlRBX05FWFQocnRhLCBsZW5ndGgpOworICAgIH0KKworICAgIC8qCisgICAgICogRmlsbCB1cCB0aGUgaW5kZXggYW5kIGFkZHJlc3NlcworICAgICAqLworICAgIGVudHJ5LT5pZl9pbmRleCA9IHJ0bXAtPm5kbV9pZmluZGV4OworICAgIGlmICh0YltOREFfRFNUXSkgeworICAgICAgICBlbnRyeS0+YXJwX2lwYWRkcmVzc19sZW4gPSBSVEFfUEFZTE9BRCh0YltOREFfRFNUXSk7CisgICAgICAgIGlmIChlbnRyeS0+YXJwX2lwYWRkcmVzc19sZW4gPiBzaXplb2YoZW50cnktPmFycF9pcGFkZHJlc3MpKSB7CisgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAibmV0bGluayBpcCBhZGRyZXNzIGxlbmd0aCAlZCBpcyB0b28gbG9uZ1xuIiwKKyAgICAgICAgICAgICAgICAgICAgIGVudHJ5LT5hcnBfaXBhZGRyZXNzX2xlbik7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgbWVtY3B5KGVudHJ5LT5hcnBfaXBhZGRyZXNzLCBSVEFfREFUQSh0YltOREFfRFNUXSksCisgICAgICAgZW50cnktPmFycF9pcGFkZHJlc3NfbGVuKTsKKyAgICB9CisgICAgaWYgKHRiW05EQV9MTEFERFJdKSB7CisgICAgICAgIGVudHJ5LT5hcnBfcGh5c2FkZHJlc3NfbGVuID0gUlRBX1BBWUxPQUQodGJbTkRBX0xMQUREUl0pOworICAgICAgICBpZiAoZW50cnktPmFycF9waHlzYWRkcmVzc19sZW4gPiBzaXplb2YoZW50cnktPmFycF9waHlzYWRkcmVzcykpIHsKKyAgICAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJuZXRsaW5rIGh3IGFkZHJlc3MgbGVuZ3RoICVkIGlzIHRvbyBsb25nXG4iLAorICAgICAgICAgICAgICAgICAgICAgZW50cnktPmFycF9waHlzYWRkcmVzc19sZW4pOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIG1lbWNweShlbnRyeS0+YXJwX3BoeXNhZGRyZXNzLCBSVEFfREFUQSh0YltOREFfTExBRERSXSksCisgICAgICAgICAgICAgICBlbnRyeS0+YXJwX3BoeXNhZGRyZXNzX2xlbik7CisgICAgfQorCisgICAgc3dpdGNoIChydG1wLT5uZG1fc3RhdGUpIHsKKyAgICBjYXNlIE5VRF9JTkNPTVBMRVRFOgorICAgICAgICBlbnRyeS0+YXJwX3N0YXRlID0gSU5FVE5FVFRPTUVESUFTVEFURV9JTkNPTVBMRVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5VRF9SRUFDSEFCTEU6CisgICAgY2FzZSBOVURfUEVSTUFORU5UOgorICAgICAgICBlbnRyeS0+YXJwX3N0YXRlID0gSU5FVE5FVFRPTUVESUFTVEFURV9SRUFDSEFCTEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTlVEX1NUQUxFOgorICAgICAgICBlbnRyeS0+YXJwX3N0YXRlID0gSU5FVE5FVFRPTUVESUFTVEFURV9TVEFMRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOVURfREVMQVk6CisgICAgICAgIGVudHJ5LT5hcnBfc3RhdGUgPSBJTkVUTkVUVE9NRURJQVNUQVRFX0RFTEFZOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5VRF9QUk9CRToKKyAgICAgICAgZW50cnktPmFycF9zdGF0ZSA9IElORVRORVRUT01FRElBU1RBVEVfUFJPQkU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTlVEX0ZBSUxFRDoKKyAgICAgICAgZW50cnktPmFycF9zdGF0ZSA9IElORVRORVRUT01FRElBU1RBVEVfSU5WQUxJRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOVURfTk9ORToKKyAgICAgICAgZW50cnktPmFycF9zdGF0ZSA9IElORVRORVRUT01FRElBU1RBVEVfVU5LTk9XTjsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgIlVucmVjb2duaXplZCBBUlAgZW50cnkgc3RhdGUgJWQiLCBydG1wLT5uZG1fc3RhdGUpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBzd2l0Y2ggKHJ0bXAtPm5kbV9zdGF0ZSkgeworICAgIGNhc2UgTlVEX0lOQ09NUExFVEU6CisgICAgY2FzZSBOVURfRkFJTEVEOgorICAgIGNhc2UgTlVEX05PTkU6CisgICAgICAgIGVudHJ5LT5hcnBfdHlwZSA9IElORVRORVRUT01FRElBVFlQRV9JTlZBTElEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5VRF9SRUFDSEFCTEU6CisgICAgY2FzZSBOVURfU1RBTEU6CisgICAgY2FzZSBOVURfREVMQVk6CisgICAgY2FzZSBOVURfUFJPQkU6CisgICAgICAgIGVudHJ5LT5hcnBfdHlwZSA9IElORVRORVRUT01FRElBVFlQRV9EWU5BTUlDOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5VRF9QRVJNQU5FTlQ6CisgICAgICAgIGVudHJ5LT5hcnBfdHlwZSA9IElORVRORVRUT01FRElBVFlQRV9TVEFUSUM7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGVudHJ5LT5hcnBfdHlwZSA9IElORVRORVRUT01FRElBVFlQRV9MT0NBTDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIDE7Cit9CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX3N5c2N0bC5jIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9zeXNjdGwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODE2NjY0Ci0tLSAvZGV2L251bGwKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9zeXNjdGwuYwpAQCAtMCwwICsxLDMyOCBAQAorLyoKKyAqICBJbnRlcmZhY2UgTUlCIGFyY2hpdGVjdHVyZSBzdXBwb3J0CisgKi8KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgorCisjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaD4KKworI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CisjaW5jbHVkZSA8bmV0L2lmLmg+CisjaW5jbHVkZSA8bmV0L2lmX2RsLmg+CisjaW5jbHVkZSA8bmV0L2lmX3R5cGVzLmg+CisjaW5jbHVkZSA8bmV0L3JvdXRlLmg+CisjaW5jbHVkZSA8bmV0aW5ldC9pZl9ldGhlci5oPgorI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKyNpbmNsdWRlIDxhcnBhL2luZXQuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorCisjaWYgIWRlZmluZWQoU0FfU0laRSkgJiYgIWRlZmluZWQoUlRfUk9VTkRVUCkKKyNkZWZpbmUgUlRfUk9VTkRVUChhKSAgXAorCSgoYSkgPiAwID8gKDEgKyAoKChhKSAtIDEpIHwgKHNpemVvZihsb25nKSAtIDEpKSkgOiBzaXplb2YobG9uZykpCisjZW5kaWYKKworc3RhdGljIGludCBfbG9hZF9hcnBfdGFibGVfZnJvbV9zeXNjdGwobmV0c25tcF9hcnBfYWNjZXNzICopOworc3RhdGljIGludCBfbG9hZF9uZHBfdGFibGVfZnJvbV9zeXNjdGwobmV0c25tcF9hcnBfYWNjZXNzICopOworCituZXRzbm1wX2FycF9hY2Nlc3MgKgorbmV0c25tcF9hY2Nlc3NfYXJwX2NyZWF0ZSh1X2ludCBpbml0X2ZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBOZXRzbm1wQWNjZXNzQXJwVXBkYXRlICp1cGRhdGVfaG9vaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTmV0c25tcEFjY2Vzc0FycEdDICpnY19ob29rLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKmNhY2hlX3RpbWVvdXQsIGludCAqY2FjaGVfZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmNhY2hlX2V4cGlyZWQpCit7CisgICAgbmV0c25tcF9hcnBfYWNjZXNzICphY2Nlc3M7CisKKyAgICBhY2Nlc3MgPSBTTk1QX01BTExPQ19UWVBFREVGKG5ldHNubXBfYXJwX2FjY2Vzcyk7CisgICAgaWYgKE5VTEwgPT0gYWNjZXNzKSB7CisgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJtYWxsb2MgZXJyb3IgaW4gbmV0c25tcF9hY2Nlc3NfYXJwX2NyZWF0ZVxuIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGFjY2Vzcy0+YXJjaF9tYWdpYyA9IE5VTEw7CisgICAgYWNjZXNzLT5tYWdpYyA9IE5VTEw7CisgICAgYWNjZXNzLT51cGRhdGVfaG9vayA9IHVwZGF0ZV9ob29rOworICAgIGFjY2Vzcy0+Z2NfaG9vayA9IGdjX2hvb2s7CisgICAgYWNjZXNzLT5zeW5jaHJvbml6ZWQgPSAwOworCisgICAgaWYgKGNhY2hlX3RpbWVvdXQgIT0gTlVMTCkKKyAgICAgICAgKmNhY2hlX3RpbWVvdXQgPSA1OworICAgIGlmIChjYWNoZV9mbGFncyAhPSBOVUxMKQorICAgICAgICAqY2FjaGVfZmxhZ3MgfD0gTkVUU05NUF9DQUNIRV9ET05UX0ZSRUVfQkVGT1JFX0xPQUQKKyAgICAgICAgICAgICAgICAgICAgICAgIHwgTkVUU05NUF9DQUNIRV9BVVRPX1JFTE9BRDsKKyAgICBhY2Nlc3MtPmNhY2hlX2V4cGlyZWQgPSBjYWNoZV9leHBpcmVkOworCisgICAgcmV0dXJuIGFjY2VzczsKK30KKworaW50IG5ldHNubXBfYWNjZXNzX2FycF9kZWxldGUobmV0c25tcF9hcnBfYWNjZXNzICphY2Nlc3MpCit7CisgICAgaWYgKE5VTEwgPT0gYWNjZXNzKQorICAgICAgICByZXR1cm4gMDsKKworICAgIG5ldHNubXBfYWNjZXNzX2FycF91bmxvYWQoYWNjZXNzKTsKKyAgICBmcmVlKGFjY2Vzcyk7CisKKyAgICByZXR1cm4gMDsKK30KKworaW50IG5ldHNubXBfYWNjZXNzX2FycF9sb2FkKG5ldHNubXBfYXJwX2FjY2VzcyAqYWNjZXNzKQoreworICAgIGludCBlcnIgPSAwOworCisgICAgYWNjZXNzLT5nZW5lcmF0aW9uKys7CisgICAgREVCVUdNU0dUTCgoImFjY2Vzczpyb3V0ZTpjb250YWluZXIiLAorICAgICAgICAgICAgICAgICJyb3V0ZV9jb250YWluZXJfYXJjaF9sb2FkIGlwdjRcbiIpKTsKKyAgICBlcnIgPSBfbG9hZF9hcnBfdGFibGVfZnJvbV9zeXNjdGwoYWNjZXNzKTsKKyAgICBpZiAoZXJyICE9IDApIHsKKyAgICAgICAgTkVUU05NUF9MT0dPTkNFKChMT0dfRVJSLAorICAgICAgICAgICAgIm5ldHNubXBfYWNjZXNzX2FycF9pcHY0IGZhaWxlZCAlZFxuIiwgZXJyKSk7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKyAgICBhY2Nlc3MtPmdjX2hvb2soYWNjZXNzKTsKKyAgICBhY2Nlc3MtPnN5bmNocm9uaXplZCA9IChlcnIgPT0gMCk7CisKKyNpZmRlZiBORVRTTk1QX0VOQUJMRV9JUFY2CisgICAgREVCVUdNU0dUTCgoImFjY2Vzczpyb3V0ZTpjb250YWluZXIiLAorICAgICAgICAgICAgICAgICJyb3V0ZV9jb250YWluZXJfYXJjaF9sb2FkIGlwdjZcbiIpKTsKKyAgICBlcnIgPSBfbG9hZF9uZHBfdGFibGVfZnJvbV9zeXNjdGwoYWNjZXNzKTsKKyAgICBpZiAoZXJyICE9IDApIHsKKyAgICAgICAgTkVUU05NUF9MT0dPTkNFKChMT0dfRVJSLAorICAgICAgICAgICAgIm5ldHNubXBfYWNjZXNzX2FycF9pcHY2IGZhaWxlZCAlZFxuIiwgZXJyKSk7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKyAgICBhY2Nlc3MtPmdjX2hvb2soYWNjZXNzKTsKKyAgICBhY2Nlc3MtPnN5bmNocm9uaXplZCA9IChlcnIgPT0gMCk7CisjZW5kaWYKKworb3V0OgorICAgIHJldHVybiAoZXJyID09IDAgPyAwIDogLTEpOworfQorCitpbnQgbmV0c25tcF9hY2Nlc3NfYXJwX3VubG9hZChuZXRzbm1wX2FycF9hY2Nlc3MgKmFjY2VzcykKK3sKKyAgICBhY2Nlc3MtPnN5bmNocm9uaXplZCA9IDA7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorX2xvYWRfYXJwX3RhYmxlX2Zyb21fc3lzY3RsKG5ldHNubXBfYXJwX2FjY2VzcyAqYWNjZXNzKQoreworICAgIG5ldHNubXBfYXJwX2VudHJ5ICplbnRyeTsKKyAgICBzdHJ1Y3QgcnRfbXNnaGRyICpydG07CisgICAgc3RydWN0IHNvY2thZGRyX2luYXJwICpzaW4yOworICAgIHN0cnVjdCBzb2NrYWRkcl9kbCAqc2RsOworICAgIGNoYXIgKmJ1ZiwgKmxpbSwgKm5ld2J1ZiwgKm5leHQ7CisgICAgaW50IG1pYls2XTsKKyAgICBzaXplX3QgbmVlZGVkOworICAgIGludCBlcnIsIHN0OworCisgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBhY2Nlc3MpOworCisgICAgbWliWzBdID0gQ1RMX05FVDsKKyAgICBtaWJbMV0gPSBQRl9ST1VURTsKKyAgICBtaWJbMl0gPSAwOworICAgIG1pYlszXSA9IEFGX0lORVQ7CisgICAgbWliWzRdID0gTkVUX1JUX0ZMQUdTOworICAgIG1pYls1XSA9IFJURl9MTElORk87CisKKyAgICBlcnIgPSAwOworICAgIGJ1ZiA9IG5ld2J1ZiA9IE5VTEw7CisKKyAgICAvKiBUaGUgZm9sbG93aW5nIGxvZ2ljIHdhcyBhZGFwdGVkIGZyb20gc2VhcmNoKC4uKSBpbiB1c3Iuc2Jpbi9hcnAvYXJwLmMgKi8KKworICAgIGlmIChzeXNjdGwobWliLCA2LCBOVUxMLCAmbmVlZGVkLCBOVUxMLCAwKSA8IDApIHsKKyAgICAgICAgZXJyID0gZXJybm87CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIC8qIEVtcHR5IGFycCB0YWJsZS4gKi8KKyAgICBpZiAobmVlZGVkID09IDApCisgICAgICAgIGdvdG8gb3V0OworCisgICAgZm9yICg7OykgeworICAgICAgICBuZXdidWYgPSByZWFsbG9jKGJ1ZiwgbmVlZGVkKTsKKyAgICAgICAgaWYgKG5ld2J1ZiA9PSBOVUxMKSB7CisgICAgICAgICAgICBlcnIgPSBFTk9NRU07CisgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgfQorICAgICAgICBidWYgPSBuZXdidWY7CisgICAgICAgIHN0ID0gc3lzY3RsKG1pYiwgNiwgYnVmLCAmbmVlZGVkLCBOVUxMLCAwKTsKKyAgICAgICAgaWYgKHN0ID09IDAgfHwgZXJybm8gIT0gRU5PTUVNKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5lZWRlZCArPSBuZWVkZWQgLyA4OyAvKiBYWFg6IHdoeSA4PyAqLworICAgIH0KKyAgICBpZiAoc3QgPT0gLTEpIHsKKyAgICAgICAgZXJyID0gZXJybm87CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIGxpbSA9IGJ1ZiArIG5lZWRlZDsKKyAgICBmb3IgKG5leHQgPSBidWY7IG5leHQgPCBsaW07IG5leHQgKz0gcnRtLT5ydG1fbXNnbGVuKSB7CisKKyAgICAgICAgcnRtID0gKHN0cnVjdCBydF9tc2doZHIgKiluZXh0OworICAgICAgICBzaW4yID0gKHN0cnVjdCBzb2NrYWRkcl9pbmFycCopKHJ0bSArIDEpOworI2lmZGVmIFNBX1NJWkUKKyAgICAgICAgc2RsID0gKHN0cnVjdCBzb2NrYWRkcl9kbCopKChjaGFyICopc2luMiArIFNBX1NJWkUoc2luMikpOworI2Vsc2UKKwlzZGwgPSAoc3RydWN0IHNvY2thZGRyX2RsKikodm9pZCAqKShSVF9ST1VORFVQKHNpbjItPnNpbl9sZW4pICsgKGNoYXIgKikodm9pZCAqKXNpbjIpOworI2VuZGlmCisKKyAgICAgICAgZW50cnkgPSBuZXRzbm1wX2FjY2Vzc19hcnBfZW50cnlfY3JlYXRlKCk7CisgICAgICAgIGlmIChOVUxMID09IGVudHJ5KSB7CisgICAgICAgICAgICBlcnIgPSBFTk9NRU07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGVudHJ5LT5nZW5lcmF0aW9uID0gYWNjZXNzLT5nZW5lcmF0aW9uOworICAgICAgICBlbnRyeS0+aWZfaW5kZXggPSBydG0tPnJ0bV9pbmRleDsKKworICAgICAgICBlbnRyeS0+YXJwX2lwYWRkcmVzc19sZW4gPSA0OworCisgICAgICAgIG1lbWNweShlbnRyeS0+YXJwX2lwYWRkcmVzcywgJnNpbjItPnNpbl9hZGRyLnNfYWRkciwKKyAgICAgICAgICAgIGVudHJ5LT5hcnBfaXBhZGRyZXNzX2xlbik7CisKKyAgICAgICAgLyogSFcgQWRkcmVzcyAqLworICAgICAgICBlbnRyeS0+YXJwX3BoeXNhZGRyZXNzX2xlbiA9IDY7CisgICAgICAgIGlmICgwIDwgc2RsLT5zZGxfYWxlbikgeworICAgICAgICAgICAgbWVtY3B5KGVudHJ5LT5hcnBfcGh5c2FkZHJlc3MsIExMQUREUihzZGwpLCBzZGwtPnNkbF9hbGVuKTsKKyAgICAgICAgICAgIC8qIFByb2Nlc3Mgc3RhdHVzICovCisgICAgICAgICAgICAvKiBYWFg6IHNldHRpbmcgdGhpcyB2YWx1ZSBmb3IgYWxsIHN0YXRlcyBpcyB3cm9uZy4gKi8KKyAgICAgICAgICAgIGVudHJ5LT5hcnBfc3RhdGUgPSBJTkVUTkVUVE9NRURJQVNUQVRFX1JFQUNIQUJMRTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVudHJ5LT5hcnBfcGh5c2FkZHJlc3NbMF0gPSAnXDAnOworICAgICAgICAgICAgZW50cnktPmFycF9zdGF0ZSA9IElORVRORVRUT01FRElBU1RBVEVfSU5DT01QTEVURTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIFByb2Nlc3MgdHlwZSAqLworICAgICAgICAvKiBYWFg6IG1vcmUgc3RhdGVzIHNob3VsZCBiZSBoYW5kbGVkIGhlcmUsIHByb2JhYmx5Li4gKi8KKyAgICAgICAgaWYgKHJ0bS0+cnRtX3JteC5ybXhfZXhwaXJlID09IDApCisgICAgICAgICAgICBlbnRyeS0+YXJwX3R5cGUgPSBJTkVUTkVUVE9NRURJQVRZUEVfU1RBVElDOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlbnRyeS0+YXJwX3R5cGUgPSBJTkVUTkVUVE9NRURJQVRZUEVfRFlOQU1JQzsKKworICAgICAgICBhY2Nlc3MtPnVwZGF0ZV9ob29rKGFjY2VzcywgZW50cnkpOworCisgICAgfQorCitvdXQ6CisgICAgZnJlZShidWYpOworICAgIHJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQKK19sb2FkX25kcF90YWJsZV9mcm9tX3N5c2N0bChuZXRzbm1wX2FycF9hY2Nlc3MgKmFjY2VzcykKK3sKKyNpZiAxCisgICAgbmV0c25tcF9hcnBfZW50cnkgKmVudHJ5OworICAgIHN0cnVjdCBydF9tc2doZHIgKnJ0bTsKKyAgICBzdHJ1Y3Qgc29ja2FkZHJfaW42ICpzaW4yOworICAgIHN0cnVjdCBzb2NrYWRkcl9kbCAqc2RsOworICAgIHNpemVfdCBuZWVkZWQ7CisgICAgaW50IGVyciwgbWliWzZdLCBzdDsKKyAgICBjaGFyICpidWYsICpsaW0sICpuZXdidWYsICpuZXh0OworCisgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBhY2Nlc3MpOworCisgICAgbWliWzBdID0gQ1RMX05FVDsKKyAgICBtaWJbMV0gPSBQRl9ST1VURTsKKyAgICBtaWJbMl0gPSAwOworICAgIG1pYlszXSA9IEFGX0lORVQ2OworICAgIG1pYls0XSA9IE5FVF9SVF9GTEFHUzsKKyAgICBtaWJbNV0gPSBSVEZfTExJTkZPOworCisgICAgZXJyID0gMDsKKyAgICBidWYgPSBuZXdidWYgPSBOVUxMOworCisgICAgaWYgKHN5c2N0bChtaWIsIDYsIE5VTEwsICZuZWVkZWQsIE5VTEwsIDApIDwgMCkgeworICAgICAgICBlcnIgPSBlcnJubzsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgLyogRW1wdHkgYXJwIHRhYmxlLiAqLworICAgIGlmIChuZWVkZWQgPT0gMCkKKyAgICAgICAgZ290byBvdXQ7CisKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIG5ld2J1ZiA9IHJlYWxsb2MoYnVmLCBuZWVkZWQpOworICAgICAgICBpZiAobmV3YnVmID09IE5VTEwpIHsKKyAgICAgICAgICAgIGVyciA9IEVOT01FTTsKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CisgICAgICAgIGJ1ZiA9IG5ld2J1ZjsKKyAgICAgICAgc3QgPSBzeXNjdGwobWliLCA2LCBidWYsICZuZWVkZWQsIE5VTEwsIDApOworICAgICAgICBpZiAoc3QgPT0gMCB8fCBlcnJubyAhPSBFTk9NRU0pCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmVlZGVkICs9IG5lZWRlZCAvIDg7IC8qIFhYWDogd2h5IDg/ICovCisgICAgfQorICAgIGlmIChzdCA9PSAtMSkgeworICAgICAgICBlcnIgPSBlcnJubzsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgbGltID0gYnVmICsgbmVlZGVkOworICAgIGZvciAobmV4dCA9IGJ1ZjsgbmV4dCA8IGxpbTsgbmV4dCArPSBydG0tPnJ0bV9tc2dsZW4pIHsKKworICAgICAgICBydG0gPSAoc3RydWN0IHJ0X21zZ2hkciAqKW5leHQ7CisgICAgICAgIHNpbjIgPSAoc3RydWN0IHNvY2thZGRyX2luNiopKHJ0bSArIDEpOworI2lmZGVmIFNBX1NJWkUKKyAgICAgICAgc2RsID0gKHN0cnVjdCBzb2NrYWRkcl9kbCopKChjaGFyICopc2luMiArIFNBX1NJWkUoc2luMikpOworI2Vsc2UKKwlzZGwgPSAoc3RydWN0IHNvY2thZGRyX2RsKikodm9pZCAqKShSVF9ST1VORFVQKHNpbjItPnNpbjZfbGVuKSArIChjaGFyICopKHZvaWQgKilzaW4yKTsKKyNlbmRpZgorCisgICAgICAgIGlmICghKHJ0bS0+cnRtX2ZsYWdzICYgUlRGX0hPU1QpIHx8CisgICAgICAgICAgICBJTjZfSVNfQUREUl9NVUxUSUNBU1QoJnNpbjItPnNpbjZfYWRkcikpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBlbnRyeSA9IG5ldHNubXBfYWNjZXNzX2FycF9lbnRyeV9jcmVhdGUoKTsKKyAgICAgICAgaWYgKE5VTEwgPT0gZW50cnkpIHsKKyAgICAgICAgICAgIGVyciA9IEVOT01FTTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgZW50cnktPmdlbmVyYXRpb24gPSBhY2Nlc3MtPmdlbmVyYXRpb247CisgICAgICAgIGVudHJ5LT5pZl9pbmRleCA9IHJ0bS0+cnRtX2luZGV4OworCisgICAgICAgIGVudHJ5LT5hcnBfaXBhZGRyZXNzX2xlbiA9IDE2OworCisgICAgICAgIG1lbWNweShlbnRyeS0+YXJwX2lwYWRkcmVzcywgJnNpbjItPnNpbjZfYWRkci5zNl9hZGRyLAorICAgICAgICAgICAgZW50cnktPmFycF9pcGFkZHJlc3NfbGVuKTsKKworICAgICAgICAvKiBIVyBBZGRyZXNzICovCisgICAgICAgIGVudHJ5LT5hcnBfcGh5c2FkZHJlc3NfbGVuID0gc2RsLT5zZGxfYWxlbjsKKyAgICAgICAgaWYgKDAgPCBzZGwtPnNkbF9hbGVuKSB7CisgICAgICAgICAgICBtZW1jcHkoZW50cnktPmFycF9waHlzYWRkcmVzcywgTExBRERSKHNkbCksIHNkbC0+c2RsX2FsZW4pOworICAgICAgICAgICAgLyogUHJvY2VzcyBzdGF0dXMgKi8KKyAgICAgICAgICAgIC8qIFhYWDogc2V0dGluZyB0aGlzIHZhbHVlIGZvciBhbGwgc3RhdGVzIGlzIHdyb25nLiAqLworICAgICAgICAgICAgZW50cnktPmFycF9zdGF0ZSA9IElORVRORVRUT01FRElBU1RBVEVfUkVBQ0hBQkxFOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZW50cnktPmFycF9waHlzYWRkcmVzc1swXSA9ICdcMCc7CisgICAgICAgICAgICBlbnRyeS0+YXJwX3N0YXRlID0gSU5FVE5FVFRPTUVESUFTVEFURV9JTkNPTVBMRVRFOworICAgICAgICB9CisKKyAgICAgICAgLyogUHJvY2VzcyB0eXBlICovCisgICAgICAgIC8qIFhYWDogbW9yZSBzdGF0ZXMgc2hvdWxkIGJlIGhhbmRsZWQgaGVyZSwgcHJvYmFibHkuLiAqLworICAgICAgICBpZiAocnRtLT5ydG1fcm14LnJteF9leHBpcmUgPT0gMCkKKyAgICAgICAgICAgIGVudHJ5LT5hcnBfdHlwZSA9IElORVRORVRUT01FRElBVFlQRV9TVEFUSUM7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVudHJ5LT5hcnBfdHlwZSA9IElORVRORVRUT01FRElBVFlQRV9EWU5BTUlDOworCisgICAgICAgIGFjY2Vzcy0+dXBkYXRlX2hvb2soYWNjZXNzLCBlbnRyeSk7CisKKyAgICB9CisKK291dDoKKyAgICBmcmVlKGJ1Zik7CisgICAgcmV0dXJuIGVycjsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyLmggYi9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlci5oCmluZGV4IGE0ZGZiYjEuLjQ5Yjk5MjcgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyLmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXIuaApAQCAtMjAsNiArMjAsOCBAQAogY29uZmlnX3JlcXVpcmUoaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfY29tbW9uKQogI2lmIGRlZmluZWQoIGxpbnV4ICkKIGNvbmZpZ19yZXF1aXJlKGlwLW1pYi9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyX2xpbnV4KQorI2VsaWYgZGVmaW5lZCggZnJlZWJzZDQgKSB8fCBkZWZpbmVkKCBuZXRic2Q1ICkgfHwgZGVmaW5lZCggb3BlbmJzZCApIHx8IGRlZmluZWQoIGRyYWdvbmZseSApIHx8IGRlZmluZWQoIGRhcndpbiApCitjb25maWdfcmVxdWlyZShpcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9zeXNjdGwpCiAjZWxzZQogLyoKICAqIGNvdWxkbid0IGRldGVybWluZSB0aGUgY29ycmVjdCBmaWxlIQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfc3lzY3RsLmMgYi9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9zeXNjdGwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzQ2ZWI4Ci0tLSAvZGV2L251bGwKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfc3lzY3RsLmMKQEAgLTAsMCArMSwyMzAgQEAKKy8qCisgKiAgSW50ZXJmYWNlIE1JQiBhcmNoaXRlY3R1cmUgc3VwcG9ydAorICoKKyAqICRJZDokCisgKi8KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgorCisjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyLmg+CisKKyNpbmNsdWRlICJpcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGUuaCIKKworI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CisjaW5jbHVkZSA8bmV0L3JvdXRlLmg+CisjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorI2luY2x1ZGUgPGFycGEvaW5ldC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpZiAhZGVmaW5lZChTQV9TSVpFKSAmJiAhZGVmaW5lZChSVF9ST1VORFVQKQorI2RlZmluZSBSVF9ST1VORFVQKGEpICBcCisgICAgICAgICgoYSkgPiAwID8gKDEgKyAoKChhKSAtIDEpIHwgKHNpemVvZihsb25nKSAtIDEpKSkgOiBzaXplb2YobG9uZykpCisjZW5kaWYKKworLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qCisgKiBsb2NhbCBzdGF0aWMgcHJvdG90eXBlcworICovCitzdGF0aWMgaW50IF9sb2FkX2RlZmF1bHRyb3V0ZXJfZnJvbV9zeXNjdGwobmV0c25tcF9jb250YWluZXIgKiwgaW50KTsKKworc3RhdGljIGludCBpZHhfb2Zmc2V0OworCisvKgorICogaW5pdGlhbGl6ZSBhcmNoIHNwZWNpZmljIHN0b3JhZ2UKKyAqCisgKiBAcmV0dmFsICAwOiBzdWNjZXNzCisgKiBAcmV0dmFsIDwwOiBlcnJvcgorICovCitpbnQKK25ldHNubXBfYXJjaF9kZWZhdWx0cm91dGVyX2VudHJ5X2luaXQobmV0c25tcF9kZWZhdWx0cm91dGVyX2VudHJ5ICplbnRyeSkKK3sKKyAgICAvKgorICAgICAqIGluaXQKKyAgICAgKi8KKyAgICByZXR1cm4gMDsKK30KKworLyoqCisgKgorICogQHJldHZhbCAgMCBubyBlcnJvcnMKKyAqIEByZXR2YWwgITAgZXJyb3JzCisgKi8KK2ludAorbmV0c25tcF9hcmNoX2RlZmF1bHRyb3V0ZXJfY29udGFpbmVyX2xvYWQobmV0c25tcF9jb250YWluZXIgKmNvbnRhaW5lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfaW50IGxvYWRfZmxhZ3MpCit7CisgICAgaW50IGVycjsKKworICAgIGVyciA9IDA7CisgICAgaWR4X29mZnNldCA9IDA7CisKKyAgICBERUJVR01TR1RMKCgiYWNjZXNzOmRlZmF1bHRyb3V0ZXI6ZW50cnk6YXJjaCIsICJsb2FkXG4iKSk7CisgICAgaWYgKE5VTEwgPT0gY29udGFpbmVyKSB7CisgICAgICAgIHNubXBfbG9nKExPR19FUlIsCisgICAgICAgICAgICAibmV0c25tcF9hcmNoX2RlZmF1bHRyb3V0ZXJfY29udGFpbmVyX2xvYWQ6IGNvbnRhaW5lciBpbnZhbGlkXG4iKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgZXJyID0gX2xvYWRfZGVmYXVsdHJvdXRlcl9mcm9tX3N5c2N0bChjb250YWluZXIsIEFGX0lORVQpOworICAgIGlmIChlcnIgIT0gMCkgeworICAgICAgICB1X2ludCBmbGFncyA9IE5FVFNOTVBfQUNDRVNTX0RFRkFVTFRST1VURVJfRlJFRV9LRUVQX0NPTlRBSU5FUjsKKyAgICAgICAgbmV0c25tcF9hY2Nlc3NfZGVmYXVsdHJvdXRlcl9jb250YWluZXJfZnJlZShjb250YWluZXIsIGZsYWdzKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisjaWZkZWYgTkVUU05NUF9FTkFCTEVfSVBWNgorICAgIGVyciA9IF9sb2FkX2RlZmF1bHRyb3V0ZXJfZnJvbV9zeXNjdGwoY29udGFpbmVyLCBBRl9JTkVUNik7CisgICAgaWYgKGVyciAhPSAwKSB7CisgICAgICAgIHVfaW50IGZsYWdzID0gTkVUU05NUF9BQ0NFU1NfREVGQVVMVFJPVVRFUl9GUkVFX0tFRVBfQ09OVEFJTkVSOworICAgICAgICBuZXRzbm1wX2FjY2Vzc19kZWZhdWx0cm91dGVyX2NvbnRhaW5lcl9mcmVlKGNvbnRhaW5lciwgZmxhZ3MpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisjZW5kaWYKKworb3V0OgorICAgIHJldHVybiBlcnI7Cit9CisKKy8qKgorICoKKyAqIEByZXR2YWwgIDAgbm8gZXJyb3JzCisgKiBAcmV0dmFsICEwIGVycm9ycworICovCitzdGF0aWMgaW50CitfbG9hZF9kZWZhdWx0cm91dGVyX2Zyb21fc3lzY3RsKG5ldHNubXBfY29udGFpbmVyICpjb250YWluZXIsIGludCBmYW1pbHkpCit7CisgICAgbmV0c25tcF9kZWZhdWx0cm91dGVyX2VudHJ5ICplbnRyeTsKKyAgICBzdHJ1Y3QgcnRfbXNnaGRyICpydG07CisgICAgc3RydWN0IHNvY2thZGRyICpkc3Rfc2EsICpnd19zYTsKKyAgICBjaGFyICpidWYsICpsaW0sICpuZXdidWYsICpuZXh0OworICAgIGNoYXIgYWRkcmVzc1tORVRTTk1QX0FDQ0VTU19ERUZBVUxUUk9VVEVSX0JVRl9TSVpFXTsKKyAgICBpbnQgbWliWzZdOworICAgIHNpemVfdCBhZGRyZXNzX2xlbiwgbmVlZGVkOworICAgIGludCBhZGRyZXNzX3R5cGUsIGVyciwgcHJlZmVyZW5jZSwgc3Q7CisKKyAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGNvbnRhaW5lcik7CisKKyAgICBtaWJbMF0gPSBDVExfTkVUOworICAgIG1pYlsxXSA9IFBGX1JPVVRFOworICAgIG1pYlsyXSA9IDA7CisgICAgbWliWzNdID0gZmFtaWx5OworICAgIG1pYls0XSA9IE5FVF9SVF9EVU1QOworICAgIG1pYls1XSA9IDA7CisKKyAgICBlcnIgPSAwOworCisgICAgYnVmID0gbmV3YnVmID0gTlVMTDsKKworICAgIGlmIChmYW1pbHkgPT0gQUZfSU5FVCkgeworICAgICAgICBhZGRyZXNzX2xlbiA9IDQ7CisgICAgICAgIGFkZHJlc3NfdHlwZSA9IElORVRBRERSRVNTVFlQRV9JUFY0OworI2lmZGVmIE5FVFNOTVBfRU5BQkxFX0lQVjYKKyAgICB9IGVsc2UgaWYgKGZhbWlseSA9PSBBRl9JTkVUNikgeworICAgICAgICBhZGRyZXNzX2xlbiA9IDE2OworICAgICAgICBhZGRyZXNzX3R5cGUgPSBJTkVUQUREUkVTU1RZUEVfSVBWNjsKKyNlbmRpZgorICAgIH0gZWxzZSB7CisgICAgICAgIGVyciA9IEVJTlZBTDsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgaWYgKHN5c2N0bChtaWIsIDYsIE5VTEwsICZuZWVkZWQsIE5VTEwsIDApIDwgMCkgeworICAgICAgICBlcnIgPSBlcnJubzsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgLyogRW1wdHkgYXJwIHRhYmxlLiAqLworICAgIGlmIChuZWVkZWQgPT0gMCkKKyAgICAgICAgZ290byBvdXQ7CisKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIG5ld2J1ZiA9IHJlYWxsb2MoYnVmLCBuZWVkZWQpOworICAgICAgICBpZiAobmV3YnVmID09IE5VTEwpIHsKKyAgICAgICAgICAgIGVyciA9IEVOT01FTTsKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CisgICAgICAgIGJ1ZiA9IG5ld2J1ZjsKKyAgICAgICAgc3QgPSBzeXNjdGwobWliLCBzaXplb2YobWliKSAvIHNpemVvZihtaWJbMF0pLCBidWYsICZuZWVkZWQsIE5VTEwsIDApOworICAgICAgICBpZiAoc3QgPT0gMCB8fCBlcnJubyAhPSBFTk9NRU0pCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmVlZGVkICs9IG5lZWRlZCAvIDg7IC8qIFhYWDogd2h5IDg/ICovCisgICAgfQorICAgIGlmIChzdCA9PSAtMSkgeworICAgICAgICBlcnIgPSBlcnJubzsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgbGltID0gYnVmICsgbmVlZGVkOworICAgIGZvciAobmV4dCA9IGJ1ZjsgbmV4dCA8IGxpbTsgbmV4dCArPSBydG0tPnJ0bV9tc2dsZW4pIHsKKyNpZmRlZiBORVRTTk1QX0VOQUJMRV9JUFY2CisJc3RydWN0IGluNl9hZGRyIGluNmFkZHJfYW55ID0gSU42QUREUl9BTllfSU5JVDsKKyNlbmRpZgorCisgICAgICAgIHJ0bSA9IChzdHJ1Y3QgcnRfbXNnaGRyICopbmV4dDsKKworICAgICAgICBpZiAoIShydG0tPnJ0bV9hZGRycyAmIFJUQV9HQVRFV0FZKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGRzdF9zYSA9IChzdHJ1Y3Qgc29ja2FkZHIqKShydG0gKyAxKTsKKyNpZmRlZiBTQV9TSVpFCisgICAgICAgIGd3X3NhID0gKHN0cnVjdCBzb2NrYWRkciopKFNBX1NJWkUoZHN0X3NhKSArIChjaGFyKilkc3Rfc2EpOworI2Vsc2UKKyAgICAgICAgZ3dfc2EgPSAoc3RydWN0IHNvY2thZGRyKikoUlRfUk9VTkRVUChkc3Rfc2EtPnNhX2xlbikgKyAoY2hhciopZHN0X3NhKTsKKyNlbmRpZgorCisgICAgICAgIHN3aXRjaCAoZmFtaWx5KSB7CisgICAgICAgIGNhc2UgQUZfSU5FVDoKKyAgICAgICAgICAgIGlmICgoKHN0cnVjdCBzb2NrYWRkcl9pbiopZHN0X3NhKS0+c2luX2FkZHIuc19hZGRyICE9IElOQUREUl9BTlkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisJICAgIG1lbWNweShhZGRyZXNzLCAmKChzdHJ1Y3Qgc29ja2FkZHJfaW4qKWd3X3NhKS0+c2luX2FkZHIuc19hZGRyLAorCSAgICAgICAgICAgYWRkcmVzc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisjaWZkZWYgTkVUU05NUF9FTkFCTEVfSVBWNgorICAgICAgICBjYXNlIEFGX0lORVQ2OgorICAgICAgICAgICAgaWYgKG1lbWNtcCgoKHN0cnVjdCBzb2NrYWRkcl9pbjYqKWRzdF9zYSktPnNpbjZfYWRkci5zNl9hZGRyLAorCQkJJmluNmFkZHJfYW55LCBzaXplb2YgaW42YWRkcl9hbnkpICE9IDApCisJCWNvbnRpbnVlOyAvKiBYWFg6IG5lZWQgdG8gZGV0ZXJtaW5lIHF1YWxpZnlpbmcgY3JpdGVyaWEgZm9yCisgICAgICAgICAgICAgICAgICAgICAgICogZGVmYXVsdCBnYXRld2F5cyBpbiBJUHY2LiAqLworICAgICAgICAgICAgbWVtY3B5KGFkZHJlc3MsICYoKHN0cnVjdCBzb2NrYWRkcl9pbjYqKWRzdF9zYSktPnNpbjZfYWRkci5zNl9hZGRyLAorCQkgICBhZGRyZXNzX2xlbik7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBlbnRyeSA9IG5ldHNubXBfYWNjZXNzX2RlZmF1bHRyb3V0ZXJfZW50cnlfY3JlYXRlKCk7CisgICAgICAgIGlmIChOVUxMID09IGVudHJ5KSB7CisgICAgICAgICAgICBlcnIgPSBFTk9NRU07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIC8qIFhYWDogdGhpcyBpcyB3cm9uZyAoaGFyZGNvZGluZyB0aGUgcm91dGVyIHByZWZlcmVuY2UgdG8gbWVkaXVtKS4gKi8KKyAgICAgICAgcHJlZmVyZW5jZSA9IDA7CisKKyAgICAgICAgZW50cnktPm5zX2RyX2luZGV4ICAgID0gKytpZHhfb2Zmc2V0OworICAgICAgICBlbnRyeS0+ZHJfYWRkcmVzc3R5cGUgPSBhZGRyZXNzX3R5cGU7CisgICAgICAgIGVudHJ5LT5kcl9hZGRyZXNzX2xlbiA9IGFkZHJlc3NfbGVuOworICAgICAgICBtZW1jcHkoZW50cnktPmRyX2FkZHJlc3MsIGFkZHJlc3MsIHNpemVvZihhZGRyZXNzKSk7CisgICAgICAgIGVudHJ5LT5kcl9pZl9pbmRleCA9IHJ0bS0+cnRtX2luZGV4OworICAgICAgICBlbnRyeS0+ZHJfbGlmZXRpbWUgICAgPSBydG0tPnJ0bV9ybXgucm14X2V4cGlyZTsKKyAgICAgICAgZW50cnktPmRyX3ByZWZlcmVuY2UgID0gcHJlZmVyZW5jZTsKKworICAgICAgICBpZiAoQ09OVEFJTkVSX0lOU0VSVChjb250YWluZXIsIGVudHJ5KSA8IDApIHsKKyAgICAgICAgICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6YXJwOmNvbnRhaW5lciIsCisgICAgICAgICAgICAgICAgICAgICAgICAiZXJyb3Igd2l0aCBkZWZhdWx0cm91dGVyX2VudHJ5OiAiCisgICAgICAgICAgICAgICAgICAgICAgICAiaW5zZXJ0IGludG8gY29udGFpbmVyIGZhaWxlZC5cbiIpKTsKKyAgICAgICAgICAgIG5ldHNubXBfYWNjZXNzX2RlZmF1bHRyb3V0ZXJfZW50cnlfZnJlZShlbnRyeSk7CisgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgfQorICAgIH0KKworb3V0OgorICAgIGZyZWUoYnVmKTsKKyAgICByZXR1cm4gZXJyOworfQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oCmluZGV4IDljZjgxODEuLmQ3OWM3YzIgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaAorKysgYi9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgKQEAgLTIyLDYgKzIyLDggQEAKIGNvbmZpZ19yZXF1aXJlKGlwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXgpCiAjZWxpZiBkZWZpbmVkKCBzb2xhcmlzMiApCiBjb25maWdfcmVxdWlyZShpcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyKQorI2VsaWYgZGVmaW5lZCggZnJlZWJzZDcgKSB8fCBkZWZpbmVkKCBuZXRic2Q1ICkgfHwgZGVmaW5lZCggb3BlbmJzZDQgKSB8fCBkZWZpbmVkKCBkcmFnb25mbHkgKSB8fCBkZWZpbmVkKCBkYXJ3aW4gKQorY29uZmlnX3JlcXVpcmUoaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19zeXNjdGwpCiAjZWxzZQogY29uZmlnX2Vycm9yKHRoZSBpcGFkZHJlc3MgZGF0YSBhY2Nlc3MgbGlicmFyeSBpcyBub3QgYXZhaWxhYmxlIGluIHRoaXMgZW52aXJvbm1lbnQuKQogI2VuZGlmCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYwppbmRleCBiOWYzYzY3Li5hNjYzOTg1IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jCisrKyBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMKQEAgLTEyLDYgKzEyLDE5IEBACiAKICNpbmNsdWRlICJpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgiCiAKKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgorCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaXBhZGRyZXNzX2NvbW1vbiwgbGlibmV0c25tcG1pYnMpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpcGFkZHJlc3NfY29tbW9uX2NvcHlfdXRpbGl0aWVzLCBpcGFkZHJlc3NfY29tbW9uKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlwYWRkcmVzc19lbnRyeV9jb3B5LCBpcGFkZHJlc3NfY29tbW9uKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlwYWRkcmVzc19lbnRyeV91cGRhdGUsIGlwYWRkcmVzc19jb21tb24pCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaXBhZGRyZXNzX3ByZWZpeF9jb3B5LCBpcGFkZHJlc3NfY29tbW9uX2NvcHlfdXRpbGl0aWVzKQorCisjaWZkZWYgTkVUU05NUF9GRUFUVVJFX1JFUVVJUkVfSVBBRERSRVNTX0VOVFJZX0NPUFkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGlwYWRkcmVzc19hcmNoX2VudHJ5X2NvcHkpCisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFUVVJUkVfSVBBRERSRVNTX0VOVFJZX0NPUFkgKi8KKwogLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qCiAgKiBsb2NhbCBzdGF0aWMgcHJvdG90eXBlcwpAQCAtMjQ3LDYgKzI2MCw3IEBACiAgICAgcmV0dXJuIHJjOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBBRERSRVNTX0VOVFJZX1VQREFURQogLyoqCiAgKiB1cGRhdGUgYW4gb2xkIGlwYWRkcmVzc19lbnRyeSBmcm9tIGEgbmV3IG9uZQogICoKQEAgLTMyOSw3ICszNDMsOSBAQAogCiAgICAgcmV0dXJuIGNoYW5nZWQ7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUEFERFJFU1NfRU5UUllfVVBEQVRFICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUEFERFJFU1NfRU5UUllfQ09QWQogLyoqCiAgKiBjb3B5IGFuICBpcGFkZHJlc3NfZW50cnkKICAqCkBAIC0zNjEsMTIgKzM3NywxNCBAQAogICAgIAogICAgIHJldHVybiAwOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBBRERSRVNTX0VOVFJZX0NPUFkgKi8KIAogLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qCiAgKiBVdGlsaXR5IHJvdXRpbmVzCiAgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQQUREUkVTU19QUkVGSVhfQ09QWQogLyoqCiAgKiBjb3B5IHRoZSBwcmVmaXggcG9ydGlvbiBvZiBhbiBpcCBhZGRyZXNzCiAgKi8KQEAgLTM5Miw2ICs0MTAsNyBAQAogCiAgICAgcmV0dXJuIHBmeF9sZW47CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUEFERFJFU1NfUFJFRklYX0NPUFkgKi8KIAogCiAvKioKQEAgLTQyMiw2ICs0NDEsNTAgQEAKICAgICByZXR1cm4gbGVuOwogfQogCitpbl9hZGRyX3QgbmV0c25tcF9pcGFkZHJlc3NfaXB2NF9tYXNrKGludCBsZW4pCit7CisgICAgaW50IGkgPSAwLCBtID0gMHg4MDsKKyAgICBpbl9hZGRyX3QgbWFzazsKKyAgICB1bnNpZ25lZCBjaGFyICptcCA9ICh1bnNpZ25lZCBjaGFyICopJm1hc2s7CisKKyAgICBpZiAobGVuIDwgMCB8fCBsZW4gPiAzMikgYWJvcnQoKTsKKworICAgIG1lbXNldChtcCwgMCwgc2l6ZW9mKG1hc2spKTsKKworICAgIHdoaWxlIChsZW4gPj0gOCkgeworICAgICAgICBtcFtpXSA9IDB4RkY7CisJbGVuIC09IDg7CisJaSsrOworICAgIH0KKyAgICB3aGlsZSAobGVuKSB7CisgICAgICAgIG1wW2ldIHw9IG07CisJbSA+Pj0gMTsKKwlsZW4tLTsKKyAgICB9CisgICAgcmV0dXJuIG1hc2s7Cit9CisKK2ludAorbmV0c25tcF9pcGFkZHJlc3NfaXB2Nl9wcmVmaXhfbGVuKHN0cnVjdCBpbjZfYWRkciBtYXNrKQoreworICAgIGludCBpLCBsZW4gPSAwOworICAgIHVuc2lnbmVkIGNoYXIgKm1wID0gKHVuc2lnbmVkIGNoYXIgKikmbWFzay5zNl9hZGRyOworCisgICAgZm9yIChpID0gMDsgaSA8IDE2OyBpKyspCisJaWYgKG1wW2ldID09IDB4RkYpIGxlbiArPSA4OworCWVsc2UgYnJlYWs7CisKKyAgICBpZiAoaSA9PSAxNikKKwlyZXR1cm4gbGVuOworCisgICAgd2hpbGUoMHg4MCAmIG1wW2ldKSB7CisgICAgICAgICsrbGVuOworICAgICAgICBtcFtpXSA8PD0gMTsKKyAgICB9CisKKyAgICByZXR1cm4gbGVuOworfQorCiAKIC8qKgogICovCkBAIC00NTQsNiArNTE3LDcgQEAKICAgICByZXR1cm4gbWVtY21wKGxoLT5pYV9hZGRyZXNzLCByaC0+aWFfYWRkcmVzcywgbGgtPmlhX2FkZHJlc3NfbGVuKTsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQQUREUkVTU19DT01NT05fQ09QWV9VVElMSVRJRVMKIGludAogbmV0c25tcF9pcGFkZHJlc3NfZmxhZ3NfY29weSh1X2xvbmcgKmlwQWRkcmVzc1ByZWZpeEFkdlByZWZlcnJlZExpZmV0aW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKmlwQWRkcmVzc1ByZWZpeEFkdlZhbGlkTGlmZXRpbWUsCkBAIC00OTgsNCArNTYyLDUgQEAKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUEFERFJFU1NfQ09NTU9OX0NPUFlfVVRJTElUSUVTICovCiAKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYyBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYwppbmRleCBmMjgxYmI2Li42MDI1ZjA1IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jCkBAIC00LDYgKzQsNyBAQAogICogJElkJAogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgIm1pYklJL21pYklJX2NvbW1vbi5oIgogCkBAIC0yMCw2ICsyMSw4IEBACiAKICNpbmNsdWRlICJpcGFkZHJlc3NfaW9jdGwuaCIKIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlwYWRyZXNzX2lvY3RsX2VudHJ5X2NvcHksIGlwYWRkcmVzc19jb21tb24pCisKIHN0YXRpYyB2b2lkIF9wcmludF9mbGFncyhzaG9ydCBmbGFncyk7CiAKICNkZWZpbmUgTElTVF9UT0tFTiAiaW9jdGxfZXh0cmFzIgpAQCAtODYsNiArODksNyBAQAogICAgIG5ldHNubXBfcmVtb3ZlX2xpc3Rfbm9kZSgmZW50cnktPmFyY2hfZGF0YSwgTElTVF9UT0tFTik7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUEFERFJFU1NfSU9DVExfRU5UUllfQ09QWQogLyoqCiAgKiBjb3B5IGlvY3RsIGV4dHJhcwogICoKQEAgLTEyMiw2ICsxMjYsNyBAQAogCiAgICAgcmV0dXJuIHJjOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBBRERSRVNTX0lPQ1RMX0VOVFJZX0NPUFkgKi8KIAogLyoqCiAgKiBsb2FkIGlwdjQgYWRkcmVzcyB2aWEgaW9jdGwKQEAgLTE1OSw2ICsxNjQsMTQgQEAKIAogICAgICAgICBERUJVR01TR1RMKCgiYWNjZXNzOmlwYWRkcmVzczpjb250YWluZXIiLAogICAgICAgICAgICAgICAgICAgICAiIGludGVyZmFjZSAlZCwgJXNcbiIsIGksIGlmcnAtPmlmcl9uYW1lKSk7CisKKyAgICAgICAgaWYgKEFGX0lORVQgIT0gaWZycC0+aWZyX2FkZHIuc2FfZmFtaWx5KSB7CisgICAgICAgICAgICBERUJVR01TR1RMKCgiYWNjZXNzOmlwYWRkcmVzczpjb250YWluZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgIiBza2lwcGluZyAlczsgbm9uIEFGX0lORVQgZmFtaWx5ICVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgaWZycC0+aWZyX25hbWUsIGlmcnAtPmlmcl9hZGRyLnNhX2ZhbWlseSkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKwogICAgICAgICAvKgogICAgICAgICAgKi8KICAgICAgICAgZW50cnkgPSBuZXRzbm1wX2FjY2Vzc19pcGFkZHJlc3NfZW50cnlfY3JlYXRlKCk7CkBAIC0xODMsNyArMTk2LDYgQEAKICAgICAgICAgLyoKICAgICAgICAgICogc2V0IGluZGV4ZXMKICAgICAgICAgICovCi0gICAgICAgIG5ldHNubXBfYXNzZXJ0KEFGX0lORVQgPT0gaWZycC0+aWZyX2FkZHIuc2FfZmFtaWx5KTsKICAgICAgICAgc2kgPSAoc3RydWN0IHNvY2thZGRyX2luICopICZpZnJwLT5pZnJfYWRkcjsKICAgICAgICAgZW50cnktPmlhX2FkZHJlc3NfbGVuID0gc2l6ZW9mKHNpLT5zaW5fYWRkci5zX2FkZHIpOwogICAgICAgICBpcHZhbCA9IHNpLT5zaW5fYWRkci5zX2FkZHI7CkBAIC01NDUsNiArNTU3LDkxIEBACiAgICAgcmV0dXJuIDA7CiB9CiAKKworLyoqCisgKiBBZGQvcmVtb3ZlIElQdjYgYWRkcmVzcyB1c2luZyBpb2N0bC4KKyAqIEByZXR2YWwgIDAgOiBubyBlcnJvcgorICogQHJldHZhbCAtMSA6IGJhZCBwYXJhbWV0ZXIKKyAqIEByZXR2YWwgLTIgOiBjb3VsZG4ndCBjcmVhdGUgc29ja2V0CisgKiBAcmV0dmFsIC0zIDogaW9jdGwgZmFpbGVkCisgKi8KK2ludAorX25ldHNubXBfaW9jdGxfaXBhZGRyZXNzX3Y2KG5ldHNubXBfaXBhZGRyZXNzX2VudHJ5ICogZW50cnksIGludCBvcGVyYXRpb24pCit7CisjaWZkZWYgbGludXgKKyAgICAvKgorICAgICAqIEZyb20gbGludXgvaXB2Ni5oLiBJdCBjYW5ub3QgYmUgaW5jbHVkZWQgYmVjYXVzZSBpdCBjb2xsaWRlcworICAgICAqIHdpdGggbmV0aW5ldC9pbi5oCisgICAgICovCisgICAgc3RydWN0IGluNl9pZnJlcSB7CisgICAgICAgICAgICBzdHJ1Y3QgaW42X2FkZHIgaWZyNl9hZGRyOworICAgICAgICAgICAgdWludDMyX3QgICAgICAgIGlmcjZfcHJlZml4bGVuOworICAgICAgICAgICAgaW50ICAgICAgICAgICAgIGlmcjZfaWZpbmRleDsKKyAgICB9OworCisgICAgc3RydWN0IGluNl9pZnJlcSAgICAgICAgICAgICAgIGlmcnE7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJjLCBmZCA9IC0xOworCisgICAgREVCVUdNU0dUKCgiYWNjZXNzOmlwYWRkcmVzczpzZXQiLCAiX25ldHNubXBfaW9jdGxfaXBhZGRyZXNzX3NldF92NiBzdGFydGVkXG4iKSk7CisKKyAgICBpZiAoTlVMTCA9PSBlbnRyeSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgbmV0c25tcF9hc3NlcnQoMTYgPT0gZW50cnktPmlhX2FkZHJlc3NfbGVuKTsKKworICAgIGZkID0gc29ja2V0KEFGX0lORVQ2LCBTT0NLX0RHUkFNLCAwKTsKKyAgICBpZihmZCA8IDApIHsKKyAgICAgICAgc25tcF9sb2coTE9HX0VSUiwiY291bGRuJ3QgY3JlYXRlIHNvY2tldFxuIik7CisgICAgICAgIHJldHVybiAtMjsKKyAgICB9CisgICAgbWVtc2V0KCZpZnJxLCAwLCBzaXplb2YoaWZycSkpOworICAgIGlmcnEuaWZyNl9pZmluZGV4ID0gZW50cnktPmlmX2luZGV4OworICAgIGlmcnEuaWZyNl9wcmVmaXhsZW4gPSA2NDsKKworICAgIG1lbWNweSgmaWZycS5pZnI2X2FkZHIsIGVudHJ5LT5pYV9hZGRyZXNzLAorICAgICAgICAgICBlbnRyeS0+aWFfYWRkcmVzc19sZW4pOworCisgICAgcmMgPSBpb2N0bChmZCwgb3BlcmF0aW9uLCAmaWZycSk7CisgICAgY2xvc2UoZmQpOworICAgIGlmKHJjIDwgMCkgeworICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCJlcnJvciBzZXR0aW5nIGFkZHJlc3M6ICVzKCVkKVxuIiwgc3RyZXJyb3IoZXJybm8pLCBlcnJubyk7CisgICAgICAgIHJldHVybiAtMzsKKyAgICB9CisgICAgREVCVUdNU0dUKCgiYWNjZXNzOmlwYWRkcmVzczpzZXQiLCAiX25ldHNubXBfaW9jdGxfaXBhZGRyZXNzX3NldF92NiBmaW5pc2hlZFxuIikpOworICAgIHJldHVybiAwOworI2Vsc2UKKyAgICAvKiB3ZSBkb24ndCBzdXBwb3J0IGlwdjYgb24gdGhpcyBwbGF0Zm9ybSAoeWV0KSAqLworICAgIHJldHVybiAtMzsKKyNlbmRpZgorCit9CisKKy8qKgorICoKKyAqIEByZXR2YWwgIDAgOiBubyBlcnJvcgorICogQHJldHZhbCAtMSA6IGJhZCBwYXJhbWV0ZXIKKyAqIEByZXR2YWwgLTIgOiBjb3VsZG4ndCBjcmVhdGUgc29ja2V0CisgKiBAcmV0dmFsIC0zIDogaW9jdGwgZmFpbGVkCisgKi8KK2ludAorX25ldHNubXBfaW9jdGxfaXBhZGRyZXNzX3NldF92NihuZXRzbm1wX2lwYWRkcmVzc19lbnRyeSAqIGVudHJ5KQoreworICAgIHJldHVybiBfbmV0c25tcF9pb2N0bF9pcGFkZHJlc3NfdjYoZW50cnksIFNJT0NTSUZBRERSKTsKK30KKworLyoqCisgKgorICogQHJldHZhbCAgMCA6IG5vIGVycm9yCisgKiBAcmV0dmFsIC0xIDogYmFkIHBhcmFtZXRlcgorICogQHJldHZhbCAtMiA6IGNvdWxkbid0IGNyZWF0ZSBzb2NrZXQKKyAqIEByZXR2YWwgLTMgOiBpb2N0bCBmYWlsZWQKKyAqLworaW50CitfbmV0c25tcF9pb2N0bF9pcGFkZHJlc3NfZGVsZXRlX3Y2KG5ldHNubXBfaXBhZGRyZXNzX2VudHJ5ICogZW50cnkpCit7CisgICAgcmV0dXJuIF9uZXRzbm1wX2lvY3RsX2lwYWRkcmVzc192NihlbnRyeSwgU0lPQ0RJRkFERFIpOworfQorCiAvKioKICAqIGdldCB0aGUgaW50ZXJmYWNlIGNvdW50IGFuZCBwb3B1bGF0ZSB0aGUgaWZjX2J1ZgogICoKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaAppbmRleCBmYzZlNzcxLi5mMmI3ODQ3IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oCkBAIC0yMiw2ICsyMiwxMSBAQAogX25ldHNubXBfaW9jdGxfaXBhZGRyZXNzX3JlbW92ZV92NChuZXRzbm1wX2lwYWRkcmVzc19lbnRyeSAqIGVudHJ5KTsKIAogaW50CitfbmV0c25tcF9pb2N0bF9pcGFkZHJlc3Nfc2V0X3Y2KG5ldHNubXBfaXBhZGRyZXNzX2VudHJ5ICogZW50cnkpOworaW50CitfbmV0c25tcF9pb2N0bF9pcGFkZHJlc3NfcmVtb3ZlX3Y2KG5ldHNubXBfaXBhZGRyZXNzX2VudHJ5ICogZW50cnkpOworCitpbnQKIG5ldHNubXBfYWNjZXNzX2lwYWRkcmVzc19pb2N0bF9nZXRfaW50ZXJmYWNlX2NvdW50KGludCBzZCwgc3RydWN0IGlmY29uZiAqIGlmYyk7CiAKIHN0cnVjdCBhZGRyZXNzX2ZsYWdfaW5mbwpAQCAtNTAsNiArNTUsOCBAQAogCiBpbnQKIF9uZXRzbm1wX2lvY3RsX2lwYWRkcmVzc19kZWxldGVfdjQobmV0c25tcF9pcGFkZHJlc3NfZW50cnkgKiBlbnRyeSk7CitpbnQKK19uZXRzbm1wX2lvY3RsX2lwYWRkcmVzc19kZWxldGVfdjYobmV0c25tcF9pcGFkZHJlc3NfZW50cnkgKiBlbnRyeSk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jCmluZGV4IDhiMzRlODYuLmYxY2VmMGEgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYworKysgYi9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMKQEAgLTQsNiArNCw3IEBACiAgKiAkSWQkCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSAibWliSUkvbWliSUlfY29tbW9uLmgiCiAKQEAgLTE4LDYgKzE5LDE1IEBACiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUocHJlZml4X2luZm8pCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShmaW5kX3ByZWZpeF9pbmZvKQorCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaXBhZGRyZXNzX2FyY2hfZW50cnlfY29weSwgaXBhZGRyZXNzX2NvbW1vbikKKworI2lmZGVmIE5FVFNOTVBfRkVBVFVSRV9SRVFVSVJFX0lQQUREUkVTU19BUkNIX0VOVFJZX0NPUFkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGlwYWRkcmVzc19pb2N0bF9lbnRyeV9jb3B5KQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRVFVSVJFX0lQQUREUkVTU19BUkNIX0VOVFJZX0NPUFkgKi8KKwogI2lmIGRlZmluZWQgKE5FVFNOTVBfRU5BQkxFX0lQVjYpCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxhc20vdHlwZXMuaD4KQEAgLTgzLDYgKzkzLDcgQEAKICAgICAgKi8KIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQQUREUkVTU19BUkNIX0VOVFJZX0NPUFkKIC8qCiAgKiBjb3B5IGFyY2ggc3BlY2lmaWMgc3RvcmFnZQogICovCkBAIC0xMDYsNiArMTE3LDcgQEAKIAogICAgIHJldHVybiByYzsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQQUREUkVTU19BUkNIX0VOVFJZX0NPUFkgKi8KIAogLyoKICAqIGNyZWF0ZSBhIG5ldyBlbnRyeQpAQCAtMTE2LDEyICsxMjgsMTQgQEAKICAgICBpZiAoTlVMTCA9PSBlbnRyeSkKICAgICAgICAgcmV0dXJuIC0xOwogCi0gICAgaWYgKDQgIT0gZW50cnktPmlhX2FkZHJlc3NfbGVuKSB7Ci0gICAgICAgIERFQlVHTVNHVCgoImFjY2VzczppcGFkZHJlc3M6Y3JlYXRlIiwgIm9ubHkgaXB2NCBzdXBwb3J0ZWRcbiIpKTsKKyAgICBpZiAoNCA9PSBlbnRyeS0+aWFfYWRkcmVzc19sZW4pIHsKKyAgICAgICAgcmV0dXJuIF9uZXRzbm1wX2lvY3RsX2lwYWRkcmVzc19zZXRfdjQoZW50cnkpOworICAgIH0gZWxzZSBpZiAoMTYgPT0gZW50cnktPmlhX2FkZHJlc3NfbGVuKSB7CisgICAgICAgIHJldHVybiBfbmV0c25tcF9pb2N0bF9pcGFkZHJlc3Nfc2V0X3Y2KGVudHJ5KTsKKyAgICB9IGVsc2UgeworICAgICAgICBERUJVR01TR1QoKCJhY2Nlc3M6aXBhZGRyZXNzOmNyZWF0ZSIsICJ3cm9uZyBsZW5ndGggb2YgSVAgYWRkcmVzc1xuIikpOwogICAgICAgICByZXR1cm4gLTI7CiAgICAgfQotCi0gICAgcmV0dXJuIF9uZXRzbm1wX2lvY3RsX2lwYWRkcmVzc19zZXRfdjQoZW50cnkpOwogfQogCiAvKgpAQCAtMTMzLDEyICsxNDcsMTQgQEAKICAgICBpZiAoTlVMTCA9PSBlbnRyeSkKICAgICAgICAgcmV0dXJuIC0xOwogCi0gICAgaWYgKDQgIT0gZW50cnktPmlhX2FkZHJlc3NfbGVuKSB7CisgICAgaWYgKDQgPT0gZW50cnktPmlhX2FkZHJlc3NfbGVuKSB7CisgICAgICAgIHJldHVybiBfbmV0c25tcF9pb2N0bF9pcGFkZHJlc3NfZGVsZXRlX3Y0KGVudHJ5KTsKKyAgICB9IGVsc2UgaWYgKDE2ID09IGVudHJ5LT5pYV9hZGRyZXNzX2xlbikgeworICAgICAgICByZXR1cm4gX25ldHNubXBfaW9jdGxfaXBhZGRyZXNzX2RlbGV0ZV92NihlbnRyeSk7CisgICAgfSBlbHNlIHsKICAgICAgICAgREVCVUdNU0dUKCgiYWNjZXNzOmlwYWRkcmVzczpjcmVhdGUiLCAib25seSBpcHY0IHN1cHBvcnRlZFxuIikpOwogICAgICAgICByZXR1cm4gLTI7CiAgICAgfQotCi0gICAgcmV0dXJuIF9uZXRzbm1wX2lvY3RsX2lwYWRkcmVzc19kZWxldGVfdjQoZW50cnkpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYyBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYwppbmRleCAzOTc5MDM3Li5lMjQ4NWUzIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19zb2xhcmlzMi5jCkBAIC0zLDYgKzMsNyBAQAogICoKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KIAogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CkBAIC0xNCw2ICsxNSw4IEBACiAjaW5jbHVkZSAia2VybmVsX3N1bm9zNS5oIgogI2luY2x1ZGUgIm1pYklJL21pYklJX2NvbW1vbi5oIgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaXBhZGRyZXNzX2FyY2hfZW50cnlfY29weSwgaXBhZGRyZXNzX2NvbW1vbikKKwogc3RhdGljIGludCBfbG9hZF92NChuZXRzbm1wX2NvbnRhaW5lciAqY29udGFpbmVyLCBpbnQgaWR4X29mZnNldCk7CiAjaWYgZGVmaW5lZCggTkVUU05NUF9FTkFCTEVfSVBWNiApCiBzdGF0aWMgaW50IF9sb2FkX3Y2KG5ldHNubXBfY29udGFpbmVyICpjb250YWluZXIsIGludCBpZHhfb2Zmc2V0KTsKQEAgLTQzLDYgKzQ2LDcgQEAKICAgICAgKi8KIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQQUREUkVTU19BUkNIX0VOVFJZX0NPUFkKIC8qCiAgKiBjb3B5IGFyY2ggc3BlY2lmaWMgc3RvcmFnZQogICovCkBAIC01NSw2ICs1OSw3IEBACiAgICAgICovCiAgICAgcmV0dXJuIDA7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUEFERFJFU1NfQVJDSF9FTlRSWV9DT1BZICovCiAKIC8qCiAgKiBjcmVhdGUgYSBuZXcgZW50cnkKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc3lzY3RsLmMgYi9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3N5c2N0bC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhNjIyMWIKLS0tIC9kZXYvbnVsbAorKysgYi9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3N5c2N0bC5jCkBAIC0wLDAgKzEsMjcyIEBACisvKgorICogIEludGVyZmFjZSBNSUIgYXJjaGl0ZWN0dXJlIHN1cHBvcnQKKyAqCisgKiAkSWQkCisgKi8KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CisjaW5jbHVkZSAibWliSUkvbWliSUlfY29tbW9uLmgiCisKKyNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oPgorCisjaW5jbHVkZSAiaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oIgorI2luY2x1ZGUgImlwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9jb25zdGFudHMuaCIKKyNpbmNsdWRlICJtaWJncm91cC91dGlsX2Z1bmNzLmgiCisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1ZGUgPGFycGEvaW5ldC5oPgorCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShwcmVmaXhfaW5mbykKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGZpbmRfcHJlZml4X2luZm8pCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpcGFkZHJlc3NfYXJjaF9lbnRyeV9jb3B5LCBpcGFkZHJlc3NfY29tbW9uKQorCisjaWZkZWYgTkVUU05NUF9GRUFUVVJFX1JFUVVJUkVfSVBBRERSRVNTX0FSQ0hfRU5UUllfQ09QWQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaXBhZGRyZXNzX2lvY3RsX2VudHJ5X2NvcHkpCisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFUVVJUkVfSVBBRERSRVNTX0FSQ0hfRU5UUllfQ09QWSAqLworCisjaW5jbHVkZSAiaXBhZGRyZXNzX2lvY3RsLmgiCisjaWZkZWYgU1VQUE9SVF9QUkVGSVhfRkxBR1MKK2V4dGVybiBwcmVmaXhfY2J4ICpwcmVmaXhfaGVhZF9saXN0OworI2VuZGlmCisKKyNkZWZpbmUgUk9VTkRVUChhKSBcCisgICgoYSkgPiAwID8gKDEgKyAoKChhKSAtIDEpIHwgKHNpemVvZihsb25nKSAtIDEpKSkgOiBzaXplb2YobG9uZykpCisKKy8qCisgKiBpbml0aWFsaXplIGFyY2ggc3BlY2lmaWMgc3RvcmFnZQorICoKKyAqIEByZXR2YWwgIDA6IHN1Y2Nlc3MKKyAqIEByZXR2YWwgPDA6IGVycm9yCisgKi8KK2ludAorbmV0c25tcF9hcmNoX2lwYWRkcmVzc19lbnRyeV9pbml0KG5ldHNubXBfaXBhZGRyZXNzX2VudHJ5ICplbnRyeSkKK3sKKyAgICAvKgorICAgICAqIGluaXQgaXB2NCBzdHVmZgorICAgICAqLworICAgIC8qIGlmIChOVUxMID09IG5ldHNubXBfaW9jdGxfaXBhZGRyZXNzX2VudHJ5X2luaXQoZW50cnkpKSAqLworICAgIC8qICAgICByZXR1cm4gLTE7ICovCisKKyAgICAvKgorICAgICAqIGluaXQgaXB2NiBzdHVmZgorICAgICAqICAgc28gZmFyLCB3ZSBjYW4ganVzdCBzaGFyZSB0aGUgaXB2NCBzdHVmZiwgc28gbm90aGluZyB0byBkbworICAgICAqLworICAgIAorICAgIHJldHVybiAwOworfQorCisvKgorICogY2xlYW51cCBhcmNoIHNwZWNpZmljIHN0b3JhZ2UKKyAqLwordm9pZAorbmV0c25tcF9hcmNoX2lwYWRkcmVzc19lbnRyeV9jbGVhbnVwKG5ldHNubXBfaXBhZGRyZXNzX2VudHJ5ICplbnRyeSkKK3sKKyAgICAvKgorICAgICAqIGNsZWFudXAgaXB2NCBzdHVmZgorICAgICAqLworICAgIC8qbmV0c25tcF9pb2N0bF9pcGFkZHJlc3NfZW50cnlfY2xlYW51cChlbnRyeSk7ICovCisKKyAgICAvKgorICAgICAqIGNsZWFudXAgaXB2NiBzdHVmZgorICAgICAqICAgc28gZmFyLCB3ZSBjYW4ganVzdCBzaGFyZSB0aGUgaXB2NCBzdHVmZiwgc28gbm90aGluZyB0byBkbworICAgICAqLworfQorCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBBRERSRVNTX0FSQ0hfRU5UUllfQ09QWQorLyoKKyAqIGNvcHkgYXJjaCBzcGVjaWZpYyBzdG9yYWdlCisgKi8KK2ludAorbmV0c25tcF9hcmNoX2lwYWRkcmVzc19lbnRyeV9jb3B5KG5ldHNubXBfaXBhZGRyZXNzX2VudHJ5ICpsaHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9pcGFkZHJlc3NfZW50cnkgKnJocykKK3sKKyAgICBpbnQgcmM7CisKKyAgICByYyA9IDA7CisKKyAgICAvKgorICAgICAqIGNvcHkgaXB2NCBzdHVmZgorICAgICAqLworICAgIC8qcmMgPSBuZXRzbm1wX2lvY3RsX2lwYWRkcmVzc19lbnRyeV9jb3B5KGxocywgcmhzKTsgKi8KKyAgICBpZiAocmMpCisgICAgICAgIHJldHVybiByYzsKKworICAgIC8qCisgICAgICogY29weSBpcHY2IHN0dWZmCisgICAgICogICBzbyBmYXIsIHdlIGNhbiBqdXN0IHNoYXJlIHRoZSBpcHY0IHN0dWZmLCBzbyBub3RoaW5nIHRvIGRvCisgICAgICovCisKKyAgICByZXR1cm4gcmM7Cit9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUEFERFJFU1NfQVJDSF9FTlRSWV9DT1BZICovCisKKy8qCisgKiBjcmVhdGUgYSBuZXcgZW50cnkKKyAqLworaW50CituZXRzbm1wX2FyY2hfaXBhZGRyZXNzX2NyZWF0ZShuZXRzbm1wX2lwYWRkcmVzc19lbnRyeSAqZW50cnkpCit7CisgICAgaWYgKE5VTEwgPT0gZW50cnkpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGlmICg0ID09IGVudHJ5LT5pYV9hZGRyZXNzX2xlbikgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfSBlbHNlIGlmICgxNiA9PSBlbnRyeS0+aWFfYWRkcmVzc19sZW4pIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0gZWxzZSB7CisgICAgICAgIERFQlVHTVNHVCgoImFjY2VzczppcGFkZHJlc3M6Y3JlYXRlIiwgIndyb25nIGxlbmd0aCBvZiBJUCBhZGRyZXNzXG4iKSk7CisgICAgICAgIHJldHVybiAtMjsKKyAgICB9Cit9CisKKy8qCisgKiBjcmVhdGUgYSBuZXcgZW50cnkKKyAqLworaW50CituZXRzbm1wX2FyY2hfaXBhZGRyZXNzX2RlbGV0ZShuZXRzbm1wX2lwYWRkcmVzc19lbnRyeSAqZW50cnkpCit7CisgICAgaWYgKE5VTEwgPT0gZW50cnkpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGlmICg0ID09IGVudHJ5LT5pYV9hZGRyZXNzX2xlbikgeworICAgICAgICByZXR1cm4gLTI7CisgICAgfSBlbHNlIGlmICgxNiA9PSBlbnRyeS0+aWFfYWRkcmVzc19sZW4pIHsKKyAgICAgICAgcmV0dXJuIC0zOworICAgIH0gZWxzZSB7CisgICAgICAgIERFQlVHTVNHVCgoImFjY2VzczppcGFkZHJlc3M6Y3JlYXRlIiwgIm9ubHkgaXB2NCBzdXBwb3J0ZWRcbiIpKTsKKyAgICAgICAgcmV0dXJuIC0yOworICAgIH0KK30KKworLyoqCisgKgorICogQHJldHZhbCAgMCBubyBlcnJvcnMKKyAqIEByZXR2YWwgITAgZXJyb3JzCisgKi8KK2ludAorbmV0c25tcF9hcmNoX2lwYWRkcmVzc19jb250YWluZXJfbG9hZChuZXRzbm1wX2NvbnRhaW5lciAqY29udGFpbmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2ludCBsb2FkX2ZsYWdzKQoreworICAgIG5ldHNubXBfaXBhZGRyZXNzX2VudHJ5ICplbnRyeSA9IE5VTEw7CisgICAgdV9jaGFyICppZl9saXN0ID0gTlVMTCwgKmNwOworICAgIHNpemVfdCBpZl9saXN0X3NpemUgPSAwOworICAgIGludCBzeXNjdGxfb2lkW10gPSB7IENUTF9ORVQsIFBGX1JPVVRFLCAwLCAwLCBORVRfUlRfSUZMSVNULCAwIH07CisgICAgc3RydWN0IGlmYV9tc2doZHIgKmlmYTsKKyAgICBzdHJ1Y3Qgc29ja2FkZHIgKmE7CisgICAgaW50IGFtYXNrOworICAgIGludCByYyA9IDA7CisgICAgaW50IGlkeF9vZmZzZXQgPSAwOworCisgICAgREVCVUdNU0dUTCgoImFjY2VzczppcGFkZHJlc3M6Y29udGFpbmVyOnN5c2N0bCIsCisgICAgICAgICAgICAgICAgImxvYWQgKGZsYWdzICV1KVxuIiwgbG9hZF9mbGFncykpOworCisgICAgaWYgKE5VTEwgPT0gY29udGFpbmVyKSB7CisgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJubyBjb250YWluZXIgc3BlY2lmaWVkL2ZvdW5kIGZvciBpbnRlcmZhY2VcbiIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgaWYgKHN5c2N0bChzeXNjdGxfb2lkLCBzaXplb2Yoc3lzY3RsX29pZCkvc2l6ZW9mKGludCksIDAsCisgICAgICAgICAgICAgICAmaWZfbGlzdF9zaXplLCAwLCAwKSA9PSAtMSkgeworICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiY291bGQgbm90IGdldCBpbnRlcmZhY2UgaW5mbyAoc2l6ZSlcbiIpOworICAgICAgICByZXR1cm4gLTI7CisgICAgfQorCisgICAgaWZfbGlzdCA9ICh1X2NoYXIqKW1hbGxvYyhpZl9saXN0X3NpemUpOworICAgIGlmIChpZl9saXN0ID09IE5VTEwpIHsKKyAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgImNvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGludGVyZmFjZSBpbmZvICIKKyAgICAgICAgICAgICAgICAgIiglenUgYnl0ZXMpXG4iLCBpZl9saXN0X3NpemUpOworICAgICAgICByZXR1cm4gLTM7CisgICAgfSBlbHNlIHsKKyAgICAgICAgREVCVUdNU0dUTCgoImFjY2VzczppcGFkZHJlc3M6Y29udGFpbmVyOnN5c2N0bCIsCisgICAgICAgICAgICAgICAgICAgICJhbGxvY2F0ZWQgJXp1IGJ5dGVzIGZvciBpZl9saXN0XG4iLCBpZl9saXN0X3NpemUpKTsKKyAgICB9CisKKyAgICBpZiAoc3lzY3RsKHN5c2N0bF9vaWQsIHNpemVvZihzeXNjdGxfb2lkKS9zaXplb2YoaW50KSwgaWZfbGlzdCwKKyAgICAgICAgICAgICAgICZpZl9saXN0X3NpemUsIDAsIDApID09IC0xKSB7CisgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJjb3VsZCBub3QgZ2V0IGludGVyZmFjZSBpbmZvXG4iKTsKKyAgICAgICAgZnJlZShpZl9saXN0KTsKKyAgICAgICAgcmV0dXJuIC0yOworICAgIH0KKworICAgIC8qIHBhc3MgMjogd2FsayBhZGRyZXNzZXMgKi8KKyAgICBmb3IgKGNwID0gaWZfbGlzdDsgY3AgPCBpZl9saXN0ICsgaWZfbGlzdF9zaXplOyBjcCArPSBpZmEtPmlmYW1fbXNnbGVuKSB7CisgICAgICAgIGlmYSA9IChzdHJ1Y3QgaWZhX21zZ2hkciAqKSBjcDsKKyAgICAgICAgaW50IHJ0YXg7CisKKyAgICAgICAgaWYgKGlmYS0+aWZhbV90eXBlICE9IFJUTV9ORVdBRERSKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgREVCVUdNU0dUTCgoImFjY2VzczppcGFkZHJlc3M6Y29udGFpbmVyOnN5c2N0bCIsCisgICAgICAgICAgICAgICAgICAgICJyZWNlaXZlZCAweCV4IGluIFJUTV9ORVdBRERSIGZvciBpZmluZGV4ICV1XG4iLAorICAgICAgICAgICAgICAgICAgICBpZmEtPmlmYW1fYWRkcnMsIGlmYS0+aWZhbV9pbmRleCkpOworCisgICAgICAgIGVudHJ5ID0gbmV0c25tcF9hY2Nlc3NfaXBhZGRyZXNzX2VudHJ5X2NyZWF0ZSgpOworICAgICAgICBpZiAoZW50cnkgPT0gTlVMTCkgeworICAgICAgICAgICAgcmMgPSAtMzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgYSA9IChzdHJ1Y3Qgc29ja2FkZHIgKikgKGlmYSArIDEpOworICAgICAgICBlbnRyeS0+aWFfc3RhdHVzID0gSVBBRERSRVNTU1RBVFVTVENfVU5LTk9XTjsKKyAgICAgICAgZW50cnktPmlhX29yaWdpbiA9IElQQUREUkVTU09SSUdJTlRDX09USEVSOworCWVudHJ5LT5pYV9hZGRyZXNzX2xlbiA9IDA7CisgICAgICAgIGZvciAoYW1hc2sgPSBpZmEtPmlmYW1fYWRkcnMsIHJ0YXggPSAwOyBhbWFzayAhPSAwOyBhbWFzayA+Pj0gMSwgcnRheCsrKSB7CisgICAgICAgICAgICBpZiAoKGFtYXNrICYgMSkgIT0gMCkgeworICAgICAgICAgICAgICAgIGVudHJ5LT5uc19pYV9pbmRleCA9ICsraWR4X29mZnNldDsKKyAgICAgICAgICAgICAgICBlbnRyeS0+aWZfaW5kZXggPSBpZmEtPmlmYW1faW5kZXg7CisgICAgICAgICAgICAgICAgREVCVUdNU0dUTCgoImFjY2VzczppcGFkZHJlc3M6Y29udGFpbmVyOnN5c2N0bCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVkOiBhPSVwLCBzYV9sZW49JWQsIHNhX2ZhbWlseT0weCV4XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpZW50cnktPmlmX2luZGV4LCBhLCBhLT5zYV9sZW4sIGEtPnNhX2ZhbWlseSkpOworCisgICAgICAgICAgICAgICAgaWYgKGEtPnNhX2ZhbWlseSA9PSBBRl9JTkVUIHx8IGEtPnNhX2ZhbWlseSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzb2NrYWRkcl9pbiAqYTQgPSAoc3RydWN0IHNvY2thZGRyX2luICopYTsKKwkJICAgIGNoYXIgc3RyWzEyOF07CisJCSAgICBERUJVR01TR1RMKCgiYWNjZXNzOmlwYWRkcmVzczpjb250YWluZXI6c3lzY3RsIiwKKwkJICAgICAgICAgICAgICAgICJJUHY0IGFkZHIgJXNcbiIsIGluZXRfbnRvcChBRl9JTkVULCAmYTQtPnNpbl9hZGRyLnNfYWRkciwgc3RyLCAxMjgpKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChydGF4ID09IFJUQVhfSUZBKSB7CisJCQllbnRyeS0+aWFfYWRkcmVzc19sZW4gPSA0OworICAgICAgICAgICAgICAgICAgICAgICAgbWVtY3B5KGVudHJ5LT5pYV9hZGRyZXNzLCAmYTQtPnNpbl9hZGRyLnNfYWRkciwgZW50cnktPmlhX2FkZHJlc3NfbGVuKTsKKwkJICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocnRheCA9PSBSVEFYX05FVE1BU0spCisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS0+aWFfcHJlZml4X2xlbiA9IG5ldHNubXBfaXBhZGRyZXNzX2lwdjRfcHJlZml4X2xlbihhNC0+c2luX2FkZHIuc19hZGRyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYS0+c2FfZmFtaWx5ID09IEFGX0lORVQ2KSB7CisgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzb2NrYWRkcl9pbjYgKmE2ID0gKHN0cnVjdCBzb2NrYWRkcl9pbjYgKilhOworCQkgICAgY2hhciBzdHJbMTI4XTsKKwkJICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6aXBhZGRyZXNzOmNvbnRhaW5lcjpzeXNjdGwiLAorCQkgICAgICAgICAgICAgICAgIklQdjYgYWRkciAlc1xuIiwgaW5ldF9udG9wKEFGX0lORVQ2LCAmYTYtPnNpbjZfYWRkci5zNl9hZGRyLCBzdHIsIDEyOCkpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJ0YXggPT0gUlRBWF9JRkEpIHsKKwkJCWVudHJ5LT5pYV9hZGRyZXNzX2xlbiA9IDE2OworICAgICAgICAgICAgICAgICAgICAgICAgbWVtY3B5KGVudHJ5LT5pYV9hZGRyZXNzLCAmYTYtPnNpbjZfYWRkciwgZW50cnktPmlhX2FkZHJlc3NfbGVuKTsKKwkJICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocnRheCA9PSBSVEFYX05FVE1BU0spIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LT5pYV9wcmVmaXhfbGVuID0gbmV0c25tcF9pcGFkZHJlc3NfaXB2Nl9wcmVmaXhfbGVuKGE2LT5zaW42X2FkZHIpOworCQkJREVCVUdNU0dUTCgoImFjY2VzczppcGFkZHJlc3M6Y29udGFpbmVyOnN5c2N0bCIsCisJCQkgICAgICAgICAgICAicHJlZml4X2xlbj0lZFxuIiwgZW50cnktPmlhX3ByZWZpeF9sZW4pKTsKKwkJICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYSA9IChzdHJ1Y3Qgc29ja2FkZHIgKikgKCAoKGNoYXIgKikgYSkgKyBST1VORFVQKGEtPnNhX2xlbikgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCWlmIChlbnRyeS0+aWFfYWRkcmVzc19sZW4gPT0gMCkgeworCSAgICBERUJVR01TR1RMKCgiYWNjZXNzOmlwYWRkcmVzczpjb250YWluZXI6c3lzY3RsIiwKKwkgICAgICAgICAgICAgICAgImVudHJ5IHNraXBwZWRcbiIpKTsKKwkgICAgbmV0c25tcF9hY2Nlc3NfaXBhZGRyZXNzX2VudHJ5X2ZyZWUoZW50cnkpOworCX0KKwllbHNlIGlmIChDT05UQUlORVJfSU5TRVJUKGNvbnRhaW5lciwgZW50cnkpIDwgMCkgeworICAgICAgICAgICAgREVCVUdNU0dUTCgoImFjY2VzczppcGFkZHJlc3M6Y29udGFpbmVyIiwiZXJyb3Igd2l0aCBpcGFkZHJlc3NfZW50cnk6IGluc2VydCBpbnRvIGNvbnRhaW5lciBmYWlsZWQuXG4iKSk7CisgICAgICAgICAgICBuZXRzbm1wX2FjY2Vzc19pcGFkZHJlc3NfZW50cnlfZnJlZShlbnRyeSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChpZl9saXN0ICE9IE5VTEwpCisgICAgICAgIGZyZWUoaWZfbGlzdCk7CisKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2NvbW1vbi5oIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfY29tbW9uLmgKaW5kZXggMmYwYTYzYS4uZWJlYTIxZCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfY29tbW9uLmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfY29tbW9uLmgKQEAgLTE5LDYgKzE5LDggQEAKICAqLwogI2lmIGRlZmluZWQoIGxpbnV4ICkKIGNvbmZpZ19yZXF1aXJlKGlwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4KQorI2VsaWYgZGVmaW5lZCggZnJlZWJzZDQgKSB8fCBkZWZpbmVkKCBuZXRic2Q1ICkgfHwgZGVmaW5lZCggb3BlbmJzZDQgKSB8fCBkZWZpbmVkKCBkcmFnb25mbHkgKSB8fCBkZWZpbmVkKCBkYXJ3aW4gKQorY29uZmlnX3JlcXVpcmUoaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfc3lzY3RsKQogI2Vsc2UKIC8qCiAgKiBjb3VsZG4ndCBkZXRlcm1pbmUgdGhlIGNvcnJlY3QgZmlsZSEKQEAgLTI2LDQgKzI4LDMgQEAKICAqLwogY29uZmlnX3JlcXVpcmUoaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnMtdW5rbm93bi1hcmNoKQogI2VuZGlmCi0KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmMgYi9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19saW51eC5jCmluZGV4IDZiYTM1NmIuLjg1ZTkxMmEgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYwpAQCAtNSwxMSArNSwxNiBAQAogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCiAjaW5jbHVkZSA8bmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBfc2NhbGFycy5oPgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShyZWdpc3Rlcl9udW1fZmlsZV9pbnN0YW5jZSkKKwogc3RhdGljIGNvbnN0IGNoYXIgaXBmd19uYW1lW10gPSAiL3Byb2Mvc3lzL25ldC9pcHY0L2NvbmYvYWxsL2ZvcndhcmRpbmciOworc3RhdGljIGNvbnN0IGNoYXIgaXB0dGxfbmFtZVtdID0gIi9wcm9jL3N5cy9uZXQvaXB2NC9pcF9kZWZhdWx0X3R0bCI7CiBzdGF0aWMgY29uc3QgY2hhciBpcGZ3Nl9uYW1lW10gPSAiL3Byb2Mvc3lzL25ldC9pcHY2L2NvbmYvYWxsL2ZvcndhcmRpbmciOworc3RhdGljIGNvbnN0IGNoYXIgaXBob3A2X25hbWVbXSA9ICIvcHJvYy9zeXMvbmV0L2lwdjYvY29uZi9hbGwvaG9wX2xpbWl0IjsKIAogaW50CiBuZXRzbm1wX2FyY2hfaXBfc2NhbGFyc19pcEZvcndhcmRpbmdfZ2V0KHVfbG9uZyAqdmFsdWUpCkBAIC04MCw2ICs4NSw3MCBAQAogfQogCiBpbnQKK25ldHNubXBfYXJjaF9pcF9zY2FsYXJzX2lwRGVmYXVsdFRUTF9nZXQodV9sb25nICp2YWx1ZSkKK3sKKyAgICBGSUxFICpmaWxlcDsKKyAgICBpbnQgcmM7CisKKyAgICBpZiAoTlVMTCA9PSB2YWx1ZSkKKyAgICAgICAgcmV0dXJuIC0xOworCisKKyAgICBmaWxlcCA9IGZvcGVuKGlwdHRsX25hbWUsICJyIik7CisgICAgaWYgKE5VTEwgPT0gZmlsZXApIHsKKyAgICAgICAgREVCVUdNU0dUTCgoImFjY2VzczppcERlZmF1bHRUVEwiLCAiY291bGQgbm90IG9wZW4gJXNcbiIsCisgICAgICAgICAgICAgICAgICAgIGlwdHRsX25hbWUpKTsKKyAgICAgICAgcmV0dXJuIC0yOworICAgIH0KKworICAgIHJjID0gZnNjYW5mKGZpbGVwLCAiJWx1IiwgdmFsdWUpOworICAgIGZjbG9zZShmaWxlcCk7CisgICAgaWYgKDEgIT0gcmMpIHsKKyAgICAgICAgREVCVUdNU0dUTCgoImFjY2VzczppcERlZmF1bHRUVEwiLCAiY291bGQgbm90IHJlYWQgJXNcbiIsCisgICAgICAgICAgICAgICAgICAgIGlwdHRsX25hbWUpKTsKKyAgICAgICAgcmV0dXJuIC0zOworICAgIH0KKworICAgIGlmICgoMCA9PSAqdmFsdWUpIHx8ICgyNTUgPCAqdmFsdWUpKSB7CisgICAgICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6aXBEZWZhdWx0VFRMIiwgInVuZXhwZWN0ZWQgdmFsdWUgJWxkIGluICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAqdmFsdWUsIGlwdHRsX25hbWUpKTsKKyAgICAgICAgcmV0dXJuIC00OworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitpbnQKK25ldHNubXBfYXJjaF9pcF9zY2FsYXJzX2lwRGVmYXVsdFRUTF9zZXQodV9sb25nIHZhbHVlKQoreworICAgIEZJTEUgKmZpbGVwOworICAgIGludCByYzsKKworICAgIGlmICh2YWx1ZSA9PSAwIHx8IHZhbHVlID4gMjU1KSB7CisgICAgICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6aXBEZWZhdWx0VFRMIiwgImJhZCB2YWx1ZSAlbGQgZm9yICVzXG4iLAorICAgICAgICAgICAgICAgICAgICB2YWx1ZSwgaXB0dGxfbmFtZSkpOworICAgICAgICByZXR1cm4gU05NUF9FUlJfV1JPTkdWQUxVRTsKKyAgICB9CisKKyAgICBmaWxlcCA9IGZvcGVuKGlwdHRsX25hbWUsICJ3Iik7CisgICAgaWYgKE5VTEwgPT0gZmlsZXApIHsKKyAgICAgICAgREVCVUdNU0dUTCgoImFjY2VzczppcERlZmF1bHRUVEwiLCAiY291bGQgbm90IG9wZW4gJXNcbiIsCisgICAgICAgICAgICAgICAgICAgIGlwdHRsX25hbWUpKTsKKyAgICAgICAgcmV0dXJuIFNOTVBfRVJSX1JFU09VUkNFVU5BVkFJTEFCTEU7CisgICAgfQorCisgICAgcmMgPSBmcHJpbnRmKGZpbGVwLCAiJWxkIiwgdmFsdWUpOworICAgIGZjbG9zZShmaWxlcCk7CisgICAgaWYgKDEgIT0gcmMpIHsKKyAgICAgICAgREVCVUdNU0dUTCgoImFjY2VzczppcERlZmF1bHRUVEwiLCAiY291bGQgbm90IHdyaXRlICVzXG4iLAorICAgICAgICAgICAgICAgICAgICBpcHR0bF9uYW1lKSk7CisgICAgICAgIHJldHVybiBTTk1QX0VSUl9HRU5FUlI7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK2ludAogbmV0c25tcF9hcmNoX2lwX3NjYWxhcnNfaXB2NklwRm9yd2FyZGluZ19nZXQodV9sb25nICp2YWx1ZSkKIHsKICAgICBGSUxFICpmaWxlcDsKQEAgLTE0NiwzICsyMTUsODAgQEAKIAogICAgIHJldHVybiAwOwogfQorCitpbnQKK25ldHNubXBfYXJjaF9pcF9zY2FsYXJzX2lwdjZJcERlZmF1bHRIb3BMaW1pdF9nZXQodV9sb25nICp2YWx1ZSkKK3sKKyAgICBGSUxFICpmaWxlcDsKKyAgICBpbnQgcmM7CisKKyAgICBpZiAoTlVMTCA9PSB2YWx1ZSkKKyAgICAgICAgcmV0dXJuIC0xOworCisKKyAgICBmaWxlcCA9IGZvcGVuKGlwaG9wNl9uYW1lLCAiciIpOworICAgIGlmIChOVUxMID09IGZpbGVwKSB7CisgICAgICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6aXBEZWZhdWx0SG9wTGltaXQiLCAiY291bGQgbm90IG9wZW4gJXNcbiIsCisgICAgICAgICAgICAgICAgICAgIGlwaG9wNl9uYW1lKSk7CisgICAgICAgIHJldHVybiAtMjsKKyAgICB9CisKKyAgICByYyA9IGZzY2FuZihmaWxlcCwgIiVsdSIsIHZhbHVlKTsKKyAgICBmY2xvc2UoZmlsZXApOworICAgIGlmICgxICE9IHJjKSB7CisgICAgICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6aXBEZWZhdWx0SG9wTGltaXQiLCAiY291bGQgbm90IHJlYWQgJXNcbiIsCisgICAgICAgICAgICAgICAgICAgIGlwaG9wNl9uYW1lKSk7CisgICAgICAgIHJldHVybiAtMzsKKyAgICB9CisKKyAgICBpZiAoKDAgPT0gKnZhbHVlKSB8fCAoMjU1IDwgKnZhbHVlKSkgeworICAgICAgICBERUJVR01TR1RMKCgiYWNjZXNzOmlwRGVmYXVsdEhvcExpbWl0IiwgInVuZXhwZWN0ZWQgdmFsdWUgJWxkIGluICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAqdmFsdWUsIGlwaG9wNl9uYW1lKSk7CisgICAgICAgIHJldHVybiAtNDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworaW50CituZXRzbm1wX2FyY2hfaXBfc2NhbGFyc19pcHY2SXBEZWZhdWx0SG9wTGltaXRfc2V0KHVfbG9uZyB2YWx1ZSkKK3sKKyAgICBGSUxFICpmaWxlcDsKKyAgICBpbnQgcmM7CisKKyAgICBpZiAodmFsdWUgPT0gMCB8fCB2YWx1ZSA+IDI1NSkgeworICAgICAgICBERUJVR01TR1RMKCgiYWNjZXNzOmlwRGVmYXVsdEhvcExpbWl0IiwgImJhZCB2YWx1ZSAlbGQgZm9yICVzXG4iLAorICAgICAgICAgICAgICAgICAgICB2YWx1ZSwgaXBob3A2X25hbWUpKTsKKyAgICAgICAgcmV0dXJuIFNOTVBfRVJSX1dST05HVkFMVUU7CisgICAgfQorCisgICAgZmlsZXAgPSBmb3BlbihpcGhvcDZfbmFtZSwgInciKTsKKyAgICBpZiAoTlVMTCA9PSBmaWxlcCkgeworICAgICAgICBERUJVR01TR1RMKCgiYWNjZXNzOmlwRGVmYXVsdEhvcExpbWl0IiwgImNvdWxkIG5vdCBvcGVuICVzXG4iLAorICAgICAgICAgICAgICAgICAgICBpcGhvcDZfbmFtZSkpOworICAgICAgICByZXR1cm4gU05NUF9FUlJfUkVTT1VSQ0VVTkFWQUlMQUJMRTsKKyAgICB9CisKKyAgICByYyA9IGZwcmludGYoZmlsZXAsICIlbGQiLCB2YWx1ZSk7CisgICAgZmNsb3NlKGZpbGVwKTsKKyAgICBpZiAoMSAhPSByYykgeworICAgICAgICBERUJVR01TR1RMKCgiYWNjZXNzOmlwRGVmYXVsdEhvcExpbWl0IiwgImNvdWxkIG5vdCB3cml0ZSAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgaXBob3A2X25hbWUpKTsKKyAgICAgICAgcmV0dXJuIFNOTVBfRVJSX0dFTkVSUjsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwordm9pZAorbmV0c25tcF9hcmNoX2lwX3NjYWxhcnNfcmVnaXN0ZXJfaGFuZGxlcnModm9pZCkKK3sKKyAgICBzdGF0aWMgb2lkIGlwUmVhc21UaW1lb3V0X29pZFtdID0geyAxLCAzLCA2LCAxLCAyLCAxLCA0LCAxMywgMCB9OworCisgICAgbmV0c25tcF9yZWdpc3Rlcl9udW1fZmlsZV9pbnN0YW5jZQorICAgICAgICAoImlwUmVhc21UaW1lb3V0IiwKKyAgICAgICAgIGlwUmVhc21UaW1lb3V0X29pZCwgT0lEX0xFTkdUSChpcFJlYXNtVGltZW91dF9vaWQpLAorICAgICAgICAgIi9wcm9jL3N5cy9uZXQvaXB2NC9pcGZyYWdfdGltZSIsIEFTTl9JTlRFR0VSLAorICAgICAgICAgSEFORExFUl9DQU5fUk9OTFksIE5VTEwsIE5VTEwpOworCit9CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19zeXNjdGwuYyBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX3N5c2N0bC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2OWM3NDMKLS0tIC9kZXYvbnVsbAorKysgYi9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19zeXNjdGwuYwpAQCAtMCwwICsxLDI5MSBAQAorLyoKKyAqICBJUC1NSUIgYXJjaGl0ZWN0dXJlIHN1cHBvcnQKKyAqCisgKiAkSWQkCisgKi8KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgorCisjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9kYXRhX2FjY2Vzcy9pcF9zY2FsYXJzLmg+CisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvcHJvdG9zdy5oPgorI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KKyNpbmNsdWRlIDxuZXRpbmV0L2luX3N5c3RtLmg+CisjaW5jbHVkZSA8bmV0aW5ldC9pcC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisKKy8qIFhYWDogdGhlIHZhbHVlcyBwYXNzZWQgdG8gbmV0c25tcF9hcmNoX2lwX3NjYWxhcnMoLi4pIG1heSBvciBtYXkgbm90IGJlCisgKiBwb3J0YWJsZSB0byB0aGUgb3RoZXIgQlNEcyAtLSBpdCBzZWVtcyB0byBiZSBwb3J0YWJsZSBiYWNrIHRvIEZyZWVCU0QgNC54CisgKiAoRGFyd2luIDEwLjguMCkgYXQgbGVhc3QuCisgKi8KKworc3RhdGljIGludAorbmV0c25tcF9hcmNoX2lwX3NjYWxhcnNfc3lzY3RsKGNvbnN0IGNoYXIgKmFjY2Vzc19tb2R1bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pYltdLCBzaXplX3QgbWliX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKm9sZF92YWx1ZSwgdV9sb25nICpuZXdfdmFsdWUpCit7CisgICAgaW50IG5ld2ludCwgb2xkaW50OworICAgIHNpemVfdCBuZWVkZWQ7CisgICAgaW50IHJjOworCisgICAgbmVlZGVkID0gc2l6ZW9mKG9sZGludCk7CisgICAgaWYgKG5ld192YWx1ZSkKKyAgICAgICAgbmV3aW50ID0gKm5ld192YWx1ZTsKKworICAgIHJjID0gc3lzY3RsKG1pYiwgbWliX2xlbiwgJm9sZGludCwgJm5lZWRlZCwKKyAgICAgICAgICAgICAgICBuZXdfdmFsdWUgPyAmbmV3aW50IDogTlVMTCwgKG5ld192YWx1ZSA/IHNpemVvZihuZXdpbnQpIDogMCkpOworICAgIGlmIChyYyA9PSAtMSkgeworICAgICAgICBERUJVR01TR1RMKChhY2Nlc3NfbW9kdWxlLCAic3lzY3RsICVzIGZhaWxlZCAtICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAobmV3X3ZhbHVlID09IE5VTEwgPyAiZ2V0IiA6ICJzZXQiKSwKKyAgICAgICAgICAgICAgICAgICAgc3RyZXJyb3IoZXJybm8pKSk7CisgICAgfQorICAgICpvbGRfdmFsdWUgPSBvbGRpbnQ7CisgICAgcmV0dXJuIHJjOworfQorCitpbnQgaXBEZWZhdWx0VFRMX21pYltdID0geworICAgIENUTF9ORVQsCisgICAgUEZfSU5FVCwKKyAgICBJUFBST1RPX0lQLAorICAgIElQQ1RMX0RFRlRUTAorfTsKKworaW50IGlwRm9yd2FyZGluZ19taWJbXSA9IHsKKyAgICBDVExfTkVULAorICAgIFBGX0lORVQsCisgICAgSVBQUk9UT19JUCwKKyAgICBJUENUTF9GT1JXQVJESU5HCit9OworCitpbnQgaXB2NklwRGVmYXVsdEhvcExpbWl0X21pYltdID0geworICAgIENUTF9ORVQsCisgICAgUEZfSU5FVDYsCisgICAgSVBQUk9UT19JUCwKKyAgICBJUFY2Q1RMX0RFRkhMSU0KK307CisKK2ludCBpcHY2SXBGb3J3YXJkaW5nX21pYltdID0geworICAgIENUTF9ORVQsCisgICAgUEZfSU5FVDYsCisgICAgSVBQUk9UT19JUCwKKyAgICBJUFY2Q1RMX0ZPUldBUkRJTkcKK307CisKKyNkZWZpbmUgTUlCX0xFTihhKQkJKHNpemVvZihhKSAvIHNpemVvZigqYSkpCisKKyNkZWZpbmUgSVBERUZBVUxUVFRMX0xFTglNSUJfTEVOKGlwRGVmYXVsdFRUTF9taWIpCisjZGVmaW5lIElQRk9SV0FSRElOR19MRU4JTUlCX0xFTihpcEZvcndhcmRpbmdfbWliKQorI2RlZmluZSBJUFY2SVBERUZBVUxUSE9QTElNSVRfTEVOCU1JQl9MRU4oaXB2NklwRGVmYXVsdEhvcExpbWl0X21pYikKKyNkZWZpbmUgSVBWNklQRk9SV0FSRElOR19MRU4JTUlCX0xFTihpcHY2SXBGb3J3YXJkaW5nX21pYikKKworaW50CituZXRzbm1wX2FyY2hfaXBfc2NhbGFyc19pcERlZmF1bHRUVExfZ2V0KHVfbG9uZyAqdmFsdWUpCit7CisgICAgaW50IHJjOworCisgICAgaWYgKE5VTEwgPT0gdmFsdWUpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHJjID0gbmV0c25tcF9hcmNoX2lwX3NjYWxhcnNfc3lzY3RsKCJhY2Nlc3M6aXBEZWZhdWx0VFRMIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcERlZmF1bHRUVExfbWliLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQREVGQVVMVFRUTF9MRU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsIE5VTEwpOworICAgIGlmIChyYyAhPSAwKQorICAgICAgICByZXR1cm4gLTI7CisKKyAgICByZXR1cm4gMDsKK30KKworaW50CituZXRzbm1wX2FyY2hfaXBfc2NhbGFyc19pcERlZmF1bHRUVExfc2V0KHVfbG9uZyB2YWx1ZSkKK3sKKyAgICBpbnQgcmM7CisKKyAgICBpZiAoMSA9PSB2YWx1ZSkKKyAgICAgICAgOworICAgIGVsc2UgaWYgKDIgPT0gdmFsdWUpCisgICAgICAgIHZhbHVlID0gMDsKKyAgICBlbHNlIHsKKyAgICAgICAgREVCVUdNU0dUTCgoImFjY2VzczppcERlZmF1bHRUVEwiLCAiYmFkIHZhbHVlICVsZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIFNOTVBfRVJSX1dST05HVkFMVUU7CisgICAgfQorCisgICAgcmMgPSBuZXRzbm1wX2FyY2hfaXBfc2NhbGFyc19zeXNjdGwoImFjY2VzczppcEZvcndhcmRpbmciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwRm9yd2FyZGluZ19taWIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBGT1JXQVJESU5HX0xFTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAmdmFsdWUpOworICAgIGlmIChyYyAhPSAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICByZXR1cm4gMDsKK30KKworaW50CituZXRzbm1wX2FyY2hfaXBfc2NhbGFyc19pcEZvcndhcmRpbmdfZ2V0KHVfbG9uZyAqdmFsdWUpCit7CisgICAgaW50IHJjOworCisgICAgaWYgKE5VTEwgPT0gdmFsdWUpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHJjID0gbmV0c25tcF9hcmNoX2lwX3NjYWxhcnNfc3lzY3RsKCJhY2Nlc3M6aXBGb3J3YXJkaW5nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcEZvcndhcmRpbmdfbWliLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQRk9SV0FSRElOR19MRU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsIE5VTEwpOworICAgIGlmIChyYyAhPSAwKQorICAgICAgICByZXR1cm4gLTI7CisKKyAgICAvKiBPbiBGcmVlQlNEIDcuMiBhdCBsZWFzdCwgdGhlIHZhbHVlIHBhc3NlZCB0byB0aGUgc3lzY3RsIGNhbiBiZSBjb2VyY2VkCisgICAgICogaW50byBhIG5vbi16ZXJvIHZhbHVlOyBjb252ZXJ0IGl0IGludG8gYSB2YWx1ZSB0aGF0J3Mgc2FuZSBwZXIgdGhlCisgICAgICogSVAtTUlCIGRlZmluaXRpb24uCisgICAgICovCisgICAgaWYgKCp2YWx1ZSAhPSAwKQorICAgICAgICAqdmFsdWUgPSAxOworCisgICAgcmV0dXJuIDA7Cit9CisKK2ludAorbmV0c25tcF9hcmNoX2lwX3NjYWxhcnNfaXBGb3J3YXJkaW5nX3NldCh1X2xvbmcgdmFsdWUpCit7CisgICAgaW50IHJjOworCisgICAgaWYgKDEgPT0gdmFsdWUpCisgICAgICAgIDsKKyAgICBlbHNlIGlmICgyID09IHZhbHVlKQorICAgICAgICB2YWx1ZSA9IDA7CisgICAgZWxzZSB7CisgICAgICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6aXBGb3J3YXJkaW5nIiwgImJhZCB2YWx1ZSAlbGRcbiIsCisgICAgICAgICAgICAgICAgICAgIHZhbHVlKSk7CisgICAgICAgIHJldHVybiBTTk1QX0VSUl9XUk9OR1ZBTFVFOworICAgIH0KKworICAgIHJjID0gbmV0c25tcF9hcmNoX2lwX3NjYWxhcnNfc3lzY3RsKCJhY2Nlc3M6aXBGb3J3YXJkaW5nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcEZvcndhcmRpbmdfbWliLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQRk9SV0FSRElOR19MRU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgJnZhbHVlKTsKKyAgICBpZiAocmMgIT0gMCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgcmV0dXJuIDA7Cit9CisKK2ludAorbmV0c25tcF9hcmNoX2lwX3NjYWxhcnNfaXB2NklwRGVmYXVsdEhvcExpbWl0X2dldCh1X2xvbmcgKnZhbHVlKQoreworICAgIGludCByYzsKKworICAgIGlmIChOVUxMID09IHZhbHVlKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICByYyA9IG5ldHNubXBfYXJjaF9pcF9zY2FsYXJzX3N5c2N0bCgiYWNjZXNzOmlwdjZJcERlZmF1bHRIb3BMaW1pdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXB2NklwRGVmYXVsdEhvcExpbWl0X21pYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUFY2SVBERUZBVUxUSE9QTElNSVRfTEVOLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLCBOVUxMKTsKKyAgICBpZiAocmMgIT0gMCkKKyAgICAgICAgcmV0dXJuIC0yOworCisgICAgcmV0dXJuIDA7Cit9CisKK2ludAorbmV0c25tcF9hcmNoX2lwX3NjYWxhcnNfaXB2NklwRGVmYXVsdEhvcExpbWl0X3NldCh1X2xvbmcgdmFsdWUpCit7CisgICAgaW50IHJjOworCisgICAgaWYgKDEgPT0gdmFsdWUpCisgICAgICAgIDsKKyAgICBlbHNlIGlmICgyID09IHZhbHVlKQorICAgICAgICB2YWx1ZSA9IDA7CisgICAgZWxzZSB7CisgICAgICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6aXB2NklwRGVmYXVsdEhvcExpbWl0IiwgImJhZCB2YWx1ZSAlbGRcbiIsCisgICAgICAgICAgICAgICAgICAgIHZhbHVlKSk7CisgICAgICAgIHJldHVybiBTTk1QX0VSUl9XUk9OR1ZBTFVFOworICAgIH0KKworICAgIHJjID0gbmV0c25tcF9hcmNoX2lwX3NjYWxhcnNfc3lzY3RsKCJhY2Nlc3M6aXBGb3J3YXJkaW5nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcHY2SXBEZWZhdWx0SG9wTGltaXRfbWliLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQVjZJUERFRkFVTFRIT1BMSU1JVF9MRU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgJnZhbHVlKTsKKyAgICBpZiAocmMgIT0gMCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgcmV0dXJuIDA7Cit9CisKK2ludAorbmV0c25tcF9hcmNoX2lwX3NjYWxhcnNfaXB2NklwRm9yd2FyZGluZ19nZXQodV9sb25nICp2YWx1ZSkKK3sKKyAgICBpbnQgcmM7CisKKyAgICBpZiAoTlVMTCA9PSB2YWx1ZSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgcmMgPSBuZXRzbm1wX2FyY2hfaXBfc2NhbGFyc19zeXNjdGwoImFjY2VzczppcHY2SXBGb3J3YXJkaW5nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcHY2SXBGb3J3YXJkaW5nX21pYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUFY2SVBGT1JXQVJESU5HX0xFTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwgTlVMTCk7CisgICAgaWYgKHJjICE9IDApCisgICAgICAgIHJldHVybiAtMjsKKworICAgIC8qIE9uIEZyZWVCU0QgNy4yIGF0IGxlYXN0LCB0aGUgdmFsdWUgcGFzc2VkIHRvIHRoZSBzeXNjdGwgY2FuIGJlIGNvZXJjZWQKKyAgICAgKiBpbnRvIGEgbm9uLXplcm8gdmFsdWU7IGNvbnZlcnQgaXQgaW50byBhIHZhbHVlIHRoYXQncyBzYW5lIHBlciB0aGUKKyAgICAgKiBJUC1NSUIgZGVmaW5pdGlvbi4KKyAgICAgKi8KKyAgICBpZiAoKnZhbHVlICE9IDApCisgICAgICAgICp2YWx1ZSA9IDE7CisKKyAgICByZXR1cm4gMDsKK30KKworaW50CituZXRzbm1wX2FyY2hfaXBfc2NhbGFyc19pcHY2SXBGb3J3YXJkaW5nX3NldCh1X2xvbmcgdmFsdWUpCit7CisgICAgaW50IHJjOworCisgICAgaWYgKDEgPT0gdmFsdWUpCisgICAgICAgIDsKKyAgICBlbHNlIGlmICgyID09IHZhbHVlKQorICAgICAgICB2YWx1ZSA9IDA7CisgICAgZWxzZSB7CisgICAgICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6aXBGb3J3YXJkaW5nIiwgImJhZCB2YWx1ZSAlbGRcbiIsCisgICAgICAgICAgICAgICAgICAgIHZhbHVlKSk7CisgICAgICAgIHJldHVybiBTTk1QX0VSUl9XUk9OR1ZBTFVFOworICAgIH0KKworICAgIHJjID0gbmV0c25tcF9hcmNoX2lwX3NjYWxhcnNfc3lzY3RsKCJhY2Nlc3M6aXB2NklwRm9yd2FyZGluZyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXB2NklwRm9yd2FyZGluZ19taWIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBWNklQRk9SV0FSRElOR19MRU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgJnZhbHVlKTsKKyAgICBpZiAocmMgIT0gMCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBsb25nIGlwUmVhc21UaW1lb3V0X3ZhbDsKKwordm9pZAorbmV0c25tcF9hcmNoX2lwX3NjYWxhcnNfcmVnaXN0ZXJfaGFuZGxlcnModm9pZCkKK3sKKyAgICBzdGF0aWMgb2lkIGlwUmVhc21UaW1lb3V0X29pZFtdID0geyAxLCAzLCA2LCAxLCAyLCAxLCA0LCAxMywgMCB9OworCisgICAgLyogCisgICAgICogVGhpcyB2YWx1ZSBpcyBzdGF0aWMgYXQgY29tcGlsZSB0aW1lIG9uIEZyZWVCU0Q7IGl0IHJlYWxseSBzaG91bGQgYmUgYQorICAgICAqIHByb2JlZCB2aWEgZWl0aGVyIHN5c2N0bCBvciBzeXNjb25mIGF0IHJ1bnRpbWUgYXMgdGhlIGNvbXBpbGVkIHZhbHVlIGFuZAorICAgICAqIHRoZSBydW50aW1lIHZhbHVlIGNvbXBpbGVkIGludG8gdGhlIGtlcm5lbCBjYW4gdmFyeS4KKyAgICAgKgorICAgICAqIFBsZWFzZSByZWZlciB0byBzeXMvcHJvdG9zdy5oIGZvciBtb3JlIGRldGFpbHMgb24gd2hhdCB0aGlzIHZhbHVlIGlzIChpbgorICAgICAqIHBhcnRpY3VsYXIgUFJfU0xPV0haKS4KKyAgICAgKi8KKyAgICBpcFJlYXNtVGltZW91dF92YWwgPSBJUEZSQUdUVEwgLyBQUl9TTE9XSFo7CisKKyAgICBuZXRzbm1wX3JlZ2lzdGVyX2xvbmdfaW5zdGFuY2UoImlwUmVhc21UaW1lb3V0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBSZWFzbVRpbWVvdXRfb2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPSURfTEVOR1RIKGlwUmVhc21UaW1lb3V0X29pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpcFJlYXNtVGltZW91dF92YWwsIE5VTEwpOworfQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmggYi9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaAppbmRleCAyODgxMGUzLi41MTQ4MDdhIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaAorKysgYi9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaApAQCAtMjIsNiArMjIsOCBAQAogY29uZmlnX3JlcXVpcmUoaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4KQogI2VsaWYgZGVmaW5lZCggc29sYXJpczIgKQogY29uZmlnX3JlcXVpcmUoaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3NvbGFyaXMyKQorI2VsaWYgZGVmaW5lZCggZnJlZWJzZDcgKSB8fCBkZWZpbmVkKCBuZXRic2Q1ICkgfHwgZGVmaW5lZCggb3BlbmJzZDQgKSB8fCBkZWZpbmVkKCBkcmFnb25mbHkgKSB8fCBkZWZpbmVkKCBkYXJ3aW4gKQorY29uZmlnX3JlcXVpcmUoaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3N5c2N0bCkKICNlbHNlCiBjb25maWdfZXJyb3IodGhlIHN5c3RlbXN0YXRzIGRhdGEgYWNjZXNzIGxpYnJhcnkgaXMgbm90IGF2YWlsYWJsZSBpbiB0aGlzIGVudmlyb25tZW50LikKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3N5c2N0bC5jIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3N5c2N0bC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExY2ExNmQKLS0tIC9kZXYvbnVsbAorKysgYi9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfc3lzY3RsLmMKQEAgLTAsMCArMSw3OTEgQEAKKy8qCisgKiAgaXBTeXN0ZW1TdGF0c1RhYmxlIGFuZCBpcElmU3RhdHNUYWJsZSBpbnRlcmZhY2UgTUlCIGFyY2hpdGVjdHVyZSBzdXBwb3J0CisgKgorICogJElkJAorICovCisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KKworI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBzdGF0cy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmg+CisKKyNpbmNsdWRlICIuLi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgiCisKKyNpZiBkZWZpbmVkKE5FVFNOTVBfSUZORVRfTkVFRFNfS0VSTkVMKSAmJiAhZGVmaW5lZChfS0VSTkVMKQorI2RlZmluZSBfS0VSTkVMIDEKKyNkZWZpbmUgX0lfREVGSU5FRF9LRVJORUwKKyNlbmRpZgorI2lmIE5FVFNOTVBfSUZORVRfTkVFRFNfS0VSTkVMX1NUUlVDVFVSRVMKKyNkZWZpbmUgX0tFUk5FTF9TVFJVQ1RVUkVTCisjZW5kaWYKKworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPGRpcmVudC5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CisjaW5jbHVkZSA8c3lzL3Byb3Rvc3cuaD4KKworI2luY2x1ZGUgPG5ldC9pZi5oPgorI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKyNpbmNsdWRlIDxuZXRpbmV0L2luX3N5c3RtLmg+CisjaW5jbHVkZSA8bmV0aW5ldC9pcC5oPgorI2luY2x1ZGUgPG5ldGluZXQvaXBfaWNtcC5oPgorI2luY2x1ZGUgPG5ldGluZXQvaXBfdmFyLmg+CisjaWYgSEFWRV9ORVRJTkVUNl9JUDZfVkFSX0gKKyNpbmNsdWRlIDxuZXRpbmV0Ni9pcDZfdmFyLmg+CisjZW5kaWYKKyNpZm5kZWYgZnJlZWJzZDcKKyNpbmNsdWRlIDxuZXRpbmV0Ni9pbjZfdmFyLmg+CisjZW5kaWYKKworI2lmZGVmIGRhcndpbgorCisvKiBUaGlzIHN0cnVjdCBpcyBpbiBuZXRpbmV0Ni9pcDZfdmFyLmggd2hpY2ggQXBwbGUgZm9yIG9ic2N1cmUgcmVhc29ucworICogZG8gbm90IGRpc3RyaWJ1dGUgYXMgcGFydCBvZiAvdXNyL2luY2x1ZGUgOi0oCisgKi8KKworc3RydWN0CWlwNnN0YXQgeworCXVfcXVhZF90IGlwNnNfdG90YWw7CQkvKiB0b3RhbCBwYWNrZXRzIHJlY2VpdmVkICovCisJdV9xdWFkX3QgaXA2c190b29zaG9ydDsJCS8qIHBhY2tldCB0b28gc2hvcnQgKi8KKwl1X3F1YWRfdCBpcDZzX3Rvb3NtYWxsOwkJLyogbm90IGVub3VnaCBkYXRhICovCisJdV9xdWFkX3QgaXA2c19mcmFnbWVudHM7CS8qIGZyYWdtZW50cyByZWNlaXZlZCAqLworCXVfcXVhZF90IGlwNnNfZnJhZ2Ryb3BwZWQ7CS8qIGZyYWdzIGRyb3BwZWQoZHVwcywgb3V0IG9mIHNwYWNlKSAqLworCXVfcXVhZF90IGlwNnNfZnJhZ3RpbWVvdXQ7CS8qIGZyYWdtZW50cyB0aW1lZCBvdXQgKi8KKwl1X3F1YWRfdCBpcDZzX2ZyYWdvdmVyZmxvdzsJLyogZnJhZ21lbnRzIHRoYXQgZXhjZWVkZWQgbGltaXQgKi8KKwl1X3F1YWRfdCBpcDZzX2ZvcndhcmQ7CQkvKiBwYWNrZXRzIGZvcndhcmRlZCAqLworCXVfcXVhZF90IGlwNnNfY2FudGZvcndhcmQ7CS8qIHBhY2tldHMgcmN2ZCBmb3IgdW5yZWFjaGFibGUgZGVzdCAqLworCXVfcXVhZF90IGlwNnNfcmVkaXJlY3RzZW50OwkvKiBwYWNrZXRzIGZvcndhcmRlZCBvbiBzYW1lIG5ldCAqLworCXVfcXVhZF90IGlwNnNfZGVsaXZlcmVkOwkvKiBkYXRhZ3JhbXMgZGVsaXZlcmVkIHRvIHVwcGVyIGxldmVsKi8KKwl1X3F1YWRfdCBpcDZzX2xvY2Fsb3V0OwkJLyogdG90YWwgaXAgcGFja2V0cyBnZW5lcmF0ZWQgaGVyZSAqLworCXVfcXVhZF90IGlwNnNfb2Ryb3BwZWQ7CQkvKiBsb3N0IHBhY2tldHMgZHVlIHRvIG5vYnVmcywgZXRjLiAqLworCXVfcXVhZF90IGlwNnNfcmVhc3NlbWJsZWQ7CS8qIHRvdGFsIHBhY2tldHMgcmVhc3NlbWJsZWQgb2sgKi8KKwl1X3F1YWRfdCBpcDZzX2ZyYWdtZW50ZWQ7CS8qIGRhdGFncmFtcyBzdWNlc3NmdWxseSBmcmFnbWVudGVkICovCisJdV9xdWFkX3QgaXA2c19vZnJhZ21lbnRzOwkvKiBvdXRwdXQgZnJhZ21lbnRzIGNyZWF0ZWQgKi8KKwl1X3F1YWRfdCBpcDZzX2NhbnRmcmFnOwkJLyogZG9uJ3QgZnJhZ21lbnQgZmxhZyB3YXMgc2V0LCBldGMuICovCisJdV9xdWFkX3QgaXA2c19iYWRvcHRpb25zOwkvKiBlcnJvciBpbiBvcHRpb24gcHJvY2Vzc2luZyAqLworCXVfcXVhZF90IGlwNnNfbm9yb3V0ZTsJCS8qIHBhY2tldHMgZGlzY2FyZGVkIGR1ZSB0byBubyByb3V0ZSAqLworCXVfcXVhZF90IGlwNnNfYmFkdmVyczsJCS8qIGlwNiB2ZXJzaW9uICE9IDYgKi8KKwl1X3F1YWRfdCBpcDZzX3Jhd291dDsJCS8qIHRvdGFsIHJhdyBpcCBwYWNrZXRzIGdlbmVyYXRlZCAqLworCXVfcXVhZF90IGlwNnNfYmFkc2NvcGU7CQkvKiBzY29wZSBlcnJvciAqLworCXVfcXVhZF90IGlwNnNfbm90bWVtYmVyOwkvKiBkb24ndCBqb2luIHRoaXMgbXVsdGljYXN0IGdyb3VwICovCisJdV9xdWFkX3QgaXA2c19ueHRoaXN0WzI1Nl07CS8qIG5leHQgaGVhZGVyIGhpc3RvcnkgKi8KKwl1X3F1YWRfdCBpcDZzX20xOwkJLyogb25lIG1idWYgKi8KKwl1X3F1YWRfdCBpcDZzX20ybVszMl07CQkvKiB0d28gb3IgbW9yZSBtYnVmICovCisJdV9xdWFkX3QgaXA2c19tZXh0MTsJCS8qIG9uZSBleHQgbWJ1ZiAqLworCXVfcXVhZF90IGlwNnNfbWV4dDJtOwkJLyogdHdvIG9yIG1vcmUgZXh0IG1idWYgKi8KKwl1X3F1YWRfdCBpcDZzX2V4dGhkcnRvb2xvbmc7CS8qIGV4dCBoZHIgYXJlIG5vdCBjb250aW51b3VzICovCisJdV9xdWFkX3QgaXA2c19ub2dpZjsJCS8qIG5vIG1hdGNoIGdpZiBmb3VuZCAqLworCXVfcXVhZF90IGlwNnNfdG9vbWFueWhkcjsJLyogZGlzY2FyZGVkIGR1ZSB0byB0b28gbWFueSBoZWFkZXJzICovCisKKwkvKgorCSAqIHN0YXRpc3RpY3MgZm9yIGltcHJvdmVtZW50IG9mIHRoZSBzb3VyY2UgYWRkcmVzcyBzZWxlY3Rpb24KKwkgKiBhbGdvcml0aG06CisJICogWFhYOiBoYXJkY29kZWQgMTYgPSAjIG9mIGlwNiBtdWx0aWNhc3Qgc2NvcGUgdHlwZXMgKyAxCisJICovCisJLyogbnVtYmVyIG9mIHRpbWVzIHRoYXQgYWRkcmVzcyBzZWxlY3Rpb24gZmFpbHMgKi8KKwl1X3F1YWRfdCBpcDZzX3NvdXJjZXNfbm9uZTsKKwkvKiBudW1iZXIgb2YgdGltZXMgdGhhdCBhbiBhZGRyZXNzIG9uIHRoZSBvdXRnb2luZyBJL0YgaXMgY2hvc2VuICovCisJdV9xdWFkX3QgaXA2c19zb3VyY2VzX3NhbWVpZlsxNl07CisJLyogbnVtYmVyIG9mIHRpbWVzIHRoYXQgYW4gYWRkcmVzcyBvbiBhIG5vbi1vdXRnb2luZyBJL0YgaXMgY2hvc2VuICovCisJdV9xdWFkX3QgaXA2c19zb3VyY2VzX290aGVyaWZbMTZdOworCS8qCisJICogbnVtYmVyIG9mIHRpbWVzIHRoYXQgYW4gYWRkcmVzcyB0aGF0IGhhcyB0aGUgc2FtZSBzY29wZQorCSAqIGZyb20gdGhlIGRlc3RpbmF0aW9uIGlzIGNob3Nlbi4KKwkgKi8KKwl1X3F1YWRfdCBpcDZzX3NvdXJjZXNfc2FtZXNjb3BlWzE2XTsKKwkvKgorCSAqIG51bWJlciBvZiB0aW1lcyB0aGF0IGFuIGFkZHJlc3MgdGhhdCBoYXMgYSBkaWZmZXJlbnQgc2NvcGUKKwkgKiBmcm9tIHRoZSBkZXN0aW5hdGlvbiBpcyBjaG9zZW4uCisJICovCisJdV9xdWFkX3QgaXA2c19zb3VyY2VzX290aGVyc2NvcGVbMTZdOworCS8qIG51bWJlciBvZiB0aW1lcyB0aGF0IGFuIGRlcHJlY2F0ZWQgYWRkcmVzcyBpcyBjaG9zZW4gKi8KKwl1X3F1YWRfdCBpcDZzX3NvdXJjZXNfZGVwcmVjYXRlZFsxNl07CisKKwl1X3F1YWRfdCBpcDZzX2ZvcndhcmRfY2FjaGVoaXQ7CisJdV9xdWFkX3QgaXA2c19mb3J3YXJkX2NhY2hlbWlzczsKK307CisKKyNlbmRpZiAvKiBkYXJ3aW4qLworCitzdGF0aWMgaW50IF9zeXN0ZW1zdGF0c192NChuZXRzbm1wX2NvbnRhaW5lciogY29udGFpbmVyLCB1X2ludCBsb2FkX2ZsYWdzKTsKKworI2lmIGRlZmluZWQgKE5FVFNOTVBfRU5BQkxFX0lQVjYpCitzdGF0aWMgaW50IF9zeXN0ZW1zdGF0c192NihuZXRzbm1wX2NvbnRhaW5lciogY29udGFpbmVyLCB1X2ludCBsb2FkX2ZsYWdzKTsKKyNlbmRpZgorCitzdGF0aWMgaW50IG5jcHVzOworCit2b2lkCituZXRzbm1wX2FjY2Vzc19zeXN0ZW1zdGF0c19hcmNoX2luaXQodm9pZCkKK3sKKyAgICBpbnQgICAgbmNwdV9taWJbXSAgPSB7IENUTF9IVywgSFdfTkNQVSB9OworICAgIHNpemVfdCBzaXogPSBzaXplb2YobmNwdXMpOworICAgIGlmIChzeXNjdGwobmNwdV9taWIsIDIsICZuY3B1cywgJnNpeiwgTlVMTCwgMCkgPCAwKSB7CisJc25tcF9sb2dfcGVycm9yKCJody5uY3B1Iik7CisgICAgICAgIG5jcHVzID0gMTsKKyAgICB9Cit9CisKKy8qCisgKgorICogQHJldHZhbCAgMCBzdWNjZXNzCisgKiBAcmV0dmFsIC0xIG5vIGNvbnRhaW5lciBzcGVjaWZpZWQKKyAqIEByZXR2YWwgLTIgY291bGQgbm90IG9wZW4gZmlsZQorICogQHJldHZhbCAtMyBjb3VsZCBub3QgY3JlYXRlIGVudHJ5IChwcm9iYWJseSBtYWxsb2MpCisgKiBAcmV0dmFsIC00IGZpbGUgZm9ybWF0IGVycm9yCisgKi8KK2ludAorbmV0c25tcF9hY2Nlc3Nfc3lzdGVtc3RhdHNfY29udGFpbmVyX2FyY2hfbG9hZChuZXRzbm1wX2NvbnRhaW5lciogY29udGFpbmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9pbnQgbG9hZF9mbGFncykKK3sKKyAgICBpbnQgcmMxOworI2lmIGRlZmluZWQgKE5FVFNOTVBfRU5BQkxFX0lQVjYpCisgICAgaW50IHJjMjsKKyNlbmRpZgorCisgICAgaWYgKE5VTEwgPT0gY29udGFpbmVyKSB7CisgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJubyBjb250YWluZXIgc3BlY2lmaWVkL2ZvdW5kIGZvciBhY2Nlc3Nfc3lzdGVtc3RhdHNfXG4iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIGxvYWQgdjQgYW5kIHY2IHN0YXRzLiBFdmVuIGlmIG9uZSBmYWlscywgdHJ5IHRoZSBvdGhlci4KKyAgICAgKiBJZiB0aGV5IGhhdmUgdGhlIHNhbWUgcmMsIHJldHVybiBpdC4gaWYgdGhlIGRpZmZlciwgcmV0dXJuCisgICAgICogdGhlIHNtYWxsZXIgb25lLiBObyBsb2cgbWVzc2FnZXMsIHNpbmNlIGVhY2ggaW5kaXZpZHVhbCBmdW5jdGlvbgorICAgICAqIHdvdWxkIGhhdmUgbG9nZ2VkIGl0cyBvd24gbWVzc2FnZS4KKyAgICAgKi8KKyAgICByYzEgPSBfc3lzdGVtc3RhdHNfdjQoY29udGFpbmVyLCBsb2FkX2ZsYWdzKTsKKyNpZiBkZWZpbmVkIChORVRTTk1QX0VOQUJMRV9JUFY2KQorICAgIHJjMiA9IF9zeXN0ZW1zdGF0c192Nihjb250YWluZXIsIGxvYWRfZmxhZ3MpOworICAgIGlmICgocmMxID09IHJjMikgfHwgKHJjMSA8IHJjMikpCisgICAgICAgIHJldHVybiByYzE7CisgICAgICAgIAorICAgIHJldHVybiByYzI7CisjZWxzZQorICAgIHJldHVybiByYzE7CisjZW5kaWYKK30KKworLyoKKyAqIEJhc2VkIG9uIGxvYWRfZmxhZ3MsIGxvYWQgaXBTeXN0ZW1TdGF0c1RhYmxlIG9yIGlwSWZTdGF0c1RhYmxlIGZvciBpcHY0IGVudHJpZXMuIAorICovCisjaWZkZWYgX19OZXRCU0RfXworCitzdGF0aWMgaW50Citfc3lzdGVtc3RhdHNfdjQobmV0c25tcF9jb250YWluZXIqIGNvbnRhaW5lciwgdV9pbnQgbG9hZF9mbGFncykKK3sKKyAgICBuZXRzbm1wX3N5c3RlbXN0YXRzX2VudHJ5ICplbnRyeSA9IE5VTEw7CisgICAgdWludDY0X3QgaXBzdGF0W0lQX05TVEFUU107CisgICAgc2l6ZV90IGxlbiA9IHNpemVvZihpcHN0YXQpOworCisgICAgaWYgKHN5c2N0bGJ5bmFtZSgibmV0LmluZXQuaXAuc3RhdHMiLCAmaXBzdGF0LCAmbGVuLCBOVUxMLCAwKSA8IDApIHsKKwlORVRTTk1QX0xPR09OQ0UoKExPR19FUlIsICJDYW5ub3Qgc3lzY3RsYnluYW1lIG5ldC5pbmV0LmlwLnN0YXRzXG4iKSk7CisJcmV0dXJuIC0yOworICAgIH0KKworICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6c3lzdGVtc3RhdHM6Y29udGFpbmVyOmFyY2giLCAibG9hZCB2NCAoZmxhZ3MgJXgpXG4iLAorICAgICAgICAgICAgICAgIGxvYWRfZmxhZ3MpKTsKKworICAgIG5ldHNubXBfYXNzZXJ0KGNvbnRhaW5lciAhPSBOVUxMKTsgLyogbG9hZCBmdW5jdGlvbiBzaG91bGRhIGNoZWNrZWQgdGhpcyAqLworCisgICAgaWYgKGxvYWRfZmxhZ3MgJiBORVRTTk1QX0FDQ0VTU19TWVNURU1TVEFUU19MT0FEX0lGVEFCTEUpIHsKKyAgICAgICAgLyogd2UgZG8gbm90IHN1cHBvcnQgaXBJZlN0YXRzVGFibGUgZm9yIGlwdjQgKi8KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgZW50cnkgPSBuZXRzbm1wX2FjY2Vzc19zeXN0ZW1zdGF0c19lbnRyeV9jcmVhdGUoMSwgMCwKKwkJImlwU3lzdGVtU3RhdHNUYWJsZS5pcHY0Iik7CisgICAgaWYoTlVMTCA9PSBlbnRyeSkgeworCXNubXBfbG9nKExPR19FUlIsICJzeXN0ZW1zdGF0c192NDogY2Fubm90IGNyZWF0ZSBlbnRyeVxuIik7CisJbmV0c25tcF9hY2Nlc3Nfc3lzdGVtc3RhdHNfY29udGFpbmVyX2ZyZWUoY29udGFpbmVyLAorCQkJCQkJICBORVRTTk1QX0FDQ0VTU19TWVNURU1TVEFUU19GUkVFX05PRkxBR1MpOworCXJldHVybiAtMzsKKyAgICB9CisKKyAgICAvKgorICAgICAqIE9LIC0gd2UndmUgbm93IGdvdCAob3IgY3JlYXRlZCkgdGhlIGRhdGEgc3RydWN0dXJlIGZvcgorICAgICAqICAgICAgdGhpcyBzeXN0ZW1zdGF0cywgaW5jbHVkaW5nIGFueSAic3RhdGljIiBpbmZvcm1hdGlvbi4KKyAgICAgKiBOb3cgcGFyc2UgdGhlIHJlc3Qgb2YgdGhlIGxpbmUgKGkuZS4gc3RhcnRpbmcgZnJvbSAnc3RhdHMnKQorICAgICAqICAgICAgdG8gZXh0cmFjdCB0aGUgcmVsZXZhbnQgc3RhdGlzdGljcywgYW5kIHBvcHVsYXRlCisgICAgICogICAgICBkYXRhIHN0cnVjdHVyZSBhY2NvcmRpbmdseS4KKyAgICAgKi8KKworICAgIGVudHJ5LT5zdGF0cy5IQ0luUmVjZWl2ZXMubG93ID0gaXBzdGF0W0lQX1NUQVRfVE9UQUxdICYgMHhmZmZmZmZmZjsKKyAgICBlbnRyeS0+c3RhdHMuSENJblJlY2VpdmVzLmhpZ2ggPSBpcHN0YXRbSVBfU1RBVF9UT1RBTF0gPj4gMzI7CisgICAgZW50cnktPnN0YXRzLkluSGRyRXJyb3JzID0gaXBzdGF0W0lQX1NUQVRfQkFEU1VNXQorCQkgICAgKyBpcHN0YXRbSVBfU1RBVF9UT09TSE9SVF0gKyBpcHN0YXRbSVBfU1RBVF9UT09TTUFMTF0KKwkgICAgICAgICAgICArIGlwc3RhdFtJUF9TVEFUX0JBREhMRU5dICsgaXBzdGF0W0lQX1NUQVRfQkFETEVOXTsKKyAgICBlbnRyeS0+c3RhdHMuSW5BZGRyRXJyb3JzID0gaXBzdGF0W0lQX1NUQVRfQ0FOVEZPUldBUkRdOworICAgIGVudHJ5LT5zdGF0cy5IQ091dEZvcndEYXRhZ3JhbXMubG93ID0gaXBzdGF0W0lQX1NUQVRfRk9SV0FSRF0gJiAweGZmZmZmZmZmOworICAgIGVudHJ5LT5zdGF0cy5IQ091dEZvcndEYXRhZ3JhbXMuaGlnaCA9IGlwc3RhdFtJUF9TVEFUX0ZPUldBUkRdID4+IDMyOworICAgIGVudHJ5LT5zdGF0cy5JblVua25vd25Qcm90b3MgPSBpcHN0YXRbSVBfU1RBVF9OT1BST1RPXTsKKyAgICBlbnRyeS0+c3RhdHMuSW5EaXNjYXJkcyA9IGlwc3RhdFtJUF9TVEFUX0ZSQUdEUk9QUEVEXTsKKyAgICBlbnRyeS0+c3RhdHMuSENJbkRlbGl2ZXJzLmxvdyA9IGlwc3RhdFtJUF9TVEFUX0RFTElWRVJFRF0gJiAweGZmZmZmZmZmOworICAgIGVudHJ5LT5zdGF0cy5IQ0luRGVsaXZlcnMuaGlnaCA9IGlwc3RhdFtJUF9TVEFUX0RFTElWRVJFRF0gPj4gMzI7CisgICAgZW50cnktPnN0YXRzLkhDT3V0UmVxdWVzdHMubG93ID0gaXBzdGF0W0lQX1NUQVRfTE9DQUxPVVRdICYgMHhmZmZmZmZmZjsKKyAgICBlbnRyeS0+c3RhdHMuSENPdXRSZXF1ZXN0cy5oaWdoID0gaXBzdGF0W0lQX1NUQVRfTE9DQUxPVVRdID4+IDMyOworICAgIGVudHJ5LT5zdGF0cy5IQ091dERpc2NhcmRzLmxvdyA9IGlwc3RhdFtJUF9TVEFUX09EUk9QUEVEXSAmIDB4ZmZmZmZmZmY7CisgICAgZW50cnktPnN0YXRzLkhDT3V0RGlzY2FyZHMuaGlnaCA9IGlwc3RhdFtJUF9TVEFUX09EUk9QUEVEXSA+PiAzMjsKKyAgICBlbnRyeS0+c3RhdHMuSENPdXROb1JvdXRlcy5sb3cgPSBpcHN0YXRbSVBfU1RBVF9OT0dJRl0gJiAweGZmZmZmZmZmOworICAgIGVudHJ5LT5zdGF0cy5IQ091dE5vUm91dGVzLmhpZ2ggPSBpcHN0YXRbSVBfU1RBVF9OT0dJRl0gPj4gMzI7CisgICAgLyogZW50cnktPnN0YXRzLiA9IHNjYW5fdmFsc1sxMl07IC8gKiBSZWFzbVRpbWVvdXQgKi8KKyAgICBlbnRyeS0+c3RhdHMuUmVhc21SZXFkcyA9IGlwc3RhdFtJUF9TVEFUX0ZSQUdNRU5UU107CisgICAgZW50cnktPnN0YXRzLlJlYXNtT0tzID0gaXBzdGF0W0lQX1NUQVRfUkVBU1NFTUJMRURdOworICAgIGVudHJ5LT5zdGF0cy5SZWFzbUZhaWxzID0gaXBzdGF0W0lQX1NUQVRfRlJBR0RST1BQRURdCisJCSAgICArIGlwc3RhdFtJUF9TVEFUX0ZSQUdUSU1FT1VUXTsKKyAgICBlbnRyeS0+c3RhdHMuSENPdXRGcmFnT0tzLmxvdyA9IGlwc3RhdFtJUF9TVEFUX0ZSQUdNRU5UU10gJiAweGZmZmZmZmZmOworICAgIGVudHJ5LT5zdGF0cy5IQ091dEZyYWdPS3MuaGlnaCA9IGlwc3RhdFtJUF9TVEFUX0ZSQUdNRU5UU10gPj4gMzI7CisgICAgZW50cnktPnN0YXRzLkhDT3V0RnJhZ0ZhaWxzLmxvdyA9IGlwc3RhdFtJUF9TVEFUX0NBTlRGUkFHXSAmIDB4ZmZmZmZmZmY7CisgICAgZW50cnktPnN0YXRzLkhDT3V0RnJhZ0ZhaWxzLmhpZ2ggPSBpcHN0YXRbSVBfU1RBVF9DQU5URlJBR10gPj4gMzI7CisgICAgZW50cnktPnN0YXRzLkhDT3V0RnJhZ0NyZWF0ZXMubG93ID0gaXBzdGF0W0lQX1NUQVRfT0ZSQUdNRU5UU10gJiAweGZmZmZmZmZmOworICAgIGVudHJ5LT5zdGF0cy5IQ091dEZyYWdDcmVhdGVzLmhpZ2ggPSBpcHN0YXRbSVBfU1RBVF9PRlJBR01FTlRTXSA+PiAzMjsKKworICAgIGVudHJ5LT5zdGF0cy5jb2x1bW5BdmFpbFtJUFNZU1RFTVNUQVRTVEFCTEVfSENJTlJFQ0VJVkVTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9JTkhEUkVSUk9SU10gPSAxOworICAgIGVudHJ5LT5zdGF0cy5jb2x1bW5BdmFpbFtJUFNZU1RFTVNUQVRTVEFCTEVfSU5BRERSRVJST1JTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ09VVEZPUldEQVRBR1JBTVNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0lOVU5LTk9XTlBST1RPU10gPSAxOworICAgIGVudHJ5LT5zdGF0cy5jb2x1bW5BdmFpbFtJUFNZU1RFTVNUQVRTVEFCTEVfSU5ESVNDQVJEU10gPSAxOworICAgIGVudHJ5LT5zdGF0cy5jb2x1bW5BdmFpbFtJUFNZU1RFTVNUQVRTVEFCTEVfSENJTkRFTElWRVJTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ09VVFJFUVVFU1RTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ09VVERJU0NBUkRTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ09VVE5PUk9VVEVTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9SRUFTTVJFUURTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9SRUFTTU9LU10gPSAxOworICAgIGVudHJ5LT5zdGF0cy5jb2x1bW5BdmFpbFtJUFNZU1RFTVNUQVRTVEFCTEVfUkVBU01GQUlMU10gPSAxOworICAgIGVudHJ5LT5zdGF0cy5jb2x1bW5BdmFpbFtJUFNZU1RFTVNUQVRTVEFCTEVfSENPVVRGUkFHT0tTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ09VVEZSQUdGQUlMU10gPSAxOworICAgIGVudHJ5LT5zdGF0cy5jb2x1bW5BdmFpbFtJUFNZU1RFTVNUQVRTVEFCTEVfSENPVVRGUkFHQ1JFQVRFU10gPSAxOworICAgIGVudHJ5LT5zdGF0cy5jb2x1bW5BdmFpbFtJUFNZU1RFTVNUQVRTVEFCTEVfRElTQ09OVElOVUlUWVRJTUVdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX1JFRlJFU0hSQVRFXSA9IDE7CisKKyAgICAvKgorICAgICAqIGFkZCB0byBjb250YWluZXIKKyAgICAgKi8KKyAgICBpZiAoQ09OVEFJTkVSX0lOU0VSVChjb250YWluZXIsIGVudHJ5KSA8IDApCisgICAgeworCXNubXBfbG9nKExPR19FUlIsICJlcnJvciB3aXRoIHN5c3RlbXN0YXRzX3Y0OiBpbnNlcnQgaW50byBjb250YWluZXIgZmFpbGVkLlxuIik7CisJbmV0c25tcF9hY2Nlc3Nfc3lzdGVtc3RhdHNfZW50cnlfZnJlZShlbnRyeSk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKworI2lmIGRlZmluZWQgKE5FVFNOTVBfRU5BQkxFX0lQVjYpCisKK3N0YXRpYyBpbnQKK19zeXN0ZW1zdGF0c192Nl9sb2FkX3N5c3RlbXN0YXRzKG5ldHNubXBfY29udGFpbmVyKiBjb250YWluZXIsIHVfaW50IGxvYWRfZmxhZ3MpCit7CisgICAgbmV0c25tcF9zeXN0ZW1zdGF0c19lbnRyeSAqZW50cnkgPSBOVUxMOworICAgIHVpbnQ2NF90IGlwc3RhdFtJUDZfTlNUQVRTXTsKKyAgICBzaXplX3QgbGVuID0gc2l6ZW9mKGlwc3RhdCk7CisKKyAgICBpZiAoc3lzY3RsYnluYW1lKCJuZXQuaW5ldDYuaXA2LnN0YXRzIiwgJmlwc3RhdCwgJmxlbiwgTlVMTCwgMCkgPCAwKSB7CisJTkVUU05NUF9MT0dPTkNFKChMT0dfRVJSLCAiQ2Fubm90IHN5c2N0bGJ5bmFtZSBuZXQuaW5ldDYuaXA2LnN0YXRzXG4iKSk7CisJcmV0dXJuIC0yOworICAgIH0KKworICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6c3lzdGVtc3RhdHM6Y29udGFpbmVyOmFyY2giLCAibG9hZCB2NiAoZmxhZ3MgJXgpXG4iLAorICAgICAgICAgICAgICAgIGxvYWRfZmxhZ3MpKTsKKworICAgIG5ldHNubXBfYXNzZXJ0KGNvbnRhaW5lciAhPSBOVUxMKTsgLyogbG9hZCBmdW5jdGlvbiBzaG91bGRhIGNoZWNrZWQgdGhpcyAqLworCisgICAgZW50cnkgPSBuZXRzbm1wX2FjY2Vzc19zeXN0ZW1zdGF0c19lbnRyeV9jcmVhdGUoMiwgMCwKKwkJImlwU3lzdGVtU3RhdHNUYWJsZS5pcHY2Iik7CisgICAgaWYoTlVMTCA9PSBlbnRyeSkgeworCXNubXBfbG9nKExPR19FUlIsICJzeXN0ZW1zdGF0c192Nl9sb2FkX3N5c3RlbXN0YXRzOiBjYW5ub3QgY3JlYXRlIGVudHJ5XG4iKTsKKwluZXRzbm1wX2FjY2Vzc19zeXN0ZW1zdGF0c19jb250YWluZXJfZnJlZShjb250YWluZXIsCisJCQkJCQkgIE5FVFNOTVBfQUNDRVNTX1NZU1RFTVNUQVRTX0ZSRUVfTk9GTEFHUyk7CisJcmV0dXJuIC0zOworICAgIH0KKworICAgIC8qCisgICAgICogT0sgLSB3ZSd2ZSBub3cgZ290IChvciBjcmVhdGVkKSB0aGUgZGF0YSBzdHJ1Y3R1cmUgZm9yCisgICAgICogICAgICB0aGlzIHN5c3RlbXN0YXRzLCBpbmNsdWRpbmcgYW55ICJzdGF0aWMiIGluZm9ybWF0aW9uLgorICAgICAqLworCisgICAgZW50cnktPnN0YXRzLkhDSW5SZWNlaXZlcy5sb3cgPSBpcHN0YXRbSVA2X1NUQVRfVE9UQUxdICYgMHhmZmZmZmZmZjsKKyAgICBlbnRyeS0+c3RhdHMuSENJblJlY2VpdmVzLmhpZ2ggPSBpcHN0YXRbSVA2X1NUQVRfVE9UQUxdID4+IDMyOworICAgIGVudHJ5LT5zdGF0cy5JbkhkckVycm9ycyA9IGlwc3RhdFtJUDZfU1RBVF9CQURPUFRJT05TXQorCQkgICAgKyBpcHN0YXRbSVA2X1NUQVRfVE9PU0hPUlRdICsgaXBzdGF0W0lQNl9TVEFUX1RPT1NNQUxMXQorCQkgICAgKyBpcHN0YXRbSVA2X1NUQVRfVE9PTUFOWUhEUl0gKyBpcHN0YXRbSVA2X1NUQVRfRVhUSERSVE9PTE9OR107CisgICAgZW50cnktPnN0YXRzLkluQWRkckVycm9ycyA9IGlwc3RhdFtJUDZfU1RBVF9DQU5URk9SV0FSRF07CisgICAgZW50cnktPnN0YXRzLkhDT3V0Rm9yd0RhdGFncmFtcy5sb3cgPSBpcHN0YXRbSVA2X1NUQVRfRk9SV0FSRF0gJiAweGZmZmZmZmZmOworICAgIGVudHJ5LT5zdGF0cy5IQ091dEZvcndEYXRhZ3JhbXMuaGlnaCA9IGlwc3RhdFtJUDZfU1RBVF9GT1JXQVJEXSA+PiAzMjsKKyAgICBlbnRyeS0+c3RhdHMuSW5EaXNjYXJkcyA9IGlwc3RhdFtJUDZfU1RBVF9GUkFHRFJPUFBFRF07CisgICAgZW50cnktPnN0YXRzLkhDSW5EZWxpdmVycy5sb3cgPSBpcHN0YXRbSVA2X1NUQVRfREVMSVZFUkVEXSAmIDB4ZmZmZmZmZmY7CisgICAgZW50cnktPnN0YXRzLkhDSW5EZWxpdmVycy5oaWdoID0gaXBzdGF0W0lQNl9TVEFUX0RFTElWRVJFRF0gPj4gMzI7CisgICAgZW50cnktPnN0YXRzLkhDT3V0UmVxdWVzdHMubG93ID0gaXBzdGF0W0lQNl9TVEFUX0xPQ0FMT1VUXSAmIDB4ZmZmZmZmZmY7CisgICAgZW50cnktPnN0YXRzLkhDT3V0UmVxdWVzdHMuaGlnaCA9IGlwc3RhdFtJUDZfU1RBVF9MT0NBTE9VVF0gPj4gMzI7CisgICAgZW50cnktPnN0YXRzLkhDT3V0RGlzY2FyZHMubG93ID0gaXBzdGF0W0lQNl9TVEFUX09EUk9QUEVEXSAmIDB4ZmZmZmZmZmY7CisgICAgZW50cnktPnN0YXRzLkhDT3V0RGlzY2FyZHMuaGlnaCA9IGlwc3RhdFtJUDZfU1RBVF9PRFJPUFBFRF0gPj4gMzI7CisgICAgZW50cnktPnN0YXRzLkhDT3V0Tm9Sb3V0ZXMubG93ID0gaXBzdGF0W0lQNl9TVEFUX05PR0lGXSAmIDB4ZmZmZmZmZmY7CisgICAgZW50cnktPnN0YXRzLkhDT3V0Tm9Sb3V0ZXMuaGlnaCA9IGlwc3RhdFtJUDZfU1RBVF9OT0dJRl0gPj4gMzI7CisgICAgLyogZW50cnktPnN0YXRzLiA9IHNjYW5fdmFsc1sxMl07IC8gKiBSZWFzbVRpbWVvdXQgKi8KKyAgICBlbnRyeS0+c3RhdHMuUmVhc21SZXFkcyA9IGlwc3RhdFtJUDZfU1RBVF9GUkFHTUVOVFNdOworICAgIGVudHJ5LT5zdGF0cy5SZWFzbU9LcyA9IGlwc3RhdFtJUDZfU1RBVF9SRUFTU0VNQkxFRF07CisgICAgZW50cnktPnN0YXRzLlJlYXNtRmFpbHMgPSBpcHN0YXRbSVA2X1NUQVRfRlJBR0RST1BQRURdCisJCSAgICArIGlwc3RhdFtJUDZfU1RBVF9GUkFHVElNRU9VVF07CisgICAgZW50cnktPnN0YXRzLkhDT3V0RnJhZ09Lcy5sb3cgPSBpcHN0YXRbSVA2X1NUQVRfRlJBR01FTlRTXSAmIDB4ZmZmZmZmZmY7CisgICAgZW50cnktPnN0YXRzLkhDT3V0RnJhZ09Lcy5oaWdoID0gaXBzdGF0W0lQNl9TVEFUX0ZSQUdNRU5UU10gPj4gMzI7CisgICAgZW50cnktPnN0YXRzLkhDT3V0RnJhZ0ZhaWxzLmxvdyA9IGlwc3RhdFtJUDZfU1RBVF9DQU5URlJBR10gJiAweGZmZmZmZmZmOworICAgIGVudHJ5LT5zdGF0cy5IQ091dEZyYWdGYWlscy5oaWdoID0gaXBzdGF0W0lQNl9TVEFUX0NBTlRGUkFHXSA+PiAzMjsKKyAgICBlbnRyeS0+c3RhdHMuSENPdXRGcmFnQ3JlYXRlcy5sb3cgPSBpcHN0YXRbSVA2X1NUQVRfT0ZSQUdNRU5UU10gJiAweGZmZmZmZmZmOworICAgIGVudHJ5LT5zdGF0cy5IQ091dEZyYWdDcmVhdGVzLmhpZ2ggPSBpcHN0YXRbSVA2X1NUQVRfT0ZSQUdNRU5UU10gPj4gMzI7CisKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDSU5SRUNFSVZFU10gPSAxOworICAgIGVudHJ5LT5zdGF0cy5jb2x1bW5BdmFpbFtJUFNZU1RFTVNUQVRTVEFCTEVfSU5IRFJFUlJPUlNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0lOQUREUkVSUk9SU10gPSAxOworICAgIGVudHJ5LT5zdGF0cy5jb2x1bW5BdmFpbFtJUFNZU1RFTVNUQVRTVEFCTEVfSENPVVRGT1JXREFUQUdSQU1TXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9JTkRJU0NBUkRTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ0lOREVMSVZFUlNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDT1VUUkVRVUVTVFNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDT1VURElTQ0FSRFNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDT1VUTk9ST1VURVNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX1JFQVNNUkVRRFNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX1JFQVNNT0tTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9SRUFTTUZBSUxTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ09VVEZSQUdPS1NdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDT1VURlJBR0ZBSUxTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ09VVEZSQUdDUkVBVEVTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9ESVNDT05USU5VSVRZVElNRV0gPSAxOworICAgIGVudHJ5LT5zdGF0cy5jb2x1bW5BdmFpbFtJUFNZU1RFTVNUQVRTVEFCTEVfUkVGUkVTSFJBVEVdID0gMTsKKworICAgIC8qCisgICAgICogYWRkIHRvIGNvbnRhaW5lcgorICAgICAqLworICAgIGlmIChDT05UQUlORVJfSU5TRVJUKGNvbnRhaW5lciwgZW50cnkpIDwgMCkKKyAgICB7CisJc25tcF9sb2coTE9HX0VSUiwgInN5c3RlbXN0YXRzX3Y2X2xvYWRfc3lzdGVtc3RhdHM6IGNhbm5vdCBpbnNlcnQgZW50cnlcbiIpOworCURFQlVHTVNHVEwoKCJhY2Nlc3M6c3lzdGVtc3RhdHM6Y29udGFpbmVyIiwiZXJyb3Igd2l0aCBzeXN0ZW1zdGF0c19lbnRyeTogaW5zZXJ0IGludG8gY29udGFpbmVyIGZhaWxlZC5cbiIpKTsKKwluZXRzbm1wX2FjY2Vzc19zeXN0ZW1zdGF0c19lbnRyeV9mcmVlKGVudHJ5KTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworCisvKgorICogbG9hZCBpcElmU3RhdHNUYWJsZSBmb3IgaXB2NiBlbnRyaWVzCisgKi8KK3N0YXRpYyBpbnQgCitfc3lzdGVtc3RhdHNfdjZfbG9hZF9pZnN0YXRzKG5ldHNubXBfY29udGFpbmVyKiBjb250YWluZXIsIHVfaW50IGxvYWRfZmxhZ3MpCit7CisgICAgc3RydWN0IGlmX25hbWVpbmRleCAqaWZzID0gaWZfbmFtZWluZGV4KCk7CisgICAgaW50IGl4OworICAgIGludCByYyA9IDA7CisKKyAgICBmb3IgKGl4ID0gMDsgaWZzW2l4XS5pZl9pbmRleDsgaXgrKykgeworCXN0cnVjdCBpbjZfaWZzdGF0ICppZnM2OworCXN0cnVjdCBpbjZfaWZyZXEgaWZyOworCWludCBzOworCisJbWVtc2V0KCZpZnIsIDAsIHNpemVvZihpZnIpKTsKKwlzdHJuY3B5KGlmci5pZnJfbmFtZSwgaWZzW2l4XS5pZl9uYW1lLCBzaXplb2YoaWZyLmlmcl9uYW1lKS0xKTsKKwlpZiAoKHMgPSBzb2NrZXQoQUZfSU5FVDYsIFNPQ0tfREdSQU0sIDApKSA8IDApIHsKKwkgICAgcmMgPSAtMTsKKwkgICAgYnJlYWs7CisJfQorCWlmIChpb2N0bChzLCBTSU9DR0lGU1RBVF9JTjYsIChjYWRkcl90KSZpZnIpIDwgMCkgeworCSAgICByYyA9IC0yOworCSAgICBjbG9zZShzKTsKKwkgICAgYnJlYWs7CisJfQorCWNsb3NlKHMpOworCWlmczYgPSAmaWZyLmlmcl9pZnJ1LmlmcnVfc3RhdDsKKyAgICB9CisgICAgaWZfZnJlZW5hbWVpbmRleChpZnMpOworICAgIHJldHVybiByYzsKK30KKyNlbmRpZgorCisjZWxzZQorCitzdGF0aWMgaW50Citfc3lzdGVtc3RhdHNfdjQobmV0c25tcF9jb250YWluZXIqIGNvbnRhaW5lciwgdV9pbnQgbG9hZF9mbGFncykKK3sKKyAgICBuZXRzbm1wX3N5c3RlbXN0YXRzX2VudHJ5ICplbnRyeSA9IE5VTEw7CisjaWZkZWYgX19EcmFnb25GbHlfXworICAgIHNpemVfdCBsZW4gPSBuY3B1cypzaXplb2Yoc3RydWN0IGlwX3N0YXRzKTsKKyAgICBzdHJ1Y3QgaXBfc3RhdHMgKmlwc3RhdCA9IG1hbGxvYyhsZW4pOworICAgIGludCBjOworI2Vsc2UKKyAgICBzaXplX3QgbGVuID0gc2l6ZW9mKHN0cnVjdCBpcHN0YXQpOworICAgIHN0cnVjdCBpcHN0YXQgKmlwc3RhdCA9IG1hbGxvYyhsZW4pOworI2VuZGlmCisgICAgaW50IG1pYltdID0geyBDVExfTkVULCBQRl9JTkVULCBJUFBST1RPX0lQLCBJUENUTF9TVEFUUyB9OworCisgICAgaWYgKHN5c2N0bChtaWIsIHNpemVvZihtaWIpIC8gc2l6ZW9mKG1pYlswXSksIGlwc3RhdCwgJmxlbiwgTlVMTCwgMCkgPT0gLTEpIHsKKwlzbm1wX2xvZ19wZXJyb3IoIkNhbm5vdCBzeXNjdGxieW5hbWUgbmV0LmluZXQuaXAuc3RhdHMiKTsKKwlmcmVlKGlwc3RhdCk7CisJcmV0dXJuIC0yOworICAgIH0KKworICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6c3lzdGVtc3RhdHM6Y29udGFpbmVyOmFyY2giLCAibG9hZCB2NCAoZmxhZ3MgJXgpXG4iLAorICAgICAgICAgICAgICAgIGxvYWRfZmxhZ3MpKTsKKworICAgIG5ldHNubXBfYXNzZXJ0KGNvbnRhaW5lciAhPSBOVUxMKTsgLyogbG9hZCBmdW5jdGlvbiBzaG91bGRhIGNoZWNrZWQgdGhpcyAqLworCisgICAgaWYgKGxvYWRfZmxhZ3MgJiBORVRTTk1QX0FDQ0VTU19TWVNURU1TVEFUU19MT0FEX0lGVEFCTEUpIHsKKyAgICAgICAgLyogd2UgZG8gbm90IHN1cHBvcnQgaXBJZlN0YXRzVGFibGUgZm9yIGlwdjQgKi8KKwlmcmVlKGlwc3RhdCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGVudHJ5ID0gbmV0c25tcF9hY2Nlc3Nfc3lzdGVtc3RhdHNfZW50cnlfY3JlYXRlKDEsIDAsCisJCSJpcFN5c3RlbVN0YXRzVGFibGUuaXB2NCIpOworICAgIGlmKE5VTEwgPT0gZW50cnkpIHsKKwluZXRzbm1wX2FjY2Vzc19zeXN0ZW1zdGF0c19jb250YWluZXJfZnJlZShjb250YWluZXIsCisJCQkJCQkgIE5FVFNOTVBfQUNDRVNTX1NZU1RFTVNUQVRTX0ZSRUVfTk9GTEFHUyk7CisJZnJlZShpcHN0YXQpOworCXJldHVybiAtMzsKKyAgICB9CisKKyAgICAvKgorICAgICAqIE9LIC0gd2UndmUgbm93IGdvdCAob3IgY3JlYXRlZCkgdGhlIGRhdGEgc3RydWN0dXJlIGZvcgorICAgICAqICAgICAgdGhpcyBzeXN0ZW1zdGF0cywgaW5jbHVkaW5nIGFueSAic3RhdGljIiBpbmZvcm1hdGlvbi4KKyAgICAgKiBOb3cgcGFyc2UgdGhlIHJlc3Qgb2YgdGhlIGxpbmUgKGkuZS4gc3RhcnRpbmcgZnJvbSAnc3RhdHMnKQorICAgICAqICAgICAgdG8gZXh0cmFjdCB0aGUgcmVsZXZhbnQgc3RhdGlzdGljcywgYW5kIHBvcHVsYXRlCisgICAgICogICAgICBkYXRhIHN0cnVjdHVyZSBhY2NvcmRpbmdseS4KKyAgICAgKi8KKworI2lmZGVmIGRyYWdvbmZseQorICAgIGZvciAoYyA9IDE7IGMgPCBuY3B1czsgYysrKSB7CisJaW50IGksIG4gPSBzaXplb2Yoc3RydWN0IGlwX3N0YXRzKS9zaXplb2YodV9sb25nKTsKKwl1X2xvbmcgKnVwID0gKHVfbG9uZyAqKWlwc3RhdDsKKwl1X2xvbmcgKmNwID0gKHVfbG9uZyAqKShpcHN0YXQrYyk7CisJZm9yIChpID0gMDsgaSA8IG47IGkrKykgeworCSAgICAqdXAgKz0gKmNwOworCSAgICB1cCsrOworCSAgICBjcCsrOworCX0KKyAgICB9CisjZW5kaWYKKyAgICBlbnRyeS0+c3RhdHMuSENJblJlY2VpdmVzLmxvdyA9IGlwc3RhdC0+aXBzX3RvdGFsICYgMHhmZmZmZmZmZjsKKyNpZm5kZWYgZGFyd2luCisgICAgZW50cnktPnN0YXRzLkhDSW5SZWNlaXZlcy5oaWdoID0gaXBzdGF0LT5pcHNfdG90YWwgPj4gMzI7CisjZW5kaWYKKyAgICBlbnRyeS0+c3RhdHMuSW5IZHJFcnJvcnMgPSBpcHN0YXQtPmlwc19iYWRzdW0gKyBpcHN0YXQtPmlwc190b29zaG9ydAorCQkgICAgICAgICAgICArIGlwc3RhdC0+aXBzX3Rvb3NtYWxsICsgaXBzdGF0LT5pcHNfYmFkaGxlbgorCQkJICAgICsgaXBzdGF0LT5pcHNfYmFkbGVuOworICAgIGVudHJ5LT5zdGF0cy5JbkFkZHJFcnJvcnMgPSBpcHN0YXQtPmlwc19jYW50Zm9yd2FyZDsKKyAgICBlbnRyeS0+c3RhdHMuSENPdXRGb3J3RGF0YWdyYW1zLmxvdyA9IGlwc3RhdC0+aXBzX2ZvcndhcmQgJiAweGZmZmZmZmZmOworI2lmbmRlZiBkYXJ3aW4KKyAgICBlbnRyeS0+c3RhdHMuSENPdXRGb3J3RGF0YWdyYW1zLmhpZ2ggPSBpcHN0YXQtPmlwc19mb3J3YXJkID4+IDMyOworI2VuZGlmCisgICAgZW50cnktPnN0YXRzLkluVW5rbm93blByb3RvcyA9IGlwc3RhdC0+aXBzX25vcHJvdG87CisgICAgZW50cnktPnN0YXRzLkluRGlzY2FyZHMgPSBpcHN0YXQtPmlwc19mcmFnZHJvcHBlZDsKKyAgICBlbnRyeS0+c3RhdHMuSENJbkRlbGl2ZXJzLmxvdyA9IGlwc3RhdC0+aXBzX2RlbGl2ZXJlZCAmIDB4ZmZmZmZmZmY7CisjaWZuZGVmIGRhcndpbgorICAgIGVudHJ5LT5zdGF0cy5IQ0luRGVsaXZlcnMuaGlnaCA9IGlwc3RhdC0+aXBzX2RlbGl2ZXJlZCA+PiAzMjsKKyNlbmRpZgorICAgIGVudHJ5LT5zdGF0cy5IQ091dFJlcXVlc3RzLmxvdyA9IGlwc3RhdC0+aXBzX2xvY2Fsb3V0ICYgMHhmZmZmZmZmZjsKKyNpZm5kZWYgZGFyd2luCisgICAgZW50cnktPnN0YXRzLkhDT3V0UmVxdWVzdHMuaGlnaCA9IGlwc3RhdC0+aXBzX2xvY2Fsb3V0ID4+IDMyOworI2VuZGlmCisgICAgZW50cnktPnN0YXRzLkhDT3V0RGlzY2FyZHMubG93ID0gaXBzdGF0LT5pcHNfb2Ryb3BwZWQgJiAweGZmZmZmZmZmOworI2lmbmRlZiBkYXJ3aW4KKyAgICBlbnRyeS0+c3RhdHMuSENPdXREaXNjYXJkcy5oaWdoID0gaXBzdGF0LT5pcHNfb2Ryb3BwZWQgPj4gMzI7CisjZW5kaWYKKyAgICBlbnRyeS0+c3RhdHMuSENPdXROb1JvdXRlcy5sb3cgPSBpcHN0YXQtPmlwc19ub2dpZiAmIDB4ZmZmZmZmZmY7CisjaWZuZGVmIGRhcndpbgorICAgIGVudHJ5LT5zdGF0cy5IQ091dE5vUm91dGVzLmhpZ2ggPSBpcHN0YXQtPmlwc19ub2dpZiA+PiAzMjsKKyNlbmRpZgorICAgIC8qIGVudHJ5LT5zdGF0cy4gPSBzY2FuX3ZhbHNbMTJdOyAvICogUmVhc21UaW1lb3V0ICovCisgICAgZW50cnktPnN0YXRzLlJlYXNtUmVxZHMgPSBpcHN0YXQtPmlwc19mcmFnbWVudHM7CisgICAgZW50cnktPnN0YXRzLlJlYXNtT0tzID0gaXBzdGF0LT5pcHNfcmVhc3NlbWJsZWQ7CisgICAgZW50cnktPnN0YXRzLlJlYXNtRmFpbHMgPSBpcHN0YXQtPmlwc19mcmFnZHJvcHBlZCArIGlwc3RhdC0+aXBzX2ZyYWd0aW1lb3V0OworICAgIGVudHJ5LT5zdGF0cy5IQ091dEZyYWdPS3MubG93ID0gaXBzdGF0LT5pcHNfZnJhZ21lbnRzICYgMHhmZmZmZmZmZjsKKyNpZm5kZWYgZGFyd2luCisgICAgZW50cnktPnN0YXRzLkhDT3V0RnJhZ09Lcy5oaWdoID0gaXBzdGF0LT5pcHNfZnJhZ21lbnRzID4+IDMyOworI2VuZGlmCisgICAgZW50cnktPnN0YXRzLkhDT3V0RnJhZ0ZhaWxzLmxvdyA9IGlwc3RhdC0+aXBzX2NhbnRmcmFnICYgMHhmZmZmZmZmZjsKKyNpZm5kZWYgZGFyd2luCisgICAgZW50cnktPnN0YXRzLkhDT3V0RnJhZ0ZhaWxzLmhpZ2ggPSBpcHN0YXQtPmlwc19jYW50ZnJhZyA+PiAzMjsKKyNlbmRpZgorICAgIGVudHJ5LT5zdGF0cy5IQ091dEZyYWdDcmVhdGVzLmxvdyA9IGlwc3RhdC0+aXBzX29mcmFnbWVudHMgJiAweGZmZmZmZmZmOworI2lmbmRlZiBkYXJ3aW4KKyAgICBlbnRyeS0+c3RhdHMuSENPdXRGcmFnQ3JlYXRlcy5oaWdoID0gaXBzdGF0LT5pcHNfb2ZyYWdtZW50cyA+PiAzMjsKKyNlbmRpZgorCisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ0lOUkVDRUlWRVNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0lOSERSRVJST1JTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9JTkFERFJFUlJPUlNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDT1VURk9SV0RBVEFHUkFNU10gPSAxOworICAgIGVudHJ5LT5zdGF0cy5jb2x1bW5BdmFpbFtJUFNZU1RFTVNUQVRTVEFCTEVfSU5VTktOT1dOUFJPVE9TXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9JTkRJU0NBUkRTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ0lOREVMSVZFUlNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDT1VUUkVRVUVTVFNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDT1VURElTQ0FSRFNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDT1VUTk9ST1VURVNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX1JFQVNNUkVRRFNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX1JFQVNNT0tTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9SRUFTTUZBSUxTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ09VVEZSQUdPS1NdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDT1VURlJBR0ZBSUxTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ09VVEZSQUdDUkVBVEVTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9ESVNDT05USU5VSVRZVElNRV0gPSAxOworICAgIGVudHJ5LT5zdGF0cy5jb2x1bW5BdmFpbFtJUFNZU1RFTVNUQVRTVEFCTEVfUkVGUkVTSFJBVEVdID0gMTsKKworICAgIC8qCisgICAgICogYWRkIHRvIGNvbnRhaW5lcgorICAgICAqLworICAgIGlmIChDT05UQUlORVJfSU5TRVJUKGNvbnRhaW5lciwgZW50cnkpIDwgMCkKKyAgICB7CisJREVCVUdNU0dUTCgoImFjY2VzczpzeXN0ZW1zdGF0czpjb250YWluZXIiLCJlcnJvciB3aXRoIHN5c3RlbXN0YXRzX2VudHJ5OiBpbnNlcnQgaW50byBjb250YWluZXIgZmFpbGVkLlxuIikpOworCW5ldHNubXBfYWNjZXNzX3N5c3RlbXN0YXRzX2VudHJ5X2ZyZWUoZW50cnkpOworICAgIH0KKworICAgIGZyZWUoaXBzdGF0KTsKKyAgICByZXR1cm4gMDsKK30KKworCisjaWYgZGVmaW5lZCAoTkVUU05NUF9FTkFCTEVfSVBWNikKKworLyoKKyAqIGxvYWQgaXBTeXN0ZW1TdGF0c1RhYmxlIGZvciBpcHY2IGVudHJpZXMKKyAqLworc3RhdGljIGludCAKK19zeXN0ZW1zdGF0c192Nl9sb2FkX3N5c3RlbXN0YXRzKG5ldHNubXBfY29udGFpbmVyKiBjb250YWluZXIsIHVfaW50IGxvYWRfZmxhZ3MpCit7CisgICAgc3RydWN0IGlwNnN0YXQgaXA2c3RhdDsKKyAgICBpbnQgbWliW10gPSB7IENUTF9ORVQsIEFGX0lORVQ2LCBJUFBST1RPX0lQVjYsIElQVjZDVExfU1RBVFMgfTsKKyAgICBzaXplX3QgbGVuID0gc2l6ZW9mKGlwNnN0YXQpOworICAgIG5ldHNubXBfc3lzdGVtc3RhdHNfZW50cnkgKmVudHJ5ID0gTlVMTDsKKworICAgIGlmIChzeXNjdGwobWliLCBzaXplb2YobWliKSAvIHNpemVvZihtaWJbMF0pLCAmaXA2c3RhdCwgJmxlbiwgTlVMTCwgMCkgPT0gLTEpIHsKKyAgCU5FVFNOTVBfTE9HT05DRSgoTE9HX0VSUiwgIkNhbm5vdCBzeXNjdGwoQ1RMX05FVCwgQUZfSU5FVDYsIElQUFJPVE9fSVBWNiwgSVBWNkNUTF9TVEFUUylcbiIpKTsKKwlyZXR1cm4gLTE7CisgICAgfQorICAgIAorICAgIGVudHJ5ID0gbmV0c25tcF9hY2Nlc3Nfc3lzdGVtc3RhdHNfZW50cnlfY3JlYXRlKDIsIDAsCisgICAgICAgICAgICAiaXBTeXN0ZW1TdGF0c1RhYmxlLmlwdjYiKTsKKyAgICBpZihOVUxMID09IGVudHJ5KQorICAgICAgICByZXR1cm4gLTM7CisgICAgCisgICAgZW50cnktPnN0YXRzLkhDSW5SZWNlaXZlcy5sb3cgPSBpcDZzdGF0LmlwNnNfdG90YWwgJiAweGZmZmZmZmZmOworICAgIGVudHJ5LT5zdGF0cy5IQ0luUmVjZWl2ZXMuaGlnaCA9IGlwNnN0YXQuaXA2c190b3RhbCA+PiAzMjsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDSU5SRUNFSVZFU10gPSAxOworICAgIC8qCisgICAgZW50cnktPnN0YXRzLkhDSW5PY3RldHMubG93ID0gc2Nhbl92YWwgJiAweGZmZmZmZmZmOworICAgIGVudHJ5LT5zdGF0cy5IQ0luT2N0ZXRzLmhpZ2ggPSBzY2FuX3ZhbCAgPj4gMzI7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ0lOT0NURVRTXSA9IDE7CisgICAgKi8KKyAgICBlbnRyeS0+c3RhdHMuSW5IZHJFcnJvcnMgPSBpcDZzdGF0LmlwNnNfYmFkb3B0aW9ucyArIGlwNnN0YXQuaXA2c190b29zaG9ydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGlwNnN0YXQuaXA2c190b29zbWFsbCArIGlwNnN0YXQuaXA2c19iYWR2ZXJzCisJCQkgICAgICsgaXA2c3RhdC5pcDZzX3Rvb21hbnloZHI7CisjaWYgSEFWRV9TVFJVQ1RfSVA2U1RBVF9JUDZTX0VYVEhEUlRPT0xPTkcKKyAgICBlbnRyeS0+c3RhdHMuSW5IZHJFcnJvcnMgKz0gaXA2c3RhdC5pcDZzX2V4dGhkcnRvb2xvbmc7CisjZW5kaWYKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0lOSERSRVJST1JTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLkhDSW5Ob1JvdXRlcy5sb3cgPSBpcDZzdGF0LmlwNnNfY2FudGZvcndhcmQgJiAweGZmZmZmZmZmOworICAgIGVudHJ5LT5zdGF0cy5IQ0luTm9Sb3V0ZXMuaGlnaCA9IGlwNnN0YXQuaXA2c19jYW50Zm9yd2FyZCA+PiAzMjsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDSU5OT1JPVVRFU10gPSAxOworICAgIC8qCisgICAgZW50cnktPnN0YXRzLmluQWRkckVycm9ycyA9IDA7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9JTkFERFJFUlJPUlNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuSW5Vbmtub3duUHJvdG9zID0gc2Nhbl92YWw7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9JTlVOS05PV05QUk9UT1NdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuSW5UcnVuY2F0ZWRQa3RzID0gc2Nhbl92YWwgICYgMHhmZmZmZmZmZjsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0lOVFJVTkNBVEVEUEtUU10gPSAxOworICAgICovCisgICAgZW50cnktPnN0YXRzLkhDSW5Gb3J3RGF0YWdyYW1zLmxvdyA9IGlwNnN0YXQuaXA2c19mb3J3YXJkICYgMHhmZmZmZmZmZjsKKyAgICBlbnRyeS0+c3RhdHMuSENJbkZvcndEYXRhZ3JhbXMuaGlnaCA9IGlwNnN0YXQuaXA2c19mb3J3YXJkID4+IDMyOworICAgIGVudHJ5LT5zdGF0cy5jb2x1bW5BdmFpbFtJUFNZU1RFTVNUQVRTVEFCTEVfSENJTkZPUldEQVRBR1JBTVNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuUmVhc21SZXFkcyA9IGlwNnN0YXQuaXA2c19mcmFnbWVudHM7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9SRUFTTVJFUURTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLlJlYXNtT0tzID0gaXA2c3RhdC5pcDZzX3JlYXNzZW1ibGVkOworICAgIGVudHJ5LT5zdGF0cy5jb2x1bW5BdmFpbFtJUFNZU1RFTVNUQVRTVEFCTEVfUkVBU01PS1NdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuUmVhc21GYWlscyA9IGlwNnN0YXQuaXA2c19mcmFnZHJvcHBlZCArIGlwNnN0YXQuaXA2c19mcmFndGltZW91dDsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX1JFQVNNRkFJTFNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuSW5EaXNjYXJkcyA9IGlwNnN0YXQuaXA2c19mcmFnZHJvcHBlZDsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0lORElTQ0FSRFNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuSENJbkRlbGl2ZXJzLmxvdyA9IGlwNnN0YXQuaXA2c19kZWxpdmVyZWQgICYgMHhmZmZmZmZmZjsKKyAgICBlbnRyeS0+c3RhdHMuSENJbkRlbGl2ZXJzLmhpZ2ggPSBpcDZzdGF0LmlwNnNfZGVsaXZlcmVkID4+IDMyOworICAgIGVudHJ5LT5zdGF0cy5jb2x1bW5BdmFpbFtJUFNZU1RFTVNUQVRTVEFCTEVfSENJTkRFTElWRVJTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLkhDT3V0UmVxdWVzdHMubG93ID0gaXA2c3RhdC5pcDZzX2xvY2Fsb3V0ICYgMHhmZmZmZmZmZjsKKyAgICBlbnRyeS0+c3RhdHMuSENPdXRSZXF1ZXN0cy5oaWdoID0gaXA2c3RhdC5pcDZzX2xvY2Fsb3V0ID4+IDMyOworICAgIGVudHJ5LT5zdGF0cy5jb2x1bW5BdmFpbFtJUFNZU1RFTVNUQVRTVEFCTEVfSENPVVRSRVFVRVNUU10gPSAxOworICAgIGVudHJ5LT5zdGF0cy5IQ091dE5vUm91dGVzLmxvdyA9IGlwNnN0YXQuaXA2c19ub3JvdXRlICYgMHhmZmZmZmZmZjsKKyAgICBlbnRyeS0+c3RhdHMuSENPdXROb1JvdXRlcy5oaWdoID0gaXA2c3RhdC5pcDZzX25vcm91dGUgPj4gMzI7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ09VVE5PUk9VVEVTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLkhDT3V0Rm9yd0RhdGFncmFtcy5sb3cgPSBpcDZzdGF0LmlwNnNfZm9yd2FyZCAmIDB4ZmZmZmZmZmY7CisgICAgZW50cnktPnN0YXRzLkhDT3V0Rm9yd0RhdGFncmFtcy5oaWdoID0gaXA2c3RhdC5pcDZzX2ZvcndhcmQgPj4gMzI7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ09VVEZPUldEQVRBR1JBTVNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuSENPdXREaXNjYXJkcy5sb3cgPSBpcDZzdGF0LmlwNnNfb2Ryb3BwZWQgJiAweGZmZmZmZmZmOworICAgIGVudHJ5LT5zdGF0cy5IQ091dERpc2NhcmRzLmhpZ2ggPSBpcDZzdGF0LmlwNnNfb2Ryb3BwZWQgPj4gMzI7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ09VVERJU0NBUkRTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLkhDT3V0RnJhZ1JlcWRzLmxvdyA9IChpcDZzdGF0LmlwNnNfZnJhZ21lbnRlZCArIGlwNnN0YXQuaXA2c19jYW50ZnJhZykgJiAweGZmZmZmZmZmOworICAgIGVudHJ5LT5zdGF0cy5IQ091dEZyYWdSZXFkcy5oaWdoID0gKGlwNnN0YXQuaXA2c19mcmFnbWVudGVkICsgaXA2c3RhdC5pcDZzX2NhbnRmcmFnKSA+PiAzMjsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDT1VURlJBR1JFUURTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLkhDT3V0RnJhZ09Lcy5sb3cgPSBpcDZzdGF0LmlwNnNfZnJhZ21lbnRlZCAmIDB4ZmZmZmZmZmY7CisgICAgZW50cnktPnN0YXRzLkhDT3V0RnJhZ09Lcy5oaWdoID0gaXA2c3RhdC5pcDZzX2ZyYWdtZW50ZWQgPj4gMzI7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ09VVEZSQUdPS1NdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuSENPdXRGcmFnRmFpbHMubG93ID0gaXA2c3RhdC5pcDZzX2NhbnRmcmFnICYgMHhmZmZmZmZmZjsKKyAgICBlbnRyeS0+c3RhdHMuSENPdXRGcmFnRmFpbHMuaGlnaCA9IGlwNnN0YXQuaXA2c19jYW50ZnJhZyA+PiAzMjsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDT1VURlJBR0ZBSUxTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLkhDT3V0RnJhZ0NyZWF0ZXMubG93ID0gaXA2c3RhdC5pcDZzX29mcmFnbWVudHMgJiAweGZmZmZmZmZmOworICAgIGVudHJ5LT5zdGF0cy5IQ091dEZyYWdDcmVhdGVzLmhpZ2ggPSBpcDZzdGF0LmlwNnNfb2ZyYWdtZW50cyA+PiAzMjsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDT1VURlJBR0NSRUFURVNdID0gMTsKKyAgICAvKgorICAgIGVudHJ5LT5zdGF0cy5IQ091dFRyYW5zbWl0cy5sb3cgPSBzY2FuX3ZhbCAmIDB4ZmZmZmZmZmY7CisgICAgZW50cnktPnN0YXRzLkhDT3V0VHJhbnNtaXRzLmhpZ2ggPSBzY2FuX3ZhbCA+PiAzMjsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDT1VUVFJBTlNNSVRTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLkhDT3V0TWNhc3RPY3RldHMubG93ID0gc2Nhbl92YWwgJiAweGZmZmZmZmZmOworICAgIGVudHJ5LT5zdGF0cy5IQ091dE1jYXN0T2N0ZXRzLmhpZ2ggPSBzY2FuX3ZhbCA+PiAzMjsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDT1VUTUNBU1RPQ1RFVFNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuSENJbk1jYXN0UGt0cy5sb3cgPSBzY2FuX3ZhbCAgJiAweGZmZmZmZmZmOworICAgIGVudHJ5LT5zdGF0cy5IQ0luTWNhc3RQa3RzLmhpZ2ggPSBzY2FuX3ZhbCA+PiAzMjsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDSU5NQ0FTVFBLVFNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuSENJbk1jYXN0T2N0ZXRzLmxvdyA9IHNjYW5fdmFsICAmIDB4ZmZmZmZmZmY7CisgICAgZW50cnktPnN0YXRzLkhDSW5NY2FzdE9jdGV0cy5oaWdoID0gc2Nhbl92YWwgPj4gMzI7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ0lOTUNBU1RPQ1RFVFNdID0gMTsKKyAgICBlbnRyeS0+c3RhdHMuSENPdXRNY2FzdFBrdHMubG93ID0gc2Nhbl92YWwgJiAweGZmZmZmZmZmOworICAgIGVudHJ5LT5zdGF0cy5IQ091dE1jYXN0UGt0cy5oaWdoID0gc2Nhbl92YWwgPj4gMzI7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ09VVE1DQVNUUEtUU10gPSAxOworICAgIGVudHJ5LT5zdGF0cy5IQ091dE9jdGV0cy5sb3cgPSBzY2FuX3ZhbCAmIDB4ZmZmZmZmZmY7CisgICAgZW50cnktPnN0YXRzLkhDT3V0T2N0ZXRzLmhpZ2ggPSBzY2FuX3ZhbCA+PiAzMjsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDT1VUT0NURVRTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLkhDSW5CY2FzdFBrdHMubG93ID0gc2Nhbl92YWwgICYgMHhmZmZmZmZmZjsKKyAgICBlbnRyeS0+c3RhdHMuSENJbkJjYXN0UGt0cy5oaWdoID0gc2Nhbl92YWwgPj4gMzI7CisgICAgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ0lOQkNBU1RQS1RTXSA9IDE7CisgICAgZW50cnktPnN0YXRzLkhDT3V0QmNhc3RQa3RzLmxvdyA9IHNjYW5fdmFsICAmIDB4ZmZmZmZmZmY7CisgICAgZW50cnktPnN0YXRzLkhDT3V0QmNhc3RQa3RzLmhpZ2ggPSBzY2FuX3ZhbCA+PiAzMjsKKyAgICBlbnRyeS0+c3RhdHMuY29sdW1uQXZhaWxbSVBTWVNURU1TVEFUU1RBQkxFX0hDT1VUQkNBU1RQS1RTXSA9IDE7CisgICAgKi8KKworICAgIC8qCisgICAgICogYWRkIHRvIGNvbnRhaW5lcgorICAgICAqLworICAgIGlmIChDT05UQUlORVJfSU5TRVJUKGNvbnRhaW5lciwgZW50cnkpIDwgMCkgeworCURFQlVHTVNHVEwoKCJhY2Nlc3M6c3lzdGVtc3RhdHM6Y29udGFpbmVyIiwiZXJyb3Igd2l0aCBzeXN0ZW1zdGF0c19lbnRyeTogaW5zZXJ0IGludG8gY29udGFpbmVyIGZhaWxlZC5cbiIpKTsKKwluZXRzbm1wX2FjY2Vzc19zeXN0ZW1zdGF0c19lbnRyeV9mcmVlKGVudHJ5KTsKKyAgICB9CisKKyAgICByZXR1cm4gMTsKK30KKworI2RlZmluZSBERVZfU05NUDZfRElSTkFNRSAgICIvcHJvYy9uZXQvZGV2X3NubXA2IgorI2RlZmluZSBJRklOREVYX0xJTkUgICAgICAgICJpZkluZGV4IgorI2RlZmluZSBERVZfRklMRU5BTUVfTEVOICAgIDY0CisKKy8qCisgKiBsb2FkIGlwSWZTdGF0c1RhYmxlIGZvciBpcHY2IGVudHJpZXMKKyAqLworc3RhdGljIGludCAKK19zeXN0ZW1zdGF0c192Nl9sb2FkX2lmc3RhdHMobmV0c25tcF9jb250YWluZXIqIGNvbnRhaW5lciwgdV9pbnQgbG9hZF9mbGFncykKK3sKKyAgICBESVIgICAgICAgICAgICAqZGV2X3NubXA2X2RpcjsKKyAgICBzdHJ1Y3QgZGlyZW50ICAqZGV2X3NubXA2X2VudHJ5OworICAgIGNoYXIgICAgICAgICAgIGRldl9maWxlbmFtZVtERVZfRklMRU5BTUVfTEVOXTsKKyAgICBGSUxFICAgICAgICAgICAqZGV2aW47CisgICAgY2hhciAgICAgICAgICAgbGluZVsxMDI0XTsKKyAgICBjaGFyICAgICAgICAgICAqc3RhcnQgPSBsaW5lOworICAgIGludCAgICAgICAgICAgIHJjOworICAgIGNoYXIgICAgICAgICAgICpzY2FuX3N0cjsKKyAgICB1aW50bWF4X3QgICAgICAgc2Nhbl92YWw7CisgICAgbmV0c25tcF9zeXN0ZW1zdGF0c19lbnRyeSAqZW50cnkgPSBOVUxMOworICAgICAgICAgICAgCisgICAgLyoKKyAgICAgKiB0cnkgdG8gb3BlbiAvcHJvYy9uZXQvZGV2X3NubXA2IGRpcmVjdG9yeS4gSWYgd2UgY2FuJ3QsIHRoYXQnIG9rIC0KKyAgICAgKiBtYXliZSBpdCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBjdXJyZW50IHJ1bm5pbmcga2VybmVsLgorICAgICAqLworICAgIGlmICgoZGV2X3NubXA2X2RpciA9IG9wZW5kaXIoREVWX1NOTVA2X0RJUk5BTUUpKSA9PSBOVUxMKSB7CisgICAgICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6aWZzdGF0cyIsCisgICAgICAgICJGYWlsZWQgdG8gbG9hZCBJUHY2IElmU3RhdHMgVGFibGUgKGxpbnV4KVxuIikpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBSZWFkIGVhY2ggcGVyIGludGVyZmFjZSBzdGF0aXN0aWNzIHByb2MgZmlsZQorICAgICAqLworICAgIHJjID0gMDsKKyAgICB3aGlsZSAoKGRldl9zbm1wNl9lbnRyeSA9IHJlYWRkaXIoZGV2X3NubXA2X2RpcikpICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKGRldl9zbm1wNl9lbnRyeS0+ZF9uYW1lWzBdID09ICcuJykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgIAorICAgICAgICBpZiAoc25wcmludGYoZGV2X2ZpbGVuYW1lLCBERVZfRklMRU5BTUVfTEVOLCAiJXMvJXMiLCBERVZfU05NUDZfRElSTkFNRSwKKyAgICAgICAgICAgICAgICBkZXZfc25tcDZfZW50cnktPmRfbmFtZSkgPiBERVZfRklMRU5BTUVfTEVOKSB7CisgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiSW50ZXJmYWNlIG5hbWUgJXMgaXMgdG9vIGxvbmdcbiIsCisgICAgICAgICAgICAgICAgICAgIGRldl9zbm1wNl9lbnRyeS0+ZF9uYW1lKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGlmIChOVUxMID09IChkZXZpbiA9IGZvcGVuKGRldl9maWxlbmFtZSwgInIiKSkpIHsKKyAgICAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJGYWlsZWQgdG8gb3BlbiAlc1xuIiwgZGV2X2ZpbGVuYW1lKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIElmIGEgc3RhdCBmaWxlIG5hbWUgaXMgbWFkZSBvZiBkaWdpdHMsIHRoZSBuYW1lIGlzIGludGVyZmFjZSBpbmRleC4KKyAgICAgICAgICogSWYgaXQgaXMgYW4gaW50ZXJmYWNlIG5hbWUsIHRoZSBmaWxlIGluY2x1ZGVzIGEgbGluZSBsYWJlbGVkIGlmSW5kZXguCisgICAgICAgICAqLworICAgICAgICBpZiAoaXNkaWdpdChkZXZfc25tcDZfZW50cnktPmRfbmFtZVswXSkpIHsKKyAgICAgICAgICAgIHNjYW5fdmFsID0gc3RydG91bGwoZGV2X3NubXA2X2VudHJ5LT5kX25hbWUsIE5VTEwsIDApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKE5VTEwgPT0gKHN0YXJ0ID0gZmdldHMobGluZSwgc2l6ZW9mKGxpbmUpLCBkZXZpbikpKSB7CisgICAgICAgICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgIiVzIGRvZXNuJ3QgaW5jbHVkZSBhbnkgbGluZXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBkZXZfZmlsZW5hbWUpOworICAgICAgICAgICAgICAgIGZjbG9zZShkZXZpbik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZiAoMCAhPSBzdHJuY21wKHN0YXJ0LCBJRklOREVYX0xJTkUsIDcpKSB7CisgICAgICAgICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgIiVzIGRvZXNuJ3QgaW5jbHVkZSBpZkluZGV4IGxpbmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgZGV2X2ZpbGVuYW1lKTsKKyAgICAgICAgICAgICAgICBmY2xvc2UoZGV2aW4pOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzY2FuX3N0ciA9IHN0cnJjaHIobGluZSwgJyAnKTsKKyAgICAgICAgICAgIGlmIChOVUxMID09IHNjYW5fc3RyKSB7CisgICAgICAgICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgIiVzIGlzIHdyb25nIGZvcm1hdCIsIGRldl9maWxlbmFtZSk7CisgICAgICAgICAgICAgICAgZmNsb3NlKGRldmluKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNjYW5fdmFsID0gc3RydG91bGwoc2Nhbl9zdHIsIE5VTEwsIDApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBlbnRyeSA9IG5ldHNubXBfYWNjZXNzX3N5c3RlbXN0YXRzX2VudHJ5X2NyZWF0ZSgyLCBzY2FuX3ZhbCwKKyAgICAgICAgICAgICAgICAiaXBJZlN0YXRzVGFibGUuaXB2NiIpOworICAgICAgICBpZihOVUxMID09IGVudHJ5KSB7CisgICAgICAgICAgICBmY2xvc2UoZGV2aW4pOworICAgICAgICAgICAgY2xvc2VkaXIoZGV2X3NubXA2X2Rpcik7CisgICAgICAgICAgICByZXR1cm4gLTM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qIF9zeXN0ZW1zdGF0c192Nl9sb2FkX2ZpbGUoZW50cnksIGRldmluKTsgKi8KKyAgICAgICAgQ09OVEFJTkVSX0lOU0VSVChjb250YWluZXIsIGVudHJ5KTsKKyAgICAgICAgZmNsb3NlKGRldmluKTsKKyAgICB9CisgICAgY2xvc2VkaXIoZGV2X3NubXA2X2Rpcik7CisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogTkVUU05NUF9FTkFCTEVfSVBWNiAqLworI2VuZGlmCisKKyNpZmRlZiBORVRTTk1QX0VOQUJMRV9JUFY2CisvKgorICogQmFzZWQgb24gbG9hZF9mbGFncywgbG9hZCBpcFN5c3RlbVN0YXRzVGFibGUgb3IgaXBJZlN0YXRzVGFibGUgZm9yIGlwdjYgZW50cmllcy4gCisgKi8KK3N0YXRpYyBpbnQKK19zeXN0ZW1zdGF0c192NihuZXRzbm1wX2NvbnRhaW5lciogY29udGFpbmVyLCB1X2ludCBsb2FkX2ZsYWdzKQoreworICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6c3lzdGVtc3RhdHM6Y29udGFpbmVyOmFyY2giLCAibG9hZCB2NiAoZmxhZ3MgJXUpXG4iLAorICAgICAgICAgICAgICAgIGxvYWRfZmxhZ3MpKTsKKworICAgIG5ldHNubXBfYXNzZXJ0KGNvbnRhaW5lciAhPSBOVUxMKTsgLyogbG9hZCBmdW5jdGlvbiBzaG91bGRhIGNoZWNrZWQgdGhpcyAqLworCisgICAgaWYgKGxvYWRfZmxhZ3MgJiBORVRTTk1QX0FDQ0VTU19TWVNURU1TVEFUU19MT0FEX0lGVEFCTEUpIHsKKyAgICAgICAgLyogbG9hZCBpcElmU3RhdHNUYWJsZSAqLworICAgICAgICByZXR1cm4gX3N5c3RlbXN0YXRzX3Y2X2xvYWRfaWZzdGF0cyhjb250YWluZXIsIGxvYWRfZmxhZ3MpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8qIGxvYWQgaXBTeXN0ZW1TdGF0c1RhYmxlICovCisgICAgICAgIHJldHVybiBfc3lzdGVtc3RhdHNfdjZfbG9hZF9zeXN0ZW1zdGF0cyhjb250YWluZXIsIGxvYWRfZmxhZ3MpOworICAgIH0KK30KKyNlbmRpZiAvKiBORVRTTk1QX0VOQUJMRV9JUFY2ICovCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmggYi9hZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgKaW5kZXggODVhODczOC4uNzNhZmFlNiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oCisrKyBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaApAQCAtMTU1LDkgKzE1NSw2IEBACiAgICAgICAgIGludCAgICAgICAgICAgICBpbmV0TmV0VG9NZWRpYVJvd1N0YXR1cywKICAgICAgICAgICAgIGluZXROZXRUb01lZGlhUm93U3RhdHVzX3VuZG87CiAKLSAgICAgICAgLyogZmxhZywgaWYgdGhlIHJvdyB3YXMgcHJlc2VudCBpbiBsYXN0IHJlYWQgZnJvbSBvcGVyYXRpbmcgc3lzdGVtICovCi0gICAgICAgIGludCB2YWxpZDsKLQogICAgICAgICAvKgogICAgICAgICAgKiBzdG9yYWdlIGZvciBmdXR1cmUgZXhwYW5zaW9uCiAgICAgICAgICAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCmluZGV4IDhmZGRiNzAuLjFlYzhjYzYgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYworKysgYi9hZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKQEAgLTgsNiArOCw3IEBACiAgKiBzdGFuZGFyZCBOZXQtU05NUCBpbmNsdWRlcyAKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCkBAIC0xOSw2ICsyMCw5IEBACiAKICNpbmNsdWRlICJpbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNvbnRhaW5lcl9saWZvKQorc3RhdGljIG5ldHNubXBfYXJwX2FjY2VzcyAqIGFycF9hY2Nlc3MgPSBOVUxMOworCiAvKiogQGluZ3JvdXAgaW50ZXJmYWNlIAogICogQGFkZHRvZ3JvdXAgZGF0YV9hY2Nlc3MgZGF0YV9hY2Nlc3M6IFJvdXRpbmVzIHRvIGFjY2VzcyBkYXRhCiAgKgpAQCAtNzEsNiArNzUsMTIzIEBACiAgKi8KIAogLyoqCisgKiBjaGVjayBlbnRyeSBmb3IgdXBkYXRlCisgKi8KK3N0YXRpYyB2b2lkCitfYWRkX29yX3VwZGF0ZV9hcnBfZW50cnkobmV0c25tcF9hcnBfZW50cnkgKmFycF9lbnRyeSwKKyAgICAgICAgICAgICAgICAgbmV0c25tcF9jb250YWluZXIgKmNvbnRhaW5lcikKK3sKKyAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX3Jvd3JlcV9jdHggKnJvd3JlcV9jdHgsICpvbGQ7CisgICAgaW50ICAgICAgICAgICAgIGluZXRBZGRyZXNzVHlwZTsKKworICAgIERFQlVHVFJBQ0U7CisKKyAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGFycF9lbnRyeSk7CisgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBjb250YWluZXIpOworCisgICAgLyoKKyAgICAgKiBjb252ZXJ0IHRoZSBhZGRyIGxlbiB0byBhbiBpbmV0QWRkcmVzc1R5cGUKKyAgICAgKi8KKyAgICBzd2l0Y2ggKGFycF9lbnRyeS0+YXJwX2lwYWRkcmVzc19sZW4pIHsKKyAgICBjYXNlIDQ6CisgICAgICAgIGluZXRBZGRyZXNzVHlwZSA9IElORVRBRERSRVNTVFlQRV9JUFY0OworICAgICAgICBicmVhazsKKworICAgIGNhc2UgMTY6CisgICAgICAgIGluZXRBZGRyZXNzVHlwZSA9IElORVRBRERSRVNTVFlQRV9JUFY2OworICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJpbmV0TmV0VG9NZWRpYVRhYmxlOl9hZGRfb3JfdXBkYXRlX2FycGVudHJ5OiB1bnN1cHBvcnRlZCBhZGRyZXNzIHR5cGUsIGxlbiA9ICVkXG4iLCBhcnBfZW50cnktPmFycF9pcGFkZHJlc3NfbGVuKTsKKyAgICAgICAgbmV0c25tcF9hY2Nlc3NfYXJwX2VudHJ5X2ZyZWUoYXJwX2VudHJ5KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qCisgICAgICogYWxsb2NhdGUgYW4gcm93IGNvbnRleHQgYW5kIHNldCB0aGUgaW5kZXgoZXMpLCB0aGVuIHRyeSB0byBmaW5kIGl0IGluCisgICAgICogdGhlIGNhY2hlLgorICAgICAqLworICAgIHJvd3JlcV9jdHggPSBpbmV0TmV0VG9NZWRpYVRhYmxlX2FsbG9jYXRlX3Jvd3JlcV9jdHgoYXJwX2VudHJ5LCBOVUxMKTsKKyAgICBpZiAoKE5VTEwgIT0gcm93cmVxX2N0eCkgJiYKKyAgICAgICAgKE1GRF9TVUNDRVNTID09IGluZXROZXRUb01lZGlhVGFibGVfaW5kZXhlc19zZXQKKyAgICAgICAgIChyb3dyZXFfY3R4LCByb3dyZXFfY3R4LT5kYXRhLT5pZl9pbmRleCwgaW5ldEFkZHJlc3NUeXBlLAorICAgICAgICAgIChjaGFyICopIHJvd3JlcV9jdHgtPmRhdGEtPmFycF9pcGFkZHJlc3MsCisgICAgICAgICAgcm93cmVxX2N0eC0+ZGF0YS0+YXJwX2lwYWRkcmVzc19sZW4pKSkgeworCisgICAgICAgIC8qIHRyeSB0byBmaW5kIG9sZCBlbnRyeSAqLworICAgICAgICBvbGQgPSAoaW5ldE5ldFRvTWVkaWFUYWJsZV9yb3dyZXFfY3R4KilDT05UQUlORVJfRklORChjb250YWluZXIsIHJvd3JlcV9jdHgpOworICAgICAgICBpZiAoYXJwX2VudHJ5LT5mbGFncyAmIE5FVFNOTVBfQUNDRVNTX0FSUF9FTlRSWV9GTEFHX0RFTEVURSkgeworICAgICAgICAgICAgLyogZGVsZXRlIGV4aXN0aW5nIGVudHJ5ICovCisgICAgICAgICAgICBpZiAob2xkICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBDT05UQUlORVJfUkVNT1ZFKGNvbnRhaW5lciwgb2xkKTsKKyAgICAgICAgICAgICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX3JlbGVhc2Vfcm93cmVxX2N0eChvbGQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9yZWxlYXNlX3Jvd3JlcV9jdHgocm93cmVxX2N0eCk7CisgICAgICAgIH0gZWxzZSBpZiAob2xkICE9IE5VTEwpIHsKKyAgICAgICAgICAgIC8qIHRoZSBlbnRyeSBpcyBhbHJlYWR5IHRoZXJlLCB1cGRhdGUgaXQgKi8KKyAgICAgICAgICAgIG5ldHNubXBfYWNjZXNzX2FycF9lbnRyeV91cGRhdGUob2xkLT5kYXRhLCBhcnBfZW50cnkpOworICAgICAgICAgICAgLyogZGVsZXRlIHRoZSBhdXhpbGlhcnkgY29udGV4dCB3ZSB1c2VkIHRvIGZpbmQgdGhlIGVudHJ5CisgICAgICAgICAgICAgKiAodGhpcyBkZWxldGVzIGFsc28gYXJwX2VudHJ5KSAqLworICAgICAgICAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9yZWxlYXNlX3Jvd3JlcV9jdHgocm93cmVxX2N0eCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiBjcmVhdGUgbmV3IGVudHJ5IGFuZCBhZGQgaXQgdG8gdGhlIGNhY2hlKi8KKyAgICAgICAgICAgIHJvd3JlcV9jdHgtPmluZXROZXRUb01lZGlhUm93U3RhdHVzID0gUk9XU1RBVFVTX0FDVElWRTsKKyAgICAgICAgICAgIHJvd3JlcV9jdHgtPmRhdGEtPmFycF9sYXN0X3VwZGF0ZWQgPSBuZXRzbm1wX2dldF9hZ2VudF91cHRpbWUoKTsKKyAgICAgICAgICAgIENPTlRBSU5FUl9JTlNFUlQoY29udGFpbmVyLCByb3dyZXFfY3R4KTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChyb3dyZXFfY3R4KSB7CisgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiZXJyb3Igc2V0dGluZyBpbmRleCB3aGlsZSBsb2FkaW5nICIKKyAgICAgICAgICAgICAgICAgICAgICJpbmV0TmV0VG9NZWRpYVRhYmxlIGNhY2hlLlxuIik7CisgICAgICAgICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX3JlbGVhc2Vfcm93cmVxX2N0eChyb3dyZXFfY3R4KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBuZXRzbm1wX2FjY2Vzc19hcnBfZW50cnlfZnJlZShhcnBfZW50cnkpOworICAgIH0KK30KKworc3RhdGljIHZvaWQgIF9hcnBfaG9va191cGRhdGUobmV0c25tcF9hcnBfYWNjZXNzICphY2Nlc3MsIG5ldHNubXBfYXJwX2VudHJ5ICplbnRyeSkKK3sKKyAgICBfYWRkX29yX3VwZGF0ZV9hcnBfZW50cnkoZW50cnksIGFjY2Vzcy0+bWFnaWMpOworfQorCit0eXBlZGVmIHN0cnVjdCB7CisgICAgdW5zaWduZWQgZ2VuZXJhdGlvbjsKKyAgICBuZXRzbm1wX2NvbnRhaW5lciAqdG9fZGVsZXRlOworfSBfY29sbGVjdF9jdHg7CisKKy8qKgorICogUHV0IGFsbCBlbnRyaWVzIHdpdGggb3V0ZGF0ZWQgZ2VuZXJhdGlvbiB0byBkZWxldGlvbiBsaXN0LgorICovCitzdGF0aWMgdm9pZAorX2NvbGxlY3RfaW52YWxpZF9hcnBfY3R4KGluZXROZXRUb01lZGlhVGFibGVfcm93cmVxX2N0eCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgIF9jb2xsZWN0X2N0eCAqY2N0eCkKK3sKKyAgICBpZiAoY3R4LT5kYXRhLT5nZW5lcmF0aW9uICE9IGNjdHgtPmdlbmVyYXRpb24pCisgICAgICAgIENPTlRBSU5FUl9JTlNFUlQoY2N0eC0+dG9fZGVsZXRlLCBjdHgpOworfQorCitzdGF0aWMgdm9pZCBfYXJwX2hvb2tfZ2MobmV0c25tcF9hcnBfYWNjZXNzICphY2Nlc3MpCit7CisgICAgbmV0c25tcF9jb250YWluZXIgKmNvbnRhaW5lciA9IGFjY2Vzcy0+bWFnaWM7CisgICAgX2NvbGxlY3RfY3R4IGNjdHg7CisKKyAgICBjY3R4LnRvX2RlbGV0ZSA9IG5ldHNubXBfY29udGFpbmVyX2ZpbmQoImxpZm8iKTsKKyAgICBjY3R4LmdlbmVyYXRpb24gPSBhY2Nlc3MtPmdlbmVyYXRpb247CisKKyAgICBDT05UQUlORVJfRk9SX0VBQ0goY29udGFpbmVyLAorICAgICAgICAgICAgICAgICAgICAgICAobmV0c25tcF9jb250YWluZXJfb2JqX2Z1bmMgKikgX2NvbGxlY3RfaW52YWxpZF9hcnBfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAmY2N0eCk7CisKKyAgICB3aGlsZSAoQ09OVEFJTkVSX1NJWkUoY2N0eC50b19kZWxldGUpKSB7CisgICAgICAgIGluZXROZXRUb01lZGlhVGFibGVfcm93cmVxX2N0eCAqY3R4ID0gKGluZXROZXRUb01lZGlhVGFibGVfcm93cmVxX2N0eCopQ09OVEFJTkVSX0ZJUlNUKGNjdHgudG9fZGVsZXRlKTsKKyAgICAgICAgQ09OVEFJTkVSX1JFTU9WRShjb250YWluZXIsIGN0eCk7CisgICAgICAgIGluZXROZXRUb01lZGlhVGFibGVfcmVsZWFzZV9yb3dyZXFfY3R4KGN0eCk7CisgICAgICAgIENPTlRBSU5FUl9SRU1PVkUoY2N0eC50b19kZWxldGUsIE5VTEwpOworICAgIH0KKyAgICBDT05UQUlORVJfRlJFRShjY3R4LnRvX2RlbGV0ZSk7Cit9CisKKy8qKgogICogY29udGFpbmVyIGluaXRpYWxpemF0aW9uCiAgKgogICogQHBhcmFtIGNvbnRhaW5lcl9wdHJfcHRyIEEgcG9pbnRlciB0byBhIGNvbnRhaW5lciBwb2ludGVyLiBJZiB5b3UKQEAgLTEyMCwxMDQgKzI0MSwxOSBAQAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLyoKLSAgICAgKiBUT0RPOjM0NTpBOiBTZXQgdXAgaW5ldE5ldFRvTWVkaWFUYWJsZSBjYWNoZSBwcm9wZXJ0aWVzLgotICAgICAqCi0gICAgICogQWxzbyBmb3IgYWR2YW5jZWQgdXNlcnMsIHlvdSBjYW4gc2V0IHBhcmFtZXRlcnMgZm9yIHRoZQotICAgICAqIGNhY2hlLiBEbyBub3QgY2hhbmdlIHRoZSBtYWdpYyBwb2ludGVyLCBhcyBpdCBpcyB1c2VkCi0gICAgICogYnkgdGhlIE1GRCBoZWxwZXIuIFRvIGNvbXBsZXRlbHkgZGlzYWJsZSBjYWNoaW5nLCBzZXQKLSAgICAgKiBjYWNoZS0+ZW5hYmxlZCB0byAwLgotICAgICAqLwotICAgIGNhY2hlLT50aW1lb3V0ID0gSU5FVE5FVFRPTUVESUFUQUJMRV9DQUNIRV9USU1FT1VUOyAvKiBzZWNvbmRzICovCi0KLSAgICAvKiBXZSB3YW50IHRvIG1hbnVhbGx5IGRlbGV0ZSBlbnRyaWVzIGluIHRoZSBjYWNoZSB0byBrZWVwIExhc3RVcGRhdGVkCi0gICAgICogdGltZXN0YW1wLiAqLwotICAgIGNhY2hlLT5mbGFncyB8PSBORVRTTk1QX0NBQ0hFX0RPTlRfRlJFRV9CRUZPUkVfTE9BRAotICAgICAgICAgICAgICAgICAgICB8IE5FVFNOTVBfQ0FDSEVfQVVUT19SRUxPQUQ7Ci19ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluZXROZXRUb01lZGlhVGFibGVfY29udGFpbmVyX2luaXQgKi8KLQotLyoqCi0gKiBQdXQgYWxsIGVudHJpZXMgd2l0aCB2YWxpZCAhPTEgdG8gdGhlIGxpc3QgdG8gZGVsZXRlLgotICovCi1zdGF0aWMgdm9pZAotX2NvbGxlY3RfaW52YWxpZF9hcnBfY3R4KGluZXROZXRUb01lZGlhVGFibGVfcm93cmVxX2N0eCAqY3R4LAotICAgICAgICBuZXRzbm1wX2NvbnRhaW5lciAqdG9fZGVsZXRlKQotewotICAgIGlmIChjdHgtPnZhbGlkKQotICAgICAgICAgICAgY3R4LT52YWxpZCA9IDA7Ci0gICAgZWxzZQotICAgICAgICBDT05UQUlORVJfSU5TRVJUKHRvX2RlbGV0ZSwgY3R4KTsKLX0KLQotLyoqCi0gKiBjaGVjayBlbnRyeSBmb3IgdXBkYXRlCi0gKi8KLXN0YXRpYyB2b2lkCi1fYWRkX29yX3VwZGF0ZV9hcnBfZW50cnkobmV0c25tcF9hcnBfZW50cnkgKmFycF9lbnRyeSwKLSAgICAgICAgICAgICAgICAgbmV0c25tcF9jb250YWluZXIgKmNvbnRhaW5lcikKLXsKLSAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX3Jvd3JlcV9jdHggKnJvd3JlcV9jdHgsICpvbGQ7Ci0gICAgaW50ICAgICAgICAgICAgIGluZXRBZGRyZXNzVHlwZTsKLQotICAgIERFQlVHVFJBQ0U7Ci0KLSAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGFycF9lbnRyeSk7Ci0gICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBjb250YWluZXIpOwotCi0gICAgLyoKLSAgICAgKiBjb252ZXJ0IHRoZSBhZGRyIGxlbiB0byBhbiBpbmV0QWRkcmVzc1R5cGUKLSAgICAgKi8KLSAgICBzd2l0Y2ggKGFycF9lbnRyeS0+YXJwX2lwYWRkcmVzc19sZW4pIHsKLSAgICBjYXNlIDQ6Ci0gICAgICAgIGluZXRBZGRyZXNzVHlwZSA9IElORVRBRERSRVNTVFlQRV9JUFY0OwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgMTY6Ci0gICAgICAgIGluZXRBZGRyZXNzVHlwZSA9IElORVRBRERSRVNTVFlQRV9JUFY2OwotICAgICAgICBicmVhazsKLQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIG5ldHNubXBfYWNjZXNzX2FycF9lbnRyeV9mcmVlKGFycF9lbnRyeSk7Ci0gICAgICAgIHNubXBfbG9nKExPR19FUlIsICJ1bnN1cHBvcnRlZCBhZGRyZXNzIHR5cGVcbiIpOworICAgIGFycF9hY2Nlc3MgPSBuZXRzbm1wX2FjY2Vzc19hcnBfY3JlYXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9BQ0NFU1NfQVJQX0NSRUFURV9OT0ZMQUdTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgX2FycF9ob29rX3VwZGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hcnBfaG9va19nYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICZjYWNoZS0+dGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICZjYWNoZS0+ZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2FjaGUtPmV4cGlyZWQpOworICAgIGlmIChhcnBfYWNjZXNzID09IE5VTEwpIHsKKyAgICAgICAgc25tcF9sb2coTE9HX0VSUiwKKyAgICAgICAgICAgICAgICAgInVuYWJsZSB0byBjcmVhdGUgYXJwIGFjY2VzcyBpbiBpbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnRhaW5lcl9pbml0XG4iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLQotICAgIC8qCi0gICAgICogYWxsb2NhdGUgYW4gcm93IGNvbnRleHQgYW5kIHNldCB0aGUgaW5kZXgoZXMpLCB0aGVuIHRyeSB0byBmaW5kIGl0IGluCi0gICAgICogdGhlIGNhY2hlLgotICAgICAqLwotICAgIHJvd3JlcV9jdHggPSBpbmV0TmV0VG9NZWRpYVRhYmxlX2FsbG9jYXRlX3Jvd3JlcV9jdHgoYXJwX2VudHJ5LCBOVUxMKTsKLSAgICBpZiAoKE5VTEwgIT0gcm93cmVxX2N0eCkgJiYKLSAgICAgICAgKE1GRF9TVUNDRVNTID09IGluZXROZXRUb01lZGlhVGFibGVfaW5kZXhlc19zZXQKLSAgICAgICAgIChyb3dyZXFfY3R4LCByb3dyZXFfY3R4LT5kYXRhLT5pZl9pbmRleCwgaW5ldEFkZHJlc3NUeXBlLAotICAgICAgICAgIChjaGFyICopIHJvd3JlcV9jdHgtPmRhdGEtPmFycF9pcGFkZHJlc3MsCi0gICAgICAgICAgcm93cmVxX2N0eC0+ZGF0YS0+YXJwX2lwYWRkcmVzc19sZW4pKSkgewotCi0gICAgICAgIC8qIHRyeSB0byBmaW5kIG9sZCBlbnRyeSAqLwotICAgICAgICBvbGQgPSAoaW5ldE5ldFRvTWVkaWFUYWJsZV9yb3dyZXFfY3R4KilDT05UQUlORVJfRklORChjb250YWluZXIsIHJvd3JlcV9jdHgpOwotICAgICAgICBpZiAob2xkICE9IE5VTEwpIHsKLSAgICAgICAgICAgIC8qIHRoZSBlbnRyeSBpcyBhbHJlYWR5IHRoZXJlLCB1cGRhdGUgaXQgKi8KLSAgICAgICAgICAgIG5ldHNubXBfYWNjZXNzX2FycF9lbnRyeV91cGRhdGUob2xkLT5kYXRhLCBhcnBfZW50cnkpOwotICAgICAgICAgICAgb2xkLT52YWxpZCA9IDE7IC8qIGRvIG5vdCBkZWxldGUgaXQgaW4gZm9sbG93aW5nIHN3ZWVwICovCi0gICAgICAgICAgICAvKiBkZWxldGUgdGhlIGF1eGlsaWFyeSBjb250ZXh0IHdlIHVzZWQgdG8gZmluZCB0aGUgZW50cnkKLSAgICAgICAgICAgICAqICh0aGlzIGRlbGV0ZXMgYWxzbyBhcnBfZW50cnkpICovCi0gICAgICAgICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX3JlbGVhc2Vfcm93cmVxX2N0eChyb3dyZXFfY3R4KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8qIGNyZWF0ZSBuZXcgZW50cnkgYW5kIGFkZCBpdCB0byB0aGUgY2FjaGUqLwotICAgICAgICAgICAgcm93cmVxX2N0eC0+aW5ldE5ldFRvTWVkaWFSb3dTdGF0dXMgPSBST1dTVEFUVVNfQUNUSVZFOwotICAgICAgICAgICAgcm93cmVxX2N0eC0+ZGF0YS0+YXJwX2xhc3RfdXBkYXRlZCA9IG5ldHNubXBfZ2V0X2FnZW50X3VwdGltZSgpOwotICAgICAgICAgICAgcm93cmVxX2N0eC0+dmFsaWQgPSAxOyAvKiBkbyBub3QgZGVsZXRlIGl0IGluIGZvbGxvd2luZyBzd2VlcCAqLwotICAgICAgICAgICAgQ09OVEFJTkVSX0lOU0VSVChjb250YWluZXIsIHJvd3JlcV9jdHgpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHJvd3JlcV9jdHgpIHsKLSAgICAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJlcnJvciBzZXR0aW5nIGluZGV4IHdoaWxlIGxvYWRpbmcgIgotICAgICAgICAgICAgICAgICAgICAgImluZXROZXRUb01lZGlhVGFibGUgY2FjaGUuXG4iKTsKLSAgICAgICAgICAgIGluZXROZXRUb01lZGlhVGFibGVfcmVsZWFzZV9yb3dyZXFfY3R4KHJvd3JlcV9jdHgpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG5ldHNubXBfYWNjZXNzX2FycF9lbnRyeV9mcmVlKGFycF9lbnRyeSk7Ci0gICAgfQotfQorfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnRhaW5lcl9pbml0ICovCiAKIC8qKgogICogY29udGFpbmVyIHNodXRkb3duCkBAIC0yNDAsMTIgKzI3NiwxNiBAQAogewogICAgIERFQlVHTVNHVEwoKCJ2ZXJib3NlOmluZXROZXRUb01lZGlhVGFibGU6aW5ldE5ldFRvTWVkaWFUYWJsZV9jb250YWluZXJfc2h1dGRvd24iLCAiY2FsbGVkXG4iKSk7CiAKKyAgICBpZiAoTlVMTCAhPSBhcnBfYWNjZXNzKSB7CisgICAgICAgIG5ldHNubXBfYWNjZXNzX2FycF9kZWxldGUoYXJwX2FjY2Vzcyk7CisgICAgICAgIGFycF9hY2Nlc3MgPSBOVUxMOworICAgIH0KKwogICAgIGlmIChOVUxMID09IGNvbnRhaW5lcl9wdHIpIHsKICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwKICAgICAgICAgICAgICAgICAgImJhZCBwYXJhbXMgdG8gaW5ldE5ldFRvTWVkaWFUYWJsZV9jb250YWluZXJfc2h1dGRvd25cbiIpOwogICAgICAgICByZXR1cm47CiAgICAgfQotCiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluZXROZXRUb01lZGlhVGFibGVfY29udGFpbmVyX3NodXRkb3duICovCiAKIC8qKgpAQCAtMjg0LDU0ICszMjQsMTEgQEAKIGludAogaW5ldE5ldFRvTWVkaWFUYWJsZV9jb250YWluZXJfbG9hZChuZXRzbm1wX2NvbnRhaW5lciAqY29udGFpbmVyKQogewotICAgIG5ldHNubXBfY29udGFpbmVyICphcnBfY29udGFpbmVyOwotICAgIG5ldHNubXBfY29udGFpbmVyICp0b19kZWxldGUgPSBuZXRzbm1wX2NvbnRhaW5lcl9maW5kKCJsaWZvIik7Ci0KICAgICBERUJVR01TR1RMKCgidmVyYm9zZTppbmV0TmV0VG9NZWRpYVRhYmxlOmluZXROZXRUb01lZGlhVGFibGVfY2FjaGVfbG9hZCIsICJjYWxsZWRcbiIpKTsKIAotICAgIC8qCi0gICAgICogVE9ETzozNTE6TTogfC0+IExvYWQvdXBkYXRlIGRhdGEgaW4gdGhlIGluZXROZXRUb01lZGlhVGFibGUgY29udGFpbmVyLgotICAgICAqIGxvb3Agb3ZlciB5b3VyIGluZXROZXRUb01lZGlhVGFibGUgZGF0YSwgYWxsb2NhdGUgYSByb3dyZXEgY29udGV4dCwKLSAgICAgKiBzZXQgdGhlIGluZGV4KGVzKSBbYW5kIGRhdGEsIG9wdGlvbmFsbHldIGFuZCBpbnNlcnQgaW50bwotICAgICAqIHRoZSBjb250YWluZXIuCi0gICAgICovCi0gICAgYXJwX2NvbnRhaW5lciA9Ci0gICAgICAgIG5ldHNubXBfYWNjZXNzX2FycF9jb250YWluZXJfbG9hZChOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9BQ0NFU1NfQVJQX0xPQURfTk9GTEFHUyk7Ci0gICAgaWYgKE5VTEwgPT0gYXJwX2NvbnRhaW5lcikKLSAgICAgICAgcmV0dXJuIE1GRF9SRVNPVVJDRV9VTkFWQUlMQUJMRTsgICAgICAgIC8qIG1zZyBhbHJlYWR5IGxvZ2dlZCAqLwotCi0gICAgLyoKLSAgICAgKiB3ZSBqdXN0IGdvdCBhIGZyZXNoIGNvcHkgb2YgZGF0YS4gc25hcmYgZGF0YQotICAgICAqLwotICAgIENPTlRBSU5FUl9GT1JfRUFDSChhcnBfY29udGFpbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAobmV0c25tcF9jb250YWluZXJfb2JqX2Z1bmMgKikgX2FkZF9vcl91cGRhdGVfYXJwX2VudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXIpOwotCi0gICAgLyoKLSAgICAgKiBEZWxldGUgYWxsIGNhY2hlZCBlbnRyaWVzLCB3aGljaCB3ZXJlIG5vdCBwcm92aWRlZCBieQotICAgICAqIG5ldHNubXBfYWNjZXNzX2FycF9jb250YWluZXJfbG9hZAotICAgICAqLwotICAgIENPTlRBSU5FUl9GT1JfRUFDSChjb250YWluZXIsCi0gICAgICAgICAgICAgICAgICAgICAgIChuZXRzbm1wX2NvbnRhaW5lcl9vYmpfZnVuYyAqKSBfY29sbGVjdF9pbnZhbGlkX2FycF9jdHgsCi0gICAgICAgICAgICAgICAgICAgICAgIHRvX2RlbGV0ZSk7Ci0gICAgd2hpbGUgKENPTlRBSU5FUl9TSVpFKHRvX2RlbGV0ZSkpIHsKLSAgICAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9yb3dyZXFfY3R4ICpjdHggPSAoaW5ldE5ldFRvTWVkaWFUYWJsZV9yb3dyZXFfY3R4KilDT05UQUlORVJfRklSU1QodG9fZGVsZXRlKTsKLSAgICAgICAgQ09OVEFJTkVSX1JFTU9WRShjb250YWluZXIsIGN0eCk7Ci0gICAgICAgIGluZXROZXRUb01lZGlhVGFibGVfcmVsZWFzZV9yb3dyZXFfY3R4KGN0eCk7Ci0gICAgICAgIENPTlRBSU5FUl9SRU1PVkUodG9fZGVsZXRlLCBOVUxMKTsKLSAgICB9Ci0gICAgQ09OVEFJTkVSX0ZSRUUodG9fZGVsZXRlKTsKLQotICAgIC8qCi0gICAgICogZnJlZSB0aGUgY29udGFpbmVyLiB3ZSd2ZSBlaXRoZXIgY2xhaW1lZCBlYWNoIGVudHJ5LCBvciByZWxlYXNlZCBpdCwKLSAgICAgKiBzbyB0aGUgYWNjZXNzIGZ1bmN0aW9uIGRvZXNuJ3QgbmVlZCB0byBjbGVhciB0aGUgY29udGFpbmVyLgotICAgICAqLwotICAgIG5ldHNubXBfYWNjZXNzX2FycF9jb250YWluZXJfZnJlZShhcnBfY29udGFpbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0FDQ0VTU19BUlBfRlJFRV9ET05UX0NMRUFSKTsKLQotICAgIERFQlVHTVNHVCgoInZlcmJvc2U6aW5ldE5ldFRvTWVkaWFUYWJsZTppbmV0TmV0VG9NZWRpYVRhYmxlX2NhY2hlX2xvYWQiLAotICAgICAgICAgICAgICAgIiUiIE5FVFNOTVBfUFJJeiAidSByZWNvcmRzXG4iLCBDT05UQUlORVJfU0laRShjb250YWluZXIpKSk7CisgICAgYXJwX2FjY2Vzcy0+bWFnaWMgPSBjb250YWluZXI7CisgICAgaWYgKG5ldHNubXBfYWNjZXNzX2FycF9sb2FkKGFycF9hY2Nlc3MpIDwgMCkKKyAgICAgICAgcmV0dXJuIE1GRF9FUlJPUjsKIAogICAgIHJldHVybiBNRkRfU1VDQ0VTUzsKIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5ldE5ldFRvTWVkaWFUYWJsZV9jb250YWluZXJfbG9hZCAqLwpAQCAtMzU0LDYgKzM1MSwxMSBAQAogewogICAgIERFQlVHTVNHVEwoKCJ2ZXJib3NlOmluZXROZXRUb01lZGlhVGFibGU6aW5ldE5ldFRvTWVkaWFUYWJsZV9jb250YWluZXJfZnJlZSIsICJjYWxsZWRcbiIpKTsKIAorICAgIGlmIChOVUxMICE9IGFycF9hY2Nlc3MpIHsKKyAgICAgICAgbmV0c25tcF9hY2Nlc3NfYXJwX3VubG9hZChhcnBfYWNjZXNzKTsKKyAgICAgICAgYXJwX2FjY2Vzcy0+bWFnaWMgPSBOVUxMOworICAgIH0KKwogICAgIC8qCiAgICAgICogVE9ETzozODA6TTogRnJlZSBpbmV0TmV0VG9NZWRpYVRhYmxlIGNvbnRhaW5lciBkYXRhLgogICAgICAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYyBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKaW5kZXggNjJlMzY0Zi4uYzE4Njg5YSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYworKysgYi9hZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jCkBAIC0zMCw2ICszMCw3IEBACiAgKiBzdGFuZGFyZCBOZXQtU05NUCBpbmNsdWRlcyAKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCkBAIC00Niw2ICs0NywxOSBAQAogCiAjaW5jbHVkZSA8Y3R5cGUuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGluZXROZXRUb01lZGlhVGFibGVfZXh0ZXJuYWxfYWNjZXNzLCBsaWJuZXRzbm1wbWlicykKKworbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUocm93X21lcmdlKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoYmFieV9zdGVwcykKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX2NvbnRhaW5lcl9yb3dfaW5zZXJ0KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfYWxsX3JlcXVlc3RzX2Vycm9yKQorCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnRhaW5lcl9zaXplLCBpbmV0TmV0VG9NZWRpYVRhYmxlX2V4dGVybmFsX2FjY2VzcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpbmV0TmV0VG9NZWRpYVRhYmxlX3JlZ2lzdHJhdGlvbl9zZXQsIGluZXROZXRUb01lZGlhVGFibGVfZXh0ZXJuYWxfYWNjZXNzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGluZXROZXRUb01lZGlhVGFibGVfcmVnaXN0cmF0aW9uX2dldCwgaW5ldE5ldFRvTWVkaWFUYWJsZV9leHRlcm5hbF9hY2Nlc3MpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaW5ldE5ldFRvTWVkaWFUYWJsZV9jb250YWluZXJfZ2V0LCBpbmV0TmV0VG9NZWRpYVRhYmxlX2V4dGVybmFsX2FjY2VzcykKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKioqCkBAIC04MiwxOSArOTYsMjMgQEAKICAgICAgICAgICAgICAgICBfaW5ldE5ldFRvTWVkaWFUYWJsZV9jb250YWluZXJfc2h1dGRvd24oaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2VfY3R4ICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZfY3R4KTsKIAotCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSU5FVE5FVFRPTUVESUFUQUJMRV9DT05UQUlORVJfR0VUCiBuZXRzbm1wX2NvbnRhaW5lciAqCiBpbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnRhaW5lcl9nZXQodm9pZCkKIHsKICAgICByZXR1cm4gaW5ldE5ldFRvTWVkaWFUYWJsZV9pZl9jdHguY29udGFpbmVyOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSU5FVE5FVFRPTUVESUFUQUJMRV9DT05UQUlORVJfR0VUICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JTkVUTkVUVE9NRURJQVRBQkxFX1JFR0lTVFJBVElPTl9HRVQKIGluZXROZXRUb01lZGlhVGFibGVfcmVnaXN0cmF0aW9uICoKIGluZXROZXRUb01lZGlhVGFibGVfcmVnaXN0cmF0aW9uX2dldCh2b2lkKQogewogICAgIHJldHVybiBpbmV0TmV0VG9NZWRpYVRhYmxlX2lmX2N0eC51c2VyX2N0eDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lORVRORVRUT01FRElBVEFCTEVfUkVHSVNUUkFUSU9OX0dFVCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSU5FVE5FVFRPTUVESUFUQUJMRV9SRUdJU1RSQVRJT05fU0VUCiBpbmV0TmV0VG9NZWRpYVRhYmxlX3JlZ2lzdHJhdGlvbiAqCiBpbmV0TmV0VG9NZWRpYVRhYmxlX3JlZ2lzdHJhdGlvbl9zZXQoaW5ldE5ldFRvTWVkaWFUYWJsZV9yZWdpc3RyYXRpb24gKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3JlZykKQEAgLTEwNCwxMiArMTIyLDE1IEBACiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9pZl9jdHgudXNlcl9jdHggPSBuZXdyZWc7CiAgICAgcmV0dXJuIG9sZDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lORVRORVRUT01FRElBVEFCTEVfUkVHSVNUUkFUSU9OX1NFVCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSU5FVE5FVFRPTUVESUFUQUJMRV9DT05UQUlORVJfU0laRQogaW50CiBpbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnRhaW5lcl9zaXplKHZvaWQpCiB7CiAgICAgcmV0dXJuIENPTlRBSU5FUl9TSVpFKGluZXROZXRUb01lZGlhVGFibGVfaWZfY3R4LmNvbnRhaW5lcik7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JTkVUTkVUVE9NRURJQVRBQkxFX0NPTlRBSU5FUl9TSVpFICovCiAKIHVfaW50CiBpbmV0TmV0VG9NZWRpYVRhYmxlX2RpcnR5X2dldCh2b2lkKQpAQCAtMTMzLDcgKzE1NCw3IEBACiBzdGF0aWMgTmV0c25tcF9Ob2RlX0hhbmRsZXIgX21mZF9pbmV0TmV0VG9NZWRpYVRhYmxlX3Bvc3RfcmVxdWVzdDsKIHN0YXRpYyBOZXRzbm1wX05vZGVfSGFuZGxlciBfbWZkX2luZXROZXRUb01lZGlhVGFibGVfb2JqZWN0X2xvb2t1cDsKIHN0YXRpYyBOZXRzbm1wX05vZGVfSGFuZGxlciBfbWZkX2luZXROZXRUb01lZGlhVGFibGVfZ2V0X3ZhbHVlczsKLSNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCisjaWYgIShkZWZpbmVkKE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCkgfHwgZGVmaW5lZChORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQpKQogc3RhdGljIE5ldHNubXBfTm9kZV9IYW5kbGVyIF9tZmRfaW5ldE5ldFRvTWVkaWFUYWJsZV9jaGVja19vYmplY3RzOwogc3RhdGljIE5ldHNubXBfTm9kZV9IYW5kbGVyIF9tZmRfaW5ldE5ldFRvTWVkaWFUYWJsZV91bmRvX3NldHVwOwogc3RhdGljIE5ldHNubXBfTm9kZV9IYW5kbGVyIF9tZmRfaW5ldE5ldFRvTWVkaWFUYWJsZV9zZXRfdmFsdWVzOwpAQCAtMTQ5LDcgKzE3MCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciwgaW50IGNvbHVtbik7Ci0jZW5kaWYKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgfHwgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUICovCiAKIE5FVFNOTVBfU1RBVElDX0lOTElORSBpbnQKICAgICAgICAgICAgICAgICBfaW5ldE5ldFRvTWVkaWFUYWJsZV9jaGVja19pbmRleGVzKGluZXROZXRUb01lZGlhVGFibGVfcm93cmVxX2N0eCAqCkBAIC0yMzIsNyArMjUzLDcgQEAKICAgICAgICAgX21mZF9pbmV0TmV0VG9NZWRpYVRhYmxlX3Bvc3RfcmVxdWVzdDsKIAogCi0jaWZuZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAorI2lmICEoZGVmaW5lZChORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQpIHx8IGRlZmluZWQoTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUKSkKICAgICAvKgogICAgICAqIFJFUVVJUkVEIHdyYXBwZXJzIGZvciBzZXQgcmVxdWVzdCBoYW5kbGluZwogICAgICAqLwpAQCAtMjU3LDcgKzI3OCw3IEBACiAgICAgICovCiAgICAgYWNjZXNzX211bHRpcGxleGVyLT5jb25zaXN0ZW5jeV9jaGVja3MgPQogICAgICAgICBfbWZkX2luZXROZXRUb01lZGlhVGFibGVfY2hlY2tfZGVwZW5kZW5jaWVzOwotI2VuZGlmCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUIHx8IE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCAqLwogCiAgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgKgpAQCAtMjkzLDcgKzMxNCw3IEBACiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+cG9zdF9yZXF1ZXN0KQogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX1BPU1RfUkVRVUVTVDsKIAotI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKKyNpZiAhKGRlZmluZWQoTkVUU05NUF9OT19XUklURV9TVVBQT1JUKSB8fCBkZWZpbmVkKE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCkpCiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+c2V0X3ZhbHVlcykKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9TRVRfVkFMVUVTOwogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPmlycmV2ZXJzaWJsZV9jb21taXQpCkBAIC0zMTYsNyArMzM3LDcgQEAKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9DT01NSVQ7CiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+dW5kb19jb21taXQpCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfVU5ET19DT01NSVQ7Ci0jZW5kaWYKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgfHwgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUICovCiAKICAgICBoYW5kbGVyID0gbmV0c25tcF9iYWJ5X3N0ZXBzX2hhbmRsZXJfZ2V0KG1mZF9tb2Rlcyk7CiAgICAgbmV0c25tcF9pbmplY3RfaGFuZGxlcihyZWdpbmZvLCBoYW5kbGVyKTsKQEAgLTEwOTcsNyArMTExOCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9jdHgsIHJvd3JlcV9jdHgpOwogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBfaW5ldE5ldFRvTWVkaWFUYWJsZV9jaGVja19pbmRleGVzICovCiAKLSNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCisjaWYgIShkZWZpbmVkKE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCkgfHwgZGVmaW5lZChORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQpKQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogU0VUIHByb2Nlc3NpbmcKQEAgLTE4MjEsNyArMTg0Miw3IEBACiAKICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogX21mZF9pbmV0TmV0VG9NZWRpYVRhYmxlX2lycmV2ZXJzaWJsZV9jb21taXQgKi8KLSNlbmRpZgorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCB8fCBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgpAQCAtMTk4MCw2ICsyMDAxLDcgQEAKIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogX2luZXROZXRUb01lZGlhVGFibGVfY29udGFpbmVyX3NodXRkb3duICovCiAKIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lORVRORVRUT01FRElBVEFCTEVfRVhURVJOQUxfQUNDRVNTCiBpbmV0TmV0VG9NZWRpYVRhYmxlX3Jvd3JlcV9jdHggKgogaW5ldE5ldFRvTWVkaWFUYWJsZV9yb3dfZmluZF9ieV9taWJfaW5kZXgoaW5ldE5ldFRvTWVkaWFUYWJsZV9taWJfaW5kZXggKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWliX2lkeCkKQEAgLTIwMDcsMyArMjAyOSw0IEBACiAKICAgICByZXR1cm4gcm93cmVxX2N0eDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lORVRORVRUT01FRElBVEFCTEVfRVhURVJOQUxfQUNDRVNTICovCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYyBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jCmluZGV4IDRmYjY5MDUuLjQ0Mzc4MjkgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jCisrKyBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jCkBAIC04LDYgKzgsNyBAQAogICogc3RhbmRhcmQgTmV0LVNOTVAgaW5jbHVkZXMgCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KIApAQCAtMjEsNiArMjIsMTAgQEAKIAogI2luY2x1ZGUgImlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShpcEFkZHJlc3NUYWJsZV9jb250YWluZXJfZ2V0KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaXBhZGRyZXNzX2NvbW1vbl9jb3B5X3V0aWxpdGllcykKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGlwYWRkcmVzc19wcmVmaXhfY29weSkKKwogLyoqIEBpbmdyb3VwIGludGVyZmFjZSAKICAqIEBhZGR0b2dyb3VwIGRhdGFfYWNjZXNzIGRhdGFfYWNjZXNzOiBSb3V0aW5lcyB0byBhY2Nlc3MgZGF0YQogICoKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuYyBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuYwppbmRleCA5NDI0MjVkLi5lMTRhMzM3IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jCkBAIC0zMCw2ICszMCw3IEBACiAgKiBzdGFuZGFyZCBOZXQtU05NUCBpbmNsdWRlcyAKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCkBAIC00Niw2ICs0NywxNiBAQAogCiAjaW5jbHVkZSA8Y3R5cGUuaD4KIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUocm93X21lcmdlKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoYmFieV9zdGVwcykKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX2FsbF9yZXF1ZXN0c19lcnJvcikKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlwYWRkcmVzc3ByZWZpeHRhYmxlX3Jvd19maW5kX2J5X21pYl9pbmRleCwgaXBhZGRyZXNzcHJlZml4dGFibGVfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlwYWRkcmVzc3ByZWZpeHRhYmxlX2NvbnRhaW5lcl9nZXQsIGlwYWRkcmVzc3ByZWZpeHRhYmxlX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpcEFkZHJlc3NQcmVmaXhUYWJsZV9yZWdpc3RyYXRpb25fZ2V0LCBpcGFkZHJlc3NwcmVmaXh0YWJsZV9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaXBBZGRyZXNzUHJlZml4VGFibGVfcmVnaXN0cmF0aW9uX3NldCwgaXBhZGRyZXNzcHJlZml4dGFibGVfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlwQWRkcmVzc1ByZWZpeFRhYmxlX2NvbnRhaW5lcl9zaXplLCBpcGFkZHJlc3NwcmVmaXh0YWJsZV9hbGwpCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoqKgpAQCAtODEsMTggKzkyLDIzIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGlmX2N0eCk7CiAKIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQQUREUkVTU1BSRUZJWFRBQkxFX0NPTlRBSU5FUl9HRVQKIG5ldHNubXBfY29udGFpbmVyICoKIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2NvbnRhaW5lcl9nZXQodm9pZCkKIHsKICAgICByZXR1cm4gaXBBZGRyZXNzUHJlZml4VGFibGVfaWZfY3R4LmNvbnRhaW5lcjsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQQUREUkVTU1BSRUZJWFRBQkxFX0NPTlRBSU5FUl9HRVQgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQQUREUkVTU1BSRUZJWFRBQkxFX1JFR0lTVFJBVElPTl9HRVQKIGlwQWRkcmVzc1ByZWZpeFRhYmxlX3JlZ2lzdHJhdGlvbiAqCiBpcEFkZHJlc3NQcmVmaXhUYWJsZV9yZWdpc3RyYXRpb25fZ2V0KHZvaWQpCiB7CiAgICAgcmV0dXJuIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2lmX2N0eC51c2VyX2N0eDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQQUREUkVTU1BSRUZJWFRBQkxFX1JFR0lTVFJBVElPTl9HRVQgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQQUREUkVTU1BSRUZJWFRBQkxFX1JFR0lTVFJBVElPTl9TRVQKIGlwQWRkcmVzc1ByZWZpeFRhYmxlX3JlZ2lzdHJhdGlvbiAqCiBpcEFkZHJlc3NQcmVmaXhUYWJsZV9yZWdpc3RyYXRpb25fc2V0KGlwQWRkcmVzc1ByZWZpeFRhYmxlX3JlZ2lzdHJhdGlvbiAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3JlZykKQEAgLTEwMiwxMiArMTE4LDE1IEBACiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfaWZfY3R4LnVzZXJfY3R4ID0gbmV3cmVnOwogICAgIHJldHVybiBvbGQ7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUEFERFJFU1NQUkVGSVhUQUJMRV9SRUdJU1RSQVRJT05fU0VUICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUEFERFJFU1NQUkVGSVhUQUJMRV9DT05UQUlORVJfU0laRQogaW50CiBpcEFkZHJlc3NQcmVmaXhUYWJsZV9jb250YWluZXJfc2l6ZSh2b2lkKQogewogICAgIHJldHVybiBDT05UQUlORVJfU0laRShpcEFkZHJlc3NQcmVmaXhUYWJsZV9pZl9jdHguY29udGFpbmVyKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQQUREUkVTU1BSRUZJWFRBQkxFX0NPTlRBSU5FUl9TSVpFICovCiAKIC8qCiAgKiBtZmQgbXVsdGlwbGV4ZXIgbW9kZXMKQEAgLTIyOSw3ICsyNDgsOCBAQAogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnBvc3RfcmVxdWVzdCkKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9QT1NUX1JFUVVFU1Q7CiAKLSNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCisjaWYgIShkZWZpbmVkKE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCkgfHwgZGVmaW5lZChORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQpKQorICAgIC8qIFhYWCAtIGFyZSB0aGVzZSBhY3R1YWxseSBuZWNlc3Nhcnk/ICovCiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+c2V0X3ZhbHVlcykKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9TRVRfVkFMVUVTOwogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPmlycmV2ZXJzaWJsZV9jb21taXQpCkBAIC0yNTIsNyArMjcyLDcgQEAKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9DT01NSVQ7CiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+dW5kb19jb21taXQpCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfVU5ET19DT01NSVQ7Ci0jZW5kaWYKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgfHwgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUICovCiAKICAgICBoYW5kbGVyID0gbmV0c25tcF9iYWJ5X3N0ZXBzX2hhbmRsZXJfZ2V0KG1mZF9tb2Rlcyk7CiAgICAgbmV0c25tcF9pbmplY3RfaGFuZGxlcihyZWdpbmZvLCBoYW5kbGVyKTsKQEAgLTg0OSw3ICs4NjksNyBAQAogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBfbWZkX2lwQWRkcmVzc1ByZWZpeFRhYmxlX2dldF92YWx1ZXMgKi8KIAogCi0jaWZuZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAorI2lmICEoZGVmaW5lZChORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQpIHx8IGRlZmluZWQoTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUKSkKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIFNFVCBwcm9jZXNzaW5nCkBAIC0xMDE0LDYgKzEwMzQsNyBAQAogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBfaXBBZGRyZXNzUHJlZml4VGFibGVfY29udGFpbmVyX3NodXRkb3duICovCiAKIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQQUREUkVTU1BSRUZJWFRBQkxFX1JPV19GSU5EX0JZX01JQl9JTkRFWAogaXBBZGRyZXNzUHJlZml4VGFibGVfcm93cmVxX2N0eCAqCiBpcEFkZHJlc3NQcmVmaXhUYWJsZV9yb3dfZmluZF9ieV9taWJfaW5kZXgoaXBBZGRyZXNzUHJlZml4VGFibGVfbWliX2luZGV4ICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWJfaWR4KQpAQCAtMTA0MSwzICsxMDYyLDQgQEAKIAogICAgIHJldHVybiByb3dyZXFfY3R4OwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBBRERSRVNTUFJFRklYVEFCTEVfUk9XX0ZJTkRfQllfTUlCX0lOREVYICovCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jCmluZGV4IGVjNDhmY2EuLmRlZmY0ZTkgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jCkBAIC0xNCw2ICsxNCw3IEBACiAgKiBzdGFuZGFyZCBOZXQtU05NUCBpbmNsdWRlcyAKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCkBAIC0yOCw2ICsyOSwxMCBAQAogCiAjaW5jbHVkZSAiaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX3N0b3JhZ2VfdHJhbnNpdGlvbikKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGlwYWRkcmVzc19lbnRyeV9jb3B5KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaXBhZGRyZXNzX3ByZWZpeF9jb3B5KQorCiBjb25zdCBvaWQgICAgICAgaXBBZGRyZXNzVGFibGVfb2lkW10gPSB7IElQQUREUkVTU1RBQkxFX09JRCB9OwogY29uc3QgaW50ICAgICAgIGlwQWRkcmVzc1RhYmxlX29pZF9zaXplID0gT0lEX0xFTkdUSChpcEFkZHJlc3NUYWJsZV9vaWQpOwogCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYyBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jCmluZGV4IGNhMWFlNDcuLmQ4MGIzZTcgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jCisrKyBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jCkBAIC04LDYgKzgsNyBAQAogICogc3RhbmRhcmQgTmV0LVNOTVAgaW5jbHVkZXMgCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KIApAQCAtMjIsNiArMjMsOCBAQAogI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgogI2luY2x1ZGUgPGVycm5vLmg+CiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNvbnRhaW5lcl9saWZvKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaXBhZGRyZXNzX2VudHJ5X3VwZGF0ZSkKIAogLyoqIEBpbmdyb3VwIGludGVyZmFjZSAKICAqIEBhZGR0b2dyb3VwIGRhdGFfYWNjZXNzIGRhdGFfYWNjZXNzOiBSb3V0aW5lcyB0byBhY2Nlc3MgZGF0YQpAQCAtNjczLDkgKzY3Niw5IEBACiAgICAgICogVE9ETzo0MzA6TTogfC0+IFZhbGlkYXRlIHBvdGVudGlhbCBpcEFkZHJlc3NUYWJsZSBpbmRleC4KICAgICAgKgogICAgICAqCi0gICAgICogeHh4LXJrczogd2Ugb25seSBwbGFuIGlwdjQgc3VwcG9ydCBpbml0aWFsbHkKICAgICAgKi8KLSAgICBpZiAoKDQgIT0gcm93cmVxX2N0eC0+dGJsX2lkeC5pcEFkZHJlc3NBZGRyX2xlbikpIHsKKyAgICBpZiAoKDQgIT0gcm93cmVxX2N0eC0+dGJsX2lkeC5pcEFkZHJlc3NBZGRyX2xlbikKKyAgICAgICAgICAgICYmICgxNiAhPSByb3dyZXFfY3R4LT50YmxfaWR4LmlwQWRkcmVzc0FkZHJfbGVuKSkgewogICAgICAgICBzbm1wX2xvZyhMT0dfV0FSTklORywgImludmFsaWQgaW5kZXggZm9yIGEgbmV3IHJvdyBpbiB0aGUgIgogICAgICAgICAgICAgICAgICAiaXBBZGRyZXNzVGFibGUgdGFibGUuXG4iKTsKICAgICAgICAgLyoKQEAgLTY5MiwxNSArNjk1LDkgQEAKICAgICAgICAgICAgIHJldHVybiBNRkRfQ0FOTk9UX0NSRUFURV9OT1c7CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICByb3dyZXFfY3R4LT5kYXRhLT5pYV9hZGRyZXNzWzBdID0KLSAgICAgICAgICAgIHJvd3JlcV9jdHgtPnRibF9pZHguaXBBZGRyZXNzQWRkclswXTsKLSAgICAgICAgcm93cmVxX2N0eC0+ZGF0YS0+aWFfYWRkcmVzc1sxXSA9Ci0gICAgICAgICAgICByb3dyZXFfY3R4LT50YmxfaWR4LmlwQWRkcmVzc0FkZHJbMV07Ci0gICAgICAgIHJvd3JlcV9jdHgtPmRhdGEtPmlhX2FkZHJlc3NbMl0gPQotICAgICAgICAgICAgcm93cmVxX2N0eC0+dGJsX2lkeC5pcEFkZHJlc3NBZGRyWzJdOwotICAgICAgICByb3dyZXFfY3R4LT5kYXRhLT5pYV9hZGRyZXNzWzNdID0KLSAgICAgICAgICAgIHJvd3JlcV9jdHgtPnRibF9pZHguaXBBZGRyZXNzQWRkclszXTsKLSAgICAgICAgcm93cmVxX2N0eC0+ZGF0YS0+aWFfYWRkcmVzc19sZW4gPSA0OworICAgICAgICBtZW1jcHkocm93cmVxX2N0eC0+ZGF0YS0+aWFfYWRkcmVzcywgcm93cmVxX2N0eC0+dGJsX2lkeC5pcEFkZHJlc3NBZGRyLAorICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgtPnRibF9pZHguaXBBZGRyZXNzQWRkcl9sZW4pOworICAgICAgICByb3dyZXFfY3R4LT5kYXRhLT5pYV9hZGRyZXNzX2xlbiA9IHJvd3JlcV9jdHgtPnRibF9pZHguaXBBZGRyZXNzQWRkcl9sZW47CiAgICAgfQogCiAgICAgcmV0dXJuIHJjOwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jCmluZGV4IDk4YzNhZDAuLjQ4NzcwYjAgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYworKysgYi9hZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMKQEAgLTMwLDYgKzMwLDcgQEAKICAqIHN0YW5kYXJkIE5ldC1TTk1QIGluY2x1ZGVzIAogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAKQEAgLTQ2LDYgKzQ3LDE5IEBACiAKICNpbmNsdWRlIDxjdHlwZS5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaXBBZGRyZXNzVGFibGVfZXh0ZXJuYWxfYWNjZXNzLCBsaWJuZXRzbm1wbWlicykKKworbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUocm93X21lcmdlKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoYmFieV9zdGVwcykKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX2NvbnRhaW5lcl9yb3dfaW5zZXJ0KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfYWxsX3JlcXVlc3RzX2Vycm9yKQorCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpcEFkZHJlc3NUYWJsZV9jb250YWluZXJfc2l6ZSwgaXBBZGRyZXNzVGFibGVfZXh0ZXJuYWxfYWNjZXNzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlwQWRkcmVzc1RhYmxlX3JlZ2lzdHJhdGlvbl9zZXQsIGlwQWRkcmVzc1RhYmxlX2V4dGVybmFsX2FjY2VzcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpcEFkZHJlc3NUYWJsZV9yZWdpc3RyYXRpb25fZ2V0LCBpcEFkZHJlc3NUYWJsZV9leHRlcm5hbF9hY2Nlc3MpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaXBBZGRyZXNzVGFibGVfY29udGFpbmVyX2dldCwgaXBBZGRyZXNzVGFibGVfZXh0ZXJuYWxfYWNjZXNzKQorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqKioKQEAgLTgwLDE5ICs5NCwyMyBAQAogc3RhdGljIHZvaWQKICAgICAgICAgICAgICAgICBfaXBBZGRyZXNzVGFibGVfY29udGFpbmVyX3NodXRkb3duKGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZV9jdHggKiBpZl9jdHgpOwogCi0KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUEFERFJFU1NUQUJMRV9DT05UQUlORVJfR0VUCiBuZXRzbm1wX2NvbnRhaW5lciAqCiBpcEFkZHJlc3NUYWJsZV9jb250YWluZXJfZ2V0KHZvaWQpCiB7CiAgICAgcmV0dXJuIGlwQWRkcmVzc1RhYmxlX2lmX2N0eC5jb250YWluZXI7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUEFERFJFU1NUQUJMRV9DT05UQUlORVJfR0VUICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUEFERFJFU1NUQUJMRV9SRUdJU1RSQVRJT05fR0VUCiBpcEFkZHJlc3NUYWJsZV9yZWdpc3RyYXRpb24gKgogaXBBZGRyZXNzVGFibGVfcmVnaXN0cmF0aW9uX2dldCh2b2lkKQogewogICAgIHJldHVybiBpcEFkZHJlc3NUYWJsZV9pZl9jdHgudXNlcl9jdHg7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUEFERFJFU1NUQUJMRV9SRUdJU1RSQVRJT05fR0VUICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUEFERFJFU1NUQUJMRV9SRUdJU1RSQVRJT05fU0VUCiBpcEFkZHJlc3NUYWJsZV9yZWdpc3RyYXRpb24gKgogaXBBZGRyZXNzVGFibGVfcmVnaXN0cmF0aW9uX3NldChpcEFkZHJlc3NUYWJsZV9yZWdpc3RyYXRpb24gKiBuZXdyZWcpCiB7CkBAIC0xMDAsMTIgKzExOCwxNSBAQAogICAgIGlwQWRkcmVzc1RhYmxlX2lmX2N0eC51c2VyX2N0eCA9IG5ld3JlZzsKICAgICByZXR1cm4gb2xkOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBBRERSRVNTVEFCTEVfUkVHSVNUUkFUSU9OX1NFVCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBBRERSRVNTVEFCTEVfQ09OVEFJTkVSX1NJWkUKIGludAogaXBBZGRyZXNzVGFibGVfY29udGFpbmVyX3NpemUodm9pZCkKIHsKICAgICByZXR1cm4gQ09OVEFJTkVSX1NJWkUoaXBBZGRyZXNzVGFibGVfaWZfY3R4LmNvbnRhaW5lcik7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUEFERFJFU1NUQUJMRV9DT05UQUlORVJfU0laRSAqLwogCiB1X2ludAogaXBBZGRyZXNzVGFibGVfZGlydHlfZ2V0KHZvaWQpCkBAIC0xMjksNyArMTUwLDcgQEAKIHN0YXRpYyBOZXRzbm1wX05vZGVfSGFuZGxlciBfbWZkX2lwQWRkcmVzc1RhYmxlX3Bvc3RfcmVxdWVzdDsKIHN0YXRpYyBOZXRzbm1wX05vZGVfSGFuZGxlciBfbWZkX2lwQWRkcmVzc1RhYmxlX29iamVjdF9sb29rdXA7CiBzdGF0aWMgTmV0c25tcF9Ob2RlX0hhbmRsZXIgX21mZF9pcEFkZHJlc3NUYWJsZV9nZXRfdmFsdWVzOwotI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKKyNpZiAhKGRlZmluZWQoTkVUU05NUF9OT19XUklURV9TVVBQT1JUKSB8fCBkZWZpbmVkKE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCkpCiBzdGF0aWMgTmV0c25tcF9Ob2RlX0hhbmRsZXIgX21mZF9pcEFkZHJlc3NUYWJsZV9jaGVja19vYmplY3RzOwogc3RhdGljIE5ldHNubXBfTm9kZV9IYW5kbGVyIF9tZmRfaXBBZGRyZXNzVGFibGVfdW5kb19zZXR1cDsKIHN0YXRpYyBOZXRzbm1wX05vZGVfSGFuZGxlciBfbWZkX2lwQWRkcmVzc1RhYmxlX3NldF92YWx1ZXM7CkBAIC0xNDQsNyArMTY1LDcgQEAKICAgICAgICAgICAgICAgICBfaXBBZGRyZXNzVGFibGVfdW5kb19jb2x1bW4oaXBBZGRyZXNzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqIHZhciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbHVtbik7Ci0jZW5kaWYKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgfHwgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUICovCiAKIE5FVFNOTVBfU1RBVElDX0lOTElORSBpbnQKICAgICAgICAgICAgICAgICBfaXBBZGRyZXNzVGFibGVfY2hlY2tfaW5kZXhlcyhpcEFkZHJlc3NUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCk7CkBAIC0yMjIsNyArMjQzLDcgQEAKICAgICBhY2Nlc3NfbXVsdGlwbGV4ZXItPnBvc3RfcmVxdWVzdCA9IF9tZmRfaXBBZGRyZXNzVGFibGVfcG9zdF9yZXF1ZXN0OwogCiAKLSNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCisjaWYgIShkZWZpbmVkKE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCkgfHwgZGVmaW5lZChORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQpKQogICAgIC8qCiAgICAgICogUkVRVUlSRUQgd3JhcHBlcnMgZm9yIHNldCByZXF1ZXN0IGhhbmRsaW5nCiAgICAgICovCkBAIC0yNDYsNyArMjY3LDcgQEAKICAgICAgKi8KICAgICBhY2Nlc3NfbXVsdGlwbGV4ZXItPmNvbnNpc3RlbmN5X2NoZWNrcyA9CiAgICAgICAgIF9tZmRfaXBBZGRyZXNzVGFibGVfY2hlY2tfZGVwZW5kZW5jaWVzOwotI2VuZGlmCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUIHx8IE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCAqLwogCiAgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgKgpAQCAtMjgyLDcgKzMwMyw3IEBACiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+cG9zdF9yZXF1ZXN0KQogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX1BPU1RfUkVRVUVTVDsKIAotI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKKyNpZiAhKGRlZmluZWQoTkVUU05NUF9OT19XUklURV9TVVBQT1JUKSB8fCBkZWZpbmVkKE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCkpCiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+c2V0X3ZhbHVlcykKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9TRVRfVkFMVUVTOwogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPmlycmV2ZXJzaWJsZV9jb21taXQpCkBAIC0zMDUsNyArMzI2LDcgQEAKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9DT01NSVQ7CiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+dW5kb19jb21taXQpCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfVU5ET19DT01NSVQ7Ci0jZW5kaWYKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgfHwgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUICovCiAKICAgICBoYW5kbGVyID0gbmV0c25tcF9iYWJ5X3N0ZXBzX2hhbmRsZXJfZ2V0KG1mZF9tb2Rlcyk7CiAgICAgbmV0c25tcF9pbmplY3RfaGFuZGxlcihyZWdpbmZvLCBoYW5kbGVyKTsKQEAgLTEwNjEsNyArMTA4Miw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgpOwogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBfaXBBZGRyZXNzVGFibGVfY2hlY2tfaW5kZXhlcyAqLwogCi0jaWZuZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAorI2lmICEoZGVmaW5lZChORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQpIHx8IGRlZmluZWQoTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUKSkKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIFNFVCBwcm9jZXNzaW5nCkBAIC0xODkzLDcgKzE5MTQsNyBAQAogCiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIF9tZmRfaXBBZGRyZXNzVGFibGVfaXJyZXZlcnNpYmxlX2NvbW1pdCAqLwotI2VuZGlmCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUIHx8IE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCAqLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCkBAIC0yMDQyLDYgKzIwNjMsNyBAQAogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBfaXBBZGRyZXNzVGFibGVfY29udGFpbmVyX3NodXRkb3duICovCiAKIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQQUREUkVTU1RBQkxFX0VYVEVSTkFMX0FDQ0VTUwogaXBBZGRyZXNzVGFibGVfcm93cmVxX2N0eCAqCiBpcEFkZHJlc3NUYWJsZV9yb3dfZmluZF9ieV9taWJfaW5kZXgoaXBBZGRyZXNzVGFibGVfbWliX2luZGV4ICogbWliX2lkeCkKIHsKQEAgLTIwNjcsMyArMjA4OSw0IEBACiAKICAgICByZXR1cm4gcm93cmVxX2N0eDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQQUREUkVTU1RBQkxFX0VYVEVSTkFMX0FDQ0VTUyAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdGFfYWNjZXNzLmMgYi9hZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9hY2Nlc3MuYwppbmRleCBiMzU0YzNkLi43ZDdkY2ZlIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9hY2Nlc3MuYworKysgYi9hZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9hY2Nlc3MuYwpAQCAtOCw2ICs4LDcgQEAKICAqIHN0YW5kYXJkIE5ldC1TTk1QIGluY2x1ZGVzIAogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAKQEAgLTE5LDYgKzIwLDggQEAKIAogI2luY2x1ZGUgImlwRGVmYXVsdFJvdXRlclRhYmxlX2RhdGFfYWNjZXNzLmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNvbnRhaW5lcl9saWZvKQorCiAvKiogQGluZ3JvdXAgaW50ZXJmYWNlCiAgKiBAYWRkdG9ncm91cCBkYXRhX2FjY2VzcyBkYXRhX2FjY2VzczogUm91dGluZXMgdG8gYWNjZXNzIGRhdGEKICAqCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50ZXJmYWNlLmMgYi9hZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50ZXJmYWNlLmMKaW5kZXggNTJjYTQ0Zi4uNDBhZDcyYiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludGVyZmFjZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9pbnRlcmZhY2UuYwpAQCAtMzAsNiArMzAsNyBAQAogICogc3RhbmRhcmQgTmV0LVNOTVAgaW5jbHVkZXMgCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KIApAQCAtNDYsNiArNDcsMTAgQEAKIAogI2luY2x1ZGUgPGN0eXBlLmg+CiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHJvd19tZXJnZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGJhYnlfc3RlcHMpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja19hbGxfcmVxdWVzdHNfZXJyb3IpCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoqKgpAQCAtMjI3LDcgKzIzMiw3IEBACiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+cG9zdF9yZXF1ZXN0KQogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX1BPU1RfUkVRVUVTVDsKIAotI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKKyNpZiAhKGRlZmluZWQoTkVUU05NUF9OT19XUklURV9TVVBQT1JUKSB8fCBkZWZpbmVkKE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCkpCiAgICAgLyogWFhYIC0gYXJlIHRoZXNlIGFjdHVhbGx5IG5lY2Vzc2FyeT8gKi8KICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT5zZXRfdmFsdWVzKQogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX1NFVF9WQUxVRVM7CkBAIC0yNTEsNyArMjU2LDcgQEAKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9DT01NSVQ7CiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+dW5kb19jb21taXQpCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfVU5ET19DT01NSVQ7Ci0jZW5kaWYKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgfHwgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUICovCiAKICAgICBoYW5kbGVyID0gbmV0c25tcF9iYWJ5X3N0ZXBzX2hhbmRsZXJfZ2V0KG1mZF9tb2Rlcyk7CiAgICAgbmV0c25tcF9pbmplY3RfaGFuZGxlcihyZWdpbmZvLCBoYW5kbGVyKTsKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYyBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYwppbmRleCAzZmQxZDA5Li41NTlkMWMxIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jCkBAIC0zMCw2ICszMCw3IEBACiAgKiBzdGFuZGFyZCBOZXQtU05NUCBpbmNsdWRlcyAKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCkBAIC00Niw2ICs0NywxOCBAQAogCiAjaW5jbHVkZSA8Y3R5cGUuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlwSWZTdGF0c1RhYmxlX2V4dGVybmFsX2FjY2VzcywgbGlibmV0c25tcG1pYnMpCisKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHJvd19tZXJnZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGJhYnlfc3RlcHMpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja19hbGxfcmVxdWVzdHNfZXJyb3IpCisKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlwSWZTdGF0c1RhYmxlX2NvbnRhaW5lcl9zaXplLCBpcElmU3RhdHNUYWJsZV9leHRlcm5hbF9hY2Nlc3MpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaXBJZlN0YXRzVGFibGVfcmVnaXN0cmF0aW9uX3NldCwgaXBJZlN0YXRzVGFibGVfZXh0ZXJuYWxfYWNjZXNzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlwSWZTdGF0c1RhYmxlX3JlZ2lzdHJhdGlvbl9nZXQsIGlwSWZTdGF0c1RhYmxlX2V4dGVybmFsX2FjY2VzcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpcElmU3RhdHNUYWJsZV9jb250YWluZXJfZ2V0LCBpcElmU3RhdHNUYWJsZV9leHRlcm5hbF9hY2Nlc3MpCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoqKgpAQCAtODAsMTkgKzkzLDIzIEBACiBzdGF0aWMgdm9pZCAgICAKIF9pcElmU3RhdHNUYWJsZV9jb250YWluZXJfc2h1dGRvd24oaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlX2N0eCAqIGlmX2N0eCk7CiAKLQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQSUZTVEFUU1RBQkxFX0NPTlRBSU5FUl9HRVQKIG5ldHNubXBfY29udGFpbmVyICoKIGlwSWZTdGF0c1RhYmxlX2NvbnRhaW5lcl9nZXQodm9pZCkKIHsKICAgICByZXR1cm4gaXBJZlN0YXRzVGFibGVfaWZfY3R4LmNvbnRhaW5lcjsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQSUZTVEFUU1RBQkxFX0NPTlRBSU5FUl9HRVQgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQSUZTVEFUU1RBQkxFX1JFR0lTVFJBVElPTl9HRVQKIGlwSWZTdGF0c1RhYmxlX3JlZ2lzdHJhdGlvbiAqCiBpcElmU3RhdHNUYWJsZV9yZWdpc3RyYXRpb25fZ2V0KHZvaWQpCiB7CiAgICAgcmV0dXJuIGlwSWZTdGF0c1RhYmxlX2lmX2N0eC51c2VyX2N0eDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQSUZTVEFUU1RBQkxFX1JFR0lTVFJBVElPTl9HRVQgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQSUZTVEFUU1RBQkxFX1JFR0lTVFJBVElPTl9TRVQKIGlwSWZTdGF0c1RhYmxlX3JlZ2lzdHJhdGlvbiAqCiBpcElmU3RhdHNUYWJsZV9yZWdpc3RyYXRpb25fc2V0KGlwSWZTdGF0c1RhYmxlX3JlZ2lzdHJhdGlvbiAqIG5ld3JlZykKIHsKQEAgLTEwMCwxMiArMTE3LDE1IEBACiAgICAgaXBJZlN0YXRzVGFibGVfaWZfY3R4LnVzZXJfY3R4ID0gbmV3cmVnOwogICAgIHJldHVybiBvbGQ7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUElGU1RBVFNUQUJMRV9SRUdJU1RSQVRJT05fU0VUICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUElGU1RBVFNUQUJMRV9DT05UQUlORVJfU0laRQogaW50CiBpcElmU3RhdHNUYWJsZV9jb250YWluZXJfc2l6ZSh2b2lkKQogewogICAgIHJldHVybiBDT05UQUlORVJfU0laRShpcElmU3RhdHNUYWJsZV9pZl9jdHguY29udGFpbmVyKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQSUZTVEFUU1RBQkxFX0NPTlRBSU5FUl9TSVpFICovCiAKIC8qCiAgKiBpcElmU3RhdHNUYWJsZUxhc3RDaGFuZ2VkLCB3aGljaCBpcyB0aGUgbGFzdCB0aW1lIHRoYXQgYSByb3cgaW4KQEAgLTIyNyw2ICsyNDcsMTMgQEAKICAgICAgKi8KICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT5vYmplY3RfbG9va3VwKQogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX09CSkVDVF9MT09LVVA7CisKKyAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT5wcmVfcmVxdWVzdCkKKyAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9QUkVfUkVRVUVTVDsKKyAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT5wb3N0X3JlcXVlc3QpCisgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfUE9TVF9SRVFVRVNUOworCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnNldF92YWx1ZXMpCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfU0VUX1ZBTFVFUzsKICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT5pcnJldmVyc2libGVfY29tbWl0KQpAQCAtMjM0LDExICsyNjEsNiBAQAogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPm9iamVjdF9zeW50YXhfY2hlY2tzKQogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX0NIRUNLX09CSkVDVDsKIAotICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnByZV9yZXF1ZXN0KQotICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX1BSRV9SRVFVRVNUOwotICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnBvc3RfcmVxdWVzdCkKLSAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9QT1NUX1JFUVVFU1Q7Ci0KICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT51bmRvX3NldHVwKQogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX1VORE9fU0VUVVA7CiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+dW5kb19jbGVhbnVwKQpAQCAtMjU0LDYgKzI3Niw3IEBACiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfQ09NTUlUOwogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnVuZG9fY29tbWl0KQogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX1VORE9fQ09NTUlUOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgIGhhbmRsZXIgPSBuZXRzbm1wX2JhYnlfc3RlcHNfaGFuZGxlcl9nZXQobWZkX21vZGVzKTsKICAgICBuZXRzbm1wX2luamVjdF9oYW5kbGVyKHJlZ2luZm8sIGhhbmRsZXIpOwpAQCAtMjk1LDcgKzMxOCw3IEBACiAgICAgICovCiAgICAgewogICAgICAgICBvaWQgICAgIGxjX29pZFtdID0geyBJUElGU1RBVFNUQUJMRUxBU1RDSEFOR0VfT0lEIH07Ci0gICAgICAgIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zY2FsYXIobmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24KKyAgICAgICAgbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX3NjYWxhcjIobmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24KICAgICAgICAgICAgICAgICAoImlwSWZTdGF0c1RhYmxlTGFzdENoYW5nZWQiLCBOVUxMLAogICAgICAgICAgICAgICAgICBsY19vaWQsIE9JRF9MRU5HVEgobGNfb2lkKSwKICAgICAgICAgICAgICAgICAgSEFORExFUl9DQU5fUk9OTFkpLApAQCAtMTM2OCw2ICsxMzkxLDcgQEAKIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogX2lwSWZTdGF0c1RhYmxlX2NvbnRhaW5lcl9zaHV0ZG93biAqLwogCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUElGU1RBVFNUQUJMRV9FWFRFUk5BTF9BQ0NFU1MKIGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgogaXBJZlN0YXRzVGFibGVfcm93X2ZpbmRfYnlfbWliX2luZGV4KGlwSWZTdGF0c1RhYmxlX21pYl9pbmRleCAqIG1pYl9pZHgpCiB7CkBAIC0xMzkzLDMgKzE0MTcsNCBAQAogCiAgICAgcmV0dXJuIHJvd3JlcV9jdHg7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUElGU1RBVFNUQUJMRV9FWFRFUk5BTF9BQ0NFU1MgKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMKaW5kZXggMDk3Y2ViYi4uZTFjYTJjYiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMKQEAgLTMwLDYgKzMwLDcgQEAKICAqIHN0YW5kYXJkIE5ldC1TTk1QIGluY2x1ZGVzIAogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAKQEAgLTQ2LDYgKzQ3LDE4IEBACiAKICNpbmNsdWRlIDxjdHlwZS5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaXBTeXN0ZW1TdGF0c1RhYmxlX2V4dGVybmFsX2FjY2VzcywgbGlibmV0c25tcG1pYnMpCisKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHJvd19tZXJnZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGJhYnlfc3RlcHMpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja19hbGxfcmVxdWVzdHNfZXJyb3IpCisKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlwU3lzdGVtU3RhdHNUYWJsZV9jb250YWluZXJfc2l6ZSwgaXBTeXN0ZW1TdGF0c1RhYmxlX2V4dGVybmFsX2FjY2VzcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpcFN5c3RlbVN0YXRzVGFibGVfcmVnaXN0cmF0aW9uX3NldCwgaXBTeXN0ZW1TdGF0c1RhYmxlX2V4dGVybmFsX2FjY2VzcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpcFN5c3RlbVN0YXRzVGFibGVfcmVnaXN0cmF0aW9uX2dldCwgaXBTeXN0ZW1TdGF0c1RhYmxlX2V4dGVybmFsX2FjY2VzcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpcFN5c3RlbVN0YXRzVGFibGVfY29udGFpbmVyX2dldCwgaXBTeXN0ZW1TdGF0c1RhYmxlX2V4dGVybmFsX2FjY2VzcykKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKioqCkBAIC04MCwxOSArOTMsMjMgQEAKICAgICAgICAgICAgICAgICBfaXBTeXN0ZW1TdGF0c1RhYmxlX2NvbnRhaW5lcl9zaHV0ZG93bihpcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlX2N0eCAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZfY3R4KTsKIAotCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBTWVNURU1TVEFUU1RBQkxFX0NPTlRBSU5FUl9HRVQKIG5ldHNubXBfY29udGFpbmVyICoKIGlwU3lzdGVtU3RhdHNUYWJsZV9jb250YWluZXJfZ2V0KHZvaWQpCiB7CiAgICAgcmV0dXJuIGlwU3lzdGVtU3RhdHNUYWJsZV9pZl9jdHguY29udGFpbmVyOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBTWVNURU1TVEFUU1RBQkxFX0NPTlRBSU5FUl9HRVQgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQU1lTVEVNU1RBVFNUQUJMRV9SRUdJU1RSQVRJT05fR0VUCiBpcFN5c3RlbVN0YXRzVGFibGVfcmVnaXN0cmF0aW9uICoKIGlwU3lzdGVtU3RhdHNUYWJsZV9yZWdpc3RyYXRpb25fZ2V0KHZvaWQpCiB7CiAgICAgcmV0dXJuIGlwU3lzdGVtU3RhdHNUYWJsZV9pZl9jdHgudXNlcl9jdHg7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUFNZU1RFTVNUQVRTVEFCTEVfUkVHSVNUUkFUSU9OX0dFVCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBTWVNURU1TVEFUU1RBQkxFX1JFR0lTVFJBVElPTl9TRVQKIGlwU3lzdGVtU3RhdHNUYWJsZV9yZWdpc3RyYXRpb24gKgogaXBTeXN0ZW1TdGF0c1RhYmxlX3JlZ2lzdHJhdGlvbl9zZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3JlZ2lzdHJhdGlvbiAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdyZWcpCkBAIC0xMDIsMTIgKzExOSwxNSBAQAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9pZl9jdHgudXNlcl9jdHggPSBuZXdyZWc7CiAgICAgcmV0dXJuIG9sZDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQU1lTVEVNU1RBVFNUQUJMRV9SRUdJU1RSQVRJT05fU0VUICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUFNZU1RFTVNUQVRTVEFCTEVfQ09OVEFJTkVSX1NJWkUKIGludAogaXBTeXN0ZW1TdGF0c1RhYmxlX2NvbnRhaW5lcl9zaXplKHZvaWQpCiB7CiAgICAgcmV0dXJuIENPTlRBSU5FUl9TSVpFKGlwU3lzdGVtU3RhdHNUYWJsZV9pZl9jdHguY29udGFpbmVyKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQU1lTVEVNU1RBVFNUQUJMRV9DT05UQUlORVJfU0laRSAqLwogCiAvKgogICogbWZkIG11bHRpcGxleGVyIG1vZGVzCkBAIC0yMjAsNyArMjQwLDggQEAKICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT5wb3N0X3JlcXVlc3QpCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfUE9TVF9SRVFVRVNUOwogCi0jaWZuZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAorI2lmICEoZGVmaW5lZChORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQpIHx8IGRlZmluZWQoTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUKSkKKyAgICAvKiBYWFggLSBhcmUgdGhlc2UgYWN0dWFsbHkgbmVjZXNzYXJ5PyAqLwogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnNldF92YWx1ZXMpCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfU0VUX1ZBTFVFUzsKICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT5pcnJldmVyc2libGVfY29tbWl0KQpAQCAtMjQzLDcgKzI2NCw3IEBACiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfQ09NTUlUOwogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnVuZG9fY29tbWl0KQogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX1VORE9fQ09NTUlUOwotI2VuZGlmCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUIHx8IE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCAqLwogCiAgICAgaGFuZGxlciA9IG5ldHNubXBfYmFieV9zdGVwc19oYW5kbGVyX2dldChtZmRfbW9kZXMpOwogICAgIG5ldHNubXBfaW5qZWN0X2hhbmRsZXIocmVnaW5mbywgaGFuZGxlcik7CkBAIC0xMTc1LDcgKzExOTYsNyBAQAogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBfbWZkX2lwU3lzdGVtU3RhdHNUYWJsZV9nZXRfdmFsdWVzICovCiAKIAotI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKKyNpZiAhKGRlZmluZWQoTkVUU05NUF9OT19XUklURV9TVVBQT1JUKSB8fCBkZWZpbmVkKE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCkpCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBTRVQgcHJvY2Vzc2luZwpAQCAtMTMzOSw2ICsxMzYwLDcgQEAKIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogX2lwU3lzdGVtU3RhdHNUYWJsZV9jb250YWluZXJfc2h1dGRvd24gKi8KIAogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBTWVNURU1TVEFUU1RBQkxFX0VYVEVSTkFMX0FDQ0VTUwogaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgogaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd19maW5kX2J5X21pYl9pbmRleChpcFN5c3RlbVN0YXRzVGFibGVfbWliX2luZGV4ICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWliX2lkeCkKQEAgLTEzNjYsMyArMTM4OCw0IEBACiAKICAgICByZXR1cm4gcm93cmVxX2N0eDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQU1lTVEVNU1RBVFNUQUJMRV9FWFRFUk5BTF9BQ0NFU1MgKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMgYi9hZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jCmluZGV4IDc4MDIxYTkuLjkwOTYyNjkgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuYwpAQCAtNCw2ICs0LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAKQEAgLTExLDI3ICsxMiwzMyBAQAogCiAjaW5jbHVkZSAiaXBfc2NhbGFycy5oIgogCi1pbnQKK3N0YXRpYyBpbnQKIGhhbmRsZV9pcEZvcndhcmRpbmcobmV0c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciwKICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnaW5mbywKICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm8gKnJlcWluZm8sCiAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfcmVxdWVzdF9pbmZvICpyZXF1ZXN0cyk7CiAKLWludAorc3RhdGljIGludAogaGFuZGxlX2lwRGVmYXVsdFRUTChuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWdpbmZvLAotICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mbyAqcmVxaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9yZXF1ZXN0X2luZm8gKnJlcXVlc3RzKTsKKyAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnaW5mbywKKyAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm8gKnJlcWluZm8sCisgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfcmVxdWVzdF9pbmZvICpyZXF1ZXN0cyk7CiAKLWludAorc3RhdGljIGludAogaGFuZGxlX2lwdjZJcEZvcndhcmRpbmcobmV0c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciwKICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKnJlZ2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mbyAqcmVxaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfcmVxdWVzdF9pbmZvICpyZXF1ZXN0cyk7CiAKLWludCBpcEFkZHJlc3NTcGluTG9ja1ZhbHVlOworc3RhdGljIGludAoraGFuZGxlX2lwdjZJcERlZmF1bHRIb3BMaW1pdChuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWdpbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mbyAqcmVxaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9yZXF1ZXN0X2luZm8gKnJlcXVlc3RzKTsKIAotaW50CitzdGF0aWMgaW50IGlwQWRkcmVzc1NwaW5Mb2NrVmFsdWU7CisKK3N0YXRpYyBpbnQKIGhhbmRsZV9pcEFkZHJlc3NTcGluTG9jayhuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKnJlZ2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm8gKnJlcWluZm8sCkBAIC00MiwyNiArNDksMjQgQEAKIGluaXRfaXBfc2NhbGFycyh2b2lkKQogewogICAgIHN0YXRpYyBvaWQgCSAgICBpcEZvcndhcmRpbmdfb2lkW10gPSB7IDEsIDMsIDYsIDEsIDIsIDEsIDQsIDEgfTsKLSAgICBzdGF0aWMgb2lkIAkgICAgaXBEZWZhdWx0VFRMX29pZFtdID0geyAxLCAzLCA2LCAxLCAyLCAxLCA0LCAyLCAwIH07Ci0gICAgc3RhdGljIG9pZCAgICAgIGlwUmVhc21UaW1lb3V0X29pZFtdID0geyAxLCAzLCA2LCAxLCAyLCAxLCA0LCAxMywgMCB9OworICAgIHN0YXRpYyBvaWQgCSAgICBpcERlZmF1bHRUVExfb2lkW10gPSB7IDEsIDMsIDYsIDEsIDIsIDEsIDQsIDIgfTsKICAgICBzdGF0aWMgb2lkICAgICAgaXB2NklwRm9yd2FyZGluZ19vaWRbXSA9IHsgMSwgMywgNiwgMSwgMiwgMSwgNCwgMjUgfTsKLSAgICBzdGF0aWMgb2lkICAgICAgaXB2NklwRGVmYXVsdEhvcExpbWl0X29pZFtdID0KLSAgICAgICAgeyAxLCAzLCA2LCAxLCAyLCAxLCA0LCAyNiwgMCB9OworICAgIHN0YXRpYyBvaWQgICAgICBpcHY2SXBEZWZhdWx0SG9wTGltaXRfb2lkW10gPSB7IDEsIDMsIDYsIDEsIDIsIDEsIDQsIDI2IH07CiAgICAgc3RhdGljIG9pZCAgICAgIGlwQWRkcmVzc1NwaW5Mb2NrX29pZFtdID0geyAxLCAzLCA2LCAxLCAyLCAxLCA0LCAzMyB9OwogCiAgICAgREVCVUdNU0dUTCgoImlwX3NjYWxhciIsICJJbml0aWFsaXppbmdcbiIpKTsKIAotICAgIG5ldHNubXBfcmVnaXN0ZXJfbnVtX2ZpbGVfaW5zdGFuY2UKLSAgICAgICAgKCJpcFJlYXNtVGltZW91dCIsCi0gICAgICAgICBpcFJlYXNtVGltZW91dF9vaWQsIE9JRF9MRU5HVEgoaXBSZWFzbVRpbWVvdXRfb2lkKSwKLSAgICAgICAgICIvcHJvYy9zeXMvbmV0L2lwdjQvaXBmcmFnX3RpbWUiLCBBU05fSU5URUdFUiwKLSAgICAgICAgIEhBTkRMRVJfQ0FOX1JPTkxZLCBOVUxMLCBOVUxMKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgIG5ldHNubXBfcmVnaXN0ZXJfc2NhbGFyKG5ldHNubXBfY3JlYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgiaXBGb3J3YXJkaW5nIiwgaGFuZGxlX2lwRm9yd2FyZGluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwRm9yd2FyZGluZ19vaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPSURfTEVOR1RIKGlwRm9yd2FyZGluZ19vaWQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEFORExFUl9DQU5fUldSSVRFKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBuZXRzbm1wX3JlZ2lzdGVyX3NjYWxhcihuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoImlwRGVmYXVsdFRUTCIsIGhhbmRsZV9pcERlZmF1bHRUVEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcERlZmF1bHRUVExfb2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0lEX0xFTkdUSChpcERlZmF1bHRUVExfb2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JXUklURSkpOwogCiAgICAgbmV0c25tcF9yZWdpc3Rlcl9zY2FsYXIobmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoImlwdjZJcEZvcndhcmRpbmciLCBoYW5kbGVfaXB2NklwRm9yd2FyZGluZywKQEAgLTcwLDYgKzc1LDEyIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JXUklURSkpOwogCiAgICAgbmV0c25tcF9yZWdpc3Rlcl9zY2FsYXIobmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoImlwdjZJcERlZmF1bHRIb3BMaW1pdCIsIGhhbmRsZV9pcHY2SXBEZWZhdWx0SG9wTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwdjZJcERlZmF1bHRIb3BMaW1pdF9vaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9JRF9MRU5HVEgoaXB2NklwRGVmYXVsdEhvcExpbWl0X29pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JXUklURSkpOworCisgICAgbmV0c25tcF9yZWdpc3Rlcl9zY2FsYXIobmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoImlwQWRkcmVzc1NwaW5Mb2NrIiwgaGFuZGxlX2lwQWRkcmVzc1NwaW5Mb2NrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcEFkZHJlc3NTcGluTG9ja19vaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9JRF9MRU5HVEgoaXBBZGRyZXNzU3BpbkxvY2tfb2lkKSwKQEAgLTc4LDIxICs4OSw5IEBACiAgICAgLyogSW5pdGlhbGl6ZSBzcGluIGxvY2sgd2l0aCByYW5kb20gdmFsdWUgKi8KICAgICBpcEFkZHJlc3NTcGluTG9ja1ZhbHVlID0gKGludCkgcmFuZG9tKCk7CiAKLSAgICBuZXRzbm1wX3JlZ2lzdGVyX251bV9maWxlX2luc3RhbmNlCi0gICAgICAgICgiaXB2NklwRGVmYXVsdEhvcExpbWl0IiwKLSAgICAgICAgIGlwdjZJcERlZmF1bHRIb3BMaW1pdF9vaWQsIE9JRF9MRU5HVEgoaXB2NklwRGVmYXVsdEhvcExpbWl0X29pZCksCi0gICAgICAgICAiL3Byb2Mvc3lzL25ldC9pcHY2L2NvbmYvZGVmYXVsdC9ob3BfbGltaXQiLCBBU05fSU5URUdFUiwKLSAgICAgICAgIEhBTkRMRVJfQ0FOX1JXUklURSwgTlVMTCwgTlVMTCk7Ci0KLSAgICAgbmV0c25tcF9yZWdpc3Rlcl9udW1fZmlsZV9pbnN0YW5jZQotICAgICAgICAoImlwRGVmYXVsdFRUTCIsCi0gICAgICAgICBpcERlZmF1bHRUVExfb2lkLCBPSURfTEVOR1RIKGlwRGVmYXVsdFRUTF9vaWQpLAotICAgICAgICAgIi9wcm9jL3N5cy9uZXQvaXB2NC9pcF9kZWZhdWx0X3R0bCIsIEFTTl9JTlRFR0VSLAotICAgICAgICAgSEFORExFUl9DQU5fUldSSVRFLCBOVUxMLCBOVUxMKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogfQogCi1pbnQKK3N0YXRpYyBpbnQKIGhhbmRsZV9pcEZvcndhcmRpbmcobmV0c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm8gICAqcmVxaW5mbywKQEAgLTEyMiw2ICsxMjEsNyBAQAogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgIC8qCiAgICAgICAgICAqIFNFVCBSRVFVRVNUCiAgICAgICAgICAqCkBAIC0xNzksNiArMTc5LDcgQEAKICAgICAgICAgICAgICAgICAgbmV0c25tcF9zZXRfcmVxdWVzdF9lcnJvcihyZXFpbmZvLCByZXF1ZXN0cywgU05NUF9FUlJfVU5ET0ZBSUxFRCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgLyogd2Ugc2hvdWxkIG5ldmVyIGdldCBoZXJlLCBzbyB0aGlzIGlzIGEgcmVhbGx5IGJhZCBlcnJvciAqLwpAQCAtMTkwLDcgKzE5MSwxMDYgQEAKIH0KIAogCi1pbnQKK3N0YXRpYyBpbnQKK2hhbmRsZV9pcERlZmF1bHRUVEwobmV0c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciwKKyAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnaW5mbywKKyAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm8gICAqcmVxaW5mbywKKyAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9yZXF1ZXN0X2luZm8gICAgICAgICAqcmVxdWVzdHMpCit7CisgICAgaW50ICAgICAgcmM7CisgICAgdV9sb25nICAgdmFsdWU7CisKKyAgICAvKiBXZSBhcmUgbmV2ZXIgY2FsbGVkIGZvciBhIEdFVE5FWFQgaWYgaXQncyByZWdpc3RlcmVkIGFzIGEKKyAgICAgICAiaW5zdGFuY2UiLCBhcyBpdCdzICJtYWdpY2FsbHkiIGhhbmRsZWQgZm9yIHVzLiAgKi8KKworICAgIC8qIGEgaW5zdGFuY2UgaGFuZGxlciBhbHNvIG9ubHkgaGFuZHMgdXMgb25lIHJlcXVlc3QgYXQgYSB0aW1lLCBzbworICAgICAgIHdlIGRvbid0IG5lZWQgdG8gbG9vcCBvdmVyIGEgbGlzdCBvZiByZXF1ZXN0czsgd2UnbGwgb25seSBnZXQgb25lLiAqLworCisgICAgc3dpdGNoKHJlcWluZm8tPm1vZGUpIHsKKworICAgICAgICBjYXNlIE1PREVfR0VUOgorICAgICAgICAgICAgcmMgPSBuZXRzbm1wX2FyY2hfaXBfc2NhbGFyc19pcERlZmF1bHRUVExfZ2V0KCZ2YWx1ZSk7CisgICAgICAgICAgICBpZiAocmMgIT0gMCkgeworICAgICAgICAgICAgICAgIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IocmVxaW5mbywgcmVxdWVzdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBfTk9TVUNISU5TVEFOQ0UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgc25tcF9zZXRfdmFyX3R5cGVkX3ZhbHVlKHJlcXVlc3RzLT5yZXF1ZXN0dmIsIEFTTl9JTlRFR0VSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1X2NoYXIgKikmdmFsdWUsIHNpemVvZih2YWx1ZSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCisgICAgICAgIC8qCisgICAgICAgICAqIFNFVCBSRVFVRVNUCisgICAgICAgICAqCisgICAgICAgICAqIG11bHRpcGxlIHN0YXRlcyBpbiB0aGUgdHJhbnNhY3Rpb24uICBTZWU6CisgICAgICAgICAqIGh0dHA6Ly93d3cubmV0LXNubXAub3JnL3R1dG9yaWFsLTUvdG9vbGtpdC9taWJfbW9kdWxlL3NldC1hY3Rpb25zLmpwZworICAgICAgICAgKi8KKyAgICAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMToKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTI6CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogc3RvcmUgb2xkIGluZm8gZm9yIHVuZG8gbGF0ZXIKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcmMgPSBuZXRzbm1wX2FyY2hfaXBfc2NhbGFyc19pcERlZmF1bHRUVExfZ2V0KCZ2YWx1ZSk7CisgICAgICAgICAgICBpZiAocmMgPCAwKSB7CisgICAgICAgICAgICAgICAgbmV0c25tcF9zZXRfcmVxdWVzdF9lcnJvcihyZXFpbmZvLCByZXF1ZXN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBfRVJSX05PQ1JFQVRJT04pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB1X2xvbmcgKnZhbHVlX3NhdmU7CisgICAgICAgICAgICAgICAgdmFsdWVfc2F2ZSA9IG5ldHNubXBfbWVtZHVwKCZ2YWx1ZSwgc2l6ZW9mKHZhbHVlKSk7CisgICAgICAgICAgICAgICAgaWYgKCBOVUxMID09IHZhbHVlX3NhdmUgKQorICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yKHJlcWluZm8sIHJlcXVlc3RzLCBTTk1QX0VSUl9SRVNPVVJDRVVOQVZBSUxBQkxFKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfcmVxdWVzdF9hZGRfbGlzdF9kYXRhKHJlcXVlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV9kYXRhX2xpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJpcHR0bCIsIHZhbHVlX3NhdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUpKTsKKwkgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBNT0RFX1NFVF9GUkVFOgorICAgICAgICAgICAgLyogWFhYOiBmcmVlIHJlc291cmNlcyBhbGxvY2F0ZWQgaW4gUkVTRVJWRTEgYW5kL29yCisgICAgICAgICAgICAgICBSRVNFUlZFMi4gIFNvbWV0aGluZyBmYWlsZWQgc29tZXdoZXJlLCBhbmQgdGhlIHN0YXRlcworICAgICAgICAgICAgICAgYmVsb3cgd29uJ3QgYmUgY2FsbGVkLiAqLworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBNT0RFX1NFVF9BQ1RJT046CisgICAgICAgICAgICAvKiBYWFg6IHBlcmZvcm0gdGhlIHZhbHVlIGNoYW5nZSBoZXJlICovCisgICAgICAgICAgICB2YWx1ZSA9ICAqKHJlcXVlc3RzLT5yZXF1ZXN0dmItPnZhbC5pbnRlZ2VyKTsKKyAgICAgICAgICAgIHJjID0gbmV0c25tcF9hcmNoX2lwX3NjYWxhcnNfaXBEZWZhdWx0VFRMX3NldCh2YWx1ZSk7CisgICAgICAgICAgICBpZiAoIDAgIT0gcmMgKSB7CisgICAgICAgICAgICAgICAgbmV0c25tcF9zZXRfcmVxdWVzdF9lcnJvcihyZXFpbmZvLCByZXF1ZXN0cywgcmMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBNT0RFX1NFVF9DT01NSVQ6CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIE1PREVfU0VUX1VORE86CisgICAgICAgICAgICAgdmFsdWUgPQorICAgICAgICAgICAgICAgICAqKCh1X2xvbmcgKikgbmV0c25tcF9yZXF1ZXN0X2dldF9saXN0X2RhdGEocmVxdWVzdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaXB0dGwiKSk7CisgICAgICAgICAgICAgcmMgPSBuZXRzbm1wX2FyY2hfaXBfc2NhbGFyc19pcERlZmF1bHRUVExfc2V0KHZhbHVlKTsKKyAgICAgICAgICAgICBpZiAoIDAgIT0gcmMgKSB7CisgICAgICAgICAgICAgICAgIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IocmVxaW5mbywgcmVxdWVzdHMsIFNOTVBfRVJSX1VORE9GQUlMRUQpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBicmVhazsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8qIHdlIHNob3VsZCBuZXZlciBnZXQgaGVyZSwgc28gdGhpcyBpcyBhIHJlYWxseSBiYWQgZXJyb3IgKi8KKyAgICAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJ1bmtub3duIG1vZGUgKCVkKSBpbiBoYW5kbGVfaXBEZWZhdWx0VFRMXG4iLCByZXFpbmZvLT5tb2RlICk7CisgICAgICAgICAgICByZXR1cm4gU05NUF9FUlJfR0VORVJSOworICAgIH0KKworICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOworfQorCisKK3N0YXRpYyBpbnQKIGhhbmRsZV9pcHY2SXBGb3J3YXJkaW5nKG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWdpbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm8gKnJlcWluZm8sCkBAIC0yMjMsNiArMzIzLDcgQEAKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgLyoKICAgICAgICAgICogU0VUIFJFUVVFU1QKICAgICAgICAgICoKQEAgLTI1Miw3ICszNTMsNyBAQAogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgbmV0c25tcF9yZXF1ZXN0X2FkZF9saXN0X2RhdGEocmVxdWVzdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfZGF0YV9saXN0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJpcGZ3IiwgdmFsdWVfc2F2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoImlwNmZ3IiwgdmFsdWVfc2F2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJlZSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0yNzUsMTIgKzM3NiwxMyBAQAogICAgIGNhc2UgTU9ERV9TRVRfVU5ETzoKICAgICAgICAgdmFsdWUgPQogICAgICAgICAgICAgKigodV9sb25nICopIG5ldHNubXBfcmVxdWVzdF9nZXRfbGlzdF9kYXRhKHJlcXVlc3RzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpcGZ3IikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpcDZmdyIpKTsKICAgICAgICAgcmMgPSBuZXRzbm1wX2FyY2hfaXBfc2NhbGFyc19pcHY2SXBGb3J3YXJkaW5nX3NldCh2YWx1ZSk7CiAgICAgICAgIGlmICggMCAhPSByYyApIHsKICAgICAgICAgICAgIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IocmVxaW5mbywgcmVxdWVzdHMsIFNOTVBfRVJSX1VORE9GQUlMRUQpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgIGRlZmF1bHQ6CiAgICAgICAgIC8qCkBAIC0yOTQsNyArMzk2LDggQEAKICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKIH0KIAotaW50CisKK3N0YXRpYyBpbnQKIGhhbmRsZV9pcEFkZHJlc3NTcGluTG9jayhuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWdpbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mbyAgICpyZXFpbmZvLApAQCAtMzE2LDYgKzQxOSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGlwQWRkcmVzc1NwaW5Mb2NrVmFsdWUpKTsKICAgICAgICAgICAgIGJyZWFrOwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAvKgogICAgICAgICAgKiBTRVQgUkVRVUVTVAogICAgICAgICAgKgpAQCAtMzUxLDYgKzQ1NSw3IEBACiAKICAgICAgICAgY2FzZSBNT0RFX1NFVF9VTkRPOgogICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgLyogd2Ugc2hvdWxkIG5ldmVyIGdldCBoZXJlLCBzbyB0aGlzIGlzIGEgcmVhbGx5IGJhZCBlcnJvciAqLwpAQCAtMzYwLDMgKzQ2NSwxMjMgQEAKIAogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQorCisKK3N0YXRpYyBpbnQKK2hhbmRsZV9pcHY2SXBEZWZhdWx0SG9wTGltaXQobmV0c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm8gKnJlcWluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfcmVxdWVzdF9pbmZvICpyZXF1ZXN0cykKK3sKKyAgICB1X2xvbmcgICAgICAgICAgdmFsdWU7CisgICAgaW50ICAgICAgICAgICAgIHJjOworICAgIC8qCisgICAgICogV2UgYXJlIG5ldmVyIGNhbGxlZCBmb3IgYSBHRVRORVhUIGlmIGl0J3MgcmVnaXN0ZXJlZCBhcyBhCisgICAgICogImluc3RhbmNlIiwgYXMgaXQncyAibWFnaWNhbGx5IiBoYW5kbGVkIGZvciB1cy4gIAorICAgICAqLworCisgICAgLyoKKyAgICAgKiBhIGluc3RhbmNlIGhhbmRsZXIgYWxzbyBvbmx5IGhhbmRzIHVzIG9uZSByZXF1ZXN0IGF0IGEgdGltZSwgc28KKyAgICAgKiB3ZSBkb24ndCBuZWVkIHRvIGxvb3Agb3ZlciBhIGxpc3Qgb2YgcmVxdWVzdHM7IHdlJ2xsIG9ubHkgZ2V0IG9uZS4gCisgICAgICovCisKKyAgICBzd2l0Y2ggKHJlcWluZm8tPm1vZGUpIHsKKworICAgIGNhc2UgTU9ERV9HRVQ6CisKKyAgICAgICAgcmMgPSBuZXRzbm1wX2FyY2hfaXBfc2NhbGFyc19pcHY2SXBEZWZhdWx0SG9wTGltaXRfZ2V0KCZ2YWx1ZSk7CisgICAgICAgIGlmIChyYyAhPSAwKSB7CisgICAgICAgICAgICBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yKHJlcWluZm8sIHJlcXVlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBfTk9TVUNISU5TVEFOQ0UpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgc25tcF9zZXRfdmFyX3R5cGVkX3ZhbHVlKHJlcXVlc3RzLT5yZXF1ZXN0dmIsIEFTTl9JTlRFR0VSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVfY2hhciAqKSZ2YWx1ZSwgc2l6ZW9mKHZhbHVlKSk7CisgICAgICAgIH0KKworICAgICAgICBicmVhazsKKworI2lmZGVmIE5PVFlFVAorICAgICAgICAvKgorICAgICAgICAgKiBTRVQgUkVRVUVTVAorICAgICAgICAgKgorICAgICAgICAgKiBtdWx0aXBsZSBzdGF0ZXMgaW4gdGhlIHRyYW5zYWN0aW9uLiAgU2VlOgorICAgICAgICAgKiBodHRwOi8vd3d3Lm5ldC1zbm1wLm9yZy90dXRvcmlhbC01L3Rvb2xraXQvbWliX21vZHVsZS9zZXQtYWN0aW9ucy5qcGcKKyAgICAgICAgICovCisgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMToKKyAgICAgICAgLyoKKyAgICAgICAgICogb3IgeW91IGNvdWxkIHVzZSBuZXRzbm1wX2NoZWNrX3ZiX3R5cGVfYW5kX3NpemUgaW5zdGVhZCAKKyAgICAgICAgICovCisgICAgICAgIHJjID0gbmV0c25tcF9jaGVja192Yl90eXBlKHJlcXVlc3RzLT5yZXF1ZXN0dmIsIEFTTl9JTlRFR0VSKTsKKyAgICAgICAgaWYgKHJjICE9IFNOTVBfRVJSX05PRVJST1IpIHsKKyAgICAgICAgICAgIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IocmVxaW5mbywgcmVxdWVzdHMsIHJjKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTI6CisgICAgICAgIC8qCisgICAgICAgICAqIFhYWCBtYWxsb2MgInVuZG8iIHN0b3JhZ2UgYnVmZmVyIAorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCAvKiBYWFggaWYgbWFsbG9jLCBvciB3aGF0ZXZlciwgZmFpbGVkOiAqLyApIHsKKyAgICAgICAgICAgIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IocmVxaW5mbywgcmVxdWVzdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBfRVJSX1JFU09VUkNFVU5BVkFJTEFCTEUpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBNT0RFX1NFVF9GUkVFOgorICAgICAgICAvKgorICAgICAgICAgKiBYWFg6IGZyZWUgcmVzb3VyY2VzIGFsbG9jYXRlZCBpbiBSRVNFUlZFMSBhbmQvb3IKKyAgICAgICAgICogUkVTRVJWRTIuICBTb21ldGhpbmcgZmFpbGVkIHNvbWV3aGVyZSwgYW5kIHRoZSBzdGF0ZXMKKyAgICAgICAgICogYmVsb3cgd29uJ3QgYmUgY2FsbGVkLiAKKyAgICAgICAgICovCisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBNT0RFX1NFVF9BQ1RJT046CisgICAgICAgIC8qCisgICAgICAgICAqIFhYWDogcGVyZm9ybSB0aGUgdmFsdWUgY2hhbmdlIGhlcmUgCisgICAgICAgICAqLworICAgICAgICBpZiAoIC8qIFhYWDogZXJyb3I/ICovICkgeworICAgICAgICAgICAgbmV0c25tcF9zZXRfcmVxdWVzdF9lcnJvcihyZXFpbmZvLCByZXF1ZXN0cywgLyogc29tZSBlcnJvciAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBNT0RFX1NFVF9DT01NSVQ6CisgICAgICAgIC8qCisgICAgICAgICAqIFhYWDogZGVsZXRlIHRlbXBvcmFyeSBzdG9yYWdlIAorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCAvKiBYWFg6IGVycm9yPyAqLyApIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiB0cnkgX3JlYWxseV9yZWFsbHlfIGhhcmQgdG8gbmV2ZXIgZ2V0IHRvIHRoaXMgcG9pbnQgCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IocmVxaW5mbywgcmVxdWVzdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBfRVJSX0NPTU1JVEZBSUxFRCk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIE1PREVfU0VUX1VORE86CisgICAgICAgIC8qCisgICAgICAgICAqIFhYWDogVU5ETyBhbmQgcmV0dXJuIHRvIHByZXZpb3VzIHZhbHVlIGZvciB0aGUgb2JqZWN0IAorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCAvKiBYWFg6IGVycm9yPyAqLyApIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiB0cnkgX3JlYWxseV9yZWFsbHlfIGhhcmQgdG8gbmV2ZXIgZ2V0IHRvIHRoaXMgcG9pbnQgCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IocmVxaW5mbywgcmVxdWVzdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBfRVJSX1VORE9GQUlMRUQpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworI2VuZGlmCisKKyAgICBkZWZhdWx0OgorICAgICAgICAvKgorICAgICAgICAgKiB3ZSBzaG91bGQgbmV2ZXIgZ2V0IGhlcmUsIHNvIHRoaXMgaXMgYSByZWFsbHkgYmFkIGVycm9yIAorICAgICAgICAgKi8KKyAgICAgICAgc25tcF9sb2coTE9HX0VSUiwKKyAgICAgICAgICAgICAgICAgInVua25vd24gbW9kZSAoJWQpIGluIGhhbmRsZV9pcHY2SXBEZWZhdWx0SG9wTGltaXRcbiIsCisgICAgICAgICAgICAgICAgIHJlcWluZm8tPm1vZGUpOworICAgICAgICByZXR1cm4gU05NUF9FUlJfR0VORVJSOworICAgIH0KKworICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOworfQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMgYi9hZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYwppbmRleCBmMWU3ODQ0Li5hODUxYTMwIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYworKysgYi9hZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYwpAQCAtMzAsNiArMzAsNyBAQAogICogc3RhbmRhcmQgTmV0LVNOTVAgaW5jbHVkZXMgCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KIApAQCAtNDgsNiArNDksMTAgQEAKIAogI2luY2x1ZGUgPGN0eXBlLmg+CiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHJvd19tZXJnZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGJhYnlfc3RlcHMpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja19hbGxfcmVxdWVzdHNfZXJyb3IpCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoqKgpAQCAtMzQ3LDcgKzM1Miw3IEBACiAgICAgICovCiAgICAgewogICAgICAgICBvaWQgICAgICAgICAgICAgbGNfb2lkW10gPSB7IElQVjRJTlRFUkZBQ0VUQUJMRUxBU1RDSEFOR0VfT0lEIH07Ci0gICAgICAgIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zY2FsYXIobmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24KKyAgICAgICAgbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX3NjYWxhcjIobmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoImlwdjRUYWJsZUxhc3RDaGFuZ2VkIiwgTlVMTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGNfb2lkLCBPSURfTEVOR1RIKGxjX29pZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JPTkxZKSwKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW50LmMgYi9hZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VudC5jCmluZGV4IDNjODVhNTQuLjM1YjJlOTYgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW50LmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfc3ViYWdlbnQuYwpAQCAtNiw5ICs2LDE0IEBACiAgKiBzdGFuZGFyZCBOZXQtU05NUCBpbmNsdWRlcyAKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShhZ2VudHhfZW5hYmxlX3N1YmFnZW50KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShlbmFibGVfc3RkZXJybG9nKQorCiAvKgogICogaW5jbHVkZSBvdXIgcGFyZW50IGhlYWRlciAKICAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMgYi9hZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYwppbmRleCBhYThmYzNmLi5jYmQ1MzNjIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYworKysgYi9hZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYwpAQCAtMzAsNiArMzAsNyBAQAogICogc3RhbmRhcmQgTmV0LVNOTVAgaW5jbHVkZXMgCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KIApAQCAtNDgsNiArNDksMTAgQEAKIAogI2luY2x1ZGUgPGN0eXBlLmg+CiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHJvd19tZXJnZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGJhYnlfc3RlcHMpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja19hbGxfcmVxdWVzdHNfZXJyb3IpCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoqKgpAQCAtMzQ1LDcgKzM1MCw3IEBACiAgICAgICovCiAgICAgewogICAgICAgICBvaWQgICAgICAgICAgICAgbGNfb2lkW10gPSB7IElQVjZJTlRFUkZBQ0VUQUJMRUxBU1RDSEFOR0VfT0lEIH07Ci0gICAgICAgIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zY2FsYXIobmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24KKyAgICAgICAgbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX3NjYWxhcjIobmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoImlwdjZUYWJsZUxhc3RDaGFuZ2VkIiwgTlVMTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGNfb2lkLCBPSURfTEVOR1RIKGxjX29pZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JPTkxZKSwKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYyBiL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYwppbmRleCBhNmU5NTJlLi5lZjIwODhiIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jCkBAIC0zMCw2ICszMCw3IEBACiAgKiBzdGFuZGFyZCBOZXQtU05NUCBpbmNsdWRlcyAKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCkBAIC00Niw2ICs0NywxOSBAQAogCiAjaW5jbHVkZSA8Y3R5cGUuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlwdjZTY29wZVpvbmVJbmRleFRhYmxlX2V4dGVybmFsX2FjY2VzcywgbGlibmV0c25tcG1pYnMpCisKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHJvd19tZXJnZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGJhYnlfc3RlcHMpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV9jb250YWluZXJfcm93X2luc2VydCkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX2FsbF9yZXF1ZXN0c19lcnJvcikKKworCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfY29udGFpbmVyX3NpemUsIGlwdjZTY29wZVpvbmVJbmRleFRhYmxlX2V4dGVybmFsX2FjY2VzcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpcHY2U2NvcGVab25lSW5kZXhUYWJsZV9yZWdpc3RyYXRpb25fc2V0LCBpcHY2U2NvcGVab25lSW5kZXhUYWJsZV9leHRlcm5hbF9hY2Nlc3MpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfcmVnaXN0cmF0aW9uX2dldCwgaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfZXh0ZXJuYWxfYWNjZXNzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlwdjZTY29wZVpvbmVJbmRleFRhYmxlX2NvbnRhaW5lcl9nZXQsIGlwdjZTY29wZVpvbmVJbmRleFRhYmxlX2V4dGVybmFsX2FjY2VzcykKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKioqCkBAIC04NCwxOSArOTgsMjMgQEAKIHN0YXRpYyB2b2lkCiBfY2FjaGVfZnJlZShuZXRzbm1wX2NhY2hlICogY2FjaGUsIHZvaWQgKm1hZ2ljKTsKIAotCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBWNlNDT1BFWk9ORUlOREVYVEFCTEVfQ09OVEFJTkVSX0dFVAogbmV0c25tcF9jb250YWluZXIgKgogaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfY29udGFpbmVyX2dldCh2b2lkKQogewogICAgIHJldHVybiBpcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pZl9jdHguY29udGFpbmVyOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBWNlNDT1BFWk9ORUlOREVYVEFCTEVfQ09OVEFJTkVSX0dFVCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBWNlNDT1BFWk9ORUlOREVYVEFCTEVfUkVHSVNUUkFUSU9OX0dFVAogaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfcmVnaXN0cmF0aW9uICoKIGlwdjZTY29wZVpvbmVJbmRleFRhYmxlX3JlZ2lzdHJhdGlvbl9nZXQodm9pZCkKIHsKICAgICByZXR1cm4gaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaWZfY3R4LnVzZXJfY3R4OwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBWNlNDT1BFWk9ORUlOREVYVEFCTEVfUkVHSVNUUkFUSU9OX0dFVCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBWNlNDT1BFWk9ORUlOREVYVEFCTEVfUkVHSVNUUkFUSU9OX1NFVAogaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfcmVnaXN0cmF0aW9uICoKIGlwdjZTY29wZVpvbmVJbmRleFRhYmxlX3JlZ2lzdHJhdGlvbl9zZXQKICAgICAoaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfcmVnaXN0cmF0aW9uICogbmV3cmVnKQpAQCAtMTA2LDEyICsxMjQsMTUgQEAKICAgICBpcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pZl9jdHgudXNlcl9jdHggPSBuZXdyZWc7CiAgICAgcmV0dXJuIG9sZDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQVjZTQ09QRVpPTkVJTkRFWFRBQkxFX1JFR0lTVFJBVElPTl9TRVQgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQVjZTQ09QRVpPTkVJTkRFWFRBQkxFX0NPTlRBSU5FUl9TSVpFCiBpbnQKIGlwdjZTY29wZVpvbmVJbmRleFRhYmxlX2NvbnRhaW5lcl9zaXplKHZvaWQpCiB7CiAgICAgcmV0dXJuIENPTlRBSU5FUl9TSVpFKGlwdjZTY29wZVpvbmVJbmRleFRhYmxlX2lmX2N0eC5jb250YWluZXIpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVBWNlNDT1BFWk9ORUlOREVYVEFCTEVfQ09OVEFJTkVSX1NJWkUgKi8KIAogLyoKICAqIG1mZCBtdWx0aXBsZXhlciBtb2RlcwpAQCAtMjI0LDYgKzI0NSwxMyBAQAogICAgICAqLwogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPm9iamVjdF9sb29rdXApCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfT0JKRUNUX0xPT0tVUDsKKworICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnByZV9yZXF1ZXN0KQorICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX1BSRV9SRVFVRVNUOworICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnBvc3RfcmVxdWVzdCkKKyAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9QT1NUX1JFUVVFU1Q7CisKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+c2V0X3ZhbHVlcykKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9TRVRfVkFMVUVTOwogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPmlycmV2ZXJzaWJsZV9jb21taXQpCkBAIC0yMzEsMTEgKzI1OSw2IEBACiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+b2JqZWN0X3N5bnRheF9jaGVja3MpCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfQ0hFQ0tfT0JKRUNUOwogCi0gICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+cHJlX3JlcXVlc3QpCi0gICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfUFJFX1JFUVVFU1Q7Ci0gICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+cG9zdF9yZXF1ZXN0KQotICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX1BPU1RfUkVRVUVTVDsKLQogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnVuZG9fc2V0dXApCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfVU5ET19TRVRVUDsKICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT51bmRvX2NsZWFudXApCkBAIC0yNTEsNiArMjc0LDcgQEAKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9DT01NSVQ7CiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+dW5kb19jb21taXQpCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfVU5ET19DT01NSVQ7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAgICAgaGFuZGxlciA9IG5ldHNubXBfYmFieV9zdGVwc19oYW5kbGVyX2dldChtZmRfbW9kZXMpOwogICAgIG5ldHNubXBfaW5qZWN0X2hhbmRsZXIocmVnaW5mbywgaGFuZGxlcik7CkBAIC0xMDU3LDYgKzEwODEsNyBAQAogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBfaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfY29udGFpbmVyX3NodXRkb3duICovCiAKIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQVjZTQ09QRVpPTkVJTkRFWFRBQkxFX0VYVEVSTkFMX0FDQ0VTUwogaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfcm93cmVxX2N0eCAqCiBpcHY2U2NvcGVab25lSW5kZXhUYWJsZV9yb3dfZmluZF9ieV9taWJfaW5kZXgKICAgICAoaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfbWliX2luZGV4ICogbWliX2lkeCkKQEAgLTEwODQsNiArMTEwOSw3IEBACiAKICAgICByZXR1cm4gcm93cmVxX2N0eDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lQVjZTQ09QRVpPTkVJTkRFWFRBQkxFX0VYVEVSTkFMX0FDQ0VTUyAqLwogCiBzdGF0aWMgaW50CiBfY2FjaGVfbG9hZChuZXRzbm1wX2NhY2hlICogY2FjaGUsIHZvaWQgKnZtYWdpYykKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyBiL2FnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwppbmRleCBjYTNjODA5Li4zMzFlZTZkIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKKysrIGIvYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCkBAIC0xMTIsNiArMTEyLDggQEAKICAgICB7TUlCX0lQNiwgMjAgKiBzaXplb2YobWliMl9pcHY2SWZTdGF0c0VudHJ5X3QpLCAodm9pZCAqKS0xLCAwLCAzMCwgMCwgMH0sCiAjZW5kaWYKICAgICB7TUlCX0lQNl9BRERSLCAyMCAqIHNpemVvZihtaWIyX2lwdjZBZGRyRW50cnlfdCksICh2b2lkICopLTEsIDAsIDMwLCAwLCAwfSwKKyAgICB7TUlCX0lQNl9ST1VURSwgMjAwICogc2l6ZW9mKG1pYjJfaXB2NkFkZHJFbnRyeV90KSwgKHZvaWQgKiktMSwgMCwgMzAsIDAsIDB9LAorICAgIHtNSUJfSUNNUDYsIDIwICogc2l6ZW9mKG1pYjJfaXB2NklmSWNtcEVudHJ5X3QpLCAodm9pZCAqKS0xLCAwLCAzMCwgMCwgMH0sCiAgICAge01JQl9UQ1A2X0NPTk4sIDEwMDAgKiBzaXplb2YobWliMl90Y3A2Q29ubkVudHJ5X3QpLCAodm9pZCAqKSAtMSwgMCwgMzAsCiAgICAgIDAsIDB9LAogICAgIHtNSUJfVURQNl9FTkRQT0lOVCwgMTAwMCAqIHNpemVvZihtaWIyX3VkcDZFbnRyeV90KSwgKHZvaWQgKikgLTEsIDAsIDMwLApAQCAtMTUyLDYgKzE1NCw4IEBACiAjZW5kaWYKICAgICB7TUlCMl9JUDYsIDB9LAogICAgIHtNSUIyX0lQNiwgTUlCMl9JUDZfQUREUn0sCisgICAge01JQjJfSVA2LCBNSUIyX0lQNl9ST1VURX0sCisgICAge01JQjJfSUNNUDYsIDB9LAogICAgIHtNSUIyX1RDUDYsIE1JQjJfVENQNl9DT05OfSwKICAgICB7TUlCMl9VRFA2LCBNSUIyX1VEUDZfRU5UUll9LAogI2VuZGlmCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmggYi9hZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgKaW5kZXggMGJmZmNiOS4uYmYzMzdhZSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oCisrKyBiL2FnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaApAQCAtNzYsNiArNzYsOCBAQAogI2VuZGlmCiAgICAgTUlCX0lQNiwKICAgICBNSUJfSVA2X0FERFIsCisgICAgTUlCX0lQNl9ST1VURSwKKyAgICBNSUJfSUNNUDYsCiAgICAgTUlCX1RDUDZfQ09OTiwKICAgICBNSUJfVURQNl9FTkRQT0lOVCwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvbWliSUkuaCBiL2FnZW50L21pYmdyb3VwL21pYklJLmgKaW5kZXggMWI5NGE1OS4uZjMxNTdmYyAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvbWliSUkuaAorKysgYi9hZ2VudC9taWJncm91cC9taWJJSS5oCkBAIC0yNSwxNSArMjUsMTYgQEAKIAogLyoKICAqIHRoZXNlIG5ldyBtb2R1bGUgcmUtcmV3cml0ZXMgaGF2ZSBvbmx5IGJlZW4gaW1wbGVtZW50ZWQgZm9yCi0gKiBsaW51eC4KKyAqIExpbnV4IGFuZCAqQlNELgogICovCi0jaWYgZGVmaW5lZCggbGludXggKQorI2lmIGRlZmluZWQobGludXgpCitjb25maWdfcmVxdWlyZShpcC1taWIgaXAtZm9yd2FyZC1taWIgdGNwLW1pYiB1ZHAtbWliKQorI2VsaWYgZGVmaW5lZChkcmFnb25mbHkpIHx8IGRlZmluZWQoZnJlZWJzZDcpIHx8IFwKKyAgICBkZWZpbmVkKG5ldGJzZDUpIHx8IGRlZmluZWQob3BlbmJzZDQpIHx8IGRlZmluZWQoIGRhcndpbiApCiBjb25maWdfcmVxdWlyZShpcC1taWIgaXAtZm9yd2FyZC1taWIgdGNwLW1pYiB1ZHAtbWliKQogI2VsaWYgZGVmaW5lZChzb2xhcmlzMikKIGNvbmZpZ19yZXF1aXJlKHRjcC1taWIgdWRwLW1pYikKLSNlbGlmIGRlZmluZWQoZnJlZWJzZDQpIHx8IGRlZmluZWQoZHJhZ29uZmx5KQotY29uZmlnX3JlcXVpcmUodGNwLW1pYiB1ZHAtbWliKQotI2VsaWYgZGVmaW5lZChvcGVuYnNkNCkKKyNlbGlmIGRlZmluZWQoZnJlZWJzZDQpCiBjb25maWdfcmVxdWlyZSh0Y3AtbWliIHVkcC1taWIpCiAjZWxpZiBkZWZpbmVkKG5ldGJzZDEpCiBjb25maWdfcmVxdWlyZSh0Y3AtbWliIHVkcC1taWIpCkBAIC00NCw0ICs0NSw1IEBACiAgKi8KICNpZiBkZWZpbmVkKCBzb2xhcmlzMiApICYmIGRlZmluZWQoIEhBVkVfTUlCMl9JUElGU1RBVFNFTlRSWV9UICkKIGNvbmZpZ19yZXF1aXJlKGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUgaXAtbWliL2lwQWRkcmVzc1RhYmxlKQorY29uZmlnX3JlcXVpcmUoaXAtZm9yd2FyZC1taWIpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL21pYklJL2F0LmMgYi9hZ2VudC9taWJncm91cC9taWJJSS9hdC5jCmluZGV4IGU5NjgwNzQuLmY1N2JhMmEgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL21pYklJL2F0LmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwpAQCAtNTI1LDcgKzUyNSw2IEBACiAgKi8KICNkZWZpbmUgQVJQX0NBQ0hFX0lOQ1IgMTAyNAogc3RhdGljIHN0cnVjdCBhcnB0YWIgKmF0ID0gTlVMTDsKLXN0YXRpYyBpbnQgICAgICBhcnB0YWJfY3Vycl9tYXhfc2l6ZSA9IDA7CiAKICNlbmRpZgogI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBORVRTTk1QX0NBTl9VU0VfU1lTQ1RMICovCkBAIC02MzEsOCArNjMwLDEwIEBACiAKICAgICBpID0gMDsKICAgICB3aGlsZSAoZmdldHMobGluZSwgc2l6ZW9mKGxpbmUpLCBpbikpIHsKKyAgICAgICAgc3RhdGljIGludCAgICAgIGFycHRhYl9jdXJyX21heF9zaXplOwogICAgICAgICB1X2xvbmcgICAgICAgICAgdG1wX2E7CiAgICAgICAgIHVuc2lnbmVkIGludCAgICB0bXBfZmxhZ3M7CisKICAgICAgICAgaWYgKGkgPj0gYXJwdGFiX2N1cnJfbWF4X3NpemUpIHsKICAgICAgICAgICAgIHN0cnVjdCBhcnB0YWIgICpuZXd0YWIgPSAoc3RydWN0IGFycHRhYiAqKQogICAgICAgICAgICAgICAgIHJlYWxsb2MoYXQsIChzaXplb2Yoc3RydWN0IGFycHRhYikgKgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCmluZGV4IDc2MGIxYTQuLmJlODAzZWUgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYworKysgYi9hZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKQEAgLTcxLDYgKzcxLDk1IEBACiAJICoqKioqKioqKioqKioqKioqKioqKi8KIAogCisjaWZkZWYgaHB1eDExCisjZGVmaW5lIElDTVBfU1RBVF9TVFJVQ1RVUkUJaW50CisjZW5kaWYKKworI2lmZGVmIGxpbnV4CisjZGVmaW5lIElDTVBfU1RBVF9TVFJVQ1RVUkUJc3RydWN0IGljbXBfbWliCisjZGVmaW5lIFVTRVNfU05NUF9ERVNJR05FRF9JQ01QU1RBVAorI3VuZGVmIElDTVBTVEFUX1NZTUJPTAorI2VuZGlmCisKKyNpZmRlZiBzb2xhcmlzMgorI2RlZmluZSBVU0VTX1NOTVBfREVTSUdORURfSUNNUFNUQVQKKyNkZWZpbmUgSUNNUF9TVEFUX1NUUlVDVFVSRQltaWIyX2ljbXBfdAorI2luY2x1ZGUgImtlcm5lbF9taWIuaCIKK3N0YXRpYyBpbnQKK3NvbGFyaXNfcmVhZF9pY21wX3N0YXQoSUNNUF9TVEFUX1NUUlVDVFVSRSAqKTsKK3N0YXRpYyBpbnQKK3NvbGFyaXNfcmVhZF9pY21wX21zZ19zdGF0KElDTVBfU1RBVF9TVFJVQ1RVUkUgKiwgc3RydWN0IGljbXA0X21zZ19taWIgKiwgaW50ICopOworI2lmZGVmIE5FVFNOTVBfRU5BQkxFX0lQVjYKK3N0YXRpYyBpbnQKK3NvbGFyaXNfcmVhZF9pY21wNl9zdGF0KHN0cnVjdCBpY21wNl9taWIgKik7CitzdGF0aWMgaW50Citzb2xhcmlzX3JlYWRfaWNtcDZfbXNnX3N0YXQoc3RydWN0IGljbXA2X21pYiAqLCBzdHJ1Y3QgaWNtcDZfbXNnX21pYiAqLCBpbnQgKik7CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgTkVUQlNEX1NUQVRTX1ZJQV9TWVNDVEwKKyNkZWZpbmUgSUNNUF9TVEFUX1NUUlVDVFVSRSAgICAgc3RydWN0IGljbXBfbWliCisjZGVmaW5lIFVTRVNfU05NUF9ERVNJR05FRF9JQ01QU1RBVAorI3VuZGVmIElDTVBfTlNUQVRTCisjZW5kaWYKKworI2lmZGVmIEhBVkVfSVBITFBBUElfSAorI2luY2x1ZGUgPGlwaGxwYXBpLmg+CisjZGVmaW5lIElDTVBfU1RBVF9TVFJVQ1RVUkUgTUlCX0lDTVAKKyNlbmRpZgorCisjaWYgKGRlZmluZWQoTkVUU05NUF9DQU5fVVNFX1NZU0NUTCkgJiYgZGVmaW5lZChJQ01QQ1RMX1NUQVRTKSkKKyNkZWZpbmUgSUNNUF9TVEFUX1NUUlVDVFVSRQlzdHJ1Y3QgaWNtcF9taWIKKyNkZWZpbmUgVVNFU19TTk1QX0RFU0lHTkVEX0lDTVBTVEFUCisjdW5kZWYgSUNNUFNUQVRfU1lNQk9MCisjZW5kaWYKKworI2lmZGVmIEhBVkVfU1lTX0lDTVBJUFNUQVRTX0gKKy8qIG9yICNpZmRlZgkJSEFWRV9TWVNfVENQSVBTVEFUU19IICA/Pz8gKi8KKyNkZWZpbmUgSUNNUF9TVEFUX1NUUlVDVFVSRQlzdHJ1Y3Qga25hCisjZGVmaW5lIFVTRVNfVFJBRElUSU9OQUxfSUNNUFNUQVQKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoSUNNUF9TVEFUX1NUUlVDVFVSRSkKKyNkZWZpbmUgSUNNUF9TVEFUX1NUUlVDVFVSRQlzdHJ1Y3QgaWNtcHN0YXQKKyNkZWZpbmUgVVNFU19UUkFESVRJT05BTF9JQ01QU1RBVAorI2VuZGlmCisKK0lDTVBfU1RBVF9TVFJVQ1RVUkUgaWNtcHN0YXQ7CisjaWYgZGVmaW5lZChzb2xhcmlzMikgJiYgZGVmaW5lZChORVRTTk1QX0VOQUJMRV9JUFY2KQorc3RhdGljIHN0cnVjdCBpY21wNl9taWIgaWNtcDZzdGF0OworI2VuZGlmCisKKy8qIElmIHRoZXkganVzdCBhbGwgYWdyZWVkIC4uLiAqLworCisjaWZuZGVmIElDTVBfREVTVF9VTlJFQUNICisjZGVmaW5lIElDTVBfREVTVF9VTlJFQUNIIElDTVBfVU5SRUFDSAorI2VuZGlmCisjaWZuZGVmIElDTVBfU09VUkNFX1FVRU5DSAorI2RlZmluZSBJQ01QX1NPVVJDRV9RVUVOQ0ggSUNNUF9TT1VSQ0VRVUVOQ0gKKyNlbmRpZgorI2lmbmRlZiBJQ01QX1RJTUVfRVhDRUVERUQKKyNkZWZpbmUgSUNNUF9USU1FX0VYQ0VFREVEIElDTVBfVElNWENFRUQKKyNlbmRpZgorI2lmbmRlZiBJQ01QX1BBUkFNRVRFUlBST0IKKyNkZWZpbmUgSUNNUF9QQVJBTUVURVJQUk9CIElDTVBfUEFSQU1QUk9CCisjZW5kaWYKKyNpZm5kZWYgSUNNUF9USU1FU1RBTVAKKyNkZWZpbmUgSUNNUF9USU1FU1RBTVAgSUNNUF9UU1RBTVAKKyNlbmRpZgorI2lmbmRlZiBJQ01QX1RJTUVTVEFNUFJFUExZCisjZGVmaW5lIElDTVBfVElNRVNUQU1QUkVQTFkgSUNNUF9UU1RBTVBSRVBMWQorI2VuZGlmCisjaWZuZGVmIElDTVBfQUREUkVTUworI2RlZmluZSBJQ01QX0FERFJFU1MgSUNNUF9NQVNLUkVRCisjZW5kaWYKKyNpZm5kZWYgSUNNUF9BRERSRVNTUkVQTFkKKyNkZWZpbmUgSUNNUF9BRERSRVNTUkVQTFkgSUNNUF9NQVNLUkVQTFkKKyNlbmRpZgorI2lmbmRlZiBNTERfTElTVEVORVJfUkVEVUNUSU9OCisjZGVmaW5lIE1MRF9MSVNURU5FUl9SRURVQ1RJT04gTUxEX0xJU1RFTkVSX0RPTkUKKyNlbmRpZgorCiAvKgogICogRGVmaW5lIHRoZSBPSUQgcG9pbnRlciB0byB0aGUgdG9wIG9mIHRoZSBtaWIgdHJlZSB0aGF0IHdlJ3JlCiAgKiByZWdpc3RlcmluZyB1bmRlcm5lYXRoIApAQCAtODQsNyArMTczLDcgQEAKIGV4dGVybiBpbnQgICAgICBpcF9tb2R1bGVfY291bnQ7CiAjZW5kaWYKIAotI2lmZGVmIGxpbnV4CisjaWZkZWYgVVNFU19TTk1QX0RFU0lHTkVEX0lDTVBTVEFUCiBzdHJ1Y3QgaWNtcF9zdGF0c190YWJsZV9lbnRyeSB7CiAJdWludDMyX3QgaXBWZXI7CiAgICAgICAgIHVpbnQzMl90IGljbXBTdGF0c0luTXNnczsKQEAgLTEzMCw1NCArMjE5LDc5IEBACiBpY21wX3N0YXRzX2xvYWQobmV0c25tcF9jYWNoZSAqY2FjaGUsIHZvaWQgKnZtYWdpYykKIHsKIAotCS8qCi0gICAgICAgICAqIG5vdGUgZG9uJ3QgYm90aGVyIHVzaW5nIHRoZSBwYXNzZWQgaW4gY2FjaGUKLQkgKiBhbmQgdm1hZ2ljIHBvaW50ZXJzLiAgVGhleSBhcmUgdXNlbGVzcyBhcyB0aGV5IAotCSAqIGN1cnJlbnRseSBwb2ludCB0byB0aGUgaWNtcCBzeXN0ZW0gc3RhdHMgY2FjaGUJCi0JICogc2luY2UgSSBzZWUgbGl0dGxlIHBvaW50IGluIHJlZ2lzdGVyaW5nIGFub3RoZXIKLQkgKiBjYWNoZSBmb3IgdGhpcyB0YWJsZS4gIEl0cyBub3QgcmVhbGx5IG5lZWRlZAotCSAqLworICAgIC8qCisgICAgICogbm90ZSBkb24ndCBib3RoZXIgdXNpbmcgdGhlIHBhc3NlZCBpbiBjYWNoZQorICAgICAqIGFuZCB2bWFnaWMgcG9pbnRlcnMuICBUaGV5IGFyZSB1c2VsZXNzIGFzIHRoZXkgCisgICAgICogY3VycmVudGx5IHBvaW50IHRvIHRoZSBpY21wIHN5c3RlbSBzdGF0cyBjYWNoZQkKKyAgICAgKiBzaW5jZSBJIHNlZSBsaXR0bGUgcG9pbnQgaW4gcmVnaXN0ZXJpbmcgYW5vdGhlcgorICAgICAqIGNhY2hlIGZvciB0aGlzIHRhYmxlLiAgSXRzIG5vdCByZWFsbHkgbmVlZGVkCisgICAgICovCiAKLQlpbnQgaTsKLQlzdHJ1Y3QgaWNtcF9taWIgdjRpY21wOwotCXN0cnVjdCBpY21wNl9taWIgdjZpY21wOwotCWZvcihpPTA7aTwyO2krKykgewotCQlzd2l0Y2goaSkgewotCQkJY2FzZSAwOgotCQkJCWxpbnV4X3JlYWRfaWNtcF9zdGF0KCZ2NGljbXApOwotCQkJCWljbXBfc3RhdHNfdGFibGVbaV0uaWNtcFN0YXRzSW5Nc2dzID0gdjRpY21wLmljbXBJbk1zZ3M7Ci0JCQkJaWNtcF9zdGF0c190YWJsZVtpXS5pY21wU3RhdHNJbkVycm9ycyA9IHY0aWNtcC5pY21wSW5FcnJvcnM7Ci0JCQkJaWNtcF9zdGF0c190YWJsZVtpXS5pY21wU3RhdHNPdXRNc2dzID0gdjRpY21wLmljbXBPdXRNc2dzOwotCQkJCWljbXBfc3RhdHNfdGFibGVbaV0uaWNtcFN0YXRzT3V0RXJyb3JzID0gdjRpY21wLmljbXBPdXRFcnJvcnM7Ci0JCQkJYnJlYWs7Ci0JCQlkZWZhdWx0OgotCQkJCW1lbXNldCgmaWNtcF9zdGF0c190YWJsZVtpXSwwLAotCQkJCQlzaXplb2Yoc3RydWN0IGljbXBfc3RhdHNfdGFibGVfZW50cnkpKTsKLQkJCQlsaW51eF9yZWFkX2ljbXA2X3N0YXQoJnY2aWNtcCk7Ci0JCQkJaWNtcF9zdGF0c190YWJsZVtpXS5pY21wU3RhdHNJbk1zZ3MgPSB2NmljbXAuaWNtcDZJbk1zZ3M7Ci0JCQkJaWNtcF9zdGF0c190YWJsZVtpXS5pY21wU3RhdHNJbkVycm9ycyA9IHY2aWNtcC5pY21wNkluRXJyb3JzOwotCQkJCWljbXBfc3RhdHNfdGFibGVbaV0uaWNtcFN0YXRzT3V0TXNncyA9IHY2aWNtcC5pY21wNk91dE1zZ3M7Ci0JCQkJaWNtcF9zdGF0c190YWJsZVtpXS5pY21wU3RhdHNPdXRFcnJvcnMgPSB2NmljbXAuaWNtcDZPdXREZXN0VW5yZWFjaHMgKwotCQkJCQl2NmljbXAuaWNtcDZPdXRQa3RUb29CaWdzICsgIHY2aWNtcC5pY21wNk91dFRpbWVFeGNkcyArCi0JCQkJCXY2aWNtcC5pY21wNk91dFBhcm1Qcm9ibGVtczsKLQkJCQlicmVhazsKLQkJfQotCQlpY21wX3N0YXRzX3RhYmxlW2ldLmlwVmVyPWkrMTsKLQl9CisgICAgaW50IGk7CisgICAgSUNNUF9TVEFUX1NUUlVDVFVSRSB2NGljbXA7CisjaWZkZWYgTkVUU05NUF9FTkFCTEVfSVBWNgorICAgIHN0cnVjdCBpY21wNl9taWIgdjZpY21wOworI2VuZGlmCisgICAgZm9yKGkgPSAwOyBpIDwgMjsgaSsrKSB7CisgICAgICAgIHN3aXRjaChpKSB7CisgICAgICAgIGNhc2UgMDoKKyNpZmRlZiBsaW51eAorICAgICAgICAgICAgbGludXhfcmVhZF9pY21wX3N0YXQoJnY0aWNtcCk7CisjZWxpZiBkZWZpbmVkKE5FVEJTRF9TVEFUU19WSUFfU1lTQ1RMKQorCSAgICBuZXRic2RfcmVhZF9pY21wX3N0YXQoJnY0aWNtcCk7CisjZWxpZiAoZGVmaW5lZChORVRTTk1QX0NBTl9VU0VfU1lTQ1RMKSAmJiBkZWZpbmVkKElDTVBDVExfU1RBVFMpKQorCSAgICBzeXNjdGxfcmVhZF9pY21wX3N0YXQoJnY0aWNtcCk7CisjZWxpZiBkZWZpbmVkKHNvbGFyaXMyKQorCSAgICBzb2xhcmlzX3JlYWRfaWNtcF9zdGF0KCZ2NGljbXApOworI2Vsc2UKKwkgICAgcmV0dXJuIC0xOworI2VuZGlmCisgICAgICAgICAgICBpY21wX3N0YXRzX3RhYmxlW2ldLmljbXBTdGF0c0luTXNncyA9IHY0aWNtcC5pY21wSW5Nc2dzOworICAgICAgICAgICAgaWNtcF9zdGF0c190YWJsZVtpXS5pY21wU3RhdHNJbkVycm9ycyA9IHY0aWNtcC5pY21wSW5FcnJvcnM7CisgICAgICAgICAgICBpY21wX3N0YXRzX3RhYmxlW2ldLmljbXBTdGF0c091dE1zZ3MgPSB2NGljbXAuaWNtcE91dE1zZ3M7CisgICAgICAgICAgICBpY21wX3N0YXRzX3RhYmxlW2ldLmljbXBTdGF0c091dEVycm9ycyA9IHY0aWNtcC5pY21wT3V0RXJyb3JzOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyNpZmRlZiBORVRTTk1QX0VOQUJMRV9JUFY2CisgICAgICAgICAgICBtZW1zZXQoJmljbXBfc3RhdHNfdGFibGVbaV0sMCwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpY21wX3N0YXRzX3RhYmxlX2VudHJ5KSk7CisjaWZkZWYgbGludXgKKyAgICAgICAgICAgIGxpbnV4X3JlYWRfaWNtcDZfc3RhdCgmdjZpY21wKTsKKyNlbGlmIGRlZmluZWQoTkVUQlNEX1NUQVRTX1ZJQV9TWVNDVEwpCisJICAgIG5ldGJzZF9yZWFkX2ljbXA2X3N0YXQoJnY2aWNtcCk7CisjZWxpZiAoZGVmaW5lZChORVRTTk1QX0NBTl9VU0VfU1lTQ1RMKSAmJiBkZWZpbmVkKElDTVBDVExfU1RBVFMpKQorCSAgICBzeXNjdGxfcmVhZF9pY21wNl9zdGF0KCZ2NmljbXApOworI2VsaWYgZGVmaW5lZChzb2xhcmlzMikKKwkgICAgc29sYXJpc19yZWFkX2ljbXA2X3N0YXQoJnY2aWNtcCk7CisjZWxzZQorCSAgICByZXR1cm4gLTE7CisjZW5kaWYKKyAgICAgICAgICAgIGljbXBfc3RhdHNfdGFibGVbaV0uaWNtcFN0YXRzSW5Nc2dzID0gdjZpY21wLmljbXA2SW5Nc2dzOworICAgICAgICAgICAgaWNtcF9zdGF0c190YWJsZVtpXS5pY21wU3RhdHNJbkVycm9ycyA9IHY2aWNtcC5pY21wNkluRXJyb3JzOworICAgICAgICAgICAgaWNtcF9zdGF0c190YWJsZVtpXS5pY21wU3RhdHNPdXRNc2dzID0gdjZpY21wLmljbXA2T3V0TXNnczsKKyAgICAgICAgICAgIGljbXBfc3RhdHNfdGFibGVbaV0uaWNtcFN0YXRzT3V0RXJyb3JzID0KKyAgICAgICAgICAgICAgICAgICAgICAgIHY2aWNtcC5pY21wNk91dERlc3RVbnJlYWNocyArCisgICAgICAgICAgICAgICAgICAgICAgICB2NmljbXAuaWNtcDZPdXRQa3RUb29CaWdzICsgIHY2aWNtcC5pY21wNk91dFRpbWVFeGNkcyArCisgICAgICAgICAgICAgICAgICAgICAgICB2NmljbXAuaWNtcDZPdXRQYXJtUHJvYmxlbXM7CisjZW5kaWYJLyogTkVUU05NUF9FTkFCTEVfSVBWNiAqLworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWNtcF9zdGF0c190YWJsZVtpXS5pcFZlciA9IGkgKyAxOworICAgIH0KIAotCXJldHVybiAwOworICAgIHJldHVybiAwOwogfQogCiBpbnQKIGljbXBfbXNnX3N0YXRzX2xvYWQobmV0c25tcF9jYWNoZSAqY2FjaGUsIHZvaWQgKnZtYWdpYykKIHsKLSAgICBzdHJ1Y3QgaWNtcF9taWIgdjRpY21wOworICAgIElDTVBfU1RBVF9TVFJVQ1RVUkUgdjRpY21wOwogICAgIHN0cnVjdCBpY21wNF9tc2dfbWliIHY0aWNtcG1zZzsKICNpZmRlZiBORVRTTk1QX0VOQUJMRV9JUFY2CiAgICAgc3RydWN0IGljbXA2X21pYiB2NmljbXA7CiAgICAgc3RydWN0IGljbXA2X21zZ19taWIgdjZpY21wbXNnOwogI2VuZGlmCi0gICAgaW50IGksIGosIGssIGZsYWcsIGluYzsKKyAgICBpbnQgaSwgaywgZmxhZywgaW5jOwogCiAgICAgbWVtc2V0KCZpY21wX21zZ19zdGF0c190YWJsZSwgMCwgc2l6ZW9mKGljbXBfbXNnX3N0YXRzX3RhYmxlKSk7CiAKQEAgLTE4NSw3ICsyOTksMTcgQEAKICAgICBmbGFnID0gMDsKICAgICBrID0gMDsKICAgICBpbmMgPSAwOworI2lmZGVmIGxpbnV4CiAgICAgbGludXhfcmVhZF9pY21wX21zZ19zdGF0KCZ2NGljbXAsICZ2NGljbXBtc2csICZmbGFnKTsKKyNlbGlmIGRlZmluZWQoTkVUQlNEX1NUQVRTX1ZJQV9TWVNDVEwpCisgICAgbmV0YnNkX3JlYWRfaWNtcF9tc2dfc3RhdCgmdjRpY21wLCAmdjRpY21wbXNnLCAmZmxhZyk7CisjZWxpZiAoZGVmaW5lZChORVRTTk1QX0NBTl9VU0VfU1lTQ1RMKSAmJiBkZWZpbmVkKElDTVBDVExfU1RBVFMpKQorICAgIHN5c2N0bF9yZWFkX2ljbXBfbXNnX3N0YXQoJnY0aWNtcCwgJnY0aWNtcG1zZywgJmZsYWcpOworI2VsaWYgZGVmaW5lZChzb2xhcmlzMikKKyAgICBzb2xhcmlzX3JlYWRfaWNtcF9tc2dfc3RhdCgmdjRpY21wLCAmdjRpY21wbXNnLCAmZmxhZyk7CisjZWxzZQorICAgIHJldHVybiAtMTsKKyNlbmRpZgogICAgIGlmIChmbGFnKSB7CiAgICAgICAgIHdoaWxlICgyNTUgPj0gaykgewogICAgICAgICAgICAgaWYgKHY0aWNtcG1zZy52YWxzW2tdLkluVHlwZSkgewpAQCAtMjEyLDcwICszMzYsOTYgQEAKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzVHlwZSA9IElDTVBfRUNIT1JFUExZOwogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNJblBrdHMgPSB2NGljbXAuaWNtcEluRWNob1JlcHM7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c091dFBrdHMgPSB2NGljbXAuaWNtcE91dEVjaG9SZXBzOworICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5mbGFncyA9IElDTVBfTVNHX1NUQVRTX0hBU19JTiB8IElDTVBfTVNHX1NUQVRTX0hBU19PVVQ7CisgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmlwVmVyID0gMTsKICAgICAgICAgaSsrOwogCiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c1R5cGUgPSBJQ01QX0RFU1RfVU5SRUFDSDsKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzSW5Qa3RzID0gdjRpY21wLmljbXBJbkRlc3RVbnJlYWNoczsKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzT3V0UGt0cyA9IHY0aWNtcC5pY21wT3V0RGVzdFVucmVhY2hzOworICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5mbGFncyA9IElDTVBfTVNHX1NUQVRTX0hBU19JTiB8IElDTVBfTVNHX1NUQVRTX0hBU19PVVQ7CisgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmlwVmVyID0gMTsKICAgICAgICAgaSsrOwogCiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c1R5cGUgPSBJQ01QX1NPVVJDRV9RVUVOQ0g7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c0luUGt0cyA9IHY0aWNtcC5pY21wSW5TcmNRdWVuY2hzOwogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNPdXRQa3RzID0gdjRpY21wLmljbXBPdXRTcmNRdWVuY2hzOworICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5mbGFncyA9IElDTVBfTVNHX1NUQVRTX0hBU19JTiB8IElDTVBfTVNHX1NUQVRTX0hBU19PVVQ7CisgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmlwVmVyID0gMTsKICAgICAgICAgaSsrOwogCiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c1R5cGUgPSBJQ01QX1JFRElSRUNUOwogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNJblBrdHMgPSB2NGljbXAuaWNtcEluUmVkaXJlY3RzOwogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNPdXRQa3RzID0gdjRpY21wLmljbXBPdXRSZWRpcmVjdHM7CisgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmZsYWdzID0gSUNNUF9NU0dfU1RBVFNfSEFTX0lOIHwgSUNNUF9NU0dfU1RBVFNfSEFTX09VVDsKKyAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaXBWZXIgPSAxOwogICAgICAgICBpKys7CiAKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzVHlwZSA9IElDTVBfRUNITzsKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzSW5Qa3RzID0gdjRpY21wLmljbXBJbkVjaG9zOwogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNPdXRQa3RzID0gdjRpY21wLmljbXBPdXRFY2hvczsKKyAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uZmxhZ3MgPSBJQ01QX01TR19TVEFUU19IQVNfSU4gfCBJQ01QX01TR19TVEFUU19IQVNfT1VUOworICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pcFZlciA9IDE7CiAgICAgICAgIGkrKzsKIAogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNUeXBlID0gSUNNUF9USU1FX0VYQ0VFREVEOwogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNJblBrdHMgPSB2NGljbXAuaWNtcEluVGltZUV4Y2RzOwogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNPdXRQa3RzID0gdjRpY21wLmljbXBPdXRUaW1lRXhjZHM7CisgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmZsYWdzID0gSUNNUF9NU0dfU1RBVFNfSEFTX0lOIHwgSUNNUF9NU0dfU1RBVFNfSEFTX09VVDsKKyAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaXBWZXIgPSAxOwogICAgICAgICBpKys7CiAKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzVHlwZSA9IElDTVBfUEFSQU1FVEVSUFJPQjsKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzSW5Qa3RzID0gdjRpY21wLmljbXBJblBhcm1Qcm9iczsKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzT3V0UGt0cyA9IHY0aWNtcC5pY21wT3V0UGFybVByb2JzOworICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5mbGFncyA9IElDTVBfTVNHX1NUQVRTX0hBU19JTiB8IElDTVBfTVNHX1NUQVRTX0hBU19PVVQ7CisgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmlwVmVyID0gMTsKICAgICAgICAgaSsrOwogCiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c1R5cGUgPSBJQ01QX1RJTUVTVEFNUDsKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzSW5Qa3RzID0gdjRpY21wLmljbXBJblRpbWVzdGFtcHM7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c091dFBrdHMgPSB2NGljbXAuaWNtcE91dFRpbWVzdGFtcHM7CisgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmZsYWdzID0gSUNNUF9NU0dfU1RBVFNfSEFTX0lOIHwgSUNNUF9NU0dfU1RBVFNfSEFTX09VVDsKKyAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaXBWZXIgPSAxOwogICAgICAgICBpKys7CiAKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzVHlwZSA9IElDTVBfVElNRVNUQU1QUkVQTFk7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c0luUGt0cyA9IHY0aWNtcC5pY21wSW5UaW1lc3RhbXBSZXBzOwogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNPdXRQa3RzID0gdjRpY21wLmljbXBPdXRUaW1lc3RhbXBSZXBzOworICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5mbGFncyA9IElDTVBfTVNHX1NUQVRTX0hBU19JTiB8IElDTVBfTVNHX1NUQVRTX0hBU19PVVQ7CisgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmlwVmVyID0gMTsKICAgICAgICAgaSsrOwogCiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c1R5cGUgPSBJQ01QX0FERFJFU1M7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c0luUGt0cyA9IHY0aWNtcC5pY21wSW5BZGRyTWFza3M7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c091dFBrdHMgPSB2NGljbXAuaWNtcE91dEFkZHJNYXNrczsKKyAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uZmxhZ3MgPSBJQ01QX01TR19TVEFUU19IQVNfSU4gfCBJQ01QX01TR19TVEFUU19IQVNfT1VUOworICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pcFZlciA9IDE7CiAgICAgICAgIGkrKzsKIAogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNUeXBlID0gSUNNUF9BRERSRVNTUkVQTFk7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c0luUGt0cyA9IHY0aWNtcC5pY21wSW5BZGRyTWFza1JlcHM7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c091dFBrdHMgPSB2NGljbXAuaWNtcE91dEFkZHJNYXNrUmVwczsKKyAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uZmxhZ3MgPSBJQ01QX01TR19TVEFUU19IQVNfSU4gfCBJQ01QX01TR19TVEFUU19IQVNfT1VUOworICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pcFZlciA9IDE7CiAgICAgICAgIGkrKzsKLQotICAgICAgICAvKiBzZXQgdGhlIElQIHZlcnNpb24gYW5kIGRlZmF1bHQgZmxhZ3MgKi8KLSAgICAgICAgZm9yIChqID0gMDsgaiA8IElDTVBfTVNHX1NUQVRTX0lQVjRfQ09VTlQ7IGorKykgewotICAgICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbal0uaXBWZXIgPSAxOwotICAgICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbal0uZmxhZ3MgPSBJQ01QX01TR19TVEFUU19IQVNfSU4gfCBJQ01QX01TR19TVEFUU19IQVNfT1VUOwotICAgICAgICB9CiAgICAgfQogCiAjaWZkZWYgTkVUU05NUF9FTkFCTEVfSVBWNgogICAgIGZsYWcgPSAwOwogICAgIGsgPSAwOwogICAgIGluYyA9IDA7CisjaWZkZWYgbGludXgKICAgICBsaW51eF9yZWFkX2ljbXA2X21zZ19zdGF0KCZ2NmljbXAsICZ2NmljbXBtc2csICZmbGFnKTsKKyNlbGlmIGRlZmluZWQoTkVUQlNEX1NUQVRTX1ZJQV9TWVNDVEwpCisgICAgbmV0YnNkX3JlYWRfaWNtcDZfbXNnX3N0YXQoJnY2aWNtcCwgJnY2aWNtcG1zZywgJmZsYWcpOworI2VsaWYgKGRlZmluZWQoTkVUU05NUF9DQU5fVVNFX1NZU0NUTCkgJiYgZGVmaW5lZChJQ01QQ1RMX1NUQVRTKSkKKyAgICBzeXNjdGxfcmVhZF9pY21wNl9tc2dfc3RhdCgmdjZpY21wLCAmdjZpY21wbXNnLCAmZmxhZyk7CisjZWxpZiBkZWZpbmVkKHNvbGFyaXMyKQorICAgIHNvbGFyaXNfcmVhZF9pY21wNl9tc2dfc3RhdCgmdjZpY21wLCAmdjZpY21wbXNnLCAmZmxhZyk7CisjZWxzZQorICAgIHJldHVybiAtMTsKKyNlbmRpZgogICAgIGlmIChmbGFnKSB7CiAgICAgICAgIHdoaWxlICgyNTUgPj0gaykgewogICAgICAgICAgICAgaWYgKHY2aWNtcG1zZy52YWxzW2tdLkluVHlwZSkgewpAQCAtMzAyLDgwICs0NTIsMTAxIEBACiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c1R5cGUgPSBJQ01QNl9EU1RfVU5SRUFDSDsKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzSW5Qa3RzID0gdjZpY21wLmljbXA2SW5EZXN0VW5yZWFjaHM7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c091dFBrdHMgPSB2NmljbXAuaWNtcDZPdXREZXN0VW5yZWFjaHM7CisgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmlwVmVyID0gMjsKKyAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uZmxhZ3MgPSBJQ01QX01TR19TVEFUU19IQVNfSU4gfCBJQ01QX01TR19TVEFUU19IQVNfT1VUOwogICAgICAgICBpKys7CiAKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzVHlwZSA9IElDTVA2X1BBQ0tFVF9UT09fQklHOwogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNJblBrdHMgPSB2NmljbXAuaWNtcDZJblBrdFRvb0JpZ3M7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c091dFBrdHMgPSB2NmljbXAuaWNtcDZPdXRQa3RUb29CaWdzOworICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pcFZlciA9IDI7CisgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmZsYWdzID0gSUNNUF9NU0dfU1RBVFNfSEFTX0lOIHwgSUNNUF9NU0dfU1RBVFNfSEFTX09VVDsKICAgICAgICAgaSsrOwogCiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c1R5cGUgPSBJQ01QNl9USU1FX0VYQ0VFREVEOwogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNJblBrdHMgPSB2NmljbXAuaWNtcDZJblRpbWVFeGNkczsKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzT3V0UGt0cyA9IHY2aWNtcC5pY21wNk91dFRpbWVFeGNkczsKKyAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaXBWZXIgPSAyOworICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5mbGFncyA9IElDTVBfTVNHX1NUQVRTX0hBU19JTiB8IElDTVBfTVNHX1NUQVRTX0hBU19PVVQ7CiAgICAgICAgIGkrKzsKIAogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNUeXBlID0gSUNNUDZfUEFSQU1fUFJPQjsKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzSW5Qa3RzID0gdjZpY21wLmljbXA2SW5QYXJtUHJvYmxlbXM7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c091dFBrdHMgPSB2NmljbXAuaWNtcDZPdXRQYXJtUHJvYmxlbXM7CisgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmlwVmVyID0gMjsKKyAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uZmxhZ3MgPSBJQ01QX01TR19TVEFUU19IQVNfSU4gfCBJQ01QX01TR19TVEFUU19IQVNfT1VUOwogICAgICAgICBpKys7CiAKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzVHlwZSA9IElDTVA2X0VDSE9fUkVRVUVTVDsKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzSW5Qa3RzID0gdjZpY21wLmljbXA2SW5FY2hvczsKLSAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzT3V0UGt0cyA9IDA7Ci0gICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmZsYWdzID0gSUNNUF9NU0dfU1RBVFNfSEFTX0lOOworICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNPdXRQa3RzID0gdjZpY21wLmljbXA2T3V0RWNob3M7CisgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmlwVmVyID0gMjsKKyAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uZmxhZ3MgPSBJQ01QX01TR19TVEFUU19IQVNfSU4gfCBJQ01QX01TR19TVEFUU19IQVNfT1VUOwogICAgICAgICBpKys7CiAKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzVHlwZSA9IElDTVA2X0VDSE9fUkVQTFk7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c0luUGt0cyA9IHY2aWNtcC5pY21wNkluRWNob1JlcGxpZXM7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c091dFBrdHMgPSB2NmljbXAuaWNtcDZPdXRFY2hvUmVwbGllczsKKyAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaXBWZXIgPSAyOworICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5mbGFncyA9IElDTVBfTVNHX1NUQVRTX0hBU19JTiB8IElDTVBfTVNHX1NUQVRTX0hBU19PVVQ7CiAgICAgICAgIGkrKzsKIAogI2lmZGVmIE1MRF9MSVNURU5FUl9RVUVSWQogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNUeXBlID0gTUxEX0xJU1RFTkVSX1FVRVJZOwogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNJblBrdHMgPSB2NmljbXAuaWNtcDZJbkdyb3VwTWVtYlF1ZXJpZXM7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c091dFBrdHMgPSAwOworICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pcFZlciA9IDI7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmZsYWdzID0gSUNNUF9NU0dfU1RBVFNfSEFTX0lOOwogICAgICAgICBpKys7CisKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzVHlwZSA9IE1MRF9MSVNURU5FUl9SRVBPUlQ7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c0luUGt0cyA9IHY2aWNtcC5pY21wNkluR3JvdXBNZW1iUmVzcG9uc2VzOwogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNPdXRQa3RzID0gdjZpY21wLmljbXA2T3V0R3JvdXBNZW1iUmVzcG9uc2VzOworICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pcFZlciA9IDI7CisgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmZsYWdzID0gSUNNUF9NU0dfU1RBVFNfSEFTX0lOIHwgSUNNUF9NU0dfU1RBVFNfSEFTX09VVDsKICAgICAgICAgaSsrOwogCiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c1R5cGUgPSBNTERfTElTVEVORVJfUkVEVUNUSU9OOwogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNJblBrdHMgPSB2NmljbXAuaWNtcDZJbkdyb3VwTWVtYlJlZHVjdGlvbnM7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c091dFBrdHMgPSB2NmljbXAuaWNtcDZPdXRHcm91cE1lbWJSZWR1Y3Rpb25zOworICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pcFZlciA9IDI7CisgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmZsYWdzID0gSUNNUF9NU0dfU1RBVFNfSEFTX0lOIHwgSUNNUF9NU0dfU1RBVFNfSEFTX09VVDsKICAgICAgICAgaSsrOwotI2VuZGlmCiAKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzVHlwZSA9IE5EX1JPVVRFUl9TT0xJQ0lUOwogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNJblBrdHMgPSB2NmljbXAuaWNtcDZJblJvdXRlclNvbGljaXRzOwogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNPdXRQa3RzID0gdjZpY21wLmljbXA2T3V0Um91dGVyU29saWNpdHM7CisgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmlwVmVyID0gMjsKKyAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uZmxhZ3MgPSBJQ01QX01TR19TVEFUU19IQVNfSU4gfCBJQ01QX01TR19TVEFUU19IQVNfT1VUOwogICAgICAgICBpKys7CiAKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzVHlwZSA9IE5EX1JPVVRFUl9BRFZFUlQ7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c0luUGt0cyA9IHY2aWNtcC5pY21wNkluUm91dGVyQWR2ZXJ0aXNlbWVudHM7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c091dFBrdHMgPSAwOworICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pcFZlciA9IDI7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmZsYWdzID0gSUNNUF9NU0dfU1RBVFNfSEFTX0lOOwogICAgICAgICBpKys7CiAKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzVHlwZSA9IE5EX05FSUdIQk9SX1NPTElDSVQ7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c0luUGt0cyA9IHY2aWNtcC5pY21wNkluTmVpZ2hib3JTb2xpY2l0czsKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzT3V0UGt0cyA9IHY2aWNtcC5pY21wNk91dE5laWdoYm9yU29saWNpdHM7CisgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmlwVmVyID0gMjsKKyAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uZmxhZ3MgPSBJQ01QX01TR19TVEFUU19IQVNfSU4gfCBJQ01QX01TR19TVEFUU19IQVNfT1VUOwogICAgICAgICBpKys7CiAKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzVHlwZSA9IE5EX05FSUdIQk9SX0FEVkVSVDsKICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaWNtcE1zZ1N0YXRzSW5Qa3RzID0gdjZpY21wLmljbXA2SW5OZWlnaGJvckFkdmVydGlzZW1lbnRzOwogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNPdXRQa3RzID0gdjZpY21wLmljbXA2T3V0TmVpZ2hib3JBZHZlcnRpc2VtZW50czsKKyAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uaXBWZXIgPSAyOworICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5mbGFncyA9IElDTVBfTVNHX1NUQVRTX0hBU19JTiB8IElDTVBfTVNHX1NUQVRTX0hBU19PVVQ7CiAgICAgICAgIGkrKzsKIAogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNUeXBlID0gTkRfUkVESVJFQ1Q7CiAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmljbXBNc2dTdGF0c0luUGt0cyA9IHY2aWNtcC5pY21wNkluUmVkaXJlY3RzOwogICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtpXS5pY21wTXNnU3RhdHNPdXRQa3RzID0gdjZpY21wLmljbXA2T3V0UmVkaXJlY3RzOwotCi0gICAgICAgIGZvciAoaiA9IDA7IGogPCBJQ01QX01TR19TVEFUU19JUFY2X0NPVU5UOyBqKyspIHsKLSAgICAgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW0lDTVBfTVNHX1NUQVRTX0lQVjRfQ09VTlQgKyBqXS5pcFZlciA9IDI7Ci0gICAgICAgICAgICBpY21wX21zZ19zdGF0c190YWJsZVtJQ01QX01TR19TVEFUU19JUFY0X0NPVU5UICsgal0uZmxhZ3MgPSBJQ01QX01TR19TVEFUU19IQVNfSU4gfCBJQ01QX01TR19TVEFUU19IQVNfT1VUOwotICAgICAgICB9CisgICAgICAgIGljbXBfbXNnX3N0YXRzX3RhYmxlW2ldLmlwVmVyID0gMjsKKyAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVbaV0uZmxhZ3MgPSBJQ01QX01TR19TVEFUU19IQVNfSU4gfCBJQ01QX01TR19TVEFUU19IQVNfT1VUOworI2VuZGlmCiAgICAgfQogI2VuZGlmIC8qIE5FVFNOTVBfRU5BQkxFX0lQVjYgKi8KICAgICByZXR1cm4gMDsKQEAgLTM4NywyNSArNTU4LDI1IEBACiAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKmluZGV4LAogICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvICpkYXRhKQogewotCWludCBpID0gKGludCkoaW50cHRyX3QpKCpsb29wX2NvbnRleHQpOwotCW5ldHNubXBfdmFyaWFibGVfbGlzdCAqaWR4ID0gaW5kZXg7CisgICAgaW50IGkgPSAoaW50KShpbnRwdHJfdCkoKmxvb3BfY29udGV4dCk7CisgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICppZHggPSBpbmRleDsKIAotCWlmKGkgPiAxKQotCQlyZXR1cm4gTlVMTDsKKyAgICBpZihpID4gMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAKIAotCS8qCi0JICpzZXQgSVAgdmVyc2lvbgotCSAqLwotCXNubXBfc2V0X3Zhcl90eXBlZF92YWx1ZShpZHgsIEFTTl9JTlRFR0VSLCAodV9jaGFyICopJmljbXBfc3RhdHNfdGFibGVbaV0uaXBWZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih1aW50MzJfdCkpOwotCWlkeCA9IGlkeC0+bmV4dF92YXJpYWJsZTsKKyAgICAvKgorICAgICAqc2V0IElQIHZlcnNpb24KKyAgICAgKi8KKyAgICBzbm1wX3NldF92YXJfdHlwZWRfdmFsdWUoaWR4LCBBU05fSU5URUdFUiwgKHVfY2hhciAqKSZpY21wX3N0YXRzX3RhYmxlW2ldLmlwVmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih1aW50MzJfdCkpOworICAgIGlkeCA9IGlkeC0+bmV4dF92YXJpYWJsZTsKIAotCSpkYXRhX2NvbnRleHQgPSAmaWNtcF9zdGF0c190YWJsZVtpXTsKKyAgICAqZGF0YV9jb250ZXh0ID0gJmljbXBfc3RhdHNfdGFibGVbaV07CiAKLQkqbG9vcF9jb250ZXh0ID0gKHZvaWQgKikoaW50cHRyX3QpKCsraSk7Ci0JCi0JcmV0dXJuIGluZGV4OworICAgICpsb29wX2NvbnRleHQgPSAodm9pZCAqKShpbnRwdHJfdCkoKytpKTsKKyAgICAKKyAgICByZXR1cm4gaW5kZXg7CiB9CiAKIApAQCAtNDE1LDEwICs1ODYsOSBAQAogICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICppbmRleCwKICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mbyAqZGF0YSkKIHsKLQotICAgICAgICAqbG9vcF9jb250ZXh0ID0gTlVMTDsKLSAgICAgICAgKmRhdGFfY29udGV4dCA9IE5VTEw7Ci0gICAgICAgIHJldHVybiBpY21wX3N0YXRzX25leHRfZW50cnkobG9vcF9jb250ZXh0LCBkYXRhX2NvbnRleHQsIGluZGV4LCBkYXRhKTsKKyAgICAqbG9vcF9jb250ZXh0ID0gTlVMTDsKKyAgICAqZGF0YV9jb250ZXh0ID0gTlVMTDsKKyAgICByZXR1cm4gaWNtcF9zdGF0c19uZXh0X2VudHJ5KGxvb3BfY29udGV4dCwgZGF0YV9jb250ZXh0LCBpbmRleCwgZGF0YSk7CiB9CiAKIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqCkBAIC00NjYsMTMgKzYzNiwxMyBAQAogdm9pZAogaW5pdF9pY21wKHZvaWQpCiB7Ci0jaWZkZWYgbGludXgKLSAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICp0YWJsZV9yZWdpbmZvID0gTlVMTDsKKyNpZmRlZiBVU0VTX1NOTVBfREVTSUdORURfSUNNUFNUQVQKICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICptc2dfc3RhdHNfcmVnaW5mbyA9IE5VTEw7Ci0gICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvICppaW5mbyA9IE5VTEw7Ci0gICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvICptc2dfc3RhdHNfaWluZm8gPSBOVUxMOwotICAgIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm8gPSBOVUxMOwotICAgIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKm1zZ19zdGF0c190YWJsZV9pbmZvID0gTlVMTDsKKyAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICp0YWJsZV9yZWdpbmZvID0gTlVMTDsKKyAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm8gKmlpbmZvOworICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mbyAqbXNnX3N0YXRzX2lpbmZvOworICAgIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm87CisgICAgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqbXNnX3N0YXRzX3RhYmxlX2luZm87CiAjZW5kaWYKICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpzY2FsYXJfcmVnaW5mbyA9IE5VTEw7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICByYzsKQEAgLTQ4MywxNCArNjUzLDkgQEAKICAgICBERUJVR01TR1RMKCgibWliSUkvaWNtcCIsICJJbml0aWFsaXNpbmcgSUNNUCBncm91cFxuIikpOwogICAgIHNjYWxhcl9yZWdpbmZvID0gbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oImljbXAiLCBpY21wX2hhbmRsZXIsCiAJCSAgICBpY21wX29pZCwgT0lEX0xFTkdUSChpY21wX29pZCksIEhBTkRMRVJfQ0FOX1JPTkxZKTsKLSAgICBpZiAoIXNjYWxhcl9yZWdpbmZvKQotICAgICAgICByZXR1cm47Ci0KICAgICByYyA9IG5ldHNubXBfcmVnaXN0ZXJfc2NhbGFyX2dyb3VwKHNjYWxhcl9yZWdpbmZvLCBJQ01QSU5NU0dTLCBJQ01QT1VUQUREUk1BU0tSRVBTKTsKLSAgICBpZiAocmMgIT0gU05NUEVSUl9TVUNDRVNTKSB7CisgICAgaWYgKHJjICE9IFNOTVBFUlJfU1VDQ0VTUykKICAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8qCiAgICAgICogLi4uLiB3aXRoIGEgbG9jYWwgY2FjaGUKICAgICAgKiAgICAoZXhjZXB0IGZvciBIUC1VWCAxMSwgd2hpY2ggZXh0cmFjdHMgb2JqZWN0cyBpbmRpdmlkdWFsbHkpCkBAIC01MDEsMjUgKzY2NiwyMiBAQAogCQkJICAgCQlpY21wX2xvYWQsIGljbXBfZnJlZSwKIAkJCQkJaWNtcF9vaWQsIE9JRF9MRU5HVEgoaWNtcF9vaWQpKSk7CiAgICAgaWYgKHJjICE9IFNOTVBFUlJfU1VDQ0VTUykKLSAgICAgICAgZ290byBiYWlsOworCWdvdG8gYmFpbDsKICNlbmRpZgotI2lmZGVmIGxpbnV4CisjaWZkZWYgVVNFU19TTk1QX0RFU0lHTkVEX0lDTVBTVEFUCiAKICAgICAvKiByZWdpc3RlciBpY21wU3RhdHNUYWJsZSAqLwotCiAgICAgdGFibGVfaW5mbyA9IFNOTVBfTUFMTE9DX1RZUEVERUYobmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyk7CiAgICAgaWYgKCF0YWJsZV9pbmZvKQogICAgICAgICBnb3RvIGJhaWw7Ci0KICAgICBuZXRzbm1wX3RhYmxlX2hlbHBlcl9hZGRfaW5kZXhlcyh0YWJsZV9pbmZvLCBBU05fSU5URUdFUiwgMCk7CiAgICAgdGFibGVfaW5mby0+bWluX2NvbHVtbiA9IElDTVBfU1RBVF9JTk1TRzsKICAgICB0YWJsZV9pbmZvLT5tYXhfY29sdW1uID0gSUNNUF9TVEFUX09VVEVSUjsKIAogCiAgICAgaWluZm8gICAgICA9IFNOTVBfTUFMTE9DX1RZUEVERUYobmV0c25tcF9pdGVyYXRvcl9pbmZvKTsKLSAgICBpZiAoIWlpbmZvKSAKKyAgICBpZiAoIWlpbmZvKQogICAgICAgICBnb3RvIGJhaWw7Ci0KICAgICBpaW5mby0+Z2V0X2ZpcnN0X2RhdGFfcG9pbnQgPSBpY21wX3N0YXRzX2ZpcnN0X2VudHJ5OwogICAgIGlpbmZvLT5nZXRfbmV4dF9kYXRhX3BvaW50ICA9IGljbXBfc3RhdHNfbmV4dF9lbnRyeTsKICAgICBpaW5mby0+dGFibGVfcmVnaW5mbyAgICAgICAgPSB0YWJsZV9pbmZvOwpAQCAtNTI3LDIwICs2ODksMjEgQEAKICAgICB0YWJsZV9yZWdpbmZvID0gbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oImljbXBTdGF0c1RhYmxlIiwKIAkJaWNtcF9zdGF0c190YWJsZV9oYW5kbGVyLCBpY21wX3N0YXRzX3RibF9vaWQsCiAJCU9JRF9MRU5HVEgoaWNtcF9zdGF0c190Ymxfb2lkKSwgSEFORExFUl9DQU5fUk9OTFkpOwotICAgIGlmICghdGFibGVfcmVnaW5mbykKLSAgICAgICAgZ290byBiYWlsOwogCi0gICAgcmMgPSBuZXRzbm1wX3JlZ2lzdGVyX3RhYmxlX2l0ZXJhdG9yKHRhYmxlX3JlZ2luZm8sIGlpbmZvKTsKKyAgICByYyA9IG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IyKHRhYmxlX3JlZ2luZm8sIGlpbmZvKTsKICAgICBpZiAocmMgIT0gU05NUEVSUl9TVUNDRVNTKSB7CiAgICAgICAgIHRhYmxlX3JlZ2luZm8gPSBOVUxMOwogICAgICAgICBnb3RvIGJhaWw7CiAgICAgfQorICAgIG5ldHNubXBfaW5qZWN0X2hhbmRsZXIoIHRhYmxlX3JlZ2luZm8sCisgICAgICAgICAgICBuZXRzbm1wX2dldF9jYWNoZV9oYW5kbGVyKElDTVBfU1RBVFNfQ0FDSEVfVElNRU9VVCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGljbXBfbG9hZCwgaWNtcF9mcmVlLAorICAgICAgICAgICAgICAgICAgICAgICAgaWNtcF9zdGF0c190Ymxfb2lkLCBPSURfTEVOR1RIKGljbXBfc3RhdHNfdGJsX29pZCkpKTsKIAogICAgIC8qIHJlZ2lzdGVyIGljbXBNc2dTdGF0c1RhYmxlICovCiAgICAgbXNnX3N0YXRzX3RhYmxlX2luZm8gPSBTTk1QX01BTExPQ19UWVBFREVGKG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8pOwogICAgIGlmICghbXNnX3N0YXRzX3RhYmxlX2luZm8pCiAgICAgICAgIGdvdG8gYmFpbDsKLQogICAgIG5ldHNubXBfdGFibGVfaGVscGVyX2FkZF9pbmRleGVzKG1zZ19zdGF0c190YWJsZV9pbmZvLCBBU05fSU5URUdFUiwgQVNOX0lOVEVHRVIsIDApOwogICAgIG1zZ19zdGF0c190YWJsZV9pbmZvLT5taW5fY29sdW1uID0gSUNNUF9NU0dfU1RBVF9JTl9QS1RTOwogICAgIG1zZ19zdGF0c190YWJsZV9pbmZvLT5tYXhfY29sdW1uID0gSUNNUF9NU0dfU1RBVF9PVVRfUEtUUzsKQEAgLTU0OCw3ICs3MTEsNiBAQAogICAgIG1zZ19zdGF0c19paW5mbyA9IFNOTVBfTUFMTE9DX1RZUEVERUYobmV0c25tcF9pdGVyYXRvcl9pbmZvKTsKICAgICBpZiAoIW1zZ19zdGF0c19paW5mbykKICAgICAgICAgZ290byBiYWlsOwotCiAgICAgbXNnX3N0YXRzX2lpbmZvLT5nZXRfZmlyc3RfZGF0YV9wb2ludCA9IGljbXBfbXNnX3N0YXRzX2ZpcnN0X2VudHJ5OwogICAgIG1zZ19zdGF0c19paW5mby0+Z2V0X25leHRfZGF0YV9wb2ludCAgPSBpY21wX21zZ19zdGF0c19uZXh0X2VudHJ5OwogICAgIG1zZ19zdGF0c19paW5mby0+dGFibGVfcmVnaW5mbyAgICAgICAgPSBtc2dfc3RhdHNfdGFibGVfaW5mbzsKQEAgLTU1NiwyNiArNzE4LDE4IEBACiAgICAgbXNnX3N0YXRzX3JlZ2luZm8gPSBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigiaWNtcE1zZ1N0YXRzVGFibGUiLAogICAgICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGFibGVfaGFuZGxlciwgaWNtcF9tc2dfc3RhdHNfdGJsX29pZCwKICAgICAgICAgICAgIE9JRF9MRU5HVEgoaWNtcF9tc2dfc3RhdHNfdGJsX29pZCksIEhBTkRMRVJfQ0FOX1JPTkxZKTsKLSAgICBpZiAoIW1zZ19zdGF0c19yZWdpbmZvKQotICAgICAgICBnb3RvIGJhaWw7CiAKLSAgICByYyA9IG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IobXNnX3N0YXRzX3JlZ2luZm8sIG1zZ19zdGF0c19paW5mbyk7CisgICAgcmMgPSBuZXRzbm1wX3JlZ2lzdGVyX3RhYmxlX2l0ZXJhdG9yMihtc2dfc3RhdHNfcmVnaW5mbywgbXNnX3N0YXRzX2lpbmZvKTsKICAgICBpZiAocmMgIT0gU05NUEVSUl9TVUNDRVNTKSB7CiAgICAgICAgIG1zZ19zdGF0c19yZWdpbmZvID0gTlVMTDsKICAgICAgICAgZ290byBiYWlsOwogICAgIH0KLSAgICAKKwogICAgIG5ldHNubXBfaW5qZWN0X2hhbmRsZXIoIG1zZ19zdGF0c19yZWdpbmZvLAogICAgICAgICAgICAgbmV0c25tcF9nZXRfY2FjaGVfaGFuZGxlcihJQ01QX1NUQVRTX0NBQ0hFX1RJTUVPVVQsCiAgICAgICAgICAgICAgICAgaWNtcF9sb2FkLCBpY21wX2ZyZWUsCiAgICAgICAgICAgICAgICAgaWNtcF9tc2dfc3RhdHNfdGJsX29pZCwgT0lEX0xFTkdUSChpY21wX21zZ19zdGF0c190Ymxfb2lkKSkpOwotI2lmbmRlZiBocHV4MTEKLSAgICBuZXRzbm1wX2luamVjdF9oYW5kbGVyKCB0YWJsZV9yZWdpbmZvLAotCQkgICAgbmV0c25tcF9nZXRfY2FjaGVfaGFuZGxlcihJQ01QX1NUQVRTX0NBQ0hFX1RJTUVPVVQsCi0JCQkgICAJCWljbXBfbG9hZCwgaWNtcF9mcmVlLAotCQkJCQlpY21wX3N0YXRzX3RibF9vaWQsIE9JRF9MRU5HVEgoaWNtcF9zdGF0c190Ymxfb2lkKSkpOwotI2VuZGlmIC8qICEgaHB1eDExICovCi0jZW5kaWYgLyogbGludXggKi8KKyNlbmRpZiAvKiBVU0VTX1NOTVBfREVTSUdORURfSUNNUFNUQVQgKi8KIAogI2lmZGVmIFVTSU5HX01JQklJX0lQX01PRFVMRQogICAgIGlmICgrK2lwX21vZHVsZV9jb3VudCA9PSAyKQpAQCAtNTk2LDcgKzc1MCw3IEBACiAjaWZuZGVmIGhwdXgxMQogYmFpbDoKICNlbmRpZgotI2lmZGVmIGxpbnV4CisjaWZkZWYgVVNFU19TTk1QX0RFU0lHTkVEX0lDTVBTVEFUCiAgICAgaWYgKG1zZ19zdGF0c19yZWdpbmZvKQogICAgICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUobXNnX3N0YXRzX3JlZ2luZm8pOwogICAgIGlmICh0YWJsZV9yZWdpbmZvKQpAQCAtNjEzLDQ4ICs3NjcsNiBAQAogCSAqCiAJICoqKioqKioqKioqKioqKioqKioqKi8KIAotI2lmZGVmIGhwdXgxMQotI2RlZmluZSBJQ01QX1NUQVRfU1RSVUNUVVJFCWludAotI2VuZGlmCi0KLSNpZmRlZiBsaW51eAotI2RlZmluZSBJQ01QX1NUQVRfU1RSVUNUVVJFCXN0cnVjdCBpY21wX21pYgotI2RlZmluZSBVU0VTX1NOTVBfREVTSUdORURfSUNNUFNUQVQKLSN1bmRlZiBJQ01QU1RBVF9TWU1CT0wKLSNlbmRpZgotCi0jaWZkZWYgc29sYXJpczIKLSNkZWZpbmUgSUNNUF9TVEFUX1NUUlVDVFVSRQltaWIyX2ljbXBfdAotI2RlZmluZSBVU0VTX1NOTVBfREVTSUdORURfSUNNUFNUQVQKLSNlbmRpZgotCi0jaWZkZWYgTkVUQlNEX1NUQVRTX1ZJQV9TWVNDVEwKLSNkZWZpbmUgSUNNUF9TVEFUX1NUUlVDVFVSRSAgICAgc3RydWN0IGljbXBfbWliCi0jZGVmaW5lIFVTRVNfU05NUF9ERVNJR05FRF9JQ01QU1RBVAotI3VuZGVmIElDTVBfTlNUQVRTCi0jZW5kaWYKLQotI2lmZGVmIEhBVkVfSVBITFBBUElfSAotI2luY2x1ZGUgPGlwaGxwYXBpLmg+Ci0jZGVmaW5lIElDTVBfU1RBVF9TVFJVQ1RVUkUgTUlCX0lDTVAKLSNlbmRpZgotCi0vKiA/PyAjaWYgKGRlZmluZWQoTkVUU05NUF9DQU5fVVNFX1NZU0NUTCkgJiYgZGVmaW5lZChJQ01QQ1RMX1NUQVRTKSkgPz8gKi8KLQotI2lmZGVmIEhBVkVfU1lTX0lDTVBJUFNUQVRTX0gKLS8qIG9yICNpZmRlZgkJSEFWRV9TWVNfVENQSVBTVEFUU19IICA/Pz8gKi8KLSNkZWZpbmUgSUNNUF9TVEFUX1NUUlVDVFVSRQlzdHJ1Y3Qga25hCi0jZGVmaW5lIFVTRVNfVFJBRElUSU9OQUxfSUNNUFNUQVQKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoSUNNUF9TVEFUX1NUUlVDVFVSRSkKLSNkZWZpbmUgSUNNUF9TVEFUX1NUUlVDVFVSRQlzdHJ1Y3QgaWNtcHN0YXQKLSNkZWZpbmUgVVNFU19UUkFESVRJT05BTF9JQ01QU1RBVAotI2VuZGlmCi0KLUlDTVBfU1RBVF9TVFJVQ1RVUkUgaWNtcHN0YXQ7Ci0KLQogICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqCiAJICoKIAkgKiAgU3lzdGVtIGluZGVwZW5kZW50IGhhbmRsZXIKQEAgLTY3Miw5ICs3ODQsNiBAQAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqcmVxdWVzdHZiOwogICAgIGxvbmcgICAgIHJldF92YWx1ZTsKICAgICBvaWQgICAgICBzdWJpZDsKLSNpZmRlZiBVU0VTX1RSQURJVElPTkFMX0lDTVBTVEFUCi0gICAgaW50ICAgICAgaTsKLSNlbmRpZgogCiAgICAgLyoKICAgICAgKiBUaGUgY2FjaGVkIGRhdGEgc2hvdWxkIGFscmVhZHkgaGF2ZSBiZWVuIGxvYWRlZCBieSB0aGUKQEAgLTc4MiwxMyArODkxLDE2IEBACiAgICAgICAgIHJldF92YWx1ZSA9IGljbXBzdGF0LmljbXBPdXRBZGRyTWFza1JlcHM7CiAgICAgICAgIGJyZWFrOwogI2VsaWYgZGVmaW5lZChVU0VTX1RSQURJVElPTkFMX0lDTVBTVEFUKSAmJiAhZGVmaW5lZChfVVNFX1BFUkZTVEFUX1BST1RPQ09MKQotICAgIGNhc2UgSUNNUElOTVNHUzoKKyAgICBjYXNlIElDTVBJTk1TR1M6IHsKKyAgICAgICAgaW50IGk7CisKICAgICAgICAgcmV0X3ZhbHVlID0gaWNtcHN0YXQuaWNwc19iYWRjb2RlICsKICAgICAgICAgICAgIGljbXBzdGF0LmljcHNfdG9vc2hvcnQgKwogICAgICAgICAgICAgaWNtcHN0YXQuaWNwc19jaGVja3N1bSArIGljbXBzdGF0LmljcHNfYmFkbGVuOwogICAgICAgICBmb3IgKGkgPSAwOyBpIDw9IElDTVBfTUFYVFlQRTsgaSsrKQogICAgICAgICAgICAgcmV0X3ZhbHVlICs9IGljbXBzdGF0LmljcHNfaW5oaXN0W2ldOwogICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBJQ01QSU5FUlJPUlM6CiAgICAgICAgIHJldF92YWx1ZSA9IGljbXBzdGF0LmljcHNfYmFkY29kZSArCiAgICAgICAgICAgICBpY21wc3RhdC5pY3BzX3Rvb3Nob3J0ICsKQEAgLTgyNywxMSArOTM5LDE0IEBACiAgICAgY2FzZSBJQ01QSU5BRERSTUFTS1JFUFM6CiAgICAgICAgIHJldF92YWx1ZSA9IGljbXBzdGF0LmljcHNfaW5oaXN0W0lDTVBfTUFTS1JFUExZXTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJQ01QT1VUTVNHUzoKKyAgICBjYXNlIElDTVBPVVRNU0dTOiB7CisgICAgICAgIGludCBpOworCiAgICAgICAgIHJldF92YWx1ZSA9IGljbXBzdGF0LmljcHNfb2xkc2hvcnQgKyBpY21wc3RhdC5pY3BzX29sZGljbXA7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPD0gSUNNUF9NQVhUWVBFOyBpKyspCiAgICAgICAgICAgICByZXRfdmFsdWUgKz0gaWNtcHN0YXQuaWNwc19vdXRoaXN0W2ldOwogICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBJQ01QT1VURVJST1JTOgogICAgICAgICByZXRfdmFsdWUgPSBpY21wc3RhdC5pY3BzX29sZHNob3J0ICsgaWNtcHN0YXQuaWNwc19vbGRpY21wOwogICAgICAgICBicmVhazsKQEAgLTEwMzMsNiArMTE0OCw3IEBACiAKICAgICBjYXNlIE1PREVfR0VUTkVYVDoKICAgICBjYXNlIE1PREVfR0VUQlVMSzoKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMToKICAgICBjYXNlIE1PREVfU0VUX1JFU0VSVkUyOgogICAgIGNhc2UgTU9ERV9TRVRfQUNUSU9OOgpAQCAtMTA0Miw2ICsxMTU4LDcgQEAKICAgICAgICAgc25tcF9sb2coTE9HX1dBUk5JTkcsICJtaWJJSS9pY21wOiBVbnN1cHBvcnRlZCBtb2RlICglZClcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxaW5mby0+bW9kZSk7CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICBkZWZhdWx0OgogICAgICAgICBzbm1wX2xvZyhMT0dfV0FSTklORywgIm1pYklJL2ljbXA6IFVucmVjb2duaXNlZCBtb2RlICglZClcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxaW5mby0+bW9kZSk7CkBAIC0xMDUyLDcgKzExNjksNyBAQAogfQogCiAKLSNpZmRlZiBsaW51eAorI2lmZGVmIFVTRVNfU05NUF9ERVNJR05FRF9JQ01QU1RBVAogaW50CiBpY21wX3N0YXRzX3RhYmxlX2hhbmRsZXIobmV0c25tcF9taWJfaGFuZGxlciAgKmhhbmRsZXIsCiAgICAgICAgICAgICAgICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKnJlZ2luZm8sCkBAIC0xMTA1LDYgKzEyMjIsNyBAQAogCQkJYnJlYWs7CiAJCWNhc2UgTU9ERV9HRVRORVhUOgogCQljYXNlIE1PREVfR0VUQlVMSzoKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAJCWNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CiAJCWNhc2UgTU9ERV9TRVRfUkVTRVJWRTI6CiAJCWNhc2UgTU9ERV9TRVRfQUNUSU9OOgpAQCAtMTExNCw2ICsxMjMyLDcgQEAKIAkJCXNubXBfbG9nKExPR19XQVJOSU5HLCAibWliSUkvaWNtcFN0YXRzVGFibGU6IFVuc3VwcG9ydGVkIG1vZGUgKCVkKVxuIiwKIAkJCQlyZXFpbmZvLT5tb2RlKTsKIAkJCWJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAkJZGVmYXVsdDoKIAkJCXNubXBfbG9nKExPR19XQVJOSU5HLCAibWliSUkvaWNtcFN0YXRzVGFibGU6IFVucmVjb2duaXNlZCBtb2RlICglZClcbiIsCiAJCQkJcmVxaW5mby0+bW9kZSk7CkBAIC0xMTc1LDYgKzEyOTQsNyBAQAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTU9ERV9HRVRORVhUOgogICAgICAgICBjYXNlIE1PREVfR0VUQlVMSzoKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CiAgICAgICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTI6CiAgICAgICAgIGNhc2UgTU9ERV9TRVRfQUNUSU9OOgpAQCAtMTE4NCw2ICsxMzA0LDcgQEAKICAgICAgICAgICAgIHNubXBfbG9nKExPR19XQVJOSU5HLCAibWliSUkvaWNtcFN0YXRzVGFibGU6IFVuc3VwcG9ydGVkIG1vZGUgKCVkKVxuIiwKICAgICAgICAgICAgICAgICAgICAgcmVxaW5mby0+bW9kZSk7CiAgICAgICAgICAgICBicmVhazsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfV0FSTklORywgIm1pYklJL2ljbXBTdGF0c1RhYmxlOiBVbnJlY29nbmlzZWQgbW9kZSAoJWQpXG4iLAogICAgICAgICAgICAgICAgICAgICByZXFpbmZvLT5tb2RlKTsKQEAgLTExOTMsNyArMTMxNCw3IEBACiAKICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKIH0KLSNlbmRpZgkJLyogbGludXggKi8KKyNlbmRpZgkJLyogVVNFU19TTk1QX0RFU0lHTkVEX0lDTVBTVEFUICovCiAKICAgICAgICAgLyoqKioqKioqKioqKioqKioqKioqKgogCSAqCkBAIC0xMzMyLDcgKzE0NTMsMTEgQEAKIGludAogaWNtcF9sb2FkKG5ldHNubXBfY2FjaGUgKmNhY2hlLCB2b2lkICp2bWFnaWMpCiB7Ci0gICAgbG9uZyAgICAgICAgICAgIHJldF92YWx1ZSA9IC0xOworICAgIGludCByZXRfdmFsdWUgPSAtMTsKKyNpZmRlZiBORVRTTk1QX0VOQUJMRV9JUFY2CisgICAgbWliMl9pcHY2SWZJY21wRW50cnlfdCBpZnN0YXQ7CisgICAgaW50IHJlcSA9IEdFVF9GSVJTVDsKKyNlbmRpZgogCiAgICAgcmV0X3ZhbHVlID0KICAgICAgICAgZ2V0TWlic3RhdChNSUJfSUNNUCwgJmljbXBzdGF0LCBzaXplb2YobWliMl9pY21wX3QpLCBHRVRfRklSU1QsCkBAIC0xMzQzLDggKzE0NjgsODUgQEAKICAgICB9IGVsc2UgewogICAgICAgICBERUJVR01TR1RMKCgibWliSUkvaWNtcCIsICJMb2FkZWQgSUNNUCBHcm91cCAoc29sYXJpcylcbiIpKTsKICAgICB9CisKKyNpZmRlZiBORVRTTk1QX0VOQUJMRV9JUFY2CisgICAgbWVtc2V0KCZpY21wNnN0YXQsIDAsIHNpemVvZihpY21wNnN0YXQpKTsKKyAgICB3aGlsZSAoKHJldF92YWx1ZSA9IGdldE1pYnN0YXQoTUlCX0lDTVA2LCAmaWZzdGF0LCBzaXplb2YoaWZzdGF0KSwgcmVxLAorICAgICAgICAgICAgICAgICAgICZHZXRfZXZlcnl0aGluZywgTlVMTCkpID09IDApIHsKKwlpZiAoIHJldF92YWx1ZSA8IDAgKSB7CisJICAgIERFQlVHTVNHVEwoKCJtaWJJSS9pY21wIiwgIkZhaWxlZCB0byBsb2FkIElDTVA2IEdyb3VwIChzb2xhcmlzKVxuIikpOworCX0gZWxzZSB7CisJICAgIERFQlVHTVNHVEwoKCJtaWJJSS9pY21wIiwgIkxvYWRlZCBJQ01QNiBHcm91cCAoc29sYXJpcylcbiIpKTsKKwl9CisJaWNtcDZzdGF0LmljbXA2T3V0TXNncyArPSBpZnN0YXQuaXB2NklmSWNtcE91dE1zZ3M7CisJaWNtcDZzdGF0LmljbXA2SW5Nc2dzICs9IGlmc3RhdC5pcHY2SWZJY21wSW5Nc2dzOworCWljbXA2c3RhdC5pY21wNkluRXJyb3JzICs9IGlmc3RhdC5pcHY2SWZJY21wSW5FcnJvcnM7CisJaWNtcDZzdGF0LmljbXA2T3V0RGVzdFVucmVhY2hzICs9IGlmc3RhdC5pcHY2SWZJY21wT3V0RGVzdFVucmVhY2hzOworCWljbXA2c3RhdC5pY21wNkluRGVzdFVucmVhY2hzICs9IGlmc3RhdC5pcHY2SWZJY21wSW5EZXN0VW5yZWFjaHM7CisJaWNtcDZzdGF0LmljbXA2T3V0UGt0VG9vQmlncyArPSBpZnN0YXQuaXB2NklmSWNtcE91dFBrdFRvb0JpZ3M7CisJaWNtcDZzdGF0LmljbXA2SW5Qa3RUb29CaWdzICs9IGlmc3RhdC5pcHY2SWZJY21wSW5Qa3RUb29CaWdzOworCWljbXA2c3RhdC5pY21wNk91dFRpbWVFeGNkcyArPSBpZnN0YXQuaXB2NklmSWNtcE91dFRpbWVFeGNkczsKKwlpY21wNnN0YXQuaWNtcDZJblRpbWVFeGNkcyArPSBpZnN0YXQuaXB2NklmSWNtcEluVGltZUV4Y2RzOworCWljbXA2c3RhdC5pY21wNk91dFBhcm1Qcm9ibGVtcyArPSBpZnN0YXQuaXB2NklmSWNtcE91dFBhcm1Qcm9ibGVtczsKKwlpY21wNnN0YXQuaWNtcDZJblBhcm1Qcm9ibGVtcyArPSBpZnN0YXQuaXB2NklmSWNtcEluUGFybVByb2JsZW1zOworCWljbXA2c3RhdC5pY21wNk91dEVjaG9zICs9IGlmc3RhdC5pcHY2SWZJY21wT3V0RWNob3M7CisJaWNtcDZzdGF0LmljbXA2SW5FY2hvcyArPSBpZnN0YXQuaXB2NklmSWNtcEluRWNob3M7CisJaWNtcDZzdGF0LmljbXA2T3V0RWNob1JlcGxpZXMgKz0gaWZzdGF0LmlwdjZJZkljbXBPdXRFY2hvUmVwbGllczsKKwlpY21wNnN0YXQuaWNtcDZJbkVjaG9SZXBsaWVzICs9IGlmc3RhdC5pcHY2SWZJY21wSW5FY2hvUmVwbGllczsKKwlpY21wNnN0YXQuaWNtcDZPdXRSb3V0ZXJTb2xpY2l0cyArPSBpZnN0YXQuaXB2NklmSWNtcE91dFJvdXRlclNvbGljaXRzOworCWljbXA2c3RhdC5pY21wNkluUm91dGVyU29saWNpdHMgKz0gaWZzdGF0LmlwdjZJZkljbXBJblJvdXRlclNvbGljaXRzOworCWljbXA2c3RhdC5pY21wNk91dE5laWdoYm9yQWR2ZXJ0aXNlbWVudHMgKz0gaWZzdGF0LmlwdjZJZkljbXBPdXROZWlnaGJvckFkdmVydGlzZW1lbnRzOworCWljbXA2c3RhdC5pY21wNkluTmVpZ2hib3JBZHZlcnRpc2VtZW50cyArPSBpZnN0YXQuaXB2NklmSWNtcEluTmVpZ2hib3JBZHZlcnRpc2VtZW50czsKKwlpY21wNnN0YXQuaWNtcDZPdXROZWlnaGJvclNvbGljaXRzICs9IGlmc3RhdC5pcHY2SWZJY21wT3V0TmVpZ2hib3JTb2xpY2l0czsKKwlpY21wNnN0YXQuaWNtcDZJbk5laWdoYm9yU29saWNpdHMgKz0gaWZzdGF0LmlwdjZJZkljbXBJbk5laWdoYm9yU29saWNpdHM7CisJaWNtcDZzdGF0LmljbXA2T3V0UmVkaXJlY3RzICs9IGlmc3RhdC5pcHY2SWZJY21wT3V0UmVkaXJlY3RzOworCWljbXA2c3RhdC5pY21wNkluUmVkaXJlY3RzICs9IGlmc3RhdC5pcHY2SWZJY21wSW5SZWRpcmVjdHM7CisJaWNtcDZzdGF0LmljbXA2SW5Hcm91cE1lbWJRdWVyaWVzICs9IGlmc3RhdC5pcHY2SWZJY21wSW5Hcm91cE1lbWJRdWVyaWVzOworCWljbXA2c3RhdC5pY21wNk91dEdyb3VwTWVtYlJlc3BvbnNlcyArPSBpZnN0YXQuaXB2NklmSWNtcE91dEdyb3VwTWVtYlJlc3BvbnNlczsKKwlpY21wNnN0YXQuaWNtcDZJbkdyb3VwTWVtYlJlc3BvbnNlcyArPSBpZnN0YXQuaXB2NklmSWNtcEluR3JvdXBNZW1iUmVzcG9uc2VzOworCWljbXA2c3RhdC5pY21wNk91dEdyb3VwTWVtYlJlZHVjdGlvbnMgKz0gaWZzdGF0LmlwdjZJZkljbXBPdXRHcm91cE1lbWJSZWR1Y3Rpb25zOworCWljbXA2c3RhdC5pY21wNkluR3JvdXBNZW1iUmVkdWN0aW9ucyArPSBpZnN0YXQuaXB2NklmSWNtcEluR3JvdXBNZW1iUmVkdWN0aW9uczsKKwlyZXEgPSBHRVRfTkVYVDsKKyAgICB9CisjZW5kaWYKKworICAgIGljbXBfc3RhdHNfbG9hZChjYWNoZSwgdm1hZ2ljKTsKKyAgICBpY21wX21zZ19zdGF0c19sb2FkKGNhY2hlLCB2bWFnaWMpOwogICAgIHJldHVybiByZXRfdmFsdWU7CiB9CisKK3N0YXRpYyBpbnQKK3NvbGFyaXNfcmVhZF9pY21wX3N0YXQoSUNNUF9TVEFUX1NUUlVDVFVSRSAqbWliKQoreworICAgICptaWIgPSBpY21wc3RhdDsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorc29sYXJpc19yZWFkX2ljbXBfbXNnX3N0YXQoSUNNUF9TVEFUX1NUUlVDVFVSRSAqbWliLCBzdHJ1Y3QgaWNtcDRfbXNnX21pYiAqbXNnX21pYiwgaW50ICpmbGFnKQoreworICAgICptaWIgPSBpY21wc3RhdDsKKyAgICAqZmxhZyA9IDA7CisgICAgcmV0dXJuIDA7Cit9CisKKyNpZmRlZiBORVRTTk1QX0VOQUJMRV9JUFY2CitzdGF0aWMgaW50Citzb2xhcmlzX3JlYWRfaWNtcDZfc3RhdChzdHJ1Y3QgaWNtcDZfbWliICptaWIpCit7CisgICAgKm1pYiA9IGljbXA2c3RhdDsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorc29sYXJpc19yZWFkX2ljbXA2X21zZ19zdGF0KHN0cnVjdCBpY21wNl9taWIgKm1pYiwgc3RydWN0IGljbXA2X21zZ19taWIgKm1zZ19taWIsIGludCAqZmxhZykKK3sKKyAgICAqbWliID0gaWNtcDZzdGF0OworICAgICpmbGFnID0gMDsKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgorCiAjZWxpZiBkZWZpbmVkKE5FVEJTRF9TVEFUU19WSUFfU1lTQ1RMKQogaW50CiBpY21wX2xvYWQobmV0c25tcF9jYWNoZSAqY2FjaGUsIHZvaWQgKnZtYWdpYykKQEAgLTEzNTgsNiArMTU2MCw4IEBACiAgICAgfSBlbHNlIHsKIAlERUJVR01TR1RMKCgibWliSUkvaWNtcCIsICJMb2FkZWQgSUNNUCBHcm91cCAobmV0YnNkKVxuIikpOwogICAgIH0KKyAgICBpY21wX3N0YXRzX2xvYWQoY2FjaGUsIHZtYWdpYyk7CisgICAgaWNtcF9tc2dfc3RhdHNfbG9hZChjYWNoZSwgdm1hZ2ljKTsKICAgICByZXR1cm4gcmV0X3ZhbHVlOwogfQogI2VsaWYgZGVmaW5lZCAoV0lOMzIpIHx8IGRlZmluZWQgKGN5Z3dpbikKQEAgLTEzOTcsMTcgKzE2MDEsMTYgQEAKIGljbXBfbG9hZChuZXRzbm1wX2NhY2hlICpjYWNoZSwgdm9pZCAqdm1hZ2ljKQogewogICAgIGxvbmcgICAgICAgICAgICByZXRfdmFsdWUgPSAtMTsKLSAgICBzdGF0aWMgaW50ICAgICAgc25hbWVbNF0gPQotICAgICAgICB7IENUTF9ORVQsIFBGX0lORVQsIElQUFJPVE9fSUNNUCwgSUNNUENUTF9TVEFUUyB9OwotICAgIHNpemVfdCAgICAgICAgICBsZW4gPSBzaXplb2YoaWNtcHN0YXQpOwogCi0gICAgcmV0X3ZhbHVlID0gc3lzY3RsKHNuYW1lLCA0LCAmaWNtcHN0YXQsICZsZW4sIDAsIDApOworICAgIHJldF92YWx1ZSA9IHN5c2N0bF9yZWFkX2ljbXBfc3RhdCgmaWNtcHN0YXQpOwogCiAgICAgaWYgKCByZXRfdmFsdWUgPCAwICkgewotICAgICAgICBERUJVR01TR1RMKCgibWliSUkvaWNtcCIsICJGYWlsZWQgdG8gbG9hZCBJQ01QIEdyb3VwIChzeXNjdGwpXG4iKSk7CisJREVCVUdNU0dUTCgoIm1pYklJL2ljbXAiLCAiRmFpbGVkIHRvIGxvYWQgSUNNUCBHcm91cCAobmV0YnNkKVxuIikpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIERFQlVHTVNHVEwoKCJtaWJJSS9pY21wIiwgIkxvYWRlZCBJQ01QIEdyb3VwIChzeXNjdGwpXG4iKSk7CisJREVCVUdNU0dUTCgoIm1pYklJL2ljbXAiLCAiTG9hZGVkIElDTVAgR3JvdXAgKG5ldGJzZClcbiIpKTsKICAgICB9CisgICAgaWNtcF9zdGF0c19sb2FkKGNhY2hlLCB2bWFnaWMpOworICAgIGljbXBfbXNnX3N0YXRzX2xvYWQoY2FjaGUsIHZtYWdpYyk7CiAgICAgcmV0dXJuIHJldF92YWx1ZTsKIH0KICNlbGlmIGRlZmluZWQoSEFWRV9TWVNfVENQSVBTVEFUU19IKQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oCmluZGV4IDkzMDc2NTQuLjczNTMzY2YgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL21pYklJL2ljbXAuaAorKysgYi9hZ2VudC9taWJncm91cC9taWJJSS9pY21wLmgKQEAgLTUsMTAgKzUsMjQgQEAKICNpZm5kZWYgX01JQkdST1VQX0lDTVBfSAogI2RlZmluZSBfTUlCR1JPVVBfSUNNUF9ICiAKLWNvbmZpZ19hcmNoX3JlcXVpcmUoc29sYXJpczIsICAgICAgICBrZXJuZWxfc3Vub3M1KQorY29uZmlnX2FyY2hfcmVxdWlyZShzb2xhcmlzMiwgIGtlcm5lbF9zdW5vczUpCiBjb25maWdfYXJjaF9yZXF1aXJlKGxpbnV4LCAgICAgbWliSUkva2VybmVsX2xpbnV4KQorY29uZmlnX2FyY2hfcmVxdWlyZShmcmVlYnNkNCwgIG1pYklJL2tlcm5lbF9zeXNjdGwpCitjb25maWdfYXJjaF9yZXF1aXJlKGZyZWVic2Q1LCAgbWliSUkva2VybmVsX3N5c2N0bCkKK2NvbmZpZ19hcmNoX3JlcXVpcmUoZnJlZWJzZDYsICBtaWJJSS9rZXJuZWxfc3lzY3RsKQorY29uZmlnX2FyY2hfcmVxdWlyZShmcmVlYnNkNywgIG1pYklJL2tlcm5lbF9zeXNjdGwpCitjb25maWdfYXJjaF9yZXF1aXJlKGZyZWVic2Q4LCAgbWliSUkva2VybmVsX3N5c2N0bCkKK2NvbmZpZ19hcmNoX3JlcXVpcmUoZnJlZWJzZDksICBtaWJJSS9rZXJuZWxfc3lzY3RsKQorY29uZmlnX2FyY2hfcmVxdWlyZShmcmVlYnNkMTAsIG1pYklJL2tlcm5lbF9zeXNjdGwpCiBjb25maWdfYXJjaF9yZXF1aXJlKG5ldGJzZCwgICAgbWliSUkva2VybmVsX25ldGJzZCkKIGNvbmZpZ19hcmNoX3JlcXVpcmUobmV0YnNkZWxmLCBtaWJJSS9rZXJuZWxfbmV0YnNkKQorY29uZmlnX2FyY2hfcmVxdWlyZShvcGVuYnNkNCwgIG1pYklJL2tlcm5lbF9zeXNjdGwpCitjb25maWdfYXJjaF9yZXF1aXJlKG9wZW5ic2Q1LCAgbWliSUkva2VybmVsX3N5c2N0bCkKK2NvbmZpZ19hcmNoX3JlcXVpcmUoZHJhZ29uZmx5MiwgbWliSUkva2VybmVsX3N5c2N0bCkKK2NvbmZpZ19hcmNoX3JlcXVpcmUoZHJhZ29uZmx5MywgbWliSUkva2VybmVsX3N5c2N0bCkKK2NvbmZpZ19hcmNoX3JlcXVpcmUoZGFyd2luMTAsICBtaWJJSS9rZXJuZWxfc3lzY3RsKQorY29uZmlnX2FyY2hfcmVxdWlyZShkYXJ3aW4xMSwgIG1pYklJL2tlcm5lbF9zeXNjdGwpCitjb25maWdfYXJjaF9yZXF1aXJlKGRhcndpbjEyLCAgbWliSUkva2VybmVsX3N5c2N0bCkKIAogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaD4KIApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCmluZGV4IDQ2NzY1N2EuLjI2ZmZlYmIgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYworKysgYi9hZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKQEAgLTE1LDYgKzE1LDkgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KKworbmV0c25tcF9mZWF0dXJlX3Byb3ZpZGUoaW50ZXJmYWNlX2xlZ2FjeSkKIAogI2lmIGRlZmluZWQoTkVUU05NUF9JRk5FVF9ORUVEU19LRVJORUwpICYmICFkZWZpbmVkKF9LRVJORUwpICYmICFkZWZpbmVkKE5FVFNOTVBfSUZORVRfTkVFRFNfS0VSTkVMX0xBVEUpCiAjZGVmaW5lIF9LRVJORUwgMQpAQCAtMTk1LDYgKzE5OCw3IEBACiAKICNpbmNsdWRlICJpbnRlcmZhY2VzLmgiCiAjaW5jbHVkZSAic3RydWN0LmgiCisjaW5jbHVkZSAidXRpbF9mdW5jcy5oIgogI2luY2x1ZGUgInV0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaCIKIAogLyogaWYgeW91IHdhbnQgY2FjaGluZyBlbmFibGVkIGZvciBzcGVlZCByZXRyaWV2YWwgcHVycG9zZXMsIHNldCB0aGlzIHRvIDU/Ki8KQEAgLTIyMCw2ICsyMjQsNyBAQAogICAgICB2YXJfaWZFbnRyeSwgMywgezIsIDEsIDV9fSwKICAgICB7TkVUU05NUF9JRlBIWVNBRERSRVNTLCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9ST05MWSwKICAgICAgdmFyX2lmRW50cnksIDMsIHsyLCAxLCA2fX0sCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogI2lmIGRlZmluZWQgKFdJTjMyKSB8fCBkZWZpbmVkIChjeWd3aW4pCiAgICAge05FVFNOTVBfSUZBRE1JTlNUQVRVUywgQVNOX0lOVEVHRVIsIE5FVFNOTVBfT0xEQVBJX1JXUklURSwKICAgICAgdmFyX2lmRW50cnksIDMsIHsyLCAxLCA3fX0sCkBAIC0yMjcsNiArMjMyLDEwIEBACiAgICAge05FVFNOTVBfSUZBRE1JTlNUQVRVUywgQVNOX0lOVEVHRVIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAogICAgICB2YXJfaWZFbnRyeSwgMywgezIsIDEsIDd9fSwKICNlbmRpZgorI2Vsc2UgIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKyAgICB7TkVUU05NUF9JRkFETUlOU1RBVFVTLCBBU05fSU5URUdFUiwgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9pZkVudHJ5LCAzLCB7MiwgMSwgN319LAorI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICB7TkVUU05NUF9JRk9QRVJTVEFUVVMsIEFTTl9JTlRFR0VSLCBORVRTTk1QX09MREFQSV9ST05MWSwKICAgICAgdmFyX2lmRW50cnksIDMsIHsyLCAxLCA4fX0sCiAgICAge05FVFNOTVBfSUZMQVNUQ0hBTkdFLCBBU05fVElNRVRJQ0tTLCBORVRTTk1QX09MREFQSV9ST05MWSwKQEAgLTc2OSw5ICs3NzgsNiBAQAogICAgIHN0YXRpYyBjaGFyICAgICBOYW1lWzE2XTsKICAgICBjaGFyICAgICAgICAgICAqY3A7CiAgICAgY29uZl9pZl9saXN0ICAgKmlmX3B0cjsKLSNpZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9MQVNUQ0hBTkdFX1RWX1NFQwotICAgIHN0cnVjdCB0aW1ldmFsICBub3c7Ci0jZW5kaWYKIAogICAgIGludGVyZmFjZSA9CiAgICAgICAgIGhlYWRlcl9pZkVudHJ5KHZwLCBuYW1lLCBsZW5ndGgsIGV4YWN0LCB2YXJfbGVuLCB3cml0ZV9tZXRob2QpOwpAQCAtMTUxOSw3ICsxNTI1LDcgQEAKIAogI2lmZGVmIGxpbnV4CiAgICAgLyogIGRpc2FsbG93IHJlbG9hZGluZyBvZiBzdHJ1Y3R1cmVzIHRvbyBvZnRlbiAqLwotICAgIGdldHRpbWVvZmRheSAoICZldCwgKCBzdHJ1Y3QgdGltZXpvbmUgKiApIDAgKTsgIC8qICBnZXQgdGltZS1vZi1kYXkgKi8KKyAgICBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soJmV0KTsKICAgICBpZiAoIGV0LnR2X3NlYyA8IExhc3RMb2FkICsgTUlOTE9BREZSRVEgKSB7ICAgICAvKiAgb25seSByZWxvYWQgc28gb2Z0ZW4gKi8KICAgICAgIGlmbmV0YWRkciA9IGlmbmV0YWRkcl9saXN0OyAgICAgICAgICAgICAgICAgICAvKiAgaW5pdGlhbGl6ZSBwb2ludGVyICovCiAgICAgICByZXR1cm47CkBAIC0xODk2LDYgKzE5MDIsMTAgQEAKICNpZmRlZiBsaW51eAogICAgICAgICBzdHJsY2F0KHNhdmVOYW1lLCBpZm5ldC5pZl91bml0LCBzaXplb2Yoc2F2ZU5hbWUpKTsKICNlbHNlCisjaWZkZWYgTkVUU05NUF9GRUFUVVJFX0NIRUNLSU4KKyAgICAgICAgLyogdGhpcyBleGlzdHMgaGVyZSBqdXN0IHNvIHdlIGRvbid0IGNvcHkgaWZkZWYgbG9naWMgZWxzZXdoZXJlICovCisgICAgICAgIG5ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHN0cmluZ19hcHBlbmRfaW50KTsKKyNlbmRpZgogICAgICAgICBzdHJpbmdfYXBwZW5kX2ludChjcCwgaWZuZXQuaWZfdW5pdCk7CiAjZW5kaWYKICAgICAgICAgaWYgKDEgfHwgc3RyY21wKHNhdmVOYW1lLCAibG8wIikgIT0gMCkgeyAgICAgICAgLyogWFhYICovCkBAIC0yMDQ3LDYgKzIwNTcsMTAgQEAKIAogICAgICAgICBzYXZlTmFtZVtzaXplb2Yoc2F2ZU5hbWUpIC0gMV0gPSAnXDAnOwogICAgICAgICBjcCA9IHN0cmNocihzYXZlTmFtZSwgJ1wwJyk7CisjaWZkZWYgTkVUU05NUF9GRUFUVVJFX0NIRUNLSU4KKyAgICAgICAgLyogdGhpcyBleGlzdHMgaGVyZSBqdXN0IHNvIHdlIGRvbid0IGNvcHkgaWZkZWYgbG9naWMgZWxzZXdoZXJlICovCisgICAgICAgIG5ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHN0cmluZ19hcHBlbmRfaW50KTsKKyNlbmRpZgogICAgICAgICBzdHJpbmdfYXBwZW5kX2ludChjcCwgaWZuZXQuaWZfdW5pdCk7CiAjZW5kaWYKICAgICAgICAgaWYgKDEgfHwgc3RyY21wKHNhdmVOYW1lLCAibG8wIikgIT0gMCkgeyAgICAgICAgLyogWFhYICovCkBAIC0yNjUzLDcgKzI2NjcsOSBAQAogI2VsaWYgZGVmaW5lZChIQVZFX0lQSExQQVBJX0gpICAvKiBXSU4zMiBjeWd3aW4gKi8KICNpbmNsdWRlIDxpcGhscGFwaS5oPgogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogV3JpdGVNZXRob2QgICAgIHdyaXRlSWZFbnRyeTsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiBsb25nICAgICAgICAgICAgYWRtaW5fc3RhdHVzID0gMDsKIGxvbmcgICAgICAgICAgICBvbGRhZG1pbl9zdGF0dXMgPSAwOwogCkBAIC0yNzk4LDcgKzI4MTQsOSBAQAogICAgIGNhc2UgTkVUU05NUF9JRkFETUlOU1RBVFVTOgogICAgICAgICBsb25nX3JldHVybiA9IGlmUm93LmR3QWRtaW5TdGF0dXM7CiAgICAgICAgIGFkbWluX3N0YXR1cyA9IGxvbmdfcmV0dXJuOworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlSWZFbnRyeTsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgIHJldHVybiAodV9jaGFyICopICYgbG9uZ19yZXR1cm47CiAgICAgY2FzZSBORVRTTk1QX0lGT1BFUlNUQVRVUzoKICAgICAgICAgbG9uZ19yZXR1cm4gPQpAQCAtMjg1NCw2ICsyODcyLDcgQEAKIH0KIAogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogaW50CiB3cml0ZUlmRW50cnkoaW50IGFjdGlvbiwKICAgICAgICAgICAgICB1X2NoYXIgKiB2YXJfdmFsLApAQCAtMjkyNSw0ICsyOTQ0LDUgQEAKICAgICB9CiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGVuZCBvZiB3cml0ZUlmRW50cnkgKi8KKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovIAogI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBXSU4zMiBjeWd3aW4gKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL21pYklJL2lwLmMgYi9hZ2VudC9taWJncm91cC9taWJJSS9pcC5jCmluZGV4IDI0ODJhOTEuLmYzOWQzMjIgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL21pYklJL2lwLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwpAQCAtNjc3LDYgKzY3Nyw3IEBACiAKICAgICBjYXNlIE1PREVfR0VUTkVYVDoKICAgICBjYXNlIE1PREVfR0VUQlVMSzoKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMToKIAkJLyogWFhYIC0gV2luZG93cyBjdXJyZW50bHkgc3VwcG9ydHMgc2V0dGluZyB0aGlzICovCiAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMjoKQEAgLTY4Nyw2ICs2ODgsNyBAQAogICAgICAgICBzbm1wX2xvZyhMT0dfV0FSTklORywgIm1pYklJL2lwOiBVbnN1cHBvcnRlZCBtb2RlICglZClcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxaW5mby0+bW9kZSk7CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICBkZWZhdWx0OgogICAgICAgICBzbm1wX2xvZyhMT0dfV0FSTklORywgIm1pYklJL2lwOiBVbnJlY29nbmlzZWQgbW9kZSAoJWQpXG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcWluZm8tPm1vZGUpOwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgYi9hZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYwppbmRleCAzMzI2NjI2Li5hNGQ1NzdlIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYworKysgYi9hZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYwpAQCAtMTUsNiArMTUsNyBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaWYgZGVmaW5lZChORVRTTk1QX0lGTkVUX05FRURTX0tFUk5FTCkgJiYgIWRlZmluZWQoX0tFUk5FTCkKICNkZWZpbmUgX0tFUk5FTCAxCkBAIC0xMjAsNiArMTIxLDggQEAKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjZW5kaWYKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaW50ZXJmYWNlX2xlZ2FjeSkKKwogICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqCiAJICoKIAkgKiAgS2VybmVsICYgaW50ZXJmYWNlIGluZm9ybWF0aW9uLApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZS5jIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZS5jCmluZGV4IDA5OWUzOWYuLjg2MDliYjAgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmMKQEAgLTQsNiArNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSAicm91dGVfaGVhZGVycy5oIgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KQEAgLTEzLDYgKzE0LDExIEBACiAKICNpbmNsdWRlICJ2YXJfcm91dGUuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUob2lkX3N0YXNoKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoZ2V0X3JvdXRlcykKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKG9pZF9zdGFzaF9nZXRfZGF0YSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKG9pZF9zdGFzaF9hZGRfZGF0YSkKKwogc3RhdGljIG5ldHNubXBfb2lkX3N0YXNoX25vZGUgKnVuZG9TdG9yYWdlOwogCiBzdHJ1Y3QgdW5kb0luZm8gewpAQCAtOTksNyArMTA1LDcgQEAKICAgICAgKi8KICAgICBERUJVR01TR1RMKCgiaW5pdGlhbGl6ZV90YWJsZV9pcENpZHJSb3V0ZVRhYmxlIiwKICAgICAgICAgICAgICAgICAiUmVnaXN0ZXJpbmcgdGFibGUgaXBDaWRyUm91dGVUYWJsZSBhcyBhIHRhYmxlIGl0ZXJhdG9yXG4iKSk7Ci0gICAgbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9pdGVyYXRvcihteV9oYW5kbGVyLCBpaW5mbyk7CisgICAgbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9pdGVyYXRvcjIobXlfaGFuZGxlciwgaWluZm8pOwogfQogCiAvKiogSW5pdGlhbGl6ZXMgdGhlIGlwQ2lkclJvdXRlVGFibGUgbW9kdWxlICovCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMgYi9hZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMKaW5kZXggMzNhM2RiNy4uOTlkNTBlOCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jCisrKyBiL2FnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYwpAQCAtNCw2ICs0LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpZiBkZWZpbmVkKE5FVFNOTVBfSUZORVRfTkVFRFNfS0VSTkVMKSAmJiAhZGVmaW5lZChfS0VSTkVMKQogI2RlZmluZSBfS0VSTkVMIDEKICNkZWZpbmUgX0lfREVGSU5FRF9LRVJORUwKQEAgLTE0Myw2ICsxNDQsOCBAQAogI2luY2x1ZGUgImlwdjYuaCIKICNpbmNsdWRlICJpbnRlcmZhY2VzLmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGxpbnV4X3JlYWRfaXA2X3N0YXQpCisKICNpZiBkZWZpbmVkKG5ldGJzZDEpICYmICFkZWZpbmVkKG9wZW5ic2Q0KQogI2RlZmluZSBpbnBfbHBvcnQgaW42cF9scG9ydAogI2RlZmluZSBpbnBfZnBvcnQgaW42cF9mcG9ydApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMgYi9hZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYwppbmRleCAyNmI4OTljLi45OTMxNGRmIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYworKysgYi9hZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYwpAQCAtNCw2ICs0LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAKQEAgLTQ1LDcgKzQ2LDExIEBACiAjZGVmaW5lIElDTVA2X1NUQVRTX1BSRUZJWF9MRU4JNQogI2RlZmluZSBVRFA2X1NUQVRTX1BSRUZJWF9MRU4gICA0CiAKLWludAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGxpbnV4X2lwNl9zdGF0X2FsbCwgbGlibmV0c25tcG1pYnMpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihsaW51eF9yZWFkX2lwNl9zdGF0LCBsaW51eF9pcDZfc3RhdF9hbGwpCisKK3N0YXRpYyBpbnQKIGRlY29kZV9pY21wX21zZyhjaGFyICpsaW5lLCBjaGFyICpkYXRhLCBzdHJ1Y3QgaWNtcDRfbXNnX21pYiAqbXNnKQogewogICAgIGNoYXIgKnRva2VuLCAqc2F2ZXB0ciwgKmxpbmVwdHIsICpzYXZlcHRyMSwgKmRhdGFwdHIsICpkZWxpbSA9IE5VTEw7CkBAIC0xMDMsNyArMTA4LDcgQEAKICAgICByZXR1cm4gMDsKIH0KIAotaW50CitzdGF0aWMgaW50CiBsaW51eF9yZWFkX21pYklJX3N0YXRzKHZvaWQpCiB7CiAgICAgRklMRSAgICAgICAgICAgKmluID0gZm9wZW4oIi9wcm9jL25ldC9zbm1wIiwgInIiKTsKQEAgLTIzOCw2ICsyNDMsNyBAQAogICAgIHJldHVybiAwOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTElOVVhfUkVBRF9JUDZfU1RBVAogaW50IGxpbnV4X3JlYWRfaXA2X3N0YXQoIHN0cnVjdCBpcDZfbWliICppcDZzdGF0KQogewogI2lmZGVmIE5FVFNOTVBfRU5BQkxFX0lQVjYKQEAgLTM0Niw2ICszNTIsNyBAQAogICAgIG1lbWNweSgoY2hhciAqKSBpcDZzdGF0LCAoY2hhciAqKSAmY2FjaGVkX2lwNl9taWIsIHNpemVvZigqaXA2c3RhdCkpOwogICAgIHJldHVybiAwOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTElOVVhfUkVBRF9JUDZfU1RBVCAqLwogCiBpbnQKIGxpbnV4X3JlYWRfaWNtcF9tc2dfc3RhdChzdHJ1Y3QgaWNtcF9taWIgKmljbXBzdGF0LApAQCAtMzc5LDcgKzM4Niw3IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKLWludAorc3RhdGljIGludAogbGludXhfcmVhZF9pY21wNl9wYXJzZShzdHJ1Y3QgaWNtcDZfbWliICppY21wNnN0YXQsCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpY21wNl9tc2dfbWliICppY21wNm1zZ3N0YXQsCiAgICAgICAgICAgICAgICAgICAgICAgIGludCAqc3VwcG9ydCkKQEAgLTQ3OSw2ICs0ODYsOCBAQAogICAgICAgICB9IGVsc2UgaWYgKDAgPT0gc3RybmNtcChsaW5lICsgNSwgIk91dCIsIDMpKSB7ICAvKiBPdXQgKi8KICAgICAgICAgICAgIGlmICgwID09IHN0cmNtcChsaW5lICsgOCwgIkRlc3RVbnJlYWNocyIpKSB7CiAgICAgICAgICAgICAgICAgY2FjaGVkX2ljbXA2X21pYi5pY21wNk91dERlc3RVbnJlYWNocyA9IHN0YXRzOworICAgICAgICAgICAgfSBlbHNlIGlmICgwID09IHN0cmNtcChsaW5lICsgOCwgIkVjaG9zIikpIHsKKyAgICAgICAgICAgICAgICBjYWNoZWRfaWNtcDZfbWliLmljbXA2T3V0RWNob3MgPSBzdGF0czsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoMCA9PSBzdHJjbXAobGluZSArIDgsICJFY2hvUmVwbGllcyIpKSB7CiAgICAgICAgICAgICAgICAgY2FjaGVkX2ljbXA2X21pYi5pY21wNk91dEVjaG9SZXBsaWVzID0gc3RhdHM7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKDAgPT0gc3RyY21wKGxpbmUgKyA4LCAiR3JvdXBNZW1iUmVkdWN0aW9ucyIpKSB7CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguaCBiL2FnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oCmluZGV4IGM2ZGZjYTkuLmIzYzU4ZDMgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oCisrKyBiL2FnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oCkBAIC02LDE2MSArNiw3IEBACiAjaWZuZGVmIF9NSUJHUk9VUF9LRVJORUxfTElOVVhfSAogI2RlZmluZSBfTUlCR1JPVVBfS0VSTkVMX0xJTlVYX0gKIAotc3RydWN0IGlwX21pYiB7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGlwRm9yd2FyZGluZzsKLSAgICB1bnNpZ25lZCBsb25nICAgaXBEZWZhdWx0VFRMOwotICAgIHVuc2lnbmVkIGxvbmcgICBpcEluUmVjZWl2ZXM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGlwSW5IZHJFcnJvcnM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGlwSW5BZGRyRXJyb3JzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpcEZvcndEYXRhZ3JhbXM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGlwSW5Vbmtub3duUHJvdG9zOwotICAgIHVuc2lnbmVkIGxvbmcgICBpcEluRGlzY2FyZHM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGlwSW5EZWxpdmVyczsKLSAgICB1bnNpZ25lZCBsb25nICAgaXBPdXRSZXF1ZXN0czsKLSAgICB1bnNpZ25lZCBsb25nICAgaXBPdXREaXNjYXJkczsKLSAgICB1bnNpZ25lZCBsb25nICAgaXBPdXROb1JvdXRlczsKLSAgICB1bnNpZ25lZCBsb25nICAgaXBSZWFzbVRpbWVvdXQ7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGlwUmVhc21SZXFkczsKLSAgICB1bnNpZ25lZCBsb25nICAgaXBSZWFzbU9LczsKLSAgICB1bnNpZ25lZCBsb25nICAgaXBSZWFzbUZhaWxzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpcEZyYWdPS3M7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGlwRnJhZ0ZhaWxzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpcEZyYWdDcmVhdGVzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpcFJvdXRpbmdEaXNjYXJkczsKLX07Ci0KLXN0cnVjdCBpcDZfbWliIHsKLSAgICB1bnNpZ25lZCBsb25nIGlwNkluUmVjZWl2ZXM7Ci0gICAgdW5zaWduZWQgbG9uZyBpcDZJbkhkckVycm9yczsKLSAgICB1bnNpZ25lZCBsb25nIGlwNkluVG9vQmlnRXJyb3JzOwotICAgIHVuc2lnbmVkIGxvbmcgaXA2SW5Ob1JvdXRlczsKLSAgICB1bnNpZ25lZCBsb25nIGlwNkluQWRkckVycm9yczsKLSAgICB1bnNpZ25lZCBsb25nIGlwNkluVW5rbm93blByb3RvczsKLSAgICB1bnNpZ25lZCBsb25nIGlwNkluVHJ1bmNhdGVkUGt0czsKLSAgICB1bnNpZ25lZCBsb25nIGlwNkluRGlzY2FyZHM7Ci0gICAgdW5zaWduZWQgbG9uZyBpcDZJbkRlbGl2ZXJzOwotICAgIHVuc2lnbmVkIGxvbmcgaXA2T3V0Rm9yd0RhdGFncmFtczsKLSAgICB1bnNpZ25lZCBsb25nIGlwNk91dFJlcXVlc3RzOwotICAgIHVuc2lnbmVkIGxvbmcgaXA2T3V0RGlzY2FyZHM7Ci0gICAgdW5zaWduZWQgbG9uZyBpcDZPdXROb1JvdXRlczsKLSAgICB1bnNpZ25lZCBsb25nIGlwNlJlYXNtVGltZW91dDsKLSAgICB1bnNpZ25lZCBsb25nIGlwNlJlYXNtUmVxZHM7Ci0gICAgdW5zaWduZWQgbG9uZyBpcDZSZWFzbU9LczsKLSAgICB1bnNpZ25lZCBsb25nIGlwNlJlYXNtRmFpbHM7Ci0gICAgdW5zaWduZWQgbG9uZyBpcDZGcmFnT0tzOwotICAgIHVuc2lnbmVkIGxvbmcgaXA2RnJhZ0ZhaWxzOwotICAgIHVuc2lnbmVkIGxvbmcgaXA2RnJhZ0NyZWF0ZXM7Ci0gICAgdW5zaWduZWQgbG9uZyBpcDZJbk1jYXN0UGt0czsKLSAgICB1bnNpZ25lZCBsb25nIGlwNk91dE1jYXN0UGt0czsKLX07Ci0KLXN0cnVjdCBpY21wX21pYiB7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBJbk1zZ3M7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBJbkVycm9yczsKLSAgICB1bnNpZ25lZCBsb25nICAgaWNtcEluRGVzdFVucmVhY2hzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpY21wSW5UaW1lRXhjZHM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBJblBhcm1Qcm9iczsKLSAgICB1bnNpZ25lZCBsb25nICAgaWNtcEluU3JjUXVlbmNoczsKLSAgICB1bnNpZ25lZCBsb25nICAgaWNtcEluUmVkaXJlY3RzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpY21wSW5FY2hvczsKLSAgICB1bnNpZ25lZCBsb25nICAgaWNtcEluRWNob1JlcHM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBJblRpbWVzdGFtcHM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBJblRpbWVzdGFtcFJlcHM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBJbkFkZHJNYXNrczsKLSAgICB1bnNpZ25lZCBsb25nICAgaWNtcEluQWRkck1hc2tSZXBzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpY21wT3V0TXNnczsKLSAgICB1bnNpZ25lZCBsb25nICAgaWNtcE91dEVycm9yczsKLSAgICB1bnNpZ25lZCBsb25nICAgaWNtcE91dERlc3RVbnJlYWNoczsKLSAgICB1bnNpZ25lZCBsb25nICAgaWNtcE91dFRpbWVFeGNkczsKLSAgICB1bnNpZ25lZCBsb25nICAgaWNtcE91dFBhcm1Qcm9iczsKLSAgICB1bnNpZ25lZCBsb25nICAgaWNtcE91dFNyY1F1ZW5jaHM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBPdXRSZWRpcmVjdHM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBPdXRFY2hvczsKLSAgICB1bnNpZ25lZCBsb25nICAgaWNtcE91dEVjaG9SZXBzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpY21wT3V0VGltZXN0YW1wczsKLSAgICB1bnNpZ25lZCBsb25nICAgaWNtcE91dFRpbWVzdGFtcFJlcHM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBPdXRBZGRyTWFza3M7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBPdXRBZGRyTWFza1JlcHM7Ci19OwotCi1zdHJ1Y3QgaWNtcDZfbWliIHsKLSAgICB1bnNpZ25lZCBsb25nIGljbXA2SW5Nc2dzOwotICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZJbkVycm9yczsKLSAgICB1bnNpZ25lZCBsb25nIGljbXA2SW5EZXN0VW5yZWFjaHM7Ci0gICAgdW5zaWduZWQgbG9uZyBpY21wNkluUGt0VG9vQmlnczsKLSAgICB1bnNpZ25lZCBsb25nIGljbXA2SW5UaW1lRXhjZHM7Ci0gICAgdW5zaWduZWQgbG9uZyBpY21wNkluUGFybVByb2JsZW1zOwotICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZJbkVjaG9zOwotICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZJbkVjaG9SZXBsaWVzOwotICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZJbkdyb3VwTWVtYlF1ZXJpZXM7Ci0gICAgdW5zaWduZWQgbG9uZyBpY21wNkluR3JvdXBNZW1iUmVzcG9uc2VzOwotICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZJbkdyb3VwTWVtYlJlZHVjdGlvbnM7Ci0gICAgdW5zaWduZWQgbG9uZyBpY21wNkluUm91dGVyU29saWNpdHM7Ci0gICAgdW5zaWduZWQgbG9uZyBpY21wNkluUm91dGVyQWR2ZXJ0aXNlbWVudHM7Ci0gICAgdW5zaWduZWQgbG9uZyBpY21wNkluTmVpZ2hib3JTb2xpY2l0czsKLSAgICB1bnNpZ25lZCBsb25nIGljbXA2SW5OZWlnaGJvckFkdmVydGlzZW1lbnRzOwotICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZJblJlZGlyZWN0czsKLSAgICB1bnNpZ25lZCBsb25nIGljbXA2T3V0TXNnczsKLSAgICB1bnNpZ25lZCBsb25nIGljbXA2T3V0RGVzdFVucmVhY2hzOwotICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZPdXRQa3RUb29CaWdzOwotICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZPdXRUaW1lRXhjZHM7Ci0gICAgdW5zaWduZWQgbG9uZyBpY21wNk91dFBhcm1Qcm9ibGVtczsKLSAgICB1bnNpZ25lZCBsb25nIGljbXA2T3V0RWNob1JlcGxpZXM7Ci0gICAgdW5zaWduZWQgbG9uZyBpY21wNk91dFJvdXRlclNvbGljaXRzOwotICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZPdXROZWlnaGJvclNvbGljaXRzOwotICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZPdXROZWlnaGJvckFkdmVydGlzZW1lbnRzOwotICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZPdXRSZWRpcmVjdHM7Ci0gICAgdW5zaWduZWQgbG9uZyBpY21wNk91dEdyb3VwTWVtYlJlc3BvbnNlczsKLSAgICB1bnNpZ25lZCBsb25nIGljbXA2T3V0R3JvdXBNZW1iUmVkdWN0aW9uczsKLX07Ci0KLXN0cnVjdCBpY21wX21zZ19taWIgewotICAgIHVuc2lnbmVkIGxvbmcgSW5UeXBlOwotICAgIHVuc2lnbmVkIGxvbmcgT3V0VHlwZTsKLX07Ci0KLS8qIExldHMgdXNlIHdyYXBwZXIgc3RydWN0dXJlcyBmb3IgZnV0dXJlIGV4cGFuc2lvbiAqLwotc3RydWN0IGljbXA0X21zZ19taWIgewotICAgIHN0cnVjdCBpY21wX21zZ19taWIgdmFsc1syNTZdOwotfTsKLQotc3RydWN0IGljbXA2X21zZ19taWIgewotICAgIHN0cnVjdCBpY21wX21zZ19taWIgdmFsc1syNTZdOwotfTsKLQotc3RydWN0IHVkcF9taWIgewotICAgIHVuc2lnbmVkIGxvbmcgICB1ZHBJbkRhdGFncmFtczsKLSAgICB1bnNpZ25lZCBsb25nICAgdWRwTm9Qb3J0czsKLSAgICB1bnNpZ25lZCBsb25nICAgdWRwSW5FcnJvcnM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIHVkcE91dERhdGFncmFtczsKLX07Ci0KLXN0cnVjdCB1ZHA2X21pYiB7Ci0gICAgdW5zaWduZWQgbG9uZyB1ZHA2SW5EYXRhZ3JhbXM7Ci0gICAgdW5zaWduZWQgbG9uZyB1ZHA2Tm9Qb3J0czsKLSAgICB1bnNpZ25lZCBsb25nIHVkcDZJbkVycm9yczsKLSAgICB1bnNpZ25lZCBsb25nIHVkcDZPdXREYXRhZ3JhbXM7Ci19OwotCi1zdHJ1Y3QgdGNwX21pYiB7Ci0gICAgdW5zaWduZWQgbG9uZyAgIHRjcFJ0b0FsZ29yaXRobTsKLSAgICB1bnNpZ25lZCBsb25nICAgdGNwUnRvTWluOwotICAgIHVuc2lnbmVkIGxvbmcgICB0Y3BSdG9NYXg7Ci0gICAgdW5zaWduZWQgbG9uZyAgIHRjcE1heENvbm47Ci0gICAgdW5zaWduZWQgbG9uZyAgIHRjcEFjdGl2ZU9wZW5zOwotICAgIHVuc2lnbmVkIGxvbmcgICB0Y3BQYXNzaXZlT3BlbnM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIHRjcEF0dGVtcHRGYWlsczsKLSAgICB1bnNpZ25lZCBsb25nICAgdGNwRXN0YWJSZXNldHM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIHRjcEN1cnJFc3RhYjsKLSAgICB1bnNpZ25lZCBsb25nICAgdGNwSW5TZWdzOwotICAgIHVuc2lnbmVkIGxvbmcgICB0Y3BPdXRTZWdzOwotICAgIHVuc2lnbmVkIGxvbmcgICB0Y3BSZXRyYW5zU2VnczsKLSAgICB1bnNpZ25lZCBsb25nICAgdGNwSW5FcnJzOwotICAgIHVuc2lnbmVkIGxvbmcgICB0Y3BPdXRSc3RzOwotICAgIHNob3J0ICAgICAgICAgICB0Y3BJbkVycnNWYWxpZDsKLSAgICBzaG9ydCAgICAgICAgICAgdGNwT3V0UnN0c1ZhbGlkOwotfTsKLQorI2luY2x1ZGUgImtlcm5lbF9taWIuaCIKIAogaW50ICAgICAgICAgICAgIGxpbnV4X3JlYWRfaXBfc3RhdChzdHJ1Y3QgaXBfbWliICopOwogaW50ICAgICAgICAgICAgIGxpbnV4X3JlYWRfaXA2X3N0YXQoc3RydWN0IGlwNl9taWIgKik7CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbWliLmggYi9hZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbWliLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGI4NjM5ZgotLS0gL2Rldi9udWxsCisrKyBiL2FnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9taWIuaApAQCAtMCwwICsxLDE2NCBAQAorLyoKKyAqICBNSUIgc3RhdGlzdGljcyBnYXRoZXJpbmcgc3RydWN0dXJlcworICovCisKKyNpZm5kZWYgX01JQkdST1VQX0tFUk5FTF9NSUJfSAorI2RlZmluZSBfTUlCR1JPVVBfS0VSTkVMX01JQl9ICisKK3N0cnVjdCBpcF9taWIgeworICAgIHVuc2lnbmVkIGxvbmcgICBpcEZvcndhcmRpbmc7CisgICAgdW5zaWduZWQgbG9uZyAgIGlwRGVmYXVsdFRUTDsKKyAgICB1bnNpZ25lZCBsb25nICAgaXBJblJlY2VpdmVzOworICAgIHVuc2lnbmVkIGxvbmcgICBpcEluSGRyRXJyb3JzOworICAgIHVuc2lnbmVkIGxvbmcgICBpcEluQWRkckVycm9yczsKKyAgICB1bnNpZ25lZCBsb25nICAgaXBGb3J3RGF0YWdyYW1zOworICAgIHVuc2lnbmVkIGxvbmcgICBpcEluVW5rbm93blByb3RvczsKKyAgICB1bnNpZ25lZCBsb25nICAgaXBJbkRpc2NhcmRzOworICAgIHVuc2lnbmVkIGxvbmcgICBpcEluRGVsaXZlcnM7CisgICAgdW5zaWduZWQgbG9uZyAgIGlwT3V0UmVxdWVzdHM7CisgICAgdW5zaWduZWQgbG9uZyAgIGlwT3V0RGlzY2FyZHM7CisgICAgdW5zaWduZWQgbG9uZyAgIGlwT3V0Tm9Sb3V0ZXM7CisgICAgdW5zaWduZWQgbG9uZyAgIGlwUmVhc21UaW1lb3V0OworICAgIHVuc2lnbmVkIGxvbmcgICBpcFJlYXNtUmVxZHM7CisgICAgdW5zaWduZWQgbG9uZyAgIGlwUmVhc21PS3M7CisgICAgdW5zaWduZWQgbG9uZyAgIGlwUmVhc21GYWlsczsKKyAgICB1bnNpZ25lZCBsb25nICAgaXBGcmFnT0tzOworICAgIHVuc2lnbmVkIGxvbmcgICBpcEZyYWdGYWlsczsKKyAgICB1bnNpZ25lZCBsb25nICAgaXBGcmFnQ3JlYXRlczsKKyAgICB1bnNpZ25lZCBsb25nICAgaXBSb3V0aW5nRGlzY2FyZHM7Cit9OworCitzdHJ1Y3QgaXA2X21pYiB7CisgICAgdW5zaWduZWQgbG9uZyBpcDZJblJlY2VpdmVzOworICAgIHVuc2lnbmVkIGxvbmcgaXA2SW5IZHJFcnJvcnM7CisgICAgdW5zaWduZWQgbG9uZyBpcDZJblRvb0JpZ0Vycm9yczsKKyAgICB1bnNpZ25lZCBsb25nIGlwNkluTm9Sb3V0ZXM7CisgICAgdW5zaWduZWQgbG9uZyBpcDZJbkFkZHJFcnJvcnM7CisgICAgdW5zaWduZWQgbG9uZyBpcDZJblVua25vd25Qcm90b3M7CisgICAgdW5zaWduZWQgbG9uZyBpcDZJblRydW5jYXRlZFBrdHM7CisgICAgdW5zaWduZWQgbG9uZyBpcDZJbkRpc2NhcmRzOworICAgIHVuc2lnbmVkIGxvbmcgaXA2SW5EZWxpdmVyczsKKyAgICB1bnNpZ25lZCBsb25nIGlwNk91dEZvcndEYXRhZ3JhbXM7CisgICAgdW5zaWduZWQgbG9uZyBpcDZPdXRSZXF1ZXN0czsKKyAgICB1bnNpZ25lZCBsb25nIGlwNk91dERpc2NhcmRzOworICAgIHVuc2lnbmVkIGxvbmcgaXA2T3V0Tm9Sb3V0ZXM7CisgICAgdW5zaWduZWQgbG9uZyBpcDZSZWFzbVRpbWVvdXQ7CisgICAgdW5zaWduZWQgbG9uZyBpcDZSZWFzbVJlcWRzOworICAgIHVuc2lnbmVkIGxvbmcgaXA2UmVhc21PS3M7CisgICAgdW5zaWduZWQgbG9uZyBpcDZSZWFzbUZhaWxzOworICAgIHVuc2lnbmVkIGxvbmcgaXA2RnJhZ09LczsKKyAgICB1bnNpZ25lZCBsb25nIGlwNkZyYWdGYWlsczsKKyAgICB1bnNpZ25lZCBsb25nIGlwNkZyYWdDcmVhdGVzOworICAgIHVuc2lnbmVkIGxvbmcgaXA2SW5NY2FzdFBrdHM7CisgICAgdW5zaWduZWQgbG9uZyBpcDZPdXRNY2FzdFBrdHM7Cit9OworCitzdHJ1Y3QgaWNtcF9taWIgeworICAgIHVuc2lnbmVkIGxvbmcgICBpY21wSW5Nc2dzOworICAgIHVuc2lnbmVkIGxvbmcgICBpY21wSW5FcnJvcnM7CisgICAgdW5zaWduZWQgbG9uZyAgIGljbXBJbkRlc3RVbnJlYWNoczsKKyAgICB1bnNpZ25lZCBsb25nICAgaWNtcEluVGltZUV4Y2RzOworICAgIHVuc2lnbmVkIGxvbmcgICBpY21wSW5QYXJtUHJvYnM7CisgICAgdW5zaWduZWQgbG9uZyAgIGljbXBJblNyY1F1ZW5jaHM7CisgICAgdW5zaWduZWQgbG9uZyAgIGljbXBJblJlZGlyZWN0czsKKyAgICB1bnNpZ25lZCBsb25nICAgaWNtcEluRWNob3M7CisgICAgdW5zaWduZWQgbG9uZyAgIGljbXBJbkVjaG9SZXBzOworICAgIHVuc2lnbmVkIGxvbmcgICBpY21wSW5UaW1lc3RhbXBzOworICAgIHVuc2lnbmVkIGxvbmcgICBpY21wSW5UaW1lc3RhbXBSZXBzOworICAgIHVuc2lnbmVkIGxvbmcgICBpY21wSW5BZGRyTWFza3M7CisgICAgdW5zaWduZWQgbG9uZyAgIGljbXBJbkFkZHJNYXNrUmVwczsKKyAgICB1bnNpZ25lZCBsb25nICAgaWNtcE91dE1zZ3M7CisgICAgdW5zaWduZWQgbG9uZyAgIGljbXBPdXRFcnJvcnM7CisgICAgdW5zaWduZWQgbG9uZyAgIGljbXBPdXREZXN0VW5yZWFjaHM7CisgICAgdW5zaWduZWQgbG9uZyAgIGljbXBPdXRUaW1lRXhjZHM7CisgICAgdW5zaWduZWQgbG9uZyAgIGljbXBPdXRQYXJtUHJvYnM7CisgICAgdW5zaWduZWQgbG9uZyAgIGljbXBPdXRTcmNRdWVuY2hzOworICAgIHVuc2lnbmVkIGxvbmcgICBpY21wT3V0UmVkaXJlY3RzOworICAgIHVuc2lnbmVkIGxvbmcgICBpY21wT3V0RWNob3M7CisgICAgdW5zaWduZWQgbG9uZyAgIGljbXBPdXRFY2hvUmVwczsKKyAgICB1bnNpZ25lZCBsb25nICAgaWNtcE91dFRpbWVzdGFtcHM7CisgICAgdW5zaWduZWQgbG9uZyAgIGljbXBPdXRUaW1lc3RhbXBSZXBzOworICAgIHVuc2lnbmVkIGxvbmcgICBpY21wT3V0QWRkck1hc2tzOworICAgIHVuc2lnbmVkIGxvbmcgICBpY21wT3V0QWRkck1hc2tSZXBzOworfTsKKworc3RydWN0IGljbXA2X21pYiB7CisgICAgdW5zaWduZWQgbG9uZyBpY21wNkluTXNnczsKKyAgICB1bnNpZ25lZCBsb25nIGljbXA2SW5FcnJvcnM7CisgICAgdW5zaWduZWQgbG9uZyBpY21wNkluRGVzdFVucmVhY2hzOworICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZJblBrdFRvb0JpZ3M7CisgICAgdW5zaWduZWQgbG9uZyBpY21wNkluVGltZUV4Y2RzOworICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZJblBhcm1Qcm9ibGVtczsKKyAgICB1bnNpZ25lZCBsb25nIGljbXA2SW5FY2hvczsKKyAgICB1bnNpZ25lZCBsb25nIGljbXA2SW5FY2hvUmVwbGllczsKKyAgICB1bnNpZ25lZCBsb25nIGljbXA2SW5Hcm91cE1lbWJRdWVyaWVzOworICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZJbkdyb3VwTWVtYlJlc3BvbnNlczsKKyAgICB1bnNpZ25lZCBsb25nIGljbXA2SW5Hcm91cE1lbWJSZWR1Y3Rpb25zOworICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZJblJvdXRlclNvbGljaXRzOworICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZJblJvdXRlckFkdmVydGlzZW1lbnRzOworICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZJbk5laWdoYm9yU29saWNpdHM7CisgICAgdW5zaWduZWQgbG9uZyBpY21wNkluTmVpZ2hib3JBZHZlcnRpc2VtZW50czsKKyAgICB1bnNpZ25lZCBsb25nIGljbXA2SW5SZWRpcmVjdHM7CisgICAgdW5zaWduZWQgbG9uZyBpY21wNk91dE1zZ3M7CisgICAgdW5zaWduZWQgbG9uZyBpY21wNk91dERlc3RVbnJlYWNoczsKKyAgICB1bnNpZ25lZCBsb25nIGljbXA2T3V0UGt0VG9vQmlnczsKKyAgICB1bnNpZ25lZCBsb25nIGljbXA2T3V0VGltZUV4Y2RzOworICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZPdXRQYXJtUHJvYmxlbXM7CisgICAgdW5zaWduZWQgbG9uZyBpY21wNk91dEVjaG9zOworICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZPdXRFY2hvUmVwbGllczsKKyAgICB1bnNpZ25lZCBsb25nIGljbXA2T3V0Um91dGVyU29saWNpdHM7CisgICAgdW5zaWduZWQgbG9uZyBpY21wNk91dE5laWdoYm9yU29saWNpdHM7CisgICAgdW5zaWduZWQgbG9uZyBpY21wNk91dE5laWdoYm9yQWR2ZXJ0aXNlbWVudHM7CisgICAgdW5zaWduZWQgbG9uZyBpY21wNk91dFJlZGlyZWN0czsKKyAgICB1bnNpZ25lZCBsb25nIGljbXA2T3V0R3JvdXBNZW1iUmVzcG9uc2VzOworICAgIHVuc2lnbmVkIGxvbmcgaWNtcDZPdXRHcm91cE1lbWJSZWR1Y3Rpb25zOworfTsKKworc3RydWN0IGljbXBfbXNnX21pYiB7CisgICAgdW5zaWduZWQgbG9uZyBJblR5cGU7CisgICAgdW5zaWduZWQgbG9uZyBPdXRUeXBlOworfTsKKworLyogTGV0cyB1c2Ugd3JhcHBlciBzdHJ1Y3R1cmVzIGZvciBmdXR1cmUgZXhwYW5zaW9uICovCitzdHJ1Y3QgaWNtcDRfbXNnX21pYiB7CisgICAgc3RydWN0IGljbXBfbXNnX21pYiB2YWxzWzI1Nl07Cit9OworCitzdHJ1Y3QgaWNtcDZfbXNnX21pYiB7CisgICAgc3RydWN0IGljbXBfbXNnX21pYiB2YWxzWzI1Nl07Cit9OworCitzdHJ1Y3QgdWRwX21pYiB7CisgICAgdW5zaWduZWQgbG9uZyAgIHVkcEluRGF0YWdyYW1zOworICAgIHVuc2lnbmVkIGxvbmcgICB1ZHBOb1BvcnRzOworICAgIHVuc2lnbmVkIGxvbmcgICB1ZHBJbkVycm9yczsKKyAgICB1bnNpZ25lZCBsb25nICAgdWRwT3V0RGF0YWdyYW1zOworfTsKKworc3RydWN0IHVkcDZfbWliIHsKKyAgICB1bnNpZ25lZCBsb25nIHVkcDZJbkRhdGFncmFtczsKKyAgICB1bnNpZ25lZCBsb25nIHVkcDZOb1BvcnRzOworICAgIHVuc2lnbmVkIGxvbmcgdWRwNkluRXJyb3JzOworICAgIHVuc2lnbmVkIGxvbmcgdWRwNk91dERhdGFncmFtczsKK307CisKK3N0cnVjdCB0Y3BfbWliIHsKKyAgICB1bnNpZ25lZCBsb25nICAgdGNwUnRvQWxnb3JpdGhtOworICAgIHVuc2lnbmVkIGxvbmcgICB0Y3BSdG9NaW47CisgICAgdW5zaWduZWQgbG9uZyAgIHRjcFJ0b01heDsKKyAgICB1bnNpZ25lZCBsb25nICAgdGNwTWF4Q29ubjsKKyAgICB1bnNpZ25lZCBsb25nICAgdGNwQWN0aXZlT3BlbnM7CisgICAgdW5zaWduZWQgbG9uZyAgIHRjcFBhc3NpdmVPcGVuczsKKyAgICB1bnNpZ25lZCBsb25nICAgdGNwQXR0ZW1wdEZhaWxzOworICAgIHVuc2lnbmVkIGxvbmcgICB0Y3BFc3RhYlJlc2V0czsKKyAgICB1bnNpZ25lZCBsb25nICAgdGNwQ3VyckVzdGFiOworICAgIHVuc2lnbmVkIGxvbmcgICB0Y3BJblNlZ3M7CisgICAgdW5zaWduZWQgbG9uZyAgIHRjcE91dFNlZ3M7CisgICAgdW5zaWduZWQgbG9uZyAgIHRjcFJldHJhbnNTZWdzOworICAgIHVuc2lnbmVkIGxvbmcgICB0Y3BJbkVycnM7CisgICAgdW5zaWduZWQgbG9uZyAgIHRjcE91dFJzdHM7CisgICAgc2hvcnQgICAgICAgICAgIHRjcEluRXJyc1ZhbGlkOworICAgIHNob3J0ICAgICAgICAgICB0Y3BPdXRSc3RzVmFsaWQ7Cit9OworCisjZW5kaWYgIC8qIF9NSUJHUk9VUF9LRVJORUxfTUlCX0ggKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9uZXRic2QuYyBiL2FnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9uZXRic2QuYwppbmRleCA5M2YzOGI3Li4wODA2MTgwIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbmV0YnNkLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX25ldGJzZC5jCkBAIC0xNSw2ICsxNSw3IEBACiAjaW5jbHVkZSA8bmV0aW5ldC9pcF9pY21wLmg+CiAjaW5jbHVkZSA8bmV0aW5ldC9pcF92YXIuaD4KICNpbmNsdWRlIDxuZXRpbmV0L2ljbXBfdmFyLmg+CisjaW5jbHVkZSA8bmV0aW5ldC9pY21wNi5oPgogI2luY2x1ZGUgPG5ldGluZXQvdGNwLmg+CiAjaW5jbHVkZSA8bmV0aW5ldC90Y3BfdGltZXIuaD4KICNpbmNsdWRlIDxuZXRpbmV0L3RjcF92YXIuaD4KQEAgLTM4LDggKzM5LDEwIEBACiAKICAgICAodm9pZCltZW1zZXQobWliLCAwLCBzaXplb2YoKm1pYikpOwogCi0gICAgaWYgKC0xID09IHN5c2N0bGJ5bmFtZSgibmV0LmluZXQuaWNtcC5zdGF0cyIsIGljbXBzdGF0LCAmc2l6ZSwgTlVMTCwgMCkpCisgICAgaWYgKC0xID09IHN5c2N0bGJ5bmFtZSgibmV0LmluZXQuaWNtcC5zdGF0cyIsIGljbXBzdGF0LCAmc2l6ZSwgTlVMTCwgMCkpIHsKKwlzbm1wX3BlcnJvcigibmV0YnNkX3JlYWRfaWNtcF9zdGF0OiBuZXQuaW5ldC5pY21wLnN0YXRzIik7CiAgICAgICAgIHJldHVybiAtMTsKKyAgICB9CiAKICAgICBtaWItPmljbXBJbk1zZ3MgPSBpY21wc3RhdFtJQ01QX1NUQVRfQkFEQ09ERV0KICAgICAgICAgKyBpY21wc3RhdFtJQ01QX1NUQVRfVE9PU0hPUlRdCkBAIC04Niw2ICs4OSwxMDQgQEAKICAgICByZXR1cm4gMDsKIH0KIAorCitpbnQKK25ldGJzZF9yZWFkX2ljbXA2X3N0YXQoc3RydWN0IGljbXA2X21pYiAqbWliKQoreworICAgIHVpbnQ2NF90IGljbXBzdGF0W0lDTVA2X05TVEFUU107CisgICAgc2l6ZV90ICAgc2l6ZSA9IHNpemVvZihpY21wc3RhdCk7CisgICAgaW50ICAgICAgaTsKKworICAgICh2b2lkKW1lbXNldChtaWIsIDAsIHNpemVvZigqbWliKSk7CisKKyAgICBpZiAoLTEgPT0gc3lzY3RsYnluYW1lKCJuZXQuaW5ldDYuaWNtcDYuc3RhdHMiLCBpY21wc3RhdCwgJnNpemUsIE5VTEwsIDApKSB7CisJc25tcF9wZXJyb3IoIm5ldGJzZF9yZWFkX2ljbXA2X3N0YXQ6IG5ldC5pbmV0Ni5pY21wNi5zdGF0cyIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgbWliLT5pY21wNkluTXNncyA9IGljbXBzdGF0W0lDTVA2X1NUQVRfQkFEQ09ERV0KKyAgICAgICAgICAgICsgaWNtcHN0YXRbSUNNUF9TVEFUX1RPT1NIT1JUXQorCSAgICArIGljbXBzdGF0W0lDTVBfU1RBVF9DSEVDS1NVTV0KKyAgICAgICAgICAgICsgaWNtcHN0YXRbSUNNUF9TVEFUX0JBRExFTl07CisgICAgZm9yIChpID0gMDsgaSA8PSBJQ01QNl9NQVhUWVBFOyBpKyspCisgICAgICAgIG1pYi0+aWNtcDZJbk1zZ3MgICs9IGljbXBzdGF0W0lDTVA2X1NUQVRfSU5ISVNUICsgaV07CisgICAgbWliLT5pY21wNkluRXJyb3JzID0gaWNtcHN0YXRbSUNNUDZfU1RBVF9CQURDT0RFXQorICAgICAgICArIGljbXBzdGF0W0lDTVA2X1NUQVRfVE9PU0hPUlRdCisgICAgICAgICsgaWNtcHN0YXRbSUNNUDZfU1RBVF9DSEVDS1NVTV0KKyAgICAgICAgKyBpY21wc3RhdFtJQ01QNl9TVEFUX0JBRExFTl07CisgICAgbWliLT5pY21wNkluRGVzdFVucmVhY2hzID0gaWNtcHN0YXRbSUNNUDZfU1RBVF9JTkhJU1QgKyBJQ01QNl9EU1RfVU5SRUFDSF07CisgICAgbWliLT5pY21wNkluUGt0VG9vQmlncyA9IGljbXBzdGF0W0lDTVA2X1NUQVRfSU5ISVNUICsgSUNNUDZfUEFDS0VUX1RPT19CSUddOworICAgIG1pYi0+aWNtcDZJblRpbWVFeGNkcyA9IGljbXBzdGF0W0lDTVA2X1NUQVRfSU5ISVNUICsgSUNNUDZfVElNRV9FWENFRURFRF07CisgICAgbWliLT5pY21wNkluUGFybVByb2JsZW1zID0gaWNtcHN0YXRbSUNNUDZfU1RBVF9JTkhJU1QgKyBJQ01QNl9QQVJBTV9QUk9CXTsKKyAgICBtaWItPmljbXA2SW5FY2hvcyA9IGljbXBzdGF0W0lDTVA2X1NUQVRfSU5ISVNUICsgSUNNUDZfRUNIT19SRVFVRVNUXTsKKyAgICBtaWItPmljbXA2SW5FY2hvUmVwbGllcyA9IGljbXBzdGF0W0lDTVA2X1NUQVRfSU5ISVNUICsgSUNNUDZfRUNIT19SRVBMWV07CisgICAgbWliLT5pY21wNkluR3JvdXBNZW1iUXVlcmllcyA9IGljbXBzdGF0W0lDTVA2X1NUQVRfSU5ISVNUICsgTUxEX0xJU1RFTkVSX1FVRVJZXTsKKyAgICBtaWItPmljbXA2SW5Hcm91cE1lbWJSZXNwb25zZXMgPSBpY21wc3RhdFtJQ01QNl9TVEFUX0lOSElTVCArIE1MRF9MSVNURU5FUl9SRVBPUlRdOworICAgIG1pYi0+aWNtcDZJblJvdXRlclNvbGljaXRzID0gaWNtcHN0YXRbSUNNUDZfU1RBVF9JTkhJU1QgKyBORF9ST1VURVJfU09MSUNJVF07CisgICAgbWliLT5pY21wNkluUm91dGVyQWR2ZXJ0aXNlbWVudHMgPSBpY21wc3RhdFtJQ01QNl9TVEFUX0lOSElTVCArIE5EX1JPVVRFUl9BRFZFUlRdOworICAgIG1pYi0+aWNtcDZJbk5laWdoYm9yU29saWNpdHMgPSBpY21wc3RhdFtJQ01QNl9TVEFUX0lOSElTVCArIE5EX05FSUdIQk9SX1NPTElDSVRdOworICAgIG1pYi0+aWNtcDZJbk5laWdoYm9yQWR2ZXJ0aXNlbWVudHMgPSBpY21wc3RhdFtJQ01QNl9TVEFUX0lOSElTVCArIE5EX05FSUdIQk9SX0FEVkVSVF07CisgICAgbWliLT5pY21wNkluUmVkaXJlY3RzID0gaWNtcHN0YXRbSUNNUDZfU1RBVF9JTkhJU1QgKyBORF9SRURJUkVDVF07CisKKyAgICBtaWItPmljbXA2T3V0TXNncyA9IGljbXBzdGF0W0lDTVA2X1NUQVRfQkFEQ09ERV0KKyAgICAgICAgKyBpY21wc3RhdFtJQ01QNl9TVEFUX1RPT1NIT1JUXQorICAgICAgICArIGljbXBzdGF0W0lDTVA2X1NUQVRfQ0hFQ0tTVU1dCisgICAgICAgICsgaWNtcHN0YXRbSUNNUDZfU1RBVF9CQURMRU5dOworICAgIGZvciAoaSA9IDA7IGkgPD0gSUNNUDZfTUFYVFlQRTsgaSsrKQorICAgICAgICBtaWItPmljbXA2T3V0TXNncyArPSBpY21wc3RhdFtJQ01QNl9TVEFUX09VVEhJU1QgKyBpXTsKKyAgICBtaWItPmljbXA2T3V0RGVzdFVucmVhY2hzID0gaWNtcHN0YXRbSUNNUDZfU1RBVF9PVVRISVNUICsgSUNNUDZfRFNUX1VOUkVBQ0hdOworICAgIG1pYi0+aWNtcDZPdXRQa3RUb29CaWdzID0gIGljbXBzdGF0W0lDTVA2X1NUQVRfT1VUSElTVCArIElDTVA2X1BBQ0tFVF9UT09fQklHXTsKKyAgICBtaWItPmljbXA2T3V0VGltZUV4Y2RzID0gaWNtcHN0YXRbSUNNUDZfU1RBVF9PVVRISVNUICsgSUNNUDZfVElNRV9FWENFRURFRF07CisgICAgbWliLT5pY21wNk91dFBhcm1Qcm9ibGVtcyA9IGljbXBzdGF0W0lDTVA2X1NUQVRfT1VUSElTVCArIElDTVA2X1BBUkFNX1BST0JdOworICAgIG1pYi0+aWNtcDZPdXRFY2hvcyA9IGljbXBzdGF0W0lDTVA2X1NUQVRfT1VUSElTVCArIElDTVA2X0VDSE9fUkVRVUVTVF07CisgICAgbWliLT5pY21wNk91dEVjaG9SZXBsaWVzID0gaWNtcHN0YXRbSUNNUDZfU1RBVF9PVVRISVNUICsgSUNNUDZfRUNIT19SRVBMWV07CisgICAgbWliLT5pY21wNk91dFJvdXRlclNvbGljaXRzID0gIGljbXBzdGF0W0lDTVA2X1NUQVRfT1VUSElTVCArIE5EX1JPVVRFUl9TT0xJQ0lUXTsKKyAgICBtaWItPmljbXA2T3V0TmVpZ2hib3JTb2xpY2l0cyA9ICBpY21wc3RhdFtJQ01QNl9TVEFUX09VVEhJU1QgKyBORF9ORUlHSEJPUl9TT0xJQ0lUXTsKKyAgICBtaWItPmljbXA2T3V0TmVpZ2hib3JBZHZlcnRpc2VtZW50cyA9ICBpY21wc3RhdFtJQ01QNl9TVEFUX09VVEhJU1QgKyBORF9ORUlHSEJPUl9BRFZFUlRdOworICAgIG1pYi0+aWNtcDZPdXRSZWRpcmVjdHMgPSBpY21wc3RhdFtJQ01QNl9TVEFUX09VVEhJU1QgKyBORF9SRURJUkVDVF07CisgICAgbWliLT5pY21wNk91dEdyb3VwTWVtYlJlc3BvbnNlcyA9ICBpY21wc3RhdFtJQ01QNl9TVEFUX09VVEhJU1QgKyBNTERfTElTVEVORVJfUkVQT1JUXTsKKyAgICBtaWItPmljbXA2T3V0R3JvdXBNZW1iUmVkdWN0aW9ucyA9ICBpY21wc3RhdFtJQ01QNl9TVEFUX09VVEhJU1QgKyBNTERfTElTVEVORVJfRE9ORV07CisKKyAgICByZXR1cm4gMDsKK30KKworCitpbnQKK25ldGJzZF9yZWFkX2ljbXBfbXNnX3N0YXQoc3RydWN0IGljbXBfbWliICptaWIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpY21wNF9tc2dfbWliICptc2dtaWIsCisJCQkgIGludCAqZmxhZykKK3sKKyAgICBuZXRic2RfcmVhZF9pY21wX3N0YXQobWliKTsKKyAgICAqZmxhZyA9IDA7CisgICAgcmV0dXJuIDA7Cit9CisKKworaW50CituZXRic2RfcmVhZF9pY21wNl9tc2dfc3RhdChzdHJ1Y3QgaWNtcDZfbWliICptaWIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaWNtcDZfbXNnX21pYiAqbXNnbWliLAorCQkJICAgaW50ICpzdXBwb3J0KQoreworICAgIHVpbnQ2NF90IGljbXBzdGF0W0lDTVA2X05TVEFUU107CisgICAgc2l6ZV90ICAgc2l6ZSA9IHNpemVvZihpY21wc3RhdCk7CisgICAgaW50ICAgICAgaTsKKworICAgIG5ldGJzZF9yZWFkX2ljbXA2X3N0YXQobWliKTsKKworICAgIGlmICgtMSA9PSBzeXNjdGxieW5hbWUoIm5ldC5pbmV0Ni5pY21wNi5zdGF0cyIsIGljbXBzdGF0LCAmc2l6ZSwgTlVMTCwgMCkpIHsKKwlzbm1wX3BlcnJvcigibmV0YnNkX3JlYWRfaWNtcDZfc3RhdDogbmV0LmluZXQ2LmljbXA2LnN0YXRzIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKKwltc2dtaWItPnZhbHNbaV0uSW5UeXBlID0gaWNtcHN0YXRbSUNNUDZfU1RBVF9JTkhJU1QraV07CisJbXNnbWliLT52YWxzW2ldLk91dFR5cGUgPSBpY21wc3RhdFtJQ01QNl9TVEFUX09VVEhJU1QraV07CisgICAgfQorICAgICpzdXBwb3J0ID0gMTsKKyAgICByZXR1cm4gMDsKK30KKworCiBpbnQKIG5ldGJzZF9yZWFkX2lwX3N0YXQoc3RydWN0IGlwX21pYiAqbWliKQogewpAQCAtOTcsOCArMTk4LDEwIEBACiAKICAgICAodm9pZCltZW1zZXQobWliLCAwLCBzaXplb2YoKm1pYikpOwogCi0gICAgaWYgKC0xID09IHN5c2N0bGJ5bmFtZSgibmV0LmluZXQuaXAuc3RhdHMiLCBpcHN0YXQsICZzaXplLCBOVUxMLCAwKSkKKyAgICBpZiAoLTEgPT0gc3lzY3RsYnluYW1lKCJuZXQuaW5ldC5pcC5zdGF0cyIsIGlwc3RhdCwgJnNpemUsIE5VTEwsIDApKSB7CisJc25tcF9wZXJyb3IoIm5ldGJzZF9yZWFkX2lwX3N0YXQ6IG5ldC5pbmV0LmlwLnN0YXRzIik7CiAgICAgICAgIHJldHVybiAtMTsKKyAgICB9CiAKICAgICBtaWItPmlwRm9yd2FyZGluZyA9IDA7CiAgICAgbGVuID0gc2l6ZW9mIGk7CkBAIC0xMzgsNiArMjQxLDcgQEAKICAgICByZXR1cm4gMDsKIH0KIAorCiBpbnQKIG5ldGJzZF9yZWFkX3RjcF9zdGF0KHN0cnVjdCB0Y3BfbWliICptaWIpCiB7CkBAIC0xNDYsOCArMjUwLDEwIEBACiAKICAgICAodm9pZCltZW1zZXQobWliLCAwLCBzaXplb2YoKm1pYikpOwogCi0gICAgaWYgKC0xID09IHN5c2N0bGJ5bmFtZSgibmV0LmluZXQudGNwLnN0YXRzIiwgdGNwc3RhdCwgJnNpemUsIE5VTEwsIDApKQorICAgIGlmICgtMSA9PSBzeXNjdGxieW5hbWUoIm5ldC5pbmV0LnRjcC5zdGF0cyIsIHRjcHN0YXQsICZzaXplLCBOVUxMLCAwKSkgeworCXNubXBfcGVycm9yKCJuZXRic2RfcmVhZF90Y3Bfc3RhdDogbmV0LmluZXQudGNwLnN0YXRzIik7CiAgICAgICAgIHJldHVybiAtMTsKKyAgICB9CiAKICAgICBtaWItPnRjcFJ0b0FsZ29yaXRobSA9IDQ7IC8qIEFzc3VtZSBWYW4gSmFjb2JzZW4ncyBhbGdvcml0aG0gKi8KICAgICBtaWItPnRjcFJ0b01pbiA9IFRDUFRWX01JTjsKQEAgLTE3NCw2ICsyODAsNyBAQAogICAgIHJldHVybiAwOwogfQogCisKIGludAogbmV0YnNkX3JlYWRfdWRwX3N0YXQoc3RydWN0IHVkcF9taWIgKm1pYikKIHsKQEAgLTE4MiwxNCArMjg5LDE2IEBACiAKICAgICAodm9pZCltZW1zZXQobWliLCAwLCBzaXplb2YoKm1pYikpOwogCi0gICAgaWYgKC0xID09IHN5c2N0bGJ5bmFtZSgibmV0LmluZXQudWRwLnN0YXRzIiwgdWRwc3RhdCwgJnNpemUsIE5VTEwsIDApKQorICAgIGlmICgtMSA9PSBzeXNjdGxieW5hbWUoIm5ldC5pbmV0LnVkcC5zdGF0cyIsIHVkcHN0YXQsICZzaXplLCBOVUxMLCAwKSkgeworCXNubXBfcGVycm9yKCJuZXRic2RfcmVhZF91ZHBfc3RhdDogbmV0LmluZXQudWRwLnN0YXRzIik7CiAgICAgICAgIHJldHVybiAtMTsKKyAgICB9CiAKICAgICBtaWItPnVkcEluRGF0YWdyYW1zID0gdWRwc3RhdFtVRFBfU1RBVF9JUEFDS0VUU107CiAgICAgbWliLT51ZHBOb1BvcnRzID0gdWRwc3RhdFtVRFBfU1RBVF9OT1BPUlRdOwogICAgIG1pYi0+dWRwT3V0RGF0YWdyYW1zID0gdWRwc3RhdFtVRFBfU1RBVF9PUEFDS0VUU107CiAgICAgbWliLT51ZHBJbkVycm9ycyA9IHVkcHN0YXRbVURQX1NUQVRfSERST1BTXQotICAgICAgICArIHVkcHN0YXRbVURQX1NUQVRfQkFEU1VNXSAvKiArIHVkcHN0YXRbVURQX1NUQVRfRElTQ0FSRF0gLyogRklYTUUgKi8KKyAgICAgICAgKyB1ZHBzdGF0W1VEUF9TVEFUX0JBRFNVTV0gLyogKyB1ZHBzdGF0W1VEUF9TVEFUX0RJU0NBUkRdICovIC8qIEZJWE1FICovCiAgICAgICAgICsgdWRwc3RhdFtVRFBfU1RBVF9GVUxMU09DS10gKyB1ZHBzdGF0W1VEUF9TVEFUX0JBRExFTl07CiAKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9uZXRic2QuaCBiL2FnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9uZXRic2QuaAppbmRleCA5MDAwNjgyLi5hY2NiOWE3IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbmV0YnNkLmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX25ldGJzZC5oCkBAIC0zLDg1ICszLDE2IEBACiAKICNpZiBkZWZpbmVkKE5FVEJTRF9TVEFUU19WSUFfU1lTQ1RMKQogCi1zdHJ1Y3QgaWNtcF9taWIgewotICAgIHVuc2lnbmVkIGxvbmcgICBpY21wSW5Nc2dzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpY21wSW5FcnJvcnM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBJbkRlc3RVbnJlYWNoczsKLSAgICB1bnNpZ25lZCBsb25nICAgaWNtcEluVGltZUV4Y2RzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpY21wSW5QYXJtUHJvYnM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBJblNyY1F1ZW5jaHM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBJblJlZGlyZWN0czsKLSAgICB1bnNpZ25lZCBsb25nICAgaWNtcEluRWNob3M7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBJbkVjaG9SZXBzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpY21wSW5UaW1lc3RhbXBzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpY21wSW5UaW1lc3RhbXBSZXBzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpY21wSW5BZGRyTWFza3M7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBJbkFkZHJNYXNrUmVwczsKLSAgICB1bnNpZ25lZCBsb25nICAgaWNtcE91dE1zZ3M7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBPdXRFcnJvcnM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBPdXREZXN0VW5yZWFjaHM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBPdXRUaW1lRXhjZHM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBPdXRQYXJtUHJvYnM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBPdXRTcmNRdWVuY2hzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpY21wT3V0UmVkaXJlY3RzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpY21wT3V0RWNob3M7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBPdXRFY2hvUmVwczsKLSAgICB1bnNpZ25lZCBsb25nICAgaWNtcE91dFRpbWVzdGFtcHM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGljbXBPdXRUaW1lc3RhbXBSZXBzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpY21wT3V0QWRkck1hc2tzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpY21wT3V0QWRkck1hc2tSZXBzOwotfTsKLQotc3RydWN0IGlwX21pYiB7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGlwRm9yd2FyZGluZzsKLSAgICB1bnNpZ25lZCBsb25nICAgaXBEZWZhdWx0VFRMOwotICAgIHVuc2lnbmVkIGxvbmcgICBpcEluUmVjZWl2ZXM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGlwSW5IZHJFcnJvcnM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGlwSW5BZGRyRXJyb3JzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpcEZvcndEYXRhZ3JhbXM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGlwSW5Vbmtub3duUHJvdG9zOwotICAgIHVuc2lnbmVkIGxvbmcgICBpcEluRGlzY2FyZHM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGlwSW5EZWxpdmVyczsKLSAgICB1bnNpZ25lZCBsb25nICAgaXBPdXRSZXF1ZXN0czsKLSAgICB1bnNpZ25lZCBsb25nICAgaXBPdXREaXNjYXJkczsKLSAgICB1bnNpZ25lZCBsb25nICAgaXBPdXROb1JvdXRlczsKLSAgICB1bnNpZ25lZCBsb25nICAgaXBSZWFzbVRpbWVvdXQ7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGlwUmVhc21SZXFkczsKLSAgICB1bnNpZ25lZCBsb25nICAgaXBSZWFzbU9LczsKLSAgICB1bnNpZ25lZCBsb25nICAgaXBSZWFzbUZhaWxzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpcEZyYWdPS3M7Ci0gICAgdW5zaWduZWQgbG9uZyAgIGlwRnJhZ0ZhaWxzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpcEZyYWdDcmVhdGVzOwotICAgIHVuc2lnbmVkIGxvbmcgICBpcFJvdXRpbmdEaXNjYXJkczsKLX07Ci0KLXN0cnVjdCB0Y3BfbWliIHsKLSAgICB1bnNpZ25lZCBsb25nICAgdGNwUnRvQWxnb3JpdGhtOwotICAgIHVuc2lnbmVkIGxvbmcgICB0Y3BSdG9NaW47Ci0gICAgdW5zaWduZWQgbG9uZyAgIHRjcFJ0b01heDsKLSAgICB1bnNpZ25lZCBsb25nICAgdGNwTWF4Q29ubjsKLSAgICB1bnNpZ25lZCBsb25nICAgdGNwQWN0aXZlT3BlbnM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIHRjcFBhc3NpdmVPcGVuczsKLSAgICB1bnNpZ25lZCBsb25nICAgdGNwQXR0ZW1wdEZhaWxzOwotICAgIHVuc2lnbmVkIGxvbmcgICB0Y3BFc3RhYlJlc2V0czsKLSAgICB1bnNpZ25lZCBsb25nICAgdGNwQ3VyckVzdGFiOwotICAgIHVuc2lnbmVkIGxvbmcgICB0Y3BJblNlZ3M7Ci0gICAgdW5zaWduZWQgbG9uZyAgIHRjcE91dFNlZ3M7Ci0gICAgdW5zaWduZWQgbG9uZyAgIHRjcFJldHJhbnNTZWdzOwotICAgIHVuc2lnbmVkIGxvbmcgICB0Y3BJbkVycnM7Ci0gICAgdW5zaWduZWQgbG9uZyAgIHRjcE91dFJzdHM7Ci0gICAgc2hvcnQgICAgICAgICAgIHRjcEluRXJyc1ZhbGlkOwotICAgIHNob3J0ICAgICAgICAgICB0Y3BPdXRSc3RzVmFsaWQ7Ci19OwotCi1zdHJ1Y3QgdWRwX21pYiB7Ci0gICAgdW5zaWduZWQgbG9uZyAgIHVkcEluRGF0YWdyYW1zOwotICAgIHVuc2lnbmVkIGxvbmcgICB1ZHBOb1BvcnRzOwotICAgIHVuc2lnbmVkIGxvbmcgICB1ZHBJbkVycm9yczsKLSAgICB1bnNpZ25lZCBsb25nICAgdWRwT3V0RGF0YWdyYW1zOwotfTsKKyNpbmNsdWRlICJrZXJuZWxfbWliLmgiCiAKIGludCAgICAgIG5ldGJzZF9yZWFkX2ljbXBfc3RhdChzdHJ1Y3QgaWNtcF9taWIgKik7CitpbnQgICAgICBuZXRic2RfcmVhZF9pY21wNl9zdGF0KHN0cnVjdCBpY21wNl9taWIgKik7CitpbnQgICAgICBuZXRic2RfcmVhZF9pY21wX21zZ19zdGF0KHN0cnVjdCBpY21wX21pYiAqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaWNtcDRfbXNnX21pYiAqLAorCQkgCQkgIGludCAqZmxhZyk7CitpbnQgICAgICBuZXRic2RfcmVhZF9pY21wNl9tc2dfc3RhdChzdHJ1Y3QgaWNtcDZfbWliICosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaWNtcDZfbXNnX21pYiAqLAorCQkJCSAgICBpbnQgKnN1cHBvcnQpOwogaW50ICAgICAgbmV0YnNkX3JlYWRfaXBfc3RhdChzdHJ1Y3QgaXBfbWliICopOwogaW50ICAgICAgbmV0YnNkX3JlYWRfdGNwX3N0YXQoc3RydWN0IHRjcF9taWIgKik7CiBpbnQgICAgICBuZXRic2RfcmVhZF91ZHBfc3RhdChzdHJ1Y3QgdWRwX21pYiAqKTsKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9zeXNjdGwuYyBiL2FnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9zeXNjdGwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjZmNjY0Ci0tLSAvZGV2L251bGwKKysrIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX3N5c2N0bC5jCkBAIC0wLDAgKzEsMTc1IEBACisvKgorICogc3lzY3RsIGludGVyZmFjZSBmb3IgaWNtcCBzdGF0cyBmb3Igb3RoZXJzIHRoYW4gTmV0QlNECisgKi8KKworI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KKyNpbmNsdWRlIDxzeXMvcHJvdG9zdy5oPgorCisjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorI2luY2x1ZGUgPG5ldGluZXQvaW5fc3lzdG0uaD4KKyNpbmNsdWRlIDxuZXRpbmV0L2lwLmg+CisjaW5jbHVkZSA8bmV0aW5ldC9pcF9pY21wLmg+CisjaW5jbHVkZSA8bmV0aW5ldC9pcF92YXIuaD4KKyNpbmNsdWRlIDxuZXRpbmV0L2ljbXBfdmFyLmg+CisjaW5jbHVkZSA8bmV0aW5ldC9pY21wNi5oPgorCisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgorCisjaW5jbHVkZSAia2VybmVsX3N5c2N0bC5oIgorCisjaWYgZGVmaW5lZChORVRTTk1QX0NBTl9VU0VfU1lTQ1RMKQorCitpbnQKK3N5c2N0bF9yZWFkX2ljbXBfc3RhdChzdHJ1Y3QgaWNtcF9taWIgKm1pYikKK3sKKyAgICBzdHJ1Y3QgaWNtcHN0YXQgaWNtcHN0YXQ7CisgICAgc2l6ZV90ICAgc2l6ZSA9IHNpemVvZihpY21wc3RhdCk7CisgICAgaW50ICAgICAgaTsKKyAgICBzdGF0aWMgaW50ICAgICAgc25hbWVbNF0gPQorICAgICAgICB7IENUTF9ORVQsIFBGX0lORVQsIElQUFJPVE9fSUNNUCwgSUNNUENUTF9TVEFUUyB9OworCisgICAgKHZvaWQpbWVtc2V0KG1pYiwgMCwgc2l6ZW9mKCptaWIpKTsKKworICAgIGlmICgtMSA9PSBzeXNjdGwoc25hbWUsIDQsICZpY21wc3RhdCwgJnNpemUsIE5VTEwsIDApKSB7CisJc25tcF9wZXJyb3IoInN5c2N0bF9yZWFkX2ljbXBfc3RhdDogbmV0LmluZXQuaWNtcC5zdGF0cyIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgbWliLT5pY21wSW5Nc2dzID0gaWNtcHN0YXQuaWNwc19iYWRjb2RlCisgICAgICAgICsgaWNtcHN0YXQuaWNwc190b29zaG9ydAorICAgICAgICArIGljbXBzdGF0LmljcHNfY2hlY2tzdW0KKyAgICAgICAgKyBpY21wc3RhdC5pY3BzX2JhZGxlbjsKKyAgICBtaWItPmljbXBJbkVycm9ycyA9IG1pYi0+aWNtcEluTXNnczsKKyAgICBmb3IgKGkgPSAwOyBpIDw9IElDTVBfTUFYVFlQRTsgaSsrKQorICAgICAgICBtaWItPmljbXBJbk1zZ3MgICs9IGljbXBzdGF0LmljcHNfaW5oaXN0W2ldOworICAgIG1pYi0+aWNtcEluRGVzdFVucmVhY2hzID0gaWNtcHN0YXQuaWNwc19pbmhpc3RbSUNNUF9VTlJFQUNIXTsKKyAgICBtaWItPmljbXBJblRpbWVFeGNkcyA9IGljbXBzdGF0LmljcHNfaW5oaXN0W0lDTVBfVElNWENFRURdOworICAgIG1pYi0+aWNtcEluUGFybVByb2JzID0gaWNtcHN0YXQuaWNwc19pbmhpc3RbSUNNUF9QQVJBTVBST0JdOworICAgIG1pYi0+aWNtcEluU3JjUXVlbmNocyA9IGljbXBzdGF0LmljcHNfaW5oaXN0W0lDTVBfU09VUkNFUVVFTkNIXTsKKyAgICBtaWItPmljbXBJblJlZGlyZWN0cyA9IGljbXBzdGF0LmljcHNfaW5oaXN0W0lDTVBfUkVESVJFQ1RdOworICAgIG1pYi0+aWNtcEluRWNob3MgPSBpY21wc3RhdC5pY3BzX2luaGlzdFtJQ01QX0VDSE9dOworICAgIG1pYi0+aWNtcEluRWNob1JlcHMgPSBpY21wc3RhdC5pY3BzX2luaGlzdFtJQ01QX0VDSE9SRVBMWV07CisgICAgbWliLT5pY21wSW5UaW1lc3RhbXBzID0gaWNtcHN0YXQuaWNwc19pbmhpc3RbSUNNUF9UU1RBTVBdOworICAgIG1pYi0+aWNtcEluVGltZXN0YW1wUmVwcyA9IGljbXBzdGF0LmljcHNfaW5oaXN0W0lDTVBfVFNUQU1QUkVQTFldOworICAgIG1pYi0+aWNtcEluQWRkck1hc2tzID0gaWNtcHN0YXQuaWNwc19pbmhpc3RbSUNNUF9NQVNLUkVRXTsKKyAgICBtaWItPmljbXBJbkFkZHJNYXNrUmVwcyA9IGljbXBzdGF0LmljcHNfaW5oaXN0W0lDTVBfTUFTS1JFUExZXTsKKyAgICBtaWItPmljbXBPdXRNc2dzID0gaWNtcHN0YXQuaWNwc19vbGRzaG9ydCArIGljbXBzdGF0LmljcHNfb2xkaWNtcDsKKyAgICBmb3IgKGkgPSAwOyBpIDw9IElDTVBfTUFYVFlQRTsgaSsrKQorICAgICAgICBtaWItPmljbXBPdXRNc2dzICs9IGljbXBzdGF0LmljcHNfb3V0aGlzdFtpXTsKKyAgICBtaWItPmljbXBPdXRFcnJvcnMgPSBpY21wc3RhdC5pY3BzX29sZHNob3J0ICsgaWNtcHN0YXQuaWNwc19vbGRpY21wOworICAgIG1pYi0+aWNtcE91dERlc3RVbnJlYWNocyA9IGljbXBzdGF0LmljcHNfb3V0aGlzdFtJQ01QX1VOUkVBQ0hdOworICAgIG1pYi0+aWNtcE91dFRpbWVFeGNkcyA9IGljbXBzdGF0LmljcHNfb3V0aGlzdFtJQ01QX1RJTVhDRUVEXTsKKyAgICBtaWItPmljbXBPdXRQYXJtUHJvYnMgPSBpY21wc3RhdC5pY3BzX291dGhpc3RbSUNNUF9QQVJBTVBST0JdOworICAgIG1pYi0+aWNtcE91dFNyY1F1ZW5jaHMgPSBpY21wc3RhdC5pY3BzX291dGhpc3RbSUNNUF9TT1VSQ0VRVUVOQ0hdOworICAgIG1pYi0+aWNtcE91dFJlZGlyZWN0cyA9IGljbXBzdGF0LmljcHNfb3V0aGlzdFtJQ01QX1JFRElSRUNUXTsKKyAgICBtaWItPmljbXBPdXRFY2hvcyA9IGljbXBzdGF0LmljcHNfb3V0aGlzdFtJQ01QX0VDSE9dOworICAgIG1pYi0+aWNtcE91dEVjaG9SZXBzID0gaWNtcHN0YXQuaWNwc19vdXRoaXN0W0lDTVBfRUNIT1JFUExZXTsKKyAgICBtaWItPmljbXBPdXRUaW1lc3RhbXBzID0gaWNtcHN0YXQuaWNwc19vdXRoaXN0W0lDTVBfVFNUQU1QXTsKKyAgICBtaWItPmljbXBPdXRUaW1lc3RhbXBSZXBzID0gaWNtcHN0YXQuaWNwc19vdXRoaXN0W0lDTVBfVFNUQU1QUkVQTFldOworICAgIG1pYi0+aWNtcE91dEFkZHJNYXNrcyA9IGljbXBzdGF0LmljcHNfb3V0aGlzdFtJQ01QX01BU0tSRVFdOworICAgIG1pYi0+aWNtcE91dEFkZHJNYXNrUmVwcyA9IGljbXBzdGF0LmljcHNfb3V0aGlzdFtJQ01QX01BU0tSRVBMWV07CisKKyAgICByZXR1cm4gMDsKK30KKworCitpbnQKK3N5c2N0bF9yZWFkX2ljbXA2X3N0YXQoc3RydWN0IGljbXA2X21pYiAqbWliKQoreworICAgIHN0cnVjdCBpY21wNnN0YXQgaWNtcHN0YXQ7CisgICAgc2l6ZV90ICAgc2l6ZSA9IHNpemVvZihpY21wc3RhdCk7CisgICAgaW50ICAgICAgaTsKKyAgICBzdGF0aWMgaW50ICAgICAgc25hbWVbNF0gPQorICAgICAgICB7IENUTF9ORVQsIFBGX0lORVQ2LCBJUFBST1RPX0lDTVBWNiwgSUNNUFY2Q1RMX1NUQVRTIH07CisKKyAgICAodm9pZCltZW1zZXQobWliLCAwLCBzaXplb2YoKm1pYikpOworCisgICAgaWYgKC0xID09IHN5c2N0bChzbmFtZSwgNCwgJmljbXBzdGF0LCAmc2l6ZSwgTlVMTCwgMCkpIHsKKwlzbm1wX3BlcnJvcigic3lzY3RsX3JlYWRfaWNtcDZfc3RhdDogbmV0LmluZXQ2LmljbXA2LnN0YXRzIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBtaWItPmljbXA2SW5Nc2dzID0gaWNtcHN0YXQuaWNwNnNfYmFkY29kZQorICAgICAgICAgICAgKyBpY21wc3RhdC5pY3A2c190b29zaG9ydAorCSAgICArIGljbXBzdGF0LmljcDZzX2NoZWNrc3VtCisgICAgICAgICAgICArIGljbXBzdGF0LmljcDZzX2JhZGxlbjsKKyAgICBtaWItPmljbXA2SW5FcnJvcnMgPSBtaWItPmljbXA2SW5Nc2dzOworICAgIGZvciAoaSA9IDA7IGkgPD0gSUNNUDZfTUFYVFlQRTsgaSsrKQorICAgICAgICBtaWItPmljbXA2SW5Nc2dzICArPSBpY21wc3RhdC5pY3A2c19pbmhpc3RbaV07CisgICAgbWliLT5pY21wNkluRGVzdFVucmVhY2hzID0gaWNtcHN0YXQuaWNwNnNfaW5oaXN0W0lDTVA2X0RTVF9VTlJFQUNIXTsKKyAgICBtaWItPmljbXA2SW5Qa3RUb29CaWdzID0gaWNtcHN0YXQuaWNwNnNfaW5oaXN0W0lDTVA2X1BBQ0tFVF9UT09fQklHXTsKKyAgICBtaWItPmljbXA2SW5UaW1lRXhjZHMgPSBpY21wc3RhdC5pY3A2c19pbmhpc3RbSUNNUDZfVElNRV9FWENFRURFRF07CisgICAgbWliLT5pY21wNkluUGFybVByb2JsZW1zID0gaWNtcHN0YXQuaWNwNnNfaW5oaXN0W0lDTVA2X1BBUkFNX1BST0JdOworICAgIG1pYi0+aWNtcDZJbkVjaG9zID0gaWNtcHN0YXQuaWNwNnNfaW5oaXN0W0lDTVA2X0VDSE9fUkVRVUVTVF07CisgICAgbWliLT5pY21wNkluRWNob1JlcGxpZXMgPSBpY21wc3RhdC5pY3A2c19pbmhpc3RbSUNNUDZfRUNIT19SRVBMWV07CisgICAgbWliLT5pY21wNkluR3JvdXBNZW1iUXVlcmllcyA9IGljbXBzdGF0LmljcDZzX2luaGlzdFtNTERfTElTVEVORVJfUVVFUlldOworICAgIG1pYi0+aWNtcDZJbkdyb3VwTWVtYlJlc3BvbnNlcyA9IGljbXBzdGF0LmljcDZzX2luaGlzdFtNTERfTElTVEVORVJfUkVQT1JUXTsKKyAgICBtaWItPmljbXA2SW5Sb3V0ZXJTb2xpY2l0cyA9IGljbXBzdGF0LmljcDZzX2luaGlzdFtORF9ST1VURVJfU09MSUNJVF07CisgICAgbWliLT5pY21wNkluUm91dGVyQWR2ZXJ0aXNlbWVudHMgPSBpY21wc3RhdC5pY3A2c19pbmhpc3RbTkRfUk9VVEVSX0FEVkVSVF07CisgICAgbWliLT5pY21wNkluTmVpZ2hib3JTb2xpY2l0cyA9IGljbXBzdGF0LmljcDZzX2luaGlzdFtORF9ORUlHSEJPUl9TT0xJQ0lUXTsKKyAgICBtaWItPmljbXA2SW5OZWlnaGJvckFkdmVydGlzZW1lbnRzID0gaWNtcHN0YXQuaWNwNnNfaW5oaXN0W05EX05FSUdIQk9SX0FEVkVSVF07CisgICAgbWliLT5pY21wNkluUmVkaXJlY3RzID0gaWNtcHN0YXQuaWNwNnNfaW5oaXN0W05EX1JFRElSRUNUXTsKKworICAgIG1pYi0+aWNtcDZPdXRNc2dzID0gaWNtcHN0YXQuaWNwNnNfY2FudGVycm9yCisgICAgICAgICsgaWNtcHN0YXQuaWNwNnNfdG9vZnJlcTsKKyAgICBmb3IgKGkgPSAwOyBpIDw9IElDTVA2X01BWFRZUEU7IGkrKykKKyAgICAgICAgbWliLT5pY21wNk91dE1zZ3MgKz0gaWNtcHN0YXQuaWNwNnNfb3V0aGlzdFtpXTsKKyAgICBtaWItPmljbXA2T3V0RGVzdFVucmVhY2hzID0gaWNtcHN0YXQuaWNwNnNfb3V0aGlzdFtJQ01QNl9EU1RfVU5SRUFDSF07CisgICAgbWliLT5pY21wNk91dFBrdFRvb0JpZ3MgPSAgaWNtcHN0YXQuaWNwNnNfb3V0aGlzdFtJQ01QNl9QQUNLRVRfVE9PX0JJR107CisgICAgbWliLT5pY21wNk91dFRpbWVFeGNkcyA9IGljbXBzdGF0LmljcDZzX291dGhpc3RbSUNNUDZfVElNRV9FWENFRURFRF07CisgICAgbWliLT5pY21wNk91dFBhcm1Qcm9ibGVtcyA9IGljbXBzdGF0LmljcDZzX291dGhpc3RbSUNNUDZfUEFSQU1fUFJPQl07CisgICAgbWliLT5pY21wNk91dEVjaG9zID0gaWNtcHN0YXQuaWNwNnNfb3V0aGlzdFtJQ01QNl9FQ0hPX1JFUVVFU1RdOworICAgIG1pYi0+aWNtcDZPdXRFY2hvUmVwbGllcyA9IGljbXBzdGF0LmljcDZzX291dGhpc3RbSUNNUDZfRUNIT19SRVBMWV07CisgICAgbWliLT5pY21wNk91dFJvdXRlclNvbGljaXRzID0gIGljbXBzdGF0LmljcDZzX291dGhpc3RbTkRfUk9VVEVSX1NPTElDSVRdOworICAgIG1pYi0+aWNtcDZPdXROZWlnaGJvclNvbGljaXRzID0gIGljbXBzdGF0LmljcDZzX291dGhpc3RbTkRfTkVJR0hCT1JfU09MSUNJVF07CisgICAgbWliLT5pY21wNk91dE5laWdoYm9yQWR2ZXJ0aXNlbWVudHMgPSAgaWNtcHN0YXQuaWNwNnNfb3V0aGlzdFtORF9ORUlHSEJPUl9BRFZFUlRdOworICAgIG1pYi0+aWNtcDZPdXRSZWRpcmVjdHMgPSBpY21wc3RhdC5pY3A2c19vdXRoaXN0W05EX1JFRElSRUNUXTsKKyAgICBtaWItPmljbXA2T3V0R3JvdXBNZW1iUmVzcG9uc2VzID0gIGljbXBzdGF0LmljcDZzX291dGhpc3RbTUxEX0xJU1RFTkVSX1JFUE9SVF07CisgICAgbWliLT5pY21wNk91dEdyb3VwTWVtYlJlZHVjdGlvbnMgPSAgaWNtcHN0YXQuaWNwNnNfb3V0aGlzdFtNTERfTElTVEVORVJfRE9ORV07CisKKyAgICByZXR1cm4gMDsKK30KKworCitpbnQKK3N5c2N0bF9yZWFkX2ljbXBfbXNnX3N0YXQoc3RydWN0IGljbXBfbWliICptaWIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpY21wNF9tc2dfbWliICptc2dtaWIsCisJCQkgIGludCAqZmxhZykKK3sKKyAgICBzeXNjdGxfcmVhZF9pY21wX3N0YXQobWliKTsKKyAgICAqZmxhZyA9IDA7CisgICAgcmV0dXJuIDA7Cit9CisKKworaW50CitzeXNjdGxfcmVhZF9pY21wNl9tc2dfc3RhdChzdHJ1Y3QgaWNtcDZfbWliICptaWIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaWNtcDZfbXNnX21pYiAqbXNnbWliLAorCQkJICAgaW50ICpzdXBwb3J0KQoreworICAgIHN0cnVjdCBpY21wNnN0YXQgaWNtcHN0YXQ7CisgICAgc2l6ZV90ICAgc2l6ZSA9IHNpemVvZihpY21wc3RhdCk7CisgICAgaW50ICAgICAgaTsKKyAgICBzdGF0aWMgaW50ICAgICAgc25hbWVbNF0gPQorICAgICAgICB7IENUTF9ORVQsIFBGX0lORVQ2LCBJUFBST1RPX0lDTVBWNiwgSUNNUFY2Q1RMX1NUQVRTIH07CisKKyAgICBzeXNjdGxfcmVhZF9pY21wNl9zdGF0KG1pYik7CisKKyAgICBpZiAoLTEgPT0gc3lzY3RsKHNuYW1lLCA0LCAmaWNtcHN0YXQsICZzaXplLCBOVUxMLCAwKSkgeworCXNubXBfcGVycm9yKCJzeXNjdGxfcmVhZF9pY21wNl9zdGF0OiBuZXQuaW5ldDYuaWNtcDYuc3RhdHMiKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgeworCW1zZ21pYi0+dmFsc1tpXS5JblR5cGUgPSBpY21wc3RhdC5pY3A2c19pbmhpc3RbaV07CisJbXNnbWliLT52YWxzW2ldLk91dFR5cGUgPSBpY21wc3RhdC5pY3A2c19vdXRoaXN0W2ldOworICAgIH0KKyAgICAqc3VwcG9ydCA9IDE7CisgICAgcmV0dXJuIDA7Cit9CisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfc3lzY3RsLmggYi9hZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfc3lzY3RsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ4NDk3MwotLS0gL2Rldi9udWxsCisrKyBiL2FnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9zeXNjdGwuaApAQCAtMCwwICsxLDE5IEBACisjaWZuZGVmIF9NSUJHUk9VUF9LRVJORUxfU1lTQ1RMX0gKKyNkZWZpbmUgX01JQkdST1VQX0tFUk5FTF9TWVNDVExfSAorCisjaWYgZGVmaW5lZChORVRTTk1QX0NBTl9VU0VfU1lTQ1RMKQorCisjaW5jbHVkZSAia2VybmVsX21pYi5oIgorCitpbnQgICAgICBzeXNjdGxfcmVhZF9pY21wX3N0YXQoc3RydWN0IGljbXBfbWliICopOworaW50ICAgICAgc3lzY3RsX3JlYWRfaWNtcDZfc3RhdChzdHJ1Y3QgaWNtcDZfbWliICopOworaW50ICAgICAgc3lzY3RsX3JlYWRfaWNtcF9tc2dfc3RhdChzdHJ1Y3QgaWNtcF9taWIgKiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGljbXA0X21zZ19taWIgKiwKKwkJIAkJICBpbnQgKmZsYWcpOworaW50ICAgICAgc3lzY3RsX3JlYWRfaWNtcDZfbXNnX3N0YXQoc3RydWN0IGljbXA2X21pYiAqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGljbXA2X21zZ19taWIgKiwKKwkJCQkgICAgaW50ICpzdXBwb3J0KTsKKworI2VuZGlmIC8qIE5FVFNOTVBfQ0FOX1VTRV9TWVNDVEwgKi8KKworI2VuZGlmIC8qIF9NSUJHUk9VUF9LRVJORUxfU1lTQ1RMX0ggKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgKaW5kZXggMTYwYWI4Mi4uODdlZjlkMSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgKQEAgLTg4LDcgKzg4LDYgQEAKICNpbmNsdWRlIDxkbWFsbG9jLmg+CiAjZW5kaWYKIAotCiAjaWZkZWYgc29sYXJpczIKICNpbmNsdWRlICJrZXJuZWxfc3Vub3M1LmgiCiAjZWxzZQpAQCAtMTAwLDYgKzk5LDEwIEBACiAjaWZkZWYgTkVUQlNEX1NUQVRTX1ZJQV9TWVNDVEwKICNpbmNsdWRlICJrZXJuZWxfbmV0YnNkLmgiCiAjZW5kaWYKKyNpZiBkZWZpbmVkKE5FVFNOTVBfQ0FOX1VTRV9TWVNDVEwpIC8qICYmIGRlZmluZWQoSUNNUENUTF9TVEFUUykgKi8KKyNpbmNsdWRlICJrZXJuZWxfc3lzY3RsLmgiCisjZW5kaWYKKwogCS8qIG9yIE1JQl94eHhDT1VOVEVSX1NZTUJPTCB8fCBocHV4MTEgKi8KICNpZmRlZiBocHV4CiAjaW5jbHVkZSA8c3lzL21pYi5oPgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYyBiL2FnZW50L21pYmdyb3VwL21pYklJL3NldFNlcmlhbE5vLmMKaW5kZXggOTBhMGFiYS4uODVhNDA5OCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYworKysgYi9hZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5jCkBAIC0yLDkgKzIsMTMgQEAKICAqICBUaGlzIGZpbGUgaW1wbGVtZW50cyB0aGUgc25tcFNldFNlcmlhbE5vIFRlc3RBbmRJbmNyIGNvdW50ZXIKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh3YXRjaGVyX3NwaW5sb2NrKQorCisKICNpbmNsdWRlICJzZXRTZXJpYWxOby5oIgogCiAvKgpAQCAtNjAsMTMgKzY0LDIxIEBACiAgICAgLyoKICAgICAgKiBSZWdpc3RlciAnc2V0c2VyaWFsbm8nIGFzIGEgd2F0Y2hlZCBzcGlubG9jayBvYmplY3QKICAgICAgKi8KKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX3NwaW5sb2NrKAogICAgICAgICBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigic25tcFNldFNlcmlhbE5vIiwgTlVMTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0X3NlcmlhbF9vaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9JRF9MRU5HVEgoc2V0X3NlcmlhbF9vaWQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQU5ETEVSX0NBTl9SV1JJVEUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNldHNlcmlhbG5vICk7Ci0KKyNlbHNlICAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX3NwaW5sb2NrKAorICAgICAgICBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigic25tcFNldFNlcmlhbE5vIiwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0X3NlcmlhbF9vaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9JRF9MRU5HVEgoc2V0X3NlcmlhbF9vaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQU5ETEVSX0NBTl9ST05MWSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2V0c2VyaWFsbm8gKTsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgREVCVUdNU0dUTCgoInNjYWxhcl9pbnQiLCAiRG9uZSBpbml0YWxpemluZyBleGFtcGxlIHNjYWxhciBpbnRcbiIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYyBiL2FnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMKaW5kZXggMGEyM2M5ZS4uMWViZTY0YyAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYworKysgYi9hZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jCkBAIC0xLDQgKzEsNSBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaD4KQEAgLTYsNiArNywxMCBAQAogI2luY2x1ZGUgInNubXBfbWliLmgiCiAjaW5jbHVkZSAidXBkYXRlcy5oIgogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfdmJfdHJ1dGh2YWx1ZSkKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKwogc3RhdGljIGNvbnN0IG9pZCBzbm1wX29pZFtdID0geyAxLCAzLCA2LCAxLCAyLCAxLCAxMSB9OwogCiBleHRlcm4gbG9uZyBzbm1wX2VuYWJsZWF1dGhlbnRyYXBzOwpAQCAtMzAsMTEgKzM1LDEzIEBACiAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mbyAqcmVxaW5mbywKICAgICAgICAgICAgICAgICAgIG5ldHNubXBfcmVxdWVzdF9pbmZvICpyZXF1ZXN0cykKIHsKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgaWYgKHJlcWluZm8tPm1vZGUgPT0gTU9ERV9TRVRfUkVTRVJWRTEpIHsKICAgICAgICAgaW50IHJlcyA9IG5ldHNubXBfY2hlY2tfdmJfdHJ1dGh2YWx1ZShyZXF1ZXN0cy0+cmVxdWVzdHZiKTsKICAgICAgICAgaWYgKHJlcyAhPSBTTk1QX0VSUl9OT0VSUk9SKQogICAgICAgICAgICAgbmV0c25tcF9yZXF1ZXN0X3NldF9lcnJvcihyZXF1ZXN0cywgcmVzKTsKICAgICB9CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiB9CiAKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMKaW5kZXggMmVmZmZlYi4uYzYzZWZiNiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMKQEAgLTEsNCArMSw1IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oPgpAQCAtOCw2ICs5LDExIEBACiAjaW5jbHVkZSAic25tcF9taWJfNV81LmgiCiAjaW5jbHVkZSAidXBkYXRlcy5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShoZWxwZXJfc3RhdGlzdGljcykKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja192Yl90cnV0aHZhbHVlKQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworCiAjZGVmaW5lIFNOTVBfT0lEIDEsIDMsIDYsIDEsIDIsIDEsIDExCiAKIHN0YXRpYyBvaWQgc25tcF9vaWRbXSA9IHsgU05NUF9PSUQgfTsKQEAgLTM0LDExICs0MCwxMyBAQAogICAgICAgICAgICAgICAgICAgbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm8gKnJlcWluZm8sCiAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3JlcXVlc3RfaW5mbyAqcmVxdWVzdHMpCiB7CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGlmIChyZXFpbmZvLT5tb2RlID09IE1PREVfU0VUX1JFU0VSVkUxKSB7CiAgICAgICAgIGludCByZXMgPSBuZXRzbm1wX2NoZWNrX3ZiX3RydXRodmFsdWUocmVxdWVzdHMtPnJlcXVlc3R2Yik7CiAgICAgICAgIGlmIChyZXMgIT0gU05NUF9FUlJfTk9FUlJPUikKICAgICAgICAgICAgIG5ldHNubXBfcmVxdWVzdF9zZXRfZXJyb3IocmVxdWVzdHMsIHJlcyk7CiAgICAgfQorI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKIH0KIApAQCAtOTEsMTEgKzk5LDIwIEBACiAgICAgICAgIG9pZCBzbm1wRW5hYmxlQXV0aGVuVHJhcHNfb2lkW10gPSB7IFNOTVBfT0lELCAzMCwgMCB9OwogCXN0YXRpYyBuZXRzbm1wX3dhdGNoZXJfaW5mbyBlbmFibGVhdXRoZW5faW5mbzsKICAgICAgICAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnID0KKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV91cGRhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oCiAgICAgICAgICAgICAgICAgIm1pYklJL3NubXBFbmFibGVBdXRoZW5UcmFwcyIsCiAgICAgICAgICAgICAgICAgc25tcEVuYWJsZUF1dGhlblRyYXBzX29pZCwKICAgICAgICAgICAgICAgICBPSURfTEVOR1RIKHNubXBFbmFibGVBdXRoZW5UcmFwc19vaWQpLAogICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JXUklURSwgJnNubXBfZW5hYmxlYXV0aGVudHJhcHNzZXQpOworI2Vsc2UgIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKyAgICAgICAgICAgIG5ldHNubXBfY3JlYXRlX3VwZGF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigKKyAgICAgICAgICAgICAgICAibWliSUkvc25tcEVuYWJsZUF1dGhlblRyYXBzIiwKKyAgICAgICAgICAgICAgICBzbm1wRW5hYmxlQXV0aGVuVHJhcHNfb2lkLAorICAgICAgICAgICAgICAgIE9JRF9MRU5HVEgoc25tcEVuYWJsZUF1dGhlblRyYXBzX29pZCksCisgICAgICAgICAgICAgICAgSEFORExFUl9DQU5fUk9OTFksICZzbm1wX2VuYWJsZWF1dGhlbnRyYXBzc2V0KTsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisKICAgICAgICAgbmV0c25tcF9pbmplY3RfaGFuZGxlcihyZWcsIG5ldHNubXBfZ2V0X3RydXRodmFsdWUoKSk7CiAgICAgICAgIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9pbnN0YW5jZSgKICAgICAgICAgICAgIHJlZywKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYwppbmRleCA1Njc0NzhhLi5lZDI2OTE5IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jCkBAIC04LDYgKzgsMTEgQEAKIAogI2luY2x1ZGUgInN5c09SVGFibGUuaCIKIAorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CisKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX2NvbnRhaW5lcikKKworCiAvKiogVHlwaWNhbCBkYXRhIHN0cnVjdHVyZSBmb3IgYSByb3cgZW50cnkgKi8KIHR5cGVkZWYgc3RydWN0IHN5c09SVGFibGVfZW50cnlfcyB7CiAgICAgbmV0c25tcF9pbmRleCAgICAgICAgICAgIG9pZF9pbmRleDsKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyBiL2FnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwppbmRleCA5YjViZjU2Li42NWIwYjdjIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCkBAIC0xNCw2ICsxNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpZiBIQVZFX1NURExJQl9ICiAjaW5jbHVkZSA8c3RkbGliLmg+CkBAIC00NCw2ICs0NSw4IEBACiAjaW5jbHVkZSAic3lzdGVtX21pYi5oIgogI2luY2x1ZGUgInVwZGF0ZXMuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUod2F0Y2hlcl9yZWFkX29ubHlfaW50X3NjYWxhcikKKwogICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqCiAJICoKIAkgKiAgS2VybmVsICYgaW50ZXJmYWNlIGluZm9ybWF0aW9uLApAQCAtODEsMjkgKzg0LDIzIEBACiAJICoqKioqKioqKioqKioqKioqKioqKi8KIAogc3RhdGljIHZvaWQKLXN5c3RlbV9wYXJzZV9jb25maWdfc3lzZGVzY3IoY29uc3QgY2hhciAqdG9rZW4sIGNoYXIgKmNwdHIpCitzeXN0ZW1fcGFyc2VfY29uZmlnX3N0cmluZzIoY29uc3QgY2hhciAqdG9rZW4sIGNoYXIgKmNwdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciogdmFsdWUsIHNpemVfdCBzaXplKQogewotICAgIGlmIChzdHJsZW4oY3B0cikgPj0gc2l6ZW9mKHZlcnNpb25fZGVzY3IpKSB7Ci0JbmV0c25tcF9jb25maWdfZXJyb3IoInN5c2Rlc2NyIHRva2VuIHRvbyBsb25nIChtdXN0IGJlIDwgJWx1KTpcblx0JXMiLAotCQkJICAgICAodW5zaWduZWQgbG9uZylzaXplb2YodmVyc2lvbl9kZXNjciksIGNwdHIpOwotICAgIH0gZWxzZSBpZiAoc3RyY21wKGNwdHIsICJcIlwiIikgPT0gMCkgewotICAgICAgICB2ZXJzaW9uX2Rlc2NyWzBdID0gJ1wwJzsKKyAgICBpZiAoc3RybGVuKGNwdHIpIDwgc2l6ZSkgeworICAgICAgICBzdHJjcHkodmFsdWUsIGNwdHIpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0cmNweSh2ZXJzaW9uX2Rlc2NyLCBjcHRyKTsKKyAgICAgICAgbmV0c25tcF9jb25maWdfZXJyb3IoIiVzIHRva2VuIHRvbyBsb25nIChtdXN0IGJlIDwgJWx1KTpcblx0JXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiwgKHVuc2lnbmVkIGxvbmcpc2l6ZSwgY3B0cik7CiAgICAgfQogfQogCi1ORVRTTk1QX1NUQVRJQ19JTkxJTkUgdm9pZAorc3RhdGljIHZvaWQKIHN5c3RlbV9wYXJzZV9jb25maWdfc3RyaW5nKGNvbnN0IGNoYXIgKnRva2VuLCBjaGFyICpjcHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwgY2hhciogdmFsdWUsIHNpemVfdCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KiBndWFyZCkKIHsKLSAgICBpZiAoc3RybGVuKGNwdHIpID49IHNpemUpIHsKLQluZXRzbm1wX2NvbmZpZ19lcnJvcigiJXMgdG9rZW4gdG9vIGxvbmcgKG11c3QgYmUgPCAlbHUpOlxuXHQlcyIsCi0JCQkgICAgIHRva2VuLCAodW5zaWduZWQgbG9uZylzaXplLCBjcHRyKTsKLSAgICB9Ci0KLSAgICBpZiAoKnRva2VuID09ICdwJyAmJiBzdHJjYXNlY21wKHRva2VuICsgMSwgbmFtZSkgPT0gMCkgeworICAgIGlmICgqdG9rZW4gPT0gJ3AnKSB7CiAgICAgICAgIGlmICgqZ3VhcmQgPCAwKSB7CiAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICogVGhpcyBpcyBib2d1cyAoYW5kIHNob3VsZG4ndCBoYXBwZW4gYW55d2F5KSAtLSB0aGUgdmFsdWUgaXMKQEAgLTExMyw3ICsxMTAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgImlnbm9yaW5nIGF0dGVtcHRlZCBvdmVycmlkZSBvZiByZWFkLW9ubHkgJXMuMFxuIiwgbmFtZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICArKygqZ3VhcmQpOworICAgICAgICAgICAgKmd1YXJkID0gMTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICgqZ3VhcmQgPiAwKSB7CkBAIC0xMzAsMTEgKzEyNywxNCBAQAogICAgICAgICAqZ3VhcmQgPSAtMTsKICAgICB9CiAKLSAgICBpZiAoc3RyY21wKGNwdHIsICJcIlwiIikgPT0gMCkgewotICAgICAgICAqdmFsdWUgPSAnXDAnOwotICAgIH0gZWxzZSBpZiAoc3RybGVuKGNwdHIpIDwgc2l6ZSkgewotICAgICAgICBzdHJjcHkodmFsdWUsIGNwdHIpOwotICAgIH0KKyAgICBzeXN0ZW1fcGFyc2VfY29uZmlnX3N0cmluZzIodG9rZW4sIGNwdHIsIHZhbHVlLCBzaXplKTsKK30KKworc3RhdGljIHZvaWQKK3N5c3RlbV9wYXJzZV9jb25maWdfc3lzZGVzY3IoY29uc3QgY2hhciAqdG9rZW4sIGNoYXIgKmNwdHIpCit7CisgICAgc3lzdGVtX3BhcnNlX2NvbmZpZ19zdHJpbmcyKHRva2VuLCBjcHRyLCB2ZXJzaW9uX2Rlc2NyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodmVyc2lvbl9kZXNjcikpOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMTc1LDcgKzE3NSw4IEBACiAgICAgICAgIHN5c09iamVjdElEQnl0ZUxlbmd0aCA9IHZlcnNpb25fc3lzb2lkX2xlbiAgKiBzaXplb2Yob2lkKTsKICAgICAgICAgbWVtY3B5KHN5c09iamVjdElELCB2ZXJzaW9uX3N5c29pZCwgc3lzT2JqZWN0SURCeXRlTGVuZ3RoKTsKICAgICB9IGVsc2UKLSAgICAgICAgc3lzT2JqZWN0SURCeXRlTGVuZ3RoID0gc3lzT2JqZWN0SURMZW5ndGggKiBzaXplb2Yob2lkKTsKKworCQlzeXNPYmplY3RJREJ5dGVMZW5ndGggPSBzeXNPYmplY3RJRExlbmd0aCAqIHNpemVvZihvaWQpOwogfQogCiAKQEAgLTM1MywxNyArMzU0LDI4IEBACiAgICAgewogICAgICAgICBjb25zdCBvaWQgc3lzQ29udGFjdF9vaWRbXSA9IHsgMSwgMywgNiwgMSwgMiwgMSwgMSwgNCB9OwogICAgICAgICBzdGF0aWMgbmV0c25tcF93YXRjaGVyX2luZm8gc3lzQ29udGFjdF93aW5mbzsKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCisgICAgICAgIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zY2FsYXIoCisgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV91cGRhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oCisgICAgICAgICAgICAgICAgIm1pYklJL3N5c0NvbnRhY3QiLCBzeXNDb250YWN0X29pZCwgT0lEX0xFTkdUSChzeXNDb250YWN0X29pZCksIAorICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JXUklURSwgJnN5c0NvbnRhY3RTZXQpLAorICAgICAgICAgICAgbmV0c25tcF9pbml0X3dhdGNoZXJfaW5mbygKKyAgICAgICAgICAgICAgICAmc3lzQ29udGFjdF93aW5mbywgc3lzQ29udGFjdCwgU1lTX1NUUklOR19MRU4gLSAxLAorICAgICAgICAgICAgICAgIEFTTl9PQ1RFVF9TVFIsIFdBVENIRVJfTUFYX1NJWkUgfCBXQVRDSEVSX1NJWkVfU1RSTEVOKSk7CisjZWxzZSAgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfc2NhbGFyKAogICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfdXBkYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uKAogICAgICAgICAgICAgICAgICJtaWJJSS9zeXNDb250YWN0Iiwgc3lzQ29udGFjdF9vaWQsIE9JRF9MRU5HVEgoc3lzQ29udGFjdF9vaWQpLAotICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JXUklURSwgJnN5c0NvbnRhY3RTZXQpLAorICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JPTkxZLCAmc3lzQ29udGFjdFNldCksCiAgICAgICAgICAgICBuZXRzbm1wX2luaXRfd2F0Y2hlcl9pbmZvKAotCQkmc3lzQ29udGFjdF93aW5mbywgc3lzQ29udGFjdCwgU1lTX1NUUklOR19MRU4gLSAxLAotCQlBU05fT0NURVRfU1RSLCBXQVRDSEVSX01BWF9TSVpFIHwgV0FUQ0hFUl9TSVpFX1NUUkxFTikpOworICAgICAgICAgICAgICAgICZzeXNDb250YWN0X3dpbmZvLCBzeXNDb250YWN0LCBTWVNfU1RSSU5HX0xFTiAtIDEsCisgICAgICAgICAgICAgICAgQVNOX09DVEVUX1NUUiwgV0FUQ0hFUl9NQVhfU0laRSB8IFdBVENIRVJfU0laRV9TVFJMRU4pKTsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgfQogICAgIHsKICAgICAgICAgY29uc3Qgb2lkIHN5c05hbWVfb2lkW10gPSB7IDEsIDMsIDYsIDEsIDIsIDEsIDEsIDUgfTsKICAgICAgICAgc3RhdGljIG5ldHNubXBfd2F0Y2hlcl9pbmZvIHN5c05hbWVfd2luZm87CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfc2NhbGFyKAogICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfdXBkYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uKAogICAgICAgICAgICAgICAgICJtaWJJSS9zeXNOYW1lIiwgc3lzTmFtZV9vaWQsIE9JRF9MRU5HVEgoc3lzTmFtZV9vaWQpLApAQCAtMzcxLDEwICszODMsMjAgQEAKICAgICAgICAgICAgIG5ldHNubXBfaW5pdF93YXRjaGVyX2luZm8oCiAgICAgICAgICAgICAgICAgJnN5c05hbWVfd2luZm8sIHN5c05hbWUsIFNZU19TVFJJTkdfTEVOIC0gMSwgQVNOX09DVEVUX1NUUiwKICAgICAgICAgICAgICAgICBXQVRDSEVSX01BWF9TSVpFIHwgV0FUQ0hFUl9TSVpFX1NUUkxFTikpOworI2Vsc2UgIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKyAgICAgICAgbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX3NjYWxhcigKKyAgICAgICAgICAgIG5ldHNubXBfY3JlYXRlX3VwZGF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigKKyAgICAgICAgICAgICAgICAibWliSUkvc3lzTmFtZSIsIHN5c05hbWVfb2lkLCBPSURfTEVOR1RIKHN5c05hbWVfb2lkKSwKKyAgICAgICAgICAgICAgICBIQU5ETEVSX0NBTl9ST05MWSwgJnN5c05hbWVTZXQpLAorICAgICAgICAgICAgbmV0c25tcF9pbml0X3dhdGNoZXJfaW5mbygKKyAgICAgICAgICAgICAgICAmc3lzTmFtZV93aW5mbywgc3lzTmFtZSwgU1lTX1NUUklOR19MRU4gLSAxLCBBU05fT0NURVRfU1RSLAorICAgICAgICAgICAgICAgIFdBVENIRVJfTUFYX1NJWkUgfCBXQVRDSEVSX1NJWkVfU1RSTEVOKSk7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgIH0KICAgICB7CiAgICAgICAgIGNvbnN0IG9pZCBzeXNMb2NhdGlvbl9vaWRbXSA9IHsgMSwgMywgNiwgMSwgMiwgMSwgMSwgNiB9OwogICAgICAgICBzdGF0aWMgbmV0c25tcF93YXRjaGVyX2luZm8gc3lzTG9jYXRpb25fd2luZm87CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfc2NhbGFyKAogICAgICAgICAgICAgbmV0c25tcF9jcmVhdGVfdXBkYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uKAogICAgICAgICAgICAgICAgICJtaWJJSS9zeXNMb2NhdGlvbiIsIHN5c0xvY2F0aW9uX29pZCwKQEAgLTM4Myw2ICs0MDUsMTYgQEAKICAgICAgICAgICAgIG5ldHNubXBfaW5pdF93YXRjaGVyX2luZm8oCiAJCSZzeXNMb2NhdGlvbl93aW5mbywgc3lzTG9jYXRpb24sIFNZU19TVFJJTkdfTEVOIC0gMSwKIAkJQVNOX09DVEVUX1NUUiwgV0FUQ0hFUl9NQVhfU0laRSB8IFdBVENIRVJfU0laRV9TVFJMRU4pKTsKKyNlbHNlICAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgICAgIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zY2FsYXIoCisgICAgICAgICAgICBuZXRzbm1wX2NyZWF0ZV91cGRhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oCisgICAgICAgICAgICAgICAgIm1pYklJL3N5c0xvY2F0aW9uIiwgc3lzTG9jYXRpb25fb2lkLAorICAgICAgICAgICAgICAgIE9JRF9MRU5HVEgoc3lzTG9jYXRpb25fb2lkKSwKKyAgICAgICAgICAgICAgICBIQU5ETEVSX0NBTl9ST05MWSwgJnN5c0xvY2F0aW9uU2V0KSwKKyAgICAgICAgICAgIG5ldHNubXBfaW5pdF93YXRjaGVyX2luZm8oCisJCSZzeXNMb2NhdGlvbl93aW5mbywgc3lzTG9jYXRpb24sIFNZU19TVFJJTkdfTEVOIC0gMSwKKwkJQVNOX09DVEVUX1NUUiwgV0FUQ0hFUl9NQVhfU0laRSB8IFdBVENIRVJfU0laRV9TVFJMRU4pKTsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgfQogICAgIHsKICAgICAgICAgY29uc3Qgb2lkIHN5c1NlcnZpY2VzX29pZFtdID0geyAxLCAzLCA2LCAxLCAyLCAxLCAxLCA3IH07CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9taWJJSS90Y3AuYyBiL2FnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCmluZGV4IDJiZTk0ODEuLjNjNzlmYWQgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCisrKyBiL2FnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCkBAIC01LDYgKzUsNyBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgIm1pYklJX2NvbW1vbi5oIgogCiAjaWYgSEFWRV9TVERMSUJfSApAQCAtOTEsNyArOTIsOSBAQAogaW50ICBoeiA9IDEwMDA7CiAjZW5kaWYKIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RDUF9DT1VOVF9DT05ORUNUSU9OUwogZXh0ZXJuIGludCBUQ1BfQ291bnRfQ29ubmVjdGlvbnMoIHZvaWQgKTsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RDUF9DT1VOVF9DT05ORUNUSU9OUyAqLwogICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqCiAJICoKIAkgKiAgSW5pdGlhbGlzYXRpb24gJiBjb21tb24gaW1wbGVtZW50YXRpb24gZnVuY3Rpb25zCkBAIC0zNzAsMTEgKzM3MywxNCBAQAogICAgICAgICByZXRfdmFsdWUgPSB0Y3BzdGF0LnRjcHNfZHJvcHM7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVENQQ1VSUkVTVEFCOgotI2lmZGVmIFVTSU5HX01JQklJX1RDUFRBQkxFX01PRFVMRQorI2lmZGVmIE5FVFNOTVBfRkVBVFVSRV9DSEVDS0lORworICAgICAgICBuZXRzbm1wX2ZlYXR1cmVfd2FudCh0Y3BfY291bnRfY29ubmVjdGlvbnMpCisjZW5kaWYKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQ1BfQ09VTlRfQ09OTkVDVElPTlMKICAgICAgICAgcmV0X3ZhbHVlID0gVENQX0NvdW50X0Nvbm5lY3Rpb25zKCk7CiAjZWxzZQogICAgICAgICByZXRfdmFsdWUgPSAwOwotI2VuZGlmCisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQ1BfQ09VTlRfQ09OTkVDVElPTlMgKi8KICAgICAgICAgdHlwZSA9IEFTTl9HQVVHRTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUQ1BJTlNFR1M6CkBAIC01NDksNiArNTU1LDcgQEAKIAogICAgIGNhc2UgTU9ERV9HRVRORVhUOgogICAgIGNhc2UgTU9ERV9HRVRCVUxLOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBjYXNlIE1PREVfU0VUX1JFU0VSVkUxOgogICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTI6CiAgICAgY2FzZSBNT0RFX1NFVF9BQ1RJT046CkBAIC01NTgsNiArNTY1LDcgQEAKICAgICAgICAgc25tcF9sb2coTE9HX1dBUk5JTkcsICJtaWJJSS90Y3A6IFVuc3VwcG9ydGVkIG1vZGUgKCVkKVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXFpbmZvLT5tb2RlKTsKICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHNubXBfbG9nKExPR19XQVJOSU5HLCAibWliSUkvdGNwOiBVbnJlY29nbmlzZWQgbW9kZSAoJWQpXG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcWluZm8tPm1vZGUpOwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKaW5kZXggYzljOWRkOC4uMDNjODVlNSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCkBAIC0xNSw2ICsxNSw3IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSAibWliSUlfY29tbW9uLmgiCiAKICNpZiBIQVZFX05FVElORVRfVENQX0gKQEAgLTQyLDYgKzQzLDEwIEBACiAjaW5jbHVkZSAidGNwLmgiCiAjaW5jbHVkZSAidGNwVGFibGUuaCIKIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRjcHRhYmxlX2FsbCwgbGlibmV0c25tcG1pYnMpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0Y3BfY291bnRfY29ubmVjdGlvbnMsIHRjcHRhYmxlX2FsbCkKKwogI2lmZGVmIGhwdXgxMQogI2RlZmluZQlUQ1BUQUJMRV9FTlRSWV9UWVBFCW1pYl90Y3BDb25uRW50IAogI2RlZmluZQlUQ1BUQUJMRV9TVEFURQkJU3RhdGUgCkBAIC0xNDIsNyArMTQ3LDcgQEAKICAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICp0YWJsZV9pbmZvOwogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mbyAgICAgICAgICAgKmlpbmZvOwogICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gICAgKnJlZ2luZm87Ci0gICAgaW50IHJjOworICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJjOwogCiAgICAgREVCVUdNU0dUTCgoIm1pYklJL3RjcFRhYmxlIiwgIkluaXRpYWxpc2luZyBUQ1AgVGFibGVcbiIpKTsKICAgICAvKgpAQCAtMTgyLDcgKzE4Nyw3IEBACiAgICAgICAgICAgICB0Y3BUYWJsZV9oYW5kbGVyLAogICAgICAgICAgICAgdGNwVGFibGVfb2lkLCBPSURfTEVOR1RIKHRjcFRhYmxlX29pZCksCiAgICAgICAgICAgICBIQU5ETEVSX0NBTl9ST05MWSksCi0gICAgcmMgPSBuZXRzbm1wX3JlZ2lzdGVyX3RhYmxlX2l0ZXJhdG9yKHJlZ2luZm8sIGlpbmZvKTsKKyAgICByYyA9IG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IyKHJlZ2luZm8sIGlpbmZvKTsKICAgICBpZiAocmMgIT0gU05NUEVSUl9TVUNDRVNTKQogICAgICAgICByZXR1cm47CiAKQEAgLTI3MywxMiArMjc4LDE0IEBACiAKICAgICBjYXNlIE1PREVfR0VUTkVYVDoKICAgICBjYXNlIE1PREVfR0VUQlVMSzoKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMToKICAgICBjYXNlIE1PREVfU0VUX1JFU0VSVkUyOgogICAgIGNhc2UgTU9ERV9TRVRfQUNUSU9OOgogICAgIGNhc2UgTU9ERV9TRVRfQ09NTUlUOgogICAgIGNhc2UgTU9ERV9TRVRfRlJFRToKICAgICBjYXNlIE1PREVfU0VUX1VORE86CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICBzbm1wX2xvZyhMT0dfV0FSTklORywgIm1pYklJL3RjcFRhYmxlOiBVbnN1cHBvcnRlZCBtb2RlICglZClcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxaW5mby0+bW9kZSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMjkxLDExICsyOTgsMTMgQEAKICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RDUF9DT1VOVF9DT05ORUNUSU9OUwogaW50CiBUQ1BfQ291bnRfQ29ubmVjdGlvbnMoIHZvaWQgKSB7CiAgICAgdGNwVGFibGVfbG9hZChOVUxMLCBOVUxMKTsKICAgICByZXR1cm4gdGNwX2VzdGFiOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVENQX0NPVU5UX0NPTk5FQ1RJT05TICovCiAKIAkvKgogCSAqIFR3byBmb3JtcyBvZiBpdGVyYXRpb24gaG9vayByb3V0aW5lczoKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL21pYklJL3VkcC5jIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKaW5kZXggYzlmOGE0Zi4uMWRkY2JjNSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKQEAgLTMyOSw2ICszMjksNyBAQAogCiAgICAgY2FzZSBNT0RFX0dFVE5FWFQ6CiAgICAgY2FzZSBNT0RFX0dFVEJVTEs6CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CiAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMjoKICAgICBjYXNlIE1PREVfU0VUX0FDVElPTjoKQEAgLTMzOCw2ICszMzksNyBAQAogICAgICAgICBzbm1wX2xvZyhMT0dfV0FSTklORywgIm1pYklJL3VkcDogVW5zdXBwb3J0ZWQgbW9kZSAoJWQpXG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcWluZm8tPm1vZGUpOwogICAgICAgICBicmVhazsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgZGVmYXVsdDoKICAgICAgICAgc25tcF9sb2coTE9HX1dBUk5JTkcsICJtaWJJSS91ZHA6IFVucmVjb2duaXNlZCBtb2RlICglZClcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxaW5mby0+bW9kZSk7CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwppbmRleCBmNDYxZjAyLi4yYzg4NzQ5IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMKQEAgLTEyOSw3ICsxMjksNyBAQAogICAgIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm87CiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvICAgICAgICAgICAqaWluZm87CiAgICAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAgICAqcmVnaW5mbzsKLSAgICBpbnQgcmM7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmM7CiAKICAgICBERUJVR01TR1RMKCgibWliSUkvdWRwVGFibGUiLCAiSW5pdGlhbGlzaW5nIFVEUCBUYWJsZVxuIikpOwogICAgIC8qCkBAIC0xNjgsNyArMTY4LDcgQEAKICAgICAgICAgICAgIHVkcFRhYmxlX2hhbmRsZXIsCiAgICAgICAgICAgICB1ZHBUYWJsZV9vaWQsIE9JRF9MRU5HVEgodWRwVGFibGVfb2lkKSwKICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JPTkxZKSwKLSAgICByYyA9IG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IocmVnaW5mbywgaWluZm8pOworICAgIHJjID0gbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9pdGVyYXRvcjIocmVnaW5mbywgaWluZm8pOwogICAgIGlmIChyYyAhPSBTTk1QRVJSX1NVQ0NFU1MpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjM5LDEyICsyMzksMTQgQEAKIAogICAgIGNhc2UgTU9ERV9HRVRORVhUOgogICAgIGNhc2UgTU9ERV9HRVRCVUxLOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBjYXNlIE1PREVfU0VUX1JFU0VSVkUxOgogICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTI6CiAgICAgY2FzZSBNT0RFX1NFVF9BQ1RJT046CiAgICAgY2FzZSBNT0RFX1NFVF9DT01NSVQ6CiAgICAgY2FzZSBNT0RFX1NFVF9GUkVFOgogICAgIGNhc2UgTU9ERV9TRVRfVU5ETzoKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgIHNubXBfbG9nKExPR19XQVJOSU5HLCAibWliSUkvdWRwVGFibGU6IFVuc3VwcG9ydGVkIG1vZGUgKCVkKVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXFpbmZvLT5tb2RlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9taWJJSS91cGRhdGVzLmMgYi9hZ2VudC9taWJncm91cC9taWJJSS91cGRhdGVzLmMKaW5kZXggODdiZWQ4OS4uOTM4ZWEyOSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvbWliSUkvdXBkYXRlcy5jCisrKyBiL2FnZW50L21pYmdyb3VwL21pYklJL3VwZGF0ZXMuYwpAQCAtOCw2ICs4LDcgQEAKICAgICAgICAgICAgICAgIG5ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvICpyZXFpbmZvLAogICAgICAgICAgICAgICAgbmV0c25tcF9yZXF1ZXN0X2luZm8gKnJlcXVlc3RzKQogeworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBpbnQgKnNldCA9IChpbnQqKWhhbmRsZXItPm15dm9pZDsKIAogICAgIGlmIChyZXFpbmZvLT5tb2RlID09IE1PREVfU0VUX1JFU0VSVkUxICYmICpzZXQgPCAwKQpAQCAtMTYsNiArMTcsNyBAQAogICAgICAgICAqc2V0ID0gMTsKICAgICAgICAgc25tcF9zdG9yZV9uZWVkZWQocmVnaW5mby0+aGFuZGxlck5hbWUpOwogICAgIH0KKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKIH0KIApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMgYi9hZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYwppbmRleCAzMzdhNWZjLi5mMmZhZjg2IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYworKysgYi9hZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYwpAQCAtMjUxLDcgKzI1MSw3IEBACiAgICAgICAgIHJldHVybiBQQVJTRV9GQUlMOwogICAgIH0KIAotICAgIGlmIChzdHJjbXAoKmNvbnRleHQsICJcIlwiIikgPT0gMCkKKyAgICBpZiAoc3RyY21wKCpjb250ZXh0LCAiXCJcIiIpID09IDAgfHwgc3RyY21wKCpjb250ZXh0LCAiXCdcJyIpID09IDApCiAgICAgICAgICoqY29udGV4dCA9IDA7CiAgICAgaWYgKHN0cmNhc2VjbXAobW9kZWwsICJhbnkiKSA9PSAwKQogICAgICAgICAqaW1vZGVsID0gU05NUF9TRUNfTU9ERUxfQU5ZOwpAQCAtMTIwMSw5ICsxMjAxLDExIEBACiAgICAgY2FzZSBTTk1QX01TR19HRVRCVUxLOgogICAgICAgICB2aWV3dHlwZSA9IFZBQ01fVklFV19SRUFEOwogICAgICAgICBicmVhazsKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgY2FzZSBTTk1QX01TR19TRVQ6CiAgICAgICAgIHZpZXd0eXBlID0gVkFDTV9WSUVXX1dSSVRFOwogICAgICAgICBicmVhazsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgY2FzZSBTTk1QX01TR19UUkFQOgogICAgIGNhc2UgU05NUF9NU0dfVFJBUDI6CiAgICAgY2FzZSBTTk1QX01TR19JTkZPUk06CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyBiL2FnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jCmluZGV4IGM0NzQxODAuLjhmNDNjZDMgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jCisrKyBiL2FnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jCkBAIC0xMDUsNyArMTA1LDcgQEAKICAgICBpaW5mby0+Z2V0X2ZpcnN0X2RhdGFfcG9pbnQgPSBnZXRfZmlyc3RfY29udGV4dDsKICAgICBpaW5mby0+Z2V0X25leHRfZGF0YV9wb2ludCA9IGdldF9uZXh0X2NvbnRleHQ7CiAgICAgaWluZm8tPnRhYmxlX3JlZ2luZm8gPSB0YWJsZV9pbmZvOwotICAgIG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IobXlfaGFuZGxlciwgaWluZm8pOworICAgIG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IyKG15X2hhbmRsZXIsIGlpbmZvKTsKIH0KIAogLyoKQEAgLTE0OSw3ICsxNDksNiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmxlbihjb250ZXh0X3B0ci0+Y29udGV4dF9uYW1lKSk7CiAKICAgICAgICAgICAgIGJyZWFrOwotCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICogV2Ugc2hvdWxkIG5ldmVyIGdldCBoZXJlLCBnZXRuZXh0IGFscmVhZHkgaGF2ZSBiZWVuCkBAIC0xNTksOCArMTU4LDYgQEAKICAgICAgICAgICAgICAgICAgICAgICJ2YWNtX2NvbnRleHQgdGFibGUgYWNjZXNzZWQgYXMgbW9kZT0lZC4gIFdlJ3JlIGltcHJvcGVybHkgcmVnaXN0ZXJlZCEiLAogICAgICAgICAgICAgICAgICAgICAgcmVxaW5mby0+bW9kZSk7CiAgICAgICAgICAgICBicmVhazsKLQotCiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKaW5kZXggM2FkNTFkNC4uODVjZWY5NCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKQEAgLTE1Niw2ICsxNTYsNyBAQAogICAgICAqLwogCiAgICAgc3dpdGNoICh2cC0+bWFnaWMpIHsKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUIAogICAgIGNhc2UgU0VDVVJJVFlHUk9VUDoKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX3ZhY21Hcm91cE5hbWU7CiAgICAgICAgIGJyZWFrOwpAQCAtMTY1LDEwICsxNjYsMTMgQEAKICAgICBjYXNlIFNFQ1VSSVRZU1RBVFVTOgogICAgICAgICAqd3JpdGVfbWV0aG9kID0gd3JpdGVfdmFjbVNlY3VyaXR5VG9Hcm91cFN0YXR1czsKICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLyAKICAgICBkZWZhdWx0OgogICAgICAgICAqd3JpdGVfbWV0aG9kID0gTlVMTDsKICAgICB9CiAKKwkqdmFyX2xlbiA9IDA7IC8qIGFzc3VtZSAwIGxlbmd0aCB1bnRpbCBmb3VuZCAqLworCiAgICAgaWYgKG1lbWNtcChuYW1lLCB2cC0+bmFtZSwgc2l6ZW9mKG9pZCkgKiB2cC0+bmFtZWxlbikgIT0gMCkgewogICAgICAgICBtZW1jcHkobmFtZSwgdnAtPm5hbWUsIHNpemVvZihvaWQpICogdnAtPm5hbWVsZW4pOwogICAgICAgICAqbGVuZ3RoID0gdnAtPm5hbWVsZW47CkBAIC0yNTIsNiArMjU2LDcgQEAKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CisKICAgICByZXR1cm4gTlVMTDsKIH0KIApAQCAtMjc4LDYgKzI4Myw3IEBACiAgICAgICovCiAKICAgICBzd2l0Y2ggKHZwLT5tYWdpYykgeworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgCiAgICAgY2FzZSBBQ0NFU1NNQVRDSDoKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX3ZhY21BY2Nlc3NDb250ZXh0TWF0Y2g7CiAgICAgICAgIGJyZWFrOwpAQCAtMjk2LDEwICszMDIsMTMgQEAKICAgICBjYXNlIEFDQ0VTU1NUQVRVUzoKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX3ZhY21BY2Nlc3NTdGF0dXM7CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8gCiAgICAgZGVmYXVsdDoKICAgICAgICAgKndyaXRlX21ldGhvZCA9IE5VTEw7CiAgICAgfQogCisJKnZhcl9sZW4gPSAwOyAvKiBhc3N1bWUgMCBsZW5ndGggdW50aWwgZm91bmQgKi8KKwogICAgIGlmIChtZW1jbXAobmFtZSwgdnAtPm5hbWUsIHNpemVvZihvaWQpICogdnAtPm5hbWVsZW4pICE9IDApIHsKICAgICAgICAgbWVtY3B5KG5hbWUsIHZwLT5uYW1lLCBzaXplb2Yob2lkKSAqIHZwLT5uYW1lbGVuKTsKICAgICAgICAgKmxlbmd0aCA9IHZwLT5uYW1lbGVuOwpAQCAtNDY5LDYgKzQ3OCw3IEBACiAgICAgICAgIGxvbmdfcmV0dXJuID0gZ3AtPnN0YXR1czsKICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgJiBsb25nX3JldHVybjsKICAgICB9CisKICAgICByZXR1cm4gTlVMTDsKIH0KIApAQCAtNDk1LDYgKzUwNSw3IEBACiAgICAgICovCiAKICAgICBzd2l0Y2ggKHZwLT5tYWdpYykgeworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgCiAgICAgY2FzZSBWSUVXTUFTSzoKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX3ZhY21WaWV3TWFzazsKICAgICAgICAgYnJlYWs7CkBAIC01MDcsMTEgKzUxOCwxMyBAQAogICAgIGNhc2UgVklFV1NUQVRVUzoKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX3ZhY21WaWV3U3RhdHVzOwogICAgICAgICBicmVhazsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovIAogICAgIGRlZmF1bHQ6CiAgICAgICAgICp3cml0ZV9tZXRob2QgPSBOVUxMOwogICAgIH0KIAogICAgICp2YXJfbGVuID0gc2l6ZW9mKGxvbmdfcmV0dXJuKTsKKwogICAgIGlmICh2cC0+bWFnaWMgIT0gVkFDTVZJRVdTUElOTE9DSykgewogICAgICAgICBpZiAobWVtY21wKG5hbWUsIHZwLT5uYW1lLCBzaXplb2Yob2lkKSAqIHZwLT5uYW1lbGVuKSAhPSAwKSB7CiAgICAgICAgICAgICBtZW1jcHkobmFtZSwgdnAtPm5hbWUsIHNpemVvZihvaWQpICogdnAtPm5hbWVsZW4pOwpAQCAtNjIzLDcgKzYzNiw5IEBACiAKICAgICBzd2l0Y2ggKHZwLT5tYWdpYykgewogICAgIGNhc2UgVkFDTVZJRVdTUElOTE9DSzoKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgICp3cml0ZV9tZXRob2QgPSB3cml0ZV92YWNtVmlld1NwaW5Mb2NrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgbG9uZ19yZXR1cm4gPSB2YWNtVmlld1NwaW5Mb2NrOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSAmIGxvbmdfcmV0dXJuOwogCkBAIC02NTEsMzQgKzY2NiwxMSBAQAogICAgICAgICBsb25nX3JldHVybiA9IGdwLT52aWV3U3RhdHVzOwogICAgICAgICByZXR1cm4gKHVfY2hhciAqKSAmIGxvbmdfcmV0dXJuOwogICAgIH0KKwogICAgIHJldHVybiBOVUxMOwogfQogCi1vaWQgICAgICAgICAgICAqCi1zZWMyZ3JvdXBfZ2VuZXJhdGVfT0lEKG9pZCAqIHByZWZpeCwgc2l6ZV90IHByZWZpeExlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZhY21fZ3JvdXBFbnRyeSAqIGdlcHRyLCBzaXplX3QgKiBsZW5ndGgpCi17Ci0gICAgb2lkICAgICAgICAgICAgKmluZGV4T2lkOwotICAgIGludCAgICAgICAgICAgICBpLCBzZWN1cml0eU5hbWVMZW47Ci0KLSAgICBzZWN1cml0eU5hbWVMZW4gPSBzdHJsZW4oZ2VwdHItPnNlY3VyaXR5TmFtZSk7Ci0KLSAgICAqbGVuZ3RoID0gMiArIHNlY3VyaXR5TmFtZUxlbiArIHByZWZpeExlbjsKLSAgICBpbmRleE9pZCA9IChvaWQgKikgbWFsbG9jKCpsZW5ndGggKiBzaXplb2Yob2lkKSk7Ci0gICAgaWYgKGluZGV4T2lkKSB7Ci0gICAgICAgIG1lbW1vdmUoaW5kZXhPaWQsIHByZWZpeCwgcHJlZml4TGVuICogc2l6ZW9mKG9pZCkpOwotCi0gICAgICAgIGluZGV4T2lkW3ByZWZpeExlbl0gPSBnZXB0ci0+c2VjdXJpdHlNb2RlbDsKLQotICAgICAgICBpbmRleE9pZFtwcmVmaXhMZW4gKyAxXSA9IHNlY3VyaXR5TmFtZUxlbjsKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IHNlY3VyaXR5TmFtZUxlbjsgaSsrKQotICAgICAgICAgICAgaW5kZXhPaWRbcHJlZml4TGVuICsgMiArIGldID0gKG9pZCkgZ2VwdHItPnNlY3VyaXR5TmFtZVtpXTsKLQotICAgIH0KLSAgICByZXR1cm4gaW5kZXhPaWQ7Ci0KLX0KLQorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgCiBpbnQKIHNlYzJncm91cF9wYXJzZV9vaWQob2lkICogb2lkSW5kZXgsIHNpemVfdCBvaWRMZW4sCiAgICAgICAgICAgICAgICAgICAgIGludCAqbW9kZWwsIHVuc2lnbmVkIGNoYXIgKipuYW1lLCBzaXplX3QgKiBuYW1lTGVuKQpAQCAtOTgxLDQwICs5NzMsNiBAQAogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQogCi1vaWQgICAgICAgICAgICAqCi1hY2Nlc3NfZ2VuZXJhdGVfT0lEKG9pZCAqIHByZWZpeCwgc2l6ZV90IHByZWZpeExlbiwKLSAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZhY21fYWNjZXNzRW50cnkgKiBhcHRyLCBzaXplX3QgKiBsZW5ndGgpCi17Ci0gICAgb2lkICAgICAgICAgICAgKmluZGV4T2lkOwotICAgIGludCAgICAgICAgICAgICBpLCBncm91cE5hbWVMZW4sIGNvbnRleHRQcmVmaXhMZW47Ci0KLSAgICBncm91cE5hbWVMZW4gPSBzdHJsZW4oYXB0ci0+Z3JvdXBOYW1lKTsKLSAgICBjb250ZXh0UHJlZml4TGVuID0gc3RybGVuKGFwdHItPmNvbnRleHRQcmVmaXgpOwotCi0gICAgKmxlbmd0aCA9IDQgKyBncm91cE5hbWVMZW4gKyBjb250ZXh0UHJlZml4TGVuICsgcHJlZml4TGVuOwotICAgIGluZGV4T2lkID0gKG9pZCAqKSBtYWxsb2MoKmxlbmd0aCAqIHNpemVvZihvaWQpKTsKLSAgICBpZiAoaW5kZXhPaWQpIHsKLSAgICAgICAgbWVtbW92ZShpbmRleE9pZCwgcHJlZml4LCBwcmVmaXhMZW4gKiBzaXplb2Yob2lkKSk7Ci0KLSAgICAgICAgaW5kZXhPaWRbcHJlZml4TGVuXSA9IGdyb3VwTmFtZUxlbjsKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IGdyb3VwTmFtZUxlbjsgaSsrKQotICAgICAgICAgICAgaW5kZXhPaWRbZ3JvdXBOYW1lTGVuICsgMSArIGldID0gKG9pZCkgYXB0ci0+Z3JvdXBOYW1lW2ldOwotCi0gICAgICAgIGluZGV4T2lkW3ByZWZpeExlbiArIGdyb3VwTmFtZUxlbiArIDFdID0gY29udGV4dFByZWZpeExlbjsKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IGNvbnRleHRQcmVmaXhMZW47IGkrKykKLSAgICAgICAgICAgIGluZGV4T2lkW3ByZWZpeExlbiArIGdyb3VwTmFtZUxlbiArIDIgKyBpXSA9Ci0gICAgICAgICAgICAgICAgKG9pZCkgYXB0ci0+Y29udGV4dFByZWZpeFtpXTsKLQotICAgICAgICBpbmRleE9pZFtwcmVmaXhMZW4gKyBncm91cE5hbWVMZW4gKyBjb250ZXh0UHJlZml4TGVuICsgM10gPQotICAgICAgICAgICAgYXB0ci0+c2VjdXJpdHlNb2RlbDsKLSAgICAgICAgaW5kZXhPaWRbcHJlZml4TGVuICsgZ3JvdXBOYW1lTGVuICsgY29udGV4dFByZWZpeExlbiArIDRdID0KLSAgICAgICAgICAgIGFwdHItPnNlY3VyaXR5TGV2ZWw7Ci0KLSAgICB9Ci0gICAgcmV0dXJuIGluZGV4T2lkOwotCi19Ci0KIGludAogYWNjZXNzX3BhcnNlX29pZChvaWQgKiBvaWRJbmRleCwgc2l6ZV90IG9pZExlbiwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqKmdyb3VwTmFtZSwgc2l6ZV90ICogZ3JvdXBOYW1lTGVuLApAQCAtMTU1MCwzNSArMTUwOCw2IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKLW9pZCAgICAgICAgICAgICoKLXZpZXdfZ2VuZXJhdGVfT0lEKG9pZCAqIHByZWZpeCwgc2l6ZV90IHByZWZpeExlbiwKLSAgICAgICAgICAgICAgICAgIHN0cnVjdCB2YWNtX3ZpZXdFbnRyeSAqIHZwdHIsIHNpemVfdCAqIGxlbmd0aCkKLXsKLSAgICBvaWQgICAgICAgICAgICAqaW5kZXhPaWQ7Ci0gICAgaW50ICAgICAgICAgICAgIGksIHZpZXdOYW1lTGVuLCB2aWV3U3VidHJlZUxlbjsKLQotICAgIHZpZXdOYW1lTGVuID0gc3RybGVuKHZwdHItPnZpZXdOYW1lKTsKLSAgICB2aWV3U3VidHJlZUxlbiA9IHZwdHItPnZpZXdTdWJ0cmVlTGVuOwotCi0gICAgKmxlbmd0aCA9IDIgKyB2aWV3TmFtZUxlbiArIHZpZXdTdWJ0cmVlTGVuICsgcHJlZml4TGVuOwotICAgIGluZGV4T2lkID0gKG9pZCAqKSBtYWxsb2MoKmxlbmd0aCAqIHNpemVvZihvaWQpKTsKLSAgICBpZiAoaW5kZXhPaWQpIHsKLSAgICAgICAgbWVtbW92ZShpbmRleE9pZCwgcHJlZml4LCBwcmVmaXhMZW4gKiBzaXplb2Yob2lkKSk7Ci0KLSAgICAgICAgaW5kZXhPaWRbcHJlZml4TGVuXSA9IHZpZXdOYW1lTGVuOwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdmlld05hbWVMZW47IGkrKykKLSAgICAgICAgICAgIGluZGV4T2lkW3ZpZXdOYW1lTGVuICsgMSArIGldID0gKG9pZCkgdnB0ci0+dmlld05hbWVbaV07Ci0KLSAgICAgICAgaW5kZXhPaWRbcHJlZml4TGVuICsgdmlld05hbWVMZW4gKyAxXSA9IHZpZXdTdWJ0cmVlTGVuOwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdmlld1N1YnRyZWVMZW47IGkrKykKLSAgICAgICAgICAgIGluZGV4T2lkW3ByZWZpeExlbiArIHZpZXdOYW1lTGVuICsgMiArIGldID0KLSAgICAgICAgICAgICAgICAob2lkKSB2cHRyLT52aWV3U3VidHJlZVtpXTsKLQotICAgIH0KLSAgICByZXR1cm4gaW5kZXhPaWQ7Ci0KLX0KLQogc3RydWN0IHZhY21fdmlld0VudHJ5ICoKIHZpZXdfcGFyc2Vfdmlld0VudHJ5KG9pZCAqIG5hbWUsIHNpemVfdCBuYW1lX2xlbikKIHsKQEAgLTE5MTEsMyArMTg0MCw0IEBACiAgICAgfQogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQorI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8gCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCBiL2FnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oCmluZGV4IDg4OGMxYjguLjQ3MWY3NTkgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oCisrKyBiL2FnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oCkBAIC0xOSw2ICsxOSw3IEBACiAgICAgIGV4dGVybiBGaW5kVmFyTWV0aG9kIHZhcl92YWNtX2FjY2VzczsKICAgICAgZXh0ZXJuIEZpbmRWYXJNZXRob2QgdmFyX3ZhY21fdmlldzsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgCiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV92YWNtR3JvdXBOYW1lOwogICAgICBXcml0ZU1ldGhvZCAgICAgd3JpdGVfdmFjbVNlY3VyaXR5VG9Hcm91cFN0YXR1czsKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX3ZhY21TZWN1cml0eVRvR3JvdXBTdG9yYWdlVHlwZTsKQEAgLTM2LDcgKzM3LDYgQEAKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX3ZhY21WaWV3U3RvcmFnZVR5cGU7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV92YWNtVmlld1R5cGU7CiAKLQogICAgICBvaWQgICAgICAgICAgICAqYWNjZXNzX2dlbmVyYXRlX09JRChvaWQgKiBwcmVmaXgsIHNpemVfdCBwcmVmaXhMZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2YWNtX2FjY2Vzc0VudHJ5ICphcHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKiBsZW5ndGgpOwpAQCAtNjcsNyArNjcsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICogc3VidHJlZUxlbik7CiAgICAgIHN0cnVjdCB2YWNtX3ZpZXdFbnRyeSAqdmlld19wYXJzZV92aWV3RW50cnkob2lkICogbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbmFtZV9sZW4pOwotCisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLyAKIAogCiAjZGVmaW5lIE9JRF9TTk1QVkFDTU1JQgkJU05NUF9PSURfU05NUE1PRFVMRVMsIDE2CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyBiL2FnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jCmluZGV4IGU2Mjg2ZGMuLjcyYTUwM2YgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jCkBAIC00Niw2ICs0Niw3IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpbmNsdWRlICJyb3V0ZV9oZWFkZXJzLmgiCiAjZGVmaW5lIENBQ0hFX1RJTUUgKDEyMCkgICAgICAgIC8qIFNlY29uZHMgKi8KQEAgLTYxLDYgKzYyLDkgQEAKICNpbmNsdWRlICJrZXJuZWwuaCIKICNpbmNsdWRlICJpbnRlcmZhY2VzLmgiCiAjaW5jbHVkZSAic3RydWN0LmgiCisjaW5jbHVkZSAidXRpbF9mdW5jcy5oIgorCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoZ2V0X3JvdXRlcywgbGlibmV0c25tcG1pYnMpCiAKICNpZm5kZWYgIE1JTgogI2RlZmluZSAgTUlOKGEsYikgICAgICAgICAgICAgICAgICAgICAoKChhKSA8IChiKSkgPyAoYSkgOiAoYikpCkBAIC0zMTcsMTIgKzMyMSwxNCBAQAogCiBzdGF0aWMgdm9pZCAgICAgUm91dGVfU2Nhbl9SZWxvYWQodm9pZCk7CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9HRVRfUk9VVEVTCiBSVEVOVFJZICoqbmV0c25tcF9nZXRfcm91dGVzKHNpemVfdCAqc2l6ZSkgewogICAgIFJvdXRlX1NjYW5fUmVsb2FkKCk7CiAgICAgaWYgKHNpemUpCiAgICAgICAgICpzaXplID0gcnRzaXplOwogICAgIHJldHVybiBydGhlYWQ7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9HRVRfUk9VVEVTICovCiAjZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGhwdXgxMSAqLwogCiAjaWYgIShkZWZpbmVkKGxpbnV4KSB8fCBkZWZpbmVkKHNvbGFyaXMyKSB8fCBkZWZpbmVkKGhwdXgxMSkpICYmIGRlZmluZWQoUlRIT1NUX1NZTUJPTCkgJiYgZGVmaW5lZChSVE5FVF9TWU1CT0wpCkBAIC05MjMsNiArOTI5LDEwIEBACiAjZW5kaWYKICAgICAgICAgICAgIG5hbWVbc2l6ZW9mKG5hbWUpIC0gMV0gPSAnXDAnOwogI2Vsc2UKKyNpZmRlZiBORVRTTk1QX0ZFQVRVUkVfQ0hFQ0tJTgorICAgICAgICAgICAgLyogdGhpcyBleGlzdHMgaGVyZSBqdXN0IHNvIHdlIGRvbid0IGNvcHkgaWZkZWYgbG9naWMgZWxzZXdoZXJlICovCisgICAgICAgICAgICBuZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShzdHJpbmdfYXBwZW5kX2ludCk7CisjZW5kaWYKICAgICAgICAgICAgIGlmICghTkVUU05NUF9LTE9PS1VQKGlmbmV0LmlmX25hbWUsIG5hbWUsIHNpemVvZiBuYW1lKSkgewogICAgICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJtaWJJSS92YXJfcm91dGUiLCAia2xvb2t1cCBmYWlsZWRcbiIpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC05MzEsNiArOTQxLDkgQEAKICAgICAgICAgICAgIGNwID0gKGNoYXIgKikgc3RyY2hyKG5hbWUsICdcMCcpOwogICAgICAgICAgICAgc3RyaW5nX2FwcGVuZF9pbnQoY3AsIGlmbmV0LmlmX3VuaXQpOwogI2VuZGlmCisjaWZkZWYgTkVUU05NUF9GRUFUVVJFX0NIRUNLSU4KKyAgICAgICAgICAgIG5ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGludGVyZmFjZV9sZWdhY3kpCisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX0NIRUNLSU4gKi8KICAgICAgICAgICAgIEludGVyZmFjZV9TY2FuX0luaXQoKTsKICAgICAgICAgICAgIHJ0LnJ0X3VuaXQgPSAwOwogICAgICAgICAgICAgd2hpbGUgKEludGVyZmFjZV9TY2FuX05leHQKQEAgLTEwMzUsMTAgKzEwNDgsMTAgQEAKICAgICBjaGFyICAgICAgICAgICAgbmFtZVsxNl0sIHRlbXBbMTZdOwogICAgIGludCAgICAgICAgICAgICBoYXNoc2l6ZTsKICNlbmRpZgotICAgIHN0YXRpYyBpbnQgICAgICBUaW1lX09mX0xhc3RfUmVsb2FkID0gMDsKKyAgICBzdGF0aWMgdGltZV90ICAgVGltZV9PZl9MYXN0X1JlbG9hZDsKICAgICBzdHJ1Y3QgdGltZXZhbCAgbm93OwogCi0gICAgZ2V0dGltZW9mZGF5KCZub3csIChzdHJ1Y3QgdGltZXpvbmUgKikgMCk7CisgICAgbmV0c25tcF9nZXRfbW9ub3RvbmljX2Nsb2NrKCZub3cpOwogICAgIGlmIChUaW1lX09mX0xhc3RfUmVsb2FkICsgQ0FDSEVfVElNRSA+IG5vdy50dl9zZWMpCiAgICAgICAgIHJldHVybjsKICAgICBUaW1lX09mX0xhc3RfUmVsb2FkID0gbm93LnR2X3NlYzsKQEAgLTEwODAsNiArMTA5MywxMSBAQAogICAgIH0KIAogI2Vsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBydGVudHJ5IGlzIGEgQlNEIDQuMyBjb21wYXQgKi8KKyNpZmRlZiBORVRTTk1QX0ZFQVRVUkVfQ0hFQ0tJTgorICAgIC8qIHRoaXMgZXhpc3RzIGhlcmUganVzdCBzbyB3ZSBkb24ndCBjb3B5IGlmZGVmIGxvZ2ljIGVsc2V3aGVyZSAqLworICAgIG5ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHN0cmluZ19hcHBlbmRfaW50KTsKKyAgICBuZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShpbnRlcmZhY2VfbGVnYWN5KQorI2VuZGlmCiAgICAgZm9yICh0YWJsZSA9IDA7IHRhYmxlIDwgTlVNX1JPVVRFX1NZTUJPTFM7IHRhYmxlKyspIHsKICAgICAgICAgYXV0b19ubGlzdChSVEhBU0hTSVpFX1NZTUJPTCwgKGNoYXIgKikgJmhhc2hzaXplLAogICAgICAgICAgICAgICAgICAgIHNpemVvZihoYXNoc2l6ZSkpOwpAQCAtMTE2NCw2ICsxMTgyLDggQEAKICNlbHNlCiAKICNpZiBIQVZFX1NZU19NQlVGX0gKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHN0cmluZ19hcHBlbmRfaW50KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaW50ZXJmYWNlX2xlZ2FjeSkKIHN0YXRpYyB2b2lkCiBSb3V0ZV9TY2FuX1JlbG9hZCh2b2lkKQogewpAQCAtMTE3NCwxMSArMTE5NCwxMSBAQAogICAgIGludCAgICAgICAgICAgICBpLCB0YWJsZTsKICAgICByZWdpc3RlciBjaGFyICAqY3A7CiAgICAgY2hhciAgICAgICAgICAgIG5hbWVbMTZdLCB0ZW1wWzE2XTsKLSAgICBzdGF0aWMgaW50ICAgICAgVGltZV9PZl9MYXN0X1JlbG9hZCA9IDA7CisgICAgc3RhdGljIHRpbWVfdCAgIFRpbWVfT2ZfTGFzdF9SZWxvYWQ7CiAgICAgc3RydWN0IHRpbWV2YWwgIG5vdzsKICAgICBpbnQgICAgICAgICAgICAgaGFzaHNpemU7CiAKLSAgICBnZXR0aW1lb2ZkYXkoJm5vdywgKHN0cnVjdCB0aW1lem9uZSAqKSAwKTsKKyAgICBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soJm5vdyk7CiAgICAgaWYgKFRpbWVfT2ZfTGFzdF9SZWxvYWQgKyBDQUNIRV9USU1FID4gbm93LnR2X3NlYykKICAgICAgICAgcmV0dXJuOwogICAgIFRpbWVfT2ZfTGFzdF9SZWxvYWQgPSBub3cudHZfc2VjOwpAQCAtMTI5MCwxMCArMTMxMCwxMCBAQAogICAgIGNoYXIgICAgICAgICAgICBsaW5lWzI1Nl07CiAgICAgc3RydWN0IHJ0ZW50cnkgKnJ0OwogICAgIGNoYXIgICAgICAgICAgICBuYW1lWzE2XTsKLSAgICBzdGF0aWMgaW50ICAgICAgVGltZV9PZl9MYXN0X1JlbG9hZCA9IDA7CisgICAgc3RhdGljIHRpbWVfdCAgIFRpbWVfT2ZfTGFzdF9SZWxvYWQ7CiAgICAgc3RydWN0IHRpbWV2YWwgIG5vdzsKIAotICAgIGdldHRpbWVvZmRheSgmbm93LCAoc3RydWN0IHRpbWV6b25lICopIDApOworICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmbm93KTsKICAgICBpZiAoVGltZV9PZl9MYXN0X1JlbG9hZCArIENBQ0hFX1RJTUUgPiBub3cudHZfc2VjKQogICAgICAgICByZXR1cm47CiAgICAgVGltZV9PZl9MYXN0X1JlbG9hZCA9IG5vdy50dl9zZWM7CkBAIC0xNDc3LDcgKzE0OTcsNyBAQAogICAgIERXT1JEICAgICAgICAgICBkd0FjdHVhbFNpemUgPSAwOwogICAgIHN0YXRpYyBQTUlCX0lQRk9SV0FSRFRBQkxFIHBJcFJ0clRhYmxlID0gTlVMTDsKICAgICBzdHJ1Y3QgdGltZXZhbCAgbm93OwotICAgIHN0YXRpYyBsb25nICAgICBUaW1lX09mX0xhc3RfUmVsb2FkID0gMDsKKyAgICBzdGF0aWMgdGltZV90ICAgIFRpbWVfT2ZfTGFzdF9SZWxvYWQ7CiAgICAgc3RhdGljIGluX2FkZHJfdCBhZGRyX3JldDsKIAogCkBAIC0xNDk0LDcgKzE1MTQsNyBAQAogICAgICAgICAgKi8KICAgICAgICAgcm91dGVfcm93ID0gKFBNSUJfSVBGT1JXQVJEUk9XKSBtYWxsb2Moc2l6ZW9mKE1JQl9JUEZPUldBUkRST1cpKTsKICAgICB9Ci0gICAgZ2V0dGltZW9mZGF5KCZub3csIChzdHJ1Y3QgdGltZXpvbmUgKikgMCk7CisgICAgbmV0c25tcF9nZXRfbW9ub3RvbmljX2Nsb2NrKCZub3cpOwogICAgIGlmICgocnRzaXplIDw9IDEpIHx8IChUaW1lX09mX0xhc3RfUmVsb2FkICsgNSA8PSBub3cudHZfc2VjKSkKICAgICAgICAgU2F2ZV9WYWxpZCA9IDA7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jIGIvYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jCmluZGV4IGJkNmE4MjEuLmExMmEzMzggMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYworKysgYi9hZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMKQEAgLTEsNCArMSw1IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2lmIEhBVkVfTkVUSU5FVF9JTl9ICkBAIC0xOSw2ICsyMCwxMiBAQAogI2luY2x1ZGUgIm5ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaCIKICNpbmNsdWRlICJub3RpZmljYXRpb25fbG9nLmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHJlZ2lzdGVyX3Vsb25nX2luc3RhbmNlX2NvbnRleHQpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShyZWdpc3Rlcl9yZWFkX29ubHlfY291bnRlcjMyX2luc3RhbmNlX2NvbnRleHQpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShkZWxldGVfdGFibGVfZGF0YV9zZXQpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV9kYXRhc2V0KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoZGF0ZV9uX3RpbWUpCisKIC8qCiAgKiBjb2x1bW4gbnVtYmVyIGRlZmluaXRpb25zIGZvciB0YWJsZSBubG1Mb2dUYWJsZQogICovCkBAIC00NjcsOCArNDc0LDEwIEBACiAgICAgICogY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZ2V0IHNldCB0byBhIHZhbHVlIGFuZCB0aHVzCiAgICAgICogbm90aWZpY2F0aW9ucyBtdXN0IGJlIHBvc3NpYmx5IGRlbGV0ZWQgZnJvbSBvdXIgYXJjaGl2ZXMuCiAgICAgICovCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGlmIChyZXFpbmZvLT5tb2RlID09IE1PREVfU0VUX0NPTU1JVCkKICAgICAgICAgY2hlY2tfbG9nX3NpemUoMCwgTlVMTCk7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQogCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jIGIvYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYwppbmRleCBjM2ZjMzYzLi5lOWIxMWQzIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMKQEAgLTIzLDEyICsyMywxNiBAQAogLyoKICAqIG1pbmltYWwgaW5jbHVkZSBkaXJlY3RpdmVzIAogICovCisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAKICNpbmNsdWRlICJoZWFkZXJfY29tcGxleC5oIgogI2luY2x1ZGUgInNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaCIKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGhlYWRlcl9jb21wbGV4X2ZpbmRfZW50cnkpCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKIC8qCiAgKiBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlX3ZhcmlhYmxlc19vaWQ6CkBAIC0xMzEsNyArMTM1LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICp0aGVkYXRhKQogewogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFycyA9IE5VTEw7Ci0KKyAgICBpbnQgcmV0VmFsOwogCiAgICAgREVCVUdNU0dUTCgoInNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUiLCAiYWRkaW5nIGRhdGEuLi4gICIpKTsKICAgICAvKgpAQCAtMTQzLDEzICsxNDcsMTcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1X2NoYXIgKikgdGhlZGF0YS0+c25tcFRhcmdldFBhcmFtc05hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVkYXRhLT5zbm1wVGFyZ2V0UGFyYW1zTmFtZUxlbik7CiAKLSAgICBoZWFkZXJfY29tcGxleF9hZGRfZGF0YSgmc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZVN0b3JhZ2UsIHZhcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlZGF0YSk7Ci0gICAgREVCVUdNU0dUTCgoInNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUiLCAicmVnaXN0ZXJlZCBhbiBlbnRyeVxuIikpOworICAgIGlmIChoZWFkZXJfY29tcGxleF9tYXliZV9hZGRfZGF0YSgmc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZVN0b3JhZ2UsIHZhcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZWRhdGEsIDEpICE9IE5VTEwpeworICAgICAgIERFQlVHTVNHVEwoKCJzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlIiwgInJlZ2lzdGVyZWQgYW4gZW50cnlcbiIpKTsKKyAgICAgICByZXRWYWwgPSBTTk1QRVJSX1NVQ0NFU1M7CisgICAgfWVsc2V7CisgICAgICAgcmV0VmFsID0gU05NUEVSUl9HRU5FUlI7ICAJCisgICAgfQogCiAKICAgICBERUJVR01TR1RMKCgic25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZSIsICJkb25lLlxuIikpOwotICAgIHJldHVybiBTTk1QRVJSX1NVQ0NFU1M7CisgICAgcmV0dXJuIHJldFZhbDsKIH0KIAogCkBAIC0yMDAsNyArMjA4LDExIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmU3RvcmFnZVRtcC0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVJvd1N0YXR1cywgJnRtcGludCk7CiAKLSAgICBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlX2FkZChTdG9yYWdlVG1wKTsKKyAgICBpZiAoc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZV9hZGQoU3RvcmFnZVRtcCkgIT0gU05NUEVSUl9TVUNDRVNTKXsKKyAgICAgICAgU05NUF9GUkVFKFN0b3JhZ2VUbXAtPnNubXBUYXJnZXRQYXJhbXNOYW1lKTsKKyAgICAgICAgU05NUF9GUkVFKFN0b3JhZ2VUbXAtPnNubXBOb3RpZnlGaWx0ZXJQcm9maWxlTmFtZSk7CisgICAgICAgIFNOTVBfRlJFRShTdG9yYWdlVG1wKTsKKyAgICB9CiAKICAgICBERUJVR01TR1RMKCgic25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZSIsICJkb25lLlxuIikpOwogfQpAQCAtMjE4LDcgKzIzMCw2IEBACiB7CiAgICAgY2hhciAgICAgICAgICAgIGxpbmVbU05NUF9NQVhCVUZdOwogICAgIGNoYXIgICAgICAgICAgICpjcHRyOwotICAgIHNpemVfdCAgICAgICAgICB0bXBpbnQ7CiAgICAgc3RydWN0IHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGVfZGF0YSAqU3RvcmFnZVRtcDsKICAgICBzdHJ1Y3QgaGVhZGVyX2NvbXBsZXhfaW5kZXggKmhjaW5kZXg7CiAKQEAgLTI1MiwxMiArMjYzLDEyIEBACiAgICAgICAgICAgICAgICAgcmVhZF9jb25maWdfc3RvcmVfZGF0YShBU05fSU5URUdFUiwgY3B0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZTdG9yYWdlVG1wLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlU3RvclR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdG1waW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogICAgICAgICAgICAgY3B0ciA9CiAgICAgICAgICAgICAgICAgcmVhZF9jb25maWdfc3RvcmVfZGF0YShBU05fSU5URUdFUiwgY3B0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZTdG9yYWdlVG1wLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlUm93U3RhdHVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRtcGludCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKIAogICAgICAgICAgICAgc25tcGRfc3RvcmVfY29uZmlnKGxpbmUpOwogICAgICAgICB9CkBAIC0zMDEsNiArMzEyLDcgQEAKICAgICB9CiAKICAgICBzd2l0Y2ggKHZwLT5tYWdpYykgeworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBjYXNlIFNOTVBOT1RJRllGSUxURVJQUk9GSUxFTkFNRToKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlTmFtZTsKICAgICAgICAgYnJlYWs7CkBAIC0zMTIsNyArMzI0LDcgQEAKICAgICBjYXNlIFNOTVBOT1RJRllGSUxURVJQUk9GSUxFUk9XU1RBVFVTOgogICAgICAgICAqd3JpdGVfbWV0aG9kID0gd3JpdGVfc25tcE5vdGlmeUZpbHRlclByb2ZpbGVSb3dTdGF0dXM7CiAgICAgICAgIGJyZWFrOwotCisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgIGRlZmF1bHQ6CiAgICAgICAgICp3cml0ZV9tZXRob2QgPSBOVUxMOwogICAgIH0KQEAgLTM0Miw2ICszNTQsNyBAQAogICAgIGRlZmF1bHQ6CiAgICAgICAgIEVSUk9SX01TRygiIik7CiAgICAgfQorCiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKQEAgLTM0OSw2ICszNjIsOCBAQAogCiBzdGF0aWMgc3RydWN0IHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGVfZGF0YSAqU3RvcmFnZU5ldzsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgCisKIGludAogd3JpdGVfc25tcE5vdGlmeUZpbHRlclByb2ZpbGVOYW1lKGludCBhY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9jaGFyICogdmFyX3ZhbCwKQEAgLTc5Miw2ICs4MDcsOCBAQAogfQogCiAKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovIAorCiAKIGNoYXIgICAgICAgICAgICoKIGdldF9GaWx0ZXJQcm9maWxlTmFtZShjb25zdCBjaGFyICpwYXJhbU5hbWUsIHNpemVfdCBwYXJhbU5hbWVfbGVuLApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaCBiL2FnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmgKaW5kZXggOTczNGNiZS4uNjE2YmNkYyAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaAorKysgYi9hZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oCkBAIC01NSw5ICs1NSwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICopOwogICAgICBTTk1QQ2FsbGJhY2sgICAgc3RvcmVfc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZTsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgCiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZU5hbWU7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVN0b3JUeXBlOwogICAgICBXcml0ZU1ldGhvZCAgICAgd3JpdGVfc25tcE5vdGlmeUZpbHRlclByb2ZpbGVSb3dTdGF0dXM7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAgICAgIGNoYXIgICAgICAgICAgICpnZXRfRmlsdGVyUHJvZmlsZU5hbWUoY29uc3QgY2hhciAqcGFyYW1OYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwYXJhbU5hbWVfbGVuLApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jIGIvYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jCmluZGV4IGY2MjdlZDYuLjkxYWRiMmYgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMKQEAgLTgsNiArOCw3IEBACiAgKiBUaGlzIHNob3VsZCBhbHdheXMgYmUgaW5jbHVkZWQgZmlyc3QgYmVmb3JlIGFueXRoaW5nIGVsc2UgCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaWYgSEFWRV9TVERMSUJfSApAQCAtNDEsNiArNDIsMTAgQEAKICMgICBpbmNsdWRlICJub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmgiCiAjZW5kaWYKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGhlYWRlcl9jb21wbGV4X2ZpbmRfZW50cnkpCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisKIFNOTVBDYWxsYmFjayAgICBzdG9yZV9zbm1wTm90aWZ5VGFibGU7CiAKIC8qCkBAIC01NywxMSArNjIsNiBAQAogc3RhdGljIG9pZCBzbm1wTm90aWZ5RnVsbENvbXBsaWFuY2VbXSA9CiAgICAgeyBTTk1QX09JRF9TTk1QTU9EVUxFUywgMTMsIDMsIDEsIDMgfTsgLyogU05NUC1OT1RJRklDQVRJT04tTUlCOjpzbm1wTm90aWZ5RnVsbENvbXBsaWFuY2UgKi8KIAotdm9pZCBzaHV0ZG93bl9zbm1wTm90aWZ5VGFibGUodm9pZCkKLXsKLSAgICBVTlJFR0lTVEVSX1NZU09SX0VOVFJZKHNubXBOb3RpZnlGdWxsQ29tcGxpYW5jZSk7Ci19Ci0KIAogLyoKICAqIHZhcmlhYmxlMiBzbm1wTm90aWZ5VGFibGVfdmFyaWFibGVzOgpAQCAtMjg1LDcgKzI4NSw3IEBACiAgICAgc3RydWN0IHRhcmdldEFkZHJUYWJsZV9zdHJ1Y3QgKnB0cjsKICAgICBzdHJ1Y3QgdGFyZ2V0UGFyYW1UYWJsZV9zdHJ1Y3QgKnBwdHI7CiAgICAgc3RydWN0IHNubXBOb3RpZnlUYWJsZV9kYXRhICpucHRyOwotICAgIGludCAgICAgICAgICAgICBjb25maXJtLCBpOworICAgIGludCAgICAgICAgICAgICBjb25maXJtLCBpLCBidWZMZW47CiAgICAgY2hhciAgICAgICAgICAgIGJ1ZltTTk1QX01BWEJVRl9TTUFMTF07CiAgICAgbmV0c25tcF90cmFuc3BvcnQgKnQgPSBOVUxMOwogICAgIHN0cnVjdCBhZ2VudF9hZGRfdHJhcF9hcmdzICphcmdzID0KQEAgLTMwMiw4ICszMDIsOSBAQAogICAgICAqIFhYWDogU1RBUlQgbW92ZSB0YXJnZXQgY3JlYXRpb24gdG8gdGFyZ2V0IGNvZGUgCiAgICAgICovCiAgICAgZm9yIChpID0gMDsgaSA8IE1BWF9FTlRSSUVTOyBpKyspIHsKLSAgICAgICAgc3ByaW50ZihidWYsICJpbnRlcm5hbCVkIiwgaSk7Ci0gICAgICAgIGlmIChnZXRfYWRkckZvck5hbWUoYnVmKSA9PSBOVUxMICYmIGdldF9wYXJhbUVudHJ5KGJ1ZikgPT0gTlVMTCkKKyAgICAgICAgYnVmTGVuID0gc3ByaW50ZihidWYsICJpbnRlcm5hbCVkIiwgaSk7CisgICAgICAgIGlmIChnZXRfYWRkckZvck5hbWUyKGJ1ZiwgYnVmTGVuKSA9PSBOVUxMICYmCisgICAgICAgICAgICBnZXRfcGFyYW1FbnRyeShidWYpID09IE5VTEwpCiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAgICAgaWYgKGkgPT0gTUFYX0VOVFJJRVMpIHsKQEAgLTMyNSw3ICszMjYsOCBAQAogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgcHRyID0gc25tcFRhcmdldEFkZHJUYWJsZV9jcmVhdGUoKTsKLSAgICBwdHItPm5hbWUgPSBzdHJkdXAoYnVmKTsKKyAgICBwdHItPm5hbWVEYXRhID0gbmV0c25tcF9tZW1kdXAoYnVmLCBidWZMZW4pOworICAgIHB0ci0+bmFtZUxlbiA9IGJ1ZkxlbjsKICAgICBtZW1jcHkocHRyLT50RG9tYWluLCB0LT5kb21haW4sIHQtPmRvbWFpbl9sZW5ndGggKiBzaXplb2Yob2lkKSk7CiAgICAgcHRyLT50RG9tYWluTGVuID0gdC0+ZG9tYWluX2xlbmd0aDsKICAgICBwdHItPnRBZGRyZXNzTGVuID0gdC0+cmVtb3RlX2xlbmd0aDsKQEAgLTMzNCw4ICszMzYsOCBAQAogICAgIHB0ci0+dGltZW91dCA9IHNzLT50aW1lb3V0IC8gMTAwMDA7CiAgICAgcHRyLT5yZXRyeUNvdW50ID0gc3MtPnJldHJpZXM7CiAgICAgU05NUF9GUkVFKHB0ci0+dGFnTGlzdCk7Ci0gICAgcHRyLT50YWdMaXN0ID0gc3RyZHVwKHB0ci0+bmFtZSk7Ci0gICAgcHRyLT5wYXJhbXMgPSBzdHJkdXAocHRyLT5uYW1lKTsKKyAgICBwdHItPnRhZ0xpc3QgPSBzdHJkdXAoYnVmKTsgLyogc3RyZHVwIG9rIHNpbmNlIGJ1ZiBjb250YWlucyAnaW50ZXJuYWwlZCcgKi8KKyAgICBwdHItPnBhcmFtcyA9IHN0cmR1cChidWYpOwogICAgIHB0ci0+c3RvcmFnZVR5cGUgPSBTVF9SRUFET05MWTsKICAgICBwdHItPnJvd1N0YXR1cyA9IFJTX0FDVElWRTsKICAgICBwdHItPnNlc3MgPSBzczsKQEAgLTQyMCwxOCArNDIyLDE4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqc2VydmVyYXJnLCB2b2lkICpjbGllbnRhcmcpCiB7CiAgICAgc3RydWN0IGhlYWRlcl9jb21wbGV4X2luZGV4ICpocHRyLCAqbmhwdHI7Ci0gICAgc3RydWN0IHNubXBOb3RpZnlUYWJsZV9kYXRhICpucHRyOwogCiAgICAgZm9yIChocHRyID0gc25tcE5vdGlmeVRhYmxlU3RvcmFnZTsgaHB0cjsgaHB0ciA9IG5ocHRyKSB7Ci0gICAgICAgIG5wdHIgPSAoc3RydWN0IHNubXBOb3RpZnlUYWJsZV9kYXRhICopIGhwdHItPmRhdGE7CisgICAgICAgIHN0cnVjdCBzbm1wTm90aWZ5VGFibGVfZGF0YSAqbnB0ciA9IGhwdHItPmRhdGE7CiAgICAgICAgIG5ocHRyID0gaHB0ci0+bmV4dDsKICAgICAgICAgaWYgKG5wdHItPnNubXBOb3RpZnlTdG9yYWdlVHlwZSA9PSBTVF9SRUFET05MWSkgewogICAgICAgICAgICAgaGVhZGVyX2NvbXBsZXhfZXh0cmFjdF9lbnRyeSgmc25tcE5vdGlmeVRhYmxlU3RvcmFnZSwgaHB0cik7Ci0gICAgICAgICAgICBTTk1QX0ZSRUUobnB0ci0+c25tcE5vdGlmeU5hbWUpOwotICAgICAgICAgICAgU05NUF9GUkVFKG5wdHItPnNubXBOb3RpZnlUYWcpOwotICAgICAgICAgICAgU05NUF9GUkVFKG5wdHIpOworICAgICAgICAgICAgZnJlZShucHRyLT5zbm1wTm90aWZ5TmFtZSk7CisgICAgICAgICAgICBmcmVlKG5wdHItPnNubXBOb3RpZnlUYWcpOworICAgICAgICAgICAgZnJlZShucHRyKTsKICAgICAgICAgfQogICAgIH0KKyAgICBzbm1wTm90aWZ5VGFibGVTdG9yYWdlID0gTlVMTDsKICAgICByZXR1cm4gKDApOwogfQogCkBAIC00OTEsNiArNDkzLDM3IEBACiAgICAgREVCVUdNU0dUTCgoInNubXBOb3RpZnlUYWJsZSIsICJkb25lLlxuIikpOwogfQogCit2b2lkCitzaHV0ZG93bl9zbm1wTm90aWZ5VGFibGUodm9pZCkKK3sKKyAgICBERUJVR01TR1RMKCgic25tcE5vdGlmeVRhYmxlIiwgInNodXR0aW5nIGRvd24gLi4uICIpKTsKKworICAgIG5vdGlmeVRhYmxlX3VucmVnaXN0ZXJfbm90aWZpY2F0aW9ucyhTTk1QX0NBTExCQUNLX0FQUExJQ0FUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTk1QRF9DQUxMQkFDS19QUkVfVVBEQVRFX0NPTkZJRywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisKKyAgICBzbm1wX3VucmVnaXN0ZXJfY2FsbGJhY2soU05NUF9DQUxMQkFDS19BUFBMSUNBVElPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU05NUERfQ0FMTEJBQ0tfUFJFX1VQREFURV9DT05GSUcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeVRhYmxlX3VucmVnaXN0ZXJfbm90aWZpY2F0aW9ucywgTlVMTCwgRkFMU0UpOworICAgIHNubXBfdW5yZWdpc3Rlcl9jYWxsYmFjayhTTk1QX0NBTExCQUNLX0FQUExJQ0FUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTk1QRF9DQUxMQkFDS19SRUdJU1RFUl9OT1RJRklDQVRJT05TLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlUYWJsZV9yZWdpc3Rlcl9ub3RpZmljYXRpb25zLCBOVUxMLCBGQUxTRSk7CisgICAgc25tcF91bnJlZ2lzdGVyX2NhbGxiYWNrKFNOTVBfQ0FMTEJBQ0tfQVBQTElDQVRJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBEX0NBTExCQUNLX1NFTkRfVFJBUDIsIHNlbmRfbm90aWZpY2F0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgRkFMU0UpOworI2lmbmRlZiBESVNBQkxFX1NOTVBWMQorICAgIHNubXBfdW5yZWdpc3Rlcl9jYWxsYmFjayhTTk1QX0NBTExCQUNLX0FQUExJQ0FUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTk1QRF9DQUxMQkFDS19TRU5EX1RSQVAxLCBzZW5kX25vdGlmaWNhdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIEZBTFNFKTsKKyNlbmRpZgorICAgIHNubXBfdW5yZWdpc3Rlcl9jYWxsYmFjayhTTk1QX0NBTExCQUNLX0xJQlJBUlksIFNOTVBfQ0FMTEJBQ0tfU1RPUkVfREFUQSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVfc25tcE5vdGlmeVRhYmxlLCBOVUxMLCBGQUxTRSk7CisKKyAgICBVTlJFR0lTVEVSX1NZU09SX0VOVFJZKHNubXBOb3RpZnlGdWxsQ29tcGxpYW5jZSk7CisKKyAgICBERUJVR01TR1RMKCgic25tcE5vdGlmeVRhYmxlIiwgImRvbmUuXG4iKSk7Cit9CiAKIC8qCiAgKiBzbm1wTm90aWZ5VGFibGVfYWRkKCk6IGFkZHMgYSBzdHJ1Y3R1cmUgbm9kZSB0byBvdXIgZGF0YSBzZXQgCkBAIC00OTksNyArNTMyLDcgQEAKIHNubXBOb3RpZnlUYWJsZV9hZGQoc3RydWN0IHNubXBOb3RpZnlUYWJsZV9kYXRhICp0aGVkYXRhKQogewogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFycyA9IE5VTEw7Ci0KKyAgICBpbnQgcmV0VmFsOwkKIAogICAgIERFQlVHTVNHVEwoKCJzbm1wTm90aWZ5VGFibGUiLCAiYWRkaW5nIGRhdGEuLi4gICIpKTsKICAgICAvKgpAQCAtNTEyLDEyICs1NDUsMTcgQEAKIAogCiAKLSAgICBoZWFkZXJfY29tcGxleF9hZGRfZGF0YSgmc25tcE5vdGlmeVRhYmxlU3RvcmFnZSwgdmFycywgdGhlZGF0YSk7Ci0gICAgREVCVUdNU0dUTCgoInNubXBOb3RpZnlUYWJsZSIsICJyZWdpc3RlcmVkIGFuIGVudHJ5XG4iKSk7CisgICAgaWYgKGhlYWRlcl9jb21wbGV4X21heWJlX2FkZF9kYXRhKCZzbm1wTm90aWZ5VGFibGVTdG9yYWdlLCB2YXJzLCB0aGVkYXRhLCAxKQorICAgICAgICAhPSBOVUxMKXsKKyAgICAJREVCVUdNU0dUTCgoInNubXBOb3RpZnlUYWJsZSIsICJyZWdpc3RlcmVkIGFuIGVudHJ5XG4iKSk7CisJcmV0VmFsID0gU05NUEVSUl9TVUNDRVNTOworICAgIH1lbHNleworICAgICAgICByZXRWYWwgPSBTTk1QRVJSX0dFTkVSUjsgCisgICAgfQkKIAogCiAgICAgREVCVUdNU0dUTCgoInNubXBOb3RpZnlUYWJsZSIsICJkb25lLlxuIikpOwotICAgIHJldHVybiBTTk1QRVJSX1NVQ0NFU1M7CisgICAgcmV0dXJuIHJldFZhbDsKIH0KIAogCkBAIC01NzgsNyArNjE2LDExIEBACiAgICAgICAgIFN0b3JhZ2VUbXAtPnNubXBOb3RpZnlSb3dTdGF0dXMgPSBSU19BQ1RJVkU7CiAKIAotICAgIHNubXBOb3RpZnlUYWJsZV9hZGQoU3RvcmFnZVRtcCk7CisgICAgaWYgKHNubXBOb3RpZnlUYWJsZV9hZGQoU3RvcmFnZVRtcCkgIT0gU05NUEVSUl9TVUNDRVNTKXsKKyAgICAgICAgU05NUF9GUkVFKFN0b3JhZ2VUbXAtPnNubXBOb3RpZnlOYW1lKTsKKyAgICAgICAgU05NUF9GUkVFKFN0b3JhZ2VUbXAtPnNubXBOb3RpZnlUYWcpOworICAgICAgICBTTk1QX0ZSRUUoU3RvcmFnZVRtcCk7CisgICAgfQogCiAKICAgICBERUJVR01TR1RMKCgic25tcE5vdGlmeVRhYmxlIiwgImRvbmUuXG4iKSk7CkBAIC02NzksNiArNzIxLDcgQEAKICAgICB9CiAKICAgICBzd2l0Y2ggKHZwLT5tYWdpYykgeworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBjYXNlIFNOTVBOT1RJRllUQUc6CiAgICAgICAgICp3cml0ZV9tZXRob2QgPSB3cml0ZV9zbm1wTm90aWZ5VGFnOwogICAgICAgICBicmVhazsKQEAgLTY5MSw2ICs3MzQsNyBAQAogICAgIGNhc2UgU05NUE5PVElGWVJPV1NUQVRVUzoKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX3NubXBOb3RpZnlSb3dTdGF0dXM7CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICBkZWZhdWx0OgogICAgICAgICAqd3JpdGVfbWV0aG9kID0gTlVMTDsKICAgICB9CkBAIC02OTksNiArNzQzLDcgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCisjaWZuZGVmIE5FVFNOTVBfTk9fUkVBRF9TVVBQT1JUCiAgICAgc3dpdGNoICh2cC0+bWFnaWMpIHsKICAgICBjYXNlIFNOTVBOT1RJRllUQUc6CiAgICAgICAgICp2YXJfbGVuID0gU3RvcmFnZVRtcC0+c25tcE5vdGlmeVRhZ0xlbjsKQEAgLTcxOSw2ICs3NjQsNyBAQAogICAgIGRlZmF1bHQ6CiAgICAgICAgIEVSUk9SX01TRygiIik7CiAgICAgfQorI2VuZGlmIC8qICFORVRTTk1QX05PX1JFQURfU1VQUE9SVCAqLyAKICAgICByZXR1cm4gTlVMTDsKIH0KIApAQCAtNzQ3LDYgKzc5Myw4IEBACiAKIHN0YXRpYyBzdHJ1Y3Qgc25tcE5vdGlmeVRhYmxlX2RhdGEgKlN0b3JhZ2VOZXc7CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUIAorCiBpbnQKIHdyaXRlX3NubXBOb3RpZnlUYWcoaW50IGFjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgdV9jaGFyICogdmFyX3ZhbCwKQEAgLTExNzMsMyArMTIyMSw0IEBACiAgICAgfQogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQorI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCBiL2FnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaAppbmRleCA5YTkzNjQ1Li4xOGJmMWJkIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oCkBAIC02NCwxMCArNjQsMTIgQEAKICAgICAgaW50ICAgICAgICAgICAgIHNubXBOb3RpZnlUYWJsZV9hZGQoc3RydWN0IHNubXBOb3RpZnlUYWJsZV9kYXRhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICp0aGVkYXRhKTsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX3NubXBOb3RpZnlUYWc7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9zbm1wTm90aWZ5VHlwZTsKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX3NubXBOb3RpZnlTdG9yYWdlVHlwZTsKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX3NubXBOb3RpZnlSb3dTdGF0dXM7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAKIApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jIGIvYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jCmluZGV4IGQ0YjZlNjkuLmE2YTQyYzMgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYworKysgYi9hZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzX2xpbnV4LmMKQEAgLTM4LDcgKzM4LDggQEAKICAgICBmb3IgKHAgPSBhZGRyczsgcDsgcCA9IHAtPmlmYV9uZXh0KSB7CiAKICAgICAgICAgaWYgKCFsaXN0X2hlYWQpIHsKLSAgICAgICAgICAgIGlmICggKGxpc3RfaGVhZCA9IChzdHJ1Y3QgaWZuYW1lICopIG1hbGxvYyAoc2l6ZW9mKHN0cnVjdCBpZm5hbWUpKSkgPCAwKSB7CisgICAgICAgICAgICBsaXN0X2hlYWQgPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCBpZm5hbWUpKTsKKyAgICAgICAgICAgIGlmICghbGlzdF9oZWFkKSB7CiAgICAgICAgICAgICAgICAgREVCVUdNU0dUTCgoImFjY2VzczpldGhlclN0YXRzVGFibGU6aW50ZXJmYWNlX25hbWVfbGlzdF9nZXQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWRcbiIpKTsKICAgICAgICAgICAgICAgICBzbm1wX2xvZyAoTE9HX0VSUiwgImFjY2VzczpldGhlclN0YXRzVGFibGUsaW50ZXJmYWNlX25hbWVfbGlzdF9nZXQsIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZFxuIik7CkBAIC01Nyw3ICs1OCw4IEBACiAgICAgICAgIGlmIChuYW1lcHRyMSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlmICggKG5hbWVwdHIyLT5pZm5fbmV4dCA9IChzdHJ1Y3QgaWZuYW1lICopIG1hbGxvYyAoc2l6ZW9mKHN0cnVjdCBpZm5hbWUpKSkgPCAwKSB7CisgICAgICAgIG5hbWVwdHIyLT5pZm5fbmV4dCA9IG1hbGxvYyhzaXplb2Yoc3RydWN0IGlmbmFtZSkpOworICAgICAgICBpZiAoIW5hbWVwdHIyLT5pZm5fbmV4dCkgewogICAgICAgICAgICAgREVCVUdNU0dUTCgoImFjY2VzczpldGhlclN0YXRzVGFibGU6aW50ZXJmYWNlX25hbWVfbGlzdF9nZXQiLAogICAgICAgICAgICAgICAgICAgICAgICAgIm1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZFxuIikpOwogICAgICAgICAgICAgc25tcF9sb2cgKExPR19FUlIsICJhY2Nlc3M6ZXRoZXJTdGF0c1RhYmxlLGludGVyZmFjZV9uYW1lX2xpc3RfZ2V0LCBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWRcbiIpOwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jIGIvYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCmluZGV4IDk3NDYzNmEuLjQ4ZDRhY2EgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYworKysgYi9hZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMKQEAgLTIwMCw3ICsyMDAsNiBAQAogaW50CiBldGhlclN0YXRzVGFibGVfY29udGFpbmVyX2xvYWQobmV0c25tcF9jb250YWluZXIgKiBjb250YWluZXIpCiB7Ci0gICAgZXRoZXJTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKnJvd3JlcV9jdHg7CiAgICAgc2l6ZV90ICAgICAgICAgIGNvdW50ID0gMDsKIAogICAgIERFQlVHTVNHVEwoKCJ2ZXJib3NlOmV0aGVyU3RhdHNUYWJsZTpldGhlclN0YXRzVGFibGVfY29udGFpbmVyX2xvYWQiLApAQCAtMjIwLDkgKzIxOSw3IEBACiAgICAgICogZXRoZXJTdGF0c0luZGV4KDEpL0lOVEVHRVIzMi9BU05fSU5URUdFUi9sb25nKGxvbmcpLy9sL0Evdy9lL1IvZC9oCiAgICAgICovCiAKLSAgICBsb25nICAgICAgICAgICAgZXRoZXJTdGF0c0luZGV4OwogICAgIGludCAgICAgICAgICAgICBmZDsKLSAgICBpbnQgICAgICAgICAgICAgcmMgPSAwLCByZXR2YWwgPSAwOwogCiAjaWYgZGVmaW5lZChsaW51eCkKICAgICBzdHJ1Y3QgaWZuYW1lICpsaXN0X2hlYWQgPSBOVUxMLCAqcCA9IE5VTEw7CkBAIC0yNDQsNyArMjQxLDExIEBACiAgICAgICovCiAKICNpZiBkZWZpbmVkKGxpbnV4KQotICAgIGxpc3RfaGVhZCA9IGV0aGVyc3RhdHNfaW50ZXJmYWNlX25hbWVfbGlzdF9nZXQgKGxpc3RfaGVhZCwgJnJldHZhbCk7CisgICAgeworICAgICAgICBpbnQgcmV0dmFsOworCisgICAgICAgIGxpc3RfaGVhZCA9IGV0aGVyc3RhdHNfaW50ZXJmYWNlX25hbWVfbGlzdF9nZXQobGlzdF9oZWFkLCAmcmV0dmFsKTsKKyAgICB9CiAKICAgICBpZiAoIWxpc3RfaGVhZCkgewogICAgICAgICBzbm1wX2xvZyAoTE9HX0VSUiwgImFjY2VzczpldGhlclN0YXRzVGFibGUsIGVycm9yIGdldHRpbmcgdGhlIGludGVyZmFjZSBuYW1lcyBwcmVzZW50IGluIHRoZSBzeXN0ZW1cbiIpOwpAQCAtMjU4LDYgKzI1OSw5IEBACiAgICAgICovCiAKICAgICBmb3IgKHAgPSBsaXN0X2hlYWQ7IHA7IHAgPSBwLT5pZm5fbmV4dCkgeworICAgICAgICBsb25nICAgICAgICAgICAgZXRoZXJTdGF0c0luZGV4OworICAgICAgICBldGhlclN0YXRzVGFibGVfcm93cmVxX2N0eCAqcm93cmVxX2N0eDsKKwogICAgICAgICBERUJVR01TR1RMKCgiYWNjZXNzOmV0aGVyU3RhdHNUYWJsZSIsICJwcm9jZXNzaW5nICclcydcbiIsIHAtPm5hbWUpKTsKIAogICAgICAgICAvKgpAQCAtMjk2LDIzICszMDAsMjcgQEAKICAgICAgICAgICovCiAKICAgICAgICAgbWVtc2V0ICgmcm93cmVxX2N0eC0+ZGF0YSwgMCwgc2l6ZW9mIChyb3dyZXFfY3R4LT5kYXRhKSk7Ci0gICAgICAgIHJjID0gaW50ZXJmYWNlX2lvY3RsX2V0aGVyc3RhdHNfZ2V0IChyb3dyZXFfY3R4LCBmZCwgcC0+bmFtZSk7CisgICAgICAgIHsKKyAgICAgICAgICAgIGludCByYzsKIAotICAgICAgICBpZiAocmMgPCAwKSB7Ci0gICAgICAgICAgICBERUJVR01TR1RMKCgiYWNjZXNzOmV0aGVyU3RhdHNUYWJsZSIsICJlcnJvciBnZXR0aW5nIHRoZSBzdGF0aXN0aWNzIGZvciBpbnRlcmZhY2UgfCVzfCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAiZXRoZXJTdGF0c1RhYmxlIGRhdGEsIG9wZXJhdGlvbiBtaWdodCBub3QgYmUgc3VwcG9ydGVkXG4iLCBwLT5uYW1lKSk7Ci0gICAgICAgICAgICBldGhlclN0YXRzVGFibGVfcmVsZWFzZV9yb3dyZXFfY3R4KHJvd3JlcV9jdHgpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KKyAgICAgICAgICAgIHJjID0gaW50ZXJmYWNlX2lvY3RsX2V0aGVyc3RhdHNfZ2V0IChyb3dyZXFfY3R4LCBmZCwgcC0+bmFtZSk7CiAKLSAgICAgICAgLyoKLSAgICAgICAgICogaW5zZXJ0IGludG8gdGFibGUgY29udGFpbmVyCi0gICAgICAgICAqLwotICAgICAgICByYyA9IENPTlRBSU5FUl9JTlNFUlQoY29udGFpbmVyLCByb3dyZXFfY3R4KTsKLSAgICAgICAgaWYgKHJjIDwgMCkgewotICAgICAgICAgICAgREVCVUdNU0dUTCgoImFjY2VzczpldGhlclN0YXRzVGFibGUiLCAiZXJyb3IgaW5zZXJ0aW5nIHwlc3wgIiwgcC0+bmFtZSkpOwotICAgICAgICAgICAgZXRoZXJTdGF0c1RhYmxlX3JlbGVhc2Vfcm93cmVxX2N0eChyb3dyZXFfY3R4KTsKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKHJjIDwgMCkgeworICAgICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6ZXRoZXJTdGF0c1RhYmxlIiwgImVycm9yIGdldHRpbmcgdGhlIHN0YXRpc3RpY3MgZm9yIGludGVyZmFjZSB8JXN8ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXRoZXJTdGF0c1RhYmxlIGRhdGEsIG9wZXJhdGlvbiBtaWdodCBub3QgYmUgc3VwcG9ydGVkXG4iLCBwLT5uYW1lKSk7CisgICAgICAgICAgICAgICAgZXRoZXJTdGF0c1RhYmxlX3JlbGVhc2Vfcm93cmVxX2N0eChyb3dyZXFfY3R4KTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIGluc2VydCBpbnRvIHRhYmxlIGNvbnRhaW5lcgorICAgICAgICAgICAgICovCisgICAgICAgICAgICByYyA9IENPTlRBSU5FUl9JTlNFUlQoY29udGFpbmVyLCByb3dyZXFfY3R4KTsKKyAgICAgICAgICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgICAgICAgICBERUJVR01TR1RMKCgiYWNjZXNzOmV0aGVyU3RhdHNUYWJsZSIsICJlcnJvciBpbnNlcnRpbmcgfCVzfCAiLCBwLT5uYW1lKSk7CisgICAgICAgICAgICAgICAgZXRoZXJTdGF0c1RhYmxlX3JlbGVhc2Vfcm93cmVxX2N0eChyb3dyZXFfY3R4KTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgICsrY291bnQ7CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jIGIvYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYwppbmRleCAzOGU5MmFmLi4yMjFjNjA4IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmMKQEAgLTMwLDYgKzMwLDcgQEAKICAqIHN0YW5kYXJkIE5ldC1TTk1QIGluY2x1ZGVzIAogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAKQEAgLTQ2LDYgKzQ3LDE0IEBACiAKICNpbmNsdWRlIDxjdHlwZS5oPgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShyb3dfbWVyZ2UpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShiYWJ5X3N0ZXBzKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfY29udGFpbmVyX3Jvd19pbnNlcnQpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja19hbGxfcmVxdWVzdHNfZXJyb3IpCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfdmJfdHlwZV9hbmRfbWF4X3NpemUpCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoqKgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlLmMKaW5kZXggYzAzYWVmNC4uZDYwMjNlNSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5jCkBAIC0xMyw2ICsxMyw3IEBACiAgKiBjb250ZW50IG9mIHRoZSBzY3RwQXNzb2NMb2NhbEFkZHJUYWJsZSAKICAqLwogc3RhdGljIG5ldHNubXBfY29udGFpbmVyICpzY3RwQXNzb2NMb2NhbEFkZHJUYWJsZV9jb250YWluZXI7CitzdGF0aWMgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqdGFibGVfaW5mbzsKIAogLyoqIEluaXRpYWxpemVzIHRoZSBzY3RwQXNzb2NMb2NhbEFkZHJUYWJsZSBtb2R1bGUgKi8KIHZvaWQKQEAgLTI3LDggKzI4LDcgQEAKIHZvaWQKIHNodXRkb3duX3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlKHZvaWQpCiB7Ci0gICAgc2N0cEFzc29jTG9jYWxBZGRyVGFibGVfY29udGFpbmVyX2NsZWFyCi0gICAgICAgIChzY3RwQXNzb2NMb2NhbEFkZHJUYWJsZV9jb250YWluZXIpOworICAgIHNodXRkb3duX3RhYmxlX3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlKCk7CiB9CiAKIC8qKiBJbml0aWFsaXplIHRoZSBzY3RwQXNzb2NMb2NhbEFkZHJUYWJsZSB0YWJsZSBieSBkZWZpbmluZyBpdHMgY29udGVudHMgYW5kIGhvdyBpdCdzIHN0cnVjdHVyZWQgKi8KQEAgLTQyLDcgKzQyLDYgQEAKICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWcgPSBOVUxMOwogICAgIG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIgPSBOVUxMOwogICAgIG5ldHNubXBfY29udGFpbmVyICpjb250YWluZXIgPSBOVUxMOwotICAgIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm8gPSBOVUxMOwogCiAgICAgcmVnID0KICAgICAgICAgbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oInNjdHBBc3NvY0xvY2FsQWRkclRhYmxlIiwKQEAgLTEzMiw2ICsxMzEsMTcgQEAKICAgICAgICAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9mcmVlKHJlZyk7CiB9CiAKK3ZvaWQKK3NodXRkb3duX3RhYmxlX3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlKHZvaWQpCit7CisgICAgaWYgKHRhYmxlX2luZm8pIHsKKyAgICAgICAgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19mcmVlKHRhYmxlX2luZm8pOworCXRhYmxlX2luZm8gPSBOVUxMOworICAgIH0KKyAgICBzY3RwQXNzb2NMb2NhbEFkZHJUYWJsZV9jb250YWluZXJfY2xlYXIKKyAgICAgICAgKHNjdHBBc3NvY0xvY2FsQWRkclRhYmxlX2NvbnRhaW5lcik7Cit9CisKIC8qKiBoYW5kbGVzIHJlcXVlc3RzIGZvciB0aGUgc2N0cEFzc29jTG9jYWxBZGRyVGFibGUgdGFibGUgKi8KIGludAogc2N0cEFzc29jTG9jYWxBZGRyVGFibGVfaGFuZGxlcihuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyLApAQCAtMjY0LDggKzI3NCw3IEBACiB2b2lkCiBzY3RwQXNzb2NMb2NhbEFkZHJUYWJsZV9lbnRyeV9mcmVlKHNjdHBBc3NvY0xvY2FsQWRkclRhYmxlX2VudHJ5ICogZW50cnkpCiB7Ci0gICAgaWYgKGVudHJ5ICE9IE5VTEwpCi0gICAgICAgIFNOTVBfRlJFRShlbnRyeSk7CisgICAgU05NUF9GUkVFKGVudHJ5KTsKIH0KIAogbmV0c25tcF9jb250YWluZXIgKgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuaCBiL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlLmgKaW5kZXggYzJjYzA1NS4uZWZmMDgwZiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuaAorKysgYi9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5oCkBAIC0xMyw2ICsxMyw3IEBACiB2b2lkICAgICAgICAgICAgaW5pdF9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZSh2b2lkKTsKIHZvaWQgICAgICAgICAgICBzaHV0ZG93bl9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZSh2b2lkKTsKIHZvaWQgICAgICAgICAgICBpbml0aWFsaXplX3RhYmxlX3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlKHZvaWQpOwordm9pZCAgICAgICAgICAgIHNodXRkb3duX3RhYmxlX3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlKHZvaWQpOwogTmV0c25tcF9Ob2RlX0hhbmRsZXIgc2N0cEFzc29jTG9jYWxBZGRyVGFibGVfaGFuZGxlcjsKIAogLyoKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5jIGIvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmMKaW5kZXggYWQxNGE0Ni4uMzhjYThhMyAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmMKQEAgLTEzLDYgKzEzLDcgQEAKICAqIGNvbnRlbnQgb2YgdGhlIHNjdHBBc3NvY1JlbUFkZHJUYWJsZSAKICAqLwogc3RhdGljIG5ldHNubXBfY29udGFpbmVyICpzY3RwQXNzb2NSZW1BZGRyVGFibGVfY29udGFpbmVyOworc3RhdGljIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm87CiAKIC8qKiBJbml0aWFsaXplcyB0aGUgc2N0cEFzc29jUmVtQWRkclRhYmxlIG1vZHVsZSAqLwogdm9pZApAQCAtMjcsNyArMjgsNyBAQAogdm9pZAogc2h1dGRvd25fc2N0cEFzc29jUmVtQWRkclRhYmxlKHZvaWQpCiB7Ci0gICAgc2N0cEFzc29jUmVtQWRkclRhYmxlX2NvbnRhaW5lcl9jbGVhcihzY3RwQXNzb2NSZW1BZGRyVGFibGVfY29udGFpbmVyKTsKKyAgICBzaHV0ZG93bl90YWJsZV9zY3RwQXNzb2NSZW1BZGRyVGFibGUoKTsKIH0KIAogLyoqIEluaXRpYWxpemUgdGhlIHNjdHBBc3NvY1JlbUFkZHJUYWJsZSB0YWJsZSBieSBkZWZpbmluZyBpdHMgY29udGVudHMgYW5kIGhvdyBpdCdzIHN0cnVjdHVyZWQgKi8KQEAgLTQxLDcgKzQyLDYgQEAKICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWcgPSBOVUxMOwogICAgIG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIgPSBOVUxMOwogICAgIG5ldHNubXBfY29udGFpbmVyICpjb250YWluZXIgPSBOVUxMOwotICAgIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm8gPSBOVUxMOwogCiAgICAgcmVnID0KICAgICAgICAgbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oInNjdHBBc3NvY1JlbUFkZHJUYWJsZSIsCkBAIC0xMzAsNiArMTMwLDE2IEBACiAgICAgICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZShyZWcpOwogfQogCit2b2lkCitzaHV0ZG93bl90YWJsZV9zY3RwQXNzb2NSZW1BZGRyVGFibGUodm9pZCkKK3sKKyAgICBpZiAodGFibGVfaW5mbykgeworICAgICAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX2ZyZWUodGFibGVfaW5mbyk7CisJdGFibGVfaW5mbyA9IE5VTEw7CisgICAgfQorICAgIHNjdHBBc3NvY1JlbUFkZHJUYWJsZV9jb250YWluZXJfY2xlYXIoc2N0cEFzc29jUmVtQWRkclRhYmxlX2NvbnRhaW5lcik7Cit9CisKIAogLyoqIGhhbmRsZXMgcmVxdWVzdHMgZm9yIHRoZSBzY3RwQXNzb2NSZW1BZGRyVGFibGUgdGFibGUgKi8KIGludApAQCAtMzA5LDggKzMxOSw3IEBACiB2b2lkCiBzY3RwQXNzb2NSZW1BZGRyVGFibGVfZW50cnlfZnJlZShzY3RwQXNzb2NSZW1BZGRyVGFibGVfZW50cnkgKiBlbnRyeSkKIHsKLSAgICBpZiAoZW50cnkgIT0gTlVMTCkKLSAgICAgICAgU05NUF9GUkVFKGVudHJ5KTsKKyAgICBTTk1QX0ZSRUUoZW50cnkpOwogfQogCiBuZXRzbm1wX2NvbnRhaW5lciAqCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUuaCBiL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5oCmluZGV4IGNjNjVjN2UuLjUwNjg1NjEgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5oCisrKyBiL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5oCkBAIC0xMyw2ICsxMyw3IEBACiB2b2lkICAgICAgICAgICAgaW5pdF9zY3RwQXNzb2NSZW1BZGRyVGFibGUodm9pZCk7CiB2b2lkICAgICAgICAgICAgc2h1dGRvd25fc2N0cEFzc29jUmVtQWRkclRhYmxlKHZvaWQpOwogdm9pZCAgICAgICAgICAgIGluaXRpYWxpemVfdGFibGVfc2N0cEFzc29jUmVtQWRkclRhYmxlKHZvaWQpOwordm9pZCAgICAgICAgICAgIHNodXRkb3duX3RhYmxlX3NjdHBBc3NvY1JlbUFkZHJUYWJsZSh2b2lkKTsKIE5ldHNubXBfTm9kZV9IYW5kbGVyIHNjdHBBc3NvY1JlbUFkZHJUYWJsZV9oYW5kbGVyOwogCiAvKgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmMKaW5kZXggZjNhNjhhMy4uOTkxOTA3NSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jVGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5jCkBAIC0xNiw2ICsxNiw3IEBACiAgKiBjb250ZW50IG9mIHRoZSBzY3RwQXNzb2NUYWJsZSAKICAqLwogc3RhdGljIG5ldHNubXBfY29udGFpbmVyICpzY3RwQXNzb2NUYWJsZV9jb250YWluZXI7CitzdGF0aWMgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqdGFibGVfaW5mbzsKIAogLyoqIEluaXRpYWxpemVzIHRoZSBzY3RwQXNzb2NUYWJsZSBtb2R1bGUgKi8KIHZvaWQKQEAgLTMwLDcgKzMxLDcgQEAKIHZvaWQKIHNodXRkb3duX3NjdHBBc3NvY1RhYmxlKHZvaWQpCiB7Ci0gICAgc2N0cEFzc29jVGFibGVfY29udGFpbmVyX2NsZWFyKHNjdHBBc3NvY1RhYmxlX2NvbnRhaW5lcik7CisgICAgc2h1dGRvd25fdGFibGVfc2N0cEFzc29jVGFibGUoKTsKIH0KIAogLyoqIEluaXRpYWxpemUgdGhlIHNjdHBBc3NvY1RhYmxlIHRhYmxlIGJ5IGRlZmluaW5nIGl0cyBjb250ZW50cyBhbmQgaG93IGl0J3Mgc3RydWN0dXJlZCAqLwpAQCAtNDMsNyArNDQsNiBAQAogICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKnJlZyA9IE5VTEw7CiAgICAgbmV0c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciA9IE5VTEw7CiAgICAgbmV0c25tcF9jb250YWluZXIgKmNvbnRhaW5lciA9IE5VTEw7Ci0gICAgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqdGFibGVfaW5mbyA9IE5VTEw7CiAgICAgbmV0c25tcF9jYWNoZSAgKmNhY2hlID0gTlVMTDsKIAogICAgIHJlZyA9CkBAIC0xMjAsNiArMTIwLDggQEAKICAgICAgICAgZ290byBiYWlsOwogICAgIH0KIAorICAgIG5ldHNubXBfY2FjaGVfaGFuZGxlcl9vd25zX2NhY2hlKGhhbmRsZXIpOworCiAgICAgaWYgKFNOTVBFUlJfU1VDQ0VTUyAhPSBuZXRzbm1wX2luamVjdF9oYW5kbGVyKHJlZywgaGFuZGxlcikpIHsKICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwKICAgICAgICAgICAgICAgICAgImVycm9yIGluamVjdGluZyBjYWNoZSBoYW5kbGVyIGZvciBzY3RwQXNzb2NUYWJsZVxuIik7CkBAIC0xNjUsNiArMTY3LDE3IEBACiAgICAgICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZShyZWcpOwogfQogCit2b2lkCitzaHV0ZG93bl90YWJsZV9zY3RwQXNzb2NUYWJsZSh2b2lkKQoreworICAgIGlmICh0YWJsZV9pbmZvKSB7CisJbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19mcmVlKHRhYmxlX2luZm8pOworCXRhYmxlX2luZm8gPSBOVUxMOworICAgIH0KKyAgICBpZiAoc2N0cEFzc29jVGFibGVfY29udGFpbmVyKQorCXNjdHBBc3NvY1RhYmxlX2NvbnRhaW5lcl9jbGVhcihzY3RwQXNzb2NUYWJsZV9jb250YWluZXIpOworfQorCiAKIC8qKiBoYW5kbGVzIHJlcXVlc3RzIGZvciB0aGUgc2N0cEFzc29jVGFibGUgdGFibGUgKi8KIGludApAQCAtNDk0LDggKzUwNyw3IEBACiB2b2lkCiBzY3RwQXNzb2NUYWJsZV9lbnRyeV9mcmVlKHNjdHBBc3NvY1RhYmxlX2VudHJ5ICogZW50cnkpCiB7Ci0gICAgaWYgKGVudHJ5ICE9IE5VTEwpCi0gICAgICAgIFNOTVBfRlJFRShlbnRyeSk7CisgICAgU05NUF9GUkVFKGVudHJ5KTsKIH0KIAogbmV0c25tcF9jb250YWluZXIgKgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jVGFibGUuaCBiL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmgKaW5kZXggYTZhOWYzYy4uYzYyNTdiMCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jVGFibGUuaAorKysgYi9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5oCkBAIC0xMyw2ICsxMyw3IEBACiB2b2lkICAgICAgICAgICAgaW5pdF9zY3RwQXNzb2NUYWJsZSh2b2lkKTsKIHZvaWQgICAgICAgICAgICBzaHV0ZG93bl9zY3RwQXNzb2NUYWJsZSh2b2lkKTsKIHZvaWQgICAgICAgICAgICBpbml0aWFsaXplX3RhYmxlX3NjdHBBc3NvY1RhYmxlKHZvaWQpOwordm9pZCAgICAgICAgICAgIHNodXRkb3duX3RhYmxlX3NjdHBBc3NvY1RhYmxlKHZvaWQpOwogTmV0c25tcF9Ob2RlX0hhbmRsZXIgc2N0cEFzc29jVGFibGVfaGFuZGxlcjsKIAogLyoKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5jIGIvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmMKaW5kZXggN2EyYjBiMi4uMWE2ZmQzNSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlICJzY3RwTG9va3VwTG9jYWxQb3J0VGFibGUuaCIKIAogc3RhdGljIG5ldHNubXBfY29udGFpbmVyICpzY3RwTG9va3VwTG9jYWxQb3J0VGFibGVfY29udGFpbmVyOworc3RhdGljIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm87CiAKIC8qKiBJbml0aWFsaXplcyB0aGUgc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlIG1vZHVsZSAqLwogdm9pZApAQCAtMjQsOCArMjUsNyBAQAogdm9pZAogc2h1dGRvd25fc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlKHZvaWQpCiB7Ci0gICAgc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlX2NvbnRhaW5lcl9jbGVhcgotICAgICAgICAoc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlX2NvbnRhaW5lcik7CisgICAgc2h1dGRvd25fdGFibGVfc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlKCk7CiB9CiAKIC8qKiBJbml0aWFsaXplIHRoZSBzY3RwTG9va3VwTG9jYWxQb3J0VGFibGUgdGFibGUgYnkgZGVmaW5pbmcgaXRzIGNvbnRlbnRzIGFuZCBob3cgaXQncyBzdHJ1Y3R1cmVkICovCkBAIC0zOSw3ICszOSw2IEBACiAgICAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnID0gTlVMTDsKICAgICBuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyID0gTlVMTDsKICAgICBuZXRzbm1wX2NvbnRhaW5lciAqY29udGFpbmVyID0gTlVMTDsKLSAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICp0YWJsZV9pbmZvID0gTlVMTDsKIAogICAgIHJlZyA9CiAgICAgICAgIG5ldHNubXBfY3JlYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uKCJzY3RwTG9va3VwTG9jYWxQb3J0VGFibGUiLApAQCAtMTI3LDYgKzEyNiwxNiBAQAogICAgICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUocmVnKTsKIH0KIAordm9pZAorc2h1dGRvd25fdGFibGVfc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlKHZvaWQpCit7CisgICAgaWYgKHRhYmxlX2luZm8pIHsKKwluZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX2ZyZWUodGFibGVfaW5mbyk7CisJdGFibGVfaW5mbyA9IE5VTEw7CisgICAgfQorICAgIHNjdHBMb29rdXBMb2NhbFBvcnRUYWJsZV9jb250YWluZXJfY2xlYXIKKyAgICAgICAgKHNjdHBMb29rdXBMb2NhbFBvcnRUYWJsZV9jb250YWluZXIpOworfQogCiAvKiogaGFuZGxlcyByZXF1ZXN0cyBmb3IgdGhlIHNjdHBMb29rdXBMb2NhbFBvcnRUYWJsZSB0YWJsZSAqLwogaW50CkBAIC0yNDksOCArMjU4LDcgQEAKIHZvaWQKIHNjdHBMb29rdXBMb2NhbFBvcnRUYWJsZV9lbnRyeV9mcmVlKHNjdHBMb29rdXBMb2NhbFBvcnRUYWJsZV9lbnRyeSAqIGVudHJ5KQogewotICAgIGlmIChlbnRyeSAhPSBOVUxMKQotICAgICAgICBTTk1QX0ZSRUUoZW50cnkpOworICAgIFNOTVBfRlJFRShlbnRyeSk7CiB9CiAKIG5ldHNubXBfY29udGFpbmVyICoKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5oIGIvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmgKaW5kZXggOWRhNmNkOS4uMjI2YzE2OCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmgKQEAgLTEzLDYgKzEzLDcgQEAKIHZvaWQgICAgICAgICAgICBpbml0X3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZSh2b2lkKTsKIHZvaWQgICAgICAgICAgICBzaHV0ZG93bl9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUodm9pZCk7CiB2b2lkICAgICAgICAgICAgaW5pdGlhbGl6ZV90YWJsZV9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUodm9pZCk7Cit2b2lkICAgICAgICAgICAgc2h1dGRvd25fdGFibGVfc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlKHZvaWQpOwogTmV0c25tcF9Ob2RlX0hhbmRsZXIgc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlX2hhbmRsZXI7CiAKIC8qCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5jIGIvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUuYwppbmRleCAzMzcwZjUyLi5hZTJlYzkxIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlICJzY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5oIgogCiBzdGF0aWMgbmV0c25tcF9jb250YWluZXIgKnNjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlX2NvbnRhaW5lcjsKK3N0YXRpYyBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICp0YWJsZV9pbmZvOwogCiAvKiogSW5pdGlhbGl6ZXMgdGhlIHNjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlIG1vZHVsZSAqLwogdm9pZApAQCAtMjQsOCArMjUsNyBAQAogdm9pZAogc2h1dGRvd25fc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUodm9pZCkKIHsKLSAgICBzY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZV9jb250YWluZXJfY2xlYXIKLSAgICAgICAgKHNjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlX2NvbnRhaW5lcik7CisgICAgc2h1dGRvd25fdGFibGVfc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUoKTsKIH0KIAogLyoqIEluaXRpYWxpemUgdGhlIHNjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlIHRhYmxlIGJ5IGRlZmluaW5nIGl0cyBjb250ZW50cyBhbmQgaG93IGl0J3Mgc3RydWN0dXJlZCAqLwpAQCAtMzksNyArMzksNiBAQAogICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKnJlZyA9IE5VTEw7CiAgICAgbmV0c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciA9IE5VTEw7CiAgICAgbmV0c25tcF9jb250YWluZXIgKmNvbnRhaW5lciA9IE5VTEw7Ci0gICAgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqdGFibGVfaW5mbyA9IE5VTEw7CiAKICAgICByZWcgPQogICAgICAgICBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigic2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUiLApAQCAtMTI5LDYgKzEyOCwxNyBAQAogICAgICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUocmVnKTsKIH0KIAordm9pZAorc2h1dGRvd25fdGFibGVfc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUodm9pZCkKK3sKKyAgICBpZiAodGFibGVfaW5mbykgeworICAgICAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX2ZyZWUodGFibGVfaW5mbyk7CisJdGFibGVfaW5mbyA9IE5VTEw7CisgICAgfQorICAgIHNjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlX2NvbnRhaW5lcl9jbGVhcgorICAgICAgICAoc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGVfY29udGFpbmVyKTsKK30KKwogLyoqIGhhbmRsZXMgcmVxdWVzdHMgZm9yIHRoZSBzY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZSB0YWJsZSAqLwogaW50CiBzY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZV9oYW5kbGVyKG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIsCkBAIC0yNTMsOCArMjYzLDcgQEAKIHNjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlX2VudHJ5X2ZyZWUoc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGVfZW50cnkgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeSkKIHsKLSAgICBpZiAoZW50cnkgIT0gTlVMTCkKLSAgICAgICAgU05NUF9GUkVFKGVudHJ5KTsKKyAgICBTTk1QX0ZSRUUoZW50cnkpOwogfQogCiBuZXRzbm1wX2NvbnRhaW5lciAqCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5oIGIvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUuaAppbmRleCA0ODRjYjU4Li41YmQzYzQ4IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5oCisrKyBiL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmgKQEAgLTEzLDYgKzEzLDcgQEAKIHZvaWQgICAgICAgICAgICBpbml0X3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlKHZvaWQpOwogdm9pZCAgICAgICAgICAgIHNodXRkb3duX3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlKHZvaWQpOwogdm9pZCAgICAgICAgICAgIGluaXRpYWxpemVfdGFibGVfc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUodm9pZCk7Cit2b2lkICAgICAgICAgICAgc2h1dGRvd25fdGFibGVfc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUodm9pZCk7CiBOZXRzbm1wX05vZGVfSGFuZGxlciBzY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZV9oYW5kbGVyOwogCiAvKgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmMgYi9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuYwppbmRleCAyNTQyZWE2Li4zNjhkZDUxIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuYwpAQCAtMTAsNiArMTAsNyBAQAogI2luY2x1ZGUgInNjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5oIgogCiBzdGF0aWMgbmV0c25tcF9jb250YWluZXIgKnNjdHBMb29rdXBSZW1JUEFkZHJUYWJsZV9jb250YWluZXI7CitzdGF0aWMgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqdGFibGVfaW5mbzsKIAogLyoqIEluaXRpYWxpemVzIHRoZSBzY3RwTG9va3VwUmVtSVBBZGRyVGFibGUgbW9kdWxlICovCiB2b2lkCkBAIC0yNCw4ICsyNSw3IEBACiB2b2lkCiBzaHV0ZG93bl9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUodm9pZCkKIHsKLSAgICBzY3RwTG9va3VwUmVtSVBBZGRyVGFibGVfY29udGFpbmVyX2NsZWFyCi0gICAgICAgIChzY3RwTG9va3VwUmVtSVBBZGRyVGFibGVfY29udGFpbmVyKTsKKyAgICBzaHV0ZG93bl90YWJsZV9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUoKTsKIH0KIAogLyoqIEluaXRpYWxpemUgdGhlIHNjdHBMb29rdXBSZW1JUEFkZHJUYWJsZSB0YWJsZSBieSBkZWZpbmluZyBpdHMgY29udGVudHMgYW5kIGhvdyBpdCdzIHN0cnVjdHVyZWQgKi8KQEAgLTM5LDcgKzM5LDYgQEAKICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWcgPSBOVUxMOwogICAgIG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIgPSBOVUxMOwogICAgIG5ldHNubXBfY29udGFpbmVyICpjb250YWluZXIgPSBOVUxMOwotICAgIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm8gPSBOVUxMOwogCiAgICAgcmVnID0KICAgICAgICAgbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oInNjdHBMb29rdXBSZW1JUEFkZHJUYWJsZSIsCkBAIC0xMjMsNiArMTIyLDE3IEBACiAgICAgICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZShyZWcpOwogfQogCit2b2lkCitzaHV0ZG93bl90YWJsZV9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUodm9pZCkKK3sKKyAgICBpZiAodGFibGVfaW5mbykgeworICAgICAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX2ZyZWUodGFibGVfaW5mbyk7CisJdGFibGVfaW5mbyA9IE5VTEw7CisgICAgfQorICAgIHNjdHBMb29rdXBSZW1JUEFkZHJUYWJsZV9jb250YWluZXJfY2xlYXIKKyAgICAgICAgKHNjdHBMb29rdXBSZW1JUEFkZHJUYWJsZV9jb250YWluZXIpOworfQorCiAvKiogaGFuZGxlcyByZXF1ZXN0cyBmb3IgdGhlIHNjdHBMb29rdXBSZW1JUEFkZHJUYWJsZSB0YWJsZSAqLwogaW50CiBzY3RwTG9va3VwUmVtSVBBZGRyVGFibGVfaGFuZGxlcihuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyLApAQCAtMjUzLDggKzI2Myw3IEBACiB2b2lkCiBzY3RwTG9va3VwUmVtSVBBZGRyVGFibGVfZW50cnlfZnJlZShzY3RwTG9va3VwUmVtSVBBZGRyVGFibGVfZW50cnkgKiBlbnRyeSkKIHsKLSAgICBpZiAoZW50cnkgIT0gTlVMTCkKLSAgICAgICAgU05NUF9GUkVFKGVudHJ5KTsKKyAgICBTTk1QX0ZSRUUoZW50cnkpOwogfQogCiBuZXRzbm1wX2NvbnRhaW5lciAqCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuaCBiL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5oCmluZGV4IGUzMTVkNmQuLmI3NDUxNGMgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5oCisrKyBiL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5oCkBAIC0xMyw2ICsxMyw3IEBACiB2b2lkICAgICAgICAgICAgaW5pdF9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUodm9pZCk7CiB2b2lkICAgICAgICAgICAgc2h1dGRvd25fc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlKHZvaWQpOwogdm9pZCAgICAgICAgICAgIGluaXRpYWxpemVfdGFibGVfc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlKHZvaWQpOwordm9pZCAgICAgICAgICAgIHNodXRkb3duX3RhYmxlX3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZSh2b2lkKTsKIE5ldHNubXBfTm9kZV9IYW5kbGVyIHNjdHBMb29rdXBSZW1JUEFkZHJUYWJsZV9oYW5kbGVyOwogCiAvKgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5jIGIvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5jCmluZGV4IGE3Njc0ZTQuLmM4YTg4NzQgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlICJzY3RwTG9va3VwUmVtUG9ydFRhYmxlLmgiCiAKIHN0YXRpYyBuZXRzbm1wX2NvbnRhaW5lciAqc2N0cExvb2t1cFJlbVBvcnRUYWJsZV9jb250YWluZXI7CitzdGF0aWMgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqdGFibGVfaW5mbzsKIAogLyoqIEluaXRpYWxpemVzIHRoZSBzY3RwTG9va3VwUmVtUG9ydFRhYmxlIG1vZHVsZSAqLwogdm9pZApAQCAtMjQsOCArMjUsNyBAQAogdm9pZAogc2h1dGRvd25fc2N0cExvb2t1cFJlbVBvcnRUYWJsZSh2b2lkKQogewotICAgIHNjdHBMb29rdXBSZW1Qb3J0VGFibGVfY29udGFpbmVyX2NsZWFyCi0gICAgICAgIChzY3RwTG9va3VwUmVtUG9ydFRhYmxlX2NvbnRhaW5lcik7CisgICAgc2h1dGRvd25fdGFibGVfc2N0cExvb2t1cFJlbVBvcnRUYWJsZSgpOwogfQogCiAvKiogSW5pdGlhbGl6ZSB0aGUgc2N0cExvb2t1cFJlbVBvcnRUYWJsZSB0YWJsZSBieSBkZWZpbmluZyBpdHMgY29udGVudHMgYW5kIGhvdyBpdCdzIHN0cnVjdHVyZWQgKi8KQEAgLTM5LDcgKzM5LDYgQEAKICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWcgPSBOVUxMOwogICAgIG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIgPSBOVUxMOwogICAgIG5ldHNubXBfY29udGFpbmVyICpjb250YWluZXIgPSBOVUxMOwotICAgIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm8gPSBOVUxMOwogCiAgICAgcmVnID0KICAgICAgICAgbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oInNjdHBMb29rdXBSZW1Qb3J0VGFibGUiLApAQCAtMTIyLDYgKzEyMSwxNyBAQAogICAgICAgICBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUocmVnKTsKIH0KIAordm9pZAorc2h1dGRvd25fdGFibGVfc2N0cExvb2t1cFJlbVBvcnRUYWJsZSh2b2lkKQoreworICAgIGlmICh0YWJsZV9pbmZvKSB7CisJbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19mcmVlKHRhYmxlX2luZm8pOworCXRhYmxlX2luZm8gPSBOVUxMOworICAgIH0KKyAgICBzY3RwTG9va3VwUmVtUG9ydFRhYmxlX2NvbnRhaW5lcl9jbGVhcgorICAgICAgICAoc2N0cExvb2t1cFJlbVBvcnRUYWJsZV9jb250YWluZXIpOworfQorCiAvKiogaGFuZGxlcyByZXF1ZXN0cyBmb3IgdGhlIHNjdHBMb29rdXBSZW1Qb3J0VGFibGUgdGFibGUgKi8KIGludAogc2N0cExvb2t1cFJlbVBvcnRUYWJsZV9oYW5kbGVyKG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIsCkBAIC0yNDMsOCArMjUzLDcgQEAKIHZvaWQKIHNjdHBMb29rdXBSZW1Qb3J0VGFibGVfZW50cnlfZnJlZShzY3RwTG9va3VwUmVtUG9ydFRhYmxlX2VudHJ5ICogZW50cnkpCiB7Ci0gICAgaWYgKGVudHJ5ICE9IE5VTEwpCi0gICAgICAgIFNOTVBfRlJFRShlbnRyeSk7CisgICAgU05NUF9GUkVFKGVudHJ5KTsKIH0KIAogbmV0c25tcF9jb250YWluZXIgKgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5oIGIvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5oCmluZGV4IDk2ZDQ5Y2UuLmIyYWM4MTEgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUuaAorKysgYi9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmgKQEAgLTEzLDYgKzEzLDcgQEAKIHZvaWQgICAgICAgICAgICBpbml0X3NjdHBMb29rdXBSZW1Qb3J0VGFibGUodm9pZCk7CiB2b2lkICAgICAgICAgICAgc2h1dGRvd25fc2N0cExvb2t1cFJlbVBvcnRUYWJsZSh2b2lkKTsKIHZvaWQgICAgICAgICAgICBpbml0aWFsaXplX3RhYmxlX3NjdHBMb29rdXBSZW1Qb3J0VGFibGUodm9pZCk7Cit2b2lkICAgICAgICAgICAgc2h1dGRvd25fdGFibGVfc2N0cExvb2t1cFJlbVBvcnRUYWJsZSh2b2lkKTsKIE5ldHNubXBfTm9kZV9IYW5kbGVyIHNjdHBMb29rdXBSZW1Qb3J0VGFibGVfaGFuZGxlcjsKIAogLyoKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuYwppbmRleCA2YmMwZGU2Li5kOTk2NmZjIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5jCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5jbHVkZSAic2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5oIgogCiBzdGF0aWMgbmV0c25tcF9jb250YWluZXIgKnNjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGVfY29udGFpbmVyOworc3RhdGljIG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKnRhYmxlX2luZm87CiAKIC8qKiBJbml0aWFsaXplcyB0aGUgc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZSBtb2R1bGUgKi8KIHZvaWQKQEAgLTI0LDggKzI1LDcgQEAKIHZvaWQKIHNodXRkb3duX3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUodm9pZCkKIHsKLSAgICBzY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlX2NvbnRhaW5lcl9jbGVhcgotICAgICAgICAoc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZV9jb250YWluZXIpOworICAgIHNodXRkb3duX3RhYmxlX3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUoKTsKIH0KIAogLyoqIEluaXRpYWxpemUgdGhlIHNjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUgdGFibGUgYnkgZGVmaW5pbmcgaXRzIGNvbnRlbnRzIGFuZCBob3cgaXQncyBzdHJ1Y3R1cmVkICovCkBAIC0zOSw3ICszOSw2IEBACiAgICAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnID0gTlVMTDsKICAgICBuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyID0gTlVMTDsKICAgICBuZXRzbm1wX2NvbnRhaW5lciAqY29udGFpbmVyID0gTlVMTDsKLSAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICp0YWJsZV9pbmZvID0gTlVMTDsKIAogICAgIHJlZyA9CiAgICAgICAgIG5ldHNubXBfY3JlYXRlX2hhbmRsZXJfcmVnaXN0cmF0aW9uKCJzY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlIiwKQEAgLTEyNCw2ICsxMjMsMTcgQEAKICAgICAgICAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9mcmVlKHJlZyk7CiB9CiAKK3ZvaWQKK3NodXRkb3duX3RhYmxlX3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUodm9pZCkKK3sKKyAgICBpZiAodGFibGVfaW5mbykgeworICAgICAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX2ZyZWUodGFibGVfaW5mbyk7CisJdGFibGVfaW5mbyA9IE5VTEw7CisgICAgfQorICAgIHNjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGVfY29udGFpbmVyX2NsZWFyCisgICAgICAgIChzY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlX2NvbnRhaW5lcik7Cit9CisKIC8qKiBoYW5kbGVzIHJlcXVlc3RzIGZvciB0aGUgc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZSB0YWJsZSAqLwogaW50CiBzY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlX2hhbmRsZXIobmV0c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciwKQEAgLTI1OCw4ICsyNjgsNyBAQAogc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZV9lbnRyeV9mcmVlKHNjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGVfZW50cnkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGVudHJ5KQogewotICAgIGlmIChlbnRyeSAhPSBOVUxMKQotICAgICAgICBTTk1QX0ZSRUUoZW50cnkpOworICAgIFNOTVBfRlJFRShlbnRyeSk7CiB9CiAKIG5ldHNubXBfY29udGFpbmVyICoKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuaCBiL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuaAppbmRleCBhYWE1YTBiLi5mM2JlY2RjIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5oCkBAIC0xMyw2ICsxMyw3IEBACiB2b2lkICAgICAgICAgICAgaW5pdF9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlKHZvaWQpOwogdm9pZCAgICAgICAgICAgIHNodXRkb3duX3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUodm9pZCk7CiB2b2lkICAgICAgICAgICAgaW5pdGlhbGl6ZV90YWJsZV9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlKHZvaWQpOwordm9pZCAgICAgICAgICAgIHNodXRkb3duX3RhYmxlX3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUodm9pZCk7CiBOZXRzbm1wX05vZGVfSGFuZGxlciBzY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlX2hhbmRsZXI7CiAKIC8qCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19saW51eC5jIGIvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfbGludXguYwppbmRleCAxMTU3M2MzLi42ZGE1YTZiIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19saW51eC5jCisrKyBiL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2xpbnV4LmMKQEAgLTE0Myw4ICsxNDMsOCBAQAogICAgICAgICBpZiAocmV0IDwgMCkgewogICAgICAgICAgICAgREVCVUdNU0dUTCgoInNjdHA6c2NhbGFyczpzdGF0czphcmNoX2xvYWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24gZW50cnk6ICVzXG4iLCBsaW5lKSk7Ci0gICAgICAgICAgICAvLyBmY2xvc2UoZik7Ci0gICAgICAgICAgICAvLyByZXR1cm4gcmV0OworICAgICAgICAgICAgLyogZmNsb3NlKGYpOyAqLworICAgICAgICAgICAgLyogcmV0dXJuIHJldDsgKi8KIAkgICAgcmV0ID0gMDsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmMgYi9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5jCmluZGV4IDIzNzY3OTUuLmIyOGVhMDMgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uYwpAQCAtMSw0ICsxLDUgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KIApAQCAtMTIsNiArMTMsOCBAQAogI2luY2x1ZGUgInNjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuaCIKICNpbmNsdWRlICJzY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY29udGFpbmVyX2xpZm8pCisKIHN0YXRpYyB2b2lkCiBzY3RwQXNzb2NUYWJsZV9jb2xsZWN0X2ludmFsaWQodm9pZCAqd2hhdCwgdm9pZCAqbWFnaWMpCiB7CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2xpbnV4LmMgYi9hZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2xpbnV4LmMKaW5kZXggMTU4NjU1NC4uOGU2Mjg2MCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5jCisrKyBiL2FnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfbGludXguYwpAQCAtMjgxLDYgKzI4MSw4IEBACiAgICAgICAgIHJldHVybiBTTk1QX0VSUl9HRU5FUlI7CiAgICAgfQogCisgICAgbmV0c25tcF9nZXRfcGlkX2Zyb21faW5vZGVfaW5pdCgpOworCiAgICAgLyoKICAgICAgKiBpZ25vcmUgdGhlIGhlYWRlci4gCiAgICAgICovCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9zbXV4L3NtdXguYyBiL2FnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCmluZGV4IDY5ODcxN2MuLjQ1OThjMmIgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCisrKyBiL2FnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCkBAIC00LDYgKzQsNyBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPGN0eXBlLmg+CiAKQEAgLTY4LDYgKzY5LDggQEAKICNpbmNsdWRlICJtaWJkZWZzLmgiCiAjaW5jbHVkZSAic25tcGQuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoc25wcmludF9vYmppZCkKKwogbG9uZyAgICAgICAgICAgIHNtdXhfbG9uZzsKIHVfbG9uZyAgICAgICAgICBzbXV4X3Vsb25nOwogc3RydWN0IHNvY2thZGRyX2luIHNtdXhfc2E7CkBAIC00MTQsNyArNDE3LDcgQEAKICAgICAgICAgICAgIHJldHVybiBTTk1QX0VSUl9HRU5FUlI7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoc2VuZHRvKHJwdHItPnNyX2ZkLCBidWYsIGxlbiwgMCwgTlVMTCwgMCkgPCAwKSB7CisgICAgICAgIGlmIChzZW5kdG8ocnB0ci0+c3JfZmQsICh2b2lkICopIGJ1ZiwgbGVuLCAwLCBOVUxMLCAwKSA8IDApIHsKICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJzbXV4IiwgIlt2YXJfc211eF93cml0ZV0gc2VuZCBmYWlsZWRcbiIpKTsKICAgICAgICAgICAgIHJldHVybiBTTk1QX0VSUl9HRU5FUlI7CiAgICAgICAgIH0KQEAgLTQyMyw3ICs0MjYsNyBAQAogICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAqIHBlZWsgYXQgd2hhdCdzIHJlY2VpdmVkIAogICAgICAgICAgICAgICovCi0gICAgICAgICAgICBpZiAoKGxlbiA9IHJlY3Zmcm9tKHJwdHItPnNyX2ZkLCBidWYsCisgICAgICAgICAgICBpZiAoKGxlbiA9IHJlY3Zmcm9tKHJwdHItPnNyX2ZkLCAodm9pZCAqKSBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU01VWE1BWFBLVFNJWkUsIE1TR19QRUVLLCBOVUxMLCBOVUxMKSkgPD0gMCkgewogICAgICAgICAgICAgICAgIGlmICgobGVuID09IC0xKSAmJiAoKGVycm5vID09IEVJTlRSKSB8fCAoZXJybm8gPT0gRUFHQUlOKSkpCiAgICAgICAgICAgICAgICAgewpAQCAtNDYzLDcgKzQ2Niw3IEBACiAgICAgICAgICAgICBkbwogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbGVuID0gdG1wX2xlbjsKLSAgICAgICAgICAgICAgIGxlbiA9IHJlY3Zmcm9tKHJwdHItPnNyX2ZkLCBidWYsIGxlbiwgMCwgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICAgICBsZW4gPSByZWN2ZnJvbShycHRyLT5zcl9mZCwgKHZvaWQgKikgYnVmLCBsZW4sIDAsIE5VTEwsIE5VTEwpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgd2hpbGUoKGxlbiA9PSAtMSkgJiYgKChlcnJubyA9PSBFSU5UUikgfHwgKGVycm5vID09IEVBR0FJTikpKTsKIApAQCAtNTQ3LDcgKzU1MCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAiW3Zhcl9zbXV4X3dyaXRlXSBlbnRlcmluZyBGUkVFIC0gc2VuZGluZyBDb21taXQgXG4iKSk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoKHNlbmR0byhycHRyLT5zcl9mZCwgc291dCwgMywgMCwgTlVMTCwgMCkpIDwgMCkgeworICAgICAgICBpZiAoKHNlbmR0byhycHRyLT5zcl9mZCwgKHZvaWQgKikgc291dCwgMywgMCwgTlVMTCwgMCkpIDwgMCkgewogICAgICAgICAgICAgREVCVUdNU0dUTCgoInNtdXgiLAogICAgICAgICAgICAgICAgICAgICAgICAgIlt2YXJfc211eF93cml0ZV0gc2VuZCByb2xsYmFjay9jb21taXQgZmFpbGVkXG4iKSk7CiAgICAgICAgICAgICByZXR1cm4gU05NUF9FUlJfR0VORVJSOwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyBiL2FnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmMKaW5kZXggNWI1NmYxZi4uZDFjNTc1ZiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jCkBAIC0xNCw2ICsxNCw3IEBACiAgKiBzdGFuZGFyZCBOZXQtU05NUCBpbmNsdWRlcyAKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCkBAIC0yNiw2ICsyNyw4IEBACiAKICNpbmNsdWRlICJzbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX3N0b3JhZ2VfdHJhbnNpdGlvbikKKwogY29uc3Qgb2lkICAgICAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZV9vaWRbXSA9CiAgICAgeyBTTk1QTk9USUZZRklMVEVSVEFCTEVfT0lEIH07CiBjb25zdCBpbnQgICAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlX29pZF9zaXplID0KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMgYi9hZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCmluZGV4IDk0ZDg2ODcuLjk0MmE4NjUgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYwpAQCAtOCw2ICs4LDcgQEAKICAqIHN0YW5kYXJkIE5ldC1TTk1QIGluY2x1ZGVzIAogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS92YWNtLmg+CkBAIC0yMCw2ICsyMSw4IEBACiAKICNpbmNsdWRlICJzbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoc25tcE5vdGlmeUZpbHRlclRhYmxlX2NvbnRhaW5lcl9nZXQpCisKIC8qKiBAaW5ncm91cCBpbnRlcmZhY2UgCiAgKiBAYWRkdG9ncm91cCBkYXRhX2FjY2VzcyBkYXRhX2FjY2VzczogUm91dGluZXMgdG8gYWNjZXNzIGRhdGEKICAqCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYyBiL2FnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jCmluZGV4IGFmNGFkMzcuLjQwNDBlM2YgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jCkBAIC0zMCw2ICszMCw3IEBACiAgKiBzdGFuZGFyZCBOZXQtU05NUCBpbmNsdWRlcyAKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCkBAIC00Niw2ICs0NywyMiBAQAogCiAjaW5jbHVkZSA8Y3R5cGUuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHNubXBOb3RpZnlGaWx0ZXJUYWJsZV9leHRlcm5hbF9hY2Nlc3MsIGxpYm5ldHNubXBtaWJzKQorCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShyb3dfbWVyZ2UpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShiYWJ5X3N0ZXBzKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfY29udGFpbmVyX3Jvd19pbnNlcnQpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja19hbGxfcmVxdWVzdHNfZXJyb3IpCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfdmJfdHlwZV9hbmRfbWF4X3NpemUpCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHNubXBOb3RpZnlGaWx0ZXJUYWJsZV9jb250YWluZXJfc2l6ZSwgc25tcE5vdGlmeUZpbHRlclRhYmxlX2V4dGVybmFsX2FjY2VzcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzbm1wTm90aWZ5RmlsdGVyVGFibGVfcmVnaXN0cmF0aW9uX3NldCwgc25tcE5vdGlmeUZpbHRlclRhYmxlX2V4dGVybmFsX2FjY2VzcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzbm1wTm90aWZ5RmlsdGVyVGFibGVfcmVnaXN0cmF0aW9uX2dldCwgc25tcE5vdGlmeUZpbHRlclRhYmxlX2V4dGVybmFsX2FjY2VzcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzbm1wTm90aWZ5RmlsdGVyVGFibGVfY29udGFpbmVyX2dldCwgc25tcE5vdGlmeUZpbHRlclRhYmxlX2V4dGVybmFsX2FjY2VzcykKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKioqCkBAIC05NiwxOSArMTEzLDIzIEBACiAgICAgX3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9jb250YWluZXJfc2h1dGRvd24KICAgICAoc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZV9jdHggKiBpZl9jdHgpOwogCi0KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TTk1QTk9USUZZRklMVEVSVEFCTEVfQ09OVEFJTkVSX0dFVAogbmV0c25tcF9jb250YWluZXIgKgogc25tcE5vdGlmeUZpbHRlclRhYmxlX2NvbnRhaW5lcl9nZXQodm9pZCkKIHsKICAgICByZXR1cm4gc25tcE5vdGlmeUZpbHRlclRhYmxlX2lmX2N0eC5jb250YWluZXI7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TTk1QTk9USUZZRklMVEVSVEFCTEVfQ09OVEFJTkVSX0dFVCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU05NUE5PVElGWUZJTFRFUlRBQkxFX1JFR0lTVFJBVElPTl9HRVQKIHNubXBOb3RpZnlGaWx0ZXJUYWJsZV9yZWdpc3RyYXRpb24gKgogc25tcE5vdGlmeUZpbHRlclRhYmxlX3JlZ2lzdHJhdGlvbl9nZXQodm9pZCkKIHsKICAgICByZXR1cm4gc25tcE5vdGlmeUZpbHRlclRhYmxlX2lmX2N0eC51c2VyX2N0eDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NOTVBOT1RJRllGSUxURVJUQUJMRV9SRUdJU1RSQVRJT05fR0VUICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TTk1QTk9USUZZRklMVEVSVEFCTEVfUkVHSVNUUkFUSU9OX1NFVAogc25tcE5vdGlmeUZpbHRlclRhYmxlX3JlZ2lzdHJhdGlvbiAqCiBzbm1wTm90aWZ5RmlsdGVyVGFibGVfcmVnaXN0cmF0aW9uX3NldChzbm1wTm90aWZ5RmlsdGVyVGFibGVfcmVnaXN0cmF0aW9uICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3JlZykKQEAgLTExOCwxMiArMTM5LDE1IEBACiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlX2lmX2N0eC51c2VyX2N0eCA9IG5ld3JlZzsKICAgICByZXR1cm4gb2xkOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU05NUE5PVElGWUZJTFRFUlRBQkxFX1JFR0lTVFJBVElPTl9TRVQgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NOTVBOT1RJRllGSUxURVJUQUJMRV9DT05UQUlORVJfU0laRQogaW50CiBzbm1wTm90aWZ5RmlsdGVyVGFibGVfY29udGFpbmVyX3NpemUodm9pZCkKIHsKICAgICByZXR1cm4gQ09OVEFJTkVSX1NJWkUoc25tcE5vdGlmeUZpbHRlclRhYmxlX2lmX2N0eC5jb250YWluZXIpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU05NUE5PVElGWUZJTFRFUlRBQkxFX0NPTlRBSU5FUl9TSVpFICovCiAKIHVfaW50CiBzbm1wTm90aWZ5RmlsdGVyVGFibGVfZGlydHlfZ2V0KHZvaWQpCkBAIC0yNjEsNyArMjg1LDcgQEAKICAgICAgICAgX21mZF9zbm1wTm90aWZ5RmlsdGVyVGFibGVfcG9zdF9yZXF1ZXN0OwogCiAKLSNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCisjaWYgIShkZWZpbmVkKE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCkgfHwgZGVmaW5lZChORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQpKQogICAgIC8qCiAgICAgICogUkVRVUlSRUQgd3JhcHBlcnMgZm9yIHNldCByZXF1ZXN0IGhhbmRsaW5nCiAgICAgICovCkBAIC0yODcsNyArMzExLDcgQEAKICAgICAgKi8KICAgICBhY2Nlc3NfbXVsdGlwbGV4ZXItPmNvbnNpc3RlbmN5X2NoZWNrcyA9CiAgICAgICAgIF9tZmRfc25tcE5vdGlmeUZpbHRlclRhYmxlX2NoZWNrX2RlcGVuZGVuY2llczsKLSNlbmRpZgorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCB8fCBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQgKi8KIAogICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICoKQEAgLTMwMyw4ICszMjcsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGVfb2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGVfb2lkX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX0JBQllfU1RFUAotI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgSEFORExFUl9DQU5fUldSSVRFCisjaWYgIShkZWZpbmVkKE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCkgfHwgZGVmaW5lZChORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEhBTkRMRVJfQ0FOX1JXUklURQogI2VuZGlmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgIGlmIChOVUxMID09IHJlZ2luZm8pIHsKQEAgLTMyNSw3ICszNDksNyBAQAogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnBvc3RfcmVxdWVzdCkKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9QT1NUX1JFUVVFU1Q7CiAKLSNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCisjaWYgIShkZWZpbmVkKE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCkgfHwgZGVmaW5lZChORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQpKQogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnNldF92YWx1ZXMpCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfU0VUX1ZBTFVFUzsKICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT5pcnJldmVyc2libGVfY29tbWl0KQpAQCAtMzQ4LDcgKzM3Miw3IEBACiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfQ09NTUlUOwogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnVuZG9fY29tbWl0KQogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX1VORE9fQ09NTUlUOwotI2VuZGlmCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUIHx8IE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCAqLwogCiAgICAgaGFuZGxlciA9IG5ldHNubXBfYmFieV9zdGVwc19oYW5kbGVyX2dldChtZmRfbW9kZXMpOwogICAgIG5ldHNubXBfaW5qZWN0X2hhbmRsZXIocmVnaW5mbywgaGFuZGxlcik7CkBAIC0xMDgzLDcgKzExMDcsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9jdHgsIHJvd3JlcV9jdHgpOwogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBfc25tcE5vdGlmeUZpbHRlclRhYmxlX2NoZWNrX2luZGV4ZXMgKi8KIAotI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKKyNpZiAhKGRlZmluZWQoTkVUU05NUF9OT19XUklURV9TVVBQT1JUKSB8fCBkZWZpbmVkKE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCkpCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBTRVQgcHJvY2Vzc2luZwpAQCAtMTgzOSw3ICsxODYzLDcgQEAKIAogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBfbWZkX3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pcnJldmVyc2libGVfY29tbWl0ICovCi0jZW5kaWYKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgfHwgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKQEAgLTIwMTQsMTUgKzIwMzgsMTggQEAKIHNubXBOb3RpZnlGaWx0ZXJUYWJsZV9jb250YWluZXJfaW5pdF9wZXJzaXN0ZW5jZShuZXRzbm1wX2NvbnRhaW5lcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpjb250YWluZXIpCiB7CisgICAgbmV0c25tcF9jb250YWluZXIgKipjb250YWluZXJfcDsKICAgICBpbnQgICAgICAgICAgICAgcmM7CiAKICAgICByZWdpc3Rlcl9jb25maWdfaGFuZGxlcihOVUxMLCByb3dfdG9rZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9jb250YWluZXJfcm93X3Jlc3RvcmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgY29udGFpbmVyX3AgPSBuZXRzbm1wX21lbWR1cCgmY29udGFpbmVyLCBzaXplb2YoY29udGFpbmVyKSk7CisgICAgbmV0c25tcF9hc3NlcnQoY29udGFpbmVyX3ApOwogICAgIHJjID0gc25tcF9yZWdpc3Rlcl9jYWxsYmFjayhTTk1QX0NBTExCQUNLX0xJQlJBUlksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBfQ0FMTEJBQ0tfU1RPUkVfREFUQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9jb250YWluZXJfc2F2ZV9yb3dzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJfcCk7CiAKICAgICBpZiAocmMgIT0gU05NUF9FUlJfTk9FUlJPUikKICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgImVycm9yIHJlZ2lzdGVyaW5nIGZvciBTVE9SRV9EQVRBIGNhbGxiYWNrICIKQEAgLTIwNDAsNyArMjA2Nyw3IEBACiAgICAgICAgICIjXG4iICIjIHNubXBOb3RpZnlGaWx0ZXJUYWJsZSBwZXJzaXN0ZW50IGRhdGFcbiIgIiMiOwogICAgIGNoYXIgICAgICAgICAgICp0eXBlID0gbmV0c25tcF9kc19nZXRfc3RyaW5nKE5FVFNOTVBfRFNfTElCUkFSWV9JRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9BUFBUWVBFKTsKLSAgICBuZXRzbm1wX2NvbnRhaW5lciAqYyA9IChuZXRzbm1wX2NvbnRhaW5lciAqKSBjbGllbnRhcmc7CisgICAgbmV0c25tcF9jb250YWluZXIgKmMgPSAqKG5ldHNubXBfY29udGFpbmVyICoqKWNsaWVudGFyZzsKIAogICAgIERFQlVHTVNHVEwoKCJpbnRlcm5hbDpzbm1wTm90aWZ5RmlsdGVyVGFibGU6IgogICAgICAgICAgICAgICAgICJfc25tcE5vdGlmeUZpbHRlclRhYmxlX2NvbnRhaW5lcl9zYXZlX3Jvd3MiLApAQCAtMjQwNiw2ICsyNDMzLDcgQEAKIH0KIAogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU05NUE5PVElGWUZJTFRFUlRBQkxFX0VYVEVSTkFMX0FDQ0VTUwogc25tcE5vdGlmeUZpbHRlclRhYmxlX3Jvd3JlcV9jdHggKgogc25tcE5vdGlmeUZpbHRlclRhYmxlX3Jvd19maW5kX2J5X21pYl9pbmRleChzbm1wTm90aWZ5RmlsdGVyVGFibGVfbWliX2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogbWliX2lkeCkKQEAgLTI0MzMsMyArMjQ2MSw0IEBACiAKICAgICByZXR1cm4gcm93cmVxX2N0eDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NOTVBOT1RJRllGSUxURVJUQUJMRV9FWFRFUk5BTF9BQ0NFU1MgKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jIGIvYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKaW5kZXggYmVhNjdlZC4uMDQyMzFmOSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKQEAgLTMwLDYgKzMwLDcgQEAKICAqIHN0YW5kYXJkIE5ldC1TTk1QIGluY2x1ZGVzIAogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAKQEAgLTQ2LDYgKzQ3LDEwIEBACiAKICNpbmNsdWRlIDxjdHlwZS5oPgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShyb3dfbWVyZ2UpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShiYWJ5X3N0ZXBzKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfYWxsX3JlcXVlc3RzX2Vycm9yKQorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqKioKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMgYi9hZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jCmluZGV4IDg3ZjRkOTEuLmU3NTY3ODggMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYwpAQCAtMyw2ICszLDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oPgpAQCAtMTAsOSArMTEsMTQgQEAKICNpbmNsdWRlICJ1dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmgiCiAjaW5jbHVkZSAic25tcEVuZ2luZS5oIgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yoc25tcGVuZ2luZV9hbGwsIGxpYm5ldHNubXBtaWJzKQorCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YocmVnaXN0ZXJfc25tcEVuZ2luZV9zY2FsYXJzX2NvbnRleHQsIHNubXBlbmdpbmVfYWxsKQorCiBzdHJ1Y3QgdmFyaWFibGUyIHNubXBFbmdpbmVfdmFyaWFibGVzW10gPSB7CiAgICAge1NOTVBFTkdJTkVJRCwgQVNOX09DVEVUX1NUUiwgTkVUU05NUF9PTERBUElfUk9OTFksCiAgICAgIHZhcl9zbm1wRW5naW5lLCAxLCB7MX19LAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgCiAjaWZkZWYgTkVUU05NUF9FTkFCTEVfVEVTVElOR19DT0RFCiAgICAge1NOTVBFTkdJTkVCT09UUywgQVNOX0lOVEVHRVIsIE5FVFNOTVBfT0xEQVBJX1JXUklURSwKICAgICAgdmFyX3NubXBFbmdpbmUsIDEsIHsyfX0sCkBAIC0yNCw2ICszMCwxMiBAQAogICAgIHtTTk1QRU5HSU5FVElNRSwgQVNOX0lOVEVHRVIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAogICAgICB2YXJfc25tcEVuZ2luZSwgMSwgezN9fSwKICNlbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTkVUU05NUF9FTkFCTEVfVEVTVElOR19DT0RFICovCisjZWxzZSAgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLyAKKyAgICB7U05NUEVOR0lORUJPT1RTLCBBU05fSU5URUdFUiwgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9zbm1wRW5naW5lLCAxLCB7Mn19LAorICAgIHtTTk1QRU5HSU5FVElNRSwgQVNOX0lOVEVHRVIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfc25tcEVuZ2luZSwgMSwgezN9fSwKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovIAogICAgIHtTTk1QRU5HSU5FTUFYTUVTU0FHRVNJWkUsIEFTTl9JTlRFR0VSLCBORVRTTk1QX09MREFQSV9ST05MWSwKICAgICAgdmFyX3NubXBFbmdpbmUsIDEsIHs0fX0sCiB9OwpAQCAtNDEsNiArNTMsNyBAQAogICAgICAgICAgICAgICAgICBzbm1wRW5naW5lX3ZhcmlhYmxlc19vaWQpOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUkVHSVNURVJfU05NUEVOR0lORV9TQ0FMQVJTX0NPTlRFWFQKIHZvaWQKIHJlZ2lzdGVyX3NubXBFbmdpbmVfc2NhbGFyc19jb250ZXh0KGNvbnN0IGNoYXIgKmNvbnRleHROYW1lKQogewpAQCAtNTMsNiArNjYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgIERFRkFVTFRfTUlCX1BSSU9SSVRZLCAwLCAwLCBOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHROYW1lLCAtMSwgMCk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUdJU1RFUl9TTk1QRU5HSU5FX1NDQUxBUlNfQ09OVEVYVCAqLwogCiB2b2lkCiBpbml0X3NubXBFbmdpbmUodm9pZCkKQEAgLTYyLDEyICs3NiwxNCBAQAogICAgIHJlZ2lzdGVyX3NubXBFbmdpbmVfc2NhbGFycygpOwogfQogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogI2lmZGVmIE5FVFNOTVBfRU5BQkxFX1RFU1RJTkdfQ09ERQogaW50ICAgICAgICAgICAgIHdyaXRlX2VuZ2luZUJvb3RzKGludCwgdV9jaGFyICosIHVfY2hhciwgc2l6ZV90LCB1X2NoYXIgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvaWQgKiwgc2l6ZV90KTsKIGludCAgICAgICAgICAgICB3cml0ZV9lbmdpbmVUaW1lKGludCwgdV9jaGFyICosIHVfY2hhciwgc2l6ZV90LCB1X2NoYXIgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9pZCAqLCBzaXplX3QpOwogI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBORVRTTk1QX0VOQUJMRV9URVNUSU5HX0NPREUgKi8KKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogdV9jaGFyICAgICAgICAgKgogdmFyX3NubXBFbmdpbmUoc3RydWN0IHZhcmlhYmxlICp2cCwKQEAgLTEwMSwxNiArMTE3LDIwIEBACiAgICAgICAgIHJldHVybiAodW5zaWduZWQgY2hhciAqKSBlbmdpbmVJRDsKIAogICAgIGNhc2UgU05NUEVOR0lORUJPT1RTOgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICNpZmRlZiBORVRTTk1QX0VOQUJMRV9URVNUSU5HX0NPREUKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX2VuZ2luZUJvb3RzOwogI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBORVRTTk1QX0VOQUJMRV9URVNUSU5HX0NPREUgKi8KKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgIGxvbmdfcmV0ID0gc25tcHYzX2xvY2FsX3NubXBFbmdpbmVCb290cygpOwogICAgICAgICByZXR1cm4gKHVuc2lnbmVkIGNoYXIgKikgJmxvbmdfcmV0OwogCiAgICAgY2FzZSBTTk1QRU5HSU5FVElNRToKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAjaWZkZWYgTkVUU05NUF9FTkFCTEVfVEVTVElOR19DT0RFCiAgICAgICAgICp3cml0ZV9tZXRob2QgPSB3cml0ZV9lbmdpbmVUaW1lOwogI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBORVRTTk1QX0VOQUJMRV9URVNUSU5HX0NPREUgKi8KKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgIGxvbmdfcmV0ID0gc25tcHYzX2xvY2FsX3NubXBFbmdpbmVUaW1lKCk7CiAgICAgICAgIHJldHVybiAodW5zaWduZWQgY2hhciAqKSAmbG9uZ19yZXQ7CiAKQEAgLTEyNSw2ICsxNDUsOCBAQAogICAgIHJldHVybiBOVUxMOwogfQogCisKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAjaWZkZWYgTkVUU05NUF9FTkFCTEVfVEVTVElOR19DT0RFCiAvKgogICogd3JpdGVfZW5naW5lQm9vdHMoKToKQEAgLTIyMSwzICsyNDMsNCBAQAogfQogCiAjZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE5FVFNOTVBfRU5BQkxFX1RFU1RJTkdfQ09ERSAqLworI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYyBiL2FnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMKaW5kZXggZmEyM2RkNS4uYTdmYzJjZSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYworKysgYi9hZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5jCkBAIC00LDYgKzQsOCBAQAogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CiAKKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgorCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaD4KQEAgLTE2LDYgKzE4LDggQEAKICNkZWZpbmUgc25tcE1QRE1JQk9iamVjdHMgc25tcE1QRE1JQiwgMgogI2RlZmluZSBzbm1wTVBETUlCQ29tcGxpYW5jZXMgc25tcE1QRE1JQiwgMywgMQogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShoZWxwZXJfc3RhdGlzdGljcykKKwogc3RhdGljIG9pZCBzbm1wTVBEU3RhdHNbXSA9IHsgc25tcE1QRE1JQk9iamVjdHMsIDEgfTsKIAogc3RhdGljIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24qIHNubXBNUERTdGF0c19yZWcgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMgYi9hZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYwppbmRleCAxYWE0MTA1Li43MThlMDcxIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYworKysgYi9hZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYwpAQCAtNzEsNSArNzEsNiBAQAogICAgICAgICBsb25nX3JldCA9IHNubXBfZ2V0X3N0YXRpc3RpYyh0bWFnaWMgKyBTVEFUX1VTTV9TVEFUU19TVEFSVCk7CiAgICAgICAgIHJldHVybiAodW5zaWduZWQgY2hhciAqKSAmbG9uZ19yZXQ7CiAgICAgfQorCiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmMgYi9hZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmMKaW5kZXggYjU2ZjE5Yi4uYmNkMDRlMSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jCisrKyBiL2FnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYwpAQCAtNCw2ICs0LDggQEAKIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgogCisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KKwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmg+CkBAIC0yMCw2ICsyMiw4IEBACiBzdGF0aWMgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiogdXNtU3RhdHNfcmVnID0gTlVMTDsKIHN0YXRpYyBvaWQgdXNtTUlCQ29tcGxpYW5jZVtdID0geyB1c21NSUJDb21wbGlhbmNlcywgMSB9OwogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShoZWxwZXJfc3RhdGlzdGljcykKKwogdm9pZAogaW5pdF91c21TdGF0c181XzUodm9pZCkKIHsKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgYi9hZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jCmluZGV4IDg5MWY5ZmMuLjlmMDUwM2QgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYwpAQCAtMyw2ICszLDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KIAogI2lmIEhBVkVfU1RSSU5HX0gKQEAgLTE3LDcgKzE4LDEyIEBACiAjaW5jbHVkZSAidXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5oIgogI2luY2x1ZGUgInVzbVVzZXIuaCIKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgCiBpbnQgdXNtU3RhdHVzQ2hlY2soc3RydWN0IHVzbVVzZXIgKnVwdHIpOworI2VuZGlmICAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih1c211c2VyX2FsbCwgbGlibmV0c25tcG1pYnMpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaW5pdF9yZWdpc3Rlcl91c211c2VyX2NvbnRleHQsIHVzbXVzZXJfYWxsKQogCiBzdHJ1Y3QgdmFyaWFibGU0IHVzbVVzZXJfdmFyaWFibGVzW10gPSB7CiAgICAge1VTTVVTRVJTUElOTE9DSywgQVNOX0lOVEVHRVIsIE5FVFNOTVBfT0xEQVBJX1JXUklURSwKQEAgLTY0LDYgKzcwLDcgQEAKICAgICAgICAgICAgICAgICAgdXNtVXNlcl92YXJpYWJsZXNfb2lkKTsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lOSVRfUkVHSVNURVJfVVNNVVNFUl9DT05URVhUCiB2b2lkCiBpbml0X3JlZ2lzdGVyX3VzbVVzZXJfY29udGV4dChjb25zdCBjaGFyICpjb250ZXh0TmFtZSkgewogICAgIHJlZ2lzdGVyX21pYl9jb250ZXh0KCJzbm1wdjMvdXNtVXNlciIsCkBAIC03NSw2ICs4Miw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgREVGQVVMVF9NSUJfUFJJT1JJVFksIDAsIDAsIE5VTEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dE5hbWUsIC0xLCAwKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lOSVRfUkVHSVNURVJfVVNNVVNFUl9DT05URVhUICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLW8tKioqKioqCiAgKiB1c21fZ2VuZXJhdGVfT0lECkBAIC0zMDMsOCArMzExLDExIEBACiAgICAgaWYgKCF2cCB8fCAhbmFtZSB8fCAhbGVuZ3RoIHx8ICF2YXJfbGVuKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgICp3cml0ZV9tZXRob2QgPSAoV3JpdGVNZXRob2QqKTA7ICAgIC8qIGFzc3VtZSBpdCBpc250IHdyaXRhYmxlIGZvciB0aGUgdGltZSBiZWluZyAqLwotICAgICp2YXJfbGVuID0gc2l6ZW9mKGxvbmdfcmV0KTsgICAgICAgIC8qIGFzc3VtZSBhbiBpbnRlZ2VyIGFuZCBjaGFuZ2UgbGF0ZXIgaWYgbm90ICovCisgICAgLyogYXNzdW1lIGl0IGlzbnQgd3JpdGFibGUgZm9yIHRoZSB0aW1lIGJlaW5nICovCisgICAgKndyaXRlX21ldGhvZCA9IChXcml0ZU1ldGhvZCopMDsgICAgCisKKyAgICAvKiBhc3N1bWUgYW4gaW50ZWdlciBhbmQgY2hhbmdlIGxhdGVyIGlmIG5vdCAqLworICAgICp2YXJfbGVuID0gc2l6ZW9mKGxvbmdfcmV0KTsKIAogICAgIGlmICh2cC0+bWFnaWMgIT0gVVNNVVNFUlNQSU5MT0NLKSB7CiAgICAgICAgIG9pZCAgICAgICAgICAgICBuZXduYW1lW01BWF9PSURfTEVOXTsKQEAgLTM3NCw2ICszODUsNyBAQAogICAgICAgICAgICAgaW5kZXhPaWQgPSB1c21fZ2VuZXJhdGVfT0lEKHZwLT5uYW1lLCB2cC0+bmFtZWxlbiwgdXB0ciwgJmxlbik7CiAgICAgICAgICAgICAqbGVuZ3RoID0gbGVuOwogICAgICAgICAgICAgbWVtbW92ZShuYW1lLCBpbmRleE9pZCwgbGVuICogc2l6ZW9mKG9pZCkpOworCiAgICAgICAgICAgICBERUJVR01TR1RMKCgidXNtVXNlciIsICJGb3VuZCB1c2VyOiAlcyAtICIsIHVwdHItPm5hbWUpKTsKICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAoaW50KSB1cHRyLT5lbmdpbmVJRExlbjsgaSsrKSB7CiAgICAgICAgICAgICAgICAgREVCVUdNU0coKCJ1c21Vc2VyIiwgIiAleCIsIHVwdHItPmVuZ2luZUlEW2ldKSk7CkBAIC0zOTAsNiArNDAyLDcgQEAKICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZW5kaWYgLS0gdnAtPm1hZ2ljICE9IFVTTVVTRVJTUElOTE9DSyAqLwogCiAgICAgc3dpdGNoICh2cC0+bWFnaWMpIHsKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUIAogICAgIGNhc2UgVVNNVVNFUlNQSU5MT0NLOgogICAgICAgICAqd3JpdGVfbWV0aG9kID0gd3JpdGVfdXNtVXNlclNwaW5Mb2NrOwogICAgICAgICBsb25nX3JldCA9IHVzbVVzZXJTcGluTG9jazsKQEAgLTQ4NSwxNSArNDk4LDIxIEBACiAgICAgICAgICAgICByZXR1cm4gKHVuc2lnbmVkIGNoYXIgKikgJmxvbmdfcmV0OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBOVUxMOwotCiAgICAgZGVmYXVsdDoKICAgICAgICAgREVCVUdNU0dUTCgoInNubXBkIiwgInVua25vd24gc3ViLWlkICVkIGluIHZhcl91c21Vc2VyXG4iLAogICAgICAgICAgICAgICAgICAgICB2cC0+bWFnaWMpKTsKKyNlbHNlIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8gCisgICAgZGVmYXVsdDoKKyAgICAgICAgREVCVUdNU0dUTCgoInNubXBkIiwgIm5vIHdyaXRlIHN1cHBvcnQgZm9yIHZhcl91c21Vc2VyXG4iKSk7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLyAKICAgICB9CiAgICAgcmV0dXJuIE5VTEw7CiAKIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZW5kIHZhcl91c21Vc2VyKCkgKi8KIAorCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAKKwogLyoKICAqIHdyaXRlX3VzbVVzZXJTcGluTG9jaygpOiBjYWxsZWQgd2hlbiBhIHNldCBpcyBwZXJmb3JtZWQgb24gdGhlCiAgKiB1c21Vc2VyU3BpbkxvY2sgb2JqZWN0IApAQCAtNzQ3LDcgKzc2Niw2IEBACiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKGFjdGlvbiA9PSBDT01NSVQpIHsKICAgICAgICAgU05NUF9GUkVFKG9wdHIpOwotICAgICAgICBvcHRyID0gTlVMTDsKICAgICB9IGVsc2UgaWYgKGFjdGlvbiA9PSBGUkVFIHx8IGFjdGlvbiA9PSBVTkRPKSB7CiAgICAgICAgIGlmICgodXB0ciA9IHVzbV9wYXJzZV91c2VyKG5hbWUsIG5hbWVfbGVuKSkgIT0gTlVMTCkgewogICAgICAgICAgICAgaWYgKHJlc2V0T25GYWlsKSB7CkBAIC04OTAsNyArOTA4LDYgQEAKICAgICAgICAgdXB0ci0+YXV0aEtleUxlbiA9IGJ1ZmxlbjsKICAgICB9IGVsc2UgaWYgKGFjdGlvbiA9PSBDT01NSVQpIHsKICAgICAgICAgU05NUF9GUkVFKG9sZGtleSk7Ci0gICAgICAgIG9sZGtleSA9IE5VTEw7CiAgICAgfSBlbHNlIGlmIChhY3Rpb24gPT0gVU5ETykgewogICAgICAgICBpZiAoKHVwdHIgPSB1c21fcGFyc2VfdXNlcihuYW1lLCBuYW1lX2xlbikpICE9IE5VTEwgJiYgcmVzZXRPbkZhaWwpIHsKICAgICAgICAgICAgIFNOTVBfRlJFRSh1cHRyLT5hdXRoS2V5KTsKQEAgLTEwMTUsNyArMTAzMiw2IEBACiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKGFjdGlvbiA9PSBDT01NSVQpIHsKICAgICAgICAgU05NUF9GUkVFKG9wdHIpOwotICAgICAgICBvcHRyID0gTlVMTDsKICAgICB9IGVsc2UgaWYgKGFjdGlvbiA9PSBGUkVFIHx8IGFjdGlvbiA9PSBVTkRPKSB7CiAgICAgICAgIGlmICgodXB0ciA9IHVzbV9wYXJzZV91c2VyKG5hbWUsIG5hbWVfbGVuKSkgIT0gTlVMTCkgewogICAgICAgICAgICAgaWYgKHJlc2V0T25GYWlsKSB7CkBAIC0xMTQwLDcgKzExNTYsNiBAQAogICAgICAgICB1cHRyLT5wcml2S2V5TGVuID0gYnVmbGVuOwogICAgIH0gZWxzZSBpZiAoYWN0aW9uID09IENPTU1JVCkgewogICAgICAgICBTTk1QX0ZSRUUob2xka2V5KTsKLSAgICAgICAgb2xka2V5ID0gTlVMTDsKICAgICB9IGVsc2UgaWYgKGFjdGlvbiA9PSBVTkRPKSB7CiAgICAgICAgIGlmICgodXB0ciA9IHVzbV9wYXJzZV91c2VyKG5hbWUsIG5hbWVfbGVuKSkgIT0gTlVMTCAmJiByZXNldE9uRmFpbCkgewogICAgICAgICAgICAgU05NUF9GUkVFKHVwdHItPnByaXZLZXkpOwpAQCAtMTI3Niw2ICsxMjkxLDcgQEAKICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZW5kIHdyaXRlX3VzbVVzZXJTdG9yYWdlVHlwZSgpICovCiAKKwogLyoKICAqIFJldHVybiAxIGlmIGVub3VnaCBvYmplY3RzIGhhdmUgYmVlbiBzZXQgdXAgdG8gdHJhbnNpdGlvbiByb3dTdGF0dXMgdG8KICAqIG5vdEluU2VydmljZSgyKSBvciBhY3RpdmUoMSkuICAKQEAgLTE0ODIsNyArMTQ5OCw5IEBACiAgICAgfQogCiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7Ci19Cit9ICAvKiB3cml0ZV91c21Vc2VyU3RhdHVzICovCisKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovIAogCiAjaWYgMAogCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oIGIvYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaAppbmRleCAyYWZlY2I0Li41M2QxNDEyIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oCisrKyBiL2FnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgKQEAgLTU0LDYgKzU0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICogZW5naW5lSURMZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKipuYW1lLCBzaXplX3QgKiBuYW1lTGVuKTsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgCiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV91c21Vc2VyU3BpbkxvY2s7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV91c21Vc2VyQ2xvbmVGcm9tOwogICAgICBXcml0ZU1ldGhvZCAgICAgd3JpdGVfdXNtVXNlckF1dGhQcm90b2NvbDsKQEAgLTYzLDUgKzY0LDYgQEAKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX3VzbVVzZXJQdWJsaWM7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV91c21Vc2VyU3RvcmFnZVR5cGU7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV91c21Vc2VyU3RhdHVzOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8gCiAKICNlbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgLyogX01JQkdST1VQX1VTTVVTRVJfSCAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oIGIvYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oCmluZGV4IGE1NjIxZTUuLjBjY2E5YTMgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaAorKysgYi9hZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmgKQEAgLTgsNyArOCw5IEBACiAKIGNvbmZpZ19yZXF1aXJlKHNubXB2My9zbm1wRW5naW5lKQogY29uZmlnX3ZlcnNpb25fcmVxdWlyZSgoc25tcHYzL3NubXBNUERTdGF0cywgNS41LCBzbm1wdjMvc25tcE1QRFN0YXRzXzVfNSkpCisjaWZkZWYgTkVUU05NUF9TRUNNT0RfVVNNCiBjb25maWdfdmVyc2lvbl9yZXF1aXJlKChzbm1wdjMvdXNtU3RhdHMsIDUuNSwgc25tcHYzL3VzbVN0YXRzXzVfNSkpCiBjb25maWdfcmVxdWlyZShzbm1wdjMvdXNtQ29uZikKIGNvbmZpZ19yZXF1aXJlKHNubXB2My91c21Vc2VyKQorI2VuZGlmIC8qIE5FVFNOTVBfU0VDTU9EX1VTTSAqLwogI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTTk1QVjNNSUJTX0ggKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3N0cnVjdC5oIGIvYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgKaW5kZXggMDg3ODBjYy4uZDAyNWVkMCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgKQEAgLTE4LDcgKzE4LDggQEAKICAgICBzdHJ1Y3QgZXh0ZW5zaWJsZSAqbmV4dDsKICAgICBvaWQgICAgICAgICAgICAgbWlib2lkW01JQk1BWF07CiAgICAgc2l6ZV90ICAgICAgICAgIG1pYmxlbjsKLSAgICBpbnQgICAgICAgICAgICAgcGlkOworICAgIGludCAgICAgICAgICAgICBtaWJwcmlvcml0eTsKKyAgICBuZXRzbm1wX3BpZF90ICAgcGlkOwogI2lmIGRlZmluZWQoV0lOMzIpCiAgICAgSEFORExFICAgICAgICAgIHRpZDsgICAgICAgICAgICAgICAgLyogV0lOMzIgdGhyZWFkICovCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgYi9hZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jCmluZGV4IDdkYzFiMmEuLmIxZWIwMGEgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYwpAQCAtMjUsMTMgKzI1LDE3IEBACiAjZGVmaW5lIHNubXBUYXJnZXRBZGRyT0lETGVuIDExIC8qVGhpcyBpcyBiYXNlK2NvbHVtbiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGkuZS4gZXZlcnl0aGluZyBidXQgaW5kZXggKi8KIAotb2lkICAgICAgICAgICAgIHNubXBUYXJnZXRBZGRyT0lEW3NubXBUYXJnZXRBZGRyT0lETGVuXSA9CitzdGF0aWMgb2lkICAgICAgc25tcFRhcmdldEFkZHJPSURbc25tcFRhcmdldEFkZHJPSURMZW5dID0KICAgICB7IDEsIDMsIDYsIDEsIDYsIDMsIDEyLCAxLCAyLCAxLCAwIH07CiAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIHNubXBUYXJnZXRTcGluTG9jayA9IDA7CiBzdGF0aWMgc3RydWN0IHRhcmdldEFkZHJUYWJsZV9zdHJ1Y3QgKmFBZGRyVGFibGUgPSBOVUxMOwogCiAKK3N0YXRpYyBpbnQKK3N0b3JlX3NubXBUYXJnZXRBZGRyRW50cnkoaW50IG1ham9ySUQsIGludCBtaW5vcklELCB2b2lkICpzZXJ2ZXJhcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmNsaWVudGFyZyk7CisKIC8qCiAgKiBVdGlsaXR5IHJvdXRpbmVzIAogICovCkBAIC00MiwxMSArNDYsMTIgQEAKIH0KIAogc3RydWN0IHRhcmdldEFkZHJUYWJsZV9zdHJ1Y3QgKgotZ2V0X2FkZHJGb3JOYW1lKGNoYXIgKm5hbWUpCitnZXRfYWRkckZvck5hbWUyKGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGNoYXIgbmFtZUxlbikKIHsKICAgICBzdHJ1Y3QgdGFyZ2V0QWRkclRhYmxlX3N0cnVjdCAqcHRyOwogICAgIGZvciAocHRyID0gYUFkZHJUYWJsZTsgcHRyICE9IE5VTEw7IHB0ciA9IHB0ci0+bmV4dCkgewotICAgICAgICBpZiAocHRyLT5uYW1lICYmIHN0cmNtcChwdHItPm5hbWUsIG5hbWUpID09IDApCisgICAgICAgIGlmIChwdHItPm5hbWVMZW4gPT0gbmFtZUxlbiAmJgorICAgICAgICAgICAgbWVtY21wKHB0ci0+bmFtZURhdGEsIG5hbWUsIG5hbWVMZW4pID09IDApCiAgICAgICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KICAgICByZXR1cm4gTlVMTDsKQEAgLTY0LDcgKzY5LDggQEAKICAgICBuZXdFbnRyeSA9IG1hbGxvYyhzaXplb2YoKm5ld0VudHJ5KSk7CiAKICAgICBpZiAobmV3RW50cnkpIHsKLSAgICAgICAgbmV3RW50cnktPm5hbWUgPSBOVUxMOworICAgICAgICBuZXdFbnRyeS0+bmFtZURhdGEgPSBOVUxMOworICAgICAgICBuZXdFbnRyeS0+bmFtZUxlbiA9IDA7CiAKICAgICAgICAgbmV3RW50cnktPnREb21haW5MZW4gPSAwOwogICAgICAgICBuZXdFbnRyeS0+dEFkZHJlc3MgPSBOVUxMOwpAQCAtOTIsMTEgKzk4LDExIEBACiB2b2lkCiBzbm1wVGFyZ2V0QWRkclRhYmxlX2Rpc3Bvc2Uoc3RydWN0IHRhcmdldEFkZHJUYWJsZV9zdHJ1Y3QgKnJlYXBlZCkKIHsKLSAgICBpZiAocmVhcGVkLT5zZXNzICE9IE5VTEwpIHsKKyAgICBpZiAocmVhcGVkLT5zZXNzKQogICAgICAgICBzbm1wX2Nsb3NlKHJlYXBlZC0+c2Vzcyk7Ci0gICAgfQotICAgIFNOTVBfRlJFRShyZWFwZWQtPm5hbWUpOwotICAgIFNOTVBfRlJFRShyZWFwZWQtPnRBZGRyZXNzKTsKKyAgICBlbHNlCisgICAgICAgIFNOTVBfRlJFRShyZWFwZWQtPnRBZGRyZXNzKTsKKyAgICBTTk1QX0ZSRUUocmVhcGVkLT5uYW1lRGF0YSk7CiAgICAgU05NUF9GUkVFKHJlYXBlZC0+dGFnTGlzdCk7CiAgICAgU05NUF9GUkVFKHJlYXBlZC0+cGFyYW1zKTsKIApAQCAtMTE2LDggKzEyMiw2IEBACiB7CiAgICAgc3RhdGljIHN0cnVjdCB0YXJnZXRBZGRyVGFibGVfc3RydWN0ICpjdXJyX3N0cnVjdCwgKnByZXZfc3RydWN0OwogICAgIGludCAgICAgICAgICAgICBpOwotICAgIHNpemVfdCAgICAgICAgICBuZXdPSURMZW4gPSAwLCBjdXJyT0lETGVuID0gMDsKLSAgICBvaWQgICAgICAgICAgICAgbmV3T0lEWzEyOF0sIGN1cnJPSURbMTI4XTsKIAogICAgIC8qCiAgICAgICogaWYgdGhlIGxpc3QgaXMgZW1wdHksIGFkZCB0aGUgbmV3IGVudHJ5IHRvIHRoZSB0b3AgCkBAIC0xMjcsMjMgKzEzMSwxOSBAQAogICAgICAgICByZXR1cm47CiAgICAgfSBlbHNlIHsKICAgICAgICAgLyoKLSAgICAgICAgICogZ2V0IHRoZSAnT0lEJyB2YWx1ZSBvZiB0aGUgbmV3IGVudHJ5IAotICAgICAgICAgKi8KLSAgICAgICAgbmV3T0lETGVuID0gc3RybGVuKG5ld0VudHJ5LT5uYW1lKTsKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IChpbnQpIG5ld09JRExlbjsgaSsrKSB7Ci0gICAgICAgICAgICBuZXdPSURbaV0gPSBuZXdFbnRyeS0+bmFtZVtpXTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qCiAgICAgICAgICAqIHNlYXJjaCB0aHJvdWdoIHRoZSBsaXN0IGZvciBhbiBlcXVhbCBvciBncmVhdGVyIE9JRCB2YWx1ZSAKICAgICAgICAgICovCiAgICAgICAgIHdoaWxlIChjdXJyX3N0cnVjdCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBjdXJyT0lETGVuID0gc3RybGVuKGN1cnJfc3RydWN0LT5uYW1lKTsKLSAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAoaW50KSBjdXJyT0lETGVuOyBpKyspIHsKLSAgICAgICAgICAgICAgICBjdXJyT0lEW2ldID0gY3Vycl9zdHJ1Y3QtPm5hbWVbaV07CisgICAgICAgICAgICBpID0gbWVtY21wKG5ld0VudHJ5LT5uYW1lRGF0YSwgY3Vycl9zdHJ1Y3QtPm5hbWVEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICBuZXdFbnRyeS0+bmFtZUxlbiA8IGN1cnJfc3RydWN0LT5uYW1lTGVuID8KKyAgICAgICAgICAgICAgICAgICAgICAgbmV3RW50cnktPm5hbWVMZW4gOiBjdXJyX3N0cnVjdC0+bmFtZUxlbik7CisgICAgICAgICAgICBpZiAoaSA9PSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKG5ld0VudHJ5LT5uYW1lTGVuIDwgY3Vycl9zdHJ1Y3QtPm5hbWVMZW4pCisgICAgICAgICAgICAgICAgICAgIGkgPSAtMTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChuZXdFbnRyeS0+bmFtZUxlbiA+IGN1cnJfc3RydWN0LT5uYW1lTGVuKQorICAgICAgICAgICAgICAgICAgICBpID0gMTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaSA9IHNubXBfb2lkX2NvbXBhcmUobmV3T0lELCBuZXdPSURMZW4sIGN1cnJPSUQsIGN1cnJPSURMZW4pOwogICAgICAgICAgICAgaWYgKGkgPT0gMCkgeyAgICAgICAvKiBFeGFjdCBtYXRjaCwgb3ZlcndyaXRlIHdpdGggbmV3IHN0cnVjdCAqLwogICAgICAgICAgICAgICAgIG5ld0VudHJ5LT5uZXh0ID0gY3Vycl9zdHJ1Y3QtPm5leHQ7CiAgICAgICAgICAgICAgICAgLyoKQEAgLTIzMywxMCArMjMzLDEwIEBACiAKICAgICBmb3IgKHRlbXBfc3RydWN0ID0gYUFkZHJUYWJsZTsgdGVtcF9zdHJ1Y3QgIT0gTlVMTDsKICAgICAgICAgIHRlbXBfc3RydWN0ID0gdGVtcF9zdHJ1Y3QtPm5leHQpIHsKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IChpbnQpIHN0cmxlbih0ZW1wX3N0cnVjdC0+bmFtZSk7IGkrKykgewotICAgICAgICAgICAgbmV3TnVtW2Jhc2VOYW1lTGVuICsgaV0gPSB0ZW1wX3N0cnVjdC0+bmFtZVtpXTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IHRlbXBfc3RydWN0LT5uYW1lTGVuOyBpKyspIHsKKyAgICAgICAgICAgIG5ld051bVtiYXNlTmFtZUxlbiArIGldID0gKHVuc2lnbmVkIGNoYXIpdGVtcF9zdHJ1Y3QtPm5hbWVEYXRhW2ldOwogICAgICAgICB9Ci0gICAgICAgIG15T0lETGVuID0gYmFzZU5hbWVMZW4gKyBzdHJsZW4odGVtcF9zdHJ1Y3QtPm5hbWUpOworICAgICAgICBteU9JRExlbiA9IGJhc2VOYW1lTGVuICsgdGVtcF9zdHJ1Y3QtPm5hbWVMZW47CiAgICAgICAgIGkgPSBzbm1wX29pZF9jb21wYXJlKG5hbWUsICpsZW5ndGgsIG5ld051bSwgbXlPSURMZW4pOwogICAgICAgICAvKgogICAgICAgICAgKiBBc3N1bWVzIHRoYXQgdGhlIGxpbmtlZCBsaXN0IHNvcnRlZCBieSBPSUQsIGxvdyB0byBoaWdoIApAQCAtMjc0LDcgKzI3NCw3IEBACiAgKiBmb3IgdGhlIHNubXBUYXJnZXRBZGRyRW50cnkgbWliIAogICovCiAKLXN0cnVjdCB2YXJpYWJsZTIgc25tcFRhcmdldEFkZHJFbnRyeV92YXJpYWJsZXNbXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdmFyaWFibGUyIHNubXBUYXJnZXRBZGRyRW50cnlfdmFyaWFibGVzW10gPSB7CiAgICAge1NOTVBUQVJHRVRBRERSVERPTUFJTiwgQVNOX09CSkVDVF9JRCwgTkVUU05NUF9PTERBUElfUldSSVRFLAogICAgICB2YXJfc25tcFRhcmdldEFkZHJFbnRyeSwgMSwge1NOTVBUQVJHRVRBRERSVERPTUFJTkNPTFVNTn19LAogICAgIHtTTk1QVEFSR0VUQUREUlRBRERSRVNTLCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9SV1JJVEUsCkBAIC0yOTQsMTcgKzI5NCwxNyBAQAogCiB9OwogCi1zdHJ1Y3QgdmFyaWFibGUyIHNubXBUYXJnZXRTcGluTG9ja192YXJbXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdmFyaWFibGUyIHNubXBUYXJnZXRTcGluTG9ja192YXJbXSA9IHsKICAgICB7U05NUFRBUkdFVFNQSU5MT0NLLCBBU05fSU5URUdFUiwgTkVUU05NUF9PTERBUElfUldSSVRFLAogICAgICB2YXJfdGFyZ2V0U3BpbkxvY2ssIDEsIHsxfX0KIH07CiAKLXN0YXRpYyBvaWQgICAgICBzbm1wVGFyZ2V0U3BpbkxvY2tfb2lkW10gPSB7IDEsIDMsIDYsIDEsIDYsIDMsIDEyLCAxIH07CitzdGF0aWMgY29uc3Qgb2lkIHNubXBUYXJnZXRTcGluTG9ja19vaWRbXSA9IHsgMSwgMywgNiwgMSwgNiwgMywgMTIsIDEgfTsKIAogLyoKICAqIG5vdyBsb2FkIHRoaXMgbWliIGludG8gdGhlIGFnZW50cyBtaWIgdGFibGUgCiAgKi8KLW9pZCAgICAgICAgICAgICBzbm1wVGFyZ2V0QWRkckVudHJ5X3ZhcmlhYmxlc19vaWRbXSA9CitzdGF0aWMgY29uc3Qgb2lkIHNubXBUYXJnZXRBZGRyRW50cnlfdmFyaWFibGVzX29pZFtdID0KICAgICB7IDEsIDMsIDYsIDEsIDYsIDMsIDEyLCAxLCAyLCAxIH07CiAKIApAQCAtMzIxLDcgKzMyMSw3IEBACiAKICAgICBzbm1wZF9yZWdpc3Rlcl9jb25maWdfaGFuZGxlcigidGFyZ2V0QWRkciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc25tcGRfcGFyc2VfY29uZmlnX3RhcmdldEFkZHIsCi0JCQkJICAodm9pZCAoKikodm9pZCkpMCwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKCopKHZvaWQpKTAsIE5VTEwpOwogCiAgICAgLyoKICAgICAgKiB3ZSBuZWVkIHRvIGJlIGNhbGxlZCBiYWNrIGxhdGVyIApAQCAtMzMxLDMwICszMzEsMjEgQEAKIAogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0X3NubXBUYXJnZXRBZGRyRW50cnkgKi8KIAotCi1pbnQKLXNubXBUYXJnZXRBZGRyX2FkZE5hbWUoc3RydWN0IHRhcmdldEFkZHJUYWJsZV9zdHJ1Y3QgKmVudHJ5LCBjaGFyICpjcHRyKQordm9pZAorc2h1dGRvd25fc25tcFRhcmdldEFkZHJFbnRyeSh2b2lkKQogewotICAgIHNpemVfdCAgICAgICAgICBsZW47Ci0gICAgaWYgKGNwdHIgPT0gTlVMTCkgewotICAgICAgICBERUJVR01TR1RMKCgic25tcFRhcmdldEFkZHJFbnRyeSIsCi0gICAgICAgICAgICAgICAgICAgICJFUlJPUiBzbm1wVGFyZ2V0QWRkckVudHJ5OiBubyBuYW1lIGluIGNvbmZpZyBzdHJpbmdcbiIpKTsKLSAgICAgICAgcmV0dXJuICgwKTsKLSAgICB9IGVsc2UgewotICAgICAgICBsZW4gPSBzdHJsZW4oY3B0cik7Ci0gICAgICAgIC8qCi0gICAgICAgICAqIHNwZWMgY2hlY2sgZm9yIHN0cmluZyAxLTMyIAotICAgICAgICAgKi8KLSAgICAgICAgaWYgKGxlbiA8IDEgfHwgbGVuID4gMzIpIHsKLSAgICAgICAgICAgIERFQlVHTVNHVEwoKCJzbm1wVGFyZ2V0QWRkckVudHJ5IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJFUlJPUiBzbm1wVGFyZ2V0QWRkckVudHJ5OiBuYW1lIG91dCBvZiByYW5nZSBpbiBjb25maWcgc3RyaW5nXG4iKSk7Ci0gICAgICAgICAgICByZXR1cm4gKDApOwotICAgICAgICB9Ci0gICAgICAgIGVudHJ5LT5uYW1lID0gc3RyZHVwKGNwdHIpOwotICAgIH0KLSAgICByZXR1cm4gKDEpOwotfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBhZGROYW1lICovCisgICAgc3RydWN0IHRhcmdldEFkZHJUYWJsZV9zdHJ1Y3QgKnB0cjsKKyAgICBzdHJ1Y3QgdGFyZ2V0QWRkclRhYmxlX3N0cnVjdCAqbmV4dDsKIAorICAgIGZvciAocHRyID0gYUFkZHJUYWJsZTsgcHRyOyBwdHIgPSBuZXh0KSB7CisgICAgICAgIG5leHQgPSBwdHItPm5leHQ7CisgICAgICAgIHNubXBUYXJnZXRBZGRyVGFibGVfZGlzcG9zZShwdHIpOworICAgIH0KKyAgICBhQWRkclRhYmxlID0gTlVMTDsKKworICAgIHNubXBfdW5yZWdpc3Rlcl9jYWxsYmFjayhTTk1QX0NBTExCQUNLX0xJQlJBUlksIFNOTVBfQ0FMTEJBQ0tfU1RPUkVfREFUQSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVfc25tcFRhcmdldEFkZHJFbnRyeSwgTlVMTCwgRkFMU0UpOworfQogCiBpbnQKIHNubXBUYXJnZXRBZGRyX2FkZFREb21haW4oc3RydWN0IHRhcmdldEFkZHJUYWJsZV9zdHJ1Y3QgKmVudHJ5LCBjaGFyICpjcHRyKQpAQCAtNTM4LDcgKzUyOSw3IEBACiAgICAgICAgICAgICAgKGVudHJ5LT5zdG9yYWdlVHlwZSAhPSBTTk1QX1NUT1JBR0VfTk9OVk9MQVRJTEUpICYmCiAgICAgICAgICAgICAgKGVudHJ5LT5zdG9yYWdlVHlwZSAhPSBTTk1QX1NUT1JBR0VfUEVSTUFORU5UKSAmJgogICAgICAgICAgICAgIChlbnRyeS0+c3RvcmFnZVR5cGUgIT0gU05NUF9TVE9SQUdFX1JFQURPTkxZKSkgewotCURFQlVHTVNHVEwoKCJzbm1wVGFyZ2V0QWRkckVudHJ5IiwKKyAgICAgICAgREVCVUdNU0dUTCgoInNubXBUYXJnZXRBZGRyRW50cnkiLAogICAgICAgICAgICAgICAgICAgICAiRVJST1Igc25tcFRhcmdldEFkZHJFbnRyeTogc3RvcmFnZSB0eXBlIG5vdCBhIHZhbGlkICIKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIG9mIG90aGVyKCVkKSwgdm9sYXRpbGUoJWQpLCBub252b2xhdGlsZSglZCksICIKICAgICAgICAgICAgICAgICAgICAgInBlcm1hbmVudCglZCksIG9yIHJlYWRvbmx5KCVkKSBpbiBjb25maWcgc3RyaW5nLlxuIiwKQEAgLTU4NywyNCArNTc4LDQyIEBACiB2b2lkCiBzbm1wZF9wYXJzZV9jb25maWdfdGFyZ2V0QWRkcihjb25zdCBjaGFyICp0b2tlbiwgY2hhciAqY2hhcl9wdHIpCiB7Ci0gICAgY2hhciAgICAgICAgICAgKmNwdHIgPSBjaGFyX3B0ciwgYnVmZlsxMDI0XTsKKyAgICBjb25zdCBjaGFyICAgICAqY3B0ciA9IGNoYXJfcHRyOworICAgIGNoYXIgICAgICAgICAgICBidWZmWzEwMjRdLCAqYnB0cjsKICAgICBzdHJ1Y3QgdGFyZ2V0QWRkclRhYmxlX3N0cnVjdCAqbmV3RW50cnk7CiAgICAgaW50ICAgICAgICAgICAgIGk7CisgICAgc2l6ZV90ICAgICAgICAgIGJ1Zmw7CiAKICAgICBuZXdFbnRyeSA9IHNubXBUYXJnZXRBZGRyVGFibGVfY3JlYXRlKCk7CiAKLSAgICBjcHRyID0gY29weV9ud29yZChjcHRyLCBidWZmLCBzaXplb2YoYnVmZikpOwotICAgIGlmIChzbm1wVGFyZ2V0QWRkcl9hZGROYW1lKG5ld0VudHJ5LCBidWZmKSA9PSAwKSB7CisgICAgY3B0ciA9IHNraXBfd2hpdGVfY29uc3QoY3B0cik7CisgICAgaWYgKGNwdHIgPT0gTlVMTCkgeworICAgICAgICBERUJVR01TR1RMKCgic25tcFRhcmdldEFkZHJFbnRyeSIsCisgICAgICAgICAgICAgICAgICAgICJFUlJPUiBzbm1wVGFyZ2V0QWRkckVudHJ5OiBubyBuYW1lIGluIGNvbmZpZyBzdHJpbmdcbiIpKTsKICAgICAgICAgc25tcFRhcmdldEFkZHJUYWJsZV9kaXNwb3NlKG5ld0VudHJ5KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjcHRyID0gY29weV9ud29yZChjcHRyLCBidWZmLCBzaXplb2YoYnVmZikpOworCisgICAgYnVmbCA9IDA7CisgICAgY3B0ciA9IHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nX2NvbnN0KGNwdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1X2NoYXIqKikmbmV3RW50cnktPm5hbWVEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYnVmbCk7CisgICAgaWYgKGJ1ZmwgPCAxIHx8IGJ1ZmwgPiAzMikgeworICAgICAgICBERUJVR01TR1RMKCgic25tcFRhcmdldEFkZHJFbnRyeSIsCisgICAgICAgICAgICAgICAgICAgICJFUlJPUiBzbm1wVGFyZ2V0QWRkckVudHJ5OiBuYW1lIG91dCBvZiByYW5nZSBpbiBjb25maWcgIgorICAgICAgICAgICAgICAgICAgICAic3RyaW5nXG4iKSk7CisgICAgICAgIHNubXBUYXJnZXRBZGRyVGFibGVfZGlzcG9zZShuZXdFbnRyeSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbmV3RW50cnktPm5hbWVMZW4gPSBidWZsOworCisgICAgY3B0ciA9IGNvcHlfbndvcmRfY29uc3QoY3B0ciwgYnVmZiwgc2l6ZW9mKGJ1ZmYpKTsKICAgICBpZiAoc25tcFRhcmdldEFkZHJfYWRkVERvbWFpbihuZXdFbnRyeSwgYnVmZikgPT0gMCkgewogICAgICAgICBzbm1wVGFyZ2V0QWRkclRhYmxlX2Rpc3Bvc2UobmV3RW50cnkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNwdHIgPQotICAgICAgICByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZyhjcHRyLAorICAgICAgICByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZ19jb25zdChjcHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodV9jaGFyICoqKSAmIG5ld0VudHJ5LT50QWRkcmVzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ld0VudHJ5LT50QWRkcmVzc0xlbik7CiAgICAgaWYgKCFjcHRyIHx8ICEobmV3RW50cnktPnRBZGRyZXNzKSkgewpAQCAtNjEzLDUwICs2MjIsNTIgQEAKICAgICAgICAgc25tcFRhcmdldEFkZHJUYWJsZV9kaXNwb3NlKG5ld0VudHJ5KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjcHRyID0gY29weV9ud29yZChjcHRyLCBidWZmLCBzaXplb2YoYnVmZikpOworICAgIGNwdHIgPSBjb3B5X253b3JkX2NvbnN0KGNwdHIsIGJ1ZmYsIHNpemVvZihidWZmKSk7CiAgICAgaWYgKHNubXBUYXJnZXRBZGRyX2FkZFRpbWVvdXQobmV3RW50cnksIGJ1ZmYpID09IDApIHsKICAgICAgICAgc25tcFRhcmdldEFkZHJUYWJsZV9kaXNwb3NlKG5ld0VudHJ5KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjcHRyID0gY29weV9ud29yZChjcHRyLCBidWZmLCBzaXplb2YoYnVmZikpOworICAgIGNwdHIgPSBjb3B5X253b3JkX2NvbnN0KGNwdHIsIGJ1ZmYsIHNpemVvZihidWZmKSk7CiAgICAgaWYgKHNubXBUYXJnZXRBZGRyX2FkZFJldHJ5Q291bnQobmV3RW50cnksIGJ1ZmYpID09IDApIHsKICAgICAgICAgc25tcFRhcmdldEFkZHJUYWJsZV9kaXNwb3NlKG5ld0VudHJ5KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjcHRyID0gY29weV9ud29yZChjcHRyLCBidWZmLCBzaXplb2YoYnVmZikpOworICAgIGNwdHIgPSBjb3B5X253b3JkX2NvbnN0KGNwdHIsIGJ1ZmYsIHNpemVvZihidWZmKSk7CiAgICAgaWYgKHNubXBUYXJnZXRBZGRyX2FkZFRhZ0xpc3QobmV3RW50cnksIGJ1ZmYpID09IDApIHsKICAgICAgICAgc25tcFRhcmdldEFkZHJUYWJsZV9kaXNwb3NlKG5ld0VudHJ5KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjcHRyID0gY29weV9ud29yZChjcHRyLCBidWZmLCBzaXplb2YoYnVmZikpOworICAgIGNwdHIgPSBjb3B5X253b3JkX2NvbnN0KGNwdHIsIGJ1ZmYsIHNpemVvZihidWZmKSk7CiAgICAgaWYgKHNubXBUYXJnZXRBZGRyX2FkZFBhcmFtcyhuZXdFbnRyeSwgYnVmZikgPT0gMCkgewogICAgICAgICBzbm1wVGFyZ2V0QWRkclRhYmxlX2Rpc3Bvc2UobmV3RW50cnkpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNwdHIgPSBjb3B5X253b3JkKGNwdHIsIGJ1ZmYsIHNpemVvZihidWZmKSk7CisgICAgY3B0ciA9IGNvcHlfbndvcmRfY29uc3QoY3B0ciwgYnVmZiwgc2l6ZW9mKGJ1ZmYpKTsKICAgICBpZiAoc25tcFRhcmdldEFkZHJfYWRkU3RvcmFnZVR5cGUobmV3RW50cnksIGJ1ZmYpID09IDApIHsKICAgICAgICAgc25tcFRhcmdldEFkZHJUYWJsZV9kaXNwb3NlKG5ld0VudHJ5KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjcHRyID0gY29weV9ud29yZChjcHRyLCBidWZmLCBzaXplb2YoYnVmZikpOworICAgIGNwdHIgPSBjb3B5X253b3JkX2NvbnN0KGNwdHIsIGJ1ZmYsIHNpemVvZihidWZmKSk7CiAgICAgaWYgKHNubXBUYXJnZXRBZGRyX2FkZFJvd1N0YXR1cyhuZXdFbnRyeSwgYnVmZikgPT0gMCkgewogICAgICAgICBzbm1wVGFyZ2V0QWRkclRhYmxlX2Rpc3Bvc2UobmV3RW50cnkpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIHNucHJpbnRmKGJ1ZmYsIHNpemVvZihidWZmKSwgInNubXBfcGFyc2VfY29uZmlnX3RhcmdldEFkZHIsIHJlYWQ6ICVzXG4iLAotICAgICAgICAgICAgbmV3RW50cnktPm5hbWUpOwotICAgIGJ1ZmZbIHNpemVvZihidWZmKS0xIF0gPSAwOworICAgIGJwdHIgPSBidWZmOworICAgIGJwdHIgKz0gc3ByaW50ZihicHRyLCAic25tcF9wYXJzZV9jb25maWdfdGFyZ2V0QWRkciwgcmVhZDogIik7CisgICAgYnB0ciA9IHJlYWRfY29uZmlnX3NhdmVfb2N0ZXRfc3RyaW5nKGJwdHIsICh1X2NoYXIqKW5ld0VudHJ5LT5uYW1lRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3RW50cnktPm5hbWVMZW4pOworICAgICpicHRyKysgPSAnXG4nOwogICAgIGZvciAoaSA9IDA7IGkgPCBuZXdFbnRyeS0+dERvbWFpbkxlbjsgaSsrKSB7Ci0gICAgICAgIHNucHJpbnRmKCZidWZmW3N0cmxlbihidWZmKV0sIHNpemVvZihidWZmKS1zdHJsZW4oYnVmZiktMSwKLSAgICAgICAgICAgICAgICAgIi4lZCIsIChpbnQpIG5ld0VudHJ5LT50RG9tYWluW2ldKTsKLSAgICAgICAgYnVmZlsgc2l6ZW9mKGJ1ZmYpLTEgXSA9IDA7CisgICAgICAgIGJwdHIgKz0gc25wcmludGYoYnB0ciwgYnVmZiArIHNpemVvZihidWZmKSAtIGJwdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIi4lZCIsIChpbnQpIG5ld0VudHJ5LT50RG9tYWluW2ldKTsKICAgICB9Ci0gICAgc25wcmludGYoJmJ1ZmZbc3RybGVuKGJ1ZmYpXSwgc2l6ZW9mKGJ1ZmYpLXN0cmxlbihidWZmKS0xLAotICAgICAgICAgICAgIiAlcyAlZCAlZCAlcyAlcyAlZCAlZFxuIiwKLSAgICAgICAgICAgIG5ld0VudHJ5LT50QWRkcmVzcywgbmV3RW50cnktPnRpbWVvdXQsIG5ld0VudHJ5LT5yZXRyeUNvdW50LAotICAgICAgICAgICAgbmV3RW50cnktPnRhZ0xpc3QsIG5ld0VudHJ5LT5wYXJhbXMsIG5ld0VudHJ5LT5zdG9yYWdlVHlwZSwKLSAgICAgICAgICAgIG5ld0VudHJ5LT5yb3dTdGF0dXMpOwotICAgIGJ1ZmZbIHNpemVvZihidWZmKS0xIF0gPSAwOworICAgIGJwdHIgKz0gc25wcmludGYoYnB0ciwgYnVmZiArIHNpemVvZihidWZmKSAtIGJwdHIsCisgICAgICAgICAgICAgICAgICAgICAiICVzICVkICVkICVzICVzICVkICVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgbmV3RW50cnktPnRBZGRyZXNzLCBuZXdFbnRyeS0+dGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgIG5ld0VudHJ5LT5yZXRyeUNvdW50LCBuZXdFbnRyeS0+dGFnTGlzdCwKKyAgICAgICAgICAgICAgICAgICAgIG5ld0VudHJ5LT5wYXJhbXMsIG5ld0VudHJ5LT5zdG9yYWdlVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgIG5ld0VudHJ5LT5yb3dTdGF0dXMpOworICAgIGJ1ZmZbIHNpemVvZihidWZmKSAtIDEgXSA9IDA7CiAgICAgREVCVUdNU0dUTCgoInNubXBUYXJnZXRBZGRyRW50cnkiLCAiJXMiLCBidWZmKSk7CiAKICAgICBzbm1wVGFyZ2V0QWRkclRhYmxlX2FkZFRvTGlzdChuZXdFbnRyeSwgJmFBZGRyVGFibGUpOwpAQCAtNjczLDUzICs2ODQsNDggQEAKICAqIGZvciB0aGlzIE1JQiB0YWJsZS4gSXQgd3JpdGVzIG91dCBhbGwgdGhlIG5vbi12b2xhdGlsZSByb3dzIAogICogdG8gcGVybWFuZW50IHN0b3JhZ2Ugb24gYSBzaHV0ZG93biAgCiAgKi8KLWludAorc3RhdGljIGludAogc3RvcmVfc25tcFRhcmdldEFkZHJFbnRyeShpbnQgbWFqb3JJRCwgaW50IG1pbm9ySUQsIHZvaWQgKnNlcnZlcmFyZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY2xpZW50YXJnKQogewotICAgIHN0cnVjdCB0YXJnZXRBZGRyVGFibGVfc3RydWN0ICpjdXJyX3N0cnVjdDsKLSAgICBjaGFyICAgICAgICAgICAgbGluZVsxMDI0XTsKKyAgICBjb25zdCBzdHJ1Y3QgdGFyZ2V0QWRkclRhYmxlX3N0cnVjdCAqY3Vycl9zdHJ1Y3Q7CisgICAgY2hhciAgICAgICAgICAgIGxpbmVbMTAyNF0sICpjdXIsICplcCA9IGxpbmUgKyBzaXplb2YobGluZSk7CiAgICAgaW50ICAgICAgICAgICAgIGk7CiAKLSAgICBpZiAoKGN1cnJfc3RydWN0ID0gYUFkZHJUYWJsZSkgIT0gTlVMTCkgewotICAgICAgICB3aGlsZSAoY3Vycl9zdHJ1Y3QgIT0gTlVMTCkgewotICAgICAgICAgICAgaWYgKChjdXJyX3N0cnVjdC0+c3RvcmFnZVR5cGUgPT0gU05NUF9TVE9SQUdFX05PTlZPTEFUSUxFIHx8Ci0gICAgICAgICAgICAgICAgIGN1cnJfc3RydWN0LT5zdG9yYWdlVHlwZSA9PSBTTk1QX1NUT1JBR0VfUEVSTUFORU5UKQotICAgICAgICAgICAgICAgICYmCi0gICAgICAgICAgICAgICAgKGN1cnJfc3RydWN0LT5yb3dTdGF0dXMgPT0gU05NUF9ST1dfQUNUSVZFIHx8Ci0gICAgICAgICAgICAgICAgIGN1cnJfc3RydWN0LT5yb3dTdGF0dXMgPT0gU05NUF9ST1dfTk9USU5TRVJWSUNFKSkgewotICAgICAgICAgICAgICAgIHNucHJpbnRmKGxpbmUsIHNpemVvZihsaW5lKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ0YXJnZXRBZGRyICVzICIsIGN1cnJfc3RydWN0LT5uYW1lKTsKLSAgICAgICAgICAgICAgICBsaW5lWyBzaXplb2YobGluZSktMSBdID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY3Vycl9zdHJ1Y3QtPnREb21haW5MZW47IGkrKykgewotICAgICAgICAgICAgICAgICAgICBzbnByaW50ZigmbGluZVtzdHJsZW4obGluZSldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihsaW5lKS1zdHJsZW4obGluZSktMSwgIi4laSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkgY3Vycl9zdHJ1Y3QtPnREb21haW5baV0pOwotICAgICAgICAgICAgICAgICAgICBsaW5lWyBzaXplb2YobGluZSktMSBdID0gMDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgc3RybGNhdChsaW5lLCAiICIsIHNpemVvZihsaW5lKSk7Ci0gICAgICAgICAgICAgICAgcmVhZF9jb25maWdfc2F2ZV9vY3RldF9zdHJpbmcoJmxpbmVbc3RybGVuKGxpbmUpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyX3N0cnVjdC0+dEFkZHJlc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vycl9zdHJ1Y3QtPnRBZGRyZXNzTGVuKTsKLQotICAgICAgICAgICAgICAgIHNucHJpbnRmKCZsaW5lW3N0cmxlbihsaW5lKV0sIHNpemVvZihsaW5lKS1zdHJsZW4obGluZSktMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICIgJWkgJWkgXCIlc1wiICVzICVpICVpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJfc3RydWN0LT50aW1lb3V0LAotICAgICAgICAgICAgICAgICAgICAgICAgY3Vycl9zdHJ1Y3QtPnJldHJ5Q291bnQsIGN1cnJfc3RydWN0LT50YWdMaXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgY3Vycl9zdHJ1Y3QtPnBhcmFtcywgY3Vycl9zdHJ1Y3QtPnN0b3JhZ2VUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgY3Vycl9zdHJ1Y3QtPnJvd1N0YXR1cyk7Ci0gICAgICAgICAgICAgICAgbGluZVsgc2l6ZW9mKGxpbmUpLTEgXSA9IDA7Ci0KLSAgICAgICAgICAgICAgICAvKgotICAgICAgICAgICAgICAgICAqIHN0b3JlIHRvIGZpbGUgCi0gICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgc25tcGRfc3RvcmVfY29uZmlnKGxpbmUpOworICAgIGN1cnJfc3RydWN0ID0gYUFkZHJUYWJsZTsKKyAgICB3aGlsZSAoY3Vycl9zdHJ1Y3QgIT0gTlVMTCkgeworICAgICAgICBpZiAoKGN1cnJfc3RydWN0LT5zdG9yYWdlVHlwZSA9PSBTTk1QX1NUT1JBR0VfTk9OVk9MQVRJTEUgfHwKKyAgICAgICAgICAgICBjdXJyX3N0cnVjdC0+c3RvcmFnZVR5cGUgPT0gU05NUF9TVE9SQUdFX1BFUk1BTkVOVCkgJiYKKyAgICAgICAgICAgIChjdXJyX3N0cnVjdC0+cm93U3RhdHVzID09IFNOTVBfUk9XX0FDVElWRSB8fAorICAgICAgICAgICAgIGN1cnJfc3RydWN0LT5yb3dTdGF0dXMgPT0gU05NUF9ST1dfTk9USU5TRVJWSUNFKSkgeworICAgICAgICAgICAgY3VyID0gbGluZSArIHNucHJpbnRmKGxpbmUsIHNpemVvZihsaW5lKSwgInRhcmdldEFkZHIgIik7CisgICAgICAgICAgICBjdXIgPSByZWFkX2NvbmZpZ19zYXZlX29jdGV0X3N0cmluZygKKyAgICAgICAgICAgICAgICBjdXIsICh1X2NoYXIqKWN1cnJfc3RydWN0LT5uYW1lRGF0YSwgY3Vycl9zdHJ1Y3QtPm5hbWVMZW4pOworICAgICAgICAgICAgKmN1cisrID0gJyAnOworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGN1cnJfc3RydWN0LT50RG9tYWluTGVuOyBpKyspIHsKKyAgICAgICAgICAgICAgICBjdXIgKz0gc25wcmludGYoY3VyLCBlcCAtIGN1ciwgIi4laSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpIGN1cnJfc3RydWN0LT50RG9tYWluW2ldKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGN1cnJfc3RydWN0ID0gY3Vycl9zdHJ1Y3QtPm5leHQ7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIFNOTVBFUlJfU1VDQ0VTUzsKKyAgICAgICAgICAgICpjdXIrKyA9ICcgJzsKKyAgICAgICAgICAgIGN1ciA9IHJlYWRfY29uZmlnX3NhdmVfb2N0ZXRfc3RyaW5nKAorICAgICAgICAgICAgICAgIGN1ciwgY3Vycl9zdHJ1Y3QtPnRBZGRyZXNzLCBjdXJyX3N0cnVjdC0+dEFkZHJlc3NMZW4pOworICAgICAgICAgICAgY3VyICs9IHNucHJpbnRmKGN1ciwgZXAgLSBjdXIsICIgJWkgJWkgXCIlc1wiICVzICVpICVpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyX3N0cnVjdC0+dGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyX3N0cnVjdC0+cmV0cnlDb3VudCwgY3Vycl9zdHJ1Y3QtPnRhZ0xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vycl9zdHJ1Y3QtPnBhcmFtcywgY3Vycl9zdHJ1Y3QtPnN0b3JhZ2VUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJfc3RydWN0LT5yb3dTdGF0dXMpOworICAgICAgICAgICAgbGluZVsgc2l6ZW9mKGxpbmUpLTEgXSA9IDA7CiAKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBzdG9yZSB0byBmaWxlCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHNubXBkX3N0b3JlX2NvbmZpZyhsaW5lKTsKKyAgICAgICAgfQorCisgICAgICAgIGN1cnJfc3RydWN0ID0gY3Vycl9zdHJ1Y3QtPm5leHQ7CisgICAgfQorCisgICAgcmV0dXJuIFNOTVBFUlJfU1VDQ0VTUzsKIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIHN0b3JlX3NubXBUYXJnZXRBZGRyRW50cnkgICovCiAKIApAQCAtNzUzLDYgKzc1OSw3IEBACiAgICAgICovCiAKICAgICBzd2l0Y2ggKHZwLT5tYWdpYykgeworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBjYXNlIFNOTVBUQVJHRVRBRERSVERPTUFJTjoKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX3NubXBUYXJnZXRBZGRyVERvbWFpbjsKICAgICAgICAgYnJlYWs7CkBAIC03NzcsMTEgKzc4NCwxMyBAQAogICAgIGNhc2UgU05NUFRBUkdFVEFERFJST1dTVEFUVVM6CiAgICAgICAgICp3cml0ZV9tZXRob2QgPSB3cml0ZV9zbm1wVGFyZ2V0QWRkclJvd1N0YXR1czsKICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICBkZWZhdWx0OgogICAgICAgICAqd3JpdGVfbWV0aG9kID0gTlVMTDsKICAgICB9CiAKLSAgICAqdmFyX2xlbiA9IHNpemVvZihsb25nX3JldCk7ICAgICAgICAvKiBhc3N1bWUgYW4gaW50ZWdlciBhbmQgY2hhbmdlIGxhdGVyIGlmIG5vdCAqLworICAgIC8qIGFzc3VtZSBhbiBpbnRlZ2VyIGFuZCBjaGFuZ2UgbGF0ZXIgaWYgbm90ICovCisgICAgKnZhcl9sZW4gPSBzaXplb2YobG9uZ19yZXQpOwogCiAgICAgLyoKICAgICAgKiBsb29rIGZvciBPSUQgaW4gY3VycmVudCB0YWJsZSAKQEAgLTg1MywxMCArODYyLDEyIEBACiAgICAgICAgICAgICAgICAgICAgICJ1bmtub3duIHN1Yi1pZCAlZCBpbiB2YXJfc25tcFRhcmdldEFkZHJFbnRyeVxuIiwKICAgICAgICAgICAgICAgICAgICAgdnAtPm1hZ2ljKSk7CiAgICAgfQorCiAgICAgcmV0dXJuIE5VTEw7CiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZhcl9zbm1wVGFyZ2V0QWRkckVudHJ5ICovCiAKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKIGludAogd3JpdGVfc25tcFRhcmdldEFkZHJURG9tYWluKGludCBhY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9jaGFyICogdmFyX3ZhbCwKQEAgLTkyMSw2ICs5MzIsOCBAQAogICAgICAgICAgICAgICAgIHRhcmdldC0+cm93U3RhdHVzID0gU05NUF9ST1dfTk9USU5TRVJWSUNFOwogICAgICAgICAgICAgfQogICAgICAgICB9CisgICAgfSBlbHNlIGlmIChhY3Rpb24gPT0gQ09NTUlUKSB7CisgICAgICAgIHNubXBfc3RvcmVfbmVlZGVkKE5VTEwpOwogICAgIH0gZWxzZSBpZiAoYWN0aW9uID09IEZSRUUgfHwgYWN0aW9uID09IFVORE8pIHsKICAgICAgICAgLyoKICAgICAgICAgICogVHJ5IHRvIHVuZG8gdGhlIFNFVCBoZXJlIChhYm5vcm1hbCB1c2FnZSBvZiBGUkVFIGNsYXVzZSkgIApAQCAtMTAwOCw2ICsxMDIxLDcgQEAKICAgICB9IGVsc2UgaWYgKGFjdGlvbiA9PSBDT01NSVQpIHsKICAgICAgICAgU05NUF9GUkVFKG9sZF9hZGRyKTsKICAgICAgICAgb2xkX2FkZHIgPSBOVUxMOworICAgICAgICBzbm1wX3N0b3JlX25lZWRlZChOVUxMKTsKICAgICB9IGVsc2UgaWYgKGFjdGlvbiA9PSBGUkVFIHx8IGFjdGlvbiA9PSBVTkRPKSB7CiAgICAgICAgIC8qCiAgICAgICAgICAqIFRyeSB0byB1bmRvIHRoZSBTRVQgaGVyZSAoYWJub3JtYWwgdXNhZ2Ugb2YgRlJFRSBjbGF1c2UpICAKQEAgLTExMDMsNiArMTExNyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSkpICE9IE5VTEwpIHsKICAgICAgICAgICAgIHRlbXBfc3RydWN0LT50aW1lb3V0ID0gbG9uZ19yZXQ7CiAgICAgICAgIH0KKyAgICAgICAgc25tcF9zdG9yZV9uZWVkZWQoTlVMTCk7CiAgICAgfQogCiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CkBAIC0xMTYwLDYgKzExNzUsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEpKSAhPSBOVUxMKSB7CiAgICAgICAgICAgICB0YXJnZXQtPnJldHJ5Q291bnQgPSBsb25nX3JldDsKICAgICAgICAgfQorICAgICAgICBzbm1wX3N0b3JlX25lZWRlZChOVUxMKTsKICAgICB9CiAKICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKQEAgLTEyNTAsNiArMTI2Niw3IEBACiAgICAgfSBlbHNlIGlmIChhY3Rpb24gPT0gQ09NTUlUKSB7CiAgICAgICAgIFNOTVBfRlJFRShvbGRfdGxpc3QpOwogICAgICAgICBvbGRfdGxpc3QgPSBOVUxMOworICAgICAgICBzbm1wX3N0b3JlX25lZWRlZChOVUxMKTsKICAgICB9IGVsc2UgaWYgKGFjdGlvbiA9PSBGUkVFIHx8IGFjdGlvbiA9PSBVTkRPKSB7CiAgICAgICAgIHNubXBUYXJnZXRBZGRyT0lEW3NubXBUYXJnZXRBZGRyT0lETGVuIC0gMV0gPQogICAgICAgICAgICAgU05NUFRBUkdFVEFERFJUQUdMSVNUQ09MVU1OOwpAQCAtMTMyNyw2ICsxMzQ0LDcgQEAKICAgICB9IGVsc2UgaWYgKGFjdGlvbiA9PSBDT01NSVQpIHsKICAgICAgICAgU05NUF9GUkVFKG9sZF9wYXJhbXMpOwogICAgICAgICBvbGRfcGFyYW1zID0gTlVMTDsKKyAgICAgICAgc25tcF9zdG9yZV9uZWVkZWQoTlVMTCk7CiAgICAgfSBlbHNlIGlmIChhY3Rpb24gPT0gRlJFRSB8fCBhY3Rpb24gPT0gVU5ETykgewogICAgICAgICAvKgogICAgICAgICAgKiBUcnkgdG8gdW5kbyB0aGUgU0VUIGhlcmUgKGFibm9ybWFsIHVzYWdlIG9mIEZSRUUgY2xhdXNlKSAgCkBAIC0xNDEzLDYgKzE0MzEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEpKSAhPSBOVUxMKSB7CiAgICAgICAgICAgICB0YXJnZXQtPnN0b3JhZ2VUeXBlID0gbG9uZ19yZXQ7CiAgICAgICAgIH0KKyAgICAgICAgc25tcF9zdG9yZV9uZWVkZWQoTlVMTCk7CiAgICAgfQogCiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CkBAIC0xNDQxLDE4ICsxNDYwLDE4IEBACiAgICAgICAgIHRlbXBfc3RydWN0ID0gc25tcFRhcmdldEFkZHJUYWJsZV9jcmVhdGUoKTsKICAgICAgICAgaWYgKCF0ZW1wX3N0cnVjdCkKICAgICAgICAgICAgIHJldHVybiBTTk1QX0VSUl9HRU5FUlI7Ci0gICAgICAgIHRlbXBfc3RydWN0LT5uYW1lID0gKGNoYXIgKikgbWFsbG9jKG5ld05hbWVMZW4gKyAxKTsKLSAgICAgICAgaWYgKHRlbXBfc3RydWN0LT5uYW1lID09IE5VTEwpIHsKKyAgICAgICAgdGVtcF9zdHJ1Y3QtPm5hbWVEYXRhID0gKGNoYXIgKikgbWFsbG9jKG5ld05hbWVMZW4pOworICAgICAgICBpZiAodGVtcF9zdHJ1Y3QtPm5hbWVEYXRhID09IE5VTEwpIHsKICAgICAgICAgICAgIFNOTVBfRlJFRSh0ZW1wX3N0cnVjdC0+dGFnTGlzdCk7CiAgICAgICAgICAgICBTTk1QX0ZSRUUodGVtcF9zdHJ1Y3QpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KIAorICAgICAgICB0ZW1wX3N0cnVjdC0+bmFtZUxlbiA9IG5ld05hbWVMZW47CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAoaW50KSBuZXdOYW1lTGVuOyBpKyspIHsKLSAgICAgICAgICAgIHRlbXBfc3RydWN0LT5uYW1lW2ldID0gKGNoYXIpIG5hbWVbaSArIHNubXBUYXJnZXRBZGRyT0lETGVuXTsKKyAgICAgICAgICAgIHRlbXBfc3RydWN0LT5uYW1lRGF0YVtpXSA9IChjaGFyKSBuYW1lW2kgKyBzbm1wVGFyZ2V0QWRkck9JRExlbl07CiAgICAgICAgIH0KIAotICAgICAgICB0ZW1wX3N0cnVjdC0+bmFtZVtuZXdOYW1lTGVuXSA9ICdcMCc7CiAgICAgICAgIHRlbXBfc3RydWN0LT5yb3dTdGF0dXMgPSBTTk1QX1JPV19OT1RSRUFEWTsKIAogICAgICAgICBzbm1wVGFyZ2V0QWRkclRhYmxlX2FkZFRvTGlzdCh0ZW1wX3N0cnVjdCwgJmFBZGRyVGFibGUpOwpAQCAtMTY0OCw2ICsxNjY3LDcgQEAKICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKIH0KIAorI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogCiB1X2NoYXIgICAgICAgICAqCkBAIC0xNjU5LDEyICsxNjc5LDIwIEBACiB7CiAgICAgaWYgKGhlYWRlcl9nZW5lcmljKHZwLCBuYW1lLCBsZW5ndGgsIGV4YWN0LCB2YXJfbGVuLCB3cml0ZV9tZXRob2QpID09CiAgICAgICAgIE1BVENIX0ZBSUxFRCkgeworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX3RhcmdldFNwaW5Mb2NrOworI2Vsc2UKKwkJKndyaXRlX21ldGhvZCA9IE5VTEw7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgaWYgKHZwLT5tYWdpYyA9PSBTTk1QVEFSR0VUU1BJTkxPQ0spIHsKLSAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX3RhcmdldFNwaW5Mb2NrOwogICAgICAgICAqdmFyX2xlbiA9IHNpemVvZih1bnNpZ25lZCBsb25nKTsKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCisgICAgICAgICp3cml0ZV9tZXRob2QgPSB3cml0ZV90YXJnZXRTcGluTG9jazsKKyNlbHNlCisJCSp3cml0ZV9tZXRob2QgPSBOVUxMOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgcmV0dXJuICh1X2NoYXIgKikgJiAoc25tcFRhcmdldFNwaW5Mb2NrKTsKICAgICB9CiAgICAgcmV0dXJuIE5VTEw7CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oIGIvYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaAppbmRleCA3ZWQ4MzhmLi4wYjcwYWY1IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oCisrKyBiL2FnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgKQEAgLTQ2LDcgKzQ2LDggQEAKICAgICAgKiBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMgCiAgICAgICovCiAgICAgIHN0cnVjdCB0YXJnZXRBZGRyVGFibGVfc3RydWN0IHsKLSAgICAgICAgIGNoYXIgICAgICAgICAgICpuYW1lOworICAgICAgICAgY2hhciAgICAgICAgICAgKm5hbWVEYXRhOworICAgICAgICAgdW5zaWduZWQgY2hhciAgIG5hbWVMZW47CiAgICAgICAgICBvaWQgICAgICAgICAgICAgdERvbWFpbltNQVhfT0lEX0xFTl07CiAgICAgICAgICBpbnQgICAgICAgICAgICAgdERvbWFpbkxlbjsKICAgICAgICAgIHVuc2lnbmVkIGNoYXIgICp0QWRkcmVzczsKQEAgLTY3LDE5ICs2OCwxOSBAQAogICovCiAKICAgICAgdm9pZCAgICAgICAgICAgIGluaXRfc25tcFRhcmdldEFkZHJFbnRyeSh2b2lkKTsKLSAgICAgaW50ICAgICAgICAgICAgIHN0b3JlX3NubXBUYXJnZXRBZGRyRW50cnkoaW50IG1ham9ySUQsIGludCBtaW5vcklELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpzZXJ2ZXJhcmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmNsaWVudGFyZyk7CisgICAgIHZvaWQgICAgICAgICAgICBzaHV0ZG93bl9zbm1wVGFyZ2V0QWRkckVudHJ5KHZvaWQpOwogICAgICBGaW5kVmFyTWV0aG9kICAgdmFyX3NubXBUYXJnZXRBZGRyRW50cnk7CiAKICAgICAgc3RydWN0IHRhcmdldEFkZHJUYWJsZV9zdHJ1Y3QgKmdldF9hZGRyVGFibGUodm9pZCk7Ci0gICAgIHN0cnVjdCB0YXJnZXRBZGRyVGFibGVfc3RydWN0ICpnZXRfYWRkckZvck5hbWUoY2hhciAqbmFtZSk7CisgICAgIHN0cnVjdCB0YXJnZXRBZGRyVGFibGVfc3RydWN0ICpnZXRfYWRkckZvck5hbWUyKGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgbmFtZUxlbik7CiAgICAgIHN0cnVjdCB0YXJnZXRBZGRyVGFibGVfc3RydWN0ICpzbm1wVGFyZ2V0QWRkclRhYmxlX2NyZWF0ZSh2b2lkKTsKICAgICAgdm9pZCAgICAgICAgICAgIHNubXBUYXJnZXRBZGRyVGFibGVfYWRkKHN0cnVjdCB0YXJnZXRBZGRyVGFibGVfc3RydWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmV3RW50cnkpOwogCiAgICAgIHZvaWQgICAgICAgICAgICBzbm1wZF9wYXJzZV9jb25maWdfdGFyZ2V0QWRkcihjb25zdCBjaGFyICosIGNoYXIgKik7CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9zbm1wVGFyZ2V0QWRkclREb21haW47CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9zbm1wVGFyZ2V0QWRkclRBZGRyZXNzOwogICAgICBXcml0ZU1ldGhvZCAgICAgd3JpdGVfc25tcFRhcmdldEFkZHJUaW1lb3V0OwpAQCAtODksNyArOTAsOCBAQAogICAgICBXcml0ZU1ldGhvZCAgICAgd3JpdGVfc25tcFRhcmdldEFkZHJTdG9yYWdlVHlwZTsKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX3NubXBUYXJnZXRBZGRyUm93U3RhdHVzOwogCi0gICAgIEZpbmRWYXJNZXRob2QgICB2YXJfdGFyZ2V0U3BpbkxvY2s7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV90YXJnZXRTcGluTG9jazsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgIEZpbmRWYXJNZXRob2QgICB2YXJfdGFyZ2V0U3BpbkxvY2s7CiAKICNlbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgLyogX01JQkdST1VQX1NOTVBUQVJHRVRBRERSRU5UUllfSCAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jIGIvYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jCmluZGV4IGU1MTUzNzkuLjRlMWY0ZTIgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYworKysgYi9hZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMKQEAgLTI5Miw2ICsyOTIsMTMgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlX3NubXBUYXJnZXRQYXJhbXNFbnRyeSwgTlVMTCk7CiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBpbml0X3NubXBUYXJnZXRQYXJtc0VudHJ5ICAqLwogCit2b2lkCitzaHV0ZG93bl9zbm1wVGFyZ2V0UGFyYW1zRW50cnkodm9pZCkKK3sKKyAgICB3aGlsZSAoYVBUYWJsZSkKKwlzbm1wVGFyZ2V0UGFyYW1UYWJsZV9yZW1Gcm9tTGlzdChhUFRhYmxlLCAmYVBUYWJsZSk7Cit9CisKIAogaW50CiBzbm1wVGFyZ2V0UGFyYW1zX2FkZFBhcmFtTmFtZShzdHJ1Y3QgdGFyZ2V0UGFyYW1UYWJsZV9zdHJ1Y3QgKmVudHJ5LApAQCAtNjA4LDYgKzYxNSw3IEBACiAgICAgc3RydWN0IHRhcmdldFBhcmFtVGFibGVfc3RydWN0ICp0ZW1wX3N0cnVjdDsKIAogICAgIHN3aXRjaCAodnAtPm1hZ2ljKSB7CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgU05NUFRBUkdFVFBBUkFNU01QTU9ERUw6CiAgICAgICAgICp3cml0ZV9tZXRob2QgPSB3cml0ZV9zbm1wVGFyZ2V0UGFyYW1zTVBNb2RlbDsKICAgICAgICAgYnJlYWs7CkBAIC02MjYsMTEgKzYzNCwxMyBAQAogICAgIGNhc2UgU05NUFRBUkdFVFBBUkFNU1JPV1NUQVRVUzoKICAgICAgICAgKndyaXRlX21ldGhvZCA9IHdyaXRlX3NubXBUYXJnZXRQYXJhbXNSb3dTdGF0dXM7CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICBkZWZhdWx0OgogICAgICAgICAqd3JpdGVfbWV0aG9kID0gTlVMTDsKICAgICB9CiAKLSAgICAqdmFyX2xlbiA9IHNpemVvZihsb25nX3JldCk7ICAgICAgICAvKiBhc3N1bWUgYW4gaW50ZWdlciBhbmQgY2hhbmdlIGxhdGVyIGlmIG5vdCAqLworICAgIC8qIGFzc3VtZSBhbiBpbnRlZ2VyIGFuZCBjaGFuZ2UgbGF0ZXIgaWYgbm90ICovCisgICAgKnZhcl9sZW4gPSBzaXplb2YobG9uZ19yZXQpOwogCiAgICAgLyoKICAgICAgKiBsb29rIGZvciBPSUQgaW4gY3VycmVudCB0YWJsZSAKQEAgLTcwMyw5ICs3MTMsMTIgQEAKICAgICAgICAgICAgICAgICAgICAgInVua25vd24gc3ViLWlkICVkIGluIHZhcl9zbm1wVGFyZ2V0UGFyYW1zRW50cnlcbiIsCiAgICAgICAgICAgICAgICAgICAgIHZwLT5tYWdpYykpOwogICAgIH0KKwogICAgIHJldHVybiBOVUxMOwogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB2YXJfc25tcFRhcmdldFBhcmFtc0VudHJ5ICovCiAKKworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKIC8qCiAgKiBBc3NpZ24gYSB2YWx1ZSB0byB0aGUgbXBNb2RlbCB2YXJpYWJsZS4gIAogICovCkBAIC0xMzc4LDYgKzEzOTEsOSBAQAogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQogCisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworCisKIHN0cnVjdCB0YXJnZXRQYXJhbVRhYmxlX3N0cnVjdCAqCiBnZXRfcGFyYW1FbnRyeShjaGFyICpuYW1lKQogewpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oIGIvYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oCmluZGV4IDgyODZhNjQuLmJkMzA1ODIgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaAorKysgYi9hZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgKQEAgLTEsNzIgKzEsNzUgQEAKIAotLyoKLSAqIFRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5IG1pYjJjIGFuZCBpcyBpbnRlbmRlZCBmb3IgdXNlIGFzIGEgbWliIG1vZHVsZQotICogZm9yIHRoZSB1Y2Qtc25tcCBzbm1wZCBhZ2VudC4gRWRpdGVkIGJ5IE1pY2hhZWwgQmFlcgotICogCi0gKiBsYXN0IGNoYW5nZWQgMi8yLzk5LgotICovCi0KLSNpZm5kZWYgX01JQkdST1VQX1NOTVBUQVJHRVRQQVJBTVNFTlRSWV9ICi0jZGVmaW5lIF9NSUJHUk9VUF9TTk1QVEFSR0VUUEFSQU1TRU5UUllfSAotCi0gICAgLyoKLSAgICAgKiBNYWdpYyBudW1iZXIgZGVmaW5pdGlvbnM6IAotICAgICAqLwotI2RlZmluZSAgIFNOTVBUQVJHRVRQQVJBTVNNUE1PREVMICAgICAgICAxCi0jZGVmaW5lICAgU05NUFRBUkdFVFBBUkFNU1NFQ1VSSVRZTU9ERUwgIDIKLSNkZWZpbmUgICBTTk1QVEFSR0VUUEFSQU1TU0VDVVJJVFlOQU1FICAgMwotI2RlZmluZSAgIFNOTVBUQVJHRVRQQVJBTVNTRUNVUklUWUxFVkVMICA0Ci0jZGVmaW5lICAgU05NUFRBUkdFVFBBUkFNU1NUT1JBR0VUWVBFICAgIDUKLSNkZWZpbmUgICBTTk1QVEFSR0VUUEFSQU1TUk9XU1RBVFVTICAgICAgNgotI2RlZmluZSAgIFNOTVBUQVJHRVRQQVJBTVNNUE1PREVMQ09MVU1OICAgICAgICAyCi0jZGVmaW5lICAgU05NUFRBUkdFVFBBUkFNU1NFQ1VSSVRZTU9ERUxDT0xVTU4gIDMKLSNkZWZpbmUgICBTTk1QVEFSR0VUUEFSQU1TU0VDVVJJVFlOQU1FQ09MVU1OICAgNAotI2RlZmluZSAgIFNOTVBUQVJHRVRQQVJBTVNTRUNVUklUWUxFVkVMQ09MVU1OICA1Ci0jZGVmaW5lICAgU05NUFRBUkdFVFBBUkFNU1NUT1JBR0VUWVBFQ09MVU1OICAgIDYKLSNkZWZpbmUgICBTTk1QVEFSR0VUUEFSQU1TUk9XU1RBVFVTQ09MVU1OICAgICAgNwotICAgIC8qCi0gICAgICogc3RydWN0dXJlIGRlZmluaXRpb25zIAotICAgICAqLwotICAgICBzdHJ1Y3QgdGFyZ2V0UGFyYW1UYWJsZV9zdHJ1Y3QgewotICAgICAgICAgY2hhciAgICAgICAgICAgKnBhcmFtTmFtZTsKLSAgICAgICAgIGludCAgICAgICAgICAgICBtcE1vZGVsOwotICAgICAgICAgaW50ICAgICAgICAgICAgIHNlY01vZGVsOwotICAgICAgICAgY2hhciAgICAgICAgICAgKnNlY05hbWU7Ci0gICAgICAgICBpbnQgICAgICAgICAgICAgc2VjTGV2ZWw7Ci0gICAgICAgICBpbnQgICAgICAgICAgICAgc3RvcmFnZVR5cGU7Ci0gICAgICAgICBpbnQgICAgICAgICAgICAgcm93U3RhdHVzOwotICAgICAgICAgc3RydWN0IHRhcmdldFBhcmFtVGFibGVfc3RydWN0ICpuZXh0OwotICAgICAgICAgdGltZV90ICAgICAgICAgIHVwZGF0ZVRpbWU7Ci0gICAgIH07Ci0KLS8qCi0gKiB1dGlsaXR5IGZ1bmN0aW9ucyAKLSAqLwotICAgICBzdHJ1Y3QgdGFyZ2V0UGFyYW1UYWJsZV9zdHJ1Y3QgKmdldF9wYXJhbUVudHJ5KGNoYXIgKm5hbWUpOwotICAgICB2b2lkICAgICAgICAgICAgc25tcFRhcmdldFBhcmFtVGFibGVfYWRkKHN0cnVjdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFBhcmFtVGFibGVfc3RydWN0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5ld0VudHJ5KTsKLSAgICAgc3RydWN0IHRhcmdldFBhcmFtVGFibGVfc3RydWN0ICpzbm1wVGFyZ2V0UGFyYW1UYWJsZV9jcmVhdGUodm9pZCk7Ci0gICAgIHZvaWQgc25tcFRhcmdldFBhcmFtVGFibGVfZGlzcG9zZShzdHJ1Y3QgdGFyZ2V0UGFyYW1UYWJsZV9zdHJ1Y3QgKik7Ci0KLS8qCi0gKiBmdW5jdGlvbiBkZWZpbml0aW9ucyAKLSAqLwotCi0gICAgIHZvaWQgICAgICAgICAgICBpbml0X3NubXBUYXJnZXRQYXJhbXNFbnRyeSh2b2lkKTsKLSAgICAgaW50ICAgICAgICAgICAgIHN0b3JlX3NubXBUYXJnZXRQYXJhbXNFbnRyeShpbnQgbWFqb3JJRCwgaW50IG1pbm9ySUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqc2VydmVyYXJnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmNsaWVudGFyZyk7Ci0gICAgIGV4dGVybiBGaW5kVmFyTWV0aG9kIHZhcl9zbm1wVGFyZ2V0UGFyYW1zRW50cnk7Ci0KLSAgICAgdm9pZCAgICAgICAgICAgIHNubXBkX3BhcnNlX2NvbmZpZ190YXJnZXRQYXJhbXMoY29uc3QgY2hhciAqLCBjaGFyICopOwotCisgIC8qCisgICAqIFRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5IG1pYjJjIGFuZCBpcyBpbnRlbmRlZCBmb3IgdXNlIGFzIGEgbWliIG1vZHVsZQorICAgKiBmb3IgdGhlIHVjZC1zbm1wIHNubXBkIGFnZW50LiBFZGl0ZWQgYnkgTWljaGFlbCBCYWVyCisgICAqIAorICAgKiBsYXN0IGNoYW5nZWQgMi8yLzk5LgorICAgKi8KKyAKKyAgI2lmbmRlZiBfTUlCR1JPVVBfU05NUFRBUkdFVFBBUkFNU0VOVFJZX0gKKyAgI2RlZmluZSBfTUlCR1JPVVBfU05NUFRBUkdFVFBBUkFNU0VOVFJZX0gKKyAKKyAgICAgIC8qCisgICAgICAgKiBNYWdpYyBudW1iZXIgZGVmaW5pdGlvbnM6IAorICAgICAgICovCisgICNkZWZpbmUgICBTTk1QVEFSR0VUUEFSQU1TTVBNT0RFTCAgICAgICAgMQorICAjZGVmaW5lICAgU05NUFRBUkdFVFBBUkFNU1NFQ1VSSVRZTU9ERUwgIDIKKyAgI2RlZmluZSAgIFNOTVBUQVJHRVRQQVJBTVNTRUNVUklUWU5BTUUgICAzCisgICNkZWZpbmUgICBTTk1QVEFSR0VUUEFSQU1TU0VDVVJJVFlMRVZFTCAgNAorICAjZGVmaW5lICAgU05NUFRBUkdFVFBBUkFNU1NUT1JBR0VUWVBFICAgIDUKKyAgI2RlZmluZSAgIFNOTVBUQVJHRVRQQVJBTVNST1dTVEFUVVMgICAgICA2CisgICNkZWZpbmUgICBTTk1QVEFSR0VUUEFSQU1TTVBNT0RFTENPTFVNTiAgICAgICAgMgorICAjZGVmaW5lICAgU05NUFRBUkdFVFBBUkFNU1NFQ1VSSVRZTU9ERUxDT0xVTU4gIDMKKyAgI2RlZmluZSAgIFNOTVBUQVJHRVRQQVJBTVNTRUNVUklUWU5BTUVDT0xVTU4gICA0CisgICNkZWZpbmUgICBTTk1QVEFSR0VUUEFSQU1TU0VDVVJJVFlMRVZFTENPTFVNTiAgNQorICAjZGVmaW5lICAgU05NUFRBUkdFVFBBUkFNU1NUT1JBR0VUWVBFQ09MVU1OICAgIDYKKyAgI2RlZmluZSAgIFNOTVBUQVJHRVRQQVJBTVNST1dTVEFUVVNDT0xVTU4gICAgICA3CisgICAgICAvKgorICAgICAgICogc3RydWN0dXJlIGRlZmluaXRpb25zIAorICAgICAgICovCisgICAgICAgc3RydWN0IHRhcmdldFBhcmFtVGFibGVfc3RydWN0IHsKKyAgICAgICAgICAgY2hhciAgICAgICAgICAgKnBhcmFtTmFtZTsKKyAgICAgICAgICAgaW50ICAgICAgICAgICAgIG1wTW9kZWw7CisgICAgICAgICAgIGludCAgICAgICAgICAgICBzZWNNb2RlbDsKKyAgICAgICAgICAgY2hhciAgICAgICAgICAgKnNlY05hbWU7CisgICAgICAgICAgIGludCAgICAgICAgICAgICBzZWNMZXZlbDsKKyAgICAgICAgICAgaW50ICAgICAgICAgICAgIHN0b3JhZ2VUeXBlOworICAgICAgICAgICBpbnQgICAgICAgICAgICAgcm93U3RhdHVzOworICAgICAgICAgICBzdHJ1Y3QgdGFyZ2V0UGFyYW1UYWJsZV9zdHJ1Y3QgKm5leHQ7CisgICAgICAgICAgIHRpbWVfdCAgICAgICAgICB1cGRhdGVUaW1lOworICAgICAgIH07CisgCisgIC8qCisgICAqIHV0aWxpdHkgZnVuY3Rpb25zIAorICAgKi8KKyAgICAgICBzdHJ1Y3QgdGFyZ2V0UGFyYW1UYWJsZV9zdHJ1Y3QgKmdldF9wYXJhbUVudHJ5KGNoYXIgKm5hbWUpOworICAgICAgIHZvaWQgICAgICAgICAgICBzbm1wVGFyZ2V0UGFyYW1UYWJsZV9hZGQoc3RydWN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRQYXJhbVRhYmxlX3N0cnVjdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5ld0VudHJ5KTsKKyAgICAgICBzdHJ1Y3QgdGFyZ2V0UGFyYW1UYWJsZV9zdHJ1Y3QgKnNubXBUYXJnZXRQYXJhbVRhYmxlX2NyZWF0ZSh2b2lkKTsKKyAgICAgICB2b2lkIHNubXBUYXJnZXRQYXJhbVRhYmxlX2Rpc3Bvc2Uoc3RydWN0IHRhcmdldFBhcmFtVGFibGVfc3RydWN0ICopOworIAorICAvKgorICAgKiBmdW5jdGlvbiBkZWZpbml0aW9ucyAKKyAgICovCisgCisgICAgICAgdm9pZCAgICAgICAgICAgIGluaXRfc25tcFRhcmdldFBhcmFtc0VudHJ5KHZvaWQpOworICAgICAgIHZvaWQgICAgICAgICAgICBzaHV0ZG93bl9zbm1wVGFyZ2V0UGFyYW1zRW50cnkodm9pZCk7CisgICAgICAgaW50ICAgICAgICAgICAgIHN0b3JlX3NubXBUYXJnZXRQYXJhbXNFbnRyeShpbnQgbWFqb3JJRCwgaW50IG1pbm9ySUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpzZXJ2ZXJhcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpjbGllbnRhcmcpOworICAgICAgIGV4dGVybiBGaW5kVmFyTWV0aG9kIHZhcl9zbm1wVGFyZ2V0UGFyYW1zRW50cnk7CisgCisgICAgICAgdm9pZCAgICAgICAgICAgIHNubXBkX3BhcnNlX2NvbmZpZ190YXJnZXRQYXJhbXMoY29uc3QgY2hhciAqLCBjaGFyICopOworIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgV3JpdGVNZXRob2QgICAgIHdyaXRlX3NubXBUYXJnZXRQYXJhbXNNUE1vZGVsOwogICAgICBXcml0ZU1ldGhvZCAgICAgd3JpdGVfc25tcFRhcmdldFBhcmFtc1NlY01vZGVsOwogICAgICBXcml0ZU1ldGhvZCAgICAgd3JpdGVfc25tcFRhcmdldFBhcmFtc1NlY05hbWU7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9zbm1wVGFyZ2V0UGFyYW1zU2VjTGV2ZWw7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9zbm1wVGFyZ2V0UGFyYW1zU3RvcmFnZVR5cGU7CiAgICAgIFdyaXRlTWV0aG9kICAgICB3cml0ZV9zbm1wVGFyZ2V0UGFyYW1zUm93U3RhdHVzOworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogCiAjZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIF9NSUJHUk9VUF9TTk1QVEFSR0VUUEFSQU1TRU5UUllfSCAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jIGIvYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jCmluZGV4IDU4NzgzYWQuLjU2MTllMzUgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYworKysgYi9hZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMKQEAgLTEsNCArMSw1IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2lmIEhBVkVfU1RSSU5HX0gKICNpbmNsdWRlIDxzdHJpbmcuaD4KQEAgLTI1LDYgKzI2LDEwIEBACiAjaW5jbHVkZSAic25tcFRhcmdldFBhcmFtc0VudHJ5LmgiCiAjaW5jbHVkZSAidGFyZ2V0LmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRkb21haW5fc3VwcG9ydCkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRkb21haW5fdHJhbnNwb3J0X29pZCkKK25ldHNubXBfZmVhdHVyZV93YW50KG5ldHNubXBfdGxzdG1BZGRyX2dldF9zZXJ2ZXJJZCkKKwogI2RlZmluZSBNQVhfVEFHUyAxMjgKIAogbmV0c25tcF9zZXNzaW9uICoKQEAgLTY2LDcgKzcxLDcgQEAKICAgICAgICAgICAgICh0YXJnYWRkcnMtPnREb21haW4sIHRhcmdhZGRycy0+dERvbWFpbkxlbiwgTlVMTCwgTlVMTCkgPT0gMCkgewogICAgICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwKICAgICAgICAgICAgICAgICAgICAgICJ1bnN1cHBvcnRlZCBkb21haW4gZm9yIHRhcmdldCBhZGRyZXNzIHRhYmxlIGVudHJ5ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgdGFyZ2FkZHJzLT5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgIHRhcmdhZGRycy0+bmFtZURhdGEpOwogICAgICAgICB9CiAKICAgICAgICAgLyoKQEAgLTE5MSw3ICsxOTYsOCBAQAogI2lmIGRlZmluZWQoTkVUU05NUF9UUkFOU1BPUlRfRFRMU1VEUF9ET01BSU4pIHx8IGRlZmluZWQoTkVUU05NUF9UUkFOU1BPUlRfVExTVENQX0RPTUFJTikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRscykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2NlcnQgKmNlcnQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgICAgICAgICAqc2VydmVyX2lkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICAgICAgICAgKnNlcnZlcl9pZCA9IE5VTEw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIJICAgICAgYnVmWzMzXTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERUJVR01TR1RMKCgidGFyZ2V0X3Nlc3Npb25zIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgbG9va2luZyB1cCBvdXIgaWQ6ICVzXG4iLApAQCAtMjA1LDI1ICsyMTEsMjkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJ0YXJnZXRfc2Vzc2lvbnMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICBmb3VuZCBmaW5nZXJwcmludDogJXNcbiIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydC0+ZmluZ2VycHJpbnQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQtPmZfY29uZmlnKHQsICJvdXJfaWRlbnRpdHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC0+Zl9jb25maWcodCwgImxvY2FsQ2VydCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0LT5maW5nZXJwcmludCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtY3B5KGJ1ZiwgdGFyZ2FkZHJzLT5uYW1lRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdhZGRycy0+bmFtZUxlbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zlt0YXJnYWRkcnMtPm5hbWVMZW5dID0gJ1wwJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVCVUdNU0dUTCgoInRhcmdldF9zZXNzaW9ucyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIGxvb2tpbmcgdXAgdGhlaXIgaWQ6ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnYWRkcnMtPm5hbWUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnQgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9jZXJ0X2ZpbmQoTlNfQ0VSVF9SRU1PVEVfUEVFUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5TX0NFUlRLRVlfVEFSR0VUX0FERFIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnYWRkcnMtPm5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNlcnQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJ0YXJnZXRfc2Vzc2lvbnMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICBmb3VuZCBmaW5nZXJwcmludDogJXNcbiIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydC0+ZmluZ2VycHJpbnQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQtPmZfY29uZmlnKHQsICJ0aGVpcl9pZGVudGl0eSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LT5mX2NvbmZpZyh0LCAicGVlckNlcnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydC0+ZmluZ2VycHJpbnQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCA9IG5ldHNubXBfdGxzdG1BZGRyX2dldF9zZXJ2ZXJJZCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdhZGRycy0+bmFtZSk7CisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVExTVE1BRERSX0dFVF9TRVJWRVJJRAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQgPSBuZXRzbm1wX3Rsc3RtQWRkcl9nZXRfc2VydmVySWQoYnVmKTsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RMU1RNQUREUl9HRVRfU0VSVkVSSUQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlcnZlcl9pZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVCVUdNU0dUTCgoInRhcmdldF9zZXNzaW9ucyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIGZvdW5kIHNlcnZlcklkOiAlc1xuIiwgCkBAIC0yNDYsNyArMjU2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuc3VwcG9ydGVkIG1wTW9kZWwvc2VjTW9kZWwgY29tYm8gJWQvJWQgZm9yIHRhcmdldCAlc1xuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW0tPm1wTW9kZWwsIHBhcmFtLT5zZWNNb2RlbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2FkZHJzLT5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2FkZHJzLT5uYW1lRGF0YSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIFhYWDogbWVtbGVhayAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMgYi9hZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMKaW5kZXggOGEyZjBkMS4uMDEwOTk3NCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jCisrKyBiL2FnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYwpAQCAtNDQsNiArNDQsNyBAQAogCiB9CiAKKwogaW50CiBnZXRfdW5rbm93bl9jb250ZXh0X2NvdW50KG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKnJlZ2luZm8sCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmggYi9hZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmgKaW5kZXggYzQ4NWM0Yy4uMzU1ZjM5MSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oCisrKyBiL2FnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaApAQCAtNSw1ICs1LDYgQEAKIGNvbmZpZ19leGNsdWRlKHRhcmdldC90YXJnZXRfY291bnRlcnMpCiAKIHZvaWQgICAgICAgICAgICBpbml0X3RhcmdldF9jb3VudGVycyh2b2lkKTsKKwogTmV0c25tcF9Ob2RlX0hhbmRsZXIgZ2V0X3VuYXZhaWxhYmxlX2NvbnRleHRfY291bnQ7CiBOZXRzbm1wX05vZGVfSGFuZGxlciBnZXRfdW5rbm93bl9jb250ZXh0X2NvdW50OwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuYyBiL2FnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmMKaW5kZXggN2JlN2RlMy4uYTMyMjA3YiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuYworKysgYi9hZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5jCkBAIC0xLDUgKzEsNyBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgogCisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KKwogI2lmIEhBVkVfU1RSSU5HX0gKICNpbmNsdWRlIDxzdHJpbmcuaD4KICNlbHNlCkBAIC0xMyw2ICsxNSw4IEBACiAKICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9zbm1wX2dldF9zdGF0aXN0aWMuaD4KIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaGVscGVyX3N0YXRpc3RpY3MpCisKIHZvaWQKIGluaXRfdGFyZ2V0X2NvdW50ZXJzXzVfNSh2b2lkKQogewpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmggYi9hZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaAppbmRleCAwZjM5YTdmLi4wYzEzYTBmIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaAorKysgYi9hZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaApAQCAtMjMsNyArMjMsNyBAQAogY29uZmlnX3JlcXVpcmUodXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUpCiAjZWxpZiBkZWZpbmVkKCBzb2xhcmlzMiApCiBjb25maWdfcmVxdWlyZSh0Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fc29sYXJpczIpCi0jZWxpZiBkZWZpbmVkKGZyZWVic2Q0KSB8fCBkZWZpbmVkKGRyYWdvbmZseSkKKyNlbGlmIGRlZmluZWQoZnJlZWJzZDQpIHx8IGRlZmluZWQoZHJhZ29uZmx5KSB8fCBkZWZpbmVkKGRhcndpbikKIGNvbmZpZ19yZXF1aXJlKHRjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9mcmVlYnNkNCkKICNlbGlmIGRlZmluZWQob3BlbmJzZDQpCiBjb25maWdfcmVxdWlyZSh0Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fb3BlbmJzZCkKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYyBiL2FnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYwppbmRleCBlOWYyYjhmLi5iYmEwMWZlIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jCkBAIC0xNjQsNiArMTY0LDEzIEBACiAgICAgZnJlZShlbnRyeSk7CiB9CiAKKyNpZmRlZiBUQ1BDT05OX0RFTEVURV9TVVBQT1JURUQKKworLyogWFhYIFRPRE86IHRoZXNlIGFyZSBjdXJyZW50bHkgdW5zdXBwb3J0ZWQgZXZlcnl3aGVyZTsgdG8gZW5hYmxlIHRoZQorICAgZnVuY3Rpb25zIGZpcnN0IGltcGxlbWVudCBuZXRzbm1wX2FyY2hfdGNwY29ubl9lbnRyeV9kZWxldGUgaW4gdGhlCisgICB0Y3BDb25uX3tPU30uYyBmaWxlIGFuZCB0aGVuIGRlZmluZSBUQ1BDT05OX0RFTEVURV9TVVBQT1JURUQgaW4gdGhlCisgICB0Y3BDb25uX3tPU30uaCBmaWxlICh3aGljaCBtYXkgbmVlZCB0byBiZSBjcmVhdGVkIGZpcnN0KS4gKi8KKwogLyoqCiAgKiB1cGRhdGUgdW5kZXJseWluZyBkYXRhIHN0b3JlIChrZXJuZWwpIGZvciBlbnRyeQogICoKQEAgLTE5Myw2ICsyMDAsNyBAQAogICAgIAogICAgIHJldHVybiByYzsKIH0KKyNlbmRpZiAvKiBUQ1BDT05OX0RFTEVURV9TVVBQT1JURUQgKi8KIAogLyoqCiAgKiB1cGRhdGUgYW4gb2xkIHRjcGNvbm5fZW50cnkgZnJvbSBhIG5ldyBvbmUKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jIGIvYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMKaW5kZXggMmJmNTg4YS4uNWY5M2JlMCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMKQEAgLTU2LDYgKzU2LDcgQEAKICAgICByZXR1cm4gMDsKIH0KIAorI2lmZGVmIFRDUENPTk5fREVMRVRFX1NVUFBPUlRFRAogLyoKICAqIGRlbGV0ZSBhbiBlbnRyeQogICovCkBAIC02Nyw3ICs2OCw3IEBACiAgICAgLyoqIHh4eC1ya3M6OSB0Y3BDb25uIGRlbGV0ZSBub3QgaW1wbGVtZW50ZWQgKi8KICAgICByZXR1cm4gLTE7CiB9Ci0KKyNlbmRpZiAvKiBUQ1BDT05OX0RFTEVURV9TVVBQT1JURUQgKi8KIAogLyoqCiAgKgpAQCAtODMsNiArODQsOSBAQAogICAgIERFQlVHTVNHVEwoKCJhY2Nlc3M6dGNwY29ubjpjb250YWluZXIiLAogICAgICAgICAgICAgICAgICJ0Y3Bjb25uX2NvbnRhaW5lcl9hcmNoX2xvYWQgKGZsYWdzICV4KVxuIiwgbG9hZF9mbGFncykpOwogCisgICAgLyogU2V0dXAgdGhlIHBpZF9mcm9tX2lub2RlIHRhYmxlLCBhbmQgZmlsbCBpdC4qLworICAgIG5ldHNubXBfZ2V0X3BpZF9mcm9tX2lub2RlX2luaXQoKTsKKwogICAgIGlmIChOVUxMID09IGNvbnRhaW5lcikgewogICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAibm8gY29udGFpbmVyIHNwZWNpZmllZC9mb3VuZCBmb3IgYWNjZXNzX3RjcGNvbm5cbiIpOwogICAgICAgICByZXR1cm4gLTE7CkBAIC0xODQsNyArMTg4LDcgQEAKICAgICAgICAgZW50cnktPnJtdF9wb3J0ID0gKHVuc2lnbmVkIHNob3J0KSByZW1vdGVfcG9ydDsKICAgICAgICAgZW50cnktPnRjcENvbm5TdGF0ZSA9IHN0YXRlOwogICAgICAgICBlbnRyeS0+cGlkID0gbmV0c25tcF9nZXRfcGlkX2Zyb21faW5vZGUoaW5vZGUpOwotICAgICAgICAKKwogICAgICAgICAvKiogdGhlIGFkZHIgc3RyaW5nIG1heSBuZWVkIHdvcmsgKi8KICAgICAgICAgYnVmX2xlbiA9IHN0cmxlbihsb2NhbF9hZGRyKTsKICAgICAgICAgaWYgKCg4ICE9IGJ1Zl9sZW4pIHx8CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fc29sYXJpczIuYyBiL2FnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9zb2xhcmlzMi5jCmluZGV4IDk1OWQ3MDguLjg4OTI5OWEgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9zb2xhcmlzMi5jCisrKyBiL2FnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9zb2xhcmlzMi5jCkBAIC0zOSw2ICszOSw3IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKKyNpZmRlZiBUQ1BDT05OX0RFTEVURV9TVVBQT1JURUQKIGludCAKIG5ldHNubXBfYXJjaF90Y3Bjb25uX2VudHJ5X2RlbGV0ZShuZXRzbm1wX3RjcGNvbm5fZW50cnkgKmVwKQogewpAQCAtNDcsNiArNDgsNyBAQAogICAgICAqLwogICAgIHJldHVybiAoLTEpOwogfQorI2VuZGlmIC8qIFRDUENPTk5fREVMRVRFX1NVUFBPUlRFRCAqLwogCiBpbnQgCiBuZXRzbm1wX2FyY2hfdGNwY29ubl9jb250YWluZXJfbG9hZChuZXRzbm1wX2NvbnRhaW5lciAqIGNvbnRhaW5lciwgCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMgYi9hZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMKaW5kZXggZDFjMmZiMy4uZDBiMjdlNSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYwpAQCAtMzAsNiArMzAsNyBAQAogICogc3RhbmRhcmQgTmV0LVNOTVAgaW5jbHVkZXMgCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KIApAQCAtNDYsNiArNDcsMTggQEAKIAogI2luY2x1ZGUgPGN0eXBlLmg+CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0Y3BDb25uZWN0aW9uVGFibGVfZXh0ZXJuYWxfYWNjZXNzLCBsaWJuZXRzbm1wbWlicykKKworbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUocm93X21lcmdlKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoYmFieV9zdGVwcykKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX2FsbF9yZXF1ZXN0c19lcnJvcikKKworCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGNwQ29ubmVjdGlvblRhYmxlX2NvbnRhaW5lcl9zaXplLCB0Y3BDb25uZWN0aW9uVGFibGVfZXh0ZXJuYWxfYWNjZXNzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRjcENvbm5lY3Rpb25UYWJsZV9yZWdpc3RyYXRpb25fc2V0LCB0Y3BDb25uZWN0aW9uVGFibGVfZXh0ZXJuYWxfYWNjZXNzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRjcENvbm5lY3Rpb25UYWJsZV9yZWdpc3RyYXRpb25fZ2V0LCB0Y3BDb25uZWN0aW9uVGFibGVfZXh0ZXJuYWxfYWNjZXNzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRjcENvbm5lY3Rpb25UYWJsZV9jb250YWluZXJfZ2V0LCB0Y3BDb25uZWN0aW9uVGFibGVfZXh0ZXJuYWxfYWNjZXNzKQorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqKioKQEAgLTgyLDE5ICs5NSwyMyBAQAogICAgICAgICAgICAgICAgIF90Y3BDb25uZWN0aW9uVGFibGVfY29udGFpbmVyX3NodXRkb3duKHRjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2VfY3R4ICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZl9jdHgpOwogCi0KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQ1BDT05ORUNUSU9OVEFCTEVfQ09OVEFJTkVSX0dFVAogbmV0c25tcF9jb250YWluZXIgKgogdGNwQ29ubmVjdGlvblRhYmxlX2NvbnRhaW5lcl9nZXQodm9pZCkKIHsKICAgICByZXR1cm4gdGNwQ29ubmVjdGlvblRhYmxlX2lmX2N0eC5jb250YWluZXI7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQ1BDT05ORUNUSU9OVEFCTEVfQ09OVEFJTkVSX0dFVCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVENQQ09OTkVDVElPTlRBQkxFX1JFR0lTVFJBVElPTl9HRVQKIHRjcENvbm5lY3Rpb25UYWJsZV9yZWdpc3RyYXRpb24gKgogdGNwQ29ubmVjdGlvblRhYmxlX3JlZ2lzdHJhdGlvbl9nZXQodm9pZCkKIHsKICAgICByZXR1cm4gdGNwQ29ubmVjdGlvblRhYmxlX2lmX2N0eC51c2VyX2N0eDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RDUENPTk5FQ1RJT05UQUJMRV9SRUdJU1RSQVRJT05fR0VUICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQ1BDT05ORUNUSU9OVEFCTEVfUkVHSVNUUkFUSU9OX1NFVAogdGNwQ29ubmVjdGlvblRhYmxlX3JlZ2lzdHJhdGlvbiAqCiB0Y3BDb25uZWN0aW9uVGFibGVfcmVnaXN0cmF0aW9uX3NldCh0Y3BDb25uZWN0aW9uVGFibGVfcmVnaXN0cmF0aW9uICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3JlZykKQEAgLTEwNCwxMiArMTIxLDE1IEBACiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2lmX2N0eC51c2VyX2N0eCA9IG5ld3JlZzsKICAgICByZXR1cm4gb2xkOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVENQQ09OTkVDVElPTlRBQkxFX1JFR0lTVFJBVElPTl9TRVQgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RDUENPTk5FQ1RJT05UQUJMRV9DT05UQUlORVJfU0laRQogaW50CiB0Y3BDb25uZWN0aW9uVGFibGVfY29udGFpbmVyX3NpemUodm9pZCkKIHsKICAgICByZXR1cm4gQ09OVEFJTkVSX1NJWkUodGNwQ29ubmVjdGlvblRhYmxlX2lmX2N0eC5jb250YWluZXIpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVENQQ09OTkVDVElPTlRBQkxFX0NPTlRBSU5FUl9TSVpFICovCiAKIHVfaW50CiB0Y3BDb25uZWN0aW9uVGFibGVfZGlydHlfZ2V0KHZvaWQpCkBAIC0xMzMsNyArMTUzLDcgQEAKIHN0YXRpYyBOZXRzbm1wX05vZGVfSGFuZGxlciBfbWZkX3RjcENvbm5lY3Rpb25UYWJsZV9wb3N0X3JlcXVlc3Q7CiBzdGF0aWMgTmV0c25tcF9Ob2RlX0hhbmRsZXIgX21mZF90Y3BDb25uZWN0aW9uVGFibGVfb2JqZWN0X2xvb2t1cDsKIHN0YXRpYyBOZXRzbm1wX05vZGVfSGFuZGxlciBfbWZkX3RjcENvbm5lY3Rpb25UYWJsZV9nZXRfdmFsdWVzOwotI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKKyNpZiAhKGRlZmluZWQoTkVUU05NUF9OT19XUklURV9TVVBQT1JUKSB8fCBkZWZpbmVkKE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCkpCiBzdGF0aWMgTmV0c25tcF9Ob2RlX0hhbmRsZXIgX21mZF90Y3BDb25uZWN0aW9uVGFibGVfY2hlY2tfb2JqZWN0czsKIHN0YXRpYyBOZXRzbm1wX05vZGVfSGFuZGxlciBfbWZkX3RjcENvbm5lY3Rpb25UYWJsZV91bmRvX3NldHVwOwogc3RhdGljIE5ldHNubXBfTm9kZV9IYW5kbGVyIF9tZmRfdGNwQ29ubmVjdGlvblRhYmxlX3NldF92YWx1ZXM7CkBAIC0xNDgsNyArMTY4LDcgQEAKICAgICAgICAgICAgICAgICBfdGNwQ29ubmVjdGlvblRhYmxlX3VuZG9fY29sdW1uKHRjcENvbm5lY3Rpb25UYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIsIGludCBjb2x1bW4pOwotI2VuZGlmCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUIHx8IE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCAqLwogCiAvKioKICAqIEBpbnRlcm5hbApAQCAtMjMyLDggKzI1Miw3IEBACiAgICAgYWNjZXNzX211bHRpcGxleGVyLT5wb3N0X3JlcXVlc3QgPQogICAgICAgICBfbWZkX3RjcENvbm5lY3Rpb25UYWJsZV9wb3N0X3JlcXVlc3Q7CiAKLQotI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKKyNpZiAhKGRlZmluZWQoTkVUU05NUF9OT19XUklURV9TVVBQT1JUKSB8fCBkZWZpbmVkKE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCkpCiAgICAgLyoKICAgICAgKiBSRVFVSVJFRCB3cmFwcGVycyBmb3Igc2V0IHJlcXVlc3QgaGFuZGxpbmcKICAgICAgKi8KQEAgLTI1OCw3ICsyNzcsNyBAQAogICAgICAqLwogICAgIGFjY2Vzc19tdWx0aXBsZXhlci0+Y29uc2lzdGVuY3lfY2hlY2tzID0KICAgICAgICAgX21mZF90Y3BDb25uZWN0aW9uVGFibGVfY2hlY2tfZGVwZW5kZW5jaWVzOwotI2VuZGlmCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUIHx8IE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCAqLwogCiAgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgKgpAQCAtMjczLDcgKzI5Miw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRjcENvbm5lY3Rpb25UYWJsZV9vaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRjcENvbm5lY3Rpb25UYWJsZV9vaWRfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEFORExFUl9DQU5fQkFCWV9TVEVQCi0jaWZuZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAorI2lmICEoZGVmaW5lZChORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQpIHx8IGRlZmluZWQoTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgSEFORExFUl9DQU5fUldSSVRFCiAjZW5kaWYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CkBAIC0yOTQsNyArMzEzLDcgQEAKICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT5wb3N0X3JlcXVlc3QpCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfUE9TVF9SRVFVRVNUOwogCi0jaWZuZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAorI2lmICEoZGVmaW5lZChORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQpIHx8IGRlZmluZWQoTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUKSkKICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT5zZXRfdmFsdWVzKQogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX1NFVF9WQUxVRVM7CiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+aXJyZXZlcnNpYmxlX2NvbW1pdCkKQEAgLTMxNyw3ICszMzYsNyBAQAogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX0NPTU1JVDsKICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT51bmRvX2NvbW1pdCkKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9VTkRPX0NPTU1JVDsKLSNlbmRpZgorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCB8fCBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQgKi8KIAogICAgIGhhbmRsZXIgPSBuZXRzbm1wX2JhYnlfc3RlcHNfaGFuZGxlcl9nZXQobWZkX21vZGVzKTsKICAgICBuZXRzbm1wX2luamVjdF9oYW5kbGVyKHJlZ2luZm8sIGhhbmRsZXIpOwpAQCAtOTkwLDcgKzEwMDksNyBAQAogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBfbWZkX3RjcENvbm5lY3Rpb25UYWJsZV9nZXRfdmFsdWVzICovCiAKIAotI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKKyNpZiAhKGRlZmluZWQoTkVUU05NUF9OT19XUklURV9TVVBQT1JUKSB8fCBkZWZpbmVkKE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCkpCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBTRVQgcHJvY2Vzc2luZwpAQCAtMTYxOCw3ICsxNjM3LDcgQEAKIAogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBfbWZkX3RjcENvbm5lY3Rpb25UYWJsZV9pcnJldmVyc2libGVfY29tbWl0ICovCi0jZW5kaWYKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgfHwgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKQEAgLTE3NzUsNiArMTc5NCw3IEBACiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIF90Y3BDb25uZWN0aW9uVGFibGVfY29udGFpbmVyX3NodXRkb3duICovCiAKIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RDUENPTk5FQ1RJT05UQUJMRV9FWFRFUk5BTF9BQ0NFU1MKIHRjcENvbm5lY3Rpb25UYWJsZV9yb3dyZXFfY3R4ICoKIHRjcENvbm5lY3Rpb25UYWJsZV9yb3dfZmluZF9ieV9taWJfaW5kZXgodGNwQ29ubmVjdGlvblRhYmxlX21pYl9pbmRleCAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pYl9pZHgpCkBAIC0xODAyLDMgKzE4MjIsNCBAQAogCiAgICAgcmV0dXJuIHJvd3JlcV9jdHg7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQ1BDT05ORUNUSU9OVEFCTEVfRVhURVJOQUxfQUNDRVNTICovCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYyBiL2FnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jCmluZGV4IGE1Yzk1MTAuLjJlNDEzODAgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jCisrKyBiL2FnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jCkBAIC0zMCw2ICszMCw3IEBACiAgKiBzdGFuZGFyZCBOZXQtU05NUCBpbmNsdWRlcyAKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCkBAIC00Niw2ICs0NywxOCBAQAogCiAjaW5jbHVkZSA8Y3R5cGUuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRjcExpc3RlbmVyVGFibGVfZXh0ZXJuYWxfYWNjZXNzLCBsaWJuZXRzbm1wbWlicykKKworbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUocm93X21lcmdlKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoYmFieV9zdGVwcykKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX2FsbF9yZXF1ZXN0c19lcnJvcikKKworCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGNwTGlzdGVuZXJUYWJsZV9jb250YWluZXJfc2l6ZSwgdGNwTGlzdGVuZXJUYWJsZV9leHRlcm5hbF9hY2Nlc3MpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGNwTGlzdGVuZXJUYWJsZV9yZWdpc3RyYXRpb25fc2V0LCB0Y3BMaXN0ZW5lclRhYmxlX2V4dGVybmFsX2FjY2VzcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0Y3BMaXN0ZW5lclRhYmxlX3JlZ2lzdHJhdGlvbl9nZXQsIHRjcExpc3RlbmVyVGFibGVfZXh0ZXJuYWxfYWNjZXNzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRjcExpc3RlbmVyVGFibGVfY29udGFpbmVyX2dldCwgdGNwTGlzdGVuZXJUYWJsZV9leHRlcm5hbF9hY2Nlc3MpCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoqKgpAQCAtNzksMTkgKzkyLDIzIEBACiAgICAgICAgICAgICAgICAgX3RjcExpc3RlbmVyVGFibGVfY29udGFpbmVyX3NodXRkb3duKHRjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlX2N0eCAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmX2N0eCk7CiAKLQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RDUExJU1RFTkVSVEFCTEVfQ09OVEFJTkVSX0dFVAogbmV0c25tcF9jb250YWluZXIgKgogdGNwTGlzdGVuZXJUYWJsZV9jb250YWluZXJfZ2V0KHZvaWQpCiB7CiAgICAgcmV0dXJuIHRjcExpc3RlbmVyVGFibGVfaWZfY3R4LmNvbnRhaW5lcjsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RDUExJU1RFTkVSVEFCTEVfQ09OVEFJTkVSX0dFVCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVENQTElTVEVORVJUQUJMRV9SRUdJU1RSQVRJT05fR0VUCiB0Y3BMaXN0ZW5lclRhYmxlX3JlZ2lzdHJhdGlvbiAqCiB0Y3BMaXN0ZW5lclRhYmxlX3JlZ2lzdHJhdGlvbl9nZXQodm9pZCkKIHsKICAgICByZXR1cm4gdGNwTGlzdGVuZXJUYWJsZV9pZl9jdHgudXNlcl9jdHg7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQ1BMSVNURU5FUlRBQkxFX1JFR0lTVFJBVElPTl9HRVQgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RDUExJU1RFTkVSVEFCTEVfUkVHSVNUUkFUSU9OX1NFVAogdGNwTGlzdGVuZXJUYWJsZV9yZWdpc3RyYXRpb24gKgogdGNwTGlzdGVuZXJUYWJsZV9yZWdpc3RyYXRpb25fc2V0KHRjcExpc3RlbmVyVGFibGVfcmVnaXN0cmF0aW9uICogbmV3cmVnKQogewpAQCAtOTksMTIgKzExNiwxNSBAQAogICAgIHRjcExpc3RlbmVyVGFibGVfaWZfY3R4LnVzZXJfY3R4ID0gbmV3cmVnOwogICAgIHJldHVybiBvbGQ7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UQ1BMSVNURU5FUlRBQkxFX1JFR0lTVFJBVElPTl9TRVQgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RDUExJU1RFTkVSVEFCTEVfQ09OVEFJTkVSX1NJWkUKIGludAogdGNwTGlzdGVuZXJUYWJsZV9jb250YWluZXJfc2l6ZSh2b2lkKQogewogICAgIHJldHVybiBDT05UQUlORVJfU0laRSh0Y3BMaXN0ZW5lclRhYmxlX2lmX2N0eC5jb250YWluZXIpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVENQTElTVEVORVJUQUJMRV9DT05UQUlORVJfU0laRSAqLwogCiAvKgogICogbWZkIG11bHRpcGxleGVyIG1vZGVzCkBAIC0yMjAsNyArMjQwLDggQEAKICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT5wb3N0X3JlcXVlc3QpCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfUE9TVF9SRVFVRVNUOwogCi0jaWZuZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAorI2lmICEoZGVmaW5lZChORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQpIHx8IGRlZmluZWQoTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUKSkKKyAgICAvKiBYWFggLSBhcmUgdGhlc2UgYWN0dWFsbHkgbmVjZXNzYXJ5PyAqLwogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnNldF92YWx1ZXMpCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfU0VUX1ZBTFVFUzsKICAgICBpZiAoYWNjZXNzX211bHRpcGxleGVyLT5pcnJldmVyc2libGVfY29tbWl0KQpAQCAtMjQzLDcgKzI2NCw3IEBACiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfQ09NTUlUOwogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnVuZG9fY29tbWl0KQogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX1VORE9fQ09NTUlUOwotI2VuZGlmCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUIHx8IE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCAqLwogCiAgICAgaGFuZGxlciA9IG5ldHNubXBfYmFieV9zdGVwc19oYW5kbGVyX2dldChtZmRfbW9kZXMpOwogICAgIG5ldHNubXBfaW5qZWN0X2hhbmRsZXIocmVnaW5mbywgaGFuZGxlcik7CkBAIC05NTcsNiArOTc4LDcgQEAKIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogX3RjcExpc3RlbmVyVGFibGVfY29udGFpbmVyX3NodXRkb3duICovCiAKIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RDUExJU1RFTkVSVEFCTEVfRVhURVJOQUxfQUNDRVNTCiB0Y3BMaXN0ZW5lclRhYmxlX3Jvd3JlcV9jdHggKgogdGNwTGlzdGVuZXJUYWJsZV9yb3dfZmluZF9ieV9taWJfaW5kZXgodGNwTGlzdGVuZXJUYWJsZV9taWJfaW5kZXggKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWliX2lkeCkKQEAgLTk4NCwzICsxMDA2LDQgQEAKIAogICAgIHJldHVybiByb3dyZXFfY3R4OwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVENQTElTVEVORVJUQUJMRV9FWFRFUk5BTF9BQ0NFU1MgKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgYi9hZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCmluZGV4IGMwODY2ZGQuLmY3NDY4ZjAgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwpAQCAtMSw0ICsxLDUgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaWZkZWYgSEFWRV9TVERMSUJfSAogI2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtOSw2ICsxMCwxMSBAQAogI2luY2x1ZGUgPHN0cmluZ3MuaD4KICNlbmRpZgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh1bG9uZ19pbnN0YW5jZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHJlZ2lzdGVyX3JlYWRfb25seV90YWJsZV9kYXRhKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfYnVpbGRfcmVzdWx0KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfZGF0YXNldCkKKwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KIApAQCAtMzI5LDYgKzMzNSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodV9jaGFyICopICYgYWNjZXNzZXMsIHNpemVvZihhY2Nlc3NlcykpOwogICAgICAgICBicmVhazsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBjYXNlIE1PREVfU0VUX1JFU0VSVkUxOgogICAgICAgICBpZiAocmVxdWVzdHMtPnJlcXVlc3R2Yi0+dHlwZSAhPSBBU05fVU5TSUdORUQpCiAgICAgICAgICAgICBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yKHJlcWluZm8sIHJlcXVlc3RzLApAQCAtMzcxLDYgKzM3OCw3IEBACiAgICAgICAgICAqIG5vdGhpbmcgdG8gZG8gCiAgICAgICAgICAqLwogICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICB9CiAKICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMgYi9hZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jCmluZGV4IGVkYTY0ZjMuLjU0OTNmZjkgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYwpAQCAtNCw2ICs0LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8b3BlbnNzbC9zc2wuaD4KQEAgLTEyLDYgKzEzLDE3IEBACiAjaW5jbHVkZSAidGxzdG0tbWliLmgiCiAjaW5jbHVkZSAic25tcFRsc3RtQWRkclRhYmxlLmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX3RkYXRhKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGxzdG1hZGRyX2NvbnRhaW5lcikKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX3RkYXRhX2RlbGV0ZV90YWJsZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX3RkYXRhX2V4dHJhY3RfdGFibGUpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV90ZGF0YV9yZW1vdmVfcm93KQorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX3ZiX3N0b3JhZ2V0eXBlKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfdmJfdHlwZV9hbmRfbWF4X3NpemUpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV90ZGF0YV9pbnNlcnRfcm93KQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworCiAvKiogWFhYIC0gbW92ZSB0aGVzZSB0byB0YWJsZV9kYXRhIGhlYWRlcj8gKi8KICNkZWZpbmUgRkFURV9ORVdMWV9DUkVBVEVEICAgIDEKICNkZWZpbmUgRkFURV9OT19DSEFOR0UgICAgICAgIDAKQEAgLTE5OCw3ICsyMTAsNyBAQAogICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLAogICAgICAgICAgICAgICAgICAiY291bGQgbm90IGNyZWF0ZSBoYW5kbGVyIGZvciBzbm1wVGxzdG1BZGRyVGFibGVMYXN0Q2hhbmdlZFxuIik7CiAgICAgZWxzZQotICAgICAgICBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfc2NhbGFyKHJlZywgd2F0Y2hlcik7CisgICAgICAgIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zY2FsYXIyKHJlZywgd2F0Y2hlcik7CiAKICAgICAvKgogICAgICAqIEluaXRpYWxpc2UgdGhlIGNvbnRlbnRzIG9mIHRoZSB0YWJsZSBoZXJlIApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMgYi9hZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYwppbmRleCAzZjc5MTk3Li44NGQxYWZiIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYwpAQCAtNCw2ICs0LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8b3BlbnNzbC9zc2wuaD4KQEAgLTEyLDYgKzEzLDE5IEBACiAjaW5jbHVkZSAidGxzdG0tbWliLmgiCiAjaW5jbHVkZSAic25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfdGRhdGEpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjZXJ0X2ZpbmdlcnByaW50cykKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX3RkYXRhX2RlbGV0ZV90YWJsZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX3RkYXRhX2V4dHJhY3RfdGFibGUpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV90ZGF0YV9yZW1vdmVfcm93KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGxzX2ZpbmdlcnByaW50X2J1aWxkKQorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX3ZiX3N0b3JhZ2V0eXBlKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfdmJfdHlwZV9hbmRfbWF4X3NpemUpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja192Yl9yb3dzdGF0dXNfd2l0aF9zdG9yYWdldHlwZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX3RkYXRhX2luc2VydF9yb3cpCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisKIC8qKiBYWFggLSBtb3ZlIHRoZXNlIHRvIHRhYmxlX2RhdGEgaGVhZGVyPyAqLwogI2RlZmluZSBGQVRFX05FV0xZX0NSRUFURUQgICAgMQogI2RlZmluZSBGQVRFX05PX0NIQU5HRSAgICAgICAgMApAQCAtMjA1LDcgKzIxOSw3IEBACiAgICAgZWxzZSB7CiAgICAgICAgIGlmIChOVUxMICE9IGNvbnRleHROYW1lKQogICAgICAgICAgICAgcmVnLT5jb250ZXh0TmFtZSA9IHN0cmR1cChjb250ZXh0TmFtZSk7Ci0gICAgICAgIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zY2FsYXIocmVnLCB3YXRjaGVyKTsKKyAgICAgICAgbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX3NjYWxhcjIocmVnLCB3YXRjaGVyKTsKICAgICB9CiAKICAgICAvKgpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMgYi9hZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYwppbmRleCBhODM1NTMzLi5jZDU0NDUyIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYworKysgYi9hZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYwpAQCAtNCw2ICs0LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAKQEAgLTE0LDYgKzE1LDIwIEBACiAKICNpbmNsdWRlICJzbm1wVGxzdG1QYXJhbXNUYWJsZS5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0YWJsZV90ZGF0YSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRsc3RtcGFyYW1zX2ZpbmQpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0bHN0bXBhcmFtc19leHRlcm5hbCkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNlcnRfZmluZ2VycHJpbnRzKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfdGRhdGFfZGVsZXRlX3RhYmxlKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfdGRhdGFfZXh0cmFjdF90YWJsZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX3RkYXRhX3JlbW92ZV9yb3cpCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfdmJfc3RvcmFnZXR5cGUpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjaGVja192Yl90eXBlX2FuZF9tYXhfc2l6ZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX3ZiX3Jvd3N0YXR1c193aXRoX3N0b3JhZ2V0eXBlKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodGFibGVfdGRhdGFfaW5zZXJ0X3JvdykKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKwogLyoqIFhYWCAtIG1vdmUgdGhlc2UgdG8gdGFibGVfZGF0YSBoZWFkZXI/ICovCiAjZGVmaW5lIEZBVEVfTkVXTFlfQ1JFQVRFRCAgICAxCiAjZGVmaW5lIEZBVEVfTk9fQ0hBTkdFICAgICAgICAwCkBAIC0xNjcsNyArMTgyLDcgQEAKICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwKICAgICAgICAgICAgICAgICAgImNvdWxkIG5vdCBjcmVhdGUgaGFuZGxlciBmb3Igc25tcFRsc3RtUGFyYW1zVGFibGVMYXN0Q2hhbmdlZFxuIik7CiAgICAgZWxzZQotICAgICAgICBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfc2NhbGFyKHJlZywgd2F0Y2hlcik7CisgICAgICAgIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zY2FsYXIyKHJlZywgd2F0Y2hlcik7CiAKICAgICAvKgogICAgICAqIEluaXRpYWxpc2UgdGhlIGNvbnRlbnRzIG9mIHRoZSB0YWJsZSBoZXJlCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuYyBiL2FnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5jCmluZGV4IDZlMWI3OTYuLmE1NjdkMmUgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5jCisrKyBiL2FnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5jCkBAIC0zLDYgKzMsNyBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg+CkBAIC0xMCw2ICsxMSwxMCBAQAogCiBzdGF0aWMgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiogX215cmVnID0gTlVMTDsKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoaGVscGVyX3N0YXRpc3RpY3MpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzaHV0ZG93bl9zbm1wdHNtc2Vzc2lvbiwgbmV0c25tcF91bnVzZWQpCisKIC8qKiBJbml0aWFsaXplcyB0aGUgc25tcFRzbVN0YXRzIG1vZHVsZSAqLwogdm9pZAogaW5pdF9zbm1wVHNtU3RhdHModm9pZCkKQEAgLTM2LDYgKzQxLDcgQEAKICAgICB9CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TSFVURE9XTl9TTk1QVFNNU0VTU0lPTgogdm9pZAogc2h1dGRvd25fc25tcFRzbVNlc3Npb24odm9pZCkKIHsKQEAgLTQ0LDMgKzUwLDQgQEAKICAgICAgICAgX215cmVnID0gTlVMTDsKICAgICB9CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TSFVURE9XTl9TTk1QVFNNU0VTU0lPTiAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jIGIvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jCmluZGV4IDMyNGZiYzQuLjExNDdlZWYgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYworKysgYi9hZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMKQEAgLTU2OCw3ICs1NjgsNiBAQAogICBGSUxFICAgICAgICAgICAqbW50ZnA7CiAjZWxpZiBIQVZFX0ZTVEFCX0gKICAgc3RydWN0IGZzdGFiICAgKmZzdGFiOwotICBzdHJ1Y3Qgc3RhdCAgICAgc3RhdDE7CiAjZWxpZiBIQVZFX1NUQVRGUwogICBzdHJ1Y3Qgc3RhdGZzICAgc3RhdGY7CiAjZW5kaWYKQEAgLTYyMiw3ICs2MjEsNiBAQAogICAgIHN0cmxjcHkoZGV2aWNlLCBtbnR0YWIubW50X3NwZWNpYWwsIHNpemVvZihkZXZpY2UpKTsKICNlbmRpZiAvKiBIQVZFX1NFVE1OVEVOVCAqLwogI2VsaWYgSEFWRV9GU1RBQl9ICi0gIHN0YXQocGF0aCwgJnN0YXQxKTsKICAgc2V0ZnNlbnQoKTsKICAgaWYgKChmc3RhYiA9IGdldGZzZmlsZShwYXRoKSkpCiAgICAgc3RybGNweShkZXZpY2UsIGZzdGFiLT5mc19zcGVjLCBzaXplb2YoZGV2aWNlKSk7CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmMgYi9hZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmMKaW5kZXggOTNlY2RlMy4uZWEzNzYxMCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5jCisrKyBiL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuYwpAQCAtMzA1LDggKzMwNSwxMSBAQAogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB2YWw7CiAgICAgc3RhdGljIGxvbmcgICAgIGxvbmdfcmV0OwogICAgIHN0YXRpYyBjaGFyICAgICBlcnJtc2dbMzAwXTsKKyAgICBuZXRzbm1wX2NhY2hlICAqY2FjaGU7CiAKLSAgICBuZXRzbm1wX2ZzeXNfbG9hZCggTlVMTCwgTlVMTCApOyAgLyogVXBkYXRlIHRoZSBmc3lzIEgvVyBtb2R1bGUgKi8KKyAgICAvKiBVcGRhdGUgdGhlIGZzeXMgSC9XIG1vZHVsZSAqLworICAgIGNhY2hlID0gbmV0c25tcF9mc3lzX2dldF9jYWNoZSgpOworICAgIG5ldHNubXBfY2FjaGVfY2hlY2tfYW5kX3JlbG9hZChjYWNoZSk7CiAKIHRyeUFnYWluOgogICAgIGlmIChoZWFkZXJfc2ltcGxlX3RhYmxlCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmggYi9hZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmgKaW5kZXggMTQ3Yjk4Zi4uZmY0MmVkOSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5oCisrKyBiL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuaApAQCAtOCw2ICs4LDcgQEAKIHZvaWQgICAgICAgICAgICBpbml0X2Rpc2tfaHcodm9pZCk7CiAKIGNvbmZpZ19yZXF1aXJlKHV0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZSkKK2NvbmZpZ19yZXF1aXJlKGhhcmR3YXJlL2ZzeXMpCiAKICAgICAgZXh0ZXJuIEZpbmRWYXJNZXRob2QgdmFyX2V4dGVuc2libGVfZGlzazsKIApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMgYi9hZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYwppbmRleCBhODE5YWE2Li40ZWE4OTg3IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYworKysgYi9hZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYwpAQCAtMTEyLDcgKzExMiw3IEBACiBzdGF0aWMgbWFjaF9wb3J0X3QgbWFzdGVyUG9ydDsJCS8qIHRvIGNvbW11bmljYXRlIHdpdGggSS9PIEtpdAkqLwogI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBkYXJ3aW4gKi8KIAotI2lmbmRlZiBzb2xhcmlzMgorI2lmICFkZWZpbmVkKHNvbGFyaXMyKSAmJiAhKGRlZmluZWQoYWl4NCkgfHwgZGVmaW5lZChhaXg1KSB8fCBkZWZpbmVkKGFpeDYpIHx8IGRlZmluZWQoYWl4NykpCiBzdGF0aWMgaW50ICAgICAgZ2V0c3RhdHModm9pZCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyBiL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMKaW5kZXggNTdiZjg3ZS4uMGI3MTFmYiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYworKysgYi9hZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jCkBAIC0zLDYgKzMsNyBAQAogICoKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpbmNsdWRlIDxjdHlwZS5oPgogI2lmIEhBVkVfU1RETElCX0gKQEAgLTE0LDE3ICsxNSwxMCBAQAogI2Vsc2UKICNpbmNsdWRlIDxzdHJpbmdzLmg+CiAjZW5kaWYKLSNpZiBIQVZFX1VOSVNURF9ICi0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDxjdHlwZS5oPgogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCi0jaW5jbHVkZSAic3RydWN0LmgiCi0jaW5jbHVkZSAidXRpbF9mdW5jcy5oIgotCiAjaWYgZGVmaW5lZChXSU4zMikKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjZWxzZQpAQCAtMzIsNzMgKzI2LDMzIEBACiAjZW5kaWYKICNpbmNsdWRlICJkbG1vZC5oIgogCisjaWZuZGVmIFNOTVBETE1PRFBBVEgKKyNkZWZpbmUgU05NUERMTU9EUEFUSCAiL3Vzci9sb2NhbC9saWIvc25tcC9kbG1vZCIKKyNlbmRpZgorCitzdHJ1Y3QgZGxtb2QgeworICBzdHJ1Y3QgZGxtb2QgICAqbmV4dDsKKyAgaW50ICAgICAgICAgICAgIGluZGV4OworICBjaGFyICAgICAgICAgICAgbmFtZVs2NCArIDFdOworICBjaGFyICAgICAgICAgICAgcGF0aFsyNTUgKyAxXTsKKyAgY2hhciAgICAgICAgICAgIGVycm9yWzI1NSArIDFdOworICB2b2lkICAgICAgICAgICAqaGFuZGxlOworICBpbnQgICAgICAgICAgICAgc3RhdHVzOworfTsKKworI2RlZmluZSBETE1PRF9MT0FERUQJCTEKKyNkZWZpbmUgRExNT0RfVU5MT0FERUQJCTIKKyNkZWZpbmUgRExNT0RfRVJST1IJCTMKKyNkZWZpbmUgRExNT0RfTE9BRAkJNAorI2RlZmluZSBETE1PRF9VTkxPQUQJCTUKKyNkZWZpbmUgRExNT0RfQ1JFQVRFCQk2CisjZGVmaW5lIERMTU9EX0RFTEVURQkJNworCiBzdGF0aWMgc3RydWN0IGRsbW9kICpkbG1vZHM7CiBzdGF0aWMgdW5zaWduZWQgaW50IGRsbW9kX25leHRfaW5kZXggPSAxOwogc3RhdGljIGNoYXIgICAgIGRsbW9kX3BhdGhbMTAyNF07CiAKLXN0YXRpYyB2b2lkICAgICBkbG1vZF9wYXJzZV9jb25maWcoY29uc3QgY2hhciAqLCBjaGFyICopOwotc3RhdGljIHZvaWQgICAgIGRsbW9kX2ZyZWVfY29uZmlnKHZvaWQpOwotCi0vKgotICogdGhpcyB2YXJpYWJsZSBkZWZpbmVzIGZ1bmN0aW9uIGNhbGxiYWNrcyBhbmQgdHlwZSByZXR1cm4KLSAqIGluZm9ybWF0aW9uIGZvciB0aGUgZGxtb2QgbWliCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgdmFyaWFibGU0IGRsbW9kX3ZhcmlhYmxlc1tdID0gewotICAgIHtETE1PRE5FWFRJTkRFWCwgQVNOX0lOVEVHRVIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAotICAgICB2YXJfZGxtb2QsIDEsIHsxfX0sCi0gICAge0RMTU9ETkFNRSwgQVNOX09DVEVUX1NUUiwgTkVUU05NUF9PTERBUElfUldSSVRFLAotICAgICB2YXJfZGxtb2RFbnRyeSwgMywgezIsIDEsIDJ9fSwKLSAgICB7RExNT0RQQVRILCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9SV1JJVEUsCi0gICAgIHZhcl9kbG1vZEVudHJ5LCAzLCB7MiwgMSwgM319LAotICAgIHtETE1PREVSUk9SLCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9ST05MWSwKLSAgICAgdmFyX2RsbW9kRW50cnksIDMsIHsyLCAxLCA0fX0sCi0gICAge0RMTU9EU1RBVFVTLCBBU05fSU5URUdFUiwgTkVUU05NUF9PTERBUElfUldSSVRFLAotICAgICB2YXJfZGxtb2RFbnRyeSwgMywgezIsIDEsIDV9fSwKLX07Ci0KLXN0YXRpYyBvaWQgICAgICBkbG1vZF92YXJpYWJsZXNfb2lkW10gPSB7IDEsIDMsIDYsIDEsIDQsIDEsIDIwMjEsIDEzLCAxNCB9Owotc3RhdGljIGludCAgICAgIGRsbW9kX3ZhcmlhYmxlc19vaWRfbGVuID0gOTsKLQotdm9pZAotaW5pdF9kbG1vZCh2b2lkKQotewotICAgIFJFR0lTVEVSX01JQigiZGxtb2QiLCBkbG1vZF92YXJpYWJsZXMsIHZhcmlhYmxlNCwgZGxtb2RfdmFyaWFibGVzX29pZCk7Ci0KLSAgICAvKgotICAgICAqIFRPRE86IFJFR0lTVEVSX1NZU09SX0VOVFJZIAotICAgICAqLwotCi0gICAgREVCVUdNU0dUTCgoImRsbW9kIiwgInJlZ2lzdGVyIG1pYlxuIikpOwotCi0gICAgc25tcGRfcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoImRsbW9kIiwgZGxtb2RfcGFyc2VfY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRsbW9kX2ZyZWVfY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb2R1bGUtbmFtZSBtb2R1bGUtcGF0aCIpOwotCi0gICAgewotICAgICAgICBjb25zdCBjaGFyICogY29uc3QgcCA9IGdldGVudigiU05NUERMTU9EUEFUSCIpOwotICAgICAgICBzdHJsY3B5KGRsbW9kX3BhdGgsIFNOTVBETE1PRFBBVEgsIHNpemVvZihkbG1vZF9wYXRoKSk7Ci0gICAgICAgIGlmIChwKSB7Ci0gICAgICAgICAgICBpZiAocFswXSA9PSBFTlZfU0VQQVJBVE9SX0NIQVIpIHsKLSAgICAgICAgICAgICAgICBpbnQgbGVuID0gc3RybGVuKGRsbW9kX3BhdGgpOwotICAgICAgICAgICAgICAgIGlmIChsZW4gPj0gMSAmJiBkbG1vZF9wYXRoW2xlbiAtIDFdICE9IEVOVl9TRVBBUkFUT1JfQ0hBUikKLSAgICAgICAgICAgICAgICAgICAgc3RybGNhdChkbG1vZF9wYXRoLCBFTlZfU0VQQVJBVE9SLCBzaXplb2YoZGxtb2RfcGF0aCkpOwotICAgICAgICAgICAgICAgIHN0cmxjYXQoZGxtb2RfcGF0aCwgcCArIDEsIHNpemVvZihkbG1vZF9wYXRoKSk7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBzdHJsY3B5KGRsbW9kX3BhdGgsIHAsIHNpemVvZihkbG1vZF9wYXRoKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBERUJVR01TR1RMKCgiZGxtb2QiLCAiZGxtb2RfcGF0aDogJXNcbiIsIGRsbW9kX3BhdGgpKTsKLX0KLQotdm9pZAotZGVpbml0X2RsbW9kKHZvaWQpCi17Ci0gICAgdW5yZWdpc3Rlcl9taWIoZGxtb2RfdmFyaWFibGVzX29pZCwgZGxtb2RfdmFyaWFibGVzX29pZF9sZW4pOwotICAgIHNubXBkX3VucmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoImRsbW9kIik7Ci19Ci0KLXN0cnVjdCBkbG1vZCAgICoKK3N0YXRpYyBzdHJ1Y3QgZGxtb2QgICAqCiBkbG1vZF9jcmVhdGVfbW9kdWxlKHZvaWQpCiB7CiAgICAgc3RydWN0IGRsbW9kICAqKnBkbG1vZCwgKmRsbTsKQEAgLTExOCw3ICs3Miw3IEBACiAgICAgcmV0dXJuIGRsbTsKIH0KIAotdm9pZAorc3RhdGljIHZvaWQKIGRsbW9kX2RlbGV0ZV9tb2R1bGUoc3RydWN0IGRsbW9kICpkbG0pCiB7CiAgICAgc3RydWN0IGRsbW9kICAqKnBkbG1vZDsKQEAgLTIyNSwxNCArMTc5LDkgQEAKICNlbmRpZgogfQogCi12b2lkCitzdGF0aWMgdm9pZAogZGxtb2RfbG9hZF9tb2R1bGUoc3RydWN0IGRsbW9kICpkbG0pCiB7Ci0gICAgY2hhciAgICAgICAgICAgIHN5bV9pbml0WzY0XTsKLSAgICBjaGFyICAgICAgICAgICAqcCwgdG1wX3BhdGhbMjU1XTsKLSAgICBkbF9mdW5jdGlvbl9wdHIgZGxfaW5pdDsKLSAgICBjaGFyICAgICAgICAgICAqc3Q7Ci0KICAgICBERUJVR01TR1RMKCgiZGxtb2QiLCAiZGxtb2RfbG9hZF9tb2R1bGUgJXM6ICVzXG4iLCBkbG0tPm5hbWUsCiAgICAgICAgICAgICAgICAgZGxtLT5wYXRoKSk7CiAKQEAgLTI0OSw2ICsxOTgsOCBAQAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKKyAgICAgICAgY2hhciAqc3QsICpwLCB0bXBfcGF0aFsyNTVdOworCiAgICAgICAgIGZvciAocCA9IHN0cnRva19yKGRsbW9kX3BhdGgsIEVOVl9TRVBBUkFUT1IsICZzdCk7IHA7CiAgICAgICAgICAgICAgcCA9IHN0cnRva19yKE5VTEwsIEVOVl9TRVBBUkFUT1IsICZzdCkpIHsKICAgICAgICAgICAgIHNucHJpbnRmKHRtcF9wYXRoLCBzaXplb2YodG1wX3BhdGgpLCAiJXMvJXMuJXMiLCBwLCBkbG0tPnBhdGgsCkBAIC0yNjUsMjUgKzIxNiwzMCBAQAogICAgICAgICBpZiAoZGxtLT5zdGF0dXMgPT0gRExNT0RfRVJST1IpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQotICAgIHNucHJpbnRmKHN5bV9pbml0LCBzaXplb2Yoc3ltX2luaXQpLCAiaW5pdF8lcyIsIGRsbS0+bmFtZSk7Ci0gICAgZGxfaW5pdCA9IGRsbW9kX2Rsc3ltKGRsbS0+aGFuZGxlLCBzeW1faW5pdCk7Ci0gICAgaWYgKGRsX2luaXQgPT0gTlVMTCkgewotICAgICAgICBkbG1vZF9kbGNsb3NlKGRsbS0+aGFuZGxlKTsKLSAgICAgICAgc25wcmludGYoZGxtLT5lcnJvciwgc2l6ZW9mKGRsbS0+ZXJyb3IpLAotICAgICAgICAgICAgICAgICAiZGxzeW0gZmFpbGVkOiBjYW4ndCBmaW5kIFwnJXNcJyIsIHN5bV9pbml0KTsKLSAgICAgICAgZGxtLT5zdGF0dXMgPSBETE1PRF9FUlJPUjsKLSAgICAgICAgcmV0dXJuOworICAgIHsKKyAgICAgICAgY2hhciBzeW1faW5pdFs2NCArIHNpemVvZigiaW5pdF8iKV07CisgICAgICAgIGRsX2Z1bmN0aW9uX3B0ciBkbF9pbml0OworCisgICAgICAgIHNucHJpbnRmKHN5bV9pbml0LCBzaXplb2Yoc3ltX2luaXQpLCAiaW5pdF8lcyIsIGRsbS0+bmFtZSk7CisgICAgICAgIGRsX2luaXQgPSBkbG1vZF9kbHN5bShkbG0tPmhhbmRsZSwgc3ltX2luaXQpOworICAgICAgICBpZiAoZGxfaW5pdCA9PSBOVUxMKSB7CisgICAgICAgICAgICBkbG1vZF9kbGNsb3NlKGRsbS0+aGFuZGxlKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGRsbS0+ZXJyb3IsIHNpemVvZihkbG0tPmVycm9yKSwKKyAgICAgICAgICAgICAgICAgICAgICJkbHN5bSBmYWlsZWQ6IGNhbid0IGZpbmQgXCclc1wnIiwgc3ltX2luaXQpOworICAgICAgICAgICAgZGxtLT5zdGF0dXMgPSBETE1PRF9FUlJPUjsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBkbF9pbml0KCk7CiAgICAgfQogCi0gICAgZGxfaW5pdCgpOwogICAgIGRsbS0+ZXJyb3JbMF0gPSAnXDAnOwogICAgIGRsbS0+c3RhdHVzID0gRExNT0RfTE9BREVEOwogfQogCi12b2lkCitzdGF0aWMgdm9pZAogZGxtb2RfdW5sb2FkX21vZHVsZShzdHJ1Y3QgZGxtb2QgKmRsbSkKIHsKLSAgICBjaGFyICAgICAgICAgICAgc3ltX2RlaW5pdFs2NF07CisgICAgY2hhciAgICAgICAgICAgIHN5bV9kZWluaXRbNjQgKyBzaXplb2YoInNodXRkb3duXyIpXTsKICAgICBkbF9mdW5jdGlvbl9wdHIgZGxfZGVpbml0OwogCiAgICAgaWYgKCFkbG0gfHwgZGxtLT5zdGF0dXMgIT0gRExNT0RfTE9BREVEKQpAQCAtMjkxLDI1ICsyNDcsMjIgQEAKIAogICAgIHNucHJpbnRmKHN5bV9kZWluaXQsIHNpemVvZihzeW1fZGVpbml0KSwgImRlaW5pdF8lcyIsIGRsbS0+bmFtZSk7CiAgICAgZGxfZGVpbml0ID0gZGxtb2RfZGxzeW0oZGxtLT5oYW5kbGUsIHN5bV9kZWluaXQpOwotICAgIGlmIChkbF9kZWluaXQpIHsKLSAgICAgICAgREVCVUdNU0dUTCgoImRsbW9kIiwgIkNhbGxpbmcgZGVpbml0XyVzKClcbiIsIGRsbS0+bmFtZSkpOwotICAgICAgICBkbF9kZWluaXQoKTsKLSAgICB9IGVsc2UgeworICAgIGlmICghZGxfZGVpbml0KSB7CiAgICAgICAgIHNucHJpbnRmKHN5bV9kZWluaXQsIHNpemVvZihzeW1fZGVpbml0KSwgInNodXRkb3duXyVzIiwgZGxtLT5uYW1lKTsKICAgICAgICAgZGxfZGVpbml0ID0gZGxtb2RfZGxzeW0oZGxtLT5oYW5kbGUsIHN5bV9kZWluaXQpOwotICAgICAgICBpZiAoZGxfZGVpbml0KSB7Ci0gICAgICAgICAgICBERUJVR01TR1RMKCgiZGxtb2QiLCAiQ2FsbGluZyBzaHV0ZG93bl8lcygpXG4iLCBkbG0tPm5hbWUpKTsKLSAgICAgICAgICAgIGRsX2RlaW5pdCgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgREVCVUdNU0dUTCgoImRsbW9kIiwgIk5vIGRlc3RydWN0b3IgZm9yICVzXG4iLCBkbG0tPm5hbWUpKTsKLSAgICAgICAgfQorICAgIH0KKyAgICBpZiAoZGxfZGVpbml0KSB7CisgICAgICAgIERFQlVHTVNHVEwoKCJkbG1vZCIsICJDYWxsaW5nICVzKClcbiIsIHN5bV9kZWluaXQpKTsKKyAgICAgICAgZGxfZGVpbml0KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgREVCVUdNU0dUTCgoImRsbW9kIiwgIk5vIGRlc3RydWN0b3IgZm9yICVzXG4iLCBkbG0tPm5hbWUpKTsKICAgICB9CiAgICAgZGxtb2RfZGxjbG9zZShkbG0tPmhhbmRsZSk7CiAgICAgZGxtLT5zdGF0dXMgPSBETE1PRF9VTkxPQURFRDsKICAgICBERUJVR01TR1RMKCgiZGxtb2QiLCAiTW9kdWxlICVzIHVubG9hZGVkXG4iLCBkbG0tPm5hbWUpKTsKIH0KIAotc3RydWN0IGRsbW9kICAgKgorc3RhdGljIHN0cnVjdCBkbG1vZCAgICoKIGRsbW9kX2dldF9ieV9pbmRleChpbnQgaWluZGV4KQogewogICAgIHN0cnVjdCBkbG1vZCAgICpkbG1vZDsKQEAgLTMyMSw2ICsyNzQsMTAgQEAKICAgICByZXR1cm4gTlVMTDsKIH0KIAorLyoKKyAqIEZ1bmN0aW9ucyB0byBwYXJzZSBjb25maWcgbGluZXMKKyAqLworCiBzdGF0aWMgdm9pZAogZGxtb2RfcGFyc2VfY29uZmlnKGNvbnN0IGNoYXIgKnRva2VuLCBjaGFyICpjcHRyKQogewpAQCAtMzMzLDcgKzI5MCw3IEBACiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgLyoKLSAgICAgKiByZW1vdmUgY29tbWVudHMgCisgICAgICogcmVtb3ZlIGNvbW1lbnRzCiAgICAgICovCiAgICAgKihjcHRyICsgc3RyY3NwbihjcHRyLCAiIztcclxuIikpID0gJ1wwJzsKIApAQCAtMzQyLDcgKzI5OSw3IEBACiAgICAgICAgIHJldHVybjsKIAogICAgIC8qCi0gICAgICogZHluYW1pYyBtb2R1bGUgbmFtZSAKKyAgICAgKiBkeW5hbWljIG1vZHVsZSBuYW1lCiAgICAgICovCiAgICAgZGxtX25hbWUgPSBzdHJ0b2tfcihjcHRyLCAiXHQgIiwgJnN0KTsKICAgICBpZiAoZGxtX25hbWUgPT0gTlVMTCkgewpAQCAtMzUzLDcgKzMxMCw3IEBACiAgICAgc3RybGNweShkbG0tPm5hbWUsIGRsbV9uYW1lLCBzaXplb2YoZGxtLT5uYW1lKSk7CiAKICAgICAvKgotICAgICAqIGR5bmFtaWMgbW9kdWxlIHBhdGggCisgICAgICogZHluYW1pYyBtb2R1bGUgcGF0aAogICAgICAqLwogICAgIGRsbV9wYXRoID0gc3RydG9rX3IoTlVMTCwgIlx0ICIsICZzdCk7CiAgICAgaWYgKGRsbV9wYXRoKQpAQCAtMzgxLDEzICszMzgsMjMgQEAKICAgICBkbG1vZHMgPSBOVUxMOwogfQogCisvKgorICogRnVuY3Rpb25zIHRvIGhhbmRsZSBTTk1QIG1hbmFnZW1lbnQKKyAqLworCisjZGVmaW5lIERMTU9ETkVYVElOREVYIAkJMQorI2RlZmluZSBETE1PRElOREVYICAgICAJCTIKKyNkZWZpbmUgRExNT0ROQU1FICAgICAgCQkzCisjZGVmaW5lIERMTU9EUEFUSCAgICAgIAkJNAorI2RlZmluZSBETE1PREVSUk9SICAgICAJCTUKKyNkZWZpbmUgRExNT0RTVEFUVVMgICAgCQk2CiAKIC8qCiAgKiBoZWFkZXJfZGxtb2QoLi4uCiAgKiBBcmd1bWVudHM6CiAgKiB2cCAgICAgSU4gICAgICAtIHBvaW50ZXIgdG8gdmFyaWFibGUgZW50cnkgdGhhdCBwb2ludHMgaGVyZQogICogbmFtZSAgICBJTi9PVVQgIC0gSU4vbmFtZSByZXF1ZXN0ZWQsIE9VVC9uYW1lIGZvdW5kCi0gKiBsZW5ndGggIElOL09VVCAgLSBsZW5ndGggb2YgSU4vT1VUIG9pZCdzIAorICogbGVuZ3RoICBJTi9PVVQgIC0gbGVuZ3RoIG9mIElOL09VVCBvaWQncwogICogZXhhY3QgICBJTiAgICAgIC0gVFJVRSBpZiBhbiBleGFjdCBtYXRjaCB3YXMgcmVxdWVzdGVkCiAgKiB2YXJfbGVuIE9VVCAgICAgLSBsZW5ndGggb2YgdmFyaWFibGUgb3IgMCBpZiBmdW5jdGlvbiByZXR1cm5lZAogICogd3JpdGVfbWV0aG9kCkBAIC00MTksNyArMzg2LDcgQEAKIH0KIAogCi11X2NoYXIgICAgICAgICAqCitzdGF0aWMgdV9jaGFyICAgICAgICAgKgogdmFyX2RsbW9kKHN0cnVjdCB2YXJpYWJsZSAqIHZwLAogICAgICAgICAgIG9pZCAqIG5hbWUsCiAgICAgICAgICAgc2l6ZV90ICogbGVuZ3RoLApAQCAtNDI3LDcgKzM5NCw3IEBACiB7CiAKICAgICAvKgotICAgICAqIHZhcmlhYmxlcyB3ZSBtYXkgdXNlIGxhdGVyIAorICAgICAqIHZhcmlhYmxlcyB3ZSBtYXkgdXNlIGxhdGVyCiAgICAgICovCiAKICAgICAqd3JpdGVfbWV0aG9kID0gMDsgICAgICAgICAvKiBhc3N1bWUgaXQgaXNuJ3Qgd3JpdGFibGUgZm9yIHRoZSB0aW1lIGJlaW5nICovCkBAIC00MzgsNyArNDA1LDcgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICAvKgotICAgICAqIHRoaXMgaXMgd2hlcmUgd2UgZG8gdGhlIHZhbHVlIGFzc2lnbm1lbnRzIGZvciB0aGUgbWliIHJlc3VsdHMuIAorICAgICAqIHRoaXMgaXMgd2hlcmUgd2UgZG8gdGhlIHZhbHVlIGFzc2lnbm1lbnRzIGZvciB0aGUgbWliIHJlc3VsdHMuCiAgICAgICovCiAgICAgc3dpdGNoICh2cC0+bWFnaWMpIHsKICAgICBjYXNlIERMTU9ETkVYVElOREVYOgpAQCAtNDUyLDE2ICs0MTksMTI3IEBACiB9CiAKIAorc3RhdGljIGludAord3JpdGVfZGxtb2ROYW1lKGludCBhY3Rpb24sCisgICAgICAgICAgICAgICAgdV9jaGFyICogdmFyX3ZhbCwKKyAgICAgICAgICAgICAgICB1X2NoYXIgdmFyX3ZhbF90eXBlLAorICAgICAgICAgICAgICAgIHNpemVfdCB2YXJfdmFsX2xlbiwKKyAgICAgICAgICAgICAgICB1X2NoYXIgKiBzdGF0UCwgb2lkICogbmFtZSwgc2l6ZV90IG5hbWVfbGVuKQoreworICAgIHN0YXRpYyBzdHJ1Y3QgZGxtb2QgKmRsbTsKKworICAgIGlmICh2YXJfdmFsX3R5cGUgIT0gQVNOX09DVEVUX1NUUikgeworICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAid3JpdGUgdG8gZGxtb2ROYW1lIG5vdCBBU05fT0NURVRfU1RSXG4iKTsKKyAgICAgICAgcmV0dXJuIFNOTVBfRVJSX1dST05HVFlQRTsKKyAgICB9CisgICAgaWYgKHZhcl92YWxfbGVuID4gc2l6ZW9mKGRsbS0+bmFtZSktMSkgeworICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAid3JpdGUgdG8gZGxtb2ROYW1lOiBiYWQgbGVuZ3RoOiB0b28gbG9uZ1xuIik7CisgICAgICAgIHJldHVybiBTTk1QX0VSUl9XUk9OR0xFTkdUSDsKKyAgICB9CisgICAgaWYgKGFjdGlvbiA9PSBDT01NSVQpIHsKKyAgICAgICAgZGxtID0gZGxtb2RfZ2V0X2J5X2luZGV4KG5hbWVbMTJdKTsKKyAgICAgICAgaWYgKCFkbG0gfHwgZGxtLT5zdGF0dXMgPT0gRExNT0RfTE9BREVEKQorICAgICAgICAgICAgcmV0dXJuIFNOTVBfRVJSX1JFU09VUkNFVU5BVkFJTEFCTEU7CisgICAgICAgIHN0cm5jcHkoZGxtLT5uYW1lLCAoY29uc3QgY2hhciAqKSB2YXJfdmFsLCB2YXJfdmFsX2xlbik7CisgICAgICAgIGRsbS0+bmFtZVt2YXJfdmFsX2xlbl0gPSAwOworICAgIH0KKyAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKK30KKworc3RhdGljIGludAord3JpdGVfZGxtb2RQYXRoKGludCBhY3Rpb24sCisgICAgICAgICAgICAgICAgdV9jaGFyICogdmFyX3ZhbCwKKyAgICAgICAgICAgICAgICB1X2NoYXIgdmFyX3ZhbF90eXBlLAorICAgICAgICAgICAgICAgIHNpemVfdCB2YXJfdmFsX2xlbiwKKyAgICAgICAgICAgICAgICB1X2NoYXIgKiBzdGF0UCwgb2lkICogbmFtZSwgc2l6ZV90IG5hbWVfbGVuKQoreworICAgIHN0YXRpYyBzdHJ1Y3QgZGxtb2QgKmRsbTsKKworICAgIGlmICh2YXJfdmFsX3R5cGUgIT0gQVNOX09DVEVUX1NUUikgeworICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAid3JpdGUgdG8gZGxtb2RQYXRoIG5vdCBBU05fT0NURVRfU1RSXG4iKTsKKyAgICAgICAgcmV0dXJuIFNOTVBfRVJSX1dST05HVFlQRTsKKyAgICB9CisgICAgaWYgKHZhcl92YWxfbGVuID4gc2l6ZW9mKGRsbS0+cGF0aCktMSkgeworICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAid3JpdGUgdG8gZGxtb2RQYXRoOiBiYWQgbGVuZ3RoOiB0b28gbG9uZ1xuIik7CisgICAgICAgIHJldHVybiBTTk1QX0VSUl9XUk9OR0xFTkdUSDsKKyAgICB9CisgICAgaWYgKGFjdGlvbiA9PSBDT01NSVQpIHsKKyAgICAgICAgZGxtID0gZGxtb2RfZ2V0X2J5X2luZGV4KG5hbWVbMTJdKTsKKyAgICAgICAgaWYgKCFkbG0gfHwgZGxtLT5zdGF0dXMgPT0gRExNT0RfTE9BREVEKQorICAgICAgICAgICAgcmV0dXJuIFNOTVBfRVJSX1JFU09VUkNFVU5BVkFJTEFCTEU7CisgICAgICAgIHN0cm5jcHkoZGxtLT5wYXRoLCAoY29uc3QgY2hhciAqKSB2YXJfdmFsLCB2YXJfdmFsX2xlbik7CisgICAgICAgIGRsbS0+cGF0aFt2YXJfdmFsX2xlbl0gPSAwOworICAgIH0KKyAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKK30KKworc3RhdGljIGludAord3JpdGVfZGxtb2RTdGF0dXMoaW50IGFjdGlvbiwKKyAgICAgICAgICAgICAgICAgIHVfY2hhciAqIHZhcl92YWwsCisgICAgICAgICAgICAgICAgICB1X2NoYXIgdmFyX3ZhbF90eXBlLAorICAgICAgICAgICAgICAgICAgc2l6ZV90IHZhcl92YWxfbGVuLAorICAgICAgICAgICAgICAgICAgdV9jaGFyICogc3RhdFAsIG9pZCAqIG5hbWUsIHNpemVfdCBuYW1lX2xlbikKK3sKKyAgICAvKgorICAgICAqIHZhcmlhYmxlcyB3ZSBtYXkgdXNlIGxhdGVyCisgICAgICovCisgICAgc3RydWN0IGRsbW9kICAgKmRsbTsKKworICAgIGlmICh2YXJfdmFsX3R5cGUgIT0gQVNOX0lOVEVHRVIpIHsKKyAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgIndyaXRlIHRvIGRsbW9kU3RhdHVzIG5vdCBBU05fSU5URUdFUlxuIik7CisgICAgICAgIHJldHVybiBTTk1QX0VSUl9XUk9OR1RZUEU7CisgICAgfQorICAgIGlmICh2YXJfdmFsX2xlbiA+IHNpemVvZihsb25nKSkgeworICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAid3JpdGUgdG8gZGxtb2RTdGF0dXM6IGJhZCBsZW5ndGhcbiIpOworICAgICAgICByZXR1cm4gU05NUF9FUlJfV1JPTkdMRU5HVEg7CisgICAgfQorICAgIGlmIChhY3Rpb24gPT0gQ09NTUlUKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIG9iamVjdCBpZGVudGlmaWVyIGluIGZvcm0gLjEuMy42LjEuNC4xLjIwMjEuMTMuMTQuMi4xLjQueAorICAgICAgICAgKiB3aGVyZSBYIGlzIGluZGV4IHdpdGggb2Zmc2V0IDEyCisgICAgICAgICAqLworCisgICAgICAgIGRsbSA9IGRsbW9kX2dldF9ieV9pbmRleChuYW1lWzEyXSk7CisgICAgICAgIHN3aXRjaCAoKigobG9uZyAqKSB2YXJfdmFsKSkgeworICAgICAgICBjYXNlIERMTU9EX0NSRUFURToKKyAgICAgICAgICAgIGlmIChkbG0gfHwgKG5hbWVbMTJdICE9IGRsbW9kX25leHRfaW5kZXgpKQorICAgICAgICAgICAgICAgIHJldHVybiBTTk1QX0VSUl9SRVNPVVJDRVVOQVZBSUxBQkxFOworICAgICAgICAgICAgZGxtID0gZGxtb2RfY3JlYXRlX21vZHVsZSgpOworICAgICAgICAgICAgaWYgKCFkbG0pCisgICAgICAgICAgICAgICAgcmV0dXJuIFNOTVBfRVJSX1JFU09VUkNFVU5BVkFJTEFCTEU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBETE1PRF9MT0FEOgorICAgICAgICAgICAgaWYgKCFkbG0gfHwgZGxtLT5zdGF0dXMgPT0gRExNT0RfTE9BREVEKQorICAgICAgICAgICAgICAgIHJldHVybiBTTk1QX0VSUl9SRVNPVVJDRVVOQVZBSUxBQkxFOworICAgICAgICAgICAgZGxtb2RfbG9hZF9tb2R1bGUoZGxtKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERMTU9EX1VOTE9BRDoKKyAgICAgICAgICAgIGlmICghZGxtIHx8IGRsbS0+c3RhdHVzICE9IERMTU9EX0xPQURFRCkKKyAgICAgICAgICAgICAgICByZXR1cm4gU05NUF9FUlJfUkVTT1VSQ0VVTkFWQUlMQUJMRTsKKyAgICAgICAgICAgIGRsbW9kX3VubG9hZF9tb2R1bGUoZGxtKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERMTU9EX0RFTEVURToKKyAgICAgICAgICAgIGlmICghZGxtIHx8IGRsbS0+c3RhdHVzID09IERMTU9EX0xPQURFRCkKKyAgICAgICAgICAgICAgICByZXR1cm4gU05NUF9FUlJfUkVTT1VSQ0VVTkFWQUlMQUJMRTsKKyAgICAgICAgICAgIGRsbW9kX2RlbGV0ZV9tb2R1bGUoZGxtKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIFNOTVBfRVJSX1dST05HVkFMVUU7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7Cit9CisKIC8qCiAgKiBoZWFkZXJfZGxtb2RFbnRyeSguLi4KICAqIEFyZ3VtZW50czoKICAqIHZwICAgICBJTiAgICAgIC0gcG9pbnRlciB0byB2YXJpYWJsZSBlbnRyeSB0aGF0IHBvaW50cyBoZXJlCiAgKiBuYW1lICAgIElOL09VVCAgLSBJTi9uYW1lIHJlcXVlc3RlZCwgT1VUL25hbWUgZm91bmQKLSAqIGxlbmd0aCAgSU4vT1VUICAtIGxlbmd0aCBvZiBJTi9PVVQgb2lkJ3MgCisgKiBsZW5ndGggIElOL09VVCAgLSBsZW5ndGggb2YgSU4vT1VUIG9pZCdzCiAgKiBleGFjdCAgIElOICAgICAgLSBUUlVFIGlmIGFuIGV4YWN0IG1hdGNoIHdhcyByZXF1ZXN0ZWQKICAqIHZhcl9sZW4gT1VUICAgICAtIGxlbmd0aCBvZiB2YXJpYWJsZSBvciAwIGlmIGZ1bmN0aW9uIHJldHVybmVkCiAgKiB3cml0ZV9tZXRob2QKLSAqIAorICoKICAqLwogCiAKQEAgLTUwOSwxNCArNTg3LDE0IEBACiAgICAgcmV0dXJuIGRsbTsKIH0KIAotdV9jaGFyICAgICAgICAgKgorc3RhdGljIHVfY2hhciAgICAgICAgICoKIHZhcl9kbG1vZEVudHJ5KHN0cnVjdCB2YXJpYWJsZSAqIHZwLAogICAgICAgICAgICAgICAgb2lkICogbmFtZSwKICAgICAgICAgICAgICAgIHNpemVfdCAqIGxlbmd0aCwKICAgICAgICAgICAgICAgIGludCBleGFjdCwgc2l6ZV90ICogdmFyX2xlbiwgV3JpdGVNZXRob2QgKiogd3JpdGVfbWV0aG9kKQogewogICAgIC8qCi0gICAgICogdmFyaWFibGVzIHdlIG1heSB1c2UgbGF0ZXIgCisgICAgICogdmFyaWFibGVzIHdlIG1heSB1c2UgbGF0ZXIKICAgICAgKi8KICAgICBzdHJ1Y3QgZGxtb2QgICAqZGxtOwogCkBAIC01MjgsNyArNjA2LDcgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICAvKgotICAgICAqIHRoaXMgaXMgd2hlcmUgd2UgZG8gdGhlIHZhbHVlIGFzc2lnbm1lbnRzIGZvciB0aGUgbWliIHJlc3VsdHMuIAorICAgICAqIHRoaXMgaXMgd2hlcmUgd2UgZG8gdGhlIHZhbHVlIGFzc2lnbm1lbnRzIGZvciB0aGUgbWliIHJlc3VsdHMuCiAgICAgICovCiAgICAgc3dpdGNoICh2cC0+bWFnaWMpIHsKICAgICBjYXNlIERMTU9ETkFNRToKQEAgLTU1MywxMTMgKzYzMSw2NiBAQAogICAgIHJldHVybiBOVUxMOwogfQogCi1pbnQKLXdyaXRlX2RsbW9kTmFtZShpbnQgYWN0aW9uLAotICAgICAgICAgICAgICAgIHVfY2hhciAqIHZhcl92YWwsCi0gICAgICAgICAgICAgICAgdV9jaGFyIHZhcl92YWxfdHlwZSwKLSAgICAgICAgICAgICAgICBzaXplX3QgdmFyX3ZhbF9sZW4sCi0gICAgICAgICAgICAgICAgdV9jaGFyICogc3RhdFAsIG9pZCAqIG5hbWUsIHNpemVfdCBuYW1lX2xlbikKKy8qCisgKiB0aGlzIHZhcmlhYmxlIGRlZmluZXMgZnVuY3Rpb24gY2FsbGJhY2tzIGFuZCB0eXBlIHJldHVybgorICogaW5mb3JtYXRpb24gZm9yIHRoZSBkbG1vZCBtaWIKKyAqLworc3RhdGljIHN0cnVjdCB2YXJpYWJsZTQgZGxtb2RfdmFyaWFibGVzW10gPSB7CisgICAge0RMTU9ETkVYVElOREVYLCBBU05fSU5URUdFUiwgTkVUU05NUF9PTERBUElfUk9OTFksCisgICAgIHZhcl9kbG1vZCwgMSwgezF9fSwKKyAgICB7RExNT0ROQU1FLCBBU05fT0NURVRfU1RSLCBORVRTTk1QX09MREFQSV9SV1JJVEUsCisgICAgIHZhcl9kbG1vZEVudHJ5LCAzLCB7MiwgMSwgMn19LAorICAgIHtETE1PRFBBVEgsIEFTTl9PQ1RFVF9TVFIsIE5FVFNOTVBfT0xEQVBJX1JXUklURSwKKyAgICAgdmFyX2RsbW9kRW50cnksIDMsIHsyLCAxLCAzfX0sCisgICAge0RMTU9ERVJST1IsIEFTTl9PQ1RFVF9TVFIsIE5FVFNOTVBfT0xEQVBJX1JPTkxZLAorICAgICB2YXJfZGxtb2RFbnRyeSwgMywgezIsIDEsIDR9fSwKKyAgICB7RExNT0RTVEFUVVMsIEFTTl9JTlRFR0VSLCBORVRTTk1QX09MREFQSV9SV1JJVEUsCisgICAgIHZhcl9kbG1vZEVudHJ5LCAzLCB7MiwgMSwgNX19LAorfTsKKworc3RhdGljIG9pZCBkbG1vZF92YXJpYWJsZXNfb2lkW10gPSB7IDEsIDMsIDYsIDEsIDQsIDEsIDIwMjEsIDEzLCAxNCB9OworCit2b2lkCitpbml0X2RsbW9kKHZvaWQpCiB7Ci0gICAgc3RhdGljIHN0cnVjdCBkbG1vZCAqZGxtOworICAgIFJFR0lTVEVSX01JQigiZGxtb2QiLCBkbG1vZF92YXJpYWJsZXMsIHZhcmlhYmxlNCwgZGxtb2RfdmFyaWFibGVzX29pZCk7CiAKLSAgICBpZiAodmFyX3ZhbF90eXBlICE9IEFTTl9PQ1RFVF9TVFIpIHsKLSAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgIndyaXRlIHRvIGRsbW9kTmFtZSBub3QgQVNOX09DVEVUX1NUUlxuIik7Ci0gICAgICAgIHJldHVybiBTTk1QX0VSUl9XUk9OR1RZUEU7Ci0gICAgfQotICAgIGlmICh2YXJfdmFsX2xlbiA+IHNpemVvZihkbG0tPm5hbWUpLTEpIHsKLSAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgIndyaXRlIHRvIGRsbW9kTmFtZTogYmFkIGxlbmd0aDogdG9vIGxvbmdcbiIpOwotICAgICAgICByZXR1cm4gU05NUF9FUlJfV1JPTkdMRU5HVEg7Ci0gICAgfQotICAgIGlmIChhY3Rpb24gPT0gQ09NTUlUKSB7Ci0gICAgICAgIGRsbSA9IGRsbW9kX2dldF9ieV9pbmRleChuYW1lWzEyXSk7Ci0gICAgICAgIGlmICghZGxtIHx8IGRsbS0+c3RhdHVzID09IERMTU9EX0xPQURFRCkKLSAgICAgICAgICAgIHJldHVybiBTTk1QX0VSUl9SRVNPVVJDRVVOQVZBSUxBQkxFOwotICAgICAgICBtZW1jcHkoZGxtLT5uYW1lLCB2YXJfdmFsLCB2YXJfdmFsX2xlbik7Ci0gICAgICAgIGRsbS0+bmFtZVt2YXJfdmFsX2xlbl0gPSAwOwotICAgIH0KLSAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKLX0KLQotaW50Ci13cml0ZV9kbG1vZFBhdGgoaW50IGFjdGlvbiwKLSAgICAgICAgICAgICAgICB1X2NoYXIgKiB2YXJfdmFsLAotICAgICAgICAgICAgICAgIHVfY2hhciB2YXJfdmFsX3R5cGUsCi0gICAgICAgICAgICAgICAgc2l6ZV90IHZhcl92YWxfbGVuLAotICAgICAgICAgICAgICAgIHVfY2hhciAqIHN0YXRQLCBvaWQgKiBuYW1lLCBzaXplX3QgbmFtZV9sZW4pCi17Ci0gICAgc3RhdGljIHN0cnVjdCBkbG1vZCAqZGxtOwotCi0gICAgaWYgKHZhcl92YWxfdHlwZSAhPSBBU05fT0NURVRfU1RSKSB7Ci0gICAgICAgIHNubXBfbG9nKExPR19FUlIsICJ3cml0ZSB0byBkbG1vZFBhdGggbm90IEFTTl9PQ1RFVF9TVFJcbiIpOwotICAgICAgICByZXR1cm4gU05NUF9FUlJfV1JPTkdUWVBFOwotICAgIH0KLSAgICBpZiAodmFyX3ZhbF9sZW4gPiBzaXplb2YoZGxtLT5wYXRoKS0xKSB7Ci0gICAgICAgIHNubXBfbG9nKExPR19FUlIsICJ3cml0ZSB0byBkbG1vZFBhdGg6IGJhZCBsZW5ndGg6IHRvbyBsb25nXG4iKTsKLSAgICAgICAgcmV0dXJuIFNOTVBfRVJSX1dST05HTEVOR1RIOwotICAgIH0KLSAgICBpZiAoYWN0aW9uID09IENPTU1JVCkgewotICAgICAgICBkbG0gPSBkbG1vZF9nZXRfYnlfaW5kZXgobmFtZVsxMl0pOwotICAgICAgICBpZiAoIWRsbSB8fCBkbG0tPnN0YXR1cyA9PSBETE1PRF9MT0FERUQpCi0gICAgICAgICAgICByZXR1cm4gU05NUF9FUlJfUkVTT1VSQ0VVTkFWQUlMQUJMRTsKLSAgICAgICAgbWVtY3B5KGRsbS0+cGF0aCwgdmFyX3ZhbCwgdmFyX3ZhbF9sZW4pOwotICAgICAgICBkbG0tPnBhdGhbdmFyX3ZhbF9sZW5dID0gMDsKLSAgICB9Ci0gICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7Ci19Ci0KLWludAotd3JpdGVfZGxtb2RTdGF0dXMoaW50IGFjdGlvbiwKLSAgICAgICAgICAgICAgICAgIHVfY2hhciAqIHZhcl92YWwsCi0gICAgICAgICAgICAgICAgICB1X2NoYXIgdmFyX3ZhbF90eXBlLAotICAgICAgICAgICAgICAgICAgc2l6ZV90IHZhcl92YWxfbGVuLAotICAgICAgICAgICAgICAgICAgdV9jaGFyICogc3RhdFAsIG9pZCAqIG5hbWUsIHNpemVfdCBuYW1lX2xlbikKLXsKICAgICAvKgotICAgICAqIHZhcmlhYmxlcyB3ZSBtYXkgdXNlIGxhdGVyIAorICAgICAqIFRPRE86IFJFR0lTVEVSX1NZU09SX0VOVFJZCiAgICAgICovCi0gICAgc3RydWN0IGRsbW9kICAgKmRsbTsKIAotICAgIGlmICh2YXJfdmFsX3R5cGUgIT0gQVNOX0lOVEVHRVIpIHsKLSAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgIndyaXRlIHRvIGRsbW9kU3RhdHVzIG5vdCBBU05fSU5URUdFUlxuIik7Ci0gICAgICAgIHJldHVybiBTTk1QX0VSUl9XUk9OR1RZUEU7Ci0gICAgfQotICAgIGlmICh2YXJfdmFsX2xlbiA+IHNpemVvZihsb25nKSkgewotICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAid3JpdGUgdG8gZGxtb2RTdGF0dXM6IGJhZCBsZW5ndGhcbiIpOwotICAgICAgICByZXR1cm4gU05NUF9FUlJfV1JPTkdMRU5HVEg7Ci0gICAgfQotICAgIGlmIChhY3Rpb24gPT0gQ09NTUlUKSB7Ci0gICAgICAgIC8qCi0gICAgICAgICAqIG9iamVjdCBpZGVudGlmaWVyIGluIGZvcm0gLjEuMy42LjEuNC4xLjIwMjEuMTMuMTQuMi4xLjQueCAKLSAgICAgICAgICogd2hlcmUgWCBpcyBpbmRleCB3aXRoIG9mZnNldCAxMiAKLSAgICAgICAgICovCisgICAgREVCVUdNU0dUTCgoImRsbW9kIiwgInJlZ2lzdGVyIG1pYlxuIikpOwogCi0gICAgICAgIGRsbSA9IGRsbW9kX2dldF9ieV9pbmRleChuYW1lWzEyXSk7Ci0gICAgICAgIHN3aXRjaCAoKigobG9uZyAqKSB2YXJfdmFsKSkgewotICAgICAgICBjYXNlIERMTU9EX0NSRUFURToKLSAgICAgICAgICAgIGlmIChkbG0gfHwgKG5hbWVbMTJdICE9IGRsbW9kX25leHRfaW5kZXgpKQotICAgICAgICAgICAgICAgIHJldHVybiBTTk1QX0VSUl9SRVNPVVJDRVVOQVZBSUxBQkxFOwotICAgICAgICAgICAgZGxtID0gZGxtb2RfY3JlYXRlX21vZHVsZSgpOwotICAgICAgICAgICAgaWYgKCFkbG0pCi0gICAgICAgICAgICAgICAgcmV0dXJuIFNOTVBfRVJSX1JFU09VUkNFVU5BVkFJTEFCTEU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBETE1PRF9MT0FEOgotICAgICAgICAgICAgaWYgKCFkbG0gfHwgZGxtLT5zdGF0dXMgPT0gRExNT0RfTE9BREVEKQotICAgICAgICAgICAgICAgIHJldHVybiBTTk1QX0VSUl9SRVNPVVJDRVVOQVZBSUxBQkxFOwotICAgICAgICAgICAgZGxtb2RfbG9hZF9tb2R1bGUoZGxtKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIERMTU9EX1VOTE9BRDoKLSAgICAgICAgICAgIGlmICghZGxtIHx8IGRsbS0+c3RhdHVzICE9IERMTU9EX0xPQURFRCkKLSAgICAgICAgICAgICAgICByZXR1cm4gU05NUF9FUlJfUkVTT1VSQ0VVTkFWQUlMQUJMRTsKLSAgICAgICAgICAgIGRsbW9kX3VubG9hZF9tb2R1bGUoZGxtKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIERMTU9EX0RFTEVURToKLSAgICAgICAgICAgIGlmICghZGxtIHx8IGRsbS0+c3RhdHVzID09IERMTU9EX0xPQURFRCkKLSAgICAgICAgICAgICAgICByZXR1cm4gU05NUF9FUlJfUkVTT1VSQ0VVTkFWQUlMQUJMRTsKLSAgICAgICAgICAgIGRsbW9kX2RlbGV0ZV9tb2R1bGUoZGxtKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIFNOTVBfRVJSX1dST05HVkFMVUU7CisgICAgc25tcGRfcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoImRsbW9kIiwgZGxtb2RfcGFyc2VfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRsbW9kX2ZyZWVfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb2R1bGUtbmFtZSBtb2R1bGUtcGF0aCIpOworCisgICAgeworICAgICAgICBjb25zdCBjaGFyICogY29uc3QgcCA9IGdldGVudigiU05NUERMTU9EUEFUSCIpOworICAgICAgICBzdHJuY3B5KGRsbW9kX3BhdGgsIFNOTVBETE1PRFBBVEgsIHNpemVvZihkbG1vZF9wYXRoKSk7CisgICAgICAgIGRsbW9kX3BhdGhbIHNpemVvZihkbG1vZF9wYXRoKSAtIDEgXSA9IDA7CisgICAgICAgIGlmIChwKSB7CisgICAgICAgICAgICBpZiAocFswXSA9PSAnOicpIHsKKyAgICAgICAgICAgICAgICBpbnQgbGVuID0gc3RybGVuKGRsbW9kX3BhdGgpOworICAgICAgICAgICAgICAgIGlmIChkbG1vZF9wYXRoW2xlbiAtIDFdICE9ICc6JykgeworICAgICAgICAgICAgICAgICAgICBzdHJuY2F0KGRsbW9kX3BhdGgsICI6Iiwgc2l6ZW9mKGRsbW9kX3BhdGgpIC0gbGVuIC0gMSk7CisgICAgICAgICAgICAgICAgICAgIGxlbisrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzdHJuY2F0KGRsbW9kX3BhdGgsIHAgKyAxLCAgIHNpemVvZihkbG1vZF9wYXRoKSAtIGxlbik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBzdHJuY3B5KGRsbW9kX3BhdGgsIHAsIHNpemVvZihkbG1vZF9wYXRoKSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CisKKyAgICBkbG1vZF9wYXRoWyBzaXplb2YoZGxtb2RfcGF0aCktMSBdID0gMDsKKyAgICBERUJVR01TR1RMKCgiZGxtb2QiLCAiZGxtb2RfcGF0aDogJXNcbiIsIGRsbW9kX3BhdGgpKTsKK30KKworbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoc25tcGRfdW5yZWdpc3Rlcl9jb25maWdfaGFuZGxlcikKKwordm9pZAorc2h1dGRvd25fZGxtb2Qodm9pZCkKK3sKKyAgICBzbm1wZF91bnJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKCJkbG1vZCIpOworICAgIHVucmVnaXN0ZXJfbWliKGRsbW9kX3ZhcmlhYmxlc19vaWQsIE9JRF9MRU5HVEgoZGxtb2RfdmFyaWFibGVzX29pZCkpOwogfQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaCBiL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmgKaW5kZXggNGZiZmI5ZS4uOTU5MmJkZCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaAorKysgYi9hZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5oCkBAIC0zLDYxICszLDE2IEBACiAgKgogICovCiAKLSNpZm5kZWYgX01JQkdST1VQX0RMTU9EX0gKLSNkZWZpbmUgX01JQkdST1VQX0RMTU9EX0gKKyNpZm5kZWYgTUlCR1JPVVBfRExNT0RfSAorI2RlZmluZSBNSUJHUk9VUF9ETE1PRF9ICiAKLS8qCi0gKiBUT0RPICNpbmNsdWRlICJtaWJkZWZzLmgiCi0gKi8KICNpZiAoIWRlZmluZWQoSEFWRV9ETEZDTl9IKSB8fCAhZGVmaW5lZChIQVZFX0RMT1BFTikpICYmICFkZWZpbmVkKFdJTjMyKQogY29uZmlnX2Vycm9yKER5bmFtaWMgbW9kdWxlcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0pCiAjZW5kaWYKIAogY29uZmlnX2FkZF9taWIoVUNELURMTU9ELU1JQikKLSNpZm5kZWYgU05NUERMTU9EUEFUSAotI2RlZmluZSBTTk1QRExNT0RQQVRIICIvdXNyL2xvY2FsL2xpYi9zbm1wL2RsbW9kIgotI2VuZGlmCi0gICAgIHN0cnVjdCBkbG1vZCB7Ci0gICAgICAgICBzdHJ1Y3QgZGxtb2QgICAqbmV4dDsKLSAgICAgICAgIGludCAgICAgICAgICAgICBpbmRleDsKLSAgICAgICAgIGNoYXIgICAgICAgICAgICBuYW1lWzY0ICsgMV07Ci0gICAgICAgICBjaGFyICAgICAgICAgICAgcGF0aFsyNTUgKyAxXTsKLSAgICAgICAgIGNoYXIgICAgICAgICAgICBlcnJvclsyNTUgKyAxXTsKLSAgICAgICAgIHZvaWQgICAgICAgICAgICpoYW5kbGU7Ci0gICAgICAgICBpbnQgICAgICAgICAgICAgc3RhdHVzOwotICAgICB9OwogCi0gICAgIHZvaWQgICAgICAgICAgICBkbG1vZF9sb2FkX21vZHVsZShzdHJ1Y3QgZGxtb2QgKik7Ci0gICAgIHZvaWQgICAgICAgICAgICBkbG1vZF91bmxvYWRfbW9kdWxlKHN0cnVjdCBkbG1vZCAqKTsKLSAgICAgc3RydWN0IGRsbW9kICAgKmRsbW9kX2NyZWF0ZV9tb2R1bGUodm9pZCk7Ci0gICAgIHZvaWQgICAgICAgICAgICBkbG1vZF9kZWxldGVfbW9kdWxlKHN0cnVjdCBkbG1vZCAqKTsKLSAgICAgc3RydWN0IGRsbW9kICAgKmRsbW9kX2dldF9ieV9pbmRleChpbnQpOwordm9pZCBpbml0X2RsbW9kKHZvaWQpOwordm9pZCBzaHV0ZG93bl9kbG1vZCh2b2lkKTsKIAotICAgICB2b2lkICAgICAgICAgICAgZGxtb2RfaW5pdCh2b2lkKTsKLSAgICAgdm9pZCAgICAgICAgICAgIGRsbW9kX2RlaW5pdCh2b2lkKTsKLQotICAgICBleHRlcm4gdm9pZCAgICAgaW5pdF9kbG1vZCh2b2lkKTsKLSAgICAgZXh0ZXJuIHZvaWQgICAgIGRlaW5pdF9kbG1vZCh2b2lkKTsKLQotICAgICBleHRlcm4gRmluZFZhck1ldGhvZCB2YXJfZGxtb2Q7Ci0gICAgIGV4dGVybiBGaW5kVmFyTWV0aG9kIHZhcl9kbG1vZEVudHJ5OwotICAgICBleHRlcm4gV3JpdGVNZXRob2Qgd3JpdGVfZGxtb2ROYW1lOwotICAgICBleHRlcm4gV3JpdGVNZXRob2Qgd3JpdGVfZGxtb2RQYXRoOwotICAgICBleHRlcm4gV3JpdGVNZXRob2Qgd3JpdGVfZGxtb2RTdGF0dXM7Ci0KLSNkZWZpbmUgRExNT0RORVhUSU5ERVggCQkxCi0jZGVmaW5lIERMTU9ESU5ERVggICAgIAkJMgotI2RlZmluZSBETE1PRE5BTUUgICAgICAJCTMKLSNkZWZpbmUgRExNT0RQQVRIICAgICAgCQk0Ci0jZGVmaW5lIERMTU9ERVJST1IgICAgIAkJNQotI2RlZmluZSBETE1PRFNUQVRVUyAgICAJCTYKLQotI2RlZmluZSBETE1PRF9MT0FERUQJCTEKLSNkZWZpbmUgRExNT0RfVU5MT0FERUQJCTIKLSNkZWZpbmUgRExNT0RfRVJST1IJCTMKLSNkZWZpbmUgRExNT0RfTE9BRAkJNAotI2RlZmluZQlETE1PRF9VTkxPQUQJCTUKLSNkZWZpbmUgRExNT0RfQ1JFQVRFCQk2Ci0jZGVmaW5lIERMTU9EX0RFTEVURQkJNwotCi0jZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIF9NSUJHUk9VUF9ETE1PRF9IICovCisjZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1JQkdST1VQX0RMTU9EX0ggKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYyBiL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYwppbmRleCAzN2E1ZWViLi4xNGIwODRhIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jCkBAIC0xLDQgKzEsNSBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpZiBIQVZFX1NURExJQl9ICiAjaW5jbHVkZSA8c3RkbGliLmg+CkBAIC0xMDksNiArMTEwLDkgQEAKICNpbmNsdWRlICJ1dGlsaXRpZXMvZXhlY3V0ZS5oIgogI2luY2x1ZGUgInV0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShnZXRfZXh0ZW5faW5zdGFuY2UpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShwYXJzZV9taWJvaWQpCisKIGV4dGVybiBzdHJ1Y3QgbXlwcm9jICpwcm9jd2F0Y2g7ICAgICAgICAvKiBtb3ZlZCB0byBwcm9jLmMgKi8KIGV4dGVybiBpbnQgICAgICBudW1wcm9jczsgICAgICAgLyogZGl0dG8gKi8KIGV4dGVybiBzdHJ1Y3QgZXh0ZW5zaWJsZSAqZXh0ZW5zOyAgICAgICAvKiBJbiBleGVjLmMgKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jIGIvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMKaW5kZXggNjA1ZWUxNi4uMDVjNjBiNyAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMKQEAgLTY2LDYgKzY2LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAKQEAgLTc2LDYgKzc3LDkgQEAKICNpbmNsdWRlICJ1dGlsX2Z1bmNzL2hlYWRlcl9zaW1wbGVfdGFibGUuaCIKICNpbmNsdWRlIDx0aW1lLmg+CiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHRhYmxlX2NvbnRhaW5lcikKKworCiAvKgogICogTG9hZCByZXF1aXJlZCBkcml2ZXJzIGFuZCBsaWJyYXJpZXMuCiAgKi8KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5jIGIvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1zZW5zb3JzTWliLmMKaW5kZXggNWE1MDY5Ny4uMjU1Nzc5NiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1zZW5zb3JzTWliLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1zZW5zb3JzTWliLmMKQEAgLTgzLDcgKzgzLDcgQEAKICAgICAgKiBSZWdpc3RlciB0aGUgdGFibGUgdXNpbmcgdGhlIGZpbHRlcmVkIGNvbnRhaW5lcgogICAgICAqIEluY2x1ZGUgYW4gaW5kaWNhdG9yIG9mIGFueSBzY2FsaW5nIHRvIGJlIGFwcGxpZWQgdG8gdGhlIHNlbnNvciB2YWx1ZQogICAgICAqLwotICAgIHJlZy0+bXlfcmVnX3ZvaWQgPSAodm9pZCAqKW11bHQ7CisgICAgcmVnLT5teV9yZWdfdm9pZCA9ICh2b2lkICopKHVpbnRwdHJfdCltdWx0OwogICAgIHRhYmxlX2luZm8gPSBTTk1QX01BTExPQ19UWVBFREVGKCBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICk7CiAgICAgbmV0c25tcF90YWJsZV9oZWxwZXJfYWRkX2luZGV4ZXModGFibGVfaW5mbywgQVNOX0lOVEVHRVIsIDApOwogICAgIHRhYmxlX2luZm8tPm1pbl9jb2x1bW4gPSBDT0xVTU5fTE1TRU5TT1JTX0lOREVYOwpAQCAtMTU0LDcgKzE1NCw3IEBACiAgICAgbmV0c25tcF9yZXF1ZXN0X2luZm8gICAgICAgKnJlcXVlc3Q7CiAgICAgbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm8gKnRhYmxlX2luZm87CiAgICAgbmV0c25tcF9zZW5zb3JfaW5mbyAgICAgICAgKnNlbnNvcl9pbmZvOwotICAgIGludCBtdWx0ICA9IChpbnQpcmVnaW5mby0+bXlfcmVnX3ZvaWQ7CisgICAgaW50IG11bHQgID0gKHVpbnRwdHJfdClyZWdpbmZvLT5teV9yZWdfdm9pZDsKIAogICAgIERFQlVHTVNHVEwoKCAidWNkLXNubXAvbG1zZW5zb3JzTWliIiwibG1TZW5zb3JzVGFibGVzX2hhbmRsZXIgLSByb290OiAiKSk7CiAgICAgREVCVUdNU0dPSUQoKCJ1Y2Qtc25tcC9sbXNlbnNvcnNNaWIiLCByZWdpbmZvLT5yb290b2lkLCByZWdpbmZvLT5yb290b2lkX2xlbikpOwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jIGIvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jCmluZGV4IDZlZmM1ZTkuLjMxNzgzMzAgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYworKysgYi9hZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMKQEAgLTI1OCwxMiArMjU4LDYgQEAKIGludAogdHJ5X2dldGxvYWRhdmcoZG91YmxlICpyX2F2ZSwgc2l6ZV90IHNfYXZlKQogewotI2lmIGRlZmluZWQoSEFWRV9HRVRMT0FEQVZHKSB8fCBkZWZpbmVkKGxpbnV4KSB8fCBkZWZpbmVkKHVsdHJpeCkgXAotICAgIHx8IGRlZmluZWQoc3VuKSB8fCBkZWZpbmVkKF9fYWxwaGEpIHx8IGRlZmluZWQoZHluaXgpIFwKLSAgICB8fCAhZGVmaW5lZChjeWd3aW4pICYmIGRlZmluZWQoTkVUU05NUF9DQU5fVVNFX05MSVNUKSBcCi0gICAgICAgJiYgZGVmaW5lZChMT0FEQVZFX1NZTUJPTCkKLSAgICBkb3VibGUgICAgICAgICAqcGF2ZSA9IHJfYXZlOwotI2VuZGlmCiAjaWZuZGVmIEhBVkVfR0VUTE9BREFWRwogI2lmZGVmIEhBVkVfU1lTX0ZJWFBPSU5UX0gKICAgICBmaXggICAgICAgICAgICAgZmF2ZW5ydW5bM107CkBAIC0yNzgsNyArMjcyLDYgQEAKICNlbmRpZgogI2VuZGlmCiAjaWYgZGVmaW5lZChhaXg0KSB8fCBkZWZpbmVkKGFpeDUpIHx8IGRlZmluZWQoYWl4NikgfHwgZGVmaW5lZChhaXg3KQotICAgIGludCAgICAgICAgICAgICBmYXZlbnJ1blszXTsKICAgICBwZXJmc3RhdF9jcHVfdG90YWxfdCBjczsKICNlbmRpZgogI2lmIGRlZmluZWQoaHB1eDEwKSB8fCBkZWZpbmVkKGhwdXgxMSkKQEAgLTI5MSw3ICsyODQsNyBAQAogI2VuZGlmCS8qICFIQVZFX0dFVExPQURBVkcgKi8KIAogI2lmZGVmIEhBVkVfR0VUTE9BREFWRwotICAgIGlmIChnZXRsb2FkYXZnKHBhdmUsIHNfYXZlKSA9PSAtMSkKKyAgICBpZiAoZ2V0bG9hZGF2ZyhyX2F2ZSwgc19hdmUpID09IC0xKQogICAgICAgICByZXR1cm4gKC0xKTsKICNlbGlmIGRlZmluZWQobGludXgpCiAgICAgewpAQCAtMzAwLDcgKzI5Myw3IEBACiAgICAgICAgICAgICBORVRTTk1QX0xPR09OQ0UoKExPR19FUlIsICJzbm1wZDogY2Fubm90IG9wZW4gL3Byb2MvbG9hZGF2Z1xuIikpOwogICAgICAgICAgICAgcmV0dXJuICgtMSk7CiAgICAgICAgIH0KLSAgICAgICAgZnNjYW5mKGluLCAiJWxmICVsZiAlbGYiLCBwYXZlLCAocGF2ZSArIDEpLCAocGF2ZSArIDIpKTsKKyAgICAgICAgZnNjYW5mKGluLCAiJWxmICVsZiAlbGYiLCByX2F2ZSwgKHJfYXZlICsgMSksIChyX2F2ZSArIDIpKTsKICAgICAgICAgZmNsb3NlKGluKTsKICAgICB9CiAjZWxpZiAoZGVmaW5lZCh1bHRyaXgpIHx8IGRlZmluZWQoc3VuKSB8fCBkZWZpbmVkKF9fYWxwaGEpIHx8IGRlZmluZWQoZHluaXgpKQpAQCAtMzA4LDcgKzMwMSw3IEBACiAgICAgICAgIDApCiAgICAgICAgIHJldHVybiAoLTEpOwogICAgIGZvciAoaSA9IDA7IGkgPCBzX2F2ZTsgaSsrKQotICAgICAgICAqKHBhdmUgKyBpKSA9IEZJWF9UT19EQkwoZmF2ZW5ydW5baV0pOworICAgICAgICAqKHJfYXZlICsgaSkgPSBGSVhfVE9fREJMKGZhdmVucnVuW2ldKTsKICNlbGlmIGRlZmluZWQoaHB1eDEwKSB8fCBkZWZpbmVkKGhwdXgxMSkKICAgICBpZiAocHN0YXRfZ2V0ZHluYW1pYygmcHN0X2J1Ziwgc2l6ZW9mKHN0cnVjdCBwc3RfZHluYW1pYyksIDEsIDApIDwgMCkKICAgICAgICAgcmV0dXJuKC0xKTsKQEAgLTMzMCw3ICszMjMsNyBAQAogICAgIERFQlVHTVNHVEwoKCJ1Y2Qtc25tcC9sb2FkYXZlIiwgImlyaXg2OiAlZCAlZCAlZFxuIiwgZmF2ZW5ydW5bMF0sIGZhdmVucnVuWzFdLCBmYXZlbnJ1blsyXSkpOwogI2VsaWYgIWRlZmluZWQoY3lnd2luKQogI2lmIGRlZmluZWQoTkVUU05NUF9DQU5fVVNFX05MSVNUKSAmJiBkZWZpbmVkKExPQURBVkVfU1lNQk9MKQotICAgIGlmIChhdXRvX25saXN0KExPQURBVkVfU1lNQk9MLCAoY2hhciAqKSBwYXZlLCBzaXplb2YoZG91YmxlKSAqIHNfYXZlKQorICAgIGlmIChhdXRvX25saXN0KExPQURBVkVfU1lNQk9MLCAoY2hhciAqKSByX2F2ZSwgc2l6ZW9mKGRvdWJsZSkgKiBzX2F2ZSkKICAgICAgICAgPT0gMCkKICNlbmRpZgogICAgICAgICByZXR1cm4gKC0xKTsKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYyBiL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYwppbmRleCA5OGVhY2JiLi44ZDYwMmMxIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jCkBAIC0xLDQgKzEsNSBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpZiBIQVZFX1NURExJQl9ICiAjaW5jbHVkZSA8c3RkbGliLmg+CkBAIC0zNiw2ICszNyw5IEBACiAjaW5jbHVkZSAiZXh0ZW5zaWJsZS5oIgogI2luY2x1ZGUgInV0aWxfZnVuY3MuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoZ2V0X2V4dGVuX2luc3RhbmNlKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUocGFyc2VfbWlib2lkKQorCiBzdHJ1Y3QgZXh0ZW5zaWJsZSAqcGFzc3RocnVzID0gTlVMTDsKIGludCAgICAgICAgICAgICBudW1wYXNzdGhydXMgPSAwOwogCkBAIC0xMTMsNiArMTE3LDcgQEAKICAgICBpZiAoKnBwYXNzID09IE5VTEwpCiAgICAgICAgIHJldHVybjsKICAgICAoKnBwYXNzKS0+dHlwZSA9IFBBU1NUSFJVOworICAgICgqcHBhc3MpLT5taWJwcmlvcml0eSA9IHByaW9yaXR5OwogCiAgICAgKCpwcGFzcyktPm1pYmxlbiA9IHBhcnNlX21pYm9pZChjcHRyLCAoKnBwYXNzKS0+bWlib2lkKTsKICAgICB3aGlsZSAoaXNkaWdpdCgodW5zaWduZWQgY2hhcikoKmNwdHIpKSB8fCAqY3B0ciA9PSAnLicpCkBAIC0xMzIsOSArMTM3LDEwIEBACiAgICAgc3RybGNweSgoKnBwYXNzKS0+bmFtZSwgKCpwcGFzcyktPmNvbW1hbmQsIHNpemVvZigoKnBwYXNzKS0+bmFtZSkpOwogICAgICgqcHBhc3MpLT5uZXh0ID0gTlVMTDsKIAotICAgIHJlZ2lzdGVyX21pYl9wcmlvcml0eSgicGFzcyIsIChzdHJ1Y3QgdmFyaWFibGUgKikgZXh0ZW5zaWJsZV9wYXNzdGhydV92YXJpYWJsZXMsCi0JCQkgIHNpemVvZihzdHJ1Y3QgdmFyaWFibGUyKSwKLQkJCSAgMSwgKCpwcGFzcyktPm1pYm9pZCwgKCpwcGFzcyktPm1pYmxlbiwgcHJpb3JpdHkpOworICAgIHJlZ2lzdGVyX21pYl9wcmlvcml0eSgicGFzcyIsCisgICAgICAgICAgICAgICAgIChzdHJ1Y3QgdmFyaWFibGUgKikgZXh0ZW5zaWJsZV9wYXNzdGhydV92YXJpYWJsZXMsCisgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgdmFyaWFibGUyKSwgMSwgKCpwcGFzcyktPm1pYm9pZCwKKyAgICAgICAgICAgICAgICAgKCpwcGFzcyktPm1pYmxlbiwgKCpwcGFzcyktPm1pYnByaW9yaXR5KTsKIAogICAgIC8qCiAgICAgICogYXJnZ2dnIC0tIHBhc3N0aHJ1cyBtdXN0IGJlIHNvcnRlZCAKQEAgLTE3MCw3ICsxNzYsNyBAQAogICAgIGZvciAoZXRtcCA9IHBhc3N0aHJ1czsgZXRtcCAhPSBOVUxMOykgewogICAgICAgICBldG1wMiA9IGV0bXA7CiAgICAgICAgIGV0bXAgPSBldG1wLT5uZXh0OwotICAgICAgICB1bnJlZ2lzdGVyX21pYihldG1wMi0+bWlib2lkLCBldG1wMi0+bWlibGVuKTsKKyAgICAgICAgdW5yZWdpc3Rlcl9taWJfcHJpb3JpdHkoZXRtcDItPm1pYm9pZCwgZXRtcDItPm1pYmxlbiwgZXRtcDItPm1pYnByaW9yaXR5KTsKICAgICAgICAgZnJlZShldG1wMik7CiAgICAgfQogICAgIHBhc3N0aHJ1cyA9IE5VTEw7CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYyBiL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCmluZGV4IGJkOWI2MDMuLjg0NjdlMTkgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCisrKyBiL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCkBAIC0xLDQgKzEsNSBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpZiBIQVZFX0lPX0gKICNpbmNsdWRlIDxpby5oPgpAQCAtNDEsMTIgKzQyLDE1IEBACiAjaW5jbHVkZSAiZXh0ZW5zaWJsZS5oIgogI2luY2x1ZGUgInV0aWxfZnVuY3MuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoZ2V0X2V4dGVuX2luc3RhbmNlKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUocGFyc2VfbWlib2lkKQorCiBzdHJ1Y3QgZXh0ZW5zaWJsZSAqcGVyc2lzdHBhc3N0aHJ1cyA9IE5VTEw7CiBpbnQgICAgICAgICAgICAgbnVtcGVyc2lzdHBhc3N0aHJ1cyA9IDA7CiBzdHJ1Y3QgcGVyc2lzdF9waXBlX3R5cGUgewogICAgIEZJTEUgICAgICAgICAgICpmSW4sICpmT3V0OwogICAgIGludCAgICAgICAgICAgICBmZEluLCBmZE91dDsKLSAgICBpbnQgICAgICAgICAgICAgcGlkOworICAgIG5ldHNubXBfcGlkX3QgICBwaWQ7CiB9ICAgICAgICAgICAgICAqcGVyc2lzdF9waXBlcyA9IChzdHJ1Y3QgcGVyc2lzdF9waXBlX3R5cGUgKikgTlVMTDsKIHN0YXRpYyB1bnNpZ25lZCBwaXBlX2NoZWNrX2FsYXJtX2lkOwogc3RhdGljIGludCAgICAgIGluaXRfcGVyc2lzdF9waXBlcyh2b2lkKTsKQEAgLTE0Myw2ICsxNDcsNyBAQAogICAgIGlmICgqcHBhc3MgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuOwogICAgICgqcHBhc3MpLT50eXBlID0gUEFTU1RIUlVfUEVSU0lTVDsKKyAgICAoKnBwYXNzKS0+bWlicHJpb3JpdHkgPSBwcmlvcml0eTsKIAogICAgICgqcHBhc3MpLT5taWJsZW4gPSBwYXJzZV9taWJvaWQoY3B0ciwgKCpwcGFzcyktPm1pYm9pZCk7CiAgICAgd2hpbGUgKGlzZGlnaXQoKHVuc2lnbmVkIGNoYXIpKCpjcHRyKSkgfHwgKmNwdHIgPT0gJy4nKQpAQCAtMTY1LDcgKzE3MCw3IEBACiAgICAgcmVnaXN0ZXJfbWliX3ByaW9yaXR5KCJwYXNzX3BlcnNpc3QiLAogICAgICAgICAgICAgICAgICAoc3RydWN0IHZhcmlhYmxlICopIGV4dGVuc2libGVfcGVyc2lzdF9wYXNzdGhydV92YXJpYWJsZXMsCiAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgdmFyaWFibGUyKSwgMSwgKCpwcGFzcyktPm1pYm9pZCwKLSAgICAgICAgICAgICAgICAgKCpwcGFzcyktPm1pYmxlbiwgcHJpb3JpdHkpOworICAgICAgICAgICAgICAgICAoKnBwYXNzKS0+bWlibGVuLCAoKnBwYXNzKS0+bWlicHJpb3JpdHkpOwogCiAgICAgLyoKICAgICAgKiBhcmdnZ2cgLS0gcGFzdGhydXMgbXVzdCBiZSBzb3J0ZWQgCkBAIC0xOTYsMTMgKzIwMSwxOSBAQAogcGFzc19wZXJzaXN0X2ZyZWVfY29uZmlnKHZvaWQpCiB7CiAgICAgc3RydWN0IGV4dGVuc2libGUgKmV0bXAsICpldG1wMjsKKyAgICBpbnQgaTsKIAogICAgIGZvciAoZXRtcCA9IHBlcnNpc3RwYXNzdGhydXM7IGV0bXAgIT0gTlVMTDspIHsKICAgICAgICAgZXRtcDIgPSBldG1wOwogICAgICAgICBldG1wID0gZXRtcC0+bmV4dDsKLSAgICAgICAgdW5yZWdpc3Rlcl9taWIoZXRtcDItPm1pYm9pZCwgZXRtcDItPm1pYmxlbik7CisgICAgICAgIHVucmVnaXN0ZXJfbWliX3ByaW9yaXR5KGV0bXAyLT5taWJvaWQsIGV0bXAyLT5taWJsZW4sIGV0bXAyLT5taWJwcmlvcml0eSk7CiAgICAgICAgIGZyZWUoZXRtcDIpOwogICAgIH0KKyAgICBpZiAocGVyc2lzdF9waXBlcykgeworICAgICAgICBmb3IgKGkgPSAwOyBpIDw9IG51bXBlcnNpc3RwYXNzdGhydXM7IGkrKykgeworICAgICAgICAgICAgY2xvc2VfcGVyc2lzdF9waXBlKGkpOworICAgICAgICB9CisgICAgfQogICAgIHBlcnNpc3RwYXNzdGhydXMgPSBOVUxMOwogICAgIG51bXBlcnNpc3RwYXNzdGhydXMgPSAwOwogfQpAQCAtNDI2LDcgKzQzNyw3IEBACiAgICAgICAgIGZvciAoaSA9IDA7IGkgPD0gbnVtcGVyc2lzdHBhc3N0aHJ1czsgaSsrKSB7CiAgICAgICAgICAgICBwZXJzaXN0X3BpcGVzW2ldLmZJbiA9IHBlcnNpc3RfcGlwZXNbaV0uZk91dCA9IChGSUxFICopIDA7CiAgICAgICAgICAgICBwZXJzaXN0X3BpcGVzW2ldLmZkSW4gPSBwZXJzaXN0X3BpcGVzW2ldLmZkT3V0ID0gLTE7Ci0gICAgICAgICAgICBwZXJzaXN0X3BpcGVzW2ldLnBpZCA9IC0xOworICAgICAgICAgICAgcGVyc2lzdF9waXBlc1tpXS5waWQgPSBORVRTTk1QX05PX1NVQ0hfUFJPQ0VTUzsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gcGVyc2lzdF9waXBlcyA/IDEgOiAwOwpAQCAtNDQwLDcgKzQ1MSw3IEBACiAgKi8KIHN0YXRpYyBpbnQgcHJvY2Vzc19zdG9wcGVkKGludCBpZHgpCiB7Ci0gICAgaWYgKHBlcnNpc3RfcGlwZXNbaWR4XS5waWQgIT0gLTEpIHsKKyAgICBpZiAocGVyc2lzdF9waXBlc1tpZHhdLnBpZCAhPSBORVRTTk1QX05PX1NVQ0hfUFJPQ0VTUykgewogI2lmIEhBVkVfU1lTX1dBSVRfSAogICAgICAgICByZXR1cm4gd2FpdHBpZChwZXJzaXN0X3BpcGVzW2lkeF0ucGlkLCBOVUxMLCBXTk9IQU5HKSA+IDA7CiAjZW5kaWYKQEAgLTUwNywxNCArNTE4LDE1IEBACiAgICAgLyoKICAgICAgKiBPcGVuIGlmIGl0J3Mgbm90IGFscmVhZHkgb3BlbiAKICAgICAgKi8KLSAgICBpZiAocGVyc2lzdF9waXBlc1tpaW5kZXhdLnBpZCA9PSAtMSkgewotICAgICAgICBpbnQgICAgICAgICAgICAgZmRJbiwgZmRPdXQsIHBpZDsKKyAgICBpZiAocGVyc2lzdF9waXBlc1tpaW5kZXhdLnBpZCA9PSBORVRTTk1QX05PX1NVQ0hfUFJPQ0VTUykgeworICAgICAgICBpbnQgICAgICAgICAgICAgZmRJbiwgZmRPdXQ7CisgICAgICAgIG5ldHNubXBfcGlkX3QgICBwaWQ7CiAKICAgICAgICAgLyoKICAgICAgICAgICogRGlkIHdlIGZhaWw/IAogICAgICAgICAgKi8KICAgICAgICAgaWYgKCgwID09IGdldF9leGVjX3BpcGVzKGNvbW1hbmQsICZmZEluLCAmZmRPdXQsICZwaWQpKSB8fAotICAgICAgICAgICAgKHBpZCA9PSAtMSkpIHsKKyAgICAgICAgICAgIChwaWQgPT0gTkVUU05NUF9OT19TVUNIX1BST0NFU1MpKSB7CiAgICAgICAgICAgICBERUJVR01TR1RMKCgidWNkLXNubXAvcGFzc19wZXJzaXN0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICJvcGVuX3BlcnNpc3RfcGlwZTogcGlkID09IC0xXG4iKSk7CiAgICAgICAgICAgICByZWN1cnNlID0gMDsKQEAgLTU5MSw3ICs2MDMsNyBAQAogICAgIC8qCiAgICAgICogRG9uJ3Qgd3JpdGUgdG8gYSBub24tZXhpc3RhbnQgcHJvY2VzcyAKICAgICAgKi8KLSAgICBpZiAocGVyc2lzdF9waXBlc1tpaW5kZXhdLnBpZCA9PSAtMSkgeworICAgIGlmIChwZXJzaXN0X3BpcGVzW2lpbmRleF0ucGlkID09IE5FVFNOTVBfTk9fU1VDSF9QUk9DRVNTKSB7CiAgICAgICAgIERFQlVHTVNHVEwoKCJ1Y2Qtc25tcC9wYXNzX3BlcnNpc3QiLAogICAgICAgICAgICAgICAgICAgICAid3JpdGVfcGVyc2lzdF9waXBlOiBub3Qgd3JpdGluZyAlcywgcHJvY2VzcyBpcyBub24tZXhpc3RlbnQiLAogICAgICAgICAgICAgICAgICAgICBkYXRhKSk7CkBAIC03MDksMTYgKzcyMSwyMyBAQAogCXVubGluayhmaWZvX291dF9wYXRoKTsKICNlbmRpZgogCi0gICAgaWYgKHBlcnNpc3RfcGlwZXNbaWluZGV4XS5waWQgIT0gLTEpIHsKKyAgICBpZiAocGVyc2lzdF9waXBlc1tpaW5kZXhdLnBpZCAhPSBORVRTTk1QX05PX1NVQ0hfUFJPQ0VTUykgeworICAgICAgICAvKgorICAgICAgICAgKiBraWxsIHRoZSBjaGlsZCwgaW4gY2FzZSB3ZSBnb3QgYW4gZXJyb3IgYW5kIHRoZSBjaGlsZCBpcyBub3QKKyAgICAgICAgICogY29vcGVyYXRpbmcuICBJZ25vcmUgdGhlIHJldHVybiBjb2RlLgorICAgICAgICAgKi8KKyNpZmRlZiBIQVZFX1NJR05BTAorICAgICAgICAodm9pZClraWxsKHBlcnNpc3RfcGlwZXNbaWluZGV4XS5waWQsIFNJR0tJTEwpOworI2VuZGlmCiAjaWYgSEFWRV9TWVNfV0FJVF9ICiAgICAgICAgIHdhaXRwaWQocGVyc2lzdF9waXBlc1tpaW5kZXhdLnBpZCwgTlVMTCwgMCk7CiAjZW5kaWYKICNpZiBkZWZpbmVkKFdJTjMyKSAmJiAhZGVmaW5lZCAobWluZ3czMikgJiYgIWRlZmluZWQgKEhBVkVfU0lHTkFMKQotICAgICAgICBpZiAoIUNsb3NlSGFuZGxlKChIQU5ETEUpcGVyc2lzdF9waXBlc1tpaW5kZXhdLnBpZCkpIHsKKyAgICAgICAgaWYgKCFDbG9zZUhhbmRsZShwZXJzaXN0X3BpcGVzW2lpbmRleF0ucGlkKSkgewogICAgICAgICAgICAgREVCVUdNU0dUTCgoInVjZC1zbm1wL3Bhc3NfcGVyc2lzdCIsImNsb3NlX3BlcnNpc3RfcGlwZSBwaWQ6IGNsb3NlIGVycm9yXG4iKSk7CiAgICAgICAgIH0KICNlbmRpZgotICAgICAgICBwZXJzaXN0X3BpcGVzW2lpbmRleF0ucGlkID0gLTE7CisgICAgICAgIHBlcnNpc3RfcGlwZXNbaWluZGV4XS5waWQgPSBORVRTTk1QX05PX1NVQ0hfUFJPQ0VTUzsKICAgICB9CiAKIH0KZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYyBiL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYwppbmRleCA3MDBhY2YyLi5lOTBjMmU4IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jCkBAIC0xLDQgKzEsNSBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpZmRlZiBzb2xhcmlzMgogI2RlZmluZSBfS01FTVVTRVIgICAgICAgICAgICAgICAvKiBOZWVkZWQgYnkgPHN5cy91c2VyLmg+ICovCkBAIC0zNTksNiArMzYwLDcgQEAKIH0KIAogI2lmZGVmIFVTSU5HX0hPU1RfREFUQV9BQ0NFU1NfU1dSVU5fTU9EVUxFCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShzd3J1bl9jb3VudF9wcm9jZXNzZXNfYnlfbmFtZSkKIGludAogc2hfY291bnRfcHJvY3MoY2hhciAqcHJvY25hbWUpCiB7CkBAIC04MTIsNiArODE0LDcgQEAKIH0KICNlbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgLyogX1NMQVNIX1BST0NfTUVUSE9EXyAqLwogI2Vsc2UKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGZpbmRfZmllbGQpCiBpbnQKIHNoX2NvdW50X3Byb2NzKGNoYXIgKnByb2NuYW1lKQogewpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyBiL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMKaW5kZXggOWEwZTM1Ni4uMDE3ZmQ1YyAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYworKysgYi9hZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jCkBAIC05LDYgKzksNyBAQAogICogZGlzdHJpYnV0ZWQgd2l0aCB0aGUgTmV0LVNOTVAgcGFja2FnZS4KICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpZiBIQVZFX1NUUklOR19ICkBAIC0yMyw2ICsyNCw5IEBACiAKICNpbmNsdWRlICJwcm94eS5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShoYW5kbGVyX21hcmtfcmVxdWVzdHNfYXNfZGVsZWdhdGVkKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUocmVxdWVzdF9zZXRfZXJyb3JfaWR4KQorCiBzdGF0aWMgc3RydWN0IHNpbXBsZV9wcm94eSAqcHJveGllcyA9IE5VTEw7CiAKIG9pZCAgICAgICAgICAgICB0ZXN0b2lkW10gPSB7IDEsIDMsIDYsIDEsIDQsIDEsIDIwMjEsIDg4ODgsIDEgfTsKQEAgLTM1Niw2ICszNjAsNyBAQAogICAgICAgICBwZHUgPSBzbm1wX3BkdV9jcmVhdGUocmVxaW5mby0+bW9kZSk7CiAgICAgICAgIGJyZWFrOwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgTU9ERV9TRVRfQUNUSU9OOgogICAgICAgICBwZHUgPSBzbm1wX3BkdV9jcmVhdGUoU05NUF9NU0dfU0VUKTsKICAgICAgICAgYnJlYWs7CkBAIC0zODMsNiArMzg4LDcgQEAKICAgICAgICAgICogIE5vdGhpbmcgdG8gZG8gaW4gdGhpcyBwYXNzCiAgICAgICAgICAqLwogICAgICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICAgICBkZWZhdWx0OgogICAgICAgICBzbm1wX2xvZyhMT0dfV0FSTklORywgInVuc3VwcG9ydGVkIG1vZGUgZm9yIHByb3h5IGNhbGxlZCAoJWQpXG4iLApAQCAtNDAzLDcgKzQwOSwzMyBAQAogICAgICAgICBvdXJuYW1lID0gcmVxdWVzdC0+cmVxdWVzdHZiLT5uYW1lOwogICAgICAgICBvdXJsZW5ndGggPSByZXF1ZXN0LT5yZXF1ZXN0dmItPm5hbWVfbGVuZ3RoOwogCi0gICAgICAgIGlmIChzcC0+YmFzZV9sZW4gPiAwKSB7CisgICAgICAgIGlmIChzcC0+YmFzZV9sZW4gJiYKKyAgICAgICAgICAgIHJlcWluZm8tPm1vZGUgPT0gTU9ERV9HRVRORVhUICYmCisgICAgICAgICAgICAoc25tcF9vaWRfY29tcGFyZShvdXJuYW1lLCBvdXJsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcC0+YmFzZSwgc3AtPmJhc2VfbGVuKSA8IDApKSB7CisgICAgICAgICAgICBERUJVR01TR1RMKCggInByb3h5IiwgInJlcXVlc3QgaXMgb3V0IG9mIHJlZ2lzdGVyZWQgcmFuZ2VcbiIpKTsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBDcmVhdGUgR0VUTkVYVCByZXF1ZXN0IHdpdGggYW4gT0lEIHNvIHRoZQorICAgICAgICAgICAgICogbWFzdGVyIHJldHVybnMgdGhlIGZpcnN0IE9JRCBpbiB0aGUgcmVnaXN0ZXJlZCByYW5nZS4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgbWVtY3B5KG91cm5hbWUsIHNwLT5iYXNlLCBzcC0+YmFzZV9sZW4gKiBzaXplb2Yob2lkKSk7CisgICAgICAgICAgICBvdXJsZW5ndGggPSBzcC0+YmFzZV9sZW47CisgICAgICAgICAgICBpZiAob3VybmFtZVtvdXJsZW5ndGgtMV0gPD0gMSkgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogVGhlIHJlZ2lzdGVyZWQgcmFuZ2UgZW5kcyB3aXRoIHgueS56LjEKKyAgICAgICAgICAgICAgICAgKiAtPiBhc2sgZm9yIHRoZSBuZXh0IG9mIHgueS56CisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgb3VybGVuZ3RoLS07CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogVGhlIHJlZ2lzdGVyZWQgcmFuZ2UgZW5kcyB3aXRoIHgueS56LkEKKyAgICAgICAgICAgICAgICAgKiAtPiBhc2sgZm9yIHRoZSBuZXh0IG9mIHgueS56LkEtMS5NQVhfU1VCSUQKKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBvdXJuYW1lW291cmxlbmd0aC0xXS0tOworICAgICAgICAgICAgICAgIG91cm5hbWVbb3VybGVuZ3RoXSA9IE1BWF9TVUJJRDsKKyAgICAgICAgICAgICAgICBvdXJsZW5ndGgrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChzcC0+YmFzZV9sZW4gPiAwKSB7CiAgICAgICAgICAgICBpZiAoKG91cmxlbmd0aCAtIHNwLT5uYW1lX2xlbiArIHNwLT5iYXNlX2xlbikgPiBNQVhfT0lEX0xFTikgewogICAgICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgICAgICogdG9vIGxhcmdlIApAQCAtNTI5LDYgKzU2MSw3IEBACiAgICAgICAgICAgICAgICAgbmV0c25tcF9oYW5kbGVyX21hcmtfcmVxdWVzdHNfYXNfZGVsZWdhdGVkKHJlcXVlc3RzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRVFVRVNUX0lTX05PVF9ERUxFR0FURUQpOwogICAgICAgICAgICAgfQorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKIAkgICAgZWxzZSBpZiAoY2FjaGUtPnJlcWluZm8tPm1vZGUgPT0gTU9ERV9TRVRfQUNUSU9OKSB7CiAJCS8qCiAJCSAqIEluIG9yZGVyIGZvciBuZXRzbm1wX3dyYXBfdXBfcmVxdWVzdCB0byBjb25zaWRlciB0aGUKQEAgLTU0NSw2ICs1NzgsNyBAQAogCQluZXRzbm1wX3JlcXVlc3Rfc2V0X2Vycm9yX2lkeChyZXF1ZXN0cywgcGR1LT5lcnJzdGF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZHUtPmVycmluZGV4KTsKIAkgICAgfQorI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgICAgIGVsc2UgewogCQluZXRzbm1wX2hhbmRsZXJfbWFya19yZXF1ZXN0c19hc19kZWxlZ2F0ZWQoIHJlcXVlc3RzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVRVUVTVF9JU19OT1RfREVMRUdBVEVEKTsKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMgYi9hZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jCmluZGV4IGY0MjkzMmEuLmY3YThjNjMgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYwpAQCAtMSw0ICsxLDUgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaWYgVElNRV9XSVRIX1NZU19USU1FCkBAIC0yMyw3ICsyNCwxMiBAQAogCiAjaW5jbHVkZSAic3RydWN0LmgiCiAjaW5jbHVkZSAidmVyc2lvbmluZm8uaCIKLSNpbmNsdWRlICJ1dGlsX2Z1bmNzLmgiCisjaW5jbHVkZSAidXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5oIgorI2luY2x1ZGUgInV0aWxfZnVuY3MvcmVzdGFydC5oIgorI2luY2x1ZGUgInV0aWxfZnVuY3MuaCIgLyogY2xlYXJfY2FjaGUgKi8KKworbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2xlYXJfY2FjaGUpCisKIAogdm9pZAogaW5pdF92ZXJzaW9uaW5mbyh2b2lkKQpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCBiL2FnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmgKaW5kZXggZDk5MTE0Ny4uMDA3NDI0ZSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaAorKysgYi9hZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oCkBAIC0yOCw1ICsyOCw4IEBACiAjZGVmaW5lIFZFUlNBVkVQRVJTSVNURU5UIDEzCiAjZGVmaW5lIFZFUkRFQlVHR0lORyAyMAogCitjb25maWdfcmVxdWlyZSh1dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljKQorY29uZmlnX3JlcXVpcmUodXRpbF9mdW5jcy9yZXN0YXJ0KQogY29uZmlnX3JlcXVpcmUodXRpbF9mdW5jcykKKwogI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBfTUlCR1JPVVBfVkVSU0lPTklORk9fSCAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMgYi9hZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYwppbmRleCBlYWRiZjVhLi5kNTJhNWI2IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYworKysgYi9hZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYwpAQCAtMjAsNyArMjAsNyBAQAogICAgICAgICBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigidm1zdGF0Iiwgdm1zdGF0X2hhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZtc3RhdF9vaWQsIE9JRF9MRU5HVEgodm1zdGF0X29pZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVJfQ0FOX1JPTkxZKSwKLSAgICAgICAgTUlCSU5ERVgsIFJBV1NXQVBPVVQpOworICAgICAgICBNSUJJTkRFWCwgQ1BVUkFXR1VFU1ROSUNFKTsKIH0KIAogCkBAIC0zOCw2ICszOCw3IEBACiAgICAgc3dpdGNoIChyZXFpbmZvLT5tb2RlKSB7CiAgICAgY2FzZSBNT0RFX0dFVDoKICAgICAgICAgb2JqID0gcmVxdWVzdHMtPnJlcXVlc3R2Yi0+bmFtZVsgcmVxdWVzdHMtPnJlcXVlc3R2Yi0+bmFtZV9sZW5ndGgtMiBdOworCiAgICAgICAgIHN3aXRjaCAob2JqKSB7CiAgICAgICAgIGNhc2UgTUlCSU5ERVg6ICAgICAgICAgICAgIC8qIGR1bW15IHZhbHVlICovCiAgICAgICAgICAgICAgc25tcF9zZXRfdmFyX3R5cGVkX2ludGVnZXIocmVxdWVzdHMtPnJlcXVlc3R2YiwgQVNOX0lOVEVHRVIsIDEpOwpAQCAtMTEyLDYgKzExMywxOCBAQAogICAgICAgICAgICAgIHNubXBfc2V0X3Zhcl90eXBlZF9pbnRlZ2VyKHJlcXVlc3RzLT5yZXF1ZXN0dmIsIEFTTl9DT1VOVEVSLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8tPnNpcnFfdGlja3MgJiAweGZmZmZmZmZmKTsKICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDUFVSQVdTVEVBTDoKKyAgICAgICAgICAgICBzbm1wX3NldF92YXJfdHlwZWRfaW50ZWdlcihyZXF1ZXN0cy0+cmVxdWVzdHZiLCBBU05fQ09VTlRFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLT5zdGVhbF90aWNrcyAmIDB4ZmZmZmZmZmYpOworICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENQVVJBV0dVRVNUOgorICAgICAgICAgICAgIHNubXBfc2V0X3Zhcl90eXBlZF9pbnRlZ2VyKHJlcXVlc3RzLT5yZXF1ZXN0dmIsIEFTTl9DT1VOVEVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8tPmd1ZXN0X3RpY2tzICYgMHhmZmZmZmZmZik7CisgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1BVUkFXR1VFU1ROSUNFOgorICAgICAgICAgICAgIHNubXBfc2V0X3Zhcl90eXBlZF9pbnRlZ2VyKHJlcXVlc3RzLT5yZXF1ZXN0dmIsIEFTTl9DT1VOVEVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8tPmd1ZXN0bmljZV90aWNrcyAmIDB4ZmZmZmZmZmYpOworICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIC8qCiAgICAgICAgICAqICAnQ29va2VkJyBDUFUgc3RhdGlzdGljcwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmggYi9hZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaAppbmRleCBiOGQ1MjAyLi5lZWRiNWI0IDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaAorKysgYi9hZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaApAQCAtMzYsNSArMzYsOCBAQAogI2RlZmluZSBDUFVSQVdTT0ZUSVJRIDYxCiAjZGVmaW5lIFJBV1NXQVBJTiA2MgogI2RlZmluZSBSQVdTV0FQT1VUIDYzCisjZGVmaW5lIENQVVJBV1NURUFMIDY0CisjZGVmaW5lIENQVVJBV0dVRVNUIDY1CisjZGVmaW5lIENQVVJBV0dVRVNUTklDRSA2NgogCiAjZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIF9NSUJHUk9VUF9WTVNUQVRfSCAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmMgYi9hZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYwppbmRleCA3NTM4YTE0Li5kNmVmZjUwIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYworKysgYi9hZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYwpAQCAtMSw0ICsxLDUgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaWYgSEFWRV9MSU1JVFNfSAogI2luY2x1ZGUgPGxpbWl0cy5oPgpAQCAtMTExLDYgKzExMiw5IEBACiAjaW5jbHVkZSAidXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5oIgogI2luY2x1ZGUgInZtc3RhdC5oIgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShoYXJkd2FyZV9jcHVfbG9hZCkKKworCiBGaW5kVmFyTWV0aG9kIHZhcl9leHRlbnNpYmxlX3Ztc3RhdDsKIAogc3RhdGljIGludCBoYXNfdm1zdGF0ID0gMTsKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50LmggYi9hZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oCmluZGV4IDFlZGI2ZDYuLmQ5ZGVjMWQgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50LmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaApAQCAtMjMsNyArMjMsNyBAQAogY29uZmlnX3JlcXVpcmUodXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUpCiAjZWxpZiBkZWZpbmVkKCBzb2xhcmlzMiApCiBjb25maWdfcmVxdWlyZSh1ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9zb2xhcmlzMikKLSNlbGlmIGRlZmluZWQoZnJlZWJzZDQpIHx8IGRlZmluZWQoZHJhZ29uZmx5KQorI2VsaWYgZGVmaW5lZChmcmVlYnNkNCkgfHwgZGVmaW5lZChkcmFnb25mbHkpIHx8IGRlZmluZWQoZGFyd2luKQogY29uZmlnX3JlcXVpcmUodWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfZnJlZWJzZDQpCiAjZWxpZiBkZWZpbmVkKG9wZW5ic2Q0KQogY29uZmlnX3JlcXVpcmUodWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfb3BlbmJzZCkKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2NvbW1vbi5jIGIvYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfY29tbW9uLmMKaW5kZXggYmNiMDAyZS4uNjNmODU0OSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfY29tbW9uLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfY29tbW9uLmMKQEAgLTQsNiArNCw3IEBACiAgKiAkSWQkCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSAidWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfY29uc3RhbnRzLmgiCiAKQEAgLTEzLDYgKzE0LDEwIEBACiAKICNpbmNsdWRlICJ1ZHBfZW5kcG9pbnRfcHJpdmF0ZS5oIgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodWRwX2VuZHBvaW50X2NvbW1vbiwgbGlibmV0c25tcG1pYnMpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih1ZHBfZW5kcG9pbnRfZW50cnlfY3JlYXRlLCB1ZHBfZW5kcG9pbnRfY29tbW9uKQorCiAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyoKICAqIGxvY2FsIHN0YXRpYyB2YXJzCkBAIC0yNCwxMSArMjksNiBAQAogICogaW5pdGlhbGl6YXRpb24KICAqLwogCi12b2lkCi1uZXRzbm1wX2FjY2Vzc191ZHBfZW5kcG9pbnRfaW5pdCh2b2lkKQotewotfQotCiAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyoKICAqIGNvbnRhaW5lciBmdW5jdGlvbnMKQEAgLTEyMCw2ICsxMjAsNyBAQAogICovCiAvKioKICAqLworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1VEUF9FTkRQT0lOVF9FTlRSWV9DUkVBVEUKIG5ldHNubXBfdWRwX2VuZHBvaW50X2VudHJ5ICoKIG5ldHNubXBfYWNjZXNzX3VkcF9lbmRwb2ludF9lbnRyeV9jcmVhdGUodm9pZCkKIHsKQEAgLTEzNiw2ICsxMzcsNyBAQAogCiAgICAgcmV0dXJuIGVudHJ5OwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVURQX0VORFBPSU5UX0VOVFJZX0NSRUFURSAqLwogCiAvKioKICAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYyBiL2FnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMKaW5kZXggNDNiMzIzMC4uNmVkYmRjMSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYworKysgYi9hZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jCkBAIC00LDYgKzQsNyBAQAogICogJElkJAogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogCiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KQEAgLTE5LDYgKzIwLDEwIEBACiAKICNpbmNsdWRlIDxmY250bC5oPgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0ZXh0X3V0aWxzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHVkcF9lbmRwb2ludF9hbGwsIGxpYm5ldHNubXBtaWJzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHVkcF9lbmRwb2ludF93cml0YWJsZSwgdWRwX2VuZHBvaW50X2FsbCkKKwogc3RhdGljIGludCBfbG9hZDQobmV0c25tcF9jb250YWluZXIgKmNvbnRhaW5lciwgdV9pbnQgZmxhZ3MpOwogI2lmIGRlZmluZWQgKE5FVFNOTVBfRU5BQkxFX0lQVjYpCiBzdGF0aWMgaW50IF9sb2FkNihuZXRzbm1wX2NvbnRhaW5lciAqY29udGFpbmVyLCB1X2ludCBmbGFncyk7CkBAIC0zMCw2ICszNSw3IEBACiAgKiBAcmV0dmFsICAwOiBzdWNjZXNzCiAgKiBAcmV0dmFsIDwwOiBlcnJvcgogICovCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVURQX0VORFBPSU5UX1dSSVRBQkxFCiBpbnQKIG5ldHNubXBfYXJjaF91ZHBfZW5kcG9pbnRfZW50cnlfaW5pdChuZXRzbm1wX3VkcF9lbmRwb2ludF9lbnRyeSAqZW50cnkpCiB7CkBAIC03MSw2ICs3Nyw3IEBACiAgICAgLyoqIHh4eC1ya3M6OSB1ZHBfZW5kcG9pbnQgZGVsZXRlIG5vdCBpbXBsZW1lbnRlZCAqLwogICAgIHJldHVybiAtMTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1VEUF9FTkRQT0lOVF9XUklUQUJMRSAqLwogCiAKIC8qKgpAQCAtODQsNiArOTEsOSBAQAogewogICAgIGludCByYyA9IDA7CiAKKyAgICAvKiBTZXR1cCB0aGUgcGlkX2Zyb21faW5vZGUgdGFibGUsIGFuZCBmaWxsIGl0LiovCisgICAgbmV0c25tcF9nZXRfcGlkX2Zyb21faW5vZGVfaW5pdCgpOworCiAgICAgcmMgPSBfbG9hZDQoY29udGFpbmVyLCBsb2FkX2ZsYWdzKTsKICAgICBpZihyYyA8IDApIHsKICAgICAgICAgdV9pbnQgZmxhZ3MgPSBORVRTTk1QX0FDQ0VTU19VRFBfRU5EUE9JTlRfRlJFRV9LRUVQX0NPTlRBSU5FUjsKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X3NvbGFyaXMyLmMgYi9hZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9zb2xhcmlzMi5jCmluZGV4IGY0YjY5ZGYuLmY1MjI0NGEgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X3NvbGFyaXMyLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfc29sYXJpczIuYwpAQCAtMSw0ICsxLDUgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAKICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgpAQCAtMTAsMTEgKzExLDE2IEBACiAKICNpbmNsdWRlICJrZXJuZWxfc3Vub3M1LmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKG5ldHNubXBfYWNjZXNzX3VkcF9lbmRwb2ludF9lbnRyeV9jcmVhdGUpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodWRwX2VuZHBvaW50X2FsbCwgbGlibmV0c25tcG1pYnMpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodWRwX2VuZHBvaW50X3dyaXRhYmxlLCB1ZHBfZW5kcG9pbnRfYWxsKQorCiBzdGF0aWMgaW50IF9sb2FkX3VkcF9lbmRwb2ludF90YWJsZV92NChuZXRzbm1wX2NvbnRhaW5lciAqLCBpbnQpOwogI2lmIGRlZmluZWQoTkVUU05NUF9FTkFCTEVfSVBWNikgJiYgZGVmaW5lZChTT0xBUklTX0hBVkVfSVBWNl9NSUJfU1VQUE9SVCkKIHN0YXRpYyBpbnQgX2xvYWRfdWRwX2VuZHBvaW50X3RhYmxlX3Y2KG5ldHNubXBfY29udGFpbmVyICosIGludCk7CiAjZW5kaWYKIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1VEUF9FTkRQT0lOVF9XUklUQUJMRQogaW50IAogbmV0c25tcF9hcmNoX3VkcF9lbmRwb2ludF9lbnRyeV9pbml0KG5ldHNubXBfdWRwX2VuZHBvaW50X2VudHJ5ICplcCkKIHsKQEAgLTQ4LDYgKzU0LDcgQEAKICAgICAgKi8KICAgICByZXR1cm4gKC0xKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1VEUF9FTkRQT0lOVF9XUklUQUJMRSAqLwogCiBpbnQgCiBuZXRzbm1wX2FyY2hfdWRwX2VuZHBvaW50X2NvbnRhaW5lcl9sb2FkKG5ldHNubXBfY29udGFpbmVyICogY29udGFpbmVyLCAKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jIGIvYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmMKaW5kZXggMWI2ZGM2Ny4uNjBkMzdlOSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmMKQEAgLTMwLDYgKzMwLDcgQEAKICAqIHN0YW5kYXJkIE5ldC1TTk1QIGluY2x1ZGVzIAogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAKQEAgLTQ2LDYgKzQ3LDE4IEBACiAKICNpbmNsdWRlIDxjdHlwZS5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodWRwRW5kcG9pbnRUYWJsZV9leHRlcm5hbF9hY2Nlc3MsIGxpYm5ldHNubXBtaWJzKQorCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShyb3dfbWVyZ2UpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShiYWJ5X3N0ZXBzKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfYWxsX3JlcXVlc3RzX2Vycm9yKQorCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih1ZHBFbmRwb2ludFRhYmxlX2NvbnRhaW5lcl9zaXplLCB1ZHBFbmRwb2ludFRhYmxlX2V4dGVybmFsX2FjY2VzcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih1ZHBFbmRwb2ludFRhYmxlX3JlZ2lzdHJhdGlvbl9zZXQsIHVkcEVuZHBvaW50VGFibGVfZXh0ZXJuYWxfYWNjZXNzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHVkcEVuZHBvaW50VGFibGVfcmVnaXN0cmF0aW9uX2dldCwgdWRwRW5kcG9pbnRUYWJsZV9leHRlcm5hbF9hY2Nlc3MpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodWRwRW5kcG9pbnRUYWJsZV9jb250YWluZXJfZ2V0LCB1ZHBFbmRwb2ludFRhYmxlX2V4dGVybmFsX2FjY2VzcykKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKioqCkBAIC03OSwxOSArOTIsMjMgQEAKICAgICAgICAgICAgICAgICBfdWRwRW5kcG9pbnRUYWJsZV9jb250YWluZXJfc2h1dGRvd24odWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2VfY3R4ICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZfY3R4KTsKIAotCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVURQRU5EUE9JTlRUQUJMRV9DT05UQUlORVJfR0VUCiBuZXRzbm1wX2NvbnRhaW5lciAqCiB1ZHBFbmRwb2ludFRhYmxlX2NvbnRhaW5lcl9nZXQodm9pZCkKIHsKICAgICByZXR1cm4gdWRwRW5kcG9pbnRUYWJsZV9pZl9jdHguY29udGFpbmVyOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVURQRU5EUE9JTlRUQUJMRV9DT05UQUlORVJfR0VUICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9VRFBFTkRQT0lOVFRBQkxFX1JFR0lTVFJBVElPTl9HRVQKIHVkcEVuZHBvaW50VGFibGVfcmVnaXN0cmF0aW9uICoKIHVkcEVuZHBvaW50VGFibGVfcmVnaXN0cmF0aW9uX2dldCh2b2lkKQogewogICAgIHJldHVybiB1ZHBFbmRwb2ludFRhYmxlX2lmX2N0eC51c2VyX2N0eDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1VEUEVORFBPSU5UVEFCTEVfUkVHSVNUUkFUSU9OX0dFVCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVURQRU5EUE9JTlRUQUJMRV9SRUdJU1RSQVRJT05fU0VUCiB1ZHBFbmRwb2ludFRhYmxlX3JlZ2lzdHJhdGlvbiAqCiB1ZHBFbmRwb2ludFRhYmxlX3JlZ2lzdHJhdGlvbl9zZXQodWRwRW5kcG9pbnRUYWJsZV9yZWdpc3RyYXRpb24gKiBuZXdyZWcpCiB7CkBAIC05OSwxMiArMTE2LDE1IEBACiAgICAgdWRwRW5kcG9pbnRUYWJsZV9pZl9jdHgudXNlcl9jdHggPSBuZXdyZWc7CiAgICAgcmV0dXJuIG9sZDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1VEUEVORFBPSU5UVEFCTEVfUkVHSVNUUkFUSU9OX1NFVCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVURQRU5EUE9JTlRUQUJMRV9DT05UQUlORVJfU0laRQogaW50CiB1ZHBFbmRwb2ludFRhYmxlX2NvbnRhaW5lcl9zaXplKHZvaWQpCiB7CiAgICAgcmV0dXJuIENPTlRBSU5FUl9TSVpFKHVkcEVuZHBvaW50VGFibGVfaWZfY3R4LmNvbnRhaW5lcik7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9VRFBFTkRQT0lOVFRBQkxFX0NPTlRBSU5FUl9TSVpFICovCiAKIC8qCiAgKiBtZmQgbXVsdGlwbGV4ZXIgbW9kZXMKQEAgLTIyOCw3ICsyNDgsOCBAQAogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPnBvc3RfcmVxdWVzdCkKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9QT1NUX1JFUVVFU1Q7CiAKLSNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCisjaWYgIShkZWZpbmVkKE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCkgfHwgZGVmaW5lZChORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQpKQorICAgIC8qIFhYWCAtIGFyZSB0aGVzZSBhY3R1YWxseSBuZWNlc3Nhcnk/ICovCiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+c2V0X3ZhbHVlcykKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9TRVRfVkFMVUVTOwogICAgIGlmIChhY2Nlc3NfbXVsdGlwbGV4ZXItPmlycmV2ZXJzaWJsZV9jb21taXQpCkBAIC0yNTEsNyArMjcyLDcgQEAKICAgICAgICAgbWZkX21vZGVzIHw9IEJBQllfU1RFUF9DT01NSVQ7CiAgICAgaWYgKGFjY2Vzc19tdWx0aXBsZXhlci0+dW5kb19jb21taXQpCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfVU5ET19DT01NSVQ7Ci0jZW5kaWYKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgfHwgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUICovCiAKICAgICBoYW5kbGVyID0gbmV0c25tcF9iYWJ5X3N0ZXBzX2hhbmRsZXJfZ2V0KG1mZF9tb2Rlcyk7CiAgICAgbmV0c25tcF9pbmplY3RfaGFuZGxlcihyZWdpbmZvLCBoYW5kbGVyKTsKQEAgLTEwNDcsNiArMTA2OCw3IEBACiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIF91ZHBFbmRwb2ludFRhYmxlX2NvbnRhaW5lcl9zaHV0ZG93biAqLwogCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9VRFBFTkRQT0lOVFRBQkxFX0VYVEVSTkFMX0FDQ0VTUwogdWRwRW5kcG9pbnRUYWJsZV9yb3dyZXFfY3R4ICoKIHVkcEVuZHBvaW50VGFibGVfcm93X2ZpbmRfYnlfbWliX2luZGV4KHVkcEVuZHBvaW50VGFibGVfbWliX2luZGV4ICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pYl9pZHgpCkBAIC0xMDc0LDMgKzEwOTYsNCBAQAogCiAgICAgcmV0dXJuIHJvd3JlcV9jdHg7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9VRFBFTkRQT0lOVFRBQkxFX0VYVEVSTkFMX0FDQ0VTUyAqLwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jIGIvYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCmluZGV4IGZiNzYwODMuLjU0MDY4YzYgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYworKysgYi9hZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKQEAgLTksNiArOSw3IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpZiBIQVZFX0lPX0gKQEAgLTk2LDYgKzk3LDI0IEBACiAjZGVmaW5lIHNldFBlcnJvcnN0YXR1cyh4KSBzbm1wX2xvZ19wZXJyb3IoeCkKICNlbmRpZgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodXRpbF9mdW5jcywgbGlibmV0c25tcG1pYnMpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzaGVsbF9jb21tYW5kLCB1dGlsX2Z1bmNzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGdldF9leHRlbl9pbnN0YW5jZSwgdXRpbF9mdW5jcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjbGVhcl9jYWNoZSwgdXRpbF9mdW5jcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihmaW5kX2ZpZWxkLCB1dGlsX2Z1bmNzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHBhcnNlX21pYm9pZCwgdXRpbF9mdW5jcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzdHJpbmdfYXBwZW5kX2ludCwgdXRpbF9mdW5jcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpbnRlcm5hbF9taWJfdGFibGUsIHV0aWxfZnVuY3MpCisKKyNpZiBkZWZpbmVkKEhBVkVfTElOVVhfUlRORVRMSU5LX0gpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YocHJlZml4X2luZm9fYWxsLCB1dGlsX2Z1bmNzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHByZWZpeF9pbmZvLCBwcmVmaXhfaW5mb19hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodXBkYXRlX3ByZWZpeF9pbmZvLCBwcmVmaXhfaW5mb19hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoZGVsZXRlX3ByZWZpeF9pbmZvLCBwcmVmaXhfaW5mb19hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoZmluZF9wcmVmaXhfaW5mbywgcHJlZml4X2luZm9fYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGNyZWF0ZV9wcmVmaXhfaW5mbywgcHJlZml4X2luZm9fYWxsKQorI2VuZGlmIC8qIEhBVkVfTElOVVhfUlRORVRMSU5LX0ggKi8KIAogI2lmZGVmIE5FVFNOTVBfRVhDQUNIRVRJTUUKIHN0YXRpYyBsb25nICAgICBjYWNoZXRpbWU7CkBAIC0xMTAsNiArMTI5LDcgQEAKICAgICByZXR1cm4gbmV0c25tcF9ta3RlbXAoKTsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NIRUxMX0NPTU1BTkQKIGludAogc2hlbGxfY29tbWFuZChzdHJ1Y3QgZXh0ZW5zaWJsZSAqZXgpCiB7CkBAIC0xNDMsNiArMTYzLDcgQEAKICNlbmRpZgogICAgIHJldHVybiAoZXgtPnJlc3VsdCk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TSEVMTF9DT01NQU5EICovCiAKICNkZWZpbmUgTUFYT1VUUFVUIDMwMAogCkBAIC0xNjksNiArMTkwLDcgQEAKICAgICByZXR1cm4gKGV4LT5yZXN1bHQpOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfR0VUX0VYVEVOX0lOU1RBTkNFCiBzdHJ1Y3QgZXh0ZW5zaWJsZSAqCiBnZXRfZXh0ZW5faW5zdGFuY2Uoc3RydWN0IGV4dGVuc2libGUgKmV4dGVuLCBzaXplX3QgaW5zdCkKIHsKQEAgLTE4MCw2ICsyMDIsNyBAQAogICAgICAgICBleHRlbiA9IGV4dGVuLT5uZXh0OwogICAgIHJldHVybiAoZXh0ZW4pOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfR0VUX0VYVEVOX0lOU1RBTkNFICovCiAKIHZvaWQKIHdhaXRfb25fZXhlYyhzdHJ1Y3QgZXh0ZW5zaWJsZSAqZXgpCkBAIC0xODgsNyArMjExLDcgQEAKICAgaW50IHJjOwogICBpZiAoZXgtPnRpZCAhPSAwICYmIGV4LT5waWQgIT0gMCkgewogICAgIEhBTkRMRSBoVGhyZWFkID0gZXgtPnRpZDsKLSAgICBIQU5ETEUgaFByb2Nlc3MgPSAoSEFORExFKSBleC0+cGlkOworICAgIEhBTkRMRSBoUHJvY2VzcyA9IGV4LT5waWQ7CiAgICAgcmMgPSBXYWl0Rm9yU2luZ2xlT2JqZWN0KGhQcm9jZXNzLCBORVRTTk1QX1RJTUVPVVRfV0FJVEZPUlNJTkdMRU9CSkVDVCk7CiAgICAgREVCVUdNU0dUKCgiZXhlYzp3YWl0X29uX2V4ZWMiLCJXYWl0Rm9yU2luZ2xlT2JqZWN0IHJjPSglZClcbiIscmMgKSk7CiAgICAgcmMgPSBDbG9zZUhhbmRsZSggaFRocmVhZCApOwpAQCAtMzQ1LDcgKzM2OCw3IEBACiAgICAgfQogICAgIAogICAgIC8qIFNldCBnbG9iYWwgY2hpbGQgcHJvY2VzcyBoYW5kbGUgKi8KLSAgICBleC0+cGlkID0gKGludClwaS5oUHJvY2VzczsKKyAgICBleC0+cGlkID0gcGkuaFByb2Nlc3M7CiAgICAgZXgtPnRpZCA9IHBpLmhUaHJlYWQ7CiAKICAgICAvKiBDbG9zZSBwaXBlIGhhbmRsZXMgdG8gbWFrZSBzdXJlIHRoYXQgbm8gaGFuZGxlcyB0byB0aGUgd3JpdGUgZW5kIG9mIHRoZQpAQCAtMzcxLDcgKzM5NCw3IEBACiAgICAgcmV0dXJuIC0xOwogfQogaW50Ci1nZXRfZXhlY19waXBlcyhjaGFyICpjbWQsIGludCAqZmRJbiwgaW50ICpmZE91dCwgaW50ICpwaWQpCitnZXRfZXhlY19waXBlcyhjaGFyICpjbWQsIGludCAqZmRJbiwgaW50ICpmZE91dCwgbmV0c25tcF9waWRfdCAqcGlkKQogewogLyogCUFsZXhhbmRlciBQcsO2bWVsLCBhbGV4YW5kZXJAcHJvZW1lbC5kZSAwOC8yNC8yMDA2CiAJVGhlIGZvbGxvd2luZyBjb2RlLCBpcyB0ZXN0ZWQgb24gcGljb3R1eCByZXYuIDEuMDEuCkBAIC02MDQsNyArNjI3LDcgQEAKICAgICBERUJVR01TR1RMKCgidXRpbF9mdW5jcyIsImNoaWxkIGR3UHJvY2Vzc0lkICh0YXNrIG1hbmFnZXIpOiAlZFxuIiwoaW50KXBpLmR3UHJvY2Vzc0lkKSk7CiAKICAgICAvKiBTZXQgZ2xvYmFsIGNoaWxkIHByb2Nlc3MgaGFuZGxlICovCi0gICAgKnBpZCA9IChpbnQpcGkuaFByb2Nlc3M7CisgICAgKnBpZCA9IHBpLmhQcm9jZXNzOwogCiAgICAgLyogQ2xlYW51cCAqLwogICAgIGlmICghQ2xvc2VIYW5kbGUocGkuaFRocmVhZCkpCkBAIC02MzMsNiArNjU2LDcgQEAKICAgICByZXR1cm4gMDsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NMRUFSX0NBQ0hFCiBpbnQKIGNsZWFyX2NhY2hlKGludCBhY3Rpb24sCiAgICAgICAgICAgICB1X2NoYXIgKiB2YXJfdmFsLApAQCAtNjU1LDYgKzY3OSw3IEBACiAgICAgfQogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0xFQVJfQ0FDSEUgKi8KIAogdm9pZAogcHJpbnRfbWliX29pZChvaWQgbmFtZVtdLCBzaXplX3QgbGVuKQpAQCAtNjk1LDYgKzcyMCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZV9tZXRob2QsIG1heCkpOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfRklORF9GSUVMRAogY2hhciAgICAgICAgICAgKgogZmluZF9maWVsZChjaGFyICpwdHIsIGludCBmaWVsZCkKIHsKQEAgLTczNSw3ICs3NjEsOSBAQAogICAgIH0KICAgICByZXR1cm4gKE5VTEwpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfRklORF9GSUVMRCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUEFSU0VfTUlCT0lECiBpbnQKIHBhcnNlX21pYm9pZChjb25zdCBjaGFyICpidWYsIG9pZCAqIG9pZG91dCkKIHsKQEAgLTc1OSw3ICs3ODcsOSBAQAogICAgICAqLwogICAgIHJldHVybiBpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUEFSU0VfTUlCT0lEICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TVFJJTkdfQVBQRU5EX0lOVAogdm9pZAogc3RyaW5nX2FwcGVuZF9pbnQoY2hhciAqcywgaW50IHZhbCkKIHsKQEAgLTc3NCwxMyArODA0LDE2IEBACiAgICAgc3RyY3B5KHMsIHRleHRWYWwpOwogICAgIHJldHVybjsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NUUklOR19BUFBFTkRfSU5UICovCisKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JTlRFUk5BTF9NSUJfVEFCTEUKIAogc3RydWN0IGludGVybmFsX21pYl90YWJsZSB7CiAgICAgaW50ICAgICAgICAgICAgIG1heF9zaXplOyAgIC8qIFNpemUgb2YgdGhlIGN1cnJlbnQgZGF0YSB0YWJsZSAqLwogICAgIGludCAgICAgICAgICAgICBuZXh0X2luZGV4OyAvKiBJbmRleCBvZiB0aGUgbmV4dCBmcmVlIGVudHJ5ICovCiAgICAgaW50ICAgICAgICAgICAgIGN1cnJlbnRfaW5kZXg7ICAgICAgLyogSW5kZXggb2YgdGhlICdjdXJyZW50JyBlbnRyeSAqLwogICAgIGludCAgICAgICAgICAgICBjYWNoZV90aW1lb3V0OwotICAgIG1hcmtlcl90ICAgICAgICBjYWNoZV9tYXJrZXI7CisgICAgbWFya2VyX3QgICAgICAgIGNhY2hlX21hcmtlck07CiAgICAgUkVMT0FEICAgICAgICAgKnJlbG9hZDsgICAgIC8qIFJvdXRpbmUgdG8gcmVhZCBpbiB0aGUgZGF0YSAqLwogICAgIENPTVBBUkUgICAgICAgICpjb21wYXJlOyAgICAvKiBSb3V0aW5lIHRvIGNvbXBhcmUgdHdvIGVudHJpZXMgKi8KICAgICBpbnQgICAgICAgICAgICAgZGF0YV9zaXplOyAgLyogU2l6ZSBvZiBhbiBpbmRpdmlkdWFsIGVudHJ5ICovCkBAIC04MDEsNyArODM0LDcgQEAKICAgICB0LT5uZXh0X2luZGV4ID0gMTsgICAgICAgICAgLyogRG9uJ3QgdXNlIGluZGV4IDAgKi8KICAgICB0LT5jdXJyZW50X2luZGV4ID0gMTsKICAgICB0LT5jYWNoZV90aW1lb3V0ID0gdGltZW91dDsKLSAgICB0LT5jYWNoZV9tYXJrZXIgPSBOVUxMOworICAgIHQtPmNhY2hlX21hcmtlck0gPSBOVUxMOwogICAgIHQtPnJlbG9hZCA9IHJlbG9hZDsKICAgICB0LT5jb21wYXJlID0gY29tcGFyZTsKICAgICB0LT5kYXRhX3NpemUgPSBzaXplOwpAQCAtODIzLDggKzg1Niw5IEBACiAgICAgICogSWYgdGhlIHNhdmVkIGRhdGEgaXMgZmFpcmx5IHJlY2VudCwKICAgICAgKiAgICB3ZSBkb24ndCBuZWVkIHRvIHJlbG9hZCBpdAogICAgICAqLwotICAgIGlmICh0YWJsZS0+Y2FjaGVfbWFya2VyICYmCi0gICAgICAgICEoYXRpbWVfcmVhZHkodGFibGUtPmNhY2hlX21hcmtlciwgdGFibGUtPmNhY2hlX3RpbWVvdXQgKiAxMDAwKSkpCisgICAgaWYgKHRhYmxlLT5jYWNoZV9tYXJrZXJNICYmCisgICAgICAgICEobmV0c25tcF9yZWFkeV9tb25vdG9uaWModGFibGUtPmNhY2hlX21hcmtlck0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUtPmNhY2hlX3RpbWVvdXQgKiAxMDAwKSkpCiAgICAgICAgIHJldHVybiAxOwogCiAKQEAgLTgzNCwxNSArODY4LDEyIEBACiAgICAgICogTi5COiAgVXBkYXRlIHRoZSBjYWNoZSBtYXJrZXIgKmJlZm9yZSogY2FsbGluZwogICAgICAqICAgdGhpcyByb3V0aW5lLCB0byBhdm9pZCBwcm9ibGVtcyB3aXRoIHJlY3Vyc2lvbgogICAgICAqLwotICAgIGlmICghdGFibGUtPmNhY2hlX21hcmtlcikKLSAgICAgICAgdGFibGUtPmNhY2hlX21hcmtlciA9IGF0aW1lX25ld01hcmtlcigpOwotICAgIGVsc2UKLSAgICAgICAgYXRpbWVfc2V0TWFya2VyKHRhYmxlLT5jYWNoZV9tYXJrZXIpOworICAgIG5ldHNubXBfc2V0X21vbm90b25pY19tYXJrZXIoJnRhYmxlLT5jYWNoZV9tYXJrZXJNKTsKIAogICAgIHRhYmxlLT5uZXh0X2luZGV4ID0gMTsKICAgICBpZiAodGFibGUtPnJlbG9hZCgobWliX3RhYmxlX3QpIHRhYmxlKSA8IDApIHsKLSAgICAgICAgZnJlZSh0YWJsZS0+Y2FjaGVfbWFya2VyKTsKLSAgICAgICAgdGFibGUtPmNhY2hlX21hcmtlciA9IE5VTEw7CisgICAgICAgIGZyZWUodGFibGUtPmNhY2hlX21hcmtlck0pOworICAgICAgICB0YWJsZS0+Y2FjaGVfbWFya2VyTSA9IE5VTEw7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICB0YWJsZS0+Y3VycmVudF9pbmRleCA9IDE7CkBAIC05NTIsOCArOTgzLDExIEBACiAgICAgKm1heF9pZHggPSB0YWJsZS0+bmV4dF9pbmRleCAtIDE7CiAgICAgcmV0dXJuIHRhYmxlLT5kYXRhOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSU5URVJOQUxfTUlCX1RBQkxFICovCiAKICNpZiBkZWZpbmVkKEhBVkVfTElOVVhfUlRORVRMSU5LX0gpCisKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DUkVBVEVfUFJFRklYX0lORk8KIHByZWZpeF9jYnggKm5ldF9zbm1wX2NyZWF0ZV9wcmVmaXhfaW5mbyh1bnNpZ25lZCBsb25nIE9uTGlua0ZsYWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBBdXRvbm9tb3VzRmxhZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICppbjZwdHIpCkBAIC05NzQsNyArMTAwOCw5IEBACiAKICAgIHJldHVybiBub2RlOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ1JFQVRFX1BSRUZJWF9JTkZPICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9GSU5EX1BSRUZJWF9JTkZPCiBpbnQgbmV0X3NubXBfZmluZF9wcmVmaXhfaW5mbyhwcmVmaXhfY2J4ICoqaGVhZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmFkZHJlc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXhfY2J4ICpub2RlX3RvX2ZpbmQpCkBAIC05OTUsNyArMTAzMSw5IEBACiAgICAgfSBlbHNlCiAgICAgICAgcmV0dXJuIDA7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9GSU5EX1BSRUZJWF9JTkZPICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9VUERBVEVfUFJFRklYX0lORk8KIGludCBuZXRfc25tcF91cGRhdGVfcHJlZml4X2luZm8ocHJlZml4X2NieCAqKmhlYWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeF9jYnggKm5vZGVfdG9fdXBkYXRlKQogewpAQCAtMTAxMCw2ICsxMDQ4LDcgQEAKICAgICB9IGVsc2UKICAgICAgICByZXR1cm4gMDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1VQREFURV9QUkVGSVhfSU5GTyAqLwogCiBpbnQgbmV0X3NubXBfc2VhcmNoX3VwZGF0ZV9wcmVmaXhfaW5mbyhwcmVmaXhfY2J4ICoqaGVhZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeF9jYnggKm5vZGVfdG9fdXNlLApAQCAtMTA1OCw2ICsxMDk3LDcgQEAKICAgICB9CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9ERUxFVEVfUFJFRklYX0lORk8KIGludCBuZXRfc25tcF9kZWxldGVfcHJlZml4X2luZm8ocHJlZml4X2NieCAqKmhlYWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmFkZHJlc3MpCiB7CkBAIC0xMDgzLDUgKzExMjMsNyBAQAogICAgIH0KICAgICByZXR1cm4gMDsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfREVMRVRFX1BSRUZJWF9JTkZPICovCiAKKyNlbmRpZiAvKiBIQVZFX0xJTlVYX1JUTkVUTElOS19IICovCisgICAgICAgICAKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCBiL2FnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaAppbmRleCBkMTZiNmM0Li43ZjU5NzgwIDEwMDY0NAotLS0gYS9hZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgKKysrIGIvYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oCkBAIC00LDE1ICs0LDE0IEBACiAjaWZuZGVmIF9NSUJHUk9VUF9VVElMX0ZVTkNTX0gKICNkZWZpbmUgX01JQkdST1VQX1VUSUxfRlVOQ1NfSAogCi1jb25maWdfcmVxdWlyZSh1dGlsX2Z1bmNzL0V4aXQpCiBjb25maWdfcmVxdWlyZSh1dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljKQogY29uZmlnX3JlcXVpcmUodXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlKQotY29uZmlnX3JlcXVpcmUodXRpbF9mdW5jcy9yZXN0YXJ0KQogCi0jaW5jbHVkZSAidXRpbF9mdW5jcy9FeGl0LmgiCisjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2VuZGlmCiAjaW5jbHVkZSAidXRpbF9mdW5jcy9oZWFkZXJfZ2VuZXJpYy5oIgogI2luY2x1ZGUgInV0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5oIgotI2luY2x1ZGUgInV0aWxfZnVuY3MvcmVzdGFydC5oIgogCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIgewpAQCAtMzcsNyArMzYsMTEgQEAKIGludCAgICAgICAgICAgICBleGVjX2NvbW1hbmQoc3RydWN0IGV4dGVuc2libGUgKik7CiBzdHJ1Y3QgZXh0ZW5zaWJsZSAqZ2V0X2V4dGVuX2luc3RhbmNlKHN0cnVjdCBleHRlbnNpYmxlICosIHNpemVfdCk7CiBpbnQgICAgICAgICAgICAgZ2V0X2V4ZWNfb3V0cHV0KHN0cnVjdCBleHRlbnNpYmxlICopOwotaW50ICAgICAgICAgICAgIGdldF9leGVjX3BpcGVzKGNoYXIgKmNtZCwgaW50ICpmZEluLCBpbnQgKmZkT3V0LCBpbnQgKnBpZCk7CisjaWYgZGVmaW5lZChXSU4zMikgJiYgIWRlZmluZWQoY3lnd2luKQoraW50ICAgICAgICAgICAgIGdldF9leGVjX3BpcGVzKGNoYXIgKmNtZCwgaW50ICpmZEluLCBpbnQgKmZkT3V0LCBIQU5ETEUgKnBpZCk7CisjZWxzZQoraW50ICAgICAgICAgICAgIGdldF9leGVjX3BpcGVzKGNoYXIgKmNtZCwgaW50ICpmZEluLCBpbnQgKmZkT3V0LCBwaWRfdCAqcGlkKTsKKyNlbmRpZgogV3JpdGVNZXRob2QgICAgIGNsZWFyX2NhY2hlOwogdm9pZCAgICAgICAgICAgIHByaW50X21pYl9vaWQob2lkICosIHNpemVfdCk7CiB2b2lkICAgICAgICAgICAgc3ByaW50X21pYl9vaWQoY2hhciAqLCBjb25zdCBvaWQgKiwgc2l6ZV90KTsKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmMgYi9hZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jCmluZGV4IDFjOTQxYjMuLjhlMTU3YWUgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYwpAQCAtMjIsMjkgKzIyLDEwNiBAQAogIyBkZWZpbmUgU09DS0VUX1RZUEVfMSAgICAgICJzb2NrZXQ6WyIKICMgZGVmaW5lIFNPQ0tFVF9UWVBFXzIgICAgICAiWzAwMDBdOiIKIAotcGlkX3QKLW5ldHNubXBfZ2V0X3BpZF9mcm9tX2lub2RlKGlubzY0X3QgaW5vZGUpCisvKiBEZWZpbml0aW9uIG9mIGEgc2ltcGxlIG9wZW4gYWRkcmVzc2luZyBoYXNoIHRhYmxlLiovCisvKiBXaGVuIGlub2RlID09IDAgdGhlbiB0aGUgZW50cnkgaXMgZW1wdHkuKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICBpbm82NF90IGlub2RlOworICAgIHBpZF90ICAgcGlkOworfSBpbm9kZV9waWRfZW50X3Q7CisKKyNkZWZpbmUgSU5PREVfUElEX1RBQkxFX01BWF9DT0xMSVNJT05TIDEwMDAKKyNkZWZpbmUgSU5PREVfUElEX1RBQkxFX0xFTkdUSCAyMDAwMAorI2RlZmluZSBJTk9ERV9QSURfVEFCTEVfU0laRSAoSU5PREVfUElEX1RBQkxFX0xFTkdUSCAqIHNpemVvZiAoaW5vZGVfcGlkX2VudF90KSkKK3N0YXRpYyBpbm9kZV9waWRfZW50X3QgIGlub2RlX3BpZF90YWJsZVtJTk9ERV9QSURfVEFCTEVfTEVOR1RIXTsKKworc3RhdGljIHVpbnQzMl90CitfaGFzaCh1aW50NjRfdCBrZXkpCit7CisgICAga2V5ID0gKH5rZXkpICsgKGtleSA8PCAxOCk7CisgICAga2V5ID0ga2V5IF4gKGtleSA+PiAzMSk7CisgICAga2V5ID0ga2V5ICogMjE7CisgICAga2V5ID0ga2V5IF4gKGtleSA+PiAxMSk7CisgICAga2V5ID0ga2V5ICsgKGtleSA8PCA2KTsKKyAgICBrZXkgPSBrZXkgXiAoa2V5ID4+IDIyKTsKKyAgICByZXR1cm4ga2V5OworfQorCitzdGF0aWMgdm9pZAorX2NsZWFyKHZvaWQpCit7CisgICAgLyogQ2xlYXIgdGhlIGlub2RlL3BpZCBoYXNoIHRhYmxlLiovCisgICAgbWVtc2V0KGlub2RlX3BpZF90YWJsZSwgMCwgSU5PREVfUElEX1RBQkxFX1NJWkUpOworfQorCitzdGF0aWMgdm9pZAorX3NldChpbm82NF90IGlub2RlLCBwaWRfdCBwaWQpCit7CisgICAgdWludDMyX3QgICAgICAgIGhhc2ggPSBfaGFzaChpbm9kZSk7CisgICAgdWludDMyX3QgICAgICAgIGk7CisgICAgaW5vZGVfcGlkX2VudF90ICplbnRyeTsKKworICAgIC8qIFdlIHdpbGwgdHJ5IGZvciBhIG1heGltdW0gbnVtYmVyIG9mIGNvbGxpc2lvbnMuKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgSU5PREVfUElEX1RBQkxFX01BWF9DT0xMSVNJT05TOyBpKyspIHsKKyAgICAgICAgZW50cnkgPSAmaW5vZGVfcGlkX3RhYmxlWyhoYXNoICsgaSkgJSBJTk9ERV9QSURfVEFCTEVfTEVOR1RIXTsKKworICAgICAgICAvKiBDaGVjayBpZiB0aGlzIGVudHJ5IGlzIGVtcHR5LCBvciB0aGUgYWN0dWFsIGlub2RlIHdlIHdlcmUgbG9va2luZyBmb3IuKi8KKyAgICAgICAgLyogVGhlIHNlY29uZCBwYXJ0IHNob3VsZCBuZXZlciBoYXBwZW4sIGJ1dCBpdCBpcyBoZXJlIGZvciBjb21wbGV0ZW5lc3MuKi8KKyAgICAgICAgaWYgKGVudHJ5LT5pbm9kZSA9PSAwIHx8IGVudHJ5LT5pbm9kZSA9PSBpbm9kZSkgeworICAgICAgICAgICAgZW50cnktPmlub2RlID0gaW5vZGU7CisgICAgICAgICAgICBlbnRyeS0+cGlkID0gcGlkOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgLyogV2Ugd2lsbCBzaWxlbnRseSBmYWlsIHRvIGluc2VydCB0aGUgaW5vZGUgaWYgd2UgZ2V0IHRvbyBtYW55IGNvbGxpc2lvbnMuKi8KKyAgICAvKiB0aGUgX2dldCBmdW5jdGlvbiB3aWxsIHJldHVybiBhIHplcm8gcGlkLiovCit9CisKK3N0YXRpYyBwaWRfdCBfZ2V0KGlubzY0X3QgaW5vZGUpCit7CisgICAgdWludDMyX3QgICAgICAgIGhhc2ggPSBfaGFzaChpbm9kZSk7CisgICAgdWludDMyX3QgICAgICAgIGk7CisgICAgaW5vZGVfcGlkX2VudF90ICplbnRyeTsKKworICAgIC8qIFdlIHdpbGwgdHJ5IGZvciBhIG1heGltdW0gbnVtYmVyIG9mIGNvbGxpc2lvbnMuKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgSU5PREVfUElEX1RBQkxFX01BWF9DT0xMSVNJT05TOyBpKyspIHsKKyAgICAgICAgZW50cnkgPSAmaW5vZGVfcGlkX3RhYmxlWyhoYXNoICsgaSkgJSBJTk9ERV9QSURfVEFCTEVfTEVOR1RIXTsKKworICAgICAgICAvKiBDaGVjayBpZiB0aGlzIGVudHJ5IGlzIGVtcHR5LCBvciB0aGUgYWN0dWFsIGlub2RlIHdlIHdlcmUgbG9va2luZyBmb3IuKi8KKyAgICAgICAgLyogSWYgdGhlIGVudHJ5IGlzIGVtcHR5IGl0IG1lYW5zIHRoZSBpbm9kZSBpcyBub3QgaW4gdGhlIHRhYmxlIGFuZCB3ZSovCisgICAgICAgIC8qIHNob3VsZCByZXR1cm4gMCwgdGhlIGVudHJ5IHdpbGwgYWxzbyBoYXZlIGEgemVybyBwaWQuKi8KKyAgICAgICAgaWYgKGVudHJ5LT5pbm9kZSA9PSAwIHx8IGVudHJ5LT5pbm9kZSA9PSBpbm9kZSkgeworICAgICAgICAgICAgcmV0dXJuIGVudHJ5LT5waWQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBXZSBjb3VsZCBub3QgZmluZCB0aGUgcGlkLiovCisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQKK25ldHNubXBfZ2V0X3BpZF9mcm9tX2lub2RlX2luaXQodm9pZCkKIHsKICAgICBESVIgICAgICAgICAgICAqcHJvY2RpcnMgPSBOVUxMLCAqcGlkZGlycyA9IE5VTEw7CiAgICAgY2hhciAgICAgICAgICAgIHBhdGhfbmFtZVtQQVRIX01BWCArIDFdOwogICAgIGNoYXIgICAgICAgICAgICBzb2NrZXRfbG5rW05BTUVfTUFYICsgMV07Ci0gICAgaW50ICAgICAgICAgICAgIGZpbGVsZW4gPSAwLCByZWFkbGVuID0gMCwgaWZsYWcgPSAwOworICAgIGludCAgICAgICAgICAgICBmaWxlbGVuID0gMCwgcmVhZGxlbiA9IDA7CiAgICAgc3RydWN0IGRpcmVudCAgKnByb2NpbmZvLCAqcGlkaW5mbzsKICAgICBwaWRfdCAgICAgICAgICAgcGlkID0gMDsKICAgICBpbm82NF90ICAgICAgICAgdGVtcF9pbm9kZTsKIAotICAgIGlmIChpbm9kZSA9PSAwKSB7Ci0gICAgICAgIC8qIGFuIGlub2RlIHNldCB0byB6ZXJvIG1lYW5zIGl0IGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggYSBwcm9jZXNzLiAqLwotICAgICAgICByZXR1cm4gMDsKLSAgICB9CisgICAgX2NsZWFyKCk7CiAKKyAgICAvKiB3YWxrIG92ZXIgYWxsIGRpcmVjdG9yaWVzIGluIC9wcm9jKi8KICAgICBpZiAoIShwcm9jZGlycyA9IG9wZW5kaXIoUFJPQ19QQVRIKSkpIHsKICAgICAgICAgTkVUU05NUF9MT0dPTkNFKChMT0dfRVJSLCAic25tcGQ6IGNhbm5vdCBvcGVuIC9wcm9jXG4iKSk7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgd2hpbGUgKChwcm9jaW5mbyA9IHJlYWRkaXIocHJvY2RpcnMpKSAhPSBOVUxMKSB7Ci0JY29uc3QgY2hhciogbmFtZSA9IHByb2NpbmZvLT5kX25hbWU7CisgICAgICAgIGNvbnN0IGNoYXIqIG5hbWUgPSBwcm9jaW5mby0+ZF9uYW1lOworCisgICAgICAgIC8qIEEgcGlkIGRpcmVjdG9yeSBvbmx5IGNvbnRhaW5zIGRpZ2l0cywgY2hlY2sgZm9yIHRob3NlLiovCiAgICAgICAgIGZvciAoOyAqbmFtZTsgbmFtZSsrKSB7CiAgICAgICAgICAgICBpZiAoIWlzZGlnaXQoKm5hbWUpKQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTIsMTQgKzEyOSwxNiBAQAogICAgICAgICBpZigqbmFtZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgIC8qIENyZWF0ZSB0aGUgL3Byb2MvPHBpZD4vZmQvIHBhdGggbmFtZS4qLwogICAgICAgICBtZW1zZXQocGF0aF9uYW1lLCAnXDAnLCBQQVRIX01BWCArIDEpOwogICAgICAgICBmaWxlbGVuID0gc25wcmludGYocGF0aF9uYW1lLCBQQVRIX01BWCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST0NfUEFUSCAiLyVzL2ZkLyIsIHByb2NpbmZvLT5kX25hbWUpOwogICAgICAgICBpZiAoZmlsZWxlbiA8PSAwIHx8IFBBVEhfTUFYIDwgZmlsZWxlbikKICAgICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgIC8qIHdhbGsgb3ZlciBhbGwgdGhlIGZpbGVzIGluIC9wcm9jLzxwaWQ+L2ZkLyovCiAgICAgICAgIGlmICghKHBpZGRpcnMgPSBvcGVuZGlyKHBhdGhfbmFtZSkpKQotICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIHdoaWxlICgocGlkaW5mbyA9IHJlYWRkaXIocGlkZGlycykpICE9IE5VTEwpIHsKICAgICAgICAgICAgIGlmIChmaWxlbGVuICsgc3RybGVuKHBpZGluZm8tPmRfbmFtZSkgPiBQQVRIX01BWCkKQEAgLTY3LDI5ICsxNDYsNDEgQEAKIAogICAgICAgICAgICAgc3RyY3B5KHBhdGhfbmFtZSArIGZpbGVsZW4sIHBpZGluZm8tPmRfbmFtZSk7CiAKKyAgICAgICAgICAgIC8qIFRoZSBmaWxlIGRpc2NyaXB0b3IgaXMgYSBzeW1ib2xpYyBsaW5rIHRvIGEgc29ja2V0IG9yIGEgZmlsZS4qLworICAgICAgICAgICAgLyogVGh1cyByZWFkIHRoZSBzeW1ib2xpYyBsaW5rLiovCiAgICAgICAgICAgICBtZW1zZXQoc29ja2V0X2xuaywgJ1wwJywgTkFNRV9NQVggKyAxKTsKICAgICAgICAgICAgIHJlYWRsZW4gPSByZWFkbGluayhwYXRoX25hbWUsIHNvY2tldF9sbmssIE5BTUVfTUFYKTsKICAgICAgICAgICAgIGlmIChyZWFkbGVuIDwgMCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKKwogICAgICAgICAgICAgc29ja2V0X2xua1tyZWFkbGVuXSA9ICdcMCc7CiAKKyAgICAgICAgICAgIC8qIENoZWNrIGlmIHRvIHNlZSBpZiB0aGUgZmlsZSBkZXNjcmlwdG9yIGlzIGEgc29ja2V0IGJ5IGNvbXBhcmluZyovCisgICAgICAgICAgICAvKiB0aGUgc3RhcnQgdG8gYSBzdHJpbmcuIEFsc28gZXh0cmFjdCB0aGUgaW5vZGUgbnVtYmVyIGZyb20gdGhpcyovCisgICAgICAgICAgICAvKiBzeW1ib2xpYyBsaW5rLiovCiAgICAgICAgICAgICBpZiAoIXN0cm5jbXAoc29ja2V0X2xuaywgU09DS0VUX1RZUEVfMSwgOCkpIHsKICAgICAgICAgICAgICAgICB0ZW1wX2lub2RlID0gc3RydG91bGwoc29ja2V0X2xuayArIDgsIE5VTEwsIDApOwogICAgICAgICAgICAgfSBlbHNlIGlmICghc3RybmNtcChzb2NrZXRfbG5rLCBTT0NLRVRfVFlQRV8yLCA3KSkgewogICAgICAgICAgICAgICAgIHRlbXBfaW5vZGUgPSBzdHJ0b3VsbChzb2NrZXRfbG5rICsgNywgTlVMTCwgMCk7Ci0gICAgICAgICAgICB9IGVsc2UKLQkJdGVtcF9pbm9kZSA9IDA7Ci0gICAgICAgICAgICBpZiAoaW5vZGUgPT0gdGVtcF9pbm9kZSkgeworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0ZW1wX2lub2RlID0gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogQWRkIHRoZSBpbm9kZS9waWQgY29tYmluYXRpb24gdG8gb3VyIGhhc2ggdGFibGUuKi8KKyAgICAgICAgICAgIGlmICh0ZW1wX2lub2RlICE9IDApIHsKICAgICAgICAgICAgICAgICBwaWQgPSBzdHJ0b3VsKHByb2NpbmZvLT5kX25hbWUsIE5VTEwsIDApOwotICAgICAgICAgICAgICAgIGlmbGFnID0gMTsKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBfc2V0KHRlbXBfaW5vZGUsIHBpZCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgY2xvc2VkaXIocGlkZGlycyk7Ci0gICAgICAgIGlmIChpZmxhZyA9PSAxKQotICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGlmIChwcm9jZGlycykKICAgICAgICAgY2xvc2VkaXIocHJvY2RpcnMpOwotICAgIHJldHVybiBwaWQ7CiB9CisKK3BpZF90CituZXRzbm1wX2dldF9waWRfZnJvbV9pbm9kZShpbm82NF90IGlub2RlKQoreworICAgIHJldHVybiBfZ2V0KGlub2RlKTsKK30KKwpkaWZmIC0tZ2l0IGEvYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuaCBiL2FnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmgKaW5kZXggMmFkMDRlMS4uN2M1ODc2MCAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuaAorKysgYi9hZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KIAordm9pZCBuZXRzbm1wX2dldF9waWRfZnJvbV9pbm9kZV9pbml0KHZvaWQpOwogcGlkX3QgbmV0c25tcF9nZXRfcGlkX2Zyb21faW5vZGUoaW5vNjRfdCk7CiAKICNlbmRpZiAvKiBORVRTTk1QX01JQkdST1VQX1VUSUxfRlVOQ1NfSEVBREVSX1NJTVBMRV9UQUJMRV9IICovCmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMgYi9hZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMKaW5kZXggM2JlZWJjNi4uODYwNTkwZiAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jCisrKyBiL2FnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYwpAQCAtMSw5ICsxLDE5IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg+CiAKICNpbmNsdWRlICJ1dGlsaXRpZXMvaXF1ZXJ5LmgiCiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpcXVlcnlfYWxsLCBsaWJuZXRzbm1wbWlicykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihpcXVlcnksIGlxdWVyeV9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoaXF1ZXJ5X2NvbW11bml0eV9zZXNzaW9uLCBpcXVlcnlfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGlxdWVyeV9wZHVfc2Vzc2lvbiwgaXF1ZXJ5X2FsbCkKKworbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUocXVlcnlfc2V0X2RlZmF1bHRfc2Vzc2lvbikKKworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lRVUVSWQorCiB2b2lkCiBuZXRzbm1wX3BhcnNlX2lxdWVyeVNlY0xldmVsKGNvbnN0IGNoYXIgKnRva2VuLCBjaGFyICpsaW5lKQogewpAQCAtMTIwLDYgKzEzMCw3IEBACiAgICAgICoKICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUVVFUllfUERVX1NFU1NJT04KIG5ldHNubXBfc2Vzc2lvbiAqbmV0c25tcF9pcXVlcnlfcGR1X3Nlc3Npb24obmV0c25tcF9wZHUqIHBkdSkgewogICAgIGlmICghcGR1KQogICAgICAgIHJldHVybiBOVUxMOwpAQCAtMTM4LDYgKzE0OSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZHUtPnNlY3VyaXR5RW5naW5lSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZHUtPnNlY3VyaXR5RW5naW5lSURMZW4pOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVFVRVJZX1BEVV9TRVNTSU9OICovCiAKIG5ldHNubXBfc2Vzc2lvbiAqbmV0c25tcF9pcXVlcnlfdXNlcl9zZXNzaW9uKGNoYXIqIHNlY05hbWUpewogICAgIHVfY2hhciBlSURbU05NUF9NQVhCVUZfU01BTExdOwpAQCAtMTQ5LDYgKzE2MSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTk1QX1NFQ19MRVZFTF9BVVRITk9QUklWLCBlSUQsIGVsZW4pOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVFVRVJZX0NPTU1VTklUWV9TRVNTSU9OCiBuZXRzbm1wX3Nlc3Npb24gKm5ldHNubXBfaXF1ZXJ5X2NvbW11bml0eV9zZXNzaW9uKCBjaGFyKiBjb21tdW5pdHksIGludCB2ZXJzaW9uICkgeyAKICAgICB1X2NoYXIgZUlEW1NOTVBfTUFYQlVGX1NNQUxMXTsKICAgICBzaXplX3QgZWxlbiA9IHNubXB2M19nZXRfZW5naW5lSUQoZUlELCBzaXplb2YoZUlEKSk7CkBAIC0xNTYsNiArMTY5LDcgQEAKICAgICByZXR1cm4gbmV0c25tcF9pcXVlcnlfc2Vzc2lvbiggY29tbXVuaXR5LCB2ZXJzaW9uLCB2ZXJzaW9uKzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTk1QX1NFQ19MRVZFTF9OT0FVVEgsIGVJRCwgZWxlbik7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9JUVVFUllfQ09NTVVOSVRZX1NFU1NJT04gKi8KIAogbmV0c25tcF9zZXNzaW9uICpuZXRzbm1wX2lxdWVyeV9zZXNzaW9uKGNoYXIqIHNlY05hbWUsICAgaW50ICAgdmVyc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICBzZWNNb2RlbCwgIGludCAgIHNlY0xldmVsLApAQCAtMTkyLDMgKzIwNiw3IEBACiAgICAgcmV0dXJuIHNzOwogfQogCisjZWxzZSAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0lRVUVSWSAqLworbmV0c25tcF9mZWF0dXJlX3VudXNlZChpcXVlcnkpOworI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfSVFVRVJZICovCisKZGlmZiAtLWdpdCBhL2FnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jIGIvYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMKaW5kZXggZDUwYjZlNC4uNDhhYzI4MSAxMDA2NDQKLS0tIGEvYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMKKysrIGIvYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMKQEAgLTUwLDYgKzUwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1X2NoYXIgKikgZGF0YS0+dmFsdWUsIGRhdGEtPnZhbHVlX2xlbik7CiAgICAgICAgIGJyZWFrOwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CiAgICAgICAgIGlmIChyZXF1ZXN0cy0+cmVxdWVzdHZiLT50eXBlICE9IGRhdGEtPnR5cGUpCiAgICAgICAgICAgICBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yKHJlcWluZm8sIHJlcXVlc3RzLCBTTk1QX0VSUl9XUk9OR1RZUEUpOwpAQCAtODcsNiArODgsNyBAQAogICAgIGNhc2UgTU9ERV9TRVRfQ09NTUlUOgogICAgICAgICBTTk1QX0ZSRUUoZGF0YS0+c2V0X3NwYWNlKTsKICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAgICAgZGVmYXVsdDoKICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgInVuc3VwcG9ydGVkIG1vZGUgaW4gb3ZlcnJpZGUgaGFuZGxlclxuIik7CmRpZmYgLS1naXQgYS9hZ2VudC9taWJncm91cC93aW5FeHRETEwuYyBiL2FnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jCmluZGV4IGQ3OGMxODUuLmY0NGY4NGYgMTAwNjQ0Ci0tLSBhL2FnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jCisrKyBiL2FnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jCkBAIC04Miw2ICs4Miw3IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaD4KIAogI2lmZGVmIFVTSU5HX1dJTkVYVERMTF9NT0RVTEUKQEAgLTEwMSw2ICsxMDIsOCBAQAogI2luY2x1ZGUgInV0aWxfZnVuY3MuaCIKICNpbmNsdWRlICJ3aW5FeHRETEwuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUob2lkX2lzX3N1YnRyZWUpCisKIAogI2RlZmluZSBNQVhfVkFMVUVfTkFNRSAgICAgICAgICAxNjM4MwogI2RlZmluZSBNU19BU05fVUlOVEVHRVIzMiBNU19BU05fVU5TSUdORUQzMgpAQCAtNzUzLDYgKzc1Niw3OSBAQAogICAgIHJldHVybiBOVUxMOwogfQogCisvKgorICogVHJhbnNsYXRlIE5ldC1TTk1QIHJlcXVlc3QgbW9kZSBpbnRvIGFuIFNubXBFeHRlbnNpb25RdWVyeSgpIFBEVSB0eXBlCisgKiBvciBpbnRvIGFuIFNubXBFeHRlbnNpb25RdWVyeUV4KCkgcmVxdWVzdCB0eXBlLgorICovCitzdGF0aWMgaW50CitnZXRfcmVxdWVzdF90eXBlKGludCBtb2RlLCBpbnQgcmVxdWVzdF90eXBlLCBVSU5UICpuUmVxdWVzdFR5cGUpCit7CisgICAgc3dpdGNoIChyZXF1ZXN0X3R5cGUpIHsKKyAgICBjYXNlIDA6CisgICAgICAgIC8qIFNubXBFeHRlbnNpb25RdWVyeSgpIFBEVSB0eXBlICovCisgICAgICAgIHN3aXRjaCAobW9kZSkgeworICAgICAgICBjYXNlIE1PREVfR0VUOgorICAgICAgICAgICAgKm5SZXF1ZXN0VHlwZSA9IFNOTVBfUERVX0dFVDsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBjYXNlIE1PREVfR0VUTkVYVDoKKyAgICAgICAgICAgICpuUmVxdWVzdFR5cGUgPSBTTk1QX1BEVV9HRVRORVhUOworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgY2FzZSBNT0RFX1NFVF9SRVNFUlZFMjoKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBjYXNlIE1PREVfU0VUX0FDVElPTjoKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBjYXNlIE1PREVfU0VUX1VORE86CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgY2FzZSBNT0RFX1NFVF9DT01NSVQ6CisgICAgICAgICAgICAqblJlcXVlc3RUeXBlID0gU05NUF9QRFVfU0VUOworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGNhc2UgTU9ERV9TRVRfRlJFRToKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgREVCVUdNU0coKCJ3aW5FeHRETEwiLCAiaW50ZXJuYWwgZXJyb3I6IGludmFsaWQgbW9kZSAlZC5cbiIsIG1vZGUpKTsKKyAgICAgICAgICAgIG5ldHNubXBfYXNzZXJ0KDApOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICBjYXNlIDE6CisgICAgICAgIC8qIFNubXBFeHRlbnNpb25RdWVyeUV4KCkgcmVxdWVzdCB0eXBlICovCisgICAgICAgIHN3aXRjaCAobW9kZSkgeworICAgICAgICBjYXNlIE1PREVfR0VUOgorICAgICAgICAgICAgKm5SZXF1ZXN0VHlwZSA9IFNOTVBfRVhURU5TSU9OX0dFVDsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBjYXNlIE1PREVfR0VUTkVYVDoKKyAgICAgICAgICAgICpuUmVxdWVzdFR5cGUgPSBTTk1QX0VYVEVOU0lPTl9HRVRfTkVYVDsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBjYXNlIE1PREVfU0VUX1JFU0VSVkUxOgorICAgICAgICAgICAgKm5SZXF1ZXN0VHlwZSA9IFNOTVBfRVhURU5TSU9OX1NFVF9URVNUOworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTI6CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgY2FzZSBNT0RFX1NFVF9BQ1RJT046CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgY2FzZSBNT0RFX1NFVF9VTkRPOgorICAgICAgICAgICAgKm5SZXF1ZXN0VHlwZSA9IFNOTVBfRVhURU5TSU9OX1NFVF9VTkRPOworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGNhc2UgTU9ERV9TRVRfQ09NTUlUOgorICAgICAgICAgICAgKm5SZXF1ZXN0VHlwZSA9IFNOTVBfRVhURU5TSU9OX1NFVF9DT01NSVQ7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgY2FzZSBNT0RFX1NFVF9GUkVFOgorICAgICAgICAgICAgKm5SZXF1ZXN0VHlwZSA9IFNOTVBfRVhURU5TSU9OX1NFVF9DTEVBTlVQOworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBERUJVR01TRygoIndpbkV4dERMTCIsICJpbnRlcm5hbCBlcnJvcjogaW52YWxpZCBtb2RlICVkLlxuIiwgbW9kZSkpOworICAgICAgICAgICAgbmV0c25tcF9hc3NlcnQoMCk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIERFQlVHTVNHKCgid2luRXh0RExMIiwgImludGVybmFsIGVycm9yOiBpbnZhbGlkIGFyZ3VtZW50ICVkLlxuIiwKKyAgICAgICAgICAgICAgICAgIHJlcXVlc3RfdHlwZSkpOworICAgICAgICBuZXRzbm1wX2Fzc2VydCgwKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfQorCiBzdGF0aWMgaW50CiB2YXJfd2luRXh0RExMKG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIsCiAgICAgICAgICAgICAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKnJlZ2luZm8sCkBAIC03NzksMzUgKzg1NSw4IEBACiAgICAgICAgIHJldHVybiBTTk1QX0VSUl9HRU5FUlI7CiAgICAgfQogCi0gICAgc3dpdGNoIChyZXFpbmZvLT5tb2RlKSB7Ci0gICAgY2FzZSBNT0RFX0dFVDoKLSAgICAgICAgblJlcXVlc3RUeXBlID0gU05NUF9FWFRFTlNJT05fR0VUOwotICAgICAgICBuZXRzbm1wX2Fzc2VydCghY29udGV4dF9pbmZvX2hlYWQpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIE1PREVfR0VUTkVYVDoKLSAgICAgICAgblJlcXVlc3RUeXBlID0gU05NUF9FWFRFTlNJT05fR0VUX05FWFQ7Ci0gICAgICAgIG5ldHNubXBfYXNzZXJ0KCFjb250ZXh0X2luZm9faGVhZCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTU9ERV9TRVRfUkVTRVJWRTE6Ci0gICAgICAgIG5SZXF1ZXN0VHlwZSA9IFNOTVBfRVhURU5TSU9OX1NFVF9URVNUOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIE1PREVfU0VUX1JFU0VSVkUyOgotICAgICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKLSAgICBjYXNlIE1PREVfU0VUX0FDVElPTjoKLSAgICAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7Ci0gICAgY2FzZSBNT0RFX1NFVF9VTkRPOgotICAgICAgICBuUmVxdWVzdFR5cGUgPSBTTk1QX0VYVEVOU0lPTl9TRVRfVU5ETzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNT0RFX1NFVF9DT01NSVQ6Ci0gICAgICAgIG5SZXF1ZXN0VHlwZSA9IFNOTVBfRVhURU5TSU9OX1NFVF9DT01NSVQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTU9ERV9TRVRfRlJFRToKLSAgICAgICAgblJlcXVlc3RUeXBlID0gU05NUF9FWFRFTlNJT05fU0VUX0NMRUFOVVA7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIERFQlVHTVNHKCgid2luRXh0RExMIiwKLSAgICAgICAgICAgICAgICAgICJpbnRlcm5hbCBlcnJvcjogaW52YWxpZCBtb2RlICVkLlxuIiwgcmVxaW5mby0+bW9kZSkpOwotICAgICAgICBuZXRzbm1wX2Fzc2VydCgwKTsKKyAgICBpZiAoIWdldF9yZXF1ZXN0X3R5cGUocmVxaW5mby0+bW9kZSwgISFleHRfZGxsX2luZm8tPnBmU25tcEV4dGVuc2lvblF1ZXJ5RXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZuUmVxdWVzdFR5cGUpKSB7CiAgICAgICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvYWdlbnQvc25tcF9hZ2VudC5jIGIvYWdlbnQvc25tcF9hZ2VudC5jCmluZGV4IDA5NDY0MjMuLmI5NmQ2NTAgMTAwNjQ0Ci0tLSBhL2FnZW50L3NubXBfYWdlbnQuYworKysgYi9hZ2VudC9zbm1wX2FnZW50LmMKQEAgLTQ0LDYgKzQ0LDcgQEAKICAqIEB7CiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaWZkZWYgSEFWRV9MSU1JVFNfSApAQCAtMTA3LDYgKzEwOCwyNSBAQAogI2luY2x1ZGUgInNtdXgvc211eC5oIgogI2VuZGlmCiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzbm1wX2FnZW50LCBsaWJuZXRzbm1wYWdlbnQpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoYWdlbnRfZGVidWdnaW5nX3V0aWxpdGllcywgbGlibmV0c25tcGFnZW50KQorCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoYWxsb2NhdGVfZ2xvYmFsY2FjaGVpZCwgc25tcF9hZ2VudCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihmcmVlX2FnZW50X3NubXBfc2Vzc2lvbl9ieV9zZXNzaW9uLCBzbm1wX2FnZW50KQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGNoZWNrX2FsbF9yZXF1ZXN0c19lcnJvciwgc25tcF9hZ2VudCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjaGVja19yZXF1ZXN0c19lcnJvciwgc25tcF9hZ2VudCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihyZXF1ZXN0X3NldF9lcnJvcl9pZHgsIHNubXBfYWdlbnQpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yoc2V0X2FnZW50X3VwdGltZSwgc25tcF9hZ2VudCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihhZ2VudF9jaGVja19hbmRfcHJvY2Vzcywgc25tcF9hZ2VudCkKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGR1bXBfc2Vzc19saXN0LCBhZ2VudF9kZWJ1Z2dpbmdfdXRpbGl0aWVzKQorCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoYWdlbnRfcmVtb3ZlX2xpc3RfZGF0YSwgbmV0c25tcF91bnVzZWQpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yoc2V0X2FsbF9yZXF1ZXN0c19lcnJvciwgbmV0c25tcF91bnVzZWQpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoYWRkcmNhY2hlX2FnZSwgbmV0c25tcF91bnVzZWQpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoZGVsZXRlX3N1YnRyZWVfY2FjaGUsIG5ldHNubXBfdW51c2VkKQorCisKIE5FVFNOTVBfSU5MSU5FIHZvaWQKIG5ldHNubXBfYWdlbnRfYWRkX2xpc3RfZGF0YShuZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mbyAqYXJpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfZGF0YV9saXN0ICpub2RlKQpAQCAtMTIwLDYgKzE0MCw3IEBACiAgICAgfQogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQUdFTlRfUkVNT1ZFX0xJU1RfREFUQQogTkVUU05NUF9JTkxJTkUgaW50CiBuZXRzbm1wX2FnZW50X3JlbW92ZV9saXN0X2RhdGEobmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm8gKmFyaSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICogbmFtZSkKQEAgLTEyOSw2ICsxNTAsNyBAQAogCiAgICAgcmV0dXJuIG5ldHNubXBfcmVtb3ZlX2xpc3Rfbm9kZSgmYXJpLT5hZ2VudF9kYXRhLCBuYW1lKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0FHRU5UX1JFTU9WRV9MSVNUX0RBVEEgKi8KIAogTkVUU05NUF9JTkxJTkUgdm9pZCAgICAqCiBuZXRzbm1wX2FnZW50X2dldF9saXN0X2RhdGEobmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm8gKmFyaSwKQEAgLTE4MSw3ICsyMDMsNyBAQAogc3RydWN0IGFkZHJDYWNoZSB7CiAgICAgY2hhciAgICAgICAgICAgKmFkZHI7CiAgICAgaW50ICAgICAgICAgICAgc3RhdHVzOwotICAgIHN0cnVjdCB0aW1ldmFsIGxhc3RIaXQ7CisgICAgc3RydWN0IHRpbWV2YWwgbGFzdEhpdE07CiB9OwogCiBzdGF0aWMgc3RydWN0IGFkZHJDYWNoZSBhZGRyQ2FjaGVbU05NUF9BRERSQ0FDSEVfU0laRV07CkBAIC0yMjcsMTEgKzI0OSwxMyBAQAogCiBpbnQgICAgICBuZXRzbm1wX3J1bm5pbmcgPSAxOwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQUxMT0NBVEVfR0xPQkFMQ0FDSEVJRAogaW50CiBuZXRzbm1wX2FsbG9jYXRlX2dsb2JhbGNhY2hlaWQodm9pZCkKIHsKICAgICByZXR1cm4gKytjdXJyZW50X2dsb2JhbGlkOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQUxMT0NBVEVfR0xPQkFMQ0FDSEVJRCAqLwogCiBpbnQKIG5ldHNubXBfZ2V0X2xvY2FsX2NhY2hpZChuZXRzbm1wX2NhY2hlbWFwICpjYWNoZV9zdG9yZSwgaW50IGdsb2JhbGlkKQpAQCAtNTk0LDE1ICs2MTgsNyBAQAogICAgIH0KIH0KIAotCi1pbnQKLWdldE5leHRTZXNzSUQodm9pZCkKLXsKLSAgICBzdGF0aWMgaW50ICAgICAgU2Vzc2lvbklEID0gMDsKLQotICAgIHJldHVybiArK1Nlc3Npb25JRDsKLX0KLQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0FHRU5UX0NIRUNLX0FORF9QUk9DRVNTCiAvKioKICAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGZvciBwYWNrZXRzIGFycml2aW5nIG9uIHRoZSBTTk1QIHBvcnQgYW5kCiAgKiBwcm9jZXNzZXMgdGhlbShzbm1wX3JlYWQpIGlmIHNvbWUgYXJlIGZvdW5kLCB1c2luZyB0aGUgc2VsZWN0KCkuIElmIGJsb2NrCkBAIC02ODUsNyArNzAxLDcgQEAKIAogICAgIHJldHVybiBjb3VudDsKIH0KLQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQUdFTlRfQ0hFQ0tfQU5EX1BST0NFU1MgKi8KIAogLyoKICAqIFNldCB1cCB0aGUgYWRkcmVzcyBjYWNoZS4gIApAQCAtNzQxLDcgKzc1Nyw3IEBACiAgICAgLyoKICAgICAgKiBGaXJzdCBnZXQgdGhlIGN1cnJlbnQgYW5kIG9sZGVzdCBhbGxvd2FibGUgdGltZXN0YW1wcwogICAgICAqLwotICAgIGdldHRpbWVvZmRheSgmbm93LCAoc3RydWN0IHRpbWV6b25lKikgTlVMTCk7CisgICAgbmV0c25tcF9nZXRfbW9ub3RvbmljX2Nsb2NrKCZub3cpOwogICAgIGFnZWQudHZfc2VjID0gbm93LnR2X3NlYyAtIFNOTVBfQUREUkNBQ0hFX01BWEFHRTsKICAgICBhZ2VkLnR2X3VzZWMgPSBub3cudHZfdXNlYzsKIApAQCAtNzYxLDggKzc3Nyw4IEBACiAgICAgICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAgICAgKiBmb3VuZCBhIG1hdGNoCiAgICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgYWRkckNhY2hlW2ldLmxhc3RIaXQgPSBub3c7Ci0gICAgICAgICAgICAgICAgaWYgKHRpbWVyY21wKCZhZGRyQ2FjaGVbaV0ubGFzdEhpdCwgJmFnZWQsIDwpKQorICAgICAgICAgICAgICAgIGFkZHJDYWNoZVtpXS5sYXN0SGl0TSA9IG5vdzsKKyAgICAgICAgICAgICAgICBpZiAodGltZXJjbXAoJmFkZHJDYWNoZVtpXS5sYXN0SGl0TSwgJmFnZWQsIDwpKQogCQkgICAgcmMgPSAxOyAvKiBzaG91bGQgaGF2ZSBleHBpcmVkLCBzbyBpcyBuZXcgKi8KIAkJZWxzZQogCQkgICAgcmMgPSAwOyAvKiBub3QgZXhwaXJlZCwgc28gaXMgZXhpc3RpbmcgZW50cnkgKi8KQEAgLTc3Miw3ICs3ODgsNyBAQAogICAgICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgICAgICogVXNlZCwgYnV0IG5vdCB0aGlzIGFkZHJlc3MuIGNoZWNrIGlmIGl0J3Mgc3RhbGUuCiAgICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgaWYgKHRpbWVyY21wKCZhZGRyQ2FjaGVbaV0ubGFzdEhpdCwgJmFnZWQsIDwpKSB7CisgICAgICAgICAgICAgICAgaWYgKHRpbWVyY21wKCZhZGRyQ2FjaGVbaV0ubGFzdEhpdE0sICZhZ2VkLCA8KSkgewogICAgICAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICAgICAgKiBTdGFsZSwgcmV1c2UKICAgICAgICAgICAgICAgICAgICAgICovCkBAIC03OTAsOCArODA2LDggQEAKICAgICAgICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAgICAgIGlmIChvbGRlc3QgPCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgb2xkZXN0ID0gaTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGltZXJjbXAoJmFkZHJDYWNoZVtpXS5sYXN0SGl0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYWRkckNhY2hlW29sZGVzdF0ubGFzdEhpdCwgPCkpCisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRpbWVyY21wKCZhZGRyQ2FjaGVbaV0ubGFzdEhpdE0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhZGRyQ2FjaGVbb2xkZXN0XS5sYXN0SGl0TSwgPCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBvbGRlc3QgPSBpOwogICAgICAgICAgICAgICAgIH0gLyogZnJlc2ggKi8KICAgICAgICAgICAgIH0gLyogdXNlZCwgbm8gbWF0Y2ggKi8KQEAgLTgwOCw3ICs4MjQsNyBAQAogICAgICAgICAgICAgICovCiAgICAgICAgICAgICBhZGRyQ2FjaGVbdW51c2VkXS5hZGRyID0gc3RyZHVwKGFkZHIpOwogICAgICAgICAgICAgYWRkckNhY2hlW3VudXNlZF0uc3RhdHVzID0gU05NUF9BRERSQ0FDSEVfVVNFRDsKLSAgICAgICAgICAgIGFkZHJDYWNoZVt1bnVzZWRdLmxhc3RIaXQgPSBub3c7CisgICAgICAgICAgICBhZGRyQ2FjaGVbdW51c2VkXS5sYXN0SGl0TSA9IG5vdzsKICAgICAgICAgfQogICAgICAgICBlbHNlIHsgLyogT3RoZXJ3aXNlLCByZXBsYWNlIG9sZGVzdCBlbnRyeSAqLwogICAgICAgICAgICAgaWYgKG5ldHNubXBfZHNfZ2V0X2Jvb2xlYW4oTkVUU05NUF9EU19BUFBMSUNBVElPTl9JRCwKQEAgLTgxOCw3ICs4MzQsNyBAQAogICAgICAgICAgICAgCiAgICAgICAgICAgICBmcmVlKGFkZHJDYWNoZVtvbGRlc3RdLmFkZHIpOwogICAgICAgICAgICAgYWRkckNhY2hlW29sZGVzdF0uYWRkciA9IHN0cmR1cChhZGRyKTsKLSAgICAgICAgICAgIGFkZHJDYWNoZVtvbGRlc3RdLmxhc3RIaXQgPSBub3c7CisgICAgICAgICAgICBhZGRyQ2FjaGVbb2xkZXN0XS5sYXN0SGl0TSA9IG5vdzsKICAgICAgICAgfQogICAgICAgICByYyA9IDE7CiAgICAgfQpAQCAtODM2LDExICs4NTIsMTMgQEAKICAqCiAgKiBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eTsgbm90IHVzZWQgYW55d2hlcmUKICAqLworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0FERFJDQUNIRV9BR0UKIHZvaWQKIG5ldHNubXBfYWRkcmNhY2hlX2FnZSh2b2lkKQogewogICAgICh2b2lkKW5ldHNubXBfYWRkcmNhY2hlX2FkZChOVUxMKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0FERFJDQUNIRV9BR0UgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiotby0qKioqKioKICAqIG5ldHNubXBfYWdlbnRfY2hlY2tfcGFja2V0CkBAIC05NzEsOSArOTg5LDExIEBACiAgICAgICAgICAgICBjYXNlIFNOTVBfTVNHX1JFU1BPTlNFOgogICAgICAgICAgICAgICAgIHNubXBfbG9nKExPR19ERUJVRywgIiAgUkVTUE9OU0UgbWVzc2FnZVxuIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAgICAgY2FzZSBTTk1QX01TR19TRVQ6CiAgICAgICAgICAgICAgICAgc25tcF9sb2coTE9HX0RFQlVHLCAiICBTRVQgbWVzc2FnZVxuIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICAgICBjYXNlIFNOTVBfTVNHX1RSQVA6CiAgICAgICAgICAgICAgICAgc25tcF9sb2coTE9HX0RFQlVHLCAiICBUUkFQIG1lc3NhZ2VcbiIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtOTkxLDYgKzEwMTEsNyBAQAogICAgICAgICAgICAgICAgIHNubXBfbG9nKExPR19ERUJVRywgIiAgUkVQT1JUIG1lc3NhZ2VcbiIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAgICAgY2FzZSBTTk1QX01TR19JTlRFUk5BTF9TRVRfUkVTRVJWRTE6CiAgICAgICAgICAgICAgICAgc25tcF9sb2coTE9HX0RFQlVHLCAiICBJTlRFUk5BTCBSRVNFUlZFMSBtZXNzYWdlXG4iKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTEwMTQsNiArMTAzNSw3IEBACiAgICAgICAgICAgICBjYXNlIFNOTVBfTVNHX0lOVEVSTkFMX1NFVF9VTkRPOgogICAgICAgICAgICAgICAgIHNubXBfbG9nKExPR19ERUJVRywgIiAgSU5URVJOQUwgVU5ETyBtZXNzYWdlXG4iKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfREVCVUcsICIgIFVOS05PV04gbWVzc2FnZSwgdHlwZT0lMDJYXG4iLApAQCAtMTA3NSw3ICsxMDk3LDYgQEAKICAgICBhZ2VudF9uc2FwICAgICAqYSA9IE5VTEwsICpuID0gTlVMTCwgKipwcmV2TmV4dCA9ICZhZ2VudF9uc2FwX2xpc3Q7CiAgICAgaW50ICAgICAgICAgICAgIGhhbmRsZSA9IDA7CiAgICAgdm9pZCAgICAgICAgICAgKmlzcCA9IE5VTEw7Ci0gICAgaW50ICAgICAgICAgICAgIHJjOwogCiAgICAgaWYgKHQgPT0gTlVMTCkgewogICAgICAgICByZXR1cm4gLTE7CkBAIC0xMTA4LDcgKzExMjksNyBAQAogCiAgICAgLyogT3B0aW9uYWwgc3VwcGxpbWVudGFsIHRyYW5zcG9ydCBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGFuZAogICAgICAgIGZpbmFsIGNhbGwgdG8gYWN0dWFsbHkgb3BlbiB0aGUgdHJhbnNwb3J0ICovCi0gICAgaWYgKChyYyA9IG5ldHNubXBfc2Vzc19jb25maWdfdHJhbnNwb3J0KHMtPnRyYW5zcG9ydF9jb25maWd1cmF0aW9uLCB0KSkKKyAgICBpZiAobmV0c25tcF9zZXNzX2NvbmZpZ190cmFuc3BvcnQocy0+dHJhbnNwb3J0X2NvbmZpZ3VyYXRpb24sIHQpCiAgICAgICAgICE9IFNOTVBFUlJfU1VDQ0VTUykgewogICAgICAgICBTTk1QX0ZSRUUocyk7CiAgICAgICAgIFNOTVBfRlJFRShuKTsKQEAgLTEyNjMsNiArMTI4NCw3IEBACiAgICAgICAgIHJldHVybiAwOyAgICAgICAgICAgICAgIC8qICBObyBlcnJvciBpZiAhIE1BU1RFUl9BR0VOVCAgKi8KICAgICB9CiAKKyNpZm5kZWYgTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVAogICAgIC8qCiAgICAgICogSGF2ZSBzcGVjaWZpYyBhZ2VudCBwb3J0cyBiZWVuIHNwZWNpZmllZD8gIAogICAgICAqLwpAQCAtMTMzMiw2ICsxMzU0LDcgQEAKICAgICAgICAgfQogICAgIH0gd2hpbGUoc3QgJiYgKnN0ICE9ICdcMCcpOwogICAgIFNOTVBfRlJFRShidWYpOworI2VuZGlmIC8qIE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQgKi8KIAogI2lmZGVmIFVTSU5HX0FHRU5UWF9NQVNURVJfTU9EVUxFCiAgICAgaWYgKG5ldHNubXBfZHNfZ2V0X2Jvb2xlYW4oTkVUU05NUF9EU19BUFBMSUNBVElPTl9JRCwgCkBAIC0xNDEwLDEyICsxNDMzLDggQEAKICAgICAgICAgc25tcF9mcmVlX3BkdShhc3AtPnBkdSk7CiAgICAgaWYgKGFzcC0+cmVxaW5mbykKICAgICAgICAgbmV0c25tcF9mcmVlX2FnZW50X3JlcXVlc3RfaW5mbyhhc3AtPnJlcWluZm8pOwotICAgIGlmIChhc3AtPnRyZWVjYWNoZSkgewotICAgICAgICBTTk1QX0ZSRUUoYXNwLT50cmVlY2FjaGUpOwotICAgIH0KLSAgICBpZiAoYXNwLT5idWxrY2FjaGUpIHsKLSAgICAgICAgU05NUF9GUkVFKGFzcC0+YnVsa2NhY2hlKTsKLSAgICB9CisgICAgU05NUF9GUkVFKGFzcC0+dHJlZWNhY2hlKTsKKyAgICBTTk1QX0ZSRUUoYXNwLT5idWxrY2FjaGUpOwogICAgIGlmIChhc3AtPnJlcXVlc3RzKSB7CiAgICAgICAgIGludCAgICAgICAgICAgICBpOwogICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXNwLT52YmNvdW50OyBpKyspIHsKQEAgLTE2MDAsOSArMTYxOSw2IEBACiBpbnQKIG5ldHNubXBfd3JhcF91cF9yZXF1ZXN0KG5ldHNubXBfYWdlbnRfc2Vzc2lvbiAqYXNwLCBpbnQgc3RhdHVzKQogewotICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFyX3B0cjsKLSAgICBpbnQgICAgICAgICAgICAgaTsKLQogICAgIC8qCiAgICAgICogaWYgdGhpcyByZXF1ZXN0IHdhcyBhIHNldCwgY2xlYXIgdGhlIGdsb2JhbCBub3cgdGhhdCB3ZSBhcmUKICAgICAgKiBkb25lLgpAQCAtMTYyMiw2ICsxNjM4LDcgQEAKICAgICAgICAgICAgIGFzcC0+c3RhdHVzID0gc3RhdHVzOwogCiAgICAgICAgIHN3aXRjaCAoYXNwLT5wZHUtPmNvbW1hbmQpIHsKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgICAgICBjYXNlIFNOTVBfTVNHX0lOVEVSTkFMX1NFVF9CRUdJTjoKICAgICAgICAgICAgIGNhc2UgU05NUF9NU0dfSU5URVJOQUxfU0VUX1JFU0VSVkUxOgogICAgICAgICAgICAgY2FzZSBTTk1QX01TR19JTlRFUk5BTF9TRVRfUkVTRVJWRTI6CkBAIC0xNjMxLDYgKzE2NDgsNyBAQAogICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgIHNhdmVfc2V0X2NhY2hlKGFzcCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICAgICAgICAgICAgIGNhc2UgU05NUF9NU0dfR0VUTkVYVDoKICAgICAgICAgICAgICAgICBfZml4X2VuZG9mbWlidmlldyhhc3ApOwpAQCAtMTY0OSw2ICsxNjY3LDcgQEAKICAgICAgICAgICogdjEgcXVlcnkuICBTZWUgUkZDMjU3NiAtIHNlY3Rpb24gNC4zCiAgICAgICAgICAqLwogI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU05NUFYxCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICBpZiAoKGFzcC0+cGR1LT5jb21tYW5kID09IFNOTVBfTVNHX1NFVCkgJiYKICAgICAgICAgICAgIChhc3AtPnBkdS0+dmVyc2lvbiA9PSBTTk1QX1ZFUlNJT05fMSkpIHsKICAgICAgICAgICAgIHN3aXRjaCAoYXNwLT5zdGF0dXMpIHsKQEAgLTE2ODMsOCArMTcwMiwxMCBAQAogICAgICAgICAgKi8KICAgICAgICAgaWYgKChhc3AtPnBkdS0+Y29tbWFuZCAhPSBTTk1QX01TR19TRVQpICYmCiAgICAgICAgICAgICAoYXNwLT5wZHUtPnZlcnNpb24gPT0gU05NUF9WRVJTSU9OXzEpKSB7Ci0gICAgICAgICAgICBmb3IgKHZhcl9wdHIgPSBhc3AtPnBkdS0+dmFyaWFibGVzLCBpID0gMTsKLSAgICAgICAgICAgICAgICAgdmFyX3B0ciAhPSBOVUxMOyB2YXJfcHRyID0gdmFyX3B0ci0+bmV4dF92YXJpYWJsZSwgaSsrKSB7CisgICAgICAgICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhcl9wdHIgPSBhc3AtPnBkdS0+dmFyaWFibGVzOworICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICBpID0gMTsKKworICAgICAgICAgICAgd2hpbGUgKHZhcl9wdHIgIT0gTlVMTCkgewogICAgICAgICAgICAgICAgIHN3aXRjaCAodmFyX3B0ci0+dHlwZSkgewogICAgICAgICAgICAgICAgICAgICBjYXNlIFNOTVBfTk9TVUNIT0JKRUNUOgogICAgICAgICAgICAgICAgICAgICBjYXNlIFNOTVBfTk9TVUNISU5TVEFOQ0U6CkBAIC0xNjk1LDggKzE3MTYsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIGFzcC0+aW5kZXggPSBpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHZhcl9wdHIgPSB2YXJfcHRyLT5uZXh0X3ZhcmlhYmxlOworICAgICAgICAgICAgICAgICsraTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogI2VuZGlmIC8qIHNubXB2MSBzdXBwb3J0ICovCiAgICAgfSAvKiogaWYgYXNwLT5wZHUgKi8KIApAQCAtMTc0MiwxMCArMTc2NiwxNiBAQAogICAgIH0KIAogICAgIGlmICgoc3RhdHVzID09IFNOTVBfRVJSX05PRVJST1IpICYmIChhc3AtPnBkdSkpIHsKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgIHNubXBfaW5jcmVtZW50X3N0YXRpc3RpY19ieSgoYXNwLT5wZHUtPmNvbW1hbmQgPT0gU05NUF9NU0dfU0VUID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFUX1NOTVBJTlRPVEFMU0VUVkFSUyA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBVF9TTk1QSU5UT1RBTFJFUVZBUlMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRfdmFyYmluZHMoYXNwLT5wZHUtPnZhcmlhYmxlcykpOworI2Vsc2UgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgICAgIHNubXBfaW5jcmVtZW50X3N0YXRpc3RpY19ieShTVEFUX1NOTVBJTlRPVEFMUkVRVkFSUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50X3ZhcmJpbmRzKGFzcC0+cGR1LT52YXJpYWJsZXMpKTsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8qCiAgICAgICAgICAqIFVzZSBhIGNvcHkgb2YgdGhlIG9yaWdpbmFsIHJlcXVlc3QKQEAgLTE3OTAsNiArMTgyMCw3IEBACiAgICAgcmV0dXJuIDE7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9EVU1QX1NFU1NfTElTVAogdm9pZAogZHVtcF9zZXNzX2xpc3Qodm9pZCkKIHsKQEAgLTE4MDEsNiArMTgzMiw3IEBACiAgICAgfQogICAgIERFQlVHTVNHKCgic25tcF9hZ2VudCIsICJbTklMXVxuIikpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfRFVNUF9TRVNTX0xJU1QgKi8KIAogdm9pZAogbmV0c25tcF9yZW1vdmVfYW5kX2ZyZWVfYWdlbnRfc25tcF9zZXNzaW9uKG5ldHNubXBfYWdlbnRfc2Vzc2lvbiAqYXNwKQpAQCAtMTgyOSw2ICsxODYxLDcgQEAKICAgICB9CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9GUkVFX0FHRU5UX1NOTVBfU0VTU0lPTl9CWV9TRVNTSU9OCiB2b2lkCiBuZXRzbm1wX2ZyZWVfYWdlbnRfc25tcF9zZXNzaW9uX2J5X3Nlc3Npb24obmV0c25tcF9zZXNzaW9uICogc2VzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqZnJlZV9yZXF1ZXN0KQpAQCAtMTg0OSw2ICsxODgyLDcgQEAKICAgICAgICAgfQogICAgIH0KIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0ZSRUVfQUdFTlRfU05NUF9TRVNTSU9OX0JZX1NFU1NJT04gKi8KIAogLyoqIGhhbmRsZXMgYW4gaW5jb21pbmcgU05NUCBwYWNrZXQgaW50byB0aGUgYWdlbnQgKi8KIGludApAQCAtMTk2Niw3ICsyMDAwLDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9zdWJ0cmVlICp0cCkKIHsKICAgICBuZXRzbm1wX3JlcXVlc3RfaW5mbyAqcmVxdWVzdCA9IE5VTEw7Ci0gICAgaW50ICAgICAgICAgICAgIGNhY2hlaWQ7CiAKICAgICBERUJVR01TR1RMKCgic25tcF9hZ2VudCIsICJhZGRfdmJfdG9fY2FjaGUoJThwLCAlZCwgIiwgYXNwLCB2YmNvdW50KSk7CiAgICAgREVCVUdNU0dPSUQoKCJzbm1wX2FnZW50IiwgdmFyYmluZF9wdHItPm5hbWUsCkBAIC0yMDMwLDcgKzIwNjMsOSBAQAogICAgICAgICAgICAgdmFyYmluZF9wdHItPnR5cGUgPSBTTk1QX0VORE9GTUlCVklFVzsKICAgICAgICAgICAgIGJyZWFrOwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICBjYXNlIFNOTVBfTVNHX1NFVDoKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgY2FzZSBTTk1QX01TR19HRVQ6CiAgICAgICAgICAgICB2YXJiaW5kX3B0ci0+dHlwZSA9IFNOTVBfTk9TVUNIT0JKRUNUOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yMDM5LDYgKzIwNzQsOCBAQAogICAgICAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAvKiBzaG91bGRuJ3QgZ2V0IGhlcmUgKi8KICAgICAgICAgfQogICAgIH0gZWxzZSB7CisgICAgICAgIGludCBjYWNoZWlkOworCiAgICAgICAgIERFQlVHTVNHVEwoKCJzbm1wX2FnZW50IiwgInRwLT5zdGFydCAiKSk7CiAgICAgICAgIERFQlVHTVNHT0lEKCgic25tcF9hZ2VudCIsIHRwLT5zdGFydF9hLCB0cC0+c3RhcnRfbGVuKSk7CiAgICAgICAgIERFQlVHTVNHKCgic25tcF9hZ2VudCIsICIsIHRwLT5lbmQgIikpOwpAQCAtMjA2NCw4ICsyMTAxLDEwIEBACiAgICAgICAgIC8qCiAgICAgICAgICAqIGZvciBub24tU0VUIG1vZGVzLCBzZXQgdGhlIHR5cGUgdG8gTlVMTCAKICAgICAgICAgICovCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICBpZiAoIU1PREVfSVNfU0VUKGFzcC0+cGR1LT5jb21tYW5kKSkgewotICAgICAgICBERUJVR01TR1RMKCgidmVyYm9zZTphc3AiLCAiYXNwICVwIHJlcWluZm8gJXAgYXNzaWduZWQgdG8gcmVxdWVzdFxuIiwKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKyAgICAgICAgICAgIERFQlVHTVNHVEwoKCJ2ZXJib3NlOmFzcCIsICJhc3AgJXAgcmVxaW5mbyAlcCBhc3NpZ25lZCB0byByZXF1ZXN0XG4iLAogICAgICAgICAgICAgICAgICAgICBhc3AsIGFzcC0+cmVxaW5mbykpOwogICAgICAgICAgICAgaWYgKHZhcmJpbmRfcHRyLT50eXBlID09IEFTTl9QUklWX0lOQ0xfUkFOR0UpIHsKICAgICAgICAgICAgICAgICBERUJVR01TR1RMKCgic25tcF9hZ2VudCIsICJ2YXJiaW5kICVkIGlzIGluY2x1c2l2ZVxuIiwKQEAgLTIwNzMsNyArMjExMiw5IEBACiAgICAgICAgICAgICAgICAgcmVxdWVzdC0+aW5jbHVzaXZlID0gMTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHZhcmJpbmRfcHRyLT50eXBlID0gQVNOX05VTEw7CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICB9CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICAgICAgICAgLyoKICAgICAgICAgICogcGxhY2UgdGhlbSBpbiBhIGNhY2hlIApAQCAtMjQwMCw2ICsyNDQxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCk7CiAgICAgICAgICAgICBicmVhazsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgY2FzZSBTTk1QX01TR19TRVQ6CiAgICAgICAgICAgICB2aWV3ID0gaW5fYV92aWV3KHZhcmJpbmRfcHRyLT5uYW1lLCAmdmFyYmluZF9wdHItPm5hbWVfbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3AtPnBkdSwgdmFyYmluZF9wdHItPnR5cGUpOwpAQCAtMjQwOCw2ICsyNDUwLDcgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gU05NUF9FUlJfTk9BQ0NFU1M7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgICAgICBjYXNlIFNOTVBfTVNHX0dFVE5FWFQ6CiAgICAgICAgIGNhc2UgU05NUF9NU0dfR0VUQlVMSzoKQEAgLTI0NzgsMTAgKzI1MjEsNyBAQAogICAgICAgICAgICAgaWYgKCFuZXRzbm1wX2FkZF92YXJiaW5kX3RvX2NhY2hlKGFzcCwgYXNwLT5yZXF1ZXN0c1tpXS5pbmRleCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3AtPnJlcXVlc3RzW2ldLnJlcXVlc3R2YiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3AtPnJlcXVlc3RzW2ldLnN1YnRyZWUtPm5leHQpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG9sZF90cmVlY2FjaGUgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICBTTk1QX0ZSRUUob2xkX3RyZWVjYWNoZSk7Ci0gICAgICAgICAgICAgICAgICAgIG9sZF90cmVlY2FjaGUgPSBOVUxMOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTTk1QX0ZSRUUob2xkX3RyZWVjYWNoZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoYXNwLT5yZXF1ZXN0c1tpXS5yZXF1ZXN0dmItPnR5cGUgPT0gQVNOX1BSSVZfUkVUUlkpIHsKICAgICAgICAgICAgIC8qCkBAIC0yNDkxLDE3ICsyNTMxLDEyIEBACiAgICAgICAgICAgICBpZiAoIW5ldHNubXBfYWRkX3ZhcmJpbmRfdG9fY2FjaGUoYXNwLCBhc3AtPnJlcXVlc3RzW2ldLmluZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzcC0+cmVxdWVzdHNbaV0ucmVxdWVzdHZiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzcC0+cmVxdWVzdHNbaV0uc3VidHJlZSkpIHsKLSAgICAgICAgICAgICAgICBpZiAob2xkX3RyZWVjYWNoZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIFNOTVBfRlJFRShvbGRfdHJlZWNhY2hlKTsKLSAgICAgICAgICAgICAgICAgICAgb2xkX3RyZWVjYWNoZSA9IE5VTEw7Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFNOTVBfRlJFRShvbGRfdHJlZWNhY2hlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChvbGRfdHJlZWNhY2hlICE9IE5VTEwpIHsKLSAgICAgICAgU05NUF9GUkVFKG9sZF90cmVlY2FjaGUpOwotICAgIH0KKyAgICBTTk1QX0ZSRUUob2xkX3RyZWVjYWNoZSk7CiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiB9CiAKQEAgLTI1MTQsNiArMjU0OSw3IEBACiAgICAgfQogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfREVMRVRFX1NVQlRSRUVfQ0FDSEUKIHZvaWQKIG5ldHNubXBfZGVsZXRlX3N1YnRyZWVfY2FjaGUobmV0c25tcF9hZ2VudF9zZXNzaW9uICphc3ApCiB7CkBAIC0yNTI2LDcgKzI1NjIsOSBAQAogICAgICAgICBhc3AtPnRyZWVjYWNoZV9udW0tLTsKICAgICB9CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9ERUxFVEVfU1VCVFJFRV9DQUNIRSAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0hFQ0tfQUxMX1JFUVVFU1RTX0VSUk9SCiAvKgogICogY2hlY2sgYWxsIHJlcXVlc3RzIGZvciBlcnJvcnMKICAqCkBAIC0yNTU3LDcgKzI1OTUsOSBAQAogCiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DSEVDS19BTExfUkVRVUVTVFNfRVJST1IgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NIRUNLX1JFUVVFU1RTX0VSUk9SCiBpbnQKIG5ldHNubXBfY2hlY2tfcmVxdWVzdHNfZXJyb3IobmV0c25tcF9yZXF1ZXN0X2luZm8gKnJlcXVlc3RzKQogewpAQCAtMjU3MCw2ICsyNjEwLDcgQEAKICAgICB9CiAgICAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DSEVDS19SRVFVRVNUU19FUlJPUiAqLwogCiBpbnQKIG5ldHNubXBfY2hlY2tfcmVxdWVzdHNfc3RhdHVzKG5ldHNubXBfYWdlbnRfc2Vzc2lvbiAqYXNwLApAQCAtMjY0NSw2ICsyNjg2LDcgQEAKICAgICAgICAgICogZXJyb3JzKS4KICAgICAgICAgICovCiAgICAgICAgIHN3aXRjaCAoYXNwLT5tb2RlKSB7CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICBjYXNlIE1PREVfU0VUX0NPTU1JVDoKICAgICAgICAgICAgIHJldHN0YXR1cyA9IG5ldHNubXBfY2hlY2tfcmVxdWVzdHNfc3RhdHVzKGFzcCwKIAkJCQkJCSAgICAgIGFzcC0+dHJlZWNhY2hlW2ldLgpAQCAtMjY1OCw2ICsyNzAwLDcgQEAKIAkJCQkJCSAgICAgIHJlcXVlc3RzX2JlZ2luLAogCQkJCQkJICAgICAgU05NUF9FUlJfVU5ET0ZBSUxFRCk7CiAgICAgICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0c3RhdHVzID0gbmV0c25tcF9jaGVja19yZXF1ZXN0c19zdGF0dXMoYXNwLApAQCAtMjc2OCw2ICsyODExLDcgQEAKICAgICAgICAgICogaWYgdGhlIHRvcCByZXF1ZXN0IGlzIGEgc2V0LCBkb24ndCBwb3AgaXQKICAgICAgICAgICogb2ZmIGlmIHRoZXJlIGFyZSBkZWxlZ2F0ZWQgcmVxdWVzdHMKICAgICAgICAgICovCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICBpZiAoKG5ldHNubXBfYWdlbnRfcXVldWVkX2xpc3QtPnBkdS0+Y29tbWFuZCA9PSBTTk1QX01TR19TRVQpICYmCiAgICAgICAgICAgICAoYWdlbnRfZGVsZWdhdGVkX2xpc3QpKSB7CiAKQEAgLTI3NzgsNiArMjgyMiw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAiZGVsZWdhdGVkIHJlcXVlc3RzIGZpbmlzaCwgYXNwID0gJThwXG4iLCBhc3ApKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICAgICAgICAgLyoKICAgICAgICAgICogcG9wIHRoZSBmaXJzdCByZXF1ZXN0IGFuZCBwcm9jZXNzIGl0CkBAIC0yODQ5LDYgKzI4OTQsNyBAQAogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgTU9ERV9TRVRfQ09NTUlUOgogICAgICAgICBuZXRzbm1wX2NoZWNrX2FsbF9yZXF1ZXN0c19zdGF0dXMoYXNwLCBTTk1QX0VSUl9DT01NSVRGQUlMRUQpOwogICAgICAgICBnb3RvIHNldHRvcDsKQEAgLTI4ODQsNiArMjkzMCw3IEBACiAgICAgICAgICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKICAgICAgICAgfQogICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwpAQCAtMzA4Myw2ICszMTMwLDcgQEAKICAgICByZXR1cm4gU05NUF9FUlJfTk9FUlJPUjsKIH0KIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKIGludAogaGFuZGxlX3NldChuZXRzbm1wX2FnZW50X3Nlc3Npb24gKmFzcCkKIHsKQEAgLTMxODAsNiArMzIyOCw3IEBACiAgICAgfQogICAgIHJldHVybiBhc3AtPnN0YXR1czsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogaW50CiBuZXRzbm1wX2hhbmRsZV9yZXF1ZXN0KG5ldHNubXBfYWdlbnRfc2Vzc2lvbiAqYXNwLCBpbnQgc3RhdHVzKQpAQCAtMzIwNyw2ICszMjU2LDcgQEAKICAgICAgICAgLyoKICAgICAgICAgICogY2hlY2sgZm9yIHNldCByZXF1ZXN0CiAgICAgICAgICAqLworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgaWYgKGFzcC0+cGR1LT5jb21tYW5kID09IFNOTVBfTVNHX1NFVCkgewogICAgICAgICAgICAgbmV0c25tcF9wcm9jZXNzaW5nX3NldCA9IGFzcDsKIApAQCAtMzIyMiw2ICszMjcyLDcgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgIH0KIAogICAgIC8qCkBAIC0zMjczLDYgKzMzMjQsNyBAQAogICAgICAqLwogICAgIHN3aXRjaCAoYXNwLT5wZHUtPmNvbW1hbmQpIHsKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBjYXNlIFNOTVBfTVNHX0lOVEVSTkFMX1NFVF9SRVNFUlZFMjoKICAgICBjYXNlIFNOTVBfTVNHX0lOVEVSTkFMX1NFVF9BQ1RJT046CiAgICAgY2FzZSBTTk1QX01TR19JTlRFUk5BTF9TRVRfQ09NTUlUOgpAQCAtMzI4Miw2ICszMzM0LDcgQEAKICAgICAgICAgaWYgKHN0YXR1cyAhPSBTTk1QX0VSUl9OT0VSUk9SKQogICAgICAgICAgICAgcmV0dXJuIHN0YXR1czsKICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICAgICBjYXNlIFNOTVBfTVNHX0dFVDoKICAgICBjYXNlIFNOTVBfTVNHX0dFVE5FWFQ6CkBAIC0zMzA1LDggKzMzNTgsMTAgQEAKICAgICAgICAgICogZmFsbCB0aHJvdWdoIAogICAgICAgICAgKi8KIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBjYXNlIFNOTVBfTVNHX0lOVEVSTkFMX1NFVF9CRUdJTjoKICAgICBjYXNlIFNOTVBfTVNHX0lOVEVSTkFMX1NFVF9SRVNFUlZFMToKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICBkZWZhdWx0OgogICAgICAgICBhc3AtPnZiY291bnQgPSBjb3VudF92YXJiaW5kcyhhc3AtPnBkdS0+dmFyaWFibGVzKTsKICAgICAgICAgaWYgKGFzcC0+dmJjb3VudCkgLyogZWZlbmNlIGRvZXNuJ3QgbGlrZSAwIHNpemUgYWxsb2NzICovCkBAIC0zMzk2LDYgKzM0NTEsNyBAQAogICAgICAgICBzdGF0dXMgPSBoYW5kbGVfZ2V0bmV4dF9sb29wKGFzcCk7CiAgICAgICAgIGJyZWFrOwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgU05NUF9NU0dfU0VUOgogI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAogICAgICAgICByZXR1cm4gU05NUF9FUlJfTk9UV1JJVEFCTEU7CkBAIC0zNDI0LDYgKzM0ODAsNyBAQAogICAgICAgICAgKiBhc3AgcmVsYXRlZCBjYWNoZSBpcyBzYXZlZCBpbiBjbGVhbnVwIAogICAgICAgICAgKi8KICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICAgICBjYXNlIFNOTVBfTVNHX1JFU1BPTlNFOgogICAgICAgICBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMoU1RBVF9TTk1QSU5HRVRSRVNQT05TRVMpOwpAQCAtMzQ4Niw5ICszNTQzLDExIEBACiAgICAgICAgICAgICByZXR1cm4gU05NUEVSUl9WQUxVRTsKICAgICAgICAgICAgICAqLwogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICBjYXNlIFNOTVBfTVNHX0lOVEVSTkFMX1NFVF9SRVNFUlZFMToKICAgICAgICAgICAgIHJlcXVlc3QtPnN0YXR1cyA9IFNOTVBfRVJSX05PQ1JFQVRJT047CiAgICAgICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmVxdWVzdC0+c3RhdHVzID0gU05NUF9FUlJfTk9TVUNITkFNRTsgICAgICAvKiBXV1c6IGNvcnJlY3Q/ICovCkBAIC0zNTMyLDYgKzM1OTEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfdmFsdWUpOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUkVRVUVTVF9TRVRfRVJST1JfSURYCiAvKiogc2V0IGVycm9yIGZvciBhIHJlcXVlc3Qgd2l0aGluIGEgcmVxdWVzdCBsaXN0CiAgKiBAcGFyYW0gcmVxdWVzdCBoZWFkIG9mIHRoZSByZXF1ZXN0IGxpc3QKICAqIEBwYXJhbSBlcnJvcl92YWx1ZSBlcnJvciB2YWx1ZSBmb3IgcmVxdWVzdApAQCAtMzU1OSw2ICszNjE5LDcgQEAKICAgICByZXR1cm4gX3JlcXVlc3Rfc2V0X2Vycm9yKHJlcSwgcmVxdWVzdC0+YWdlbnRfcmVxX2luZm8tPm1vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl92YWx1ZSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRVFVRVNUX1NFVF9FUlJPUl9JRFggKi8KIAogLyoqIHNldCBlcnJvciBmb3IgYWxsIHJlcXVlc3RzCiAgKiBAcGFyYW0gcmVxdWVzdHMgcmVxdWVzdCBsaXN0CkBAIC0zNTk0LDExICszNjU1LDExIEBACiB9CiAKIC8qKgotICogUmV0dXJuIHRoZSB2YWx1ZSBvZiAnc3lzVXBUaW1lJyBhdCB0aGUgZ2l2ZW4gbWFya2VyCisgKiBSZXR1cm4gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBwbSBhbmQgdGhlIGFnZW50IHN0YXJ0IHRpbWUgaW4gaHVuZHJlZHRocyBvZgorICogYSBzZWNvbmQuCisgKiBcZGVwcmVjYXRlZCBEb24ndCB1c2UgaW4gbmV3IGNvZGUuCiAgKgotICogQG5vdGUgVXNlIG5ldHNubXBfZ2V0X2FnZW50X3J1bnRpbWUoKSBpbnN0ZWFkIG9mIHRoaXMgZnVuY3Rpb24gaWYgeW91IG5lZWQKLSAqICAgdG8ga25vdyBob3cgbXVjaCB0aW1lIGVsYXBzZWQgc2luY2UgbmV0c25tcF9zZXRfYWdlbnRfc3RhcnR0aW1lKCkgaGFzIGJlZW4KLSAqICAgY2FsbGVkLgorICogQHBhcmFtW2luXSBwbSBBbiBhYnNvbHV0ZSB0aW1lIGFzIGUuZy4gcmVwb3J0ZWQgYnkgZ2V0dGltZW9mZGF5KCkuCiAgKi8KIHVfbG9uZwogbmV0c25tcF9tYXJrZXJfdXB0aW1lKG1hcmtlcl90IHBtKQpAQCAtMzYxMCw5ICszNjcxLDE0IEBACiAgICAgcmV0dXJuIHJlczsKIH0KIAotICAgICAgICAgICAgICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAgICAgICAgICAgICAqIHN0cnVjdCB0aW1ldmFsIGVxdWl2YWxlbnRzIG9mIHRoZXNlIAotICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioKKyAqIFJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHR2IGFuZCB0aGUgYWdlbnQgc3RhcnQgdGltZSBpbiBodW5kcmVkdGhzIG9mCisgKiBhIHNlY29uZC4KKyAqCisgKiBcZGVwcmVjYXRlZCBVc2UgbmV0c25tcF9nZXRfYWdlbnRfdXB0aW1lKCkgaW5zdGVhZC4KKyAqCisgKiBAcGFyYW1baW5dIHR2IEFuIGFic29sdXRlIHRpbWUgYXMgZS5nLiByZXBvcnRlZCBieSBnZXR0aW1lb2ZkYXkoKS4KKyAqLwogdV9sb25nCiBuZXRzbm1wX3RpbWV2YWxfdXB0aW1lKHN0cnVjdCB0aW1ldmFsICogdHYpCiB7CkBAIC0zNjIxLDEwICszNjg3LDE1IEBACiAKIAogc3RydWN0IHRpbWV2YWwgIHN0YXJ0dGltZTsKK3N0YXRpYyBzdHJ1Y3QgdGltZXZhbCBzdGFydHRpbWVNOwogCiAvKioKICAqIFJldHVybiBhIHBvaW50ZXIgdG8gdGhlIHZhcmlhYmxlIGluIHdoaWNoIHRoZSBOZXQtU05NUCBzdGFydCB0aW1lIGhhcwogICogYmVlbiBzdG9yZWQuCisgKgorICogQG5vdGUgVXNlIG5ldHNubXBfZ2V0X2FnZW50X3J1bnRpbWUoKSBpbnN0ZWFkIG9mIHRoaXMgZnVuY3Rpb24gaWYgeW91IG5lZWQKKyAqICAgdG8ga25vdyBob3cgbXVjaCB0aW1lIGVsYXBzZWQgc2luY2UgbmV0c25tcF9zZXRfYWdlbnRfc3RhcnR0aW1lKCkgaGFzIGJlZW4KKyAqICAgY2FsbGVkLgogICovCiBjb25zdF9tYXJrZXJfdCAgICAgICAgCiBuZXRzbm1wX2dldF9hZ2VudF9zdGFydHRpbWUodm9pZCkKQEAgLTM2NDMsNDggKzM3MTQsNzAgQEAKIHsKICAgICBzdHJ1Y3QgdGltZXZhbCBub3csIGRlbHRhOwogCi0gICAgZ2V0dGltZW9mZGF5KCZub3csIE5VTEwpOwotICAgIE5FVFNOTVBfVElNRVJTVUIoJm5vdywgJnN0YXJ0dGltZSwgJmRlbHRhKTsKKyAgICBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soJm5vdyk7CisgICAgTkVUU05NUF9USU1FUlNVQigmbm93LCAmc3RhcnR0aW1lTSwgJmRlbHRhKTsKICAgICByZXR1cm4gZGVsdGEudHZfc2VjICogKHVpbnQ2NF90KTEwMCArIGRlbHRhLnR2X3VzZWMgLyAxMDAwMDsKIH0KIAogLyoqCiAgKiBTZXQgdGhlIHRpbWUgYXQgd2hpY2ggTmV0LVNOTVAgc3RhcnRlZCBlaXRoZXIgdG8gdGhlIGN1cnJlbnQgdGltZQogICogKGlmIHMgPT0gTlVMTCkgb3IgdG8gKnMgKGlmIHMgaXMgbm90IE5VTEwpLgorICoKKyAqIEBzZWUgU2VlIGFsc28gbmV0c25tcF9zZXRfYWdlbnRfdXB0aW1lKCkuCiAgKi8KIHZvaWQgICAgICAgICAgICAKIG5ldHNubXBfc2V0X2FnZW50X3N0YXJ0dGltZShtYXJrZXJfdCBzKQogewotICAgIGlmIChzKQorICAgIGlmIChzKSB7CisgICAgICAgIHN0cnVjdCB0aW1ldmFsIG5vd0EsIG5vd007CisKICAgICAgICAgc3RhcnR0aW1lID0gKihzdHJ1Y3QgdGltZXZhbCopczsKLSAgICBlbHNlCisgICAgICAgIGdldHRpbWVvZmRheSgmbm93QSwgTlVMTCk7CisgICAgICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmbm93TSk7CisgICAgICAgIE5FVFNOTVBfVElNRVJTVUIoJnN0YXJ0dGltZSwgJm5vd0EsICZzdGFydHRpbWVNKTsKKyAgICAgICAgTkVUU05NUF9USU1FUkFERCgmc3RhcnR0aW1lTSwgJm5vd00sICZzdGFydHRpbWVNKTsKKyAgICB9IGVsc2UgewogICAgICAgICBnZXR0aW1lb2ZkYXkoJnN0YXJ0dGltZSwgTlVMTCk7CisgICAgICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmc3RhcnR0aW1lTSk7CisgICAgfQogfQogCiAKLSAgICAgICAgICAgICAgICAvKgotICAgICAgICAgICAgICAgICAqIFJldHVybiB0aGUgY3VycmVudCB2YWx1ZSBvZiAnc3lzVXBUaW1lJyAKLSAgICAgICAgICAgICAgICAgKi8KKy8qKgorICogUmV0dXJuIHRoZSBjdXJyZW50IHZhbHVlIG9mICdzeXNVcFRpbWUnIAorICovCiB1X2xvbmcKIG5ldHNubXBfZ2V0X2FnZW50X3VwdGltZSh2b2lkKQogewotICAgIHN0cnVjdCB0aW1ldmFsICBub3c7Ci0gICAgZ2V0dGltZW9mZGF5KCZub3csIE5VTEwpOworICAgIHN0cnVjdCB0aW1ldmFsIG5vdywgZGVsdGE7CiAKLSAgICByZXR1cm4gbmV0c25tcF90aW1ldmFsX3VwdGltZSgmbm93KTsKKyAgICBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soJm5vdyk7CisgICAgTkVUU05NUF9USU1FUlNVQigmbm93LCAmc3RhcnR0aW1lTSwgJmRlbHRhKTsKKyAgICByZXR1cm4gZGVsdGEudHZfc2VjICogMTAwVUwgKyBkZWx0YS50dl91c2VjIC8gMTAwMDA7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TRVRfQUdFTlRfVVBUSU1FCisvKioKKyAqIFNldCB0aGUgc3RhcnQgdGltZSBmcm9tIHdoaWNoICdzeXNVcFRpbWUnIGlzIGNvbXB1dGVkLgorICoKKyAqIEBwYXJhbVtpbl0gaHNlYyBOZXcgc3lzVXBUaW1lIGluIGh1bmRyZWR0aHMgb2YgYSBzZWNvbmQuCisgKgorICogQHNlZSBTZWUgYWxzbyBuZXRzbm1wX3NldF9hZ2VudF9zdGFydHRpbWUoKS4KKyAqLwogdm9pZAogbmV0c25tcF9zZXRfYWdlbnRfdXB0aW1lKHVfbG9uZyBoc2VjKQogewotICAgIHN0cnVjdCB0aW1ldmFsICBub3c7CisgICAgc3RydWN0IHRpbWV2YWwgIG5vd0EsIG5vd007CiAgICAgc3RydWN0IHRpbWV2YWwgIG5ld191cHRpbWU7CiAKLSAgICBnZXR0aW1lb2ZkYXkoJm5vdywgTlVMTCk7CisgICAgZ2V0dGltZW9mZGF5KCZub3dBLCBOVUxMKTsKKyAgICBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soJm5vd00pOwogICAgIG5ld191cHRpbWUudHZfc2VjID0gaHNlYyAvIDEwMDsKLSAgICBuZXdfdXB0aW1lLnR2X3VzZWMgPSAoaHNlYyAtIG5ld191cHRpbWUudHZfc2VjICogMTAwKSAqIDEwMDAwTDsKLSAgICBORVRTTk1QX1RJTUVSU1VCKCZub3csICZuZXdfdXB0aW1lLCAmc3RhcnR0aW1lKTsKKyAgICBuZXdfdXB0aW1lLnR2X3VzZWMgPSAodWludDMyX3QpKGhzZWMgLSBuZXdfdXB0aW1lLnR2X3NlYyAqIDEwMCkgKiAxMDAwMEw7CisgICAgTkVUU05NUF9USU1FUlNVQigmbm93QSwgJm5ld191cHRpbWUsICZzdGFydHRpbWUpOworICAgIE5FVFNOTVBfVElNRVJTVUIoJm5vd00sICZuZXdfdXB0aW1lLCAmc3RhcnR0aW1lTSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TRVRfQUdFTlRfVVBUSU1FICovCiAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTM3MzUsNiArMzgyOCw3IEBACiAgKiBAcGFyYW0gZXJyb3JfdmFsdWUgZXJyb3IgdmFsdWUgZm9yIHJlcXVlc3RzCiAgKiBAcmV0dXJuIGVycm9yX3ZhbHVlCiAgKi8KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TRVRfQUxMX1JFUVVFU1RTX0VSUk9SCiBpbnQKIG5ldHNubXBfc2V0X2FsbF9yZXF1ZXN0c19lcnJvcihuZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mbyAqcmVxaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3JlcXVlc3RfaW5mbyAqcmVxdWVzdHMsCkBAIC0zNzQzLDQgKzM4MzcsNSBAQAogICAgIG5ldHNubXBfcmVxdWVzdF9zZXRfZXJyb3JfYWxsKHJlcXVlc3RzLCBlcnJvcl92YWx1ZSk7CiAgICAgcmV0dXJuIGVycm9yX3ZhbHVlOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU0VUX0FMTF9SRVFVRVNUU19FUlJPUiAqLwogLyoqIEB9ICovCmRpZmYgLS1naXQgYS9hZ2VudC9zbm1wX3BlcmwuYyBiL2FnZW50L3NubXBfcGVybC5jCmluZGV4IDNmMGEyMTYuLjQ4ZDk2OTUgMTAwNjQ0Ci0tLSBhL2FnZW50L3NubXBfcGVybC5jCisrKyBiL2FnZW50L3NubXBfcGVybC5jCkBAIC0zNiw2ICszNiw3IEBACiAgICAgY29uc3QgY2hhciAgICAgKnBlcmxfaW5pdF9maWxlID0gbmV0c25tcF9kc19nZXRfc3RyaW5nKE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsCiAJCQkJCQkJICAgTkVUU05NUF9EU19BR0VOVF9QRVJMX0lOSVRfRklMRSk7CiAgICAgY2hhciAgICAgICAgICAgIGluaXRfZmlsZVtTTk1QX01BWEJVRl07CisgICAgaW50ICAgICAgICAgICAgIHJlczsKIAogICAgIHN0YXRpYyBpbnQgICAgICBoYXZlX2RvbmVfaW5pdCA9IDA7CiAKQEAgLTU3LDggKzU4LDExIEBACiAgICAgZW52ID0gTlVMTDsKICAgICBQRVJMX1NZU19JTklUMygmYXJnYywgJmFyZ3YsICZlbnYpOwogICAgIG15X3BlcmwgPSBwZXJsX2FsbG9jKCk7Ci0gICAgaWYgKCFteV9wZXJsKQorICAgIGlmICghbXlfcGVybCkgeworICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLAorICAgICAgICAgICAgICAgICAiZW1iZWRkZWQgcGVybCBzdXBwb3J0IGZhaWxlZCB0byBpbml0aWFsaXplIChwZXJsX2FsbG9jKCkpXG4iKTsKICAgICAgICAgZ290byBiYWlsX291dDsKKyAgICB9CiAKICAgICBwZXJsX2NvbnN0cnVjdChteV9wZXJsKTsKIApAQCAtNjYsMTEgKzcwLDIxIEBACiAgICAgUExfZXhpdF9mbGFncyB8PSBQRVJMX0VYSVRfREVTVFJVQ1RfRU5EOwogI2VuZGlmCiAKLSAgICBpZiAocGVybF9wYXJzZShteV9wZXJsLCB4c19pbml0LCAyLCBlbWJlZGFyZ3MsIE5VTEwpKQorICAgIHJlcyA9IHBlcmxfcGFyc2UobXlfcGVybCwgeHNfaW5pdCwgMiwgZW1iZWRhcmdzLCBOVUxMKTsKKyAgICBpZiAocmVzKSB7CisgICAgICAgIHNubXBfbG9nKExPR19FUlIsCisgICAgICAgICAgICAgICAgICJlbWJlZGRlZCBwZXJsIHN1cHBvcnQgZmFpbGVkIHRvIGluaXRpYWxpemUgKHBlcmxfcGFyc2UoJXMpIgorICAgICAgICAgICAgICAgICAiIHJldHVybmVkICVkKVxuIiwgZW1iZWRhcmdzWzFdLCByZXMpOwogICAgICAgICBnb3RvIGJhaWxfb3V0OworICAgIH0KIAotICAgIGlmIChwZXJsX3J1bihteV9wZXJsKSkKKyAgICByZXMgPSBwZXJsX3J1bihteV9wZXJsKTsKKyAgICBpZiAocmVzKSB7CisgICAgICAgIHNubXBfbG9nKExPR19FUlIsCisgICAgICAgICAgICAgICAgICJlbWJlZGRlZCBwZXJsIHN1cHBvcnQgZmFpbGVkIHRvIGluaXRpYWxpemUgKHBlcmxfcnVuKCkiCisgICAgICAgICAgICAgICAgICIgcmV0dXJuZWQgJWQpXG4iLCByZXMpOwogICAgICAgICBnb3RvIGJhaWxfb3V0OworICAgIH0KIAogICAgIGZyZWUoZW1iZWRhcmdzWzBdKTsKICAgICBmcmVlKGVtYmVkYXJnc1sxXSk7CkBAIC04Miw3ICs5Niw2IEBACiAgIGJhaWxfb3V0OgogICAgIGZyZWUoZW1iZWRhcmdzWzBdKTsKICAgICBmcmVlKGVtYmVkYXJnc1sxXSk7Ci0gICAgc25tcF9sb2coTE9HX0VSUiwgImVtYmVkZGVkIHBlcmwgc3VwcG9ydCBmYWlsZWQgdG8gaW5pdGlhbGl6ZVxuIik7CiAgICAgbmV0c25tcF9kc19zZXRfYm9vbGVhbihORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELCAKIAkJCSAgIE5FVFNOTVBfRFNfQUdFTlRfRElTQUJMRV9QRVJMLCAxKTsKICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9hZ2VudC9zbm1wX3ZhcnMuYyBiL2FnZW50L3NubXBfdmFycy5jCmluZGV4IGE0ZWEzNzkuLjJmOWU2ZWYgMTAwNjQ0Ci0tLSBhL2FnZW50L3NubXBfdmFycy5jCisrKyBiL2FnZW50L3NubXBfdmFycy5jCkBAIC0zNzUsNyArMzc1LDcgQEAKICAgICBjbGVhcl9zZWNfbW9kKCk7CiAgICAgY2xlYXJfc25tcF9lbnVtKCk7CiAgICAgY2xlYXJfY2FsbGJhY2soKTsKLSAgICBjbGVhcl91c2VyX2xpc3QoKTsKKyAgICBzaHV0ZG93bl9zZWNtb2QoKTsKICAgICBuZXRzbm1wX2FkZHJjYWNoZV9kZXN0cm95KCk7CiAjaWZkZWYgTkVUU05NUF9DQU5fVVNFX05MSVNUCiAgICAgZnJlZV9rbWVtKCk7CmRpZmYgLS1naXQgYS9hZ2VudC9zbm1wZC5jIGIvYWdlbnQvc25tcGQuYwppbmRleCBiM2NmZTMyLi5jZmM3YmNlIDEwMDY0NAotLS0gYS9hZ2VudC9zbm1wZC5jCisrKyBiL2FnZW50L3NubXBkLmMKQEAgLTM2LDYgKzM2LDcgQEAKICAqIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL3R5cGVzLmg+CiAKICNpZiBIQVZFX0lPX0gKQEAgLTExMSw2ICsxMTIsOSBAQAogI2lmIEhBVkVfR1JQX0gKICNpbmNsdWRlIDxncnAuaD4KICNlbmRpZgorI2lmZGVmIEhBVkVfQ1JUREJHX0gKKyNpbmNsdWRlIDxjcnRkYmcuaD4KKyNlbmRpZgogCiAjaWZuZGVmIFBBVEhfTUFYCiAjIGlmZGVmIF9QT1NJWF9QQVRIX01BWApAQCAtMTM2LDE5ICsxNDAsMTcgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oPgogCiAjaW5jbHVkZSAibTJtLmgiCisjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvYWdlbnRfbW9kdWxlX2NvbmZpZy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg+CiAKICNpbmNsdWRlICJzbm1wZC5oIgotI2luY2x1ZGUgIm1pYmdyb3VwL3N0cnVjdC5oIgotI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVzLmg+CiAKLSNpbmNsdWRlICJtaWJncm91cC91dGlsX2Z1bmNzLmgiCisjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbWliX21vZHVsZXMuaD4KIAogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaD4KIAogI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L3RhYmxlLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaD4KLSNpbmNsdWRlICJtaWJfbW9kdWxlX2luY2x1ZGVzLmgiCiAKIC8qCiAgKiBJbmNsdWRlIHdpbnNlcnZpY2UuaCB0byBzdXBwb3J0IFdpbmRvd3MgU2VydmljZQpAQCAtMTYyLDYgKzE2NCwxMCBAQAogCiAjZW5kaWYKIAorbmV0c25tcF9mZWF0dXJlX3dhbnQobG9nZ2luZ19maWxlKQorbmV0c25tcF9mZWF0dXJlX3dhbnQobG9nZ2luZ19zdGRpbykKK25ldHNubXBfZmVhdHVyZV93YW50KGxvZ2dpbmdfc3lzbG9nKQorCiAvKgogICogR2xvYmFscy4KICAqLwpAQCAtMTg5LDkgKzE5NSwxMSBAQAogY29uc3QgY2hhciAgICAgKmFwcF9uYW1lID0gInNubXBkIjsKIAogZXh0ZXJuIGludCAgICAgIG5ldHNubXBfcnVubmluZzsKKyNpZmRlZiBVU0lOR19VVElMX0ZVTkNTX1JFU1RBUlRfTU9EVUxFCiBleHRlcm4gY2hhciAgICoqYXJndnJlc3RhcnRwOwogZXh0ZXJuIGNoYXIgICAgKmFyZ3ZyZXN0YXJ0OwogZXh0ZXJuIGNoYXIgICAgKmFyZ3ZyZXN0YXJ0bmFtZTsKKyNlbmRpZiAvKiBVU0lOR19VVElMX0ZVTkNTX1JFU1RBUlRfTU9EVUxFICovCiAKICNpZmRlZiBVU0lOR19TTVVYX01PRFVMRQogI2luY2x1ZGUgPG1pYmdyb3VwL3NtdXgvc211eC5oPgpAQCAtMzg2LDkgKzM5NCwxMyBAQAogewogICAgIC8qIERpc2FibGUgYWxsIGxvZ3MgYW5kIGxvZyB0aGUgZXJyb3IgdmlhIHN5c2xvZyAqLwogICAgIHNubXBfZGlzYWJsZV9sb2coKTsKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NZU0xPRwogICAgIHNubXBfZW5hYmxlX3N5c2xvZygpOworI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TWVNMT0cgKi8KICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiRXhpdGluZyBvbiBzaWduYWwgJWRcbiIsIGEpOworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1lTTE9HCiAgICAgc25tcF9kaXNhYmxlX3N5c2xvZygpOworI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TWVNMT0cgKi8KICAgICBleGl0KDEpOwogfQogCkBAIC00MjksMTYgKzQ0MSwxMiBAQAogICAgIGludCAgICAgICAgICAgICBkb250X2ZvcmsgPSAwLCBkb19oZWxwID0gMDsKICAgICBpbnQgICAgICAgICAgICAgbG9nX3NldCA9IDA7CiAgICAgaW50ICAgICAgICAgICAgIGFnZW50X21vZGUgPSAtMTsKLSAgICBjaGFyICAgICAgICAgICAqY3B0ciwgKiphcmd2cHRyOwogICAgIGNoYXIgICAgICAgICAgICpwaWRfZmlsZSA9IE5VTEw7CiAgICAgY2hhciAgICAgICAgICAgIG9wdGlvbl9jb21wYXRhYmlsaXR5W10gPSAiLUxlIjsKICNpZiBIQVZFX0dFVFBJRAogICAgIGludCBmZDsKICAgICBGSUxFICAgICAgICAgICAqUElEOwogI2VuZGlmCi0jaWYgSEFWRV9HRVRQV05BTSAmJiBIQVZFX1BXRF9ICi0gICAgc3RydWN0IHBhc3N3ZCAgKmluZm87Ci0jZW5kaWYKIAogI2lmbmRlZiBXSU4zMgogICAgIC8qCkBAIC01MTgsMTEgKzUyNiwxMyBAQAogICAgICAgICAgICAgYXJndltpXSA9IG9wdGlvbl9jb21wYXRhYmlsaXR5OyAgICAgICAgICAgIAogICAgIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1lTTE9HCiAjaWZkZWYgV0lOMzIKICAgICBzbm1wX2xvZ19zeXNsb2duYW1lKGFwcF9uYW1lX2xvbmcpOwogI2Vsc2UKICAgICBzbm1wX2xvZ19zeXNsb2duYW1lKGFwcF9uYW1lKTsKICNlbmRpZgorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TWVNMT0cgKi8KICAgICBuZXRzbm1wX2RzX3NldF9zdHJpbmcoTkVUU05NUF9EU19MSUJSQVJZX0lELAogICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9BUFBUWVBFLCBhcHBfbmFtZSk7CiAKQEAgLTU2Niw5ICs1NzYsOSBAQAogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSAnZCc6Ci0gICAgICAgICAgICBzbm1wX3NldF9kdW1wX3BhY2tldCgrK3NubXBfZHVtcF9wYWNrZXQpOwotICAgICAgICAgICAgbmV0c25tcF9kc19zZXRfYm9vbGVhbihORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELCAKLQkJCQkgICBORVRTTk1QX0RTX0FHRU5UX1ZFUkJPU0UsIDEpOworICAgICAgICAgICAgbmV0c25tcF9kc19zZXRfYm9vbGVhbihORVRTTk1QX0RTX0xJQlJBUllfSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCX0RVTVBfUEFDS0VULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3NubXBfZHVtcF9wYWNrZXQpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSAnRCc6CkBAIC01OTIsMTkgKzYwMiwxOCBAQAogICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICBnaWQ7CiAKICAgICAgICAgICAgICAgICBnaWQgPSBzdHJ0b3VsKG9wdGFyZywgJmVjcCwgMTApOworI2lmIEhBVkVfR0VUR1JOQU0gJiYgSEFWRV9QV0RfSAogICAgICAgICAgICAgICAgIGlmICgqZWNwKSB7Ci0jaWYgSEFWRV9HRVRQV05BTSAmJiBIQVZFX1BXRF9ICiAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBncm91cCAgKmluZm87CisKICAgICAgICAgICAgICAgICAgICAgaW5mbyA9IGdldGdybmFtKG9wdGFyZyk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpbmZvKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnaWQgPSBpbmZvLT5ncl9naWQ7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGdpZCA9IGluZm8gPyBpbmZvLT5ncl9naWQgOiAtMTsKKyAgICAgICAgICAgICAgICAgICAgZW5kZ3JlbnQoKTsKKyAgICAgICAgICAgICAgICB9CiAjZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQmFkIGdyb3VwIGlkOiAlc1xuIiwgb3B0YXJnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQoMSk7Ci0jaWYgSEFWRV9HRVRQV05BTSAmJiBIQVZFX1BXRF9ICi0gICAgICAgICAgICAgICAgICAgIH0KLSNlbmRpZgorICAgICAgICAgICAgICAgIGlmIChnaWQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQmFkIGdyb3VwIGlkOiAlc1xuIiwgb3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgZXhpdCgxKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgbmV0c25tcF9kc19zZXRfaW50KE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsIAogCQkJCSAgIE5FVFNOTVBfRFNfQUdFTlRfR1JPVVBJRCwgZ2lkKTsKQEAgLTYzMCw2ICs2MzksNyBAQAogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX0ZJTEUKICAgICAgICAgY2FzZSAnbCc6CiAgICAgICAgICAgICBwcmludGYoIldhcm5pbmc6IC1sIG9wdGlvbiBpcyBkZXByZWNhdGVkLCB1c2UgLUxmIDxmaWxlPiBpbnN0ZWFkXG4iKTsKICAgICAgICAgICAgIGlmIChvcHRhcmcgIT0gTlVMTCkgewpAQCAtNjQ3LDYgKzY1Nyw3IEBACiAgICAgICAgICAgICAgICAgdXNhZ2UoYXJndlswXSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfRklMRSAqLwogCiAgICAgICAgIGNhc2UgJ0wnOgogCSAgICBpZiAgKHNubXBfbG9nX29wdGlvbnMoIG9wdGFyZywgYXJnYywgYXJndiApIDwgMCApIHsKQEAgLTY5Miw3ICs3MDMsOCBAQAogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSAncSc6Ci0gICAgICAgICAgICBzbm1wX3NldF9xdWlja19wcmludCgxKTsKKyAgICAgICAgICAgIG5ldHNubXBfZHNfc2V0X2Jvb2xlYW4oTkVUU05NUF9EU19MSUJSQVJZX0lELCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfUVVJQ0tfUFJJTlQsIDEpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSAncic6CkBAIC03MDAsNiArNzEyLDcgQEAKIAkJCQkgICAgICBORVRTTk1QX0RTX0FHRU5UX05PX1JPT1RfQUNDRVNTKTsKICAgICAgICAgICAgIGJyZWFrOwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TWVNMT0cKICAgICAgICAgY2FzZSAncyc6CiAgICAgICAgICAgICBwcmludGYoIldhcm5pbmc6IC1zIG9wdGlvbiBpcyBkZXByZWNhdGVkLCB1c2UgLUxzZCBpbnN0ZWFkXG4iKTsKICAgICAgICAgICAgIHNubXBfZW5hYmxlX3N5c2xvZygpOwpAQCAtNzUzLDYgKzc2Niw3IEBACiAgICAgICAgICAgICAgICAgdXNhZ2UoYXJndlswXSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1lTTE9HICovCiAKICAgICAgICAgY2FzZSAnVSc6CiAgICAgICAgICAgICBuZXRzbm1wX2RzX3RvZ2dsZV9ib29sZWFuKE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsIApAQCAtNzY2LDE4ICs3ODAsMTggQEAKICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgdWlkOwogCiAgICAgICAgICAgICAgICAgdWlkID0gc3RydG91bChvcHRhcmcsICZlY3AsIDEwKTsKKyNpZiBIQVZFX0dFVFBXTkFNICYmIEhBVkVfUFdEX0gKICAgICAgICAgICAgICAgICBpZiAoKmVjcCkgewotI2lmIEhBVkVfR0VUUFdOQU0gJiYgSEFWRV9QV0RfSAorICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGFzc3dkICAqaW5mbzsKKwogICAgICAgICAgICAgICAgICAgICBpbmZvID0gZ2V0cHduYW0ob3B0YXJnKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGluZm8pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpZCA9IGluZm8tPnB3X3VpZDsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdWlkID0gaW5mbyA/IGluZm8tPnB3X3VpZCA6IC0xOworICAgICAgICAgICAgICAgICAgICBlbmRwd2VudCgpOworICAgICAgICAgICAgICAgIH0KICNlbmRpZgotICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJCYWQgdXNlciBpZDogJXNcbiIsIG9wdGFyZyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBleGl0KDEpOwotI2lmIEhBVkVfR0VUUFdOQU0gJiYgSEFWRV9QV0RfSAotICAgICAgICAgICAgICAgICAgICB9Ci0jZW5kaWYKKyAgICAgICAgICAgICAgICBpZiAodWlkIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkJhZCB1c2VyIGlkOiAlc1xuIiwgb3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgZXhpdCgxKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgbmV0c25tcF9kc19zZXRfaW50KE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsIAogCQkJCSAgIE5FVFNOTVBfRFNfQUdFTlRfVVNFUklELCB1aWQpOwpAQCAtODQxLDYgKzg1NSw3IEBACiAgICAgfQogCiAgICAgaWYgKG9wdGluZCA8IGFyZ2MpIHsKKyNpZm5kZWYgTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVAogICAgICAgICAvKgogICAgICAgICAgKiBUaGVyZSBhcmUgb3B0aW9uYWwgdHJhbnNwb3J0IGFkZHJlc3NlcyBvbiB0aGUgY29tbWFuZCBsaW5lLiAgCiAgICAgICAgICAqLwpAQCAtODY2LDUxICs4ODEsNjIgQEAKICAgICAgICAgREVCVUdNU0dUTCgoInNubXBkL21haW4iLCAicG9ydCBzcGVjOiAlc1xuIiwKICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9kc19nZXRfc3RyaW5nKE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsIAogCQkJCQkgIE5FVFNOTVBfRFNfQUdFTlRfUE9SVFMpKSk7CisjZWxzZSAvKiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUICovCisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiWW91IHNwZWNpZmllZCBwb3J0cyB0byBvcGVuOyB0aGlzIGFnZW50IHdhcyBidWlsdCB0byBvbmx5IHNlbmQgbm90aWZpY2F0aW9uc1xuIik7CisgICAgICAgIGV4aXQoMSk7CisjZW5kaWYgLyogTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVCAqLwogICAgIH0KIAogI2lmZGVmIE5FVFNOTVBfTE9HRklMRQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfRklMRQogICAgIGlmICgwID09IGxvZ19zZXQpCiAgICAgICAgIHNubXBfZW5hYmxlX2ZpbGVsb2coTkVUU05NUF9MT0dGSUxFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfZHNfZ2V0X2Jvb2xlYW4oTkVUU05NUF9EU19MSUJSQVJZX0lELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfQVBQRU5EX0xPR0ZJTEVTKSk7CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX0ZJTEUgKi8KICNlbmRpZgogCi0gICAgLyoKLSAgICAgKiBJbml0aWFsaXplIGEgYXJndiBzZXQgdG8gdGhlIGN1cnJlbnQgZm9yIHJlc3RhcnRpbmcgdGhlIGFnZW50LiAgIAotICAgICAqLwotICAgIGFyZ3ZyZXN0YXJ0cCA9IChjaGFyICoqKW1hbGxvYygoYXJnYyArIDIpICogc2l6ZW9mKGNoYXIgKikpOwotICAgIGFyZ3ZwdHIgPSBhcmd2cmVzdGFydHA7Ci0gICAgZm9yIChpID0gMCwgcmV0ID0gMTsgaSA8IGFyZ2M7IGkrKykgewotICAgICAgICByZXQgKz0gc3RybGVuKGFyZ3ZbaV0pICsgMTsKKyNpZmRlZiBVU0lOR19VVElMX0ZVTkNTX1JFU1RBUlRfTU9EVUxFCisgICAgeworICAgICAgICAvKgorICAgICAgICAgKiBJbml0aWFsaXplIGEgYXJndiBzZXQgdG8gdGhlIGN1cnJlbnQgZm9yIHJlc3RhcnRpbmcgdGhlIGFnZW50LgorICAgICAgICAgKi8KKyAgICAgICAgY2hhciAqY3B0ciwgKiphcmd2cHRyOworCisgICAgICAgIGFyZ3ZyZXN0YXJ0cCA9IChjaGFyICoqKW1hbGxvYygoYXJnYyArIDIpICogc2l6ZW9mKGNoYXIgKikpOworICAgICAgICBhcmd2cHRyID0gYXJndnJlc3RhcnRwOworICAgICAgICBmb3IgKGkgPSAwLCByZXQgPSAxOyBpIDwgYXJnYzsgaSsrKSB7CisgICAgICAgICAgICByZXQgKz0gc3RybGVuKGFyZ3ZbaV0pICsgMTsKKyAgICAgICAgfQorICAgICAgICBhcmd2cmVzdGFydCA9IChjaGFyICopIG1hbGxvYyhyZXQpOworICAgICAgICBhcmd2cmVzdGFydG5hbWUgPSAoY2hhciAqKSBtYWxsb2Moc3RybGVuKGFyZ3ZbMF0pICsgMSk7CisgICAgICAgIGlmICghYXJndnJlc3RhcnRwIHx8ICFhcmd2cmVzdGFydCB8fCAhYXJndnJlc3RhcnRuYW1lKSB7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIm1hbGxvYyBmYWlsdXJlIHByb2Nlc3NpbmcgYXJndnJlc3RhcnRcbiIpOworICAgICAgICAgICAgZXhpdCgxKTsKKyAgICAgICAgfQorICAgICAgICBzdHJjcHkoYXJndnJlc3RhcnRuYW1lLCBhcmd2WzBdKTsKKworICAgICAgICBmb3IgKGNwdHIgPSBhcmd2cmVzdGFydCwgaSA9IDA7IGkgPCBhcmdjOyBpKyspIHsKKyAgICAgICAgICAgIHN0cmNweShjcHRyLCBhcmd2W2ldKTsKKyAgICAgICAgICAgICooYXJndnB0cisrKSA9IGNwdHI7CisgICAgICAgICAgICBjcHRyICs9IHN0cmxlbihhcmd2W2ldKSArIDE7CisgICAgICAgIH0KICAgICB9Ci0gICAgYXJndnJlc3RhcnQgPSAoY2hhciAqKSBtYWxsb2MocmV0KTsKLSAgICBhcmd2cmVzdGFydG5hbWUgPSAoY2hhciAqKSBtYWxsb2Moc3RybGVuKGFyZ3ZbMF0pICsgMSk7Ci0gICAgaWYgKCFhcmd2cmVzdGFydHAgfHwgIWFyZ3ZyZXN0YXJ0IHx8ICFhcmd2cmVzdGFydG5hbWUpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJtYWxsb2MgZmFpbHVyZSBwcm9jZXNzaW5nIGFyZ3ZyZXN0YXJ0XG4iKTsKLSAgICAgICAgZXhpdCgxKTsKLSAgICB9Ci0gICAgc3RyY3B5KGFyZ3ZyZXN0YXJ0bmFtZSwgYXJndlswXSk7CisjZW5kaWYgLyogVVNJTkdfVVRJTF9GVU5DU19SRVNUQVJUX01PRFVMRSAqLworCiAgICAgaWYgKGFnZW50X21vZGUgPT0gLTEpIHsKLSAgICAgICAgaWYgKHN0cnN0cihhcmd2cmVzdGFydG5hbWUsICJhZ2VudHhkIikgIT0gTlVMTCkgewotICAgICAgICAgICAgbmV0c25tcF9kc19zZXRfYm9vbGVhbihORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELCAKKyAgICAgICAgaWYgKHN0cnN0cihhcmd2WzBdLCAiYWdlbnR4ZCIpICE9IE5VTEwpIHsKKyAgICAgICAgICAgIG5ldHNubXBfZHNfc2V0X2Jvb2xlYW4oTkVUU05NUF9EU19BUFBMSUNBVElPTl9JRCwKIAkJCQkgICBORVRTTk1QX0RTX0FHRU5UX1JPTEUsIFNVQl9BR0VOVCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBuZXRzbm1wX2RzX3NldF9ib29sZWFuKE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsIAorICAgICAgICAgICAgbmV0c25tcF9kc19zZXRfYm9vbGVhbihORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELAogCQkJCSAgIE5FVFNOTVBfRFNfQUdFTlRfUk9MRSwgTUFTVEVSX0FHRU5UKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIG5ldHNubXBfZHNfc2V0X2Jvb2xlYW4oTkVUU05NUF9EU19BUFBMSUNBVElPTl9JRCwgCisgICAgICAgIG5ldHNubXBfZHNfc2V0X2Jvb2xlYW4oTkVUU05NUF9EU19BUFBMSUNBVElPTl9JRCwKIAkJCSAgICAgICBORVRTTk1QX0RTX0FHRU5UX1JPTEUsIGFnZW50X21vZGUpOwogICAgIH0KIAotICAgIGZvciAoY3B0ciA9IGFyZ3ZyZXN0YXJ0LCBpID0gMDsgaSA8IGFyZ2M7IGkrKykgewotICAgICAgICBzdHJjcHkoY3B0ciwgYXJndltpXSk7Ci0gICAgICAgICooYXJndnB0cisrKSA9IGNwdHI7Ci0gICAgICAgIGNwdHIgKz0gc3RybGVuKGFyZ3ZbaV0pICsgMTsKLSAgICB9Ci0gICAgKmNwdHIgPSAwOwotICAgICphcmd2cHRyID0gTlVMTDsKLQogICAgIFNPQ0tfU1RBUlRVUDsKICAgICBpZiAoaW5pdF9hZ2VudChhcHBfbmFtZSkgIT0gMCkgewogICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiQWdlbnQgaW5pdGlhbGl6YXRpb24gZmFpbGVkXG4iKTsKQEAgLTkyNyw3ICs5NTMsOCBAQAogICAgICAgICAvKgogICAgICAgICAgKiBTb21lIGVycm9yIG9wZW5pbmcgb25lIG9mIHRoZSBzcGVjaWZpZWQgYWdlbnQgdHJhbnNwb3J0cy4gIAogICAgICAgICAgKi8KLSAgICAgICAgRXhpdCgxKTsgICAgICAgICAgICAgICAgLyogIEV4aXQgbG9ncyBleGl0IHZhbCBmb3IgdXMgICovCisgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJTZXJ2ZXIgRXhpdGluZyB3aXRoIGNvZGUgMVxuIik7CisgICAgICAgIGV4aXQoMSk7CiAgICAgfQogCiAgICAgLyoKQEAgLTkzNiwxMiArOTYzLDIwIEBACiAgICAgaWYoIWRvbnRfZm9yaykgewogICAgICAgICBpbnQgcXVpdCA9ICEgbmV0c25tcF9kc19nZXRfYm9vbGVhbihORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0FHRU5UX1FVSVRfSU1NRURJQVRFTFkpOwotICAgICAgICByZXQgPSBuZXRzbm1wX2RhZW1vbml6ZShxdWl0LCBzbm1wX3N0ZGVycmxvZ19zdGF0dXMoKSk7CisgICAgICAgIHJldCA9IG5ldHNubXBfZGFlbW9uaXplKHF1aXQsCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TVERJTworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbm1wX3N0ZGVycmxvZ19zdGF0dXMoKQorI2Vsc2UgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NURElPICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1RESU8gKi8KKyAgICAgICAgICAgICk7CiAgICAgICAgIC8qCiAgICAgICAgICAqIHh4eC1ya3M6IGRvIHdlIGNhcmUgaWYgZm9yayBmYWlscz8gSSB0aGluayB3ZSBzaG91bGQuLi4KICAgICAgICAgICovCi0gICAgICAgIGlmKHJldCAhPSAwKQotICAgICAgICAgICAgRXhpdCgxKTsgICAgICAgICAgICAgICAgLyogIEV4aXQgbG9ncyBleGl0IHZhbCBmb3IgdXMgICovCisgICAgICAgIGlmKHJldCAhPSAwKSB7CisgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiU2VydmVyIEV4aXRpbmcgd2l0aCBjb2RlIDFcbiIpOworICAgICAgICAgICAgZXhpdCgxKTsKKyAgICAgICAgfQogICAgIH0KIAogI2lmIEhBVkVfR0VUUElECkBAIC0xMDE1LDYgKzEwNTAsOCBAQAogICAgIGlmICgodWlkID0gbmV0c25tcF9kc19nZXRfaW50KE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsIAogCQkJCSAgTkVUU05NUF9EU19BR0VOVF9VU0VSSUQpKSA+IDApIHsKICNpZiBIQVZFX0dFVFBXTkFNICYmIEhBVkVfUFdEX0ggJiYgSEFWRV9JTklUR1JPVVBTCisgICAgICAgIHN0cnVjdCBwYXNzd2QgKmluZm87CisKICAgICAgICAgLyoKICAgICAgICAgICogU2V0IHN1cHBsZW1lbnRhcnkgZ3JvdXBzIGJlZm9yZSBjaGFuZ2luZyBVSUQKICAgICAgICAgICogICAod2hpY2ggcHJvYmFibHkgaW52b2x2ZXMgZ2l2aW5nIHVwIHByaXZpbGVnZXMpCkBAIC0xMDMwLDYgKzEwNjcsNyBAQAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQorICAgICAgICBlbmRwd2VudCgpOwogI2VuZGlmCiAgICAgICAgIERFQlVHTVNHVEwoKCJzbm1wZC9tYWluIiwgIkNoYW5naW5nIHVpZCB0byAlZC5cbiIsIHVpZCkpOwogICAgICAgICBpZiAoc2V0dWlkKHVpZCkgPT0gLTEpIHsKQEAgLTEwOTEsOSArMTEyOSwxMiBAQAogICAgIGFnZW50X3N0YXR1cyA9IEFHRU5UX1NUT1BQRUQ7CiAjZW5kaWYKIAorI2lmZGVmIFVTSU5HX1VUSUxfRlVOQ1NfUkVTVEFSVF9NT0RVTEUKICAgICBTTk1QX0ZSRUUoYXJndnJlc3RhcnRuYW1lKTsKICAgICBTTk1QX0ZSRUUoYXJndnJlc3RhcnQpOwogICAgIFNOTVBfRlJFRShhcmd2cmVzdGFydHApOworI2VuZGlmIC8qIFVTSU5HX1VUSUxfRlVOQ1NfUkVTVEFSVF9NT0RVTEUgKi8KKwogICAgIFNPQ0tfQ0xFQU5VUDsKICAgICByZXR1cm4gMDsKIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRW5kIG1haW4oKSAtLSBzbm1wZCAqLwpAQCAtMTIyNywyMiArMTI2OCwyNyBAQAogICAgICAgICB9CiAjZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTSU5HX1NNVVhfTU9EVUxFICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9GRF9FVkVOVF9NQU5BR0VSCiAgICAgICAgIG5ldHNubXBfZXh0ZXJuYWxfZXZlbnRfaW5mbzIoJm51bWZkcywgJnJlYWRmZHMsICZ3cml0ZWZkcywgJmV4Y2VwdGZkcyk7CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9GRF9FVkVOVF9NQU5BR0VSICovCiAKICAgICByZXNlbGVjdDoKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUdJU1RFUl9TSUdOQUwKICAgICAgICAgZm9yIChpID0gMDsgaSA8IE5VTV9FWFRFUk5BTF9TSUdTOyBpKyspIHsKICAgICAgICAgICAgIGlmIChleHRlcm5hbF9zaWduYWxfc2NoZWR1bGVkW2ldKSB7CiAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfc2lnbmFsX3NjaGVkdWxlZFtpXS0tOwogICAgICAgICAgICAgICAgIGV4dGVybmFsX3NpZ25hbF9oYW5kbGVyW2ldKGkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUdJU1RFUl9TSUdOQUwgKi8KIAogICAgICAgICBERUJVR01TR1RMKCgic25tcGQvc2VsZWN0IiwgInNlbGVjdCggbnVtZmRzPSVkLCAuLi4sIHR2cD0lcClcbiIsCiAgICAgICAgICAgICAgICAgICAgIG51bWZkcywgdHZwKSk7Ci0gICAgICAgIGlmKHR2cCkKLSAgICAgICAgICAgIERFQlVHTVNHVEwoKCJ0aW1lciIsICJ0dnAgJWxkLiVsZFxuIiwgdHZwLT50dl9zZWMsIHR2cC0+dHZfdXNlYykpOwotICAgICAgICBjb3VudCA9IG5ldF9zbm1wX2xhcmdlX2ZkX3NldF9zZWxlY3QobnVtZmRzLCAmcmVhZGZkcywgJndyaXRlZmRzLCAmZXhjZXB0ZmRzLAotCQkJCSAgICAgIHR2cCk7CisgICAgICAgIGlmICh0dnApCisgICAgICAgICAgICBERUJVR01TR1RMKCgidGltZXIiLCAidHZwICVsZC4lbGRcbiIsIChsb25nKSB0dnAtPnR2X3NlYywKKyAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSB0dnAtPnR2X3VzZWMpKTsKKyAgICAgICAgY291bnQgPSBuZXRzbm1wX2xhcmdlX2ZkX3NldF9zZWxlY3QobnVtZmRzLCAmcmVhZGZkcywgJndyaXRlZmRzLCAmZXhjZXB0ZmRzLAorCQkJCSAgICAgdHZwKTsKICAgICAgICAgREVCVUdNU0dUTCgoInNubXBkL3NlbGVjdCIsICJyZXR1cm5lZCwgY291bnQgPSAlZFxuIiwgY291bnQpKTsKIAogICAgICAgICBpZiAoY291bnQgPiAwKSB7CkBAIC0xMjcxLDggKzEzMTcsMTIgQEAKICAgICAgICAgICAgIH0KIAogI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0lOR19TTVVYX01PRFVMRSAqLworCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfRkRfRVZFTlRfTUFOQUdFUgogICAgICAgICAgICAgbmV0c25tcF9kaXNwYXRjaF9leHRlcm5hbF9ldmVudHMyKCZjb3VudCwgJnJlYWRmZHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJndyaXRlZmRzLCAmZXhjZXB0ZmRzKTsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0ZEX0VWRU5UX01BTkFHRVIgKi8KKwogICAgICAgICAgICAgLyogSWYgdGhlcmUgYXJlIHN0aWxsIGV2ZW50cyBsZWZ0b3ZlciwgcHJvY2VzcyB0aGVtICovCiAgICAgICAgICAgICBpZiAoY291bnQgPiAwKSB7CiAgICAgICAgICAgICAgIHNubXBfcmVhZDIoJnJlYWRmZHMpOwpAQCAtMTQxMCw2ICsxNDYwLDEwIEBACiAgICAgaW50ICAgICAgICAgICAgIG5SdW5UeXBlID0gUlVOX0FTX0NPTlNPTEU7CiAgICAgaW50ICAgICAgICAgICAgIHF1aWV0ID0gMDsKICAgICAKKyNpZiAwCisgICAgX0NydFNldERiZ0ZsYWcoX0NSVERCR19BTExPQ19NRU1fREYgfCBfQ1JUREJHX0xFQUtfQ0hFQ0tfREYgLyp8IF9DUlREQkdfQ0hFQ0tfQUxXQVlTX0RGKi8pOworI2VuZGlmCisKICAgICBuUnVuVHlwZSA9IFBhcnNlQ21kTGluZUZvclNlcnZpY2VPcHRpb24oYXJnYywgYXJndiwgJnF1aWV0KTsKIAogICAgIHN3aXRjaCAoblJ1blR5cGUpIHsKZGlmZiAtLWdpdCBhL2FwcHMvTWFrZWZpbGUuZGVwZW5kIGIvYXBwcy9NYWtlZmlsZS5kZXBlbmQKaW5kZXggOTg1YzJjOS4uMTVjYjE3NiAxMDA2NDQKLS0tIGEvYXBwcy9NYWtlZmlsZS5kZXBlbmQKKysrIGIvYXBwcy9NYWtlZmlsZS5kZXBlbmQKQEAgLTUsNiArNSw3IEBACiAuL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N5c3YuaAogLi9hZ2VudHh0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmgKIC4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaAorLi9hZ2VudHh0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9hZ2VudHh0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTI0LDExICsyNSw4IEBACiAuL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9hZ2VudHh0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9hZ2VudHh0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9hZ2VudHh0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtNzMsNDQgKzcxLDkgQEAKIC4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAotLi9hZ2VudHh0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKLS4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCi0uL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfbW9kdWxlX2NvbmZpZy5oCi0uL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCi0uL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgKLS4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgKLS4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmgKLS4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oCi0uL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mZF9ldmVudF9tYW5hZ2VyLmgKIC4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oCi0uL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaAotLi9hZ2VudHh0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaAotLi9hZ2VudHh0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgKLS4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oCi0uL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oCi0uL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2NhbGFyLmgKLS4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zY2FsYXJfZ3JvdXAuaAotLi9hZ2VudHh0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaAotLi9hZ2VudHh0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmgKLS4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmgKLS4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmgKLS4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgKLS4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmgKLS4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaAotLi9hZ2VudHh0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3Jvd19tZXJnZS5oCi0uL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmgKLS4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaAotLi9hZ2VudHh0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21vZGVfZW5kX2NhbGwuaAotLi9hZ2VudHh0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgKLS4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgKLS4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgKLS4vYWdlbnR4dHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV90ZGF0YS5oCi0uL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaAotLi9hZ2VudHh0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oCi0uL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaAotLi9hZ2VudHh0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oCi0uL2FnZW50eHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmgKIC4vYWdlbnR4dHJhcC5sbzogLi4vYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuaAogLi9hZ2VudHh0cmFwLmxvOiAuLi9hZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmgKIC4vYWdlbnR4dHJhcC5sbzogLi4vYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmgKQEAgLTEzNCwxMSArOTcsOCBAQAogLi9lbmNvZGVfa2V5Y2hhbmdlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vZW5jb2RlX2tleWNoYW5nZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2VuY29kZV9rZXljaGFuZ2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL2VuY29kZV9rZXljaGFuZ2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vZW5jb2RlX2tleWNoYW5nZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2VuY29kZV9rZXljaGFuZ2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9lbmNvZGVfa2V5Y2hhbmdlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9lbmNvZGVfa2V5Y2hhbmdlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2VuY29kZV9rZXljaGFuZ2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9lbmNvZGVfa2V5Y2hhbmdlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9lbmNvZGVfa2V5Y2hhbmdlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vZW5jb2RlX2tleWNoYW5nZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTE0OCw2ICsxMDgsNyBAQAogLi9lbmNvZGVfa2V5Y2hhbmdlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9lbmNvZGVfa2V5Y2hhbmdlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9lbmNvZGVfa2V5Y2hhbmdlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vZW5jb2RlX2tleWNoYW5nZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2VuY29kZV9rZXljaGFuZ2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9lbmNvZGVfa2V5Y2hhbmdlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2VuY29kZV9rZXljaGFuZ2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTE4Miw5ICsxNDMsMTEgQEAKIC4vZW5jb2RlX2tleWNoYW5nZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vZW5jb2RlX2tleWNoYW5nZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vZW5jb2RlX2tleWNoYW5nZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2VuY29kZV9rZXljaGFuZ2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vZW5jb2RlX2tleWNoYW5nZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zbm1wYnVsa2dldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAotLi9zbm1wYnVsa2dldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKKy4vc25tcGJ1bGtnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmgKKy4vc25tcGJ1bGtnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAogLi9zbm1wYnVsa2dldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oCiAuL3NubXBidWxrZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaAogLi9zbm1wYnVsa2dldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCkBAIC0yMDIsMTEgKzE2NSw4IEBACiAuL3NubXBidWxrZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vc25tcGJ1bGtnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zbm1wYnVsa2dldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcGJ1bGtnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vc25tcGJ1bGtnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zbm1wYnVsa2dldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBidWxrZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9zbm1wYnVsa2dldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zbm1wYnVsa2dldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXBidWxrZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9zbm1wYnVsa2dldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3NubXBidWxrZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjE2LDYgKzE3Niw3IEBACiAuL3NubXBidWxrZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbm1wYnVsa2dldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc25tcGJ1bGtnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zbm1wYnVsa2dldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXBidWxrZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc25tcGJ1bGtnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc25tcGJ1bGtnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTI1MCw2ICsyMTEsNyBAQAogLi9zbm1wYnVsa2dldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc25tcGJ1bGtnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NubXBidWxrZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc25tcGJ1bGtnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc25tcGJ1bGtnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc25tcGJ1bGt3YWxrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL3NubXBidWxrd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCkBAIC0yNzEsMTEgKzIzMyw4IEBACiAuL3NubXBidWxrd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3NubXBidWxrd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3NubXBidWxrd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcGJ1bGt3YWxrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3NubXBidWxrd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBidWxrd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBidWxrd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vc25tcGJ1bGt3YWxrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3NubXBidWxrd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXBidWxrd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vc25tcGJ1bGt3YWxrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vc25tcGJ1bGt3YWxrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjg1LDYgKzI0NCw3IEBACiAuL3NubXBidWxrd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vc25tcGJ1bGt3YWxrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9zbm1wYnVsa3dhbGsubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zbm1wYnVsa3dhbGsubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zbm1wYnVsa3dhbGsubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9zbm1wYnVsa3dhbGsubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc25tcGJ1bGt3YWxrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0zMTksNiArMjc5LDcgQEAKIC4vc25tcGJ1bGt3YWxrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zbm1wYnVsa3dhbGsubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NubXBidWxrd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NubXBidWxrd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zbm1wYnVsa3dhbGsubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc25tcGRlbHRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL3NubXBkZWx0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCkBAIC0zMzksMTEgKzMwMCw4IEBACiAuL3NubXBkZWx0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3NubXBkZWx0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3NubXBkZWx0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcGRlbHRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3NubXBkZWx0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBkZWx0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBkZWx0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vc25tcGRlbHRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3NubXBkZWx0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXBkZWx0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vc25tcGRlbHRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vc25tcGRlbHRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMzUzLDYgKzMxMSw3IEBACiAuL3NubXBkZWx0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vc25tcGRlbHRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9zbm1wZGVsdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zbm1wZGVsdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zbm1wZGVsdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9zbm1wZGVsdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc25tcGRlbHRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0zODcsMTEgKzM0NiwxMSBAQAogLi9zbm1wZGVsdGEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NubXBkZWx0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc25tcGRlbHRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc25tcGRlbHRhLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NubXBkZWx0YS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zbm1wZGYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKIC4vc25tcGRmLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKLS4vc25tcGRmLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKLS4vc25tcGRmLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKKy4vc25tcGRmLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmggLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiAuL3NubXBkZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oCiAuL3NubXBkZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgKIC4vc25tcGRmLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaApAQCAtNDA3LDExICszNjYsOCBAQAogLi9zbm1wZGYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zbm1wZGYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zbm1wZGYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3NubXBkZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zbm1wZGYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zbm1wZGYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9zbm1wZGYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3NubXBkZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zbm1wZGYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9zbm1wZGYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3NubXBkZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3NubXBkZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTQyMCw2ICszNzYsNyBAQAogLi9zbm1wZGYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbm1wZGYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NubXBkZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NubXBkZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXBkZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NubXBkZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zbm1wZGYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTQ1Myw5ICs0MTAsMTEgQEAKIC4vc25tcGRmLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zbm1wZGYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NubXBkZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NubXBkZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zbm1wZGYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc25tcGdldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAotLi9zbm1wZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oIC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAorLi9zbm1wZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oCisuL3NubXBnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAogLi9zbm1wZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgKIC4vc25tcGdldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgKIC4vc25tcGdldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCkBAIC00NzMsMTEgKzQzMiw4IEBACiAuL3NubXBnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zbm1wZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vc25tcGdldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcGdldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zbm1wZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vc25tcGdldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3NubXBnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vc25tcGdldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXBnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3NubXBnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9zbm1wZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtNDg2LDYgKzQ0Miw3IEBACiAuL3NubXBnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbm1wZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9zbm1wZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc25tcGdldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXBnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9zbm1wZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NubXBnZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTUyMCw2ICs0NzcsNyBAQAogLi9zbm1wZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zbm1wZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zbm1wZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc25tcGdldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zbm1wZ2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NubXBnZXRuZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL3NubXBnZXRuZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKQEAgLTU0MSwxMSArNDk5LDggQEAKIC4vc25tcGdldG5leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zbm1wZ2V0bmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3NubXBnZXRuZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9zbm1wZ2V0bmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zbm1wZ2V0bmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBnZXRuZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vc25tcGdldG5leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3NubXBnZXRuZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3NubXBnZXRuZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vc25tcGdldG5leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3NubXBnZXRuZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vc25tcGdldG5leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC01NTUsNiArNTEwLDcgQEAKIC4vc25tcGdldG5leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3NubXBnZXRuZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9zbm1wZ2V0bmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NubXBnZXRuZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcGdldG5leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9zbm1wZ2V0bmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zbm1wZ2V0bmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtNTg5LDExICs1NDUsMTEgQEAKIC4vc25tcGdldG5leHQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NubXBnZXRuZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zbm1wZ2V0bmV4dC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NubXBnZXRuZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NubXBnZXRuZXh0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NubXBzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKIC4vc25tcHNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCi0uL3NubXBzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAotLi9zbm1wc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKKy4vc25tcHNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oIC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAogLi9zbm1wc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgKIC4vc25tcHNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgKIC4vc25tcHNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgKQEAgLTYxMCwxMSArNTY2LDggQEAKIC4vc25tcHNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3NubXBzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zbm1wc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9zbm1wc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3NubXBzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zbm1wc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vc25tcHNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vc25tcHNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zbm1wc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vc25tcHNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vc25tcHNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3NubXBzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC02MjMsNiArNTc2LDcgQEAKIC4vc25tcHNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oIC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3NubXBzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NubXBzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zbm1wc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcHNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NubXBzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc25tcHNldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtNjU2LDYgKzYxMCw3IEBACiAuL3NubXBzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NubXBzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NubXBzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zbm1wc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NubXBzZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc25tcHN0YXR1cy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogLi9zbm1wc3RhdHVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oIC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtNjc2LDExICs2MzEsOCBAQAogLi9zbm1wc3RhdHVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vc25tcHN0YXR1cy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3NubXBzdGF0dXMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3NubXBzdGF0dXMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vc25tcHN0YXR1cy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBzdGF0dXMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9zbm1wc3RhdHVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9zbm1wc3RhdHVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3NubXBzdGF0dXMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9zbm1wc3RhdHVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9zbm1wc3RhdHVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vc25tcHN0YXR1cy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTY5MCw2ICs2NDIsNyBAQAogLi9zbm1wc3RhdHVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbm1wc3RhdHVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9zbm1wc3RhdHVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc25tcHN0YXR1cy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXBzdGF0dXMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9zbm1wc3RhdHVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NubXBzdGF0dXMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTcyNCw2ICs2NzcsNyBAQAogLi9zbm1wc3RhdHVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zbm1wc3RhdHVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zbm1wc3RhdHVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc25tcHN0YXR1cy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zbm1wc3RhdHVzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NubXB0YWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogLi9zbm1wdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaApAQCAtNzQ0LDExICs2OTgsOCBAQAogLi9zbm1wdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zbm1wdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zbm1wdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3NubXB0YWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zbm1wdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zbm1wdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9zbm1wdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3NubXB0YWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zbm1wdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9zbm1wdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3NubXB0YWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3NubXB0YWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTc1OCw2ICs3MDksNyBAQAogLi9zbm1wdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3NubXB0YWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc25tcHRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc25tcHRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcHRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc25tcHRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NubXB0YWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtNzkyLDExICs3NDQsMTEgQEAKIC4vc25tcHRhYmxlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zbm1wdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NubXB0YWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NubXB0YWJsZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zbm1wdGFibGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc25tcHRlc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKIC4vc25tcHRlc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAotLi9zbm1wdGVzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCi0uL3NubXB0ZXN0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKKy4vc25tcHRlc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaCAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKIC4vc25tcHRlc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaAogLi9zbm1wdGVzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgKIC4vc25tcHRlc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oCkBAIC04MTMsMTEgKzc2NSw4IEBACiAuL3NubXB0ZXN0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vc25tcHRlc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zbm1wdGVzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcHRlc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vc25tcHRlc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zbm1wdGVzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXB0ZXN0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9zbm1wdGVzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zbm1wdGVzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXB0ZXN0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9zbm1wdGVzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3NubXB0ZXN0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtODI3LDYgKzc3Niw3IEBACiAuL3NubXB0ZXN0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbm1wdGVzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc25tcHRlc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zbm1wdGVzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXB0ZXN0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc25tcHRlc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc25tcHRlc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTg2MCwxMCArODEwLDEzIEBACiAuL3NubXB0ZXN0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zbm1wdGVzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc25tcHRlc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zbm1wdGVzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zbm1wdGVzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zbm1wdGxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL3NubXB0bHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zbm1wdGxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKLS4vc25tcHRscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oIC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAorLi9zbm1wdGxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKKy4vc25tcHRscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiAuL3NubXB0bHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaAogLi9zbm1wdGxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaAogLi9zbm1wdGxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaApAQCAtODgwLDExICs4MzMsOCBAQAogLi9zbm1wdGxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vc25tcHRscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3NubXB0bHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3NubXB0bHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vc25tcHRscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXB0bHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9zbm1wdGxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9zbm1wdGxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3NubXB0bHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9zbm1wdGxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9zbm1wdGxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vc25tcHRscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTkyNiw2ICs4NzYsNyBAQAogLi9zbm1wdGxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zbm1wdGxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zbm1wdGxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc25tcHRscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zbm1wdGxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NubXB0bHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogLi9zbm1wdGxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgKQEAgLTk4OSwxMSArOTQwLDggQEAKIC4vc25tcHRyYW5zbGF0ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3NubXB0cmFuc2xhdGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zbm1wdHJhbnNsYXRlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9zbm1wdHJhbnNsYXRlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3NubXB0cmFuc2xhdGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zbm1wdHJhbnNsYXRlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vc25tcHRyYW5zbGF0ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vc25tcHRyYW5zbGF0ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zbm1wdHJhbnNsYXRlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vc25tcHRyYW5zbGF0ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vc25tcHRyYW5zbGF0ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3NubXB0cmFuc2xhdGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0xMDAzLDYgKzk1MSw3IEBACiAuL3NubXB0cmFuc2xhdGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3NubXB0cmFuc2xhdGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NubXB0cmFuc2xhdGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zbm1wdHJhbnNsYXRlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcHRyYW5zbGF0ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NubXB0cmFuc2xhdGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc25tcHRyYW5zbGF0ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTA0NywxMSArOTk2LDggQEAKIC4vc25tcHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zbm1wdHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3NubXB0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9zbm1wdHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zbm1wdHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXB0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vc25tcHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3NubXB0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3NubXB0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vc25tcHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3NubXB0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vc25tcHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0xMDYxLDYgKzEwMDcsNyBAQAogLi9zbm1wdHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vc25tcHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NubXB0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc25tcHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zbm1wdHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NubXB0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NubXB0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xMDk0LDYgKzEwNDEsNyBAQAogLi9zbm1wdHJhcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc25tcHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NubXB0cmFwLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc25tcHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc25tcHRyYXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc25tcHRyYXBkX2F1dGgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKIC4vc25tcHRyYXBkX2F1dGgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaApAQCAtMTExNSwxMSArMTA2Myw4IEBACiAuL3NubXB0cmFwZF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vc25tcHRyYXBkX2F1dGgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zbm1wdHJhcGRfYXV0aC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcHRyYXBkX2F1dGgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vc25tcHRyYXBkX2F1dGgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zbm1wdHJhcGRfYXV0aC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXB0cmFwZF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9zbm1wdHJhcGRfYXV0aC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zbm1wdHJhcGRfYXV0aC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXB0cmFwZF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9zbm1wdHJhcGRfYXV0aC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3NubXB0cmFwZF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMTEyOSw2ICsxMDc0LDcgQEAKIC4vc25tcHRyYXBkX2F1dGgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3NubXB0cmFwZF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9zbm1wdHJhcGRfYXV0aC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NubXB0cmFwZF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcHRyYXBkX2F1dGgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9zbm1wdHJhcGRfYXV0aC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zbm1wdHJhcGRfYXV0aC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTE2Myw2ICsxMTA5LDcgQEAKIC4vc25tcHRyYXBkX2F1dGgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NubXB0cmFwZF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zbm1wdHJhcGRfYXV0aC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NubXB0cmFwZF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NubXB0cmFwZF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NubXB0cmFwZF9hdXRoLmxvOiBzbm1wdHJhcGRfaGFuZGxlcnMuaCBzbm1wdHJhcGRfYXV0aC5oIHNubXB0cmFwZF9kcy5oCiAuL3NubXB0cmFwZF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X21vZHVsZV9jb25maWcuaApAQCAtMTE4OCwxMSArMTEzNSw4IEBACiAuL3NubXB0cmFwZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3NubXB0cmFwZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3NubXB0cmFwZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcHRyYXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3NubXB0cmFwZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXB0cmFwZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXB0cmFwZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vc25tcHRyYXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3NubXB0cmFwZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXB0cmFwZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vc25tcHRyYXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vc25tcHRyYXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMTIwMiw2ICsxMTQ2LDcgQEAKIC4vc25tcHRyYXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbm1wdHJhcGQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NubXB0cmFwZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NubXB0cmFwZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXB0cmFwZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NubXB0cmFwZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zbm1wdHJhcGQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTEyMzYsNiArMTE4MSw3IEBACiAuL3NubXB0cmFwZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc25tcHRyYXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zbm1wdHJhcGQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zbm1wdHJhcGQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc25tcHRyYXBkLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NubXB0cmFwZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3NubXB0cmFwZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xMjgwLDYgKzEyMjYsNyBAQAogLi9zbm1wdHJhcGQubG86IC4uL2FnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oCiAuL3NubXB0cmFwZC5sbzogLi4vYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmgKIC4vc25tcHRyYXBkX2hhbmRsZXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL3NubXB0cmFwZF9oYW5kbGVycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXB0cmFwZF9oYW5kbGVycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgKIC4vc25tcHRyYXBkX2hhbmRsZXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKIC4vc25tcHRyYXBkX2hhbmRsZXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgKQEAgLTEyOTksMTEgKzEyNDYsOCBAQAogLi9zbm1wdHJhcGRfaGFuZGxlcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zbm1wdHJhcGRfaGFuZGxlcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zbm1wdHJhcGRfaGFuZGxlcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3NubXB0cmFwZF9oYW5kbGVycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zbm1wdHJhcGRfaGFuZGxlcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zbm1wdHJhcGRfaGFuZGxlcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9zbm1wdHJhcGRfaGFuZGxlcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3NubXB0cmFwZF9oYW5kbGVycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zbm1wdHJhcGRfaGFuZGxlcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9zbm1wdHJhcGRfaGFuZGxlcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3NubXB0cmFwZF9oYW5kbGVycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3NubXB0cmFwZF9oYW5kbGVycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTEzNDcsNiArMTI5MSw3IEBACiAuL3NubXB0cmFwZF9oYW5kbGVycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc25tcHRyYXBkX2hhbmRsZXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zbm1wdHJhcGRfaGFuZGxlcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zbm1wdHJhcGRfaGFuZGxlcnMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc25tcHRyYXBkX2hhbmRsZXJzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NubXB0cmFwZF9oYW5kbGVycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAuL3NubXB0cmFwZF9oYW5kbGVycy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oCkBAIC0xNDA5LDExICsxMzU0LDggQEAKIC4vc25tcHRyYXBkX2xvZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3NubXB0cmFwZF9sb2cubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zbm1wdHJhcGRfbG9nLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9zbm1wdHJhcGRfbG9nLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3NubXB0cmFwZF9sb2cubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zbm1wdHJhcGRfbG9nLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vc25tcHRyYXBkX2xvZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vc25tcHRyYXBkX2xvZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zbm1wdHJhcGRfbG9nLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vc25tcHRyYXBkX2xvZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vc25tcHRyYXBkX2xvZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3NubXB0cmFwZF9sb2cubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0xNDIzLDYgKzEzNjUsNyBAQAogLi9zbm1wdHJhcGRfbG9nLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbm1wdHJhcGRfbG9nLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9zbm1wdHJhcGRfbG9nLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc25tcHRyYXBkX2xvZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXB0cmFwZF9sb2cubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9zbm1wdHJhcGRfbG9nLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NubXB0cmFwZF9sb2cubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTE0NTcsMTMgKzE0MDAsMTQgQEAKIC4vc25tcHRyYXBkX2xvZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc25tcHRyYXBkX2xvZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc25tcHRyYXBkX2xvZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NubXB0cmFwZF9sb2cubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc25tcHRyYXBkX2xvZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCBzbm1wdHJhcGRfbG9nLmgKIC4vc25tcHRyYXBkX2xvZy5sbzogc25tcHRyYXBkX2RzLmgKIC4vc25tcHRyYXBkX3NxbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9zbm1wdHJhcGRfc3FsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcHVzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogLi9zbm1wdXNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKLS4vc25tcHVzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCi0uL3NubXB1c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAorLi9zbm1wdXNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmggLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiAuL3NubXB1c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaAogLi9zbm1wdXNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaAogLi9zbm1wdXNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaApAQCAtMTQ4MCwxMSArMTQyNCw4IEBACiAuL3NubXB1c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zbm1wdXNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vc25tcHVzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcHVzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zbm1wdXNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vc25tcHVzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXB1c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3NubXB1c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vc25tcHVzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXB1c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3NubXB1c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9zbm1wdXNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMTQ5Myw2ICsxNDM0LDcgQEAKIC4vc25tcHVzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oIC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3NubXB1c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NubXB1c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zbm1wdXNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcHVzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NubXB1c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc25tcHVzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTUyNiwxMSArMTQ2OCwxMSBAQAogLi9zbm1wdXNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zbm1wdXNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zbm1wdXNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc25tcHVzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zbm1wdXNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NubXB2YWNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL3NubXB2YWNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKLS4vc25tcHZhY20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAotLi9zbm1wdmFjbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCisuL3NubXB2YWNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmggLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiAuL3NubXB2YWNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgKIC4vc25tcHZhY20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oCiAuL3NubXB2YWNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaApAQCAtMTU0NywxMSArMTQ4OSw4IEBACiAuL3NubXB2YWNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vc25tcHZhY20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zbm1wdmFjbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcHZhY20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vc25tcHZhY20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zbm1wdmFjbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXB2YWNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9zbm1wdmFjbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zbm1wdmFjbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXB2YWNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9zbm1wdmFjbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3NubXB2YWNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMTU2MSw2ICsxNTAwLDcgQEAKIC4vc25tcHZhY20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3NubXB2YWNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9zbm1wdmFjbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NubXB2YWNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcHZhY20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9zbm1wdmFjbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zbm1wdmFjbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTU5NCw2ICsxNTM0LDcgQEAKIC4vc25tcHZhY20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NubXB2YWNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zbm1wdmFjbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NubXB2YWNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NubXB2YWNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NubXB3YWxrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL3NubXB3YWxrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKQEAgLTE2MTUsMTEgKzE1NTYsOCBAQAogLi9zbm1wd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3NubXB3YWxrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vc25tcHdhbGsubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3NubXB3YWxrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3NubXB3YWxrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vc25tcHdhbGsubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9zbm1wd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vc25tcHdhbGsubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vc25tcHdhbGsubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9zbm1wd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vc25tcHdhbGsubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9zbm1wd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTE2MjksNiArMTU2Nyw3IEBACiAuL3NubXB3YWxrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbm1wd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc25tcHdhbGsubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zbm1wd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXB3YWxrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc25tcHdhbGsubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc25tcHdhbGsubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTE2NjIsNiArMTYwMSw3IEBACiAuL3NubXB3YWxrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zbm1wd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc25tcHdhbGsubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zbm1wd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zbm1wd2Fsay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zc2h0b3NubXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKIC4vc25tcG5ldHN0YXQvaWYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKQEAgLTE2ODQsMTEgKzE2MjQsOCBAQAogLi9zbm1wbmV0c3RhdC9pZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3NubXBuZXRzdGF0L2lmLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vc25tcG5ldHN0YXQvaWYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3NubXBuZXRzdGF0L2lmLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3NubXBuZXRzdGF0L2lmLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vc25tcG5ldHN0YXQvaWYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9zbm1wbmV0c3RhdC9pZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vc25tcG5ldHN0YXQvaWYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vc25tcG5ldHN0YXQvaWYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9zbm1wbmV0c3RhdC9pZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vc25tcG5ldHN0YXQvaWYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9zbm1wbmV0c3RhdC9pZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTE2OTgsNiArMTYzNSw3IEBACiAuL3NubXBuZXRzdGF0L2lmLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbm1wbmV0c3RhdC9pZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc25tcG5ldHN0YXQvaWYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zbm1wbmV0c3RhdC9pZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXBuZXRzdGF0L2lmLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc25tcG5ldHN0YXQvaWYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc25tcG5ldHN0YXQvaWYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTE3MzIsNiArMTY3MCw3IEBACiAuL3NubXBuZXRzdGF0L2lmLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zbm1wbmV0c3RhdC9pZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc25tcG5ldHN0YXQvaWYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zbm1wbmV0c3RhdC9pZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zbm1wbmV0c3RhdC9pZi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9zbm1wbmV0c3RhdC9pZi5sbzogLi9zbm1wbmV0c3RhdC9tYWluLmgKIC4vc25tcG5ldHN0YXQvaWYubG86IC4vc25tcG5ldHN0YXQvbmV0c3RhdC5oCkBAIC0xNzU1LDExICsxNjk0LDggQEAKIC4vc25tcG5ldHN0YXQvaW5ldDYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zbm1wbmV0c3RhdC9pbmV0Ni5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3NubXBuZXRzdGF0L2luZXQ2LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9zbm1wbmV0c3RhdC9pbmV0Ni5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zbm1wbmV0c3RhdC9pbmV0Ni5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBuZXRzdGF0L2luZXQ2LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vc25tcG5ldHN0YXQvaW5ldDYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3NubXBuZXRzdGF0L2luZXQ2LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3NubXBuZXRzdGF0L2luZXQ2LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vc25tcG5ldHN0YXQvaW5ldDYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3NubXBuZXRzdGF0L2luZXQ2LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vc25tcG5ldHN0YXQvaW5ldDYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0xNzY5LDYgKzE3MDUsNyBAQAogLi9zbm1wbmV0c3RhdC9pbmV0Ni5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vc25tcG5ldHN0YXQvaW5ldDYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NubXBuZXRzdGF0L2luZXQ2LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc25tcG5ldHN0YXQvaW5ldDYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zbm1wbmV0c3RhdC9pbmV0Ni5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NubXBuZXRzdGF0L2luZXQ2LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NubXBuZXRzdGF0L2luZXQ2LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xODAzLDYgKzE3NDAsNyBAQAogLi9zbm1wbmV0c3RhdC9pbmV0Ni5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc25tcG5ldHN0YXQvaW5ldDYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NubXBuZXRzdGF0L2luZXQ2LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc25tcG5ldHN0YXQvaW5ldDYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc25tcG5ldHN0YXQvaW5ldDYubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc25tcG5ldHN0YXQvaW5ldDYubG86IC4vc25tcG5ldHN0YXQvbWFpbi5oIC4vc25tcG5ldHN0YXQvbmV0c3RhdC5oCiAuL3NubXBuZXRzdGF0L2luZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKQEAgLTE4MjUsMTEgKzE3NjMsOCBAQAogLi9zbm1wbmV0c3RhdC9pbmV0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vc25tcG5ldHN0YXQvaW5ldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3NubXBuZXRzdGF0L2luZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3NubXBuZXRzdGF0L2luZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vc25tcG5ldHN0YXQvaW5ldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBuZXRzdGF0L2luZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9zbm1wbmV0c3RhdC9pbmV0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9zbm1wbmV0c3RhdC9pbmV0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3NubXBuZXRzdGF0L2luZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9zbm1wbmV0c3RhdC9pbmV0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9zbm1wbmV0c3RhdC9pbmV0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vc25tcG5ldHN0YXQvaW5ldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTE4MzksNiArMTc3NCw3IEBACiAuL3NubXBuZXRzdGF0L2luZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3NubXBuZXRzdGF0L2luZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NubXBuZXRzdGF0L2luZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zbm1wbmV0c3RhdC9pbmV0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcG5ldHN0YXQvaW5ldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NubXBuZXRzdGF0L2luZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc25tcG5ldHN0YXQvaW5ldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTg3Myw4ICsxODA5LDc4IEBACiAuL3NubXBuZXRzdGF0L2luZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NubXBuZXRzdGF0L2luZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NubXBuZXRzdGF0L2luZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zbm1wbmV0c3RhdC9pbmV0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NubXBuZXRzdGF0L2luZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc25tcG5ldHN0YXQvaW5ldC5sbzogLi9zbm1wbmV0c3RhdC9tYWluLmggLi9zbm1wbmV0c3RhdC9uZXRzdGF0LmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3BkdV9hcGkuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmFjdG9yeS5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2xpc3Rfc3NsbC5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2l0ZXJhdG9yLmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0LmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oCisuL3NubXBuZXRzdGF0L2luZXR4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKKy4vc25tcG5ldHN0YXQvaW5ldHgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAorLi9zbm1wbmV0c3RhdC9pbmV0eC5sbzogLi9zbm1wbmV0c3RhdC9tYWluLmggLi9zbm1wbmV0c3RhdC9uZXRzdGF0LmgKIC4vc25tcG5ldHN0YXQvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogLi9zbm1wbmV0c3RhdC9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vc25tcG5ldHN0YXQvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCkBAIC0xODk1LDExICsxOTAxLDggQEAKIC4vc25tcG5ldHN0YXQvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3NubXBuZXRzdGF0L21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zbm1wbmV0c3RhdC9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9zbm1wbmV0c3RhdC9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3NubXBuZXRzdGF0L21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zbm1wbmV0c3RhdC9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vc25tcG5ldHN0YXQvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vc25tcG5ldHN0YXQvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zbm1wbmV0c3RhdC9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vc25tcG5ldHN0YXQvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vc25tcG5ldHN0YXQvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3NubXBuZXRzdGF0L21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0xOTA5LDYgKzE5MTIsNyBAQAogLi9zbm1wbmV0c3RhdC9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbm1wbmV0c3RhdC9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9zbm1wbmV0c3RhdC9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc25tcG5ldHN0YXQvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXBuZXRzdGF0L21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9zbm1wbmV0c3RhdC9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NubXBuZXRzdGF0L21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTE5NDMsNiArMTk0Nyw3IEBACiAuL3NubXBuZXRzdGF0L21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL3NubXBuZXRzdGF0L21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NubXBuZXRzdGF0L21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zbm1wbmV0c3RhdC9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL3NubXBuZXRzdGF0L21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc25tcG5ldHN0YXQvbWFpbi5sbzogLi9zbm1wbmV0c3RhdC9tYWluLmggLi9zbm1wbmV0c3RhdC9uZXRzdGF0LmgKIC4vc25tcG5ldHN0YXQvcm91dGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKQEAgLTE5NjUsMTEgKzE5NzAsOCBAQAogLi9zbm1wbmV0c3RhdC9yb3V0ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3NubXBuZXRzdGF0L3JvdXRlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vc25tcG5ldHN0YXQvcm91dGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3NubXBuZXRzdGF0L3JvdXRlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3NubXBuZXRzdGF0L3JvdXRlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vc25tcG5ldHN0YXQvcm91dGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9zbm1wbmV0c3RhdC9yb3V0ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vc25tcG5ldHN0YXQvcm91dGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vc25tcG5ldHN0YXQvcm91dGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9zbm1wbmV0c3RhdC9yb3V0ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vc25tcG5ldHN0YXQvcm91dGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9zbm1wbmV0c3RhdC9yb3V0ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTE5NzksNiArMTk4MSw3IEBACiAuL3NubXBuZXRzdGF0L3JvdXRlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbm1wbmV0c3RhdC9yb3V0ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc25tcG5ldHN0YXQvcm91dGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zbm1wbmV0c3RhdC9yb3V0ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXBuZXRzdGF0L3JvdXRlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc25tcG5ldHN0YXQvcm91dGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc25tcG5ldHN0YXQvcm91dGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTIwMTMsOCArMjAxNiw3OCBAQAogLi9zbm1wbmV0c3RhdC9yb3V0ZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc25tcG5ldHN0YXQvcm91dGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NubXBuZXRzdGF0L3JvdXRlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc25tcG5ldHN0YXQvcm91dGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc25tcG5ldHN0YXQvcm91dGUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc25tcG5ldHN0YXQvcm91dGUubG86IC4vc25tcG5ldHN0YXQvbWFpbi5oIC4vc25tcG5ldHN0YXQvbmV0c3RhdC5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS91Y2RfY29tcGF0LmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mYWN0b3J5LmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9saXN0X3NzbGwuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfaXRlcmF0b3IuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc25tcG5ldHN0YXQvcm91dGV4LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCisuL3NubXBuZXRzdGF0L3JvdXRleC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAorLi9zbm1wbmV0c3RhdC9yb3V0ZXgubG86IC4vc25tcG5ldHN0YXQvbWFpbi5oIC4vc25tcG5ldHN0YXQvbmV0c3RhdC5oCiAuL3NubXBuZXRzdGF0L3dpbnN0dWIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKIC4vc25tcG5ldHN0YXQvd2luc3R1Yi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL3NubXBuZXRzdGF0L3dpbnN0dWIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaApAQCAtMjAzNSwxMSArMjEwOCw4IEBACiAuL3NubXBuZXRzdGF0L3dpbnN0dWIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zbm1wbmV0c3RhdC93aW5zdHViLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vc25tcG5ldHN0YXQvd2luc3R1Yi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcG5ldHN0YXQvd2luc3R1Yi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zbm1wbmV0c3RhdC93aW5zdHViLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vc25tcG5ldHN0YXQvd2luc3R1Yi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBuZXRzdGF0L3dpbnN0dWIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3NubXBuZXRzdGF0L3dpbnN0dWIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vc25tcG5ldHN0YXQvd2luc3R1Yi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXBuZXRzdGF0L3dpbnN0dWIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3NubXBuZXRzdGF0L3dpbnN0dWIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9zbm1wbmV0c3RhdC93aW5zdHViLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjA0OSw2ICsyMTE5LDcgQEAKIC4vc25tcG5ldHN0YXQvd2luc3R1Yi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vc25tcG5ldHN0YXQvd2luc3R1Yi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc25tcG5ldHN0YXQvd2luc3R1Yi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NubXBuZXRzdGF0L3dpbnN0dWIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zbm1wbmV0c3RhdC93aW5zdHViLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc25tcG5ldHN0YXQvd2luc3R1Yi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zbm1wbmV0c3RhdC93aW5zdHViLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0yMDgzLDQgKzIxNTQsNSBAQAogLi9zbm1wbmV0c3RhdC93aW5zdHViLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zbm1wbmV0c3RhdC93aW5zdHViLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zbm1wbmV0c3RhdC93aW5zdHViLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vc25tcG5ldHN0YXQvd2luc3R1Yi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zbm1wbmV0c3RhdC93aW5zdHViLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCmRpZmYgLS1naXQgYS9hcHBzL01ha2VmaWxlLmluIGIvYXBwcy9NYWtlZmlsZS5pbgppbmRleCA3NjkzNTJkLi43NzQwNGRkIDEwMDY0NAotLS0gYS9hcHBzL01ha2VmaWxlLmluCisrKyBiL2FwcHMvTWFrZWZpbGUuaW4KQEAgLTQsNiArNCw3IEBACiAjCiAKIHRvcF9idWlsZGRpcj0uLgorbXlzdWJkaXI9YXBwcwogCiAjIHVzZSBHTlUgdnBhdGgsIGlmIGF2YWlsYWJsZSwgdG8gb25seSBzZXQgYSBwYXRoIGZvciBzb3VyY2UgYW5kIGhlYWRlcnMKICMgVlBBVEggd2lsbCBwaWNrIHVwIG9iamVjdHMgdG9vLCB3aGljaCBpcyBiYWQgaWYgeW91IGFyZSBzaGFyaW5nIGEKQEAgLTE5LDE2ICsyMCwzNSBAQAogCiBATkVUU05NUF9CVUlMRF9TU0hfUFJPR19UUlVFQFNTSElOU1RBTExCSU5QUk9HID0gc3NodG9zbm1wJChFWEVFWFQpCiBATkVUU05NUF9CVUlMRF9TU0hfUFJPR19GQUxTRUBTU0hJTlNUQUxMQklOUFJPRyA9CitATkVUU05NUF9CVUlMRF9TU0hfUFJPR19UUlVFQFNTSEZFQVRVUkVQUk9HID0gc3NodG9zbm1wLmZ0CitATkVUU05NUF9CVUlMRF9TU0hfUFJPR19GQUxTRUBTU0hGRUFUVVJFUFJPRyA9CiBATkVUU05NUF9CVUlMRF9UTFNfUFJPR19UUlVFQFRMU0lOU1RBTExCSU5QUk9HID0gc25tcHRscyQoRVhFRVhUKQogQE5FVFNOTVBfQlVJTERfVExTX1BST0dfRkFMU0VAVExTSU5TVEFMTEJJTlBST0cgPQorQE5FVFNOTVBfQlVJTERfVExTX1BST0dfVFJVRUBUTFNGRUFUVVJFUFJPRyA9IHNubXB0bHMuZnQKK0BORVRTTk1QX0JVSUxEX1RMU19QUk9HX0ZBTFNFQFRMU0ZFQVRVUkVQUk9HID0KK0BORVRTTk1QX0JVSUxEX1VTTV9QUk9HX1RSVUVAVVNNSU5TVEFMTEJJTlBST0cgPSBzbm1wdXNtJChFWEVFWFQpCitATkVUU05NUF9CVUlMRF9VU01fUFJPR19GQUxTRUBVU01JTlNUQUxMQklOUFJPRyA9CitATkVUU05NUF9CVUlMRF9VU01fUFJPR19UUlVFQFVTTUZFQVRVUkVQUk9HID0gc25tcHVzbS5mdAorQE5FVFNOTVBfQlVJTERfVVNNX1BST0dfRkFMU0VAVVNNRkVBVFVSRVBST0cgPQorQE5FVFNOTVBfQlVJTERfVVNNX1BST0dfVFJVRUBFS0NTVEFMTEJJTlBST0cgPSBlbmNvZGVfa2V5Y2hhbmdlJChFWEVFWFQpCitATkVUU05NUF9CVUlMRF9VU01fUFJPR19GQUxTRUBFS0NTVEFMTEJJTlBST0cgPQorQE5FVFNOTVBfQlVJTERfVVNNX1BST0dfVFJVRUBFS0NGRUFUVVJFUFJPRyA9IGVuY29kZV9rZXljaGFuZ2UuZnQKK0BORVRTTk1QX0JVSUxEX1VTTV9QUk9HX0ZBTFNFQEVLQ0ZFQVRVUkVQUk9HID0KK0BORVRTTk1QX0JVSUxEX1NFVF9QUk9HX1RSVUVAU05NUFNFVElOU1RBTExCSU5QUk9HID0gc25tcHNldCQoRVhFRVhUKQorQE5FVFNOTVBfQlVJTERfU0VUX1BST0dfRkFMU0VAU05NUFNFVElOU1RBTExCSU5QUk9HID0gCitATkVUU05NUF9CVUlMRF9TRVRfUFJPR19UUlVFQFNOTVBTRVRGRUFUVVJFUFJPRyA9IHNubXBzZXQuZnQKK0BORVRTTk1QX0JVSUxEX1NFVF9QUk9HX0ZBTFNFQFNOTVBTRVRGRUFUVVJFUFJPRyA9IAorQE5FVFNOTVBfQlVJTERfU0VUX1BST0dfVFJVRUBTTk1QVkFDTUlOU1RBTExCSU5QUk9HID0gc25tcHZhY20kKEVYRUVYVCkKK0BORVRTTk1QX0JVSUxEX1NFVF9QUk9HX0ZBTFNFQFNOTVBWQUNNSU5TVEFMTEJJTlBST0cgPSAKK0BORVRTTk1QX0JVSUxEX1NFVF9QUk9HX1RSVUVAU05NUFZBQ01GRUFUVVJFUFJPRyA9IHNubXB2YWNtLmZ0CitATkVUU05NUF9CVUlMRF9TRVRfUFJPR19GQUxTRUBTTk1QVkFDTUZFQVRVUkVQUk9HID0gCiAKIEBORVRTTk1QX0hBVkVfQUdFTlRYX0xJQlNfVFJVRUBBR0VOVFhUUkFQID0gYWdlbnR4dHJhcCQoRVhFRVhUKQogQE5FVFNOTVBfSEFWRV9BR0VOVFhfTElCU19GQUxTRUBBR0VOVFhUUkFQID0KIAogSU5TVEFMTEJJTlBST0dTCT0gc25tcGdldCQoRVhFRVhUKSAJCQlcCiAJCXNubXBnZXRuZXh0JChFWEVFWFQpIAkJCVwKLQkJc25tcHNldCQoRVhFRVhUKSAJCQlcCi0JCXNubXB1c20kKEVYRUVYVCkJCQlcCisJCSQoU05NUFNFVElOU1RBTExCSU5QUk9HKQkgICAgICAgIFwKIAkJc25tcHdhbGskKEVYRUVYVCkgCQkJXAogCQlzbm1wYnVsa3dhbGskKEVYRUVYVCkgCQkJXAogCQlzbm1wdGFibGUkKEVYRUVYVCkJCQlcCkBAIC0zOCwxMSArNTgsMTEgQEAKIAkJc25tcHN0YXR1cyQoRVhFRVhUKSAJCQlcCiAJCXNubXBkZWx0YSQoRVhFRVhUKSAJCQlcCiAJCXNubXB0ZXN0JChFWEVFWFQpCQkJXAotCQllbmNvZGVfa2V5Y2hhbmdlJChFWEVFWFQpIAkJXAogCQlzbm1wZGYkKEVYRUVYVCkgCQkJXAogCQkkKEFHRU5UWFRSQVApCQkJCVwKLQkJc25tcHZhY20kKEVYRUVYVCkgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAkKFNTSElOU1RBTExCSU5QUk9HKSAkKFRMU0lOU1RBTExCSU5QUk9HKQorCQkkKFNOTVBWQUNNSU5TVEFMTEJJTlBST0cpCSAgICAgICAgXAorICAgICAgICAgICAgICAgICQoU1NISU5TVEFMTEJJTlBST0cpICQoVExTSU5TVEFMTEJJTlBST0cpIFwKKwkJJChVU01JTlNUQUxMQklOUFJPRykgJChFS0NTVEFMTEJJTlBST0cpCiAKIElOU1RBTExTQklOUFJPR1MgPSBzbm1wdHJhcGQkKEVYRUVYVCkKIApAQCAtNTAsNiArNzAsOCBAQAogCiBTVUJESVJTCQk9IHNubXBuZXRzdGF0CiAKK0ZFQVRVUkVGSUxFPS4uL2luY2x1ZGUvbmV0LXNubXAvZmVhdHVyZXMtYXBwcy5oCisKICMKICMgYnVpbGQgdmFyaWFibGVzLgogIwpAQCAtNjIsMTQgKzg0LDE1IEBACiBNWVNRTF9MSUJTCT0gQE1ZU1FMX0xJQlNACiBNWVNRTF9JTkNMVURFUwk9IEBNWVNRTF9JTkNMVURFU0AKIAotTElCUwkJPSAkKFVTRUxJQlMpIEBMSUJTQAorVkFMX0xJQlMJPSBAVkFMX0xJQlNACitMSUJTCQk9ICQoVVNFTElCUykgJChWQUxfTElCUykgQExJQlNACiBQRVJMTERPUFRTX0ZPUl9BUFBTID0gQFBFUkxMRE9QVFNfRk9SX0FQUFNACiBQRVJMTERPUFRTX0ZPUl9MSUJTID0gQFBFUkxMRE9QVFNfRk9SX0xJQlNACiAKICMKICMgaGFjayBmb3IgY29tcGlsaW5nIHRyYXBkIHdoZW4gYWdlbnQgaXMgZGlzYWJsZWQKLVRSQVBEV0lUSEFHRU5UICA9ICQoVVNFVFJBUExJQlMpICQoTVlTUUxfTElCUykgQEFHRU5UTElCU0AKLVRSQVBEV0lUSE9VVEFHRU5UID0gJChMSUJTKSAkKE1ZU1FMX0xJQlMpCitUUkFQRFdJVEhBR0VOVCAgPSAkKFVTRVRSQVBMSUJTKSAkKE1ZU1FMX0xJQlMpICQoVkFMX0xJQlMpIEBBR0VOVExJQlNACitUUkFQRFdJVEhPVVRBR0VOVCA9ICQoTElCUykgJChNWVNRTF9MSUJTKSAkKFZBTF9MSUJTKQogCiAjIHRoZXNlIHdpbGwgYmUgc2V0IGJ5IGNvbmZpZ3VyZSB0byBvbmUgb2YgdGhlIGFib3ZlIDIgbGluZXMKIFRSQVBMSUJTCT0gQFRSQVBMSUJTQCAkKFBFUkxMRE9QVFNfRk9SX0FQUFMpCkBAIC04NSw4ICsxMDgsMzEgQEAKIAkJICBzbm1wdHJhcGRfYXV0aC5vIHNubXB0cmFwZF9zcWwubwogTExJQlRSQVBEX09CSlMgID0gc25tcHRyYXBkX2hhbmRsZXJzLmxvIHNubXB0cmFwZF9sb2cubG8gXAogCQkgIHNubXB0cmFwZF9hdXRoLmxvIHNubXB0cmFwZF9zcWwubG8KK0xJQlRSQVBEX0ZUUyAgICA9IHNubXB0cmFwZF9oYW5kbGVycy5mdCBzbm1wdHJhcGRfbG9nLmZ0IFwKKwkJICBzbm1wdHJhcGRfYXV0aC5mdCBzbm1wdHJhcGRfc3FsLmZ0CiBPQkpTICA9ICoubwogTE9CSlMgPSAqLmxvCitGVE9CSlM9JChMSUJUUkFQRF9GVFMpIFwKKyAgICAgICBzbm1wd2Fsay5mdCBcCisgICAgICAgc25tcGJ1bGt3YWxrLmZ0IFwKKyAgICAgICBzbm1wYnVsa2dldC5mdCBcCisgICAgICAgc25tcHRyYW5zbGF0ZS5mdCBcCisgICAgICAgc25tcHN0YXR1cy5mdCBcCisgICAgICAgc25tcGdldC5mdCBcCisgICAgICAgc25tcGRlbHRhLmZ0IFwKKyAgICAgICBzbm1wdGFibGUuZnQgXAorICAgICAgIHNubXB0ZXN0LmZ0IFwKKyAgICAgICBzbm1wdHJhcGQuZnQgXAorICAgICAgIHNubXB0cmFwLmZ0IFwKKyAgICAgICAkKFNOTVBTRVRGRUFUVVJFUFJPRykgXAorICAgICAgICQoU05NUFZBQ01GRUFUVVJFUFJPRykgXAorICAgICAgICQoVVNNRkVBVFVSRVBST0cpIFwKKyAgICAgICAkKFRMU0ZFQVRVUkVQUk9HKSBcCisgICAgICAgYWdlbnR4dHJhcC5mdCBcCisgICAgICAgc25tcGdldG5leHQuZnQgXAorICAgICAgICQoRUtDRkVBVFVSRVBST0cpIFwKKyAgICAgICBzbm1wZGYuZnQgXAorICAgICAgICQoU1NIRkVBVFVSRVBST0cpCiAKIGFsbDogc3RhbmRhcmRhbGwKIApkaWZmIC0tZ2l0IGEvYXBwcy9hZ2VudHh0cmFwLmMgYi9hcHBzL2FnZW50eHRyYXAuYwppbmRleCAzNDBmMTE0Li40ZGY0MjNjIDEwMDY0NAotLS0gYS9hcHBzL2FnZW50eHRyYXAuYworKysgYi9hcHBzL2FnZW50eHRyYXAuYwpAQCAtMSw0ICsxLDUgQEAKLSAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8c2lnbmFsLmg+CkBAIC04LDEyICs5LDE2IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+Ci0jaW5jbHVkZSA8bmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oPgogCiAjaW5jbHVkZSAiLi4vYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuaCIKICNpbmNsdWRlICIuLi9hZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmgiCiAjaW5jbHVkZSAiLi4vYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmgiCiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHNubXBfc3BsaXRfcGR1KQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoc25tcF9yZXNldF92YXJfdHlwZXMpCisKKwogI2lmZGVmIF9fR05VQ19fCiAjZGVmaW5lIFVOVVNFRCBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQogI2Vsc2UKZGlmZiAtLWdpdCBhL2FwcHMvc25tcGRlbHRhLmMgYi9hcHBzL3NubXBkZWx0YS5jCmluZGV4IDcxMGZjNzcuLjA4ZTJlYmMgMTAwNjQ0Ci0tLSBhL2FwcHMvc25tcGRlbHRhLmMKKysrIGIvYXBwcy9zbm1wZGVsdGEuYwpAQCAtMjE0LDcgKzIxNCw3IEBACiAgICAgLyoKICAgICAgKiBOb3cgZmlndXJlIG91dCB0aGUgYW1vdW50IG9mIHRpbWUgdG8gc2xlZXAgCiAgICAgICovCi0gICAgdGFyZ2V0ID0gKFNlY29uZHNBdE5leHRIb3VyIC0gdHYtPnR2X3NlYykgJSBzZWNvbmRzOworICAgIHRhcmdldCA9IChpbnQpKFNlY29uZHNBdE5leHRIb3VyIC0gdHYtPnR2X3NlYykgJSBzZWNvbmRzOwogCiAgICAgcmV0dXJuIHRhcmdldDsKIH0KZGlmZiAtLWdpdCBhL2FwcHMvc25tcGRmLmMgYi9hcHBzL3NubXBkZi5jCmluZGV4IDJiNDM4ZjkuLjE0NGE1MDUgMTAwNjQ0Ci0tLSBhL2FwcHMvc25tcGRmLmMKKysrIGIvYXBwcy9zbm1wZGYuYwpAQCAtODcsOSArODcsMTQgQEAKICAgICAgICAgICAgICJcdC1DdVx0VXNlIFVDRC1TTk1QIGRza1RhYmxlIHRvIGRvIHRoZSBjYWxjdWxhdGlvbnMuXG4iKTsKICAgICBmcHJpbnRmKHN0ZGVyciwKICAgICAgICAgICAgICJcdFx0W05vcm1hbGx5IHRoZSBIT1NULVJFU09VUkNFUy1NSUIgaXMgY29uc3VsdGVkIGZpcnN0Ll1cbiIpOworICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgIlx0LUNoXHRQcmludCB1c2luZyBodW1hbiByZWFkYWJsZSBmb3JtYXQgKE1pQiwgR2lCLCBUaUIpXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICJcdC1DSFx0UHJpbnQgdXNpbmcgaHVtYW4gcmVhZGFibGUgU0kgZm9ybWF0IChNQiwgR0IsIFRCKVxuIik7CiB9CiAKIGludCAgICAgICAgICAgICB1Y2RfbWliID0gMDsKK2ludCAgICAgICAgICAgICBodW1hbl91bml0cyA9IDA7CiAKIHN0YXRpYyB2b2lkCiBvcHRQcm9jKGludCBhcmdjLCBjaGFyICpjb25zdCAqYXJndiwgaW50IG9wdCkKQEAgLTEwMSw2ICsxMDYsMTIgQEAKICAgICAgICAgICAgIGNhc2UgJ3UnOgogICAgICAgICAgICAgICAgIHVjZF9taWIgPSAxOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnaCc6CisgICAgICAgICAgICAgICAgaHVtYW5fdW5pdHMgPSAxMDI0OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnSCc6CisgICAgICAgICAgICAgICAgaHVtYW5fdW5pdHMgPSAxMDAwOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwKICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIGZsYWcgcGFzc2VkIHRvIC1DOiAlY1xuIiwgb3B0YXJnWy0xXSk7CkBAIC0xNjYsMTQgKzE3NywxNCBAQAogICAgICAgICAgICAgZXhpdCgxKTsKICAgICAgICAgfQogICAgICAgICBpZiAocmVzcG9uc2UtPmVycnN0YXQgIT0gU05NUF9FUlJfTk9FUlJPUikgewotCSAgICBmcHJpbnRmKHN0ZGVyciwgInNubXBkZjogRXJyb3IgaW4gcGFja2V0OiAlc1xuIiwKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAic25tcGRmOiBFcnJvciBpbiBwYWNrZXQ6ICVzXG4iLAogICAgICAgICAgICAgICAgICAgICBzbm1wX2VycnN0cmluZyhyZXNwb25zZS0+ZXJyc3RhdCkpOwogICAgICAgICAgICAgZXhpdCgxKTsKICAgICAgICAgfQogICAgICAgICBpZiAoc25tcF9vaWRfY29tcGFyZShyZXNwb25zZS0+dmFyaWFibGVzLT5uYW1lLAotCQkJICAgICBTTk1QX01JTihiYXNlX2xlbmd0aCwKLQkJCQkgICAgICByZXNwb25zZS0+dmFyaWFibGVzLT5uYW1lX2xlbmd0aCksCi0JCQkgICAgIGJhc2UsIGJhc2VfbGVuZ3RoKSAhPSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTk1QX01JTihiYXNlX2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UtPnZhcmlhYmxlcy0+bmFtZV9sZW5ndGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLCBiYXNlX2xlbmd0aCkgIT0gMCkKICAgICAgICAgICAgIHJ1bm5pbmcgPSAwOwogICAgICAgICBlbHNlIGlmIChyZXNwb25zZS0+dmFyaWFibGVzLT50eXBlID09IFNOTVBfTk9TVUNISU5TVEFOQ0UgfHwKICAgICAgICAgICAgICAgICAgcmVzcG9uc2UtPnZhcmlhYmxlcy0+dHlwZSA9PSBTTk1QX05PU1VDSE9CSkVDVCB8fApAQCAtMjAzLDYgKzIxNCwyNyBAQAogICAgIHJldHVybiBzYXZlZDsKIH0KIAorCisKK2NoYXIgKmZvcm1hdF9odW1hbihjaGFyICpidWYsIHNpemVfdCBsZW4sIHVuc2lnbmVkIGxvbmcgbWVtLCB1bnNpZ25lZCBsb25nIHNjYWxlKQoreworICAgIGlmIChtZW0gPj0gc2NhbGUqc2NhbGUqc2NhbGUqc2NhbGUpCisgICAgICAgIHNucHJpbnRmKGJ1ZiwgbGVuLCAiJTQuMmZQJXNCIiwgKGZsb2F0KW1lbS8oc2NhbGUqc2NhbGUqc2NhbGUqc2NhbGUpLAorCQlzY2FsZSA9PSAxMDI0ID8gImkiIDogIiIpOworICAgIGVsc2UgaWYgKG1lbSA+PSBzY2FsZSpzY2FsZSpzY2FsZSkKKyAgICAgICAgc25wcmludGYoYnVmLCBsZW4sICIlNC4yZlQlc0IiLCAoZmxvYXQpbWVtLyhzY2FsZSpzY2FsZSpzY2FsZSksCisJCXNjYWxlID09IDEwMjQgPyAiaSIgOiAiIik7CisgICAgZWxzZSBpZiAobWVtID49IHNjYWxlKnNjYWxlKQorICAgICAgICBzbnByaW50ZihidWYsIGxlbiwgIiU0LjJmRyVzQiIsIChmbG9hdCltZW0vKHNjYWxlKnNjYWxlKSwKKwkJc2NhbGUgPT0gMTAyNCA/ICJpIiA6ICIiKTsKKyAgICBlbHNlIGlmIChtZW0gPj0gc2NhbGUpCisgICAgICAgIHNucHJpbnRmKGJ1ZiwgbGVuLCAiJTQuMmZNJXNCIiwgKGZsb2F0KW1lbS9zY2FsZSwKKwkJc2NhbGUgPT0gMTAyNCA/ICJpIiA6ICIiKTsKKyAgICBlbHNlCisgICAgICAgIHNucHJpbnRmKGJ1ZiwgbGVuLCAiJTQuMmZrQiIsIChmbG9hdCltZW0pOworICAgIHJldHVybiBidWY7Cit9CisKIC8qIENvbXB1dGVzIHZhbHVlKnVuaXRzL2Rpdmlzb3IgaW4gYW4gb3ZlcmZsb3ctcHJvb2Ygd2F5LgogICovCiB1bnNpZ25lZCBsb25nCkBAIC0yNjAsOCArMjkyLDE0IEBACiAgICAgICAgIGV4aXQoMSk7CiAgICAgfQogCi0gICAgcHJpbnRmKCIlLTE4cyAlMTVzICUxNXMgJTE1cyAlNXNcbiIsICJEZXNjcmlwdGlvbiIsICJzaXplIChrQikiLAorICAgIGlmIChodW1hbl91bml0cykgeworICAgICAgICBwcmludGYoIiUtMThzICUxMHMgJTEwcyAlMTBzICU1c1xuIiwgIkRlc2NyaXB0aW9uIiwgIlNpemUiLAogICAgICAgICAgICAiVXNlZCIsICJBdmFpbGFibGUiLCAiVXNlZCUiKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHByaW50ZigiJS0xOHMgJTE1cyAlMTVzICUxNXMgJTVzXG4iLCAiRGVzY3JpcHRpb24iLCAiU2l6ZSAoa0IpIiwKKyAgICAgICAgICAgIlVzZWQiLCAiQXZhaWxhYmxlIiwgIlVzZWQlIik7CisgICAgfQogICAgIGlmICh1Y2RfbWliID09IDApIHsKICAgICAgICAgLyoKICAgICAgICAgICogKiBCZWdpbiBieSBmaW5kaW5nIGFsbCB0aGUgc3RvcmFnZSBwaWVjZXMgdGhhdCBhcmUgb2YKQEAgLTMxNiwxMiArMzU0LDI2IEBACiAgICAgICAgICAgICBpZiAodmxwMi0+dHlwZSA9PSBTTk1QX05PU1VDSElOU1RBTkNFKSBnb3RvIG5leHQ7CiAgICAgICAgICAgICBoc3VzZWQgPSB2bHAyLT52YWwuaW50ZWdlciA/ICoodmxwMi0+dmFsLmludGVnZXIpIDogMDsKIAotICAgICAgICAgICAgcHJpbnRmKCIlLTE4cyAlMTVsdSAlMTVsdSAlMTVsdSAlNGx1JSVcbiIsIGRlc2NyLAotICAgICAgICAgICAgICAgICAgIHVuaXRzID8gY29udmVydF91bml0cyhoc3NpemUsIHVuaXRzLCAxMDI0KSA6IGhzc2l6ZSwKLSAgICAgICAgICAgICAgICAgICB1bml0cyA/IGNvbnZlcnRfdW5pdHMoaHN1c2VkLCB1bml0cywgMTAyNCkgOiBoc3VzZWQsCi0gICAgICAgICAgICAgICAgICAgdW5pdHMgPyBjb252ZXJ0X3VuaXRzKGhzc2l6ZS1oc3VzZWQsIHVuaXRzLCAxMDI0KSA6IGhzc2l6ZSAtCi0gICAgICAgICAgICAgICAgICAgaHN1c2VkLCBoc3NpemUgPyBjb252ZXJ0X3VuaXRzKGhzdXNlZCwgMTAwLCBoc3NpemUpIDoKLSAgICAgICAgICAgICAgICAgICBoc3VzZWQpOworICAgICAgICAgICAgaWYgKGh1bWFuX3VuaXRzKSB7CisgICAgICAgICAgICAgICAgY2hhciBzaXplWzEwXSwgdXNlZFsxMF0sIGF2YWlsWzEwXTsKKyAgICAgICAgICAgICAgICBwcmludGYoIiUtMThzICUxMHMgJTEwcyAlMTBzICU0bHUlJVxuIiwgZGVzY3IsCisgICAgICAgICAgICAgICAgICAgIGZvcm1hdF9odW1hbihzaXplLCBzaXplb2Ygc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuaXRzID8gY29udmVydF91bml0cyhoc3NpemUsIHVuaXRzLCAxMDI0KSA6IGhzc2l6ZSwgaHVtYW5fdW5pdHMpLAorICAgICAgICAgICAgICAgICAgICBmb3JtYXRfaHVtYW4odXNlZCwgc2l6ZW9mIHVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICB1bml0cyA/IGNvbnZlcnRfdW5pdHMoaHN1c2VkLCB1bml0cywgMTAyNCkgOiBoc3VzZWQsIGh1bWFuX3VuaXRzKSwKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0X2h1bWFuKGF2YWlsLCBzaXplb2YgYXZhaWwsCisgICAgICAgICAgICAgICAgICAgICAgICB1bml0cyA/IGNvbnZlcnRfdW5pdHMoaHNzaXplLWhzdXNlZCwgdW5pdHMsIDEwMjQpIDogaHNzaXplIC0KKyAgICAgICAgICAgICAgICAgICAgaHN1c2VkLCBodW1hbl91bml0cyksCisgICAgICAgICAgICAgICAgICAgIGhzc2l6ZSA/IGNvbnZlcnRfdW5pdHMoaHN1c2VkLCAxMDAsIGhzc2l6ZSkgOiBoc3VzZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcHJpbnRmKCIlLTE4cyAlMTVsdSAlMTVsdSAlMTVsdSAlNGx1JSVcbiIsIGRlc2NyLAorICAgICAgICAgICAgICAgICAgICB1bml0cyA/IGNvbnZlcnRfdW5pdHMoaHNzaXplLCB1bml0cywgMTAyNCkgOiBoc3NpemUsCisgICAgICAgICAgICAgICAgICAgIHVuaXRzID8gY29udmVydF91bml0cyhoc3VzZWQsIHVuaXRzLCAxMDI0KSA6IGhzdXNlZCwKKyAgICAgICAgICAgICAgICAgICAgdW5pdHMgPyBjb252ZXJ0X3VuaXRzKGhzc2l6ZS1oc3VzZWQsIHVuaXRzLCAxMDI0KSA6IGhzc2l6ZSAtCisgICAgICAgICAgICAgICAgICAgIGhzdXNlZCwKKyAgICAgICAgICAgICAgICAgICAgaHNzaXplID8gY29udmVydF91bml0cyhoc3VzZWQsIDEwMCwgaHNzaXplKSA6IGhzdXNlZCk7CisgICAgICAgICAgICB9CiAKICAgICAgICAgbmV4dDoKICAgICAgICAgICAgIHZscCA9IHZscC0+bmV4dF92YXJpYWJsZTsKQEAgLTMzMSw3ICszODMsNiBAQAogICAgIH0KIAogICAgIGlmIChjb3VudCA9PSAwKSB7Ci0gICAgICAgIHNpemVfdCAgICAgICAgICB1bml0cyA9IDA7CiAgICAgICAgIC8qCiAgICAgICAgICAqIHRoZSBob3N0IHJlc291cmNlcyBtaWIgbXVzdCBub3QgYmUgc3VwcG9ydGVkLiAgTGV0cyB0cnkgdGhlCiAgICAgICAgICAqIFVDRC1TTk1QLU1JQiBhbmQgaXRzIGRza1RhYmxlIApAQCAtMzc4LDEyICs0MjksMTkgQEAKICAgICAgICAgICAgIGlmICh2bHAyLT50eXBlID09IFNOTVBfTk9TVUNISU5TVEFOQ0UpIGdvdG8gbmV4dDI7CiAgICAgICAgICAgICBoc3VzZWQgPSAqKHZscDItPnZhbC5pbnRlZ2VyKTsKIAotICAgICAgICAgICAgcHJpbnRmKCIlLTE4cyAlMTVsdSAlMTVsdSAlMTVsdSAlNGx1JSVcbiIsIGRlc2NyLAotICAgICAgICAgICAgICAgICAgIHVuaXRzID8gY29udmVydF91bml0cyhoc3NpemUsIHVuaXRzLCAxMDI0KSA6IGhzc2l6ZSwKLSAgICAgICAgICAgICAgICAgICB1bml0cyA/IGNvbnZlcnRfdW5pdHMoaHN1c2VkLCB1bml0cywgMTAyNCkgOiBoc3VzZWQsCi0gICAgICAgICAgICAgICAgICAgdW5pdHMgPyBjb252ZXJ0X3VuaXRzKGhzc2l6ZS1oc3VzZWQsIHVuaXRzLCAxMDI0KSA6IGhzc2l6ZSAtCi0gICAgICAgICAgICAgICAgICAgaHN1c2VkLCBoc3NpemUgPyBjb252ZXJ0X3VuaXRzKGhzdXNlZCwgMTAwLCBoc3NpemUpIDoKLSAgICAgICAgICAgICAgICAgICBoc3VzZWQpOworICAgICAgICAgICAgaWYgKGh1bWFuX3VuaXRzKSB7CisgICAgICAgICAgICAgICAgY2hhciBzaXplWzEwXSwgdXNlZFsxMF0sIGF2YWlsWzEwXTsKKyAgICAgICAgICAgICAgICBwcmludGYoIiUtMThzICUxMHMgJTEwcyAlMTBzICU0bHUlJVxuIiwgZGVzY3IsCisgICAgICAgICAgICAgICAgICAgIGZvcm1hdF9odW1hbihzaXplLCBzaXplb2Ygc2l6ZSwgaHNzaXplLCBodW1hbl91bml0cyksCisgICAgICAgICAgICAgICAgICAgIGZvcm1hdF9odW1hbih1c2VkLCBzaXplb2YgdXNlZCwgaHN1c2VkLCBodW1hbl91bml0cyksCisgICAgICAgICAgICAgICAgICAgIGZvcm1hdF9odW1hbihhdmFpbCwgc2l6ZW9mIGF2YWlsLCBoc3NpemUgLSBoc3VzZWQsIGh1bWFuX3VuaXRzKSwKKyAgICAgICAgICAgICAgICAgICAgaHNzaXplID8gY29udmVydF91bml0cyhoc3VzZWQsIDEwMCwgaHNzaXplKSA6IGhzdXNlZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcmludGYoIiUtMThzICUxNWx1ICUxNWx1ICUxNWx1ICU0bHUlJVxuIiwgZGVzY3IsCisgICAgICAgICAgICAgICAgICAgICBoc3NpemUsIGhzdXNlZCwgaHNzaXplIC0gaHN1c2VkLAorICAgICAgICAgICAgICAgICAgICAgaHNzaXplID8gY29udmVydF91bml0cyhoc3VzZWQsIDEwMCwgaHNzaXplKSA6IGhzdXNlZCk7CisgICAgICAgICAgICB9CiAKICAgICAgICAgbmV4dDI6CiAgICAgICAgICAgICB2bHAgPSB2bHAtPm5leHRfdmFyaWFibGU7CmRpZmYgLS1naXQgYS9hcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCBiL2FwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kCmluZGV4IGMxZmFlY2YuLmE3YWQwOTUgMTAwNjQ0Ci0tLSBhL2FwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kCisrKyBiL2FwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kCkBAIC0zNyw2ICszNyw3IEBACiAuL2lmLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9pZi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vaWYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9pZi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2lmLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vaWYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vaWYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTcxLDYgKzcyLDcgQEAKIC4vaWYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2lmLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9pZi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2lmLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2lmLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2lmLmxvOiBtYWluLmgKIC4vaWYubG86IG5ldHN0YXQuaApAQCAtMTA4LDYgKzExMCw3IEBACiAuL2luZXQ2LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9pbmV0Ni5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vaW5ldDYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9pbmV0Ni5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2luZXQ2LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vaW5ldDYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vaW5ldDYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTE0Miw2ICsxNDUsNyBAQAogLi9pbmV0Ni5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vaW5ldDYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2luZXQ2LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaW5ldDYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vaW5ldDYubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmggbWFpbi5oIG5ldHN0YXQuaAogLi9pbmV0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL2luZXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaApAQCAtMTc3LDYgKzE4MSw3IEBACiAuL2luZXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL2luZXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL2luZXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9pbmV0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vaW5ldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL2luZXQubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vaW5ldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMjExLDcgKzIxNiw3OSBAQAogLi9pbmV0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9pbmV0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9pbmV0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vaW5ldC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9pbmV0LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oIG1haW4uaCBuZXRzdGF0LmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3BkdV9hcGkuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmFjdG9yeS5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2xpc3Rfc3NsbC5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2l0ZXJhdG9yLmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0LmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oCisuL2luZXR4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKKy4vaW5ldHgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAorLi9pbmV0eC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCBtYWluLmggbmV0c3RhdC5oCiAuL21haW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKIC4vbWFpbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL21haW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaApAQCAtMjQ2LDYgKzMyMyw3IEBACiAuL21haW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL21haW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL21haW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9tYWluLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vbWFpbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL21haW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vbWFpbi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMjgwLDYgKzM1OCw3IEBACiAuL21haW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL21haW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL21haW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9tYWluLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL21haW4ubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmggbWFpbi5oIG5ldHN0YXQuaAogLi9yb3V0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogLi9yb3V0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCkBAIC0zMTUsNiArMzk0LDcgQEAKIC4vcm91dGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3JvdXRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9yb3V0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3JvdXRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vcm91dGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9yb3V0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9yb3V0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMzQ5LDcgKzQyOSw3OSBAQAogLi9yb3V0ZS5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vcm91dGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3JvdXRlLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vcm91dGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vcm91dGUubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmggbWFpbi5oIG5ldHN0YXQuaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3BkdV9hcGkuaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdWNkX2NvbXBhdC5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmFjdG9yeS5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbGlzdF9zc2xsLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2l0ZXJhdG9yLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9zbm1wdjNfYXBpLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9rZXl0b29scy5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgKKy4vcm91dGV4LmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3JvdXRleC5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAorLi9yb3V0ZXgubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmggbWFpbi5oIG5ldHN0YXQuaAogLi93aW5zdHViLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL3dpbnN0dWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi93aW5zdHViLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKQEAgLTM4NCw2ICs1MzYsNyBAQAogLi93aW5zdHViLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi93aW5zdHViLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi93aW5zdHViLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vd2luc3R1Yi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3dpbnN0dWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi93aW5zdHViLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3dpbnN0dWIubG86IC4uLy4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTQxOCw0ICs1NzEsNSBAQAogLi93aW5zdHViLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi93aW5zdHViLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi93aW5zdHViLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vd2luc3R1Yi5sbzogLi4vLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi93aW5zdHViLmxvOiAuLi8uLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCmRpZmYgLS1naXQgYS9hcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluIGIvYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgppbmRleCA0YTA3ZWJiLi4wNGFlYjQwIDEwMDY0NAotLS0gYS9hcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCisrKyBiL2FwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KQEAgLTMsNiArMyw4IEBACiAjCiAKIHRvcF9idWlsZGRpcj0uLi8uLgorbXlzdWJkaXI9YXBwcy9zbm1wbmV0c3RhdAorCiBJTlNUQUxMQklOUFJPR1M9c25tcG5ldHN0YXQkKEVYRUVYVCkKIAogIyB1c2UgR05VIHZwYXRoLCBpZiBhdmFpbGFibGUsIHRvIG9ubHkgc2V0IGEgcGF0aCBmb3Igc291cmNlIGFuZCBoZWFkZXJzCkBAIC0xNiwxNSArMTgsMTkgQEAKICMKICMgYnVpbGQgaW5mbwogIwotU1JDUz0JaW5ldC5jIGluZXQ2LmMgaWYuYyBtYWluLmMgcm91dGUuYyB3aW5zdHViLmMgZmZzLmMKLU9CSlM9CWluZXQubyBpbmV0Ni5vIGlmLm8gbWFpbi5vIHJvdXRlLm8gd2luc3R1Yi5vIGZmcy5vCi1MT0JKUz0JaW5ldC5sbyBpbmV0Ni5sbyBpZi5sbyBtYWluLmxvIHJvdXRlLmxvIHdpbnN0dWIubG8gZmZzLmxvCitTUkNTPQlpbmV0LmMgaW5ldDYuYyBpbmV0eC5jIGlmLmMgbWFpbi5jIHJvdXRlLmMgcm91dGV4LmMgd2luc3R1Yi5jIGZmcy5jCitPQkpTPQlpbmV0Lm8gaW5ldDYubyBpbmV0eC5vIGlmLm8gbWFpbi5vIHJvdXRlLm8gcm91dGV4Lm8gd2luc3R1Yi5vIGZmcy5vCitMT0JKUz0JaW5ldC5sbyBpbmV0Ni5sbyBpbmV0eC5sbyBpZi5sbyBtYWluLmxvIHJvdXRlLmxvIHJvdXRleC5sbyB3aW5zdHViLmxvIGZmcy5sbworRlRPQkpTPQlpbmV0LmZ0IGluZXQ2LmZ0IGluZXR4LmZ0IGlmLmZ0IG1haW4uZnQgcm91dGUuZnQgcm91dGV4LmZ0IHdpbnN0dWIuZnQgZmZzLmZ0CiBUQVJHPSBzbm1wbmV0c3RhdCQoRVhFRVhUKQogCitGRUFUVVJFRklMRT0uLi8uLi9pbmNsdWRlL25ldC1zbm1wL2ZlYXR1cmVzLXNubXBuZXRzdGF0LmgKKwogQ1BQRkxBR1M9ICQoVE9QX0lOQ0xVREVTKSAgQENQUEZMQUdTQAogCitWQUxfTElCUwk9IEBWQUxfTElCU0AKIFVTRUxJQlM9IC4uLy4uL3NubXBsaWIvbGlibmV0c25tcC4kKExJQl9FWFRFTlNJT04pJChMSUJfVkVSU0lPTikKLUxJQlM9CSAuLi8uLi9zbm1wbGliL2xpYm5ldHNubXAuJChMSUJfRVhURU5TSU9OKSQoTElCX1ZFUlNJT04pIEBMSUJTQAorTElCUz0JIC4uLy4uL3NubXBsaWIvbGlibmV0c25tcC4kKExJQl9FWFRFTlNJT04pJChMSUJfVkVSU0lPTikgJChWQUxfTElCUykgQExJQlNACiAKIGFsbDogc3RhbmRhcmRhbGwKIApkaWZmIC0tZ2l0IGEvYXBwcy9zbm1wbmV0c3RhdC9pZi5jIGIvYXBwcy9zbm1wbmV0c3RhdC9pZi5jCmluZGV4IDgxMzM0ZjcuLjEyNWU2YTMgMTAwNjQ0Ci0tLSBhL2FwcHMvc25tcG5ldHN0YXQvaWYuYworKysgYi9hcHBzL3NubXBuZXRzdGF0L2lmLmMKQEAgLTE1MSwxNiArMTUxLDE2IEBACiAgICAgICAgICAqICAgZGlzcGxheWluZyB0aGUgbG9jYWwgbmV0d29yayBpbmZvcm1hdGlvbgogICAgICAgICAgKi8KICAgICAgICAgY3AgPSB0bXBBZGRyLmRhdGE7Ci0gICAgICAgIGNwWzBdID0gdnAyLT5uYW1lWyAxMCBdICYgMHhmZjsKLSAgICAgICAgY3BbMV0gPSB2cDItPm5hbWVbIDExIF0gJiAweGZmOwotICAgICAgICBjcFsyXSA9IHZwMi0+bmFtZVsgMTIgXSAmIDB4ZmY7Ci0gICAgICAgIGNwWzNdID0gdnAyLT5uYW1lWyAxMyBdICYgMHhmZjsKKyAgICAgICAgY3BbMF0gPSAodWludDhfdCkgdnAyLT5uYW1lWzEwXTsKKyAgICAgICAgY3BbMV0gPSAodWludDhfdCkgdnAyLT5uYW1lWzExXTsKKyAgICAgICAgY3BbMl0gPSAodWludDhfdCkgdnAyLT5uYW1lWzEyXTsKKyAgICAgICAgY3BbM10gPSAodWludDhfdCkgdnAyLT5uYW1lWzEzXTsKICAgICAgICAgaWZBZGRyID0gdG1wQWRkci5hZGRyOwogICAgICAgICBjcCA9IHRtcEFkZHIuZGF0YTsKLSAgICAgICAgY3BbMF0gPSB2cDItPnZhbC5zdHJpbmdbIDAgXSAmIDB4ZmY7Ci0gICAgICAgIGNwWzFdID0gdnAyLT52YWwuc3RyaW5nWyAxIF0gJiAweGZmOwotICAgICAgICBjcFsyXSA9IHZwMi0+dmFsLnN0cmluZ1sgMiBdICYgMHhmZjsKLSAgICAgICAgY3BbM10gPSB2cDItPnZhbC5zdHJpbmdbIDMgXSAmIDB4ZmY7CisgICAgICAgIGNwWzBdID0gKHVpbnQ4X3QpIHZwMi0+dmFsLnN0cmluZ1swXTsKKyAgICAgICAgY3BbMV0gPSAodWludDhfdCkgdnAyLT52YWwuc3RyaW5nWzFdOworICAgICAgICBjcFsyXSA9ICh1aW50OF90KSB2cDItPnZhbC5zdHJpbmdbMl07CisgICAgICAgIGNwWzNdID0gKHVpbnQ4X3QpIHZwMi0+dmFsLnN0cmluZ1szXTsKICAgICAgICAgbWFzayA9IHRtcEFkZHIuYWRkcjsKICAgICAgICAgc25wcmludGYoIGN1cl9pZi0+cm91dGUsIDEyOCwgIiVzIiwgbmV0bmFtZShpZkFkZHIsIG1hc2spKTsKICAgICB9CkBAIC0yOTEsNyArMjkxLDYgQEAKICAgICAgICAgICAgICAgICAgKiBYWFggLSBUcnkgdG8gcmVjb3ZlciA/CiAgICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAgU05NUF9GUkVFKCBjdXJfaWYgKTsKLSAgICAgICAgICAgICAgICBjdXJfaWYgPSBOVUxMOwogICAgICAgICAgICAgICAgIGJyZWFrOyAgICAvKiBub3QgZm9yIG5vdywgbm8gKi8KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHN3aXRjaCAoIHZwLT5uYW1lWyB2YXItPm5hbWVfbGVuZ3RoLTIgXSApIHsKQEAgLTM5Niw3ICszOTUsNiBAQAogICAgICAgICAgKi8KICAgICAgICAgaWYgKCBpbnRyZmFjZSAmJiBzdHJjbXAoIGN1cl9pZi0+bmFtZSwgaW50cmZhY2UpICE9IDAgJiYgc3RyY21wKCBjdXJfaWYtPmRlc2NyLCBpbnRyZmFjZSkgIT0gMCkgewogICAgICAgICAgICAgU05NUF9GUkVFKCBjdXJfaWYgKTsKLSAgICAgICAgICAgIGN1cl9pZiA9IE5VTEw7CiAgICAgICAgIH0KIAogICAgICAgICAvKgpkaWZmIC0tZ2l0IGEvYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMgYi9hcHBzL3NubXBuZXRzdGF0L2luZXQuYwppbmRleCA2ZjdjMWUxLi4wNTM3MzQwIDEwMDY0NAotLS0gYS9hcHBzL3NubXBuZXRzdGF0L2luZXQuYworKysgYi9hcHBzL3NubXBuZXRzdGF0L2luZXQuYwpAQCAtMTI2LDcgKzEyNiw3IEBACiAJCWlmIChhZmxhZykKIAkJCXByaW50ZigiIChpbmNsdWRpbmcgc2VydmVycykiKTsKIAkJcHV0Y2hhcignXG4nKTsKLQkJd2lkdGggPSBBZmxhZyA/IDE4IDogMjI7CisJCXdpZHRoID0gMjc7CiAJCXByaW50ZigiJS01LjVzICUqLipzICUqLipzICVzXG4iLAogCQkJICAgIlByb3RvIiwgLXdpZHRoLCB3aWR0aCwgIkxvY2FsIEFkZHJlc3MiLAogCQkJCQkJLXdpZHRoLCB3aWR0aCwgIlJlbW90ZSBBZGRyZXNzIiwgIihzdGF0ZSkiKTsKQEAgLTEzNSwyNyArMTM1LDI3IEBACiAJCiAJLyogRXh0cmFjdCB0aGUgbG9jYWwvcmVtb3RlIGluZm9ybWF0aW9uIGZyb20gdGhlIGluZGV4IHZhbHVlcyAqLwogCWNwID0gdG1wQWRkci5kYXRhOwotCWNwWzBdID0gdnAtPm5hbWVbIDEwIF0gJiAweGZmOwotCWNwWzFdID0gdnAtPm5hbWVbIDExIF0gJiAweGZmOwotCWNwWzJdID0gdnAtPm5hbWVbIDEyIF0gJiAweGZmOwotCWNwWzNdID0gdnAtPm5hbWVbIDEzIF0gJiAweGZmOworCWNwWzBdID0gKHVpbnQ4X3QpIHZwLT5uYW1lWzEwXTsKKwljcFsxXSA9ICh1aW50OF90KSB2cC0+bmFtZVsxMV07CisJY3BbMl0gPSAodWludDhfdCkgdnAtPm5hbWVbMTJdOworCWNwWzNdID0gKHVpbnQ4X3QpIHZwLT5uYW1lWzEzXTsKIAlsb2NhbEFkZHIuc19hZGRyID0gdG1wQWRkci5hZGRyLnNfYWRkcjsKLQlsb2NhbFBvcnQgICAgICAgID0gbnRvaHModnAtPm5hbWVbIDE0IF0pOworCWxvY2FsUG9ydCAgICAgICAgPSB2cC0+bmFtZVsgMTQgXTsKIAljcCA9IHRtcEFkZHIuZGF0YTsKLQljcFswXSA9IHZwLT5uYW1lWyAxNSBdICYgMHhmZjsKLQljcFsxXSA9IHZwLT5uYW1lWyAxNiBdICYgMHhmZjsKLQljcFsyXSA9IHZwLT5uYW1lWyAxNyBdICYgMHhmZjsKLQljcFszXSA9IHZwLT5uYW1lWyAxOCBdICYgMHhmZjsKKwljcFswXSA9ICh1aW50OF90KSB2cC0+bmFtZVsxNV07CisJY3BbMV0gPSAodWludDhfdCkgdnAtPm5hbWVbMTZdOworCWNwWzJdID0gKHVpbnQ4X3QpIHZwLT5uYW1lWzE3XTsKKwljcFszXSA9ICh1aW50OF90KSB2cC0+bmFtZVsxOF07CiAJcmVtb3RlQWRkci5zX2FkZHIgPSB0bXBBZGRyLmFkZHIuc19hZGRyOwotCXJlbW90ZVBvcnQgICAgICAgID0gbnRvaHModnAtPm5hbWVbIDE5IF0pOworCXJlbW90ZVBvcnQgICAgICAgID0gdnAtPm5hbWVbIDE5IF07CiAKIAlwcmludGYoIiUtNS41cyIsIG5hbWUpOwogCWluZXRwcmludCgmbG9jYWxBZGRyLCAgbG9jYWxQb3J0LCAgbmFtZSwgMSk7CiAJaW5ldHByaW50KCZyZW1vdGVBZGRyLCByZW1vdGVQb3J0LCBuYW1lLCAwKTsKIAlpZiAoc3RhdGUgPCAxIHx8IHN0YXRlID4gVENQX05TVEFURVMpIHsKLQkJcHJpbnRmKCIlZFxuIiwgc3RhdGUgKTsKKwkJcHJpbnRmKCIgJWRcbiIsIHN0YXRlICk7CiAJfSBlbHNlIHsKLQkJcHJpbnRmKCIlc1xuIiwgdGNwc3RhdGVzW3N0YXRlXSk7CisJCXByaW50ZigiICVzXG4iLCB0Y3BzdGF0ZXNbc3RhdGVdKTsKIAl9CiB9CiAKQEAgLTE3Niw2ICsxNzYsOCBAQAogICAgICAgICByZXR1cm47CiAgICAgaWYgKG5ldHNubXBfcXVlcnlfd2FsayggdmFyLCBzcyApICE9IFNOTVBfRVJSX05PRVJST1IpCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAoKHZhci0+dHlwZSAmIDB4RjApID09IDB4ODApCS8qIEV4Y2VwdGlvbiAqLworCXJldHVybjsKIAogICAgIGZvciAodnAgPSB2YXI7IHZwIDsgdnA9dnAtPm5leHRfdmFyaWFibGUpIHsKICAgICAgICAgdGNwcHJvdG9wcmludF9saW5lKG5hbWUsIHZwLCAmZmlyc3QpOwpAQCAtMjEyLDkgKzIxNCwxMSBAQAogICAgICAgICByZXR1cm47CiAgICAgaWYgKG5ldHNubXBfcXVlcnlfd2FsayggdmFyLCBzcyApICE9IFNOTVBfRVJSX05PRVJST1IpCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAoKHZhci0+dHlwZSAmIDB4RjApID09IDB4ODApCS8qIEV4Y2VwdGlvbiAqLworCXJldHVybjsKIAogICAgIHByaW50ZigiQWN0aXZlIEludGVybmV0ICglcykgQ29ubmVjdGlvbnNcbiIsIG5hbWUpOwotICAgIHByaW50ZigiJS01LjVzICUtMjguMjhzXG4iLCAiUHJvdG8iLCAiTG9jYWwgQWRkcmVzcyIpOworICAgIHByaW50ZigiJS01LjVzICUtMjcuMjdzXG4iLCAiUHJvdG8iLCAiTG9jYWwgQWRkcmVzcyIpOwogICAgIGZvciAodnAgPSB2YXI7IHZwIDsgdnA9dnAtPm5leHRfdmFyaWFibGUpIHsKICAgICAgICAgcHJpbnRmKCIlLTUuNXMiLCBuYW1lKTsKICAgICAgICAgLyoKQEAgLTIyMywxMiArMjI3LDEyIEBACiAgICAgICAgICAqICAgd2Ugd2Fsa2VkIHVkcExvY2FsQWRkcmVzcyByYXRoZXIgdGhhbiB1ZHBMb2NhbFBvcnQpCiAgICAgICAgICAqLwogICAgICAgICBjcCA9IHRtcEFkZHIuZGF0YTsKLSAgICAgICAgY3BbMF0gPSB2cC0+bmFtZVsgMTAgXSAmIDB4ZmY7Ci0gICAgICAgIGNwWzFdID0gdnAtPm5hbWVbIDExIF0gJiAweGZmOwotICAgICAgICBjcFsyXSA9IHZwLT5uYW1lWyAxMiBdICYgMHhmZjsKLSAgICAgICAgY3BbM10gPSB2cC0+bmFtZVsgMTMgXSAmIDB4ZmY7CisgICAgICAgIGNwWzBdID0gKHVpbnQ4X3QpIHZwLT5uYW1lWzEwXTsKKyAgICAgICAgY3BbMV0gPSAodWludDhfdCkgdnAtPm5hbWVbMTFdOworICAgICAgICBjcFsyXSA9ICh1aW50OF90KSB2cC0+bmFtZVsxMl07CisgICAgICAgIGNwWzNdID0gKHVpbnQ4X3QpIHZwLT5uYW1lWzEzXTsKICAgICAgICAgbG9jYWxBZGRyLnNfYWRkciA9IHRtcEFkZHIuYWRkci5zX2FkZHI7Ci0gICAgICAgIGxvY2FsUG9ydCAgICAgICAgPSBudG9ocyggKHVfc2hvcnQpKHZwLT5uYW1lWyAxNCBdKSk7CisgICAgICAgIGxvY2FsUG9ydCAgICAgICAgPSB2cC0+bmFtZVsgMTQgXTsKICAgICAgICAgaW5ldHByaW50KCZsb2NhbEFkZHIsIGxvY2FsUG9ydCwgbmFtZSwgMSk7CiAgICAgICAgIHB1dGNoYXIoJ1xuJyk7CiAgICAgfQpAQCAtMjgxLDExICsyODUsMTIgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICB9CiAKLQkJCQkJdGNwcHJvdG9wcmludF9saW5lKG5hbWUsIHZwLCAmZmlyc3QpOwotCiAgICAgICAgICAgICAgICAgICAgIGlmICgodnAtPnR5cGUgIT0gU05NUF9FTkRPRk1JQlZJRVcpICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAodnAtPnR5cGUgIT0gU05NUF9OT1NVQ0hPQkpFQ1QpICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAodnAtPnR5cGUgIT0gU05NUF9OT1NVQ0hJTlNUQU5DRSkpIHsKKworCQkJdGNwcHJvdG9wcmludF9saW5lKG5hbWUsIHZwLCAmZmlyc3QpOworCiAgICAgICAgICAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICAgICAgICAgICogQ2hlY2sgaWYgbGFzdCB2YXJpYWJsZSwgYW5kIGlmIHNvLCBzYXZlIGZvciBuZXh0IHJlcXVlc3QuCiAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KQEAgLTMyNCwxOSArMzI5LDE5IEBACiB7CiAgICAgb2lkICAgIHRjcENvbm5TdGF0ZV9vaWRbXSA9IHsgMSwzLDYsMSwyLDEsNiwxMywxLDEgfTsKICAgICBzaXplX3QgdGNwQ29ublN0YXRlX2xlbiAgID0gT0lEX0xFTkdUSCggdGNwQ29ublN0YXRlX29pZCApOwotCWludCAgICB1c2VfZ2V0YnVsayA9IDE7CisgICAgaW50ICAgIHVzZV9nZXRidWxrID0gMTsKIAogI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU05NUFYxCiAgICAgaWYgKHNzLT52ZXJzaW9uID09IFNOTVBfVkVSU0lPTl8xKSB7CiAgICAgICAgIHVzZV9nZXRidWxrID0gMDsKLQl9CisgICAgfQogI2VuZGlmCiAKLQlpZiAodXNlX2dldGJ1bGspIHsKLQkJdGNwcHJvdG9wcl9idWxrZ2V0KG5hbWUsIHRjcENvbm5TdGF0ZV9vaWQsIHRjcENvbm5TdGF0ZV9sZW4pOwotCX0gZWxzZSB7Ci0JCXRjcHByb3RvcHJfZ2V0KG5hbWUsIHRjcENvbm5TdGF0ZV9vaWQsIHRjcENvbm5TdGF0ZV9sZW4pOwotCX0KKyAgICBpZiAodXNlX2dldGJ1bGspIHsKKwkgICAgdGNwcHJvdG9wcl9idWxrZ2V0KG5hbWUsIHRjcENvbm5TdGF0ZV9vaWQsIHRjcENvbm5TdGF0ZV9sZW4pOworICAgIH0gZWxzZSB7CisJICAgIHRjcHByb3RvcHJfZ2V0KG5hbWUsIHRjcENvbm5TdGF0ZV9vaWQsIHRjcENvbm5TdGF0ZV9sZW4pOworICAgIH0KIH0KIAogCkBAIC0zOTEsNyArMzk2LDYgQEAKICAgICAgICAgICogICB0aGVuIG9ubHkgZGlzcGxheSBub24temVybyBzdGF0cy4KICAgICAgICAgICovCiAgICAgICAgIGlmICggKnZwLT52YWwuaW50ZWdlciA+IDAgfHwgc2ZsYWcgPT0gMSApIHsKLSAgICAgICAgICAgIHB1dGNoYXIoJ1x0Jyk7CiAgICAgICAgICAgICBwcmludGYoc3AtPmRlc2NyaXB0aW9uLCAqdnAtPnZhbC5pbnRlZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVyYWwoKnZwLT52YWwuaW50ZWdlcikpOwogICAgICAgICAgICAgcHV0Y2hhcignXG4nKTsKQEAgLTQxMCwyNCArNDE0LDI0IEBACiAgICAgb2lkICAgICAgICAgICAgICAgaXBzdGF0c19vaWRbXSA9IHsgMSwgMywgNiwgMSwgMiwgMSwgNCwgMCwgMCB9OwogICAgIHNpemVfdCAgICAgICAgICAgIGlwc3RhdHNfbGVuICAgPSBPSURfTEVOR1RIKCBpcHN0YXRzX29pZCApOwogICAgIHN0cnVjdCBzdGF0X3RhYmxlIGlwc3RhdHNfdGJsW10gPSB7Ci0gICAgICAgIHszLCAiJWQgdG90YWwgZGF0YWdyYW0lcyByZWNlaXZlZCJ9LAotICAgICAgICB7NCwgIiVkIGRhdGFncmFtJXMgd2l0aCBoZWFkZXIgZXJyb3JzIn0sCi0gICAgICAgIHs1LCAiJWQgZGF0YWdyYW0lcyB3aXRoIGFuIGludmFsaWQgZGVzdGluYXRpb24gYWRkcmVzcyJ9LAotICAgICAgICB7NiwgIiVkIGRhdGFncmFtJXMgZm9yd2FyZGVkIn0sCi0gICAgICAgIHs3LCAiJWQgZGF0YWdyYW0lcyB3aXRoIHVua25vd24gcHJvdG9jb2wifSwKLSAgICAgICAgezgsICIlZCBkYXRhZ3JhbSVzIGRpc2NhcmRlZCJ9LAotICAgICAgICB7OSwgIiVkIGRhdGFncmFtJXMgZGVsaXZlcmVkIn0sCi0gICAgICAgIHsxMCwgIiVkIG91dHB1dCBkYXRhZ3JhbSByZXF1ZXN0JXMifSwKLSAgICAgICAgezExLCAiJWQgb3V0cHV0IGRhdGFncmFtJXMgZGlzY2FyZGVkIn0sCi0gICAgICAgIHsxMiwgIiVkIGRhdGFncmFtJXMgd2l0aCBubyByb3V0ZSJ9LAotICAgICAgICB7MTQsICIlZCBmcmFnbWVudCVzIHJlY2VpdmVkIn0sCi0gICAgICAgIHsxNSwgIiVkIGRhdGFncmFtJXMgcmVhc3NlbWJsZWQifSwKLSAgICAgICAgezE2LCAiJWQgcmVhc3NlbWJseSBmYWlsdXJlJXMifSwKLSAgICAgICAgezE3LCAiJWQgZGF0YWdyYW0lcyBmcmFnbWVudGVkIn0sCi0gICAgICAgIHsxOCwgIiVkIGZyYWdtZW50YXRpb24gZmFpbHVyZSVzIn0sCi0gICAgICAgIHsxOSwgIiVkIGZyYWdtZW50JXMgY3JlYXRlZCJ9LAotICAgICAgICB7MjMsICIlZCByb3V0ZSVzIGRpc2NhcmRlZCJ9LAotICAgICAgICB7MCwgIiJ9CisgICAgICAgIHsgMywgIiUxNGQgdG90YWwgZGF0YWdyYW0lcyByZWNlaXZlZCJ9LAorICAgICAgICB7IDQsICIlMTRkIGRhdGFncmFtJXMgd2l0aCBoZWFkZXIgZXJyb3JzIn0sCisgICAgICAgIHsgNSwgIiUxNGQgZGF0YWdyYW0lcyB3aXRoIGFuIGludmFsaWQgZGVzdGluYXRpb24gYWRkcmVzcyJ9LAorICAgICAgICB7IDYsICIlMTRkIGRhdGFncmFtJXMgZm9yd2FyZGVkIn0sCisgICAgICAgIHsgNywgIiUxNGQgZGF0YWdyYW0lcyB3aXRoIHVua25vd24gcHJvdG9jb2wifSwKKyAgICAgICAgeyA4LCAiJTE0ZCBkYXRhZ3JhbSVzIGRpc2NhcmRlZCJ9LAorICAgICAgICB7IDksICIlMTRkIGRhdGFncmFtJXMgZGVsaXZlcmVkIn0sCisgICAgICAgIHsxMCwgIiUxNGQgb3V0cHV0IGRhdGFncmFtIHJlcXVlc3QlcyJ9LAorICAgICAgICB7MTEsICIlMTRkIG91dHB1dCBkYXRhZ3JhbSVzIGRpc2NhcmRlZCJ9LAorICAgICAgICB7MTIsICIlMTRkIGRhdGFncmFtJXMgd2l0aCBubyByb3V0ZSJ9LAorICAgICAgICB7MTQsICIlMTRkIGZyYWdtZW50JXMgcmVjZWl2ZWQifSwKKyAgICAgICAgezE1LCAiJTE0ZCBkYXRhZ3JhbSVzIHJlYXNzZW1ibGVkIn0sCisgICAgICAgIHsxNiwgIiUxNGQgcmVhc3NlbWJseSBmYWlsdXJlJXMifSwKKyAgICAgICAgezE3LCAiJTE0ZCBkYXRhZ3JhbSVzIGZyYWdtZW50ZWQifSwKKyAgICAgICAgezE4LCAiJTE0ZCBmcmFnbWVudGF0aW9uIGZhaWx1cmUlcyJ9LAorICAgICAgICB7MTksICIlMTRkIGZyYWdtZW50JXMgY3JlYXRlZCJ9LAorICAgICAgICB7MjMsICIlMTRkIHJvdXRlJXMgZGlzY2FyZGVkIn0sCisgICAgICAgIHsgMCwgIiJ9CiAgICAgfTsKIAogICAgIF9kdW1wX3N0YXRzKCBuYW1lLCBpcHN0YXRzX29pZCwgaXBzdGF0c19sZW4sIGlwc3RhdHNfdGJsICk7CkBAIC00NDMsMzggKzQ0NywzOCBAQAogICAgIG9pZCAgICAgICAgICAgICAgIGljbXBzdGF0c19vaWRbXSA9IHsgMSwgMywgNiwgMSwgMiwgMSwgNSwgMCwgMCB9OwogICAgIHNpemVfdCAgICAgICAgICAgIGljbXBzdGF0c19sZW4gICA9IE9JRF9MRU5HVEgoIGljbXBzdGF0c19vaWQgKTsKICAgICBzdHJ1Y3Qgc3RhdF90YWJsZSBpY21wc3RhdHNfdGJsW10gPSB7Ci0gICAgICAgIHsxLCAiJWQgdG90YWwgbWVzc2FnZSVzIHJlY2VpdmVkIn0sCi0gICAgICAgIHsyLCAiJWQgbWVzc2FnZSVzIGRyb3BwZWQgZHVlIHRvIGVycm9ycyJ9LAotICAgICAgICB7MTQsICIlZCBvdXB1dCBtZXNzYWdlIHJlcXVlc3QlcyJ9LAotICAgICAgICB7MTUsICIlZCBvdXRwdXQgbWVzc2FnZSVzIGRpc2NhcmRlZCJ9LAotICAgICAgICB7MCwgIiJ9CisgICAgICAgIHsgMSwgIiUxNGQgdG90YWwgbWVzc2FnZSVzIHJlY2VpdmVkIn0sCisgICAgICAgIHsgMiwgIiUxNGQgbWVzc2FnZSVzIGRyb3BwZWQgZHVlIHRvIGVycm9ycyJ9LAorICAgICAgICB7MTQsICIlMTRkIG91cHV0IG1lc3NhZ2UgcmVxdWVzdCVzIn0sCisgICAgICAgIHsxNSwgIiUxNGQgb3V0cHV0IG1lc3NhZ2UlcyBkaXNjYXJkZWQifSwKKyAgICAgICAgeyAwLCAiIn0KICAgICB9OwogICAgIHN0cnVjdCBzdGF0X3RhYmxlIGljbXBfaW5oaXN0b2dyYW1bXSA9IHsKLSAgICAgICAgezMsICJEZXN0aW5hdGlvbiB1bnJlYWNoYWJsZTogJWQifSwKLSAgICAgICAgezQsICJUaW1lIEV4Y2VlZGVkOiAlZCJ9LAotICAgICAgICB7NSwgIlBhcmFtZXRlciBQcm9ibGVtOiAlZCJ9LAotICAgICAgICB7NiwgIlNvdXJjZSBRdWVuY2g6ICVkIn0sCi0gICAgICAgIHs3LCAiUmVkaXJlY3Q6ICVkIn0sCi0gICAgICAgIHs4LCAiRWNobyBSZXF1ZXN0OiAlZCJ9LAotICAgICAgICB7OSwgIkVjaG8gUmVwbHk6ICVkIn0sCi0gICAgICAgIHsxMCwgIlRpbWVzdGFtcCBSZXF1ZXN0OiAlZCJ9LAotICAgICAgICB7MTEsICJUaW1lc3RhbXAgUmVwbHk6ICVkIn0sCi0gICAgICAgIHsxMiwgIkFkZHJlc3MgTWFzayBSZXF1ZXN0OiAlZCJ9LAotICAgICAgICB7MTMsICJBZGRyZXNzIE1hc2sgUmVwbHk6ICVkIn0sCi0gICAgICAgIHswLCAiIn0KKyAgICAgICAgeyAzLCAiICAgICAgICBEZXN0aW5hdGlvbiB1bnJlYWNoYWJsZTogJWQifSwKKyAgICAgICAgeyA0LCAiICAgICAgICBUaW1lIEV4Y2VlZGVkOiAlZCJ9LAorICAgICAgICB7IDUsICIgICAgICAgIFBhcmFtZXRlciBQcm9ibGVtOiAlZCJ9LAorICAgICAgICB7IDYsICIgICAgICAgIFNvdXJjZSBRdWVuY2g6ICVkIn0sCisgICAgICAgIHsgNywgIiAgICAgICAgUmVkaXJlY3Q6ICVkIn0sCisgICAgICAgIHsgOCwgIiAgICAgICAgRWNobyBSZXF1ZXN0OiAlZCJ9LAorICAgICAgICB7IDksICIgICAgICAgIEVjaG8gUmVwbHk6ICVkIn0sCisgICAgICAgIHsxMCwgIiAgICAgICAgVGltZXN0YW1wIFJlcXVlc3Q6ICVkIn0sCisgICAgICAgIHsxMSwgIiAgICAgICAgVGltZXN0YW1wIFJlcGx5OiAlZCJ9LAorICAgICAgICB7MTIsICIgICAgICAgIEFkZHJlc3MgTWFzayBSZXF1ZXN0OiAlZCJ9LAorICAgICAgICB7MTMsICIgICAgICAgIEFkZHJlc3MgTWFzayBSZXBseTogJWQifSwKKyAgICAgICAgeyAwLCAiIn0KICAgICB9OwogICAgIHN0cnVjdCBzdGF0X3RhYmxlIGljbXBfb3V0aGlzdG9ncmFtW10gPSB7Ci0gICAgICAgIHsxNiwgIkRlc3RpbmF0aW9uIHVucmVhY2hhYmxlOiAlZCJ9LAotICAgICAgICB7MTcsICJUaW1lIEV4Y2VlZGVkOiAlZCJ9LAotICAgICAgICB7MTgsICJQYXJhbWV0ZXIgUHJvYmxlbTogJWQifSwKLSAgICAgICAgezE5LCAiU291cmNlIFF1ZW5jaDogJWQifSwKLSAgICAgICAgezIwLCAiUmVkaXJlY3Q6ICVkIn0sCi0gICAgICAgIHsyMSwgIkVjaG8gUmVxdWVzdDogJWQifSwKLSAgICAgICAgezIyLCAiRWNobyBSZXBseTogJWQifSwKLSAgICAgICAgezIzLCAiVGltZXN0YW1wIFJlcXVlc3Q6ICVkIn0sCi0gICAgICAgIHsyNCwgIlRpbWVzdGFtcCBSZXBseTogJWQifSwKLSAgICAgICAgezI1LCAiQWRkcmVzcyBNYXNrIFJlcXVlc3Q6ICVkIn0sCi0gICAgICAgIHsyNiwgIkFkZHJlc3MgTWFzayBSZXBseTogJWQifSwKKyAgICAgICAgezE2LCAiICAgICAgICBEZXN0aW5hdGlvbiB1bnJlYWNoYWJsZTogJWQifSwKKyAgICAgICAgezE3LCAiICAgICAgICBUaW1lIEV4Y2VlZGVkOiAlZCJ9LAorICAgICAgICB7MTgsICIgICAgICAgIFBhcmFtZXRlciBQcm9ibGVtOiAlZCJ9LAorICAgICAgICB7MTksICIgICAgICAgIFNvdXJjZSBRdWVuY2g6ICVkIn0sCisgICAgICAgIHsyMCwgIiAgICAgICAgUmVkaXJlY3Q6ICVkIn0sCisgICAgICAgIHsyMSwgIiAgICAgICAgRWNobyBSZXF1ZXN0OiAlZCJ9LAorICAgICAgICB7MjIsICIgICAgICAgIEVjaG8gUmVwbHk6ICVkIn0sCisgICAgICAgIHsyMywgIiAgICAgICAgVGltZXN0YW1wIFJlcXVlc3Q6ICVkIn0sCisgICAgICAgIHsyNCwgIiAgICAgICAgVGltZXN0YW1wIFJlcGx5OiAlZCJ9LAorICAgICAgICB7MjUsICIgICAgICAgIEFkZHJlc3MgTWFzayBSZXF1ZXN0OiAlZCJ9LAorICAgICAgICB7MjYsICIgICAgICAgIEFkZHJlc3MgTWFzayBSZXBseTogJWQifSwKICAgICAgICAgezAsICIifQogICAgIH07CiAKQEAgLTQ5NSwxOSArNDk5LDE5IEBACiAgICAgb2lkICAgICAgICAgICAgICAgdGNwc3RhdHNfb2lkW10gPSB7IDEsIDMsIDYsIDEsIDIsIDEsIDYsIDAsIDAgfTsKICAgICBzaXplX3QgICAgICAgICAgICB0Y3BzdGF0c19sZW4gICA9IE9JRF9MRU5HVEgoIHRjcHN0YXRzX29pZCApOwogICAgIHN0cnVjdCBzdGF0X3RhYmxlIHRjcHN0YXRzX3RibFtdID0gewotICAgICAgICB7NSwgIiVkIGFjdGl2ZSBvcGVuJXMifSwKLSAgICAgICAgezYsICIlZCBwYXNzaXZlIG9wZW4lcyJ9LAotICAgICAgICB7NywgIiVkIGZhaWxlZCBhdHRlbXB0JXMifSwKLSAgICAgICAgezgsICIlZCByZXNldCVzIG9mIGVzdGFibGlzaGVkIGNvbm5lY3Rpb25zIn0sCi0gICAgICAgIHs5LCAiJWQgY3VycmVudCBlc3RhYmxpc2hlZCBjb25uZWN0aW9uJXMifSwKLSAgICAgICAgezEwLCAiJWQgc2VnbWVudCVzIHJlY2VpdmVkIn0sCi0gICAgICAgIHsxMSwgIiVkIHNlZ21lbnQlcyBzZW50In0sCi0gICAgICAgIHsxMiwgIiVkIHNlZ21lbnQlcyByZXRyYW5zbWl0dGVkIn0sCi0gICAgICAgIHsxNCwgIiVkIGludmFsaWQgc2VnbWVudCVzIHJlY2VpdmVkIn0sCi0gICAgICAgIHsxNSwgIiVkIHJlc2V0JXMgc2VudCJ9LAotICAgICAgICB7MCwgIiJ9CisgICAgICAgIHsgNSwgIiUxNGQgYWN0aXZlIG9wZW4lcyJ9LAorICAgICAgICB7IDYsICIlMTRkIHBhc3NpdmUgb3BlbiVzIn0sCisgICAgICAgIHsgNywgIiUxNGQgZmFpbGVkIGF0dGVtcHQlcyJ9LAorICAgICAgICB7IDgsICIlMTRkIHJlc2V0JXMgb2YgZXN0YWJsaXNoZWQgY29ubmVjdGlvbnMifSwKKyAgICAgICAgeyA5LCAiJTE0ZCBjdXJyZW50bHkgZXN0YWJsaXNoZWQgY29ubmVjdGlvbiVzIn0sCisgICAgICAgIHsxMCwgIiUxNGQgc2VnbWVudCVzIHJlY2VpdmVkIn0sCisgICAgICAgIHsxMSwgIiUxNGQgc2VnbWVudCVzIHNlbnQifSwKKyAgICAgICAgezEyLCAiJTE0ZCBzZWdtZW50JXMgcmV0cmFuc21pdHRlZCJ9LAorICAgICAgICB7MTQsICIlMTRkIGludmFsaWQgc2VnbWVudCVzIHJlY2VpdmVkIn0sCisgICAgICAgIHsxNSwgIiUxNGQgcmVzZXQlcyBzZW50In0sCisgICAgICAgIHsgMCwgIiJ9CiAgICAgfTsKLSAgICBfZHVtcF9zdGF0cyggbmFtZSwgdGNwc3RhdHNfb2lkLCB0Y3BzdGF0c19sZW4sIHRjcHN0YXRzX3RibCApOworICAgIF9kdW1wX3N0YXRzKCAidGNwIiwgdGNwc3RhdHNfb2lkLCB0Y3BzdGF0c19sZW4sIHRjcHN0YXRzX3RibCApOwogfQogCiAKQEAgLTUyMCwxMyArNTI0LDEzIEBACiAgICAgb2lkICAgICAgICAgICAgICAgdWRwc3RhdHNfb2lkW10gPSB7IDEsIDMsIDYsIDEsIDIsIDEsIDcsIDAsIDAgfTsKICAgICBzaXplX3QgICAgICAgICAgICB1ZHBzdGF0c19sZW4gICA9IE9JRF9MRU5HVEgoIHVkcHN0YXRzX29pZCApOwogICAgIHN0cnVjdCBzdGF0X3RhYmxlIHVkcHN0YXRzX3RibFtdID0gewotICAgICAgICB7MSwgIiVkIHRvdGFsIGRhdGFncmFtJXMgcmVjZWl2ZWQifSwKLSAgICAgICAgezIsICIlZCBkYXRhZ3JhbSVzIHRvIGludmFsaWQgcG9ydCJ9LAotICAgICAgICB7MywgIiVkIGRhdGFncmFtJXMgZHJvcHBlZCBkdWUgdG8gZXJyb3JzIn0sCi0gICAgICAgIHs0LCAiJWQgb3V0cHV0IGRhdGFncmFtIHJlcXVlc3QlcyJ9LAorICAgICAgICB7MSwgIiUxNGQgdG90YWwgZGF0YWdyYW0lcyByZWNlaXZlZCJ9LAorICAgICAgICB7MiwgIiUxNGQgZGF0YWdyYW0lcyB0byBpbnZhbGlkIHBvcnQifSwKKyAgICAgICAgezMsICIlMTRkIGRhdGFncmFtJXMgZHJvcHBlZCBkdWUgdG8gZXJyb3JzIn0sCisgICAgICAgIHs0LCAiJTE0ZCBvdXRwdXQgZGF0YWdyYW0gcmVxdWVzdCVzIn0sCiAgICAgICAgIHswLCAiIn0KICAgICB9OwotICAgIF9kdW1wX3N0YXRzKCBuYW1lLCB1ZHBzdGF0c19vaWQsIHVkcHN0YXRzX2xlbiwgdWRwc3RhdHNfdGJsICk7CisgICAgX2R1bXBfc3RhdHMoICJ1ZHAiLCB1ZHBzdGF0c19vaWQsIHVkcHN0YXRzX2xlbiwgdWRwc3RhdHNfdGJsICk7CiB9CiAKIApAQCAtNTYwLDIyICs1NjQsMjUgQEAKIHsKIAlzdHJ1Y3Qgc2VydmVudCAqc3AgPSBOVUxMOwogCWNoYXIgbGluZVs4MF0sICpjcDsKLQlpbnQgd2lkdGg7CisJaW50IHdpZHRoID0gMjc7CiAKLQlzbnByaW50ZihsaW5lLCBzaXplb2YgbGluZSwgIiUuKnMuIiwgKEFmbGFnICYmICFuZmxhZykgPyAxMiA6IDE2LAotCSAgICBpbmV0bmFtZShpbikpOworCWlmICh2ZmxhZykKKwkgICAgc25wcmludGYobGluZSwgc2l6ZW9mIGxpbmUsICIlcy4iLCBpbmV0bmFtZShpbikpOworCWVsc2UKKwkgICAgc25wcmludGYobGluZSwgc2l6ZW9mIGxpbmUsICIlLipzLiIsIHdpZHRoLTksIGluZXRuYW1lKGluKSk7CiAJY3AgPSBzdHJjaHIobGluZSwgJ1wwJyk7CiAJaWYgKCFuZmxhZyAmJiBwb3J0KQotCQlzcCA9IGdldHNlcnZieXBvcnQoKGludClwb3J0LCBwcm90byk7CisJCXNwID0gZ2V0c2VydmJ5cG9ydChodG9ucygodWludDE2X3QpIHBvcnQpLCBwcm90byk7CiAJaWYgKHNwIHx8IHBvcnQgPT0gMCkKLQkJc25wcmludGYoY3AsIGxpbmUgKyBzaXplb2YgbGluZSAtIGNwLCAiJS44cyIsCisJCXNucHJpbnRmKGNwLCBsaW5lICsgc2l6ZW9mIGxpbmUgLSBjcCwgdmZsYWcgPyAiJXMiIDogIiUuOHMiLAogCQkgICAgc3AgPyBzcC0+c19uYW1lIDogIioiKTsKICAgICAgLyoKICAgICAgICogVHJhbnNsYXRpb24gb2YgUlBDIHNlcnZpY2UgbmFtZXMgLSBPbWl0dGVkCiAgICAgICAqLwogCWVsc2UKLQkJc25wcmludGYoY3AsIGxpbmUgKyBzaXplb2YgbGluZSAtIGNwLCAiJWQiLCBudG9ocyhwb3J0KSk7Ci0Jd2lkdGggPSBBZmxhZyA/IDE4IDogMjI7CisJCXNucHJpbnRmKGNwLCBsaW5lICsgc2l6ZW9mIGxpbmUgLSBjcCwgIiVkIiwgcG9ydCk7CisJaWYgKHZmbGFnICYmIHdpZHRoIDwgc3RybGVuKGxpbmUpKQorCSAgICB3aWR0aCA9IHN0cmxlbihsaW5lKTsKIAlwcmludGYoIiAlLSouKnMiLCB3aWR0aCwgd2lkdGgsIGxpbmUpOwogfQogCkBAIC01OTgsOSArNjA1LDEwIEBACiAjZW5kaWYKIAogCWlmIChmaXJzdCAmJiAhbmZsYWcpIHsKKwkJY2hhciB0bXBbTUFYSE9TVE5BTUVMRU5dOwogCQlmaXJzdCA9IDA7Ci0JCWlmIChnZXRob3N0bmFtZShkb21haW4sIHNpemVvZihkb21haW4pKSA9PSAwICYmCi0JCSAgICAoY3AgPSBzdHJjaHIoZG9tYWluLCAnLicpKSkKKwkJaWYgKGdldGhvc3RuYW1lKHRtcCwgc2l6ZW9mKHRtcCkpID09IDAgJiYKKwkJICAgIChjcCA9IHN0cmNocih0bXAsICcuJykpKQogCQkJKHZvaWQpIHN0cmxjcHkoZG9tYWluLCBjcCArIDEsIHNpemVvZiBkb21haW4pOwogCQllbHNlCiAJCQlkb21haW5bMF0gPSAnXDAnOwpAQCAtNjE2LDcgKzYyNCw4IEBACiAJCQkJY3AgPSBucC0+bl9uYW1lOwogCQl9CiAJCWlmIChjcCA9PSBOVUxMKSB7Ci0JCQlocCA9IGdldGhvc3RieWFkZHIoKGNoYXIgKilpbnAsIHNpemVvZiAoKmlucCksIEFGX0lORVQpOworCQkJaHAgPSBuZXRzbm1wX2dldGhvc3RieWFkZHIoKGNoYXIgKilpbnAsIHNpemVvZiAoKmlucCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBRl9JTkVUKTsKIAkJCWlmIChocCkgewogCQkJCWlmICgoY3AgPSBzdHJjaHIoaHAtPmhfbmFtZSwgJy4nKSkgJiYKIAkJCQkgICAgIXN0cmNtcChjcCArIDEsIGRvbWFpbikpCmRpZmYgLS1naXQgYS9hcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMgYi9hcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMKaW5kZXggNDI3MThmMi4uNzEwOWI4NyAxMDA2NDQKLS0tIGEvYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jCisrKyBiL2FwcHMvc25tcG5ldHN0YXQvaW5ldDYuYwpAQCAtMTI0LDcgKzEyNCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNOX05VTEwsIE5VTEwsICAwKTsKICAgICBpZiAobmV0c25tcF9xdWVyeV93YWxrKCB2YXIsIHNzICkgIT0gU05NUF9FUlJfTk9FUlJPUikKICAgICAgICAgcmV0dXJuOwotICAgIGlmICh2YXItPnR5cGUgPT0gQVNOX05VTEwpICAgIC8qIE5vIGVudHJpZXMgKi8KKyAgICBpZiAoKHZhci0+dHlwZSAmIDB4RjApID09IDB4ODApCQkvKiBleGNlcHRpb24gKi8KICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yICh2cCA9IHZhcjsgdnAgOyB2cD12cC0+bmV4dF92YXJpYWJsZSkgewpAQCAtMTM3LDcgKzEzNyw3IEBACiAgICAgICAgICAgICBpZiAoYWZsYWcpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCIgKGluY2x1ZGluZyBzZXJ2ZXJzKSIpOwogICAgICAgICAgICAgcHV0Y2hhcignXG4nKTsKLSAgICAgICAgICAgIHByaW50ZigiJS01LjVzICUtMjguMjhzICUtMjguMjhzICU0cyAlc1xuIiwKKyAgICAgICAgICAgIHByaW50ZigiJS01LjVzICUtMjcuMjdzICUtMjcuMjdzICU0cyAlc1xuIiwKICAgICAgICAgICAgICAgICAgICAiUHJvdG8iLCAiTG9jYWwgQWRkcmVzcyIsICJSZW1vdGUgQWRkcmVzcyIsICJJL0YiLCAiKHN0YXRlKSIpOwogICAgICAgICAgICAgZmlyc3QgPSAwOwogICAgICAgICB9CkBAIC0xODQsMTEgKzE4NCwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTTl9OVUxMLCBOVUxMLCAgMCk7CiAgICAgaWYgKG5ldHNubXBfcXVlcnlfd2FsayggdmFyLCBzcyApICE9IFNOTVBfRVJSX05PRVJST1IpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAodmFyLT50eXBlID09IEFTTl9OVUxMKSAgICAvKiBObyBlbnRyaWVzICovCisgICAgaWYgKCh2YXItPnR5cGUgJiAweEYwKSA9PSAweDgwKQkJLyogZXhjZXB0aW9uICovCiAgICAgICAgIHJldHVybjsKIAogICAgIHByaW50ZigiQWN0aXZlIEludGVybmV0IENvbm5lY3Rpb25zXG4iKTsKLSAgICBwcmludGYoIiUtNS41cyAlLTI4LjI4cyAlNHNcbiIsICJQcm90byIsICJMb2NhbCBBZGRyZXNzIiwgIkkvRiIpOworICAgIHByaW50ZigiJS01LjVzICUtMjcuMjdzICU0c1xuIiwgIlByb3RvIiwgIkxvY2FsIEFkZHJlc3MiLCAiSS9GIik7CiAgICAgZm9yICh2cCA9IHZhcjsgdnAgOyB2cD12cC0+bmV4dF92YXJpYWJsZSkgewogICAgICAgICBwcmludGYoIiUtNS41cyIsIG5hbWUpOwogICAgICAgICAvKgpAQCAtMjQ1LDYgKzI0NSw4IEBACiAgICAgd2hpbGUgKDEpIHsKICAgICAgICAgaWYgKG5ldHNubXBfcXVlcnlfZ2V0bmV4dCggdmFyLCBzcyApICE9IFNOTVBfRVJSX05PRVJST1IpCiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgaWYgKCh2YXItPnR5cGUgJiAweEYwKSA9PSAweDgwKQkJLyogZXhjZXB0aW9uICovCisgICAgICAgICAgICBicmVhazsKICAgICAgICAgaWYgKCBzbm1wX29pZF9jb21wYXJlKCBvaWRfYnVmLCAgIGJ1Zl9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyLT5uYW1lLCBidWZfbGVuKSAhPSAwICkKICAgICAgICAgICAgIGJyZWFrOyAgICAvKiBFbmQgb2YgVGFibGUgKi8KQEAgLTI3MSw3ICsyNzMsNiBAQAogICAgICAgICAgKiAgIHRoZW4gb25seSBkaXNwbGF5IG5vbi16ZXJvIHN0YXRzLgogICAgICAgICAgKi8KICAgICAgICAgaWYgKCBzdGF0c1tzcC0+ZW50cnldID4gMCB8fCBzZmxhZyA9PSAxICkgewotICAgICAgICAgICAgcHV0Y2hhcignXHQnKTsKICAgICAgICAgICAgIHByaW50ZihzcC0+ZGVzY3JpcHRpb24sIHN0YXRzW3NwLT5lbnRyeV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsdXJhbChzdGF0c1tzcC0+ZW50cnldKSk7CiAgICAgICAgICAgICBwdXRjaGFyKCdcbicpOwpAQCAtMjkxLDI3ICsyOTIsMjcgQEAKICAgICBvaWQgICAgICAgICAgICAgICBpcDZzdGF0c19vaWRbXSA9IHsgMSwgMywgNiwgMSwgMiwgMSwgNTUsIDEsIDYsIDEsIDAgfTsKICAgICBzaXplX3QgICAgICAgICAgICBpcDZzdGF0c19sZW4gICA9IE9JRF9MRU5HVEgoIGlwNnN0YXRzX29pZCApOwogICAgIHN0cnVjdCBzdGF0X3RhYmxlIGlwNnN0YXRzX3RibFtdID0gewotICAgICAgICB7MSwgIiVkIHRvdGFsIGRhdGFncmFtJXMgcmVjZWl2ZWQifSwKLSAgICAgICAgezIsICIlZCBkYXRhZ3JhbSVzIHdpdGggaGVhZGVyIGVycm9ycyJ9LAotICAgICAgICB7MywgIiVkIG92ZXJzaXplZCBkYXRhZ3JhbSVzIn0sCi0gICAgICAgIHs0LCAiJWQgZGF0YWdyYW0lcyB3aXRoIG5vIHJvdXRlIn0sCi0gICAgICAgIHs1LCAiJWQgZGF0YWdyYW0lcyB3aXRoIGFuIGludmFsaWQgZGVzdGluYXRpb24gYWRkcmVzcyJ9LAotICAgICAgICB7NiwgIiVkIGRhdGFncmFtJXMgd2l0aCB1bmtub3duIHByb3RvY29sIn0sCi0gICAgICAgIHs3LCAiJWQgc2hvcnQgZGF0YWdyYW0lcyBkaXNjYXJkZWQifSwKLSAgICAgICAgezgsICIlZCBkYXRhZ3JhbSVzIGRpc2NhcmRlZCJ9LAotICAgICAgICB7OSwgIiVkIGRhdGFncmFtJXMgZGVsaXZlcmVkIn0sCi0gICAgICAgIHsxMCwgIiVkIGRhdGFncmFtJXMgZm9yd2FyZGVkIn0sCi0gICAgICAgIHsxMSwgIiVkIG91dHB1dCBkYXRhZ3JhbSByZXF1ZXN0JXMifSwKLSAgICAgICAgezEyLCAiJWQgb3V0cHV0IGRhdGFncmFtJXMgZGlzY2FyZGVkIn0sCi0gICAgICAgIHsxMywgIiVkIGRhdGFncmFtJXMgZnJhZ21lbnRlZCJ9LAotICAgICAgICB7MTQsICIlZCBmcmFnbWVudGF0aW9uIGZhaWx1cmUlcyJ9LAotICAgICAgICB7MTUsICIlZCBmcmFnbWVudCVzIGNyZWF0ZWQifSwKLSAgICAgICAgezE2LCAiJWQgZnJhZ21lbnQlcyByZWNlaXZlZCJ9LAotICAgICAgICB7MTcsICIlZCBkYXRhZ3JhbSVzIHJlYXNzZW1ibGVkIn0sCi0gICAgICAgIHsxOCwgIiVkIHJlYXNzZW1ibHkgZmFpbHVyZSVzIn0sCi0gICAgICAgIHsxOSwgIiVkIG11bHRpY2FzdCBkYXRhZ3JhbSVzIHJlY2VpdmVkIn0sCi0gICAgICAgIHsyMCwgIiVkIG11bHRpY2FzdCBkYXRhZ3JhbSVzIHRyYW5zbWl0dGVkIn0sCi0gICAgICAgIHswLCAiIn0KKyAgICAgICAgeyAxLCAiJTE0ZCB0b3RhbCBkYXRhZ3JhbSVzIHJlY2VpdmVkIn0sCisgICAgICAgIHsgMiwgIiUxNGQgZGF0YWdyYW0lcyB3aXRoIGhlYWRlciBlcnJvcnMifSwKKyAgICAgICAgeyAzLCAiJTE0ZCBvdmVyc2l6ZWQgZGF0YWdyYW0lcyJ9LAorICAgICAgICB7IDQsICIlMTRkIGRhdGFncmFtJXMgd2l0aCBubyByb3V0ZSJ9LAorICAgICAgICB7IDUsICIlMTRkIGRhdGFncmFtJXMgd2l0aCBhbiBpbnZhbGlkIGRlc3RpbmF0aW9uIGFkZHJlc3MifSwKKyAgICAgICAgeyA2LCAiJTE0ZCBkYXRhZ3JhbSVzIHdpdGggdW5rbm93biBwcm90b2NvbCJ9LAorICAgICAgICB7IDcsICIlMTRkIHNob3J0IGRhdGFncmFtJXMgZGlzY2FyZGVkIn0sCisgICAgICAgIHsgOCwgIiUxNGQgZGF0YWdyYW0lcyBkaXNjYXJkZWQifSwKKyAgICAgICAgeyA5LCAiJTE0ZCBkYXRhZ3JhbSVzIGRlbGl2ZXJlZCJ9LAorICAgICAgICB7MTAsICIlMTRkIGRhdGFncmFtJXMgZm9yd2FyZGVkIn0sCisgICAgICAgIHsxMSwgIiUxNGQgb3V0cHV0IGRhdGFncmFtIHJlcXVlc3QlcyJ9LAorICAgICAgICB7MTIsICIlMTRkIG91dHB1dCBkYXRhZ3JhbSVzIGRpc2NhcmRlZCJ9LAorICAgICAgICB7MTMsICIlMTRkIGRhdGFncmFtJXMgZnJhZ21lbnRlZCJ9LAorICAgICAgICB7MTQsICIlMTRkIGZyYWdtZW50YXRpb24gZmFpbHVyZSVzIn0sCisgICAgICAgIHsxNSwgIiUxNGQgZnJhZ21lbnQlcyBjcmVhdGVkIn0sCisgICAgICAgIHsxNiwgIiUxNGQgZnJhZ21lbnQlcyByZWNlaXZlZCJ9LAorICAgICAgICB7MTcsICIlMTRkIGRhdGFncmFtJXMgcmVhc3NlbWJsZWQifSwKKyAgICAgICAgezE4LCAiJTE0ZCByZWFzc2VtYmx5IGZhaWx1cmUlcyJ9LAorICAgICAgICB7MTksICIlMTRkIG11bHRpY2FzdCBkYXRhZ3JhbSVzIHJlY2VpdmVkIn0sCisgICAgICAgIHsyMCwgIiUxNGQgbXVsdGljYXN0IGRhdGFncmFtJXMgdHJhbnNtaXR0ZWQifSwKKyAgICAgICAgeyAwLCAiIn0KICAgICB9OwogCiAgICAgX2R1bXBfdjZzdGF0cyggbmFtZSwgaXA2c3RhdHNfb2lkLCBpcDZzdGF0c19sZW4sIGlwNnN0YXRzX3RibCApOwpAQCAtMzMxLDQ2ICszMzIsNDYgQEAKICAgICBvaWQgICAgICAgICAgICAgICBpY21wNnN0YXRzX29pZFtdID0geyAxLCAzLCA2LCAxLCAyLCAxLCA1NiwgMSwgMSwgMSwgMCB9OwogICAgIHNpemVfdCAgICAgICAgICAgIGljbXA2c3RhdHNfbGVuICAgPSBPSURfTEVOR1RIKCBpY21wNnN0YXRzX29pZCApOwogICAgIHN0cnVjdCBzdGF0X3RhYmxlIGljbXA2c3RhdHNfdGJsW10gPSB7Ci0gICAgICAgIHsxLCAiJWQgdG90YWwgbWVzc2FnZSVzIHJlY2VpdmVkIn0sCi0gICAgICAgIHsyLCAiJWQgbWVzc2FnZSVzIGRyb3BwZWQgZHVlIHRvIGVycm9ycyJ9LAotICAgICAgICB7MTgsICIlZCBvdXB1dCBtZXNzYWdlIHJlcXVlc3QlcyJ9LAotICAgICAgICB7MTksICIlZCBvdXRwdXQgbWVzc2FnZSVzIGRpc2NhcmRlZCJ9LAotICAgICAgICB7MCwgIiJ9CisgICAgICAgIHsgMSwgIiUxNGQgdG90YWwgbWVzc2FnZSVzIHJlY2VpdmVkIn0sCisgICAgICAgIHsgMiwgIiUxNGQgbWVzc2FnZSVzIGRyb3BwZWQgZHVlIHRvIGVycm9ycyJ9LAorICAgICAgICB7MTgsICIlMTRkIG91cHV0IG1lc3NhZ2UgcmVxdWVzdCVzIn0sCisgICAgICAgIHsxOSwgIiUxNGQgb3V0cHV0IG1lc3NhZ2UlcyBkaXNjYXJkZWQifSwKKyAgICAgICAgeyAwLCAiIn0KICAgICB9OwogICAgIHN0cnVjdCBzdGF0X3RhYmxlIGljbXA2X2luaGlzdG9ncmFtW10gPSB7Ci0gICAgICAgIHszLCAiRGVzdGluYXRpb24gdW5yZWFjaGFibGU6ICVkIn0sCi0gICAgICAgIHs0LCAiQWRtaW4gUHJvaGliaXQ6ICVkIn0sCi0gICAgICAgIHs1LCAiVGltZSBFeGNlZWRlZDogJWQifSwKLSAgICAgICAgezYsICJQYXJhbWV0ZXIgUHJvYmxlbTogJWQifSwKLSAgICAgICAgezcsICJUb28gQmlnOiAlZCJ9LAotICAgICAgICB7OCwgIkVjaG8gUmVxdWVzdDogJWQifSwKLSAgICAgICAgezksICJFY2hvIFJlcGx5OiAlZCJ9LAotICAgICAgICB7MTAsICJSb3V0ZXIgU29saWNpdDogJWQifSwKLSAgICAgICAgezExLCAiUm91dGVyIEFkdmVydDogJWQifSwKLSAgICAgICAgezEyLCAiTmVpZ2hib3IgU29saWNpdDogJWQifSwKLSAgICAgICAgezEzLCAiTmVpZ2hib3IgQWR2ZXJ0OiAlZCJ9LAotICAgICAgICB7MTQsICJSZWRpcmVjdDogJWQifSwKLSAgICAgICAgezE1LCAiR3JvdXAgTWVtYmVyIFJlcXVlc3Q6ICVkIn0sCi0gICAgICAgIHsxNiwgIkdyb3VwIE1lbWJlciBSZXBseTolZCJ9LAotICAgICAgICB7MTcsICJHcm91cCBNZW1iZXIgUmVkdWNlOiVkIn0sCi0gICAgICAgIHswLCAiIn0KKyAgICAgICAgeyAzLCAiICAgICAgICBEZXN0aW5hdGlvbiB1bnJlYWNoYWJsZTogJWQifSwKKyAgICAgICAgeyA0LCAiICAgICAgICBBZG1pbiBQcm9oaWJpdDogJWQifSwKKyAgICAgICAgeyA1LCAiICAgICAgICBUaW1lIEV4Y2VlZGVkOiAlZCJ9LAorICAgICAgICB7IDYsICIgICAgICAgIFBhcmFtZXRlciBQcm9ibGVtOiAlZCJ9LAorICAgICAgICB7IDcsICIgICAgICAgIFRvbyBCaWc6ICVkIn0sCisgICAgICAgIHsgOCwgIiAgICAgICAgRWNobyBSZXF1ZXN0OiAlZCJ9LAorICAgICAgICB7IDksICIgICAgICAgIEVjaG8gUmVwbHk6ICVkIn0sCisgICAgICAgIHsxMCwgIiAgICAgICAgUm91dGVyIFNvbGljaXQ6ICVkIn0sCisgICAgICAgIHsxMSwgIiAgICAgICAgUm91dGVyIEFkdmVydDogJWQifSwKKyAgICAgICAgezEyLCAiICAgICAgICBOZWlnaGJvciBTb2xpY2l0OiAlZCJ9LAorICAgICAgICB7MTMsICIgICAgICAgIE5laWdoYm9yIEFkdmVydDogJWQifSwKKyAgICAgICAgezE0LCAiICAgICAgICBSZWRpcmVjdDogJWQifSwKKyAgICAgICAgezE1LCAiICAgICAgICBHcm91cCBNZW1iZXIgUmVxdWVzdDogJWQifSwKKyAgICAgICAgezE2LCAiICAgICAgICBHcm91cCBNZW1iZXIgUmVwbHk6ICVkIn0sCisgICAgICAgIHsxNywgIiAgICAgICAgR3JvdXAgTWVtYmVyIFJlZHVjZTogJWQifSwKKyAgICAgICAgeyAwLCAiIn0KICAgICB9OwogICAgIHN0cnVjdCBzdGF0X3RhYmxlIGljbXA2X291dGhpc3RvZ3JhbVtdID0gewotICAgICAgICB7MjAsICJEZXN0aW5hdGlvbiB1bnJlYWNoYWJsZTogJWQifSwKLSAgICAgICAgezIxLCAiQWRtaW4gUHJvaGliaXQ6ICVkIn0sCi0gICAgICAgIHsyMiwgIlRpbWUgRXhjZWVkZWQ6ICVkIn0sCi0gICAgICAgIHsyMywgIlBhcmFtZXRlciBQcm9ibGVtOiAlZCJ9LAotICAgICAgICB7MjQsICJUb28gQmlnOiAlZCJ9LAotICAgICAgICB7MjUsICJFY2hvIFJlcXVlc3Q6ICVkIn0sCi0gICAgICAgIHsyNiwgIkVjaG8gUmVwbHk6ICVkIn0sCi0gICAgICAgIHsyNywgIlJvdXRlciBTb2xpY2l0OiAlZCJ9LAotICAgICAgICB7MjgsICJSb3V0ZXIgQWR2ZXJ0OiAlZCJ9LAotICAgICAgICB7MjksICJOZWlnaGJvciBTb2xpY2l0OiAlZCJ9LAotICAgICAgICB7MzAsICJOZWlnaGJvciBBZHZlcnQ6ICVkIn0sCi0gICAgICAgIHszMSwgIlJlZGlyZWN0OiAlZCJ9LAotICAgICAgICB7MzIsICJHcm91cCBNZW1iZXIgUmVxdWVzdDogJWQifSwKLSAgICAgICAgezMzLCAiR3JvdXAgTWVtYmVyIFJlcGx5OiVkIn0sCi0gICAgICAgIHszNCwgIkdyb3VwIE1lbWJlciBSZWR1Y2U6JWQifSwKKyAgICAgICAgezIwLCAiICAgICAgICBEZXN0aW5hdGlvbiB1bnJlYWNoYWJsZTogJWQifSwKKyAgICAgICAgezIxLCAiICAgICAgICBBZG1pbiBQcm9oaWJpdDogJWQifSwKKyAgICAgICAgezIyLCAiICAgICAgICBUaW1lIEV4Y2VlZGVkOiAlZCJ9LAorICAgICAgICB7MjMsICIgICAgICAgIFBhcmFtZXRlciBQcm9ibGVtOiAlZCJ9LAorICAgICAgICB7MjQsICIgICAgICAgIFRvbyBCaWc6ICVkIn0sCisgICAgICAgIHsyNSwgIiAgICAgICAgRWNobyBSZXF1ZXN0OiAlZCJ9LAorICAgICAgICB7MjYsICIgICAgICAgIEVjaG8gUmVwbHk6ICVkIn0sCisgICAgICAgIHsyNywgIiAgICAgICAgUm91dGVyIFNvbGljaXQ6ICVkIn0sCisgICAgICAgIHsyOCwgIiAgICAgICAgUm91dGVyIEFkdmVydDogJWQifSwKKyAgICAgICAgezI5LCAiICAgICAgICBOZWlnaGJvciBTb2xpY2l0OiAlZCJ9LAorICAgICAgICB7MzAsICIgICAgICAgIE5laWdoYm9yIEFkdmVydDogJWQifSwKKyAgICAgICAgezMxLCAiICAgICAgICBSZWRpcmVjdDogJWQifSwKKyAgICAgICAgezMyLCAiICAgICAgICBHcm91cCBNZW1iZXIgUmVxdWVzdDogJWQifSwKKyAgICAgICAgezMzLCAiICAgICAgICBHcm91cCBNZW1iZXIgUmVwbHk6ICVkIn0sCisgICAgICAgIHszNCwgIiAgICAgICAgR3JvdXAgTWVtYmVyIFJlZHVjZTogJWQifSwKICAgICAgICAgezAsICIifQogICAgIH07CiAKQEAgLTQxNCwxMCArNDE1LDkgQEAKIAogCXN0cnVjdCBzZXJ2ZW50ICpzcCA9IE5VTEw7CiAJY2hhciBsaW5lWzgwXSwgKmNwOwotCXVuc2lnbmVkIHdpZHRoOworCWludCB3aWR0aCA9IDI3LTk7CiAJaW50IGxlbiA9IHNpemVvZiBsaW5lOwogCi0Jd2lkdGggPSBBZmxhZyA/IDEyIDogMTY7CiAJaWYgKHZmbGFnICYmIHdpZHRoIDwgc3RybGVuKGluZXQ2bmFtZShpbjYpKSkKIAkJd2lkdGggPSBzdHJsZW4oaW5ldDZuYW1lKGluNikpOwogCXNucHJpbnRmKGxpbmUsIGxlbiwgIiUuKnMuIiwgd2lkdGgsIGluZXQ2bmFtZShpbjYpKTsKQEAgLTQyNywxMiArNDI3LDEyIEBACiAKIAljcCA9IHN0cmNocihsaW5lLCAnXDAnKTsKIAlpZiAoIW5mbGFnICYmIHBvcnQgJiYgbG9jYWwpCi0JCUdFVFNFUlZCWVBPUlQ2KHBvcnQsIHByb3RvLCBzcCk7CisJCUdFVFNFUlZCWVBPUlQ2KGh0b25zKHBvcnQpLCBwcm90bywgc3ApOwogCWlmIChzcCB8fCBwb3J0ID09IDApCi0JCXNucHJpbnRmKGNwLCBsZW4sICIlLjhzIiwgc3AgPyBzcC0+c19uYW1lIDogIioiKTsKKwkJc25wcmludGYoY3AsIGxlbiwgdmZsYWcgPyAiJXMiIDogIiUuOHMiLCBzcCA/IHNwLT5zX25hbWUgOiAiKiIpOwogCWVsc2UKLQkJc25wcmludGYoY3AsIGxlbiwgIiVkIiwgbnRvaHMoKHVfc2hvcnQpcG9ydCkpOwotCXdpZHRoID0gQWZsYWcgPyAxOCA6IDIyOworCQlzbnByaW50ZihjcCwgbGVuLCAiJWQiLCBwb3J0KTsKKwl3aWR0aCA9IDI3OwogCWlmICh2ZmxhZyAmJiB3aWR0aCA8IHN0cmxlbihsaW5lKSkKIAkJd2lkdGggPSBzdHJsZW4obGluZSk7CiBiYWlsOgpAQCAtNDYyLDggKzQ2Miw4IEBACiAKIAlpZiAoZmlyc3QgJiYgIW5mbGFnKSB7CiAJCWZpcnN0ID0gMDsKLQkJaWYgKGdldGhvc3RuYW1lKGRvbWFpbiwgc2l6ZW9mKGRvbWFpbikpID09IDAgJiYKLQkJICAgIChjcCA9IHN0cmNocihkb21haW4sICcuJykpKQorCQlpZiAoZ2V0aG9zdG5hbWUobGluZSwgc2l6ZW9mKGxpbmUpKSA9PSAwICYmCisJCSAgICAoY3AgPSBzdHJjaHIobGluZSwgJy4nKSkpCiAJCQkodm9pZCkgc3RybGNweShkb21haW4sIGNwICsgMSwgc2l6ZW9mIGRvbWFpbik7CiAJCWVsc2UKIAkJCWRvbWFpblswXSA9ICdcMCc7CkBAIC00NzEsNyArNDcxLDggQEAKICNpZmRlZiBORVRTTk1QX0VOQUJMRV9JUFY2CiAJY3AgPSBOVUxMOwogCWlmICghbmZsYWcgJiYgIUlONl9JU19BRERSX1VOU1BFQ0lGSUVEKGluNnApKSB7Ci0JCWhwID0gZ2V0aG9zdGJ5YWRkcigoY29uc3QgY2hhciAqKWluNnAsIHNpemVvZigqaW42cCksIEFGX0lORVQ2KTsKKwkJaHAgPSBuZXRzbm1wX2dldGhvc3RieWFkZHIoKGNvbnN0IGNoYXIgKilpbjZwLCBzaXplb2YoKmluNnApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFGX0lORVQ2KTsKIAkJaWYgKGhwKSB7CiAJCQlpZiAoKGNwID0gc3RyY2hyKGhwLT5oX25hbWUsICcuJykpICYmCiAJCQkgICAgIXN0cmNtcChjcCArIDEsIGRvbWFpbikpCmRpZmYgLS1naXQgYS9hcHBzL3NubXBuZXRzdGF0L2luZXR4LmMgYi9hcHBzL3NubXBuZXRzdGF0L2luZXR4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzY1ZWJlZQotLS0gL2Rldi9udWxsCisrKyBiL2FwcHMvc25tcG5ldHN0YXQvaW5ldHguYwpAQCAtMCwwICsxLDU4NCBAQAorLyoJJE9wZW5CU0Q6IGluZXQ2LmMsdiAxLjMxIDIwMDQvMTEvMTcgMDE6NDc6MjAgaXRvanVuIEV4cCAkCSovCisvKglCU0RJIGluZXQuYyx2IDIuMyAxOTk1LzEwLzI0IDAyOjE5OjI5IHByYiBFeHAJKi8KKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5ODMsIDE5ODgsIDE5OTMKKyAqCVRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorICogICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZkZWYgIElOSEVSSVRFRF9DT0RFCisjaWZuZGVmIGxpbnQKKyNpZiAwCitzdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpaW5ldC5jCTguNCAoQmVya2VsZXkpIDQvMjAvOTQiOworI2Vsc2UKKy8qX19SQ1NJRCgiJE9wZW5CU0Q6IGluZXQ2LmMsdiAxLjMxIDIwMDQvMTEvMTcgMDE6NDc6MjAgaXRvanVuIEV4cCAkIik7Ki8KKy8qX19SQ1NJRCgiS0FNRSBJZDogaW5ldDYuYyx2IDEuMTAgMjAwMC8wMi8wOSAxMDo0OTozMSBpdG9qdW4gRXhwIik7Ki8KKyNlbmRpZgorI2VuZGlmIC8qIG5vdCBsaW50ICovCisjZW5kaWYKKworI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorCisjaWYgSEFWRV9VTklTVERfSAorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2VuZGlmCisjaWYgSEFWRV9XSU5TT0NLX0gKKyNpbmNsdWRlICJ3aW5zdHViLmgiCisjZW5kaWYKKyNpZiBIQVZFX1NZU19TT0NLRVRfSAorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNlbmRpZgorI2lmIEhBVkVfTkVUREJfSAorI2luY2x1ZGUgPG5ldGRiLmg+CisjZW5kaWYKKyNpZiBIQVZFX1NZU19UWVBFU19ICisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjZW5kaWYKKworI2lmIEhBVkVfTkVUSU5FVF9JTl9ICisjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorI2VuZGlmCisjaWYgSEFWRV9BUlBBX0lORVRfSAorI2luY2x1ZGUgPGFycGEvaW5ldC5oPgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgorCisjaW5jbHVkZSAibWFpbi5oIgorI2luY2x1ZGUgIm5ldHN0YXQuaCIKKworc3RydWN0IHN0YXRfdGFibGUgeworICAgIHVuc2lnbmVkIGludCBlbnRyeTsgICAgICAvKiBlbnRyeSBudW1iZXIgaW4gdGFibGUgKi8KKyAgICAvKgorICAgICAqIGZvcm1hdCBzdHJpbmcgdG8gcHJpbnRmKGRlc2NyaXB0aW9uLCB2YWx1ZSkgCisgICAgICogd2FybmluZzogdGhlICVkIG11c3QgYmUgYmVmb3JlIHRoZSAlcyAKKyAgICAgKi8KKyAgICBjaGFyICAgICAgICAgICAgZGVzY3JpcHRpb25bODBdOworfTsKKwordm9pZAlpbmV0eHByaW50KGludCwgc3RydWN0IHNvY2thZGRyX2luNiAsIGludCwgY29uc3QgY2hhciAqLCBpbnQpOworCisvKgorICogUHJpbnQgYSBzdW1tYXJ5IG9mIFRDUCBjb25uZWN0aW9ucworICogTGlzdGVuaW5nIHByb2Nlc3NlcyBhcmUgc3VwcHJlc3NlZCB1bmxlc3MgdGhlCisgKiAgIC1hIChhbGwpIGZsYWcgaXMgc3BlY2lmaWVkLgorICovCitjb25zdCBjaGFyICAgICAqdGNweHN0YXRlc1tdID0geworICAgICIiLAorICAgICJDTE9TRUQiLAorICAgICJMSVNURU4iLAorICAgICJTWU5TRU5UIiwKKyAgICAiU1lOUkVDRUlWRUQiLAorICAgICJFU1RBQkxJU0hFRCIsCisgICAgIkZJTldBSVQxIiwKKyAgICAiRklOV0FJVDIiLAorICAgICJDTE9TRVdBSVQiLAorICAgICJMQVNUQUNLIiwKKyAgICAiQ0xPU0lORyIsCisgICAgIlRJTUVXQUlUIgorfTsKKyNkZWZpbmUgVENQX05TVEFURVMgMTEKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIGludCBzdGF0OworICAgIGludCBoY3N0YXQ7CisgICAgY29uc3QgY2hhciAqc3RyOworfSBzeXN0ZW1zdGF0c190OworCitzeXN0ZW1zdGF0c190IHN5c3RlbXN0YXRzW10gPSB7CisgICAgeyAgMywgIDQsICJkYXRhZ3JhbXMgaW5wdXQiIH0sCisgICAgeyAgNSwgIDYsICJvY3RldHMgcmVjZWl2ZWQiIH0sCisgICAgeyAgNywgIDAsICJoZHIgZXJyb3JzIGlucHV0IiB9LAorICAgIHsgIDgsICAwLCAibm8gcm91dGVzIGlucHV0IiB9LAorICAgIHsgIDksICAwLCAiYWRkcmVzcyBlcnJvcnMgaW5wdXQiIH0sCisgICAgeyAxMCwgIDAsICJ1bmtub3duIHByb3RvY29sIGlucHV0IiB9LAorICAgIHsgMTIsIDEzLCAiaW5wdXQgZGF0YWdyYW1zIGZvcndhcmRlZCIgfSwKKyAgICB7IDExLCAgMCwgInRydW5jYXRlZCBkYXRhZ3JhbXMgaW5wdXQiIH0sCisgICAgeyAxNCwgIDAsICJpbnB1dCByZWFzc2VtYmx5IHJlcXVpcmVkIiB9LAorICAgIHsgMTUsICAwLCAiaW5wdXQgcmVhc3NlbWxlZCBPSyIgfSwKKyAgICB7IDE2LCAgMCwgImlucHV0IHJlYXNzZW1ibHkgZmFpbGVkIiB9LAorICAgIHsgMTcsICAwLCAiaW5wdXQgZGF0YWdyYW1zIGRpc2NhcmRlZCIgfSwKKyAgICB7IDE4LCAxOSwgImlucHV0IGRhdGFncmFtcyByZWNlaXZlZCIgfSwKKyAgICB7IDIwLCAyMSwgIm91dHB1dCBkYXRhZ3JhbSByZXF1ZXN0cyIgfSwKKyAgICB7IDIyLCAgMCwgIm91dHB1dCBubyByb3V0ZSIgfSwKKyAgICB7IDIzLCAyNCwgImRhdGFncmFtcyBmb3J3YXJkZWQiIH0sCisgICAgeyAyNSwgIDAsICJvdXRwdXQgZGF0YWdyYW1zIGRpc2NhcmRlZCIgfSwKKyAgICB7IDI2LCAgMCwgIm91dHB1dCBkYXRhZ3JhbXMgZnJhZ21lbnRhdGlvbiByZXF1aXJlZCIgfSwKKyAgICB7IDI3LCAgMCwgIm91dHB1dCBkYXRhZ3JhbXMgZnJhZ21lbnRlZCIgfSwKKyAgICB7IDI4LCAgMCwgIm91dHB1dCBmcmFnbWVudGF0aW9uIGZhaWxlZCIgfSwKKyAgICB7IDI5LCAgMCwgImZyYWdtZW50cyBjcmVhdGVkIiB9LAorICAgIHsgMzAsIDMxLCAiZGF0YWdyYW1zIHRyYW5zbWl0dGVkIiB9LAorICAgIHsgMzIsIDMzLCAib2N0ZXRzIHRyYW5zbWl0dGVkIiB9LAorICAgIHsgIDAgfQorfTsKKworc3lzdGVtc3RhdHNfdCBpY21wc3RhdHNbXSA9IHsKKyAgICB7ICAyLCAgMCwgImlucHV0IG1lc3NhZ2VzIiB9LAorICAgIHsgIDMsICAwLCAiaW5wdXQgZXJyb3JzIiB9LAorICAgIHsgIDQsICAwLCAib3V0cHV0IG1lc3NhZ2VzIiB9LAorICAgIHsgIDUsICAwLCAib3V0cHV0IGVycm9ycyIgfSwKKyAgICB7ICAwIH0KK307CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBpbnQgY29kZTsKKyAgICBjb25zdCBjaGFyICpuYW1lOworfSBjb2RlbGlzdF90OworCitjb2RlbGlzdF90IGljbXBjb2Rlc1tdID0geworICAgIHsgICAwLCAiRWNobyByZXBseSIgfSwKKyAgICB7ICAgMywgIkRlc3RpbmF0aW9uIHVucmVhY2hhYmxlIiB9LAorICAgIHsgICA0LCAiU291cmNlIHF1ZW5jaCIgfSwKKyAgICB7ICAgNSwgIlJlZGlyZWN0IiB9LAorICAgIHsgICA2LCAiQWx0ZXJuYXRlIGhvc3QgYWRkcmVzcyIgfSwKKyAgICB7ICAgOCwgIkVjaG8gcmVxdWVzdCIgfSwKKyAgICB7ICAgOSwgIlJvdXRlciBhZHZlcnRpc2VtZW50IiB9LAorICAgIHsgIDEwLCAiUm91dGVyIHNlbGVjdGlvbiIgfSwKKyAgICB7ICAxMSwgIlRpbWUgZXhjZWVkZWQiIH0sCisgICAgeyAgMTIsICJQYXJhbWV0ZXIgcHJvYmxlbSIgfSwKKyAgICB7ICAxMywgIlRpbWVzdGFtcCByZXF1ZXN0IiB9LAorICAgIHsgIDE0LCAiVGltZXN0YW1wIHJlcGx5IiB9LAorICAgIHsgIDE1LCAiSW5mb3JtYXRpb24gcmVxdWVzdCIgfSwKKyAgICB7ICAxNiwgIkluZm9ybWF0aW9uIHJlcGx5IiB9LAorICAgIHsgIDE3LCAiQWRkcmVzcyBtYXNrIHJlcXVlc3QiIH0sCisgICAgeyAgMTgsICJBZGRyZXNzIG1hc2sgcmVwbHkiIH0sCisgICAgeyAwIH0KK307CisKK2NvZGVsaXN0X3QgaWNtcDZjb2Rlc1tdID0geworICAgIHsgICAxLCAgICJEZXN0aW5hdGlvbiBVbnJlYWNoYWJsZSIgfSwKKyAgICB7ICAgMiwgICAiUGFja2V0IFRvbyBCaWciIH0sCisgICAgeyAgIDMsICAgIlRpbWUgRXhjZWVkZWQiIH0sCisgICAgeyAgIDQsICAgIlBhcmFtZXRlciBQcm9ibGVtIiB9LAorICAgIHsgMTAwLCAgICJQcml2YXRlIGV4cGVyaW1lbnRhdGlvbiAxMDAiIH0sCisgICAgeyAxMDEsICAgIlByaXZhdGUgZXhwZXJpbWVudGF0aW9uIDEwMSIgfSwKKyAgICB7IDEyNywgICAiUmVzZXJ2ZWQgZm9yIGV4cGFuc2lvbiBvZiBJQ01QdjYgZXJyb3IgbWVzc2FnZXMiIH0sCisgICAgeyAxMjgsICAgIkVjaG8gUmVxdWVzdCIgfSwKKyAgICB7IDEyOSwgICAiRWNobyBSZXBseSIgfSwKKyAgICB7IDEzMCwgICAiTXVsdGljYXN0IExpc3RlbmVyIFF1ZXJ5IiB9LAorICAgIHsgMTMxLCAgICJNdWx0aWNhc3QgTGlzdGVuZXIgUmVwb3J0IiB9LAorICAgIHsgMTMyLCAgICJNdWx0aWNhc3QgTGlzdGVuZXIgRG9uZSIgfSwKKyAgICB7IDEzMywgICAiUm91dGVyIFNvbGljaXRhdGlvbiIgfSwKKyAgICB7IDEzNCwgICAiUm91dGVyIEFkdmVydGlzZW1lbnQiIH0sCisgICAgeyAxMzUsICAgIk5laWdoYm9yIFNvbGljaXRhdGlvbiIgfSwKKyAgICB7IDEzNiwgICAiTmVpZ2hib3IgQWR2ZXJ0aXNlbWVudCIgfSwKKyAgICB7IDEzNywgICAiUmVkaXJlY3QgTWVzc2FnZSIgfSwKKyAgICB7IDEzOCwgICAiUm91dGVyIFJlbnVtYmVyaW5nIiB9LAorICAgIHsgMTM5LCAgICJJQ01QIE5vZGUgSW5mb3JtYXRpb24gUXVlcnkiIH0sCisgICAgeyAxNDAsICAgIklDTVAgTm9kZSBJbmZvcm1hdGlvbiBSZXNwb25zZSIgfSwKKyAgICB7IDE0MSwgICAiSW52ZXJzZSBOZWlnaGJvciBEaXNjb3ZlcnkgU29saWNpdGF0aW9uIE1lc3NhZ2UiIH0sCisgICAgeyAxNDIsICAgIkludmVyc2UgTmVpZ2hib3IgRGlzY292ZXJ5IEFkdmVydGlzZW1lbnQgTWVzc2FnZSIgfSwKKyAgICB7IDE0MywgICAiVmVyc2lvbiAyIE11bHRpY2FzdCBMaXN0ZW5lciBSZXBvcnQiIH0sCisgICAgeyAxNDQsICAgIkhvbWUgQWdlbnQgQWRkcmVzcyBEaXNjb3ZlcnkgUmVxdWVzdCBNZXNzYWdlIiB9LAorICAgIHsgMTQ1LCAgICJIb21lIEFnZW50IEFkZHJlc3MgRGlzY292ZXJ5IFJlcGx5IE1lc3NhZ2UiIH0sCisgICAgeyAxNDYsICAgIk1vYmlsZSBQcmVmaXggU29saWNpdGF0aW9uIiB9LAorICAgIHsgMTQ3LCAgICJNb2JpbGUgUHJlZml4IEFkdmVydGlzZW1lbnQiIH0sCisgICAgeyAxNDgsICAgIkNlcnRpZmljYXRpb24gUGF0aCBTb2xpY2l0YXRpb24gTWVzc2FnZSIgfSwKKyAgICB7IDE0OSwgICAiQ2VydGlmaWNhdGlvbiBQYXRoIEFkdmVydGlzZW1lbnQgTWVzc2FnZSIgfSwKKyAgICB7IDE1MSwgICAiTXVsdGljYXN0IFJvdXRlciBBZHZlcnRpc2VtZW50IiB9LAorICAgIHsgMTUyLCAgICJNdWx0aWNhc3QgUm91dGVyIFNvbGljaXRhdGlvbiIgfSwKKyAgICB7IDE1MywgICAiTXVsdGljYXN0IFJvdXRlciBUZXJtaW5hdGlvbiIgfSwKKyAgICB7IDE1NCwgICAiRk1JUHY2IE1lc3NhZ2VzIiB9LAorICAgIHsgMTU1LCAgICJSUEwgQ29udHJvbCBNZXNzYWdlIiB9LAorICAgIHsgMCB9Cit9OworCisKK3ZvaWQKK3RjcHhwcm90b3ByKGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXIsICp2cCwgKnB2YXI7CisgICAgb2lkICAgIHRjcENvbm5lY3Rpb25TdGF0ZV9vaWRbXSA9IHsgMSwzLDYsMSwyLDEsNiwxOSwxLDcgfTsKKyAgICBzaXplX3QgdGNwQ29ubmVjdGlvblN0YXRlX2xlbiAgID0gT0lEX0xFTkdUSCggdGNwQ29ubmVjdGlvblN0YXRlX29pZCApOworICAgIGludCAgICBzdGF0ZSwgaTsKKyAgICBzdHJ1Y3Qgc29ja2FkZHJfaW42IGxvY2FsQWRkciwgcmVtb3RlQWRkcjsKKyAgICBpbnQgICAgbG9jYWxQb3J0LCAgICAgcmVtb3RlUG9ydCwgIHBpZCA9IDA7CisgICAgaW50ICAgIGxvY2FsVHlwZSwgICAgcmVtb3RlVHlwZSwgaW54OworICAgIGludCAgICBmaXJzdCA9IDE7CisgICAgc3RhdGljIGludCBkb25lID0gMDsKKworICAgIGlmIChkb25lKyspIHJldHVybjsKKworICAgIC8qCisgICAgICogV2Fsa2luZyB0aGUgdjYgdGNwQ29ubmVjdGlvblN0YXRlIGNvbHVtbiB3aWxsIHByb3ZpZGUgYWxsCisgICAgICogICB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uLgorICAgICAqLworICAgIHZhciA9IE5VTEw7CisgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSggJnZhciwgdGNwQ29ubmVjdGlvblN0YXRlX29pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Y3BDb25uZWN0aW9uU3RhdGVfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTTl9OVUxMLCBOVUxMLCAgMCk7CisgICAgaWYgKG5ldHNubXBfcXVlcnlfd2FsayggdmFyLCBzcyApICE9IFNOTVBfRVJSX05PRVJST1IpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoKHZhci0+dHlwZSAmIDB4RjApID09IDB4ODApCS8qIEV4Y2VwdGlvbiAqLworICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKHZwID0gdmFyOyB2cCA7IHZwPXZwLT5uZXh0X3ZhcmlhYmxlKSB7CisJY2hhciBsbmFtZVs1XTsKKyAgICAgICAgc3RhdGUgPSAqdnAtPnZhbC5pbnRlZ2VyOworCWlueCA9IHRjcENvbm5lY3Rpb25TdGF0ZV9sZW47CisJcHZhciA9IE5VTEw7CisKKwl2cC0+bmFtZVtpbngtMV0gPSA4OworCXNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoICZwdmFyLCB2cC0+bmFtZSwgdnAtPm5hbWVfbGVuZ3RoLAorCQkJCQkgQVNOX05VTEwsIE5VTEwsICAwKTsKKwlpZiAobmV0c25tcF9xdWVyeV9nZXQoIHB2YXIsIHNzICkgIT0gU05NUF9FUlJfTk9FUlJPUikgeworCSAgICBzbm1wX2ZyZWVfdmFyKCBwdmFyICk7CisJICAgIHJldHVybjsKKwl9CisJaWYgKChwdmFyLT50eXBlICYgMHhGMCkgIT0gMHg4MCkJLyogRXhjZXB0aW9uICovCisJICAgIHBpZCA9ICpwdmFyLT52YWwuaW50ZWdlcjsKKyAgICAgICAgCisgICAgICAgIC8qIEV4dHJhY3QgdGhlIGxvY2FsL3JlbW90ZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBpbmRleCB2YWx1ZXMgKi8KKwlsb2NhbFR5cGUgPSB2cC0+bmFtZVtpbngrK107CisJZm9yIChpID0gMDsgaSA8IHZwLT5uYW1lW2lueF07IGkrKykKKwkgICAgbG9jYWxBZGRyLnNpbjZfYWRkci5zNl9hZGRyW2ldID0gdnAtPm5hbWVbaW54K2krMV07CisJaW54ICs9IHZwLT5uYW1lW2lueF0gKyAxOworICAgICAgICBsb2NhbFBvcnQgICAgPSB2cC0+bmFtZVtpbngrK107CisJcmVtb3RlVHlwZSA9IHZwLT5uYW1lW2lueCsrXTsKKwlmb3IgKGkgPSAwOyBpIDwgdnAtPm5hbWVbaW54XTsgaSsrKQorCSAgICByZW1vdGVBZGRyLnNpbjZfYWRkci5zNl9hZGRyW2ldID0gdnAtPm5hbWVbaW54K2krMV07CisJaW54ICs9IHZwLT5uYW1lW2lueF0gKyAxOworICAgICAgICByZW1vdGVQb3J0ICAgID0gdnAtPm5hbWVbaW54KytdOworCisJc25tcF9mcmVlX3ZhcmJpbmQocHZhcik7CisKKwlpZiAoYWYgPT0gQUZfSU5FVCAmJiBsb2NhbFR5cGUgPT0gMikgY29udGludWU7CisJaWYgKGFmID09IEFGX0lORVQ2ICYmIGxvY2FsVHlwZSAhPSAyKSBjb250aW51ZTsKKworICAgICAgICBpZiAoZmlyc3QpIHsKKyAgICAgICAgICAgIHByaW50ZigiQWN0aXZlIEludGVybmV0ICglcykgQ29ubmVjdGlvbnMiLCAidGNwIik7CisgICAgICAgICAgICBwdXRjaGFyKCdcbicpOworICAgICAgICAgICAgcHJpbnRmKCIlLTUuNXMgJS0yNy4yN3MgJS0yNy4yN3MgJTExLjExcyAlNS41c1xuIiwKKyAgICAgICAgICAgICAgICAgICAiUHJvdG8iLCAiTG9jYWwgQWRkcmVzcyIsICJSZW1vdGUgQWRkcmVzcyIsICJTdGF0ZSIsICJQSUQiKTsKKyAgICAgICAgICAgIGZpcnN0ID0gMDsKKyAgICAgICAgfQorCisJc3RyY3B5KGxuYW1lLCAidGNwIik7CisJaWYgKGxvY2FsVHlwZSA9PSAyKSBsbmFtZVszXSA9ICc2JzsKKwllbHNlIGxuYW1lWzNdID0gJzQnOworCWxuYW1lWzRdID0gMDsKKyAgICAgICAgcHJpbnRmKCIlLTUuNXMiLCBsbmFtZSk7CisgICAgICAgIGluZXR4cHJpbnQobG9jYWxUeXBlLCBsb2NhbEFkZHIsICBsb2NhbFBvcnQsICJ0Y3AiLCAxKTsKKyAgICAgICAgaW5ldHhwcmludChyZW1vdGVUeXBlLCByZW1vdGVBZGRyLCByZW1vdGVQb3J0LCAidGNwIiwgMCk7CisgICAgICAgIGlmICggc3RhdGUgPCAxIHx8IHN0YXRlID4gVENQX05TVEFURVMgKQorICAgICAgICAgICAgcHJpbnRmKCIgJTExZCAlNWRcbiIsIHN0YXRlLCBwaWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwcmludGYoIiAlMTFzICU1ZFxuIiwgdGNweHN0YXRlc1sgc3RhdGUgXSwgcGlkKTsKKyAgICB9CisgICAgc25tcF9mcmVlX3ZhcmJpbmQoIHZhciApOworCisgICAgaWYgKGFmbGFnKQorCWxpc3Rlbnhwcm90b3ByKG5hbWUpOworfQorCisvKgorICogUHJpbnQgYSBzdW1tYXJ5IG9mIGxpc3RlbmluZyAiY29ubmVjdGlvbnMiCisgKi8KK3ZvaWQKK2xpc3Rlbnhwcm90b3ByKGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXIsICp2cDsKKyAgICBvaWQgICAgdGNwTGlzdGVuZXJQcm9jZXNzX29pZFtdID0geyAxLDMsNiwxLDIsMSw2LDIwLDEsNCB9OworICAgIHNpemVfdCB0Y3BMaXN0ZW5lclByb2Nlc3NfbGVuICAgPSBPSURfTEVOR1RIKCB0Y3BMaXN0ZW5lclByb2Nlc3Nfb2lkICk7CisgICAgc3RydWN0IHNvY2thZGRyX2luNiBsb2NhbEFkZHI7CisgICAgaW50ICAgIGxvY2FsVHlwZSwgbG9jYWxQb3J0LCBwaWQ7CisgICAgaW50ICAgIGksIGlueDsKKworICAgIC8qCisgICAgICogV2Fsa2luZyBhIHNpbmdsZSBjb2x1bW4gb2YgdGhlIHVkcFRhYmxlIHdpbGwgcHJvdmlkZQorICAgICAqICAgYWxsIHRoZSBuZWNlc3NhcnkgaW5mb3JtYXRpb24gZnJvbSB0aGUgaW5kZXggdmFsdWVzLgorICAgICAqLworICAgIHZhciA9IE5VTEw7CisgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSggJnZhciwgdGNwTGlzdGVuZXJQcm9jZXNzX29pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Y3BMaXN0ZW5lclByb2Nlc3NfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTTl9OVUxMLCBOVUxMLCAgMCk7CisgICAgaWYgKG5ldHNubXBfcXVlcnlfd2FsayggdmFyLCBzcyApICE9IFNOTVBfRVJSX05PRVJST1IpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoKHZhci0+dHlwZSAmIDB4RjApID09IDB4ODApCS8qIEV4Y2VwdGlvbiAqLworICAgICAgICByZXR1cm47CisKKyAgICBwcmludGYoIkxpc3RlbmluZyBJbnRlcm5ldCAoJXMpIENvbm5lY3Rpb25zXG4iLCAidGNwIik7CisgICAgcHJpbnRmKCIlLTUuNXMgJS0yNy4yN3MgJTVzXG4iLCAiUHJvdG8iLCAiTG9jYWwgQWRkcmVzcyIsICJQSUQiKTsKKyAgICBmb3IgKHZwID0gdmFyOyB2cCA7IHZwPXZwLT5uZXh0X3ZhcmlhYmxlKSB7CisJY2hhciBsbmFtZVs1XTsKKwlpbnggPSB0Y3BMaXN0ZW5lclByb2Nlc3NfbGVuOworICAgICAgICAvKgorICAgICAgICAgKiBFeHRyYWN0IHRoZSBsb2NhbCBwb3J0IGZyb20gdGhlIGluZGV4IHZhbHVlcywgYnV0IHRha2UKKyAgICAgICAgICogICB0aGUgSVAgYWRkcmVzcyBmcm9tIHRoZSB2YXJiaW5kIHZhbHVlLCAod2hpY2ggaXMgd2h5CisgICAgICAgICAqICAgd2Ugd2Fsa2VkIHVkcExvY2FsQWRkcmVzcyByYXRoZXIgdGhhbiB1ZHBMb2NhbFBvcnQpCisgICAgICAgICAqLworCWxvY2FsVHlwZSA9IHZwLT5uYW1lW2lueCsrXTsKKwlpZiAoYWYgPT0gQUZfSU5FVCAmJiBsb2NhbFR5cGUgPT0gMikgY29udGludWU7CisJaWYgKGFmID09IEFGX0lORVQ2ICYmIGxvY2FsVHlwZSAhPSAyKSBjb250aW51ZTsKKworCWZvciAoaSA9IDA7IGkgPCB2cC0+bmFtZVtpbnhdOyBpKyspCisJICAgIGxvY2FsQWRkci5zaW42X2FkZHIuczZfYWRkcltpXSA9IHZwLT5uYW1lW2lueCtpKzFdOworCWlueCArPSB2cC0+bmFtZVtpbnhdKzE7CisgICAgICAgIGxvY2FsUG9ydCA9IHZwLT5uYW1lWyBpbngrKyBdOworICAgICAgICBwaWQgICA9ICp2cC0+dmFsLmludGVnZXI7CisJc3RyY3B5KGxuYW1lLCAidGNwIik7CisJaWYgKGxvY2FsVHlwZSA9PSAyKSBsbmFtZVszXSA9ICc2JzsKKwllbHNlIGxuYW1lWzNdID0gJzQnOworCWxuYW1lWzRdID0gMDsKKyAgICAgICAgcHJpbnRmKCIlLTUuNXMiLCBsbmFtZSk7CisgICAgICAgIGluZXR4cHJpbnQobG9jYWxUeXBlLCBsb2NhbEFkZHIsIGxvY2FsUG9ydCwgInRjcCIsIDEpOworICAgICAgICBwcmludGYoIiAlNWRcbiIsIHBpZCk7CisgICAgfQorICAgIHNubXBfZnJlZV92YXJiaW5kKCB2YXIgKTsKK30KKworLyoKKyAqIFByaW50IGEgc3VtbWFyeSBvZiBVRFB2NiAiY29ubmVjdGlvbnMiCisgKiAgICBYWFggLSB3aGF0IGFib3V0ICJsaXN0ZW5pbmciIHNlcnZpY2VzID8/CisgKi8KK3ZvaWQKK3VkcHhwcm90b3ByKGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXIsICp2cDsKKyAgICBvaWQgICAgdWRwRW5kcG9pbnRQcm9jZXNzX29pZFtdID0geyAxLDMsNiwxLDIsMSw3LDcsMSw4IH07CisgICAgc2l6ZV90IHVkcEVuZHBvaW50UHJvY2Vzc19sZW4gICA9IE9JRF9MRU5HVEgoIHVkcEVuZHBvaW50UHJvY2Vzc19vaWQgKTsKKyAgICBzdHJ1Y3Qgc29ja2FkZHJfaW42IGxvY2FsQWRkciwgcmVtb3RlQWRkcjsKKyAgICBpbnQgICAgbG9jYWxUeXBlLCByZW1vdGVUeXBlLCBsb2NhbFBvcnQsIHJlbW90ZVBvcnQsIHBpZDsKKyAgICBpbnQgICAgaSwgaW54OworICAgIHN0YXRpYyBpbnQgZG9uZSA9IDA7CisKKyAgICBpZiAoZG9uZSsrKSByZXR1cm47CisKKyAgICAvKgorICAgICAqIFdhbGtpbmcgYSBzaW5nbGUgY29sdW1uIG9mIHRoZSB1ZHBUYWJsZSB3aWxsIHByb3ZpZGUKKyAgICAgKiAgIGFsbCB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIGZyb20gdGhlIGluZGV4IHZhbHVlcy4KKyAgICAgKi8KKyAgICB2YXIgPSBOVUxMOworICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoICZ2YXIsIHVkcEVuZHBvaW50UHJvY2Vzc19vaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWRwRW5kcG9pbnRQcm9jZXNzX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU05fTlVMTCwgTlVMTCwgIDApOworICAgIGlmIChuZXRzbm1wX3F1ZXJ5X3dhbGsoIHZhciwgc3MgKSAhPSBTTk1QX0VSUl9OT0VSUk9SKQorICAgICAgICByZXR1cm47CisgICAgaWYgKCh2YXItPnR5cGUgJiAweEYwKSA9PSAweDgwKQkvKiBFeGNlcHRpb24gKi8KKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpbnRmKCJBY3RpdmUgSW50ZXJuZXQgKCVzKSBDb25uZWN0aW9uc1xuIiwgInVkcCIpOworICAgIHByaW50ZigiJS01LjVzICUtMjcuMjdzICUtMjcuMjdzICU1c1xuIiwgIlByb3RvIiwgIkxvY2FsIEFkZHJlc3MiLCAiUmVtb3RlIEFkZHJlc3MiLCAiUElEIik7CisgICAgZm9yICh2cCA9IHZhcjsgdnAgOyB2cD12cC0+bmV4dF92YXJpYWJsZSkgeworICAgICAgICBjaGFyIGxuYW1lWzVdOworCWlueCA9IHVkcEVuZHBvaW50UHJvY2Vzc19sZW47CisgICAgICAgIC8qCisgICAgICAgICAqIEV4dHJhY3QgdGhlIGxvY2FsIHBvcnQgZnJvbSB0aGUgaW5kZXggdmFsdWVzLCBidXQgdGFrZQorICAgICAgICAgKiAgIHRoZSBJUCBhZGRyZXNzIGZyb20gdGhlIHZhcmJpbmQgdmFsdWUsICh3aGljaCBpcyB3aHkKKyAgICAgICAgICogICB3ZSB3YWxrZWQgdWRwTG9jYWxBZGRyZXNzIHJhdGhlciB0aGFuIHVkcExvY2FsUG9ydCkKKyAgICAgICAgICovCisJbG9jYWxUeXBlID0gdnAtPm5hbWVbaW54KytdOworCWlmIChhZiA9PSBBRl9JTkVUICYmIGxvY2FsVHlwZSA9PSAyKSBjb250aW51ZTsKKwlpZiAoYWYgPT0gQUZfSU5FVDYgJiYgbG9jYWxUeXBlICE9IDIpIGNvbnRpbnVlOworCWZvciAoaSA9IDA7IGkgPCB2cC0+bmFtZVtpbnhdOyBpKyspCisJICAgIGxvY2FsQWRkci5zaW42X2FkZHIuczZfYWRkcltpXSA9IHZwLT5uYW1lW2lueCtpKzFdOworCWlueCArPSB2cC0+bmFtZVtpbnhdKzE7CisgICAgICAgIGxvY2FsUG9ydCA9IHZwLT5uYW1lWyBpbngrKyBdOworCXJlbW90ZVR5cGUgPSB2cC0+bmFtZVtpbngrK107CisJZm9yIChpID0gMDsgaSA8IHZwLT5uYW1lW2lueF07IGkrKykKKwkgICAgcmVtb3RlQWRkci5zaW42X2FkZHIuczZfYWRkcltpXSA9IHZwLT5uYW1lW2lueCtpKzFdOworCWlueCArPSB2cC0+bmFtZVtpbnhdKzE7CisgICAgICAgIHJlbW90ZVBvcnQgPSB2cC0+bmFtZVsgaW54KysgXTsKKyAgICAgICAgcGlkICAgPSAqdnAtPnZhbC5pbnRlZ2VyOworCXN0cmNweShsbmFtZSwgInVkcCIpOworCWlmIChsb2NhbFR5cGUgPT0gMikgbG5hbWVbM10gPSAnNic7CisJZWxzZSBsbmFtZVszXSA9ICc0JzsKKwlsbmFtZVs0XSA9IDA7CisgICAgICAgIHByaW50ZigiJS01LjVzIiwgbG5hbWUpOworICAgICAgICBpbmV0eHByaW50KGxvY2FsVHlwZSwgbG9jYWxBZGRyLCBsb2NhbFBvcnQsICJ1ZHAiLCAxKTsKKyAgICAgICAgaW5ldHhwcmludChyZW1vdGVUeXBlLCByZW1vdGVBZGRyLCByZW1vdGVQb3J0LCAidWRwIiwgMSk7CisgICAgICAgIHByaW50ZigiICU1ZFxuIiwgcGlkKTsKKyAgICB9CisgICAgc25tcF9mcmVlX3ZhcmJpbmQoIHZhciApOworfQorCitzdGF0aWMgdm9pZAorc3RhdHNwcmludChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBzeXN0ZW1zdGF0c190ICpzdCwgaW50IHByb3RvLAorCWNvbnN0IG9pZCAqdGJsLCBzaXplX3QgdGJsbGVuKQoreworICAgIG9pZCB2YXJbMzJdOworICAgIHNpemVfdCBsZW47CisgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YjsKKworICAgIG1lbWNweSh2YXIsIHRibCwgdGJsbGVuKnNpemVvZihvaWQpKTsKKyAgICB2YXJbdGJsbGVuKzFdID0gcHJvdG87CisgICAgbGVuID0gdGJsbGVuKzI7CisKKyAgICBwcmludGYoIiVzOlxuIiwgbmFtZSk7CisgICAgd2hpbGUgKHN0LT5zdGF0KSB7CisJdmIgPSBOVUxMOworCWlmIChzdC0+aGNzdGF0KSB7CisJICAgIHZhclt0YmxsZW5dID0gc3QtPmhjc3RhdDsKKwkgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSggJnZiLCB2YXIsIGxlbiwgQVNOX05VTEwsIE5VTEwsICAwKTsKKwkgICAgaWYgKG5ldHNubXBfcXVlcnlfZ2V0KCB2Yiwgc3MgKSAhPSBTTk1QX0VSUl9OT0VSUk9SKSB7CisJCXNubXBfZnJlZV92YXIoIHZiICk7CisJCXZiID0gTlVMTDsKKwkgICAgfQorCX0KKwlpZiAoIXZiKSB7CisJICAgIHZhclt0YmxsZW5dID0gc3QtPnN0YXQ7CisJICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoICZ2YiwgdmFyLCBsZW4sIEFTTl9OVUxMLCBOVUxMLCAwKTsKKwkgICAgaWYgKG5ldHNubXBfcXVlcnlfZ2V0KCB2Yiwgc3MgKSAhPSBTTk1QX0VSUl9OT0VSUk9SKSB7CisJCXNubXBfZnJlZV92YXIoIHZiICk7CisJCXZiID0gTlVMTDsKKwkgICAgfQorCX0KKwlpZiAodmIpIHsKKwkgICAgaWYgKHZiLT50eXBlID09IEFTTl9DT1VOVEVSKSB7CisJCWlmICgqdmItPnZhbC5pbnRlZ2VyID4gMCB8fCBzZmxhZyA9PSAxKQorCQkgICAgcHJpbnRmKCIlMTRsdSAlc1xuIiwgKnZiLT52YWwuaW50ZWdlciwgc3QtPnN0cik7CisJICAgIH0KKwkgICAgZWxzZSBpZiAodmItPnR5cGUgPT0gQVNOX0NPVU5URVI2NCkgeworCQljaGFyIGE2NGJ1ZltJNjRDSEFSU1ogKyAxXTsKKwkJcHJpbnRVNjQoYTY0YnVmLCB2Yi0+dmFsLmNvdW50ZXI2NCk7CisJCWlmIChzdHJjbXAoYTY0YnVmLCAiMCIpICE9IDAgfHwgc2ZsYWcgPT0gMSkKKwkJICAgIHByaW50ZigiJTE0cyAlc1xuIiwgYTY0YnVmLCBzdC0+c3RyKTsKKwkgICAgfQorCSAgICBlbHNlCisJCXByaW50ZigiJTE0cyAlc1xuIiwgIi0iLCBzdC0+c3RyKTsKKwkgICAgc25tcF9mcmVlX3ZhcmJpbmQodmIpOworCX0KKwllbHNlIHsKKwkgICAgcHJpbnRmKCIlMTRzICVzXG4iLCAiLSIsIHN0LT5zdHIpOworCX0KKwlzdCsrOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3ByaGlzdG8oY29uc3QgY2hhciAqbmFtZSwgY29uc3Qgb2lkICp2YXIsIHNpemVfdCBsZW4sIGludCB2ZXIsIGNvZGVsaXN0X3QgKmNzKQoreworICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmIgPSBOVUxMLCAqdnA7CisgICAgY29kZWxpc3RfdCAqY3A7CisgICAgaW50IGNvZGU7CisgICAgY2hhciBub2NvZGVbMzJdOworCisgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSggJnZiLCB2YXIsIGxlbiwgQVNOX05VTEwsIE5VTEwsICAwKTsKKyAgICBpZiAobmV0c25tcF9xdWVyeV93YWxrKCB2Yiwgc3MgKSAhPSBTTk1QX0VSUl9OT0VSUk9SKSB7CisJc25tcF9mcmVlX3ZhciggdmIgKTsKKwlyZXR1cm47CisgICAgfQorICAgIHByaW50ZigiICAgICAlcyBoaXN0b2dyYW06XG4iLCBuYW1lKTsKKyAgICBwcmludGYoIiAgICAgJTEwcyAlMTBzICVzXG4iLCAiaW5wdXQiLCAib3V0cHV0IiwgInR5cGUiKTsKKyAgICBmb3IgKGNvZGUgPSAwOyBjb2RlIDwgMjU2OyBjb2RlKyspIHsKKwl1bnNpZ25lZCBsb25nIGlucCA9IDAsIG91dCA9IDA7CisJaW50IGZvdW5kID0gMDsKKwl2cCA9IHZiOworCXdoaWxlICh2cCAmJiBmb3VuZCAhPSAyKSB7CisJICAgIGlmICh2cC0+bmFtZVsxMV0gPT0gY29kZSAmJiB2cC0+bmFtZVsxMF0gPT0gdmVyKSB7CisJCWlmICh2cC0+bmFtZVs5XSA9PSAzKSBpbnAgPSAqdnAtPnZhbC5pbnRlZ2VyOworCQllbHNlIG91dCA9ICp2cC0+dmFsLmludGVnZXI7CisJCWZvdW5kKys7CisJICAgIH0KKwkgICAgdnAgPSB2cC0+bmV4dF92YXJpYWJsZTsKKwl9CisJaWYgKGZvdW5kKSB7CisJICAgIGNwID0gY3M7CisJICAgIHdoaWxlIChjcC0+bmFtZSAmJiBjcC0+Y29kZSAhPSBjb2RlKSBjcCsrOworCSAgICBpZiAoaW5wIHx8IG91dCB8fCBzZmxhZyA9PSAxKSB7CisJCWlmICghY3AtPmNvZGUpCisJCSAgICBzbnByaW50Zihub2NvZGUsIHNpemVvZiBub2NvZGUsICJ0eXBlICVkIiwgY29kZSk7CisJCXByaW50ZigiICAgICAlMTBsdSAlMTBsdSAlc1xuIiwgaW5wLCBvdXQsIGNwLT5uYW1lID8gY3AtPm5hbWUgOiBub2NvZGUpOworCSAgICB9CisJfQorICAgIH0KKyAgICBzbm1wX2ZyZWVfdmFyYmluZCh2Yik7Cit9CisKK3ZvaWQKK2lweF9zdGF0cyhjb25zdCBjaGFyICpuYW1lKQoreworICAgIG9pZCBpcHN5c3N0YXRfb2lkW10gPSB7IDEsIDMsIDYsIDEsIDIsIDEsIDQsIDMxLCAxLCAxIH07CisgICAgc2l6ZV90IGlwc3lzc3RhdF9sZW4gPSBzaXplb2YoaXBzeXNzdGF0X29pZCkgLyBzaXplb2YoaXBzeXNzdGF0X29pZFswXSk7CisgICAgc3RhdGljIGludCBmaXJzdCA9IDE7CisKKyAgICBpZiAoIWZpcnN0KSByZXR1cm47CisgICAgZmlyc3QgPSAwOworCisgICAgaWYgKCFuYW1lIHx8IHN0cmNtcChuYW1lLCAiaXAiKSA9PSAwKQorCXN0YXRzcHJpbnQoImlwIiwgc3lzdGVtc3RhdHMsIDEsIGlwc3lzc3RhdF9vaWQsIGlwc3lzc3RhdF9sZW4pOworICAgIGlmICghbmFtZSB8fCBzdHJjbXAobmFtZSwgImlwNiIpID09IDApCisJc3RhdHNwcmludCgiaXA2Iiwgc3lzdGVtc3RhdHMsIDIsIGlwc3lzc3RhdF9vaWQsIGlwc3lzc3RhdF9sZW4pOworfQorCit2b2lkCitpY21weF9zdGF0cyhjb25zdCBjaGFyICpuYW1lKQoreworICAgIG9pZCBpY21wc3RhdF9vaWRbXSA9IHsgMSwgMywgNiwgMSwgMiwgMSwgNSwgMjksIDEgfTsKKyAgICBzaXplX3QgaWNtcHN0YXRfbGVuID0gc2l6ZW9mKGljbXBzdGF0X29pZCkgLyBzaXplb2YoaWNtcHN0YXRfb2lkWzBdKTsKKyAgICBvaWQgaWNtcG1zZ19vaWRbXSA9IHsgMSwgMywgNiwgMSwgMiwgMSwgNSwgMzAsIDEgfTsKKyAgICBzaXplX3QgaWNtcG1zZ19sZW4gPSBzaXplb2YoaWNtcG1zZ19vaWQpIC8gc2l6ZW9mKGljbXBtc2dfb2lkWzBdKTsKKyAgICBzdGF0aWMgaW50IGZpcnN0ID0gMTsKKworICAgIGlmICghZmlyc3QpCisJcmV0dXJuOworICAgIGZpcnN0ID0gMDsKKworICAgIGlmICghbmFtZSB8fCBzdHJjbXAobmFtZSwgImljbXAiKSA9PSAwKSB7CisJc3RhdHNwcmludCgiaWNtcCIsIGljbXBzdGF0cywgMSwgaWNtcHN0YXRfb2lkLCBpY21wc3RhdF9sZW4pOworCXByaGlzdG8oImljbXAiLCBpY21wbXNnX29pZCwgaWNtcG1zZ19sZW4sIDEsIGljbXBjb2Rlcyk7CisgICAgfQorICAgIGlmICghbmFtZSB8fCBzdHJjbXAobmFtZSwgImljbXA2IikgPT0gMCkgeworCXN0YXRzcHJpbnQoImljbXA2IiwgaWNtcHN0YXRzLCAyLCBpY21wc3RhdF9vaWQsIGljbXBzdGF0X2xlbik7CisJcHJoaXN0bygiaWNtcDYiLCBpY21wbXNnX29pZCwgaWNtcG1zZ19sZW4sIDIsIGljbXA2Y29kZXMpOworICAgIH0KK30KKworCitzdGF0aWMgdm9pZAordW5rbm93bnByaW50KHZvaWQpCit7CisgICAgY2hhciBsaW5lWzgwXSwgKmNwOworICAgIGludCB3aWR0aCA9IDI3OworCisgICAgaWYgKHZmbGFnKQorCXNucHJpbnRmKGxpbmUsIHNpemVvZiBsaW5lLCAiJXMuIiwgIioiKTsKKyAgICBlbHNlCisJc25wcmludGYobGluZSwgc2l6ZW9mIGxpbmUsICIlLipzLiIsIHdpZHRoLTksICIqIik7CisgICAgY3AgPSBzdHJjaHIobGluZSwgJ1wwJyk7CisgICAgc25wcmludGYoY3AsIGxpbmUgKyBzaXplb2YgbGluZSAtIGNwLCB2ZmxhZyA/ICIlcyIgOiAiJS44cyIsICIqIik7CisgICAgaWYgKHZmbGFnICYmIHdpZHRoIDwgc3RybGVuKGxpbmUpKQorCXdpZHRoID0gc3RybGVuKGxpbmUpOworICAgIHByaW50ZigiICUtKi4qcyIsIHdpZHRoLCB3aWR0aCwgbGluZSk7Cit9CisKKy8qCisgKiBQcmV0dHkgcHJpbnQgYW4gSW50ZXJuZXQgYWRkcmVzcyAobmV0IGFkZHJlc3MgKyBwb3J0KS4KKyAqIElmIHRoZSBuZmxhZyB3YXMgc3BlY2lmaWVkLCB1c2UgbnVtYmVycyBpbnN0ZWFkIG9mIG5hbWVzLgorICovCisKK3ZvaWQKK2luZXR4cHJpbnQoaW50IHByb3RvLCBzdHJ1Y3Qgc29ja2FkZHJfaW42IGluNiwgaW50IHBvcnQsIGNvbnN0IGNoYXIgKm5hbWUsIGludCBsb2NhbCkKK3sKKworCWlmIChwcm90byA9PSAyKQorCSAgICBpbmV0NnByaW50KCh1X2NoYXIgKikmaW42LnNpbjZfYWRkci5zNl9hZGRyLCBwb3J0LCBuYW1lLCBsb2NhbCk7CisJZWxzZSBpZiAocHJvdG8gPT0gMSkKKwkgICAgaW5ldHByaW50KChzdHJ1Y3QgaW5fYWRkciAqKSZpbjYuc2luNl9hZGRyLnM2X2FkZHIsIHBvcnQsIG5hbWUsIGxvY2FsKTsKKwllbHNlIGlmIChwcm90byA9PSAwKQorCSAgICB1bmtub3ducHJpbnQoKTsKKwllbHNlIGFib3J0KCk7Cit9CmRpZmYgLS1naXQgYS9hcHBzL3NubXBuZXRzdGF0L21haW4uYyBiL2FwcHMvc25tcG5ldHN0YXQvbWFpbi5jCmluZGV4IGZhMTk5ZWQuLjBlOTc3YWQgMTAwNjQ0Ci0tLSBhL2FwcHMvc25tcG5ldHN0YXQvbWFpbi5jCisrKyBiL2FwcHMvc25tcG5ldHN0YXQvbWFpbi5jCkBAIC02MSwxMyArNjEsMTMgQEAKICNpbmNsdWRlICJ3aW5zdHViLmgiCiAjZW5kaWYKIAotaW50CUFmbGFnOwkJLyogc2hvdyBhZGRyZXNzZXMgb2YgcHJvdG9jb2wgY29udHJvbCBibG9jayAqLwogaW50CWFmbGFnOwkJLyogc2hvdyBhbGwgc29ja2V0cyAoaW5jbHVkaW5nIHNlcnZlcnMpICovCiBpbnQJYmZsYWc7CQkvKiBzaG93IGJ5dGVzIGluc3RlYWQgb2YgcGFja2V0cyAqLwogaW50CWRmbGFnOwkJLyogc2hvdyBpL2YgZHJvcHBlZCBwYWNrZXRzICovCiBpbnQJZ2ZsYWc7CQkvKiBzaG93IGdyb3VwIChtdWx0aWNhc3QpIHJvdXRpbmcgb3Igc3RhdHMgKi8KIGludAlpZmxhZzsJCS8qIHNob3cgaW50ZXJmYWNlcyAqLwogaW50CWxmbGFnOwkJLyogc2hvdyByb3V0aW5nIHRhYmxlIHdpdGggdXNlIGFuZCByZWYgKi8KK2ludAlMZmxhZzsJCS8qIExlZ2FjeSBtaWJzICovCiBpbnQJbWZsYWc7CQkvKiBzaG93IG1lbW9yeSBzdGF0cyAqLwogaW50CW5mbGFnOwkJLyogc2hvdyBhZGRyZXNzZXMgbnVtZXJpY2FsbHkgKi8KIGludAlvZmxhZzsJCS8qIE9wZW4vTmV0LUJTRCBzdHlsZSBvY3RldCBvdXRwdXQgKi8KQEAgLTg2LDcgKzg2LDcgQEAKIGludCAgICAgbWF4X2dldGJ1bGsgPSAzMjsgIC8qIHNwZWNpZmllcyB0aGUgbWF4LXJlcGVhdGVycyB2YWx1ZSB0byB1c2Ugd2l0aCBHRVRCVUxLIHJlcXVlc3RzICovCiAKIGNoYXIgICAgKnByb2duYW1lID0gTlVMTDsKLQorY29uc3QgY2hhciAqcG5hbWU7CiAgICAgLyoKICAgICAgKiBzdHJ1Y3Qgbmxpc3QgbmxbXSAtIE9taXR0ZWQKICAgICAgKi8KQEAgLTk5LDcgKzk5LDkgQEAKIAlzdHJpbmdmdW4JKnByX2NibG9ja3M7CS8qIGNvbnRyb2wgYmxvY2tzIHByaW50aW5nIHJvdXRpbmUgKi8KIAlzdHJpbmdmdW4JKnByX3N0YXRzOwkvKiBzdGF0aXN0aWNzIHByaW50aW5nIHJvdXRpbmUgKi8KIAljb25zdCBjaGFyCSpwcl9uYW1lOwkvKiB3ZWxsLWtub3duIG5hbWUgKi8KLX0gcHJvdG94W10gPSB7Cit9OworCitzdHJ1Y3QgcHJvdG94IHByb3RveFtdID0gewogCXsgMSwJdGNwcHJvdG9wciwJdGNwX3N0YXRzLAkidGNwIiB9LAkKIAl7IDEsCXVkcHByb3RvcHIsCXVkcF9zdGF0cywJInVkcCIgfSwJCiAKQEAgLTExOSw2ICsxMjEsMTYgQEAKIAl7IDAsCShzdHJpbmdmdW4qKTAsCShzdHJpbmdmdW4qKTAsCU5VTEwgfQogfTsKIAorc3RydWN0IHByb3RveCBpcHhwcm90b3hbXSA9IHsKKwl7IDEsCXRjcHhwcm90b3ByLAl0Y3Bfc3RhdHMsCSJ0Y3AiIH0sCQorCXsgMSwJdWRweHByb3RvcHIsCXVkcF9zdGF0cywJInVkcCIgfSwJCisJeyAxLAkoc3RyaW5nZnVuKikwLAlpcHhfc3RhdHMsCSJpcCIgfSwvKiBpcDZwcm90b3ByIE9taXR0ZWQgKi8KKwl7IDEsCShzdHJpbmdmdW4qKTAsCWlweF9zdGF0cywJImlwNiIgfSwvKiBpcDZwcm90b3ByIE9taXR0ZWQgKi8KKwl7IDEsCShzdHJpbmdmdW4qKTAsCWljbXB4X3N0YXRzLAkiaWNtcCIgfSwKKwl7IDEsCShzdHJpbmdmdW4qKTAsCWljbXB4X3N0YXRzLAkiaWNtcDYiIH0sCisJeyAwLAkoc3RyaW5nZnVuKikwLAkoc3RyaW5nZnVuKikwLAlOVUxMIH0KK307CisKIAkvKiB7aXB4LG5zLGF0YWxrfXByb3RveCBPbWl0dGVkICovCiAKIHN0cnVjdCBwcm90b3ggKnByb3RvcHJvdG94W10gPSB7CkBAIC0xNDAsMTEgKzE1Miw2IEBACiAgICAgY2FzZSAnQyc6CiAgICAgICAgIHdoaWxlICgqb3B0YXJnKSB7CiAgICAgICAgICAgICBzd2l0Y2ggKCpvcHRhcmcrKykgewotCSAgICAvKgljYXNlICdBJzoJCSpCU0Q6ICBkaXNwbGF5IFBDQiBhZGRyZXNzZXMKLQkJCQkJTGludXg6IHByb3RvY29sIGZhbWlseQotCQkJQWZsYWcgPSAxOwotCQkJYnJlYWs7Ci0JICAgICAqLwogCQljYXNlICdhJzoKIAkJCWFmbGFnID0gMTsKIAkJCWJyZWFrOwpAQCAtMTk0LDYgKzIwMSw5IEBACiAJCWNhc2UgJ2knOgogCQkJaWZsYWcgPSAxOwogCQkJYnJlYWs7CisJCWNhc2UgJ0wnOgorCQkJTGZsYWcgPSAxOworCQkJYnJlYWs7CiAJICAgIC8qICBjYXNlICdMJzoJCUZyZWVCU0Q6IERpc3BsYXkgbGlzdGVuIHF1ZXVlIGxlbmd0aHMKIAkJCQkJTmV0QlNEOiAgU3VwcHJlc3MgbGluay1sZXZlbCByb3V0ZXMgKi8KIAkgICAgLyoJY2FzZSAnbCc6CQlPcGVuQlNEOiBXaWRlciBJUHY2IGRpc3BsYXkKQEAgLTIzMCw2ICsyNDAsNyBAQAogCQkJCWV4aXQoMSk7CiAJCQl9CiAJCQlwZmxhZyA9IDE7CisJCQlwbmFtZSA9IHRwLT5wcl9uYW1lOwogCQkJcmV0dXJuOwogCSAgICAvKgljYXNlICdxJzoJCU5ldEJTRDogIElSUSBpbmZvcm1hdGlvbgogCQkJCQlPcGVuQlNEOiBTdXBwcmVzcyBpbmFjdGl2ZSBJL0ZzCkBAIC0zNTgsNiArMzY5LDcgQEAKIAkgKiAgICAgS2VybmVsIG5hbWVsaXMgaGFuZGxpbmcKIAkgKi8KIAorI2lmIDAKIAlpZiAobWZsYWcpIHsKICAgICAgICAgICAgIC8qCiAJCW1icHIobmxbTl9NQlNUQVRdLm5fdmFsdWUsIG5sW05fTUJQT09MXS5uX3ZhbHVlLApAQCAtMzY5LDYgKzM4MSw3IEBACiAJCXByaW50cHJvdG8odHAsIHRwLT5wcl9uYW1lKTsKIAkJZXhpdCgwKTsKIAl9CisjZW5kaWYKIAkvKgogCSAqIEtlZXAgZmlsZSBkZXNjcmlwdG9ycyBvcGVuIHRvIGF2b2lkIG92ZXJoZWFkCiAJICogb2Ygb3Blbi9jbG9zZSBvbiBlYWNoIGNhbGwgdG8gZ2V0KiByb3V0aW5lcy4KQEAgLTM4NSw3ICszOTgsMTAgQEAKIAkJCXJ0X3N0YXRzKCk7CiAJCWVsc2UKICAgICAgICAgICAgICAgKi8KLQkJCXJvdXRlcHIoKTsKKwkJaWYgKExmbGFnIHx8IHJvdXRleHByKGFmKSA9PSAwKSB7CisJCSAgICBpZiAocm91dGU0cHIoYWYpID09IDAgJiYgYWYgPT0gQUZfSU5FVCkgcm91dGVwcigpOworCQkgICAgcm91dGU2cHIoYWYpOworCQl9CiAJCWV4aXQoMCk7CiAJfQogICAgICAvKgpAQCAtNDE2LDIzICs0MzIsMzMgQEAKIAkJZXhpdCgwKTsKIAl9CiAgICAgICovCi0JaWYgKGFmID09IEFGX0lORVQgfHwgYWYgPT0gQUZfVU5TUEVDKSB7CisJc2V0c2VydmVudCgxKTsKKyAgICAgICAgaWYgKExmbGFnKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGFmKSB7CisgICAgICAgICAgICBjYXNlIEFGX1VOU1BFQzoKIAkJc2V0cHJvdG9lbnQoMSk7Ci0JCXNldHNlcnZlbnQoMSk7CiAJCS8qIHVnaCwgdGhpcyBpcyBPKE1OKSAuLi4gd2h5IGRvIHdlIGRvIHRoaXM/ICovCiAJCXdoaWxlICgocCA9IGdldHByb3RvZW50KCkpKSB7CiAJCQlmb3IgKHRwID0gcHJvdG94OyB0cC0+cHJfbmFtZTsgdHArKykKIAkJCQlpZiAoc3RyY21wKHRwLT5wcl9uYW1lLCBwLT5wX25hbWUpID09IDApCi0JCQkJCWJyZWFrOwotCQkJaWYgKHRwLT5wcl9uYW1lID09IE5VTEwgfHwgdHAtPnByX3dhbnRlZCA9PSAwKQotCQkJCWNvbnRpbnVlOwotCQkJcHJpbnRwcm90byh0cCwgcC0+cF9uYW1lKTsKKwkJCQkJaWYgKHRwLT5wcl9uYW1lICYmIHRwLT5wcl93YW50ZWQpCisJCQkJCSAgICBwcmludHByb3RvKHRwLCBwLT5wX25hbWUpOwogCQl9CiAJCWVuZHByb3RvZW50KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFGX0lORVQ6CisgICAgICAgICAgICAgICAgICAgIGZvciAodHAgPSBwcm90b3g7IHRwLT5wcl9uYW1lOyB0cCsrKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50cHJvdG8odHAsIHRwLT5wcl9uYW1lKTsKKyAgICAgICAgICAgIGNhc2UgQUZfSU5FVDY6CisgICAgICAgICAgICAgICAgICAgIGZvciAodHAgPSBpcDZwcm90b3g7IHRwLT5wcl9uYW1lOyB0cCsrKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50cHJvdG8odHAsIHRwLT5wcl9uYW1lKTsKKyAgICAgICAgICAgIH0KIAl9Ci0JaWYgKGFmID09IEFGX0lORVQ2IHx8IGFmID09IEFGX1VOU1BFQykKLQkJZm9yICh0cCA9IGlwNnByb3RveDsgdHAtPnByX25hbWU7IHRwKyspCi0JCQlwcmludHByb3RvKHRwLCB0cC0+cHJfbmFtZSk7CisgICAgICAgIGVsc2UgeworCSAgICBmb3IgKHRwID0gaXB4cHJvdG94OyB0cC0+cHJfbmFtZTsgdHArKykKKwkJaWYgKCFwbmFtZSB8fCBzdHJjbXAocG5hbWUsdHAtPnByX25hbWUpID09IDApCisJCSAgICBwcmludHByb3RvKHRwLCBwbmFtZSk7CisJfQogICAgIC8qCiAJaWYgKGFmID09IEFGX0lQWCB8fCBhZiA9PSBBRl9VTlNQRUMpCiAJCWZvciAodHAgPSBpcHhwcm90b3g7IHRwLT5wcl9uYW1lOyB0cCsrKQpAQCAtNDc3LDEyICs1MDMsNiBAQAogCXJldHVybiAobiAhPSAxID8gInMiIDogIiIpOwogfQogCi1jb25zdCBjaGFyICoKLXBsdXJhbGVzKGludCBuKQotewotCXJldHVybiAobiAhPSAxID8gImVzIiA6ICIiKTsKLX0KLQogLyoKICAqIEZpbmQgdGhlIHByb3RveCBmb3IgdGhlIGdpdmVuICJ3ZWxsLWtub3duIiBuYW1lLgogICovCkBAIC01MzIsMTQgKzU1MiwxMiBAQAogdXNhZ2Uodm9pZCkKIHsKIAkodm9pZClmcHJpbnRmKHN0ZGVyciwKLSJ1c2FnZTogJXMgW3NubXBfb3B0c10gWy1DYW5dIFstQ2YgYWRkcmVzc19mYW1pbHldXG4iLCBwcm9nbmFtZSk7CisidXNhZ2U6ICVzIFtzbm1wX29wdHNdIFstQ2Fudl0gWy1DZiBhZGRyZXNzX2ZhbWlseV1cbiIsIHByb2duYW1lKTsKIAkodm9pZClmcHJpbnRmKHN0ZGVyciwKLSIgICAgICAgJXMgW3NubXBfb3B0c10gWy1DYmRnaW1uclNzXSBbLUNmIGFkZHJlc3NfZmFtaWx5XVxuIiwgcHJvZ25hbWUpOworIiAgICAgICAlcyBbc25tcF9vcHRzXSBbLUNpYm9kbnZdIFstQ0kgaW50ZXJmYWNlXSBbLUN3IHdhaXRdXG4iLCBwcm9nbmFtZSk7CiAJKHZvaWQpZnByaW50ZihzdGRlcnIsCi0iICAgICAgICVzIFtzbm1wX29wdHNdIFstQ2Jkbl0gWy1DSSBpbnRlcmZhY2VdIFstQ3cgd2FpdF1cbiIsIHByb2duYW1lKTsKKyIgICAgICAgJXMgW3NubXBfb3B0c10gWy1Dc1tzXV0gWy1DcCBwcm90b2NvbF1cbiIsIHByb2duYW1lKTsKIAkodm9pZClmcHJpbnRmKHN0ZGVyciwKLSIgICAgICAgJXMgW3NubXBfb3B0c10gWy1Dc10gWy1DcCBwcm90b2NvbF1cbiIsIHByb2duYW1lKTsKLQkodm9pZClmcHJpbnRmKHN0ZGVyciwKLSIgICAgICAgJXMgW3NubXBfb3B0c10gWy1DYV0gWy1DZiBhZGRyZXNzX2ZhbWlseV0gWy1DaSB8IC1DSSBpbnRlcmZhY2VdXG4iLCBwcm9nbmFtZSk7CisiICAgICAgICVzIFtzbm1wX29wdHNdIFstQ3Judl0gWy1DZiBhZGRyZXNzX2ZhbWlseV1cbiIsIHByb2duYW1lKTsKIAlleGl0KDEpOwogfQpkaWZmIC0tZ2l0IGEvYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmggYi9hcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaAppbmRleCAzNTVjOGIyLi5iYTYxZWIzIDEwMDY0NAotLS0gYS9hcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaAorKysgYi9hcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaApAQCAtMzksMTMgKzM5LDEzIEBACiAvKiBXaGF0IGlzIHRoZSBtYXggbGVuZ3RoIG9mIGEgcG9pbnRlciBwcmludGVkIHdpdGggJXAgKGluY2x1ZGluZyAweCk/ICovCiAjZGVmaW5lIFBMRU4JKExPTkdfQklUIC8gNCArIDIpCiAKLWV4dGVybiBpbnQJQWZsYWc7CQkvKiBzaG93IGFkZHJlc3NlcyBvZiBwcm90b2NvbCBjb250cm9sIGJsb2NrICovCiBleHRlcm4gaW50CWFmbGFnOwkJLyogc2hvdyBhbGwgc29ja2V0cyAoaW5jbHVkaW5nIHNlcnZlcnMpICovCiBleHRlcm4gaW50CWJmbGFnOwkJLyogc2hvdyBieXRlcyBpbnN0ZWFkIG9mIHBhY2tldHMgKi8KIGV4dGVybiBpbnQJZGZsYWc7CQkvKiBzaG93IGkvZiBkcm9wcGVkIHBhY2tldHMgKi8KIGV4dGVybiBpbnQJZ2ZsYWc7CQkvKiBzaG93IGdyb3VwIChtdWx0aWNhc3QpIHJvdXRpbmcgb3Igc3RhdHMgKi8KIGV4dGVybiBpbnQJaWZsYWc7CQkvKiBzaG93IGludGVyZmFjZXMgKi8KIGV4dGVybiBpbnQJbGZsYWc7CQkvKiBzaG93IHJvdXRpbmcgdGFibGUgd2l0aCB1c2UgYW5kIHJlZiAqLworZXh0ZXJuIGludAlMZmxhZzsJCS8qIExlZ2FjeSBtaWJzICovCiBleHRlcm4gaW50CW1mbGFnOwkJLyogc2hvdyBtZW1vcnkgc3RhdHMgKi8KIGV4dGVybiBpbnQJbmZsYWc7CQkvKiBzaG93IGFkZHJlc3NlcyBudW1lcmljYWxseSAqLwogZXh0ZXJuIGludAlvZmxhZzsJCS8qIE9wZW4vTmV0LUJTRCBzdHlsZSBvY3RldCBvdXRwdXQgKi8KQEAgLTY3LDcgKzY3LDYgQEAKIGV4dGVybgljaGFyICpfX3Byb2duYW1lOyAvKiBwcm9ncmFtIG5hbWUsIGZyb20gY3J0MC5vICovCiAKIGNvbnN0IGNoYXIJKnBsdXJhbChpbnQpOwotY29uc3QgY2hhcgkqcGx1cmFsZXMoaW50KTsKIAogdm9pZAl0Y3Bwcm90b3ByKGNvbnN0IGNoYXIgKik7CiB2b2lkCXVkcHByb3RvcHIoY29uc3QgY2hhciAqKTsKQEAgLTgxLDE1ICs4MCwyNiBAQAogdm9pZAlpcDZfc3RhdHMoICBjb25zdCBjaGFyICopOwogdm9pZAlpY21wNl9zdGF0cyhjb25zdCBjaGFyICopOwogCit2b2lkCXRjcHhwcm90b3ByKGNvbnN0IGNoYXIgKik7Cit2b2lkCXVkcHhwcm90b3ByKGNvbnN0IGNoYXIgKik7Cit2b2lkCWxpc3Rlbnhwcm90b3ByKGNvbnN0IGNoYXIgKik7Cit2b2lkCWlweF9zdGF0cyhjb25zdCBjaGFyICopOwordm9pZAlpY21weF9zdGF0cyhjb25zdCBjaGFyICopOworCiB2b2lkCXByX3J0aGRyKGludCk7CiB2b2lkCXByX2VuY2FwaGRyKHZvaWQpOwogdm9pZAlwcl9mYW1pbHkoaW50KTsKIHZvaWQJcnRfc3RhdHModm9pZCk7CiAKK3ZvaWQgICAgZ2V0X2lmbmFtZShjaGFyICosIGludCk7CiBjaGFyCSpyb3V0ZW5hbWUoaW5fYWRkcl90KTsKIGNoYXIJKm5ldG5hbWUoaW5fYWRkcl90LCBpbl9hZGRyX3QpOwogY2hhcgkqbnNfcHJpbnQoc3RydWN0IHNvY2thZGRyICopOwogdm9pZAlyb3V0ZXByKHZvaWQpOworaW50ICAgICByb3V0ZTRwcihpbnQpOworaW50ICAgICByb3V0ZTZwcihpbnQpOworaW50ICAgICByb3V0ZXhwcihpbnQpOwogCiB2b2lkCWludHByKGludCk7Ci0KK3ZvaWQJaW5ldHByaW50KHN0cnVjdCBpbl9hZGRyICosIGludCwgY29uc3QgY2hhciAqLCBpbnQpOwordm9pZAlpbmV0NnByaW50KHVuc2lnbmVkIGNoYXIgKiwgaW50LCBjb25zdCBjaGFyICosIGludCk7CmRpZmYgLS1naXQgYS9hcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMgYi9hcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKaW5kZXggOThhOWMwYy4uMWRiYTc0ZCAxMDA2NDQKLS0tIGEvYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCisrKyBiL2FwcHMvc25tcG5ldHN0YXQvcm91dGUuYwpAQCAtODAsMTMgKzgwLDEzIEBACiAjZGVmaW5lIFNFVF9BTEwgIDB4MWYKIAogc3RydWN0IHJvdXRlX2VudHJ5IHsKLSAgICBvaWQgICAgICAgICAgICAgaW5zdGFuY2VbNF07CiAgICAgaW5fYWRkcl90ICAgICAgIGRlc3RpbmF0aW9uOwogICAgIGluX2FkZHJfdCAgICAgICBtYXNrOwogICAgIGluX2FkZHJfdCAgICAgICBnYXRld2F5OwogICAgIGludCAgICAgICAgICAgICBpZk51bWJlcjsKICAgICBpbnQgICAgICAgICAgICAgdHlwZTsKICAgICBpbnQgICAgICAgICAgICAgcHJvdG87CisgICAgaW50ICAgICAgICAgICAgIGFmOwogICAgIGludCAgICAgICAgICAgICBzZXRfYml0czsKICAgICBjaGFyICAgICAgICAgICAgaWZuYW1lWzY0XTsKIH07CkBAIC0xMTAsNyArMTEwLDcgQEAKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhcj1OVUxMLCAqdnA7CiAgICAgY2hhciAgKmNwOwogICAgIAotICAgIHByaW50ZigiUm91dGluZyB0YWJsZXNcbiIpOworICAgIHByaW50ZigiUm91dGluZyB0YWJsZXMgKGlwUm91dGVUYWJsZSlcbiIpOwogICAgIHByX3J0aGRyKEFGX0lORVQpOwogCiAjZGVmaW5lIEFERF9SVFZBUiggeCApIHJ0Y29sX29pZFsgcnRjb2xfbGVuLTEgXSA9IHg7IFwKQEAgLTEzMiw2ICsxMzIsMTAgQEAKICAgICAgICAgaWYgKCBzbm1wX29pZF9jb21wYXJlKCBydGNvbF9vaWQsIHJ0Y29sX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXItPm5hbWUsIHJ0Y29sX2xlbikgIT0gMCApCiAgICAgICAgICAgICBicmVhazsgICAgLyogRW5kIG9mIFRhYmxlICovCisJaWYgKHZhci0+dHlwZSA9PSBTTk1QX05PU1VDSE9CSkVDVCB8fAorICAgICAgICAgICAgICAgIHZhci0+dHlwZSA9PSBTTk1QX05PU1VDSElOU1RBTkNFIHx8CisgICAgICAgICAgICAgICAgdmFyLT50eXBlID09IFNOTVBfRU5ET0ZNSUJWSUVXKQorCSAgICBicmVhazsKICAgICAgICAgbWVtc2V0KCAmcm91dGUsIDAsIHNpemVvZiggc3RydWN0IHJvdXRlX2VudHJ5ICkpOwogICAgICAgICAvKiBFeHRyYWN0IGlwUm91dGVEZXN0IGluZGV4IHZhbHVlICovCiAgICAgICAgIGNwID0gdG1wQWRkci5kYXRhOwpAQCAtMTc0LDYgKzE3OCwxMDQgQEAKIH0KIAogCitpbnQKK3JvdXRlNHByKGludCBhZikKK3sKKyAgICBzdHJ1Y3Qgcm91dGVfZW50cnkgIHJvdXRlLCAqcnAgPSAmcm91dGU7CisgICAgb2lkICAgIHJ0Y29sX29pZFtdICA9IHsgMSwzLDYsMSwyLDEsNCwyNCw0LDEsMCB9OyAvKiBpcENpZHJSb3V0ZUVudHJ5ICovCisgICAgc2l6ZV90IHJ0Y29sX2xlbiAgICA9IE9JRF9MRU5HVEgoIHJ0Y29sX29pZCApOworICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFyID0gTlVMTCwgKnZwOworICAgIHVuaW9uIHsKKyAgICAgICAgaW5fYWRkcl90IGFkZHI7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgZGF0YVs0XTsKKyAgICB9IHRtcEFkZHI7CisgICAgaW50IHByaW50ZWQgPSAwOworICAgIGludCBoZHJfYWYgPSBBRl9VTlNQRUM7CisKKyAgICBpZiAoYWYgIT0gQUZfVU5TUEVDICYmIGFmICE9IEFGX0lORVQpCisgICAgICAgIHJldHVybiAwOworCisjZGVmaW5lIEFERF9SVFZBUiggeCApIHJ0Y29sX29pZFsgcnRjb2xfbGVuLTEgXSA9IHg7IFwKKyAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCAmdmFyLCBydGNvbF9vaWQsIHJ0Y29sX2xlbiwgQVNOX05VTEwsIE5VTEwsICAwKQorICAgIEFERF9SVFZBUiggNSApOyAgICAgICAgICAgICAgICAgLyogaXBDaWRyUm91dGVJZkluZGV4ICovCisgICAgQUREX1JUVkFSKCA2ICk7ICAgICAgICAgICAgICAgICAvKiBpcENpZHJSb3V0ZVR5cGUgICAgKi8KKyAgICBBRERfUlRWQVIoIDcgKTsgICAgICAgICAgICAgICAgIC8qIGlwQ2lkclJvdXRlUHJvdG8gICAqLworI3VuZGVmIEFERF9SVFZBUgorCisgICAgLyoKKyAgICAgKiBOb3cgd2FsayB0aGUgaXBDaWRyUm91dGVUYWJsZSwgcmVwb3J0aW5nIHRoZSB2YXJpb3VzIHJvdXRlIGVudHJpZXMKKyAgICAgKi8KKyAgICB3aGlsZSAoIDEgKSB7CisgICAgICAgIG9pZCAqb3A7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgKmNwOworCisgICAgICAgIGlmIChuZXRzbm1wX3F1ZXJ5X2dldG5leHQoIHZhciwgc3MgKSAhPSBTTk1QX0VSUl9OT0VSUk9SKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHJ0Y29sX29pZFsgcnRjb2xfbGVuLTEgXSA9IDU7ICAgICAgICAvKiBpcFJvdXRlSWZJbmRleCAqLworICAgICAgICBpZiAoIHNubXBfb2lkX2NvbXBhcmUoIHJ0Y29sX29pZCwgcnRjb2xfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhci0+bmFtZSwgcnRjb2xfbGVuKSAhPSAwICkKKyAgICAgICAgICAgIGJyZWFrOyAgICAvKiBFbmQgb2YgVGFibGUgKi8KKyAgICAgICAgaWYgKHZhci0+dHlwZSA9PSBTTk1QX05PU1VDSE9CSkVDVCB8fAorICAgICAgICAgICAgICAgIHZhci0+dHlwZSA9PSBTTk1QX05PU1VDSElOU1RBTkNFIHx8CisgICAgICAgICAgICAgICAgdmFyLT50eXBlID09IFNOTVBfRU5ET0ZNSUJWSUVXKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIG1lbXNldCggJnJvdXRlLCAwLCBzaXplb2YoIHN0cnVjdCByb3V0ZV9lbnRyeSApKTsKKwlycC0+YWYgPSBBRl9JTkVUOworCW9wID0gdmFyLT5uYW1lK3J0Y29sX2xlbjsKKyAgICAgICAgY3AgPSB0bXBBZGRyLmRhdGE7CisgICAgICAgIGNwWzBdID0gKm9wKysgJiAweGZmOworICAgICAgICBjcFsxXSA9ICpvcCsrICYgMHhmZjsKKyAgICAgICAgY3BbMl0gPSAqb3ArKyAmIDB4ZmY7CisgICAgICAgIGNwWzNdID0gKm9wKysgJiAweGZmOworICAgICAgICBycC0+ZGVzdGluYXRpb24gPSB0bXBBZGRyLmFkZHI7CisgICAgICAgIGNwID0gdG1wQWRkci5kYXRhOworICAgICAgICBjcFswXSA9ICpvcCsrICYgMHhmZjsKKyAgICAgICAgY3BbMV0gPSAqb3ArKyAmIDB4ZmY7CisgICAgICAgIGNwWzJdID0gKm9wKysgJiAweGZmOworICAgICAgICBjcFszXSA9ICpvcCsrICYgMHhmZjsKKyAgICAgICAgcnAtPm1hc2sgPSB0bXBBZGRyLmFkZHI7CisJb3ArKzsgLyogaXBDaWRyUm91dGVUb3MgKi8KKyAgICAgICAgY3AgPSB0bXBBZGRyLmRhdGE7CisgICAgICAgIGNwWzBdID0gKm9wKysgJiAweGZmOworICAgICAgICBjcFsxXSA9ICpvcCsrICYgMHhmZjsKKyAgICAgICAgY3BbMl0gPSAqb3ArKyAmIDB4ZmY7CisgICAgICAgIGNwWzNdID0gKm9wKysgJiAweGZmOworICAgICAgICBycC0+Z2F0ZXdheSA9IHRtcEFkZHIuYWRkcjsKKwlycC0+c2V0X2JpdHMgPSBTRVRfTUFTSyB8IFNFVF9HV0FZOworCisgICAgICAgIGZvciAoIHZwPXZhcjsgdnA7IHZwPXZwLT5uZXh0X3ZhcmlhYmxlICkgeworICAgICAgICAgICAgc3dpdGNoICggdnAtPm5hbWVbIHJ0Y29sX2xlbiAtIDEgXSApIHsKKyAgICAgICAgICAgIGNhc2UgNTogICAgIC8qIGlwQ2lkclJvdXRlSWZJbmRleCAqLworICAgICAgICAgICAgICAgIHJwLT5pZk51bWJlciAgPSAqdnAtPnZhbC5pbnRlZ2VyOworICAgICAgICAgICAgICAgIHJwLT5zZXRfYml0cyB8PSBTRVRfSUZOTzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgNjogICAgIC8qIGlwQ2lkclJvdXRlVHlwZSAgICAqLworICAgICAgICAgICAgICAgIHJwLT50eXBlICAgICAgPSAqdnAtPnZhbC5pbnRlZ2VyOworICAgICAgICAgICAgICAgIHJwLT5zZXRfYml0cyB8PSBTRVRfVFlQRTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgNzogICAgIC8qIGlwQ2lkclJvdXRlUHJvdG8gICAqLworICAgICAgICAgICAgICAgIHJwLT5wcm90byAgICAgPSAqdnAtPnZhbC5pbnRlZ2VyOworICAgICAgICAgICAgICAgIHJwLT5zZXRfYml0cyB8PSBTRVRfUFJUTzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAocnAtPnNldF9iaXRzICE9IFNFVF9BTEwpIHsKKyAgICAgICAgICAgIGNvbnRpbnVlOyAgIC8qIEluY29tcGxldGUgcXVlcnkgKi8KKyAgICAgICAgfQorCisgICAgICAgIGlmIChoZHJfYWYgIT0gcnAtPmFmKSB7CisgICAgICAgICAgICBpZiAoaGRyX2FmICE9IEFGX1VOU1BFQykKKyAgICAgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgICAgICBoZHJfYWYgPSBycC0+YWY7CisJICAgIHByaW50ZigiUm91dGluZyB0YWJsZXMgKGlwQ2lkclJvdXRlVGFibGUpXG4iKTsKKyAgICAgICAgICAgIHByX3J0aGRyKGhkcl9hZik7CisgICAgICAgIH0KKyAgICAgICAgcF9ydG5vZGUoIHJwICk7CisgICAgICAgIHByaW50ZWQrKzsKKyAgICB9CisgICAgcmV0dXJuIHByaW50ZWQ7Cit9CisKIAogc3RydWN0IGlmbGlzdCB7CiAgICAgaW50ICAgICAgICAgICAgIGluZGV4OwpAQCAtMTg2LDYgKzI4OCw4IEBACiB7CiAgICAgb2lkICAgIGlmZGVzY3Jfb2lkW10gID0geyAxLDMsNiwxLDIsMSwyLDIsMSwyLDAgfTsKICAgICBzaXplX3QgaWZkZXNjcl9sZW4gICAgPSBPSURfTEVOR1RIKCBpZmRlc2NyX29pZCApOworICAgIG9pZCAgICBpZnhjb2xfb2lkW10gPSB7IDEsMyw2LDEsMiwxLDMxLDEsMSwxLDEsMCB9OworICAgIHNpemVfdCBpZnhjb2xfbGVuICAgPSBPSURfTEVOR1RIKCBpZnhjb2xfb2lkICk7CiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXIgPSBOVUxMOwogICAgIHN0cnVjdCBpZmxpc3QgICAgICAgICAqaXA7CiAKQEAgLTIwNCw2ICszMDgsMTggQEAKICAgICBJZmxpc3QgPSBpcDsKICAgICBpcC0+aW5kZXggPSBpZkluZGV4OwogCisgICAgaWZ4Y29sX29pZFsgaWZ4Y29sX2xlbi0xIF0gPSBpZkluZGV4OworICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoICZ2YXIsIGlmeGNvbF9vaWQsIGlmeGNvbF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNOX05VTEwsIE5VTEwsICAwKTsKKyAgICBpZiAobmV0c25tcF9xdWVyeV9nZXQoIHZhciwgc3MgKSA9PSBTTk1QX0VSUl9OT0VSUk9SKSB7CisgICAgICAgIGlmICh2YXItPnZhbF9sZW4gPj0gc2l6ZW9mKGlwLT5uYW1lKSkKKyAgICAgICAgICAgIHZhci0+dmFsX2xlbiAgPSBzaXplb2YoaXAtPm5hbWUpIC0gMTsKKyAgICAgICAgbWVtbW92ZShpcC0+bmFtZSwgdmFyLT52YWwuc3RyaW5nLCB2YXItPnZhbF9sZW4pOworICAgICAgICBpcC0+bmFtZVt2YXItPnZhbF9sZW5dID0gJ1wwJzsKKwlzdHJjcHkobmFtZSwgaXAtPm5hbWUpOworCXJldHVybjsKKyAgICB9CisKICAgICBpZmRlc2NyX29pZFsgaWZkZXNjcl9sZW4tMSBdID0gaWZJbmRleDsKICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCAmdmFyLCBpZmRlc2NyX29pZCwgaWZkZXNjcl9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNOX05VTEwsIE5VTEwsICAwKTsKQEAgLTIxOCw1MCArMzM0LDYgQEAKICAgICBzdHJjcHkobmFtZSwgaXAtPm5hbWUpOwogfQogCi0vKgotICogUHJpbnQgYWRkcmVzcyBmYW1pbHkgaGVhZGVyIGJlZm9yZSBhIHNlY3Rpb24gb2YgdGhlIHJvdXRpbmcgdGFibGUuCi0gKi8KLXZvaWQKLXByX2ZhbWlseShpbnQgYWYpCi17Ci0JY29uc3QgY2hhciAqYWZuYW1lOwotCi0Jc3dpdGNoIChhZikgewotCWNhc2UgQUZfSU5FVDoKLQkJYWZuYW1lID0gIkludGVybmV0IjsKLQkJYnJlYWs7Ci0jaWZkZWYgTkVUU05NUF9FTkFCTEVfSVBWNgotCWNhc2UgQUZfSU5FVDY6Ci0JCWFmbmFtZSA9ICJJbnRlcm5ldDYiOwotCQlicmVhazsKLSNlbmRpZgotICAgIC8qCi0JY2FzZSBBRl9OUzoKLQkJYWZuYW1lID0gIlhOUyI7Ci0JCWJyZWFrOwotCWNhc2UgQUZfSVBYOgotCQlhZm5hbWUgPSAiSVBYIjsKLQkJYnJlYWs7Ci0JY2FzZSBBRl9DQ0lUVDoKLQkJYWZuYW1lID0gIlguMjUiOwotCQlicmVhazsKLQljYXNlIFBGX0tFWToKLQkJYWZuYW1lID0gIkVuY2FwIjsKLQkJYnJlYWs7Ci0JY2FzZSBBRl9BUFBMRVRBTEs6Ci0JCWFmbmFtZSA9ICJBcHBsZVRhbGsiOwotCQlicmVhazsKLSAgICAgKi8KLQlkZWZhdWx0OgotCQlhZm5hbWUgPSBOVUxMOwotCQlicmVhazsKLQl9Ci0JaWYgKGFmbmFtZSkKLQkJcHJpbnRmKCJcbiVzOlxuIiwgYWZuYW1lKTsKLQllbHNlCi0JCXByaW50ZigiXG5Qcm90b2NvbCBGYW1pbHkgJWQ6XG4iLCBhZik7Ci19Ci0KIC8qIGNvbHVtbiB3aWR0aHM7IGVhY2ggZm9sbG93ZWQgYnkgb25lIHNwYWNlICovCiAjaWZuZGVmIE5FVFNOTVBfRU5BQkxFX0lQVjYKICNkZWZpbmUJV0lEX0RTVChhZikJMjYJLyogd2lkdGggb2YgZGVzdGluYXRpb24gY29sdW1uICovCkBAIC0zMjMsMTUgKzM5NSwxNSBAQAogCiAJaWYgKGZpcnN0KSB7CiAJCWZpcnN0ID0gMDsKLQkJaWYgKGdldGhvc3RuYW1lKGRvbWFpbiwgc2l6ZW9mIGRvbWFpbikgPT0gMCAmJgotCQkgICAgKGNwID0gc3RyY2hyKGRvbWFpbiwgJy4nKSkpCisJCWlmIChnZXRob3N0bmFtZShsaW5lLCBzaXplb2YgbGluZSkgPT0gMCAmJgorCQkgICAgKGNwID0gc3RyY2hyKGxpbmUsICcuJykpKQogCQkJKHZvaWQpIHN0cmxjcHkoZG9tYWluLCBjcCArIDEsIHNpemVvZiBkb21haW4pOwogCQllbHNlCiAJCQlkb21haW5bMF0gPSAnXDAnOwogCX0KIAljcCA9IE5VTEw7CiAJaWYgKCFuZmxhZykgewotCQlocCA9IGdldGhvc3RieWFkZHIoKGNoYXIgKikmaW4sIHNpemVvZiAoc3RydWN0IGluX2FkZHIpLAorCQlocCA9IG5ldHNubXBfZ2V0aG9zdGJ5YWRkcigoY2hhciAqKSZpbiwgc2l6ZW9mIChzdHJ1Y3QgaW5fYWRkciksCiAJCSAgICBBRl9JTkVUKTsKIAkJaWYgKGhwKSB7CiAJCQlpZiAoKGNwID0gc3RyY2hyKGhwLT5oX25hbWUsICcuJykpICYmCkBAIC00OTksNyArNTcxLDYgQEAKICAgICBzdGF0aWMgY2hhciBmbGFnX2J1ZlsxMF07CiAgICAgY2hhciAgKmNwID0gZmxhZ19idWY7CiAKLSAgICBtZW1zZXQoIGZsYWdfYnVmLCAwLCBzaXplb2YoZmxhZ19idWYpKTsKICAgICAqY3ArKyA9ICc8JzsKICAgICAqY3ArKyA9ICdVJzsgICAvKiByb3V0ZSBpcyBpbiB1c2UgKi8KICAgICBpZiAocnAtPm1hc2sgID09IDB4ZmZmZmZmZmYpCkBAIC01MDksNiArNTgwLDcgQEAKICAgICBpZiAocnAtPnR5cGUgID09IDQpCiAgICAgICAgICpjcCsrID0gJ0cnOyAgIC8qIHJlbW90ZSBkZXN0aW5hdGlvbi9uZXQgKi8KICAgICAqY3ArKyA9ICc+JzsKKyAgICAqY3AgPSAwOwogICAgIHJldHVybiBmbGFnX2J1ZjsKIH0KIApkaWZmIC0tZ2l0IGEvYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZXguYyBiL2FwcHMvc25tcG5ldHN0YXQvcm91dGV4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmUwNmQyNQotLS0gL2Rldi9udWxsCisrKyBiL2FwcHMvc25tcG5ldHN0YXQvcm91dGV4LmMKQEAgLTAsMCArMSw1NTggQEAKKy8qICAgICAgICAkT3BlbkJTRDogcm91dGUuYyx2IDEuNjYgMjAwNC8xMS8xNyAwMTo0NzoyMCBpdG9qdW4gRXhwICQgICAgICAgICovCisvKiAgICAgICAgJE5ldEJTRDogcm91dGUuYyx2IDEuMTUgMTk5Ni8wNS8wNyAwMjo1NTowNiB0aG9ycGVqIEV4cCAkICAgICAgICAqLworCisvKgorICogQ29weXJpZ2h0IChjKSAxOTgzLCAxOTg4LCAxOTkzCisgKiAgICAgICAgVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZmRlZiAgSU5IRVJJVEVEX0NPREUKKyNpZm5kZWYgbGludAorI2lmIDAKK3N0YXRpYyBjaGFyIHNjY3NpZFtdID0gImZyb206IEAoIylyb3V0ZS5jICAgICAgICA4LjMgKEJlcmtlbGV5KSAzLzkvOTQiOworI2Vsc2UKK3N0YXRpYyBjaGFyICpyY3NpZCA9ICIkT3BlbkJTRDogcm91dGUuYyx2IDEuNjYgMjAwNC8xMS8xNyAwMTo0NzoyMCBpdG9qdW4gRXhwICQiOworI2VuZGlmCisjZW5kaWYgLyogbm90IGxpbnQgKi8KKyNlbmRpZgorCisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisKKyNpZiBIQVZFX1NZU19UWVBFU19ICisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjZW5kaWYKKworI2lmIEhBVkVfTkVUSU5FVF9JTl9ICisjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorI2VuZGlmCisjaWYgSEFWRV9BUlBBX0lORVRfSAorI2luY2x1ZGUgPGFycGEvaW5ldC5oPgorI2VuZGlmCisKKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgorCisjaWYgSEFWRV9VTklTVERfSAorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2VuZGlmCisjaWYgSEFWRV9ORVREQl9ICisjaW5jbHVkZSA8bmV0ZGIuaD4KKyNlbmRpZgorCisjaWZuZGVmIElORVQKKyNkZWZpbmUgSU5FVAorI2VuZGlmCisKKyNpbmNsdWRlICJtYWluLmgiCisjaW5jbHVkZSAibmV0c3RhdC5oIgorI2lmIEhBVkVfV0lOU09DS19ICisjaW5jbHVkZSAid2luc3R1Yi5oIgorI2VuZGlmCisKKy8qIGluZXRDaWRyUm91dGVUYWJsZSAqLworI2RlZmluZSBTRVRfSUZOTyAweDAxCisjZGVmaW5lIFNFVF9UWVBFIDB4MDIKKyNkZWZpbmUgU0VUX1BSVE8gMHgwNAorI2RlZmluZSBTRVRfQUdFICAweDA4CisjZGVmaW5lIFNFVF9BUyAgIDB4MTAKKyNkZWZpbmUgU0VUX01FVDEgMHgyMAorI2RlZmluZSBTRVRfQUxMICAweDNmCisKKy8qIGlwNlJvdXRlVGFibGUgKi8KKyNkZWZpbmUgU0VUX0hPUCAgICAgMHg0MAorI2RlZmluZSBTRVRfSU5WQUxJRCAweDgwCisjZGVmaW5lIFNFVF9BTEw2ICAgIDB4NjcKKy8qIG5vdCBpbnZhbGlkLCBhbmQgb25seSB0aGUgY29sdW1ucyB0aGF0IHdlIGZldGNoICovCisKK3N0cnVjdCByb3V0ZV9lbnRyeSB7CisgICAgaW50ICAgICAgICAgICAgIGFmOworICAgIHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIGRzdDsKKyAgICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBob3A7CisgICAgaW50ICAgICAgICAgICAgIG1hc2s7CisgICAgaW50ICAgICAgICAgICAgIGlmTnVtYmVyOworICAgIGludCAgICAgICAgICAgICB0eXBlOworICAgIGludCAgICAgICAgICAgICBwcm90bzsKKyAgICBpbnQgICAgICAgICAgICAgYWdlOworICAgIGludCAgICAgICAgICAgICBhczsKKyAgICBpbnQgICAgICAgICAgICAgbWV0cmljMTsKKyAgICBpbnQgICAgICAgICAgICAgc2V0X2JpdHM7CisgICAgY2hhciAgICAgICAgICAgIGlmbmFtZVs2NF07Cit9OworCisKK3N0YXRpYyB2b2lkIHByX3J0eGhkcihpbnQgYWYsIGNvbnN0IGNoYXIgKnRhYmxlKTsKK3N0YXRpYyB2b2lkIHBfcnRub2RleCggc3RydWN0IHJvdXRlX2VudHJ5ICpycCApOworCisvKgorICogUHJpbnQgcm91dGluZyB0YWJsZXMuCisgKi8KK2ludAorcm91dGV4cHIoaW50IGFmKQoreworICAgIHN0cnVjdCByb3V0ZV9lbnRyeSAgcm91dGUsICpycCA9ICZyb3V0ZTsKKyAgICBvaWQgICAgcnRjb2xfb2lkW10gID0geyAxLDMsNiwxLDIsMSw0LDI0LDcsMSwwIH07IC8qIGluZXRDaWRyUm91dGVFbnRyeSAqLworICAgIHNpemVfdCBydGNvbF9sZW4gICAgPSBPSURfTEVOR1RIKCBydGNvbF9vaWQgKTsKKyAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhciA9IE5VTEwsICp2cDsKKyAgICBpbnQgaGRyX2FmID0gQUZfVU5TUEVDOworICAgIGludCBwcmludGVkID0gMDsKKworI2RlZmluZSBBRERfUlRWQVIoIHggKSBydGNvbF9vaWRbIHJ0Y29sX2xlbi0xIF0gPSB4OyBcCisgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSggJnZhciwgcnRjb2xfb2lkLCBydGNvbF9sZW4sIEFTTl9OVUxMLCBOVUxMLCAgMCkKKyAgICBBRERfUlRWQVIoIDcgKTsgICAgICAgICAgICAgICAgIC8qIGluZXRDaWRyUm91dGVJZkluZGV4ICovCisgICAgQUREX1JUVkFSKCA4ICk7ICAgICAgICAgICAgICAgICAvKiBpbmV0Q2lkclJvdXRlVHlwZSAgICAqLworICAgIEFERF9SVFZBUiggOSApOyAgICAgICAgICAgICAgICAgLyogaW5ldENpZHJSb3V0ZVByb3RvICAgKi8KKyAgICBBRERfUlRWQVIoIDEwICk7ICAgICAgICAgICAgICAgIC8qIGluZXRDaWRyUm91dGVBZ2UgICAqLworICAgIEFERF9SVFZBUiggMTEgKTsgICAgICAgICAgICAgICAgLyogaW5ldENpZHJSb3V0ZU5leHRIb3BBUyAgICovCisgICAgQUREX1JUVkFSKCAxMiApOyAgICAgICAgICAgICAgICAvKiBpbmV0Q2lkclJvdXRlTWV0cmljMSAgICovCisjdW5kZWYgQUREX1JUVkFSCisKKyAgICAvKgorICAgICAqIE5vdyB3YWxrIHRoZSBpbmV0Q2lkclJvdXRlVGFibGUsIHJlcG9ydGluZyB0aGUgdmFyaW91cyByb3V0ZSBlbnRyaWVzCisgICAgICovCisgICAgd2hpbGUgKCAxICkgeworICAgICAgICBvaWQgKm9wOworICAgICAgICB1bnNpZ25lZCBjaGFyICpjcDsKKyAgICAgICAgaW50IGk7CisKKyAgICAgICAgaWYgKG5ldHNubXBfcXVlcnlfZ2V0bmV4dCggdmFyLCBzcyApICE9IFNOTVBfRVJSX05PRVJST1IpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgcnRjb2xfb2lkWyBydGNvbF9sZW4tMSBdID0gNzsgICAgICAgIC8qIGlmUm91dGVJZkluZGV4ICovCisgICAgICAgIGlmICggc25tcF9vaWRfY29tcGFyZSggcnRjb2xfb2lkLCBydGNvbF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyLT5uYW1lLCBydGNvbF9sZW4pICE9IDAgKQorICAgICAgICAgICAgYnJlYWs7ICAgIC8qIEVuZCBvZiBUYWJsZSAqLworICAgICAgICBpZiAodmFyLT50eXBlID09IFNOTVBfTk9TVUNIT0JKRUNUIHx8CisgICAgICAgICAgICAgICAgdmFyLT50eXBlID09IFNOTVBfTk9TVUNISU5TVEFOQ0UgfHwKKyAgICAgICAgICAgICAgICB2YXItPnR5cGUgPT0gU05NUF9FTkRPRk1JQlZJRVcpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgbWVtc2V0KCAmcm91dGUsIDAsIHNpemVvZiggc3RydWN0IHJvdXRlX2VudHJ5ICkpOworICAgICAgICAvKiBFeHRyYWN0IGluZXRDaWRyUm91dGVEZXN0LCBpbmV0Q2lkclJvdXRlUGZ4TGVuLAorICAgICAgICAgKiBpbmV0Q2lkclJvdXRlTmV4dEhvcCBmcm9tIGluZGV4ICovCisgICAgICAgIHN3aXRjaCAodmFyLT5uYW1lW3J0Y29sX2xlbl0pIHsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgeyAgIHN0cnVjdCBzb2NrYWRkcl9pbiAqc2luID0gKHN0cnVjdCBzb2NrYWRkcl9pbiAqKSZyb3V0ZS5kc3Q7CisgICAgICAgICAgICAgICAgaW50IGxlbjsKKyAgICAgICAgICAgICAgICByb3V0ZS5hZiA9IEFGX0lORVQ7CisgICAgICAgICAgICAgICAgc2luLT5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKKyAgICAgICAgICAgICAgICBvcCA9IHZhci0+bmFtZStydGNvbF9sZW4rMTsKKyAgICAgICAgICAgICAgICBsZW4gPSAqb3ArKzsKKyAgICAgICAgICAgICAgICBjcCA9ICh1bnNpZ25lZCBjaGFyICopJnNpbi0+c2luX2FkZHI7CisgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSAqY3ArKyA9ICpvcCsrOworICAgICAgICAgICAgICAgIHJvdXRlLm1hc2sgPSAqb3ArKzsKKyAgICAgICAgICAgICAgICBvcCArPSAqb3ArMTsKKyAgICAgICAgICAgICAgICBvcCsrOyAvKiBhZGRyVHlwZSAqLworICAgICAgICAgICAgICAgIG9wKys7IC8qIGFkZHJMZW4gKi8KKyAgICAgICAgICAgICAgICBzaW4gPSAoc3RydWN0IHNvY2thZGRyX2luICopJnJvdXRlLmhvcDsKKyAgICAgICAgICAgICAgICBzaW4tPnNpbl9mYW1pbHkgPSBBRl9JTkVUOworICAgICAgICAgICAgICAgIGNwID0gKHVuc2lnbmVkIGNoYXIgKikmc2luLT5zaW5fYWRkcjsKKyAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspICpjcCsrID0gKm9wKys7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHsgICBzdHJ1Y3Qgc29ja2FkZHJfaW42ICpzaW42ID0gKHN0cnVjdCBzb2NrYWRkcl9pbjYgKikmcm91dGUuZHN0OworICAgICAgICAgICAgICAgIGludCBsZW47CisgICAgICAgICAgICAgICAgcm91dGUuYWYgPSBBRl9JTkVUNjsKKyAgICAgICAgICAgICAgICBzaW42LT5zaW42X2ZhbWlseSA9IEFGX0lORVQ2OworICAgICAgICAgICAgICAgIG9wID0gdmFyLT5uYW1lK3J0Y29sX2xlbisxOworICAgICAgICAgICAgICAgIGxlbiA9ICpvcCsrOworICAgICAgICAgICAgICAgIGNwID0gKHVuc2lnbmVkIGNoYXIgKikmc2luNi0+c2luNl9hZGRyOworICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgKmNwKysgPSAqb3ArKzsKKyAgICAgICAgICAgICAgICByb3V0ZS5tYXNrID0gKm9wKys7CisgICAgICAgICAgICAgICAgb3AgKz0gKm9wKzE7CisgICAgICAgICAgICAgICAgb3ArKzsgLyogYWRkclR5cGUgKi8KKyAgICAgICAgICAgICAgICBvcCsrOyAvKiBhZGRyTGVuICovCisgICAgICAgICAgICAgICAgc2luNiA9IChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopJnJvdXRlLmhvcDsKKyAgICAgICAgICAgICAgICBzaW42LT5zaW42X2ZhbWlseSA9IEFGX0lORVQ2OworICAgICAgICAgICAgICAgIGNwID0gKHVuc2lnbmVkIGNoYXIgKikmc2luNi0+c2luNl9hZGRyOworICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgKmNwKysgPSAqb3ArKzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQmFkIGFkZHJlc3MgdHlwZTogJWRcbiIsIChpbnQpdmFyLT5uYW1lW3J0Y29sX2xlbl0pOworICAgICAgICAgICAgZXhpdCgxKTsKKyAgICAgICAgfQorICAgICAgICAvKiBFeHRyYWN0IGlwUm91dGVEZXN0IGluZGV4IHZhbHVlICovCisKKyAgICAgICAgZm9yICggdnA9dmFyOyB2cDsgdnA9dnAtPm5leHRfdmFyaWFibGUgKSB7CisgICAgICAgICAgICBzd2l0Y2ggKCB2cC0+bmFtZVsgcnRjb2xfbGVuIC0gMSBdICkgeworICAgICAgICAgICAgY2FzZSA3OiAgICAgLyogaW5ldENpZHJSb3V0ZUlmSW5kZXggKi8KKyAgICAgICAgICAgICAgICBycC0+aWZOdW1iZXIgID0gKnZwLT52YWwuaW50ZWdlcjsKKyAgICAgICAgICAgICAgICBycC0+c2V0X2JpdHMgfD0gU0VUX0lGTk87CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDg6ICAgICAvKiBpbmV0Q2lkclJvdXRlVHlwZSAgICAqLworICAgICAgICAgICAgICAgIHJwLT50eXBlICAgICAgPSAqdnAtPnZhbC5pbnRlZ2VyOworICAgICAgICAgICAgICAgIHJwLT5zZXRfYml0cyB8PSBTRVRfVFlQRTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgOTogICAgIC8qIGluZXRDaWRyUm91dGVQcm90byAgICovCisgICAgICAgICAgICAgICAgcnAtPnByb3RvICAgICA9ICp2cC0+dmFsLmludGVnZXI7CisgICAgICAgICAgICAgICAgcnAtPnNldF9iaXRzIHw9IFNFVF9QUlRPOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxMDogICAgIC8qIGluZXRDaWRyUm91dGVBZ2UgICAqLworICAgICAgICAgICAgICAgIHJwLT5hZ2UgICAgID0gKnZwLT52YWwuaW50ZWdlcjsKKyAgICAgICAgICAgICAgICBycC0+c2V0X2JpdHMgfD0gU0VUX0FHRTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTE6ICAgICAvKiBpbmV0Q2lkclJvdXRlTmV4dEhvcEFTICAgKi8KKyAgICAgICAgICAgICAgICBycC0+YXMgICAgID0gKnZwLT52YWwuaW50ZWdlcjsKKyAgICAgICAgICAgICAgICBycC0+c2V0X2JpdHMgfD0gU0VUX0FTOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxMjogICAgIC8qIGluZXRDaWRyUm91dGVNZXRyaWMxICAgKi8KKyAgICAgICAgICAgICAgICBycC0+bWV0cmljMSAgICAgPSAqdnAtPnZhbC5pbnRlZ2VyOworICAgICAgICAgICAgICAgIHJwLT5zZXRfYml0cyB8PSBTRVRfTUVUMTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAocnAtPnNldF9iaXRzICE9IFNFVF9BTEwpIHsKKyAgICAgICAgICAgIGNvbnRpbnVlOyAgIC8qIEluY29tcGxldGUgcXVlcnkgKi8KKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoYWYgIT0gQUZfVU5TUEVDICYmIHJwLT5hZiAhPSBhZikKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmIChoZHJfYWYgIT0gcnAtPmFmKSB7CisgICAgICAgICAgICBpZiAoaGRyX2FmICE9IEFGX1VOU1BFQykKKyAgICAgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgICAgICBoZHJfYWYgPSBycC0+YWY7CisgICAgICAgICAgICBwcl9ydHhoZHIoaGRyX2FmLCAiaW5ldENpZHJSb3V0ZVRhYmxlIik7CisgICAgICAgIH0KKyAgICAgICAgcF9ydG5vZGV4KCBycCApOworICAgICAgICBwcmludGVkKys7CisgICAgfQorICAgIHJldHVybiBwcmludGVkOworfQorCisvKgorICogQmFja3dhcmRzLWNvbXBhdGliaWxpdHkgZm9yIHRoZSBJUFY2LU1JQgorICovCitpbnQKK3JvdXRlNnByKGludCBhZikKK3sKKyAgICBzdHJ1Y3Qgcm91dGVfZW50cnkgIHJvdXRlLCAqcnAgPSAmcm91dGU7CisgICAgb2lkICAgIHJ0Y29sX29pZFtdICA9IHsgMSwzLDYsMSwyLDEsNTUsMSwxMSwxLDAgfTsgLyogaXB2NlJvdXRlRW50cnkgKi8KKyAgICBzaXplX3QgcnRjb2xfbGVuICAgID0gT0lEX0xFTkdUSCggcnRjb2xfb2lkICk7CisgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXIgPSBOVUxMLCAqdnA7CisgICAgaW50IHByaW50ZWQgPSAwOworICAgIGludCBoZHJfYWYgPSBBRl9VTlNQRUM7CisgICAgaW50IGk7CisKKyAgICBpZiAoYWYgIT0gQUZfVU5TUEVDICYmIGFmICE9IEFGX0lORVQ2KQorICAgICAgICByZXR1cm4gMDsKKworI2RlZmluZSBBRERfUlRWQVIoIHggKSBydGNvbF9vaWRbIHJ0Y29sX2xlbi0xIF0gPSB4OyBcCisgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSggJnZhciwgcnRjb2xfb2lkLCBydGNvbF9sZW4sIEFTTl9OVUxMLCBOVUxMLCAgMCkKKyAgICBBRERfUlRWQVIoIDQgKTsgICAgICAgICAgICAgICAgIC8qIGlwdjZSb3V0ZUlmSW5kZXggKi8KKyAgICBBRERfUlRWQVIoIDUgKTsgICAgICAgICAgICAgICAgIC8qIGlwdjZSb3V0ZU5leHRIb3AgKi8KKyAgICBBRERfUlRWQVIoIDYgKTsgICAgICAgICAgICAgICAgIC8qIGlwdjZSb3V0ZVR5cGUgICAgKi8KKyAgICBBRERfUlRWQVIoIDcgKTsgICAgICAgICAgICAgICAgIC8qIGlwdjZSb3V0ZVByb3RvICAgKi8KKyAgICBBRERfUlRWQVIoIDExICk7ICAgICAgICAgICAgICAgIC8qIGlwdjZSb3V0ZU1ldHJpYyAgKi8KKyAgICBBRERfUlRWQVIoIDE0ICk7ICAgICAgICAgICAgICAgIC8qIGlwdjZSb3V0ZVZhbGlkICAgKi8KKyN1bmRlZiBBRERfUlRWQVIKKworICAgIC8qCisgICAgICogTm93IHdhbGsgdGhlIGlwdjZSb3V0ZVRhYmxlLCByZXBvcnRpbmcgdGhlIHZhcmlvdXMgcm91dGUgZW50cmllcworICAgICAqLworICAgIHdoaWxlICggMSApIHsKKyAgICAgICAgb2lkICpvcDsKKyAgICAgICAgdW5zaWduZWQgY2hhciAqY3AsICpjcDE7CisgICAgICAgIHN0cnVjdCBzb2NrYWRkcl9pbjYgKnNpbjYgPSAoc3RydWN0IHNvY2thZGRyX2luNiAqKSZyb3V0ZS5kc3Q7CisKKyAgICAgICAgaWYgKG5ldHNubXBfcXVlcnlfZ2V0bmV4dCggdmFyLCBzcyApICE9IFNOTVBfRVJSX05PRVJST1IpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgcnRjb2xfb2lkWyBydGNvbF9sZW4tMSBdID0gNDsgICAgICAgIC8qIGlwdjZSb3V0ZUlmSW5kZXggKi8KKyAgICAgICAgaWYgKCBzbm1wX29pZF9jb21wYXJlKCBydGNvbF9vaWQsIHJ0Y29sX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXItPm5hbWUsIHJ0Y29sX2xlbikgIT0gMCApCisgICAgICAgICAgICBicmVhazsgICAgLyogRW5kIG9mIFRhYmxlICovCisgICAgICAgIGlmICh2YXItPnR5cGUgPT0gU05NUF9OT1NVQ0hPQkpFQ1QgfHwKKyAgICAgICAgICAgICAgICB2YXItPnR5cGUgPT0gU05NUF9OT1NVQ0hJTlNUQU5DRSB8fAorICAgICAgICAgICAgICAgIHZhci0+dHlwZSA9PSBTTk1QX0VORE9GTUlCVklFVykKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBtZW1zZXQoICZyb3V0ZSwgMCwgc2l6ZW9mKCBzdHJ1Y3Qgcm91dGVfZW50cnkgKSk7CisgICAgICAgIHJwLT5hZiA9IEFGX0lORVQ2OworICAgICAgICBzaW42LT5zaW42X2ZhbWlseSA9IEFGX0lORVQ2OworICAgICAgICBvcCA9IHZhci0+bmFtZStydGNvbF9sZW47CisgICAgICAgIGNwID0gKHVuc2lnbmVkIGNoYXIgKikmc2luNi0+c2luNl9hZGRyOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykgKmNwKysgPSAqb3ArKzsKKyAgICAgICAgcm91dGUubWFzayA9ICpvcCsrOworCisgICAgICAgIGZvciAoIHZwPXZhcjsgdnA7IHZwPXZwLT5uZXh0X3ZhcmlhYmxlICkgeworICAgICAgICAgICAgc3dpdGNoICggdnAtPm5hbWVbIHJ0Y29sX2xlbiAtIDEgXSApIHsKKyAgICAgICAgICAgIGNhc2UgNDogICAgIC8qIGlwdjZSb3V0ZUlmSW5kZXggICovCisgICAgICAgICAgICAgICAgcnAtPmlmTnVtYmVyICA9ICp2cC0+dmFsLmludGVnZXI7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBUaGlzIGlzLCB0ZWNobmljYWxseSwgYW4gSXB2NklmSW5kZXgsIHdoaWNoCisgICAgICAgICAgICAgICAgICogY291bGQgbWF5YmUgYmUgZGlmZmVyZW50IHRoYW4gdGhlIElmSW5kZXgKKyAgICAgICAgICAgICAgICAgKiBmb3IgdGhlIHNhbWUgaW50ZXJmYWNlLiAgV2UgaWdub3JlIHRoaXMKKyAgICAgICAgICAgICAgICAgKiBwb3NzaWJpbGl0eSBmb3Igbm93LCBpbiB0aGUgaG9wZXMgdGhhdAorICAgICAgICAgICAgICAgICAqIG5vYm9keSBhY3R1YWxseSBhbGxvY2F0ZXMgdGhlc2UgbnVtYmVycworICAgICAgICAgICAgICAgICAqIGRpZmZlcmVudGx5LgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIHJwLT5zZXRfYml0cyB8PSBTRVRfSUZOTzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgNTogICAgIC8qIGlwdjZSb3V0ZU5leHRIb3AgICovCisgICAgICAgICAgICAgICAgY3AxID0gKHVuc2lnbmVkIGNoYXIgKil2cC0+dmFsLnN0cmluZzsKKyAgICAgICAgICAgICAgICBzaW42ID0gKHN0cnVjdCBzb2NrYWRkcl9pbjYgKikmcnAtPmhvcDsKKyAgICAgICAgICAgICAgICBzaW42LT5zaW42X2ZhbWlseSA9IEFGX0lORVQ2OworICAgICAgICAgICAgICAgIGNwID0gKHVuc2lnbmVkIGNoYXIgKikmc2luNi0+c2luNl9hZGRyOworICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSAqY3ArKyA9ICpjcDErKzsKKyAgICAgICAgICAgICAgICBycC0+c2V0X2JpdHMgfD0gU0VUX0hPUDsKKyAgICAgICAgICAgIGNhc2UgNjogICAgIC8qIGlwdjZSb3V0ZVR5cGUgICAgICovCisgICAgICAgICAgICAgICAgcnAtPnR5cGUgICAgICA9ICp2cC0+dmFsLmludGVnZXI7CisgICAgICAgICAgICAgICAgLyogVGhpcyBlbnVtIG1hcHMgdG8gc2ltaWxhciB2YWx1ZXMgaW4gaW5ldENpZHJSb3V0ZVR5cGUgKi8KKyAgICAgICAgICAgICAgICBycC0+c2V0X2JpdHMgfD0gU0VUX1RZUEU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDc6ICAgICAvKiBpcHY2Um91dGVQcm90b2NvbCAqLworICAgICAgICAgICAgICAgIHJwLT5wcm90byAgICAgPSAqdnAtPnZhbC5pbnRlZ2VyOworICAgICAgICAgICAgICAgIC8qIFRPRE86IHRoaXMgZG9lcyBub3QgbWFwIGRpcmVjdGx5IHRvIHRoZQorICAgICAgICAgICAgICAgICAqIGluZXRDaWRyUm91dGVQcm90b2NvbCB2YWx1ZXMuICBJZiB3ZSB1c2UKKyAgICAgICAgICAgICAgICAgKiBycC0+cHJvdG8gbW9yZSwgd2Ugd2lsbCBoYXZlIHRvIG1hbmFnZSB0aGlzLiAqLworICAgICAgICAgICAgICAgIHJwLT5zZXRfYml0cyB8PSBTRVRfUFJUTzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTE6ICAgIC8qIGlwdjZSb3V0ZU1ldHJpYyAgICovCisgICAgICAgICAgICAgICAgcnAtPm1ldHJpYzEgICA9ICp2cC0+dmFsLmludGVnZXI7CisgICAgICAgICAgICAgICAgcnAtPnNldF9iaXRzIHw9IFNFVF9NRVQxOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNDogICAgLyogaXB2NlJvdXRlVmFsaWQgICAgKi8KKyAgICAgICAgICAgICAgICBpZiAoKnZwLT52YWwuaW50ZWdlciA9PSAyKQorICAgICAgICAgICAgICAgICAgICBycC0+c2V0X2JpdHMgfD0gU0VUX0lOVkFMSUQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJwLT5zZXRfYml0cyAhPSBTRVRfQUxMNikgeworICAgICAgICAgICAgY29udGludWU7ICAgLyogSW5jb21wbGV0ZSBxdWVyeSAqLworICAgICAgICB9CisgICAgCisgICAgICAgIGlmIChoZHJfYWYgIT0gcnAtPmFmKSB7CisgICAgICAgICAgICBpZiAoaGRyX2FmICE9IEFGX1VOU1BFQykKKyAgICAgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAgICAgICBoZHJfYWYgPSBycC0+YWY7CisgICAgICAgICAgICBwcl9ydHhoZHIoQUZfSU5FVDYsICJpcDZSb3V0ZVRhYmxlIik7CisgICAgICAgIH0KKyAgICAgICAgcF9ydG5vZGV4KCBycCApOworICAgICAgICBwcmludGVkKys7CisgICAgfQorICAgIHJldHVybiBwcmludGVkOworfQorCisKKy8qIGNvbHVtbiB3aWR0aHM7IGVhY2ggZm9sbG93ZWQgYnkgb25lIHNwYWNlICovCisjaWZuZGVmIE5FVFNOTVBfRU5BQkxFX0lQVjYKKyNkZWZpbmUgICAgICAgIFdJRF9EU1QoYWYpICAgICAgICAyNiAgICAgICAgLyogd2lkdGggb2YgZGVzdGluYXRpb24gY29sdW1uICovCisjZGVmaW5lICAgICAgICBXSURfR1coYWYpICAgICAgICAxOCAgICAgICAgLyogd2lkdGggb2YgZ2F0ZXdheSBjb2x1bW4gKi8KKyNlbHNlCisvKiB3aWR0aCBvZiBkZXN0aW5hdGlvbi9nYXRld2F5IGNvbHVtbiAqLworLyogc3RybGVuKCJmZTgwOjphYWFhOmJiYmI6Y2NjYzpkZGRkQGdpZjAiKSA9PSAzMCwgc3RybGVuKCIvMTI4IikgPT0gNCAqLworI2RlZmluZSAgICAgICAgV0lEX0RTVChhZikgICAgICAgICgoYWYpID09IEFGX0lORVQ2ID8gKG5mbGFnID8gMzQgOiAyNikgOiAyNikKKyNkZWZpbmUgICAgICAgIFdJRF9HVyhhZikgICAgICAgICgoYWYpID09IEFGX0lORVQ2ID8gKG5mbGFnID8gMzkgOiAyNikgOiAyNikKKyNlbmRpZiAvKiBORVRTTk1QX0VOQUJMRV9JUFY2ICovCisKKy8qCisgKiBQcmludCBoZWFkZXIgZm9yIHJvdXRpbmcgdGFibGUgY29sdW1ucy4KKyAqLworc3RhdGljIHZvaWQKK3ByX3J0eGhkcihpbnQgYWYsIGNvbnN0IGNoYXIgKnRhYmxlKQoreworICAgIHN3aXRjaCAoYWYpIHsKKyAgICBjYXNlIEFGX0lORVQ6CisJcHJpbnRmKCJJUHY0IFJvdXRpbmcgdGFibGVzIChpbmV0Q2lkclJvdXRlVGFibGUpXG4iKTsKKwlicmVhazsKKyAgICBjYXNlIEFGX0lORVQ2OgorCXByaW50ZigiSVB2NiBSb3V0aW5nIHRhYmxlcyAoJXMpXG4iLCB0YWJsZSk7CisJYnJlYWs7CisgICAgfQorICAgIHByaW50ZigiJS0qLipzICIsCisJV0lEX0RTVChhZiksIFdJRF9EU1QoYWYpLCAiRGVzdGluYXRpb24iKTsKKyAgICBwcmludGYoIiUtKi4qcyAlLTYuNnMgICVzXG4iLAorCVdJRF9HVyhhZiksIFdJRF9HVyhhZiksICJHYXRld2F5IiwKKwkiRmxhZ3MiLCAiSW50ZXJmYWNlIik7Cit9CisKKyNpZm5kZWYgSEFWRV9JTkVUX05UT1AKKy8qIE1TVkMgYW5kIE1pbkdXICovCisjZGVmaW5lIGluZXRfbnRvcCBuZXRzbm1wX2luZXRfbnRvcAorc3RhdGljIGNvbnN0IGNoYXIgKgorbmV0c25tcF9pbmV0X250b3AoaW50IGFmLCBjb25zdCB2b2lkICpzcmMsIGNoYXIgKmRzdCwgc2l6ZV90IHNpemUpCit7CisgICAgRFdPUkQgb3V0X2xlbiA9IHNpemU7CisKKyAgICBzd2l0Y2ggKGFmKSB7CisgICAgY2FzZSBBRl9JTkVUOgorCXsKKwkgICAgc3RydWN0IHNvY2thZGRyX2luIGluOworCisJICAgIG1lbXNldCgmaW4sIDAsIHNpemVvZihpbikpOworCSAgICBpbi5zaW5fZmFtaWx5ID0gYWY7CisJICAgIG1lbWNweSgmaW4uc2luX2FkZHIsIHNyYywgNCk7CisJICAgIGlmIChXU0FBZGRyZXNzVG9TdHJpbmcoKHN0cnVjdCBzb2NrYWRkciAqKSZpbiwgc2l6ZW9mKGluKSwgTlVMTCwgZHN0LAorCQkJCSAgICZvdXRfbGVuKSA9PSAwKQorCQlyZXR1cm4gZHN0OworCX0KKwlicmVhazsKKyAgICBjYXNlIEFGX0lORVQ2OgorCXsKKwkgICAgc3RydWN0IHNvY2thZGRyX2luNiBpbjY7CisKKwkgICAgbWVtc2V0KCZpbjYsIDAsIHNpemVvZihpbjYpKTsKKwkgICAgaW42LnNpbjZfZmFtaWx5ID0gYWY7CisJICAgIG1lbWNweSgmaW42LnNpbjZfYWRkciwgc3JjLCAxNik7CisJICAgIGlmIChXU0FBZGRyZXNzVG9TdHJpbmcoKHN0cnVjdCBzb2NrYWRkciAqKSZpbjYsIHNpemVvZihpbjYpLCBOVUxMLCBkc3QsCisJCQkJICAgJm91dF9sZW4pID09IDApCisJCXJldHVybiBkc3Q7CisJfQorCWJyZWFrOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsKK30KKyNlbmRpZgorCisvKgorICogUmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBuZXR3b3JrIHdob3NlIGFkZHJlc3MgaXMgZ2l2ZW4uCisgKiBUaGUgYWRkcmVzcyBpcyBhc3N1bWVkIHRvIGJlIHRoYXQgb2YgYSBuZXQgb3Igc3VibmV0LCBub3QgYSBob3N0LgorICovCitzdGF0aWMgY2hhciAqCituZXR4bmFtZShzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSAqaW4sIGludCBtYXNrKQoreworICAgIHN0YXRpYyBjaGFyIGhvc3RbTUFYSE9TVE5BTUVMRU5dOworICAgIHN0YXRpYyBjaGFyIGxpbmVbTUFYSE9TVE5BTUVMRU5dOworICAgIHN0cnVjdCBzb2NrYWRkcl9pbiAqc2luID0gKHN0cnVjdCBzb2NrYWRkcl9pbiAqKWluOworICAgIHN0cnVjdCBzb2NrYWRkcl9pbjYgKnNpbjYgPSAoc3RydWN0IHNvY2thZGRyX2luNiAqKWluOworCisgICAgc3dpdGNoIChpbi0+c3NfZmFtaWx5KSB7CisgICAgY2FzZSBBRl9JTkVUOgorICAgICAgICBpbmV0X250b3AoaW4tPnNzX2ZhbWlseSwgJnNpbi0+c2luX2FkZHIsIGhvc3QsIHNpemVvZihob3N0KSk7CisgICAgICAgIGlmIChtYXNrID09IDMyKSBzdHJjcHkobGluZSwgaG9zdCk7CisgICAgICAgIGVsc2Ugc25wcmludGYobGluZSwgc2l6ZW9mKGxpbmUpLCAiJXMvJWQiLCBob3N0LCBtYXNrKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBRl9JTkVUNjoKKyAgICAgICAgaW5ldF9udG9wKGluLT5zc19mYW1pbHksICZzaW42LT5zaW42X2FkZHIsIGhvc3QsIHNpemVvZihob3N0KSk7CisgICAgICAgIGlmIChtYXNrID09IDEyOCkgc3RyY3B5KGxpbmUsIGhvc3QpOworICAgICAgICBlbHNlIHNucHJpbnRmKGxpbmUsIHNpemVvZihsaW5lKSwgIiVzLyVkIiwgaG9zdCwgbWFzayk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gbGluZTsKK30KKworc3RhdGljIGNoYXIgKgorcm91dGV4bmFtZShzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSAqaW4pCit7CisgICAgY2hhciAqY3A7CisgICAgc3RhdGljIGNoYXIgbGluZVtNQVhIT1NUTkFNRUxFTl07CisgICAgc3RydWN0IGhvc3RlbnQgKmhwID0gTlVMTDsKKyAgICBzdGF0aWMgY2hhciBkb21haW5bTUFYSE9TVE5BTUVMRU5dOworICAgIHN0YXRpYyBpbnQgZmlyc3QgPSAxOworICAgIHN0cnVjdCBzb2NrYWRkcl9pbiAqc2luID0gKHN0cnVjdCBzb2NrYWRkcl9pbiAqKWluOworICAgIHN0cnVjdCBzb2NrYWRkcl9pbjYgKnNpbjYgPSAoc3RydWN0IHNvY2thZGRyX2luNiAqKWluOworCisgICAgaWYgKGZpcnN0KSB7CisgICAgICAgIGZpcnN0ID0gMDsKKyAgICAgICAgaWYgKGdldGhvc3RuYW1lKGxpbmUsIHNpemVvZiBsaW5lKSA9PSAwICYmCisgICAgICAgICAgICAoY3AgPSBzdHJjaHIobGluZSwgJy4nKSkpCisgICAgICAgICAgICAodm9pZCkgc3RybGNweShkb21haW4sIGNwICsgMSwgc2l6ZW9mIGRvbWFpbik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRvbWFpblswXSA9ICdcMCc7CisgICAgfQorICAgIGNwID0gTlVMTDsKKyAgICBpZiAoIW5mbGFnKSB7CisgICAgICAgIHN3aXRjaCAoaW4tPnNzX2ZhbWlseSkgeworICAgICAgICBjYXNlIEFGX0lORVQ6CisgICAgICAgICAgICBocCA9IG5ldHNubXBfZ2V0aG9zdGJ5YWRkcigmc2luLT5zaW5fYWRkciwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChzdHJ1Y3QgaW5fYWRkciksIEFGX0lORVQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQUZfSU5FVDY6CisgICAgICAgICAgICBocCA9IG5ldHNubXBfZ2V0aG9zdGJ5YWRkcigmc2luNi0+c2luNl9hZGRyLAorICAgICAgICAgICAgICAgICAgICBzaXplb2YgKHN0cnVjdCBpbjZfYWRkciksIEFGX0lORVQ2KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChocCkgeworICAgICAgICAgICAgaWYgKChjcCA9IHN0cmNocihocC0+aF9uYW1lLCAnLicpKSAmJiAhc3RyY21wKGNwICsgMSwgZG9tYWluKSkKKyAgICAgICAgICAgICAgICAqY3AgPSAnXDAnOworICAgICAgICAgICAgY3AgPSBocC0+aF9uYW1lOworICAgICAgICB9CisgICAgfQorICAgIGlmIChjcCkgeworICAgICAgICBzdHJsY3B5KGxpbmUsIGNwLCBzaXplb2YobGluZSkpOworICAgIH0gZWxzZSB7CisgICAgICAgIHN3aXRjaCAoaW4tPnNzX2ZhbWlseSkgeworICAgICAgICBjYXNlIEFGX0lORVQ6CisgICAgICAgICAgICBpbmV0X250b3Aoc2luLT5zaW5fZmFtaWx5LCAmc2luLT5zaW5fYWRkciwgbGluZSwgc2l6ZW9mKGxpbmUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFGX0lORVQ2OgorICAgICAgICAgICAgaW5ldF9udG9wKHNpbjYtPnNpbjZfZmFtaWx5LCAmc2luNi0+c2luNl9hZGRyLCBsaW5lLCBzaXplb2YobGluZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIChsaW5lKTsKK30KKworCitzdGF0aWMgY2hhciAqCitzX3J0ZmxhZ3N4KCBzdHJ1Y3Qgcm91dGVfZW50cnkgKnJwICkKK3sKKyAgICBzdGF0aWMgY2hhciBmbGFnX2J1ZlsxMF07CisgICAgY2hhciAgKmNwID0gZmxhZ19idWY7CisKKyAgICAqY3ArKyA9ICc8JzsKKyAgICAqY3ArKyA9ICdVJzsgICAvKiByb3V0ZSBpcyBpbiB1c2UgKi8KKyAgICBpZiAoKHJwLT5hZiA9PSBBRl9JTkVUICYmIHJwLT5tYXNrID09IDMyKSB8fAorICAgICAgICAgICAgKHJwLT5hZiA9PSBBRl9JTkVUNiAmJiBycC0+bWFzayA9PSAxMjgpKQorICAgICAgICAqY3ArKyA9ICdIJzsgICAvKiBob3N0ICovCisgICAgaWYgKHJwLT5wcm90byA9PSA0KQorICAgICAgICAqY3ArKyA9ICdEJzsgICAvKiBJQ01QIHJlZGlyZWN0ICovCisgICAgaWYgKHJwLT50eXBlICA9PSA0KQorICAgICAgICAqY3ArKyA9ICdHJzsgICAvKiByZW1vdGUgZGVzdGluYXRpb24vbmV0ICovCisgICAgKmNwKysgPSAnPic7CisgICAgKmNwID0gMDsKKyAgICByZXR1cm4gZmxhZ19idWY7Cit9CisKK3N0YXRpYyB2b2lkCitwX3J0bm9kZXgoIHN0cnVjdCByb3V0ZV9lbnRyeSAqcnAgKQoreworICAgIGdldF9pZm5hbWUocnAtPmlmbmFtZSwgcnAtPmlmTnVtYmVyKTsKKyAgICBpZiAocnAtPmFmID09IEFGX0lORVQpIHsKKyAgICAgICAgc3RydWN0IHNvY2thZGRyX2luICpzaW4gPSAoc3RydWN0IHNvY2thZGRyX2luICopJnJwLT5kc3Q7CisgICAgICAgIHByaW50ZigiJS0qcyAiLAorICAgICAgICAgICAgV0lEX0RTVChBRl9JTkVUKSwKKyAgICAgICAgICAgICAgICAoc2luLT5zaW5fYWRkci5zX2FkZHIgPT0gSU5BRERSX0FOWSkgPyAiZGVmYXVsdCIgOgorICAgICAgICAgICAgICAgIChycC0+bWFzayA9PSAzMiA/CisgICAgICAgICAgICAgICAgICAgIHJvdXRleG5hbWUoJnJwLT5kc3QpIDoKKyAgICAgICAgICAgICAgICAgICAgbmV0eG5hbWUoJnJwLT5kc3QsIHJwLT5tYXNrKSkpOworICAgIH0KKyAgICBlbHNlIGlmIChycC0+YWYgPT0gQUZfSU5FVDYpIHsKKyAgICAgICAgc3RydWN0IHNvY2thZGRyX2luNiAqc2luNiA9IChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopJnJwLT5kc3Q7CisgICAgICAgIHN0cnVjdCBpbjZfYWRkciBpbjZfYWRkcl9hbnkgPSBJTjZBRERSX0FOWV9JTklUOworICAgICAgICBwcmludGYoIiUtKnMgIiwKKyAgICAgICAgICAgIFdJRF9EU1QoQUZfSU5FVDYpLAorICAgICAgICAgICAgICAgIG1lbWNtcCgmc2luNi0+c2luNl9hZGRyLCAmaW42X2FkZHJfYW55LCBzaXplb2YoaW42X2FkZHJfYW55KSkgPT0gMCA/ICJkZWZhdWx0IiA6CisgICAgICAgICAgICAgICAgKHJwLT5tYXNrID09IDEyOCA/CisgICAgICAgICAgICAgICAgICAgIHJvdXRleG5hbWUoJnJwLT5kc3QpIDoKKyAgICAgICAgICAgICAgICAgICAgbmV0eG5hbWUoJnJwLT5kc3QsIHJwLT5tYXNrKSkpOworICAgIH0KKyAgICBwcmludGYoIiUtKnMgJS02LjZzICAlcyIsCisgICAgICAgIFdJRF9HVyhycC0+YWYpLAorICAgICAgICAxID8gcm91dGV4bmFtZSgmcnAtPmhvcCkgOiAiKiIsCisgICAgICAgIHNfcnRmbGFnc3gocnApLCBycC0+aWZuYW1lKTsKKyAgICBpZiAoKHJwLT5zZXRfYml0cyAmIFNFVF9BUykgJiYgcnAtPmFzICE9IDApCisgICAgICAgIHByaW50ZigiIChBUyAlZCkiLCBycC0+YXMpOworICAgIHByaW50ZigiXG4iKTsKK30KZGlmZiAtLWdpdCBhL2FwcHMvc25tcHRlc3QuYyBiL2FwcHMvc25tcHRlc3QuYwppbmRleCA1MTllMzhlLi4yNGRlNDdiIDEwMDY0NAotLS0gYS9hcHBzL3NubXB0ZXN0LmMKKysrIGIvYXBwcy9zbm1wdGVzdC5jCkBAIC0yMTAsOSArMjEwLDExIEBACiAgICAgICAgICAgICAgICAgICAgIGNhc2UgU05NUF9NU0dfUkVTUE9OU0U6CiAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIlJlY2VpdmVkIEdldCBSZXNwb25zZSAiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICAgICAgICAgICAgICAgICAgY2FzZSBTTk1QX01TR19TRVQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIlJlY2VpdmVkIFNldCBSZXF1ZXN0ICIpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgICAgICAgICAgICAgICAgIGNhc2UgU05NUF9NU0dfVFJBUDoKICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiUmVjZWl2ZWQgVHJhcCBSZXF1ZXN0ICIpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0zMTEsMTAgKzMxMywxMiBAQAogICAgICAgICAgICAgY29tbWFuZCA9IFNOTVBfTVNHX0dFVE5FWFQ7CiAgICAgICAgICAgICBwcmludGYoIlJlcXVlc3QgdHlwZSBpcyBHZXRuZXh0IFJlcXVlc3RcbiIpOwogICAgICAgICAgICAgYnJlYWs7CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICBjYXNlICdTJzoKICAgICAgICAgICAgIGNvbW1hbmQgPSBTTk1QX01TR19TRVQ7CiAgICAgICAgICAgICBwcmludGYoIlJlcXVlc3QgdHlwZSBpcyBTZXQgUmVxdWVzdFxuIik7CiAgICAgICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgY2FzZSAnQic6CiAgICAgICAgICAgICBjb21tYW5kID0gU05NUF9NU0dfR0VUQlVMSzsKICAgICAgICAgICAgIHByaW50ZigiUmVxdWVzdCB0eXBlIGlzIEJ1bGsgUmVxdWVzdFxuIik7CkBAIC0zMzMsMTEgKzMzNywxNCBAQAogICAgICAgICAgICAgcHJpbnRmKCIoQXJlIHlvdSBzZW5kaW5nIHRvIHRoZSByaWdodCBwb3J0PylcbiIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgJ0QnOgotICAgICAgICAgICAgaWYgKHNubXBfZ2V0X2R1bXBfcGFja2V0KCkpIHsKLSAgICAgICAgICAgICAgICBzbm1wX3NldF9kdW1wX3BhY2tldCgwKTsKKyAgICAgICAgICAgIGlmIChuZXRzbm1wX2RzX2dldF9ib29sZWFuKE5FVFNOTVBfRFNfTElCUkFSWV9JRCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9EVU1QX1BBQ0tFVCkpIHsKKyAgICAgICAgICAgICAgICBuZXRzbm1wX2RzX3NldF9ib29sZWFuKE5FVFNOTVBfRFNfTElCUkFSWV9JRCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9EVU1QX1BBQ0tFVCwgMCk7CiAgICAgICAgICAgICAgICAgcHJpbnRmKCJUdXJuZWQgcGFja2V0IGR1bXAgb2ZmXG4iKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc25tcF9zZXRfZHVtcF9wYWNrZXQoMSk7CisgICAgICAgICAgICAgICAgbmV0c25tcF9kc19zZXRfYm9vbGVhbihORVRTTk1QX0RTX0xJQlJBUllfSUQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfRFVNUF9QQUNLRVQsIDEpOwogICAgICAgICAgICAgICAgIHByaW50ZigiVHVybmVkIHBhY2tldCBkdW1wIG9uXG4iKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzUwLDExICszNTcsMTQgQEAKICAgICAgICAgICAgICAgICBleGl0KDApOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSAnUCc6Ci0gICAgICAgICAgICAgICAgaWYgKHNubXBfZ2V0X3F1aWNrX3ByaW50KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgc25tcF9zZXRfcXVpY2tfcHJpbnQoMCk7CisgICAgICAgICAgICAgICAgaWYgKG5ldHNubXBfZHNfZ2V0X2Jvb2xlYW4oTkVUU05NUF9EU19MSUJSQVJZX0lELCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9RVUlDS19QUklOVCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9kc19zZXRfYm9vbGVhbihORVRTTk1QX0RTX0xJQlJBUllfSUQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCX1FVSUNLX1BSSU5ULCAwKTsKICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJUdXJuZWQgcXVpY2sgcHJpbnRpbmcgb2ZmXG4iKTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBzbm1wX3NldF9xdWlja19wcmludCgxKTsKKyAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9kc19zZXRfYm9vbGVhbihORVRTTk1QX0RTX0xJQlJBUllfSUQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCX1FVSUNLX1BSSU5ULCAxKTsKICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJUdXJuZWQgcXVpY2sgcHJpbnRpbmcgb25cbiIpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM3NSw4ICszODUsMTIgQEAKIAl2cC0+bmFtZSA9IHNubXBfZHVwbGljYXRlX29iamlkKG5hbWUsIHZwLT5uYW1lX2xlbmd0aCk7CiAgICAgfQogCi0gICAgaWYgKGNvbW1hbmQgPT0gU05NUF9NU0dfU0VUIHx8IGNvbW1hbmQgPT0gU05NUF9NU0dfSU5GT1JNCi0gICAgICAgIHx8IGNvbW1hbmQgPT0gU05NUF9NU0dfVFJBUDIpIHsKKyAgICBpZiAoY29tbWFuZCA9PSBTTk1QX01TR19JTkZPUk0KKyAgICAgICAgfHwgY29tbWFuZCA9PSBTTk1QX01TR19UUkFQMgorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKKyAgICAgICAgfHwgY29tbWFuZCA9PSBTTk1QX01TR19TRVQKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKyAgICAgICAgKSB7CiAgICAgICAgIHByaW50ZigiVHlwZSBbaXx1fHN8eHxkfG58b3x0fGFdOiAiKTsKICAgICAgICAgZmZsdXNoKHN0ZG91dCk7CiAgICAgICAgIGlmICghZmdldHMoYnVmLCBzaXplb2YoYnVmKSwgc3RkaW4pKSB7CmRpZmYgLS1naXQgYS9hcHBzL3NubXB0bHMuYyBiL2FwcHMvc25tcHRscy5jCmluZGV4IDgwOWQzNjkuLjg0YzVmYmUgMTAwNjQ0Ci0tLSBhL2FwcHMvc25tcHRscy5jCisrKyBiL2FwcHMvc25tcHRscy5jCkBAIC00LDEwICs0LDEzIEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjdW5kZWYgTkVUU05NUF9VU0VfQVNTRVJUCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh0bHNfZmluZ2VycHJpbnRfYnVpbGQpCisKICNpbmNsdWRlIDxjdHlwZS5oPgogCiAjaW5jbHVkZSA8b3BlbnNzbC9zc2wuaD4KZGlmZiAtLWdpdCBhL2FwcHMvc25tcHRyYW5zbGF0ZS5jIGIvYXBwcy9zbm1wdHJhbnNsYXRlLmMKaW5kZXggNzM5MWZkNC4uMmIxOTc3NyAxMDA2NDQKLS0tIGEvYXBwcy9zbm1wdHJhbnNsYXRlLmMKKysrIGIvYXBwcy9zbm1wdHJhbnNsYXRlLmMKQEAgLTIwMiw3ICsyMDIsOCBAQAogI2VuZGlmIC8qIE5FVFNOTVBfRElTQUJMRV9NSUJfTE9BRElORyAqLwogICAgICAgICAgICAgICAgIGNhc2UgJ2QnOgogICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IDE7Ci0gICAgICAgICAgICAgICAgICAgIHNubXBfc2V0X3NhdmVfZGVzY3JpcHRpb25zKDEpOworICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2RzX3NldF9ib29sZWFuKE5FVFNOTVBfRFNfTElCUkFSWV9JRCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfU0FWRV9NSUJfREVTQ1JTLCAxKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSAnQic6CiAgICAgICAgICAgICAgICAgICAgIGZpbmRfYWxsID0gMTsKQEAgLTI2MSw3ICsyNjIsOCBAQAogCiAgICAgZG8gewogICAgICAgICBuYW1lX2xlbmd0aCA9IE1BWF9PSURfTEVOOwotICAgICAgICBpZiAoc25tcF9nZXRfcmFuZG9tX2FjY2VzcygpKSB7CisgICAgICAgIGlmIChuZXRzbm1wX2RzX2dldF9ib29sZWFuKE5FVFNOTVBfRFNfTElCUkFSWV9JRCwgCisJCQkJICBORVRTTk1QX0RTX0xJQl9SQU5ET01fQUNDRVNTKSkgewogI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfTUlCX0xPQURJTkcKICAgICAgICAgICAgIGlmICghZ2V0X25vZGUoY3VycmVudF9uYW1lLCBuYW1lLCAmbmFtZV9sZW5ndGgpKSB7CiAjZW5kaWYgLyogTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HICovCmRpZmYgLS1naXQgYS9hcHBzL3NubXB0cmFwZC5jIGIvYXBwcy9zbm1wdHJhcGQuYwppbmRleCAxNmRmZjUwLi5iY2UwZDQ3IDEwMDY0NAotLS0gYS9hcHBzL3NubXB0cmFwZC5jCisrKyBiL2FwcHMvc25tcHRyYXBkLmMKQEAgLTEyMyw2ICsxMjMsOCBAQAogI2luY2x1ZGUgPHRjcGQuaD4KICNlbmRpZgogCisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KKwogI2lmbmRlZiBCU0Q0XzMKICNkZWZpbmUgQlNENF8yCiAjZW5kaWYKQEAgLTIxNSw4ICsyMTcsNiBAQAogCiBjb25zdCBjaGFyICAgICAqYXBwX25hbWUgPSAic25tcHRyYXBkIjsKIAotc3RydWN0IHRpbWV2YWwgIE5vdzsKLQogdm9pZCAgICAgICAgICAgIHRyYXBkX3VwZGF0ZV9jb25maWcodm9pZCk7CiAKICNpZmRlZiBXSU4zMlNFUlZJQ0UKQEAgLTI4OSw2ICsyODksNyBAQAogICAgIGZwcmludGYoc3RkZXJyLCAiICAtdiwgLS12ZXJzaW9uXHRcdGRpc3BsYXkgdmVyc2lvbiBpbmZvcm1hdGlvblxuIik7CiAjaWYgZGVmaW5lZChVU0lOR19BR0VOVFhfU1VCQUdFTlRfTU9EVUxFKSAmJiAhZGVmaW5lZChORVRTTk1QX1NOTVBUUkFQRF9ESVNBQkxFX0FHRU5UWCkKICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLXggQUREUkVTU1x0XHR1c2UgQUREUkVTUyBhcyBBZ2VudFggYWRkcmVzc1xuIik7CisgICAgZnByaW50ZihzdGRlcnIsICIgIC1YXHRcdFx0ZG9uJ3QgYmVjb21lIGEgc3ViYWdlbnRcbiIpOwogI2VuZGlmCiAgICAgZnByaW50ZihzdGRlcnIsCiAgICAgICAgICAgICAiICAtTyA8T1VUT1BUUz5cdFx0dG9nZ2xlIG9wdGlvbnMgY29udHJvbGxpbmcgb3V0cHV0IGRpc3BsYXlcbiIpOwpAQCAtNDQzLDYgKzQ0NCw3IEBACiB7CiAgICAgaWYgKGRlZmF1bHRfcG9ydCAhPSBkZGVmYXVsdF9wb3J0KSB7CiAgICAgICAgIGZyZWUoZGVmYXVsdF9wb3J0KTsKKyAgICAgICAgZGVmYXVsdF9wb3J0ID0gZGRlZmF1bHRfcG9ydDsKICAgICB9CiB9CiAKQEAgLTQ3MiwxMyArNDc0LDEwIEBACiB2b2lkCiBwYXJzZV9jb25maWdfYWdlbnR1c2VyKGNvbnN0IGNoYXIgKnRva2VuLCBjaGFyICpjcHRyKQogewotI2lmIGRlZmluZWQoSEFWRV9HRVRQV05BTSkgJiYgZGVmaW5lZChIQVZFX1BXRF9IKQotICAgIHN0cnVjdCBwYXNzd2QgICppbmZvOwotI2VuZGlmCi0KICAgICBpZiAoY3B0clswXSA9PSAnIycpIHsKICAgICAgICAgY2hhciAgICAgICAgICAgKmVjcDsKICAgICAgICAgaW50ICAgICAgICAgICAgIHVpZDsKKwogICAgICAgICB1aWQgPSBzdHJ0b3VsKGNwdHIgKyAxLCAmZWNwLCAxMCk7CiAgICAgICAgIGlmICgqZWNwICE9IDApIHsKICAgICAgICAgICAgIGNvbmZpZ19wZXJyb3IoIkJhZCBudW1iZXIiKTsKQEAgLTQ4Niw0NCArNDg1LDQ3IEBACiAJICAgIG5ldHNubXBfZHNfc2V0X2ludChORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELCAKIAkJCSAgICAgICBORVRTTk1QX0RTX0FHRU5UX1VTRVJJRCwgdWlkKTsKIAl9Ci0gICAgfQogI2lmIGRlZmluZWQoSEFWRV9HRVRQV05BTSkgJiYgZGVmaW5lZChIQVZFX1BXRF9IKQotICAgIGVsc2UgaWYgKChpbmZvID0gZ2V0cHduYW0oY3B0cikpICE9IE5VTEwpIHsKLSAgICAgICAgbmV0c25tcF9kc19zZXRfaW50KE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsIAotCQkJICAgTkVUU05NUF9EU19BR0VOVF9VU0VSSUQsIGluZm8tPnB3X3VpZCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgY29uZmlnX3BlcnJvcigiVXNlciBub3QgZm91bmQgaW4gcGFzc3dkIGRhdGFiYXNlIik7Ci0gICAgfQotICAgIGVuZHB3ZW50KCk7CisgICAgICAgIHN0cnVjdCBwYXNzd2QgKmluZm87CisKKyAgICAgICAgaW5mbyA9IGdldHB3bmFtKGNwdHIpOworICAgICAgICBpZiAoaW5mbykKKyAgICAgICAgICAgIG5ldHNubXBfZHNfc2V0X2ludChORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0FHRU5UX1VTRVJJRCwgaW5mby0+cHdfdWlkKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29uZmlnX3BlcnJvcigiVXNlciBub3QgZm91bmQgaW4gcGFzc3dkIGRhdGFiYXNlIik7CisgICAgICAgIGVuZHB3ZW50KCk7CiAjZW5kaWYKKyAgICB9CiB9CiAKIHZvaWQKIHBhcnNlX2NvbmZpZ19hZ2VudGdyb3VwKGNvbnN0IGNoYXIgKnRva2VuLCBjaGFyICpjcHRyKQogewotI2lmIGRlZmluZWQoSEFWRV9HRVRHUk5BTSkgJiYgZGVmaW5lZChIQVZFX0dSUF9IKQotICAgIHN0cnVjdCBncm91cCAgICppbmZvOwotI2VuZGlmCi0KICAgICBpZiAoY3B0clswXSA9PSAnIycpIHsKICAgICAgICAgY2hhciAgICAgICAgICAgKmVjcDsKICAgICAgICAgaW50ICAgICAgICAgICAgIGdpZCA9IHN0cnRvdWwoY3B0ciArIDEsICZlY3AsIDEwKTsKKwogICAgICAgICBpZiAoKmVjcCAhPSAwKSB7CiAgICAgICAgICAgICBjb25maWdfcGVycm9yKCJCYWQgbnVtYmVyIik7CiAJfSBlbHNlIHsKICAgICAgICAgICAgIG5ldHNubXBfZHNfc2V0X2ludChORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELCAKIAkJCSAgICAgICBORVRTTk1QX0RTX0FHRU5UX0dST1VQSUQsIGdpZCk7CiAJfQotICAgIH0KICNpZiBkZWZpbmVkKEhBVkVfR0VUR1JOQU0pICYmIGRlZmluZWQoSEFWRV9HUlBfSCkKLSAgICBlbHNlIGlmICgoaW5mbyA9IGdldGdybmFtKGNwdHIpKSAhPSBOVUxMKSB7Ci0gICAgICAgIG5ldHNubXBfZHNfc2V0X2ludChORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELCAKLQkJCSAgIE5FVFNOTVBfRFNfQUdFTlRfR1JPVVBJRCwgaW5mby0+Z3JfZ2lkKTsKICAgICB9IGVsc2UgewotICAgICAgICBjb25maWdfcGVycm9yKCJHcm91cCBub3QgZm91bmQgaW4gZ3JvdXAgZGF0YWJhc2UiKTsKLSAgICB9Ci0gICAgZW5kcHdlbnQoKTsKKyAgICAgICAgc3RydWN0IGdyb3VwICAgKmluZm87CisKKyAgICAgICAgaW5mbyA9IGdldGdybmFtKGNwdHIpOworICAgICAgICBpZiAoaW5mbykKKyAgICAgICAgICAgIG5ldHNubXBfZHNfc2V0X2ludChORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0FHRU5UX0dST1VQSUQsIGluZm8tPmdyX2dpZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvbmZpZ19wZXJyb3IoIkdyb3VwIG5vdCBmb3VuZCBpbiBncm91cCBkYXRhYmFzZSIpOworICAgICAgICBlbmRncmVudCgpOwogI2VuZGlmCisgICAgfQogfQogI2VuZGlmCiAKQEAgLTU1Myw2ICs1NTUsNzQgQEAKICAgfQogfQogCitzdGF0aWMgdm9pZAorc25tcHRyYXBkX21haW5fbG9vcCh2b2lkKQoreworICAgIGludCAgICAgICAgICAgICBjb3VudCwgbnVtZmRzLCBibG9jazsKKyAgICBmZF9zZXQgICAgICAgICAgcmVhZGZkcyx3cml0ZWZkcyxleGNlcHRmZHM7CisgICAgc3RydWN0IHRpbWV2YWwgIHRpbWVvdXQsICp0dnA7CisKKyAgICB3aGlsZSAobmV0c25tcF9ydW5uaW5nKSB7CisgICAgICAgIGlmIChyZWNvbmZpZykgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogSWYgd2UgYXJlIGxvZ2dpbmcgdG8gYSBmaWxlLCByZWNlaXB0IG9mIFNJR0hVUCBhbHNvCisgICAgICAgICAgICAgICAgICogaW5kaWNhdGVzIHRoYXQgdGhlIGxvZyBmaWxlIHNob3VsZCBiZSBjbG9zZWQgYW5kCisgICAgICAgICAgICAgICAgICogcmUtb3BlbmVkLiAgVGhpcyBpcyB1c2VmdWwgZm9yIHVzZXJzIHRoYXQgd2FudCB0bworICAgICAgICAgICAgICAgICAqIHJvdGF0ZSBsb2dzIGluIGEgbW9yZSBwcmVkaWN0YWJsZSBtYW5uZXIuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgbmV0c25tcF9sb2dnaW5nX3Jlc3RhcnQoKTsKKyAgICAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfSU5GTywgIk5FVC1TTk1QIHZlcnNpb24gJXMgcmVzdGFydGVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfZ2V0X3ZlcnNpb24oKSk7CisgICAgICAgICAgICB0cmFwZF91cGRhdGVfY29uZmlnKCk7CisgICAgICAgICAgICBpZiAodHJhcDFfZm10X3N0cl9yZW1lbWJlcikgeworICAgICAgICAgICAgICAgIHBhcnNlX2Zvcm1hdCggTlVMTCwgdHJhcDFfZm10X3N0cl9yZW1lbWJlciApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVjb25maWcgPSAwOworICAgICAgICB9CisgICAgICAgIG51bWZkcyA9IDA7CisgICAgICAgIEZEX1pFUk8oJnJlYWRmZHMpOworICAgICAgICBGRF9aRVJPKCZ3cml0ZWZkcyk7CisgICAgICAgIEZEX1pFUk8oJmV4Y2VwdGZkcyk7CisgICAgICAgIGJsb2NrID0gMDsKKyAgICAgICAgdHZwID0gJnRpbWVvdXQ7CisgICAgICAgIHRpbWVyY2xlYXIodHZwKTsKKyAgICAgICAgdHZwLT50dl9zZWMgPSA1OworICAgICAgICBzbm1wX3NlbGVjdF9pbmZvKCZudW1mZHMsICZyZWFkZmRzLCB0dnAsICZibG9jayk7CisgICAgICAgIGlmIChibG9jayA9PSAxKQorICAgICAgICAgICAgdHZwID0gTlVMTDsgICAgICAgICAvKiBibG9jayB3aXRob3V0IHRpbWVvdXQgKi8KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9GRF9FVkVOVF9NQU5BR0VSCisgICAgICAgIG5ldHNubXBfZXh0ZXJuYWxfZXZlbnRfaW5mbygmbnVtZmRzLCAmcmVhZGZkcywgJndyaXRlZmRzLCAmZXhjZXB0ZmRzKTsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0ZEX0VWRU5UX01BTkFHRVIgKi8KKyAgICAgICAgY291bnQgPSBzZWxlY3QobnVtZmRzLCAmcmVhZGZkcywgJndyaXRlZmRzLCAmZXhjZXB0ZmRzLCB0dnApOworICAgICAgICBpZiAoY291bnQgPiAwKSB7CisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfRkRfRVZFTlRfTUFOQUdFUgorICAgICAgICAgICAgbmV0c25tcF9kaXNwYXRjaF9leHRlcm5hbF9ldmVudHMoJmNvdW50LCAmcmVhZGZkcywgJndyaXRlZmRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmV4Y2VwdGZkcyk7CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9GRF9FVkVOVF9NQU5BR0VSICovCisgICAgICAgICAgICAvKiBJZiB0aGVyZSBhcmUgYW55IG1vcmUgZXZlbnRzIGFmdGVyIGV4dGVybmFsIGV2ZW50cywgdGhlbgorICAgICAgICAgICAgICogdHJ5IFNOTVAgZXZlbnRzLiAqLworICAgICAgICAgICAgaWYgKGNvdW50ID4gMCkgeworICAgICAgICAgICAgICAgIHNubXBfcmVhZCgmcmVhZGZkcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzd2l0Y2ggKGNvdW50KSB7CisgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgc25tcF90aW1lb3V0KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIC0xOgorICAgICAgICAgICAgICAgIGlmIChlcnJubyA9PSBFSU5UUikKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgc25tcF9sb2dfcGVycm9yKCJzZWxlY3QiKTsKKyAgICAgICAgICAgICAgICBuZXRzbm1wX3J1bm5pbmcgPSAwOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInNlbGVjdCByZXR1cm5lZCAlZFxuIiwgY291bnQpOworICAgICAgICAgICAgICAgIG5ldHNubXBfcnVubmluZyA9IDA7CisgICAgICAgICAgICB9CisJfQorCXJ1bl9hbGFybXMoKTsKKyAgICB9Cit9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLW8tKioqKioqCiAgKiBtYWluIC0gTm9uIFdpbmRvd3MKQEAgLTU3NywxNCArNjQ3LDExIEBACiBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAjZW5kaWYKIHsKLSAgICBjaGFyICAgICAgICAgICAgb3B0aW9uc1sxMjhdID0gImFBYzpDZEQ6OmVmRjpnOmhISTpMOm06TTpubzpPOlBxc1M6dHU6dng6LToiOworICAgIGNoYXIgICAgICAgICAgICBvcHRpb25zWzEyOF0gPSAiYUFjOkNkRDo6ZWZGOmc6aEhJOkw6bTpNOm5vOk86UHR1OnZ4OlgtOiI7CiAgICAgbmV0c25tcF9zZXNzaW9uICpzZXNzX2xpc3QgPSBOVUxMLCAqc3MgPSBOVUxMOwogICAgIG5ldHNubXBfdHJhbnNwb3J0ICp0cmFuc3BvcnQgPSBOVUxMOwogICAgIGludCAgICAgICAgICAgICBhcmcsIGkgPSAwOwogICAgIGludCAgICAgICAgICAgICB1aWQgPSAwLCBnaWQgPSAwOwotICAgIGludCAgICAgICAgICAgICBjb3VudCwgbnVtZmRzLCBibG9jazsKLSAgICBmZF9zZXQgICAgICAgICAgcmVhZGZkcyx3cml0ZWZkcyxleGNlcHRmZHM7Ci0gICAgc3RydWN0IHRpbWV2YWwgIHRpbWVvdXQsICp0dnA7CiAgICAgY2hhciAgICAgICAgICAgKmNwLCAqbGlzdGVuX3BvcnRzID0gTlVMTDsKICNpZiBkZWZpbmVkKFVTSU5HX0FHRU5UWF9TVUJBR0VOVF9NT0RVTEUpICYmICFkZWZpbmVkKE5FVFNOTVBfU05NUFRSQVBEX0RJU0FCTEVfQUdFTlRYKQogICAgIGludCAgICAgICAgICAgICBhZ2VudHhfc3ViYWdlbnQgPSAxOwpAQCAtNjIzLDcgKzY5MCw5IEBACiAjaWZkZWYgTkVUU05NUF9VU0VfTVlTUUwKICAgICBzbm1wdHJhcGRfcmVnaXN0ZXJfc3FsX2NvbmZpZ3MoICk7CiAjZW5kaWYKKyNpZmRlZiBORVRTTk1QX1NFQ01PRF9VU00KICAgICBpbml0X3VzbV9jb25mKCAic25tcHRyYXBkIiApOworI2VuZGlmIC8qIE5FVFNOTVBfU0VDTU9EX1VTTSAqLwogICAgIHJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKCJzbm1wdHJhcGQiLCAic25tcFRyYXBkQWRkciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VfdHJhcGRfYWRkcmVzcywgZnJlZV90cmFwZF9hZGRyZXNzLCAic3RyaW5nIik7CiAKQEAgLTY1NiwxMSArNzI1LDEzIEBACiAgICAgc3RyY2F0KG9wdGlvbnMsICJwOiIpOwogI2VuZGlmCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NZU0xPRwogI2lmZGVmIFdJTjMyCiAgICAgc25tcF9sb2dfc3lzbG9nbmFtZShhcHBfbmFtZV9sb25nKTsKICNlbHNlCiAgICAgc25tcF9sb2dfc3lzbG9nbmFtZShhcHBfbmFtZSk7CiAjZW5kaWYKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1lTTE9HICovCiAKICAgICAvKgogICAgICAqIE5vdyBwcm9jZXNzIG9wdGlvbnMgbm9ybWFsbHkuICAKQEAgLTcwNiw3ICs3NzcsOCBAQAogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSAnZCc6Ci0gICAgICAgICAgICBzbm1wX3NldF9kdW1wX3BhY2tldCgxKTsKKyAgICAgICAgICAgIG5ldHNubXBfZHNfc2V0X2Jvb2xlYW4oTkVUU05NUF9EU19MSUJSQVJZX0lELCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfRFVNUF9QQUNLRVQsIDEpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSAnRCc6CkBAIC04NjEsMTkgKzkzMywxOCBAQAogICAgICAgICAgICAgICAgIGNoYXIgICAgICAgICAgICplY3A7CiAKICAgICAgICAgICAgICAgICB1aWQgPSBzdHJ0b3VsKG9wdGFyZywgJmVjcCwgMTApOworI2lmIEhBVkVfR0VUUFdOQU0gJiYgSEFWRV9QV0RfSAogICAgICAgICAgICAgICAgIGlmICgqZWNwKSB7Ci0jaWYgSEFWRV9HRVRQV05BTSAmJiBIQVZFX1BXRF9ICiAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwYXNzd2QgICppbmZvOworCiAgICAgICAgICAgICAgICAgICAgIGluZm8gPSBnZXRwd25hbShvcHRhcmcpOwotICAgICAgICAgICAgICAgICAgICBpZiAoaW5mbykgewotICAgICAgICAgICAgICAgICAgICAgICAgdWlkID0gaW5mby0+cHdfdWlkOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB1aWQgPSBpbmZvID8gaW5mby0+cHdfdWlkIDogLTE7CisgICAgICAgICAgICAgICAgICAgIGVuZHB3ZW50KCk7CisgICAgICAgICAgICAgICAgfQogI2VuZGlmCi0gICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkJhZCB1c2VyIGlkOiAlc1xuIiwgb3B0YXJnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQoMSk7Ci0jaWYgSEFWRV9HRVRQV05BTSAmJiBIQVZFX1BXRF9ICi0gICAgICAgICAgICAgICAgICAgIH0KLSNlbmRpZgorICAgICAgICAgICAgICAgIGlmICh1aWQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQmFkIHVzZXIgaWQ6ICVzXG4iLCBvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBleGl0KDEpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBuZXRzbm1wX2RzX3NldF9pbnQoTkVUU05NUF9EU19BUFBMSUNBVElPTl9JRCwgCiAJCQkJICAgTkVUU05NUF9EU19BR0VOVF9VU0VSSUQsIHVpZCk7CkBAIC04ODksNiArOTYwLDcgQEAKICAgICAgICAgICAgIGV4aXQoMCk7CiAgICAgICAgICAgICBicmVhazsKIAorI2lmIGRlZmluZWQoVVNJTkdfQUdFTlRYX1NVQkFHRU5UX01PRFVMRSkgJiYgIWRlZmluZWQoTkVUU05NUF9TTk1QVFJBUERfRElTQUJMRV9BR0VOVFgpCiAgICAgICAgIGNhc2UgJ3gnOgogICAgICAgICAgICAgaWYgKG9wdGFyZyAhPSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgbmV0c25tcF9kc19zZXRfc3RyaW5nKE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsCkBAIC04OTksNiArOTcxLDExIEBACiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICAgY2FzZSAnWCc6CisgICAgICAgICAgICBhZ2VudHhfc3ViYWdlbnQgPSAwOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJpbnZhbGlkIG9wdGlvbjogLSVjXG4iLCBhcmcpOwogICAgICAgICAgICAgdXNhZ2UoKTsKQEAgLTk0MCwxMCArMTAxNywxOSBAQAogICAgICAqIERvbid0IHRyeSB0aGlzIGF0IGhvbWUsIGNoaWxkcmVuIQogICAgICAqLwogICAgIGlmICgwID09IHNubXBfZ2V0X2RvX2xvZ2dpbmcoKSkgeworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1lTTE9HCiAgICAgICAgIHRyYXBoID0gbmV0c25tcF9hZGRfZ2xvYmFsX3RyYXBoYW5kbGVyKE5FVFNOTVBUUkFQRF9QUkVfSEFORExFUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzbG9nX2hhbmRsZXIpOwogICAgICAgICB0cmFwaC0+YXV0aHR5cGVzID0gVFJBUF9BVVRIX0xPRzsKICAgICAgICAgc25tcF9lbmFibGVfc3lzbG9nKCk7CisjZWxzZSAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1lTTE9HICovCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TVERJTworICAgICAgICB0cmFwaCA9IG5ldHNubXBfYWRkX2dsb2JhbF90cmFwaGFuZGxlcihORVRTTk1QVFJBUERfUFJFX0hBTkRMRVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50X2hhbmRsZXIpOworICAgICAgICB0cmFwaC0+YXV0aHR5cGVzID0gVFJBUF9BVVRIX0xPRzsKKyAgICAgICAgc25tcF9lbmFibGVfc3RkZXJyKCk7CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NURElPICovCisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NZU0xPRyAqLwogICAgIH0gZWxzZSB7CiAgICAgICAgIHRyYXBoID0gbmV0c25tcF9hZGRfZ2xvYmFsX3RyYXBoYW5kbGVyKE5FVFNOTVBUUkFQRF9QUkVfSEFORExFUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRfaGFuZGxlcik7CkBAIC05ODAsNiArMTA2Niw5IEBACiAgICAgaW5pdF9hZ2VudCgic25tcHRyYXBkIik7CiAKICNpZiBkZWZpbmVkKFVTSU5HX0FHRU5UWF9TVUJBR0VOVF9NT0RVTEUpICYmICFkZWZpbmVkKE5FVFNOTVBfU05NUFRSQVBEX0RJU0FCTEVfQUdFTlRYKQorI2lmZGVmIE5FVFNOTVBfRkVBVFVSRV9DSEVDS0lORworICAgIG5ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHJlZ2lzdGVyX3NubXBFbmdpbmVfc2NhbGFyc19jb250ZXh0KQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9DSEVDS0lORyAqLwogICAgIC8qCiAgICAgICogaW5pdGlhbGl6ZSBsb2NhbCBtb2R1bGVzIAogICAgICAqLwpAQCAtMTAyMCw2ICsxMTA5LDkgQEAKICAgICAgICAgZXh0ZXJuIHZvaWQgaW5pdF9yZWdpc3Rlcl9uc1ZhY21fY29udGV4dChjb25zdCBjaGFyICopOwogI2VuZGlmCiAjaWZkZWYgVVNJTkdfU05NUFYzX1VTTVVTRVJfTU9EVUxFCisjaWZkZWYgTkVUU05NUF9GRUFUVVJFX0NIRUNLSU5HCisgICAgICAgIG5ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGluaXRfcmVnaXN0ZXJfdXNtVXNlcl9jb250ZXh0KQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9DSEVDS0lORyAqLwogICAgICAgICBleHRlcm4gdm9pZCBpbml0X3JlZ2lzdGVyX3VzbVVzZXJfY29udGV4dChjb25zdCBjaGFyICopOwogICAgICAgICAvKiByZWdpc3RlciBvdXJzZWx2ZXMgYXMgaGF2aW5nIGEgVVNNIHVzZXIgZGF0YWJhc2UgKi8KICAgICAgICAgaW5pdF9yZWdpc3Rlcl91c21Vc2VyX2NvbnRleHQoInNubXB0cmFwZCIpOwpAQCAtMTA3MywxMSArMTE2NSwxMyBAQAogICAgICAqIGlmIG5vIGxvZ2dpbmcgb3B0aW9ucyBvbiBjb21tYW5kIGxpbmUgb3IgaW4gY29uZiBmaWxlcywgdXNlIHN5c2xvZwogICAgICAqLwogICAgIGlmICgwID09IHNubXBfZ2V0X2RvX2xvZ2dpbmcoKSkgeworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1lTTE9HCiAjaWZkZWYgV0lOMzIKICAgICAgICAgc25tcF9lbmFibGVfc3lzbG9nX2lkZW50KGFwcF9uYW1lX2xvbmcsIEZhY2lsaXR5KTsKICNlbHNlCiAgICAgICAgIHNubXBfZW5hYmxlX3N5c2xvZ19pZGVudChhcHBfbmFtZSwgRmFjaWxpdHkpOwogI2VuZGlmICAgICAgICAKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1lTTE9HICovCiAgICAgfQogCiAgICAgaWYgKGxpc3Rlbl9wb3J0cykKQEAgLTExMDcsNyArMTIwMSw2IEBACiAgICAgICAgICAgICAgICAgICogc3VjY2Vzc2Z1bGx5IHNvIHdoYXQgY291bGQgaGF2ZSBnb25lIHdyb25nPyAgCiAgICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAgc25tcHRyYXBkX2Nsb3NlX3Nlc3Npb25zKHNlc3NfbGlzdCk7Ci0gICAgICAgICAgICAgICAgbmV0c25tcF90cmFuc3BvcnRfZnJlZSh0cmFuc3BvcnQpOwogICAgICAgICAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJjb3VsZG4ndCBvcGVuIHNubXAgLSAlcyIsIHN0cmVycm9yKGVycm5vKSk7CiAgICAgICAgICAgICAgICAgU09DS19DTEVBTlVQOwogICAgICAgICAgICAgICAgIGV4aXQoMSk7CkBAIC0xMjI4LDYyICsxMzIxLDggQEAKICNpZmRlZiBXSU4zMlNFUlZJQ0UKICAgICB0cmFwZF9zdGF0dXMgPSBTTk1QVFJBUERfUlVOTklORzsKICNlbmRpZgotICAgIHdoaWxlIChuZXRzbm1wX3J1bm5pbmcpIHsKLSAgICAgICAgaWYgKHJlY29uZmlnKSB7Ci0gICAgICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAgICAgKiBJZiB3ZSBhcmUgbG9nZ2luZyB0byBhIGZpbGUsIHJlY2VpcHQgb2YgU0lHSFVQIGFsc28KLSAgICAgICAgICAgICAgICAgKiBpbmRpY2F0ZXMgdGhlIHRoZSBsb2cgZmlsZSBzaG91bGQgYmUgY2xvc2VkIGFuZAotICAgICAgICAgICAgICAgICAqIHJlLW9wZW5lZC4gIFRoaXMgaXMgdXNlZnVsIGZvciB1c2VycyB0aGF0IHdhbnQgdG8KLSAgICAgICAgICAgICAgICAgKiByb3RhdGUgbG9ncyBpbiBhIG1vcmUgcHJlZGljdGFibGUgbWFubmVyLgotICAgICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgICAgIG5ldHNubXBfbG9nZ2luZ19yZXN0YXJ0KCk7Ci0gICAgICAgICAgICAgICAgc25tcF9sb2coTE9HX0lORk8sICJORVQtU05NUCB2ZXJzaW9uICVzIHJlc3RhcnRlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2dldF92ZXJzaW9uKCkpOwotICAgICAgICAgICAgdHJhcGRfdXBkYXRlX2NvbmZpZygpOwotICAgICAgICAgICAgaWYgKHRyYXAxX2ZtdF9zdHJfcmVtZW1iZXIpIHsKLSAgICAgICAgICAgICAgICBwYXJzZV9mb3JtYXQoIE5VTEwsIHRyYXAxX2ZtdF9zdHJfcmVtZW1iZXIgKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJlY29uZmlnID0gMDsKLSAgICAgICAgfQotICAgICAgICBudW1mZHMgPSAwOwotICAgICAgICBGRF9aRVJPKCZyZWFkZmRzKTsKLSAgICAgICAgRkRfWkVSTygmd3JpdGVmZHMpOwotICAgICAgICBGRF9aRVJPKCZleGNlcHRmZHMpOwotICAgICAgICBibG9jayA9IDA7Ci0gICAgICAgIHR2cCA9ICZ0aW1lb3V0OwotICAgICAgICB0aW1lcmNsZWFyKHR2cCk7Ci0gICAgICAgIHR2cC0+dHZfc2VjID0gNTsKLSAgICAgICAgc25tcF9zZWxlY3RfaW5mbygmbnVtZmRzLCAmcmVhZGZkcywgdHZwLCAmYmxvY2spOwotICAgICAgICBpZiAoYmxvY2sgPT0gMSkKLSAgICAgICAgICAgIHR2cCA9IE5VTEw7ICAgICAgICAgLyogYmxvY2sgd2l0aG91dCB0aW1lb3V0ICovCi0gICAgICAgIG5ldHNubXBfZXh0ZXJuYWxfZXZlbnRfaW5mbygmbnVtZmRzLCAmcmVhZGZkcywgJndyaXRlZmRzLCAmZXhjZXB0ZmRzKTsKLSAgICAgICAgY291bnQgPSBzZWxlY3QobnVtZmRzLCAmcmVhZGZkcywgJndyaXRlZmRzLCAmZXhjZXB0ZmRzLCB0dnApOwotICAgICAgICBnZXR0aW1lb2ZkYXkoJk5vdywgTlVMTCk7Ci0gICAgICAgIGlmIChjb3VudCA+IDApIHsKLSAgICAgICAgICAgIG5ldHNubXBfZGlzcGF0Y2hfZXh0ZXJuYWxfZXZlbnRzKCZjb3VudCwgJnJlYWRmZHMsICZ3cml0ZWZkcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZleGNlcHRmZHMpOwotICAgICAgICAgICAgLyogSWYgdGhlcmUgYXJlIGFueSBtb3JlIGV2ZW50cyBhZnRlciBleHRlcm5hbCBldmVudHMsIHRoZW4KLSAgICAgICAgICAgICAqIHRyeSBTTk1QIGV2ZW50cy4gKi8KLSAgICAgICAgICAgIGlmIChjb3VudCA+IDApIHsKLSAgICAgICAgICAgICAgICBzbm1wX3JlYWQoJnJlYWRmZHMpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHN3aXRjaCAoY291bnQpIHsKLSAgICAgICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgICAgICBzbm1wX3RpbWVvdXQoKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgLTE6Ci0gICAgICAgICAgICAgICAgaWYgKGVycm5vID09IEVJTlRSKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICBzbm1wX2xvZ19wZXJyb3IoInNlbGVjdCIpOwotICAgICAgICAgICAgICAgIG5ldHNubXBfcnVubmluZyA9IDA7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAic2VsZWN0IHJldHVybmVkICVkXG4iLCBjb3VudCk7Ci0gICAgICAgICAgICAgICAgbmV0c25tcF9ydW5uaW5nID0gMDsKLSAgICAgICAgICAgIH0KLQlydW5fYWxhcm1zKCk7Ci0gICAgfQorCisgICAgc25tcHRyYXBkX21haW5fbG9vcCgpOwogCiAgICAgaWYgKHNubXBfZ2V0X2RvX2xvZ2dpbmcoKSkgewogICAgICAgICBzdHJ1Y3QgdG0gICAgICAqdG07CmRpZmYgLS1naXQgYS9hcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jIGIvYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYwppbmRleCAzZWUzYWE3Li41YThlM2M4IDEwMDY0NAotLS0gYS9hcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jCisrKyBiL2FwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMKQEAgLTEsNCArMSw1IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2lmIEhBVkVfU1RETElCX0gKICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAgLTM3LDYgKzM4LDggQEAKICNpbmNsdWRlICJzbm1wdHJhcGRfbG9nLmgiCiAjaW5jbHVkZSAibm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5oIgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoYWRkX2RlZmF1bHRfdHJhcGhhbmRsZXIsIHNubXB0cmFwZCkKKwogY2hhciAqc3lzbG9nX2Zvcm1hdDEgPSBOVUxMOwogY2hhciAqc3lzbG9nX2Zvcm1hdDIgPSBOVUxMOwogY2hhciAqcHJpbnRfZm9ybWF0MSAgPSBOVUxMOwpAQCAtNDAwLDYgKzQwMyw3IEBACiAgICAgcmV0dXJuIHRyYXBoOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQUREX0RFRkFVTFRfVFJBUEhBTkRMRVIKIC8qCiAgKiBSZWdpc3RlciBhIG5ldyAiZGVmYXVsdCIgdHJhcGhhbmRsZXIsIHRvIGJlIGFwcGxpZWQgdG8gYWxsCiAgKiB0cmFwcyB3aXRoIG5vIHNwZWNpZmljIHRyYXAgaGFuZGxlcnMgb2YgdGhlaXIgb3duLgpAQCAtNDA5LDYgKzQxMyw3IEBACiAgICAgcmV0dXJuIG5ldHNubXBfYWRkX2dsb2JhbF90cmFwaGFuZGxlcihORVRTTk1QVFJBUERfREVGQVVMVF9IQU5ETEVSLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlcik7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9BRERfREVGQVVMVF9UUkFQSEFORExFUiAqLwogCiAKIC8qCkBAIC04MDIsOCArODA3LDEwIEBACiAJICAgIHYyX3BkdSA9IGNvbnZlcnRfdjFwZHVfdG9fdjIocGR1KTsKIAllbHNlCiAJICAgIHYyX3BkdSA9IHBkdTsKLSAgICAgICAgb2xkcXVpY2sgPSBzbm1wX2dldF9xdWlja19wcmludCgpOwotICAgICAgICBzbm1wX3NldF9xdWlja19wcmludCgxKTsKKyAgICAgICAgb2xkcXVpY2sgPSBuZXRzbm1wX2RzX2dldF9ib29sZWFuKE5FVFNOTVBfRFNfTElCUkFSWV9JRCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9RVUlDS19QUklOVCk7CisgICAgICAgIG5ldHNubXBfZHNfc2V0X2Jvb2xlYW4oTkVUU05NUF9EU19MSUJSQVJZX0lELCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9RVUlDS19QUklOVCwgMSk7CiAKICAgICAgICAgLyoKIAkgKiBGb3JtYXQgdGhlIHRyYXAgYW5kIHBhc3MgdGhpcyBzdHJpbmcgdG8gdGhlIGV4dGVybmFsIGNvbW1hbmQKQEAgLTg0Miw3ICs4NDksOCBAQAogICAgICAgICAgKiAgYW5kIHBhc3MgdGhpcyBmb3JtYXR0ZWQgc3RyaW5nIHRvIHRoZSBjb21tYW5kIHNwZWNpZmllZAogICAgICAgICAgKi8KICAgICAgICAgcnVuX3NoZWxsX2NvbW1hbmQoaGFuZGxlci0+dG9rZW4sIChjaGFyKilyYnVmLCBOVUxMLCBOVUxMKTsgICAvKiBOb3QgaW50ZXJlc3RlZCBpbiBvdXRwdXQgKi8KLSAgICAgICAgc25tcF9zZXRfcXVpY2tfcHJpbnQob2xkcXVpY2spOworICAgICAgICBuZXRzbm1wX2RzX3NldF9ib29sZWFuKE5FVFNOTVBfRFNfTElCUkFSWV9JRCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfUVVJQ0tfUFJJTlQsIG9sZHF1aWNrKTsKICAgICAgICAgaWYgKHBkdS0+Y29tbWFuZCA9PSBTTk1QX01TR19UUkFQKQogICAgICAgICAgICAgc25tcF9mcmVlX3BkdSh2Ml9wZHUpOwogICAgICAgICBmcmVlKHJidWYpOwpkaWZmIC0tZ2l0IGEvYXBwcy9zbm1wdHJhcGRfbG9nLmMgYi9hcHBzL3NubXB0cmFwZF9sb2cuYwppbmRleCA5YmZjMGIyLi43NzRmNzk3IDEwMDY0NAotLS0gYS9hcHBzL3NubXB0cmFwZF9sb2cuYworKysgYi9hcHBzL3NubXB0cmFwZF9sb2cuYwpAQCAtNjQ4LDcgKzY0OCw3IEBACiAgICAgICAgICAqLwogICAgICAgICBpZiAoIW5ldHNubXBfZHNfZ2V0X2Jvb2xlYW4oTkVUU05NUF9EU19BUFBMSUNBVElPTl9JRCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0FQUF9OVU1FUklDX0lQKSkgewotICAgICAgICAgICAgaG9zdCA9IGdldGhvc3RieWFkZHIoKGNoYXIgKikgcGR1LT5hZ2VudF9hZGRyLCA0LCBBRl9JTkVUKTsKKyAgICAgICAgICAgIGhvc3QgPSBuZXRzbm1wX2dldGhvc3RieWFkZHIoKGNoYXIgKikgcGR1LT5hZ2VudF9hZGRyLCA0LCBBRl9JTkVUKTsKICAgICAgICAgfQogICAgICAgICBpZiAoaG9zdCAhPSBOVUxMKSB7CiAgICAgICAgICAgICBpZiAoIXNubXBfc3RyY2F0KCZ0ZW1wX2J1ZiwgJnRlbXBfYnVmX2xlbiwgJnRlbXBfb3V0X2xlbiwgMSwKQEAgLTEzNjgsNyArMTM2OCw3IEBACiAgICAgICovCiAgICAgaWYgKCFuZXRzbm1wX2RzX2dldF9ib29sZWFuKE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0FQUF9OVU1FUklDX0lQKSkgewotICAgICAgICBob3N0ID0gZ2V0aG9zdGJ5YWRkcigoY2hhciAqKSBwZHUtPmFnZW50X2FkZHIsIDQsIEFGX0lORVQpOworICAgICAgICBob3N0ID0gbmV0c25tcF9nZXRob3N0YnlhZGRyKChjaGFyICopIHBkdS0+YWdlbnRfYWRkciwgNCwgQUZfSU5FVCk7CiAgICAgfQogICAgIGlmIChob3N0ICE9IChzdHJ1Y3QgaG9zdGVudCAqKSBOVUxMKSB7CiAgICAgICAgIGlmICghc25tcF9zdHJjYXQKZGlmZiAtLWdpdCBhL2FwcHMvc25tcHRyYXBkX3NxbC5jIGIvYXBwcy9zbm1wdHJhcGRfc3FsLmMKaW5kZXggY2UyNTQyMy4uNjcxZTU0MiAxMDA2NDQKLS0tIGEvYXBwcy9zbm1wdHJhcGRfc3FsLmMKKysrIGIvYXBwcy9zbm1wdHJhcGRfc3FsLmMKQEAgLTExLDYgKzExLDcgQEAKICAqCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaWZkZWYgTkVUU05NUF9VU0VfTVlTUUwKIApAQCAtNTQsNiArNTUsOCBAQAogI2luY2x1ZGUgPG15c3FsLmg+CiAjaW5jbHVkZSA8ZXJybXNnLmg+CiAKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNvbnRhaW5lcl9maWZvKQorCiAvKgogICogZGVmaW5lIGEgc3RydWN0dXJlIHRvIGhvbGQgYWxsIHRoZSBmaWxlIGdsb2JhbHMKICAqLwpkaWZmIC0tZ2l0IGEvYXBwcy9zbm1wd2Fsay5jIGIvYXBwcy9zbm1wd2Fsay5jCmluZGV4IGRmYWQ3ZTAuLjY1OWQ3ZGUgMTAwNjQ0Ci0tLSBhL2FwcHMvc25tcHdhbGsuYworKysgYi9hcHBzL3NubXB3YWxrLmMKQEAgLTY5LDYgKzY5LDcgQEAKICNkZWZpbmUgTkVUU05NUF9EU19XQUxLX0RPTlRfQ0hFQ0tfTEVYSUNPR1JBUEhJQwkzCiAjZGVmaW5lIE5FVFNOTVBfRFNfV0FMS19USU1FX1JFU1VMVFMgICAgIAkgICAgICAgIDQKICNkZWZpbmUgTkVUU05NUF9EU19XQUxLX0RPTlRfR0VUX1JFUVVFU1RFRAkgICAgICAgIDUKKyNkZWZpbmUgTkVUU05NUF9EU19XQUxLX1RJTUVfUkVTVUxUU19TSU5HTEUJICAgICAgICA2CiAKIG9pZCAgICAgICAgICAgICBvYmppZF9taWJbXSA9IHsgMSwgMywgNiwgMSwgMiwgMSB9OwogaW50ICAgICAgICAgICAgIG51bXByaW50ZWQgPSAwOwpAQCAtOTAsNyArOTEsOSBAQAogICAgIGZwcmludGYoc3RkZXJyLAogICAgICAgICAgICAgIlx0XHRcdCAgYzogIGRvIG5vdCBjaGVjayByZXR1cm5lZCBPSURzIGFyZSBpbmNyZWFzaW5nXG4iKTsKICAgICBmcHJpbnRmKHN0ZGVyciwKLSAgICAgICAgICAgICJcdFx0XHQgIHQ6ICBEaXNwbGF5IHdhbGwtY2xvY2sgdGltZSB0byBjb21wbGV0ZSB0aGUgcmVxdWVzdFxuIik7CisgICAgICAgICAgICAiXHRcdFx0ICB0OiAgRGlzcGxheSB3YWxsLWNsb2NrIHRpbWUgdG8gY29tcGxldGUgdGhlIHdhbGtcbiIpOworICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgIlx0XHRcdCAgVDogIERpc3BsYXkgd2FsbC1jbG9jayB0aW1lIHRvIGNvbXBsZXRlIGVhY2ggcmVxdWVzdFxuIik7CiAgICAgZnByaW50ZihzdGRlcnIsICJcdFx0XHQgIEUge09JRH06ICBFbmQgdGhlIHdhbGsgYXQgdGhlIHNwZWNpZmllZCBPSURcbiIpOwogfQogCkBAIC0xNTEsNiArMTU0LDExIEBACiAgICAgICAgICAgICBjYXNlICdFJzoKICAgICAgICAgICAgICAgICBlbmRfbmFtZSA9IGFyZ3Zbb3B0aW5kKytdOwogICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlICdUJzoKKyAgICAgICAgICAgICAgICBuZXRzbm1wX2RzX3RvZ2dsZV9ib29sZWFuKE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX1dBTEtfVElNRV9SRVNVTFRTX1NJTkdMRSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5rbm93biBmbGFnIHBhc3NlZCB0byAtQzogJWNcbiIsCkBAIC0xODAsNyArMTg4LDcgQEAKICAgICBpbnQgICAgICAgICAgICAgc3RhdHVzID0gU1RBVF9FUlJPUjsKICAgICBpbnQgICAgICAgICAgICAgY2hlY2s7CiAgICAgaW50ICAgICAgICAgICAgIGV4aXR2YWwgPSAwOwotICAgIHN0cnVjdCB0aW1ldmFsICB0djEsIHR2MjsKKyAgICBzdHJ1Y3QgdGltZXZhbCAgdHYxLCB0djIsIHR2X2EsIHR2X2I7CiAKICAgICBuZXRzbm1wX2RzX3JlZ2lzdGVyX2NvbmZpZyhBU05fQk9PTEVBTiwgInNubXB3YWxrIiwgImluY2x1ZGVSZXF1ZXN0ZWQiLAogCQkJICAgICAgIE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsIApAQCAtMjAwLDcgKzIwOCwxMSBAQAogCiAgICAgbmV0c25tcF9kc19yZWdpc3Rlcl9jb25maWcoQVNOX0JPT0xFQU4sICJzbm1wd2FsayIsICJ0aW1lUmVzdWx0cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19BUFBMSUNBVElPTl9JRCwKLQkJCSAgICAgICBORVRTTk1QX0RTX1dBTEtfVElNRV9SRVNVTFRTKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX1dBTEtfVElNRV9SRVNVTFRTKTsKKworICAgIG5ldHNubXBfZHNfcmVnaXN0ZXJfY29uZmlnKEFTTl9CT09MRUFOLCAic25tcHdhbGsiLCAidGltZVJlc3VsdHNTaW5nbGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19XQUxLX1RJTUVfUkVTVUxUU19TSU5HTEUpOwogCiAgICAgLyoKICAgICAgKiBnZXQgdGhlIGNvbW1vbiBjb21tYW5kIGxpbmUgYXJndW1lbnRzIApAQCAtMjg2LDcgKzI5OCw3IEBACiAKICAgICBpZiAobmV0c25tcF9kc19nZXRfYm9vbGVhbihORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfV0FMS19USU1FX1JFU1VMVFMpKQotICAgICAgICBnZXR0aW1lb2ZkYXkoJnR2MSwgTlVMTCk7CisgICAgICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmdHYxKTsKICAgICB3aGlsZSAocnVubmluZykgewogICAgICAgICAvKgogICAgICAgICAgKiBjcmVhdGUgUERVIGZvciBHRVRORVhUIHJlcXVlc3QgYW5kIGFkZCBvYmplY3QgbmFtZSB0byByZXF1ZXN0IApAQCAtMjk3LDggKzMwOSwxMiBAQAogICAgICAgICAvKgogICAgICAgICAgKiBkbyB0aGUgcmVxdWVzdCAKICAgICAgICAgICovCisgICAgICAgIGlmIChuZXRzbm1wX2RzX2dldF9ib29sZWFuKE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsIE5FVFNOTVBfRFNfV0FMS19USU1FX1JFU1VMVFNfU0lOR0xFKSkKKyAgICAgICAgICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmdHZfYSk7CiAgICAgICAgIHN0YXR1cyA9IHNubXBfc3luY2hfcmVzcG9uc2Uoc3MsIHBkdSwgJnJlc3BvbnNlKTsKICAgICAgICAgaWYgKHN0YXR1cyA9PSBTVEFUX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIGlmIChuZXRzbm1wX2RzX2dldF9ib29sZWFuKE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsIE5FVFNOTVBfRFNfV0FMS19USU1FX1JFU1VMVFNfU0lOR0xFKSkKKyAgICAgICAgICAgICAgICBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soJnR2X2IpOwogICAgICAgICAgICAgaWYgKHJlc3BvbnNlLT5lcnJzdGF0ID09IFNOTVBfRVJSX05PRVJST1IpIHsKICAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICAqIGNoZWNrIHJlc3VsdGluZyB2YXJpYWJsZXMgCkBAIC0zMTQsNiArMzMwLDEwIEBACiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBudW1wcmludGVkKys7CisgICAgICAgICAgICAgICAgICAgIGlmIChuZXRzbm1wX2RzX2dldF9ib29sZWFuKE5FVFNOTVBfRFNfQVBQTElDQVRJT05fSUQsIE5FVFNOTVBfRFNfV0FMS19USU1FX1JFU1VMVFNfU0lOR0xFKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3Rkb3V0LCAiJWYgczogIiwgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZG91YmxlKSAodHZfYi50dl91c2VjIC0gdHZfYS50dl91c2VjKS8xMDAwMDAwICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRvdWJsZSkgKHR2X2IudHZfc2VjIC0gdHZfYS50dl9zZWMpKTsKICAgICAgICAgICAgICAgICAgICAgcHJpbnRfdmFyaWFibGUodmFycy0+bmFtZSwgdmFycy0+bmFtZV9sZW5ndGgsIHZhcnMpOwogICAgICAgICAgICAgICAgICAgICBpZiAoKHZhcnMtPnR5cGUgIT0gU05NUF9FTkRPRk1JQlZJRVcpICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAodmFycy0+dHlwZSAhPSBTTk1QX05PU1VDSE9CSkVDVCkgJiYKQEAgLTM4Miw3ICs0MDIsNyBAQAogICAgIH0KICAgICBpZiAobmV0c25tcF9kc19nZXRfYm9vbGVhbihORVRTTk1QX0RTX0FQUExJQ0FUSU9OX0lELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfV0FMS19USU1FX1JFU1VMVFMpKQotICAgICAgICBnZXR0aW1lb2ZkYXkoJnR2MiwgTlVMTCk7CisgICAgICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmdHYyKTsKIAogICAgIGlmIChudW1wcmludGVkID09IDAgJiYgc3RhdHVzID09IFNUQVRfU1VDQ0VTUykgewogICAgICAgICAvKgpkaWZmIC0tZ2l0IGEvY29uZmlnLmd1ZXNzIGIvY29uZmlnLmd1ZXNzCmluZGV4IGNhMmEwM2MuLjI4NTIzNzggMTAwNzU1Ci0tLSBhL2NvbmZpZy5ndWVzcworKysgYi9jb25maWcuZ3Vlc3MKQEAgLTEsMTAgKzEsMTAgQEAKICMhIC9iaW4vc2gKICMgQXR0ZW1wdCB0byBndWVzcyBhIGNhbm9uaWNhbCBzeXN0ZW0gbmFtZS4KICMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCi0jICAgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOAorIyAgIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAKICMgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAotdGltZXN0YW1wPScyMDA4LTAxLTA4JwordGltZXN0YW1wPScyMDEwLTA4LTIxJwogCiAjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CiAjIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CkBAIC0yNywxNiArMjcsMTYgQEAKICMgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgogCiAKLSMgT3JpZ2luYWxseSB3cml0dGVuIGJ5IFBlciBCb3RobmVyIDxwZXJAYm90aG5lci5jb20+LgotIyBQbGVhc2Ugc2VuZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4gIFN1Ym1pdCBhIGNvbnRleHQKLSMgZGlmZiBhbmQgYSBwcm9wZXJseSBmb3JtYXR0ZWQgQ2hhbmdlTG9nIGVudHJ5LgorIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIuICBQbGVhc2Ugc2VuZCBwYXRjaGVzIChjb250ZXh0CisjIGRpZmYgZm9ybWF0KSB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4gYW5kIGluY2x1ZGUgYSBDaGFuZ2VMb2cKKyMgZW50cnkuCiAjCiAjIFRoaXMgc2NyaXB0IGF0dGVtcHRzIHRvIGd1ZXNzIGEgY2Fub25pY2FsIHN5c3RlbSBuYW1lIHNpbWlsYXIgdG8KICMgY29uZmlnLnN1Yi4gIElmIGl0IHN1Y2NlZWRzLCBpdCBwcmludHMgdGhlIHN5c3RlbSBuYW1lIG9uIHN0ZG91dCwgYW5kCiAjIGV4aXRzIHdpdGggMC4gIE90aGVyd2lzZSwgaXQgZXhpdHMgd2l0aCAxLgogIwotIyBUaGUgcGxhbiBpcyB0aGF0IHRoaXMgY2FuIGJlIGNhbGxlZCBieSBjb25maWd1cmUgc2NyaXB0cyBpZiB5b3UKLSMgZG9uJ3Qgc3BlY2lmeSBhbiBleHBsaWNpdCBidWlsZCBzeXN0ZW0gdHlwZS4KKyMgWW91IGNhbiBnZXQgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgc2NyaXB0IGZyb206CisjIGh0dHA6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9naXR3ZWIvP3A9Y29uZmlnLmdpdDthPWJsb2JfcGxhaW47Zj1jb25maWcuZ3Vlc3M7aGI9SEVBRAogCiBtZT1gZWNobyAiJDAiIHwgc2VkIC1lICdzLC4qLywsJ2AKIApAQCAtNTYsOCArNTYsOSBAQAogR05VIGNvbmZpZy5ndWVzcyAoJHRpbWVzdGFtcCkKIAogT3JpZ2luYWxseSB3cml0dGVuIGJ5IFBlciBCb3RobmVyLgotQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAotMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KK0NvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwKKzIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgRnJlZQorU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiBUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTwogd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIgpAQCAtOTEsNyArOTIsNyBAQAogICBleGl0IDEKIGZpCiAKLXRyYXAgJ2V4aXQgMScgMSAyIDE1Cit0cmFwICdleGl0IDEnIEhVUCBJTlQgVEVSTQogCiAjIENDX0ZPUl9CVUlMRCAtLSBjb21waWxlciB1c2VkIGJ5IHRoaXMgc2NyaXB0LiBOb3RlIHRoYXQgdGhlIHVzZSBvZiBhCiAjIGNvbXBpbGVyIHRvIGFpZCBpbiBzeXN0ZW0gZGV0ZWN0aW9uIGlzIGRpc2NvdXJhZ2VkIGFzIGl0IHJlcXVpcmVzCkBAIC0xMDUsNyArMTA2LDcgQEAKIAogc2V0X2NjX2Zvcl9idWlsZD0nCiB0cmFwICJleGl0Y29kZT1cJD87IChybSAtZiBcJHRtcGZpbGVzIDI+L2Rldi9udWxsOyBybWRpciBcJHRtcCAyPi9kZXYvbnVsbCkgJiYgZXhpdCBcJGV4aXRjb2RlIiAwIDsKLXRyYXAgInJtIC1mIFwkdG1wZmlsZXMgMj4vZGV2L251bGw7IHJtZGlyIFwkdG1wIDI+L2Rldi9udWxsOyBleGl0IDEiIDEgMiAxMyAxNSA7Cit0cmFwICJybSAtZiBcJHRtcGZpbGVzIDI+L2Rldi9udWxsOyBybWRpciBcJHRtcCAyPi9kZXYvbnVsbDsgZXhpdCAxIiBIVVAgSU5UIFBJUEUgVEVSTSA7CiA6ICR7VE1QRElSPS90bXB9IDsKICB7IHRtcD1gKHVtYXNrIDA3NyAmJiBta3RlbXAgLWQgIiRUTVBESVIvY2dYWFhYWFgiKSAyPi9kZXYvbnVsbGAgJiYgdGVzdCAtbiAiJHRtcCIgJiYgdGVzdCAtZCAiJHRtcCIgOyB9IHx8CiAgeyB0ZXN0IC1uICIkUkFORE9NIiAmJiB0bXA9JFRNUERJUi9jZyQkLSRSQU5ET00gJiYgKHVtYXNrIDA3NyAmJiBta2RpciAkdG1wKSA7IH0gfHwKQEAgLTE3MCw3ICsxNzEsNyBAQAogCSAgICBhcm0qfGkzODZ8bTY4a3xuczMya3xzaDMqfHNwYXJjfHZheCkKIAkJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAogCQlpZiBlY2hvIF9fRUxGX18gfCAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwgXAotCQkJfCBncmVwIF9fRUxGX18gPi9kZXYvbnVsbAorCQkJfCBncmVwIC1xIF9fRUxGX18KIAkJdGhlbgogCQkgICAgIyBPbmNlIGFsbCB1dGlsaXRpZXMgY2FuIGJlIEVDT0ZGIChuZXRic2RlY29mZikgb3IgYS5vdXQgKG5ldGJzZGFvdXQpLgogCQkgICAgIyBSZXR1cm4gbmV0YnNkIGZvciBlaXRoZXIuICBGSVg/CkBAIC0zMjQsMTQgKzMyNSwzMyBAQAogCWNhc2UgYC91c3IvYmluL3VuYW1lIC1wYCBpbgogCSAgICBzcGFyYykgZWNobyBzcGFyYy1pY2wtbng3OyBleGl0IDs7CiAJZXNhYyA7OworICAgIHMzOTB4OlN1bk9TOio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0taWJtLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCisJZXhpdCA7OwogICAgIHN1bjRIOlN1bk9TOjUuKjoqKQogCWVjaG8gc3BhcmMtaGFsLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCiAJZXhpdCA7OwogICAgIHN1bjQqOlN1bk9TOjUuKjoqIHwgdGFkcG9sZSo6U3VuT1M6NS4qOiopCiAJZWNobyBzcGFyYy1zdW4tc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKIAlleGl0IDs7CisgICAgaTg2cGM6QXVyb3JhVVg6NS4qOiogfCBpODZ4ZW46QXVyb3JhVVg6NS4qOiopCisJZWNobyBpMzg2LXBjLWF1cm9yYXV4JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKICAgICBpODZwYzpTdW5PUzo1Lio6KiB8IGk4NnhlbjpTdW5PUzo1Lio6KikKLQllY2hvIGkzODYtcGMtc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisJU1VOX0FSQ0g9ImkzODYiCisJIyBJZiB0aGVyZSBpcyBhIGNvbXBpbGVyLCBzZWUgaWYgaXQgaXMgY29uZmlndXJlZCBmb3IgNjQtYml0IG9iamVjdHMuCisJIyBOb3RlIHRoYXQgdGhlIFN1biBjYyBkb2VzIG5vdCB0dXJuIF9fTFA2NF9fIGludG8gMSBsaWtlIGdjYyBkb2VzLgorCSMgVGhpcyB0ZXN0IHdvcmtzIGZvciBib3RoIGNvbXBpbGVycy4KKwlpZiBbICIkQ0NfRk9SX0JVSUxEIiAhPSAnbm9fY29tcGlsZXJfZm91bmQnIF07IHRoZW4KKwkgICAgaWYgKGVjaG8gJyNpZmRlZiBfX2FtZDY0JzsgZWNobyBJU182NEJJVF9BUkNIOyBlY2hvICcjZW5kaWYnKSB8IFwKKwkJKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsKSB8IFwKKwkJZ3JlcCBJU182NEJJVF9BUkNIID4vZGV2L251bGwKKwkgICAgdGhlbgorCQlTVU5fQVJDSD0ieDg2XzY0IgorCSAgICBmaQorCWZpCisJZWNobyAke1NVTl9BUkNIfS1wYy1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAogCWV4aXQgOzsKICAgICBzdW40KjpTdW5PUzo2KjoqKQogCSMgQWNjb3JkaW5nIHRvIGNvbmZpZy5zdWIsIHRoaXMgaXMgdGhlIHByb3BlciB3YXkgdG8gY2Fub25pY2FsaXplCkBAIC01MzIsNyArNTUyLDcgQEAKIAkJZWNobyByczYwMDAtaWJtLWFpeDMuMgogCWZpCiAJZXhpdCA7OwotICAgICo6QUlYOio6WzQ1Nl0pCisgICAgKjpBSVg6KjpbNDU2N10pCiAJSUJNX0NQVV9JRD1gL3Vzci9zYmluL2xzZGV2IC1DIC1jIHByb2Nlc3NvciAtUyBhdmFpbGFibGUgfCBzZWQgMXEgfCBhd2sgJ3sgcHJpbnQgJDEgfSdgCiAJaWYgL3Vzci9zYmluL2xzYXR0ciAtRWwgJHtJQk1fQ1BVX0lEfSB8IGdyZXAgJyBQT1dFUicgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAJCUlCTV9BUkNIPXJzNjAwMApAQCAtNjQwLDcgKzY2MCw3IEBACiAJICAgICMgPT4gaHBwYTY0LWhwLWhwdXgxMS4yMwogCiAJICAgIGlmIGVjaG8gX19MUDY0X18gfCAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwpIHwKLQkJZ3JlcCBfX0xQNjRfXyA+L2Rldi9udWxsCisJCWdyZXAgLXEgX19MUDY0X18KIAkgICAgdGhlbgogCQlIUF9BUkNIPSJocHBhMi4wdyIKIAkgICAgZWxzZQpAQCAtNzkxLDEyICs4MTEsMTIgQEAKICAgICBpKjpQVyo6KikKIAllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtcHczMgogCWV4aXQgOzsKLSAgICAqOkludGVyaXgqOlszNDU2XSopCisgICAgKjpJbnRlcml4KjoqKQogICAgIAljYXNlICR7VU5BTUVfTUFDSElORX0gaW4KIAkgICAgeDg2KQogCQllY2hvIGk1ODYtcGMtaW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0KIAkJZXhpdCA7OwotCSAgICBFTTY0VCB8IGF1dGhlbnRpY2FtZCkKKwkgICAgYXV0aGVudGljYW1kIHwgZ2VudWluZWludGVsIHwgRU02NFQpCiAJCWVjaG8geDg2XzY0LXVua25vd24taW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0KIAkJZXhpdCA7OwogCSAgICBJQTY0KQpAQCAtODA2LDYgKzgyNiw5IEBACiAgICAgWzM0NV04NjpXaW5kb3dzXzk1OiogfCBbMzQ1XTg2OldpbmRvd3NfOTg6KiB8IFszNDVdODY6V2luZG93c19OVDoqKQogCWVjaG8gaSR7VU5BTUVfTUFDSElORX0tcGMtbWtzCiAJZXhpdCA7OworICAgIDg2NjQ6V2luZG93c19OVDoqKQorCWVjaG8geDg2XzY0LXBjLW1rcworCWV4aXQgOzsKICAgICBpKjpXaW5kb3dzX05UKjoqIHwgUGVudGl1bSo6V2luZG93c19OVCo6KikKIAkjIEhvdyBkbyB3ZSBrbm93IGl0J3MgSW50ZXJpeCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJpYyBQT1NJWCBzdWJzeXN0ZW0/CiAJIyBJdCBhbHNvIGNvbmZsaWN0cyB3aXRoIHByZS0yLjAgdmVyc2lvbnMgb2YgQVQmVCBVV0lOLiBTaG91bGQgd2UKQEAgLTgzNSw2ICs4NTgsMjAgQEAKICAgICBpKjg2Ok1pbml4Oio6KikKIAllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbWluaXgKIAlleGl0IDs7CisgICAgYWxwaGE6TGludXg6KjoqKQorCWNhc2UgYHNlZCAtbiAnL15jcHUgbW9kZWwvcy9eLio6IFwoLipcKS9cMS9wJyA8IC9wcm9jL2NwdWluZm9gIGluCisJICBFVjUpICAgVU5BTUVfTUFDSElORT1hbHBoYWV2NSA7OworCSAgRVY1NikgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjU2IDs7CisJICBQQ0E1NikgVU5BTUVfTUFDSElORT1hbHBoYXBjYTU2IDs7CisJICBQQ0E1NykgVU5BTUVfTUFDSElORT1hbHBoYXBjYTU2IDs7CisJICBFVjYpICAgVU5BTUVfTUFDSElORT1hbHBoYWV2NiA7OworCSAgRVY2NykgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjY3IDs7CisJICBFVjY4KikgVU5BTUVfTUFDSElORT1hbHBoYWV2NjggOzsKKyAgICAgICAgZXNhYworCW9iamR1bXAgLS1wcml2YXRlLWhlYWRlcnMgL2Jpbi9zaCB8IGdyZXAgLXEgbGQuc28uMQorCWlmIHRlc3QgIiQ/IiA9IDAgOyB0aGVuIExJQkM9ImxpYmMxIiA7IGVsc2UgTElCQz0iIiA7IGZpCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251JHtMSUJDfQorCWV4aXQgOzsKICAgICBhcm0qOkxpbnV4Oio6KikKIAlldmFsICRzZXRfY2NfZm9yX2J1aWxkCiAJaWYgZWNobyBfX0FSTV9FQUJJX18gfCAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwgXApAQCAtODU3LDYgKzg5NCwxNyBAQAogICAgIGZydjpMaW51eDoqOiopCiAgICAgCWVjaG8gZnJ2LXVua25vd24tbGludXgtZ251CiAJZXhpdCA7OworICAgIGkqODY6TGludXg6KjoqKQorCUxJQkM9Z251CisJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCisJI2lmZGVmIF9fZGlldGxpYmNfXworCUxJQkM9ZGlldGxpYmMKKwkjZW5kaWYKK0VPRgorCWV2YWwgYCRDQ19GT1JfQlVJTEQgLUUgJGR1bW15LmMgMj4vZGV2L251bGwgfCBncmVwICdeTElCQydgCisJZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC0ke0xJQkN9IgorCWV4aXQgOzsKICAgICBpYTY0OkxpbnV4Oio6KikKIAllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKIAlleGl0IDs7CkBAIC04NjYsNzQgKzkxNCwzMyBAQAogICAgIG02OCo6TGludXg6KjoqKQogCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQogCWV4aXQgOzsKLSAgICBtaXBzOkxpbnV4Oio6KikKKyAgICBtaXBzOkxpbnV4Oio6KiB8IG1pcHM2NDpMaW51eDoqOiopCiAJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAogCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCiAJI3VuZGVmIENQVQotCSN1bmRlZiBtaXBzCi0JI3VuZGVmIG1pcHNlbAorCSN1bmRlZiAke1VOQU1FX01BQ0hJTkV9CisJI3VuZGVmICR7VU5BTUVfTUFDSElORX1lbAogCSNpZiBkZWZpbmVkKF9fTUlQU0VMX18pIHx8IGRlZmluZWQoX19NSVBTRUwpIHx8IGRlZmluZWQoX01JUFNFTCkgfHwgZGVmaW5lZChNSVBTRUwpCi0JQ1BVPW1pcHNlbAorCUNQVT0ke1VOQU1FX01BQ0hJTkV9ZWwKIAkjZWxzZQogCSNpZiBkZWZpbmVkKF9fTUlQU0VCX18pIHx8IGRlZmluZWQoX19NSVBTRUIpIHx8IGRlZmluZWQoX01JUFNFQikgfHwgZGVmaW5lZChNSVBTRUIpCi0JQ1BVPW1pcHMKKwlDUFU9JHtVTkFNRV9NQUNISU5FfQogCSNlbHNlCiAJQ1BVPQogCSNlbmRpZgogCSNlbmRpZgogRU9GCi0JZXZhbCAiYCRDQ19GT1JfQlVJTEQgLUUgJGR1bW15LmMgMj4vZGV2L251bGwgfCBzZWQgLW4gJwotCSAgICAvXkNQVS97Ci0JCXM6IDo6ZwotCQlwCi0JICAgIH0nYCIKLQl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIHsgZWNobyAiJHtDUFV9LXVua25vd24tbGludXgtZ251IjsgZXhpdDsgfQotCTs7Ci0gICAgbWlwczY0OkxpbnV4Oio6KikKLQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0Jc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKLQkjdW5kZWYgQ1BVCi0JI3VuZGVmIG1pcHM2NAotCSN1bmRlZiBtaXBzNjRlbAotCSNpZiBkZWZpbmVkKF9fTUlQU0VMX18pIHx8IGRlZmluZWQoX19NSVBTRUwpIHx8IGRlZmluZWQoX01JUFNFTCkgfHwgZGVmaW5lZChNSVBTRUwpCi0JQ1BVPW1pcHM2NGVsCi0JI2Vsc2UKLQkjaWYgZGVmaW5lZChfX01JUFNFQl9fKSB8fCBkZWZpbmVkKF9fTUlQU0VCKSB8fCBkZWZpbmVkKF9NSVBTRUIpIHx8IGRlZmluZWQoTUlQU0VCKQotCUNQVT1taXBzNjQKLQkjZWxzZQotCUNQVT0KLQkjZW5kaWYKLQkjZW5kaWYKLUVPRgotCWV2YWwgImAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgc2VkIC1uICcKLQkgICAgL15DUFUvewotCQlzOiA6OmcKLQkJcAotCSAgICB9J2AiCisJZXZhbCBgJENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8IGdyZXAgJ15DUFUnYAogCXRlc3QgeCIke0NQVX0iICE9IHggJiYgeyBlY2hvICIke0NQVX0tdW5rbm93bi1saW51eC1nbnUiOyBleGl0OyB9CiAJOzsKICAgICBvcjMyOkxpbnV4Oio6KikKIAllY2hvIG9yMzItdW5rbm93bi1saW51eC1nbnUKIAlleGl0IDs7Ci0gICAgcHBjOkxpbnV4Oio6KikKLQllY2hvIHBvd2VycGMtdW5rbm93bi1saW51eC1nbnUKKyAgICBwYWRyZTpMaW51eDoqOiopCisJZWNobyBzcGFyYy11bmtub3duLWxpbnV4LWdudQogCWV4aXQgOzsKLSAgICBwcGM2NDpMaW51eDoqOiopCi0JZWNobyBwb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUKLQlleGl0IDs7Ci0gICAgYWxwaGE6TGludXg6KjoqKQotCWNhc2UgYHNlZCAtbiAnL15jcHUgbW9kZWwvcy9eLio6IFwoLipcKS9cMS9wJyA8IC9wcm9jL2NwdWluZm9gIGluCi0JICBFVjUpICAgVU5BTUVfTUFDSElORT1hbHBoYWV2NSA7OwotCSAgRVY1NikgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjU2IDs7Ci0JICBQQ0E1NikgVU5BTUVfTUFDSElORT1hbHBoYXBjYTU2IDs7Ci0JICBQQ0E1NykgVU5BTUVfTUFDSElORT1hbHBoYXBjYTU2IDs7Ci0JICBFVjYpICAgVU5BTUVfTUFDSElORT1hbHBoYWV2NiA7OwotCSAgRVY2NykgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjY3IDs7Ci0JICBFVjY4KikgVU5BTUVfTUFDSElORT1hbHBoYWV2NjggOzsKLSAgICAgICAgZXNhYwotCW9iamR1bXAgLS1wcml2YXRlLWhlYWRlcnMgL2Jpbi9zaCB8IGdyZXAgbGQuc28uMSA+L2Rldi9udWxsCi0JaWYgdGVzdCAiJD8iID0gMCA7IHRoZW4gTElCQz0ibGliYzEiIDsgZWxzZSBMSUJDPSIiIDsgZmkKLQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUke0xJQkN9CisgICAgcGFyaXNjNjQ6TGludXg6KjoqIHwgaHBwYTY0OkxpbnV4Oio6KikKKwllY2hvIGhwcGE2NC11bmtub3duLWxpbnV4LWdudQogCWV4aXQgOzsKICAgICBwYXJpc2M6TGludXg6KjoqIHwgaHBwYTpMaW51eDoqOiopCiAJIyBMb29rIGZvciBDUFUgbGV2ZWwKQEAgLTk0Myw4ICs5NTAsMTEgQEAKIAkgICopICAgIGVjaG8gaHBwYS11bmtub3duLWxpbnV4LWdudSA7OwogCWVzYWMKIAlleGl0IDs7Ci0gICAgcGFyaXNjNjQ6TGludXg6KjoqIHwgaHBwYTY0OkxpbnV4Oio6KikKLQllY2hvIGhwcGE2NC11bmtub3duLWxpbnV4LWdudQorICAgIHBwYzY0OkxpbnV4Oio6KikKKwllY2hvIHBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICBwcGM6TGludXg6KjoqKQorCWVjaG8gcG93ZXJwYy11bmtub3duLWxpbnV4LWdudQogCWV4aXQgOzsKICAgICBzMzkwOkxpbnV4Oio6KiB8IHMzOTB4OkxpbnV4Oio6KikKIAllY2hvICR7VU5BTUVfTUFDSElORX0taWJtLWxpbnV4CkBAIC05NTgsNiArOTY4LDkgQEAKICAgICBzcGFyYzpMaW51eDoqOiogfCBzcGFyYzY0OkxpbnV4Oio6KikKIAllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKIAlleGl0IDs7CisgICAgdGlsZSo6TGludXg6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS10aWxlcmEtbGludXgtZ251CisJZXhpdCA7OwogICAgIHZheDpMaW51eDoqOiopCiAJZWNobyAke1VOQU1FX01BQ0hJTkV9LWRlYy1saW51eC1nbnUKIAlleGl0IDs7CkBAIC05NjcsNjkgKzk4MCw2IEBACiAgICAgeHRlbnNhKjpMaW51eDoqOiopCiAgICAgCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQogCWV4aXQgOzsKLSAgICBpKjg2OkxpbnV4Oio6KikKLQkjIFRoZSBCRkQgbGlua2VyIGtub3dzIHdoYXQgdGhlIGRlZmF1bHQgb2JqZWN0IGZpbGUgZm9ybWF0IGlzLCBzbwotCSMgZmlyc3Qgc2VlIGlmIGl0IHdpbGwgdGVsbCB1cy4gY2QgdG8gdGhlIHJvb3QgZGlyZWN0b3J5IHRvIHByZXZlbnQKLQkjIHByb2JsZW1zIHdpdGggb3RoZXIgcHJvZ3JhbXMgb3IgZGlyZWN0b3JpZXMgY2FsbGVkIGBsZCcgaW4gdGhlIHBhdGguCi0JIyBTZXQgTENfQUxMPUMgdG8gZW5zdXJlIGxkIG91dHB1dHMgbWVzc2FnZXMgaW4gRW5nbGlzaC4KLQlsZF9zdXBwb3J0ZWRfdGFyZ2V0cz1gY2QgLzsgTENfQUxMPUMgbGQgLS1oZWxwIDI+JjEgXAotCQkJIHwgc2VkIC1uZSAnL3N1cHBvcnRlZCB0YXJnZXRzOi8hZAotCQkJCSAgICBzL1sgCV1bIAldKi8gL2cKLQkJCQkgICAgcy8uKnN1cHBvcnRlZCB0YXJnZXRzOiAqLy8KLQkJCQkgICAgcy8gLiovLwotCQkJCSAgICBwJ2AKLSAgICAgICAgY2FzZSAiJGxkX3N1cHBvcnRlZF90YXJnZXRzIiBpbgotCSAgZWxmMzItaTM4NikKLQkJVEVOVEFUSVZFPSIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4LWdudSIKLQkJOzsKLQkgIGEub3V0LWkzODYtbGludXgpCi0JCWVjaG8gIiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtZ251YW91dCIKLQkJZXhpdCA7OwotCSAgY29mZi1pMzg2KQotCQllY2hvICIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4LWdudWNvZmYiCi0JCWV4aXQgOzsKLQkgICIiKQotCQkjIEVpdGhlciBhIHByZS1CRkQgYS5vdXQgbGlua2VyIChsaW51eC1nbnVvbGRsZCkgb3IKLQkJIyBvbmUgdGhhdCBkb2VzIG5vdCBnaXZlIHVzIHVzZWZ1bCAtLWhlbHAuCi0JCWVjaG8gIiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtZ251b2xkbGQiCi0JCWV4aXQgOzsKLQllc2FjCi0JIyBEZXRlcm1pbmUgd2hldGhlciB0aGUgZGVmYXVsdCBjb21waWxlciBpcyBhLm91dCBvciBlbGYKLQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0Jc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKLQkjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KLQkjaWZkZWYgX19FTEZfXwotCSMgaWZkZWYgX19HTElCQ19fCi0JIyAgaWYgX19HTElCQ19fID49IDIKLQlMSUJDPWdudQotCSMgIGVsc2UKLQlMSUJDPWdudWxpYmMxCi0JIyAgZW5kaWYKLQkjIGVsc2UKLQlMSUJDPWdudWxpYmMxCi0JIyBlbmRpZgotCSNlbHNlCi0JI2lmIGRlZmluZWQoX19JTlRFTF9DT01QSUxFUikgfHwgZGVmaW5lZChfX1BHSSkgfHwgZGVmaW5lZChfX1NVTlBST19DKSB8fCBkZWZpbmVkKF9fU1VOUFJPX0NDKQotCUxJQkM9Z251Ci0JI2Vsc2UKLQlMSUJDPWdudWFvdXQKLQkjZW5kaWYKLQkjZW5kaWYKLQkjaWZkZWYgX19kaWV0bGliY19fCi0JTElCQz1kaWV0bGliYwotCSNlbmRpZgotRU9GCi0JZXZhbCAiYCRDQ19GT1JfQlVJTEQgLUUgJGR1bW15LmMgMj4vZGV2L251bGwgfCBzZWQgLW4gJwotCSAgICAvXkxJQkMvewotCQlzOiA6OmcKLQkJcAotCSAgICB9J2AiCi0JdGVzdCB4IiR7TElCQ30iICE9IHggJiYgewotCQllY2hvICIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4LSR7TElCQ30iCi0JCWV4aXQKLQl9Ci0JdGVzdCB4IiR7VEVOVEFUSVZFfSIgIT0geCAmJiB7IGVjaG8gIiR7VEVOVEFUSVZFfSI7IGV4aXQ7IH0KLQk7OwogICAgIGkqODY6RFlOSVgvcHR4OjQqOiopCiAJIyBwdHggNC4wIGRvZXMgdW5hbWUgLXMgY29ycmVjdGx5LCB3aXRoIERZTklYL3B0eCBpbiB0aGVyZS4KIAkjIGVhcmxpZXIgdmVyc2lvbnMgYXJlIG1lc3NlZCB1cCBhbmQgcHV0IHRoZSBub2RlbmFtZSBpbiBib3RoCkBAIC0xMDU4LDcgKzEwMDgsNyBAQAogICAgIGkqODY6c3lsbGFibGU6KjoqKQogCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zeWxsYWJsZQogCWV4aXQgOzsKLSAgICBpKjg2Okx5bnhPUzoyLio6KiB8IGkqODY6THlueE9TOjMuWzAxXSo6KiB8IGkqODY6THlueE9TOjQuMCo6KikKKyAgICBpKjg2Okx5bnhPUzoyLio6KiB8IGkqODY6THlueE9TOjMuWzAxXSo6KiB8IGkqODY6THlueE9TOjQuWzAyXSo6KikKIAllY2hvIGkzODYtdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9CiAJZXhpdCA7OwogICAgIGkqODY6KkRPUzoqOiopCkBAIC0xMTAyLDggKzEwNTIsMTEgQEAKICAgICBwYzoqOio6KikKIAkjIExlZnQgaGVyZSBmb3IgY29tcGF0aWJpbGl0eToKICAgICAgICAgIyB1bmFtZSAtbSBwcmludHMgZm9yIERKR1BQIGFsd2F5cyAncGMnLCBidXQgaXQgcHJpbnRzIG5vdGhpbmcgYWJvdXQKLSAgICAgICAgIyB0aGUgcHJvY2Vzc29yLCBzbyB3ZSBwbGF5IHNhZmUgYnkgYXNzdW1pbmcgaTM4Ni4KLQllY2hvIGkzODYtcGMtbXNkb3NkamdwcAorICAgICAgICAjIHRoZSBwcm9jZXNzb3IsIHNvIHdlIHBsYXkgc2FmZSBieSBhc3N1bWluZyBpNTg2LgorCSMgTm90ZTogd2hhdGV2ZXIgdGhpcyBpcywgaXQgTVVTVCBiZSB0aGUgc2FtZSBhcyB3aGF0IGNvbmZpZy5zdWIKKwkjIHByaW50cyBmb3IgdGhlICJkamdwcCIgaG9zdCwgb3IgZWxzZSBHREIgY29uZmlndXJ5IHdpbGwgZGVjaWRlIHRoYXQKKwkjIHRoaXMgaXMgYSBjcm9zcy1idWlsZC4KKwllY2hvIGk1ODYtcGMtbXNkb3NkamdwcAogICAgICAgICBleGl0IDs7CiAgICAgSW50ZWw6TWFjaDozKjoqKQogCWVjaG8gaTM4Ni1wYy1tYWNoMwpAQCAtMTE0MSw2ICsxMDk0LDE2IEBACiAgICAgM1szNF0/PzoqOjQuMDoqIHwgM1szNF0/PywqOio6NC4wOiopCiAgICAgICAgIC9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCBncmVwIDg2ID4vZGV2L251bGwgXAogICAgICAgICAgICYmIHsgZWNobyBpNDg2LW5jci1zeXN2NDsgZXhpdDsgfSA7OworICAgIE5DUio6Kjo0LjI6KiB8IE1QUkFTKjoqOjQuMjoqKQorCU9TX1JFTD0nLjMnCisJdGVzdCAtciAvZXRjLy5yZWxpZCBcCisJICAgICYmIE9TX1JFTD0uYHNlZCAtbiAncy9bXiBdKiBbXiBdKiBcKFswLTldWzAtOV1cKS4qL1wxL3AnIDwgL2V0Yy8ucmVsaWRgCisJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IGdyZXAgODYgPi9kZXYvbnVsbCBcCisJICAgICYmIHsgZWNobyBpNDg2LW5jci1zeXN2NC4zJHtPU19SRUx9OyBleGl0OyB9CisJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IC9iaW4vZ3JlcCBlbnRpdW0gPi9kZXYvbnVsbCBcCisJICAgICYmIHsgZWNobyBpNTg2LW5jci1zeXN2NC4zJHtPU19SRUx9OyBleGl0OyB9CisJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IC9iaW4vZ3JlcCBwdGVyb24gPi9kZXYvbnVsbCBcCisJICAgICYmIHsgZWNobyBpNTg2LW5jci1zeXN2NC4zJHtPU19SRUx9OyBleGl0OyB9IDs7CiAgICAgbTY4KjpMeW54T1M6Mi4qOiogfCBtNjgqOkx5bnhPUzozLjAqOiopCiAJZWNobyBtNjhrLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQogCWV4aXQgOzsKQEAgLTExNTMsNyArMTExNiw3IEBACiAgICAgcnM2MDAwOkx5bnhPUzoyLio6KikKIAllY2hvIHJzNjAwMC11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KIAlleGl0IDs7Ci0gICAgUG93ZXJQQzpMeW54T1M6Mi4qOiogfCBQb3dlclBDOkx5bnhPUzozLlswMV0qOiogfCBQb3dlclBDOkx5bnhPUzo0LjAqOiopCisgICAgUG93ZXJQQzpMeW54T1M6Mi4qOiogfCBQb3dlclBDOkx5bnhPUzozLlswMV0qOiogfCBQb3dlclBDOkx5bnhPUzo0LlswMl0qOiopCiAJZWNobyBwb3dlcnBjLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQogCWV4aXQgOzsKICAgICBTTVtCRV1TOlVOSVhfU1Y6KjoqKQpAQCAtMTIxNiw2ICsxMTc5LDkgQEAKICAgICBCZVBDOkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBJbnRlbCBQQyBjb21wYXRpYmxlLgogCWVjaG8gaTU4Ni1wYy1iZW9zCiAJZXhpdCA7OworICAgIEJlUEM6SGFpa3U6KjoqKQkjIEhhaWt1IHJ1bm5pbmcgb24gSW50ZWwgUEMgY29tcGF0aWJsZS4KKwllY2hvIGk1ODYtcGMtaGFpa3UKKwlleGl0IDs7CiAgICAgU1gtNDpTVVBFUi1VWDoqOiopCiAJZWNobyBzeDQtbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9CiAJZXhpdCA7OwpAQCAtMTI0Myw2ICsxMjA5LDE2IEBACiAgICAgKjpEYXJ3aW46KjoqKQogCVVOQU1FX1BST0NFU1NPUj1gdW5hbWUgLXBgIHx8IFVOQU1FX1BST0NFU1NPUj11bmtub3duCiAJY2FzZSAkVU5BTUVfUFJPQ0VTU09SIGluCisJICAgIGkzODYpCisJCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwkJaWYgWyAiJENDX0ZPUl9CVUlMRCIgIT0gJ25vX2NvbXBpbGVyX2ZvdW5kJyBdOyB0aGVuCisJCSAgaWYgKGVjaG8gJyNpZmRlZiBfX0xQNjRfXyc7IGVjaG8gSVNfNjRCSVRfQVJDSDsgZWNobyAnI2VuZGlmJykgfCBcCisJCSAgICAgIChDQ09QVFM9ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCkgfCBcCisJCSAgICAgIGdyZXAgSVNfNjRCSVRfQVJDSCA+L2Rldi9udWxsCisJCSAgdGhlbgorCQkgICAgICBVTkFNRV9QUk9DRVNTT1I9Ing4Nl82NCIKKwkJICBmaQorCQlmaSA7OwogCSAgICB1bmtub3duKSBVTkFNRV9QUk9DRVNTT1I9cG93ZXJwYyA7OwogCWVzYWMKIAllY2hvICR7VU5BTUVfUFJPQ0VTU09SfS1hcHBsZS1kYXJ3aW4ke1VOQU1FX1JFTEVBU0V9CkBAIC0xMzI0LDYgKzEzMDAsOSBAQAogICAgIGkqODY6cmRvczoqOiopCiAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXJkb3MKIAlleGl0IDs7CisgICAgaSo4NjpBUk9TOio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtYXJvcworCWV4aXQgOzsKIGVzYWMKIAogI2VjaG8gJyhObyB1bmFtZSBjb21tYW5kIG9yIHVuYW1lIG91dHB1dCBub3QgcmVjb2duaXplZC4pJyAxPiYyCkBAIC0xNDg0LDkgKzE0NjMsOSBAQAogdGhlIG9wZXJhdGluZyBzeXN0ZW0geW91IGFyZSB1c2luZy4gSXQgaXMgYWR2aXNlZCB0aGF0IHlvdQogZG93bmxvYWQgdGhlIG1vc3QgdXAgdG8gZGF0ZSB2ZXJzaW9uIG9mIHRoZSBjb25maWcgc2NyaXB0cyBmcm9tCiAKLSAgaHR0cDovL3NhdmFubmFoLmdudS5vcmcvY2dpLWJpbi92aWV3Y3ZzLypjaGVja291dCovY29uZmlnL2NvbmZpZy9jb25maWcuZ3Vlc3MKKyAgaHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9YmxvYl9wbGFpbjtmPWNvbmZpZy5ndWVzcztoYj1IRUFECiBhbmQKLSAgaHR0cDovL3NhdmFubmFoLmdudS5vcmcvY2dpLWJpbi92aWV3Y3ZzLypjaGVja291dCovY29uZmlnL2NvbmZpZy9jb25maWcuc3ViCisgIGh0dHA6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9naXR3ZWIvP3A9Y29uZmlnLmdpdDthPWJsb2JfcGxhaW47Zj1jb25maWcuc3ViO2hiPUhFQUQKIAogSWYgdGhlIHZlcnNpb24geW91IHJ1biAoJDApIGlzIGFscmVhZHkgdXAgdG8gZGF0ZSwgcGxlYXNlCiBzZW5kIHRoZSBmb2xsb3dpbmcgZGF0YSBhbmQgYW55IGluZm9ybWF0aW9uIHlvdSB0aGluayBtaWdodCBiZQpkaWZmIC0tZ2l0IGEvY29uZmlnLnN1YiBiL2NvbmZpZy5zdWIKaW5kZXggNjc1OTgyNS4uMzIwZTMwMyAxMDA3NTUKLS0tIGEvY29uZmlnLnN1YgorKysgYi9jb25maWcuc3ViCkBAIC0xLDEwICsxLDEwIEBACiAjISAvYmluL3NoCiAjIENvbmZpZ3VyYXRpb24gdmFsaWRhdGlvbiBzdWJyb3V0aW5lIHNjcmlwdC4KICMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCi0jICAgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOAorIyAgIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAKICMgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAotdGltZXN0YW1wPScyMDA4LTAxLTE2JwordGltZXN0YW1wPScyMDEwLTA5LTExJwogCiAjIFRoaXMgZmlsZSBpcyAoaW4gcHJpbmNpcGxlKSBjb21tb24gdG8gQUxMIEdOVSBzb2Z0d2FyZS4KICMgVGhlIHByZXNlbmNlIG9mIGEgbWFjaGluZSBpbiB0aGlzIGZpbGUgc3VnZ2VzdHMgdGhhdCBTT01FIEdOVSBzb2Z0d2FyZQpAQCAtMzIsMTMgKzMyLDE2IEBACiAKIAogIyBQbGVhc2Ugc2VuZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4gIFN1Ym1pdCBhIGNvbnRleHQKLSMgZGlmZiBhbmQgYSBwcm9wZXJseSBmb3JtYXR0ZWQgQ2hhbmdlTG9nIGVudHJ5LgorIyBkaWZmIGFuZCBhIHByb3Blcmx5IGZvcm1hdHRlZCBHTlUgQ2hhbmdlTG9nIGVudHJ5LgogIwogIyBDb25maWd1cmF0aW9uIHN1YnJvdXRpbmUgdG8gdmFsaWRhdGUgYW5kIGNhbm9uaWNhbGl6ZSBhIGNvbmZpZ3VyYXRpb24gdHlwZS4KICMgU3VwcGx5IHRoZSBzcGVjaWZpZWQgY29uZmlndXJhdGlvbiB0eXBlIGFzIGFuIGFyZ3VtZW50LgogIyBJZiBpdCBpcyBpbnZhbGlkLCB3ZSBwcmludCBhbiBlcnJvciBtZXNzYWdlIG9uIHN0ZGVyciBhbmQgZXhpdCB3aXRoIGNvZGUgMS4KICMgT3RoZXJ3aXNlLCB3ZSBwcmludCB0aGUgY2Fub25pY2FsIGNvbmZpZyB0eXBlIG9uIHN0ZG91dCBhbmQgc3VjY2VlZC4KIAorIyBZb3UgY2FuIGdldCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBzY3JpcHQgZnJvbToKKyMgaHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9YmxvYl9wbGFpbjtmPWNvbmZpZy5zdWI7aGI9SEVBRAorCiAjIFRoaXMgZmlsZSBpcyBzdXBwb3NlZCB0byBiZSB0aGUgc2FtZSBmb3IgYWxsIEdOVSBwYWNrYWdlcwogIyBhbmQgcmVjb2duaXplIGFsbCB0aGUgQ1BVIHR5cGVzLCBzeXN0ZW0gdHlwZXMgYW5kIGFsaWFzZXMKICMgdGhhdCBhcmUgbWVhbmluZ2Z1bCB3aXRoICphbnkqIEdOVSBzb2Z0d2FyZS4KQEAgLTcyLDggKzc1LDkgQEAKIHZlcnNpb249IlwKIEdOVSBjb25maWcuc3ViICgkdGltZXN0YW1wKQogCi1Db3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsCi0yMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLAorMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBGcmVlCitTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PCiB3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4iCkBAIC0xMjAsOCArMTI0LDEwIEBACiAjIEhlcmUgd2UgbXVzdCByZWNvZ25pemUgYWxsIHRoZSB2YWxpZCBLRVJORUwtT1MgY29tYmluYXRpb25zLgogbWF5YmVfb3M9YGVjaG8gJDEgfCBzZWQgJ3MvXlwoLipcKS1cKFteLV0qLVteLV0qXCkkL1wyLydgCiBjYXNlICRtYXliZV9vcyBpbgotICBudG8tcW54KiB8IGxpbnV4LWdudSogfCBsaW51eC1kaWV0bGliYyB8IGxpbnV4LW5ld2xpYiogfCBsaW51eC11Y2xpYmMqIHwgXAotICB1Y2xpbnV4LXVjbGliYyogfCB1Y2xpbnV4LWdudSogfCBrZnJlZWJzZCotZ251KiB8IGtuZXRic2QqLWdudSogfCBuZXRic2QqLWdudSogfCBcCisgIG50by1xbngqIHwgbGludXgtZ251KiB8IGxpbnV4LWFuZHJvaWQqIHwgbGludXgtZGlldGxpYmMgfCBsaW51eC1uZXdsaWIqIHwgXAorICBsaW51eC11Y2xpYmMqIHwgdWNsaW51eC11Y2xpYmMqIHwgdWNsaW51eC1nbnUqIHwga2ZyZWVic2QqLWdudSogfCBcCisgIGtuZXRic2QqLWdudSogfCBuZXRic2QqLWdudSogfCBcCisgIGtvcGVuc29sYXJpcyotZ251KiB8IFwKICAgc3Rvcm0tY2hhb3MqIHwgb3MyLWVteCogfCBydG1rLW5vdmEqKQogICAgIG9zPS0kbWF5YmVfb3MKICAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdzL15cKC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMS8nYApAQCAtMTQ4LDEwICsxNTQsMTMgQEAKIAktY29udmVyZ2VudCogfCAtbmNyKiB8IC1uZXdzIHwgLTMyKiB8IC0zNjAwKiB8IC0zMTAwKiB8IC1oaXRhY2hpKiB8XAogCS1jWzEyM10qIHwgLWNvbnZleCogfCAtc3VuIHwgLWNyZHMgfCAtb21yb24qIHwgLWRnIHwgLXVsdHJhIHwgLXR0aSogfCBcCiAJLWhhcnJpcyB8IC1kb2xwaGluIHwgLWhpZ2hsZXZlbCB8IC1nb3VsZCB8IC1jYm0gfCAtbnMgfCAtbWFzc2NvbXAgfCBcCi0JLWFwcGxlIHwgLWF4aXMgfCAta251dGggfCAtY3JheSkKKwktYXBwbGUgfCAtYXhpcyB8IC1rbnV0aCB8IC1jcmF5IHwgLW1pY3JvYmxhemUpCiAJCW9zPQogCQliYXNpY19tYWNoaW5lPSQxCiAJCTs7CisgICAgICAgIC1ibHVlZ2VuZSopCisJICAgICAgICBvcz0tY25rCisJCTs7CiAJLXNpbSB8IC1jaXNjbyB8IC1va2kgfCAtd2VjIHwgLXdpbmJvbmQpCiAJCW9zPQogCQliYXNpY19tYWNoaW5lPSQxCkBAIC0yNDksMTMgKzI1OCwxNiBAQAogCXwgaDgzMDAgfCBoODUwMCB8IGhwcGEgfCBocHBhMS5bMDFdIHwgaHBwYTIuMCB8IGhwcGEyLjBbbnddIHwgaHBwYTY0IFwKIAl8IGkzNzAgfCBpODYwIHwgaTk2MCB8IGlhNjQgXAogCXwgaXAyayB8IGlxMjAwMCBcCisJfCBsbTMyIFwKIAl8IG0zMmMgfCBtMzJyIHwgbTMycmxlIHwgbTY4MDAwIHwgbTY4ayB8IG04OGsgXAotCXwgbWF4cSB8IG1iIHwgbWljcm9ibGF6ZSB8IG1jb3JlIHwgbWVwIFwKKwl8IG1heHEgfCBtYiB8IG1pY3JvYmxhemUgfCBtY29yZSB8IG1lcCB8IG1ldGFnIFwKIAl8IG1pcHMgfCBtaXBzYmUgfCBtaXBzZWIgfCBtaXBzZWwgfCBtaXBzbGUgXAogCXwgbWlwczE2IFwKIAl8IG1pcHM2NCB8IG1pcHM2NGVsIFwKLQl8IG1pcHM2NHZyIHwgbWlwczY0dnJlbCBcCisJfCBtaXBzNjRvY3Rlb24gfCBtaXBzNjRvY3Rlb25lbCBcCiAJfCBtaXBzNjRvcmlvbiB8IG1pcHM2NG9yaW9uZWwgXAorCXwgbWlwczY0cjU5MDAgfCBtaXBzNjRyNTkwMGVsIFwKKwl8IG1pcHM2NHZyIHwgbWlwczY0dnJlbCBcCiAJfCBtaXBzNjR2cjQxMDAgfCBtaXBzNjR2cjQxMDBlbCBcCiAJfCBtaXBzNjR2cjQzMDAgfCBtaXBzNjR2cjQzMDBlbCBcCiAJfCBtaXBzNjR2cjUwMDAgfCBtaXBzNjR2cjUwMDBlbCBcCkBAIC0yNjgsMjggKzI4MCw0MSBAQAogCXwgbWlwc2lzYTY0c3I3MWsgfCBtaXBzaXNhNjRzcjcxa2VsIFwKIAl8IG1pcHN0eDM5IHwgbWlwc3R4MzllbCBcCiAJfCBtbjEwMjAwIHwgbW4xMDMwMCBcCisJfCBtb3hpZSBcCiAJfCBtdCBcCiAJfCBtc3A0MzAgXAorCXwgbmRzMzIgfCBuZHMzMmxlIHwgbmRzMzJiZSBcCiAJfCBuaW9zIHwgbmlvczIgXAogCXwgbnMxNmsgfCBuczMyayBcCiAJfCBvcjMyIFwKIAl8IHBkcDEwIHwgcGRwMTEgfCBwaiB8IHBqbCBcCiAJfCBwb3dlcnBjIHwgcG93ZXJwYzY0IHwgcG93ZXJwYzY0bGUgfCBwb3dlcnBjbGUgfCBwcGNiZSBcCiAJfCBweXJhbWlkIFwKKwl8IHJ4IFwKIAl8IHNjb3JlIFwKLQl8IHNoIHwgc2hbMTIzNF0gfCBzaFsyNF1hIHwgc2hbMjNdZSB8IHNoWzM0XWViIHwgc2hlYiB8IHNoYmUgfCBzaGxlIHwgc2hbMTIzNF1sZSB8IHNoM2VsZSBcCisJfCBzaCB8IHNoWzEyMzRdIHwgc2hbMjRdYSB8IHNoWzI0XWFlYiB8IHNoWzIzXWUgfCBzaFszNF1lYiB8IHNoZWIgfCBzaGJlIHwgc2hsZSB8IHNoWzEyMzRdbGUgfCBzaDNlbGUgXAogCXwgc2g2NCB8IHNoNjRsZSBcCiAJfCBzcGFyYyB8IHNwYXJjNjQgfCBzcGFyYzY0YiB8IHNwYXJjNjR2IHwgc3BhcmM4NnggfCBzcGFyY2xldCB8IHNwYXJjbGl0ZSBcCiAJfCBzcGFyY3Y4IHwgc3BhcmN2OSB8IHNwYXJjdjliIHwgc3BhcmN2OXYgXAogCXwgc3B1IHwgc3Ryb25nYXJtIFwKLQl8IHRhaG9lIHwgdGh1bWIgfCB0aWM0eCB8IHRpYzgwIHwgdHJvbiBcCisJfCB0YWhvZSB8IHRodW1iIHwgdGljNHggfCB0aWM1NHggfCB0aWM1NXggfCB0aWM2eCB8IHRpYzgwIHwgdHJvbiBcCisJfCB1Ymljb20zMiBcCiAJfCB2ODUwIHwgdjg1MGUgXAogCXwgd2UzMmsgXAogCXwgeDg2IHwgeGMxNnggfCB4c2NhbGUgfCB4c2NhbGVlW2JsXSB8IHhzdG9ybXkxNiB8IHh0ZW5zYSBcCi0JfCB6OGspCisJfCB6OGsgfCB6ODApCiAJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtdW5rbm93bgogCQk7OwotCW02ODExIHwgbTY4aGMxMSB8IG02ODEyIHwgbTY4aGMxMikKKwljNTR4KQorCQliYXNpY19tYWNoaW5lPXRpYzU0eC11bmtub3duCisJCTs7CisJYzU1eCkKKwkJYmFzaWNfbWFjaGluZT10aWM1NXgtdW5rbm93bgorCQk7OworCWM2eCkKKwkJYmFzaWNfbWFjaGluZT10aWM2eC11bmtub3duCisJCTs7CisJbTY4MTEgfCBtNjhoYzExIHwgbTY4MTIgfCBtNjhoYzEyIHwgcGljb2NoaXApCiAJCSMgTW90b3JvbGEgNjhIQzExLzEyLgogCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KIAkJb3M9LW5vbmUKQEAgLTMyMCw3ICszNDUsNyBAQAogCXwgYXJtLSogIHwgYXJtYmUtKiB8IGFybWxlLSogfCBhcm1lYi0qIHwgYXJtdiotKiBcCiAJfCBhdnItKiB8IGF2cjMyLSogXAogCXwgYmZpbi0qIHwgYnMyMDAwLSogXAotCXwgY1sxMjNdKiB8IGMzMC0qIHwgW2NqdF05MC0qIHwgYzR4LSogfCBjNTR4LSogfCBjNTV4LSogfCBjNngtKiBcCisJfCBjWzEyM10qIHwgYzMwLSogfCBbY2p0XTkwLSogfCBjNHgtKiBcCiAJfCBjbGlwcGVyLSogfCBjcmF5bnYtKiB8IGN5ZHJhLSogXAogCXwgZDEwdi0qIHwgZDMwdi0qIHwgZGx4LSogXAogCXwgZWx4c2ktKiBcCkBAIC0zMjksMTQgKzM1NCwxNyBAQAogCXwgaHBwYS0qIHwgaHBwYTEuWzAxXS0qIHwgaHBwYTIuMC0qIHwgaHBwYTIuMFtud10tKiB8IGhwcGE2NC0qIFwKIAl8IGkqODYtKiB8IGk4NjAtKiB8IGk5NjAtKiB8IGlhNjQtKiBcCiAJfCBpcDJrLSogfCBpcTIwMDAtKiBcCisJfCBsbTMyLSogXAogCXwgbTMyYy0qIHwgbTMyci0qIHwgbTMycmxlLSogXAogCXwgbTY4MDAwLSogfCBtNjgwWzAxMjM0Nl0wLSogfCBtNjgzNjAtKiB8IG02ODM/Mi0qIHwgbTY4ay0qIFwKLQl8IG04ODExMC0qIHwgbTg4ay0qIHwgbWF4cS0qIHwgbWNvcmUtKiBcCisJfCBtODgxMTAtKiB8IG04OGstKiB8IG1heHEtKiB8IG1jb3JlLSogfCBtZXRhZy0qIHwgbWljcm9ibGF6ZS0qIFwKIAl8IG1pcHMtKiB8IG1pcHNiZS0qIHwgbWlwc2ViLSogfCBtaXBzZWwtKiB8IG1pcHNsZS0qIFwKIAl8IG1pcHMxNi0qIFwKIAl8IG1pcHM2NC0qIHwgbWlwczY0ZWwtKiBcCi0JfCBtaXBzNjR2ci0qIHwgbWlwczY0dnJlbC0qIFwKKwl8IG1pcHM2NG9jdGVvbi0qIHwgbWlwczY0b2N0ZW9uZWwtKiBcCiAJfCBtaXBzNjRvcmlvbi0qIHwgbWlwczY0b3Jpb25lbC0qIFwKKwl8IG1pcHM2NHI1OTAwLSogfCBtaXBzNjRyNTkwMGVsLSogXAorCXwgbWlwczY0dnItKiB8IG1pcHM2NHZyZWwtKiBcCiAJfCBtaXBzNjR2cjQxMDAtKiB8IG1pcHM2NHZyNDEwMGVsLSogXAogCXwgbWlwczY0dnI0MzAwLSogfCBtaXBzNjR2cjQzMDBlbC0qIFwKIAl8IG1pcHM2NHZyNTAwMC0qIHwgbWlwczY0dnI1MDAwZWwtKiBcCkBAIC0zNTEsMjcgKzM3OSwzMCBAQAogCXwgbW1peC0qIFwKIAl8IG10LSogXAogCXwgbXNwNDMwLSogXAorCXwgbmRzMzItKiB8IG5kczMybGUtKiB8IG5kczMyYmUtKiBcCiAJfCBuaW9zLSogfCBuaW9zMi0qIFwKIAl8IG5vbmUtKiB8IG5wMS0qIHwgbnMxNmstKiB8IG5zMzJrLSogXAogCXwgb3Jpb24tKiBcCiAJfCBwZHAxMC0qIHwgcGRwMTEtKiB8IHBqLSogfCBwamwtKiB8IHBuLSogfCBwb3dlci0qIFwKIAl8IHBvd2VycGMtKiB8IHBvd2VycGM2NC0qIHwgcG93ZXJwYzY0bGUtKiB8IHBvd2VycGNsZS0qIHwgcHBjYmUtKiBcCiAJfCBweXJhbWlkLSogXAotCXwgcm9tcC0qIHwgcnM2MDAwLSogXAotCXwgc2gtKiB8IHNoWzEyMzRdLSogfCBzaFsyNF1hLSogfCBzaFsyM11lLSogfCBzaFszNF1lYi0qIHwgc2hlYi0qIHwgc2hiZS0qIFwKKwl8IHJvbXAtKiB8IHJzNjAwMC0qIHwgcngtKiBcCisJfCBzaC0qIHwgc2hbMTIzNF0tKiB8IHNoWzI0XWEtKiB8IHNoWzI0XWFlYi0qIHwgc2hbMjNdZS0qIHwgc2hbMzRdZWItKiB8IHNoZWItKiB8IHNoYmUtKiBcCiAJfCBzaGxlLSogfCBzaFsxMjM0XWxlLSogfCBzaDNlbGUtKiB8IHNoNjQtKiB8IHNoNjRsZS0qIFwKIAl8IHNwYXJjLSogfCBzcGFyYzY0LSogfCBzcGFyYzY0Yi0qIHwgc3BhcmM2NHYtKiB8IHNwYXJjODZ4LSogfCBzcGFyY2xldC0qIFwKIAl8IHNwYXJjbGl0ZS0qIFwKIAl8IHNwYXJjdjgtKiB8IHNwYXJjdjktKiB8IHNwYXJjdjliLSogfCBzcGFyY3Y5di0qIHwgc3Ryb25nYXJtLSogfCBzdjEtKiB8IHN4Py0qIFwKIAl8IHRhaG9lLSogfCB0aHVtYi0qIFwKIAl8IHRpYzMwLSogfCB0aWM0eC0qIHwgdGljNTR4LSogfCB0aWM1NXgtKiB8IHRpYzZ4LSogfCB0aWM4MC0qIFwKKwl8IHRpbGUtKiB8IHRpbGVneC0qIFwKIAl8IHRyb24tKiBcCisJfCB1Ymljb20zMi0qIFwKIAl8IHY4NTAtKiB8IHY4NTBlLSogfCB2YXgtKiBcCiAJfCB3ZTMyay0qIFwKIAl8IHg4Ni0qIHwgeDg2XzY0LSogfCB4YzE2eC0qIHwgeHBzMTAwLSogfCB4c2NhbGUtKiB8IHhzY2FsZWVbYmxdLSogXAogCXwgeHN0b3JteTE2LSogfCB4dGVuc2EqLSogXAogCXwgeW1wLSogXAotCXwgejhrLSopCisJfCB6OGstKiB8IHo4MC0qKQogCQk7OwogCSMgUmVjb2duaXplIHRoZSBiYXNpYyBDUFUgdHlwZXMgd2l0aG91dCBjb21wYW55IG5hbWUsIHdpdGggZ2xvYiBtYXRjaC4KIAl4dGVuc2EqKQpAQCAtNDM5LDYgKzQ3MCwxMCBAQAogCQliYXNpY19tYWNoaW5lPW02OGstYXBvbGxvCiAJCW9zPS1ic2QKIAkJOzsKKwlhcm9zKQorCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKwkJb3M9LWFyb3MKKwkJOzsKIAlhdXgpCiAJCWJhc2ljX21hY2hpbmU9bTY4ay1hcHBsZQogCQlvcz0tYXV4CkBAIC00NTUsMTAgKzQ5MCwyNyBAQAogCQliYXNpY19tYWNoaW5lPWJmaW4tYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKIAkJb3M9LWxpbnV4CiAJCTs7CisJYmx1ZWdlbmUqKQorCQliYXNpY19tYWNoaW5lPXBvd2VycGMtaWJtCisJCW9zPS1jbmsKKwkJOzsKKwljNTR4LSopCisJCWJhc2ljX21hY2hpbmU9dGljNTR4LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CisJYzU1eC0qKQorCQliYXNpY19tYWNoaW5lPXRpYzU1eC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCWM2eC0qKQorCQliYXNpY19tYWNoaW5lPXRpYzZ4LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CiAJYzkwKQogCQliYXNpY19tYWNoaW5lPWM5MC1jcmF5CiAJCW9zPS11bmljb3MKIAkJOzsKKyAgICAgICAgY2VnY2MpCisJCWJhc2ljX21hY2hpbmU9YXJtLXVua25vd24KKwkJb3M9LWNlZ2NjCisJCTs7CiAJY29udmV4LWMxKQogCQliYXNpY19tYWNoaW5lPWMxLWNvbnZleAogCQlvcz0tYnNkCkBAIC01MjYsNiArNTc4LDEwIEBACiAJCWJhc2ljX21hY2hpbmU9bTg4ay1tb3Rvcm9sYQogCQlvcz0tc3lzdjMKIAkJOzsKKwlkaWNvcykKKwkJYmFzaWNfbWFjaGluZT1pNjg2LXBjCisJCW9zPS1kaWNvcworCQk7OwogCWRqZ3BwKQogCQliYXNpY19tYWNoaW5lPWk1ODYtcGMKIAkJb3M9LW1zZG9zZGpncHAKQEAgLTY5OSw2ICs3NTUsOSBAQAogCQliYXNpY19tYWNoaW5lPW5zMzJrLXV0ZWsKIAkJb3M9LXN5c3YKIAkJOzsKKyAgICAgICAgbWljcm9ibGF6ZSkKKwkJYmFzaWNfbWFjaGluZT1taWNyb2JsYXplLXhpbGlueAorCQk7OwogCW1pbmd3MzIpCiAJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwogCQlvcz0tbWluZ3czMgpAQCAtODAzLDYgKzg2MiwxMiBAQAogCW5wMSkKIAkJYmFzaWNfbWFjaGluZT1ucDEtZ291bGQKIAkJOzsKKyAgICAgICAgbmVvLXRhbmRlbSkKKwkJYmFzaWNfbWFjaGluZT1uZW8tdGFuZGVtCisJCTs7CisgICAgICAgIG5zZS10YW5kZW0pCisJCWJhc2ljX21hY2hpbmU9bnNlLXRhbmRlbQorCQk7OwogCW5zci10YW5kZW0pCiAJCWJhc2ljX21hY2hpbmU9bnNyLXRhbmRlbQogCQk7OwpAQCAtMTAzNywxNyArMTEwMiwxMCBAQAogCQliYXNpY19tYWNoaW5lPXQ5MC1jcmF5CiAJCW9zPS11bmljb3MKIAkJOzsKLQl0aWM1NHggfCBjNTR4KikKLQkJYmFzaWNfbWFjaGluZT10aWM1NHgtdW5rbm93bgotCQlvcz0tY29mZgotCQk7OwotCXRpYzU1eCB8IGM1NXgqKQotCQliYXNpY19tYWNoaW5lPXRpYzU1eC11bmtub3duCi0JCW9zPS1jb2ZmCi0JCTs7Ci0JdGljNnggfCBjNngqKQotCQliYXNpY19tYWNoaW5lPXRpYzZ4LXVua25vd24KLQkJb3M9LWNvZmYKKyAgICAgICAgIyBUaGlzIG11c3QgYmUgbWF0Y2hlZCBiZWZvcmUgdGlsZSouCisgICAgICAgIHRpbGVneCopCisJCWJhc2ljX21hY2hpbmU9dGlsZWd4LXVua25vd24KKwkJb3M9LWxpbnV4LWdudQogCQk7OwogCXRpbGUqKQogCQliYXNpY19tYWNoaW5lPXRpbGUtdW5rbm93bgpAQCAtMTEyOCw2ICsxMTg2LDEwIEBACiAJCWJhc2ljX21hY2hpbmU9ejhrLXVua25vd24KIAkJb3M9LXNpbQogCQk7OworCXo4MC0qLWNvZmYpCisJCWJhc2ljX21hY2hpbmU9ejgwLXVua25vd24KKwkJb3M9LXNpbQorCQk7OwogCW5vbmUpCiAJCWJhc2ljX21hY2hpbmU9bm9uZS1ub25lCiAJCW9zPS1ub25lCkBAIC0xMTY2LDcgKzEyMjgsNyBAQAogCXdlMzJrKQogCQliYXNpY19tYWNoaW5lPXdlMzJrLWF0dAogCQk7OwotCXNoWzEyMzRdIHwgc2hbMjRdYSB8IHNoWzM0XWViIHwgc2hbMTIzNF1sZSB8IHNoWzIzXWVsZSkKKwlzaFsxMjM0XSB8IHNoWzI0XWEgfCBzaFsyNF1hZWIgfCBzaFszNF1lYiB8IHNoWzEyMzRdbGUgfCBzaFsyM11lbGUpCiAJCWJhc2ljX21hY2hpbmU9c2gtdW5rbm93bgogCQk7OwogCXNwYXJjIHwgc3BhcmN2OCB8IHNwYXJjdjkgfCBzcGFyY3Y5YiB8IHNwYXJjdjl2KQpAQCAtMTIxNiw2ICsxMjc4LDkgQEAKICAgICAgICAgIyBGaXJzdCBtYXRjaCBzb21lIHN5c3RlbSB0eXBlIGFsaWFzZXMKICAgICAgICAgIyB0aGF0IG1pZ2h0IGdldCBjb25mdXNlZCB3aXRoIHZhbGlkIHN5c3RlbSB0eXBlcy4KIAkjIC1zb2xhcmlzKiBpcyBhIGJhc2ljIHN5c3RlbSB0eXBlLCB3aXRoIHRoaXMgb25lIGV4Y2VwdGlvbi4KKyAgICAgICAgLWF1cm9yYXV4KQorCSAgICAgICAgb3M9LWF1cm9yYXV4CisJCTs7CiAJLXNvbGFyaXMxIHwgLXNvbGFyaXMxLiopCiAJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzb2xhcmlzMXxzdW5vczR8J2AKIAkJOzsKQEAgLTEyMzYsMTAgKzEzMDEsMTEgQEAKIAkjIEVhY2ggYWx0ZXJuYXRpdmUgTVVTVCBFTkQgSU4gQSAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVyLgogCSMgLXN5c3YqIGlzIG5vdCBoZXJlIGJlY2F1c2UgaXQgY29tZXMgbGF0ZXIsIGFmdGVyIHN5c3ZyNC4KIAktZ251KiB8IC1ic2QqIHwgLW1hY2gqIHwgLW1pbml4KiB8IC1nZW5peCogfCAtdWx0cml4KiB8IC1pcml4KiBcCi0JICAgICAgfCAtKnZtcyogfCAtc2NvKiB8IC1lc2l4KiB8IC1pc2MqIHwgLWFpeCogfCAtc3Vub3MgfCAtc3Vub3NbMzRdKlwKLQkgICAgICB8IC1ocHV4KiB8IC11bm9zKiB8IC1vc2YqIHwgLWx1bmEqIHwgLWRndXgqIHwgLXNvbGFyaXMqIHwgLXN5bSogXAorCSAgICAgIHwgLSp2bXMqIHwgLXNjbyogfCAtZXNpeCogfCAtaXNjKiB8IC1haXgqIHwgLWNuayogfCAtc3Vub3MgfCAtc3Vub3NbMzRdKlwKKwkgICAgICB8IC1ocHV4KiB8IC11bm9zKiB8IC1vc2YqIHwgLWx1bmEqIHwgLWRndXgqIHwgLWF1cm9yYXV4KiB8IC1zb2xhcmlzKiBcCisJICAgICAgfCAtc3ltKiB8IC1rb3BlbnNvbGFyaXMqIFwKIAkgICAgICB8IC1hbWlnYW9zKiB8IC1hbWlnYWRvcyogfCAtbXNkb3MqIHwgLW5ld3NvcyogfCAtdW5pY29zKiB8IC1hb2YqIFwKLQkgICAgICB8IC1hb3MqIFwKKwkgICAgICB8IC1hb3MqIHwgLWFyb3MqIFwKIAkgICAgICB8IC1uaW5keSogfCAtdnhzaW0qIHwgLXZ4d29ya3MqIHwgLWVibW9uKiB8IC1obXMqIHwgLW12cyogXAogCSAgICAgIHwgLWNsaXgqIHwgLXJpc2NvcyogfCAtdW5pcGx1cyogfCAtaXJpcyogfCAtcnR1KiB8IC14ZW5peCogXAogCSAgICAgIHwgLWhpdXgqIHwgLTM4NmJzZCogfCAta25ldGJzZCogfCAtbWlyYnNkKiB8IC1uZXRic2QqIFwKQEAgLTEyNDgsOSArMTMxNCwxMCBAQAogCSAgICAgIHwgLWJvc3gqIHwgLW5leHRzdGVwKiB8IC1jeHV4KiB8IC1hb3V0KiB8IC1lbGYqIHwgLW9hYmkqIFwKIAkgICAgICB8IC1wdHgqIHwgLWNvZmYqIHwgLWVjb2ZmKiB8IC13aW5udCogfCAtZG9tYWluKiB8IC12c3RhKiBcCiAJICAgICAgfCAtdWRpKiB8IC1lYWJpKiB8IC1saXRlcyogfCAtaWVlZSogfCAtZ28zMiogfCAtYXV4KiBcCi0JICAgICAgfCAtY2hvcnVzb3MqIHwgLWNob3J1c3JkYiogXAorCSAgICAgIHwgLWNob3J1c29zKiB8IC1jaG9ydXNyZGIqIHwgLWNlZ2NjKiBcCiAJICAgICAgfCAtY3lnd2luKiB8IC1wZSogfCAtcHNvcyogfCAtbW9zcyogfCAtcHJvZWxmKiB8IC1ydGVtcyogXAotCSAgICAgIHwgLW1pbmd3MzIqIHwgLWxpbnV4LWdudSogfCAtbGludXgtbmV3bGliKiB8IC1saW51eC11Y2xpYmMqIFwKKwkgICAgICB8IC1taW5ndzMyKiB8IC1saW51eC1nbnUqIHwgLWxpbnV4LWFuZHJvaWQqIFwKKwkgICAgICB8IC1saW51eC1uZXdsaWIqIHwgLWxpbnV4LXVjbGliYyogXAogCSAgICAgIHwgLXV4cHYqIHwgLWJlb3MqIHwgLW1wZWl4KiB8IC11ZGsqIFwKIAkgICAgICB8IC1pbnRlcml4KiB8IC11d2luKiB8IC1ta3MqIHwgLXJoYXBzb2R5KiB8IC1kYXJ3aW4qIHwgLW9wZW5lZCogXAogCSAgICAgIHwgLW9wZW5zdGVwKiB8IC1vc2tpdCogfCAtY29uaXgqIHwgLXB3MzIqIHwgLW5vbnN0b3B1eCogXApAQCAtMTI1OCw3ICsxMzI1LDcgQEAKIAkgICAgICB8IC1vczIqIHwgLXZvcyogfCAtcGFsbW9zKiB8IC11Y2xpbnV4KiB8IC1udWNsZXVzKiBcCiAJICAgICAgfCAtbW9ycGhvcyogfCAtc3VwZXJ1eCogfCAtcnRtayogfCAtcnRtay1ub3ZhKiB8IC13aW5kaXNzKiBcCiAJICAgICAgfCAtcG93ZXJtYXgqIHwgLWRuaXgqIHwgLW54NiB8IC1ueDcgfCAtc2VpKiB8IC1kcmFnb25mbHkqIFwKLQkgICAgICB8IC1za3lvcyogfCAtaGFpa3UqIHwgLXJkb3MqIHwgLXRvcHBlcnMqIHwgLWRyb3BzKikKKwkgICAgICB8IC1za3lvcyogfCAtaGFpa3UqIHwgLXJkb3MqIHwgLXRvcHBlcnMqIHwgLWRyb3BzKiB8IC1lcyopCiAJIyBSZW1lbWJlciwgZWFjaCBhbHRlcm5hdGl2ZSBNVVNUIEVORCBJTiAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVyLgogCQk7OwogCS1xbngqKQpAQCAtMTM4OCw2ICsxNDU1LDExIEBACiAJLXp2bW9lKQogCQlvcz0tenZtb2UKIAkJOzsKKwktZGljb3MqKQorCQlvcz0tZGljb3MKKwkJOzsKKyAgICAgICAgLW5hY2wqKQorCSAgICAgICAgOzsKIAktbm9uZSkKIAkJOzsKIAkqKQpAQCAtMTQyOCw2ICsxNTAwLDE1IEBACiAgICAgICAgIGM0eC0qIHwgdGljNHgtKikKICAgICAgICAgCW9zPS1jb2ZmCiAJCTs7CisJdGljNTR4LSopCisJCW9zPS1jb2ZmCisJCTs7CisJdGljNTV4LSopCisJCW9zPS1jb2ZmCisJCTs7CisJdGljNngtKikKKwkJb3M9LWNvZmYKKwkJOzsKIAkjIFRoaXMgbXVzdCBjb21lIGJlZm9yZSB0aGUgKi1kZWMgZW50cnkuCiAJcGRwMTAtKikKIAkJb3M9LXRvcHMyMApAQCAtMTU4NSw3ICsxNjY2LDcgQEAKIAkJCS1zdW5vcyopCiAJCQkJdmVuZG9yPXN1bgogCQkJCTs7Ci0JCQktYWl4KikKKwkJCS1jbmsqfC1haXgqKQogCQkJCXZlbmRvcj1pYm0KIAkJCQk7OwogCQkJLWJlb3MqKQpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IDkzNWJlZTAuLjA3NGVkYjYgMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysgYi9jb25maWd1cmUKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDQyMTVhMzAuLmFmNGQ0NDcgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTEwLDkgKzEwLDkgQEAKICMKICMgUHJvY2VzcyB0aGlzIGZpbGUgd2l0aCBhdXRvY29uZiB0byBwcm9kdWNlIGEgY29uZmlndXJlIHNjcmlwdC4KICMKLUFDX0lOSVQoW05ldC1TTk1QXSwgWzUuNi4yXSwgW25ldC1zbm1wLWNvZGVyc0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXRdKQorQUNfSU5JVChbTmV0LVNOTVBdLCBbNS43LjMucHJlNV0sIFtuZXQtc25tcC1jb2RlcnNAbGlzdHMuc291cmNlZm9yZ2UubmV0XSkKIEFDX1BSRVJFUShbMi42M10pCi1BQ19DT05GSUdfU1JDRElSKFthZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmNdKQorQUNfQ09ORklHX1NSQ0RJUihbYWdlbnQvc25tcGQuY10pCiBBQ19SRVZJU0lPTihbJFJldmlzaW9uJF0pCiAKIEFDX0NPTkZJR19NQUNST19ESVIoW200XSkKQEAgLTcyLDYgKzcyLDcgQEAKIEFDX1NVQlNUKEFHRU5UTElCUykKIEFDX1NVQlNUKE9USEVSQUdFTlRMSUJPQkpTKQogQUNfU1VCU1QoT1RIRVJBR0VOVExJQkxPQkpTKQorQUNfU1VCU1QoT1RIRVJBR0VOVExJQkxGVFMpCiAKIEFDX1NVQlNUKERMTElCUykKIApAQCAtOTQsNiArOTUsNyBAQAogQUNfQ09ORklHX0ZJTEVTKFtuZXQtc25tcC1jcmVhdGUtdjMtdXNlcjpuZXQtc25tcC1jcmVhdGUtdjMtdXNlci5pbl0sCiAJCVtjaG1vZCAreCBuZXQtc25tcC1jcmVhdGUtdjMtdXNlcl0pCiBBQ19DT05GSUdfRklMRVMoW2Rpc3QvZ2VuZXJhdGlvbi1zY3JpcHRzL2dlbi12YXJpYWJsZXM6ZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMvZ2VuLXZhcmlhYmxlcy5pbl0pCitBQ19DT05GSUdfRklMRVMoW2xvY2FsL3NubXBjb25mXSkKIAogQUNfQ09ORklHX0NPTU1BTkRTKFtkZWZhdWx0XSwgZWNobyB0aW1lc3RhbXAgPiBzdGFtcC1oKQogCmRpZmYgLS1naXQgYS9jb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCBiL2NvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50CmluZGV4IDVjYjMwYmIuLjc2NzQ2ZmQgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50CisrKyBiL2NvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50CkBAIC0yOCw3ICsyOCw3IEBACiBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBhbmQgY29uZmlndXJpbmcgbWliIG1vZHVsZXMgdG8gdXNlXSkKIAogIyBzZXQgdXAgdGhlIENQUCBjb21tYW5kCi1NT0RVTEVDUFA9IiRDUFAgJFBBUlRJQUxUQVJHRVRGTEFHUyAtSSR7c3JjZGlyfS9pbmNsdWRlIC1JJHtzcmNkaXJ9L2FnZW50L21pYmdyb3VwIgorTU9EVUxFQ1BQPSIkQ1BQICRQQVJUSUFMVEFSR0VURkxBR1MgJENQUEZMQUdTIC1ETkVUU05NUF9GRUFUVVJFX0NIRUNLSU5HIC1JJHtzcmNkaXJ9L2luY2x1ZGUgLUkke3NyY2Rpcn0vYWdlbnQvbWliZ3JvdXAiCiBpZiB0ZXN0ICJ4JGVuYWJsZV9tZmRfcmV3cml0ZXMiID0gInh5ZXMiOyB0aGVuCiAgIE1PRFVMRUNQUD0iJE1PRFVMRUNQUCAtRE5FVFNOTVBfRU5BQkxFX01GRF9SRVdSSVRFUyIKIGZpCkBAIC03Nyw2ICs3Nyw4IEBACiAgIGZpCiBkb25lCiAKK25ld19tb2R1bGVfbGlzdD1gZWNobyAkbmV3X21vZHVsZV9saXN0IHwgdHIgJyAnICdcbicgfCBzb3J0IHwgdHIgJ1xuJyAnICcgfCAkU0VEICdzLyAkLy8nYAorCiBBQ19NU0dfUkVTVUxUKFskbmV3X21vZHVsZV9saXN0Ll0pCiAKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE3NCw5ICsxNzYsOSBAQAogICAgICMgYnVpbGQgYSBwc2V1ZG8gaW5jbHVkZSBoZWFkZXIgdGhhdCBpbmNsdWRlcyBjdXJyZW50IGNvbmZpZyBhbmQKICAgICAjIHN5c3RlbSBzeW1ib2xzOgogICAgIHJtIC1mIGNvbmZ0ZXN0LiRhY19leHQgbW9kdWxlX3RtcF9oZWFkZXIuaAotICAgIEFDX0xBTkdfQ09ORlRFU1QoQUNfTEFOR19TT1VSQ0UoW1sKKyAgICBBQ19MQU5HX0NPTkZURVNUKFtBQ19MQU5HX1NPVVJDRShbWwogI2luY2x1ZGUgTkVUU05NUF9TWVNURU1fSU5DTFVERV9GSUxFCi0jaW5jbHVkZSAiJHNyY2Rpci8kbWliZGlyLyRpLmgiXV0pKQorI2luY2x1ZGUgIiRzcmNkaXIvJG1pYmRpci8kaS5oIl1dKV0pCiAgICAgbXYgY29uZnRlc3QuJGFjX2V4dCBtb2R1bGVfdG1wX2hlYWRlci5oCiAKICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xODksNyArMTkxLDggQEAKICAgICBtb2R1bGVfdHlwZT1taWJfbW9kdWxlCiAgICAgaWYgdGVzdCAtZiAkc3JjZGlyLyRtaWJkaXIvJGkuaDsgdGhlbgogICAgICAgY2hhbmdlcXVvdGUoLCApCi0gICAgICBtb2R1bGVfdHlwZT1gJE1PRFVMRUNQUCBtb2R1bGVfdG1wX2hlYWRlci5oIHwgJEdSRVAgY29uZmlnX2JlbG9uZ3NfaW4gfCAkU0VEICdzQC4qY29uZmlnX2JlbG9uZ3NfaW4oXChbXildKlwpKS4qQFwxQCdgCisgICAgICBtb2R1bGVfdHlwZT1gJE1PRFVMRUNQUCBtb2R1bGVfdG1wX2hlYWRlci5oIHwgXAorICAgICAgICAgICAgICAgICAgICRTRUQgLW4gJ3NALipjb25maWdfYmVsb25nc19pbihcKFteKV0qXCkpLipAXDFAcCdgCiAgICAgICBjaGFuZ2VxdW90ZShbLCBdKQogICAgIGZpCiAgICAgaWYgdGVzdCAieCRtb2R1bGVfdHlwZSIgPSAieCIgOyB0aGVuCkBAIC0yNzAsNyArMjczLDggQEAKICAgICAgICAgIyBjaGVjayBpZiAkaSBoYXMgYW55IGNvbmZsaWN0cwogICAgICAgICAjCiAgICAgICAgIEFIX1RPUChbI2RlZmluZSBjb25maWdfZXhjbHVkZSh4KV0pCi0JbmV3X2xpc3RfZXhjbD1gJE1PRFVMRUNQUCBtb2R1bGVfdG1wX2hlYWRlci5oIHwgJEdSRVAgY29uZmlnX2V4Y2x1ZGUgfCAkU0VEICdzLy4qY29uZmlnX2V4Y2x1ZGUoXCguKlwpKS4qL1wxLydgCisgICAgICAgIG5ld19saXN0X2V4Y2w9YCRNT0RVTEVDUFAgbW9kdWxlX3RtcF9oZWFkZXIuaCB8IFwKKyAgICAgICAgICAgICAgICAgICAgICAgJFNFRCAtbiAncy8uKmNvbmZpZ19leGNsdWRlKFwoLipcKSkuKi9cMS9wJ2AKIAlpZiB0ZXN0ICJ4JG5ld19saXN0X2V4Y2wiICE9ICJ4IjsgdGhlbgogICAgICAgICAgIEFDX01TR19NT0RVTEVfREJHKCIkaSBleGNsdWRlcyAkbmV3X2xpc3RfZXhjbCIpCiAJICBmb3IgaiBpbiAkbmV3X2xpc3RfZXhjbApAQCAtMjk5LDcgKzMwMyw4IEBACiAgICAgICAgICMKICAgICAgICAgQUhfVE9QKFsjZGVmaW5lIGNvbmZpZ19hcmNoX3JlcXVpcmUoeCx5KV0pCiAgICAgICAgIGNoYW5nZXF1b3RlKCwgKQotICAgICAgICBuZXdfbGlzdF9hcmNoPWAkTU9EVUxFQ1BQIG1vZHVsZV90bXBfaGVhZGVyLmggfCAkR1JFUCBjb25maWdfYXJjaF9yZXF1aXJlIHwgJFNFRCAncy8uKmNvbmZpZ19hcmNoX3JlcXVpcmUoICpcKFteIF0qXCkgKiwgKlwoW14gXSpcKSAqKS4qL1wxLXhhcmNoeC1cMi8nYAorICAgICAgICBuZXdfbGlzdF9hcmNoPWAkTU9EVUxFQ1BQIG1vZHVsZV90bXBfaGVhZGVyLmggfCBcCisgICAgICAgICAgICAgICAgICAgICAgICRTRUQgLW4gJ3MvLipjb25maWdfYXJjaF9yZXF1aXJlKCAqXChbXiBdKlwpICosICpcKFteIF0qXCkgKikuKi9cMS14YXJjaHgtXDIvcCdgCiAgICAgICAgIGNoYW5nZXF1b3RlKFssIF0pCiAJaWYgdGVzdCAieCRuZXdfbGlzdF9hcmNoIiAhPSAieCI7IHRoZW4KICAgICAgICAgICBmb3IgaiBpbiAkbmV3X2xpc3RfYXJjaApAQCAtMzIwLDExICszMjUsNyBAQAogICAgICAgICAjCiAgICAgICAgIEFIX1RPUChbI2RlZmluZSBjb25maWdfdmVyc2lvbl9yZXF1aXJlKHgpXSkKICAgICAgICAgW25ld19saXN0X2FsdDM9YCRNT0RVTEVDUFAgbW9kdWxlX3RtcF9oZWFkZXIuaCB8IFwKLSAgICAgICAgICAgICRHUkVQIGNvbmZpZ192ZXJzaW9uX3JlcXVpcmUgfCBcCi0gICAgICAgICAgICAkU0VEIC1lICdzLyAgKi8gL2cnIFwKLSAgICAgICAgICAgICAgICAgLWUgJ3MvLipjb25maWdfdmVyc2lvbl9yZXF1aXJlKCggKlwoW14pXSpcKSAqKSkuKi9cMS8nIFwKLSAgICAgICAgICAgICAgICAgLWUgJ3MvICosICovLC9nJyB8IFwKLSAgICAgICAgICAgIGF3ayAnCisgICAgICAgICAgICAkQVdLICcKICAgICAgICAgICAgICAgICBCRUdJTiB7CiAgICAgICAgICAgICAgICAgICAgIGlmKCInIiRlbmFibGVfbmV3X2ZlYXR1cmVzIiciID09ICJ5ZXMiKQogICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kPSJtYXgiOwpAQCAtMzM2LDcgKzMzNywxMCBAQAogICAgICAgICAgICAgICAgICAgICBzcGxpdCgiJyIkd2l0aF9mZWF0dXJlc19vZiInIiwgYSk7CiAgICAgICAgICAgICAgICAgICAgIHZlcnNpb249c3ByaW50ZigiJTAzZCUwM2QlMDNkJTAzZCIsIGFbMV0sIGFbMl0sIGFbM10sIGFbNF0pOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgL2NvbmZpZ192ZXJzaW9uX3JlcXVpcmUvIHsKKyAgICAgICAgICAgICAgICAgICAgZ3N1YigiXi4qY29uZmlnX3ZlcnNpb25fcmVxdWlyZSAqXFxcXChcXFxcKCIsICIiKTsKKyAgICAgICAgICAgICAgICAgICAgZ3N1YigiXFxcXClcXFxcKS4qJCIsICIiKTsKKyAgICAgICAgICAgICAgICAgICAgZ3N1YigiLCAqIiwgIiwiKTsKICAgICAgICAgICAgICAgICAgICAgRlMgPSAiLCI7CiAgICAgICAgICAgICAgICAgICAgIG4gPSBzcGxpdCgkMCwgYSk7CiAgICAgICAgICAgICAgICAgICAgIEZTID0gIi4iOwpAQCAtMzYyLDcgKzM2Niw4IEBACiAgICAgICAgICMgY2hlY2sgaWYgJGkgaGFzIGFueSBvdGhlciByZXF1aXJlZCBtb2R1bGVzCiAgICAgICAgICMKICAgICAgICAgQUhfVE9QKFsjZGVmaW5lIGNvbmZpZ19yZXF1aXJlKHgpXSkKLQluZXdfbGlzdD0iJG5ld19saXN0IGAkTU9EVUxFQ1BQIG1vZHVsZV90bXBfaGVhZGVyLmggfCAkR1JFUCBjb25maWdfcmVxdWlyZSB8ICRTRUQgJ3MvLipjb25maWdfcmVxdWlyZShcKC4qXCkpLiovXDEvJ2AiCisgICAgICAgIG5ld19saXN0PSIkbmV3X2xpc3QgYCRNT0RVTEVDUFAgbW9kdWxlX3RtcF9oZWFkZXIuaCB8IFwKKyAgICAgICAgICAgICAgICAgICRTRUQgLW4gJ3MvLipjb25maWdfcmVxdWlyZShcKC4qXCkpLiovXDEvcCdgIgogICAgICAgICBBQ19NU0dfTU9EVUxFX0RCRygiICRpIHdpbGwgdGVzdDogJG5ld19saXN0IikKIAlpZiB0ZXN0ICJ4JG5ld19saXN0IiAhPSAieCI7IHRoZW4KIAkgIGZvciBqIGluICRuZXdfbGlzdApAQCAtMzk4LDcgKzQwMyw4IEBACiAgICAgICAgICMgY2hlY2sgaWYgJGkgaGFzIGFueSBtaWJzIHRvIGFkZAogICAgICAgICAjCiAgICAgICAgIEFIX1RPUChbI2RlZmluZSBjb25maWdfYWRkX21pYih4KV0pCi0JbmV3X21pYnM9YCRNT0RVTEVDUFAgbW9kdWxlX3RtcF9oZWFkZXIuaCB8ICRHUkVQIGNvbmZpZ19hZGRfbWliIHwgJFNFRCAncy8uKmNvbmZpZ19hZGRfbWliKFwoLipcKSkuKi9cMS8nYAorICAgICAgICBuZXdfbWlicz1gJE1PRFVMRUNQUCBtb2R1bGVfdG1wX2hlYWRlci5oIHwgXAorICAgICAgICAgICAgICAgICAgJFNFRCAtbiAncy8uKmNvbmZpZ19hZGRfbWliKFwoLipcKSkuKi9cMS9wJ2AKIAlpZiB0ZXN0ICJ4JG5ld19taWJzIiAhPSAieCI7IHRoZW4KIAkgICAgZm9yIGogaW4gJG5ld19taWJzCiAJCWRvCkBAIC00MzQsNyArNDQwLDcgQEAKICAgICAgICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgICAgIyBjaGVjayBmb3IgdW5zdXBwb3J0ZWQgY29uZmlnX2xvYWRfbWliCiAgICAgICAgICMKLSAgICAgICAgaWYgJE1PRFVMRUNQUCBtb2R1bGVfdG1wX2hlYWRlci5oIHwgJEdSRVAgY29uZmlnX2xvYWRfbWliID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgICAgICAgaWYgJE1PRFVMRUNQUCBtb2R1bGVfdG1wX2hlYWRlci5oIHwgJEdSRVAgLXEgY29uZmlnX2xvYWRfbWliOyB0aGVuCiAgICAgICAgICAgQUNfTVNHX1dBUk4oW21pYiBtb2R1bGUgZXJyb3JdKQogICAgICAgCSAgQUNfTVNHX1dBUk4oW21pYiBtb2R1bGUgIiRpIiB1c2VzIHRoZSAiY29uZmlnX2xvYWRfbWliIiBkaXJlY3RpdmUsIHdoaWNoIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuICBJdCBwcm9iYWJseSB3b24ndCB3b3JrLl0pCiAgICAgICAgIGZpICMgZ3JlcCBjb25maWdfbG9hZF9taWIKQEAgLTQ0NSw3ICs0NTEsOCBAQAogICAgICAgICAjCiAgICAgICAgIEFIX1RPUChbI2RlZmluZSBjb25maWdfcGFyc2VfZG90X2NvbmYodyx4LHkseildKQogICAgICAgICBjaGFuZ2VxdW90ZSgsICkKLSAgICAgICAgJE1PRFVMRUNQUCBtb2R1bGVfdG1wX2hlYWRlci5oIHwgJEdSRVAgY29uZmlnX3BhcnNlX2RvdF9jb25mIHwgJFNFRCAnc0AuKmNvbmZpZ19wYXJzZV9kb3RfY29uZihcKFteKV0qXCksICpcKFteKSxdKlwpLCAqXChbXiksXSpcKSwgKlwoW14pLF0qXCkpLipAcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoInNubXBkIixcMSwgXDIsIFwzLCBcNCk7QCcgPj4gJG1pYmRpci9taWJfbW9kdWxlX2RvdF9jb25mLmgKKyAgICAgICAgJE1PRFVMRUNQUCBtb2R1bGVfdG1wX2hlYWRlci5oIHwgXAorICAgICAgICAkU0VEIC1uICdzQC4qY29uZmlnX3BhcnNlX2RvdF9jb25mKFwoW14pXSpcKSwgKlwoW14pLF0qXCksICpcKFteKSxdKlwpLCAqXChbXiksXSpcKSkuKkByZWdpc3Rlcl9jb25maWdfaGFuZGxlcigic25tcGQiLFwxLCBcMiwgXDMsIFw0KTtAcCcgPj4gJG1pYmRpci9taWJfbW9kdWxlX2RvdF9jb25mLmgKIAljaGFuZ2VxdW90ZShbLCBdKQogCiAgICAgICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ1NSw3ICs0NjIsOCBAQAogICAgICAgICAjIGNoZWNrIGlmICRpIGhhcyBhbnkgZXJyb3JzLCBvciB3YXJuaW5ncwogICAgICAgICAjCiAgICAgICAgIEFIX1RPUChbI2RlZmluZSBjb25maWdfZXJyb3IoeCldKQotCWVycm9yPWAkTU9EVUxFQ1BQIG1vZHVsZV90bXBfaGVhZGVyLmggfCAkR1JFUCBjb25maWdfZXJyb3IgfCAkU0VEICdzLy4qY29uZmlnX2Vycm9yKFwoLipcKSkuKi9cMS8nYAorICAgICAgICBlcnJvcj1gJE1PRFVMRUNQUCBtb2R1bGVfdG1wX2hlYWRlci5oIHwgXAorICAgICAgICAgICAgICAgJFNFRCAtbiAncy8uKmNvbmZpZ19lcnJvcihcKC4qXCkpLiovXDEvcCdgCiAJaWYgdGVzdCAieCRlcnJvciIgIT0gIngiOyB0aGVuCiAgICAgICAgICAgZWNobwogICAgICAgICAgIGVjaG8KQEAgLTQ2Nyw3ICs0NzUsOCBAQAogICAgICAgCSMgIC0gdXNlZCB0byBzaWduYWwgYSBjb25maWd1cmF0aW9uICJ3YXJuaW5nIiB0byBiZSBwcmludGVkIHRvIHRoZSB1c2VyCiAgICAgICAgICMKICAgICAgICAgQUhfVE9QKFsjZGVmaW5lIGNvbmZpZ193YXJuaW5nKHgpXSkKLQl3YXJuaW5nPWAkTU9EVUxFQ1BQIG1vZHVsZV90bXBfaGVhZGVyLmggfCAkR1JFUCBjb25maWdfd2FybmluZyB8ICRTRUQgJ3MvLipjb25maWdfd2FybmluZyhcKC4qXCkpLiovXDEvJ2AKKyAgICAgICAgd2FybmluZz1gJE1PRFVMRUNQUCBtb2R1bGVfdG1wX2hlYWRlci5oIHwgXAorICAgICAgICAgICAgICAgICAkU0VEIC1uICdzLy4qY29uZmlnX3dhcm5pbmcoXCguKlwpKS4qL1wxL3AnYAogCWlmIHRlc3QgIngkd2FybmluZyIgIT0gIngiOyB0aGVuCiAgICAgICAgICAgYWxsX3dhcm5pbmdzPSIkYWxsX3dhcm5pbmdzICR3YXJuaW5nCiAiCkBAIC02NzgsMjkgKzY4NywzNCBAQAogIwogY2hhbmdlcXVvdGUoLCApCiAKLWZvciBpIGluIG1vZHVsZV9saXN0X28gbW9kdWxlX2xpc3RfYyBtb2R1bGVfbGlzdF9sbyBtaWJfbW9kdWxlX2xpc3RfbyBtaWJfbW9kdWxlX2xpc3RfYyBtaWJfbW9kdWxlX2xpc3RfbG8gbWliZ3JvdXBfbGlzdF9vIG1pYmdyb3VwX2xpc3RfbG8gYWdlbnRfbW9kdWxlX2xpc3RfbyBhZ2VudF9tb2R1bGVfbGlzdF9jIGFnZW50X21vZHVsZV9saXN0X2xvIGFnZW50Z3JvdXBfbGlzdF9vIGFnZW50Z3JvdXBfbGlzdF9sbyA7IGRvCitmb3IgaSBpbiBtb2R1bGVfbGlzdF9vIG1vZHVsZV9saXN0X2MgbW9kdWxlX2xpc3RfbG8gbW9kdWxlX2xpc3RfZnQgbWliX21vZHVsZV9saXN0X28gbWliX21vZHVsZV9saXN0X2MgbWliX21vZHVsZV9saXN0X2xvIG1pYl9tb2R1bGVfbGlzdF9mdCBtaWJncm91cF9saXN0X28gbWliZ3JvdXBfbGlzdF9sbyBtaWJncm91cF9saXN0X2Z0IGFnZW50X21vZHVsZV9saXN0X28gYWdlbnRfbW9kdWxlX2xpc3RfYyBhZ2VudF9tb2R1bGVfbGlzdF9sbyBhZ2VudF9tb2R1bGVfbGlzdF9mdCBhZ2VudGdyb3VwX2xpc3RfbyBhZ2VudGdyb3VwX2xpc3RfbG8gYWdlbnRncm91cF9saXN0X2Z0IDsgZG8KICAgZXZhbCAiJGk9bWsvJHtpfS5tayIKIGRvbmUKIAogJFNFRCAncy9ebW9kdWxlX2xpc3RfY29kZS9tb2R1bGVfbGlzdF9vLztzL1woW149XVwpICAqXFwvXDEubyBcXC9nJyAgPCAkbW9kdWxlX2xpc3RfY29kZSAgPiAkbW9kdWxlX2xpc3RfbwogJFNFRCAncy9ebW9kdWxlX2xpc3RfY29kZS9tb2R1bGVfbGlzdF9jLztzL1woW149XVwpICAqXFwvXDEuYyBcXC9nJyAgPCAkbW9kdWxlX2xpc3RfY29kZSAgPiAkbW9kdWxlX2xpc3RfYwogJFNFRCAncy9ebW9kdWxlX2xpc3RfY29kZS9tb2R1bGVfbGlzdF9sby87cy9cKFtePV1cKSAgKlxcL1wxLmxvIFxcL2cnIDwgJG1vZHVsZV9saXN0X2NvZGUgID4gJG1vZHVsZV9saXN0X2xvCiskU0VEICdzL15tb2R1bGVfbGlzdF9jb2RlL21vZHVsZV9saXN0X2Z0LztzL1woW149XVwpICAqXFwvXDEuZnQgXFwvZycgPCAkbW9kdWxlX2xpc3RfY29kZSAgPiAkbW9kdWxlX2xpc3RfZnQKIAogJFNFRCAncy9ebWliX21vZHVsZV9saXN0X2NvZGUvbWliX21vZHVsZV9saXN0X28vO3MvXChbXj1dXCkgICpcXC9cMS5vIFxcL2cnICA8ICRtaWJfbW9kdWxlX2xpc3RfY29kZSAgPiAkbWliX21vZHVsZV9saXN0X28KICRTRUQgJ3MvXm1pYl9tb2R1bGVfbGlzdF9jb2RlL21pYl9tb2R1bGVfbGlzdF9jLztzL1woW149XVwpICAqXFwvXDEuYyBcXC9nJyAgPCAkbWliX21vZHVsZV9saXN0X2NvZGUgID4gJG1pYl9tb2R1bGVfbGlzdF9jCiAkU0VEICdzL15taWJfbW9kdWxlX2xpc3RfY29kZS9taWJfbW9kdWxlX2xpc3RfbG8vO3MvXChbXj1dXCkgICpcXC9cMS5sbyBcXC9nJyA8ICRtaWJfbW9kdWxlX2xpc3RfY29kZSAgPiAkbWliX21vZHVsZV9saXN0X2xvCiskU0VEICdzL15taWJfbW9kdWxlX2xpc3RfY29kZS9taWJfbW9kdWxlX2xpc3RfZnQvO3MvXChbXj1dXCkgICpcXC9cMS5mdCBcXC9nJyA8ICRtaWJfbW9kdWxlX2xpc3RfY29kZSAgPiAkbWliX21vZHVsZV9saXN0X2Z0CiAKICRTRUQgJ3MvXm1pYl9tb2R1bGVfbGlzdF9vL21pYmdyb3VwX2xpc3Rfby87c0BcKFteIAldKlwpXC5vQG1pYmdyb3VwL1wxLm9AZycgPCAkbWliX21vZHVsZV9saXN0X28gPiAkbWliZ3JvdXBfbGlzdF9vCiAkU0VEICdzL15taWJfbW9kdWxlX2xpc3RfbG8vbWliZ3JvdXBfbGlzdF9sby87c0BcKFteIAldKlwpXC5sb0BtaWJncm91cC9cMS5sb0BnJyA8ICRtaWJfbW9kdWxlX2xpc3RfbG8gPiAkbWliZ3JvdXBfbGlzdF9sbworJFNFRCAncy9ebWliX21vZHVsZV9saXN0X2Z0L21pYmdyb3VwX2xpc3RfZnQvO3NAXChbXiAJXSpcKVwuZnRAbWliZ3JvdXAvXDEuZnRAZycgPCAkbWliX21vZHVsZV9saXN0X2Z0ID4gJG1pYmdyb3VwX2xpc3RfZnQKIAogJFNFRCAncy9eYWdlbnRfbW9kdWxlX2xpc3RfY29kZS9hZ2VudF9tb2R1bGVfbGlzdF9vLztzL1woW149XVwpICAqXFwvXDEubyBcXC9nJyAgPCAkYWdlbnRfbW9kdWxlX2xpc3RfY29kZSAgPiAkYWdlbnRfbW9kdWxlX2xpc3RfbwogJFNFRCAncy9eYWdlbnRfbW9kdWxlX2xpc3RfY29kZS9hZ2VudF9tb2R1bGVfbGlzdF9jLztzL1woW149XVwpICAqXFwvXDEuYyBcXC9nJyAgPCAkYWdlbnRfbW9kdWxlX2xpc3RfY29kZSAgPiAkYWdlbnRfbW9kdWxlX2xpc3RfYwogJFNFRCAncy9eYWdlbnRfbW9kdWxlX2xpc3RfY29kZS9hZ2VudF9tb2R1bGVfbGlzdF9sby87cy9cKFtePV1cKSAgKlxcL1wxLmxvIFxcL2cnIDwgJGFnZW50X21vZHVsZV9saXN0X2NvZGUgID4gJGFnZW50X21vZHVsZV9saXN0X2xvCiskU0VEICdzL15hZ2VudF9tb2R1bGVfbGlzdF9jb2RlL2FnZW50X21vZHVsZV9saXN0X2Z0LztzL1woW149XVwpICAqXFwvXDEuZnQgXFwvZycgPCAkYWdlbnRfbW9kdWxlX2xpc3RfY29kZSAgPiAkYWdlbnRfbW9kdWxlX2xpc3RfZnQKIAogJFNFRCAncy9eYWdlbnRfbW9kdWxlX2xpc3Rfby9hZ2VudGdyb3VwX2xpc3Rfby87c0BcKFteIAldKlwpXC5vQG1pYmdyb3VwL1wxLm9AZycgPCAkYWdlbnRfbW9kdWxlX2xpc3RfbyA+ICRhZ2VudGdyb3VwX2xpc3RfbwogJFNFRCAncy9eYWdlbnRfbW9kdWxlX2xpc3RfbG8vYWdlbnRncm91cF9saXN0X2xvLztzQFwoW14gCV0qXClcLmxvQG1pYmdyb3VwL1wxLmxvQGcnIDwgJGFnZW50X21vZHVsZV9saXN0X2xvID4gJGFnZW50Z3JvdXBfbGlzdF9sbworJFNFRCAncy9eYWdlbnRfbW9kdWxlX2xpc3RfZnQvYWdlbnRncm91cF9saXN0X2Z0LztzQFwoW14gCV0qXClcLmZ0QG1pYmdyb3VwL1wxLmZ0QGcnIDwgJGFnZW50X21vZHVsZV9saXN0X2Z0ID4gJGFnZW50Z3JvdXBfbGlzdF9mdAogCi1mb3IgaSBpbiBtb2R1bGVfbGlzdF9vIG1vZHVsZV9saXN0X2MgbW9kdWxlX2xpc3RfbG8gbWliX21vZHVsZV9saXN0X28gbWliX21vZHVsZV9saXN0X2MgbWliX21vZHVsZV9saXN0X2xvIG1pYmdyb3VwX2xpc3RfbyBtaWJncm91cF9saXN0X2xvIGFnZW50X21vZHVsZV9saXN0X28gYWdlbnRfbW9kdWxlX2xpc3RfYyBhZ2VudF9tb2R1bGVfbGlzdF9sbyBhZ2VudGdyb3VwX2xpc3RfbyBhZ2VudGdyb3VwX2xpc3RfbG8gOyBkbworZm9yIGkgaW4gbW9kdWxlX2xpc3RfbyBtb2R1bGVfbGlzdF9jIG1vZHVsZV9saXN0X2xvIG1vZHVsZV9saXN0X2Z0IG1pYl9tb2R1bGVfbGlzdF9vIG1pYl9tb2R1bGVfbGlzdF9jIG1pYl9tb2R1bGVfbGlzdF9sbyBtaWJfbW9kdWxlX2xpc3RfZnQgbWliZ3JvdXBfbGlzdF9vIG1pYmdyb3VwX2xpc3RfbG8gbWliZ3JvdXBfbGlzdF9mdCBhZ2VudF9tb2R1bGVfbGlzdF9vIGFnZW50X21vZHVsZV9saXN0X2MgYWdlbnRfbW9kdWxlX2xpc3RfbG8gYWdlbnRfbW9kdWxlX2xpc3RfZnQgYWdlbnRncm91cF9saXN0X28gYWdlbnRncm91cF9saXN0X2xvIGFnZW50Z3JvdXBfbGlzdF9mdCA7IGRvCiAJIyBocHV4IG1ha2UgKGF0IGxlYXN0KSBkb2Vzbid0IGxpa2UgYSB0cmFpbGluZyBcIG9uIHRoZSBsYXN0CiAJIyBsaW5lIGV2ZW4gd2hlbiB0aGUgbmV4dCBsaW5lIGNvbnRhaW5zIG5vdGhpbmcgYnV0CiAJIyB3aGl0ZXNwYWNlLgpAQCAtNzI2LDE2ICs3NDAsMjEgQEAKIEFDX1NVQlNUX0ZJTEUobW9kdWxlX2xpc3RfYykKIEFDX1NVQlNUX0ZJTEUobW9kdWxlX2xpc3RfbykKIEFDX1NVQlNUX0ZJTEUobW9kdWxlX2xpc3RfbG8pCitBQ19TVUJTVF9GSUxFKG1vZHVsZV9saXN0X2Z0KQogQUNfU1VCU1RfRklMRShtaWJfbW9kdWxlX2xpc3RfYykKIEFDX1NVQlNUX0ZJTEUobWliX21vZHVsZV9saXN0X28pCiBBQ19TVUJTVF9GSUxFKG1pYl9tb2R1bGVfbGlzdF9sbykKK0FDX1NVQlNUX0ZJTEUobWliX21vZHVsZV9saXN0X2Z0KQogQUNfU1VCU1RfRklMRShhZ2VudF9tb2R1bGVfbGlzdF9jKQogQUNfU1VCU1RfRklMRShhZ2VudF9tb2R1bGVfbGlzdF9vKQogQUNfU1VCU1RfRklMRShhZ2VudF9tb2R1bGVfbGlzdF9sbykKK0FDX1NVQlNUX0ZJTEUoYWdlbnRfbW9kdWxlX2xpc3RfZnQpCiBBQ19TVUJTVF9GSUxFKG1pYmdyb3VwX2xpc3RfbykKIEFDX1NVQlNUX0ZJTEUobWliZ3JvdXBfbGlzdF9sbykKK0FDX1NVQlNUX0ZJTEUobWliZ3JvdXBfbGlzdF9mdCkKIEFDX1NVQlNUX0ZJTEUoYWdlbnRncm91cF9saXN0X28pCiBBQ19TVUJTVF9GSUxFKGFnZW50Z3JvdXBfbGlzdF9sbykKK0FDX1NVQlNUX0ZJTEUoYWdlbnRncm91cF9saXN0X2Z0KQogCiBBQ19TVUJTVChkZWZhdWx0X21pYnNfaW5zdGFsbCkKIEFDX1NVQlNUKGRsbGNsZWFucykKQEAgLTc2Niw4ICs3ODUsMTAgQEAKIGlmIHRlc3QgIngkTkVUU05NUF9ERUZBVUxUX01JQlMiID0gIngiOyB0aGVuCiAgIE5FVFNOTVBfREVGQVVMVF9NSUJTPSIkZGVmYXVsdF9taWJzIgogZmkKLWlmIHRlc3QgIngkUEFSVElBTFRBUkdFVE9TIiA9ICJ4bWluZ3czMiIgLW8gIngkUEFSVElBTFRBUkdFVE9TIiA9ICJ4bWluZ3czMm1zdmMiIC1vICJ4JFBBUlRJQUxUQVJHRVRPUyIgPSAieGN5Z3dpbiI7IHRoZW4KLSAgIyBtaW5ndzMyIGFuZCBjeWd3aW4gdXNlICc7JyBhcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgc2VwYXJhdG9yIGNoYXIKK2lmIHRlc3QgIngkRU5WX1NFUEFSQVRPUiIgIT0gIngiOyB0aGVuCisgIDoKK2VsaWYgdGVzdCAieCRQQVJUSUFMVEFSR0VUT1MiID0gInhtaW5ndzMyIiAtbyAieCRQQVJUSUFMVEFSR0VUT1MiID0gInhtaW5ndzMybXN2YyIgLW8gIngkUEFSVElBTFRBUkdFVE9TIiA9ICJ4Y3lnd2luIjsgdGhlbgorICAjIG1pbmd3MzIgYW5kIGN5Z3dpbiB1c2UgJzsnIGFzIHRoZSBkZWZhdWx0IGVudmlyb25tZW50IHZhcmlhYmxlIHNlcGFyYXRvcgogICBFTlZfU0VQQVJBVE9SPSI7IgogICBORVRTTk1QX0RFRkFVTFRfTUlCUz1gZWNobyAiJE5FVFNOTVBfREVGQVVMVF9NSUJTIiB8ICRTRUQgJ3MvOi87L2cnYAogICBkZWZhdWx0X21pYnM9YGVjaG8gIiRkZWZhdWx0X21pYnMiIHwgJFNFRCAncy86LzsvZydgCkBAIC03NzUsNiArNzk2LDEwIEBACiAgIEVOVl9TRVBBUkFUT1I9IjoiCiBmaQogQUNfU1VCU1QoRU5WX1NFUEFSQVRPUikKK0FDX0RFRklORV9VTlFVT1RFRChbRU5WX1NFUEFSQVRPUl0sIFsiJEVOVl9TRVBBUkFUT1IiXSwKKyAgICAgICAgIFtFbnZpcm9ubWVudCBzZXBhcmF0b3IgY2hhcmFjdGVyIHN1cnJvdW5kZWQgYnkgZG91YmxlIHF1b3Rlcy5dKQorQUNfREVGSU5FX1VOUVVPVEVEKFtFTlZfU0VQQVJBVE9SX0NIQVJdLCBbJyRFTlZfU0VQQVJBVE9SJ10sCisgICAgICAgICAgW0Vudmlyb25tZW50IHNlcGFyYXRvciBjaGFyYWN0ZXIgc3Vycm91bmRlZCBieSBzaW5nbGUgcXVvdGVzLl0pCiBBQ19ERUZJTkVfVU5RVU9URUQoTkVUU05NUF9ERUZBVUxUX01JQlMsIiRORVRTTk1QX0RFRkFVTFRfTUlCUyIpCiBBQ19TVUJTVChORVRTTk1QX0RFRkFVTFRfTUlCUykKIEFDX01TR19SRVNVTFQoJE5FVFNOTVBfREVGQVVMVF9NSUJTKQpkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliIGIvY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliCmluZGV4IDUyMDYzZjEuLjM2MmJhMGEgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYgorKysgYi9jb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIKQEAgLTI1LDEwICsyNSwxMiBAQAogIwogQUNfTVNHX0NIRUNLSU5HKFtmb3IgcGxhdGZvcm0tc3BlY2lmaWMgc291cmNlXSkKIG90aGVyX3NyY19saXN0PSIiCi1vdGhlcl9vYmpzX2xpc3Q9IiIKK290aGVyX2Z0b2Jqc19saXN0PSIiCiBvdGhlcl9sb2Jqc19saXN0PSIiCitvdGhlcl9vYmpzX2xpc3Q9IiIKIG90aGVyX2FnZW50b2Jqcz0iIgogb3RoZXJfbGFnZW50b2Jqcz0iIgorb3RoZXJfZnRhZ2VudG9ianM9IiIKIG90aGVyX3RyYXBkX29iamVjdHM9IiIKIAogIyBXaW4zMiBzZXJ2aWNlIGNvZGUKQEAgLTM2LDggKzM4LDEwIEBACiAgIG90aGVyX3NyY19saXN0PSIkb3RoZXJfc3JjX2xpc3Qgd2luc2VydmljZS5jIHdpbnNlcnZpY2VyYy5yYyIKICAgb3RoZXJfb2Jqc19saXN0PSIkb3RoZXJfb2Jqc19saXN0IHdpbnNlcnZpY2UubyB3aW5zZXJ2aWNlcmMubyIKICAgb3RoZXJfbG9ianNfbGlzdD0iJG90aGVyX2xvYmpzX2xpc3Qgd2luc2VydmljZS5sbyB3aW5zZXJ2aWNlcmMubG8iCisgIG90aGVyX2Z0b2Jqc19saXN0PSIkb3RoZXJfZnRvYmpzX2xpc3Qgd2luc2VydmljZS5mdCB3aW5zZXJ2aWNlcmMuZnQiCiAgIG90aGVyX2FnZW50b2Jqcz0iLi4vc25tcGxpYi93aW5zZXJ2aWNlcmMubyIKICAgb3RoZXJfbGFnZW50b2Jqcz0iLi4vc25tcGxpYi93aW5zZXJ2aWNlcmMubG8iCisgIG90aGVyX2Z0YWdlbnRvYmpzPSIuLi9zbm1wbGliL3dpbnNlcnZpY2VyYy5sbyIKICAgb3RoZXJfdHJhcGRfb2JqZWN0cz0iLi4vc25tcGxpYi93aW5zZXJ2aWNlcmMubyIgCiBmaQogICAKQEAgLTQ2LDEzICs1MCwxNiBAQAogICBvdGhlcl9zcmNfbGlzdD0iJG90aGVyX3NyY19saXN0IHdpbnBpcGUuYyIKICAgb3RoZXJfb2Jqc19saXN0PSIkb3RoZXJfb2Jqc19saXN0IHdpbnBpcGUubyIKICAgb3RoZXJfbG9ianNfbGlzdD0iJG90aGVyX2xvYmpzX2xpc3Qgd2lucGlwZS5sbyIKKyAgb3RoZXJfZnRvYmpzX2xpc3Q9IiRvdGhlcl9mdG9ianNfbGlzdCB3aW5waXBlLmZ0IgogZmkKIAogQUNfU1VCU1Qob3RoZXJfc3JjX2xpc3QpCiBBQ19TVUJTVChvdGhlcl9vYmpzX2xpc3QpCiBBQ19TVUJTVChvdGhlcl9sb2Jqc19saXN0KQorQUNfU1VCU1Qob3RoZXJfZnRvYmpzX2xpc3QpCiBBQ19TVUJTVChvdGhlcl9hZ2VudG9ianMpCiBBQ19TVUJTVChvdGhlcl9sYWdlbnRvYmpzKQorQUNfU1VCU1Qob3RoZXJfZnRhZ2VudG9ianMpCiBBQ19TVUJTVChvdGhlcl90cmFwZF9vYmplY3RzKQogCiBBQ19NU0dfUkVTVUxUKFskb3RoZXJfc3JjX2xpc3QgJG90aGVyX29ianNfbGlzdCAkb3RoZXJfbG9ianNfbGlzdF0pCkBAIC05Niw2ICsxMDMsNyBAQAogQUNfU1VCU1QodHJhbnNwb3J0X3NyY19saXN0KQogQUNfU1VCU1QodHJhbnNwb3J0X29ial9saXN0KQogQUNfU1VCU1QodHJhbnNwb3J0X2xvYmpfbGlzdCkKK0FDX1NVQlNUKHRyYW5zcG9ydF9mdG9ial9saXN0KQogZm9yIGkgaW4gJHRyYW5zcG9ydF9kZWZfbGlzdDsgZG8KICAgQUNfREVGSU5FX1VOUVVPVEVEKCRpKQogZG9uZQpAQCAtMTE1LDYgKzEyMyw3IEBACiBBQ19TVUJTVChzZWN1cml0eV9oZHJfbGlzdCkKIEFDX1NVQlNUKHNlY3VyaXR5X29ial9saXN0KSAJIAogQUNfU1VCU1Qoc2VjdXJpdHlfbG9ial9saXN0KQorQUNfU1VCU1Qoc2VjdXJpdHlfZnRvYmpfbGlzdCkKIEFDX01TR19SRVNVTFQoJG5ld193aXRoX3NlY3VyaXR5KQogQUNfTVNHX0NBQ0hFX0FERChTTk1QdjMgU2VjdXJpdHkgTW9kdWxlczogICAgJG5ld193aXRoX3NlY3VyaXR5KQogCmRpZmYgLS1naXQgYS9jb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19zZWN1cml0eV9tb2R1bGVzIGIvY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfc2VjdXJpdHlfbW9kdWxlcwppbmRleCAxYjVkMTI1Li44MjNjYTdkIDEwMDY0NAotLS0gYS9jb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19zZWN1cml0eV9tb2R1bGVzCisrKyBiL2NvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3NlY3VyaXR5X21vZHVsZXMKQEAgLTEsMzEgKzEsNDYgQEAKICMgLSotIHNoIC0qLQogc2VjdXJpdHlfZGVmX2xpc3Q9InVzbSIKIHNlY3VyaXR5X3NyY19saXN0PSIiCi1zZWN1cml0eV9vYmpfbGlzdD0iIiAJIAorc2VjdXJpdHlfb2JqX2xpc3Q9IiIKIHNlY3VyaXR5X2xvYmpfbGlzdD0iIgotaWYgdGVzdCAieCRzZWN1cml0eV9pbml0X2ZpbGUiID0gIngiIDsgdGhlbgotICAgIHNlY3VyaXR5X2luaXRfZmlsZT0ic25tcGxpYi9zbm1wc21faW5pdC5oIgotZmkKLWlmIHRlc3QgIngkc2VjdXJpdHlfaW5jbF9maWxlIiA9ICJ4IiA7IHRoZW4KLSAgICBzZWN1cml0eV9pbmNsX2ZpbGU9ImluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaCIKLWZpCi1uZXdfd2l0aF9zZWN1cml0eT1gZWNobyAkd2l0aF9zZWN1cml0eV9tb2R1bGVzIHwgJFNFRCAncy8sLyAvZzsnYAotbmV3X3dpdGhfb3V0X3NlY3VyaXR5PWBlY2hvICR3aXRoX291dF9zZWN1cml0eV9tb2R1bGVzIHwgJFNFRCAncy8sLyAvZzsnYAorc2VjdXJpdHlfZnRvYmpfbGlzdD0iIgorc2VjdXJpdHlfbW9kX2xpc3Q9IiAiCiAKLWVjaG8gIi8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBjb25maWd1cmUuICBEbyBub3QgbW9kaWZ5IGJ5IGhhbmQuICovIiA+ICRzZWN1cml0eV9pbml0X2ZpbGUKLWVjaG8gIi8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBjb25maWd1cmUuICBEbyBub3QgbW9kaWZ5IGJ5IGhhbmQuICovIiA+ICRzZWN1cml0eV9pbmNsX2ZpbGUKK25ld193aXRoX3NlY3VyaXR5PQorbmV3X3dpdGhfb3V0X3NlY3VyaXR5PWBlY2hvICR3aXRoX291dF9zZWN1cml0eV9tb2R1bGVzIHwgdHIgLCAnICdgCiAKLWZvciBpIGluICRzZWN1cml0eV9kZWZfbGlzdDsgZG8KKyMgQXNzaWduIGFkZGl0aW9uYWwgc2VjdXJpdHkgbW9kdWxlcworZm9yIGkgaW4gYGVjaG8gJHdpdGhfc2VjdXJpdHlfbW9kdWxlcyB8IHRyICwgJyAnYDsgZG8KICAgaWYgZWNobyAiICRuZXdfd2l0aF9vdXRfc2VjdXJpdHkgIiB8ICRHUkVQICIgJGkgIiA+IC9kZXYvbnVsbDsgdGhlbgotICAgIGlmIHRlc3QgIngkaSIgPSAieHVzbSI7IHRoZW4KLQllY2hvCi0gICAgICAgIEFDX01TR19FUlJPUihUaGUgVVNNIHNlY3VyaXR5IG1vZHVsZSBpcyBtYW5kYXRvcnkpCi0gICAgZmkKKyAgICBlY2hvCisgICAgQUNfTVNHX0VSUk9SKFtzZWN1cml0eSBtb2R1bGUgY29uZmxpY3QgLSAkaSBib3RoIGluY2x1ZGVkIGFuZCBleGNsdWRlZF0pCisgIGVsaWYgZWNobyAiICRuZXdfd2l0aF9zZWN1cml0eSAiIHwgJEdSRVAgIiAkaSAiID4gL2Rldi9udWxsIDsgdGhlbgorICAgIDogIyBEb3VibGUgZGVmaW5lLCBpZ25vcmUKICAgZWxzZQogICAgIG5ld193aXRoX3NlY3VyaXR5PSIkbmV3X3dpdGhfc2VjdXJpdHkgJGkiCiAgIGZpCiBkb25lCiAKKyMgQWRkIGRlZmF1bHQgc2VjdXJpdHkgbW9kdWxlcworZm9yIGkgaW4gJHNlY3VyaXR5X2RlZl9saXN0OyBkbworICBpZiBlY2hvICIgJG5ld193aXRoX291dF9zZWN1cml0eSAiIHwgJEdSRVAgIiAkaSAiID4gL2Rldi9udWxsOyB0aGVuCisgICAgOiAjIEV4Y2x1ZGVkLCBpZ25vcmUKKyAgZWxpZiBlY2hvICIgJG5ld193aXRoX3NlY3VyaXR5ICIgfCAkR1JFUCAiICRpICIgPiAvZGV2L251bGwgOyB0aGVuCisgICAgOiAjIERvdWJsZSBkZWZpbmUsIGlnbm9yZQorICBlbHNlCisgICAgbmV3X3dpdGhfc2VjdXJpdHk9IiRuZXdfd2l0aF9zZWN1cml0eSAkaSIKKyAgZmkKK2RvbmUKKworIyBHZW5lcmF0ZSBvdXRwdXQgZmlsZXMKKzogJHtzZWN1cml0eV9pbml0X2ZpbGU6PSdzbm1wbGliL3NubXBzbV9pbml0LmgnfQorOiAke3NlY3VyaXR5X3NodXRkb3duX2ZpbGU6PSdzbm1wbGliL3NubXBzbV9zaHV0ZG93bi5oJ30KKzogJHtzZWN1cml0eV9pbmNsX2ZpbGU6PSdpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgnfQorCitlY2hvICIvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgY29uZmlndXJlLiAgRG8gbm90IG1vZGlmeSBieSBoYW5kLiAqLyIgPiAkc2VjdXJpdHlfaW5pdF9maWxlCitlY2hvICIvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgY29uZmlndXJlLiAgRG8gbm90IG1vZGlmeSBieSBoYW5kLiAqLyIgPiAkc2VjdXJpdHlfc2h1dGRvd25fZmlsZQorZWNobyAiLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4gIERvIG5vdCBtb2RpZnkgYnkgaGFuZC4gKi8iID4gJHNlY3VyaXR5X2luY2xfZmlsZQorCiBmb3IgaSBpbiAkbmV3X3dpdGhfc2VjdXJpdHk7IGRvCiAgIGNmaWxlPSJzbm1wIiRpIi5jIgogICBoZmlsZT0ic25tcCIkaSIuaCIKQEAgLTM5LDEzICs1NCwxNyBAQAogICBmaQogCiAgICMgZGVmaW5lIGEgYnVuY2ggb2Ygc3R1ZmYgdG8gZW5hYmxlIGl0CisgIHNlY3VyaXR5X21vZF9saXN0PSIke3NlY3VyaXR5X21vZF9saXN0fSAkaSIKKyAgc2VjdXJpdHlfc3JjX2xpc3Q9IiRzZWN1cml0eV9zcmNfbGlzdCAkY2ZpbGUiCiAgIHNlY3VyaXR5X3NyY19saXN0PSIkc2VjdXJpdHlfc3JjX2xpc3QgJGNmaWxlIgogICBzZWN1cml0eV9oZHJfbGlzdD0iJHNlY3VyaXR5X2hkcl9saXN0ICRoZmlsZSIKLSAgc2VjdXJpdHlfb2JqX2xpc3Q9IiRzZWN1cml0eV9vYmpfbGlzdCBzbm1wIiRpIi5vIiAJIAorICBzZWN1cml0eV9vYmpfbGlzdD0iJHNlY3VyaXR5X29ial9saXN0IHNubXAiJGkiLm8iCiAgIHNlY3VyaXR5X2xvYmpfbGlzdD0iJHNlY3VyaXR5X2xvYmpfbGlzdCBzbm1wIiRpIi5sbyIKLSAgZGVmX25hbWU9Ik5FVFNOTVBfU0VDTU9EXyJgZWNobyAkaSB8IHRyICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJ2AKKyAgc2VjdXJpdHlfZnRvYmpfbGlzdD0iJHNlY3VyaXR5X2Z0b2JqX2xpc3Qgc25tcCIkaSIuZnQiCiAgIGVjaG8gImluaXRfIiRpIigpOyIgPj4gJHNlY3VyaXR5X2luaXRfZmlsZQorICBlY2hvICJzaHV0ZG93bl8iJGkiKCk7IiA+PiAkc2VjdXJpdHlfc2h1dGRvd25fZmlsZQogICBlY2hvICIjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS8kaGZpbGU+IiA+PiAkc2VjdXJpdHlfaW5jbF9maWxlCisgIGRlZl9uYW1lPSJBU19UUl9DUFAoW05FVFNOTVBfU0VDTU9EXyRpXSkiCiAgIEFDX0RFRklORV9VTlFVT1RFRCgkZGVmX25hbWUpCiBkb25lCiAKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3RyYW5zcG9ydHMgYi9jb25maWd1cmUuZC9jb25maWdfbW9kdWxlc190cmFuc3BvcnRzCmluZGV4IGFhMjcxNDYuLmIxMGI5NjAgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3RyYW5zcG9ydHMKKysrIGIvY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfdHJhbnNwb3J0cwpAQCAtNjksMTQgKzY5LDE1IEBACiAgICAgICAjIGJ1aWxkIGEgcHNldWRvIGluY2x1ZGUgaGVhZGVyIHRoYXQgaW5jbHVkZXMgY3VycmVudCBjb25maWcgYW5kCiAgICAgICAjIHN5c3RlbSBzeW1ib2xzOgogICAgICAgcm0gLWYgY29uZnRlc3QuJGFjX2V4dCBtb2R1bGVfdG1wX2hlYWRlci5oCi0gICAgICBBQ19MQU5HX0NPTkZURVNUKEFDX0xBTkdfU09VUkNFKFtbCisgICAgICBBQ19MQU5HX0NPTkZURVNUKFtBQ19MQU5HX1NPVVJDRShbWwogI2luY2x1ZGUgTkVUU05NUF9TWVNURU1fSU5DTFVERV9GSUxFCisjdW5kZWYgTkVUU05NUF9NSU5JTUFMX0NPREUKICNkZWZpbmUgTkVUX1NOTVBfQ09ORklHX0gKICN1bmRlZiBjb25maWdfcmVxdWlyZQogI2RlZmluZSBjb25maWdfcmVxdWlyZShmb28pIGNvbmZpZ19jaGVja2l0X3JlcXVpcmUoZm9vKQogI3VuZGVmIGNvbmZpZ19lcnJvcgogI2RlZmluZSBjb25maWdfZXJyb3IoZm9vKSBjb25maWdfY2hlY2tpdF9lcnJvcihmb28pCi0jaW5jbHVkZSAiJHJlbF90cmFuc3BvcnRfaGRyIl1dKSkKKyNpbmNsdWRlICIkcmVsX3RyYW5zcG9ydF9oZHIiXV0pXSkKICAgICAgIG12IGNvbmZ0ZXN0LiRhY19leHQgbW9kdWxlX3RtcF9oZWFkZXIuaAogCiAgICAgICAjCkBAIC0xMTcsNiArMTE4LDcgQEAKIGRvbmUgIyB3aGlsZSBuZXcgdHJhbnNwb3J0cyBleGlzdAogdHJhbnNwb3J0X29ial9saXN0PWBlY2hvICIgJHRyYW5zcG9ydF9zcmNfbGlzdCAiIHwgJFNFRCAncy9cLmMvXC5vL2cnYAogdHJhbnNwb3J0X2xvYmpfbGlzdD1gZWNobyAiICR0cmFuc3BvcnRfc3JjX2xpc3QgIiB8ICRTRUQgJ3MvXC5jL1wubG8vZydgCit0cmFuc3BvcnRfZnRvYmpfbGlzdD1gZWNobyAiICR0cmFuc3BvcnRfc3JjX2xpc3QgIiB8ICRTRUQgJ3MvXC5jL1wuZnQvZydgCiBmb3IgaSBpbiAkdHJfaW5pdF9saXN0IDsgZG8KICAgIGVjaG8gIiRpKCk7IiA+PiAkY3Rvcl9oZWFkZXIKIGRvbmUKQEAgLTEyNiw2ICsxMjgsNyBAQAogICBpZiBlY2hvICIkdHJhbnNwb3J0X2RlZl9saXN0IiB8ICRHUkVQICJJUFY2IiA+L2Rldi9udWxsOyB0aGVuCiAgICAgdHJhbnNwb3J0X29ial9saXN0PSIkdHJhbnNwb3J0X29ial9saXN0IGluZXRfbnRvcC5vIGluZXRfcHRvbi5vIgogICAgIHRyYW5zcG9ydF9sb2JqX2xpc3Q9IiR0cmFuc3BvcnRfbG9ial9saXN0IGluZXRfbnRvcC5sbyBpbmV0X3B0b24ubG8iCisgICAgdHJhbnNwb3J0X2Z0b2JqX2xpc3Q9IiR0cmFuc3BvcnRfZnRvYmpfbGlzdCBpbmV0X250b3AuZnQgaW5ldF9wdG9uLmZ0IgogICBmaQogZmkKIApkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucyBiL2NvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMKaW5kZXggNTdkNzg1NC4uM2M1Mzg1YiAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucworKysgYi9jb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zCkBAIC0zMSw3ICszMSw4IEBACiAgICAgICAgICAgICAgICBbc2lnbmFsICAgICAgICAgIHNpZ3NldCAgICAgICAgICAgICAgICAgIF0gKQogCiAjICBMaWJyYXJ5OgotQUNfQ0hFQ0tfRlVOQ1MoW2Nsb3NlZGlyICAgICAgICBmb3JrICAgICAgICAgICAgZ2V0aXBub2RlYnluYW1lICBdIGRubAorQUNfQ0hFQ0tfRlVOQ1MoW2Nsb3NlZGlyICAgICAgICBmZ2V0Y191bmxvY2tlZCAgZmxvY2tmaWxlICAgICAgICBdIGRubAorICAgICAgICAgICAgICAgW2ZvcmsgICAgICAgICAgICBmdW5sb2NrZmlsZSAgICAgZ2V0aXBub2RlYnluYW1lICBdIGRubAogICAgICAgICAgICAgICAgW2dldHRpbWVvZmRheSAgICBpZl9uYW1ldG9pbmRleCAgbWtzdGVtcCAgICAgICAgICBdIGRubAogICAgICAgICAgICAgICAgW29wZW5kaXIgICAgICAgICByZWFkZGlyICAgICAgICAgcmVnY29tcCAgICAgICAgICBdIGRubAogICAgICAgICAgICAgICAgW3NldGVudiAgICAgICAgICBzZXRpdGltZXIgICAgICAgc2V0bG9jYWxlICAgICAgICBdIGRubApAQCAtNjIsNiArNjMsMTIgQEAKICAgICBdLCBbIF0pCiAKICAgICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFsjaW5jbHVkZSA8d2luc29jazIuaD5dLAorICAgIFsgZ2V0aG9zdGJ5YWRkcihOVUxMKTsgXSldLAorICAgIFsgYWNfY3ZfZnVuY19nZXRob3N0YWRkcj15ZXMKKyAgICAgIEFTX0VDSE8gIiNkZWZpbmUgSEFWRV9HRVRIT1NUQllBRERSIDEiID4+Y29uZmRlZnMuaAorICAgIF0sIFsgXSkKKworICAgIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oWyNpbmNsdWRlIDx3aW5zb2NrMi5oPl0sCiAgICAgWyBnZXRob3N0bmFtZShOVUxMLCAwKTsgXSldLAogICAgIFsgYWNfY3ZfZnVuY19nZXRob3N0bmFtZT15ZXMKICAgICAgIEFTX0VDSE8gIiNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxIiA+PmNvbmZkZWZzLmgKQEAgLTY5LDcgKzc2LDcgQEAKICAgICA7OwogCiAgICopCi0gICAgQUNfQ0hFQ0tfRlVOQ1MoW2dhaV9zdHJlcnJvciBnZXRhZGRyaW5mbyBnZXRob3N0YnluYW1lIGdldGhvc3RieW5hbWUyIGdldGhvc3RuYW1lXSkKKyAgICBBQ19DSEVDS19GVU5DUyhbZ2FpX3N0cmVycm9yIGdldGFkZHJpbmZvIGdldGhvc3RieW5hbWUgZ2V0aG9zdGJ5bmFtZTIgZ2V0aG9zdG5hbWUgZ2V0aG9zdGJ5YWRkcl0pCiAgICAgOzsKIGVzYWMKIApAQCAtMTY3LDExICsxNzQsMTEgQEAKICAgICAgICAgICAgICAgIFtuZXRzbm1wX2N2X19mdW5jX19uYW1lXSxbCiAgICAgbmV0c25tcF9jdl9fZnVuY19fbmFtZT1ubwogICAgIEFDX0NPTVBJTEVfSUZFTFNFKAotICAgICAgICBBQ19MQU5HX1BST0dSQU0oLFtbY29uc3QgY2hhciogY3AgPSBfX2Z1bmNfXztdXSksCisgICAgICAgIFtBQ19MQU5HX1BST0dSQU0oLFtbY29uc3QgY2hhciogY3AgPSBfX2Z1bmNfXztdXSldLAogICAgICAgICBbbmV0c25tcF9jdl9fZnVuY19fbmFtZT1fX2Z1bmNfX10pCiAgICAgaWYgdGVzdCAiJG5ldHNubXBfY3ZfX2Z1bmNfX25hbWUiID0gbm8gOyB0aGVuCiAgICAgICBBQ19DT01QSUxFX0lGRUxTRSgKLSAgICAgICAgQUNfTEFOR19QUk9HUkFNKCxbW2NvbnN0IGNoYXIqIGNwID0gX19GVU5DVElPTl9fO11dKSwKKyAgICAgICAgW0FDX0xBTkdfUFJPR1JBTSgsW1tjb25zdCBjaGFyKiBjcCA9IF9fRlVOQ1RJT05fXztdXSldLAogICAgICAgICBbbmV0c25tcF9jdl9fZnVuY19fbmFtZT1fX0ZVTkNUSU9OX19dKQogICAgIGZpXSkKIGlmIHRlc3QgIiRuZXRzbm1wX2N2X19mdW5jX19uYW1lIiAhPSBubzsgdGhlbgpAQCAtMTg0LDE0ICsxOTEsMTQgQEAKICMKIEFDX0NBQ0hFX0NIRUNLKFtbd2hldGhlciBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucyBhcmUgYnJva2VuIChVbml4d2FyZSldXSwKICAgICAgICAgICAgICAgICBbbmV0c25tcF9jdl9jX2Jyb2tlbl9pbmxpbmVdLAotICAgIEFDX0NPTVBJTEVfSUZFTFNFKFtbCisgICAgQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFsKIHN0YXRpYyBpbmxpbmUgaW50IG5lc3RlZF9pbmxpbmVfZnVuY3Rpb24odm9pZCkgewogICByZXR1cm4gMDsKIH0KIGlubGluZSBpbnQgbWFpbl9pbmxpbmVfZnVuY3Rpb24oIHZvaWQgKSB7CiAgIHJldHVybiBuZXN0ZWRfaW5saW5lX2Z1bmN0aW9uKCk7CiB9Ci0gICAgXV0sCisgICAgXSldLAogICAgIG5ldHNubXBfY3ZfYnJva2VuX2lubGluZT1ubywKICAgICBuZXRzbm1wX2N2X2Jyb2tlbl9pbmxpbmU9eWVzKSkKIApkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMgYi9jb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycwppbmRleCAxOWIyN2ZjLi43MDhhYTA5IDEwMDY0NAotLS0gYS9jb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycworKysgYi9jb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycwpAQCAtNTUsNiArNTUsNyBAQAogICAgICAgICAgICAgICAgICBbaW9jdGxzLmggICBrc3RhdC5oICAgIGt2bS5oICAgICAgbGltaXRzLmggICAgIF0gZG5sCiAgICAgICAgICAgICAgICAgIFsgICAgICAgICAgIG1udGVudC5oICAgbXRhYi5oICAgICAgICAgICAgICAgICAgXSBkbmwKICAgICAgICAgICAgICAgICAgWyAgICAgICAgICAgcGtnbG9jcy5oICAgICAgICAgICAgIHB3ZC5oICAgICAgICBdIGRubAorICAgICAgICAgICAgICAgICBbICAgICAgICAgICBjb21fZXJyLmggICAgICAgICAgICAgZXQvY29tX2Vyci5oIF0gZG5sCiAgICAgICAgICAgICAgICAgIFsgICAgICAgICAgIHV0bXB4LmggICAgdXRzbmFtZS5oICAgICAgICAgICAgICAgXSkKIAogQUNfQ0hFQ0tfSEVBREVSUyhbc3lzL2Rpc2tpby5oICBzeXMvZGtpby5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSBkbmwKQEAgLTkwLDYgKzkxLDggQEAKICAgICAgICAgICAgICAgICAgW3BjaS9wY2kuaCAgICAgICAgICAgICAgICAgICAgICAgIF0pCiAKIAorIyBWYWxncmluZAorQUNfQ0hFQ0tfSEVBREVSUyhbdmFsZ3JpbmQvdmFsZ3JpbmQuaCB2YWxncmluZC9tZW1jaGVjay5oXSkKICMgT3BlblNTTAogQUNfQ0hFQ0tfSEVBREVSUyhbb3BlbnNzbC9hZXMuaCBdKSAgICAgIyAgKENvcmUpCiBBQ19DSEVDS19IRUFERVJTKFtvcGVuc3NsL2RoLmggIF0pICAgICAjICAoQXBwcykKQEAgLTM4OCwxOCArMzkxLDIxIEBACiAjaWYgSEFWRV9TWVNfU09DS0VUX0gKICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CiAjZW5kaWYKKyNpZiBIQVZFX05FVF9JRl9ICisjaW5jbHVkZSA8bmV0L2lmLmg+CisjZW5kaWYKKyNpZiBIQVZFX05FVF9JRl9WQVJfSAorI2luY2x1ZGUgPG5ldC9pZl92YXIuaD4KKyNlbmRpZgorI2lmIEhBVkVfTkVUX1JPVVRFX0gKKyNpbmNsdWRlIDxuZXQvcm91dGUuaD4KKyNlbmRpZgogI2lmIEhBVkVfTkVUSU5FVF9JTl9ICiAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgogI2VuZGlmCiAjaWYgSEFWRV9ORVRJTkVUX0lQNl9ICiAjaW5jbHVkZSA8bmV0aW5ldC9pcDYuaD4KICNlbmRpZgotI2lmIEhBVkVfTkVUX0lGX0gKLSNpbmNsdWRlIDxuZXQvaWYuaD4KLSNlbmRpZgotI2lmIEhBVkVfTkVUX1JPVVRFX0gKLSNpbmNsdWRlIDxuZXQvcm91dGUuaD4KLSNlbmRpZgogICAgIF1dKQogCiAjICAgICAgIHJlcXVpcmluZyA8bmV0aW5ldC9pbi5oPiAgICAgICAgICAgICAgICAgICAgICAgIChPcGVuQlNEIDIuNikKQEAgLTQ2Nyw2ICs0NzMsMjcgQEAKICAgICBORVRTTk1QX1NFQVJDSF9MSUJTKHBrZ2luZm8sIGFkbSwKICAgICAgICAgQUNfREVGSU5FKEhBVkVfUEtHSU5GTywgMSwgW2RlZmluZSBpZiB5b3UgaGF2ZSBwa2dpbmZvXSksLCxMTUlCTElCUykpCiAKK0FDX0NIRUNLX0hFQURFUlMocGtnLmgsCisgICAgTkVUU05NUF9TRUFSQ0hfTElCUyhwa2dfaW5pdCwgcGtnLAorICAgICAgICBBQ19ERUZJTkUoSEFWRV9MSUJQS0csIDEsIFtkZWZpbmUgaWYgeW91IGhhdmUgQlNEIHBrZy1uZ10pKSkKKworaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3BrZ19oID0gbm8KK3RoZW4KKyAgICB1bnNldCBhY19jdl9oZWFkZXJfcGtnX2gKKyAgICBuZXRzbm1wX3NhdmVfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKKyAgICBuZXRzbm1wX3NhdmVfTERGTEFHUz0iJExERkxBR1MiCisgICAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtSS91c3IvbG9jYWwvaW5jbHVkZSIKKyAgICBMREZMQUdTPSIkTERGTEFHUyAtTC91c3IvbG9jYWwvbGliIgorICAgIEFDX0NIRUNLX0hFQURFUlMocGtnLmgsCisgICAgICAgIE5FVFNOTVBfU0VBUkNIX0xJQlMocGtnX2luaXQsIHBrZywKKwkgICAgQUNfREVGSU5FKEhBVkVfTElCUEtHLCAxLCBbZGVmaW5lIGlmIHlvdSBoYXZlIEJTRCBwa2ctbmddKSkpCisgICAgaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3BrZ19oID0gbm8KKyAgICB0aGVuCisgICAgICAgIENQUEZMQUdTPSIkbmV0c25tcF9zYXZlX0NQUEZMQUdTIgorICAgICAgICBMREZMQUdTPSIkbmV0c25tcF9zYXZlX0xERkxBR1MiCisgICAgZmkKK2ZpCisKIGNhc2UgJHRhcmdldF9vcyBpbgogICAgIGFpeCopCiAgICAgICAgICMgICAgICAgZm9yIENQVS9tZW1vcnkgc3RhdGlzdGljcyAgICAgICAgICAgICAgIChBSVgpCkBAIC01MTgsNCArNTQ1LDQ0IEBACiAjCiBBQ19DSEVDS19IRUFERVJTKFtzZW5zb3JzL3NlbnNvcnMuaCBwaWNsLmhdKQogCisjIyAgVGhpcyBpcyBoZXJlIHRvIGF2b2lkIGxvYWRzIG9mIHJlZGVmaW5pdGlvbiB3YXJuaW5ncyBkdXJpbmcKKyMjICBtb2R1bGUgY29uZmlndXJhdGlvbgorCisjIworIyAgIHJ0ZW50cnkgc3RydWN0dXJlIGNoZWNrczoKKyMjCisKKyMgQ2hlY2sgc3RydWN0IHJ0ZW50cnkgZm9yIGNvbW1vbiBmaWVsZHMKKyMgICBBZ2VudDoKKyMKK0FDX0NIRUNLX01FTUJFUlMoW3N0cnVjdCBydGVudHJ5LnJ0X2RzdCwKKyAgICAgICAgICAgICAgICAgIHN0cnVjdCBydGVudHJ5LnJ0X2hhc2gsCisgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcnRlbnRyeS5ydF9uZXh0LAorICAgICAgICAgICAgICAgICAgc3RydWN0IHJ0ZW50cnkucnRfcmVmY250LAorICAgICAgICAgICAgICAgICAgc3RydWN0IHJ0ZW50cnkucnRfdW5pdCwKKyAgICAgICAgICAgICAgICAgIHN0cnVjdCBydGVudHJ5LnJ0X3VzZV0sLCwKKyAgICBbCisjaWZkZWYgSEFWRV9TWVNfUEFSQU1fSAorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2VuZGlmCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaWZkZWYgTkVUU05NUF9JRk5FVF9ORUVEU19LRVJORUxfU1RSVUNUVVJFUworI2RlZmluZSBfS0VSTkVMX1NUUlVDVFVSRVMgMQorI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfU09DS0VUX0gKKyNpZmRlZiBORVRTTk1QX0lGTkVUX05FRURTX0tFUk5FTAorI2RlZmluZSBLRVJORUwKKyNpZiAhZGVmaW5lZChfX0RyYWdvbkZseV9fKQorI2RlZmluZSBfS0VSTkVMIDEKKyNlbmRpZgorI2VuZGlmCisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI3VuZGVmIEtFUk5FTAorI3VuZGVmIF9LRVJORUwKKyNlbmRpZgorI2lmZGVmIEhBVkVfTkVUX1JPVVRFX0gKKyNpbmNsdWRlIDxuZXQvcm91dGUuaD4KKyNlbmRpZgorICAgIF0pCisKIGZpICMgTkVUU05NUF9RVUlDS19DSEVDSwpkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyIGIvY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyCmluZGV4IDM0MTQ2NzguLjQ3NDkxZTIgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMgorKysgYi9jb25maWd1cmUuZC9jb25maWdfb3NfbGliczIKQEAgLTg2LDYgKzg2LDggQEAKICAgQUNfU0VBUkNIX0xJQlMoc29ja2V0LCBzb2NrZXQsLEFDX01TR19FUlJPUihbc29ja2V0KDIpIG5vdCBmb3VuZC5dKSkKICAgQUNfU0VBUkNIX0xJQlMoZ2V0aG9zdGJ5bmFtZSwgW25zbCBzb2NrZXRdKQogICBBQ19DSEVDS19GVU5DUyhnZXRob3N0YnluYW1lKQorICBBQ19TRUFSQ0hfTElCUyhnZXRob3N0YnlhZGRyLCBbbnNsIHNvY2tldF0pCisgIEFDX0NIRUNLX0ZVTkNTKGdldGhvc3RieWFkZHIpCiAgIDs7CiBlc2FjCiAKQEAgLTE1Niw2ICsxNTgsMTYgQEAKICAgICAgICAgTE5FVFNOTVBMSUJTKQogCiAKKyMKKyMgICBsaWJydAorIworCitORVRTTk1QX1NFQVJDSF9MSUJTKGNsb2NrX2dldHRpbWUsIHJ0LAorICAgICAgICBBQ19ERUZJTkUoSEFWRV9DTE9DS19HRVRUSU1FLCAxLAorICAgICAgICAgICAgICAgIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNsb2NrX2dldHRpbWUnIGxpYnJhcnldKSwsLAorICAgICAgICBMTkVUU05NUExJQlMpCisKKwogIyMKICMgICBNSUItbW9kdWxlLXNwZWNpZmljIGNoZWNrcwogIyMKQEAgLTE3NSw2ICsxODcsMTIgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZpbmUgaWYgeW91IGhhdmUgZGV2c3RhdF9nZXRkZXZzKCldKSwsLExNSUJMSUJTKQogZmkKIAorIyAgIGxpYnBjaQorIyAgICAgICAgKGZvciBpZi1taWIgZGVzY3JpcHRpb24pCisjCitORVRTTk1QX1NFQVJDSF9MSUJTKHBjaV9sb29rdXBfbmFtZSwgcGNpLAorCUFDX0RFRklORShIQVZFX1BDSV9MT09LVVBfTkFNRSwgMSwKKwkJW2RlZmluZSBpZiB5b3UgaGF2ZSBwY2lfbG9va3VwX25hbWUoKV0pLCwsTE1JQkxJQlMpCiAKICMgICBMTS1TRU5TT1JTLU1JQiBzdXBwb3J0CiAjCkBAIC0zMTAsNiArMzI4LDE3IEBACiAgICAgICAgIEFDX0RFRklORShIQVZFX0xJQlBLQ1MxMSkKICAgICAgICAgTElCUEtDUzExPSItbHBrY3MxMSIpCiBmaQoraWYgdGVzdCAieCRUTFNQUk9HIiA9ICJ4eWVzIjsgdGhlbgorICAgQUNfQ0hFQ0tfREVDTChbRVZQX3NoYTIyNF0sCisgICAgQUNfREVGSU5FKFtIQVZFX0VWUF9TSEEyMjRdLCBbXSwgW0RlZmluZSBpZiB5b3UgaGF2ZSBFVlBfc2hhMjI0LzI1NiBpbiBvcGVuc3NsXSksCisgICAgOiAsCisgICAgW1sjaW5jbHVkZSA8b3BlbnNzbC9ldnAuaD5dXSkKKyAgIEFDX0NIRUNLX0RFQ0woW0VWUF9zaGEzODRdLAorICAgIEFDX0RFRklORShbSEFWRV9FVlBfU0hBMzg0XSwgW10sIFtEZWZpbmUgaWYgeW91IGhhdmUgRVZQX3NoYTM4NC8yNTYgaW4gb3BlbnNzbF0pLAorICAgIDogLAorICAgIFtbI2luY2x1ZGUgPG9wZW5zc2wvZXZwLmg+XV0pCitmaQorCiBMSUJTPSROT05BR0VOVExJQlMJICMgcmVzdG9yZSBvbGQgbGlicmFyaWVzCiBpZiB0ZXN0ICJ4JFNTSFBST0ciID0gInh5ZXMiOyB0aGVuCiAgICAgTkVUU05NUF9CVUlMRF9TU0hfUFJPR19UUlVFPScnCkBAIC0zMTgsMTcgKzM0Nyw0MCBAQAogICAgIE5FVFNOTVBfQlVJTERfU1NIX1BST0dfVFJVRT0nIycKICAgICBORVRTTk1QX0JVSUxEX1NTSF9QUk9HX0ZBTFNFPScnCiBmaQotaWYgdGVzdCAieCRUTFNQUk9HIiA9ICJ4eWVzIjsgdGhlbgoraWYgdGVzdCAieCRUTFNQUk9HIiA9ICJ4eWVzIiAtYSAieCRlbmFibGVfcmVhZF9vbmx5IiAhPSAieHllcyIgOyB0aGVuCiAgICAgTkVUU05NUF9CVUlMRF9UTFNfUFJPR19UUlVFPScnCiAgICAgTkVUU05NUF9CVUlMRF9UTFNfUFJPR19GQUxTRT0nIycKIGVsc2UKICAgICBORVRTTk1QX0JVSUxEX1RMU19QUk9HX1RSVUU9JyMnCiAgICAgTkVUU05NUF9CVUlMRF9UTFNfUFJPR19GQUxTRT0nJwogZmkKK2lmIGVjaG8gIiAke3NlY3VyaXR5X21vZF9saXN0fSAiIHwgZ3JlcCAnIHVzbSAnIDsgdGhlbgorICAgIGlmIHRlc3QgIngkZW5hYmxlX3JlYWRfb25seSIgIT0gInh5ZXMiIDsgdGhlbgorICAgIAlORVRTTk1QX0JVSUxEX1VTTV9QUk9HX1RSVUU9JycKKyAgICAJTkVUU05NUF9CVUlMRF9VU01fUFJPR19GQUxTRT0nIycKKyAgICBlbHNlCisgICAgCU5FVFNOTVBfQlVJTERfVVNNX1BST0dfVFJVRT0nIycKKyAgICAJTkVUU05NUF9CVUlMRF9VU01fUFJPR19GQUxTRT0nJworICAgIGZpCitlbHNlCisgICAgTkVUU05NUF9CVUlMRF9VU01fUFJPR19UUlVFPScjJworICAgIE5FVFNOTVBfQlVJTERfVVNNX1BST0dfRkFMU0U9JycKK2ZpCitpZiB0ZXN0ICJ4JGVuYWJsZV9yZWFkX29ubHkiICE9ICJ4eWVzIiA7IHRoZW4KKyAgICBORVRTTk1QX0JVSUxEX1NFVF9QUk9HX1RSVUU9IiIKKyAgICBORVRTTk1QX0JVSUxEX1NFVF9QUk9HX0ZBTFNFPSIjIgorZWxzZQorICAgIE5FVFNOTVBfQlVJTERfU0VUX1BST0dfVFJVRT0iIyIKKyAgICBORVRTTk1QX0JVSUxEX1NFVF9QUk9HX0ZBTFNFPSIiCitmaQogQUNfU1VCU1QoTkVUU05NUF9CVUlMRF9TU0hfUFJPR19UUlVFKQogQUNfU1VCU1QoTkVUU05NUF9CVUlMRF9TU0hfUFJPR19GQUxTRSkKIEFDX1NVQlNUKE5FVFNOTVBfQlVJTERfVExTX1BST0dfVFJVRSkKIEFDX1NVQlNUKE5FVFNOTVBfQlVJTERfVExTX1BST0dfRkFMU0UpCitBQ19TVUJTVChORVRTTk1QX0JVSUxEX1VTTV9QUk9HX1RSVUUpCitBQ19TVUJTVChORVRTTk1QX0JVSUxEX1VTTV9QUk9HX0ZBTFNFKQorQUNfU1VCU1QoTkVUU05NUF9CVUlMRF9TRVRfUFJPR19UUlVFKQorQUNfU1VCU1QoTkVUU05NUF9CVUlMRF9TRVRfUFJPR19GQUxTRSkKIAogIwogIyBJZiB3ZSdyZSB1c2luZyBpbnRlcm5hbCBjcnlwdG8gc3VwcG9ydCB3ZSBuZWVkIHRvIGNvbXBpbGUgaW4gZXh0cmEgZmlsZXMKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiBiL2NvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMgppbmRleCBkOTAwMzZkLi5lMmE4ZmY1IDEwMDY0NAotLS0gYS9jb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIKKysrIGIvY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyCkBAIC05NiwzICs5Niw0NyBAQAogaWYgdGVzdCAieCRhbGxfd2FybmluZ3MiICE9ICJ4IjsgdGhlbgogICAgIEFDX01TR19DQUNIRV9BREQoV0FSTklORzogJGFsbF93YXJuaW5ncykKIGZpCisKKyMKKyMgQ2hlY2sgd2hldGhlciB1c2VyIHdhbnRzIEROU1NFQyBsb2NhbCB2YWxpZGF0aW9uIHN1cHBvcnQKKyMKK19saWJzPSR7TElCU30KK2lmICEgdGVzdCAieC0kd2FudF9kbnNzZWMiID0gIngtbm8iIDsgdGhlbgorICAgIEFDX0NIRUNLX0hFQURFUlMoW3ZhbGlkYXRvci92YWxpZGF0b3ItY29uZmlnLmhdKQorICAgIGlmIHRlc3QgIiRhY19jdl9oZWFkZXJfdmFsaWRhdG9yX3ZhbGlkYXRvcl9jb25maWdfaCIgIT0geWVzOyB0aGVuCisgICAgICAgIEFDX01TR19FUlJPUihDYW4ndCBmaW5kIHZhbGlkYXRvci5oKQorICAgIGZpCisgICAgaWYgdGVzdCAieCRhY19jdl9saWJfY3J5cHRvX0VWUF9tZDUiICE9ICJ4eWVzIiAtYSBcCisgICAgICAgICAgICAieCRhY19jdl9saWJfZWF5MzJfRVZQX21kNSIgIT0gInh5ZXMiIC1vIFwKKyAgICAgICAgICAgICJ4JGFjX2N2X2hlYWRlcl9vcGVuc3NsX2htYWNfaCIgIT0gInh5ZXMiOyB0aGVuCisgICAgICAgIEFDX01TR19FUlJPUihDb3VsZG4ndCBmaW5kIE9wZW5TU0wgZm9yIGxvY2FsIEROU1NFQyB2YWxpZGF0aW9uIHN1cHBvcnQuKQorICAgIGZpCisgICAgTElCUz0iJExJQlMgJExJQkNSWVBUTyIKKyAgICBBQ19DSEVDS19MSUIoc3JlcywgcXVlcnlfc2VuZCwsQUNfTVNHX0VSUk9SKFtDYW4ndCBmaW5kIGxpYnNyZXNdKSkKKyAgICBWQUxfTElCUz0iLWxzcmVzICRMSUJDUllQVE8iCisgICAgTElCUz0iJExJQlMgLWxzcmVzIgorICAgIEFDX0NIRUNLX0xJQih2YWwsIHBfdmFsX3N0YXR1cywKKyAgICAgICAgICAgICAgICAgTElCUz0iJExJQlMgLWx2YWwiCisgICAgICAgICAgICAgICAgIFZBTF9MSUJTPSIkVkFMX0xJQlMgLWx2YWwiCisgICAgICAgICAgICAgICAgIGhhdmVfdmFsX3Jlc19xdWVyeT15ZXMsCisgICAgICAgICAgICAgICAgIFsgQUNfQ0hFQ0tfTElCKHB0aHJlYWQsIHB0aHJlYWRfcndsb2NrX2luaXQpCisJCSAgIEFDX0NIRUNLX0xJQih2YWwtdGhyZWFkcywgcF92YWxfc3RhdHVzLAorICAgICAgICAgICAgICAgICAgIGhhdmVfdmFsX3Jlc19xdWVyeT15ZXMKKyAgICAgICAgICAgICAgICAgICBMSUJTPSItbHZhbC10aHJlYWRzICRMSUJTIgorICAgICAgICAgICAgICAgICAgIFZBTF9MSUJTPSItbHZhbC10aHJlYWRzIC1scHRocmVhZCAkVkFMX0xJQlMiCisgICAgICAgICAgICAgICAgICAgTElCVkFMX1NVRkZJWD0iLXRocmVhZHMiLAorICAgICAgICAgICAgICAgICAgIEFDX01TR19FUlJPUihDYW4ndCBmaW5kIGxpYnZhbCBvciBsaWJ2YWwtdGhyZWFkcykpCisgICAgICAgICAgICAgICAgIF0pCisgICAgQUNfREVGSU5FKEROU1NFQ19MT0NBTF9WQUxJREFUSU9OLCAxLAorICAgICAgICAgICAgICBbRGVmaW5lIGlmIHlvdSB3YW50IGxvY2FsIEROU1NFQyB2YWxpZGF0aW9uIHN1cHBvcnRdKQorICAgIEROU1NFQz0iZW5hYmxlZCIKK2Vsc2UKKyAgICBETlNTRUM9ImRpc2FibGVkIgorZmkKKworTElCUz0ke19saWJzfQorCitBQ19TVUJTVChWQUxfTElCUykKK0FDX01TR19DQUNIRV9BREQoTG9jYWwgRE5TU0VDIHZhbGlkYXRpb246ICAgICRETlNTRUMpCisKKyAKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNCBiL2NvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNAppbmRleCA3M2Y4MDg3Li5jYzhiYWQyIDEwMDY0NAotLS0gYS9jb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQKKysrIGIvY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0CkBAIC00OSw2ICs0OSwyMyBAQAogQUNfREVGSU5FX1VOUVVPVEVEKEtFUk5FTF9MT0MsIiRhY19jdl9LRVJORUxfTE9DIiwgW2xvY2F0aW9uIG9mIFVOSVgga2VybmVsXSkKIAogCisjICAgICAgIC9kZXYva21lbSBleGlzdGVuY2UKKyMJICAgIHVzZWQgaW4gYWdlbnQgb25seQorIworQUNfQ0FDSEVfQ0hFQ0soW2ZvciAvZGV2L2ttZW1dLAorICAgIGFjX2N2X0hBVkVfS01FTSwKKyAgIFtpZiB0ZXN0ICRDREVWX1RFU1RfRkxBRyAvZGV2L2ttZW07IHRoZW4KKyAgICAgICAgYWNfY3ZfSEFWRV9LTUVNPSIvZGV2L2ttZW0iCisgICAgZmkKK10pCisjCisjICBOb3RlIHRoYXQgaXQncyBPSyBpZiB0aGlzIGRldmljZSBpcyBub3QgZm91bmQKKyMKK2lmIHRlc3QgIngkYWNfY3ZfSEFWRV9LTUVNIiA9ICJ4L2Rldi9rbWVtIjsgdGhlbgorICAgIEFDX0RFRklORV9VTlFVT1RFRChIQVZFX0tNRU0sIiRhY19jdl9IQVZFX0tNRU0iLCBbRGVmaW5lIGlmIHlvdSBoYXZlIC9kZXYva21lbV0pCitmaQorCisKICMgICAgICAgU3dhcCBkZXZpY2UgTG9jYXRpb24KICMgICAgICAgICAgICgvZGV2L2RtZW0gb3IgL2Rldi9kcnVtKQogIwkgICAgdXNlZCBpbiBhZ2VudCBvbmx5CkBAIC0yMTEsMzkgKzIyOCw2IEBACiAgIEFDX0RFRklORShORVRTTk1QX0NBTl9VU0VfU1lTQ1RMLCAxLCBbc3lzY3RsIHdvcmtzIHRvIGdldCBib290dGltZSwgZXRjLi4uXSkKIGZpCiAKLSMgICBDaGVjayBGcmVlQlNEJ3Mga2VybmVsIE9JRCBrZXJuLmNwX3RpbWVzIGV4aXN0YW5jZQotIwotIyAgICAgICAgIHVzZWQgaW4gYWdlbnQgb25seSAKLSMKLWlmIHRlc3QgJGNyb3NzX2NvbXBpbGluZyA9IHllczsgdGhlbgotICAgIEFDX01TR19XQVJOKFtDYW4ndCBjaGVjayBlaXRoZXIgc3lzY3RsIGtlcm4uY3BfdGltZXMsIG1hbnVhbGx5IGRlZmluZSBIQVZFX0tFUk5fQ1BfVElNRVMgaWYgcGxhdGZvcm0gc3VwcG9ydCBhdmFpbGFibGVdKQotZWxzZQotICAgIEFDX0NBQ0hFX0NIRUNLKFtpZiBzeXNjdGwgcHJvdmlkZXMga2Vybi5jcF90aW1lcyBrZXJuZWwgaW5mb3JtYXRpb25dLAotICAgICAgICBhY19jdl9IQVZFX0tFUk5fQ1BfVElNRVMsCi0gICAgICAgW0FDX1RSWV9SVU4oWwotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLQotbWFpbiAoKSB7Ci0KLSAgc2l6ZV90ICAgICAgICAgICAgICBjcF90aW1lc19zaXplOwotICBzaXplX3QgICAgICAgICAgICAgIG5jcHVfc2l6ZTsKLQotICBpZiAoc3lzY3RsYnluYW1lKCJrZXJuLmNwX3RpbWVzIiwgTlVMTCwgJmNwX3RpbWVzX3NpemUsIE5VTEwsIDApKQotICAgIGV4aXQoMSk7Ci0gIGVsc2UKLSAgICBleGl0KDApOwotfQotICAgICAgICBdLAotICAgICAgICBhY19jdl9IQVZFX0tFUk5fQ1BfVElNRVM9eWVzLAotICAgICAgICBhY19jdl9IQVZFX0tFUk5fQ1BfVElNRVM9bm8sCi0gICAgICAgIGFjX2N2X0hBVkVfS0VSTl9DUF9USU1FUz1ubyldKQotZmkKLQotaWYgdGVzdCAieCRhY19jdl9IQVZFX0tFUk5fQ1BfVElNRVMiID0gInh5ZXMiOyB0aGVuCi0gIEFDX0RFRklORShIQVZFX0tFUk5fQ1BfVElNRVMsIDEsIFtrZXJuLmNwX3RpbWVzIGRpc3BsYXlzIG11bHRpIGNwdSBsb2FkIG9uIEZyZWVCU0QuLi5dKQotZmkKIAogIyAgIENoZWNrIHdoZXRoZXIgVENQIHRpbWVyIGNvbnN0YW50cyBhcmUgaW5kZWVkIGNvbnN0YW50CiAjICAgICAgIG9yIGRlcGVuZCBvbiB0aGUga2VybmVsIGNsb2NrIHRpY2sgJ2h6Jy4gICAgICAgIChGcmVlQlNEIDQueCkKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncyBiL2NvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncwppbmRleCBhNjA3MTRlLi4xNjAxMzRjIDEwMDY0NAotLS0gYS9jb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MKKysrIGIvY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzCkBAIC00MDEsMTIgKzQwMSwxMiBAQAogCWZpCiAJOzsKIAotICAgIGRhcndpbjgqfGRhcndpbjkqfGRhcndpbjEwKikKKyAgICBkYXJ3aW44KnxkYXJ3aW45KnxkYXJ3aW4xMCp8ZGFyd2luMTEqfGRhcndpbjEyKnxkYXJ3aW4xMyopCiAgICAgICAgICMgICBGbGF0IE5hbWVzcGFjZSBsaW5raW5nICAgICAgICAgICAgICAgICAgICAgIChNYWMgT1MvWCkKICAgICAgICAgIwogICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgZGFyd2luIGxkIG1pZ2h0IG5lZWQgLWZsYXRfbmFtZXNwYWNlXSkKIAlpZiB0ZXN0IC16ICIkTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUIjsgdGhlbgotCQlMREZMQUdTPSItZmxhdF9uYW1lc3BhY2UgJExERkxBR1MiCisJCUxERkxBR1M9Ii1mbGF0X25hbWVzcGFjZSAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29yZVNlcnZpY2VzIC1mcmFtZXdvcmsgRGlza0FyYml0cmF0aW9uIC1mcmFtZXdvcmsgSU9LaXQgJExERkxBR1MiCiAJCUFDX01TR19SRVNVTFQoW3llc10pCiAJZWxzZQogCQlBQ19NU0dfUkVTVUxUKFtub10pCmRpZmYgLS1naXQgYS9jb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMgYi9jb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMKaW5kZXggMmY0MDhmNi4uN2Y2YjJjMCAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzCisrKyBiL2NvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycwpAQCAtMzMsNyArMzMsNiBAQAogI2VuZGlmCiAgICAgXV0pCiAKLQogIyAgICAgICBzdHJ1Y3QgZGVzX2tzX3N0cnVjdAogIyAgICAgICAgICgnd2Vha19rZXknIGluZGljYXRlcyBvbGRlciB2ZXJzaW9uIG9mIE9wZW5TU0wpCiAjICAgTGlicmFyeToKQEAgLTkyLDYgKzkxLDIwIEBACiAjaW5jbHVkZSA8bmV0aW5ldC9pcF92YXIuaD4KICNlbmRpZgogICAgIF1dKQorIyAgICAgICBzdHJ1Y3QgaXA2c3RhdAorIyAgIEFnZW50OgorIworQUNfQ0hFQ0tfTUVNQkVSUyhbc3RydWN0IGlwNnN0YXQuaXA2c19leHRoZHJ0b29sb25nIF0sLCxbCisgICAgQUNfSU5DTFVERVNfREVGQVVMVCgpCisgICAgWworI2lmIEhBVkVfTkVUSU5FVF9JTl9ICisjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorI2VuZGlmCisjaWYgSEFWRV9ORVRJTkVUNl9JUDZfVkFSX0gKKyNpbmNsdWRlIDxuZXRpbmV0Ni9pcDZfdmFyLmg+CisjZW5kaWYKKyAgICBdXSkKKwogIwogIyAgIE5vdC1Vc2VkOgogQUNfQ0hFQ0tfTUVNQkVSUyhbc3RydWN0IGlwc3RhdC5pcHNfY2FudGZvcndhcmQsCkBAIC0zNTcsNiArMzcwLDcgQEAKICAgICAgICAgICAgICAgICAgIHN0cnVjdCB1ZHBzdGF0LnVkcHNfZnVsbHNvY2ssCiAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdWRwc3RhdC51ZHBzX25vcG9ydCwKICAgICAgICAgICAgICAgICAgIHN0cnVjdCB1ZHBzdGF0LnVkcHNfbm9wb3J0YmNhc3QsCisgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdWRwc3RhdC51ZHBzX2lwYWNrZXRzLAogICAgICAgICAgICAgICAgICAgc3RydWN0IHVkcHN0YXQudWRwc19vcGFja2V0c10sLCxbCiAgICAgQUNfSU5DTFVERVNfREVGQVVMVCgpCiAgICAgWwpAQCAtMzg2LDcgKzQwMCw3IEBACiAgICAgICAgIFthY19jdl9JRk5FVF9ORUVEU19LRVJORUxdLAogICAgICAgICBbYWNfY3ZfSUZORVRfTkVFRFNfS0VSTkVMPXVua25vd24KICAgICAgICAgIEFDX0NPTVBJTEVfSUZFTFNFKAotICAgICAgICAgICAgIEFDX0xBTkdfUFJPR1JBTShbCisgICAgICAgICAgICAgW0FDX0xBTkdfUFJPR1JBTShbCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaWZkZWYgSEFWRV9TWVNfUEFSQU1fSAogI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgpAQCAtNDAwLDExICs0MTQsMTEgQEAKICNpZmRlZiBIQVZFX05FVF9JRl9WQVJfSAogI2luY2x1ZGUgPG5ldC9pZl92YXIuaD4KICNlbmRpZgotICAgICAgICAgICAgIF0sIFtbc3RydWN0IGlmbmV0IHRlc3Q7IHRlc3QuaWZfbXR1ID0gMDtdXSksCisgICAgICAgICAgICAgXSwgW1tzdHJ1Y3QgaWZuZXQgdGVzdDsgdGVzdC5pZl9tdHUgPSAwO11dKV0sCiAgICAgICAgICAgICAgW2FjX2N2X0lGTkVUX05FRURTX0tFUk5FTD1ub10pCiAgICAgICAgICBpZiB0ZXN0ICIkYWNfY3ZfSUZORVRfTkVFRFNfS0VSTkVMIiA9IHVua25vd24gOyB0aGVuCiAgICAgICAgICBBQ19DT01QSUxFX0lGRUxTRSgKLSAgICAgICAgICAgICBBQ19MQU5HX1BST0dSQU0oWworICAgICAgICAgICAgIFtBQ19MQU5HX1BST0dSQU0oWwogI2RlZmluZSBfS0VSTkVMIDEKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpZmRlZiBIQVZFX1NZU19QQVJBTV9ICkBAIC00MTksNyArNDMzLDcgQEAKICNpZmRlZiBIQVZFX05FVF9JRl9WQVJfSAogI2luY2x1ZGUgPG5ldC9pZl92YXIuaD4KICNlbmRpZgotICAgICAgICAgICAgIF0sIFtbc3RydWN0IGlmbmV0IHRlc3Q7IHRlc3QuaWZfbXR1ID0gMDtdXSksCisgICAgICAgICAgICAgXSwgW1tzdHJ1Y3QgaWZuZXQgdGVzdDsgdGVzdC5pZl9tdHUgPSAwO11dKV0sCiAgICAgICAgICAgICAgW2FjX2N2X0lGTkVUX05FRURTX0tFUk5FTD15ZXNdKQogICAgICAgICAgZmldKQogCkBAIC01OTMsNDQgKzYwNyw2IEBACiAgICAgXV0pCiAKIAotIyMKLSMgICBydGVudHJ5IHN0cnVjdHVyZSBjaGVja3M6Ci0jIwotCi0jIENoZWNrIHN0cnVjdCBydGVudHJ5IGZvciBjb21tb24gZmllbGRzCi0jICAgQWdlbnQ6Ci0jCi1BQ19DSEVDS19NRU1CRVJTKFtzdHJ1Y3QgcnRlbnRyeS5ydF9kc3QsCi0gICAgICAgICAgICAgICAgICBzdHJ1Y3QgcnRlbnRyeS5ydF9oYXNoLAotICAgICAgICAgICAgICAgICAgc3RydWN0IHJ0ZW50cnkucnRfbmV4dCwKLSAgICAgICAgICAgICAgICAgIHN0cnVjdCBydGVudHJ5LnJ0X3JlZmNudCwKLSAgICAgICAgICAgICAgICAgIHN0cnVjdCBydGVudHJ5LnJ0X3VuaXQsCi0gICAgICAgICAgICAgICAgICBzdHJ1Y3QgcnRlbnRyeS5ydF91c2VdLCwsCi0gICAgWwotI2lmZGVmIEhBVkVfU1lTX1BBUkFNX0gKLSNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KLSNlbmRpZgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2lmZGVmIE5FVFNOTVBfSUZORVRfTkVFRFNfS0VSTkVMX1NUUlVDVFVSRVMKLSNkZWZpbmUgX0tFUk5FTF9TVFJVQ1RVUkVTIDEKLSNlbmRpZgotI2lmZGVmIEhBVkVfU1lTX1NPQ0tFVF9ICi0jaWZkZWYgTkVUU05NUF9JRk5FVF9ORUVEU19LRVJORUwKLSNkZWZpbmUgS0VSTkVMCi0jaWYgIWRlZmluZWQoX19EcmFnb25GbHlfXykKLSNkZWZpbmUgX0tFUk5FTCAxCi0jZW5kaWYKLSNlbmRpZgotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSN1bmRlZiBLRVJORUwKLSN1bmRlZiBfS0VSTkVMCi0jZW5kaWYKLSNpZmRlZiBIQVZFX05FVF9ST1VURV9ICi0jaW5jbHVkZSA8bmV0L3JvdXRlLmg+Ci0jZW5kaWYKLSAgICBdKQotCi0KICMgQ2hlY2sgZm9yIEJTRCA0LjMgdnMgNC40IHN0cnVjdCBydGVudHJ5CiAjCiBBQ19DQUNIRV9DSEVDSyhbdHlwZSBvZiBydGVudHJ5IHN0cnVjdHVyZV0sCmRpZmYgLS1naXQgYS9jb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbiBiL2NvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uCmluZGV4IDc5OGM1Y2UuLjIzZjhjN2UgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uCisrKyBiL2NvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uCkBAIC0yNzYsNiArMjc2LDcgQEAKICAgICAgICAgW0RlZmluZSBpZiB5b3UgYXJlIGVtYmVkZGluZyBwZXJsIGluIHRoZSBtYWluIGFnZW50Ll0pCiAgICAgICBPVEhFUkFHRU5UTElCT0JKUz0ic25tcF9wZXJsLm8iCiAgICAgICBPVEhFUkFHRU5UTElCTE9CSlM9InNubXBfcGVybC5sbyIKKyAgICAgIE9USEVSQUdFTlRMSUJMRlRTPSJzbm1wX3BlcmwuZnQiCiAKICAgICAgIEVNQkVEUEVSTElOU1RBTEw9ImVtYmVkcGVybGluc3RhbGwiCiAgICAgICBFTUJFRFBFUkxVTklOU1RBTEw9ImVtYmVkcGVybHVuaW5zdGFsbCIKQEAgLTMxNCwxMSArMzE1LDEzIEBACiBQRVJMVEFSR1M9IiIKIFBFUkxJTlNUQUxMVEFSR1M9IiIKIFBFUkxVTklOU1RBTExUQVJHUz0iIgorUEVSTEZFQVRVUkVTPSIiCiBBQ19NU0dfQ0hFQ0tJTkcoW2lmIHdlIGNhbiBpbnN0YWxsIHRoZSBQZXJsIG1vZHVsZXNdKQogaWYgdGVzdCAieCRpbnN0YWxsX3BlcmwiID0gInh5ZXMiIDsgdGhlbgogICAgIFBFUkxUQVJHUz0icGVybG1vZHVsZXMiCiAgICAgUEVSTElOU1RBTExUQVJHUz0icGVybGluc3RhbGwiCiAgICAgUEVSTFVOSU5TVEFMTFRBUkdTPSJwZXJsdW5pbnN0YWxsIgorICAgIFBFUkxGRUFUVVJFUz0icGVybGZlYXR1cmVzIgogICAgIGlmIHRlc3QgIngkZW1iZWRfcGVybCIgPSAieHllcyIgOyB0aGVuCiAgICAgICBBQ19NU0dfQ0FDSEVfQUREKFNOTVAgUGVybCBtb2R1bGVzOiAgICAgICAgICBidWlsZGluZyAtLSBlbWJlZGRhYmxlKQogICAgICAgQUNfTVNHX1JFU1VMVChbeWVzIC0tIGFuZCBlbWJlZGRhYmxlXSkKQEAgLTMzNCw2ICszMzcsNyBAQAogQUNfU1VCU1QoUEVSTElOU1RBTExUQVJHUykKIEFDX1NVQlNUKFBFUkxVTklOU1RBTExUQVJHUykKIEFDX1NVQlNUKFBFUkxBUkdTKQorQUNfU1VCU1QoUEVSTEZFQVRVUkVTKQogCiAKICMgICAgICAgUmVzZXQgTElCUyB0byBwcmUtbGlid3JhcCB2YWx1ZSAgICg/Pz8pCkBAIC0zNTEsMTIgKzM1NSwxNCBAQAogUFlUSE9OSU5TVEFMTFRBUkdTPSIiCiBQWVRIT05VTklOU1RBTExUQVJHUz0iIgogUFlUSE9OQ0xFQU5UQVJHUz0iIgorUFlUSE9ORkVBVFVSRVM9IiIKIEFDX01TR19DSEVDS0lORyhbaWYgd2Ugc2hvdWxkIGluc3RhbGwgdGhlIHB5dGhvbiBiaW5kaW5nc10pCiBpZiB0ZXN0ICJ4JGluc3RhbGxfcHl0aG9uIiA9ICJ4eWVzIiA7IHRoZW4KICAgICBQWVRIT05UQVJHUz0icHl0aG9ubW9kdWxlcyIKICAgICBQWVRIT05JTlNUQUxMVEFSR1M9InB5dGhvbmluc3RhbGwiCiAgICAgUFlUSE9OVU5JTlNUQUxMVEFSR1M9InB5dGhvbnVuaW5zdGFsbCIKICAgICBQWVRIT05DTEVBTlRBUkdTPSJweXRob25jbGVhbiIKKyAgICBQWVRIT05GRUFUVVJFUz0icHl0aG9uZmVhdHVyZXMiCiAgICAgQUNfTVNHX0NBQ0hFX0FERChTTk1QIFB5dGhvbiBtb2R1bGVzOiAgICAgICAgYnVpbGRpbmcgZm9yICRQWVRIT05QUk9HKQogICAgIEFDX01TR19SRVNVTFQoW3llc10pCiBlbHNlCkBAIC0zNjgsNSArMzc0LDYgQEAKIEFDX1NVQlNUKFBZVEhPTlVOSU5TVEFMTFRBUkdTKQogQUNfU1VCU1QoUFlUSE9OQ0xFQU5UQVJHUykKIEFDX1NVQlNUKFBZVEhPTkFSR1MpCitBQ19TVUJTVChQWVRIT05GRUFUVVJFUykKIAogCmRpZmYgLS1naXQgYS9jb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSBiL2NvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlCmluZGV4IDA2OWNjMDcuLjYxYmEwMjYgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlCisrKyBiL2NvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlCkBAIC05Myw3ICs5MywxMiBAQAogICAgIGVsaWYgdGVzdCAieCR3aXRodmFsIiA9ICJ4bm8iOyB0aGVuCiAgICAgICB0cnlvcGVuc3NsPW5vCiAgICAgZWxpZiB0ZXN0IC1kICIkd2l0aHZhbCI7IHRoZW4KLSAgICAgIEFDX0FERF9TRUFSQ0hfUEFUSCgkd2l0aHZhbCkKKyAgICAgIGlmIHRlc3QgLWQgIiR3aXRodmFsL2xpYi9NaW5HVyI7IHRoZW4KKyAgICAgICAgTERGTEFHUz0iLUwkd2l0aHZhbC9saWIvTWluR1cgJExERkxBR1MiCisgICAgICAgIENQUEZMQUdTPSItSSR3aXRodmFsL2luY2x1ZGUgJENQUEZMQUdTIgorICAgICAgZWxzZQorICAgICAgICBBQ19BRERfU0VBUkNIX1BBVEgoJHdpdGh2YWwpCisgICAgICBmaQogICAgICAgdHJ5b3BlbnNzbD15ZXMKICAgICAgIGFza2Vkb3BlbnNzbD15ZXMKICAgICBmaSwKQEAgLTE0MCw2ICsxNDUsMTMgQEAKICAgICAgIGtyYjVwYXRoPS91c3Iva2VyYmVyb3MKIGZpCiAKK0FDX0FSR19XSVRIKGRuc3NlYy1sb2NhbC12YWxpZGF0aW9uLAorICAgICAgICBbICAtLXdpdGgtZG5zc2VjLWxvY2FsLXZhbGlkYXRpb24gRW5hYmxlIGxvY2FsIEROU1NFQyB2YWxpZGF0aW9uIHVzaW5nIGxpYnZhbCAobm8pXSwgd2FudF9kbnNzZWM9JHdpdGh2YWwsIHdhbnRfZG5zc2VjPW5vKQorQUNfQVJHX0VOQUJMRShbZG5zc2VjLWxvY2FsLXZhbGlkYXRpb25dLCwKKyAgICAgICAgICAgICAgTkVUU05NUF9JTlZBTElEX1dJVEgoW2Ruc3NlYy1sb2NhbC12YWxpZGF0aW9uXSkpCitBQ19BUkdfV0lUSChbZG5zc2VjXSwsTkVUU05NUF9JTlZBTElEX1dJVEgoW2Ruc3NlYy1sb2NhbC12YWxpZGF0aW9uXSkpCitBQ19BUkdfRU5BQkxFKFtkbnNzZWNdLCxORVRTTk1QX0lOVkFMSURfV0lUSChbZG5zc2VjLWxvY2FsLXZhbGlkYXRpb25dKSkKKwogTkVUU05NUF9BUkdfV0lUSChycG0sCiBbICAtLXdpdGhvdXQtcnBtICAgICAgICAgICAgICAgICAgIERvbid0IGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIFJQTSBwYWNrYWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuYWdlbWVudCBzeXN0ZW0gd2hlbiBidWlsZGluZyB0aGUgaG9zdCBNSUIKQEAgLTE2OCw4ICsxODAsMTQgQEAKIEFDX1NVQlNUKElOU1RBTExfUFJFRklYKQogCiAKLSMgICAKKyMKICMgICBTdWJzeXN0ZW1zIHRvIGJ1aWxkOgorIyAgICAgICBMaWJyYXJ5CisjCitGRUFUVVJFSEVBREVSUz0ibGlicmFyeS9mZWF0dXJlcy5oIgorRlRNQUlOU1VCUz0iIgorCisjCiAjICAgICAgIEFnZW50CiAjCiBORVRTTk1QX0FSR19FTkFCTEUoYWdlbnQsCkBAIC0xNzcsNiArMTk1LDggQEAKIGlmIHRlc3QgIngkZW5hYmxlX2FnZW50IiAhPSAieG5vIjsgdGhlbgogICAgU05NUEQ9J3NubXBkJChFWEVFWFQpJwogICAgTUFJTlNVQlM9IiRNQUlOU1VCUyBhZ2VudCIKKyAgIEZFQVRVUkVIRUFERVJTPSIkRkVBVFVSRUhFQURFUlMgYWdlbnQvZmVhdHVyZXMtbWliZ3JvdXBzLmggYWdlbnQvZmVhdHVyZXMuaCIKKyAgIEZUTUFJTlNVQlM9ImFnZW50ICRGVE1BSU5TVUJTIgogICAgVFJBUExJQlM9JyQoVFJBUERXSVRIQUdFTlQpJwogICAgVVNFVFJBUExJQlM9JyQoVVNFQUdFTlRMSUJTKScKIGVsc2UKQEAgLTE4OCw3ICsyMDgsOSBAQAogICAgI1VTRVRSQVBMSUJTPSckKFVTRUxJQlMpJwogICAgVFJBUExJQlM9JyQoVFJBUERXSVRIQUdFTlQpJwogICAgVVNFVFJBUExJQlM9JyQoVVNFQUdFTlRMSUJTKScKKyAgIEFDX0RFRklORShbTkVUU05NUF9ESVNBQkxFX0FHRU5UXSwgMSwgW0RlZmluZSBpZiBubyBhZ2VudCBpcyBidWlsdF0pCiBmaQorCiBBQ19TVUJTVChTTk1QRCkKIEFDX1NVQlNUKFRSQVBMSUJTKQogQUNfU1VCU1QoVVNFVFJBUExJQlMpCkBAIC0xOTksNiArMjIxLDEwIEBACiBbICAtLWRpc2FibGUtYXBwbGljYXRpb25zICAgICAgICAgIERvIG5vdCBidWlsZCB0aGUgYXBwcyAoc25tcGdldCwgLi4uKS5dKQogaWYgdGVzdCAieCRlbmFibGVfYXBwbGljYXRpb25zIiAhPSAieG5vIjsgdGhlbgogICAgTUFJTlNVQlM9IiRNQUlOU1VCUyBhcHBzIgorICAgRkVBVFVSRUhFQURFUlM9IiRGRUFUVVJFSEVBREVSUyBmZWF0dXJlcy1zbm1wbmV0c3RhdC5oIGZlYXR1cmVzLWFwcHMuaCIKKyAgIEZUTUFJTlNVQlM9ImFwcHMgJEZUTUFJTlNVQlMiCitlbHNlCisgICBBQ19ERUZJTkUoW05FVFNOTVBfRElTQUJMRV9BUFBTXSwgMSwgW0RlZmluZSBpZiBubyBhcHBzIGFyZSBidWlsdF0pCiBmaQogCiAjICAgICAgIE1hbnVhbCBwYWdlcwpAQCAtMjI3LDYgKzI1Myw3IEBACiAjIHdpdGgtbWlicyBpcyB2YWxpZCB0b28sIGJ1dCBtZWFucyBzb21ldGhpbmcgZWxzZQogCiBBQ19TVUJTVChNQUlOU1VCUykKK0FDX1NVQlNUKEZUTUFJTlNVQlMpCiBBQ19NU0dfQ0hFQ0tJTkcoW3doYXQgdG8gYnVpbGQgYW5kIGluc3RhbGxdKQogQUNfTVNHX1JFU1VMVChbJE1BSU5TVUJTXSkKIApAQCAtNTU1LDEyICs1ODIsMTYgQEAKICAgQXZhaWxhYmxlIFNOTVAgc2VjdXJpdHkgc2VydmljZXM6CiAKICAgICAgICAgdXNtICAgICAgICAgICAgICAgIHN1cHBvcnQgZm9yIHVzZXIgYmFzZWQgU05NUCBzZWN1cml0eQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlcXVpcmVkIGFuZCBhbHdheXMgY29tcGlsZWQgaW4pCiAgICAgICAgIGtzbSAgICAgICAgICAgICAgICBzdXBwb3J0IGZvciBrZXJiZXJvcyBiYXNlZCBTTk1QIHNlY3VyaXR5CiAgICAgICAgIHRzbSAgICAgICAgICAgICAgICBzdXBwb3J0IGZvciB0aGUgVHJhbnNwb3J0LWJhc2VkIHNlY3VyaXR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9yIHVzZSB3aXRoIHRoZSBTU0gsIERUTFNVRFAgYW5kIFRMU1RDUCB0cmFuc3BvcnRzKQogXSkKIAorTkVUU05NUF9BUkdfV0lUSChvdXQtc2VjdXJpdHktbW9kdWxlcywKK1sgIC0td2l0aC1vdXQtc2VjdXJpdHktbW9kdWxlcz0iczEgczIgLi4uIiAgIFJlbW92ZXMgdGhlIGdpdmVuIFNOTVAgc2VjdXJpdHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZSBzZXJ2aWNlcyBmcm9tIHRoZSBkZWZhdWx0IGxpc3QuCitdKQorCiAKICMjCiAjICAgUHJvamVjdDogTGlicmFyeTogRGV2ZWxvcGVyLXJlbGF0ZWQgc2V0dGluZ3MKQEAgLTcxNyw2ICs3NDgsOTAgQEAKIEFDX0RFRklORV9VTlFVT1RFRChORVRTTk1QX0FHRU5UWF9TT0NLRVQsIiR3aXRodmFsIiwKICAgICAgICAgW1VuaXggZG9tYWluIHNvY2tldCBmb3IgQWdlbnRYIG1hc3Rlci1zdWJhZ2VudCBjb21tdW5pY2F0aW9uXSkKIAorIworIyBmZWF0dXJlIGFkZGl0aW9uL3JlbW92YWwgYW5kIG1pbmltaWFsaXN0IHN1cHBvcnQKKyMKK0ZFQVRVUkVfQUREX0ZMQUdTPSIiCitORVRTTk1QX0FSR19XSVRIKGZlYXR1cmVzLAorWyAgLS13aXRoLWZlYXR1cmVzPSJmZWF0MSBmZWF0MiIgICBSZXF1ZXN0IGV4dHJhIGZlYXR1cmVzIHRvIGJlIHR1cm5lZCBvbi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9ubHkgdXNlZnVsIHdpdGggLS1lbmFibGUtbWluaW1hbGlzdCldLFsKKyAgaWYgdGVzdCAiJHdpdGh2YWwiID0geWVzOyB0aGVuCisgICAgQUNfTVNHX0VSUk9SKFsgUGxlYXNlIHByb3ZpZGUgYSBsaXN0IG9mIGZlYXR1cmVzIF0pOworICBmaQorICBGRUFUVVJFX0FERF9GTEFHUz0iLS1hZGQgJHdpdGh2YWwiCisgIEFDX01TR19SRVNVTFQoYWRkaW5nIGluIGZlYXR1cmVzOiAkd2l0aHZhbCkKK10pCitBQ19TVUJTVChGRUFUVVJFX0FERF9GTEFHUykKKworCitGRUFUVVJFX1JFTU9WRV9GTEFHUz0iIgorTkVUU05NUF9BUkdfV0lUSChvdXQtZmVhdHVyZXMsCitbICAtLXdpdGgtb3V0LWZlYXR1cmVzPSJmZWF0MS4uLiIgIFJlbW92ZSBzcGVjaWZpYyBmZWF0dXJlcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGltcGxpZXMgLS1lbmFibGUtbWluaW1hbGlzdCldLFsKKyAgaWYgdGVzdCAiJHdpdGh2YWwiID0geWVzOyB0aGVuCisgICAgQUNfTVNHX0VSUk9SKFsgUGxlYXNlIHByb3ZpZGUgYSBsaXN0IG9mIGZlYXR1cmVzIF0pOworICBmaQorICBGRUFUVVJFX1JFTU9WRV9GTEFHUz0iLS1yZW1vdmUgJHdpdGh2YWwiCisgIEZFQVRVUkVUQVJHUz0iZmVhdHVyZXMiCisgIEFDX0RFRklORShORVRTTk1QX01JTklNQUxfQ09ERSwgMSwKKyAgICBbRGVmaW5lIGlmIHlvdSB3YW50IHRvIHJlbW92ZSBhbGwgbm9uLWVzc2VudGlhbCBjb2RlIGZlYXR1cmVzLl0pCisgIEFDX01TR19SRVNVTFQocmVtb3ZpbmcgZmVhdHVyZXM6ICR3aXRodmFsKQorXSkKK0FDX1NVQlNUKEZFQVRVUkVfUkVNT1ZFX0ZMQUdTKQorCisKKyMgQ2F0Y2ggY29tbW9uIG1pc3Rha2VzCitBQ19BUkdfV0lUSChmZWF0dXJlLCwgTkVUU05NUF9JTlZBTElEX1dJVEgoW2ZlYXR1cmVzXSkpCitBQ19BUkdfV0lUSChvdXQtZmVhdHVyZSwsIE5FVFNOTVBfSU5WQUxJRF9XSVRIKFtvdXQtZmVhdHVyZXNdKSkKKworRkVBVFVSRVRBUkdTPSIiCitORVRTTk1QX0FSR19FTkFCTEUobWluaW1hbGlzdCwKK1sgIC0tZW5hYmxlLW1pbmltYWxpc3QgICAgICAgICAgICAgUmVtb3ZlIGFsbCBub24tZXNzZW50aWFsIGNvZGUgZmVhdHVyZXMuXSkKK2lmIHRlc3QgIngkZW5hYmxlX21pbmltYWxpc3QiID0gInh5ZXMiOyB0aGVuCisgICAjIHdlJ2xsIGFzc3VtZSB0aGUgbWluaSBhZ2VudCBpcyBkZXNpcmVkIGhlcmUgYXMgd2VsbAorICAgbWluaV9hZ2VudD0ieWVzIgorICAgRkVBVFVSRVRBUkdTPSJmZWF0dXJlcyIKKworICAgIyBuZWVkZWQgdG8gYm9vdHN0cmFwIGxhdGVyIGNoZWNrcworICAgZWNobyAiIiA+IGluY2x1ZGUvbmV0LXNubXAvZmVhdHVyZS1kZXRhaWxzLmgKKyAgIEFDX0RFRklORShORVRTTk1QX01JTklNQUxfQ09ERSwgMSwKKyAgICAgW0RlZmluZSBpZiB5b3Ugd2FudCB0byByZW1vdmUgYWxsIG5vbi1lc3NlbnRpYWwgY29kZSBmZWF0dXJlcy5dKQorZWxzZQorICAgRkVBVFVSRUhFQURFUlM9IiIKK2ZpCitBQ19BUkdfV0lUSChbbWluaW1hbGlzdF0sLE5FVFNOTVBfSU5WQUxJRF9FTkFCTEUoW21pbmltYWxpc3RdKSkKK0FDX1NVQlNUKEZFQVRVUkVUQVJHUykKK0FDX1NVQlNUKEZFQVRVUkVIRUFERVJTKQorCitORVRTTk1QX0FSR19FTkFCTEUobm90aWZ5LW9ubHksCitbICAtLWVuYWJsZS1ub3RpZnktb25seSAgICAgICAgICAgIEJ1aWxkIHRvb2xzIHRoYXQgY2FuIG9ubHkgc2VuZCBub3RpZmljYXRpb25zLl0pCitpZiB0ZXN0ICJ4JGVuYWJsZV9ub3RpZnlfb25seSIgPSAieHllcyI7IHRoZW4KKyAgIEFDX0RFRklORShORVRTTk1QX05PVElGWV9PTkxZLCAxLAorICAgICBbRGVmaW5lIGlmIHlvdSB3YW50IHRvIG9ubHkgc3VwcG9ydCBzZW5kaW5nIG5vdGlmaWNhdGlvbnNdKQorZmkKK0FDX0FSR19XSVRIKFtub3RpZnktb25seV0sLE5FVFNOTVBfSU5WQUxJRF9FTkFCTEUoW25vdGlmeS1vbmx5XSkpCitBQ19BUkdfRU5BQkxFKFtub3RpZnlvbmx5XSwsTkVUU05NUF9JTlZBTElEX0VOQUJMRShbbm90aWZ5LW9ubHldKSkKKworTkVUU05NUF9BUkdfRU5BQkxFKG5vLWxpc3RlbiwKK1sgIC0tZW5hYmxlLW5vLWxpc3RlbiAgICAgICAgICAgICAgQnVpbGQgdG9vbHMgdGhhdCBjYW4ndCBsaXN0ZW4gdG8gcG9ydHMuXSkKK2lmIHRlc3QgIngkZW5hYmxlX25vX2xpc3RlbiIgPSAieHllcyIgLW8gIngkZW5hYmxlX25vdGlmeV9vbmx5IiA9ICJ4eWVzIjsgdGhlbgorICAgZW5hYmxlX25vX2xpc3Rlbj0ieWVzIgorICAgQUNfREVGSU5FKE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQsIDEsCisgICAgIFtEZWZpbmUgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIGFsbCBsaXN0ZW5pbmcgc3VwcG9ydCBmcm9tIHRoZSBjb2RlXSkKK2ZpCitBQ19BUkdfV0lUSChbbm8tbGlzdGVuXSwsTkVUU05NUF9JTlZBTElEX0VOQUJMRShbbm8tbGlzdGVuXSkpCitBQ19BUkdfRU5BQkxFKFtub2xpc3Rlbl0sLE5FVFNOTVBfSU5WQUxJRF9FTkFCTEUoW25vLWxpc3Rlbl0pKQorCitORVRTTk1QX0FSR19FTkFCTEUocmVhZC1vbmx5LAorWyAgLS1lbmFibGUtcmVhZC1vbmx5ICAgICAgICAgICAgICBSZW1vdmUgYWxsIFNFVCBzdXBwb3J0IGZyb20gdGhlIGNvZGUuXSkKK2lmIHRlc3QgIngkZW5hYmxlX3JlYWRfb25seSIgPSAieHllcyIgLW8gIngkZW5hYmxlX25vdGlmeV9vbmx5IiA9ICJ4eWVzIiA7IHRoZW4KKyAgIGVuYWJsZV9yZWFkX29ubHk9InllcyIKKyAgIEFDX0RFRklORShORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQsIDEsCisgICAgIFtEZWZpbmUgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIGFsbCBTRVQvd3JpdGUgYWNjZXNzIGZyb20gdGhlIGNvZGVdKQorZmkKK0FDX0FSR19XSVRIKFtyZWFkLW9ubHldLCxORVRTTk1QX0lOVkFMSURfRU5BQkxFKFtyZWFkLW9ubHldKSkKK0FDX0FSR19FTkFCTEUoW3JlYWRvbmx5XSwsTkVUU05NUF9JTlZBTElEX0VOQUJMRShbcmVhZC1vbmx5XSkpCisKIAogIyMKICMgICBQcm9qZWN0OiBBZ2VudDogTUlCIG1vZHVsZSBjb25maWd1cmF0aW9uCkBAIC03MzIsNiArODQ3LDkgQEAKIEFDX0FSR19XSVRIKFttaW5pYWdlbnRdLCxORVRTTk1QX0lOVkFMSURfRU5BQkxFKFttaW5pLWFnZW50XSkpCiBBQ19BUkdfRU5BQkxFKFttaW5pYWdlbnRdLCxORVRTTk1QX0lOVkFMSURfRU5BQkxFKFttaW5pLWFnZW50XSkpCiAKKworCisKIE5FVFNOTVBfQVJHX0VOQUJMRShtZmQtcmV3cml0ZXMsCiBbICAtLWVuYWJsZS1tZmQtcmV3cml0ZXMgICAgICAgICAgIFVzZSBuZXcgTUZEIHJld3JpdGVzIG9mIG1pYiBtb2R1bGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoZXJlIGF2YWlsYWJsZS4gKGRlZmF1bHQgaXMgdG8gdXNlCmRpZmYgLS1naXQgYS9kaXN0L01ha2VmaWxlIGIvZGlzdC9NYWtlZmlsZQppbmRleCAxMGE3NDkzLi4yN2ZjMTcxIDEwMDY0NAotLS0gYS9kaXN0L01ha2VmaWxlCisrKyBiL2Rpc3QvTWFrZWZpbGUKQEAgLTE5LDcgKzE5LDcgQEAKIE5BTUUgPSBuZXQtc25tcAogCiAjIERlZmluZSB0aGUgZGVmYXVsdCBSUE0gcmVsZWFzZSBudW1iZXIuIFNldCBieSBWZXJzaW9uLU11bmdlLnBsCi1WRVJTSU9OID0gNS42LjIKK1ZFUlNJT04gPSA1LjcuMy5wcmU1CiAKIFZFUlNJT05fVEFHPWBlY2hvIEV4dC0kKFZFUlNJT04pIHwgc2VkICdzL1wuLy0vZzsnYAogCmRpZmYgLS1naXQgYS9kaXN0L2F1dG9jb25mLXZlcnNpb24gYi9kaXN0L2F1dG9jb25mLXZlcnNpb24KaW5kZXggYzk1ZmVhNS4uMjY0ZjJjZSAxMDA2NDQKLS0tIGEvZGlzdC9hdXRvY29uZi12ZXJzaW9uCisrKyBiL2Rpc3QvYXV0b2NvbmYtdmVyc2lvbgpAQCAtMSArMSBAQAotMi42MworMi42OApkaWZmIC0tZ2l0IGEvZGlzdC9tYWtlcmVsZWFzZS54bWwgYi9kaXN0L21ha2VyZWxlYXNlLnhtbAppbmRleCBjMzJiODEzLi5iMDJlNjI2IDEwMDY0NAotLS0gYS9kaXN0L21ha2VyZWxlYXNlLnhtbAorKysgYi9kaXN0L21ha2VyZWxlYXNlLnhtbApAQCAtMzcxLDcgKzM3MSw3IEBACiAJICAgIDxjb21tYW5kPk5FVFNOTVBfRE9OVF9DSEVDS19WRVJTSU9OPTEgbWFrZTwvY29tbWFuZD4KIAkgIDwvY29tbWFuZHM+CiAJPC9zdGVwPgotCTxzdGVwIHR5cGU9InN5c3RlbSIgc3RlcG5hbWU9ImJ1aWxkOnRlc3QiIHRpdGxlPSJidWlsZDp0ZXN0Ij4KKwk8c3RlcCB0eXBlPSJzeXN0ZW0iIHN0ZXBuYW1lPSJidWlsZDp0ZXN0IiB0aXRsZT0idGVzdGluZzogZGVmYXVsdCB0ZXN0cyI+CiAJICA8dGV4dD5Ob3cgd2UgcnVuICJtYWtlIHRlc3QiIHdoaWNoIHNob3VsZCBwcm9kdWNlIGEgcGVyZmVjdAogCSAgc2V0IHVwIHRlc3QgcmVzdWx0cy4gIElmIG5vdCwgdGhpcyBuZWVkcyB0byBiZSBmaXhlZCBvciBhdAogCSAgbGVhc3QgdW5kZXJzdG9vZCBhbmQgYWNjZXB0ZWQgYXMgaXMgZm9yIHNvbWUgb3RoZXIgcmVhc29uLjwvdGV4dD4KQEAgLTM3OSw2ICszNzksMjQgQEAKIAkgICAgPGNvbW1hbmQ+bWFrZSB0ZXN0PC9jb21tYW5kPgogCSAgPC9jb21tYW5kcz4KIAk8L3N0ZXA+CisJPHN0ZXAgdHlwZT0ic3lzdGVtIiBzdGVwbmFtZT0iYnVpbGQ6dGVzdDp1bml0IiB0aXRsZT0idGVzdGluZzogdW5pdC10ZXN0cyI+CisJICA8dGV4dD5Ob3cgd2UgcnVuIHRoZSB1bml0LXRlc3RzIHdoaWNoIHNob3VsZCBhbHNvIHByb2R1Y2UgYSBwZXJmZWN0CisJICBzZXQgdXAgdGVzdCByZXN1bHRzLiAgSWYgbm90LCB0aGlzIG5lZWRzIHRvIGJlIGZpeGVkIG9yIGF0CisJICBsZWFzdCB1bmRlcnN0b29kIGFuZCBhY2NlcHRlZCBhcyBpcyBmb3Igc29tZSBvdGhlciByZWFzb24uPC90ZXh0PgorCSAgPGNvbW1hbmRzPgorCSAgICA8Y29tbWFuZD5jZCB0ZXN0aW5nICZhbXA7JmFtcDsgLi9SVU5GVUxMVEVTVFMgLWcgdW5pdC10ZXN0czwvY29tbWFuZD4KKwkgIDwvY29tbWFuZHM+CisJPC9zdGVwPgorCTxzdGVwIHR5cGU9InN5c3RlbSIgc3RlcG5hbWU9ImJ1aWxkOnRlc3Q6dHJhbnNwb3J0cyIgdGl0bGU9InRlc3Rpbmc6IHRyYW5zcG9ydHMiPgorCSAgPHRleHQ+Tm93IHdlIHJ1biB0aGUgdHJhbnNwb3J0IHRlc3RzIHdoaWNoIHNob3VsZCBhbHNvCisJICBwcm9kdWNlIGEgcGVyZmVjdCBzZXQgdXAgdGVzdCByZXN1bHRzLCBpZiB5b3VyIG1hY2hpbmUKKwkgIHN1cHBvcnRzIGFsbCB0aGUgdHJhbnNwb3J0cy4gIElmIG5vdCwgdGhpcyBuZWVkcyB0byBiZSBmaXhlZAorCSAgb3IgYXQgbGVhc3QgdW5kZXJzdG9vZCBhbmQgYWNjZXB0ZWQgYXMgaXMgZm9yIHNvbWUgb3RoZXIKKwkgIHJlYXNvbiAobGlrZSB5b3UgY2FuJ3QgZG8gSVB2NiBvbiB5b3VyIHN5c3RlbSkuPC90ZXh0PgorCSAgPGNvbW1hbmRzPgorCSAgICA8Y29tbWFuZD5jZCB0ZXN0aW5nICZhbXA7JmFtcDsgLi9SVU5GVUxMVEVTVFMgLWcgdHJhbnNwb3J0czwvY29tbWFuZD4KKwkgIDwvY29tbWFuZHM+CisJPC9zdGVwPgogCTxzdGVwIHR5cGU9InN5c3RlbSIgc3RlcG5hbWU9ImNvZGU6Y2hlY2tjb21tZW50cyIgdGl0bGU9ImNvZGU6Y2hlY2tjb21tZW50cyI+CiAJICA8dGV4dD5UaGlzIGNvbW1hbmQgbG9va3MgZm9yIHNvdXJjZSBjb2RlIG9kZGl0aWVzIGFuZCBwb2xpY3kKIAkgIHZpb2xhdGlvbnMuPC90ZXh0PgpkaWZmIC0tZ2l0IGEvZGlzdC9uZXQtc25tcC5zcGVjIGIvZGlzdC9uZXQtc25tcC5zcGVjCmluZGV4IDIyODNjMmYuLmY1NDE1YTYgMTAwNjQ0Ci0tLSBhL2Rpc3QvbmV0LXNubXAuc3BlYworKysgYi9kaXN0L25ldC1zbm1wLnNwZWMKQEAgLTM3LDcgKzM3LDcgQEAKICVlbmRpZgogU3VtbWFyeTogVG9vbHMgYW5kIHNlcnZlcnMgZm9yIHRoZSBTTk1QIHByb3RvY29sCiBOYW1lOiBuZXQtc25tcAotVmVyc2lvbjogNS42LjIKK1ZlcnNpb246IDUuNy4zLnByZTUKICMgdXBkYXRlIHJlbGVhc2UgZm9yIHZlbmRvciByZWxlYXNlLiAoZWcgMS5mYzYsIDEucmg3MiwgMS55ZGwzLCAxLnlkbDIzKQogUmVsZWFzZTogMQogVVJMOiBodHRwOi8vd3d3Lm5ldC1zbm1wLm9yZy8KZGlmZiAtLWdpdCBhL2Rpc3QvcGF0bWUgYi9kaXN0L3BhdG1lCmluZGV4IGNjMGI4N2EuLjBmZDUwZWUgMTAwNzU1Ci0tLSBhL2Rpc3QvcGF0bWUKKysrIGIvZGlzdC9wYXRtZQpAQCAtMTQsMTIgKzE0LDEzIEBACiBvdXIgJW9wdHMgPQogKAogICdkJyA9PiAkRU5WeydIT01FJ30gLiAiL3NyYy9zbm1wL3BhdG1lLyIsCi0gJ2InID0+ICdtYWluLDUuNSw1LjQsNS4zLDUuMicsCisgJ2InID0+ICdtYWluLDUuNiw1LjUsNS40LDUuMycsCiAgJ3AnID0+ICctcDAnLAogKTsKIAogIyBzZXRzIHRoZSBvcmRlciBzaG93bgogb3VyIEBjb2RldHJlZXMgPSAoJ21haW4nLAorCQkgICc1LjYnLAogCQkgICc1LjUnLAogCQkgICc1LjQnLAogCQkgICc1LjMnLApAQCAtMzQsNiArMzUsNyBAQAogCQkgICc1LjMnID0+ICdWNS0zLXBhdGNoZXMnLAogCQkgICc1LjQnID0+ICdWNS00LXBhdGNoZXMnLAogCQkgICc1LjUnID0+ICdWNS01LXBhdGNoZXMnLAorCQkgICc1LjYnID0+ICdWNS02LXBhdGNoZXMnLAogCQkgICdtYWluJyA9PiAnbmV0LXNubXAnLAogCQkgICdVQ0QnID0+ICdWNC0yLXBhdGNoZXMnKTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmggYi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaAppbmRleCAyNDMyYjg4Li5lYzkzMGZlIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaAorKysgYi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaApAQCAtNjEsNiArNjEsMTcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcyAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG5ldHNubXBfcmVxdWVzdF9pbmZvX3MgKik7CisgICAgICAgIC8qKiBkYXRhIGNsb25lIGhvb2sgZm9yIG15dm9pZAorICAgICAgICAgKiAgZGVlcCBjb3B5IHRoZSBteXZvaWQgbWVtYmVyIC0gZGVmYXVsdCBpcyB0byBjb3B5IHRoZSBwb2ludGVyCisgICAgICAgICAqICBUaGlzIG1ldGhvZCBpcyBvbmx5IGNhbGxlZCBpZiBteXZvaWQgIT0gTlVMTAorICAgICAgICAgKiAgbXl2b2lkIGlzIHRoZSBjdXJyZW50IG15dm9pZCBwb2ludGVyLgorICAgICAgICAgKiAgcmV0dXJucyBOVUxMIG9uIGZhaWx1cmUKKyAgICAgICAgICovCisgICAgICAgIHZvaWQgKigqZGF0YV9jbG9uZSkodm9pZCAqbXl2b2lkKTsKKyAgICAgICAgLyoqIGRhdGEgZnJlZSBob29rIGZvciBteXZvaWQKKyAgICAgICAgICogIGRlbGV0ZSB0aGUgbXl2b2lkIG1lbWJlciAtIGRlZmF1bHQgaXMgdG8gZG8gbm90aGluZworICAgICAgICAgKiAgVGhpcyBtZXRob2QgaXMgb25seSBjYWxsZWQgaWYgbXl2b2lkICE9IE5VTEwKKyAgICAgICAgICovCiAgICAgICAgIHZvaWQgKCpkYXRhX2ZyZWUpKHZvaWQgKm15dm9pZCk7IC8qKjwgZGF0YSBmcmVlIGhvb2sgZm9yIG15dm9pZCAqLwogCiAgICAgICAgIHN0cnVjdCBuZXRzbm1wX21pYl9oYW5kbGVyX3MgKm5leHQ7CmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggYi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgKaW5kZXggYmE4MDc5My4uMjk0OWM5ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaApAQCAtNTksMTggKzU5LDIxIEBACiB2b2lkICAgICAgICAgICAgIHNodXRkb3duX3RyZWUgICAgKHZvaWQpOwogCiAKLW5ldHNubXBfc3VidHJlZSAqbmV0c25tcF9zdWJ0cmVlX2ZpbmQJICAob2lkICosIHNpemVfdCwgbmV0c25tcF9zdWJ0cmVlICosCituZXRzbm1wX3N1YnRyZWUgKm5ldHNubXBfc3VidHJlZV9maW5kCSAgKGNvbnN0IG9pZCAqLCBzaXplX3QsCisJCQkJCSAgIG5ldHNubXBfc3VidHJlZSAqLAogCQkJCQkgICBjb25zdCBjaGFyICpjb250ZXh0X25hbWUpOwogCi1uZXRzbm1wX3N1YnRyZWUgKm5ldHNubXBfc3VidHJlZV9maW5kX25leHQob2lkICosIHNpemVfdCwgbmV0c25tcF9zdWJ0cmVlICosCituZXRzbm1wX3N1YnRyZWUgKm5ldHNubXBfc3VidHJlZV9maW5kX25leHQoY29uc3Qgb2lkICosIHNpemVfdCwKKwkJCQkJICAgbmV0c25tcF9zdWJ0cmVlICosCiAJCQkJCSAgIGNvbnN0IGNoYXIgKmNvbnRleHRfbmFtZSk7CiAKLW5ldHNubXBfc3VidHJlZSAqbmV0c25tcF9zdWJ0cmVlX2ZpbmRfcHJldihvaWQgKiwgc2l6ZV90LG5ldHNubXBfc3VidHJlZSAqLAorbmV0c25tcF9zdWJ0cmVlICpuZXRzbm1wX3N1YnRyZWVfZmluZF9wcmV2KGNvbnN0IG9pZCAqLCBzaXplX3QsCisJCQkJCSAgIG5ldHNubXBfc3VidHJlZSAqLAogCQkJCQkgICBjb25zdCBjaGFyICpjb250ZXh0X25hbWUpOwogCiBuZXRzbm1wX3N1YnRyZWUgKm5ldHNubXBfc3VidHJlZV9maW5kX2ZpcnN0KGNvbnN0IGNoYXIgKmNvbnRleHRfbmFtZSk7CiAKLW5ldHNubXBfc2Vzc2lvbiAqZ2V0X3Nlc3Npb25fZm9yX29pZAkgICAob2lkICosIHNpemVfdCwgCituZXRzbm1wX3Nlc3Npb24gKmdldF9zZXNzaW9uX2Zvcl9vaWQJICAgKGNvbnN0IG9pZCAqLCBzaXplX3QsIAogCQkJCQkgICAgY29uc3QgY2hhciAqY29udGV4dF9uYW1lKTsKIAogc3VidHJlZV9jb250ZXh0X2NhY2hlICpnZXRfdG9wX2NvbnRleHRfY2FjaGUodm9pZCk7CkBAIC04NiwyNSArODksMzIgQEAKICNkZWZpbmUgTUlCX1VOUkVHSVNUUkFUSU9OX0ZBSUxFRAktMgogI2RlZmluZSBERUZBVUxUX01JQl9QUklPUklUWQkJMTI3CiAKLWludCAgICAgICAgICAgICByZWdpc3Rlcl9taWIJCSAgIChjb25zdCBjaGFyICosIHN0cnVjdCB2YXJpYWJsZSAqLAotCQkJCQkgICAgc2l6ZV90LCBzaXplX3QsIG9pZCAqLCBzaXplX3QpOworaW50ICAgICAgICAgICAgIHJlZ2lzdGVyX21pYgkJICAgKGNvbnN0IGNoYXIgKiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZhcmlhYmxlICosCisJCQkJCSAgICBzaXplX3QsIHNpemVfdCwgY29uc3Qgb2lkICosCisJCQkJCSAgICBzaXplX3QpOwogCi1pbnQgICAgICAgICAgICAgcmVnaXN0ZXJfbWliX3ByaW9yaXR5CSAgIChjb25zdCBjaGFyICosIHN0cnVjdCB2YXJpYWJsZSAqLAotCQkJCQkgICAgc2l6ZV90LCBzaXplX3QsIG9pZCAqLCBzaXplX3QsCitpbnQgICAgICAgICAgICAgcmVnaXN0ZXJfbWliX3ByaW9yaXR5CSAgIChjb25zdCBjaGFyICosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2YXJpYWJsZSAqLAorCQkJCQkgICAgc2l6ZV90LCBzaXplX3QsIGNvbnN0IG9pZCAqLCBzaXplX3QsCiAJCQkJCSAgICBpbnQpOwogCi1pbnQgICAgICAgICAgICAgcmVnaXN0ZXJfbWliX3JhbmdlCSAgIChjb25zdCBjaGFyICosIHN0cnVjdCB2YXJpYWJsZSAqLAotCQkJCQkgICAgc2l6ZV90LCBzaXplX3QsIG9pZCAqLCBzaXplX3QsIAotCQkJCQkgICAgaW50LCBpbnQsIG9pZCwgbmV0c25tcF9zZXNzaW9uICopOworaW50ICAgICAgICAgICAgIHJlZ2lzdGVyX21pYl9yYW5nZQkgICAoY29uc3QgY2hhciAqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdmFyaWFibGUgKiwKKwkJCQkJICAgIHNpemVfdCwgc2l6ZV90LCBjb25zdCBvaWQgKiwKKwkJCQkJICAgIHNpemVfdCwgaW50LCBpbnQsIG9pZCwKKwkJCQkJICAgIG5ldHNubXBfc2Vzc2lvbiAqKTsKIAotaW50CQlyZWdpc3Rlcl9taWJfY29udGV4dAkgICAoY29uc3QgY2hhciAqLCBzdHJ1Y3QgdmFyaWFibGUgKiwKLQkJCQkJICAgIHNpemVfdCwgc2l6ZV90LCBvaWQgKiwgc2l6ZV90LAoraW50CQlyZWdpc3Rlcl9taWJfY29udGV4dAkgICAoY29uc3QgY2hhciAqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdmFyaWFibGUgKiwKKwkJCQkJICAgIHNpemVfdCwgc2l6ZV90LCBjb25zdCBvaWQgKiwgc2l6ZV90LAogCQkJCQkgICAgaW50LCBpbnQsIG9pZCwgbmV0c25tcF9zZXNzaW9uICosCiAJCQkJCSAgICBjb25zdCBjaGFyICosIGludCwgaW50KTsKIAotaW50CW5ldHNubXBfcmVnaXN0ZXJfbWliX3RhYmxlX3JvdwkgICAoY29uc3QgY2hhciAqLCBzdHJ1Y3QgdmFyaWFibGUgKiwKLQkJCQkJICAgIHNpemVfdCwgc2l6ZV90LCBvaWQgKiwgc2l6ZV90LCAKLQkJCQkJICAgIGludCwgaW50LCBuZXRzbm1wX3Nlc3Npb24gKiwKK2ludAluZXRzbm1wX3JlZ2lzdGVyX21pYl90YWJsZV9yb3cJICAgKGNvbnN0IGNoYXIgKiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZhcmlhYmxlICosCisJCQkJCSAgICBzaXplX3QsIHNpemVfdCwgb2lkICosCisJCQkJCSAgICBzaXplX3QsIGludCwgaW50LCBuZXRzbm1wX3Nlc3Npb24gKiwKIAkJCQkJICAgIGNvbnN0IGNoYXIgKiwgaW50LCBpbnQpOwogCiBpbnQJCXVucmVnaXN0ZXJfbWliCQkgICAob2lkICosIHNpemVfdCk7CkBAIC0xMzksMTAgKzE0OSwxMiBAQAogICogICAgICAgICAgKHNpemVvZih0aGVvaWQpICptdXN0KiByZXR1cm4gdGhlIG51bWJlciBvZiBlbGVtZW50cyEpIAogICovCiAKLSNkZWZpbmUgUkVHSVNURVJfTUlCKGRlc2NyLCB2YXIsIHZhcnR5cGUsIHRoZW9pZCkgICAgICAgICAgICAgICAgICAgICAgXAotICBpZiAocmVnaXN0ZXJfbWliKGRlc2NyLCAoc3RydWN0IHZhcmlhYmxlICopIHZhciwgc2l6ZW9mKHN0cnVjdCB2YXJ0eXBlKSwgXAotICAgICAgICAgICAgICAgc2l6ZW9mKHZhcikvc2l6ZW9mKHN0cnVjdCB2YXJ0eXBlKSwgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICB0aGVvaWQsIHNpemVvZih0aGVvaWQpL3NpemVvZihvaWQpKSAhPSBNSUJfUkVHSVNURVJFRF9PSyApIFwKKyNkZWZpbmUgUkVHSVNURVJfTUlCKGRlc2NyLCB2YXIsIHZhcnR5cGUsIHRoZW9pZCkgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAocmVnaXN0ZXJfbWliKGRlc2NyLCAoY29uc3Qgc3RydWN0IHZhcmlhYmxlICopIHZhciwgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgdmFydHlwZSksICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgIHNpemVvZih2YXIpL3NpemVvZihzdHJ1Y3QgdmFydHlwZSksICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgIHRoZW9pZCwgc2l6ZW9mKHRoZW9pZCkvc2l6ZW9mKG9pZCkpICE9ICAgICAgICAgICAgIFwKKyAgICAgICAgTUlCX1JFR0lTVEVSRURfT0spICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAlERUJVR01TR1RMKCgicmVnaXN0ZXJfbWliIiwgIiVzIHJlZ2lzdHJhdGlvbiBmYWlsZWRcbiIsIGRlc2NyKSk7CiAKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmggYi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaAppbmRleCA2YTFhOGI5Li5kMjU2NTUwIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaAorKysgYi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaApAQCAtMTYsNiArMTYsNyBAQAogI2RlZmluZSBCQUJZX1NURVBfTk9ORSAgICAgICAgICAgICAgICAgIDAKICNkZWZpbmUgQkFCWV9TVEVQX1BSRV9SRVFVRVNUICAgICAgICAgICAoMHgxIDw8ICAxKQogI2RlZmluZSBCQUJZX1NURVBfT0JKRUNUX0xPT0tVUCAgICAgICAgICgweDEgPDwgIDIpCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogI2RlZmluZSBCQUJZX1NURVBfQ0hFQ0tfVkFMVUUgICAgICAgICAgICgweDEgPDwgIDMpCiAjZGVmaW5lIEJBQllfU1RFUF9ST1dfQ1JFQVRFICAgICAgICAgICAgKDB4MSA8PCAgNCkKICNkZWZpbmUgQkFCWV9TVEVQX1VORE9fU0VUVVAgICAgICAgICAgICAoMHgxIDw8ICA1KQpAQCAtMjYsMTQgKzI3LDE3IEBACiAjZGVmaW5lIEJBQllfU1RFUF9VTkRPX0NPTU1JVCAgICAgICAgICAgKDB4MSA8PCAxMCkKICNkZWZpbmUgQkFCWV9TVEVQX0lSUkVWRVJTSUJMRV9DT01NSVQgICAoMHgxIDw8IDExKQogI2RlZmluZSBCQUJZX1NURVBfVU5ET19DTEVBTlVQICAgICAgICAgICgweDEgPDwgMTIpCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAjZGVmaW5lIEJBQllfU1RFUF9QT1NUX1JFUVVFU1QgICAgICAgICAgKDB4MSA8PCAxMykKIAogI2RlZmluZSBCQUJZX1NURVBfQUxMICAgICAgICAgICAgICAgICAgICgweGZmZmZmZmZmKQogCiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAjZGVmaW5lIEJBQllfU1RFUF9DSEVDS19PQkpFQ1QgICAgICAgICAgQkFCWV9TVEVQX0NIRUNLX1ZBTFVFCiAjZGVmaW5lIEJBQllfU1RFUF9TRVRfVkFMVUVTICAgICAgICAgICAgQkFCWV9TVEVQX1NFVF9WQUxVRQogI2RlZmluZSBCQUJZX1NURVBfVU5ET19TRVRTICAgICAgICAgICAgIEJBQllfU1RFUF9VTkRPX1NFVAorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAvKiogQG5hbWUgYmFieV9zdGVwcwogICoKQEAgLTQzLDYgKzQ3LDggQEAKICAqICBAeyAqLwogCiAgICAgdHlwZWRlZiBzdHJ1Y3QgbmV0c25tcF9iYWJ5X3N0ZXBzX21vZGVzX3MgeworICAgICAgIC8qKiBOdW1iZXIgb2YgaGFuZGxlcnMgd2hvc2UgbXl2b2lkIHBvaW50ZXIgcG9pbnRzIGF0IHRoaXMgb2JqZWN0LiAqLworICAgICAgIGludCAgICAgICAgIHJlZmNudDsKICAgICAgICB1X2ludCAgICAgICByZWdpc3RlcmVkOwogICAgICAgIHVfaW50ICAgICAgIGNvbXBsZXRlZDsKICAgICB9IG5ldHNubXBfYmFieV9zdGVwc19tb2RlczsKQEAgLTc0LDYgKzgwLDcgQEAKICAgIE5ldHNubXBfTm9kZV9IYW5kbGVyICpwcmVfcmVxdWVzdDsKICAgIE5ldHNubXBfTm9kZV9IYW5kbGVyICpvYmplY3RfbG9va3VwOwogICAgTmV0c25tcF9Ob2RlX0hhbmRsZXIgKmdldF92YWx1ZXM7CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgTmV0c25tcF9Ob2RlX0hhbmRsZXIgKm9iamVjdF9zeW50YXhfY2hlY2tzOwogICAgTmV0c25tcF9Ob2RlX0hhbmRsZXIgKnJvd19jcmVhdGlvbjsKICAgIE5ldHNubXBfTm9kZV9IYW5kbGVyICp1bmRvX3NldHVwOwpAQCAtODQsNiArOTEsNyBAQAogICAgTmV0c25tcF9Ob2RlX0hhbmRsZXIgKnVuZG9fY2xlYW51cDsKICAgIE5ldHNubXBfTm9kZV9IYW5kbGVyICp1bmRvX2NvbW1pdDsKICAgIE5ldHNubXBfTm9kZV9IYW5kbGVyICppcnJldmVyc2libGVfY29tbWl0OworI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgTmV0c25tcF9Ob2RlX0hhbmRsZXIgKnBvc3RfcmVxdWVzdDsKIAogICAgdm9pZCAgICAgICAgICAgICAgICAgKm15X2FjY2Vzc192b2lkOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmggYi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaAppbmRleCA3ZjRlNzRlLi4xZTQ3NTFjIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaAorKysgYi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaApAQCAtMzIsNiArMzIsOCBAQAogICAgIHR5cGVkZWYgdm9pZCAoTmV0c25tcENhY2hlRnJlZSkobmV0c25tcF9jYWNoZSAqLCB2b2lkKik7CiAKICAgICBzdHJ1Y3QgbmV0c25tcF9jYWNoZV9zIHsKKwkvKiogTnVtYmVyIG9mIGhhbmRsZXJzIHdob3NlIG15dm9pZCBtZW1iZXIgcG9pbnRzIGF0IHRoaXMgc3RydWN0dXJlLiAqLworCWludCAgICAgIHJlZmNudDsKICAgICAgICAgLyoKIAkgKiBGb3Igb3BlcmF0aW9uIG9mIHRoZSBkYXRhIGNhY2hlcwogCSAqLwpAQCAtNDAsNyArNDIsNyBAQAogICAgICAgICBpbnQgICAgICB2YWxpZDsKICAgICAgICAgY2hhciAgICAgZXhwaXJlZDsKICAgICAgICAgaW50ICAgICAgdGltZW91dDsJLyogTGVuZ3RoIG9mIHRpbWUgdGhlIGNhY2hlIGlzIHZhbGlkIChpbiBzKSAqLwotICAgICAgICBtYXJrZXJfdCB0aW1lc3RhbXA7CS8qIFdoZW4gdGhlIGNhY2hlIHdhcyBsYXN0IGxvYWRlZCAqLworICAgICAgICBtYXJrZXJfdCB0aW1lc3RhbXBNOwkvKiBXaGVuIHRoZSBjYWNoZSB3YXMgbGFzdCBsb2FkZWQgKi8KICAgICAgICAgdV9sb25nICAgdGltZXJfaWQ7ICAgICAgLyogcGVyaW9kaWMgdGltZXIgaWQgKi8KIAogICAgICAgICBOZXRzbm1wQ2FjaGVMb2FkICpsb2FkX2NhY2hlOwpAQCAtMTAwLDYgKzEwMiw3IEBACiAKICAgICBuZXRzbm1wX21pYl9oYW5kbGVyICoKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXJfZ2V0KG5ldHNubXBfY2FjaGUqIGNhY2hlKTsKKyAgICB2b2lkIG5ldHNubXBfY2FjaGVfaGFuZGxlcl9vd25zX2NhY2hlKG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIpOwogCiAgICAgbmV0c25tcF9jYWNoZSAqIG5ldHNubXBfY2FjaGVfZmluZF9ieV9vaWQoY29uc3Qgb2lkICogcm9vdG9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcm9vdG9pZF9sZW4pOwpAQCAtMTE2LDYgKzExOSw3IEBACiAjZGVmaW5lIE5FVFNOTVBfQ0FDSEVfRE9OVF9BVVRPX1JFTEVBU0UgICAgICAgICAgICAgICAgICAgICAweDAwMDgKICNkZWZpbmUgTkVUU05NUF9DQUNIRV9QUkVMT0FEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMAogI2RlZmluZSBORVRTTk1QX0NBQ0hFX0FVVE9fUkVMT0FEICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwCisjZGVmaW5lIE5FVFNOTVBfQ0FDSEVfUkVTRVRfVElNRVJfT05fVVNFICAgICAgICAgICAgICAgICAgICAweDAwNDAKIAogI2RlZmluZSBORVRTTk1QX0NBQ0hFX0hJTlRfSEFORExFUl9BUkdTICAgICAgICAgICAgICAgICAgICAgMHgxMDAwCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCBiL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaAppbmRleCAzYWU3NTlkLi5mNmY2MzlkIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgKKysrIGIvaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIE5FVFNOTVBfRFNfQUdFTlRfRE9OVF9MT0dfVENQV1JBUFBFUlNfQ09OTkVDVFMgMTIgICAvKiAxID0gZGlzYWJsZSBsb2dnaW5nICovCiAjZGVmaW5lIE5FVFNOTVBfRFNfQVBQX0RPTlRfTE9HICAgICAgICAgTkVUU05NUF9EU19BR0VOVF9ET05UX1JFVEFJTl9OT1RJRklDQVRJT05TIC8qIGNvbXBhdCAqLwogI2RlZmluZSBORVRTTk1QX0RTX0FHRU5UX1NLSVBORlNJTkhPU1RSRVNPVVJDRVMgICAgMTMgICAvKiAxID0gZG9uJ3Qgc3RvcmUgTkZTIGVudHJpZXMgaW4gaHJTdG9yYWdlVGFibGUgKi8KKyNkZWZpbmUgTkVUU05NUF9EU19BR0VOVF9SRUFMU1RPUkFHRVVOSVRTIDE0ICAgIC8qIDEgPSB1c2UgcmVhbCBhbGxvY2F0aW9uIHVuaXRzIGluIGhyU3RvcmFnZVRhYmxlLCAwID0gcmVjYWxjdWxhdGUgaXQgdG8gZml0IDMyYml0cyAqLwogCiAgICAvKiBSZXBlYXRlZCBmcm9tICJhcHBzL3NubXB0cmFwZF9kcy5oIiAqLwogI2RlZmluZSBORVRTTk1QX0RTX0FQUF9OVU1FUklDX0lQICAgICAgIDE2CmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oIGIvaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaAppbmRleCA2MjY4ODk3Li5mNmU0M2U1IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1LmgKQEAgLTMzLDYgKzMzLDkgQEAKICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGtlcm5fdGlja3M7CiAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnRycHRfdGlja3M7CiAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXJxX3RpY2tzOworICAgICB1bnNpZ25lZCBsb25nIGxvbmcgc3RlYWxfdGlja3M7CisgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBndWVzdF90aWNrczsKKyAgICAgdW5zaWduZWQgbG9uZyBsb25nIGd1ZXN0bmljZV90aWNrczsKIAogICAgICB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxfdGlja3M7CiAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBzeXMyX3RpY2tzOyAgLyogRm9yIG5vbi1hdG9taWMgc3lzdGVtIGNvdW50cyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmggYi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaAppbmRleCA1YTFlNWVmLi45MWU4ZTE3IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaAorKysgYi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaApAQCAtNjAsMTMgKzYwLDE5IEBACiAgICAgIGNoYXIgZGV2aWNlW1NOTVBfTUFYUEFUSCsxXTsKICAgICAgaW50ICB0eXBlOwogCi0gICAgIGxvbmcgc2l6ZTsKLSAgICAgbG9uZyB1c2VkOwotICAgICBsb25nIGF2YWlsOwotICAgICBsb25nIHVuaXRzOworICAgICB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZTsKKyAgICAgdW5zaWduZWQgbG9uZyBsb25nIHVzZWQ7CisgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhdmFpbDsKKyAgICAgdW5zaWduZWQgbG9uZyBsb25nIHVuaXRzOwogCi0gICAgIGxvbmcgaW51bXNfdG90YWw7Ci0gICAgIGxvbmcgaW51bXNfYXZhaWw7CisgICAgIC8qIGFydGlmaWNpYWxseSBjb21wdXRlZCB2YWx1ZXMsIGJvdGggJ3NpemVfMzInIGFuZCAndW5pdHNfMzInIGZpdCBJTlQzMiAqLworICAgICB1bnNpZ25lZCBsb25nIHNpemVfMzI7CisgICAgIHVuc2lnbmVkIGxvbmcgdXNlZF8zMjsKKyAgICAgdW5zaWduZWQgbG9uZyBhdmFpbF8zMjsKKyAgICAgdW5zaWduZWQgbG9uZyB1bml0c18zMjsKKworICAgICB1bnNpZ25lZCBsb25nIGxvbmcgaW51bXNfdG90YWw7CisgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnVtc19hdmFpbDsKIAogICAgICBpbnQgIG1pbnNwYWNlOwogICAgICBpbnQgIG1pbnBlcmNlbnQ7CkBAIC05OSwzICsxMDUsNSBAQAogdW5zaWduZWQgbG9uZyBsb25nIG5ldHNubXBfZnN5c19zaXplX3VsbCggbmV0c25tcF9mc3lzX2luZm8qICk7CiB1bnNpZ25lZCBsb25nIGxvbmcgbmV0c25tcF9mc3lzX3VzZWRfdWxsKCBuZXRzbm1wX2ZzeXNfaW5mbyogKTsKIHVuc2lnbmVkIGxvbmcgbG9uZyBuZXRzbm1wX2ZzeXNfYXZhaWxfdWxsKG5ldHNubXBfZnN5c19pbmZvKiApOworCit2b2lkIG5ldHNubXBfZnN5c19jYWxjdWxhdGUzMiggbmV0c25tcF9mc3lzX2luZm8gKmYpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oIGIvaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oCmluZGV4IGVmYzhkZDMuLjgyZjJlZGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaAorKysgYi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgKQEAgLTEzNiwxMyArMTM2LDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY29udGV4dE5hbWUpOwogCiBOZXRzbm1wX05vZGVfSGFuZGxlciBuZXRzbm1wX2luc3RhbmNlX2hlbHBlcl9oYW5kbGVyOwotI2lmbmRlZiBORVRTTk1QX05PX0RFUFJFQ0FURURfRlVOQ1RJT05TCi1OZXRzbm1wX05vZGVfSGFuZGxlciBuZXRzbm1wX2luc3RhbmNlX3Vsb25nX2hhbmRsZXI7Ci1OZXRzbm1wX05vZGVfSGFuZGxlciBuZXRzbm1wX2luc3RhbmNlX2xvbmdfaGFuZGxlcjsKLU5ldHNubXBfTm9kZV9IYW5kbGVyIG5ldHNubXBfaW5zdGFuY2VfaW50X2hhbmRsZXI7Ci1OZXRzbm1wX05vZGVfSGFuZGxlciBuZXRzbm1wX2luc3RhbmNlX3VpbnRfaGFuZGxlcjsKLU5ldHNubXBfTm9kZV9IYW5kbGVyIG5ldHNubXBfaW5zdGFuY2VfY291bnRlcjMyX2hhbmRsZXI7Ci0jZW5kaWYKIE5ldHNubXBfTm9kZV9IYW5kbGVyIG5ldHNubXBfaW5zdGFuY2VfbnVtX2ZpbGVfaGFuZGxlcjsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCBiL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oCmluZGV4IDA2ZWM0NDkuLjJiZDNjZDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oCkBAIC0yNSwxMCArMjUsMTAgQEAKIH0gbmV0c25tcF9vbGRfYXBpX2NhY2hlOwogCiBpbnQgICAgICAgICAgICAgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKGNvbnN0IGNoYXIgKm1vZHVsZU5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2YXJpYWJsZSAqdmFyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdmFyaWFibGUgKnZhciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHZhcnNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBudW12YXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvaWQgKiBtaWJsb2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9pZCAqIG1pYmxvYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG1pYmxvY2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByaW9yaXR5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmFuZ2Vfc3ViaWQsCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCBiL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCmluZGV4IDc5OTVhNWIuLmFhZDg4MzcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCkBAIC0xMTgsOSArMTE4LDE1IEBACiAjZGVmaW5lIE1PREVfR0VUTkVYVCAgICAgICAgICBTTk1QX01TR19HRVRORVhUCiAjZGVmaW5lIE1PREVfR0VUQlVMSyAgICAgICAgICBTTk1QX01TR19HRVRCVUxLCiAjZGVmaW5lIE1PREVfR0VUX1NUQVNIICAgICAgICBTTk1QX01TR19JTlRFUk5BTF9HRVRfU1RBU0gKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAjZGVmaW5lIE1PREVfSVNfR0VUKHgpICAgICAgICAoKHggPj0gMTI4KSAmJiAoeCAhPSAtMSkgICYmICh4ICE9IFNOTVBfTVNHX1NFVCkpCisjZWxzZSAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKyNkZWZpbmUgTU9ERV9JU19HRVQoeCkgICAgICAgICgoeCA+PSAxMjgpICYmICh4ICE9IC0xKSkKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKwogICAgIC8qICNkZWZpbmUgTU9ERV9JU19HRVQoeCkgICAgICAgICgoeCA9PSBTTk1QX01TR19HRVQpIHx8ICh4ID09IFNOTVBfTVNHX0dFVE5FWFQpIHx8ICh4ID09IFNOTVBfTVNHX0dFVEJVTEspIHx8ICh4ID09IFNOTVBfTVNHX0lOVEVSTkFMX0dFVF9TVEFTSCkpICovCiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAjZGVmaW5lIE1PREVfU0VUX0JFR0lOICAgICAgICBTTk1QX01TR19JTlRFUk5BTF9TRVRfQkVHSU4KICNkZWZpbmUgTU9ERV9TRVRfUkVTRVJWRTEgICAgIFNOTVBfTVNHX0lOVEVSTkFMX1NFVF9SRVNFUlZFMQogI2RlZmluZSBNT0RFX1NFVF9SRVNFUlZFMiAgICAgU05NUF9NU0dfSU5URVJOQUxfU0VUX1JFU0VSVkUyCkBAIC0xMzAsMTEgKzEzNiwxMyBAQAogI2RlZmluZSBNT0RFX1NFVF9VTkRPICAgICAgICAgU05NUF9NU0dfSU5URVJOQUxfU0VUX1VORE8KICNkZWZpbmUgTU9ERV9JU19TRVQoeCkgICAgICAgICAoKHggPCAxMjgpIHx8ICh4ID09IC0xKSB8fCAoeCA9PSBTTk1QX01TR19TRVQpKQogICAgIC8qICNkZWZpbmUgTU9ERV9JU19TRVQoeCkgICAgICAgICAoIU1PREVfSVNfR0VUKHgpKSAqLworI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAjZGVmaW5lIE1PREVfQlNURVBfUFJFX1JFUVVFU1QgICBTTk1QX01TR19JTlRFUk5BTF9QUkVfUkVRVUVTVAogI2RlZmluZSBNT0RFX0JTVEVQX1BPU1RfUkVRVUVTVCAgU05NUF9NU0dfSU5URVJOQUxfUE9TVF9SRVFVRVNUCiAKICNkZWZpbmUgTU9ERV9CU1RFUF9PQkpFQ1RfTE9PS1VQICAgICAgIFNOTVBfTVNHX0lOVEVSTkFMX09CSkVDVF9MT09LVVAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAjZGVmaW5lIE1PREVfQlNURVBfQ0hFQ0tfVkFMVUUgICAgICAgICBTTk1QX01TR19JTlRFUk5BTF9DSEVDS19WQUxVRQogI2RlZmluZSBNT0RFX0JTVEVQX1JPV19DUkVBVEUgICAgICAgICAgU05NUF9NU0dfSU5URVJOQUxfUk9XX0NSRUFURQogI2RlZmluZSBNT0RFX0JTVEVQX1VORE9fU0VUVVAgICAgICAgICAgU05NUF9NU0dfSU5URVJOQUxfVU5ET19TRVRVUApAQCAtMTQ1LDcgKzE1Myw3IEBACiAjZGVmaW5lIE1PREVfQlNURVBfVU5ET19DT01NSVQgICAgICAgICBTTk1QX01TR19JTlRFUk5BTF9VTkRPX0NPTU1JVAogI2RlZmluZSBNT0RFX0JTVEVQX0lSUkVWRVJTSUJMRV9DT01NSVQgU05NUF9NU0dfSU5URVJOQUxfSVJSRVZFUlNJQkxFX0NPTU1JVAogI2RlZmluZSBNT0RFX0JTVEVQX1VORE9fQ0xFQU5VUCAgICAgICAgU05NUF9NU0dfSU5URVJOQUxfVU5ET19DTEVBTlVQCi0KKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogLyoqIEB0eXBlZGVmIHN0cnVjdCBuZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zIG5ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvCiAgKiBUeXBlZGVmcyB0aGUgbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcyBzdHJ1Y3QgaW50bwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCBiL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgKaW5kZXggZDI4MGE5YS4uNzdkYmQ3MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaAorKysgYi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oCkBAIC00NSw2ICs0NSwyMyBAQAogCiAgICAgc3RydWN0IHZhcmlhYmxlOwogCisgICAgLyoqCisgICAgICogRHVwbGljYXRlcyBhIHZhcmlhYmxlLgorICAgICAqCisgICAgICogQHJldHVybiBQb2ludGVyIHRvIHRoZSBkdXBsaWNhdGUgdmFyaWFibGUgdXBvbiBzdWNjZXNzOyBOVUxMIHVwb24KKyAgICAgKiAgIGZhaWx1cmUuCisgICAgICoKKyAgICAgKiBAc2VlIHN0cnVjdCB2YXJpYWJsZQorICAgICAqIEBzZWUgc3RydWN0IHZhcmlhYmxlMQorICAgICAqIEBzZWUgc3RydWN0IHZhcmlhYmxlMgorICAgICAqIEBzZWUgc3RydWN0IHZhcmlhYmxlMworICAgICAqIEBzZWUgc3RydWN0IHZhcmlhYmxlNAorICAgICAqIEBzZWUgc3RydWN0IHZhcmlhYmxlNworICAgICAqIEBzZWUgc3RydWN0IHZhcmlhYmxlOAorICAgICAqIEBzZWUgc3RydWN0IHZhcmlhYmxlMTMKKyAgICAgKi8KKyAgICBzdHJ1Y3QgdmFyaWFibGUgKm5ldHNubXBfZHVwbGljYXRlX3ZhcmlhYmxlKGNvbnN0IHN0cnVjdCB2YXJpYWJsZSAqdmFyKTsKKwogICAgIC8qCiAgICAgICogRnVuY3Rpb24gcG9pbnRlciBjYWxsZWQgYnkgdGhlIG1hc3RlciBhZ2VudCBmb3Igd3JpdGVzLiAKICAgICAgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCBiL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaAppbmRleCA4MjQ5NWVjLi43OWU1ODhjIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgKKysrIGIvaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oCkBAIC0xMjEsNiArMTIxLDggQEAKICAgICBuZXRzbm1wX21pYl9oYW5kbGVyCiAgICAgICAgICpuZXRzbm1wX2dldF90YWJsZV9oYW5kbGVyKG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnRhYnJlcSk7CisgICAgdm9pZCAgbmV0c25tcF9oYW5kbGVyX293bnNfdGFibGVfaW5mbyhuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyKTsKKyAgICB2b2lkICBuZXRzbm1wX3JlZ2lzdHJhdGlvbl9vd25zX3RhYmxlX2luZm8obmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnKTsKICAgICBpbnQgICBuZXRzbm1wX3JlZ2lzdGVyX3RhYmxlKCAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAgICAqcmVnaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mbyAqdGFicmVxKTsKICAgICBpbnQgICBuZXRzbm1wX3VucmVnaXN0ZXJfdGFibGUobmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAgICAqcmVnaW5mbyk7CkBAIC0xNTAsNiArMTUyLDggQEAKICAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvCiAgICAgICAgICpuZXRzbm1wX2ZpbmRfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8obmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpyZWdpbmZvKTsKKyAgICBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICoKKyAgICAgICAgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19jbG9uZShuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvICp0cmkpOwogICAgIHZvaWQgbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19mcmVlKG5ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm8gKik7CiAKICAgICBuZXRzbm1wX2luZGV4ICogbmV0c25tcF90YWJsZV9pbmRleF9maW5kX25leHRfcm93KG5ldHNubXBfY29udGFpbmVyICpjLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmggYi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaAppbmRleCA5YjhhOWEzLi42NmUzYjNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaAorKysgYi9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaApAQCAtMTUwLDYgKzE1MCw4IEBACiAKICAgICB2b2lkIG5ldHNubXBfcmVnaXN0ZXJfYXV0b19kYXRhX3RhYmxlKG5ldHNubXBfdGFibGVfZGF0YV9zZXQgKnRhYmxlX3NldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKnJlZ2lzdHJhdGlvbl9uYW1lKTsKKyAgICB2b2lkIG5ldHNubXBfdW5yZWdpc3Rlcl9hdXRvX2RhdGFfdGFibGUobmV0c25tcF90YWJsZV9kYXRhX3NldCAqdGFibGVfc2V0LAorCQkJCQkgICAgY2hhciAqcmVnaXN0cmF0aW9uX25hbWUpOwogICAgIHZvaWQgbmV0c25tcF9jb25maWdfcGFyc2VfdGFibGVfc2V0KGNvbnN0IGNoYXIgKnRva2VuLCBjaGFyICpsaW5lKTsKICAgICB2b2lkIG5ldHNubXBfY29uZmlnX3BhcnNlX2FkZF9yb3coICBjb25zdCBjaGFyICp0b2tlbiwgY2hhciAqbGluZSk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCBiL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaAppbmRleCA4Y2RiMWU3Li5jNzFkZDRlIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmgKKysrIGIvaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oCkBAIC01MSw2ICs1MSw5IEBACiAgICAgICAgVGhlIG5ldHNubXBfaXRlcmF0b3JfaW5mbyB0eXBlZGVmIGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgZGlyZWN0bHkgY2FsbGluZyB0aGlzIHN0cnVjdCBpZiB5b3Ugd291bGQgcHJlZmVyLgogICAgICAqLwogICAgIHR5cGVkZWYgc3RydWN0IG5ldHNubXBfaXRlcmF0b3JfaW5mb19zIHsKKyAgICAgICAvKiogTnVtYmVyIG9mIGhhbmRsZXJzIHRoYXQgb3duIHRoaXMgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgaW50IHJlZmNudDsKKwogICAgICAgIC8qKiBSZXNwb25zaWJsZSBmb3I6IHJldHVybmluZyB0aGUgZmlyc3Qgc2V0IG9mICJpbmRleCIgZGF0YSwgYQogICAgICAgICAgICBsb29wLWNvbnRleHQgcG9pbnRlciwgYW5kIG9wdGlvbmFsbHkgYSBkYXRhIGNvbnRleHQKICAgICAgICAgICAgcG9pbnRlciAqLwpAQCAtOTQsNiArOTcsNyBAQAogICAgICAgICB2b2lkICAgICAgICAgICAqbXl2b2lkOwogICAgICAgICBpbnQgICAgICAgICAgICAgZmxhZ3M7CiAjZGVmaW5lIE5FVFNOTVBfSVRFUkFUT1JfRkxBR19TT1JURUQJMHgwMQorI2RlZmluZSBORVRTTk1QX0hBTkRMRVJfT1dOU19JSU5GTwkweDAyCiAKICAgICAgICAvKiogQSBwb2ludGVyIHRvIHRoZSBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvIG9iamVjdAogICAgICAgICAgICB0aGlzIGl0ZXJhdG9yIGlzIHJlZ2lzdGVyZWQgYWxvbmcgd2l0aC4gKi8KQEAgLTExNiwxMSArMTIwLDExIEBACiAgKiBJdGVyYXRvciBBUEk6IE1JQiBtYWludGVuYW5jZQogICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogCisgICAgdm9pZCAgIG5ldHNubXBfaGFuZGxlcl9vd25zX2l0ZXJhdG9yX2luZm8obmV0c25tcF9taWJfaGFuZGxlciAqaCk7CiAgICAgbmV0c25tcF9taWJfaGFuZGxlcgogICAgICAgICAgICpuZXRzbm1wX2dldF90YWJsZV9pdGVyYXRvcl9oYW5kbGVyKG5ldHNubXBfaXRlcmF0b3JfaW5mbyAqaWluZm8pOwotICAgIGludCAgICBuZXRzbm1wX3JlZ2lzdGVyX3RhYmxlX2l0ZXJhdG9yKCAgIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnJlZ2luZm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvICppaW5mbyk7CisgICAgaW50IG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IobmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm8gKmlpbmZvKTsKICAgICB2b2lkICBuZXRzbm1wX2l0ZXJhdG9yX2RlbGV0ZV90YWJsZShuZXRzbm1wX2l0ZXJhdG9yX2luZm8gKmlpbmZvKTsKIAogICAgIHZvaWQgKm5ldHNubXBfZXh0cmFjdF9pdGVyYXRvcl9jb250ZXh0KG5ldHNubXBfcmVxdWVzdF9pbmZvICopOwpAQCAtMTI4LDYgKzEzMiwxMCBAQAogCiAgICAgTmV0c25tcF9Ob2RlX0hhbmRsZXIgbmV0c25tcF90YWJsZV9pdGVyYXRvcl9oZWxwZXJfaGFuZGxlcjsKIAorI2RlZmluZSBuZXRzbm1wX3JlZ2lzdGVyX3RhYmxlX2l0ZXJhdG9yMihyZWdpbmZvLCBpaW5mbykgICAgICAgIFwKKyAgICAoKChpaW5mbyktPmZsYWdzIHw9IE5FVFNOTVBfSEFORExFUl9PV05TX0lJTkZPKSwgICAgICAgICAgIFwKKyAgICAgICAgbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9pdGVyYXRvcigocmVnaW5mbyksIChpaW5mbykpKQorCiAKIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAqIEl0ZXJhdG9yIEFQSTogUm93IG9wZXJhdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oIGIvaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKaW5kZXggM2M2ZDYwNS4uNjcxMDRlZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKKysrIGIvaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKQEAgLTY0LDggKzY0LDEyIEBACiAKIGludCBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfaW5zdGFuY2UoIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKnJlZ2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3dhdGNoZXJfaW5mbyAgICAgICAgICp3aW5mbyk7CitpbnQgbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX2luc3RhbmNlMihuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWdpbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF93YXRjaGVyX2luZm8gICAgICAgICAqd2luZm8pOwogaW50IG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zY2FsYXIoICAgbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqcmVnaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfd2F0Y2hlcl9pbmZvICAgICAgICAgKndpbmZvKTsKK2ludCBuZXRzbm1wX3JlZ2lzdGVyX3dhdGNoZWRfc2NhbGFyMiggIG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gKnJlZ2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3dhdGNoZXJfaW5mbyAgICAgICAgICp3aW5mbyk7CiBpbnQgbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX3RpbWVzdGFtcChuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpyZWdpbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2VyX3QgdGltZXN0YW1wKTsKIGludCBuZXRzbm1wX3dhdGNoZWRfdGltZXN0YW1wX3JlZ2lzdGVyKG5ldHNubXBfbWliX2hhbmRsZXIgKndoYW5kbGVyLApAQCAtMTI0LDYgKzEyOCwxMSBAQAogbmV0c25tcF93YXRjaGVyX2luZm8gKgogbmV0c25tcF9jcmVhdGVfd2F0Y2hlcl9pbmZvNih2b2lkICosIHNpemVfdCwgdV9jaGFyLCBpbnQsIHNpemVfdCwgc2l6ZV90Kik7CiAKK25ldHNubXBfd2F0Y2hlcl9pbmZvICoKK25ldHNubXBfY2xvbmVfd2F0Y2hlcl9pbmZvKG5ldHNubXBfd2F0Y2hlcl9pbmZvICp3aW5mbyk7Cit2b2lkCituZXRzbm1wX293bnNfd2F0Y2hlcl9pbmZvKG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIpOworCiBOZXRzbm1wX05vZGVfSGFuZGxlciAgbmV0c25tcF93YXRjaGVyX2hlbHBlcl9oYW5kbGVyOwogCiBuZXRzbm1wX21pYl9oYW5kbGVyICAqbmV0c25tcF9nZXRfd2F0Y2hlZF90aW1lc3RhbXBfaGFuZGxlcih2b2lkKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmggYi9pbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oCmluZGV4IDExZTgzMmMuLmJhNGJiMjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmgKKysrIGIvaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaApAQCAtNzMsNiArNzMsNyBAQAogCiAgICBpbnQgICAgICAgZmxhZ3M7IC8qIGZvciBuZXQtc25tcCB1c2UgKi8KIAorICAgdW5zaWduZWQgIGdlbmVyYXRpb247CiAgICBvaWQgICAgICAgaWZfaW5kZXg7CiAKICAgIHVfY2hhciAgICBhcnBfcGh5c2FkZHJlc3NbTkVUU05NUF9BQ0NFU1NfQVJQX1BIWVNBRERSX0JVRl9TSVpFXTsKQEAgLTg2LDMxICs4NywzOSBAQAogICAgdV9sb25nICAgIGFycF9sYXN0X3VwZGF0ZWQ7ICAgLyogdGltZXRpY2tzIG9mIGxhc3QgdXBkYXRlICovCiB9IG5ldHNubXBfYXJwX2VudHJ5OwogCisjZGVmaW5lIE5FVFNOTVBfQUNDRVNTX0FSUF9FTlRSWV9GTEFHX0RFTEVURSAgICAgIDB4MDAwMDAwMDEKIAogLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qCiAgKiBBQ0NFU1MgZnVuY3Rpb24gcHJvdG90eXBlcwogICovCi0vKgotICogaWZjb250YWluZXIgaW5pdAotICovCi1uZXRzbm1wX2NvbnRhaW5lciAqIG5ldHNubXBfYWNjZXNzX2FycF9jb250YWluZXJfaW5pdCh1X2ludCBpbml0X2ZsYWdzKTsKLSNkZWZpbmUgTkVUU05NUF9BQ0NFU1NfQVJQX0lOSVRfTk9GTEFHUyAgICAgICAgICAgICAgIDB4MDAwMAorc3RydWN0IG5ldHNubXBfYXJwX2FjY2Vzc19zOwordHlwZWRlZiBzdHJ1Y3QgbmV0c25tcF9hcnBfYWNjZXNzX3MgbmV0c25tcF9hcnBfYWNjZXNzOwogCi0vKgotICogaWZjb250YWluZXIgbG9hZCBhbmQgZnJlZQotICovCi1uZXRzbm1wX2NvbnRhaW5lcioKLW5ldHNubXBfYWNjZXNzX2FycF9jb250YWluZXJfbG9hZChuZXRzbm1wX2NvbnRhaW5lciogY29udGFpbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9pbnQgbG9hZF9mbGFncyk7Ci0jZGVmaW5lIE5FVFNOTVBfQUNDRVNTX0FSUF9MT0FEX05PRkxBR1MgICAgICAgICAgICAgICAweDAwMDAKK3R5cGVkZWYgdm9pZCAoTmV0c25tcEFjY2Vzc0FycFVwZGF0ZSkobmV0c25tcF9hcnBfYWNjZXNzICosIG5ldHNubXBfYXJwX2VudHJ5Kik7Cit0eXBlZGVmIHZvaWQgKE5ldHNubXBBY2Nlc3NBcnBHQykgICAgKG5ldHNubXBfYXJwX2FjY2VzcyAqKTsKIAotdm9pZCBuZXRzbm1wX2FjY2Vzc19hcnBfY29udGFpbmVyX2ZyZWUobmV0c25tcF9jb250YWluZXIgKmNvbnRhaW5lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9pbnQgZnJlZV9mbGFncyk7Ci0jZGVmaW5lIE5FVFNOTVBfQUNDRVNTX0FSUF9GUkVFX05PRkxBR1MgICAgICAgICAgICAgICAweDAwMDAKLSNkZWZpbmUgTkVUU05NUF9BQ0NFU1NfQVJQX0ZSRUVfRE9OVF9DTEVBUiAgICAgICAgICAgIDB4MDAwMQotI2RlZmluZSBORVRTTk1QX0FDQ0VTU19BUlBfRlJFRV9LRUVQX0NPTlRBSU5FUiAgICAgICAgMHgwMDAyCitzdHJ1Y3QgbmV0c25tcF9hcnBfYWNjZXNzX3MgeworICAgIHZvaWQgKm1hZ2ljOworICAgIHZvaWQgKmFyY2hfbWFnaWM7CisgICAgaW50IHN5bmNocm9uaXplZDsKKyAgICB1bnNpZ25lZCBnZW5lcmF0aW9uOworICAgIE5ldHNubXBBY2Nlc3NBcnBVcGRhdGUgKnVwZGF0ZV9ob29rOworICAgIE5ldHNubXBBY2Nlc3NBcnBHQyAqZ2NfaG9vazsKKyAgICBjaGFyICpjYWNoZV9leHBpcmVkOworfTsKIAorbmV0c25tcF9hcnBfYWNjZXNzICoKK25ldHNubXBfYWNjZXNzX2FycF9jcmVhdGUodV9pbnQgaW5pdF9mbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTmV0c25tcEFjY2Vzc0FycFVwZGF0ZSAqdXBkYXRlX2hvb2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgIE5ldHNubXBBY2Nlc3NBcnBHQyAqZ2NfaG9vaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpjYWNoZV90aW1lb3V0LCBpbnQgKmNhY2hlX2ZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpjYWNoZV9leHBpcmVkKTsKKyNkZWZpbmUgTkVUU05NUF9BQ0NFU1NfQVJQX0NSRUFURV9OT0ZMQUdTICAgICAgICAgICAgIDB4MDAwMAorCitpbnQgbmV0c25tcF9hY2Nlc3NfYXJwX2RlbGV0ZShuZXRzbm1wX2FycF9hY2Nlc3MgKmFjY2Vzcyk7CitpbnQgbmV0c25tcF9hY2Nlc3NfYXJwX2xvYWQobmV0c25tcF9hcnBfYWNjZXNzICphY2Nlc3MpOworaW50IG5ldHNubXBfYWNjZXNzX2FycF91bmxvYWQobmV0c25tcF9hcnBfYWNjZXNzICphY2Nlc3MpOwogCiAvKgogICogY3JlYXRlL2ZyZWUgYSBhcnArZW50cnkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBfc2NhbGFycy5oIGIvaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcF9zY2FsYXJzLmgKaW5kZXggZjdiMmUzMS4uMDM2MDFhMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcF9zY2FsYXJzLmgKKysrIGIvaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcF9zY2FsYXJzLmgKQEAgLTgsOSArOCwxNCBAQAogaW50IG5ldHNubXBfYXJjaF9pcF9zY2FsYXJzX2lwRm9yd2FyZGluZ19nZXQodV9sb25nICp2YWx1ZSk7CiBpbnQgbmV0c25tcF9hcmNoX2lwX3NjYWxhcnNfaXBGb3J3YXJkaW5nX3NldCh1X2xvbmcgdmFsdWUpOwogCitpbnQgbmV0c25tcF9hcmNoX2lwX3NjYWxhcnNfaXBEZWZhdWx0VFRMX2dldCh1X2xvbmcgKnZhbHVlKTsKK2ludCBuZXRzbm1wX2FyY2hfaXBfc2NhbGFyc19pcERlZmF1bHRUVExfc2V0KHVfbG9uZyB2YWx1ZSk7CisKIGludCBuZXRzbm1wX2FyY2hfaXBfc2NhbGFyc19pcHY2SXBGb3J3YXJkaW5nX2dldCh1X2xvbmcgKnZhbHVlKTsKIGludCBuZXRzbm1wX2FyY2hfaXBfc2NhbGFyc19pcHY2SXBGb3J3YXJkaW5nX3NldCh1X2xvbmcgdmFsdWUpOwogCitpbnQgbmV0c25tcF9hcmNoX2lwX3NjYWxhcnNfaXB2NklwRGVmYXVsdEhvcExpbWl0X2dldCh1X2xvbmcgKnZhbHVlKTsKK2ludCBuZXRzbm1wX2FyY2hfaXBfc2NhbGFyc19pcHY2SXBEZWZhdWx0SG9wTGltaXRfc2V0KHVfbG9uZyB2YWx1ZSk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCBiL2luY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgKaW5kZXggNzUwNTZmMi4uMGJmZjEwOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaAorKysgYi9pbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oCkBAIC0xNDQsNiArMTQ0LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWRkcl9sZW4sIGludCBwZnhfbGVuKTsKIAogaW50IG5ldHNubXBfaXBhZGRyZXNzX2lwdjRfcHJlZml4X2xlbihpbl9hZGRyX3QgbWFzayk7Citpbl9hZGRyX3QgbmV0c25tcF9pcGFkZHJlc3NfaXB2NF9tYXNrKGludCBsZW4pOworaW50IG5ldHNubXBfaXBhZGRyZXNzX2lwdjZfcHJlZml4X2xlbihzdHJ1Y3QgaW42X2FkZHIgbWFzayk7CiAKIGludCBuZXRzbm1wX2lwYWRkcmVzc19mbGFnc19jb3B5KHVfbG9uZyAqaXBBZGRyZXNzUHJlZml4QWR2UHJlZmVycmVkTGlmZXRpbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKmlwQWRkcmVzc1ByZWZpeEFkdlZhbGlkTGlmZXRpbWUsCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCBiL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oCmluZGV4IGMyNWFkNGIuLjU2Y2RiYWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oCkBAIC01NCw2ICs1NCw3IEBACiAgICAgTkVUU05NUF9JTVBPUlQKICAgICB2b2lkICAgICAgICAgICAgaW5pdF9jYWxsYmFja3Modm9pZCk7CiAKKyAgICBORVRTTk1QX0lNUE9SVAogICAgIGludCAgICAgICAgICAgICBuZXRzbm1wX3JlZ2lzdGVyX2NhbGxiYWNrKGludCBtYWpvciwgaW50IG1pbm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBDYWxsYmFjayAqIG5ld19jYWxsYmFjaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICphcmcsIGludCBwcmlvcml0eSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oIGIvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQ3NWM2Zi4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oCisrKyAvZGV2L251bGwKQEAgLTEsMjkyICswLDAgQEAKLS8qIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvcHlyaWdodChzKS4gIFNlZQotICogdGhlIE5ldC1TTk1QJ3MgQ09QWUlORyBmaWxlIGZvciBtb3JlIGRldGFpbHMgYW5kIG90aGVyIGNvcHlyaWdodHMKLSAqIHRoYXQgbWF5IGFwcGx5OgotICovCi0vKgotICogUG9ydGlvbnMgb2YgdGhpcyBmaWxlIGFyZSBjb3B5cmlnaHRlZCBieToKLSAqIENvcHlyaWdodCCpIDIwMDMgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogVXNlIGlzIHN1YmplY3QgdG8gbGljZW5zZSB0ZXJtcyBzcGVjaWZpZWQgaW4gdGhlIENPUFlJTkcgZmlsZQotICogZGlzdHJpYnV0ZWQgd2l0aCB0aGUgTmV0LVNOTVAgcGFja2FnZS4KLSAqLwotCi0vKgotICogIENNVSBjb21wYXRhYmlsaXR5IGRlZmluaXRpb25zIGFuZCBzdHJ1Y3R1cmVzLgotICoKLSAqICAgIChzaW5jZSB0aGUgVUNEIHBhY2thZ2Ugc3BsaXQgZnJvbSB0aGUgQ01VIG9uZQotICogICAgIGFib3V0IDggeWVhcnMgYWdvLCB0aGF0J3MgcHJvYmFibHkgZW5vdWdoIHRpbWUKLSAqICAgICBmb3IgcGVvcGxlIHRvIGNvbnZlcnQgYW55IG91dHN0YW5kaW5nIGNvZGUhKQotICovCi0KLSNpZm5kZWYgTkVUX1NOTVBfQ01VX0NPTVBBVF9ICi0jZGVmaW5lIE5FVF9TTk1QX0NNVV9DT01QQVRfSAotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAgICAgICAgICAiQyIgewotI2VuZGlmCi0KLSAgICAvKgotICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICAgKiAqCi0gICAgICogKiBFbnVtZXJhdGlvbnMgYW5kIGRlZmluaXRpb25zCi0gICAgICogKgotICAgICAqICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PSAKLSAgICAgKi8KLSNpbmNsdWRlIDxuZXQtc25tcC9kZWZpbml0aW9ucy5oPgotICAgIC8qCi0gICAgICogRnJvbSBwYXJzZS5oIAotICAgICAqLwotI2RlZmluZSBBQ0NFU1NfUkVBRE9OTFkJCU1JQl9BQ0NFU1NfUkVBRE9OTFkKLSNkZWZpbmUgQUNDRVNTX1JFQURXUklURQlNSUJfQUNDRVNTX1JFQURXUklURQotI2RlZmluZSBBQ0NFU1NfV1JJVEVPTkxZCU1JQl9BQ0NFU1NfV1JJVEVPTkxZCi0jZGVmaW5lIEFDQ0VTU19OT0FDQ0VTUwkJTUlCX0FDQ0VTU19OT0FDQ0VTUwotI2RlZmluZSBBQ0NFU1NfTk9USUZZCQlNSUJfQUNDRVNTX05PVElGWQotI2RlZmluZSBBQ0NFU1NfQ1JFQVRFCQlNSUJfQUNDRVNTX0NSRUFURQotI2RlZmluZSBTVEFUVVNfTUFOREFUT1JZCU1JQl9TVEFUVVNfTUFOREFUT1JZCi0jZGVmaW5lIFNUQVRVU19PUFRJT05BTAkJTUlCX1NUQVRVU19PUFRJT05BTAotI2RlZmluZSBTVEFUVVNfT0JTT0xFVEUJCU1JQl9TVEFUVVNfT0JTT0xFVEUKLSNkZWZpbmUgU1RBVFVTX0RFUFJFQ0FURUQJTUlCX1NUQVRVU19ERVBSRUNBVEVECi0jZGVmaW5lIFNUQVRVU19DVVJSRU5UCQlNSUJfU1RBVFVTX0NVUlJFTlQKLSAgICAvKgotICAgICAqIEZyb20gc21ucF9pbXBsLmggCi0gICAgICovCi0jZGVmaW5lIElOVEVHRVIJICAgIEFTTl9JTlRFR0VSCi0jZGVmaW5lIFNUUklORwkgICAgQVNOX09DVEVUX1NUUgotI2RlZmluZSBPQkpJRAkgICAgQVNOX09CSkVDVF9JRAotI2RlZmluZSBOVUxMT0JKCSAgICBBU05fTlVMTAotI2RlZmluZSBCSVRTVFJJTkcgICBBU05fQklUX1NUUiAvKiBISVNUT1JJQyAtIGRvbid0IHVzZSAqLwotI2RlZmluZSBJUEFERFJFU1MgICBBU05fSVBBRERSRVNTCi0jZGVmaW5lIENPVU5URVIJICAgIEFTTl9DT1VOVEVSCi0jZGVmaW5lIEdBVUdFCSAgICBBU05fR0FVR0UKLSNkZWZpbmUgVU5TSUdORUQgICAgQVNOX1VOU0lHTkVECi0jZGVmaW5lIFRJTUVUSUNLUyAgIEFTTl9USU1FVElDS1MKLSNkZWZpbmUgQVNOVF9PUEFRVUUgQVNOX09QQVFVRQotI2RlZmluZSBOU0FQCSAgICBBU05fTlNBUAotI2RlZmluZSBDT1VOVEVSNjQgICBBU05fQ09VTlRFUjY0Ci0jZGVmaW5lIFVJTlRFR0VSICAgIEFTTl9VSU5URUdFUgotICAgIC8qCi0gICAgICogRnJvbSBzbm1wLmggCi0gICAgICovCi0jZGVmaW5lIEdFVF9SRVFfTVNHCSAgICBTTk1QX01TR19HRVQKLSNkZWZpbmUgR0VUTkVYVF9SRVFfTVNHCSAgICBTTk1QX01TR19HRVRORVhUCi0jZGVmaW5lIEdFVF9SU1BfTVNHCSAgICBTTk1QX01TR19SRVNQT05TRQotI2RlZmluZSBTRVRfUkVRX01TRwkgICAgU05NUF9NU0dfU0VUCi0jZGVmaW5lIFRSUF9SRVFfTVNHCSAgICBTTk1QX01TR19UUkFQCi0jZGVmaW5lIEJVTEtfUkVRX01TRwkgICAgU05NUF9NU0dfR0VUQlVMSwotI2RlZmluZSBJTkZPUk1fUkVRX01TRwkgICAgU05NUF9NU0dfSU5GT1JNCi0jZGVmaW5lIFRSUDJfUkVRX01TRwkgICAgU05NUF9NU0dfVFJBUDIKLSNkZWZpbmUgUkVQT1JUX1JTUF9NU0cJICAgIFNOTVBfTVNHX1JFUE9SVAotICAgIC8qCi0gICAgICogc2luY2UgQ01VIFYxLjUgCi0gICAgICovCi0jZGVmaW5lIFNOTVBfUERVX0dFVAkgICAgU05NUF9NU0dfR0VUCi0jZGVmaW5lIFNOTVBfUERVX0dFVE5FWFQgICAgU05NUF9NU0dfR0VUTkVYVAotI2RlZmluZSBTTk1QX1BEVV9SRVNQT05TRSAgIFNOTVBfTVNHX1JFU1BPTlNFCi0jZGVmaW5lIFNOTVBfUERVX1NFVCAgICAgICAgU05NUF9NU0dfU0VUCi0jZGVmaW5lIFNOTVBfUERVX0dFVEJVTEsgICAgU05NUF9NU0dfR0VUQlVMSwotI2RlZmluZSBTTk1QX1BEVV9JTkZPUk0gICAgIFNOTVBfTVNHX0lORk9STQotI2RlZmluZSBTTk1QX1BEVV9WMlRSQVAgICAgIFNOTVBfTVNHX1RSQVAyCi0jZGVmaW5lIFNOTVBfUERVX1JFUE9SVCAgICAgU05NUF9NU0dfUkVQT1JUCi0jZGVmaW5lIFNOTVBfVFJBUF9BVVRIRU5USUNBVElPTkZBSUxVUkUgU05NUF9UUkFQX0FVVEhGQUlMCi0jZGVmaW5lIFNNSV9JTlRFR0VSICAgICBBU05fSU5URUdFUgotI2RlZmluZSBTTUlfU1RSSU5HICAgICAgQVNOX09DVEVUX1NUUgotI2RlZmluZSBTTUlfT0JKSUQgICAgICAgQVNOX09CSkVDVF9JRAotI2RlZmluZSBTTUlfTlVMTE9CSiAgICAgQVNOX05VTEwKLSNkZWZpbmUgU01JX0lQQUREUkVTUyAgIEFTTl9JUEFERFJFU1MKLSNkZWZpbmUgU01JX0NPVU5URVIzMglBU05fQ09VTlRFUgotI2RlZmluZSBTTUlfR0FVR0UzMglBU05fR0FVR0UKLSNkZWZpbmUgU01JX1VOU0lHTkVEMzIgIFNNSV9HQVVHRTMyCi0jZGVmaW5lIFNNSV9USU1FVElDS1MgICBBU05fVElNRVRJQ0tTCi0jZGVmaW5lIFNNSV9PUEFRVUUgICAgICBBU05fT1BBUVVFCi0jZGVmaW5lIFNNSV9DT1VOVEVSNjQgICBBU05fQ09VTlRFUjY0Ci0gICAgLyoKLSAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgICogKgotICAgICAqICogICAgIEZ1bmN0aW9uIGRlY2xhcmF0aW9ucwotICAgICAqICogICAgIGFuZCBnbG9iYWwgdmFyaWFibGVzCi0gICAgICogKgotICAgICAqICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PSAKLSAgICAgKi8KLWV4dGVybiBpbnQgICAgICBzbm1wX2R1bXBfcGFja2V0OyAgICAgICAvKiBmcm9tIHNubXBfYXBpLmggKi8KLWV4dGVybiBpbnQgICAgICBxdWlja19wcmludDsgICAgLyogZnJvbSBzbm1wX2FwaS5oICovCi0KLSNpbmNsdWRlIDxuZXQtc25tcC90eXBlcy5oPiAgICAgLyogZm9yIHNubXBfcGR1ICYgc25tcF9zZXNzaW9uICovCi0KLWludCAgICAgICAgICAgICBtaWJfVHh0VG9PaWQoY2hhciAqLCBvaWQgKiosIHNpemVfdCAqKTsgLyogZnJvbSBzbm1wLmggKi8KLWludCAgICAgICAgICAgICBtaWJfT2lkVG9UeHQob2lkICosIHNpemVfdCwgY2hhciAqLCBzaXplX3QpOyAgICAvKiBmcm9tIHNubXAuaCAqLwotdV9jaGFyICAgICAgICAgKmNtdV9zbm1wX3BhcnNlKG5ldHNubXBfc2Vzc2lvbiAqIHNlc3Npb24sIG5ldHNubXBfcGR1ICpwZHUsIHVfY2hhciAqIGRhdGEsIHNpemVfdCBsZW5ndGgpOyAgICAgIC8qIGZyb20gc25tcC5oICovCi0KLQotCi0KLSAgICAgICAgLyoKLSAgICAgICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgICAgICAgKiAqCi0gICAgICAgICAqICogTUlCLUlJIGRhdGEgc3RydWN0dXJlcwotICAgICAgICAgKiAqICAgIChmcm9tIG1pYi5oKSAKLSAgICAgICAgICogKgotICAgICAgICAgKiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gCi0gICAgICAgICAqLwotCi0KLXN0cnVjdCBtaWJfc3lzdGVtIHsKLSAgICBjaGFyICAgICAgICAgICAgc3lzRGVzY3JbMzJdOyAgICAgICAvKiB0ZXh0dWFsIGRlc2NyaXB0aW9uICovCi0gICAgdV9jaGFyICAgICAgICAgIHN5c09iamVjdElEWzE2XTsgICAgLyogT0JKRUNUIElERU5USUZJRVIgb2Ygc3lzdGVtICovCi0gICAgdV9jaGFyICAgICAgICAgIE9iaklETGVuOyAgIC8qIGxlbmd0aCBvZiBzeXNPYmplY3RJRCAqLwotICAgIHVfaW50ICAgICAgICAgICBzeXNVcFRpbWU7ICAvKiBVcHRpbWUgaW4gMTAwL3Mgb2YgYSBzZWNvbmQgKi8KLX07Ci0KLXN0cnVjdCBtaWJfaW50ZXJmYWNlIHsKLSAgICBpbnQgICAgICAgICAgICAgaWZOdW1iZXI7ICAgLyogbnVtYmVyIG9mIGludGVyZmFjZXMgKi8KLX07Ci0KLXN0cnVjdCBtaWJfaWZFbnRyeSB7Ci0gICAgaW50ICAgICAgICAgICAgIGlmSW5kZXg7ICAgIC8qIGluZGV4IG9mIHRoaXMgaW50ZXJmYWNlICAqLwotICAgIGNoYXIgICAgICAgICAgICBpZkRlc2NyWzMyXTsgICAgICAgIC8qIGVuZ2xpc2ggZGVzY3JpcHRpb24gb2YgaW50ZXJmYWNlICovCi0gICAgaW50ICAgICAgICAgICAgIGlmVHlwZTsgICAgIC8qIG5ldHdvcmsgdHlwZSBvZiBkZXZpY2UgICAqLwotICAgIGludCAgICAgICAgICAgICBpZk10dTsgICAgICAvKiBzaXplIG9mIGxhcmdlc3QgcGFja2V0IGluIGJ5dGVzICAqLwotICAgIHVfaW50ICAgICAgICAgICBpZlNwZWVkOyAgICAvKiBiYW5kd2lkdGggaW4gYml0cy9zZWMgICAgKi8KLSAgICB1X2NoYXIgICAgICAgICAgaWZQaHlzQWRkcmVzc1sxMV07ICAvKiBpbnRlcmZhY2UncyBhZGRyZXNzICovCi0gICAgdV9jaGFyICAgICAgICAgIFBoeXNBZGRyTGVuOyAgICAgICAgLyogbGVuZ3RoIG9mIHBoeXNBZGRyICovCi0gICAgaW50ICAgICAgICAgICAgIGlmQWRtaW5TdGF0dXM7ICAgICAgLyogZGVzaXJlZCBzdGF0ZSBvZiBpbnRlcmZhY2UgKi8KLSAgICBpbnQgICAgICAgICAgICAgaWZPcGVyU3RhdHVzOyAgICAgICAvKiBjdXJyZW50IG9wZXJhdGlvbmFsIHN0YXR1cyAqLwotICAgIHVfaW50ICAgICAgICAgICBpZkxhc3RDaGFuZ2U7ICAgICAgIC8qIHZhbHVlIG9mIHN5c1VwVGltZSB3aGVuIGN1cnJlbnQgc3RhdGUgZW50ZXJlZCAqLwotICAgIHVfaW50ICAgICAgICAgICBpZkluT2N0ZXRzOyAvKiBudW1iZXIgb2Ygb2N0ZXRzIHJlY2VpdmVkIG9uIGludGVyZmFjZSAqLwotICAgIHVfaW50ICAgICAgICAgICBpZkluVWNhc3RQa3RzOyAgICAgIC8qIG51bWJlciBvZiB1bmljYXN0IHBhY2tldHMgZGVsaXZlcmVkICovCi0gICAgdV9pbnQgICAgICAgICAgIGlmSW5OVWNhc3RQa3RzOyAgICAgLyogbnVtYmVyIG9mIGJyb2FkY2FzdHMgb3IgbXVsdGljYXN0cyAqLwotICAgIHVfaW50ICAgICAgICAgICBpZkluRGlzY2FyZHM7ICAgICAgIC8qIG51bWJlciBvZiBwYWNrZXRzIGRpc2NhcmRlZCB3aXRoIG5vIGVycm9yICovCi0gICAgdV9pbnQgICAgICAgICAgIGlmSW5FcnJvcnM7IC8qIG51bWJlciBvZiBwYWNrZXRzIGNvbnRhaW5pbmcgZXJyb3JzICovCi0gICAgdV9pbnQgICAgICAgICAgIGlmSW5Vbmtub3duUHJvdG9zOyAgLyogbnVtYmVyIG9mIHBhY2tldHMgd2l0aCB1bmtub3duIHByb3RvY29sICovCi0gICAgdV9pbnQgICAgICAgICAgIGlmT3V0T2N0ZXRzOyAgICAgICAgLyogbnVtYmVyIG9mIG9jdGV0cyB0cmFuc21pdHRlZCAqLwotICAgIHVfaW50ICAgICAgICAgICBpZk91dFVjYXN0UGt0czsgICAgIC8qIG51bWJlciBvZiB1bmljYXN0IHBhY2tldHMgc2VudCAqLwotICAgIHVfaW50ICAgICAgICAgICBpZk91dE5VY2FzdFBrdHM7ICAgIC8qIG51bWJlciBvZiBicm9hZGNhc3Qgb3IgbXVsdGljYXN0IHBrdHMgKi8KLSAgICB1X2ludCAgICAgICAgICAgaWZPdXREaXNjYXJkczsgICAgICAvKiBudW1iZXIgb2YgcGFja2V0cyBkaXNjYXJkZWQgd2l0aCBubyBlcnJvciAqLwotICAgIHVfaW50ICAgICAgICAgICBpZk91dEVycm9yczsgICAgICAgIC8qIG51bWJlciBvZiBwa3RzIGRpc2NhcmRlZCB3aXRoIGFuIGVycm9yICovCi0gICAgdV9pbnQgICAgICAgICAgIGlmT3V0UUxlbjsgIC8qIG51bWJlciBvZiBwYWNrZXRzIGluIG91dHB1dCBxdWV1ZSAqLwotfTsKLQotc3RydWN0IG1pYl9hdEVudHJ5IHsKLSAgICBpbnQgICAgICAgICAgICAgYXRJZkluZGV4OyAgLyogaW50ZXJmYWNlIG9uIHdoaWNoIHRoaXMgZW50cnkgbWFwcyAqLwotICAgIHVfY2hhciAgICAgICAgICBhdFBoeXNBZGRyZXNzWzExXTsgIC8qIHBoeXNpY2FsIGFkZHJlc3Mgb2YgZGVzdGluYXRpb24gKi8KLSAgICB1X2NoYXIgICAgICAgICAgUGh5c0FkZHJlc3NMZW47ICAgICAvKiBsZW5ndGggb2YgYXRQaHlzQWRkcmVzcyAqLwotICAgIHVfaW50ICAgICAgICAgICBhdE5ldEFkZHJlc3M7ICAgICAgIC8qIElQIGFkZHJlc3Mgb2YgcGh5c2ljYWwgYWRkcmVzcyAqLwotfTsKLQotc3RydWN0IG1pYl9pcCB7Ci0gICAgaW50ICAgICAgICAgICAgIGlwRm9yd2FyZGluZzsgICAgICAgLyogMSBpZiBnYXRld2F5LCAyIGlmIGhvc3QgKi8KLSAgICBpbnQgICAgICAgICAgICAgaXBEZWZhdWx0VFRMOyAgICAgICAvKiBkZWZhdWx0IFRUTCBmb3IgcGt0cyBvcmlnaW5hdGluZyBoZXJlICovCi0gICAgdV9pbnQgICAgICAgICAgIGlwSW5SZWNlaXZlczsgICAgICAgLyogbm8uIG9mIElQIHBhY2tldHMgcmVjZWl2ZWQgZnJvbSBpbnRlcmZhY2VzICovCi0gICAgdV9pbnQgICAgICAgICAgIGlwSW5IZHJFcnJvcnM7ICAgICAgLyogbnVtYmVyIG9mIHBrdHMgZGlzY2FyZGVkIGR1ZSB0byBoZWFkZXIgZXJyb3JzICovCi0gICAgdV9pbnQgICAgICAgICAgIGlwSW5BZGRyRXJyb3JzOyAgICAgLyogbm8uIG9mIHBrdHMgZGlzY2FyZGVkIGR1ZSB0byBiYWQgYWRkcmVzcyAqLwotICAgIHVfaW50ICAgICAgICAgICBpcEZvcndEYXRhZ3JhbXM7ICAgIC8qIG51bWJlciBwZiBwa3RzIGZvcndhcmRlZCB0aHJvdWdoIHRoaXMgZW50aXR5ICovCi0gICAgdV9pbnQgICAgICAgICAgIGlwSW5Vbmtub3duUHJvdG9zOyAgLyogbm8uIG9mIGxvY2FsLWFkZHJlc3NlZCBwa3RzIHcvdW5rbm93biBwcm90byAqLwotICAgIHVfaW50ICAgICAgICAgICBpcEluRGlzY2FyZHM7ICAgICAgIC8qIG51bWJlciBvZiBlcnJvci1mcmVlIHBhY2tldHMgZGlzY2FyZGVkICovCi0gICAgdV9pbnQgICAgICAgICAgIGlwSW5EZWxpdmVyczsgICAgICAgLyogbnVtYmVyIG9mIGRhdGFncmFtcyBkZWxpdmVyZWQgdG8gdXBwZXIgbGV2ZWwgKi8KLSAgICB1X2ludCAgICAgICAgICAgaXBPdXRSZXF1ZXN0czsgICAgICAvKiBudW1iZXIgb2YgSVAgZGF0YWdyYW1zIG9yaWdpbmF0aW5nIGxvY2FsbHkgKi8KLSAgICB1X2ludCAgICAgICAgICAgaXBPdXREaXNjYXJkczsgICAgICAvKiBudW1iZXIgb2YgZXJyb3ItZnJlZSBvdXRwdXQgSVAgcGt0cyBkaXNjYXJkZWQgKi8KLSAgICB1X2ludCAgICAgICAgICAgaXBPdXROb1JvdXRlczsgICAgICAvKiBudW1iZXIgb2YgSVAgcGt0cyBkaXNjYXJkZWQgZHVlIHRvIG5vIHJvdXRlICovCi0gICAgaW50ICAgICAgICAgICAgIGlwUmVhc21UaW1lb3V0OyAgICAgLyogc2Vjb25kcyBmcmFnbWVudCBpcyBoZWxkIGF3YWl0aW5nIHJlYXNzZW1ibHkgKi8KLSAgICB1X2ludCAgICAgICAgICAgaXBSZWFzbVJlcWRzOyAgICAgICAvKiBuby4gb2YgZnJhZ21lbnRzIG5lZWRpbmcgcmVhc3NlbWJseSAoaGVyZSkgKi8KLSAgICB1X2ludCAgICAgICAgICAgaXBSZWFzbU9LczsgLyogbnVtYmVyIG9mIGZyYWdtZW50cyByZWFzc2VtYmxlZCAqLwotICAgIHVfaW50ICAgICAgICAgICBpcFJlYXNtRmFpbHM7ICAgICAgIC8qIG51bWJlciBvZiBmYWlsdXJlcyBpbiBJUCByZWFzc2VtYmx5ICovCi0gICAgdV9pbnQgICAgICAgICAgIGlwRnJhZ09LczsgIC8qIG51bWJlciBvZiBkYXRhZ3JhbXMgZnJhZ21lbnRlZCBoZXJlICovCi0gICAgdV9pbnQgICAgICAgICAgIGlwRnJhZ0ZhaWxzOyAgICAgICAgLyogbm8uIHBrdHMgdW5hYmxlIHRvIGJlIGZyYWdtZW50ZWQgaGVyZSAqLwotICAgIHVfaW50ICAgICAgICAgICBpcEZyYWdDcmVhdGVzOyAgICAgIC8qIG51bWJlciBvZiBJUCBmcmFnbWVudHMgY3JlYXRlZCBoZXJlICovCi19OwotCi1zdHJ1Y3QgbWliX2lwQWRkckVudHJ5IHsKLSAgICB1X2ludCAgICAgICAgICAgaXBBZEVudEFkZHI7ICAgICAgICAvKiBJUCBhZGRyZXNzIG9mIHRoaXMgZW50cnkgKi8KLSAgICBpbnQgICAgICAgICAgICAgaXBBZEVudElmSW5kZXg7ICAgICAvKiBJRiBmb3IgdGhpcyBlbnRyeSAqLwotICAgIHVfaW50ICAgICAgICAgICBpcEFkRW50TmV0TWFzazsgICAgIC8qIHN1Ym5ldCBtYXNrIG9mIHRoaXMgZW50cnkgKi8KLSAgICBpbnQgICAgICAgICAgICAgaXBBZEVudEJjYXN0QWRkcjsgICAvKiByZWFkIHRoZSBNSUIgZm9yIHRoaXMgb25lICovCi0gICAgaW50IAkgICAgaXBBZEVudFJlYXNtTWF4U2l6ZTsKLQkJLyogbWF4IHNpemUgZm9yIGRnIHJlYXNzZW1ibHkgICB7aXBBZGRyRW50cnkgNX0gKi8KLX07Ci0KLXN0cnVjdCBtaWJfaXBSb3V0ZUVudHJ5IHsKLSAgICB1X2ludCAgICAgICAgICAgaXBSb3V0ZURlc3Q7ICAgICAgICAvKiBkZXN0aW5hdGlvbiBJUCBhZGRyIGZvciB0aGlzIHJvdXRlICovCi0gICAgaW50ICAgICAgICAgICAgIGlwUm91dGVJZkluZGV4OyAgICAgLyogaW5kZXggb2YgbG9jYWwgSUYgZm9yIHRoaXMgcm91dGUgKi8KLSAgICBpbnQgICAgICAgICAgICAgaXBSb3V0ZU1ldHJpYzE7ICAgICAvKiBQcmltYXJ5IHJvdXRpbmcgbWV0cmljICovCi0gICAgaW50ICAgICAgICAgICAgIGlwUm91dGVNZXRyaWMyOyAgICAgLyogQWx0ZXJuYXRlIHJvdXRpbmcgbWV0cmljICovCi0gICAgaW50ICAgICAgICAgICAgIGlwUm91dGVNZXRyaWMzOyAgICAgLyogQWx0ZXJuYXRlIHJvdXRpbmcgbWV0cmljICovCi0gICAgaW50ICAgICAgICAgICAgIGlwUm91dGVNZXRyaWM0OyAgICAgLyogQWx0ZXJuYXRlIHJvdXRpbmcgbWV0cmljICovCi0gICAgdV9pbnQgICAgICAgICAgIGlwUm91dGVOZXh0SG9wOyAgICAgLyogSVAgYWRkciBvZiBuZXh0IGhvcCAqLwotICAgIGludCAgICAgICAgICAgICBpcFJvdXRlVHlwZTsgICAgICAgIC8qIFR5cGUgb2YgdGhpcyByb3V0ZSAqLwotICAgIGludCAgICAgICAgICAgICBpcFJvdXRlUHJvdG87ICAgICAgIC8qIEhvdyB0aGlzIHJvdXRlIHdhcyBsZWFybmVkICovCi0gICAgaW50ICAgICAgICAgICAgIGlwUm91dGVBZ2U7IC8qIE5vLiBvZiBzZWNvbmRzIHNpbmNlIHVwZGF0aW5nIHRoaXMgcm91dGUgKi8KLX07Ci0KLXN0cnVjdCBtaWJfaWNtcCB7Ci0gICAgdV9pbnQgICAgICAgICAgIGljbXBJbk1zZ3M7IC8qIFRvdGFsIG9mIElDTVAgbXNncyByZWNlaXZlZCAqLwotICAgIHVfaW50ICAgICAgICAgICBpY21wSW5FcnJvcnM7ICAgICAgIC8qIFRvdGFsIG9mIElDTVAgbXNncyByZWNlaXZlZCB3aXRoIGVycm9ycyAqLwotICAgIHVfaW50ICAgICAgICAgICBpY21wSW5EZXN0VW5yZWFjaHM7Ci0gICAgdV9pbnQgICAgICAgICAgIGljbXBJblRpbWVFeGNkczsKLSAgICB1X2ludCAgICAgICAgICAgaWNtcEluUGFybVByb2JzOwotICAgIHVfaW50ICAgICAgICAgICBpY21wSW5TcmNRdWVuY2hzOwotICAgIHVfaW50ICAgICAgICAgICBpY21wSW5SZWRpcmVjdHM7Ci0gICAgdV9pbnQgICAgICAgICAgIGljbXBJbkVjaG9zOwotICAgIHVfaW50ICAgICAgICAgICBpY21wSW5FY2hvUmVwczsKLSAgICB1X2ludCAgICAgICAgICAgaWNtcEluVGltZXN0YW1wczsKLSAgICB1X2ludCAgICAgICAgICAgaWNtcEluVGltZXN0YW1wUmVwczsKLSAgICB1X2ludCAgICAgICAgICAgaWNtcEluQWRkck1hc2tzOwotICAgIHVfaW50ICAgICAgICAgICBpY21wSW5BZGRyTWFza1JlcHM7Ci0gICAgdV9pbnQgICAgICAgICAgIGljbXBPdXRNc2dzOwotICAgIHVfaW50ICAgICAgICAgICBpY21wT3V0RXJyb3JzOwotICAgIHVfaW50ICAgICAgICAgICBpY21wT3V0RGVzdFVucmVhY2hzOwotICAgIHVfaW50ICAgICAgICAgICBpY21wT3V0VGltZUV4Y2RzOwotICAgIHVfaW50ICAgICAgICAgICBpY21wT3V0UGFybVByb2JzOwotICAgIHVfaW50ICAgICAgICAgICBpY21wT3V0U3JjUXVlbmNoczsKLSAgICB1X2ludCAgICAgICAgICAgaWNtcE91dFJlZGlyZWN0czsKLSAgICB1X2ludCAgICAgICAgICAgaWNtcE91dEVjaG9zOwotICAgIHVfaW50ICAgICAgICAgICBpY21wT3V0RWNob1JlcHM7Ci0gICAgdV9pbnQgICAgICAgICAgIGljbXBPdXRUaW1lc3RhbXBzOwotICAgIHVfaW50ICAgICAgICAgICBpY21wT3V0VGltZXN0YW1wUmVwczsKLSAgICB1X2ludCAgICAgICAgICAgaWNtcE91dEFkZHJNYXNrczsKLSAgICB1X2ludCAgICAgICAgICAgaWNtcE91dEFkZHJNYXNrUmVwczsKLX07Ci0KLXN0cnVjdCBtaWJfdGNwIHsKLSAgICBpbnQgICAgICAgICAgICAgdGNwUnRvQWxnb3JpdGhtOyAgICAvKiByZXRyYW5zbWlzc2lvbiB0aW1lb3V0IGFsZ29yaXRobSAqLwotICAgIGludCAgICAgICAgICAgICB0Y3BSdG9NaW47ICAvKiBtaW5pbXVtIHJldHJhbnNtaXNzaW9uIHRpbWVvdXQgKG1TKSAqLwotICAgIGludCAgICAgICAgICAgICB0Y3BSdG9NYXg7ICAvKiBtYXhpbXVtIHJldHJhbnNtaXNzaW9uIHRpbWVvdXQgKG1TKSAqLwotICAgIGludCAgICAgICAgICAgICB0Y3BNYXhDb25uOyAvKiBtYXhpbXVtIHRjcCBjb25uZWN0aW9ucyBwb3NzaWJsZSAqLwotICAgIHVfaW50ICAgICAgICAgICB0Y3BBY3RpdmVPcGVuczsgICAgIC8qIG51bWJlciBvZiBTWU4tU0VOVCAtPiBDTE9TRUQgdHJhbnNpdGlvbnMgKi8KLSAgICB1X2ludCAgICAgICAgICAgdGNwUGFzc2l2ZU9wZW5zOyAgICAvKiBudW1iZXIgb2YgU1lOLVJDVkQgLT4gTElTVEVOIHRyYW5zaXRpb25zICovCi0gICAgdV9pbnQgICAgICAgICAgIHRjcEF0dGVtcHRGYWlsczsgICAgLyooU1lOLVNFTlQsU1lOLVJDVkQpLT5DTE9TRUQgb3IgU1lOLVJDVkQtPkxJU1RFTiAqLwotICAgIHVfaW50ICAgICAgICAgICB0Y3BFc3RhYlJlc2V0czsgICAgIC8qIChFU1RBQkxJU0hFRCxDTE9TRS1XQUlUKSAtPiBDTE9TRUQgKi8KLSAgICB1X2ludCAgICAgICAgICAgdGNwQ3VyckVzdGFiOyAgICAgICAvKiBudW1iZXIgaW4gRVNUQUJMSVNIRUQgb3IgQ0xPU0UtV0FJVCBzdGF0ZSAqLwotICAgIHVfaW50ICAgICAgICAgICB0Y3BJblNlZ3M7ICAvKiBudW1iZXIgb2Ygc2VnbWVudHMgcmVjZWl2ZWQgKi8KLSAgICB1X2ludCAgICAgICAgICAgdGNwT3V0U2VnczsgLyogbnVtYmVyIG9mIHNlZ21lbnRzIHNlbnQgKi8KLSAgICB1X2ludCAgICAgICAgICAgdGNwUmV0cmFuc1NlZ3M7ICAgICAvKiBudW1iZXIgb2YgcmV0cmFuc21pdHRlZCBzZWdtZW50cyAqLwotfTsKLQotc3RydWN0IG1pYl90Y3BDb25uRW50cnkgewotICAgIGludCAgICAgICAgICAgICB0Y3BDb25uU3RhdGU7ICAgICAgIC8qIFN0YXRlIG9mIHRoaXMgY29ubmVjdGlvbiAqLwotICAgIHVfaW50ICAgICAgICAgICB0Y3BDb25uTG9jYWxBZGRyZXNzOyAgICAgICAgLyogbG9jYWwgSVAgYWRkcmVzcyBmb3IgdGhpcyBjb25uZWN0aW9uICovCi0gICAgaW50ICAgICAgICAgICAgIHRjcENvbm5Mb2NhbFBvcnQ7ICAgLyogbG9jYWwgcG9ydCBmb3IgdGhpcyBjb25uZWN0aW9uICovCi0gICAgdV9pbnQgICAgICAgICAgIHRjcENvbm5SZW1BZGRyZXNzOyAgLyogcmVtb3RlIElQIGFkZHJlc3MgZm9yIHRoaXMgY29ubmVjdGlvbiAqLwotICAgIGludCAgICAgICAgICAgICB0Y3BDb25uUmVtUG9ydDsgICAgIC8qIHJlbW90ZSBwb3J0IGZvciB0aGlzIGNvbm5lY3Rpb24gKi8KLX07Ci0KLXN0cnVjdCBtaWJfdWRwIHsKLSAgICB1X2ludCAgICAgICAgICAgdWRwSW5EYXRhZ3JhbXM7ICAgICAvKiBOby4gb2YgVURQIGRhdGFncmFtcyBkZWxpdmVyZWQgdG8gdXNlcnMgKi8KLSAgICB1X2ludCAgICAgICAgICAgdWRwTm9Qb3J0czsgLyogTm8uIG9mIFVEUCBkYXRhZ3JhbXMgdG8gcG9ydCB3aXRoIG5vIGxpc3RlbmVyICovCi0gICAgdV9pbnQgICAgICAgICAgIHVkcEluRXJyb3JzOyAgICAgICAgLyogTm8uIG9mIFVEUCBkYXRhZ3JhbXMgdW5hYmxlIHRvIGJlIGRlbGl2ZXJlZCAqLwotICAgIHVfaW50ICAgICAgICAgICB1ZHBPdXREYXRhZ3JhbXM7ICAgIC8qIE5vLiBvZiBVRFAgZGF0YWdyYW1zIHNlbnQgZnJvbSB0aGlzIGVudGl0eSAqLwotfTsKLQotc3RydWN0IG1pYl9lZ3AgewotICAgIHVfaW50ICAgICAgICAgICBlZ3BJbk1zZ3M7ICAvKiBOby4gb2YgRUdQIG1zZ3MgcmVjZWl2ZWQgd2l0aG91dCBlcnJvciAqLwotICAgIHVfaW50ICAgICAgICAgICBlZ3BJbkVycm9yczsgICAgICAgIC8qIE5vLiBvZiBFR1AgbXNncyByZWNlaXZlZCB3aXRoIGVycm9yICovCi0gICAgdV9pbnQgICAgICAgICAgIGVncE91dE1zZ3M7IC8qIE5vLiBvZiBFR1AgbXNncyBzZW50ICovCi0gICAgdV9pbnQgICAgICAgICAgIGVncE91dEVycm9yczsgICAgICAgLyogTm8uIG9mIChvdXRnb2luZykgRUdQIG1zZ3MgZHJvcHBlZCBkdWUgdG8gZXJyb3IgKi8KLX07Ci0KLXN0cnVjdCBtaWJfZWdwTmVpZ2hFbnRyeSB7Ci0gICAgaW50ICAgICAgICAgICAgIGVncE5laWdoU3RhdGU7ICAgICAgLyogbG9jYWwgRUdQIHN0YXRlIHdpdGggdGhpcyBlbnRyeSdzIG5laWdoYm9yICovCi0gICAgdV9pbnQgICAgICAgICAgIGVncE5laWdoQWRkcjsgICAgICAgLyogSVAgYWRkcmVzcyBvZiB0aGlzIGVudHJ5J3MgbmVpZ2hib3IgKi8KLX07Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0jZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE5FVF9TTk1QX0NNVV9DT01QQVRfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oIGIvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oCmluZGV4IDMwYjgyZjEuLjk2MzI4OWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaAorKysgYi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgKQEAgLTM2OCwyMCArMzY4LDIyIEBACiAgICAgICogaW5saW5lIGZ1bmN0aW9ucywgeW91IG1vc3QgbGlrZWx5IGhhdmUgb3B0aW1pemF0aW9ucyB0dXJuZWQgb2ZmLgogICAgICAqIEVpdGhlciB0dXJuIHRoZW0gYmFjayBvbiwgb3IgZGVmaW5lIE5FVFNOTVBfTk9fSU5MSU5FCiAgICAgICovCi0jaWZuZGVmIE5FVFNOTVBfVVNFX0lOTElORSAvKiBkZWZhdWx0IGlzIHRvIGlubGluZSAqLwogICAgIC8qCiAgICAgICogaW5zZXJ0IGsgaW50byBhbGwgY29udGFpbmVycwogICAgICAqLworICAgIE5FVFNOTVBfSU1QT1JUCiAgICAgaW50IENPTlRBSU5FUl9JTlNFUlQobmV0c25tcF9jb250YWluZXIgKngsIGNvbnN0IHZvaWQgKmspOwogCiAgICAgLyoKICAgICAgKiByZW1vdmUgayBmcm9tIGFsbCBjb250YWluZXJzCiAgICAgICovCisgICAgTkVUU05NUF9JTVBPUlQKICAgICBpbnQgQ09OVEFJTkVSX1JFTU9WRShuZXRzbm1wX2NvbnRhaW5lciAqeCwgY29uc3Qgdm9pZCAqayk7CiAKICAgICAvKgogICAgICAqIGR1cGxpY2F0ZSBjb250YWluZXIKICAgICAgKi8KKyAgICBORVRTTk1QX0lNUE9SVAogICAgIG5ldHNubXBfY29udGFpbmVyICpDT05UQUlORVJfRFVQKG5ldHNubXBfY29udGFpbmVyICp4LCB2b2lkICpjdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9pbnQgZmxhZ3MpOwogCkBAIC0zOTAsNiArMzkyLDcgQEAKICAgICAgKiAqb25seSogdGhlIGZpcnN0IGNvbnRhaW5lciwgY2FsbCB0aGUgZnVuY3Rpb24gZiBmb3IgZWFjaCBpdGVtLgogICAgICAqIEFmdGVyIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwgYWxsIGNvbnRhaW5lcnMgc2hvdWxkIGJlIGVtcHR5LgogICAgICAqLworICAgIE5FVFNOTVBfSU1QT1JUCiAgICAgdm9pZCBDT05UQUlORVJfQ0xFQVIobmV0c25tcF9jb250YWluZXIgKngsIG5ldHNubXBfY29udGFpbmVyX29ial9mdW5jICpmLAogICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYyk7CiAKQEAgLTM5OCwxODYgKzQwMSwxOCBAQAogICAgICAqICpvbmx5KiB0aGUgZmlyc3QgY29udGFpbmVyLCBjYWxsIHRoZSBmcmVlX2l0ZW0gZnVuY3Rpb24gZm9yIGVhY2ggaXRlbS4KICAgICAgKiBBZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24sIGFsbCBjb250YWluZXJzIHNob3VsZCBiZSBlbXB0eS4KICAgICAgKi8KKyAgICBORVRTTk1QX0lNUE9SVAogICAgIHZvaWQgQ09OVEFJTkVSX0ZSRUVfQUxMKG5ldHNubXBfY29udGFpbmVyICp4LCB2b2lkICpjKTsKIAogICAgIC8qCiAgICAgICogZnJlZSBhbGwgY29udGFpbmVycwogICAgICAqLworICAgIE5FVFNOTVBfSU1QT1JUCiAgICAgaW50IENPTlRBSU5FUl9GUkVFKG5ldHNubXBfY29udGFpbmVyICp4KTsKIAorICAgIE5FVFNOTVBfSU1QT1JUCiAgICAgbmV0c25tcF9jb250YWluZXIgKlNVQkNPTlRBSU5FUl9GSU5EKG5ldHNubXBfY29udGFpbmVyICp4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBuYW1lKTsKLSNlbHNlCi0gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgKiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIEVYQUNUTFkgbWF0Y2ggdGhlIGZ1bmN0aW9uIHZlcnNpb24gaW4KLSAgICAgKiBjb250YWluZXIuYy4gSWYgeW91IGNoYW5nZSBvbmUsIGNoYW5nZSB0aGVtIGJvdGguCi0gICAgICovCi0gICAgTkVUU05NUF9TVEFUSUNfSU5MSU5FIC8qIGdjYyBkb2NzIHJlY29tbWVuZCBzdGF0aWMgdy9pbmxpbmUgKi8KLSAgICBpbnQgQ09OVEFJTkVSX0lOU0VSVF9IRUxQRVIobmV0c25tcF9jb250YWluZXIqIHgsIGNvbnN0IHZvaWQqIGspCi0gICAgewotICAgICAgICB3aGlsZSh4ICYmIHgtPmluc2VydF9maWx0ZXIgJiYgeC0+aW5zZXJ0X2ZpbHRlcih4LGspID09IDEpCi0gICAgICAgICAgICB4ID0geC0+bmV4dDsKLSAgICAgICAgaWYoeCkgewotICAgICAgICAgICAgaW50IHJjID0geC0+aW5zZXJ0KHgsayk7Ci0gICAgICAgICAgICBpZihyYykKLSAgICAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfREVCVUcsImVycm9yIG9uIHN1YmNvbnRhaW5lciAnJXMnIGluc2VydCAoJWQpXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgIHgtPmNvbnRhaW5lcl9uYW1lID8geC0+Y29udGFpbmVyX25hbWUgOiAiIiwgcmMpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmMgPSBDT05UQUlORVJfSU5TRVJUX0hFTFBFUih4LT5uZXh0LCBrKTsKLSAgICAgICAgICAgICAgICBpZihyYykKLSAgICAgICAgICAgICAgICAgICAgeC0+cmVtb3ZlKHgsayk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gcmM7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgKiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIEVYQUNUTFkgbWF0Y2ggdGhlIGZ1bmN0aW9uIHZlcnNpb24gaW4KLSAgICAgKiBjb250YWluZXIuYy4gSWYgeW91IGNoYW5nZSBvbmUsIGNoYW5nZSB0aGVtIGJvdGguCi0gICAgICovCi0gICAgTkVUU05NUF9TVEFUSUNfSU5MSU5FIC8qIGdjYyBkb2NzIHJlY29tbWVuZCBzdGF0aWMgdy9pbmxpbmUgKi8KLSAgICBpbnQgQ09OVEFJTkVSX0lOU0VSVChuZXRzbm1wX2NvbnRhaW5lciogeCwgY29uc3Qgdm9pZCogaykKLSAgICB7Ci0gICAgICAgIC8qKiBzdGFydCBhdCBmaXJzdCBjb250YWluZXIgKi8KLSAgICAgICAgd2hpbGUoeC0+cHJldikKLSAgICAgICAgICAgIHggPSB4LT5wcmV2OwotICAgICAgICByZXR1cm4gQ09OVEFJTkVSX0lOU0VSVF9IRUxQRVIoeCwgayk7Ci0gICAgfQotCi0gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgKiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIEVYQUNUTFkgbWF0Y2ggdGhlIGZ1bmN0aW9uIHZlcnNpb24gaW4KLSAgICAgKiBjb250YWluZXIuYy4gSWYgeW91IGNoYW5nZSBvbmUsIGNoYW5nZSB0aGVtIGJvdGguCi0gICAgICovCi0gICAgTkVUU05NUF9TVEFUSUNfSU5MSU5FIC8qIGdjYyBkb2NzIHJlY29tbWVuZCBzdGF0aWMgdy9pbmxpbmUgKi8KLSAgICBpbnQgQ09OVEFJTkVSX1JFTU9WRShuZXRzbm1wX2NvbnRhaW5lciAqeCwgY29uc3Qgdm9pZCAqaykKLSAgICB7Ci0gICAgICAgIGludCByYzIsIHJjID0gMDsKLSAgICAgICAgCi0gICAgICAgIC8qKiBzdGFydCBhdCBsYXN0IGNvbnRhaW5lciAqLwotICAgICAgICB3aGlsZSh4LT5uZXh0KQotICAgICAgICAgICAgeCA9IHgtPm5leHQ7Ci0gICAgICAgIHdoaWxlKHgpIHsKLSAgICAgICAgICAgIHJjMiA9IHgtPnJlbW92ZSh4LGspOwotICAgICAgICAgICAgLyoqIGlnbm9yZSByZW1vdmUgZXJyb3JzIGlmIHRoZXJlIGlzIGEgZmlsdGVyIGluIHBsYWNlICovCi0gICAgICAgICAgICBpZiAoKHJjMikgJiYgKE5VTEwgPT0geC0+aW5zZXJ0X2ZpbHRlcikpIHsKLSAgICAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCJlcnJvciBvbiBzdWJjb250YWluZXIgJyVzJyByZW1vdmUgKCVkKVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICB4LT5jb250YWluZXJfbmFtZSA/IHgtPmNvbnRhaW5lcl9uYW1lIDogIiIsIHJjMik7Ci0gICAgICAgICAgICAgICAgcmMgPSByYzI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB4ID0geC0+cHJldjsKLSAgICAgICAgICAgIAotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByYzsKLSAgICB9Ci0gICAgCi0gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgKiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIEVYQUNUTFkgbWF0Y2ggdGhlIGZ1bmN0aW9uIHZlcnNpb24gaW4KLSAgICAgKiBjb250YWluZXIuYy4gSWYgeW91IGNoYW5nZSBvbmUsIGNoYW5nZSB0aGVtIGJvdGguCi0gICAgICovCi0gICAgTkVUU05NUF9TVEFUSUNfSU5MSU5FIC8qIGdjYyBkb2NzIHJlY29tbWVuZCBzdGF0aWMgdy9pbmxpbmUgKi8KLSAgICBuZXRzbm1wX2NvbnRhaW5lciAqQ09OVEFJTkVSX0RVUChuZXRzbm1wX2NvbnRhaW5lciAqeCwgdm9pZCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfaW50IGZsYWdzKQotICAgIHsKLSAgICAgICAgaWYgKE5VTEwgPT0geC0+ZHVwbGljYXRlKSB7Ci0gICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiY29udGFpbmVyICclcycgZG9lcyBub3Qgc3VwcG9ydCBkdXBsaWNhdGVcbiIsCi0gICAgICAgICAgICAgICAgICAgICB4LT5jb250YWluZXJfbmFtZSA/IHgtPmNvbnRhaW5lcl9uYW1lIDogIiIpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHgtPmR1cGxpY2F0ZSh4LCBjdHgsIGZsYWdzKTsKLSAgICB9Ci0KLSAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAqIFRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgRVhBQ1RMWSBtYXRjaCB0aGUgZnVuY3Rpb24gdmVyc2lvbiBpbgotICAgICAqIGNvbnRhaW5lci5jLiBJZiB5b3UgY2hhbmdlIG9uZSwgY2hhbmdlIHRoZW0gYm90aC4KLSAgICAgKi8KLSAgICBORVRTTk1QX1NUQVRJQ19JTkxJTkUgLyogZ2NjIGRvY3MgcmVjb21tZW5kIHN0YXRpYyB3L2lubGluZSAqLwotICAgIGludCBDT05UQUlORVJfRlJFRShuZXRzbm1wX2NvbnRhaW5lciAqeCkKLSAgICB7Ci0JaW50ICByYzIsIHJjID0gMDsKLSAgICAgICAgCi0gICAgICAgIC8qKiBzdGFydCBhdCBsYXN0IGNvbnRhaW5lciAqLwotICAgICAgICB3aGlsZSh4LT5uZXh0KQotICAgICAgICAgICAgeCA9IHgtPm5leHQ7Ci0gICAgICAgIHdoaWxlKHgpIHsKLSAgICAgICAgICAgIG5ldHNubXBfY29udGFpbmVyICp0bXA7Ci0gICAgICAgICAgICBjaGFyICpuYW1lOwotICAgICAgICAgICAgdG1wID0geC0+cHJldjsKLSAgICAgICAgICAgIG5hbWUgPSB4LT5jb250YWluZXJfbmFtZTsKLSAgICAgICAgICAgIHgtPmNvbnRhaW5lcl9uYW1lID0gTlVMTDsKLSAgICAgICAgICAgIHJjMiA9IHgtPmNmcmVlKHgpOwotICAgICAgICAgICAgaWYgKHJjMikgewotICAgICAgICAgICAgICAgIHNubXBfbG9nKExPR19FUlIsImVycm9yIG9uIHN1YmNvbnRhaW5lciAnJXMnIGNmcmVlICglZClcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA/IG5hbWUgOiAiIiwgcmMyKTsKLSAgICAgICAgICAgICAgICByYyA9IHJjMjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFNOTVBfRlJFRShuYW1lKTsKLSAgICAgICAgICAgIHggPSB0bXA7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJjOwotICAgIH0KLQotICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICogVGhlc2UgZnVuY3Rpb25zIHNob3VsZCBFWEFDVExZIG1hdGNoIHRoZSBmdW5jdGlvbiB2ZXJzaW9uIGluCi0gICAgICogY29udGFpbmVyLmMuIElmIHlvdSBjaGFuZ2Ugb25lLCBjaGFuZ2UgdGhlbSBib3RoLgotICAgICAqLwotICAgIC8qCi0gICAgICogY2xlYXIgYWxsIGNvbnRhaW5lcnMuIFdoZW4gY2xlYXJpbmcgdGhlICpmaXJzdCogY29udGFpbmVyLCBhbmQKLSAgICAgKiAqb25seSogdGhlIGZpcnN0IGNvbnRhaW5lciwgY2FsbCB0aGUgZnVuY3Rpb24gZiBmb3IgZWFjaCBpdGVtLgotICAgICAqIEFmdGVyIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwgYWxsIGNvbnRhaW5lcnMgc2hvdWxkIGJlIGVtcHR5LgotICAgICAqLwotICAgIE5FVFNOTVBfU1RBVElDX0lOTElORSAvKiBnY2MgZG9jcyByZWNvbW1lbmQgc3RhdGljIHcvaW5saW5lICovCi0gICAgdm9pZCBDT05UQUlORVJfQ0xFQVIobmV0c25tcF9jb250YWluZXIgKngsIG5ldHNubXBfY29udGFpbmVyX29ial9mdW5jICpmLAotICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYykKLSAgICB7Ci0gICAgICAgIC8qKiBzdGFydCBhdCBsYXN0IGNvbnRhaW5lciAqLwotICAgICAgICB3aGlsZSh4LT5uZXh0KQotICAgICAgICAgICAgeCA9IHgtPm5leHQ7Ci0gICAgICAgIHdoaWxlKHgtPnByZXYpIHsKLSAgICAgICAgICAgIHgtPmNsZWFyKHgsIE5VTEwsIGMpOwotICAgICAgICAgICAgeCA9IHgtPnByZXY7Ci0gICAgICAgIH0KLSAgICAgICAgeC0+Y2xlYXIoeCwgZiwgYyk7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBjbGVhciBhbGwgY29udGFpbmVycy4gV2hlbiBjbGVhcmluZyB0aGUgKmZpcnN0KiBjb250YWluZXIsIGFuZAotICAgICAqICpvbmx5KiB0aGUgZmlyc3QgY29udGFpbmVyLCBjYWxsIHRoZSBmcmVlX2l0ZW0gZnVuY3Rpb24gZm9yIGVhY2ggaXRlbS4KLSAgICAgKiBBZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24sIGFsbCBjb250YWluZXJzIHNob3VsZCBiZSBlbXB0eS4KLSAgICAgKi8KLSAgICBORVRTTk1QX1NUQVRJQ19JTkxJTkUgLyogZ2NjIGRvY3MgcmVjb21tZW5kIHN0YXRpYyB3L2lubGluZSAqLwotICAgIHZvaWQgQ09OVEFJTkVSX0ZSRUVfQUxMKG5ldHNubXBfY29udGFpbmVyICp4LCB2b2lkICpjKQotICAgIHsKLSAgICAgICAgQ09OVEFJTkVSX0NMRUFSKHgsIHgtPmZyZWVfaXRlbSwgYyk7Ci0gICAgfQotCi0gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgKiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIEVYQUNUTFkgbWF0Y2ggdGhlIGZ1bmN0aW9uIHZlcnNpb24gaW4KLSAgICAgKiBjb250YWluZXIuYy4gSWYgeW91IGNoYW5nZSBvbmUsIGNoYW5nZSB0aGVtIGJvdGguCi0gICAgICovCi0gICAgLyoKLSAgICAgKiBGaW5kIGEgc3ViLWNvbnRhaW5lciB3aXRoIHRoZSBnaXZlbiBuYW1lCi0gICAgICovCi0gICAgTkVUU05NUF9TVEFUSUNfSU5MSU5FIC8qIGdjYyBkb2NzIHJlY29tbWVuZCBzdGF0aWMgdy9pbmxpbmUgKi8KLSAgICBuZXRzbm1wX2NvbnRhaW5lciAqU1VCQ09OVEFJTkVSX0ZJTkQobmV0c25tcF9jb250YWluZXIgKngsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG5hbWUpCi0gICAgewotICAgICAgICBpZiAoKE5VTEwgPT0geCkgfHwgKE5VTEwgPT0gbmFtZSkpCi0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgICAgICAvKiogc3RhcnQgYXQgZmlyc3QgY29udGFpbmVyICovCi0gICAgICAgIHdoaWxlKHgtPnByZXYpCi0gICAgICAgICAgICB4ID0geC0+cHJldjsKLSAgICAgICAgd2hpbGUoeCkgewotICAgICAgICAgICAgaWYgKChOVUxMICE9IHgtPmNvbnRhaW5lcl9uYW1lKSAmJgotICAgICAgICAgICAgICAgICgwID09IHN0cmNtcChuYW1lLHgtPmNvbnRhaW5lcl9uYW1lKSkpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB4ID0geC0+bmV4dDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4geDsKLSAgICB9Ci0KLSNlbmRpZgogCiAgICAgLyoKICAgICAgKiBJTlRFUk5BTCB1dGlsaXR5IHJvdXRpbmVzIGZvciBjb250YWluZXIgaW1wbGVtZW50YXRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oIGIvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaAppbmRleCBmY2I4N2UwLi4zYzNjNTE5IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgKQEAgLTM4LDcgKzM4LDcgQEAKICAgICAgKi8KIC8qKgogICogQGRlZiBORVRTTk1QX0RTX0xJQlJBUllfSUQKLSAqIFRoZXNlIGRlZmluaXRpb25zIGNvcnJlc3BvbmQgd2l0aCB0aGUgInN0b3JpZCIgYXJndW1lbnQgdG8gdGhlIEFQSSAKKyAqIFRoZXNlIGRlZmluaXRpb25zIGNvcnJlc3BvbmQgd2l0aCB0aGUgInN0b3JpZCIgYXJndW1lbnQgdG8gdGhlIEFQSS4KICAqLwogI2RlZmluZSBORVRTTk1QX0RTX0xJQlJBUllfSUQgICAgIDAKICNkZWZpbmUgTkVUU05NUF9EU19BUFBMSUNBVElPTl9JRCAxCkBAIC05Myw2ICs5Myw4IEBACiAjZGVmaW5lIE5FVFNOTVBfRFNfTElCX05PX0RJU0NPVkVSWSAgICAgICAgMzggLyogZG9uJ3Qgc3VwcG9ydCBSRkM1MzQzIGNvbnRleHRFbmdpbmVJRCBkaXNjb3ZlcnkgKi8KICNkZWZpbmUgTkVUU05NUF9EU19MSUJfVFNNX1VTRV9QUkVGSVggICAgICAzOSAvKiBUU00ncyBzaW1wbGUgc2VjdXJpdHkgbmFtZSBtYXBwaW5nICovCiAjZGVmaW5lIE5FVFNOTVBfRFNfTElCX0RPTlRfTE9BRF9IT1NUX0ZJTEVTIDQwIC8qIGRvbid0IHJlYWQgaG9zdC5jb25mIGZpbGVzICovCisjZGVmaW5lIE5FVFNOTVBfRFNfTElCX0ROU1NFQ19XQVJOX09OTFkgICAgIDQxIC8qIHRyZWFkIEROU1NFQyBlcnJvcnMgYXMgd2FybmluZ3MgKi8KKyNkZWZpbmUgTkVUU05NUF9EU19MSUJfTUFYX0JPT0xfSUQgICAgICAgICAgNDggLyogbWF0Y2ggTkVUU05NUF9EU19NQVhfU1VCSURTICovCiAKICAgICAvKgogICAgICAqIGxpYnJhcnkgaW50ZWdlcnMgCkBAIC0xMTMsNiArMTE1LDkgQEAKICNkZWZpbmUgTkVUU05NUF9EU19TU0hET01BSU5fRElSX1BFUk0gICAgICAxMgogI2RlZmluZSBORVRTTk1QX0RTX1NTSERPTUFJTl9TT0NLX1VTRVIgICAgIDEyCiAjZGVmaW5lIE5FVFNOTVBfRFNfU1NIRE9NQUlOX1NPQ0tfR1JPVVAgICAgMTMKKyNkZWZpbmUgTkVUU05NUF9EU19MSUJfVElNRU9VVCAgICAgICAgICAgICAxNAorI2RlZmluZSBORVRTTk1QX0RTX0xJQl9SRVRSSUVTICAgICAgICAgICAgIDE1CisjZGVmaW5lIE5FVFNOTVBfRFNfTElCX01BWF9JTlRfSUQgICAgICAgICAgNDggLyogbWF0Y2ggTkVUU05NUF9EU19NQVhfU1VCSURTICovCiAgICAgCiAgICAgLyoKICAgICAgKiBzcGVjaWFsIG1lYW5pbmdzIGZvciB0aGUgZGVmYXVsdCBTTk1QIHZlcnNpb24gc2xvdCAoTkVUU05NUF9EU19MSUJfU05NUFZFUlNJT04pIApAQCAtMTU5LDYgKzE2NCwxMiBAQAogI2RlZmluZSBORVRTTk1QX0RTX0xJQl9IT1NUTkFNRSAgICAgICAgICAyNwogI2RlZmluZSBORVRTTk1QX0RTX0xJQl9YNTA5X0NSTF9GSUxFICAgICAyOAogI2RlZmluZSBORVRTTk1QX0RTX0xJQl9UTFNfQUxHT1JJVE1TICAgICAyOQorI2RlZmluZSBORVRTTk1QX0RTX0xJQl9UTFNfTE9DQUxfQ0VSVCAgICAzMAorI2RlZmluZSBORVRTTk1QX0RTX0xJQl9UTFNfUEVFUl9DRVJUICAgICAzMQorI2RlZmluZSBORVRTTk1QX0RTX0xJQl9TU0hfVVNFUk5BTUUgICAgICAzMgorI2RlZmluZSBORVRTTk1QX0RTX0xJQl9TU0hfUFVCS0VZICAgICAgICAzMworI2RlZmluZSBORVRTTk1QX0RTX0xJQl9TU0hfUFJJVktFWSAgICAgICAzNAorI2RlZmluZSBORVRTTk1QX0RTX0xJQl9NQVhfU1RSX0lEICAgICAgICA0OCAvKiBtYXRjaCBORVRTTk1QX0RTX01BWF9TVUJJRFMgKi8KIAogICAgIC8qCiAgICAgICogZW5kIHN0b3JhZ2UgZGVmaW5pdGlvbnMgCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmggYi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgKaW5kZXggNTA3Nzc4MC4uYWYzZmEwMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaApAQCAtMTM5LDcgKzEzOSw3IEBACiAgKiBAc2VlIFNlZSBhbHNvIHNlbGVjdCgyKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KICAqLwogTkVUU05NUF9JTVBPUlQKLWludCAgICBuZXRfc25tcF9sYXJnZV9mZF9zZXRfc2VsZWN0KGludCBudW1mZHMsIG5ldHNubXBfbGFyZ2VfZmRfc2V0ICpyZWFkZmRzLAoraW50ICAgIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3NlbGVjdChpbnQgbnVtZmRzLCBuZXRzbm1wX2xhcmdlX2ZkX3NldCAqcmVhZGZkcywKIAkJCSAgICBuZXRzbm1wX2xhcmdlX2ZkX3NldCAqd3JpdGVmZHMsCiAJCQkgICAgbmV0c25tcF9sYXJnZV9mZF9zZXQgKmV4Y2VwdGZkcywKIAkJCSAgICBzdHJ1Y3QgdGltZXZhbCAqdGltZW91dCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oIGIvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaAppbmRleCBlYWYyYmJmLi42YTA3MzAwIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgKQEAgLTc2LDggKzc2LDYgQEAKIAogI2lmZGVmIFVDRF9TTk1QX0xJQlJBUlkKIAotI2RlZmluZSBzbm1wX3BhcnNlIGNtdV9zbm1wX3BhcnNlCi0KICNpbmNsdWRlIDx1Y2Qtc25tcC9hc24xLmg+CiAjaW5jbHVkZSA8dWNkLXNubXAvc25tcF9hcGkuaD4KICNpbmNsdWRlIDx1Y2Qtc25tcC9zbm1wX2ltcGwuaD4KQEAgLTEzNSw3ICsxMzMsOSBAQAogI2RlZmluZSBTTk1QX01TR19HRVQgR0VUX1JFUV9NU0cKICNkZWZpbmUgU05NUF9NU0dfR0VUTkVYVCBHRVRORVhUX1JFUV9NU0cKICNkZWZpbmUgU05NUF9NU0dfUkVTUE9OU0UgR0VUX1JTUF9NU0cKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAjZGVmaW5lIFNOTVBfTVNHX1NFVCBTRVRfUkVRX01TRworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICNkZWZpbmUgU05NUF9NU0dfVFJBUCBUUlBfUkVRX01TRwogI2RlZmluZSBTTk1QX01TR19HRVRCVUxLICAgIChBU05fQ09OVEVYVCB8IEFTTl9DT05TVFJVQ1RPUiB8IDB4NSkKICNkZWZpbmUgU05NUF9NU0dfSU5GT1JNICAgICAoQVNOX0NPTlRFWFQgfCBBU05fQ09OU1RSVUNUT1IgfCAweDYpCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCBiL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCmluZGV4IDg3MjZjYzcuLmNlNDZhYjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCkBAIC0zMiwxMCArMzIsMTkgQEAKIFNPRlRXQVJFLgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0jZGVmaW5lIE1BWExBQkVMICAgICAgICA2NCAgICAgIC8qIG1heGltdW0gY2hhcmFjdGVycyBpbiBhIGxhYmVsICovCisjZGVmaW5lIE5FVFNOTVBfTUFYTEFCRUwgNjQgICAgICAvKiBtYXhpbXVtIGNoYXJhY3RlcnMgaW4gYSBsYWJlbCAqLwogI2RlZmluZSBNQVhUT0tFTiAgICAgICAgMTI4ICAgICAvKiBtYXhpbXVtIGNoYXJhY3RlcnMgaW4gYSB0b2tlbiAqLwogI2RlZmluZSBNQVhRVU9URVNUUiAgICAgNDA5NiAgICAvKiBtYXhpbXVtIGNoYXJhY3RlcnMgaW4gYSBxdW90ZWQgc3RyaW5nICovCiAKKy8qCisgKiBNQVhMQUJFTCBhcHBlYXJzIHRvIGJlIHVudXNlZCBpbiBjb2RlLCBhbmQgY29uZmxpY3RzIHdpdGgKKyAqIDxhcnBhL25hbWVzZXIuaD4uIE9ubHkgZGVmaW5lIGl0IGlmIHJlcXVlc3RlZC4gVGhpcyB3aWxsCisgKiBjYXVzZSBwcm9ibGVtcyBpZiBsb2NhbCBETlNTRUMgdmFsaWRhdGlvbiBpcyBhbHNvIGVuYWJsZWQuCisgKi8KKyNpZmRlZiBVQ0RfQ09NUEFUSUJMRQorI2RlZmluZSBNQVhMQUJFTCAgICAgICAgTkVUU05NUF9NQVhMQUJFTAorI2VuZGlmCisKICAgICBzdHJ1Y3QgdmFyaWFibGVfbGlzdDsKIAogICAgIC8qCkBAIC0xMDUsNiArMTE0LDcgQEAKICAgICAgICAgY2hhciAgICAgICAgICAgKnJlZmVyZW5jZTsgICAgLyogcmVmZXJlbmNlcyAoYSBxdW90ZWQgc3RyaW5nKSAqLwogICAgICAgICBpbnQgICAgICAgICAgICAgcmVwb3J0ZWQ7ICAgICAgIC8qIDE9cmVwb3J0IHN0YXJ0ZWQgaW4gcHJpbnRfc3VidHJlZS4uLiAqLwogICAgICAgICBjaGFyICAgICAgICAgICAqZGVmYXVsdFZhbHVlOworICAgICAgIGNoYXIJICAgICAgICpwYXJzZUVycm9yU3RyaW5nOyAvKiBDb250YWlucyB0aGUgZXJyb3Igc3RyaW5nIGlmIHRoZXJlIGFyZSBlcnJvcnMgaW4gcGFyc2luZyBNSUJzICovCiAgICAgfTsKIAogICAgIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oIGIvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAppbmRleCA1ZGFmMTY2Li5mNTk3OGM2IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKQEAgLTExOCw3ICsxMTgsOSBAQAogI2RlZmluZSBTTk1QX01TR19HRVQgICAgICAgIChBU05fQ09OVEVYVCB8IEFTTl9DT05TVFJVQ1RPUiB8IDB4MCkgLyogYTA9MTYwICovCiAjZGVmaW5lIFNOTVBfTVNHX0dFVE5FWFQgICAgKEFTTl9DT05URVhUIHwgQVNOX0NPTlNUUlVDVE9SIHwgMHgxKSAvKiBhMT0xNjEgKi8KICNkZWZpbmUgU05NUF9NU0dfUkVTUE9OU0UgICAoQVNOX0NPTlRFWFQgfCBBU05fQ09OU1RSVUNUT1IgfCAweDIpIC8qIGEyPTE2MiAqLworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICNkZWZpbmUgU05NUF9NU0dfU0VUICAgICAgICAoQVNOX0NPTlRFWFQgfCBBU05fQ09OU1RSVUNUT1IgfCAweDMpIC8qIGEzPTE2MyAqLworI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogICAgIC8qCiAgICAgICogUERVIHR5cGVzIGluIFNOTVB2MSBhbmQgU05NUHNlYyAKQEAgLTEzNyw2ICsxMzksNyBAQAogICAgICAqLwogI2RlZmluZSBTTk1QX01TR19SRVBPUlQgICAgIChBU05fQ09OVEVYVCB8IEFTTl9DT05TVFJVQ1RPUiB8IDB4OCkgLyogYTg9MTY4ICovCiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgLyoKICAgICAgKiBpbnRlcm5hbCBtb2RlcyB0aGF0IHNob3VsZCBuZXZlciBiZSB1c2VkIGJ5IHRoZSBwcm90b2NvbCBmb3IgdGhlCiAgICAgICogcGR1IHR5cGUuCkBAIC0xNjIsNiArMTY1LDcgQEAKICNkZWZpbmUgU05NUF9NU0dfSU5URVJOQUxfVU5ET19DT01NSVQgICAgICAgICAgIDI0CiAjZGVmaW5lIFNOTVBfTVNHX0lOVEVSTkFMX0lSUkVWRVJTSUJMRV9DT01NSVQgICAyNQogI2RlZmluZSBTTk1QX01TR19JTlRFUk5BTF9VTkRPX0NMRUFOVVAgICAgICAgICAgMjYKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKICAgICAvKgogICAgICAqIG1vZGVzID4gMTI4IGZvciBub24gc2V0cy4KQEAgLTE3NSw5ICsxNzksMTQgQEAKICAgICAvKgogICAgICAqIHRlc3QgZm9yIG1lbWJlciBvZiBDb25maXJtZWQgQ2xhc3MgaS5lLiwgcmVwb3J0YWJsZSAKICAgICAgKi8KKyNpZmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKKyNkZWZpbmUgU05NUF9DTURfQ09ORklSTUVEKGMpIChjID09IFNOTVBfTVNHX0lORk9STSB8fCBjID09IFNOTVBfTVNHX0dFVEJVTEsgfHxcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9PSBTTk1QX01TR19HRVRORVhUIHx8IGMgPT0gU05NUF9NU0dfR0VUICkKKyNlbHNlIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICNkZWZpbmUgU05NUF9DTURfQ09ORklSTUVEKGMpIChjID09IFNOTVBfTVNHX0lORk9STSB8fCBjID09IFNOTVBfTVNHX0dFVEJVTEsgfHxcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9PSBTTk1QX01TR19HRVRORVhUIHx8IGMgPT0gU05NUF9NU0dfR0VUIHx8IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID09IFNOTVBfTVNHX1NFVCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID09IFNOTVBfTVNHX1NFVCApCisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAgICAgLyoKICAgICAgKiBFeGNlcHRpb24gdmFsdWVzIGZvciBTTk1QdjJwLCBTTk1QdjJjLCBTTk1QdjJ1LCBTTk1QdjIqLCBhbmQgU05NUHYzIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmggYi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaAppbmRleCBlYzc3YTczLi5iYzIxY2I2IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaAorKysgYi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaApAQCAtNDIsMTMgKzQyLDEyIEBACiAgICAgICAgQklPICAgICAgICAgICAgICAgICAgICAgICAqYWNjZXB0ZWRfYmlvOwogICAgICAgIGNoYXIgICAgICAgICAgICAgICAgICAgICAgKnNlY3VyaXR5TmFtZTsKICAgICAgICBjaGFyICAgICAgICAgICAgICAgICAgICAgICphZGRyX3N0cmluZzsKLSAgICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gICAgICAgICBhZGRyOworICAgICAgIG5ldHNubXBfaW5kZXhlZF9hZGRyX3BhaXIgKmFkZHI7CiAgICAgICAgY2hhciAgICAgICAgICAgICAgICAgICAgICAqb3VyX2lkZW50aXR5OwogICAgICAgIGNoYXIgICAgICAgICAgICAgICAgICAgICAgKnRoZWlyX2lkZW50aXR5OwogICAgICAgIGNoYXIgICAgICAgICAgICAgICAgICAgICAgKnRoZWlyX2ZpbmdlcnByaW50OwogICAgICAgIGNoYXIgICAgICAgICAgICAgICAgICAgICAgKnRoZWlyX2hvc3RuYW1lOwogICAgICAgIGNoYXIgICAgICAgICAgICAgICAgICAgICAgKnRydXN0X2NlcnQ7Ci0gICAgICAgbmV0c25tcF9pbmRleGVkX2FkZHJfcGFpciAqcmVtb3RlX2FkZHI7CiAgICAgfSBfbmV0c25tcFRMU0Jhc2VEYXRhOwogCiAjZGVmaW5lIFZSRllfUEFSRU5UX1dBU19PSyAxCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCBiL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCmluZGV4IDE2ZmQ4MTkuLjgzZWJhMmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCkBAIC0yMiw4ICsyMiw4IEBACiAjZGVmaW5lIFRSQU5TUE9SVF9ET01BSU5fVURQX0lQVjYJMSwzLDYsMSwyLDEsMTAwLDEsMgogTkVUU05NUF9JTVBPUlQgb2lkICAgICAgbmV0c25tcF9VRFBJUHY2RG9tYWluW107CiAKLW5ldHNubXBfdHJhbnNwb3J0ICpzbm1wX3VkcDZfdHJhbnNwb3J0KHN0cnVjdCBzb2NrYWRkcl9pbjYgKmFkZHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbG9jYWwpOworbmV0c25tcF90cmFuc3BvcnQgKm5ldHNubXBfdWRwNl90cmFuc3BvcnQoc3RydWN0IHNvY2thZGRyX2luNiAqYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsb2NhbCk7CiAKIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmggYi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oCmluZGV4IDExNjdlMmMuLmQxYmNiZmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgKKysrIGIvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaApAQCAtMTUsMTEgKzE1LDE0IEBACiAjZGVmaW5lIFNBX0ZJUkVEIDB4MTAgICAgICAgICAgLyogQmVpbmcgcHJvY2Vzc2VkIGluIHJ1bl9hbGFybXMgKi8KIAogICAgIHN0cnVjdCBzbm1wX2FsYXJtIHsKKyAgICAgICAgLyoqIEFsYXJtIGludGVydmFsLiBaZXJvIGlmIHNpbmdsZS1zaG90LiAqLwogICAgICAgICBzdHJ1Y3QgdGltZXZhbCAgdDsKICAgICAgICAgdW5zaWduZWQgaW50ICAgIGZsYWdzOwogICAgICAgICB1bnNpZ25lZCBpbnQgICAgY2xpZW50cmVnOwotICAgICAgICBzdHJ1Y3QgdGltZXZhbCAgdF9sYXN0OwotICAgICAgICBzdHJ1Y3QgdGltZXZhbCAgdF9uZXh0OworICAgICAgICAvKiogTGFzdCB0aW1lIHRoZSBhbGFybSBmaXJlZCBbbW9ub3RvbmljIGNsb2NrXS4gKi8KKyAgICAgICAgc3RydWN0IHRpbWV2YWwgIHRfbGFzdE07CisgICAgICAgIC8qKiBOZXh0IHRpbWUgdGhlIGFsYXJtIHdpbGwgZmlyZSBbbW9ub3RvbmljIGNsb2NrXS4gKi8KKyAgICAgICAgc3RydWN0IHRpbWV2YWwgIHRfbmV4dE07CiAgICAgICAgIHZvaWQgICAgICAgICAgICpjbGllbnRhcmc7CiAgICAgICAgIFNOTVBBbGFybUNhbGxiYWNrICp0aGVjYWxsYmFjazsKICAgICAgICAgc3RydWN0IHNubXBfYWxhcm0gKm5leHQ7CmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCBiL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oCmluZGV4IGRlZjAyYjkuLjZmNjU4ZDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvcGR1X2FwaS5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL3Nlc3Npb25fYXBpLmg+CiAKKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgorCiAjaWZuZGVmIERPTlRfU0hBUkVfRVJST1JfV0lUSF9PVEhFUl9USFJFQURTCiAjZGVmaW5lIFNFVF9TTk1QX0VSUk9SKHgpIHNubXBfZXJybm89KHgpCiAjZWxzZQpAQCAtNzYsOCArNzgsOCBAQAogICAgIHZvaWQgICAgICAgICAgICpjYl9kYXRhOyAgICAgICAgLyogdXNlciBjYWxsYmFjayBkYXRhIHBlciByZXF1ZXN0IChOVUxMIGlmIHVudXNlZCkgKi8KICAgICBpbnQgICAgICAgICAgICAgcmV0cmllczsgICAgICAgIC8qIE51bWJlciBvZiByZXRyaWVzICovCiAgICAgdV9sb25nICAgICAgICAgIHRpbWVvdXQ7ICAgICAgICAvKiBsZW5ndGggdG8gd2FpdCBmb3IgdGltZW91dCAqLwotICAgIHN0cnVjdCB0aW1ldmFsICB0aW1lOyAgIC8qIFRpbWUgdGhpcyByZXF1ZXN0IHdhcyBtYWRlICovCi0gICAgc3RydWN0IHRpbWV2YWwgIGV4cGlyZTsgLyogdGltZSB0aGlzIHJlcXVlc3QgaXMgZHVlIHRvIGV4cGlyZSAqLworICAgIHN0cnVjdCB0aW1ldmFsICB0aW1lTTsgICAvKiBUaW1lIHRoaXMgcmVxdWVzdCB3YXMgbWFkZSBbbW9ub3RvbmljIGNsb2NrXSAqLworICAgIHN0cnVjdCB0aW1ldmFsICBleHBpcmVNOyAvKiBUaW1lIHRoaXMgcmVxdWVzdCBpcyBkdWUgdG8gZXhwaXJlIFttb25vdG9uaWMgY2xvY2tdLiAqLwogICAgIHN0cnVjdCBzbm1wX3Nlc3Npb24gKnNlc3Npb247CiAgICAgbmV0c25tcF9wZHUgICAgKnBkdTsgICAgLyogVGhlIHBkdSBmb3IgdGhpcyByZXF1ZXN0CiAJCQkgICAgICogKHNhdmVkIHNvIGl0IGNhbiBiZSByZXRyYW5zbWl0dGVkICovCkBAIC0zOTgsMTQgKzQwMCwyNCBAQAogICAgIE5FVFNOTVBfSU1QT1JUCiAgICAgb2lkICAgICAgICAgICAgKnNubXBfZHVwbGljYXRlX29iamlkKGNvbnN0IG9pZCAqIG9ialRvQ29weSwgc2l6ZV90KTsKICAgICBORVRTTk1QX0lNUE9SVAorCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU1RBVElTVElDUwogICAgIHVfaW50ICAgICAgICAgICBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMoaW50IHdoaWNoKTsKICAgICBORVRTTk1QX0lNUE9SVAogICAgIHVfaW50ICAgICAgICAgICBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWNfYnkoaW50IHdoaWNoLCBpbnQgY291bnQpOwogICAgIE5FVFNOTVBfSU1QT1JUCiAgICAgdV9pbnQgICAgICAgICAgIHNubXBfZ2V0X3N0YXRpc3RpYyhpbnQgd2hpY2gpOwogICAgIHZvaWQgICAgICAgICAgICBzbm1wX2luaXRfc3RhdGlzdGljcyh2b2lkKTsKKyNlbHNlIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU1RBVElTVElDUyAqLworCisvKiBhbGxvdyBjb2RlIHRvIGNvbnRpbnVlIHJlZmVyZW5jaW5nIEFQSSBldmVuIGlmIHN0YXRpc3RpY3MgYXJlIHJlbW92ZWQgKi8KKyNkZWZpbmUgc25tcF9pbmNyZW1lbnRfc3RhdGlzdGljKFgpCisjZGVmaW5lIHNubXBfaW5jcmVtZW50X3N0YXRpc3RpY19ieShYLFkpCisjZGVmaW5lIHNubXBfaW5pdF9zdGF0aXN0aWNzKCkKKworI2VuZGlmCisKICAgICBpbnQgICAgICAgICAgICAgY3JlYXRlX3VzZXJfZnJvbV9zZXNzaW9uKG5ldHNubXBfc2Vzc2lvbiAqIHNlc3Npb24pOwotICAgIGludCBzbm1wX2dldF9mZF9mb3Jfc2Vzc2lvbihzdHJ1Y3Qgc25tcF9zZXNzaW9uICpzZXNzcCk7CiAgICAgaW50IHNubXB2M19wcm9iZV9jb250ZXh0RW5naW5lSURfcmZjNTM0Myh2b2lkICpzbHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3Nlc3Npb24gKnNlc3Npb24pOwogCkBAIC02ODUsNiArNjk3LDE2IEBACiAvKiogYmFja3dhcmRzIGNvbXBhdGFiaWxpdHkgKi8KICNkZWZpbmUgTUFYX1NUQVRTIE5FVFNOTVBfU1RBVF9NQVhfU1RBVFMKIAorICAgIC8qCisgICAgICogSW50ZXJuYWw6IFRoZSBsaXN0IG9mIGFjdGl2ZS9vcGVuIHNlc3Npb25zLgorICAgICAqLworICAgIHN0cnVjdCBzZXNzaW9uX2xpc3QgeworICAgICAgIHN0cnVjdCBzZXNzaW9uX2xpc3QgKm5leHQ7CisgICAgICAgbmV0c25tcF9zZXNzaW9uICpzZXNzaW9uOworICAgICAgIG5ldHNubXBfdHJhbnNwb3J0ICp0cmFuc3BvcnQ7CisgICAgICAgc3RydWN0IHNubXBfaW50ZXJuYWxfc2Vzc2lvbiAqaW50ZXJuYWw7CisgICAgfTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oIGIvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgKaW5kZXggYzAyMzI1My4uZWE1NGU3ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgKKysrIGIvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgKQEAgLTEwMCw4ICsxMDAsMTAgQEAKIGludCBuZXRzbm1wX3F1ZXJ5X2dldG5leHQoIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqLCBuZXRzbm1wX3Nlc3Npb24gKik7CiBORVRTTk1QX0lNUE9SVAogaW50IG5ldHNubXBfcXVlcnlfd2FsayggICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICosIG5ldHNubXBfc2Vzc2lvbiAqKTsKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiBORVRTTk1QX0lNUE9SVAogaW50IG5ldHNubXBfcXVlcnlfc2V0KCAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICosIG5ldHNubXBfc2Vzc2lvbiAqKTsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKIC8qKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCBiL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaAppbmRleCBlNDY4MzM1Li4xYWQ2M2UwIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgKKysrIGIvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oCkBAIC0xLDggKzEsNSBAQAogI2lmbmRlZiBTTk1QX1BBUlNFX0FSR1NfSAogI2RlZmluZSBTTk1QX1BBUlNFX0FSR1NfSAotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgogCiAvKioKICAqIEBmaWxlIHNubXBfcGFyc2VfYXJncy5oCkBAIC0xMSw2ICs4LDEwIEBACiAgKiBsaW5lIGFyZ3VtZW50cwogICovCiAKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwogLyoqIERvbid0IGVuYWJsZSBhbnkgbG9nZ2luZyBldmVuIGlmIHRoZXJlIGlzIG5vIC1MIGFyZ3VtZW50ICovCiAjZGVmaW5lIE5FVFNOTVBfUEFSU0VfQVJHU19OT0xPR0dJTkcgICAgMHgwMDAxCiAvKiogRG9uJ3QgemVybyBvdXQgc2Vuc2l0aXZlIGFyZ3VtZW50cyBhcyB0aGV5IGFyZSBub3Qgb24gdGhlIGNvbW1hbmQgbGluZQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmggYi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAppbmRleCA1YmFjYWQ3Li5hYWJiN2VkIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAorKysgYi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaApAQCAtOTEsOCArOTEsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3Nlc3Npb24gKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlc3VsdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9wZHUgKm9yaWdwZHUpOwotdHlwZWRlZiBpbnQgICAgIChTZWNtb2REaXNjb3ZlcnlNZXRob2QpICh2b2lkICpzbHAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfc2Vzc2lvbiAqc2Vzc2lvbik7Cit0eXBlZGVmIGludCAgICAgKFNlY21vZERpc2NvdmVyeU1ldGhvZCkgKHZvaWQgKnNscCwgbmV0c25tcF9zZXNzaW9uICpzZXNzaW9uKTsKK3R5cGVkZWYgaW50ICAgICAoU2VjbW9kUG9zdERpc2NvdmVyeSkgKHZvaWQgKnNscCwgbmV0c25tcF9zZXNzaW9uICpzZXNzaW9uKTsKIAogdHlwZWRlZiBpbnQgICAgIChTZWNtb2RTZXNzaW9uU2V0dXApIChuZXRzbm1wX3Nlc3Npb24gKmluX3Nlc3Npb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfc2Vzc2lvbiAqb3V0X3Nlc3Npb24pOwpAQCAtMTM2LDYgKzEzNiw3IEBACiAgICAgKiBkZWZhdWx0IGVuZ2luZUlEIGRpc2NvdmVyeSBtZWNoYW5pc20KICAgICAqLwogICAgU2VjbW9kRGlzY292ZXJ5TWV0aG9kICpwcm9iZV9lbmdpbmVpZDsKKyAgIFNlY21vZFBvc3REaXNjb3ZlcnkgICAqcG9zdF9wcm9iZV9lbmdpbmVpZDsKIH07CiAKIApAQCAtMTY0LDYgKzE2NSw4IEBACiAgKi8KIGludCAgICAgICAgICAgICB1bnJlZ2lzdGVyX3NlY19tb2QoaW50KTsgICAgICAgIC8qIHJlZ2lzdGVyIGEgc2VjdXJpdHkgc2VydmljZSAqLwogdm9pZCAgICAgICAgICAgIGluaXRfc2VjbW9kKHZvaWQpOworTkVUU05NUF9JTVBPUlQKK3ZvaWQgICAgICAgICAgICBzaHV0ZG93bl9zZWNtb2Qodm9pZCk7CiAKIC8qCiAgKiBjbGVhcnMgdGhlIHNlY19tb2QgbGlzdApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmggYi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaAppbmRleCBkODlmOWMwLi40MTYyODk3IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaAorKysgYi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaApAQCAtMSwxMiArMSwzMiBAQAogI2lmbmRlZiBfU05NUF9UUkFOU1BPUlRfSAogI2RlZmluZSBfU05NUF9UUkFOU1BPUlRfSAogCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisKKyNpZiBIQVZFX1NZU19TT0NLRVRfSAorI2lmZGVmIHNvbGFyaXMyCisjZGVmaW5lIF9YUEc0XzIKKyNlbmRpZgorCisjaWYgZGVmaW5lZChhaXg0KSB8fCBkZWZpbmVkKGFpeDUpIHx8IGRlZmluZWQoYWl4NikgfHwgZGVmaW5lZChhaXg3KQorI2RlZmluZSBfTElOVVhfU09VUkNFX0NPTVBBVAorI2VuZGlmCisKKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisKKyNpZmRlZiBzb2xhcmlzMgorIyBpZm5kZWYgQ01TR19TUEFDRQorIyAgZGVmaW5lIENNU0dfU1BBQ0UobCkgXAorICAgICAgICAgICAgKCh1bnNpZ25lZCBpbnQpX0NNU0dfSERSX0FMSUdOKHNpemVvZiAoc3RydWN0IGNtc2doZHIpICsgKGwpKSkKKyMgIGRlZmluZSBDTVNHX0xFTihsKSAgIChfQ01TR19IRFJfQUxJR04oc2l6ZW9mKHN0cnVjdCBjbXNnaGRyKSkgKyAobCkpCisjIGVuZGlmCisjZW5kaWYKKyNlbmRpZiAvKiBIQVZFX1NZU19TT0NLRVRfSCAqLworCiAjaWZkZWYgSEFWRV9ORVRJTkVUX0lOX0gKICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CiAjZW5kaWYKIAotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotCiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9hc24xLmg+CiAKICNpZmRlZiBfX2NwbHVzcGx1cwpAQCAtNTEsMTQgKzcxLDIyIEBACiAvKiBub3RlOiBWQUNNIG9ubHkgYWxsb3dzIDw9IDMyIHNvIHRoaXMgaXMgb3ZlcmtpbGwgdGlsbCBhbm90aGVyIEFDTSBjb21lcyAqLwogI2RlZmluZSBORVRTTk1QX1RNX01BWF9TRUNOQU1FIDI1NgogCit0eXBlZGVmIHVuaW9uIG5ldHNubXBfc29ja2FkZHJfc3RvcmFnZV91IHsKKyAgICBzdHJ1Y3Qgc29ja2FkZHIgICAgIHNhOworICAgIHN0cnVjdCBzb2NrYWRkcl9pbiAgc2luOworI2lmZGVmIE5FVFNOTVBfRU5BQkxFX0lQVjYKKyAgICBzdHJ1Y3Qgc29ja2FkZHJfaW42IHNpbjY7CisjZW5kaWYKK30gbmV0c25tcF9zb2NrYWRkcl9zdG9yYWdlOworCiB0eXBlZGVmIHN0cnVjdCBuZXRzbm1wX2FkZHJfcGFpcl9zIHsKLSAgIHN0cnVjdCBzb2NrYWRkcl9pbiByZW1vdGVfYWRkcjsKLSAgIHN0cnVjdCBzb2NrYWRkcl9pbiBsb2NhbF9hZGRyOworICAgbmV0c25tcF9zb2NrYWRkcl9zdG9yYWdlIHJlbW90ZV9hZGRyOworICAgbmV0c25tcF9zb2NrYWRkcl9zdG9yYWdlIGxvY2FsX2FkZHI7CiB9IG5ldHNubXBfYWRkcl9wYWlyOwogCiB0eXBlZGVmIHN0cnVjdCBuZXRzbm1wX2luZGV4ZWRfYWRkcl9wYWlyX3MgewotICAgc3RydWN0IHNvY2thZGRyX2luIHJlbW90ZV9hZGRyOwotICAgc3RydWN0IHNvY2thZGRyX2luIGxvY2FsX2FkZHI7CisgICBuZXRzbm1wX3NvY2thZGRyX3N0b3JhZ2UgcmVtb3RlX2FkZHI7CisgICBuZXRzbm1wX3NvY2thZGRyX3N0b3JhZ2UgbG9jYWxfYWRkcjsKICAgICBpbnQgaWZfaW5kZXg7CiB9IG5ldHNubXBfaW5kZXhlZF9hZGRyX3BhaXI7CiAKQEAgLTExNSw4ICsxNDMsMTMgQEAKIAogICAgIHNpemVfdCAgICAgICAgICBtc2dNYXhTaXplOwogCisjaWZkZWYgRk9SX1NUQU5EQVJEU19DT01QTElBTkNFX09SX0ZVVFVSRV9VU0UKICAgICAvKiBUTSBzdGF0ZSByZWZlcmVuY2UgcGVyIElTTVMgV0cgc29sdXRpb24gKi8KICAgICBuZXRzbm1wX3RtU3RhdGVSZWZlcmVuY2UgKnRtU3RhdGVSZWY7CisjZW5kaWYKKworICAgIC8qIHR1bm5lbGVkIHRyYW5zcG9ydHMgKi8KKyAgICBzdHJ1Y3QgbmV0c25tcF90cmFuc3BvcnRfcyAqIGJhc2VfdHJhbnNwb3J0OwogCiAgICAgLyogIENhbGxiYWNrcy4gIEFyZ3VtZW50cyBhcmU6CiAgICAgICoJCQpAQCAtMTk5LDYgKzIzMiw3IEBACiAJCQkJICBuZXRzbm1wX3RyYW5zcG9ydCAqdHJhbnNwb3J0KTsKIGludCBuZXRzbm1wX3RyYW5zcG9ydF9yZW1vdmVfZnJvbV9saXN0KG5ldHNubXBfdHJhbnNwb3J0X2xpc3QgKip0cmFuc3BvcnRfbGlzdCwKIAkJCQkgICAgICAgbmV0c25tcF90cmFuc3BvcnQgKnRyYW5zcG9ydCk7CitpbnQgbmV0c25tcF9zb2NrYWRkcl9zaXplKHN0cnVjdCBzb2NrYWRkciAqc2EpOwogCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oIGIvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaAppbmRleCBjNzVlNWVmLi4xYjU2M2YwIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wa3NtLmgKQEAgLTE1LDYgKzE1LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopOwogICAgIHZvaWQgICAgICAgICAgICBpbml0X2tzbSh2b2lkKTsKIAorICAgIHZvaWQgICAgICAgICAgICBzaHV0ZG93bl9rc20odm9pZCk7CisKICAgICAvKgogICAgICAqIFRoaXMgaXMgdGhlICJrZXkgdXNhZ2UiIHRoYXQgaXMgdXNlZCBieSB0aGUgbmV3IGNyeXB0byBBUEkuICBJdCdzIHVzZWQKICAgICAgKiBnZW5lcmFsbHkgb25seSBpZiB5b3UgYXJlIHVzaW5nIGRlcml2ZWQga2V5cy4gIFRoZSBzcGVjaWZpY2FsIHNheXMgdGhhdApAQCAtMjUsNiArMjcsOCBAQAogI2RlZmluZSBLU01fS0VZX1VTQUdFX0VOQ1JZUFRJT04JMTAzMAogI2RlZmluZSBLU01fS0VZX1VTQUdFX0NIRUNLU1VNCQkxMDMxCiAKKyNkZWZpbmUgS1NNX1NFQ19NT0RFTF9OVU1CRVIgICAgICAgICAgICBTTk1QX1NFQ19NT0RFTF9LU00KKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmggYi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCmluZGV4IGE3YzhkOTMuLjI2NGE5MjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKKysrIGIvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaApAQCAtNSw2ICs1LDggQEAKICNpZm5kZWYgU05NUFRTTV9ICiAjZGVmaW5lIFNOTVBUU01fSAogCisjZGVmaW5lIFRTTV9TRUNfTU9ERUxfTlVNQkVSICAgICAgICAgICAgU05NUF9TRUNfTU9ERUxfVFNNCisKICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICAgICAgICAgICJDIiB7CiAjZW5kaWYKQEAgLTE1LDYgKzE3LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopOwogICAgIHZvaWQgICAgICAgICAgICBpbml0X3RzbSh2b2lkKTsKIAorICAgIHZvaWQgICAgICAgICAgICBzaHV0ZG93bl90c20odm9pZCk7CisKICAgICAjZGVmaW5lIE5FVFNOTVBfVE1fU0FNRV9TRUNVUklUWV9OT1RfUkVRVUlSRUQgMAogICAgICNkZWZpbmUgTkVUU05NUF9UTV9VU0VfU0FNRV9TRUNVUklUWSAgICAgICAgICAxCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmggYi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCmluZGV4IGQxY2VkOTAuLjlkNjczY2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKKysrIGIvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaApAQCAtMjU5LDYgKzI1OSwyMSBAQAogCQkJCQkgICB2b2lkICpjbGllbnRhcmcpOwogICAgIE5FVFNOTVBfSU1QT1JUCiAgICAgdm9pZCAgICAgICAgICAgIGNsZWFyX3VzZXJfbGlzdCh2b2lkKTsKKyAgICBORVRTTk1QX0lNUE9SVAorICAgIHZvaWQgICAgICAgICAgICBzaHV0ZG93bl91c20odm9pZCk7CisKKyAgICBORVRTTk1QX0lNUE9SVAorICAgIGludCAgICAgICAgICAgICB1c21fY3JlYXRlX3VzZXJfZnJvbV9zZXNzaW9uKG5ldHNubXBfc2Vzc2lvbiAqIHNlc3Npb24pOworICAgIFNlY21vZFBvc3REaXNjb3ZlcnkgdXNtX2NyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbl9ob29rOworICAgIE5FVFNOTVBfSU1QT1JUCisgICAgdm9pZCAgICAgICAgICAgIHVzbV9wYXJzZV9jcmVhdGVfdXNtVXNlcihjb25zdCBjaGFyICp0b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmxpbmUpOworICAgIE5FVFNOTVBfSU1QT1JUCisgICAgY29uc3Qgb2lkICAgICAgKmdldF9kZWZhdWx0X2F1dGh0eXBlKHNpemVfdCAqKTsKKyAgICBORVRTTk1QX0lNUE9SVAorICAgIGNvbnN0IG9pZCAgICAgICpnZXRfZGVmYXVsdF9wcml2dHlwZShzaXplX3QgKik7CisgICAgdm9pZCAgICAgICAgICAgIHNubXB2M19hdXRodHlwZV9jb25mKGNvbnN0IGNoYXIgKndvcmQsIGNoYXIgKmNwdHIpOworICAgIHZvaWQgICAgICAgICAgICBzbm1wdjNfcHJpdnR5cGVfY29uZihjb25zdCBjaGFyICp3b3JkLCBjaGFyICpjcHRyKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmggYi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgKaW5kZXggNjMzZWE1Ny4uYTk1ODgwOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaApAQCAtMjYsMTEgKzI2LDYgQEAKICAgICB2b2lkICAgICAgICAgICAgZW5naW5lQm9vdHNfY29uZihjb25zdCBjaGFyICosIGNoYXIgKik7CiAgICAgdm9pZCAgICAgICAgICAgIGVuZ2luZUlEVHlwZV9jb25mKGNvbnN0IGNoYXIgKiwgY2hhciAqKTsKICAgICB2b2lkICAgICAgICAgICAgZW5naW5lSUROaWNfY29uZihjb25zdCBjaGFyICosIGNoYXIgKik7Ci0gICAgdm9pZCAgICAgICAgICAgIHNubXB2M19hdXRodHlwZV9jb25mKGNvbnN0IGNoYXIgKndvcmQsIGNoYXIgKmNwdHIpOwotICAgIHZvaWQgICAgICAgICAgICBzbm1wdjNfcHJpdnR5cGVfY29uZihjb25zdCBjaGFyICp3b3JkLCBjaGFyICpjcHRyKTsKLSAgICBORVRTTk1QX0lNUE9SVAotICAgIHZvaWQgICAgICAgICAgICB1c21fcGFyc2VfY3JlYXRlX3VzbVVzZXIoY29uc3QgY2hhciAqdG9rZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpsaW5lKTsKICAgICBORVRTTk1QX0lNUE9SVAogICAgIHZvaWQgICAgICAgICAgICBpbml0X3NubXB2Myhjb25zdCBjaGFyICopOwogICAgIGludCAgICAgICAgICAgICBpbml0X3NubXB2M19wb3N0X2NvbmZpZyhpbnQgbWFqb3JpZCwgaW50IG1pbm9yaWQsCkBAIC01NCwxMCArNDksNiBAQAogICAgIE5FVFNOTVBfSU1QT1JUCiAgICAgdV9sb25nICAgICAgICAgIHNubXB2M19sb2NhbF9zbm1wRW5naW5lVGltZSh2b2lkKTsKICAgICBpbnQgICAgICAgICAgICAgZ2V0X2RlZmF1bHRfc2VjTGV2ZWwodm9pZCk7Ci0gICAgTkVUU05NUF9JTVBPUlQKLSAgICBjb25zdCBvaWQgICAgICAqZ2V0X2RlZmF1bHRfYXV0aHR5cGUoc2l6ZV90ICopOwotICAgIE5FVFNOTVBfSU1QT1JUCi0gICAgY29uc3Qgb2lkICAgICAgKmdldF9kZWZhdWx0X3ByaXZ0eXBlKHNpemVfdCAqKTsKICAgICB2b2lkICAgICAgICAgICAgc25tcHYzX3NldF9lbmdpbmVCb290c0FuZFRpbWUoaW50IGJvb3RzLCBpbnQgdHRpbWUpOwogICAgIGludCAgICAgICAgICAgICBmcmVlX2VuZ2luZUlEKGludCBtYWpvcmlkLCBpbnQgbWlub3JpZCwgdm9pZCAqc2VydmVyYXJnLAogCQkJCSAgdm9pZCAqY2xpZW50YXJnKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCBiL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaAppbmRleCBmM2VjMjRjLi5hYzUwNTJlIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgKKysrIGIvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oCkBAIC0xMzEsNiArMTMxLDIwIEBACiAgICAgaW50ICAgICAgICAgICAgIG5ldHNubXBfZ2V0aG9zdGJ5bmFtZV92NChjb25zdCBjaGFyKiBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5fYWRkcl90ICphZGRyX291dCk7CiAKKyAgICAvKiogbmV0c25tcCB2ZXJzaW9ucyBvZiBkbnMgcmVzb2xvdXRpb24uLiBtYXkgaW5jbHVkZSBETlNTRUMgdmFsaWRhdGlvbi4gKi8KKyAgICBzdHJ1Y3QgYWRkcmluZm87IC8qIGZvcndhcmQgZGVjbGFyZSAqLworICAgIE5FVFNOTVBfSU1QT1JUCisgICAgc3RydWN0IGhvc3RlbnQgKm5ldHNubXBfZ2V0aG9zdGJ5bmFtZShjb25zdCBjaGFyICpuYW1lKTsKKworICAgIE5FVFNOTVBfSU1QT1JUCisgICAgc3RydWN0IGhvc3RlbnQgKm5ldHNubXBfZ2V0aG9zdGJ5YWRkcihjb25zdCB2b2lkICphZGRyLCBzb2NrbGVuX3QgbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHR5cGUpOworCisgICAgTkVUU05NUF9JTVBPUlQKKyAgICBpbnQgICAgICAgICAgICAgbmV0c25tcF9nZXRhZGRyaW5mbyhjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpzZXJ2aWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBhZGRyaW5mbyAqaGludHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFkZHJpbmZvICoqcmVzKTsKKwogICAgIE5FVFNOTVBfSU1QT1JUCiAgICAgaW5fYWRkcl90ICAgICAgIGdldF9teWFkZHIodm9pZCk7CiAgICAgTkVUU05NUF9JTVBPUlQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90ZXN0aW5nLmggYi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdGVzdGluZy5oCmluZGV4IGFhYmU1MmYuLmVjNjEzNWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90ZXN0aW5nLmgKKysrIGIvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rlc3RpbmcuaApAQCAtNywxMCArNywxMCBAQAogc3RhdGljIGludCBfX3Rlc3RfY291bnRlciA9IDA7CiBzdGF0aWMgaW50IF9fZGlkX3BsYW4gPSAwOwogCi0jZGVmaW5lIE9LKGlzb2ssIGRlc2NyaXB0aW9uKSB7IHByaW50ZigiJXMgJWQgLSAlc1xuIiwgKChpc29rKSA/ICJvayIgOiAibm90IG9rIiksICsrX190ZXN0X2NvdW50ZXIsIGRlc2NyaXB0aW9uKTsgfQorI2RlZmluZSBPSyhpc29rLCBkZXNjcmlwdGlvbikgZG8geyBwcmludGYoIiVzICVkIC0gJXNcbiIsICgoaXNvaykgPyAib2siIDogIm5vdCBvayIpLCArK19fdGVzdF9jb3VudGVyLCBkZXNjcmlwdGlvbik7IH0gd2hpbGUgKDApCiAKLSNkZWZpbmUgT0tGKGlzb2ssIGRlc2NyaXB0aW9uKSB7IHByaW50ZigiJXMgJWQgLSBcbiIsICgoaXNvaykgPyAib2siIDogIm5vdCBvayIpLCArK19fdGVzdF9jb3VudGVyKTsgcHJpbnRmIGRlc2NyaXB0aW9uOyBwcmludGYoIlxuIik7IH0KKyNkZWZpbmUgT0tGKGlzb2ssIGRlc2NyaXB0aW9uKSBkbyB7IHByaW50ZigiJXMgJWQgLSAiLCAoKGlzb2spID8gIm9rIiA6ICJub3Qgb2siKSwgKytfX3Rlc3RfY291bnRlcik7IHByaW50ZiBkZXNjcmlwdGlvbjsgcHJpbnRmKCJcbiIpOyB9IHdoaWxlICgwKQogCi0jZGVmaW5lIFBMQU4obnVtYmVyKSB7IHByaW50ZigiMS4uJWRcbiIsIG51bWJlcik7IF9fZGlkX3BsYW4gPSAxO30KKyNkZWZpbmUgUExBTihudW1iZXIpIGRvIHsgcHJpbnRmKCIxLi4lZFxuIiwgbnVtYmVyKTsgX19kaWRfcGxhbiA9IDE7IH0gd2hpbGUgKDApCiAKICNlbmRpZiAvKiBORVRTTk1QX0xJQlJBUllfVEVTVElOR19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCBiL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oCmluZGV4IDlhYzRmYTUuLjI2MzRiMzQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oCkBAIC0yMDksNiArMjA5LDkgQEAKICAgICBORVRTTk1QX0lNUE9SVAogICAgIHZvaWQgICAgICAgICAgICpuZXRzbm1wX21lbWR1cChjb25zdCB2b2lkICogZnJvbSwgc2l6ZV90IHNpemUpOwogCisgICAgdm9pZCAgICAgICAgICAgIG5ldHNubXBfY2hlY2tfZGVmaW5lZG5lc3MoY29uc3Qgdm9pZCAqcGFja2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgpOworCiAgICAgTkVUU05NUF9JTVBPUlQKICAgICB1X2ludCAgICAgICAgICAgbmV0c25tcF9iaW5hcnlfdG9faGV4KHVfY2hhciAqKiBkZXN0LCBzaXplX3QgKmRlc3RfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFsbG93X3JlYWxsb2MsCkBAIC0yNTksMTIgKzI2MiwxOCBAQAogICAgIE5FVFNOTVBfSU1QT1JUCiAgICAgdm9pZCAgICAgICAgICAgIGF0aW1lX3NldE1hcmtlcihtYXJrZXJfdCBwbSk7CiAgICAgTkVUU05NUF9JTVBPUlQKKyAgICB2b2lkICAgICAgICAgICAgbmV0c25tcF9nZXRfbW9ub3RvbmljX2Nsb2NrKHN0cnVjdCB0aW1ldmFsKiB0dik7CisgICAgTkVUU05NUF9JTVBPUlQKKyAgICB2b2lkICAgICAgICAgICAgbmV0c25tcF9zZXRfbW9ub3RvbmljX21hcmtlcihtYXJrZXJfdCAqcG0pOworICAgIE5FVFNOTVBfSU1QT1JUCiAgICAgbG9uZyAgICAgICAgICAgIGF0aW1lX2RpZmYoY29uc3RfbWFya2VyX3QgZmlyc3QsIGNvbnN0X21hcmtlcl90IHNlY29uZCk7CiAgICAgdV9sb25nICAgICAgICAgIHVhdGltZV9kaWZmKGNvbnN0X21hcmtlcl90IGZpcnN0LCBjb25zdF9tYXJrZXJfdCBzZWNvbmQpOyAgICAgICAvKiAxLzEwMDB0aCBzZWMgKi8KICAgICBORVRTTk1QX0lNUE9SVAogICAgIHVfbG9uZyAgICAgICAgICB1YXRpbWVfaGRpZmYoY29uc3RfbWFya2VyX3QgZmlyc3QsIGNvbnN0X21hcmtlcl90IHNlY29uZCk7ICAgICAgLyogMS8xMDB0aCBzZWMgKi8KICAgICBORVRTTk1QX0lNUE9SVAogICAgIGludCAgICAgICAgICAgICBhdGltZV9yZWFkeShjb25zdF9tYXJrZXJfdCBwbSwgaW50IGRlbHRhX21zKTsKKyAgICBORVRTTk1QX0lNUE9SVAorICAgIGludCAgICAgICAgICAgICBuZXRzbm1wX3JlYWR5X21vbm90b25pYyhjb25zdF9tYXJrZXJfdCBwbSwgaW50IGRlbHRhX21zKTsKICAgICBpbnQgICAgICAgICAgICAgdWF0aW1lX3JlYWR5KGNvbnN0X21hcmtlcl90IHBtLCB1bnNpZ25lZCBpbnQgZGVsdGFfbXMpOwogCiAgICAgaW50ICAgICAgICAgICAgIG1hcmtlcl90dGlja3MoY29uc3RfbWFya2VyX3QgcG0pOwpAQCAtMjc3LDYgKzI4Niw5IEBACiAKICAgICBpbnQgICAgICAgICAgICAgbmV0c25tcF9hZGRyc3RyX2h0b24oY2hhciAqcHRyLCBzaXplX3QgbGVuKTsKIAorICAgIE5FVFNOTVBfSU1QT1JUCisgICAgaW50ICAgICAgICAgICAgIG5ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2Vjcyhjb25zdCBjaGFyICp0aW1lX3N0cmluZyk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluIGIvaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgppbmRleCAyYTIyYzAwLi4xZGIwMjM3IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KQEAgLTI4LDE1ICsyOCw2IEBACiAgKi8KICNpZm5kZWYgTkVUU05NUF9OT19BVVRPQ09ORl9ERUZJTklUSU9OUwogCi0KLSNpZiBkZWZpbmVkIChXSU4zMikgfHwgZGVmaW5lZCAobWluZ3czMikgfHwgZGVmaW5lZCAoY3lnd2luKQotI2RlZmluZSBFTlZfU0VQQVJBVE9SICI7IgotI2RlZmluZSBFTlZfU0VQQVJBVE9SX0NIQVIgJzsnCi0jZWxzZQotI2RlZmluZSBFTlZfU0VQQVJBVE9SICI6IgotI2RlZmluZSBFTlZfU0VQQVJBVE9SX0NIQVIgJzonCi0jZW5kaWYKLQogLyogZGVmaW5pdGlvbnMgYWRkZWQgYnkgY29uZmlndXJlIG9uLXRoZS1mbHkgKi8KIAogI2RlZmluZSBjb25maWdfYmVsb25nc19pbih4KQpAQCAtNzEsNiArNjIsMTUgQEAKIC8qIGxvY2F0aW9uIG9mIHN3YXAgZGV2aWNlICovCiAjdW5kZWYgRE1FTV9MT0MKIAorLyogRGVmaW5lIGlmIHlvdSB3YW50IGxvY2FsIEROU1NFQyB2YWxpZGF0aW9uIHN1cHBvcnQgKi8KKyN1bmRlZiBETlNTRUNfTE9DQUxfVkFMSURBVElPTgorCisvKiBFbnZpcm9ubWVudCBzZXBhcmF0b3IgY2hhcmFjdGVyIHN1cnJvdW5kZWQgYnkgZG91YmxlIHF1b3Rlcy4gKi8KKyN1bmRlZiBFTlZfU0VQQVJBVE9SCisKKy8qIEVudmlyb25tZW50IHNlcGFyYXRvciBjaGFyYWN0ZXIgc3Vycm91bmRlZCBieSBzaW5nbGUgcXVvdGVzLiAqLworI3VuZGVmIEVOVl9TRVBBUkFUT1JfQ0hBUgorCiAvKiBsb2NhdGlvbiBvZiBtb3VudCB0YWJsZSBsaXN0ICovCiAjdW5kZWYgRVRDX01OVFRBQgogCkBAIC0xMDIsOSArMTAyLDE1IEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNob3duJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX0NIT1dOCiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgY2xvY2tfZ2V0dGltZScgbGlicmFyeSAqLworI3VuZGVmIEhBVkVfQ0xPQ0tfR0VUVElNRQorCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNsb3NlZGlyJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX0NMT1NFRElSCiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8Y29tX2Vyci5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0NPTV9FUlJfSAorCiAvKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgQ291bnRlcjY0Jy4gKi8KICN1bmRlZiBIQVZFX0NPVU5URVI2NAogCkBAIC0xMzcsNiArMTQzLDkgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZXJyLmg+IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhBVkVfRVJSX0gKIAorLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxldC9jb21fZXJyLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfRVRfQ09NX0VSUl9ICisKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZXZhbF9wdicgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9FVkFMX1BWCiAKQEAgLTE0NiwxOCArMTU1LDMzIEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYEVWUF9NRF9DVFhfZGVzdHJveScgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9FVlBfTURfQ1RYX0RFU1RST1kKIAorLyogRGVmaW5lIGlmIHlvdSBoYXZlIEVWUF9zaGEyMjQvMjU2IGluIG9wZW5zc2wgKi8KKyN1bmRlZiBIQVZFX0VWUF9TSEEyMjQKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIEVWUF9zaGEzODQvMjU2IGluIG9wZW5zc2wgKi8KKyN1bmRlZiBIQVZFX0VWUF9TSEEzODQKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBleGVjdicgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9FWEVDVgogCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZjbnRsLmg+IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhBVkVfRkNOVExfSAogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZnZXRjX3VubG9ja2VkJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0ZHRVRDX1VOTE9DS0VECisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZmxvY2tmaWxlJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0ZMT0NLRklMRQorCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZvcmsnIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfRk9SSwogCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZzdGFiLmg+IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhBVkVfRlNUQUJfSAogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZ1bmxvY2tmaWxlJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0ZVTkxPQ0tGSUxFCisKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2FpX3N0cmVycm9yJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX0dBSV9TVFJFUlJPUgogCkBAIC0xNzYsNiArMjAwLDkgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0Z3JuYW0nIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfR0VUR1JOQU0KIAorLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRob3N0YnlhZGRyJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0dFVEhPU1RCWUFERFIKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRob3N0YnluYW1lJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX0dFVEhPU1RCWU5BTUUKIApAQCAtMjc4LDEyICszMDUsMTIgQEAKIC8qIFNldCBpZiBJUF9SRUNWRFNUQUREUiBpcyB1c2FibGUgKi8KICN1bmRlZiBIQVZFX0lQX1JFQ1ZEU1RBRERSCiAKLS8qIGtlcm4uY3BfdGltZXMgZGlzcGxheXMgbXVsdGkgY3B1IGxvYWQgb24gRnJlZUJTRC4uLiAqLwotI3VuZGVmIEhBVkVfS0VSTl9DUF9USU1FUwotCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGtpbmZvX2dldF9jcHVzJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX0tJTkZPX0dFVF9DUFVTCiAKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSAvZGV2L2ttZW0gKi8KKyN1bmRlZiBIQVZFX0tNRU0KKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBrbmxpc3QnIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfS05MSVNUCiAKQEAgLTMzNSw2ICszNjIsMTIgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcGtjczExJyBsaWJyYXJ5ICgtbHBrY3MxMSkuICovCiAjdW5kZWYgSEFWRV9MSUJQS0NTMTEKIAorLyogZGVmaW5lIGlmIHlvdSBoYXZlIEJTRCBwa2ctbmcgKi8KKyN1bmRlZiBIQVZFX0xJQlBLRworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHB0aHJlYWQnIGxpYnJhcnkgKC1scHRocmVhZCkuICovCisjdW5kZWYgSEFWRV9MSUJQVEhSRUFECisKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcnBtJyBsaWJyYXJ5ICgtbHJwbSkuICovCiAjdW5kZWYgSEFWRV9MSUJSUE0KIApAQCAtMzQ0LDYgKzM3Nyw5IEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJzYXJlZicgbGlicmFyeSAoLWxyc2FyZWYpLiAqLwogI3VuZGVmIEhBVkVfTElCUlNBUkVGCiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3JlcycgbGlicmFyeSAoLWxzcmVzKS4gKi8KKyN1bmRlZiBIQVZFX0xJQlNSRVMKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzc2gyJyBsaWJyYXJ5ICgtbHNzaDIpLiAqLwogI3VuZGVmIEhBVkVfTElCU1NIMgogCkBAIC01NjksNiArNjA1LDkgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8b3NyZWxkYXRlLmg+IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhBVkVfT1NSRUxEQVRFX0gKIAorLyogZGVmaW5lIGlmIHlvdSBoYXZlIHBjaV9sb29rdXBfbmFtZSgpICovCisjdW5kZWYgSEFWRV9QQ0lfTE9PS1VQX05BTUUKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwY2kvcGNpLmg+IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhBVkVfUENJX1BDSV9ICiAKQEAgLTU5Myw2ICs2MzIsOSBAQAogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwa2dsb2NzLmg+IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhBVkVfUEtHTE9DU19ICiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cGtnLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfUEtHX0gKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwb2xsJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX1BPTEwKIApAQCAtNzY0LDIwNiArODA2LDIxMiBAQAogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJ0b3VsbCcgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9TVFJUT1VMTAogCi0vKiBEZWZpbmUgdG8gMSBpZiBgYXRfbmV4dCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgYXJwaGQnLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYGF0X25leHQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgYXJwaGQnLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX0FSUEhEX0FUX05FWFQKIAotLyogRGVmaW5lIHRvIDEgaWYgYHdlYWtfa2V5JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBkZXNfa3Nfc3RydWN0Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGB3ZWFrX2tleScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBkZXNfa3Nfc3RydWN0Jy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9ERVNfS1NfU1RSVUNUX1dFQUtfS0VZCiAKLS8qIERlZmluZSB0byAxIGlmIGBkX3R5cGUnIGlzIG1lbWJlciBvZiBgc3RydWN0IGRpcmVudCcuICovCisvKiBEZWZpbmUgdG8gMSBpZiBgZF90eXBlJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGRpcmVudCcuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfRElSRU5UX0RfVFlQRQogCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3BlZWRfaGknIGlzIG1lbWJlciBvZiBgc3RydWN0IGV0aHRvb2xfY21kJy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBzcGVlZF9oaScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBldGh0b29sX2NtZCcuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfRVRIVE9PTF9DTURfU1BFRURfSEkKIAotLyogRGVmaW5lIHRvIDEgaWYgYGlmYV9uZXh0JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZmFkZHInLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYGlmYV9uZXh0JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmYWRkcicuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfSUZBRERSX0lGQV9ORVhUCiAKLS8qIERlZmluZSB0byAxIGlmIGBpZl9hZGRyaGVhZC50cWhfZmlyc3QnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBpZl9hZGRyaGVhZC50cWhfZmlyc3QnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0FERFJIRUFEX1RRSF9GSVJTVAogCi0vKiBEZWZpbmUgdG8gMSBpZiBgaWZfYWRkcmxpc3QnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBpZl9hZGRybGlzdCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfQUREUkxJU1QKIAotLyogRGVmaW5lIHRvIDEgaWYgYGlmX2JhdWRyYXRlJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCisvKiBEZWZpbmUgdG8gMSBpZiBgaWZfYmF1ZHJhdGUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0JBVURSQVRFCiAKLS8qIERlZmluZSB0byAxIGlmIGBpZl9iYXVkcmF0ZS5pZnNfdmFsdWUnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBpZl9iYXVkcmF0ZS5pZnNfdmFsdWUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0JBVURSQVRFX0lGU19WQUxVRQogCi0vKiBEZWZpbmUgdG8gMSBpZiBgaWZfaWJ5dGVzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCisvKiBEZWZpbmUgdG8gMSBpZiBgaWZfaWJ5dGVzJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9JQllURVMKIAotLyogRGVmaW5lIHRvIDEgaWYgYGlmX2ltY2FzdHMnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBpZl9pbWNhc3RzJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9JTUNBU1RTCiAKLS8qIERlZmluZSB0byAxIGlmIGBpZl9pcWRyb3BzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCisvKiBEZWZpbmUgdG8gMSBpZiBgaWZfaXFkcm9wcycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfSVFEUk9QUwogCi0vKiBEZWZpbmUgdG8gMSBpZiBgaWZfbGFzdGNoYW5nZS50dl9uc2VjJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCisvKiBEZWZpbmUgdG8gMSBpZiBgaWZfbGFzdGNoYW5nZS50dl9uc2VjJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9MQVNUQ0hBTkdFX1RWX05TRUMKIAotLyogRGVmaW5lIHRvIDEgaWYgYGlmX2xhc3RjaGFuZ2UudHZfc2VjJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCisvKiBEZWZpbmUgdG8gMSBpZiBgaWZfbGFzdGNoYW5nZS50dl9zZWMnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0xBU1RDSEFOR0VfVFZfU0VDCiAKLS8qIERlZmluZSB0byAxIGlmIGBpZl9tdHUnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBpZl9tdHUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX01UVQogCi0vKiBEZWZpbmUgdG8gMSBpZiBgaWZfbm9wcm90bycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYGlmX25vcHJvdG8nIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX05PUFJPVE8KIAotLyogRGVmaW5lIHRvIDEgaWYgYGlmX29ieXRlcycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYGlmX29ieXRlcycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfT0JZVEVTCiAKLS8qIERlZmluZSB0byAxIGlmIGBpZl9vbWNhc3RzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCisvKiBEZWZpbmUgdG8gMSBpZiBgaWZfb21jYXN0cycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfT01DQVNUUwogCi0vKiBEZWZpbmUgdG8gMSBpZiBgaWZfc3BlZWQnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBpZl9zcGVlZCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfU1BFRUQKIAotLyogRGVmaW5lIHRvIDEgaWYgYGlmX3R5cGUnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBpZl90eXBlJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9UWVBFCiAKLS8qIERlZmluZSB0byAxIGlmIGBpZl94bmFtZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYGlmX3huYW1lJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9YTkFNRQogCi0vKiBEZWZpbmUgdG8gMSBpZiBgaXBzX2NhbnRmb3J3YXJkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYGlwNnNfZXh0aGRydG9vbG9uZyAnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXA2c3RhdCcuICovCisjdW5kZWYgSEFWRV9TVFJVQ1RfSVA2U1RBVF9JUDZTX0VYVEhEUlRPT0xPTkdfCisKKy8qIERlZmluZSB0byAxIGlmIGBpcHNfY2FudGZvcndhcmQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX0NBTlRGT1JXQVJECiAKLS8qIERlZmluZSB0byAxIGlmIGBpcHNfY2FudGZyYWcnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCisvKiBEZWZpbmUgdG8gMSBpZiBgaXBzX2NhbnRmcmFnJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19DQU5URlJBRwogCi0vKiBEZWZpbmUgdG8gMSBpZiBgaXBzX2RlbGl2ZXJlZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBpcHNfZGVsaXZlcmVkJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19ERUxJVkVSRUQKIAotLyogRGVmaW5lIHRvIDEgaWYgYGlwc19mcmFnZHJvcHBlZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBpcHNfZnJhZ2Ryb3BwZWQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX0ZSQUdEUk9QUEVECiAKLS8qIERlZmluZSB0byAxIGlmIGBpcHNfZnJhZ21lbnRlZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBpcHNfZnJhZ21lbnRlZCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfRlJBR01FTlRFRAogCi0vKiBEZWZpbmUgdG8gMSBpZiBgaXBzX2ZyYWd0aW1lb3V0JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYGlwc19mcmFndGltZW91dCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfRlJBR1RJTUVPVVQKIAotLyogRGVmaW5lIHRvIDEgaWYgYGlwc19sb2NhbG91dCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBpcHNfbG9jYWxvdXQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX0xPQ0FMT1VUCiAKLS8qIERlZmluZSB0byAxIGlmIGBpcHNfbm9wcm90bycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBpcHNfbm9wcm90bycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfTk9QUk9UTwogCi0vKiBEZWZpbmUgdG8gMSBpZiBgaXBzX25vcm91dGUnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCisvKiBEZWZpbmUgdG8gMSBpZiBgaXBzX25vcm91dGUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX05PUk9VVEUKIAotLyogRGVmaW5lIHRvIDEgaWYgYGlwc19vZHJvcHBlZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBpcHNfb2Ryb3BwZWQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX09EUk9QUEVECiAKLS8qIERlZmluZSB0byAxIGlmIGBpcHNfb2ZyYWdtZW50cycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBpcHNfb2ZyYWdtZW50cycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfT0ZSQUdNRU5UUwogCi0vKiBEZWZpbmUgdG8gMSBpZiBgaXBzX3JlYXNzZW1ibGVkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYGlwc19yZWFzc2VtYmxlZCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfUkVBU1NFTUJMRUQKIAotLyogRGVmaW5lIHRvIDEgaWYgYG1fY2xmcmVlJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBtYnN0YXQnLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYG1fY2xmcmVlJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IG1ic3RhdCcuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfTUJTVEFUX01fQ0xGUkVFCiAKLS8qIERlZmluZSB0byAxIGlmIGBtX2NsdXN0ZXJzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBtYnN0YXQnLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYG1fY2x1c3RlcnMnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgbWJzdGF0Jy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9NQlNUQVRfTV9DTFVTVEVSUwogCi0vKiBEZWZpbmUgdG8gMSBpZiBgbV9tYnVmcycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgbWJzdGF0Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBtX21idWZzJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IG1ic3RhdCcuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfTUJTVEFUX01fTUJVRlMKIAotLyogRGVmaW5lIHRvIDEgaWYgYG5fdmFsdWUnIGlzIG1lbWJlciBvZiBgc3RydWN0IG5saXN0NjQnLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYG5fdmFsdWUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgbmxpc3Q2NCcuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfTkxJU1Q2NF9OX1ZBTFVFCiAKLS8qIERlZmluZSB0byAxIGlmIGBuX3ZhbHVlJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBubGlzdCcuICovCisvKiBEZWZpbmUgdG8gMSBpZiBgbl92YWx1ZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBubGlzdCcuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfTkxJU1RfTl9WQUxVRQogCi0vKiBEZWZpbmUgdG8gMSBpZiBgcnRfZHN0JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBydGVudHJ5Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBydF9kc3QnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfUlRFTlRSWV9SVF9EU1QKIAotLyogRGVmaW5lIHRvIDEgaWYgYHJ0X2hhc2gnIGlzIG1lbWJlciBvZiBgc3RydWN0IHJ0ZW50cnknLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYHJ0X2hhc2gnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfUlRFTlRSWV9SVF9IQVNICiAKLS8qIERlZmluZSB0byAxIGlmIGBydF9uZXh0JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBydGVudHJ5Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBydF9uZXh0JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHJ0ZW50cnknLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX1JURU5UUllfUlRfTkVYVAogCi0vKiBEZWZpbmUgdG8gMSBpZiBgcnRfcmVmY250JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBydGVudHJ5Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBydF9yZWZjbnQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfUlRFTlRSWV9SVF9SRUZDTlQKIAotLyogRGVmaW5lIHRvIDEgaWYgYHJ0X3VuaXQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHJ0ZW50cnknLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYHJ0X3VuaXQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfUlRFTlRSWV9SVF9VTklUCiAKLS8qIERlZmluZSB0byAxIGlmIGBydF91c2UnIGlzIG1lbWJlciBvZiBgc3RydWN0IHJ0ZW50cnknLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYHJ0X3VzZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBydGVudHJ5Jy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9SVEVOVFJZX1JUX1VTRQogCi0vKiBEZWZpbmUgdG8gMSBpZiBgc2Ffc2lnYWN0aW9uJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzaWdhY3Rpb24nLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYHNhX3NpZ2FjdGlvbicgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzaWdhY3Rpb24nLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX1NJR0FDVElPTl9TQV9TSUdBQ1RJT04KIAotLyogRGVmaW5lIHRvIDEgaWYgYHNpbjZfc2NvcGVfaWQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHNvY2thZGRyX2luNicuICovCisvKiBEZWZpbmUgdG8gMSBpZiBgc2luNl9zY29wZV9pZCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzb2NrYWRkcl9pbjYnLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lECiAKLS8qIERlZmluZSB0byAxIGlmIGBzYV9sZW4nIGlzIG1lbWJlciBvZiBgc3RydWN0IHNvY2thZGRyJy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBzYV9sZW4nIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc29ja2FkZHInLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX1NPQ0tBRERSX1NBX0xFTgogCi0vKiBEZWZpbmUgdG8gMSBpZiBgc2FfdW5pb24uc2FfZ2VuZXJpYy5zYV9mYW1pbHkyJyBpcyBtZW1iZXIgb2YgYHN0cnVjdAorLyogRGVmaW5lIHRvIDEgaWYgYHNhX3VuaW9uLnNhX2dlbmVyaWMuc2FfZmFtaWx5MicgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdAogICAgc29ja2FkZHInLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX1NPQ0tBRERSX1NBX1VOSU9OX1NBX0dFTkVSSUNfU0FfRkFNSUxZMgogCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3NfZmFtaWx5JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlJy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBzc19mYW1pbHknIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZScuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfU09DS0FERFJfU1RPUkFHRV9TU19GQU1JTFkKIAotLyogRGVmaW5lIHRvIDEgaWYgYF9fc3NfZmFtaWx5JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlJy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBfX3NzX2ZhbWlseScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlJy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9TT0NLQUREUl9TVE9SQUdFX19fU1NfRkFNSUxZCiAKLS8qIERlZmluZSB0byAxIGlmIGBmX2ZhdmFpbCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdGZzJy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBmX2ZhdmFpbCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0ZnMnLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRGU19GX0ZBVkFJTAogCi0vKiBEZWZpbmUgdG8gMSBpZiBgZl9mZnJlZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdGZzJy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBmX2ZmcmVlJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHN0YXRmcycuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVEZTX0ZfRkZSRUUKIAotLyogRGVmaW5lIHRvIDEgaWYgYGZfZmlsZXMnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXRmcycuICovCisvKiBEZWZpbmUgdG8gMSBpZiBgZl9maWxlcycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0ZnMnLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRGU19GX0ZJTEVTCiAKLS8qIERlZmluZSB0byAxIGlmIGBmX2ZsYWdzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0ZnMnLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYGZfZmxhZ3MnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdGZzJy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9TVEFURlNfRl9GTEFHUwogCi0vKiBEZWZpbmUgdG8gMSBpZiBgZl9mcnNpemUnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXRmcycuICovCisvKiBEZWZpbmUgdG8gMSBpZiBgZl9mcnNpemUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdGZzJy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9TVEFURlNfRl9GUlNJWkUKIAotLyogRGVmaW5lIHRvIDEgaWYgYGZfZmlsZXMnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXR2ZnMnLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYGZfZmlsZXMnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdHZmcycuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVFZGU19GX0ZJTEVTCiAKLS8qIERlZmluZSB0byAxIGlmIGBmX2Zyc2l6ZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdHZmcycuICovCisvKiBEZWZpbmUgdG8gMSBpZiBgZl9mcnNpemUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdHZmcycuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVFZGU19GX0ZSU0laRQogCi0vKiBEZWZpbmUgdG8gMSBpZiBgbW50X2RpcicgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdHZmcycuICovCisvKiBEZWZpbmUgdG8gMSBpZiBgbW50X2RpcicgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0dmZzJy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUVkZTX01OVF9ESVIKIAotLyogRGVmaW5lIHRvIDEgaWYgYHN3X25ibGtzZW5hYmxlZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3dkZXZ0Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGBzd19uYmxrc2VuYWJsZWQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3dkZXZ0Jy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9TV0RFVlRfU1dfTkJMS1NFTkFCTEVECiAKLS8qIERlZmluZSB0byAxIGlmIGB0Y3BfcmN2bWVtZHJvcCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgdGNwc3RhdCcuICovCisvKiBEZWZpbmUgdG8gMSBpZiBgdGNwX3Jjdm1lbWRyb3AnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgdGNwc3RhdCcuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfVENQU1RBVF9UQ1BfUkNWTUVNRFJPUAogCi0vKiBEZWZpbmUgdG8gMSBpZiBgdHpfZHN0dGltZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgdGltZXpvbmUnLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYHR6X2RzdHRpbWUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgdGltZXpvbmUnLiAqLwogI3VuZGVmIEhBVkVfU1RSVUNUX1RJTUVaT05FX1RaX0RTVFRJTUUKIAotLyogRGVmaW5lIHRvIDEgaWYgYHRtX2dtdG9mZicgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgdG0nLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYHRtX2dtdG9mZicgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCB0bScuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfVE1fVE1fR01UT0ZGCiAKLS8qIERlZmluZSB0byAxIGlmIGB1ZHBzX2Rpc2NhcmQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYHVkcHNfZGlzY2FyZCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCB1ZHBzdGF0Jy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9VRFBTVEFUX1VEUFNfRElTQ0FSRAogCi0vKiBEZWZpbmUgdG8gMSBpZiBgdWRwc19mdWxsc29jaycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgdWRwc3RhdCcuICovCisvKiBEZWZpbmUgdG8gMSBpZiBgdWRwc19mdWxsc29jaycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCB1ZHBzdGF0Jy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9VRFBTVEFUX1VEUFNfRlVMTFNPQ0sKIAotLyogRGVmaW5lIHRvIDEgaWYgYHVkcHNfbm9wb3J0JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCB1ZHBzdGF0Jy4gKi8KKy8qIERlZmluZSB0byAxIGlmIGB1ZHBzX2lwYWNrZXRzJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLworI3VuZGVmIEhBVkVfU1RSVUNUX1VEUFNUQVRfVURQU19JUEFDS0VUUworCisvKiBEZWZpbmUgdG8gMSBpZiBgdWRwc19ub3BvcnQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgdWRwc3RhdCcuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfVURQU1RBVF9VRFBTX05PUE9SVAogCi0vKiBEZWZpbmUgdG8gMSBpZiBgdWRwc19ub3BvcnRiY2FzdCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgdWRwc3RhdCcuICovCisvKiBEZWZpbmUgdG8gMSBpZiBgdWRwc19ub3BvcnRiY2FzdCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCB1ZHBzdGF0Jy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9VRFBTVEFUX1VEUFNfTk9QT1JUQkNBU1QKIAotLyogRGVmaW5lIHRvIDEgaWYgYHVkcHNfb3BhY2tldHMnIGlzIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLworLyogRGVmaW5lIHRvIDEgaWYgYHVkcHNfb3BhY2tldHMnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgdWRwc3RhdCcuICovCiAjdW5kZWYgSEFWRV9TVFJVQ1RfVURQU1RBVF9VRFBTX09QQUNLRVRTCiAKIC8qIERlZmluZSB0byAxIGlmIGBwZ3N3YXBpbicgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCB1dm1leHAnLiAqLwpAQCAtMTIxNCw2ICsxMjYyLDE1IEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHV2bS91dm1fcGFyYW0uaD4gaGVhZGVyIGZpbGUuICovCiAjdW5kZWYgSEFWRV9VVk1fVVZNX1BBUkFNX0gKIAorLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2YWxncmluZC9tZW1jaGVjay5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1ZBTEdSSU5EX01FTUNIRUNLX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2YWxncmluZC92YWxncmluZC5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1ZBTEdSSU5EX1ZBTEdSSU5EX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2YWxpZGF0b3IvdmFsaWRhdG9yLWNvbmZpZy5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1ZBTElEQVRPUl9WQUxJREFUT1JfQ09ORklHX0gKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2bS9zd2FwX3BhZ2VyLmg+IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhBVkVfVk1fU1dBUF9QQUdFUl9ICiAKQEAgLTEyNzksNiArMTMzNiwxMiBAQAogLyogZGVmYXVsdCBtaWIgZmlsZXMgdG8gbG9hZCwgc3BlY2lmaWVkIGJ5IHBhdGguICovCiAjdW5kZWYgTkVUU05NUF9ERUZBVUxUX01JQkZJTEVTCiAKKy8qIERlZmluZSBpZiBubyBhZ2VudCBpcyBidWlsdCAqLworI3VuZGVmIE5FVFNOTVBfRElTQUJMRV9BR0VOVAorCisvKiBEZWZpbmUgaWYgbm8gYXBwcyBhcmUgYnVpbHQgKi8KKyN1bmRlZiBORVRTTk1QX0RJU0FCTEVfQVBQUworCiAvKiBEZWZpbmUgaWYgREVTIGVuY3J5cHRpb24gc2hvdWxkIG5vdCBiZSBzdXBwb3J0ZWQgKi8KICN1bmRlZiBORVRTTk1QX0RJU0FCTEVfREVTCiAKQEAgLTEzMjUsNiArMTM4OCwxMiBAQAogLyogaWZuZXQgbmVlZHMgdG8gaGF2ZSBfS0VSTkVMX1NUUlVDVFVSRVMgZGVmaW5lZCAqLwogI3VuZGVmIE5FVFNOTVBfSUZORVRfTkVFRFNfS0VSTkVMX1NUUlVDVFVSRVMKIAorLyogRGVmaW5lIGlmIHlvdSB3YW50IHRvIHJlbW92ZSBhbGwgbm9uLWVzc2VudGlhbCBjb2RlIGZlYXR1cmVzLiAqLworI3VuZGVmIE5FVFNOTVBfTUlOSU1BTF9DT0RFCisKKy8qIERlZmluZSBpZiB5b3Ugd2FudCB0byBvbmx5IHN1cHBvcnQgc2VuZGluZyBub3RpZmljYXRpb25zICovCisjdW5kZWYgTkVUU05NUF9OT1RJRllfT05MWQorCiAvKiBEZWZpbmUgdG8gc3VwcHJlc3MgaW5jbHVzaW9uIG9mIGRlcHJlY2F0ZWQgZnVuY3Rpb25zICovCiAjdW5kZWYgTkVUU05NUF9OT19ERVBSRUNBVEVEX0ZVTkNUSU9OUwogCkBAIC0xMzM1LDkgKzE0MDQsMTUgQEAKIC8qIElmIHdlIGRvbid0IHdhbnQgdG8gdXNlIGttZW0uICovCiAjdW5kZWYgTkVUU05NUF9OT19LTUVNX1VTQUdFCiAKKy8qIERlZmluZSBpZiB5b3Ugd2FudCB0byByZW1vdmUgYWxsIGxpc3RlbmluZyBzdXBwb3J0IGZyb20gdGhlIGNvZGUgKi8KKyN1bmRlZiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUCisKIC8qIElmIHlvdSBkb24ndCBoYXZlIHJvb3QgYWNjZXNzIGRvbid0IGV4aXQgdXBvbiBrbWVtIGVycm9ycyAqLwogI3VuZGVmIE5FVFNOTVBfTk9fUk9PVF9BQ0NFU1MKIAorLyogRGVmaW5lIGlmIHlvdSB3YW50IHRvIHJlbW92ZSBhbGwgU0VUL3dyaXRlIGFjY2VzcyBmcm9tIHRoZSBjb2RlICovCisjdW5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCisKIC8qIHVtYXNrIHBlcm1pc3Npb25zIHRvIHNldCB1cCBwZXJzaXN0ZW50IGZpbGVzIHdpdGggKi8KICN1bmRlZiBORVRTTk1QX1BFUlNJU1RFTlRfTUFTSwogCkBAIC0xNDAyLDYgKzE0NzcsOSBAQAogI3VuZGVmIFBBQ0tBR0VfVEFSTkFNRQogI2VuZGlmCiAKKy8qIERlZmluZSB0byB0aGUgaG9tZSBwYWdlIGZvciB0aGlzIHBhY2thZ2UuICovCisjdW5kZWYgUEFDS0FHRV9VUkwKKwogLyogRGVmaW5lIHRvIHRoZSB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KICNpZm5kZWYgUEFDS0FHRV9WRVJTSU9OCiAjdW5kZWYgUEFDS0FHRV9WRVJTSU9OCkBAIC0xNTY3LDYgKzE2NDUsOSBAQAogLyogRGVmaW5lIHRvIGBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lcyBub3QgZGVmaW5lLiAqLwogI3VuZGVmIHBpZF90CiAKKy8qIERlZmluZSB0byBgdW5zaWduZWQgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXMgbm90IGRlZmluZS4gKi8KKyN1bmRlZiBzaXplX3QKKwogLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGFuIHVuc2lnbmVkIGludGVnZXIgdHlwZSBvZiB3aWR0aCBleGFjdGx5IDE2IGJpdHMgaWYKICAgIHN1Y2ggYSB0eXBlIGV4aXN0cyBhbmQgdGhlIHN0YW5kYXJkIGluY2x1ZGVzIGRvIG5vdCBkZWZpbmUgaXQuICovCiAjdW5kZWYgdWludDE2X3QKQEAgLTIwNDUsMTEgKzIxMjYsOCBAQAogICAgYW5kIGFyZSBub3QgdXNpbmcgdGhlIFVDLURhdmlzIFNOTVAgbGlicmFyeS4gKi8KICNkZWZpbmUgVUNEX1NOTVBfTElCUkFSWSAxCiAKLS8qIGFkZCBpbiByZWNlbnQgQ01VIGxpYnJhcnkgZXh0ZW5zaW9ucyAobm90IGNvbXBsZXRlKSAqLwotI3VuZGVmIENNVV9DT01QQVRJQkxFCi0KIC8qIGZpbmFsIGNvbmNsdXNpb24gb24gbmxpc3QgdXNhZ2UgKi8KLSNpZiBkZWZpbmVkKEhBVkVfTkxJU1QpICYmIGRlZmluZWQoSEFWRV9TVFJVQ1RfTkxJU1RfTl9WQUxVRSkgJiYgIWRlZmluZWQoTkVUU05NUF9ET05UX1VTRV9OTElTVCkgJiYgIWRlZmluZWQoTkVUU05NUF9OT19LTUVNX1VTQUdFKQorI2lmIGRlZmluZWQoSEFWRV9OTElTVCkgJiYgZGVmaW5lZChIQVZFX1NUUlVDVF9OTElTVF9OX1ZBTFVFKSAmJiAhZGVmaW5lZChORVRTTk1QX0RPTlRfVVNFX05MSVNUKSAmJiBkZWZpbmVkKEhBVkVfS01FTSkgJiYgIWRlZmluZWQoTkVUU05NUF9OT19LTUVNX1VTQUdFKQogI2RlZmluZSBORVRTTk1QX0NBTl9VU0VfTkxJU1QKICNlbmRpZgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmggYi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjM3ZTZjNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaApAQCAtMCwwICsxLDMyIEBACisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRVNfSAorI2RlZmluZSBORVRTTk1QX0ZFQVRVUkVTX0gKKworLyogaW5jbHVkZSBmaWxlcyB0aGF0IGFyZSBvbmx5IG5lZWRlZCBpZiAtLWVuYWJsZS1taW5pbWFsaXN0IGlzIG9uICovCisjaWZkZWYgTkVUU05NUF9NSU5JTUFMX0NPREUKKyNpZmRlZiBORVRTTk1QX0ZFQVRVUkVfQ0hFQ0tJTkcKKyNpbmNsdWRlIDxuZXQtc25tcC9mZWF0dXJlLWRldGFpbHMuaD4KKyNlbHNlIC8qICEgTkVUU05NUF9GRUFUVVJFX0NIRUNLSU5HICovCisjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9mZWF0dXJlcy5oPgorI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfQUdFTlQKKyNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9mZWF0dXJlcy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL2FnZW50L2ZlYXR1cmVzLW1pYmdyb3Vwcy5oPgorI2VuZGlmCisjaWZuZGVmIE5FVFNOTVBfRElTQUJMRV9BUFBTCisjaW5jbHVkZSA8bmV0LXNubXAvZmVhdHVyZXMtc25tcG5ldHN0YXQuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9mZWF0dXJlcy1hcHBzLmg+CisjZW5kaWYKKyNlbmRpZiAvKiAhIE5FVFNOTVBfRkVBVFVSRV9DSEVDS0lORyAqLworI2VuZGlmIC8qIE5FVFNOTVBfTUlOSU1BTF9DT0RFICovCisKKworLyogcHJvdG90eXBlcyBhbHdheXMgbmVlZGVkICovCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9DSEVDS0lORworI2RlZmluZSBuZXRzbm1wX2ZlYXR1cmVfcHJvdmlkZShYKQorI2RlZmluZSBuZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShYKQorI2RlZmluZSBuZXRzbm1wX2ZlYXR1cmVfd2FudChYKQorI2RlZmluZSBuZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoWCwgWSkKKyNlbmRpZgorCisjZGVmaW5lIG5ldHNubXBfZmVhdHVyZV91bnVzZWQoWCkgY2hhciBuZXRzbm1wX2ZlYXR1cmVfdW51c2VkXyAjIyBYCisKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVTX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCBiL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAppbmRleCBjZDM3NDA3Li4zZWU2MmFlIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKKysrIGIvaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCkBAIC03Nyw4ICs3Nyw0IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvb3V0cHV0X2FwaS5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL3NubXB2M19hcGkuaD4KIAotI2lmZGVmIENNVV9DT01QQVRJQkxFCi0jaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0Lmg+Ci0jZW5kaWYKLQogI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBORVRfU05NUF9JTkNMVURFU19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaCBiL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oCmluZGV4IDZlYWYwOWYuLjVhMDY1YjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oCkBAIC02LDggKzYsMyBAQAogICovCiAjdW5kZWYgSEFWRV9GU1RBQl9ICiAKLS8qCi0gKiBhcyBvZiA3LzIwMTAsIG9wZW5zc2wgb24gZGFyd2luIGRvZXMgbm90IGhhdmUgc2hhMjU2Ci0gKi8KLSNkZWZpbmUgT1BFTlNTTF9OT19TSEEyNTYgMQotI2RlZmluZSBPUEVOU1NMX05PX1NIQTUxMiAxCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4xMC5oIGIvaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luMTAuaAppbmRleCAyMzMzMDE1Li4zMDM3MzI0IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4xMC5oCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjEwLmgKQEAgLTY1LDYgKzY1LDcgQEAKIC8qCiAgKiB1c2UgbmV3IGhvc3QgcmVzb3VyY2VzIGZpbGVzIGFzIHdlbGwKICAqLworI2RlZmluZSBORVRTTk1QX0lOQ0xVREVfSE9TVF9SRVNPVVJDRVMKICNkZWZpbmUgTkVUU05NUF9JTkNMVURFX0hSU1dJTlNUX1JFV1JJVEVTCiAjZGVmaW5lIE5FVFNOTVBfSU5DTFVERV9IUlNXUlVOX1JFV1JJVEVTCiAjdW5kZWYgTkVUU05NUF9JTkNMVURFX0hSU1dSVU5fV1JJVEVfU1VQUE9SVApAQCAtOTIsMjUgKzkzLDYgQEAKICNlbmRpZgogCiAvKgotICogRGFyd2luJ3MgdG9vbHMgYXJlIGNhcGFibGUgb2YgYnVpbGRpbmcgbXVsdGlwbGUgYXJjaGl0ZWN0dXJlcyBpbiBvbmUgcGFzcy4KLSAqIEFzIGEgcmVzdWx0LCBwbGF0Zm9ybSBkZWZpbml0aW9ucyBzaG91bGQgYmUgZGVmZXJyZWQgdW50aWwgY29tcGlsZSB0aW1lLgotICovCi0jaWZkZWYgQllURV9PUkRFUgotIyB1bmRlZiBXT1JEU19CSUdFTkRJQU4KLSMgaWYgQllURV9PUkRFUiA9PSBCSUdfRU5ESUFOCi0jICBkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKLSMgZW5kaWYKLSNlbmRpZgotCi0vKgotICogQWx0aG91Z2ggRGFyd2luIGRvZXMgaGF2ZSBhIGt2bS5oIGZpbGUsIGt2bV9vcGVuZmlsZXMgZXRjLiBhbHdheXMKLSAqIHJldHVybiBudWxsIGJlY2F1c2UgL2Rldi9rbWVtIHdhcyByZW1vdmVkIGNvbXBsZXRlbHkgaW4gT1MgWCAxMC41LgotICovCi0jdW5kZWYgSEFWRV9LVk1fSAotI3VuZGVmIEhBVkVfS1ZNX0dFVFBST0NTCi0jdW5kZWYgSEFWRV9LVk1fT1BFTkZJTEVTCi0KLS8qCiAgKiBBbHRob3VnaCBEYXJ3aW4gZG9lcyBoYXZlIGFuIGZzdGFiLmggZmlsZSwgZ2V0ZnNmaWxlIGV0Yy4gYWx3YXlzIHJldHVybiBudWxsLgogICogQXQgbGVhc3QsIGFzIG9mIDUuMy4KICAqLwpAQCAtMTU0LDggKzEzNiwzIEBACiAjZGVmaW5lIFVEUF9BRERSRVNTRVNfSU5fSE9TVF9PUkRFUiAxCiAjZW5kaWYKIAotLyoKLSAqIGFzIG9mIDcvMjAxMCwgb3BlbnNzbCBvbiBkYXJ3aW4gZG9lcyBub3QgaGF2ZSBzaGEyNTYKLSAqLwotI2RlZmluZSBPUEVOU1NMX05PX1NIQTI1NiAxCi0jZGVmaW5lIE9QRU5TU0xfTk9fU0hBNTEyIDEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjExLmggYi9pbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4xMS5oCmluZGV4IDI0ZmVkOTMuLjlkNmYwM2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjExLmgKKysrIGIvaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luMTEuaApAQCAtNjUsNiArNjUsNyBAQAogLyoKICAqIHVzZSBuZXcgaG9zdCByZXNvdXJjZXMgZmlsZXMgYXMgd2VsbAogICovCisjZGVmaW5lIE5FVFNOTVBfSU5DTFVERV9IT1NUX1JFU09VUkNFUwogI2RlZmluZSBORVRTTk1QX0lOQ0xVREVfSFJTV0lOU1RfUkVXUklURVMKICNkZWZpbmUgTkVUU05NUF9JTkNMVURFX0hSU1dSVU5fUkVXUklURVMKICN1bmRlZiBORVRTTk1QX0lOQ0xVREVfSFJTV1JVTl9XUklURV9TVVBQT1JUCkBAIC05MiwyNSArOTMsNiBAQAogI2VuZGlmCiAKIC8qCi0gKiBEYXJ3aW4ncyB0b29scyBhcmUgY2FwYWJsZSBvZiBidWlsZGluZyBtdWx0aXBsZSBhcmNoaXRlY3R1cmVzIGluIG9uZSBwYXNzLgotICogQXMgYSByZXN1bHQsIHBsYXRmb3JtIGRlZmluaXRpb25zIHNob3VsZCBiZSBkZWZlcnJlZCB1bnRpbCBjb21waWxlIHRpbWUuCi0gKi8KLSNpZmRlZiBCWVRFX09SREVSCi0jIHVuZGVmIFdPUkRTX0JJR0VORElBTgotIyBpZiBCWVRFX09SREVSID09IEJJR19FTkRJQU4KLSMgIGRlZmluZSBXT1JEU19CSUdFTkRJQU4gMQotIyBlbmRpZgotI2VuZGlmCi0KLS8qCi0gKiBBbHRob3VnaCBEYXJ3aW4gZG9lcyBoYXZlIGEga3ZtLmggZmlsZSwga3ZtX29wZW5maWxlcyBldGMuIGFsd2F5cwotICogcmV0dXJuIG51bGwgYmVjYXVzZSAvZGV2L2ttZW0gd2FzIHJlbW92ZWQgY29tcGxldGVseSBpbiBPUyBYIDEwLjUuCi0gKi8KLSN1bmRlZiBIQVZFX0tWTV9ICi0jdW5kZWYgSEFWRV9LVk1fR0VUUFJPQ1MKLSN1bmRlZiBIQVZFX0tWTV9PUEVORklMRVMKLQotLyoKICAqIEFsdGhvdWdoIERhcndpbiBkb2VzIGhhdmUgYW4gZnN0YWIuaCBmaWxlLCBnZXRmc2ZpbGUgZXRjLiBhbHdheXMgcmV0dXJuIG51bGwuCiAgKiBBdCBsZWFzdCwgYXMgb2YgNS4zLgogICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4xMi5oIGIvaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luMTIuaAppbmRleCBmZDY2MTQ3Li4zMDMxZDA0IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4xMi5oCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjEyLmgKQEAgLTY1LDYgKzY1LDcgQEAKIC8qCiAgKiB1c2UgbmV3IGhvc3QgcmVzb3VyY2VzIGZpbGVzIGFzIHdlbGwKICAqLworI2RlZmluZSBORVRTTk1QX0lOQ0xVREVfSE9TVF9SRVNPVVJDRVMKICNkZWZpbmUgTkVUU05NUF9JTkNMVURFX0hSU1dJTlNUX1JFV1JJVEVTCiAjZGVmaW5lIE5FVFNOTVBfSU5DTFVERV9IUlNXUlVOX1JFV1JJVEVTCiAjdW5kZWYgTkVUU05NUF9JTkNMVURFX0hSU1dSVU5fV1JJVEVfU1VQUE9SVApAQCAtOTIsMjUgKzkzLDYgQEAKICNlbmRpZgogCiAvKgotICogRGFyd2luJ3MgdG9vbHMgYXJlIGNhcGFibGUgb2YgYnVpbGRpbmcgbXVsdGlwbGUgYXJjaGl0ZWN0dXJlcyBpbiBvbmUgcGFzcy4KLSAqIEFzIGEgcmVzdWx0LCBwbGF0Zm9ybSBkZWZpbml0aW9ucyBzaG91bGQgYmUgZGVmZXJyZWQgdW50aWwgY29tcGlsZSB0aW1lLgotICovCi0jaWZkZWYgQllURV9PUkRFUgotIyB1bmRlZiBXT1JEU19CSUdFTkRJQU4KLSMgaWYgQllURV9PUkRFUiA9PSBCSUdfRU5ESUFOCi0jICBkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKLSMgZW5kaWYKLSNlbmRpZgotCi0vKgotICogQWx0aG91Z2ggRGFyd2luIGRvZXMgaGF2ZSBhIGt2bS5oIGZpbGUsIGt2bV9vcGVuZmlsZXMgZXRjLiBhbHdheXMKLSAqIHJldHVybiBudWxsIGJlY2F1c2UgL2Rldi9rbWVtIHdhcyByZW1vdmVkIGNvbXBsZXRlbHkgaW4gT1MgWCAxMC41LgotICovCi0jdW5kZWYgSEFWRV9LVk1fSAotI3VuZGVmIEhBVkVfS1ZNX0dFVFBST0NTCi0jdW5kZWYgSEFWRV9LVk1fT1BFTkZJTEVTCi0KLS8qCiAgKiBBbHRob3VnaCBEYXJ3aW4gZG9lcyBoYXZlIGFuIGZzdGFiLmggZmlsZSwgZ2V0ZnNmaWxlIGV0Yy4gYWx3YXlzIHJldHVybiBudWxsLgogICogQXQgbGVhc3QsIGFzIG9mIDUuMy4KICAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luMTMuaCBiL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjEzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2IxODcwYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjEzLmgKQEAgLTAsMCArMSwxNDMgQEAKKy8qCisgKiBXaGlsZSBEYXJ3aW4gMTAgKGFrYSwgTWFjIE9TIFggMTAuNiBTbm93IExlb3BhcmQpIGlzICJCU0QtbGlrZSIsIGl0IGRpZmZlcnMKKyAqIHN1YnN0YW50aWFsbHkgZW5vdWdoIHRvIG5vdCB3YXJyYW50IHByZXRlbmRpbmcgaXQgaXMgYSBCU0QgZmxhdm9yLgorICogVGhpcyBmaXJzdCBzZWN0aW9uIGFyZSB0aGUgdmVzdGlnYWwgQlNEIHJlbW5hbnRzLgorICovCisvKiBQb3J0aW9ucyBvZiB0aGlzIGZpbGUgYXJlIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb3B5cmlnaHQocykuICBTZWUKKyAqIHRoZSBOZXQtU05NUCdzIENPUFlJTkcgZmlsZSBmb3IgbW9yZSBkZXRhaWxzIGFuZCBvdGhlciBjb3B5cmlnaHRzCisgKiB0aGF0IG1heSBhcHBseToKKyAqLworLyoKKyAqIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgY29weXJpZ2h0ZWQgYnk6CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMgc3BlY2lmaWVkIGluIHRoZSBDT1BZSU5HIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCisgKi8KKworLyoKKyAqIEJTRCBzeXN0ZW1zIHVzZSBhIGRpZmZlcmVudCBtZXRob2Qgb2YgbG9va2luZyB1cCBzb2NrYWRkcl9pbiB2YWx1ZXMgCisgKi8KKy8qICNkZWZpbmUgTkVFRF9LTEdFVFNBIDEgKi8KKworLyoKKyAqIEFSUF9TY2FuX05leHQgbmVlZHMgYSA0dGggaWZJbmRleCBhcmd1bWVudCAKKyAqLworI2RlZmluZSBBUlBfU0NBTl9GT1VSX0FSR1VNRU5UUyAxCisKKyNkZWZpbmUgQ0hFQ0tfUlRfRkxBR1MgMQorCisvKgorICogdGhpcyBpcyBub3QgZ29vZCBlbm91Z2ggYmVmb3JlIGZyZWVic2QzISAKKyAqLworLyogI3VuZGVmIEhBVkVfTkVUX0lGX01JQl9IICovCisKKy8qCisgKiBUaGlzIHNlY3Rpb24gYWRkcyB0aGUgcmVsZXZhbnQgZGVmaW5pdGlvbnMgZnJvbSBnZW5lcmljLmgKKyAqIChhIGZpbGUgd2UgZG9uJ3QgaW5jbHVkZSBoZXJlKQorICovCisKKy8qCisgKiB1ZHBfaW5wY2IgbGlzdCBzeW1ib2wsIGUuZy4gZm9yIG1pYklJL3VkcFRhYmxlLmMKKyAqLworI2RlZmluZSBJTlBfTkVYVF9TWU1CT0wgaW5wX25leHQKKworLyoKKyAqIFRoaXMgc2VjdGlvbiBkZWZpbmVzIE1hYyBPUyBYIDEwLjUgKGFuZCBsYXRlcikgc3BlY2lmaWMgYWRkaXRpb25zLgorICovCisjZGVmaW5lIGRhcndpbiAxMworI2lmbmRlZiBkYXJ3aW4xMworIyAgIGRlZmluZSBkYXJ3aW4xMyBkYXJ3aW4KKyNlbmRpZgorCisvKgorICogTWFjIE9TIFggc2hvdWxkIG9ubHkgdXNlIHRoZSBtb2Rlcm4gQVBJIGFuZCBkZWZpbml0aW9ucy4KKyAqLworI2lmbmRlZiBORVRTTk1QX05PX0xFR0FDWV9ERUZJTklUSU9OUworI2RlZmluZSBORVRTTk1QX05PX0xFR0FDWV9ERUZJTklUSU9OUyAxCisjZW5kaWYKKworLyoKKyAqIGxvb2tzIGxpa2UgdGhlIElGVGFibGUgc3R1ZmYgd29ya3MgYmV0dGVyIHRoYW4gdGhlIG1pYklJIHZlcnNpb25zCisgKi8KKyAKKyNkZWZpbmUgTkVUU05NUF9JTkNMVURFX0lGVEFCTEVfUkVXUklURVMKKworLyoKKyAqIHVzZSBuZXcgaG9zdCByZXNvdXJjZXMgZmlsZXMgYXMgd2VsbAorICovCisjZGVmaW5lIE5FVFNOTVBfSU5DTFVERV9IT1NUX1JFU09VUkNFUworI2RlZmluZSBORVRTTk1QX0lOQ0xVREVfSFJTV0lOU1RfUkVXUklURVMKKyNkZWZpbmUgTkVUU05NUF9JTkNMVURFX0hSU1dSVU5fUkVXUklURVMKKyN1bmRlZiBORVRTTk1QX0lOQ0xVREVfSFJTV1JVTl9XUklURV9TVVBQT1JUCisjZGVmaW5lIE5FVFNOTVBfQ0FOX0dFVF9ESVNLX0xBQkVMIDEKKworLyoKKyAqIEVuYWJsaW5nIHRoaXMgcmVzdHJpY3RzIHRoZSBjb21waWxlciB0byBtb3N0bHkgcHVibGljIEFQSXMuCisgKi8KKyNpZm5kZWYgX19BUFBMRV9BUElfU1RSSUNUX0NPTkZPUk1BTkNFCisjZGVmaW5lIF9fQVBQTEVfQVBJX1NUUklDVF9DT05GT1JNQU5DRSAxCisjZW5kaWYKKyNpZm5kZWYgX19BUFBMRV9BUElfVU5TVEFCTEUKKyNkZWZpbmUgX19BUFBMRV9BUElfVU5TVEFCTEUgMQorI2VuZGlmCisKKy8qCisgKiBEYXJ3aW4ncyB0b29scyBhcmUgY2FwYWJsZSBvZiBidWlsZGluZyBtdWx0aXBsZSBhcmNoaXRlY3R1cmVzIGluIG9uZSBwYXNzLgorICogQXMgYSByZXN1bHQsIHBsYXRmb3JtIGRlZmluaXRpb25zIHNob3VsZCBiZSBkZWZlcnJlZCB1bnRpbCBjb21waWxlIHRpbWUuCisgKi8KKyNpZmRlZiBCWVRFX09SREVSCisjIHVuZGVmIFdPUkRTX0JJR0VORElBTgorIyBpZiBCWVRFX09SREVSID09IEJJR19FTkRJQU4KKyMgIGRlZmluZSBXT1JEU19CSUdFTkRJQU4gMQorIyBlbmRpZgorI2VuZGlmCisKKy8qCisgKiBBbHRob3VnaCBEYXJ3aW4gZG9lcyBoYXZlIGFuIGZzdGFiLmggZmlsZSwgZ2V0ZnNmaWxlIGV0Yy4gYWx3YXlzIHJldHVybiBudWxsLgorICogQXQgbGVhc3QsIGFzIG9mIDUuMy4KKyAqLworI3VuZGVmIEhBVkVfRlNUQUJfSAorCisjZGVmaW5lIFNXQVBGSUxFX0RJUiAiL3ByaXZhdGUvdmFyL3ZtIgorI2RlZmluZSBTV0FQRklMRV9QUkVGSVggInN3YXBmaWxlIgorCisvKgorICogVGhlc2UgYXBwYXJlbnRseSB1c2VkIHRvIGJlIGluIG5ldGluZXQvdGNwX3RpbWVycy5oLCBidXQgd2VudCBhd2F5IGluCisgKiAxMC40LjIuIERlZmluZSB0aGVtIGhlcmUgdGlsIHdlIGZpbmQgb3V0IGEgd2F5IHRvIGdldCB0aGUgcmVhbCB2YWx1ZXMuCisgKi8KKyNkZWZpbmUgVENQVFZfTUlOICAgICAgICggIDEqUFJfU0xPV0haKSAgICAgICAgIC8qIG1pbmltdW0gYWxsb3dhYmxlIHZhbHVlICovCisjZGVmaW5lIFRDUFRWX1JFWE1UTUFYICAoIDY0KlBSX1NMT1dIWikgICAgICAgICAvKiBtYXggYWxsb3dhYmxlIFJFWE1UIHZhbHVlICovCisKKy8qCisgKiBCZWNhdXNlIE1hYyBPUyBYIGlzIGJ1aWx0IG9uIE1hY2gsIGl0IGRvZXMgbm90IHByb3ZpZGUgYSBCU0QtY29tcGF0aWJsZQorICogVk0gc3RhdGlzdGljcyBBUEkuCisgKi8KKyNkZWZpbmUgVVNFX01BQ0hfSE9TVF9TVEFUSVNUSUNTIDEKKworLyoKKyAqIFRoaXMgdGVsbHMgY29kZSB0aGF0IG1hbmlwdWxhdGVzIElQdjYgdGhhdCB0aGUgc3RydWN0dXJlcyBhcmUgdW5pZmllZCwKKyAqIGkuZS4sIElQdjQgYW5kIElQdjYgdXNlIHRoZSBzYW1lIHN0cnVjdHMuCisgKiBUaGlzIHNob3VsZCBldmVudHVhbGx5IGJlIHJlcGxhY2VkIHdpdGggYSBjb25maWd1cmUgZGlyZWN0aXZlLgorICovCisvKiAjZGVmaW5lIFVTRV9VTklGSUVEX0lQVjZfU1RSVUNUUyAxICovCisjdW5kZWYgU1RSVUNUX2luNnBjYl9IQVNfaW5wX3ZmbGFnCisKKy8qCisgKiB1dGlsaXR5IG1hY3JvIHVzZWQgaW4gc2V2ZXJhbCBkYXJ3aW4gc3BlY2lmaWMgZmlsZXMKKyAqLworI2RlZmluZSBTTk1QX0NGUmVsZWFzZSh4KSBkbyB7IGlmICh4KSB7IENGUmVsZWFzZSh4KTsgeCA9IE5VTEw7IH0gfSB3aGlsZSgwKQorCisvKgorICogTWFjIE9TIFggcnVucyBvbiBib3RoIFBQQyBhbmQgSW50ZWwgaGFyZHdhcmUsCisgKiAgIHdoaWNoIGhhbmRsZSB1ZHBUYWJsZSBpbmRleCB2YWx1ZXMgZGlmZmVyZW50bHkKKyAqLworI2luY2x1ZGUgPFRhcmdldENvbmRpdGlvbmFscy5oPgorI2lmZGVmIFRBUkdFVF9SVF9MSVRUTEVfRU5ESUFOCisjZGVmaW5lIFVEUF9BRERSRVNTRVNfSU5fSE9TVF9PUkRFUiAxCisjZW5kaWYKKworLyoKKyAqIGFzIG9mIDcvMjAxMCwgb3BlbnNzbCBvbiBkYXJ3aW4gZG9lcyBub3QgaGF2ZSBzaGEyNTYKKyAqLworI2RlZmluZSBPUEVOU1NMX05PX1NIQTI1NiAxCisjZGVmaW5lIE9QRU5TU0xfTk9fU0hBNTEyIDEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjcuaCBiL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjcuaAppbmRleCBmOGY1MjFlLi44ZDQ1NTRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW43LmgKKysrIGIvaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luNy5oCkBAIC0xMyw4ICsxMywzIEBACiAjZGVmaW5lIFNXQVBGSUxFX0RJUiAiL3ByaXZhdGUvdmFyL3ZtIgogI2RlZmluZSBTV0FQRklMRV9QUkVGSVggInN3YXBmaWxlIgogCi0vKgotICogYXMgb2YgNy8yMDEwLCBvcGVuc3NsIG9uIGRhcndpbiBkb2VzIG5vdCBoYXZlIHNoYTI1NgotICovCi0jZGVmaW5lIE9QRU5TU0xfTk9fU0hBMjU2IDEKLSNkZWZpbmUgT1BFTlNTTF9OT19TSEE1MTIgMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOC5oIGIvaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOC5oCmluZGV4IGMzODI4M2UuLjFlNmQ3ZDMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjguaAorKysgYi9pbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW44LmgKQEAgLTYzLDE0ICs2Myw2IEBACiAjZW5kaWYKIAogLyoKLSAqIEFsdGhvdWdoIERhcndpbiBkb2VzIGhhdmUgYSBrdm0uaCBmaWxlLCBrdm1fb3BlbmZpbGVzIGV0Yy4gYWx3YXlzCi0gKiByZXR1cm4gbnVsbCBiZWNhdXNlIC9kZXYva21lbSB3YXMgcmVtb3ZlZCBpbiBPUyBYIDEwLjQgZm9yIEludGVsLgotICovCi0jdW5kZWYgSEFWRV9LVk1fSAotI3VuZGVmIEhBVkVfS1ZNX0dFVFBST0NTCi0jdW5kZWYgSEFWRV9LVk1fT1BFTkZJTEVTCi0KLS8qCiAgKiBBbHRob3VnaCBEYXJ3aW4gZG9lcyBoYXZlIGFuIGZzdGFiLmggZmlsZSwgZ2V0ZnNmaWxlIGV0Yy4gYWx3YXlzIHJldHVybiBudWxsLgogICogQXQgbGVhc3QsIGFzIG9mIDUuMy4KICAqLwpAQCAtMTAwLDggKzkyLDMgQEAKIC8qICNkZWZpbmUgVVNFX1VOSUZJRURfSVBWNl9TVFJVQ1RTIDEgKi8KICN1bmRlZiBTVFJVQ1RfaW42cGNiX0hBU19pbnBfdmZsYWcKIAotLyoKLSAqIGFzIG9mIDcvMjAxMCwgb3BlbnNzbCBvbiBkYXJ3aW4gZG9lcyBub3QgaGF2ZSBzaGEyNTYKLSAqLwotI2RlZmluZSBPUEVOU1NMX05PX1NIQTI1NiAxCi0jZGVmaW5lIE9QRU5TU0xfTk9fU0hBNTEyIDEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaCBiL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaAppbmRleCBiY2JkMDY3Li5iZjNkMmRjIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45LmgKKysrIGIvaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oCkBAIC05MiwyNSArOTIsNiBAQAogI2VuZGlmCiAKIC8qCi0gKiBEYXJ3aW4ncyB0b29scyBhcmUgY2FwYWJsZSBvZiBidWlsZGluZyBtdWx0aXBsZSBhcmNoaXRlY3R1cmVzIGluIG9uZSBwYXNzLgotICogQXMgYSByZXN1bHQsIHBsYXRmb3JtIGRlZmluaXRpb25zIHNob3VsZCBiZSBkZWZlcnJlZCB1bnRpbCBjb21waWxlIHRpbWUuCi0gKi8KLSNpZmRlZiBCWVRFX09SREVSCi0jIHVuZGVmIFdPUkRTX0JJR0VORElBTgotIyBpZiBCWVRFX09SREVSID09IEJJR19FTkRJQU4KLSMgIGRlZmluZSBXT1JEU19CSUdFTkRJQU4gMQotIyBlbmRpZgotI2VuZGlmCi0KLS8qCi0gKiBBbHRob3VnaCBEYXJ3aW4gZG9lcyBoYXZlIGEga3ZtLmggZmlsZSwga3ZtX29wZW5maWxlcyBldGMuIGFsd2F5cwotICogcmV0dXJuIG51bGwgYmVjYXVzZSAvZGV2L2ttZW0gd2FzIHJlbW92ZWQgY29tcGxldGVseSBpbiBPUyBYIDEwLjUuCi0gKi8KLSN1bmRlZiBIQVZFX0tWTV9ICi0jdW5kZWYgSEFWRV9LVk1fR0VUUFJPQ1MKLSN1bmRlZiBIQVZFX0tWTV9PUEVORklMRVMKLQotLyoKICAqIEFsdGhvdWdoIERhcndpbiBkb2VzIGhhdmUgYW4gZnN0YWIuaCBmaWxlLCBnZXRmc2ZpbGUgZXRjLiBhbHdheXMgcmV0dXJuIG51bGwuCiAgKiBBdCBsZWFzdCwgYXMgb2YgNS4zLgogICovCkBAIC0xNTQsOCArMTM1LDMgQEAKICNkZWZpbmUgVURQX0FERFJFU1NFU19JTl9IT1NUX09SREVSIDEKICNlbmRpZgogCi0vKgotICogYXMgb2YgNy8yMDEwLCBvcGVuc3NsIG9uIGRhcndpbiBkb2VzIG5vdCBoYXZlIHNoYTI1NgotICovCi0jZGVmaW5lIE9QRU5TU0xfTk9fU0hBMjU2IDEKLSNkZWZpbmUgT1BFTlNTTF9OT19TSEE1MTIgMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oIGIvaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCmluZGV4IDE4NjJlOTkuLjVlODBhNDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAorKysgYi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTU0LDYgKzU0LDE5IEBACiAjIGVuZGlmCiAjZW5kaWYKIAorI2lmIGRlZmluZWQoV0lOMzIpICYmICFkZWZpbmVkKGN5Z3dpbikKK3R5cGVkZWYgSEFORExFIG5ldHNubXBfcGlkX3Q7CisjZGVmaW5lIE5FVFNOTVBfTk9fU1VDSF9QUk9DRVNTIElOVkFMSURfSEFORExFX1ZBTFVFCisjZWxzZQorLyoKKyAqIE5vdGU6IG9uIFBPU0lYLWNvbXBsaWFudCBzeXN0ZW1zLCBwaWRfdCBpcyBkZWZpbmVkIGluIDxzeXMvdHlwZXMuaD4uCisgKiBBbmQgaWYgcGlkX3QgaGFzIG5vdCBiZWVuIGRlZmluZWQgaW4gPHN5cy90eXBlcy5oPiwgQUNfVFlQRV9QSURfVCBlbnN1cmVzCisgKiB0aGF0IGEgcGlkX3QgZGVmaW5pdGlvbiBpcyBwcmVzZW50IGluIG5ldC1zbm1wLWNvbmZpZy5oLgorICovCit0eXBlZGVmIHBpZF90IG5ldHNubXBfcGlkX3Q7CisjZGVmaW5lIE5FVFNOTVBfTk9fU1VDSF9QUk9DRVNTIC0xCisjZW5kaWYKKwogI2lmIEhBVkVfTkVUSU5FVF9JTl9ICiAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgkJLyogRm9yIGRlZmluaXRpb24gb2YgaW5fYWRkcl90ICovCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luc3RhbGwtc2ggYi9pbnN0YWxsLXNoCmluZGV4IGE1ODk3ZGUuLjNmODNjZTkgMTAwNzU1Ci0tLSBhL2luc3RhbGwtc2gKKysrIGIvaW5zdGFsbC1zaApAQCAtMSw3ICsxLDcgQEAKICMhL2Jpbi9zaAogIyBpbnN0YWxsIC0gaW5zdGFsbCBhIHByb2dyYW0sIHNjcmlwdCwgb3IgZGF0YWZpbGUKIAotc2NyaXB0dmVyc2lvbj0yMDA2LTEyLTI1LjAwCitzY3JpcHR2ZXJzaW9uPTIwMTAtMDItMDYuMTg7ICMgVVRDCiAKICMgVGhpcyBvcmlnaW5hdGVzIGZyb20gWDExUjUgKG1pdC91dGlsL3NjcmlwdHMvaW5zdGFsbC5zaCksIHdoaWNoIHdhcwogIyBsYXRlciByZWxlYXNlZCBpbiBYMTFSNiAoeGMvY29uZmlnL3V0aWwvaW5zdGFsbC5zaCkgd2l0aCB0aGUKQEAgLTIwMCw3ICsyMDAsMTEgQEAKIGZpCiAKIGlmIHRlc3QgLXogIiRkaXJfYXJnIjsgdGhlbgotICB0cmFwICcoZXhpdCAkPyk7IGV4aXQnIDEgMiAxMyAxNQorICBkb19leGl0PScoZXhpdCAkcmV0KTsgZXhpdCAkcmV0JworICB0cmFwICJyZXQ9MTI5OyAkZG9fZXhpdCIgMQorICB0cmFwICJyZXQ9MTMwOyAkZG9fZXhpdCIgMgorICB0cmFwICJyZXQ9MTQxOyAkZG9fZXhpdCIgMTMKKyAgdHJhcCAicmV0PTE0MzsgJGRvX2V4aXQiIDE1CiAKICAgIyBTZXQgdW1hc2sgc28gYXMgbm90IHRvIGNyZWF0ZSB0ZW1wcyB3aXRoIHRvby1nZW5lcm91cyBtb2Rlcy4KICAgIyBIb3dldmVyLCAnc3RyaXAnIHJlcXVpcmVzIGJvdGggcmVhZCBhbmQgd3JpdGUgYWNjZXNzIHRvIHRlbXBzLgpAQCAtNTE1LDUgKzUxOSw2IEBACiAjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKICMgdGltZS1zdGFtcC1zdGFydDogInNjcmlwdHZlcnNpb249IgogIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQuJTAySCIKLSMgdGltZS1zdGFtcC1lbmQ6ICIkIgorIyB0aW1lLXN0YW1wLXRpbWUtem9uZTogIlVUQyIKKyMgdGltZS1zdGFtcC1lbmQ6ICI7ICMgVVRDIgogIyBFbmQ6CmRpZmYgLS1naXQgYS9sb2NhbC9NYWtlZmlsZS5pbiBiL2xvY2FsL01ha2VmaWxlLmluCmluZGV4IGRmODFkYjAuLmNiODRhZmMgMTAwNjQ0Ci0tLSBhL2xvY2FsL01ha2VmaWxlLmluCisrKyBiL2xvY2FsL01ha2VmaWxlLmluCkBAIC0xMzAsOSArMTMwLDkgQEAKIAkgIHRvdWNoIGZpeHByb2MubWFkZTsgXAogICAgICAgICBmaQogCi1zbm1wY29uZi5tYWRlOiAkKHNyY2Rpcikvc25tcGNvbmYKK3NubXBjb25mLm1hZGU6IHNubXBjb25mCiAJaWYgdGVzdCAieCQoUEVSTCkiICE9ICJ4IiA7IHRoZW4gXAotCSAgJChQRVJMKSAtcCAtZSAncyVeIyEuKi9wZXJsLiolIyEkKFBFUkwpJTsgcyMvdXNyL2xvY2FsL3NoYXJlIyQoZGF0YWRpcikjZzsgcyMvdXNyL2xvY2FsL2V0Yy9zbm1wIyQoU05NUENPTkZQQVRIKSNnOyBzIy92YXIvbmV0LXNubXAjJChQRVJTSVNURU5UX0RJUkVDVE9SWSkjZycgJHtzcmNkaXJ9L3NubXBjb25mID4gc25tcGNvbmYubWFkZTsgXAorCSAgJChQRVJMKSAtcCAtZSAncyVeIyEuKi9wZXJsLiolIyEkKFBFUkwpJTsgcyMvdXNyL2xvY2FsL3NoYXJlIyQoZGF0YWRpcikjZzsgcyMvdXNyL2xvY2FsL2V0Yy9zbm1wIyQoU05NUENPTkZQQVRIKSNnOyBzIy92YXIvbmV0LXNubXAjJChQRVJTSVNURU5UX0RJUkVDVE9SWSkjZycgc25tcGNvbmYgPiBzbm1wY29uZi5tYWRlOyBcCiAJZWxzZSBcCiAJICB0b3VjaCBzbm1wY29uZi5tYWRlOyBcCiAgICAgICAgIGZpCmRpZmYgLS1naXQgYS9sb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1zb3VyY2UtaW5jbHVkZXMubTJpIGIvbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtc291cmNlLWluY2x1ZGVzLm0yaQppbmRleCBiMmI0MjVlLi45MzQxY2Y5IDEwMDY0NAotLS0gYS9sb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1zb3VyY2UtaW5jbHVkZXMubTJpCisrKyBiL2xvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXNvdXJjZS1pbmNsdWRlcy5tMmkKQEAgLTEwLDYgKzEwLDcgQEAKICMjCiAvKiBzdGFuZGFyZCBOZXQtU05NUCBpbmNsdWRlcyAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgogCmRpZmYgLS1naXQgYS9sb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmMgYi9sb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmMKaW5kZXggNDIzNTFjOS4uZDY2NmM5YSAxMDA2NDQKLS0tIGEvbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjCisrKyBiL2xvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYwpAQCAtMTE4LDYgKzExOCwxMCBAQAogCiAjaW5jbHVkZSAiJHtuYW1lfV9pbnRlcmZhY2UuaCIKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoYmFieV9zdGVwcykKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHJvd19tZXJnZSkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNoZWNrX2FsbF9yZXF1ZXN0c19lcnJvcikKKwogI2luY2x1ZGUgPGN0eXBlLmg+CiAKIEBldmFsICRtMmNfcHJvY2Vzc2luZ190eXBlID0gJ2knQApAQCAtMzI4LDcgKzMzMiw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7Y29udGV4dH1fb2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2NvbnRleHR9X29pZF9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQU5ETEVSX0NBTl9CQUJZX1NURVAgfAotI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAorI2lmICEoZGVmaW5lZChORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQpIHx8IGRlZmluZWQoTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEFORExFUl9DQU5fUk9OTFkKICNlbHNlCiBAaWYgJG0yY190YWJsZV9zZXR0YWJsZSA9PSAxQApAQCAtMzM2LDcgKzM0MCw3IEBACiBAZWxzZUAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEFORExFUl9DQU5fUk9OTFkKIEBlbmRACi0jZW5kaWYgLyogTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUICovCisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUIHx8IE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgIGlmKE5VTEwgPT0gcmVnaW5mbykgewogICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCJlcnJvciByZWdpc3RlcmluZyB0YWJsZSAke2NvbnRleHR9XG4iKTsKQEAgLTM1NSw3ICszNTksNyBAQAogICAgIGlmKCBhY2Nlc3NfbXVsdGlwbGV4ZXItPnBvc3RfcmVxdWVzdCApCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfUE9TVF9SRVFVRVNUOwogICAgIAotI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKKyNpZiAhKGRlZmluZWQoTkVUU05NUF9OT19XUklURV9TVVBQT1JUKSB8fCBkZWZpbmVkKE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVCkpCiAgICAgaWYoIGFjY2Vzc19tdWx0aXBsZXhlci0+c2V0X3ZhbHVlcyApCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfU0VUX1ZBTFVFUzsKICAgICBpZiggYWNjZXNzX211bHRpcGxleGVyLT5pcnJldmVyc2libGVfY29tbWl0ICkKQEAgLTM3OCw3ICszODIsNyBAQAogICAgICAgICBtZmRfbW9kZXMgfD0gQkFCWV9TVEVQX0NPTU1JVDsKICAgICBpZiggYWNjZXNzX211bHRpcGxleGVyLT51bmRvX2NvbW1pdCApCiAgICAgICAgIG1mZF9tb2RlcyB8PSBCQUJZX1NURVBfVU5ET19DT01NSVQ7Ci0jZW5kaWYKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgfHwgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUICovCiAgICAgCiAgICAgaGFuZGxlciA9IG5ldHNubXBfYmFieV9zdGVwc19oYW5kbGVyX2dldChtZmRfbW9kZXMpOwogICAgIG5ldHNubXBfaW5qZWN0X2hhbmRsZXIocmVnaW5mbywgaGFuZGxlcik7CmRpZmYgLS1naXQgYS9sb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjIGIvbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYwppbmRleCA1MmE4MjU4Li42MWZjMjZkIDEwMDY0NAotLS0gYS9sb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjCisrKyBiL2xvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmMKQEAgLTI3LDYgKzI3LDE4IEBACiBAaW5jbHVkZSBnZW5lcmljLXNvdXJjZS1pbmNsdWRlcy5tMmlACiAjaW5jbHVkZSA8c2lnbmFsLmg+CiAKKy8qCisgKiBJZiBjb21waWxpbmcgd2l0aGluIHRoZSBuZXQtc25tcCBzb3VyY2UgY29kZSwgdGhpcyB3aWxsIHRyaWdnZXIgdGhlIGZlYXR1cmUKKyAqIGRldGVjdGlvbiBtZWNoYW5zaW0gdG8gZW5zdXJlIHRoZSBhZ2VudF9jaGVja19hbmRfcHJvY2VzcygpIGZ1bmN0aW9uCisgKiBpcyBsZWZ0IGF2YWlsYWJsZSBldmVuIGlmIC0tZW5hYmxlLW1pbmltaWFsaXN0IGlzIHR1cm5lZCBvbi4gIElmIHlvdQorICogaGF2ZSBjb25maWd1cmVkIG5ldC1zbm1wIHVzaW5nIC0tZW5hYmxlLW1pbmltaWFsaXN0IGFuZCB3YW50IHRvIGNvbXBpbGUKKyAqIHRoaXMgY29kZSBleHRlcm5hbGx5IHRvIHRoZSBOZXQtU05NUCBjb2RlIGJhc2UsIHRoZW4gcGxlYXNlIGFkZAorICogLS13aXRoLWZlYXR1cmVzPSJhZ2VudF9jaGVja19hbmRfcHJvY2VzcyBlbmFibGVfc3RkZXJybG9nIiB0byB5b3VyCisgKiBjb25maWd1cmUgbGluZS4KKyAqLworbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShlbmFibGVfc3RkZXJybG9nKQorCiBzdGF0aWMgaW50IGtlZXBfcnVubmluZzsKIAogc3RhdGljIFJFVFNJR1RZUEUKZGlmZiAtLWdpdCBhL2xvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1jaGVjayBiL2xvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1jaGVjawpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYTQ5ODdlCi0tLSAvZGV2L251bGwKKysrIGIvbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLWNoZWNrCkBAIC0wLDAgKzEsMTI2IEBACisjIS9iaW4vc2gKKworIworIyBmZWF0dXJlLWNoZWNrOiBUaGlzIHNjcmlwdCBsb29rcyBmb3IgZmVhdHVyZSBzdGF0ZW1lbnRzIGluIGEgZmlsZSBieQorIyBleGVjdXRpbmcgYSBjb21waWxlciB1bmRlciBDUFAgYW5kIGV4dHJhY3RpbmcgbGluZXMgb2YgdGhlIGZvbGxvd2luZworIyBmb3JtOgorIworIyBuZXRzbm1wX2ZlYXR1cmVfcHJvdmlkZXMoZm9vKTogdXNlZCB0byBpbmRpY2F0ZSBpdCBwcm92aWRlcyBmZWF0dXJlICJmb28iCisjIG5ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGJhcik6IHVzZWQgdG8gaW5kaWNhdGUgaXQgcmVxdWlyZXMgZmVhdHVyZSAiYmFyIgorIyBuZXRzbm1wX2ZlYXR1cmVfd2FudChiYXIpOiB1c2VkIHRvIGluZGljYXRlIGl0IHdhbnRzIGZlYXR1cmUgImJhciIKKyMgICAgICAgICAgICAgICAgICAgIChidXQgY2FuIGxpdmUgd2l0aG91dCBpdCkKKyMKKyMgVXNpbmcgdGhlc2UgbGluZXMgaXQgdGhlbiBnZW5lcmF0ZXMgYSBsaXN0IG9mIGZlYXR1cmUgcmVxdWlyZW1lbnQKKyMgZGVmaW5lcyBpbiAiaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oIiB3aGljaCBjYW4gdGhlbiBiZQorIyBsb2FkZWQgaW4gbGF0ZXIgcGFzc2VzIGF0IGNvbXBpbGUgdGltZS4KKyMKKyMgRGVmaW5lcyBwcm9kdWNlZCB3aGVuIG5ldHNubXBfZmVhdHJlX3JlcXVpcmUoYmFyKSBpcyBwcmVzZW50OgorIyAgICNkZWZpbmUgTkVUU05NUF9GRUFUVVJFX1JFUVVJUkVfQkFSIDEKKyMKKyMgRGVmaW5lcyBwcm9kdWNlZCB3aGVuIG5ldHNubXBfZmVhdHVyZV93YW50KGJhcikgaXMgcHJlc2VudDoKKyMgICAjZGVmaW5lIE5FVFNOTVBfRkVBVFVSRV9XQU5UX0JBUiAxCisjCisjIEFuZCB3aGVuIGFsbCB0aGUgZmVhdHVyZXMgaGF2ZSBiZWVuIGNvbGxlY3RlZCwgdGhleSBhcmUgYWxzbyBpbnZlcnRlZCB2aWEKKyMgdGhlIGZlYXR1cmUtcG9zdC1jaGVjayBzY3JpcHQ6CisjCisjICAgI2RlZmluZSBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0JBUlggMSAgLyogbmV2ZXIgcmVxdWlyZWQgKi8KKyMgICAjdW5kZWYgIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQkFSICAgICAgLyogcmVxdWlyZWQgKi8KKworIyBVc2FnZToKKworIyBmZWF0dXJlLWNoZWNrIE5PUk1BTC1DT01QSUxFLUxJTkUKKworU0VEPXNlZAorR1JFUD1ncmVwCitDQz1nY2MKK1JNPXJtCisKK2lmIHRlc3QgIngkMSIgPSAieC0tZmVhdHVyZS1nbG9iYWwiIDsgdGhlbgorICAgICMgYSBnbG9iYWwgZmlsZSBzaG91bGQgYmUgaW5jbHVkZWQKKyAgICBzaGlmdAorICAgIGdsb2JhbD0kMQorICAgIHNoaWZ0CitmaQorCitzb3VyY2VkaXI9JDEKK3NoaWZ0CisKK3NvdXJjZT0kMQorc2hpZnQKKworZGVzdGluYXRpb249JDEKK3NoaWZ0CisKK3RtcGY9IiRkZXN0aW5hdGlvbi4xIgorCitjb21waWxlbGluZT0iJEAiCiskY29tcGlsZWxpbmUgJy1ETkVUU05NUF9GRUFUVVJFX0NIRUNLSU5HPTEnIFwKKyAgICAgICAgICAgICAnLURORVRTTk1QX01JTklNQUxfQ09ERT0xJyBcCisgICAgICAgICAgICAgJy1EbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoWCk9WCBOU0ZfUlInIFwKKyAgICAgICAgICAgICAnLURuZXRzbm1wX2ZlYXR1cmVfcHJvdmlkZShYKT1YIE5TRl9QUCcgXAorICAgICAgICAgICAgICctRG5ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihYLFkpPVgsWSBOU0ZfQ08nIFwKKyAgICAgICAgICAgICAnLURuZXRzbm1wX2ZlYXR1cmVfd2FudChYKT1YIE5TRl9XVycgJHNvdXJjZSB8IFwKKyAgICAkR1JFUCBOU0ZfIHwgJEdSRVAgLXYgJ14jZGVmaW5lJyA+ICR0bXBmCisKKyRSTSAtZiAkZGVzdGluYXRpb247Cit0b3VjaCAkZGVzdGluYXRpb247CisKKyMgcHJvY2VzcyByZXF1aXJlcworZmlyc3RyZXF1aXJlPTEKK2ZvciBpIGluIGBncmVwIE5TRl9SUiAkdG1wZiB8IHNlZCAncy8gTlNGX1JSLy8nYCA7IGRvCisgICAgaWYgdGVzdCAkZmlyc3RyZXF1aXJlID0gMSA7IHRoZW4KKwllY2hvICIiID4+ICRkZXN0aW5hdGlvbgorCWVjaG8gIi8qIHJlcXVpcmVkIGJ5ICRzb3VyY2VkaXIvJHNvdXJjZSAqLyIgPj4gJGRlc3RpbmF0aW9uCisJZmlyc3RyZXF1aXJlPTAKKyAgICBmaQorICAgIHVwcGVyPWBlY2hvICRpIHwgdHIgYS16IEEtWmAKKyAgICBlY2hvICIjZGVmaW5lIE5FVFNOTVBfRkVBVFVSRV9SRVFVSVJFXyR1cHBlciAxIiA+PiAkZGVzdGluYXRpb24KK2RvbmUKKworIyBwcm9jZXNzIHByb3ZpZGVzCitmaXJzdGZlYXR1cmU9MQorZm9yIGkgaW4gYGdyZXAgTlNGX1BQICR0bXBmIHwgc2VkICdzLyBOU0ZfUFAvLydgIDsgZG8KKyAgICBpZiB0ZXN0ICRmaXJzdGZlYXR1cmUgPSAxIDsgdGhlbgorCWVjaG8gIiIgPj4gJGRlc3RpbmF0aW9uCisJZWNobyAiLyogZmVhdHVyZXMgcHJvdmlkZWQgYnkgJHNvdXJjZWRpci8kc291cmNlICovIiA+PiAkZGVzdGluYXRpb24KKwlmaXJzdGZlYXR1cmU9MAorICAgIGZpCisgICAgdXBwZXI9YGVjaG8gJGkgfCB0ciBhLXogQS1aYAorICAgIGVjaG8gIiNkZWZpbmUgTkVUU05NUF9GRUFUVVJFX1BST1ZJREVfJHVwcGVyIDEiID4+ICRkZXN0aW5hdGlvbgorZG9uZQorCisjIHByb2Nlc3MgY2hpbGRyZW4KK2ZpcnN0ZmVhdHVyZT0xCitmb3IgaSBpbiBgZ3JlcCBOU0ZfQ08gJHRtcGYgfCBzZWQgJ3MvIE5TRl9DTy8vJ2AgOyBkbworICAgIHBhcmVudD1gZWNobyAkaSB8IHNlZCAncy8uKiwvLydgCisgICAgY2hpbGQ9YGVjaG8gJGkgfCBzZWQgJ3MvLC4qLy8nYAorICAgIGlmIHRlc3QgJGZpcnN0ZmVhdHVyZSA9IDEgOyB0aGVuCisJZWNobyAiIiA+PiAkZGVzdGluYXRpb24KKwllY2hvICIvKiBmZWF0dXJlcyBwcm92aWRlZCBieSAkc291cmNlZGlyLyRzb3VyY2UgKi8iID4+ICRkZXN0aW5hdGlvbgorCWZpcnN0ZmVhdHVyZT0wCisgICAgZmkKKyAgICB1cHBlcmNoaWxkPWBlY2hvICRjaGlsZCB8IHRyIGEteiBBLVpgCisgICAgdXBwZXJwYXJlbnQ9YGVjaG8gJHBhcmVudCB8IHRyIGEteiBBLVpgCisgICAgZWNobyAiI2RlZmluZSBORVRTTk1QX0ZFQVRVUkVfJHt1cHBlcmNoaWxkfV9DSElMRF9PRl8ke3VwcGVycGFyZW50fSAxIiA+PiAkZGVzdGluYXRpb24KKyAgICBlY2hvICIjZGVmaW5lIE5FVFNOTVBfRkVBVFVSRV9QUk9WSURFXyR1cHBlcmNoaWxkIDEiID4+ICRkZXN0aW5hdGlvbgorZG9uZQorCisjIHByb2Nlc3Mgd2FudHMKK2ZpcnN0ZmVhdHVyZT0xCitmb3IgaSBpbiBgZ3JlcCBOU0ZfV1cgJHRtcGYgfCBzZWQgJ3MvIE5TRl9XVy8vJ2AgOyBkbworICAgIGlmIHRlc3QgJGZpcnN0ZmVhdHVyZSA9IDEgOyB0aGVuCisJZWNobyAiIiA+PiAkZGVzdGluYXRpb24KKwllY2hvICIvKiBmZWF0dXJlcyB3YW50ZWQgYnkgJHNvdXJjZWRpci8kc291cmNlICovIiA+PiAkZGVzdGluYXRpb24KKwlmaXJzdGZlYXR1cmU9MAorICAgIGZpCisgICAgdXBwZXI9YGVjaG8gJGkgfCB0ciBhLXogQS1aYAorICAgIGVjaG8gIiNkZWZpbmUgTkVUU05NUF9GRUFUVVJFX1dBTlRfJHVwcGVyIDEiID4+ICRkZXN0aW5hdGlvbgorZG9uZQorCitpZiB0ZXN0ICJ4JGdsb2JhbCIgIT0gIngiIDsgdGhlbgorICAgIGNhdCAkZGVzdGluYXRpb24gPj4gJGdsb2JhbAorZmkKKworCisjIGNsZWFuIHVwCisjJFJNIC1mICR0bXBmCmRpZmYgLS1naXQgYS9sb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3MgYi9sb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk2MDE5MQotLS0gL2Rldi9udWxsCisrKyBiL2xvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jcwpAQCAtMCwwICsxLDIyMSBAQAorIyEvdXNyL2Jpbi9wZXJsCisKK3VzZSBzdHJpY3Q7Cit1c2UgSU86OkZpbGU7Cit1c2UgR2V0b3B0OjpTdGQ7CitvdXIgJW9wdHMgPSAoVyA9PiAyKTsKKworZ2V0b3B0cygnb2h3VzonLCBcJW9wdHMpIHx8IHVzYWdlKCk7CisKK3VzYWdlKCkgaWYgKCRvcHRzeydoJ30pOworCit1c2FnZSgpIGlmICgkI0FSR1YgIT0gMSk7CisKKyMgc2hvdWxkIGJlIHRoZSBmZWF0dXJlLWRldGFpbHMuaCBmaWxlCitteSAkaW5wdXRmaWxlID0gc2hpZnQgQEFSR1Y7CitteSAkb3V0cHV0ZmlsZSA9IHNoaWZ0IEBBUkdWOworCitteSAlZmVhdHVyZXM7CitteSAldG9wOworbXkgJWZpbGVzOworbXkgJHJlcWZpbGU7CisKK2dhdGhlcl9kYXRhKCRpbnB1dGZpbGUpOworaWYgKCRvcHRzeyd3J30pIHsKKyAgICBwcmludF93aWtpX21vZGUoJG91dHB1dGZpbGUpOworfSBlbHNlIHsKKyAgICBwcmludF9vcmdfbW9kZSgkb3V0cHV0ZmlsZSk7Cit9CisKK3N1YiBnYXRoZXJfZGF0YSB7CisgICAgbXkgKCRpbnB1dGZpbGUpID0gQF87CisKKyAgICBvcGVuKEksICRpbnB1dGZpbGUpOworICAgIHdoaWxlKDxJPikgeworCWlmICgvKHJlcXVpcmVkfHByb3ZpZGVkfHdhbnRlZCkgYnkgKC4qKSBcKi8pIHsKKwkgICAgJHJlcWZpbGUgPSAkMjsKKwl9IGVsc2lmICgvZGVmaW5lIE5FVFNOTVBfRkVBVFVSRV9QUk9WSURFXyguKikgMS8pIHsKKwkgICAgbXkgJGxjID0gbGMoJDEpOworCSAgICBkaWUgIm5vIHJlcWZpbGUgY3VycmVudGx5IHNldDsgYnVnISIgaWYgKCFkZWZpbmVkKCRyZXFmaWxlKSk7CisKKwkgICAgYWRkKCRsYyk7CisKKwkgICAgcHVzaCBAeyRmaWxlc3skcmVxZmlsZX17J3Byb3ZpZGVzJ319LCAkbGM7CisJICAgIHB1c2ggQHskZmVhdHVyZXN7JGxjfXsncHJvdmlkZWRieSd9fSwgJHJlcWZpbGU7CisKKwl9IGVsc2lmICgvZGVmaW5lIE5FVFNOTVBfRkVBVFVSRV9SRVFVSVJFXyguKikgMS8pIHsKKwkgICAgbXkgJGxjID0gbGMoJDEpOworCSAgICBkaWUgIm5vIHJlcWZpbGUgY3VycmVudGx5IHNldDsgYnVnISIgaWYgKCFkZWZpbmVkKCRyZXFmaWxlKSk7CisKKwkgICAgYWRkKCRsYyk7CisKKwkgICAgcHVzaCBAeyRmaWxlc3skcmVxZmlsZX17J3JlcXVpcmVzJ319LCAkbGM7CisJICAgIHB1c2ggQHskZmVhdHVyZXN7JGxjfXsncmVxdWlyZWRieSd9fSwgJHJlcWZpbGU7CisKKwl9IGVsc2lmICgvZGVmaW5lIE5FVFNOTVBfRkVBVFVSRV9XQU5UXyguKikgMS8pIHsKKwkgICAgbXkgJGxjID0gbGMoJDEpOworCSAgICBkaWUgIm5vIHJlcWZpbGUgY3VycmVudGx5IHNldDsgYnVnISIgaWYgKCFkZWZpbmVkKCRyZXFmaWxlKSk7CisKKwkgICAgYWRkKCRsYyk7CisKKwkgICAgcHVzaCBAeyRmaWxlc3skcmVxZmlsZX17J3dhbnRzJ319LCAkbGM7CisJICAgIHB1c2ggQHskZmVhdHVyZXN7JGxjfXsnd2FudGVkYnknfX0sICRyZXFmaWxlOworCX0gZWxzaWYgKC9kZWZpbmUgTkVUU05NUF9GRUFUVVJFXyguKilfQ0hJTERfT0ZfKC4qKSAxLykgeworCSAgICBteSAkY2hpbGQgPSBsYygkMSk7CisJICAgIG15ICRwYXJlbnQgPSBsYygkMik7CisKKwkgICAgYWRkX2NoaWxkKCRjaGlsZCwgJHBhcmVudCk7CisJfQorICAgIH0KK30KKworc3ViIGFkZCB7CisgICAgbXkgKCRuYW1lKSA9IEBfOworICAgIGlmICghZXhpc3RzKCRmZWF0dXJlc3skbmFtZX0pKSB7CisJIyBuZXcgZmVhdHVyZSBlbnRpcmVseSwgbWFyayBpdCBhcyBhIHRvcCBub2RlCisJJHRvcHskbmFtZX0gPSAxOworICAgIH0KK30KKworc3ViIGFkZF9jaGlsZCB7CisgICAgbXkgKCRjaGlsZCwgJHBhcmVudCkgPSBAXzsKKworICAgIGFkZCgkcGFyZW50KTsKKworICAgIGlmIChleGlzdHMoJHRvcHskY2hpbGR9KSkgeworCSMgaXQncyBubyBsb25nZXIgYSB0b3Agbm9kZSBpZiBpdCdzIGEgY2hpbGQgb2Ygc29tZXRoaW5nIGVsc2UKKwlkZWxldGUgJHRvcHskY2hpbGR9OworICAgIH0KKyAgICAkZmVhdHVyZXN7JHBhcmVudH17J2NoaWxkcmVuJ317JGNoaWxkfSsrOworCisgICAgJGZlYXR1cmVzeyRjaGlsZH17J3Byb3ZpZGVkYnknfSwgJHJlcWZpbGU7Cit9CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgb3JnLW1vZGUgb3V0cHV0CisjCitzdWIgcHJpbnRfb3JnX21vZGUgeworICAgIG15ICgkb3V0cHV0ZmlsZSkgPSBAXzsKKworICAgIG15ICRmaCA9IG5ldyBJTzo6RmlsZTsKKworICAgIGlmICghJGZoLT5vcGVuKCI+ICRvdXRwdXRmaWxlIikpIHsKKwlkaWUgImVycm9yIVxuIjsKKyAgICB9CisKKyAgICBmb3JlYWNoIG15ICRub2RlIChzb3J0IGtleXMoJXRvcCkpIHsKKwlwcmludF9vcmdfbm9kZSgkZmgsICRub2RlLCAiKiIpOworICAgIH0KK30KKworc3ViIHByaW50X29yZ19ub2RlIHsKKyAgICBteSAoJGZoLCAkbm9kZSwgJHByZWZpeCkgPSBAXzsKKworICAgIG15ICRzcGFjZXMgPSAkcHJlZml4OworICAgICRzcGFjZXMgPX4gcy8uLyAvZzsKKworICAgIHByaW50ICRmaCAiJHByZWZpeCAkbm9kZVxuIjsKKyAgICBpZiAoZXhpc3RzKCRmZWF0dXJlc3skbm9kZX17J3Byb3ZpZGVkYnknfSkpIHsKKwlwcmludCAkZmggIiRzcGFjZXMgKyBwcm92aWRlZCBpbiBmaWxlOiAiIC4KKwkgICAgam9pbigiLCAiLCBvcmdfbGlua19maWxlcyhAeyRmZWF0dXJlc3skbm9kZX17J3Byb3ZpZGVkYnknfX0pKSAuICJcbiI7CisgICAgfQorICAgIGlmIChleGlzdHMoJGZlYXR1cmVzeyRub2RlfXsncmVxdWlyZWRieSd9KSkgeworCXByaW50ICRmaCAiJHNwYWNlcyArIHJlcXVpcmVkIGluIGZpbGU6ICIgLgorCSAgICBqb2luKCIsICIsIG9yZ19saW5rX2ZpbGVzKEB7JGZlYXR1cmVzeyRub2RlfXsncmVxdWlyZWRieSd9fSkpIC4gIlxuIjsKKyAgICB9CisgICAgaWYgKGV4aXN0cygkZmVhdHVyZXN7JG5vZGV9eyd3YW50ZWRieSd9KSkgeworCXByaW50ICRmaCAiJHNwYWNlcyArIHdhbnRlZCBpbiBmaWxlOiAiIC4KKwkgICAgam9pbigiLCAiLCBvcmdfbGlua19maWxlcyhAeyRmZWF0dXJlc3skbm9kZX17J3dhbnRlZGJ5J319KSkgLiAiXG4iOworICAgIH0KKyAgICBpZiAoZXhpc3RzKCRmZWF0dXJlc3skbm9kZX17J2NoaWxkcmVuJ30pKSB7CisJZm9yZWFjaCBteSAkY2hpbGQgKHNvcnQga2V5cygleyRmZWF0dXJlc3skbm9kZX17J2NoaWxkcmVuJ319KSkgeworCSAgICBwcmludF9vcmdfbm9kZSgkZmgsICRjaGlsZCwgJHByZWZpeCAuICIqIik7CisJfQorICAgIH0KK30KKworc3ViIG9yZ19saW5rX2ZpbGVzIHsKKyAgICBteSBAZmlsZXMgPSBAXzsKKyAgICBtYXAgeyAkXyA9ICJbW2ZpbGU6JF9dWyRfXV0iOyB9IEBmaWxlczsKKyAgICByZXR1cm4gQGZpbGVzOworfQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIHdpa2kgb3V0cHV0CisjCitzdWIgcHJpbnRfd2lraV9tb2RlIHsKKyAgICBteSAoJG91dHB1dGZpbGUpID0gQF87CisKKyAgICBteSAkZmggPSBuZXcgSU86OkZpbGU7CisgICAgbXkgJGRlcHRoID0gMDsKKworICAgIGlmICghJGZoLT5vcGVuKCI+ICRvdXRwdXRmaWxlIikpIHsKKwlkaWUgImVycm9yIVxuIjsKKyAgICB9CisKKyAgICBwcmludCAkZmggIicnJ1RoZSBjb250ZW50cyBvZiB0aGlzIHBhZ2UgaXMgYXV0by1nZW5lcmF0ZWQgZnJvbSBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M7IGRvIG5vdCBlZGl0IGJ5IGhhbmQgKGNoYW5nZXMgd2lsbCBiZSBsb3N0KScnJ1xuXG4iOworICAgIHByaW50ICRmaCAiRGV0YWlscyBvZiB0aGUgZmVhdHVyZSBtYXJraW5nIHN5c3RlbSBhbmQgaG93IGl0IGlzIHVzZWQgY2FuIGJlIGZvdW5kIGF0IFtbRmVhdHVyZSBNYXJraW5nIGFuZCBTZWxlY3Rpb25dXVxuXG4iOworCisgICAgZm9yZWFjaCBteSAkbm9kZSAoc29ydCBrZXlzKCV0b3ApKSB7CisJcHJpbnRfd2lraV9ub2RlKCRmaCwgJG5vZGUsICRkZXB0aCsxKTsKKyAgICB9Cit9CisKK3N1YiBwcmludF93aWtpX25vZGUgeworICAgIG15ICgkZmgsICRub2RlLCAkZGVwdGgpID0gQF87CisKKyAgICBteSAkZGF0YWhlYWRlcjsKKyAgICBteSAkZGVwdGhpbmNyZWFzZSA9IDE7CisKKyAgICBpZiAoJGRlcHRoID4gJG9wdHN7J1cnfSkgeworCXByaW50ICRmaCAiKiIgeCAoJGRlcHRoIC0gJG9wdHN7J1cnfSArIDEpIC4gIiAkbm9kZVxuIjsKKwkkZGF0YWhlYWRlciA9ICIqIiB4ICgkZGVwdGggLSAkb3B0c3snVyd9ICsgMik7CisJJGRlcHRoaW5jcmVhc2UrKzsKKyAgICB9IGVsc2UgeworCXByaW50ICRmaCAiPSIgeCAkZGVwdGggLiAiICRub2RlICIgLiAiPSIgeCAkZGVwdGggLiAiXG4iOworCSRkYXRhaGVhZGVyID0gIioiOworICAgIH0KKworICAgIGlmIChleGlzdHMoJGZlYXR1cmVzeyRub2RlfXsncHJvdmlkZWRieSd9KSkgeworCXByaW50ICRmaCAiJGRhdGFoZWFkZXIgcHJvdmlkZWQgaW4gZmlsZTogIiAuCisJICAgIGpvaW4oIiwgIiwgd2lraV9saW5rX2ZpbGVzKEB7JGZlYXR1cmVzeyRub2RlfXsncHJvdmlkZWRieSd9fSkpIC4iXG4iOworICAgIH0KKyAgICBpZiAoZXhpc3RzKCRmZWF0dXJlc3skbm9kZX17J3JlcXVpcmVkYnknfSkpIHsKKwlwcmludCAkZmggIiRkYXRhaGVhZGVyIHJlcXVpcmVkIGluIGZpbGU6ICIgLgorCSAgICBqb2luKCIsICIsIHdpa2lfbGlua19maWxlcyhAeyRmZWF0dXJlc3skbm9kZX17J3JlcXVpcmVkYnknfX0pKSAuIlxuIjsKKyAgICB9CisgICAgaWYgKGV4aXN0cygkZmVhdHVyZXN7JG5vZGV9eyd3YW50ZWRieSd9KSkgeworCXByaW50ICRmaCAiJGRhdGFoZWFkZXIgd2FudGVkIGluIGZpbGU6ICIgLgorCSAgICBqb2luKCIsICIsIHdpa2lfbGlua19maWxlcyhAeyRmZWF0dXJlc3skbm9kZX17J3dhbnRlZGJ5J319KSkgLiAiXG4iOworICAgIH0KKyAgICBpZiAoZXhpc3RzKCRmZWF0dXJlc3skbm9kZX17J2NoaWxkcmVuJ30pKSB7CisJaWYgKCRkZXB0aCA+PSAkb3B0c3snVyd9KSB7CisJICAgIHByaW50ICRmaCAiJGRhdGFoZWFkZXIgQ2hpbGRyZW46XG4iOworCX0KKwlmb3JlYWNoIG15ICRjaGlsZCAoc29ydCBrZXlzKCV7JGZlYXR1cmVzeyRub2RlfXsnY2hpbGRyZW4nfX0pKSB7CisJICAgIHByaW50X3dpa2lfbm9kZSgkZmgsICRjaGlsZCwgJGRlcHRoICsgJGRlcHRoaW5jcmVhc2UpOworCX0KKyAgICB9Cit9CisKK3N1YiB3aWtpX2xpbmtfZmlsZXMgeworICAgIG15IEBmaWxlcyA9IEBfOworICAgIG1hcCB7ICRfID0gIltodHRwOi8vbmV0LXNubXAuc3ZuLnNvdXJjZWZvcmdlLm5ldC92aWV3dmMvbmV0LXNubXAvdHJ1bmsvbmV0LXNubXAvJF8/dmlldz1tYXJrdXAgJF9dIjsgfSBAZmlsZXM7CisgICAgcmV0dXJuIEBmaWxlczsKK30KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBoZWxwIG91dHB1dAorIworc3ViIHVzYWdlIHsKKyAgICBwcmludCAiVXNhZ2U6ICQwIFtGTEFHU10gSU5QVVRGSUxFIE9VVFBVVEZJTEVcblxuIjsKKyAgICBwcmludCAiRkxBR1M6XG4iOworICAgIHByaW50ICJcdC1oXHRoZWxwXG4iOworICAgIHByaW50ICJcdC1vXHRPdXRwdXQgc3R5bGU6IE9yZy1Nb2RlIFtkZWZhdWx0XVxuIjsKKyAgICBwcmludCAiXHQtd1x0T3V0cHV0IHN0eWxlOiB3aWtpXG4iOworICAgIHByaW50ICJcdC1XIERFUFRIXHRXaWtpIGhlYWRlciB0byBidWxsZXQgbGlzdCBkZXB0aCAoZGVmYXVsdCAyKVxuIjsKKyAgICBwcmludCAiXG5JTlBVVC9PVVRQVVRcbiI7CisgICAgcHJpbnQgIlx0SU5QVVRGSUxFOlx0bG9jYXRpb24gb2YgdGhlIGluY2x1ZGUvbmV0LXNubXAvZmVhdHVyZS1kZXRhaWxzLmggZmlsZVxuIjsKKyAgICBwcmludCAiXHRPVVRQVVRGSUxFOlx0dGhlIGZpbGUgdG8gd3JpdGUgdGhlIHJlc3VsdHMgdG9cbiI7CisgICAgZXhpdDsKK30KZGlmZiAtLWdpdCBhL2xvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1yZW1vdmUgYi9sb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtcmVtb3ZlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFhZTM0MGQKLS0tIC9kZXYvbnVsbAorKysgYi9sb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtcmVtb3ZlCkBAIC0wLDAgKzEsMTI4IEBACisjIS9iaW4vc2gKKworIworIyBmZWF0dXJlLXJlbW92ZTogcmVtb3ZlcyBmZWF0dXJlcyBieSBkZWZpbmluZyBzcGVjaWFsIHZhcmlhYmxlcworIyBpbmRpY2F0aW5nIHBhcnRpY3VsYXIgY29kZSBzZWdtZW50cyBhcmUgdW5uZWVkZWQuICBUaGlzIGlzIGRvbmUgYnkKKyMgZXhhbWluaW5nIHRoZSBsaXN0IG9mIHByb3ZpZGVkIGZlYXR1cmVzIGFuZCBkZWZpbmluZyBhIFJFTU9WRQorIyBlcXVpdmFsZW50IGlmIG5vIG90aGVyIG1vZHVsZSByZXF1aXJlZCBpdC4KKyMKKyMgQXJndW1lbnRzOgorIyAgIGZlYXR1cmUtcmVtb3ZlIG1haW5oZWFkZXIuaCBnbG9iYWxoZWFkZXIuaCBUSEVSRVNUCisjCisjIFdoZXJlIFRIRVJFU1QgYXJlIGEgbGlzdCBvZiBmZWF0dXJlcyB0byByZW1vdmUgKGRlZmF1bHQpIG9yIGFkZC4KKyMKKyMgICAtLWFkZCBzd2l0Y2hlcyB0byAiYWRkaW5nIiBhbmQgLS1yZW1vdmUgc3dpdGNoZXMgYmFjay4KKyMKKyMgRS5HLgorIyAgIGZlYXR1cmUtcmVtb3ZlIG1haW5oZWFkZXIuaCBnbG9iYWxoZWFkZXIuaCBvaWRfc3Rhc2ggLS1hZGQgY29udGFpbmVyX251bGwKKyMKK0NQPWNwCisKK2ZlYXR1cmVoZWFkZXI9IiQxIgorZmVhdHVyZWhlYWRlcmluPSIkMS5pbiIKK2ZlYXR1cmVoZWFkZXJnbG9iYWw9IiQyIgorc2hpZnQKK3NoaWZ0CisKK2FyZ3VtZW50dHlwZT0iLS1yZW1vdmUiCityZW1vdmV0aGVzZT0iIgorYWRkdGhlc2U9IiIKKword2hpbGUgdGVzdCAieCQxIiAhPSAieCIgOyBkbworICAgIHVjPWBlY2hvICQxIHwgdHIgYS16IEEtWmAKKyAgICBjYXNlICQxIGluCisJLS0qKQorCSAgICBhcmd1bWVudHR5cGU9IiQxIgorCSAgICA7OworCisJKikKKwkgICAgaWYgdGVzdCAieCRhcmd1bWVudHR5cGUiID0gIngtLXJlbW92ZSIgOyB0aGVuCisJCXJlbW92ZXRoZXNlPSIkcmVtb3ZldGhlc2UgJHVjIgorCSAgICBlbHNlCisJCWFkZHRoZXNlPSIkYWRkdGhlc2UgJHVjIgorCSAgICBmaQorCSAgICA7OworICAgIGVzYWMKKyAgICBzaGlmdAorZG9uZQorCitlY2hvICIiID4gJGZlYXR1cmVoZWFkZXIKK2VjaG8gIi8qIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyBmZWF0dXJlcyB0aGF0IE5ldC1TTk1QIEhBUyBvciBoYXMgUkVNT1ZFZCAqLyIgPj4gJGZlYXR1cmVoZWFkZXIKKworaGFzbGlzdD0iICIKKworZm9yIGkgaW4gYGdyZXAgTkVUU05NUF9GRUFUVVJFX1BST1ZJREVfICRmZWF0dXJlaGVhZGVyaW4gfCBzZWQgJ3MvLipGRUFUVVJFX1BST1ZJREVfLy87cy8gLiovLydgIDsgZG8KKyAgICAjCisgICAgIyBJZiB3ZSB3ZXJlIHNwZWNpZmljYWxseSBhc2tlZCB0byBpbmNsdWRlIGl0LCB0aGVuIGRvIHNvCisgICAgIworICAgIGlmIGVjaG8gIiAkYWRkdGhlc2UgIiB8IGdyZXAgIiAke2l9ICIgPiAvZGV2L251bGwgOyB0aGVuCisgICAgICAgIyBUaGUgdXNlciByZXF1aXJlZCBpdCA7IHJlcG9ydCB3ZSdyZSB1c2luZyBpdAorCWVjaG8gIiNkZWZpbmUgTkVUU05NUF9GRUFUVVJFX0hBU18kaSAxIiA+PiAkZmVhdHVyZWhlYWRlcgorCWhhc2xpc3Q9IiR7aGFzbGlzdH0ke2l9ICIKKworICAgICMKKyAgICAjIGNoZWNrIHRvIHNlZSBpZiBzb21ldGhpbmcgcmVxdXJpZWQgaXQKKyAgICAjCisgICAgZWxpZiBncmVwICJORVRTTk1QX0ZFQVRVUkVfUkVRVUlSRV8ke2l9ICIgJGZlYXR1cmVoZWFkZXJnbG9iYWwgPiAvZGV2L251bGwgOyB0aGVuCisJIyBpZiBzbywgbWFrZSBzdXJlIHdlIHdlcmVuJ3QgYXNrZWQgdG8gcmVtb3ZlIGl0CisgICAgICAgCWlmIGVjaG8gICIgJHJlbW92ZXRoZXNlICJ8IGdyZXAgIiAkaSAiID4gL2Rldi9udWxsIDsgdGhlbgorICAgICAgIAkgICAjIFVoIG9oOyB0aGV5IHNwZWNpZmljYWxseSB3YW50ZWQgaXQgcmVtb3ZlZCBidXQgaXQgd2FzIHJlcXVpcmVkCisJICAgZWNobyAiRmVhdHVyZSBFcnJvcjoiCisgICAgICAgCSAgIGVjaG8gIiBGZWF0dXJlICckaScgd2FzIGFza2VkIHRvIGJlIHJlbW92ZWQgYnV0IHNvbWV0aGluZyByZXF1aXJlZCBpdCIKKyAgICAgICAJICAgZWNobyAiIFNlZSB0aGUgJGZlYXR1cmVoZWFkZXJnbG9iYWwgZmlsZSBmb3IgZGVwZW5kZW5jeSBkZXRhaWxzIgorCSAgIGVjaG8gIiIKKyAgICAgICAgICAgcm0gLWYgJGZlYXR1cmVoZWFkZXIKKyAgICAgICAJICAgZXhpdCAxCisgICAgICAgCWZpCisKKyAgICAgICAJIyBzb21ldGhpbmcgcmVxdWlyZWQgaXQgOyByZXBvcnQgd2UncmUgdXNpbmcgaXQKKyAgICAgICAJZWNobyAiI2RlZmluZSBORVRTTk1QX0ZFQVRVUkVfSEFTXyRpIDEiID4+ICRmZWF0dXJlaGVhZGVyCisJaGFzbGlzdD0iJHtoYXNsaXN0fSR7aX0gIgorCisgICAgIworICAgICMgY2hlY2sgdG8gc2VlIGlmIHNvbWV0aGluZyAid2FudGVkIiBpdAorICAgICMKKyAgICBlbGlmIGdyZXAgIk5FVFNOTVBfRkVBVFVSRV9XQU5UXyR7aX0gIiAkZmVhdHVyZWhlYWRlcmdsb2JhbCA+IC9kZXYvbnVsbCA7IHRoZW4KKwkgICAjIG5vdGhpbmcgcmVxdWlyZWQgaXQsIGJ1dCBzb21ldGhpbmcgIndhbnRlZCIgaXQKKworCSAgICMgY2hlY2sgdG8gbWFrZSBzdXJlIHdlIHdlcmVuJ3QgYXNrZWQgdG8gZXhjbHVkZSBpdAorICAgICAgICAgICBpZiBlY2hvICIgJHJlbW92ZXRoZXNlICIgfCBncmVwICIgJGkgIiA+IC9kZXYvbnVsbCA7IHRoZW4KKyAgICAgICAgICAgICAgICMgd2Ugd2VyZSBzcGVjaWZpY2FsbHkgYXNrZWQgKm5vdCogdG8gdXNlIHRoaXMgZmVhdHVyZQorICAgICAgICAgICAgICAgZWNobyAiI2RlZmluZSBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFXyRpIDEiID4+ICRmZWF0dXJlaGVhZGVyCisgICAgICAgICAgIGVsc2UKKwkgICAgICAgIyBzb21ldGhpbmcgd2FudGVkIGl0LCBzbyB3ZSdsbCBpbmNsdWRlIGl0CisJICAgICAgIGVjaG8gIiNkZWZpbmUgTkVUU05NUF9GRUFUVVJFX0hBU18kaSAxIiA+PiAkZmVhdHVyZWhlYWRlcgorCSAgICAgICBoYXNsaXN0PSIke2hhc2xpc3R9JHtpfSAiCisgICAgICAgICAgIGZpCisKKworICAgICMKKyAgICAjIGNoZWNrIHRvIHNlZSBpZiBzb21ldGhpbmcgcmVxdWlyZWQgYSBwYXJlbnQKKyAgICAjCisgICAgZWxpZiBlZ3JlcCBORVRTTk1QX0ZFQVRVUkVfJHtpfV9DSElMRF9PRiAkZmVhdHVyZWhlYWRlcmdsb2JhbCA+IC9kZXYvbnVsbCA7IHRoZW4KKwlwYXJlbnRuYW1lcz1gZWdyZXAgTkVUU05NUF9GRUFUVVJFXyR7aX1fQ0hJTERfT0YgJGZlYXR1cmVoZWFkZXJnbG9iYWwgfCBzZWQgJ3MvLipDSElMRF9PRl8vLztzLyAuKi8vOydgCisKKwlmb3VuZG9uZT0wCisJZm9yIHBhcmVudG5hbWUgaW4gJHBhcmVudG5hbWVzIDsgZG8KKyAgIAkgICAgIyBpZiB0aGUgcGFyZW50IHdhcyBkZXNpcmVkLCB0aGVuIHdlIGFyZSB0b286CisJICAgIAorCSAgICBpZiB0ZXN0ICRmb3VuZG9uZSA9IDAgOyB0aGVuCisJCWlmIGVncmVwICJORVRTTk1QX0ZFQVRVUkVfSEFTXyR7cGFyZW50bmFtZX0gIiAkZmVhdHVyZWhlYWRlciA+IC9kZXYvbnVsbCA7IHRoZW4KKyAgICAgICAJCSAgICBlY2hvICIjZGVmaW5lIE5FVFNOTVBfRkVBVFVSRV9IQVNfJGkgMSIgPj4gJGZlYXR1cmVoZWFkZXIKKwkJICAgIGhhc2xpc3Q9IiR7aGFzbGlzdH0ke2l9ICIKKwkJICAgIGZvdW5kb25lPTEKKwkJZmkKKwkgICAgZmkKKyAgICAgICAgZG9uZQorCWlmIHRlc3QgJGZvdW5kb25lID0gMCA7IHRoZW4KKyAgICAJICAgIGVjaG8gIiNkZWZpbmUgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV8kaSAxIiA+PiAkZmVhdHVyZWhlYWRlcgorCWZpCisKKyAgICAjCisgICAgIyBubyBvbmUgcmVxdWlyZWQgb3Igd2FudGVkIGl0IC0tIGl0IGlzIHNhZmUgdG8gcmVtb3ZlIGl0CisgICAgIworICAgIGVsc2UKKyAgICAJIGVjaG8gIiNkZWZpbmUgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV8kaSAxIiA+PiAkZmVhdHVyZWhlYWRlcgorICAgIGZpCitkb25lCisKZGlmZiAtLWdpdCBhL2xvY2FsL21pbmltYWxpc3QvZmluZC11bnVzZWQtY29kZSBiL2xvY2FsL21pbmltYWxpc3QvZmluZC11bnVzZWQtY29kZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44OWUzYzhjCi0tLSAvZGV2L251bGwKKysrIGIvbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlCkBAIC0wLDAgKzEsMTE3IEBACisjIS91c3IvYmluL3BlcmwKKworIyBzZWFyY2hlcyBmb3IgLm8gZmlsZXMgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGFuZCBleGFtaW5lcyBlYWNoIGZvcgorIyBkZWZpbmVkIGZ1bmN0aW9ucyAoVCkgYW5kIHVuZGVmaW5lZCByZWZlcmVuY2VzIChVKSBhbmQgbGlzdHMKKyMgYW55dGhpbmcgdGhhdCBpc24ndCByZXF1aXJlZCBieSBzb21ldGhpbmcgZWxzZSBvciBpdHNlbGYKKworIyB1c2VmdWwgY2FsbGluZyBzb3J0ZWQgYnkgZmlsZToKKyMgICBwZXJsIG1pbmltYWwvZmluZC11bnVzZWQtY29kZSB8IHNvcnQgCisKK3VzZSBGaWxlOjpGaW5kOwordXNlIERhdGE6OkR1bXBlcjsKK3VzZSBzdHJpY3Q7Cit1c2UgR2V0b3B0OjpHVUk6Okxvbmc7CisKK215ICVvcHRzOworCitMb2NhbEdldE9wdGlvbnMoXCVvcHRzLAorCQlbJ2d8Z3JlcCcsICAgICAgInJ1biBmaW5kL2dyZXAgdG8gbG9vayBmb3Igc3RyaW5nIHVzYWdlcyJdLAorICAgICk7CisKK215IChAZmlsZXMsICVkZWZpbmVkLCAlbG9va2luZ2Zvcik7CisKK2ZpbmQoXCZkb3Rfb3MsICIuIik7CisKK2ZvcmVhY2ggbXkgJGZpbGUgKEBmaWxlcykgeworICAgIGNvbGxlY3RfZnJvbV9maWxlKCRmaWxlKTsKK30KKworCitpZiAoJCNBUkdWID4gLTEpIHsKKyAgICBwcmludCAiRHVtcGluZyBmb3VuZCBzeW1ib2wgdXNhZ2VzOlxuXG4iOworICAgIGZvcmVhY2ggbXkgJGFyZyAoQEFSR1YpIHsKKwlwcmludCAiJGFyZzpcbiI7CisJcHJpbnQgIiAgIiwgam9pbigiXG4gICIsIEB7JGRlZmluZWR7JGFyZ317J3VzYWdlcyd9fSksIlxuXG4iOworICAgIH0KKyAgICBleGl0OworfQorCitmb3JlYWNoIG15ICRmdW5jdGlvbiAoc29ydCB7ICRkZWZpbmVkeyRhfXsnc291cmNlJ30gY21wICRkZWZpbmVkeyRifXsnc291cmNlJ30gfSBrZXlzKCVkZWZpbmVkKSkgeworICAgIGlmIChleGlzdHMoJGRlZmluZWR7JGZ1bmN0aW9ufXsnc291cmNlJ30pICYmCisJIWV4aXN0cygkZGVmaW5lZHskZnVuY3Rpb259eyd1c2FnZXMnfSkpIHsKKwlpZiAoY2hlY2tfZm9yX29uY2Vfb25seSgkZGVmaW5lZHskZnVuY3Rpb259eydzb3VyY2UnfSwgJGZ1bmN0aW9uKSkgeworCSAgICBwcmludGYoIiUtMzhzICUtMzhzXG4iLCAkZGVmaW5lZHskZnVuY3Rpb259eydzb3VyY2UnfSwgJGZ1bmN0aW9uKTsKKwkgICAgaWYgKCRvcHRzeydnJ30pIHsKKwkJb3BlbihQLCJmaW5kIC4gLXJlZ2V4ICcuKi5cXChjXFx8eHNcXCknIHwgeGFyZ3MgZ3JlcCAtbiAkZnVuY3Rpb258Iik7CisJCXdoaWxlKDxQPikgeworCQkgICAgcHJpbnQgIiAgJF8iOworCQl9CisJCWNsb3NlKFApOworCQlwcmludCAiXG4iOworCSAgICB9CisJfQorICAgIH0KK30KKworc3ViIGRvdF9vcyB7CisgICAgcmV0dXJuIGlmICghL1wubyQvKTsKKyAgICByZXR1cm4gaWYgKCRGaWxlOjpGaW5kOjpuYW1lID1+IC9cLy5saWJzXC8vKTsKKyMgICAgcmV0dXJuIGlmICgkRmlsZTo6RmluZDo6bmFtZSA9fiAvXC8ocGVybHxweXRob24pXC8vKTsKKyAgICBwdXNoIEBmaWxlcywgJEZpbGU6OkZpbmQ6Om5hbWU7Cit9CisKK3N1YiBjb2xsZWN0X2Zyb21fZmlsZSB7CisgICAgbXkgJGZpbGUgPSBzaGlmdDsKKyMgICAgcHJpbnQgInNlYXJjaGluZyAkZmlsZVxuIjsKKyAgICBvcGVuKEksIm5tICRmaWxlfCIpOworICAgIHdoaWxlKDxJPikgeworCSRkZWZpbmVkeyQxfXsnc291cmNlJ30gPSAkZmlsZSBpZiAoLyBUICguKikvKTsKKwlwdXNoIEB7JGRlZmluZWR7JDF9eyd1c2FnZXMnfX0sICRmaWxlIGlmICgvIFUgKC4qKS8pOworICAgIH0KKyAgICBjbG9zZShJKTsKK30KKwkKK3N1YiBjaGVja19mb3Jfb25jZV9vbmx5IHsKKyAgICBteSAoJGZpbGUsICRmdW5jdGlvbikgPSBAXzsKKyAgICAkZmlsZSA9fiBzL1wuby8uYy87CisgICAgb3BlbihJLCAkZmlsZSk7CisgICAgbXkgJHVzYWdlcyA9IDA7CisgICAgd2hpbGUoPEk+KSB7CisJaWYgKC8kZnVuY3Rpb24vKSB7CisJICAgICR1c2FnZXMrKzsKKwl9CisJaWYgKCR1c2FnZXMgPiAxKSB7CisJICAgIGNsb3NlKEkpOworCSAgICByZXR1cm4gMDsKKwl9CisgICAgfQorICAgIHJldHVybiAxOworfQorCisKK3N1YiBMb2NhbEdldE9wdGlvbnMgeworICAgIGlmIChldmFsIHtyZXF1aXJlIEdldG9wdDo6R1VJOjpMb25nO30pIHsKKyAgICAgICAgaW1wb3J0IEdldG9wdDo6R1VJOjpMb25nOworICAgICAgICAjIG9wdGlvbmFsIGNvbmZpZ3VyZSBjYWxsCisgICAgICAgIEdldG9wdDo6R1VJOjpMb25nOjpDb25maWd1cmUocXcoZGlzcGxheV9oZWxwIG5vX2lnbm9yZV9jYXNlIGNhcHR1cmVfb3V0cHV0IG5vX2d1aSBhbGxvd196ZXJvKSk7CisgICAgICAgIHJldHVybiBHZXRPcHRpb25zKEBfKTsKKyAgICB9CisgICAgcmVxdWlyZSBHZXRvcHQ6Okxvbmc7CisgICAgaW1wb3J0IEdldG9wdDo6TG9uZzsKKyAgICAjIG9wdGlvbmFsIGNvbmZpZ3VyZSBjYWxsCisgICAgR2V0b3B0OjpMb25nOjpDb25maWd1cmUocXcoZGlzcGxheV9oZWxwIG5vX2lnbm9yZV9jYXNlIGNhcHR1cmVfb3V0cHV0KSk7CisgICAgR2V0T3B0aW9ucyhMb2NhbE9wdGlvbnNNYXAoQF8pKTsKK30KKworc3ViIExvY2FsT3B0aW9uc01hcCB7CisgICAgbXkgKCRzdCwgJGNiLCBAb3B0cykgPSAoKHJlZigkX1swXSkgZXEgJ0hBU0gnKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgxLCAxLCAkX1swXSkgOiAoMCwgMikpOworICAgIGZvciAobXkgJGkgPSAkc3Q7ICRpIDw9ICQjXzsgJGkgKz0gJGNiKSB7CisgICAgICAgIGlmICgkX1skaV0pIHsKKyAgICAgICAgICAgIG5leHQgaWYgKHJlZigkX1skaV0pIGVxICdBUlJBWScgJiYgJF9bJGldWzBdID1+IC9eR1VJOi8pOworICAgICAgICAgICAgcHVzaCBAb3B0cywgKChyZWYoJF9bJGldKSBlcSAnQVJSQVknKSA/ICRfWyRpXVswXSA6ICRfWyRpXSk7CisgICAgICAgICAgICBwdXNoIEBvcHRzLCAkX1skaSsxXSBpZiAoJGNiID09IDIpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBAb3B0czsKK30KZGlmZiAtLWdpdCBhL2xvY2FsL21pbmltYWxpc3QvaWdub3JlLnJlZ2V4cCBiL2xvY2FsL21pbmltYWxpc3QvaWdub3JlLnJlZ2V4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDliOTljCi0tLSAvZGV2L251bGwKKysrIGIvbG9jYWwvbWluaW1hbGlzdC9pZ25vcmUucmVnZXhwCkBAIC0wLDAgKzEsNCBAQAorfiQKKyMkCitcLy4jCitcLy5zdm5cLwpkaWZmIC0tZ2l0IGEvbG9jYWwvbWluaW1hbGlzdC9yZW1vdmUtdW5uZWVkZWQtbW9kdWxlcyBiL2xvY2FsL21pbmltYWxpc3QvcmVtb3ZlLXVubmVlZGVkLW1vZHVsZXMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWQ0NTk1NAotLS0gL2Rldi9udWxsCisrKyBiL2xvY2FsL21pbmltYWxpc3QvcmVtb3ZlLXVubmVlZGVkLW1vZHVsZXMKQEAgLTAsMCArMSwxMzAgQEAKKyMhL2Jpbi9wZXJsCisKKyMgc3RlcHM6CisjIDEpIHJ1biBjb25maWd1cmUKKyMgMikgcGVybCBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZS11bm5lZWRlZC1tb2R1bGVzCisjIDMpIG1ha2UgZGVwZW5kCisjIDQpIG1ha2UKKwordXNlIEZpbGU6OkZpbmQ7Cit1c2UgRGF0YTo6RHVtcGVyOwordXNlIHN0cmljdDsKKworbXkgJWV4Y2VwdGlvbnMgPSBxdygKKyAgIGFnZW50L21pYmdyb3VwL21pYmRlZnMuaCAgICAgICAgICAgICAgCSAgICAgICAgICAgICAgMQorICAgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmggICAgICAgICAgICAgICAJICAgICAgICAgICAgICAxCisgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaCAgICAgIAkgICAgICAgICAgICAgIDEKKyAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmggCSAgICAgICAgICAgICAgMQorICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmggICAgICAJICAgICAgICAgICAgICAxCisgICBhZ2VudC9taWJncm91cC9taWJfbW9kdWxlX2luY2x1ZGVzLmggIAkgICAgICAgICAgICAgIDEKKyAgIGFnZW50L21pYmdyb3VwL21pYl9tb2R1bGVfaW5pdHMuaCAgICAgCSAgICAgICAgICAgICAgMQorICAgYWdlbnQvbWliZ3JvdXAvbWliX21vZHVsZV9kb3RfY29uZi5oICAJICAgICAgICAgICAgICAxCisgICBhZ2VudC9taWJncm91cC9taWJfbW9kdWxlX3NodXRkb3duLmggIAkgICAgICAgICAgICAgIDEKKyAgIGFnZW50L21pYmdyb3VwL2FnZW50X21vZHVsZV9pbmNsdWRlcy5oCSAgICAgICAgICAgICAgMQorICAgYWdlbnQvbWliZ3JvdXAvYWdlbnRfbW9kdWxlX2luaXRzLmggICAJICAgICAgICAgICAgICAxCisgICBhZ2VudC9taWJncm91cC9hZ2VudF9tb2R1bGVfZG90X2NvbmYuaAkgICAgICAgICAgICAgIDEKKyAgIGFnZW50L21pYmdyb3VwL2FnZW50X21vZHVsZV9zaHV0ZG93bi5oCSAgICAgICAgICAgICAgMQorICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMgICAgICAJICAgICAgICAgICAgICAxCisgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtQ29uZi5jICAgICAgIAkgICAgICAgICAgICAgIDEKKyAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYyAgICAgCSAgICAgICAgICAgICAgMQorICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmggICAgICAJICAgICAgICAgICAgICAxCisgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtQ29uZi5oICAgICAgIAkgICAgICAgICAgICAgIDEKKyAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuaCAgICAgCSAgICAgICAgICAgICAgMQorICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9NSUJfU1RBVFNfQ0FDSEVfVElNRU9VVC5oICAgICAgICAxCisgICBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyAgIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQorICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kZWZzLmggICAgICAgICAgICAgICAxCisgICBhZ2VudC9taWJncm91cC9pZlRhYmxlX2RlZnMuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyAgIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oICAgICAgICAgICAgICAgICAgICAgICAgMQorICAgYWdlbnQvbWliZ3JvdXAvbW50dHlwZXMuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCisgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5oICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyk7CisKK215ICVvcHRzOworCitMb2NhbEdldE9wdGlvbnMoXCVvcHRzLAorCQlbJ258ZHJ5LXJ1bicsICAgICAgIkRyeS1ydW4sIGp1c3Qgc2F5IHdoYXQgeW91IHdvdWxkIGRvIl0sCisJCVsndnx2ZXJib3NlJywgICAgICAiU2hvdyB3aGF0IGZpbGVzIGFyZSBiZWluZyBsZWZ0IHRvbyJdLAorICAgICk7CisKK215ICRpbnB1dE1ha2VmaWxlID0gJEFSR1ZbMF0gfHwgImFnZW50L21pYmdyb3VwL01ha2VmaWxlIjsKK215ICRpbnB1dERpciA9ICRBUkdWWzFdIHx8ICJhZ2VudC9taWJncm91cCI7CisKK215ICRjb2xsZWN0aW5nID0gMDsKK215ICglZmlsZXMsIEBmaWxlcyk7CisKK29wZW4oSSwgJGlucHV0TWFrZWZpbGUpOword2hpbGUoPEk+KSB7CisgICAgaWYgKC9taWJfbW9kdWxlX2xpc3RfYz0vKSB7CisJJGNvbGxlY3RpbmcgPSAxOworICAgIH0gZWxzaWYgKCRjb2xsZWN0aW5nKSB7CisJaWYgKCEgL1xcXHMqJC8pIHsKKwkgICAgJGNvbGxlY3RpbmcgPSAwOworCX0KKwljaG9tcCgpOworCXMvXFwvLzsKKwlzL1xzKi8vZzsKKwlzL1wuYy8vOworCXB1c2ggQGZpbGVzLCAiYWdlbnQvbWliZ3JvdXAvJF8iOworCSRmaWxlc3siYWdlbnQvbWliZ3JvdXAvJF8uYyJ9ID0gMTsKKwkkZmlsZXN7ImFnZW50L21pYmdyb3VwLyRfLmgifSA9IDE7CisgICAgfQorfQorCitmaW5kKFwmcmVtb3ZlX2ZpbGVzLCAkaW5wdXREaXIpOworCitzdWIgcmVtb3ZlX2ZpbGVzIHsKKyAgICByZXR1cm4gaWYgKCEvXC5bY2hdJC8pOworICAgIHJldHVybiBpZiAoL1wuaCQvKTsgIyBYWFg6IHdlIG5lZWQgdG8gZGVsZXRlIGhlYWRlcnMgZXZlbnR1YWxseSB0b28KKyAgICByZXR1cm4gaWYgKC9fY29uc3RhbnRzLmgvKTsKKyAgICByZXR1cm4gaWYgKGV4aXN0cygkZXhjZXB0aW9uc3skRmlsZTo6RmluZDo6bmFtZX0pKTsKKworICAgIGlmICghZXhpc3RzKCRmaWxlc3skRmlsZTo6RmluZDo6bmFtZX0pKSB7CisJVW5saW5rKCRfLCAkRmlsZTo6RmluZDo6bmFtZSk7CisgICAgfSBlbHNpZiAoJG9wdHN7J3YnfSkgeworCXByaW50ICJMZWF2aW5nICRGaWxlOjpGaW5kOjpuYW1lXG4iOworICAgIH0KK30KKworc3ViIFVubGluayB7CisgICAgbXkgKCRmaWxlLCAkZnVsbGZpbGUpID0gQF87CisgICAgcHJpbnQgIlJlbW92aW5nICRmdWxsZmlsZVxuIjsKKyAgICBpZiAoISRvcHRzeyduJ30pIHsKKwl1bmxpbmsoJGZpbGUpOworCWlmICgtZiAiJGZpbGUiKSB7CisJICAgIHByaW50ICIqKiogRkFJTEVEIHRvIHJlbW92ZSAkZmlsZVxuIjsgCisJfQorICAgIH0KK30KKworCitzdWIgTG9jYWxHZXRPcHRpb25zIHsKKyAgICBpZiAoZXZhbCB7cmVxdWlyZSBHZXRvcHQ6OkdVSTo6TG9uZzt9KSB7CisgICAgICAgIGltcG9ydCBHZXRvcHQ6OkdVSTo6TG9uZzsKKyAgICAgICAgIyBvcHRpb25hbCBjb25maWd1cmUgY2FsbAorCW15IEBnb3B0cyA9IHF3KG5vX2lnbm9yZV9jYXNlIG5vX2d1aSBhbGxvd196ZXJvKTsKKwlpZiAoJEdldG9wdDo6R1VJOjpMb25nOjpWRVJTSU9OID4gMC4yKSB7CisJICAgIHB1c2ggQGdvcHRzLCBxdyhkaXNwbGF5X2hlbHAgY2FwdHVyZV9vdXRwdXQpOworCX0KKyAgICAgICAgR2V0b3B0OjpHVUk6Okxvbmc6OkNvbmZpZ3VyZShAZ29wdHMpOworICAgICAgICByZXR1cm4gR2V0T3B0aW9ucyhAXyk7CisgICAgfQorICAgIHJlcXVpcmUgR2V0b3B0OjpMb25nOworICAgIGltcG9ydCBHZXRvcHQ6Okxvbmc7CisgICAgIyBvcHRpb25hbCBjb25maWd1cmUgY2FsbAorICAgIEdldG9wdDo6TG9uZzo6Q29uZmlndXJlKHF3KGRpc3BsYXlfaGVscCBub19pZ25vcmVfY2FzZSBjYXB0dXJlX291dHB1dCkpOworICAgIEdldE9wdGlvbnMoTG9jYWxPcHRpb25zTWFwKEBfKSk7Cit9CisKK3N1YiBMb2NhbE9wdGlvbnNNYXAgeworICAgIG15ICgkc3QsICRjYiwgQG9wdHMpID0gKChyZWYoJF9bMF0pIGVxICdIQVNIJykgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoMSwgMSwgJF9bMF0pIDogKDAsIDIpKTsKKyAgICBmb3IgKG15ICRpID0gJHN0OyAkaSA8PSAkI187ICRpICs9ICRjYikgeworICAgICAgICBpZiAoJF9bJGldKSB7CisgICAgICAgICAgICBuZXh0IGlmIChyZWYoJF9bJGldKSBlcSAnQVJSQVknICYmICRfWyRpXVswXSA9fiAvXkdVSTovKTsKKyAgICAgICAgICAgIHB1c2ggQG9wdHMsICgocmVmKCRfWyRpXSkgZXEgJ0FSUkFZJykgPyAkX1skaV1bMF0gOiAkX1skaV0pOworICAgICAgICAgICAgcHVzaCBAb3B0cywgJF9bJGkrMV0gaWYgKCRjYiA9PSAyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gQG9wdHM7Cit9CmRpZmYgLS1naXQgYS9sb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbCBiL2xvY2FsL21pbmltYWxpc3QvcmVtb3ZlaWZkZWZjb2RlLnBsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVhNjRjMDUKLS0tIC9kZXYvbnVsbAorKysgYi9sb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbApAQCAtMCwwICsxLDMzMyBAQAorIyEgL3Vzci9iaW4vcGVybAorCit1c2Ugc3RyaWN0OwordXNlIEZpbGU6OkNvcHk7Cit1c2UgRmlsZTo6QmFzZW5hbWU7Cit1c2UgSU86OkZpbGU7Cit1c2UgR2V0b3B0OjpTdGQ7CisKK215ICRJRF9OT1JFQUQgID0gIk5FVFNOTVBfTk9fUkVBRF9TVVBQT1JUIjsKK215ICRJRF9OT1dSSVRFID0gIk5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCI7CisjIG15ICRJRF9NSU4gICAgID0gIk5FVFNOTVBfTUlOSU1BTF9DT0RFIjsKKworbXkoJFNUX09GRiwgJFNUX0lGLCAkU1RfRUxTRSwgJFNUX0lGTiwgJFNUX0VMU0VOKSA9CisgICgib2ZmIiwgImlmIiwgImVsc2UiLCAiaWZub3QiLCAiZWxzZW5vdCIpOworCitteSAlb3B0cyAgICA9ICgpOworbXkgJXRoYXNoICAgPSAoKTsKK215ICRjYW53cml0ZSA9IDE7ICMgY3VycmVudCB3cml0ZSBzdGF0ZQorCitteSgkYXBwbmFtZSwkYXBwcGF0aCkgPSBmaWxlcGFyc2UoJDApOworCitteSAkbWluaW1hbF9pbmNsdWRlX3BhdGggPSAiaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oIjsKKworCitpZiAoICghZ2V0b3B0cygicndtaTp2IixcJW9wdHMpKSB8fCAoMSAhPSAkI0FSR1YpICkgeworICBwcmludCAiJGFwcG5hbWUgW29wdGlvbnNdIGZyb20tZGlyZWN0b3J5IHRvLWRpcmVwY3RvcnlcbiI7CisgIHByaW50ICItciAgICAgcGFyc2Ugb3V0IGNvZGUgdW5uZWVkZWQgYnkgJElEX05PUkVBRCBpZmRlZlxuIjsKKyAgcHJpbnQgIi13ICAgICBwYXJzZSBvdXQgY29kZSB1bm5lZWRlZCBieSAkSURfTk9XUklURSBpZmRlZiAoREVGQVVMVClcbiI7CisgIHByaW50ICItbSAgICAgcGFyc2Ugb3V0IGNvZGUgdW5uZWVkZWQgYWNjb3JkaW5nIG1pbmltYWxpc3QgaWZkZWZzXG4iOworICBwcmludCAiICAgICAgIHJlcXVpcmVzIGZyb20tZGlyZWN0b3J5IHRvIGJlIHRoZSB0b3Agb2YgdGhlIG5ldC1zbm1wIHRyZWVcbiI7CisgIHByaW50ICIgICAgICAgKFRoaXMgaXMgbXVsdGlwbGUgaWZkZWZzIGF1dG8gc2VsZWN0ZWQgZGVwZW5kaW5nXG4iOworICBwcmludCAiICAgICAgICBvbiB0aGUgbmV0LXNubXAgc291cmNlIGNvbmZpZ3VyYXRpb24pXG5cbiI7CisgIHByaW50ICItaSAnaWdub3JlLWZpbGUnICBmaWxlIG9mIGZpbGVzIHRvIGlnbm9yZSAobm90IGNvcHkpXG4iOworICBwcmludCAiLXYgICAgIHByaW50IHZlcmJvc2UgaW5mbyB0byBzdGFuZGFyZCBvdXRcbiI7CisgIGRpZSAiRXJyb3I6IHR3byBjb21tYW5kIGxpbmUgYXJndW1lbnRzIHJlcXVpcmVkXG4iOworfQorCisjZGVmYXVsdCB0byBldmVyeXRoaW5nCitpZiAoICghZXhpc3RzICRvcHRze3J9KSAmJiAoIWV4aXN0cyAkb3B0c3t3fSkgJiYgKCFleGlzdHMgJG9wdHN7bX0pICkgeworICAkdGhhc2h7IiRJRF9OT1dSSVRFIn0gPSAiJFNUX09GRiI7Cit9CitlbHNlIHsKKyAgJHRoYXNoeyIkSURfTk9SRUFEIn0gID0gIiRTVF9PRkYiIGlmICggZXhpc3RzICRvcHRze3J9ICk7CisgICR0aGFzaHsiJElEX05PV1JJVEUifSA9ICIkU1RfT0ZGIiBpZiAoIGV4aXN0cyAkb3B0c3t3fSApOworfQorCitteSAkZnJvbWRpciA9ICRBUkdWWzBdOworbXkgJHRvZGlyICAgPSAkQVJHVlsxXTsKKworaWYgKCAhKC1lICRmcm9tZGlyKSApIHsKKyAgZGllICJFcnJvcjogJGFwcG5hbWU6IGZyb20gZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0OiAnJGZyb21kaXInXG4iOworfQoraWYgKCAhKC1kICRmcm9tZGlyKSApIHsKKyAgICBkaWUgIkVycm9yOiAkYXBwbmFtZTogZnJvbSBkaXJlY3RvcnksICckZnJvbWRpcicsIG11c3QgYmUgYSBkaXJlY3RvcnlcbiI7Cit9CisKK2lmICggZXhpc3RzICRvcHRze219ICkgeworICAgIGxvYWRfbWluYW1hbF9pZmRlZnMoKTsKK30KKworIyBjcmVhdGUgc2VhcmNoIHN0cmluZyBmcm9tIHRhZ3MKKyMgbWluaW1hbCBtdXN0IGJlIGRvbmUgYmVmb3JlIHRoaXMKK215ICRzZWFyY2ggPSBqb2luICJ8IiwgKGtleXMgJXRoYXNoKTsKKworCisjIGNoZWNrIGZvciBhbmQgbG9hZCBpZ25vcmUgZmlsZQorbXkgJGlnc3RyaW5nID0gIiI7CitpZiAoIGV4aXN0cyAkb3B0c3tpfSApIHsKKyAgb3BlbiBteSgkSUgpLCAiPCAkb3B0c3tpfSIgb3IKKyAgICBkaWUgIkNvdWxkIG5vdCBvcGVuIGlnbm9yZS1maWxlICckb3B0c3tpfSc6ICQhIjsKKyAgbXkgQGlnbGlzdCA9IDwkSUg+OworICAkSUgtPmNsb3NlKCk7CisgIGNob21wIEBpZ2xpc3Q7CisgICRpZ3N0cmluZyA9IGpvaW4gInwiLCBAaWdsaXN0OworICAkaWdzdHJpbmcgPSAiKCIgLiAkaWdzdHJpbmcgLiAiKSI7CisgIHByaW50ICJpZ25vcmUgc3RyaW5nOiBcJyRpZ3N0cmluZ1wnXG4iIGlmIChleGlzdHMgJG9wdHN7dn0pOworfQorCisKKworaWYgKCAtZSAkdG9kaXIgKSB7CisgIGlmICggKCgtZCAkZnJvbWRpcikgJiYgISgtZCAkdG9kaXIpKSB8fAorCSAgICghKC1kICRmcm9tZGlyKSAmJiAoLWQgJHRvZGlyKSkgKSB7CisJZGllICJFcnJvcjogJGFwcG5hbWU6IGZyb20tZGlyZWN0b3J5IGFuZCB0by1kaXJlY3RvcnkgbXVzdCBib3RoIGVpdGhlciBiZSBhIGZpbGUgb3IgYm90aCBiZSBhIGRpcmVjdG9yeVxuIjsKKyAgfQorfQorZWxzZSB7CisgIGlmICgtZCAkZnJvbWRpcikgeworCXByaW50ICJXYXJuaW5nOiAkYXBwbmFtZTogJyR0b2RpcicgZG9lcyBub3QgZXhpc3QsIGNyZWF0aW5nXG4iOworCW1rZGlyICIkdG9kaXIiIG9yCisgICAgICBkaWUgIkVycm9yOiAkYXBwbmFtZTogVW5hYmxlIHRvIGNyZWF0ZSB0by1kaXJlY3RvcnkgJyR0b2Rpcic6ICQhXG4iOworICB9Cit9CisKK2lmICgtZCAkZnJvbWRpcikgeworICBwYXJzZWRpcmVjdG9yeSgkZnJvbWRpciwgJHRvZGlyKTsKK30KK2Vsc2UgeworICBwYXJzZWZpbGUoJGZyb21kaXIsICR0b2Rpcik7Cit9CisKKworCitleGl0KDApOworCisKKyMgUFJPQ0VEVVJFUyAgUFJPQ0VEVVJFUyAgUFJPQ0VEVVJFUyAgUFJPQ0VEVVJFUyAgUFJPQ0VEVVJFUworCisKK3N1YiBwYXJzZWRpcmVjdG9yeSB7CisgIG15KCRmZGlyLCAkdGRpcikgPSBAXzsKKworICBteSBAbGRpcnMgPSAoKTsKKyAgbXkgJERIOworICBvcGVuZGlyIG15KCRESCksICRmZGlyIG9yIGRpZSAiQ291bGQgbm90IG9wZW4gZGlyZWN0b3J5ICckZmRpcic6ICQhIjsKKyAgaWYgKCAhKC1lICR0ZGlyKSB8fCAhKC1kICR0ZGlyKSApIHsKKyAgICBta2RpciAkdGRpciBvciBkaWUgIkNvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5ICckdGRpcic6ICQhIjsKKyAgfQorICBteSBAZmxpc3QgPSByZWFkZGlyICRESDsKKyAgY2xvc2VkaXIgJERIOworICAjIHJlbW92ZSAuIGFuZCAuLgorICBAZmxpc3QgPSBncmVwICghIC8oXlwuJHxeXC5cLiQpLyAsIEBmbGlzdCk7CisKKyAgd2hpbGUgKG15ICRuYW1lID0gc2hpZnQgQGZsaXN0KSB7CisgICAgaWYgKC1kICIkZmRpci8kbmFtZSIpIHsKKyAgICAgIHB1c2ggQGxkaXJzLCAiJG5hbWUiOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgIHBhcnNlZmlsZSgiJGZkaXIvJG5hbWUiLCAiJHRkaXIvJG5hbWUiKTsKKyAgICB9CisgIH0KKworICB3aGlsZSAobXkgJG5hbWUgPSBzaGlmdCBAbGRpcnMpIHsKKyAgICBwYXJzZWRpcmVjdG9yeSgiJGZkaXIvJG5hbWUiLCAiJHRkaXIvJG5hbWUiKQorICB9CisKK30gIyBwYXJzZWRpcmVjdG9yeQorCisKKyMgcmV0dXJucyAxIGlmIGN1cnJlbnQgc3RhdGUgZm9yIHRhZyBpcyB3cml0ZSwgMCBvdGhlcndpc2UKK3N1YiBpc3dyaXRlc3RhdGUgeworICBteSAkdGFnID0gIiI7CisKKyAgZm9yZWFjaCAkdGFnIChrZXlzICV0aGFzaCkgeworCWlmICggKCR0aGFzaHskdGFnfSBlcSAiJFNUX0VMU0UiKSB8fAorCQkgKCR0aGFzaHskdGFnfSBlcSAiJFNUX0lGTiIpICkgeworCSAgcmV0dXJuKDApOworICAgIH0KKyAgfQorCisgIHJldHVybigxKTsKK30gIyBpc3dyaXRlc3RhdGUKKworCisjIENoZWNrICRsaW5lIGZvciBpZmRlZiBzdGF0ZSBjaGFuZ2VzIGZvciBhbGwgb2YgdGhlIHRhZ3MgYW5kIGNoYW5nZQorIyBzdGF0ZS4KKyMgSWYgdGhlcmUgaXMgYSBzdGF0ZSBjaGFuZ2UgZXJyb3IgcmV0dXJuIDAsIG90aGVyd2lzZSByZXR1cm4gMTsKKworc3ViIGNoZWNraWZkZWYgeworICBteSgkVEYsICRsaW5lLCAkZnJvbWZpbGVuYW1lKSA9IEBfOworCisgIGlmICggJGxpbmUgPX4gLygjaWZkZWZ8I2lmbmRlZnwjZWxzZXwjZW5kaWYpLiooJHNlYXJjaCkoXHN8JHxcKikvICkgeworICAgIG15ICRjb3B0ID0gJDE7CisgICAgbXkgJHRhZyAgPSAkMjsKKworCWlmICggJGNvcHQgZXEgIiNpZmRlZiIgKSB7CisgICAgICBpZiAoJHRoYXNoeyIkdGFnIn0gZXEgIiRTVF9PRkYiKSB7CisgICAgICAgICR0aGFzaHsiJHRhZyJ9ID0gIiRTVF9JRiI7CisgICAgICAgIHByaW50ICJzdGF0ZSBjaGFuZ2UgJHRhZzogJFNUX09GRiAtPiAkU1RfSUZcbiIgaWYgKGV4aXN0cyAkb3B0c3t2fSk7CisgICAgICAgICRjYW53cml0ZSA9IGlzd3JpdGVzdGF0ZSgpOworICAgICAgfQorICAgICAgZWxzZSB7CisgICAgICAgIHByaW50ICJFcnJvcjogJGZyb21maWxlbmFtZTogRm91bmQgJyNpZmRlZiAkdGFnJyB3aXRoIHN0YXRlICR0aGFzaHskdGFnfVxuIjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgICB9CisgICAgfQorICAgIGVsc2lmICggJGNvcHQgZXEgIiNpZm5kZWYiICkgeworICAgICAgaWYgKCR0aGFzaHsiJHRhZyJ9IGVxICIkU1RfT0ZGIikgeworICAgICAgICAjIGJlZm9yZSBjaGFuZ2luZyB0byBhIG5vbi13cml0ZSBzdGF0ZSAoaWZuKSBwcmludCAjSUZOREVGCisgICAgICAgICMgbGluZSwgaWYgY3VycmVudCBzdGF0ZSBpcyBhIHdyaXRlIHN0YXRlLgorICAgICAgICBwcmludCAkVEYgIiRsaW5lIiAgaWYgKCAkY2Fud3JpdGUgKTsKKyAgICAgICAgJHRoYXNoeyIkdGFnIn0gPSAiJFNUX0lGTiI7CisgICAgICAgIHByaW50ICJzdGF0ZSBjaGFuZ2UgJHRhZzogJFNUX09GRiAtPiAkU1RfSUZOXG4iIGlmIChleGlzdHMgJG9wdHN7dn0pOworICAgICAgICAkY2Fud3JpdGUgPSBpc3dyaXRlc3RhdGUoKTsKKyAgICAgIH0KKyAgICAgIGVsc2UgeworICAgICAgICBwcmludCAiRXJyb3I6ICRmcm9tZmlsZW5hbWU6IEZvdW5kICcjaWZuZGVmICR0YWcnIHdpdGggc3RhdGUgJHRoYXNoeyR0YWd9XG4iOworICAgICAgICByZXR1cm4gMDsKKyAgICAgIH0KKyAgICB9CisgICAgZWxzaWYgKCAkY29wdCBlcSAiI2Vsc2UiICkgeworICAgICAgaWYgKCR0aGFzaHsiJHRhZyJ9IGVxICIkU1RfSUYiKSB7CisgICAgICAgICMgYmVmb3JlIGNoYW5naW5nIHRvIGEgbm9uLXdyaXRlIHN0YXRlIChlbHNlKSBwcmludCAjZWxzZQorICAgICAgICAjIGxpbmUsIGlmIGN1cnJlbnQgc3RhdGUgaXMgYSB3cml0ZSBzdGF0ZS4KKyAgICAgICAgcHJpbnQgJFRGICIkbGluZSIgIGlmICggJGNhbndyaXRlICk7CisgICAgICAgICR0aGFzaHsiJHRhZyJ9ID0gIiRTVF9FTFNFIjsKKyAgICAgICAgcHJpbnQgInN0YXRlIGNoYW5nZSAkdGFnOiAkU1RfSUYgLT4gJFNUX0VMU0VcbiIgaWYgKGV4aXN0cyAkb3B0c3t2fSk7CisgICAgICAgICRjYW53cml0ZSA9IGlzd3JpdGVzdGF0ZSgpOworICAgICAgfQorICAgICAgZWxzaWYgKCR0aGFzaHsiJHRhZyJ9IGVxICIkU1RfSUZOIikgeworICAgICAgICAkdGhhc2h7IiR0YWcifSA9ICIkU1RfRUxTRU4iOworICAgICAgICBwcmludCAic3RhdGUgY2hhbmdlICR0YWc6ICRTVF9JRk4gLT4gJFNUX0VMU0VOXG4iIGlmIChleGlzdHMgJG9wdHN7dn0pOworICAgICAgICAkY2Fud3JpdGUgPSBpc3dyaXRlc3RhdGUoKTsKKyAgICAgIH0KKyAgICAgIGVsc2UgeworICAgICAgICBwcmludCAiRXJyb3I6ICRmcm9tZmlsZW5hbWU6IEZvdW5kICcjZWxzZSAoLi4uKSAkdGFnJyB3aXRoIHN0YXRlICR0aGFzaHskdGFnfVxuIjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgICB9CisgICAgfQorICAgIGVsc2lmICggJGNvcHQgZXEgIiNlbmRpZiIgKSB7CisgICAgICBpZiAoKCR0aGFzaHsiJHRhZyJ9IGVxICIkU1RfRUxTRSIpICB8fCAoJHRoYXNoeyIkdGFnIn0gZXEgIiRTVF9JRiIpIHx8CisgICAgICAgICAgKCR0aGFzaHsiJHRhZyJ9IGVxICIkU1RfRUxTRU4iKSB8fCAoJHRoYXNoeyIkdGFnIn0gZXEgIiRTVF9JRk4iKSkKKyAgICAgIHsKKyAgICAgICAgcHJpbnQgInN0YXRlIGNoYW5nZSAkdGFnOiAkdGhhc2h7JHRhZ30gLT4gJFNUX09GRlxuIgorICAgICAgICAgIGlmIChleGlzdHMgJG9wdHN7dn0pOworICAgICAgICAkdGhhc2h7IiR0YWcifSA9ICIkU1RfT0ZGIjsKKyAgICAgICAgJGNhbndyaXRlID0gaXN3cml0ZXN0YXRlKCk7CisgICAgICB9CisgICAgICBlbHNlIHsKKyAgICAgICAgcHJpbnQgIkVycm9yOiBGb3VuZCAnI2VuZGlmICguLi4pICR0YWcnIHdpdGggc3RhdGUgJHRoYXNoeyR0YWd9XG4iOworICAgICAgICByZXR1cm4gMDsKKyAgICAgIH0KKyAgICB9CisKKyAgfSAjIGZvcmVhY2ggdGFnCisKKyAgcmV0dXJuIDE7Cit9ICMgY2hlY2tpZmRlZgorCisKK3N1YiBwYXJzZWZpbGUgeworICBteSgkZm5hbWUsICR0bmFtZSkgPSBAXzsKKyAgbXkgJEZGOyBteSAkVEY7CisgIG15IEBmcm9tZmlsZSA9ICgpOworICAkY2Fud3JpdGUgPSAxOworCisgICMgaWdub3JlIGZpbGUgZm9yIGZpbGUgbmFtZXMKKyAgaWYgKCAoZXhpc3RzICRvcHRze2l9KSAmJiAoIiRmbmFtZSIgPX4gIC8kaWdzdHJpbmcvKSApIHsKKyAgICBwcmludCAiSUdOT1JJTkcgJGZuYW1lXG4iICBpZiAoIGV4aXN0cyAkb3B0c3t2fSApOworICAgIHJldHVybiAxOworICB9CisKKyAgcHJpbnQgIkluZm86IE9wZW5pbmcgJyRmbmFtZSdcbiIgaWYgKCBleGlzdHMgJG9wdHN7dn0gKTsKKyAgaWYgKCAhKG9wZW4oJEZGLCAiPCAkZm5hbWUiKSkgKSB7CisJcHJpbnQgIldhcm5pbmc6IHVuYWJsZSB0byBvcGVuIGlucHV0IGZpbGUsIHNraXBwaW5nOiAnJGZuYW1lJzogJCFcbiI7CisJcmV0dXJuIDA7CisgIH0KKworICBteSBAZnJvbWZpbGUgPSA8JEZGPjsKKyAgJEZGLT5jbG9zZSgpOworCisgIGlmICggIShvcGVuKCRURiwgIj4gJHRuYW1lIikpICkgeworCXByaW50ICJXYXJuaW5nOiB1bmFibGUgdG8gb3BlbiBvdXRwdXQgZmlsZSwgc2tpcHBpbmc6ICckdG5hbWUnOiAkIVxuIjsKKwlyZXR1cm4gMDsKKyAgfQorICBteSAkbW9kZSA9IChzdGF0KCIkZm5hbWUiKSlbMl07CisgIGlmICgkbW9kZSkgeyBteSAkcmVzcCA9IGNobW9kICRtb2RlLCAiJHRuYW1lIjsgfQorCisgIG15ICRsaW5lICAgPSAiIjsKKyAgbXkgQHRvdXQgID0gKCk7CisgIG15ICRyZXR2YWwgPSAxOworCisgIHdoaWxlICggJGxpbmUgPSBzaGlmdCBAZnJvbWZpbGUgKSB7CisgICAgIyBjaGVjayBmb3IgYW55IGlmZGVmIHN0YXRlIGNoYW5nZXMKKwlpZiAoICEgY2hlY2tpZmRlZigkVEYsICRsaW5lLCAkZm5hbWUpICkgeworICAgICAgJEZGLT5jbG9zZSgpOworICAgICAgJFRGLT5jbG9zZSgpOworICAgICAgZGllICJFcnJvcjogdGFnIGVycm9yIGluIGZpbGUgXCckZm5hbWVcJywgZXhpdGluZ1xuIjsKKyAgICB9CisKKyAgICBpZiAoICRjYW53cml0ZSApIHsKKwkgIHByaW50ICRURiAiJGxpbmUiOworCX0KKwllbHNlIHsKKwkgIHByaW50ICJJbmZvOiBub3QgY29weWluZzogJGZuYW1lOiAkbGluZSIgaWYgKCBleGlzdHMgJG9wdHN7dn0gKTsKKyAgICB9CisKKyAgfQorCisgIGlmICghICRjYW53cml0ZSkgeworICAgICAgcHJpbnQgIkVuZCBvZiAkZm5hbWUgcmVhY2hlZCBhbmQgd2UncmUgbm90IHJlc2V0IGludG8gJ2NhbndyaXRlJyBzdGF0ZVxuIjsKKyAgfQorICAkVEYtPmNsb3NlKCk7CisKKyAgcmV0dXJuICRyZXR2YWw7Cit9ICMgcGFyc2VmaWxlCisKKworIyBub3RlLCBmcm9tZGlyIHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiBjaGVja2VkIHRvIGV4aXN0IGFuZCBiZSBhCisjIGRpcmVjdG9yeQorc3ViIGxvYWRfbWluYW1hbF9pZmRlZnMgeworICAgIG15IEBmaWxlbGlzdCA9ICgpOworICAgIG15ICRNRjsKKyAgICAKKyAgICBpZiAoICEob3BlbigkTUYsICI8ICRmcm9tZGlyLyRtaW5pbWFsX2luY2x1ZGVfcGF0aCIpKSApIHsKKyAgICAgICAgZGllICJVbmFibGUgdG8gb3BlbiBtYWluIG1pbmltYWwgZmVhdHVyZSBmaWxlOiAnJGZyb21kaXIvJG1pbmltYWxfaW5jbHVkZV9wYXRoJ1xuIjsKKyAgICB9CisgICAgbXkgJGxpbmU7CisgICAgIyBza2lwIHByZWNlZGluZyBsaW5lcworICAgIHdoaWxlICggKCRsaW5lID0gPCRNRj4pICYmCisgICAgICAgICAgICAoJGxpbmUgIX4gL14jZWxzZS4qTkVUU05NUF9GRUFUVVJFX0NIRUNLSU5HLyApICkgeworICAgIH0KKyAgICAjIGdyYWIgdGhlIGZldGF1cmUgLmggZmlsZXMKKyAgICB3aGlsZSAoICgkbGluZSA9IDwkTUY+KSAmJgorICAgICAgICAgICAgKCRsaW5lICF+IC9eI2VuZGlmLipORVRfU05NUF9GRUFUVVJFX0NIRUNLSU5HLykgKSB7CisgICAgICAgIGlmICgkbGluZSA9fiAvaW5jbHVkZS4qPCguKi5oKT4vKSB7CisgICAgICAgICAgICBwdXNoIEBmaWxlbGlzdCwgJDE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBjbG9zZSgkTUYpOworCisgICAgd2hpbGUgKG15ICRmbmFtZSA9IHNoaWZ0IEBmaWxlbGlzdCkgeworICAgICAgICBpZiAoICEoIC1lICIkZnJvbWRpci9pbmNsdWRlLyRmbmFtZSIgKSApICB7CisgICAgICAgICAgICBwcmludCAiV2FybjogZmVhdHVyZSBmaWxlIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZzogJyRmcm9tZGlyL2luY2x1ZGUvJGZuYW1lJyI7CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisgICAgICAgIGlmICggIShvcGVuKCRNRiwgIjwgJGZyb21kaXIvaW5jbHVkZS8kZm5hbWUiKSkgKSB7CisgICAgICAgICAgICBkaWUgIlVuYWJsZSB0byBvcGVuIG1pbmltYWwgZmVhdHVyZSBmaWxlOiAnJGZyb21kaXIvaW5jbHVkZS8kZm5hbWUnXG4iOworICAgICAgICB9CisgICAgICAgIHdoaWxlICggKCRsaW5lID0gPCRNRj4pICkgeworICAgICAgICAgICAgaWYgKCAkbGluZSA9fiAvXiNkZWZpbmUuKihORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFW14gXSspIC8gKSB7CisgICAgICAgICAgICAgICAgJHRoYXNoeyIkMSJ9ID0gJFNUX09GRjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjbG9zZSgkTUYpOworICAgIH0KKyAgICAgICAgCit9ICMgbG9hZF9taW5hbWFsX2lmZGVmcworCisKKworCmRpZmYgLS1naXQgYS9sb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0cyBiL2xvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlY2Q2NTQKLS0tIC9kZXYvbnVsbAorKysgYi9sb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0cwpAQCAtMCwwICsxLDM1OSBAQAorIyEvdXNyL2Jpbi9wZXJsCisKK3VzZSBzdHJpY3Q7Cit1c2UgRGF0YTo6RHVtcGVyOwordXNlIEdldG9wdDo6U3RkOwordXNlIElPOjpGaWxlOworb3VyICVvcHRzID0gKGQgPT4gJ3NpemUtdGVzdHMnKTsKKworIyBkZWZhdWx0IGFyZ3VtZW50cyBnbyBoZXJlCitteSBAc2V0cyA9CisgICAgKHsKKwkid2l0aC1kZWZhdWx0cyIgPT4gJycsCisgICAgIH0pOworCitteSAlYmFzZV9hcmdzID0gJXskc2V0c1swXX07CitteSAoJGJhc2VuYW1lLCAkYmFzZW51bSk7CisKK2dldG9wdHMoJ3Q6aGxjRDpuajpvOmViOlQnLCBcJW9wdHMpIHx8IHVzYWdlKCk7CisKKyRvcHRzeydqJ30gPSAiLWokb3B0c3tqfSIgaWYgKGV4aXN0cygkb3B0c3snaid9KSk7CisKK3VzYWdlKCkgaWYgKCRvcHRzeydoJ30pOworCitteSBAYXJndW1lbnRzZXRzID0KKyAgICAoCisgICAgIHsKKwkgdGl0bGUgPT4gJ3NlY3VyaXR5LXR5cGVzJywKKwkgYXJndW1lbnRzID0+CisJIHsKKwkgICAgIHVzbSA9PiB7CisJCSAnd2l0aC1zZWN1cml0eS1tb2R1bGVzJyA9PiAndXNtJywKKwkgICAgIH0sCisJICAgICBkdGxzYW5kdGxzID0+IHsKKwkJICd3aXRoLXNlY3VyaXR5LW1vZHVsZXMnICAgICA9PiAndHNtJywKKwkJICd3aXRoLW91dC1zZWN1cml0eS1tb2R1bGVzJyA9PiAndXNtJywKKwkJICd3aXRoLXRyYW5zcG9ydHMnICAgICAgICAgICA9PiAnRFRMU1VEUCBUTFNUQ1AnLAorCQkgJ3dpdGgtbWliLW1vZHVsZXMnICAgICAgICAgID0+ICd0bHN0bS1taWIgdHNtLW1pYicKKwkgICAgIH0sCisJICAgICB1c21hbmRkdGxzYW5kdGxzID0+IHsKKwkJICd3aXRoLXNlY3VyaXR5LW1vZHVsZXMnICAgICA9PiAndHNtIHVzbScsCisJCSAnd2l0aC10cmFuc3BvcnRzJyAgICAgICAgICAgPT4gJ0RUTFNVRFAgVExTVENQJywKKwkJICd3aXRoLW1pYi1tb2R1bGVzJyAgICAgICAgICA9PiAndGxzdG0tbWliIHRzbS1taWInCisJICAgICB9CisJIH0KKyAgICAgfSwKKyAgICAgeworCSB0aXRsZSA9PiAnbWluaW1hbGlzdCcsCisJIGFyZ3VtZW50cyA9PgorCSB7IAorCSAgICAgbWluaW1hbCA9PiB7CisJCSAnZW5hYmxlLW1pbmltYWxpc3QnICAgID0+ICcnLAorCSAgICAgfSwKKwkgICAgICdub3QtbWluaW1hbCcgPT4geworCSAgICAgfQorCSB9CisgICAgIH0sCisgICAgIHsKKwkgdGl0bGUgPT4gJ21pYi1sb2FkaW5nJywKKwkgYXJndW1lbnRzID0+CisJIHsgCisJICAgICAnd2l0aG91dC1taWItbG9hZGluZycgPT4geworCQkgJ2Rpc2FibGUtbWliLWxvYWRpbmcnICAgID0+ICcnLAorCSAgICAgfSwKKwkgICAgICd3aXRoLW1pYi1sb2FkaW5nJyA9PiB7CisJICAgICB9CisJIH0KKyAgICAgfSwKKyAgICAgeworCSB0aXRsZSA9PiAnZGVidWdnaW5nJywKKwkgYXJndW1lbnRzID0+CisJIHsgCisJICAgICAnd2l0aG91dC1kZWJ1Z2dpbmcnID0+IHsKKwkJICdkaXNhYmxlLWRlYnVnZ2luZycgICAgPT4gJycsCisJICAgICB9LAorCSAgICAgJ3dpdGgtZGVidWdnaW5nJyA9PiB7CisJICAgICB9CisJIH0KKyAgICAgfSwKKyAgICAgeworCSB0aXRsZSA9PiAnbG9nZ2luZycsCisJIGFyZ3VtZW50cyA9PgorCSB7IAorCSAgICAgJ3dpdGhvdXQtbG9nZ2luZycgPT4geworCQkgJ3dpdGgtb3V0LWZlYXR1cmVzJyAgICA9PiAnbG9nZ2luZycsCisJICAgICB9LAorCSAgICAgJ3dpdGgtbG9nZ2luZycgPT4geworCSAgICAgfQorCSB9CisgICAgIH0sCisgICAgIHsKKwkgdGl0bGUgPT4gJ2FnZW50LW1pYnMnLAorCSBhcmd1bWVudHMgPT4KKwkgeyAKKwkgICAgICdmdWxsLWFnZW50JyA9PiB7CisJICAgICB9LAorCSAgICAgJ21pbmktYWdlbnQnID0+IHsKKwkJICdlbmFibGUtbWluaS1hZ2VudCcgPT4gJycsCisJICAgICB9CisJIH0KKyAgICAgfSwKKyAgICAgeworCSB0aXRsZSA9PiAncHJvdG9jb2wtc3VwcG9ydCcsCisJIGFyZ3VtZW50cyA9PgorCSB7CisJICAgICAnZXZlcnl0aGluZycgPT4geworCSAgICAgfSwKKwkgICAgICdyZWFkLW9ubHknID0+IHsKKwkJICdlbmFibGUtcmVhZC1vbmx5JyA9PiAnJywKKwkgICAgIH0sCisJICAgICAnbm90aWZ5LW9ubHknID0+IHsKKwkJICdlbmFibGUtbm90aWZ5LW9ubHknID0+ICcnLAorCSAgICAgfQorCSB9CisgICAgIH0sCisgICAgIHsKKwkgdGl0bGUgPT4gJ3BlcmwnLAorCSBhcmd1bWVudHMgPT4KKwkgeyAKKwkgICAgICd3aXRob3V0LXBlcmwtbW9kdWxlcycgPT4geworCQkgJ3dpdGhvdXQtcGVybC1tb2R1bGVzJyAgICA9PiAnJywKKwkJICdkaXNhYmxlLWVtYmVkZGVkLXBlcmwnID0+ICcnLAorCSAgICAgfSwKKwkgICAgICd3aXRoLXBlcmwtbm8tZW1iZWRkaW5nJyA9PiB7CisJCSAnd2l0aC1wZXJsLW1vZHVsZXMnICAgID0+ICcnLAorCQkgJ2Rpc2FibGUtZW1iZWRkZWQtcGVybCcgPT4gJycsCisJICAgICB9LAorCSAgICAgJ3dpdGgtcGVybC1hbmQtZW1iZWRkaW5nJyA9PiB7CisJCSAnd2l0aC1wZXJsLW1vZHVsZXMnICAgID0+ICcnLAorCQkgJ2VuYWJsZS1lbWJlZGRlZC1wZXJsJyA9PiAnJywKKwkgICAgIH0KKwkgfQorICAgICB9LAorICAgICk7CisKKyMgbWFwIHRoZXNlIHRvIGEgcmVmZXJlbmNhYmxlIGxvb2t1cCBoYXNoCitteSAlYXJndW1lbnRzZXRzOworZm9yZWFjaCBteSAkc2V0IChAYXJndW1lbnRzZXRzKSB7CisgICAgJGFyZ3VtZW50c2V0c3skc2V0LT57J3RpdGxlJ319ID0gJHNldDsKK30KKworaWYgKCRvcHRzeydsJ30pIHsKKyAgICBwcmludCAiVHlwZXMgYXZhaWxhYmxlOlxuIjsKKyAgICBwcmludGYoIiAgJS00MC40MHMgJXNcbiIsICJUZXN0IFRpdGxlIiwgIk51bWJlciBvZiBzdWJ0ZXN0cyIpOworICAgIHByaW50ZigiICAlLTQwLjQwcyAlc1xuIiwgIi0iIHggMzksICItIiB4IGxlbmd0aCgiTnVtYmVyIG9mIHN1YnRlc3RzIikpOworICAgIGZvcmVhY2ggbXkgJHR5cGUgKEBhcmd1bWVudHNldHMpIHsKKwlteSBAa2V5cyA9IGtleXMoJXskdHlwZS0+eydhcmd1bWVudHMnfX0pOworCXByaW50ZigiICAlLTQwLjQwcyAlc1xuIiwgJHR5cGUtPnsndGl0bGUnfSwgJCNrZXlzKzEpOworICAgIH0KKyAgICBleGl0OworfQorCitteSAldHlwZXM7CitpZiAoJG9wdHN7J3QnfSkgeworICAgIG15IEB0eXBlcyA9IHNwbGl0KC8sXHMqLywgJG9wdHN7J3QnfSk7CisgICAgZm9yZWFjaCBteSAkdHlwZSAoQHR5cGVzKSB7CisJJHR5cGVzeyR0eXBlfSA9IDE7CisgICAgfQorfQorCitpZiAoJG9wdHN7J2InfSkgeworICAgICMgdXNlIHRoaXMgc2V0IGFzIHRoZSBiYXNlIGRlZmF1bHQgc2V0IG9mIGFyZ3VtZW50cworICAgICgkYmFzZW5hbWUsICRiYXNlbnVtKSA9ICgkb3B0c3snYid9ID1+IC8oLiopOihcZCspLyk7CisgICAgaWYgKCFleGlzdHMoJGFyZ3VtZW50c2V0c3skYmFzZW5hbWV9KSkgeworCXByaW50ZiBTVERFUlIgImZhaWxlZCB0byBmaW5kIHNldCBmb3IgLWIgYXJndW1lbnQ6ICVzXG4iLCAkYmFzZW5hbWU7CisJZXhpdCgxKTsKKyAgICB9CisgICAgQHNldHMgPSBhZGRfaW5fZmxhZ3MoJGFyZ3VtZW50c2V0c3skYmFzZW5hbWV9LCBcJWJhc2VfYXJncywgKCkpOworICAgIEBzZXRzID0gQHNldHNbJGJhc2VudW1dOworICAgICViYXNlX2FyZ3MgPSAleyRzZXRzWzBdfTsKK30KKworZm9yZWFjaCBteSAkc2V0IChAYXJndW1lbnRzZXRzKSB7CisgICAgaWYgKCEkb3B0c3sndCd9IHx8IGV4aXN0cygkdHlwZXN7JHNldC0+eyd0aXRsZSd9fSkpIHsKKyAgICAgICAgaWYgKCRiYXNlbmFtZSAmJiAkc2V0LT57J3RpdGxlJ30gZXEgJGJhc2VuYW1lKSB7CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisJQHNldHMgPSBhZGRfaW5fZmxhZ3MoJHNldCwgXCViYXNlX2FyZ3MsIEBzZXRzKTsKKyAgICB9Cit9CisKK2lmICgkb3B0c3snYyd9KSB7CisgICAgIyBwcmludCB0aGUgY29uZmlndXJlIGZsYWdzCisgICAgZm9yZWFjaCBteSAkc2V0IChAc2V0cykgeworCXByaW50ICIkc2V0LT57J3RpdGxlJ306XG4iOworCXByaW50ICIgIiwgZ2VuZXJhdGVfY29uZmlndXJlX2ZsYWdzKCRzZXQpLCAiXG4iOworICAgIH0KKyAgICBleGl0OworfQorCitteSAkc3VtbWFyeWZpbGU7CitpZiAoJG9wdHN7J28nfSAmJiAhJG9wdHN7J24nfSkgeworICAgICRzdW1tYXJ5ZmlsZSA9IG5ldyBJTzo6RmlsZTsKKyAgICAkc3VtbWFyeWZpbGUtPm9wZW4oIj4kb3B0c3tvfSIpOworfQorCitteSAkY291bnQgPSAwOworZm9yZWFjaCBteSAkc2V0IChAc2V0cykgeworICAgICRjb3VudCsrOworICAgIGJ1aWxkX3NldCgkY291bnQsICRzZXQpOworfQorCitzdWIgYWRkX2luX2ZsYWdzIHsKKyAgICBteSAoJGFyZ3VtZW50c2V0LCAkYmFzZV9mbGFncywgQGN1cnJlbnRfZmxhZ3MpID0gQF87CisKKyAgICBteSBAbmV3X2ZsYWdzOworCisgICAgIyBkbyBhIGxpbmVhciBzZWFyY2ggb2YgdGhlIG9wdGlvbnMKKyAgICBpZiAoISAkb3B0c3snZSd9KSB7CisJQG5ld19mbGFncyA9IEBjdXJyZW50X2ZsYWdzOworCWZvcmVhY2ggbXkgJG5ld2FyZ3MgKGtleXMoJXskYXJndW1lbnRzZXQtPnsnYXJndW1lbnRzJ319KSkgeworCSAgICBteSAlZmxhZ3MgPSAlJGJhc2VfZmxhZ3M7CisKKwkgICAgJGZsYWdzeyd0aXRsZSd9ID0gIiRmbGFnc3sndGl0bGUnfTokbmV3YXJncyI7CisKKwkgICAgZm9yZWFjaCBteSAkbmV3ZmxhZyAoa2V5cygleyRhcmd1bWVudHNldC0+eydhcmd1bWVudHMnfXskbmV3YXJnc319KSkgeworCisJCSRmbGFnc3skbmV3ZmxhZ30gLj0gIiAkYXJndW1lbnRzZXQtPnsnYXJndW1lbnRzJ317JG5ld2FyZ3N9eyRuZXdmbGFnfSI7CisJICAgIH0KKwkgICAgcHVzaCBAbmV3X2ZsYWdzLCBcJWZsYWdzOworCX0KKwlyZXR1cm4gQG5ld19mbGFnczsKKyAgICB9CisKKyAgICAjIG9yIGFuIGV4cG9uZW50aWFsIHNlYXJjaAorICAgIGZvcmVhY2ggbXkgJGZsYWdzIChAY3VycmVudF9mbGFncykgeworCWZvcmVhY2ggbXkgJG5ld2FyZ3MgKGtleXMoJXskYXJndW1lbnRzZXQtPnsnYXJndW1lbnRzJ319KSkgeworCSAgICBteSAlZmxhZ3MgPSAleyRmbGFnc307ICAjIGNvcHkgdGhlIGV4aXN0aW5nIGhhc2gtc2V0IG9mIGZsYWdzCisJICAgIAorCSAgICBpZiAoZXhpc3RzKCRmbGFnc3sndGl0bGUnfSkpIHsKKwkJJGZsYWdzeyd0aXRsZSd9IC49ICIsICRuZXdhcmdzIjsKKwkgICAgfSBlbHNlIHsKKwkJJGZsYWdzeyd0aXRsZSd9IC49ICIkbmV3YXJncyI7CisJICAgIH0KKwkgICAgZm9yZWFjaCBteSAkbmV3ZmxhZyAoa2V5cygleyRhcmd1bWVudHNldC0+eydhcmd1bWVudHMnfXskbmV3YXJnc319KSkgeworCisJCSRmbGFnc3skbmV3ZmxhZ30gLj0gIiAkYXJndW1lbnRzZXQtPnsnYXJndW1lbnRzJ317JG5ld2FyZ3N9eyRuZXdmbGFnfSI7CisJICAgIH0KKworCSAgICBwdXNoIEBuZXdfZmxhZ3MsIFwlZmxhZ3M7CisJfQorICAgIH0KKworICAgIHJldHVybiBAbmV3X2ZsYWdzOworfQorCitzdWIgZ2VuZXJhdGVfY29uZmlndXJlX2ZsYWdzIHsKKyAgICBteSAoJGFyZ3VtZW50cykgPSBAXzsKKyAgICBteSAkbGluZSA9ICIiOworICAgIGZvcmVhY2ggbXkgJGFyZyAoa2V5cyglJGFyZ3VtZW50cykpIHsKKwluZXh0IGlmICgkYXJnIGVxICd0aXRsZScpOworCWlmICgkYXJndW1lbnRzLT57JGFyZ30gPX4gL15ccyokLykgeworCSAgICAkbGluZSAuPSAiIC0tJGFyZyI7CisJfSBlbHNlIHsKKwkgICAgJGxpbmUgLj0gIiAtLSRhcmc9XCIkYXJndW1lbnRzLT57JGFyZ31cIiI7CisJfQorICAgIH0KKyAgICByZXR1cm4gJGxpbmU7Cit9CisKK3N1YiBidWlsZF9zZXQgeworICAgIG15ICgkbnVtLCAkYXJndW1lbnRzKSA9IEBfOworCisgICAgJG51bSA9IHNwcmludGYoIiUwM2QiLCAkbnVtKTsKKworICAgIG15ICRmaWxlOworCisgICAgaWYgKCEkb3B0c3snbid9KSB7CisJbWtkaXIgJG9wdHN7J2QnfSBpZiAoISAtZCAkb3B0c3snZCd9KTsKKwlkaWUgImZhaWxlZCB0byBjcmVhdGUgdGhlICRvcHRzeydkJ30gZGlyZWN0b3J5IiBpZiAoISAtZCAkb3B0c3snZCd9KTsKKworCSRmaWxlID0gbmV3IElPOjpGaWxlOworCSRmaWxlLT5vcGVuKCI+JG9wdHN7J2QnfS8kbnVtLTAtY21kLXN1bW1hcnkiKTsKKwkkZmlsZS0+cHJpbnQoIkNyZWF0aW5nIG91dHB1dCBmb3I6ICRhcmd1bWVudHMtPnsndGl0bGUnfVxuIik7CisgICAgfQorCisgICAgcHJpbnQgIj09PT09PT09PT09PT09PT09PT09ICRhcmd1bWVudHMtPnsndGl0bGUnfVxuIjsKKworCisgICAgU3lzdGVtICgkZmlsZSwgJG51bSwgIjEtZGlzdGNsZWFuIiwgIm1ha2UgZGlzdGNsZWFuIik7CisgICAgU3lzdGVtICgkZmlsZSwgJG51bSwgIjItY29uZmlndXJlIiwKKwkgICAgIi4vY29uZmlndXJlICIgLiBnZW5lcmF0ZV9jb25maWd1cmVfZmxhZ3MoJGFyZ3VtZW50cykpOworICAgIFN5c3RlbSAoJGZpbGUsICRudW0sICIzLWZlYXR1cmVzIiwgIm1ha2UgZmVhdHVyZXMiKTsKKyAgICBTeXN0ZW0gKCRmaWxlLCAkbnVtLCAiNC1tYWtlIiwgIm1ha2UgJG9wdHN7J2onfSIpOworICAgIFN5c3RlbSAoJGZpbGUsICRudW0sICI1LXVudXNlZC1jb2RlIiwgInBlcmwgbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlIC1nIik7CisgICAgU3lzdGVtICgkZmlsZSwgJG51bSwgIjYtdGVzdGluZyIsICJtYWtlIC1DIHRlc3RpbmcgdGVzdCIpIGlmICgkb3B0c3snVCd9KTsKKworICAgIGlmICghJG9wdHN7J24nfSkgeworCWFuYWx5emVfc2l6ZSgkYXJndW1lbnRzLT57J3RpdGxlJ30sICIkb3B0c3snZCd9LyRudW0tOS1yZXN1bHRzIik7CisgICAgfQorfQorCitzdWIgYW5hbHl6ZV9zaXplIHsKKyAgICBteSAoJHRpdGxlLCAkZmlsZW5hbWUpID0gQF87CisKKyAgICBteSAkb3V0ZmlsZSA9IG5ldyBJTzo6RmlsZTsKKyAgICAkb3V0ZmlsZS0+b3BlbigiPiRmaWxlbmFtZSIpOworCisgICAgcHJpbnQgIlJlc3VsdHMgZm9yOiAkdGl0bGVcbiI7CisgICAgcHJpbnRmICRvdXRmaWxlICJSZXN1bHRzIGZvcjogJHRpdGxlXG4iOworICAgIHByaW50ZiAoIiUtNTAuNTBzICUxMHNcbiIsICItIiB4IDQ5LCAiLSIgeCAxMCk7CisgICAgcHJpbnRmICRvdXRmaWxlICgiJS01MC41MHMgJTEwc1xuIiwgIi0iIHggNDksICItIiB4IDEwKTsKKworICAgIG15ICR0b3RhbHNpemUgPSAwOworICAgIGZvcmVhY2ggbXkgJGJ1aWxkZmlsZSAoZ2xvYigic25tcGxpYi8ubGlicy9saWIqLnNvLiouMC4wIiksCisJCQkgICBnbG9iKCJhZ2VudC8ubGlicy9saWIqLnNvLiouMC4wIiksCisJCQkgICAiYWdlbnQvLmxpYnMvc25tcGQiKSB7CisKKwlteSBAaW5mbyA9IHN0YXQoJGJ1aWxkZmlsZSk7CisJcHJpbnRmICRvdXRmaWxlICgiJS01MC41MHMgJTEwc1xuIiwgJGJ1aWxkZmlsZSwgJGluZm9bN10pOworCXByaW50ZigiJS01MC41MHMgJTEwc1xuIiwgJGJ1aWxkZmlsZSwgJGluZm9bN10pOworCSR0b3RhbHNpemUgKz0gJGluZm9bN107CisgICAgfQorICAgIHByaW50ZiAkb3V0ZmlsZSAoIiUtNTAuNTBzICUxMHNcbiIsICItIiB4IDQ5LCAiLSIgeCAxMCk7CisgICAgcHJpbnRmICRvdXRmaWxlICgiJS01MC41MHMgJTEwcyBieXRlc1xuIiwgIlRPVEFMIiwgJHRvdGFsc2l6ZSk7CisKKyAgICBwcmludGYoIiUtNTAuNTBzICUxMHNcbiIsICItIiB4IDQ5LCAiLSIgeCAxMCk7CisgICAgcHJpbnRmKCIlLTUwLjUwcyAlMTBzIGJ5dGVzXG4iLCAiVE9UQUwiLCAkdG90YWxzaXplKTsKKworICAgIGlmIChkZWZpbmVkKCRzdW1tYXJ5ZmlsZSkpIHsKKwlteSAkcmVzdHJpY3RlZF90aXRsZSA9ICR0aXRsZTsKKwkkcmVzdHJpY3RlZF90aXRsZSA9fiBzL1teYS16QS1aXS9fL2c7CisJcHJpbnRmICRzdW1tYXJ5ZmlsZSAiJTEwcyAlcyBcbiIsICR0b3RhbHNpemUsICR0aXRsZTsKKyAgICB9CisKKyAgICByZXR1cm4gJHRvdGFsc2l6ZTsKK30KKworc3ViIHVzYWdlIHsKKyAgICBwcmludCAiVXNhZ2U6ICQwIFtGTEFHU11cblxuIjsKKyAgICBwcmludCAiRkxBR1M6XG4iOworICAgIHByaW50ICIgIC1oXHRcdGhlbHBcbiI7CisgICAgcHJpbnQgIiAgLXQgVFlQRVNcdFNlbGVjdCB0eXBlcyB0byBhbmFseXplIChkZWZhdWx0ID0gYWxsKVxuIjsKKyAgICBwcmludCAiICAtbFx0XHRMaXN0IGF2YWlsYWJsZSB0eXBlc1xuIjsKKyAgICBwcmludCAiICAtY1x0XHRQcmludCB0aGUgY29uZmlndXJhdGlvbiBmbGFncyB0aGF0IHdvdWxkIGJlIHVzZWRcbiI7CisgICAgcHJpbnQgIiAgLUQgRElSXHRTYXZlIGRhdGEgcmVzdWx0cyB0byB0aGlzIGRpcmVjdG9yeVxuIjsKKyAgICBwcmludCAiICAtbyBGSUxFXHRTYXZlIGEgY29tcGxldGUgc3VtbWFyeSBjaGFydCB0byBGSUxFXG4iOyAKKyAgICBwcmludCAiICAtblx0XHREcnkgcnVuIC0tIG9ubHkgc2hvdyB0aGUgY29tbWFuZHMgdG8gZXhlY3V0ZVxuIjsKKyAgICBwcmludCAiICAtaiBOVU1cdEV4ZWN1dGUgbWFrZSB3aXRoIHBhcmFsbGVsIGJ1aWxkaW5nICgtak5VTSlcbiI7CisgICAgcHJpbnQgIiAgLWVcdFx0VXNlIGV4cG9uZW50aWFsIGV4cGFuc2lvbiAoYWxsIGNvbWJvcykgb2YgdGhlIHJlcXVlc3RlZCBvcHRpb25zXG4iOworICAgIHByaW50ICIgIC1iIE5BTUU6TlVNXHRVc2UgTkFNRSBhbmQgdGhlIE5VTSd0aCBzZXQgYXMgdGhlIGJhc2UgYXJndW1lbnRzIHRvIHN0YXJ0IGZyb21cbiI7CisgICAgcHJpbnQgIiAgLVRcdFx0UnVuICdtYWtlIHRlc3QnIGF0IGVhY2ggc3RlcCBhcyB3ZWxsXG4iOworICAgIGV4aXQ7Cit9CisKK3N1YiBTeXN0ZW0geworICAgIG15ICRmaWxlICA9IHNoaWZ0OworICAgIG15ICRudW0gICA9IHNoaWZ0OworICAgIG15ICR0aXRsZSA9IHNoaWZ0OworICAgIG15ICRwaXBlID0gIiAyPiYxIHwgdGVlICRvcHRzeydkJ30vJG51bS0kdGl0bGUub3V0XG4iOworCisgICAgcHJpbnQgIiMjIyAiLCBqb2luKCIgIiwgQF8pLCAkcGlwZTsKKyAgICBpZiAoISRvcHRzeyduJ30gJiYgJGZpbGUpIHsKKwlwcmludCAkZmlsZSAiIyMjICIsIGpvaW4oIiAiLCBAXyksICJcbiI7CisgICAgfQorCisgICAgaWYgKCEkb3B0c3snbid9KSB7CisJc3lzdGVtKGpvaW4oIiAiLCBAXykgLiAkcGlwZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbG9jYWwvbmV0LXNubXAtY2VydCBiL2xvY2FsL25ldC1zbm1wLWNlcnQKaW5kZXggODUyYTQ3Zi4uYTQ1ZGM1NyAxMDA3NTUKLS0tIGEvbG9jYWwvbmV0LXNubXAtY2VydAorKysgYi9sb2NhbC9uZXQtc25tcC1jZXJ0CkBAIC0xNTE5LDcgKzE1MTksNyBAQAogCiAgICMgRXhpc3Rpbmcgb3BlbnNzbC5jb25mIHRtcGwgd2lsbCBiZSBwcmVzZXJ2ZWQKICAgaWYgKC1mICRzc2xfY2ZnX2luKSB7Ci0gICAgTmV0U05NUDo6Q2VydDo6ZHdhcm4oIk9wZW5TU0wgdGVtcGxhdGUgZXhpc3RzOiBwcmVzZXJ2aW5nLi4uIiwgJG9wdHMpOworICAgIE5ldFNOTVA6OkNlcnQ6OmR3YXJuKCJPcGVuU1NMIHRlbXBsYXRlIGV4aXN0cyAoJHNzbF9jZmdfaW4pOiBwcmVzZXJ2aW5nLi4uIiwgJG9wdHMpOwogICB9CiAKICAgaWYgKG5vdCAtZiAkc3NsX2NmZ19pbikgewpkaWZmIC0tZ2l0IGEvbG9jYWwvc25tcGNvbmYgYi9sb2NhbC9zbm1wY29uZi5pbgpzaW1pbGFyaXR5IGluZGV4IDk5JQpyZW5hbWUgZnJvbSBsb2NhbC9zbm1wY29uZgpyZW5hbWUgdG8gbG9jYWwvc25tcGNvbmYuaW4KaW5kZXggMzdhNTEzNi4uYmZmODAyNSAxMDA3NTUKLS0tIGEvbG9jYWwvc25tcGNvbmYKKysrIGIvbG9jYWwvc25tcGNvbmYuaW4KQEAgLTkyLDEzICs5Miw5IEBACiB9CiAKICMKLSMgRXhwYW5kIHRoZSBzZWFyY2ggcGF0aCBpbiBjYXNlIGl0IGNvbnRhaW5zIG11bHRpcGxlIGRpcmVjdG9yaWVzCi0jIHNlcGFyYXRlZCBieSA6IChVbml4KSBvciA7IChXaW4zMikKKyMgRXhwYW5kIHRoZSBzZWFyY2ggcGF0aCBpbiBjYXNlIGl0IGNvbnRhaW5zIG11bHRpcGxlIGRpcmVjdG9yaWVzLgogIwotbXkgJEVOVl9TRVBBUkFUT1IgPSAnOic7Ci1pZiAoJF5PIGVxICdNU1dpbjMyJykgewotICAkRU5WX1NFUEFSQVRPUiA9ICc7JzsKLX0KK215ICRFTlZfU0VQQVJBVE9SID0gJ0BFTlZfU0VQQVJBVE9SQCc7CiBteSBAc2VhcmNocGF0aCA9IHNwbGl0KC8kRU5WX1NFUEFSQVRPUi8sICRjb25mcGF0aCk7CiBwdXNoIEBzZWFyY2hwYXRoLCAiL3Vzci9sb2NhbC9ldGMvc25tcCI7CiBwdXNoIEBzZWFyY2hwYXRoLCAiLiI7CmRpZmYgLS1naXQgYS9sdG1haW4uc2ggYi9sdG1haW4uc2gKaW5kZXggMWUzYjE0Ni4uZWQxODE0ZiAxMDA3NTUKLS0tIGEvbHRtYWluLnNoCisrKyBiL2x0bWFpbi5zaApAQCAtMSw5ICsxLDkgQEAKLSMgR2VuZXJhdGVkIGZyb20gbHRtYWluLm00c2guCiAKLSMgbHRtYWluLnNoIChHTlUgbGlidG9vbCkgMi4yLjYKKyMgbGlidG9vbCAoR05VIGxpYnRvb2wpIDIuNAogIyBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdrZWl0IDxnb3JkQGdudS5haS5taXQuZWR1PiwgMTk5NgogCi0jIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsCisjIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAjIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PCiAjIHdhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgogCkBAIC0zMiw1MCArMzIsNTYgQEAKICMKICMgUHJvdmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCiAjCi0jICAgICAtLWNvbmZpZyAgICAgICAgICAgICBzaG93IGFsbCBjb25maWd1cmF0aW9uIHZhcmlhYmxlcwotIyAgICAgLS1kZWJ1ZyAgICAgICAgICAgICAgZW5hYmxlIHZlcmJvc2Ugc2hlbGwgdHJhY2luZwotIyAtbiwgLS1kcnktcnVuICAgICAgICAgICAgZGlzcGxheSBjb21tYW5kcyB3aXRob3V0IG1vZGlmeWluZyBhbnkgZmlsZXMKLSMgICAgIC0tZmVhdHVyZXMgICAgICAgICAgIGRpc3BsYXkgYmFzaWMgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAotIyAgICAgLS1tb2RlPU1PREUgICAgICAgICAgdXNlIG9wZXJhdGlvbiBtb2RlIE1PREUKLSMgICAgIC0tcHJlc2VydmUtZHVwLWRlcHMgIGRvbid0IHJlbW92ZSBkdXBsaWNhdGUgZGVwZW5kZW5jeSBsaWJyYXJpZXMKLSMgICAgIC0tcXVpZXQsIC0tc2lsZW50ICAgIGRvbid0IHByaW50IGluZm9ybWF0aW9uYWwgbWVzc2FnZXMKLSMgICAgIC0tdGFnPVRBRyAgICAgICAgICAgIHVzZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmcm9tIHRhZyBUQUcKLSMgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgIHByaW50IGluZm9ybWF0aW9uYWwgbWVzc2FnZXMgKGRlZmF1bHQpCi0jICAgICAtLXZlcnNpb24gICAgICAgICAgICBwcmludCB2ZXJzaW9uIGluZm9ybWF0aW9uCi0jIC1oLCAtLWhlbHAgICAgICAgICAgICAgICBwcmludCBzaG9ydCBvciBsb25nIGhlbHAgbWVzc2FnZQorIyAgICAgICAtLWNvbmZpZyAgICAgICAgICAgICBzaG93IGFsbCBjb25maWd1cmF0aW9uIHZhcmlhYmxlcworIyAgICAgICAtLWRlYnVnICAgICAgICAgICAgICBlbmFibGUgdmVyYm9zZSBzaGVsbCB0cmFjaW5nCisjICAgLW4sIC0tZHJ5LXJ1biAgICAgICAgICAgIGRpc3BsYXkgY29tbWFuZHMgd2l0aG91dCBtb2RpZnlpbmcgYW55IGZpbGVzCisjICAgICAgIC0tZmVhdHVyZXMgICAgICAgICAgIGRpc3BsYXkgYmFzaWMgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAorIyAgICAgICAtLW1vZGU9TU9ERSAgICAgICAgICB1c2Ugb3BlcmF0aW9uIG1vZGUgTU9ERQorIyAgICAgICAtLXByZXNlcnZlLWR1cC1kZXBzICBkb24ndCByZW1vdmUgZHVwbGljYXRlIGRlcGVuZGVuY3kgbGlicmFyaWVzCisjICAgICAgIC0tcXVpZXQsIC0tc2lsZW50ICAgIGRvbid0IHByaW50IGluZm9ybWF0aW9uYWwgbWVzc2FnZXMKKyMgICAgICAgLS1uby1xdWlldCwgLS1uby1zaWxlbnQKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgaW5mb3JtYXRpb25hbCBtZXNzYWdlcyAoZGVmYXVsdCkKKyMgICAgICAgLS10YWc9VEFHICAgICAgICAgICAgdXNlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZyb20gdGFnIFRBRworIyAgIC12LCAtLXZlcmJvc2UgICAgICAgICAgICBwcmludCBtb3JlIGluZm9ybWF0aW9uYWwgbWVzc2FnZXMgdGhhbiBkZWZhdWx0CisjICAgICAgIC0tbm8tdmVyYm9zZSAgICAgICAgIGRvbid0IHByaW50IHRoZSBleHRyYSBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzCisjICAgICAgIC0tdmVyc2lvbiAgICAgICAgICAgIHByaW50IHZlcnNpb24gaW5mb3JtYXRpb24KKyMgICAtaCwgLS1oZWxwLCAtLWhlbHAtYWxsICAgcHJpbnQgc2hvcnQsIGxvbmcsIG9yIGRldGFpbGVkIGhlbHAgbWVzc2FnZQogIwogIyBNT0RFIG11c3QgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6CiAjCi0jICAgICAgIGNsZWFuICAgICAgICAgICAgICByZW1vdmUgZmlsZXMgZnJvbSB0aGUgYnVpbGQgZGlyZWN0b3J5Ci0jICAgICAgIGNvbXBpbGUgICAgICAgICAgICBjb21waWxlIGEgc291cmNlIGZpbGUgaW50byBhIGxpYnRvb2wgb2JqZWN0Ci0jICAgICAgIGV4ZWN1dGUgICAgICAgICAgICBhdXRvbWF0aWNhbGx5IHNldCBsaWJyYXJ5IHBhdGgsIHRoZW4gcnVuIGEgcHJvZ3JhbQotIyAgICAgICBmaW5pc2ggICAgICAgICAgICAgY29tcGxldGUgdGhlIGluc3RhbGxhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmllcwotIyAgICAgICBpbnN0YWxsICAgICAgICAgICAgaW5zdGFsbCBsaWJyYXJpZXMgb3IgZXhlY3V0YWJsZXMKLSMgICAgICAgbGluayAgICAgICAgICAgICAgIGNyZWF0ZSBhIGxpYnJhcnkgb3IgYW4gZXhlY3V0YWJsZQotIyAgICAgICB1bmluc3RhbGwgICAgICAgICAgcmVtb3ZlIGxpYnJhcmllcyBmcm9tIGFuIGluc3RhbGxlZCBkaXJlY3RvcnkKKyMgICAgICAgICBjbGVhbiAgICAgICAgICAgICAgcmVtb3ZlIGZpbGVzIGZyb20gdGhlIGJ1aWxkIGRpcmVjdG9yeQorIyAgICAgICAgIGNvbXBpbGUgICAgICAgICAgICBjb21waWxlIGEgc291cmNlIGZpbGUgaW50byBhIGxpYnRvb2wgb2JqZWN0CisjICAgICAgICAgZXhlY3V0ZSAgICAgICAgICAgIGF1dG9tYXRpY2FsbHkgc2V0IGxpYnJhcnkgcGF0aCwgdGhlbiBydW4gYSBwcm9ncmFtCisjICAgICAgICAgZmluaXNoICAgICAgICAgICAgIGNvbXBsZXRlIHRoZSBpbnN0YWxsYXRpb24gb2YgbGlidG9vbCBsaWJyYXJpZXMKKyMgICAgICAgICBpbnN0YWxsICAgICAgICAgICAgaW5zdGFsbCBsaWJyYXJpZXMgb3IgZXhlY3V0YWJsZXMKKyMgICAgICAgICBsaW5rICAgICAgICAgICAgICAgY3JlYXRlIGEgbGlicmFyeSBvciBhbiBleGVjdXRhYmxlCisjICAgICAgICAgdW5pbnN0YWxsICAgICAgICAgIHJlbW92ZSBsaWJyYXJpZXMgZnJvbSBhbiBpbnN0YWxsZWQgZGlyZWN0b3J5CiAjCi0jIE1PREUtQVJHUyB2YXJ5IGRlcGVuZGluZyBvbiB0aGUgTU9ERS4KKyMgTU9ERS1BUkdTIHZhcnkgZGVwZW5kaW5nIG9uIHRoZSBNT0RFLiAgV2hlbiBwYXNzZWQgYXMgZmlyc3Qgb3B0aW9uLAorIyBgLS1tb2RlPU1PREUnIG1heSBiZSBhYmJyZXZpYXRlZCBhcyBgTU9ERScgb3IgYSB1bmlxdWUgYWJicmV2aWF0aW9uIG9mIHRoYXQuCiAjIFRyeSBgJHByb2duYW1lIC0taGVscCAtLW1vZGU9TU9ERScgZm9yIGEgbW9yZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiBNT0RFLgogIwogIyBXaGVuIHJlcG9ydGluZyBhIGJ1ZywgcGxlYXNlIGRlc2NyaWJlIGEgdGVzdCBjYXNlIHRvIHJlcHJvZHVjZSBpdCBhbmQKICMgaW5jbHVkZSB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uOgogIwotIyAgICAgICBob3N0LXRyaXBsZXQ6CSRob3N0Ci0jICAgICAgIHNoZWxsOgkJJFNIRUxMCi0jICAgICAgIGNvbXBpbGVyOgkJJExUQ0MKLSMgICAgICAgY29tcGlsZXIgZmxhZ3M6CQkkTFRDRkxBR1MKLSMgICAgICAgbGlua2VyOgkJJExEIChnbnU/ICR3aXRoX2dudV9sZCkKLSMgICAgICAgJHByb2duYW1lOgkJKEdOVSBsaWJ0b29sKSAyLjIuNgotIyAgICAgICBhdXRvbWFrZToJCSRhdXRvbWFrZV92ZXJzaW9uCi0jICAgICAgIGF1dG9jb25mOgkJJGF1dG9jb25mX3ZlcnNpb24KKyMgICAgICAgICBob3N0LXRyaXBsZXQ6CSRob3N0CisjICAgICAgICAgc2hlbGw6CQkkU0hFTEwKKyMgICAgICAgICBjb21waWxlcjoJCSRMVENDCisjICAgICAgICAgY29tcGlsZXIgZmxhZ3M6CQkkTFRDRkxBR1MKKyMgICAgICAgICBsaW5rZXI6CQkkTEQgKGdudT8gJHdpdGhfZ251X2xkKQorIyAgICAgICAgICRwcm9nbmFtZToJKEdOVSBsaWJ0b29sKSAyLjQKKyMgICAgICAgICBhdXRvbWFrZToJJGF1dG9tYWtlX3ZlcnNpb24KKyMgICAgICAgICBhdXRvY29uZjoJJGF1dG9jb25mX3ZlcnNpb24KICMKICMgUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1saWJ0b29sQGdudS5vcmc+LgorIyBHTlUgbGlidG9vbCBob21lIHBhZ2U6IDxodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGlidG9vbC8+LgorIyBHZW5lcmFsIGhlbHAgdXNpbmcgR05VIHNvZnR3YXJlOiA8aHR0cDovL3d3dy5nbnUub3JnL2dldGhlbHAvPi4KIAotUFJPR1JBTT1sdG1haW4uc2gKK1BST0dSQU09bGlidG9vbAogUEFDS0FHRT1saWJ0b29sCi1WRVJTSU9OPTIuMi42CitWRVJTSU9OPTIuNAogVElNRVNUQU1QPSIiCi1wYWNrYWdlX3JldmlzaW9uPTEuMzAxMgorcGFja2FnZV9yZXZpc2lvbj0xLjMyOTMKIAogIyBCZSBCb3VybmUgY29tcGF0aWJsZQogaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCkBAIC05MSwxMCArOTcsMTUgQEAKIEJJTl9TSD14cGc0OyBleHBvcnQgQklOX1NIICMgZm9yIFRydTY0CiBEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCiAKKyMgQSBmdW5jdGlvbiB0aGF0IGlzIHVzZWQgd2hlbiB0aGVyZSBpcyBubyBwcmludCBidWlsdGluIG9yIHByaW50Zi4KK2Z1bmNfZmFsbGJhY2tfZWNobyAoKQoreworICBldmFsICdjYXQgPDxfTFRFQ0hPX0VPRgorJDEKK19MVEVDSE9fRU9GJworfQorCiAjIE5MUyBudWlzYW5jZXM6IFdlIHNhdmUgdGhlIG9sZCB2YWx1ZXMgdG8gcmVzdG9yZSBkdXJpbmcgZXhlY3V0ZSBtb2RlLgotIyBPbmx5IHNldCBMQU5HIGFuZCBMQ19BTEwgdG8gQyBpZiBhbHJlYWR5IHNldC4KLSMgVGhlc2UgbXVzdCBub3QgYmUgc2V0IHVuY29uZGl0aW9uYWxseSBiZWNhdXNlIG5vdCBhbGwgc3lzdGVtcyB1bmRlcnN0YW5kCi0jIGUuZy4gTEFORz1DIChub3RhYmx5IFNDTykuCiBsdF91c2VyX2xvY2FsZT0KIGx0X3NhZmVfbG9jYWxlPQogZm9yIGx0X3ZhciBpbiBMQU5HIExBTkdVQUdFIExDX0FMTCBMQ19DVFlQRSBMQ19DT0xMQVRFIExDX01FU1NBR0VTCkBAIC0xMDcsMjQgKzExOCwzMyBAQAogCSAgbHRfc2FmZV9sb2NhbGU9XCIkbHRfdmFyPUM7IFwkbHRfc2FmZV9sb2NhbGVcIgogCWZpIgogZG9uZQorTENfQUxMPUMKK0xBTkdVQUdFPUMKK2V4cG9ydCBMQU5HVUFHRSBMQ19BTEwKIAogJGx0X3Vuc2V0IENEUEFUSAogCiAKKyMgV29yayBhcm91bmQgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBpc3N1ZSBvbiBJUklYIDYuNS4gT24gSVJJWCA2LjQrLCBzaAorIyBpcyBrc2ggYnV0IHdoZW4gdGhlIHNoZWxsIGlzIGludm9rZWQgYXMgInNoIiBhbmQgdGhlIGN1cnJlbnQgdmFsdWUgb2YKKyMgdGhlIF9YUEcgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IGVxdWFsIHRvIDEgKG9uZSksIHRoZSBzcGVjaWFsCisjIHBvc2l0aW9uYWwgcGFyYW1ldGVyICQwLCB3aXRoaW4gYSBmdW5jdGlvbiBjYWxsLCBpcyB0aGUgbmFtZSBvZiB0aGUKKyMgZnVuY3Rpb24uCitwcm9ncGF0aD0iJDAiCiAKIAogCiA6ICR7Q1A9ImNwIC1mIn0KLTogJHtFQ0hPPSJlY2hvIn0KLTogJHtFR1JFUD0iL3Vzci9iaW4vZ3JlcCAtRSJ9Ci06ICR7RkdSRVA9Ii91c3IvYmluL2dyZXAgLUYifQotOiAke0dSRVA9Ii91c3IvYmluL2dyZXAifQordGVzdCAiJHtFQ0hPK3NldH0iID0gc2V0IHx8IEVDSE89JHthc19lY2hvLSdwcmludGYgJXNcbid9Cis6ICR7RUdSRVA9ImdyZXAgLUUifQorOiAke0ZHUkVQPSJncmVwIC1GIn0KKzogJHtHUkVQPSJncmVwIn0KIDogJHtMTl9TPSJsbiAtcyJ9CiA6ICR7TUFLRT0ibWFrZSJ9CiA6ICR7TUtESVI9Im1rZGlyIn0KIDogJHtNVj0ibXYgLWYifQogOiAke1JNPSJybSAtZiJ9Ci06ICR7U0VEPSIvb3B0L2xvY2FsL2Jpbi9nc2VkIn0KKzogJHtTRUQ9InNlZCJ9CiA6ICR7U0hFTEw9IiR7Q09ORklHX1NIRUxMLS9iaW4vc2h9In0KIDogJHtYc2VkPSIkU0VEIC1lIDFzL15YLy8ifQogCkBAIC0xNDQsNiArMTY0LDI3IEBACiBkaXJuYW1lPSJzLC9bXi9dKiQsLCIKIGJhc2VuYW1lPSJzLF4uKi8sLCIKIAorIyBmdW5jX2Rpcm5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50CisjIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsCisjIG90aGVyd2lzZSBzZXQgcmVzdWx0IHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KK2Z1bmNfZGlybmFtZSAoKQoreworICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9YCRFQ0hPICIkezF9IiB8ICRTRUQgIiRkaXJuYW1lImAKKyAgICBpZiB0ZXN0ICJYJGZ1bmNfZGlybmFtZV9yZXN1bHQiID0gIlgkezF9IjsgdGhlbgorICAgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIKKyAgICBlbHNlCisgICAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkZnVuY19kaXJuYW1lX3Jlc3VsdCR7Mn0iCisgICAgZmkKK30gIyBmdW5jX2Rpcm5hbWUgbWF5IGJlIHJlcGxhY2VkIGJ5IGV4dGVuZGVkIHNoZWxsIGltcGxlbWVudGF0aW9uCisKKworIyBmdW5jX2Jhc2VuYW1lIGZpbGUKK2Z1bmNfYmFzZW5hbWUgKCkKK3sKKyAgICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD1gJEVDSE8gIiR7MX0iIHwgJFNFRCAiJGJhc2VuYW1lImAKK30gIyBmdW5jX2Jhc2VuYW1lIG1heSBiZSByZXBsYWNlZCBieSBleHRlbmRlZCBzaGVsbCBpbXBsZW1lbnRhdGlvbgorCisKICMgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKICMgcGVyZm9ybSBmdW5jX2Jhc2VuYW1lIGFuZCBmdW5jX2Rpcm5hbWUgaW4gYSBzaW5nbGUgZnVuY3Rpb24KICMgY2FsbDoKQEAgLTE1OCwzMyArMTk5LDE4MyBAQAogIyB0aG9zZSBmdW5jdGlvbnMgYnV0IGluc3RlYWQgZHVwbGljYXRlIHRoZSBmdW5jdGlvbmFsaXR5IGhlcmUuCiBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICgpCiB7Ci0gICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCi0gIGZ1bmNfZGlybmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGRpcm5hbWUiYAotICBpZiB0ZXN0ICJYJGZ1bmNfZGlybmFtZV9yZXN1bHQiID0gIlgkezF9IjsgdGhlbgotICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iCi0gIGVsc2UKLSAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkZnVuY19kaXJuYW1lX3Jlc3VsdCR7Mn0iCi0gIGZpCi0gIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRiYXNlbmFtZSJgCisgICAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KKyAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PWAkRUNITyAiJHsxfSIgfCAkU0VEIC1lICIkZGlybmFtZSJgCisgICAgaWYgdGVzdCAiWCRmdW5jX2Rpcm5hbWVfcmVzdWx0IiA9ICJYJHsxfSI7IHRoZW4KKyAgICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iCisgICAgZWxzZQorICAgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJGZ1bmNfZGlybmFtZV9yZXN1bHQkezJ9IgorICAgIGZpCisgICAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9YCRFQ0hPICIkezF9IiB8ICRTRUQgLWUgIiRiYXNlbmFtZSJgCit9ICMgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSBtYXkgYmUgcmVwbGFjZWQgYnkgZXh0ZW5kZWQgc2hlbGwgaW1wbGVtZW50YXRpb24KKworCisjIGZ1bmNfc3RyaXBuYW1lIHByZWZpeCBzdWZmaXggbmFtZQorIyBzdHJpcCBQUkVGSVggYW5kIFNVRkZJWCBvZmYgb2YgTkFNRS4KKyMgUFJFRklYIGFuZCBTVUZGSVggbXVzdCBub3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVjaWFsCisjIGNoYXJhY3RlcnMsIGhhc2hlcywgcGVyY2VudCBzaWducywgYnV0IFNVRkZJWCBtYXkgY29udGFpbiBhIGxlYWRpbmcKKyMgZG90IChpbiB3aGljaCBjYXNlIHRoYXQgbWF0Y2hlcyBvbmx5IGEgZG90KS4KKyMgZnVuY19zdHJpcF9zdWZmaXggcHJlZml4IG5hbWUKK2Z1bmNfc3RyaXBuYW1lICgpCit7CisgICAgY2FzZSAkezJ9IGluCisgICAgICAuKikgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAkRUNITyAiJHszfSIgfCAkU0VEICJzJV4kezF9JSU7IHMlXFxcXCR7Mn1cJCUlImA7OworICAgICAgKikgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD1gJEVDSE8gIiR7M30iIHwgJFNFRCAicyVeJHsxfSUlOyBzJSR7Mn1cJCUlImA7OworICAgIGVzYWMKK30gIyBmdW5jX3N0cmlwbmFtZSBtYXkgYmUgcmVwbGFjZWQgYnkgZXh0ZW5kZWQgc2hlbGwgaW1wbGVtZW50YXRpb24KKworCisjIFRoZXNlIFNFRCBzY3JpcHRzIHByZXN1cHBvc2UgYW4gYWJzb2x1dGUgcGF0aCB3aXRoIGEgdHJhaWxpbmcgc2xhc2guCitwYXRoY2FyPSdzLF4vXChbXi9dKlwpLiokLFwxLCcKK3BhdGhjZHI9J3MsXi9bXi9dKiwsJworcmVtb3ZlZG90cGFydHM9Jzpkb3RzbAorCQlzQC9cLi9AL0BnCisJCXQgZG90c2wKKwkJcywvXC4kLC8sJworY29sbGFwc2VzbGFzaGVzPSdzQC9cezEsXH1AL0BnJworZmluYWxzbGFzaD0ncywvKiQsLywnCisKKyMgZnVuY19ub3JtYWxfYWJzcGF0aCBQQVRICisjIFJlbW92ZSBkb3VibGVkLXVwIGFuZCB0cmFpbGluZyBzbGFzaGVzLCAiLiIgcGF0aCBjb21wb25lbnRzLAorIyBhbmQgY2FuY2VsIG91dCBhbnkgIi4uIiBwYXRoIGNvbXBvbmVudHMgaW4gUEFUSCBhZnRlciBtYWtpbmcKKyMgaXQgYW4gYWJzb2x1dGUgcGF0aC4KKyMgICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdCIKK2Z1bmNfbm9ybWFsX2Fic3BhdGggKCkKK3sKKyAgIyBTdGFydCBmcm9tIHJvb3QgZGlyIGFuZCByZWFzc2VtYmxlIHRoZSBwYXRoLgorICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0KKyAgZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aD0kMQorICBmdW5jX25vcm1hbF9hYnNwYXRoX2FsdG5hbWVzcGFjZT0KKyAgY2FzZSAkZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aCBpbgorICAgICIiKQorICAgICAgIyBFbXB0eSBwYXRoLCB0aGF0IGp1c3QgbWVhbnMgJGN3ZC4KKyAgICAgIGZ1bmNfc3RyaXBuYW1lICcnICcvJyAiYHB3ZGAiCisgICAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisgICAgICByZXR1cm4KKyAgICA7OworICAgICMgVGhlIG5leHQgdGhyZWUgZW50cmllcyBhcmUgdXNlZCB0byBzcG90IGEgcnVuIG9mIHByZWNpc2VseQorICAgICMgdHdvIGxlYWRpbmcgc2xhc2hlcyB3aXRob3V0IHVzaW5nIG5lZ2F0ZWQgY2hhcmFjdGVyIGNsYXNzZXM7CisgICAgIyB3ZSB0YWtlIGFkdmFudGFnZSBvZiBjYXNlJ3MgZmlyc3QtbWF0Y2ggYmVoYXZpb3VyLgorICAgIC8vLyopCisgICAgICAjIFVudXN1YWwgZm9ybSBvZiBhYnNvbHV0ZSBwYXRoLCBkbyBub3RoaW5nLgorICAgIDs7CisgICAgLy8qKQorICAgICAgIyBOb3QgbmVjZXNzYXJpbHkgYW4gb3JkaW5hcnkgcGF0aDsgUE9TSVggcmVzZXJ2ZXMgbGVhZGluZyAnLy8nCisgICAgICAjIGFuZCBmb3IgZXhhbXBsZSBDeWd3aW4gdXNlcyBpdCB0byBhY2Nlc3MgcmVtb3RlIGZpbGUgc2hhcmVzCisgICAgICAjIG92ZXIgQ0lGUy9TTUIsIHNvIHdlIGNvbnNlcnZlIGEgbGVhZGluZyBkb3VibGUgc2xhc2ggaWYgZm91bmQuCisgICAgICBmdW5jX25vcm1hbF9hYnNwYXRoX2FsdG5hbWVzcGFjZT0vCisgICAgOzsKKyAgICAvKikKKyAgICAgICMgQWJzb2x1dGUgcGF0aCwgZG8gbm90aGluZy4KKyAgICA7OworICAgICopCisgICAgICAjIFJlbGF0aXZlIHBhdGgsIHByZXBlbmQgJGN3ZC4KKyAgICAgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGg9YHB3ZGAvJGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGgKKyAgICA7OworICBlc2FjCisgICMgQ2FuY2VsIG91dCBhbGwgdGhlIHNpbXBsZSBzdHVmZiB0byBzYXZlIGl0ZXJhdGlvbnMuICBXZSBhbHNvIHdhbnQKKyAgIyB0aGUgcGF0aCB0byBlbmQgd2l0aCBhIHNsYXNoIGZvciBlYXNlIG9mIHBhcnNpbmcsIHNvIG1ha2Ugc3VyZQorICAjIHRoZXJlIGlzIG9uZSAoYW5kIG9ubHkgb25lKSBoZXJlLgorICBmdW5jX25vcm1hbF9hYnNwYXRoX3RwYXRoPWAkRUNITyAiJGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGgiIHwgJFNFRCBcCisgICAgICAgIC1lICIkcmVtb3ZlZG90cGFydHMiIC1lICIkY29sbGFwc2VzbGFzaGVzIiAtZSAiJGZpbmFsc2xhc2giYAorICB3aGlsZSA6OyBkbworICAgICMgUHJvY2Vzc2VkIGl0IGFsbCB5ZXQ/CisgICAgaWYgdGVzdCAiJGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGgiID0gLyA7IHRoZW4KKyAgICAgICMgSWYgd2UgYXNjZW5kZWQgdG8gdGhlIHJvb3QgdXNpbmcgIi4uIiB0aGUgcmVzdWx0IG1heSBiZSBlbXB0eSBub3cuCisgICAgICBpZiB0ZXN0IC16ICIkZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQiIDsgdGhlbgorICAgICAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0vCisgICAgICBmaQorICAgICAgYnJlYWsKKyAgICBmaQorICAgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfdGNvbXBvbmVudD1gJEVDSE8gIiRmdW5jX25vcm1hbF9hYnNwYXRoX3RwYXRoIiB8ICRTRUQgXAorICAgICAgICAtZSAiJHBhdGhjYXIiYAorICAgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGg9YCRFQ0hPICIkZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aCIgfCAkU0VEIFwKKyAgICAgICAgLWUgIiRwYXRoY2RyImAKKyAgICAjIEZpZ3VyZSBvdXQgd2hhdCB0byBkbyB3aXRoIGl0CisgICAgY2FzZSAkZnVuY19ub3JtYWxfYWJzcGF0aF90Y29tcG9uZW50IGluCisgICAgICAiIikKKyAgICAgICAgIyBUcmFpbGluZyBlbXB0eSBwYXRoIGNvbXBvbmVudCwgaWdub3JlIGl0LgorICAgICAgOzsKKyAgICAgIC4uKQorICAgICAgICAjIFBhcmVudCBkaXI7IHN0cmlwIGxhc3QgYXNzZW1ibGVkIGNvbXBvbmVudCBmcm9tIHJlc3VsdC4KKyAgICAgICAgZnVuY19kaXJuYW1lICIkZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQiCisgICAgICAgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0PSRmdW5jX2Rpcm5hbWVfcmVzdWx0CisgICAgICA7OworICAgICAgKikKKyAgICAgICAgIyBBY3R1YWwgcGF0aCBjb21wb25lbnQsIGFwcGVuZCBpdC4KKyAgICAgICAgZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQ9JGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0LyRmdW5jX25vcm1hbF9hYnNwYXRoX3Rjb21wb25lbnQKKyAgICAgIDs7CisgICAgZXNhYworICBkb25lCisgICMgUmVzdG9yZSBsZWFkaW5nIGRvdWJsZS1zbGFzaCBpZiBvbmUgd2FzIGZvdW5kIG9uIGVudHJ5LgorICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0kZnVuY19ub3JtYWxfYWJzcGF0aF9hbHRuYW1lc3BhY2UkZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQKIH0KIAotIyBHZW5lcmF0ZWQgc2hlbGwgZnVuY3Rpb25zIGluc2VydGVkIGhlcmUuCisjIGZ1bmNfcmVsYXRpdmVfcGF0aCBTUkNESVIgRFNURElSCisjIGdlbmVyYXRlcyBhIHJlbGF0aXZlIHBhdGggZnJvbSBTUkNESVIgdG8gRFNURElSLCB3aXRoIGEgdHJhaWxpbmcKKyMgc2xhc2ggaWYgbm9uLWVtcHR5LCBzdWl0YWJsZSBmb3IgaW1tZWRpYXRlbHkgYXBwZW5kaW5nIGEgZmlsZW5hbWUKKyMgd2l0aG91dCBuZWVkaW5nIHRvIGFwcGVuZCBhIHNlcGFyYXRvci4KKyMgICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0IgorZnVuY19yZWxhdGl2ZV9wYXRoICgpCit7CisgIGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQ9CisgIGZ1bmNfbm9ybWFsX2Fic3BhdGggIiQxIgorICBmdW5jX3JlbGF0aXZlX3BhdGhfdGxpYmRpcj0kZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQKKyAgZnVuY19ub3JtYWxfYWJzcGF0aCAiJDIiCisgIGZ1bmNfcmVsYXRpdmVfcGF0aF90YmluZGlyPSRmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdAogCi0jIFdvcmsgYXJvdW5kIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaXNzdWUgb24gSVJJWCA2LjUuIE9uIElSSVggNi40Kywgc2gKLSMgaXMga3NoIGJ1dCB3aGVuIHRoZSBzaGVsbCBpcyBpbnZva2VkIGFzICJzaCIgYW5kIHRoZSBjdXJyZW50IHZhbHVlIG9mCi0jIHRoZSBfWFBHIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBlcXVhbCB0byAxIChvbmUpLCB0aGUgc3BlY2lhbAotIyBwb3NpdGlvbmFsIHBhcmFtZXRlciAkMCwgd2l0aGluIGEgZnVuY3Rpb24gY2FsbCwgaXMgdGhlIG5hbWUgb2YgdGhlCi0jIGZ1bmN0aW9uLgotcHJvZ3BhdGg9IiQwIgorICAjIEFzY2VuZCB0aGUgdHJlZSBzdGFydGluZyBmcm9tIGxpYmRpcgorICB3aGlsZSA6OyBkbworICAgICMgY2hlY2sgaWYgd2UgaGF2ZSBmb3VuZCBhIHByZWZpeCBvZiBiaW5kaXIKKyAgICBjYXNlICRmdW5jX3JlbGF0aXZlX3BhdGhfdGJpbmRpciBpbgorICAgICAgJGZ1bmNfcmVsYXRpdmVfcGF0aF90bGliZGlyKQorICAgICAgICAjIGZvdW5kIGFuIGV4YWN0IG1hdGNoCisgICAgICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF90Y2FuY2VsbGVkPQorICAgICAgICBicmVhaworICAgICAgICA7OworICAgICAgJGZ1bmNfcmVsYXRpdmVfcGF0aF90bGliZGlyKikKKyAgICAgICAgIyBmb3VuZCBhIG1hdGNoaW5nIHByZWZpeAorICAgICAgICBmdW5jX3N0cmlwbmFtZSAiJGZ1bmNfcmVsYXRpdmVfcGF0aF90bGliZGlyIiAnJyAiJGZ1bmNfcmVsYXRpdmVfcGF0aF90YmluZGlyIgorICAgICAgICBmdW5jX3JlbGF0aXZlX3BhdGhfdGNhbmNlbGxlZD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisgICAgICAgIGlmIHRlc3QgLXogIiRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0IjsgdGhlbgorICAgICAgICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQ9LgorICAgICAgICBmaQorICAgICAgICBicmVhaworICAgICAgICA7OworICAgICAgKikKKyAgICAgICAgZnVuY19kaXJuYW1lICRmdW5jX3JlbGF0aXZlX3BhdGhfdGxpYmRpcgorICAgICAgICBmdW5jX3JlbGF0aXZlX3BhdGhfdGxpYmRpcj0ke2Z1bmNfZGlybmFtZV9yZXN1bHR9CisgICAgICAgIGlmIHRlc3QgIngkZnVuY19yZWxhdGl2ZV9wYXRoX3RsaWJkaXIiID0geCA7IHRoZW4KKyAgICAgICAgICAjIEhhdmUgdG8gZGVzY2VuZCBhbGwgdGhlIHdheSB0byB0aGUgcm9vdCEKKyAgICAgICAgICBmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0PS4uLyRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0CisgICAgICAgICAgZnVuY19yZWxhdGl2ZV9wYXRoX3RjYW5jZWxsZWQ9JGZ1bmNfcmVsYXRpdmVfcGF0aF90YmluZGlyCisgICAgICAgICAgYnJlYWsKKyAgICAgICAgZmkKKyAgICAgICAgZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdD0uLi8kZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdAorICAgICAgICA7OworICAgIGVzYWMKKyAgZG9uZQorCisgICMgTm93IGNhbGN1bGF0ZSBwYXRoOyB0YWtlIGNhcmUgdG8gYXZvaWQgZG91YmxpbmctdXAgc2xhc2hlcy4KKyAgZnVuY19zdHJpcG5hbWUgJycgJy8nICIkZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdCIKKyAgZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisgIGZ1bmNfc3RyaXBuYW1lICcvJyAnLycgIiRmdW5jX3JlbGF0aXZlX3BhdGhfdGNhbmNlbGxlZCIKKyAgaWYgdGVzdCAieCRmdW5jX3N0cmlwbmFtZV9yZXN1bHQiICE9IHggOyB0aGVuCisgICAgZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdD0ke2Z1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHR9LyR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0fQorICBmaQorCisgICMgTm9ybWFsaXNhdGlvbi4gSWYgYmluZGlyIGlzIGxpYmRpciwgcmV0dXJuIGVtcHR5IHN0cmluZywKKyAgIyBlbHNlIHJlbGF0aXZlIHBhdGggZW5kaW5nIHdpdGggYSBzbGFzaDsgZWl0aGVyIHdheSwgdGFyZ2V0CisgICMgZmlsZSBuYW1lIGNhbiBiZSBkaXJlY3RseSBhcHBlbmRlZC4KKyAgaWYgdGVzdCAhIC16ICIkZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdCI7IHRoZW4KKyAgICBmdW5jX3N0cmlwbmFtZSAnLi8nICcnICIkZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdC8iCisgICAgZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisgIGZpCit9CiAKICMgVGhlIG5hbWUgb2YgdGhpcyBwcm9ncmFtOgotIyBJbiB0aGUgdW5saWtlbHkgZXZlbnQgJHByb2duYW1lIGJlZ2FuIHdpdGggYSAnLScsIGl0IHdvdWxkIHBsYXkgaGF2b2Mgd2l0aAotIyBmdW5jX2VjaG8gKGltYWdpbmUgcHJvZ25hbWU9LW4pLCBzbyB3ZSBwcmVwZW5kIC4vIGluIHRoYXQgY2FzZToKIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiRwcm9ncGF0aCIKIHByb2duYW1lPSRmdW5jX2Jhc2VuYW1lX3Jlc3VsdAotY2FzZSAkcHJvZ25hbWUgaW4KLSAgLSopIHByb2duYW1lPS4vJHByb2duYW1lIDs7Ci1lc2FjCiAKICMgTWFrZSBzdXJlIHdlIGhhdmUgYW4gYWJzb2x1dGUgcGF0aCBmb3IgcmVleGVjdXRpb246CiBjYXNlICRwcm9ncGF0aCBpbgpAQCAtMjE1LDYgKzQwNiwxNSBAQAogIyBTYW1lIGFzIGFib3ZlLCBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCiBkb3VibGVfcXVvdGVfc3Vic3Q9J3MvXChbImBcXF1cKS9cXFwxL2cnCiAKKyMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0IHR1cm5zIGEgc3RyaW5nIGludG8gYSByZWdleCBtYXRjaGluZyBmb3IgdGhlCisjIHN0cmluZyBsaXRlcmFsbHkuCitzZWRfbWFrZV9saXRlcmFsX3JlZ2V4PSdzLFtdLlteJFxcKlwvXSxcXCYsZycKKworIyBTZWQgc3Vic3RpdHV0aW9uIHRoYXQgY29udmVydHMgYSB3MzIgZmlsZSBuYW1lIG9yIHBhdGgKKyMgd2hpY2ggY29udGFpbnMgZm9yd2FyZCBzbGFzaGVzLCBpbnRvIG9uZSB0aGF0IGNvbnRhaW5zCisjIChlc2NhcGVkKSBiYWNrc2xhc2hlcy4gIEEgdmVyeSBuYWl2ZSBpbXBsZW1lbnRhdGlvbi4KK2x0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnk9J3N8XFxcXCp8XFx8ZztzfC98XFx8ZztzfFxcfFxcXFx8ZycKKwogIyBSZS1gXCcgcGFyYW1ldGVyIGV4cGFuc2lvbnMgaW4gb3V0cHV0IG9mIGRvdWJsZV9xdW90ZV9zdWJzdCB0aGF0IHdlcmUKICMgYFwnLWVkIGluIGlucHV0IHRvIHRoZSBzYW1lLiAgSWYgYW4gb2RkIG51bWJlciBvZiBgXCcgcHJlY2VkZWQgYSAnJCcKICMgaW4gaW5wdXQgdG8gZG91YmxlX3F1b3RlX3N1YnN0LCB0aGF0ICckJyB3YXMgcHJvdGVjdGVkIGZyb20gZXhwYW5zaW9uLgpAQCAtMjQzLDcgKzQ0Myw3IEBACiAjIG5hbWUgaWYgaXQgaGFzIGJlZW4gc2V0IHlldC4KIGZ1bmNfZWNobyAoKQogewotICAgICRFQ0hPICIkcHJvZ25hbWUke21vZGUrOiB9JG1vZGU6ICQqIgorICAgICRFQ0hPICIkcHJvZ25hbWU6ICR7b3B0X21vZGUrJG9wdF9tb2RlOiB9JCoiCiB9CiAKICMgZnVuY192ZXJib3NlIGFyZy4uLgpAQCAtMjU4LDE4ICs0NTgsMjUgQEAKICAgICA6CiB9CiAKKyMgZnVuY19lY2hvX2FsbCBhcmcuLi4KKyMgSW52b2tlICRFQ0hPIHdpdGggYWxsIGFyZ3MsIHNwYWNlLXNlcGFyYXRlZC4KK2Z1bmNfZWNob19hbGwgKCkKK3sKKyAgICAkRUNITyAiJCoiCit9CisKICMgZnVuY19lcnJvciBhcmcuLi4KICMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvci4KIGZ1bmNfZXJyb3IgKCkKIHsKLSAgICAkRUNITyAiJHByb2duYW1lJHttb2RlKzogfSRtb2RlOiAiJHsxKyIkQCJ9IDE+JjIKKyAgICAkRUNITyAiJHByb2duYW1lOiAke29wdF9tb2RlKyRvcHRfbW9kZTogfSIkezErIiRAIn0gMT4mMgogfQogCiAjIGZ1bmNfd2FybmluZyBhcmcuLi4KICMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgd2FybmluZyBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9yLgogZnVuY193YXJuaW5nICgpCiB7Ci0gICAgJG9wdF93YXJuaW5nICYmICRFQ0hPICIkcHJvZ25hbWUke21vZGUrOiB9JG1vZGU6IHdhcm5pbmc6ICIkezErIiRAIn0gMT4mMgorICAgICRvcHRfd2FybmluZyAmJiAkRUNITyAiJHByb2duYW1lOiAke29wdF9tb2RlKyRvcHRfbW9kZTogfXdhcm5pbmc6ICIkezErIiRAIn0gMT4mMgogCiAgICAgIyBiYXNoIGJ1ZyBhZ2FpbjoKICAgICA6CkBAIC0zMjYsOSArNTMzLDkgQEAKICAgICAgICAgY2FzZSAkbXlfZGlyZWN0b3J5X3BhdGggaW4gKi8qKSA7OyAqKSBicmVhayA7OyBlc2FjCiAKICAgICAgICAgIyAuLi5vdGhlcndpc2UgdGhyb3cgYXdheSB0aGUgY2hpbGQgZGlyZWN0b3J5IGFuZCBsb29wCi0gICAgICAgIG15X2RpcmVjdG9yeV9wYXRoPWAkRUNITyAiWCRteV9kaXJlY3RvcnlfcGF0aCIgfCAkWHNlZCAtZSAiJGRpcm5hbWUiYAorICAgICAgICBteV9kaXJlY3RvcnlfcGF0aD1gJEVDSE8gIiRteV9kaXJlY3RvcnlfcGF0aCIgfCAkU0VEIC1lICIkZGlybmFtZSJgCiAgICAgICBkb25lCi0gICAgICBteV9kaXJfbGlzdD1gJEVDSE8gIlgkbXlfZGlyX2xpc3QiIHwgJFhzZWQgLWUgJ3MsOiokLCwnYAorICAgICAgbXlfZGlyX2xpc3Q9YCRFQ0hPICIkbXlfZGlyX2xpc3QiIHwgJFNFRCAncyw6KiQsLCdgCiAKICAgICAgIHNhdmVfbWtkaXJfcF9JRlM9IiRJRlMiOyBJRlM9JzonCiAgICAgICBmb3IgbXlfZGlyIGluICRteV9kaXJfbGlzdDsgZG8KQEAgLTM3OCw3ICs1ODUsNyBAQAogICAgICAgICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgY3JlYXRlIHRlbXBvcmFyeSBkaXJlY3RvcnkgXGAkbXlfdG1wZGlyJyIKICAgICBmaQogCi0gICAgJEVDSE8gIlgkbXlfdG1wZGlyIiB8ICRYc2VkCisgICAgJEVDSE8gIiRteV90bXBkaXIiCiB9CiAKIApAQCAtMzkyLDcgKzU5OSw3IEBACiB7CiAgICAgY2FzZSAkMSBpbgogICAgICAgKltcXFxgXCJcJF0qKQotCWZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0PWAkRUNITyAiWCQxIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAgOzsKKwlmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdD1gJEVDSE8gIiQxIiB8ICRTRUQgIiRzZWRfcXVvdGVfc3Vic3QiYCA7OwogICAgICAgKikKICAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHQ9IiQxIiA7OwogICAgIGVzYWMKQEAgLTQxOSw3ICs2MjYsNyBAQAogewogICAgIGNhc2UgJDEgaW4KICAgICAgICpbXFxcYFwiXSopCi0JbXlfYXJnPWAkRUNITyAiWCQxIiB8ICRYc2VkIFwKKwlteV9hcmc9YCRFQ0hPICIkMSIgfCAkU0VEIFwKIAkgICAgLWUgIiRkb3VibGVfcXVvdGVfc3Vic3QiIC1lICIkc2VkX2RvdWJsZV9iYWNrc2xhc2giYCA7OwogICAgICAgKikKICAgICAgICAgbXlfYXJnPSIkMSIgOzsKQEAgLTQ4OCwxNSArNjk1LDM5IEBACiAgICAgZmkKIH0KIAotCi0KKyMgZnVuY190cl9zaAorIyBUdXJuICQxIGludG8gYSBzdHJpbmcgc3VpdGFibGUgZm9yIGEgc2hlbGwgdmFyaWFibGUgbmFtZS4KKyMgUmVzdWx0IGlzIHN0b3JlZCBpbiAkZnVuY190cl9zaF9yZXN1bHQuICBBbGwgY2hhcmFjdGVycworIyBub3QgaW4gdGhlIHNldCBhLXpBLVowLTlfIGFyZSByZXBsYWNlZCB3aXRoICdfJy4gRnVydGhlciwKKyMgaWYgJDEgYmVnaW5zIHdpdGggYSBkaWdpdCwgYSAnXycgaXMgcHJlcGVuZGVkIGFzIHdlbGwuCitmdW5jX3RyX3NoICgpCit7CisgIGNhc2UgJDEgaW4KKyAgWzAtOV0qIHwgKlshYS16QS1aMC05X10qKQorICAgIGZ1bmNfdHJfc2hfcmVzdWx0PWAkRUNITyAiJDEiIHwgJFNFRCAncy9eXChbMC05XVwpL19cMS87IHMvW15hLXpBLVowLTlfXS9fL2cnYAorICAgIDs7CisgICogKQorICAgIGZ1bmNfdHJfc2hfcmVzdWx0PSQxCisgICAgOzsKKyAgZXNhYworfQogCiAKICMgZnVuY192ZXJzaW9uCiAjIEVjaG8gdmVyc2lvbiBtZXNzYWdlIHRvIHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdC4KIGZ1bmNfdmVyc2lvbiAoKQogewotICAgICRTRUQgLW4gJy9eIyAnJFBST0dSQU0nIChHTlUgLywvIyB3YXJyYW50eTsgLyB7CisgICAgJG9wdF9kZWJ1ZworCisgICAgJFNFRCAtbiAnLyhDKS8hYiBnbworCTptb3JlCisJL1wuLyF7CisJICBOCisJICBzL1xuIyAvIC8KKwkgIGIgbW9yZQorCX0KKwk6Z28KKwkvXiMgJyRQUk9HUkFNJyAoR05VIC8sLyMgd2FycmFudHk7IC8gewogICAgICAgICBzL14jIC8vCiAJcy9eIyAqJC8vCiAgICAgICAgIHMvXCgoQylcKVsgMC05LC1dKlwoIFsxLTldWzAtOV0qXCkvXDFcMi8KQEAgLTUwOSwyMiArNzQwLDI4IEBACiAjIEVjaG8gc2hvcnQgaGVscCBtZXNzYWdlIHRvIHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdC4KIGZ1bmNfdXNhZ2UgKCkKIHsKLSAgICAkU0VEIC1uICcvXiMgVXNhZ2U6LywvIyAtaC8geworICAgICRvcHRfZGVidWcKKworICAgICRTRUQgLW4gJy9eIyBVc2FnZTovLC9eIyAgKi4qLS1oZWxwLyB7CiAgICAgICAgIHMvXiMgLy8KIAlzL14jICokLy8KIAlzL1wkcHJvZ25hbWUvJyRwcm9nbmFtZScvCiAJcAogICAgIH0nIDwgIiRwcm9ncGF0aCIKLSAgICAkRUNITworICAgIGVjaG8KICAgICAkRUNITyAicnVuIFxgJHByb2duYW1lIC0taGVscCB8IG1vcmUnIGZvciBmdWxsIHVzYWdlIgogICAgIGV4aXQgJD8KIH0KIAotIyBmdW5jX2hlbHAKLSMgRWNobyBsb25nIGhlbHAgbWVzc2FnZSB0byBzdGFuZGFyZCBvdXRwdXQgYW5kIGV4aXQuCisjIGZ1bmNfaGVscCBbTk9FWElUXQorIyBFY2hvIGxvbmcgaGVscCBtZXNzYWdlIHRvIHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdCwKKyMgdW5sZXNzICdub2V4aXQnIGlzIHBhc3NlZCBhcyBhcmd1bWVudC4KIGZ1bmNfaGVscCAoKQogeworICAgICRvcHRfZGVidWcKKwogICAgICRTRUQgLW4gJy9eIyBVc2FnZTovLC8jIFJlcG9ydCBidWdzIHRvLyB7CisJOnByaW50CiAgICAgICAgIHMvXiMgLy8KIAlzL14jICokLy8KIAlzKlwkcHJvZ25hbWUqJyRwcm9nbmFtZScqCkBAIC01MzcsOCArNzc0LDE1IEBACiAJcy9cJGF1dG9tYWtlX3ZlcnNpb24vJyJgKGF1dG9tYWtlIC0tdmVyc2lvbikgMj4vZGV2L251bGwgfCRTRUQgMXFgIicvCiAJcy9cJGF1dG9jb25mX3ZlcnNpb24vJyJgKGF1dG9jb25mIC0tdmVyc2lvbikgMj4vZGV2L251bGwgfCRTRUQgMXFgIicvCiAJcAotICAgICB9JyA8ICIkcHJvZ3BhdGgiCi0gICAgZXhpdCAkPworCWQKKyAgICAgfQorICAgICAvXiMgLiogaG9tZSBwYWdlOi9iIHByaW50CisgICAgIC9eIyBHZW5lcmFsIGhlbHAgdXNpbmcvYiBwcmludAorICAgICAnIDwgIiRwcm9ncGF0aCIKKyAgICByZXQ9JD8KKyAgICBpZiB0ZXN0IC16ICIkMSI7IHRoZW4KKyAgICAgIGV4aXQgJHJldAorICAgIGZpCiB9CiAKICMgZnVuY19taXNzaW5nX2FyZyBhcmduYW1lCkBAIC01NDYsNjMgKzc5MCwxMDYgQEAKICMgZXhpdF9jbWQuCiBmdW5jX21pc3NpbmdfYXJnICgpCiB7Ci0gICAgZnVuY19lcnJvciAibWlzc2luZyBhcmd1bWVudCBmb3IgJDEiCisgICAgJG9wdF9kZWJ1ZworCisgICAgZnVuY19lcnJvciAibWlzc2luZyBhcmd1bWVudCBmb3IgJDEuIgogICAgIGV4aXRfY21kPWV4aXQKIH0KIAorCisjIGZ1bmNfc3BsaXRfc2hvcnRfb3B0IHNob3J0b3B0CisjIFNldCBmdW5jX3NwbGl0X3Nob3J0X29wdF9uYW1lIGFuZCBmdW5jX3NwbGl0X3Nob3J0X29wdF9hcmcgc2hlbGwKKyMgdmFyaWFibGVzIGFmdGVyIHNwbGl0dGluZyBTSE9SVE9QVCBhZnRlciB0aGUgMm5kIGNoYXJhY3Rlci4KK2Z1bmNfc3BsaXRfc2hvcnRfb3B0ICgpCit7CisgICAgbXlfc2VkX3Nob3J0X29wdD0nMXMvXlwoLi5cKS4qJC9cMS87cScKKyAgICBteV9zZWRfc2hvcnRfcmVzdD0nMXMvXi4uXCguKlwpJC9cMS87cScKKworICAgIGZ1bmNfc3BsaXRfc2hvcnRfb3B0X25hbWU9YCRFQ0hPICIkMSIgfCAkU0VEICIkbXlfc2VkX3Nob3J0X29wdCJgCisgICAgZnVuY19zcGxpdF9zaG9ydF9vcHRfYXJnPWAkRUNITyAiJDEiIHwgJFNFRCAiJG15X3NlZF9zaG9ydF9yZXN0ImAKK30gIyBmdW5jX3NwbGl0X3Nob3J0X29wdCBtYXkgYmUgcmVwbGFjZWQgYnkgZXh0ZW5kZWQgc2hlbGwgaW1wbGVtZW50YXRpb24KKworCisjIGZ1bmNfc3BsaXRfbG9uZ19vcHQgbG9uZ29wdAorIyBTZXQgZnVuY19zcGxpdF9sb25nX29wdF9uYW1lIGFuZCBmdW5jX3NwbGl0X2xvbmdfb3B0X2FyZyBzaGVsbAorIyB2YXJpYWJsZXMgYWZ0ZXIgc3BsaXR0aW5nIExPTkdPUFQgYXQgdGhlIGA9JyBzaWduLgorZnVuY19zcGxpdF9sb25nX29wdCAoKQoreworICAgIG15X3NlZF9sb25nX29wdD0nMXMvXlwoLS1bXj1dKlwpPS4qL1wxLztxJworICAgIG15X3NlZF9sb25nX2FyZz0nMXMvXi0tW149XSo9Ly8nCisKKyAgICBmdW5jX3NwbGl0X2xvbmdfb3B0X25hbWU9YCRFQ0hPICIkMSIgfCAkU0VEICIkbXlfc2VkX2xvbmdfb3B0ImAKKyAgICBmdW5jX3NwbGl0X2xvbmdfb3B0X2FyZz1gJEVDSE8gIiQxIiB8ICRTRUQgIiRteV9zZWRfbG9uZ19hcmciYAorfSAjIGZ1bmNfc3BsaXRfbG9uZ19vcHQgbWF5IGJlIHJlcGxhY2VkIGJ5IGV4dGVuZGVkIHNoZWxsIGltcGxlbWVudGF0aW9uCisKIGV4aXRfY21kPToKIAogCiAKIAogCi0jIENoZWNrIHRoYXQgd2UgaGF2ZSBhIHdvcmtpbmcgJEVDSE8uCi1pZiB0ZXN0ICJYJDEiID0gWC0tbm8tcmVleGVjOyB0aGVuCi0gICMgRGlzY2FyZCB0aGUgLS1uby1yZWV4ZWMgZmxhZywgYW5kIGNvbnRpbnVlLgotICBzaGlmdAotZWxpZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgotICAjIEF2b2lkIGlubGluZSBkb2N1bWVudCBoZXJlLCBpdCBtYXkgYmUgbGVmdCBvdmVyCi0gIDoKLWVsaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnOyB0aGVuCi0gICMgWWlwcGVlLCAkRUNITyB3b3JrcyEKLSAgOgotZWxzZQotICAjIFJlc3RhcnQgdW5kZXIgdGhlIGNvcnJlY3Qgc2hlbGwsIGFuZCB0aGVuIG1heWJlICRFQ0hPIHdpbGwgd29yay4KLSAgZXhlYyAkU0hFTEwgIiRwcm9ncGF0aCIgLS1uby1yZWV4ZWMgJHsxKyIkQCJ9Ci1maQotCi1pZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgotICAjIHVzZWQgYXMgZmFsbGJhY2sgZWNobwotICBzaGlmdAotICBjYXQgPDxFT0YKLSQqCi1FT0YKLSAgZXhpdCAkRVhJVF9TVUNDRVNTCi1maQotCiBtYWdpYz0iJSUlTUFHSUMgdmFyaWFibGUlJSUiCiBtYWdpY19leGU9IiUlJU1BR0lDIEVYRSB2YXJpYWJsZSUlJSIKIAogIyBHbG9iYWwgdmFyaWFibGVzLgotIyAkbW9kZSBpcyB1bnNldAogbm9ub3B0PQotZXhlY3V0ZV9kbGZpbGVzPQogcHJlc2VydmVfYXJncz0KIGxvMm89InMvXFwubG9cJC8uJHtvYmpleHR9LyIKIG8ybG89InMvXFwuJHtvYmpleHR9XCQvLmxvLyIKIGV4dHJhY3RlZF9hcmNoaXZlcz0KIGV4dHJhY3RlZF9zZXJpYWw9MAogCi1vcHRfZHJ5X3J1bj1mYWxzZQotb3B0X2R1cGxpY2F0ZV9kZXBzPWZhbHNlCi1vcHRfc2lsZW50PWZhbHNlCi1vcHRfZGVidWc9OgotCiAjIElmIHRoaXMgdmFyaWFibGUgaXMgc2V0IGluIGFueSBvZiB0aGUgYWN0aW9ucywgdGhlIGNvbW1hbmQgaW4gaXQKICMgd2lsbCBiZSBleGVjZWQgYXQgdGhlIGVuZC4gIFRoaXMgcHJldmVudHMgaGVyZS1kb2N1bWVudHMgZnJvbSBiZWluZwogIyBsZWZ0IG92ZXIgYnkgc2hlbGxzLgogZXhlY19jbWQ9CiAKKyMgZnVuY19hcHBlbmQgdmFyIHZhbHVlCisjIEFwcGVuZCBWQUxVRSB0byB0aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUi4KK2Z1bmNfYXBwZW5kICgpCit7CisgICAgZXZhbCAiJHsxfT1cJCR7MX1cJHsyfSIKK30gIyBmdW5jX2FwcGVuZCBtYXkgYmUgcmVwbGFjZWQgYnkgZXh0ZW5kZWQgc2hlbGwgaW1wbGVtZW50YXRpb24KKworIyBmdW5jX2FwcGVuZF9xdW90ZWQgdmFyIHZhbHVlCisjIFF1b3RlIFZBTFVFIGFuZCBhcHBlbmQgdG8gdGhlIGVuZCBvZiBzaGVsbCB2YXJpYWJsZSBWQVIsIHNlcGFyYXRlZAorIyBieSBhIHNwYWNlLgorZnVuY19hcHBlbmRfcXVvdGVkICgpCit7CisgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJHsyfSIKKyAgICBldmFsICIkezF9PVwkJHsxfVxcIFwkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCit9ICMgZnVuY19hcHBlbmRfcXVvdGVkIG1heSBiZSByZXBsYWNlZCBieSBleHRlbmRlZCBzaGVsbCBpbXBsZW1lbnRhdGlvbgorCisKKyMgZnVuY19hcml0aCBhcml0aG1ldGljLXRlcm0uLi4KK2Z1bmNfYXJpdGggKCkKK3sKKyAgICBmdW5jX2FyaXRoX3Jlc3VsdD1gZXhwciAiJHtAfSJgCit9ICMgZnVuY19hcml0aCBtYXkgYmUgcmVwbGFjZWQgYnkgZXh0ZW5kZWQgc2hlbGwgaW1wbGVtZW50YXRpb24KKworCisjIGZ1bmNfbGVuIHN0cmluZworIyBTVFJJTkcgbWF5IG5vdCBzdGFydCB3aXRoIGEgaHlwaGVuLgorZnVuY19sZW4gKCkKK3sKKyAgICBmdW5jX2xlbl9yZXN1bHQ9YGV4cHIgIiR7MX0iIDogIi4qIiAyPi9kZXYvbnVsbCB8fCBlY2hvICRtYXhfY21kX2xlbmAKK30gIyBmdW5jX2xlbiBtYXkgYmUgcmVwbGFjZWQgYnkgZXh0ZW5kZWQgc2hlbGwgaW1wbGVtZW50YXRpb24KKworCisjIGZ1bmNfbG8ybyBvYmplY3QKK2Z1bmNfbG8ybyAoKQoreworICAgIGZ1bmNfbG8yb19yZXN1bHQ9YCRFQ0hPICIkezF9IiB8ICRTRUQgIiRsbzJvImAKK30gIyBmdW5jX2xvMm8gbWF5IGJlIHJlcGxhY2VkIGJ5IGV4dGVuZGVkIHNoZWxsIGltcGxlbWVudGF0aW9uCisKKworIyBmdW5jX3hmb3JtIGxpYm9iai1vci1zb3VyY2UKK2Z1bmNfeGZvcm0gKCkKK3sKKyAgICBmdW5jX3hmb3JtX3Jlc3VsdD1gJEVDSE8gIiR7MX0iIHwgJFNFRCAncy9cLlteLl0qJC8ubG8vJ2AKK30gIyBmdW5jX3hmb3JtIG1heSBiZSByZXBsYWNlZCBieSBleHRlbmRlZCBzaGVsbCBpbXBsZW1lbnRhdGlvbgorCisKICMgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uIGFyZy4uLgogIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9yLCBmb2xsb3dlZCBieQogIyBhIGNvbmZpZ3VyYXRpb24gZmFpbHVyZSBoaW50LCBhbmQgZXhpdC4KQEAgLTYzNiwxNiArOTIzLDE2IEBACiAjIERpc3BsYXkgdGhlIGZlYXR1cmVzIHN1cHBvcnRlZCBieSB0aGlzIHNjcmlwdC4KIGZ1bmNfZmVhdHVyZXMgKCkKIHsKLSAgICAkRUNITyAiaG9zdDogJGhvc3QiCisgICAgZWNobyAiaG9zdDogJGhvc3QiCiAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KLSAgICAgICRFQ0hPICJlbmFibGUgc2hhcmVkIGxpYnJhcmllcyIKKyAgICAgIGVjaG8gImVuYWJsZSBzaGFyZWQgbGlicmFyaWVzIgogICAgIGVsc2UKLSAgICAgICRFQ0hPICJkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMiCisgICAgICBlY2hvICJkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMiCiAgICAgZmkKICAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCi0gICAgICAkRUNITyAiZW5hYmxlIHN0YXRpYyBsaWJyYXJpZXMiCisgICAgICBlY2hvICJlbmFibGUgc3RhdGljIGxpYnJhcmllcyIKICAgICBlbHNlCi0gICAgICAkRUNITyAiZGlzYWJsZSBzdGF0aWMgbGlicmFyaWVzIgorICAgICAgZWNobyAiZGlzYWJsZSBzdGF0aWMgbGlicmFyaWVzIgogICAgIGZpCiAKICAgICBleGl0ICQ/CkBAIC02OTIsMTMzICs5NzksNiBAQAogICBlc2FjCiB9CiAKLSMgUGFyc2Ugb3B0aW9ucyBvbmNlLCB0aG9yb3VnaGx5LiAgVGhpcyBjb21lcyBhcyBzb29uIGFzIHBvc3NpYmxlIGluCi0jIHRoZSBzY3JpcHQgdG8gbWFrZSB0aGluZ3MgbGlrZSBgbGlidG9vbCAtLXZlcnNpb24nIGhhcHBlbiBxdWlja2x5LgotewotCi0gICMgU2hvcnRoYW5kIGZvciAtLW1vZGU9Zm9vLCBvbmx5IHZhbGlkIGFzIHRoZSBmaXJzdCBhcmd1bWVudAotICBjYXNlICQxIGluCi0gIGNsZWFufGNsZWF8Y2xlfGNsKQotICAgIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGNsZWFuICR7MSsiJEAifTsgc2hpZnQKLSAgICA7OwotICBjb21waWxlfGNvbXBpbHxjb21waXxjb21wfGNvbXxjb3xjKQotICAgIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGNvbXBpbGUgJHsxKyIkQCJ9OyBzaGlmdAotICAgIDs7Ci0gIGV4ZWN1dGV8ZXhlY3V0fGV4ZWN1fGV4ZWN8ZXhlfGV4fGUpCi0gICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgZXhlY3V0ZSAkezErIiRAIn07IHNoaWZ0Ci0gICAgOzsKLSAgZmluaXNofGZpbmlzfGZpbml8ZmlufGZpfGYpCi0gICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgZmluaXNoICR7MSsiJEAifTsgc2hpZnQKLSAgICA7OwotICBpbnN0YWxsfGluc3RhbHxpbnN0YXxpbnN0fGluc3xpbnxpKQotICAgIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGluc3RhbGwgJHsxKyIkQCJ9OyBzaGlmdAotICAgIDs7Ci0gIGxpbmt8bGlufGxpfGwpCi0gICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgbGluayAkezErIiRAIn07IHNoaWZ0Ci0gICAgOzsKLSAgdW5pbnN0YWxsfHVuaW5zdGFsfHVuaW5zdGF8dW5pbnN0fHVuaW5zfHVuaW58dW5pfHVufHUpCi0gICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgdW5pbnN0YWxsICR7MSsiJEAifTsgc2hpZnQKLSAgICA7OwotICBlc2FjCi0KLSAgIyBQYXJzZSBub24tbW9kZSBzcGVjaWZpYyBhcmd1bWVudHM6Ci0gIHdoaWxlIHRlc3QgIiQjIiAtZ3QgMDsgZG8KLSAgICBvcHQ9IiQxIgotICAgIHNoaWZ0Ci0KLSAgICBjYXNlICRvcHQgaW4KLSAgICAgIC0tY29uZmlnKQkJZnVuY19jb25maWcJCQkJCTs7Ci0KLSAgICAgIC0tZGVidWcpCQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAkb3B0IgotCQkJZnVuY19lY2hvICJlbmFibGluZyBzaGVsbCB0cmFjZSBtb2RlIgotCQkJb3B0X2RlYnVnPSdzZXQgLXgnCi0JCQkkb3B0X2RlYnVnCi0JCQk7OwotCi0gICAgICAtZGxvcGVuKQkJdGVzdCAiJCMiIC1lcSAwICYmIGZ1bmNfbWlzc2luZ19hcmcgIiRvcHQiICYmIGJyZWFrCi0JCQlleGVjdXRlX2RsZmlsZXM9IiRleGVjdXRlX2RsZmlsZXMgJDEiCi0JCQlzaGlmdAotCQkJOzsKLQotICAgICAgLS1kcnktcnVuIHwgLW4pCW9wdF9kcnlfcnVuPToJCQkJCTs7Ci0gICAgICAtLWZlYXR1cmVzKSAgICAgICBmdW5jX2ZlYXR1cmVzCQkJCQk7OwotICAgICAgLS1maW5pc2gpCQltb2RlPSJmaW5pc2giCQkJCQk7OwotCi0gICAgICAtLW1vZGUpCQl0ZXN0ICIkIyIgLWVxIDAgJiYgZnVuY19taXNzaW5nX2FyZyAiJG9wdCIgJiYgYnJlYWsKLQkJCWNhc2UgJDEgaW4KLQkJCSAgIyBWYWxpZCBtb2RlIGFyZ3VtZW50czoKLQkJCSAgY2xlYW4pCTs7Ci0JCQkgIGNvbXBpbGUpCTs7Ci0JCQkgIGV4ZWN1dGUpCTs7Ci0JCQkgIGZpbmlzaCkJOzsKLQkJCSAgaW5zdGFsbCkJOzsKLQkJCSAgbGluaykJCTs7Ci0JCQkgIHJlbGluaykJOzsKLQkJCSAgdW5pbnN0YWxsKQk7OwotCi0JCQkgICMgQ2F0Y2ggYW55dGhpbmcgZWxzZSBhcyBhbiBlcnJvcgotCQkJICAqKSBmdW5jX2Vycm9yICJpbnZhbGlkIGFyZ3VtZW50IGZvciAkb3B0IgotCQkJICAgICBleGl0X2NtZD1leGl0Ci0JCQkgICAgIGJyZWFrCi0JCQkgICAgIDs7Ci0JCSAgICAgICAgZXNhYwotCi0JCQltb2RlPSIkMSIKLQkJCXNoaWZ0Ci0JCQk7OwotCi0gICAgICAtLXByZXNlcnZlLWR1cC1kZXBzKQotCQkJb3B0X2R1cGxpY2F0ZV9kZXBzPToJCQkJOzsKLQotICAgICAgLS1xdWlldHwtLXNpbGVudCkJcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2FyZ3MgJG9wdCIKLQkJCW9wdF9zaWxlbnQ9OgotCQkJOzsKLQotICAgICAgLS12ZXJib3NlfCAtdikJcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2FyZ3MgJG9wdCIKLQkJCW9wdF9zaWxlbnQ9ZmFsc2UKLQkJCTs7Ci0KLSAgICAgIC0tdGFnKQkJdGVzdCAiJCMiIC1lcSAwICYmIGZ1bmNfbWlzc2luZ19hcmcgIiRvcHQiICYmIGJyZWFrCi0JCQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAkb3B0ICQxIgotCQkJZnVuY19lbmFibGVfdGFnICIkMSIJIyB0YWduYW1lIGlzIHNldCBoZXJlCi0JCQlzaGlmdAotCQkJOzsKLQotICAgICAgIyBTZXBhcmF0ZSBvcHRhcmdzIHRvIGxvbmcgb3B0aW9uczoKLSAgICAgIC1kbG9wZW49KnwtLW1vZGU9KnwtLXRhZz0qKQotCQkJZnVuY19vcHRfc3BsaXQgIiRvcHQiCi0JCQlzZXQgZHVtbXkgIiRmdW5jX29wdF9zcGxpdF9vcHQiICIkZnVuY19vcHRfc3BsaXRfYXJnIiAkezErIiRAIn0KLQkJCXNoaWZ0Ci0JCQk7OwotCi0gICAgICAtXD98LWgpCQlmdW5jX3VzYWdlCQkJCQk7OwotICAgICAgLS1oZWxwKQkJb3B0X2hlbHA9OgkJCQkJOzsKLSAgICAgIC0tdmVyc2lvbikJZnVuY192ZXJzaW9uCQkJCQk7OwotCi0gICAgICAtKikJCWZ1bmNfZmF0YWxfaGVscCAidW5yZWNvZ25pemVkIG9wdGlvbiBcYCRvcHQnIgk7OwotCi0gICAgICAqKQkJbm9ub3B0PSIkb3B0IgotCQkJYnJlYWsKLQkJCTs7Ci0gICAgZXNhYwotICBkb25lCi0KLQotICBjYXNlICRob3N0IGluCi0gICAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKnB3MzIqIHwgKmNlZ2NjKikKLSAgICAgICMgZG9uJ3QgZWxpbWluYXRlIGR1cGxpY2F0aW9ucyBpbiAkcG9zdGRlcHMgYW5kICRwcmVkZXBzCi0gICAgICBvcHRfZHVwbGljYXRlX2NvbXBpbGVyX2dlbmVyYXRlZF9kZXBzPToKLSAgICAgIDs7Ci0gICAgKikKLSAgICAgIG9wdF9kdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHM9JG9wdF9kdXBsaWNhdGVfZGVwcwotICAgICAgOzsKLSAgZXNhYwotCi0gICMgSGF2aW5nIHdhcm5lZCBhYm91dCBhbGwgbWlzLXNwZWNpZmllZCBvcHRpb25zLCBiYWlsIG91dCBpZgotICAjIGFueXRoaW5nIHdhcyB3cm9uZy4KLSAgJGV4aXRfY21kICRFWElUX0ZBSUxVUkUKLX0KLQogIyBmdW5jX2NoZWNrX3ZlcnNpb25fbWF0Y2gKICMgRW5zdXJlIHRoYXQgd2UgYXJlIHVzaW5nIG00IG1hY3JvcywgYW5kIGxpYnRvb2wgc2NyaXB0IGZyb20gdGhlIHNhbWUKICMgcmVsZWFzZSBvZiBsaWJ0b29sLgpAQCAtODU1LDM4ICsxMDE1LDIxNCBAQAogfQogCiAKKyMgU2hvcnRoYW5kIGZvciAtLW1vZGU9Zm9vLCBvbmx5IHZhbGlkIGFzIHRoZSBmaXJzdCBhcmd1bWVudAorY2FzZSAkMSBpbgorY2xlYW58Y2xlYXxjbGV8Y2wpCisgIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGNsZWFuICR7MSsiJEAifTsgc2hpZnQKKyAgOzsKK2NvbXBpbGV8Y29tcGlsfGNvbXBpfGNvbXB8Y29tfGNvfGMpCisgIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGNvbXBpbGUgJHsxKyIkQCJ9OyBzaGlmdAorICA7OworZXhlY3V0ZXxleGVjdXR8ZXhlY3V8ZXhlY3xleGV8ZXh8ZSkKKyAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgZXhlY3V0ZSAkezErIiRAIn07IHNoaWZ0CisgIDs7CitmaW5pc2h8ZmluaXN8ZmluaXxmaW58Zml8ZikKKyAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgZmluaXNoICR7MSsiJEAifTsgc2hpZnQKKyAgOzsKK2luc3RhbGx8aW5zdGFsfGluc3RhfGluc3R8aW5zfGlufGkpCisgIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGluc3RhbGwgJHsxKyIkQCJ9OyBzaGlmdAorICA7OworbGlua3xsaW58bGl8bCkKKyAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgbGluayAkezErIiRAIn07IHNoaWZ0CisgIDs7Cit1bmluc3RhbGx8dW5pbnN0YWx8dW5pbnN0YXx1bmluc3R8dW5pbnN8dW5pbnx1bml8dW58dSkKKyAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgdW5pbnN0YWxsICR7MSsiJEAifTsgc2hpZnQKKyAgOzsKK2VzYWMKKworCisKKyMgT3B0aW9uIGRlZmF1bHRzOgorb3B0X2RlYnVnPToKK29wdF9kcnlfcnVuPWZhbHNlCitvcHRfY29uZmlnPWZhbHNlCitvcHRfcHJlc2VydmVfZHVwX2RlcHM9ZmFsc2UKK29wdF9mZWF0dXJlcz1mYWxzZQorb3B0X2ZpbmlzaD1mYWxzZQorb3B0X2hlbHA9ZmFsc2UKK29wdF9oZWxwX2FsbD1mYWxzZQorb3B0X3NpbGVudD06CitvcHRfdmVyYm9zZT06CitvcHRfc2lsZW50PWZhbHNlCitvcHRfdmVyYm9zZT1mYWxzZQorCisKKyMgUGFyc2Ugb3B0aW9ucyBvbmNlLCB0aG9yb3VnaGx5LiAgVGhpcyBjb21lcyBhcyBzb29uIGFzIHBvc3NpYmxlIGluIHRoZQorIyBzY3JpcHQgdG8gbWFrZSB0aGluZ3MgbGlrZSBgLS12ZXJzaW9uJyBoYXBwZW4gYXMgcXVpY2tseSBhcyB3ZSBjYW4uCit7CisgICMgdGhpcyBqdXN0IGVhc2VzIGV4aXQgaGFuZGxpbmcKKyAgd2hpbGUgdGVzdCAkIyAtZ3QgMDsgZG8KKyAgICBvcHQ9IiQxIgorICAgIHNoaWZ0CisgICAgY2FzZSAkb3B0IGluCisgICAgICAtLWRlYnVnfC14KQlvcHRfZGVidWc9J3NldCAteCcKKwkJCWZ1bmNfZWNobyAiZW5hYmxpbmcgc2hlbGwgdHJhY2UgbW9kZSIKKwkJCSRvcHRfZGVidWcKKwkJCTs7CisgICAgICAtLWRyeS1ydW58LS1kcnlydW58LW4pCisJCQlvcHRfZHJ5X3J1bj06CisJCQk7OworICAgICAgLS1jb25maWcpCisJCQlvcHRfY29uZmlnPToKK2Z1bmNfY29uZmlnCisJCQk7OworICAgICAgLS1kbG9wZW58LWRsb3BlbikKKwkJCW9wdGFyZz0iJDEiCisJCQlvcHRfZGxvcGVuPSIke29wdF9kbG9wZW4rJG9wdF9kbG9wZW4KK30kb3B0YXJnIgorCQkJc2hpZnQKKwkJCTs7CisgICAgICAtLXByZXNlcnZlLWR1cC1kZXBzKQorCQkJb3B0X3ByZXNlcnZlX2R1cF9kZXBzPToKKwkJCTs7CisgICAgICAtLWZlYXR1cmVzKQorCQkJb3B0X2ZlYXR1cmVzPToKK2Z1bmNfZmVhdHVyZXMKKwkJCTs7CisgICAgICAtLWZpbmlzaCkKKwkJCW9wdF9maW5pc2g9Ogorc2V0IGR1bW15IC0tbW9kZSBmaW5pc2ggJHsxKyIkQCJ9OyBzaGlmdAorCQkJOzsKKyAgICAgIC0taGVscCkKKwkJCW9wdF9oZWxwPToKKwkJCTs7CisgICAgICAtLWhlbHAtYWxsKQorCQkJb3B0X2hlbHBfYWxsPToKK29wdF9oZWxwPSc6IGhlbHAtYWxsJworCQkJOzsKKyAgICAgIC0tbW9kZSkKKwkJCXRlc3QgJCMgPSAwICYmIGZ1bmNfbWlzc2luZ19hcmcgJG9wdCAmJiBicmVhaworCQkJb3B0YXJnPSIkMSIKKwkJCW9wdF9tb2RlPSIkb3B0YXJnIgorY2FzZSAkb3B0YXJnIGluCisgICMgVmFsaWQgbW9kZSBhcmd1bWVudHM6CisgIGNsZWFufGNvbXBpbGV8ZXhlY3V0ZXxmaW5pc2h8aW5zdGFsbHxsaW5rfHJlbGlua3x1bmluc3RhbGwpIDs7CisKKyAgIyBDYXRjaCBhbnl0aGluZyBlbHNlIGFzIGFuIGVycm9yCisgICopIGZ1bmNfZXJyb3IgImludmFsaWQgYXJndW1lbnQgZm9yICRvcHQiCisgICAgIGV4aXRfY21kPWV4aXQKKyAgICAgYnJlYWsKKyAgICAgOzsKK2VzYWMKKwkJCXNoaWZ0CisJCQk7OworICAgICAgLS1uby1zaWxlbnR8LS1uby1xdWlldCkKKwkJCW9wdF9zaWxlbnQ9ZmFsc2UKK2Z1bmNfYXBwZW5kIHByZXNlcnZlX2FyZ3MgIiAkb3B0IgorCQkJOzsKKyAgICAgIC0tbm8tdmVyYm9zZSkKKwkJCW9wdF92ZXJib3NlPWZhbHNlCitmdW5jX2FwcGVuZCBwcmVzZXJ2ZV9hcmdzICIgJG9wdCIKKwkJCTs7CisgICAgICAtLXNpbGVudHwtLXF1aWV0KQorCQkJb3B0X3NpbGVudD06CitmdW5jX2FwcGVuZCBwcmVzZXJ2ZV9hcmdzICIgJG9wdCIKKyAgICAgICAgb3B0X3ZlcmJvc2U9ZmFsc2UKKwkJCTs7CisgICAgICAtLXZlcmJvc2V8LXYpCisJCQlvcHRfdmVyYm9zZT06CitmdW5jX2FwcGVuZCBwcmVzZXJ2ZV9hcmdzICIgJG9wdCIKK29wdF9zaWxlbnQ9ZmFsc2UKKwkJCTs7CisgICAgICAtLXRhZykKKwkJCXRlc3QgJCMgPSAwICYmIGZ1bmNfbWlzc2luZ19hcmcgJG9wdCAmJiBicmVhaworCQkJb3B0YXJnPSIkMSIKKwkJCW9wdF90YWc9IiRvcHRhcmciCitmdW5jX2FwcGVuZCBwcmVzZXJ2ZV9hcmdzICIgJG9wdCAkb3B0YXJnIgorZnVuY19lbmFibGVfdGFnICIkb3B0YXJnIgorCQkJc2hpZnQKKwkJCTs7CisKKyAgICAgIC1cP3wtaCkJCWZ1bmNfdXNhZ2UJCQkJOzsKKyAgICAgIC0taGVscCkJCWZ1bmNfaGVscAkJCQk7OworICAgICAgLS12ZXJzaW9uKQlmdW5jX3ZlcnNpb24JCQkJOzsKKworICAgICAgIyBTZXBhcmF0ZSBvcHRhcmdzIHRvIGxvbmcgb3B0aW9uczoKKyAgICAgIC0tKj0qKQorCQkJZnVuY19zcGxpdF9sb25nX29wdCAiJG9wdCIKKwkJCXNldCBkdW1teSAiJGZ1bmNfc3BsaXRfbG9uZ19vcHRfbmFtZSIgIiRmdW5jX3NwbGl0X2xvbmdfb3B0X2FyZyIgJHsxKyIkQCJ9CisJCQlzaGlmdAorCQkJOzsKKworICAgICAgIyBTZXBhcmF0ZSBub24tYXJndW1lbnQgc2hvcnQgb3B0aW9uczoKKyAgICAgIC1cPyp8LWgqfC1uKnwtdiopCisJCQlmdW5jX3NwbGl0X3Nob3J0X29wdCAiJG9wdCIKKwkJCXNldCBkdW1teSAiJGZ1bmNfc3BsaXRfc2hvcnRfb3B0X25hbWUiICItJGZ1bmNfc3BsaXRfc2hvcnRfb3B0X2FyZyIgJHsxKyIkQCJ9CisJCQlzaGlmdAorCQkJOzsKKworICAgICAgLS0pCQlicmVhawkJCQkJOzsKKyAgICAgIC0qKQkJZnVuY19mYXRhbF9oZWxwICJ1bnJlY29nbml6ZWQgb3B0aW9uIFxgJG9wdCciIDs7CisgICAgICAqKQkJc2V0IGR1bW15ICIkb3B0IiAkezErIiRAIn07CXNoaWZ0OyBicmVhayAgOzsKKyAgICBlc2FjCisgIGRvbmUKKworICAjIFZhbGlkYXRlIG9wdGlvbnM6CisKKyAgIyBzYXZlIGZpcnN0IG5vbi1vcHRpb24gYXJndW1lbnQKKyAgaWYgdGVzdCAiJCMiIC1ndCAwOyB0aGVuCisgICAgbm9ub3B0PSIkb3B0IgorICAgIHNoaWZ0CisgIGZpCisKKyAgIyBwcmVzZXJ2ZSAtLWRlYnVnCisgIHRlc3QgIiRvcHRfZGVidWciID0gOiB8fCBmdW5jX2FwcGVuZCBwcmVzZXJ2ZV9hcmdzICIgLS1kZWJ1ZyIKKworICBjYXNlICRob3N0IGluCisgICAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKnB3MzIqIHwgKmNlZ2NjKikKKyAgICAgICMgZG9uJ3QgZWxpbWluYXRlIGR1cGxpY2F0aW9ucyBpbiAkcG9zdGRlcHMgYW5kICRwcmVkZXBzCisgICAgICBvcHRfZHVwbGljYXRlX2NvbXBpbGVyX2dlbmVyYXRlZF9kZXBzPToKKyAgICAgIDs7CisgICAgKikKKyAgICAgIG9wdF9kdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHM9JG9wdF9wcmVzZXJ2ZV9kdXBfZGVwcworICAgICAgOzsKKyAgZXNhYworCisgICRvcHRfaGVscCB8fCB7CisgICAgIyBTYW5pdHkgY2hlY2tzIGZpcnN0OgorICAgIGZ1bmNfY2hlY2tfdmVyc2lvbl9tYXRjaAorCisgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzICYmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgIT0geWVzOyB0aGVuCisgICAgICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gIm5vdCBjb25maWd1cmVkIHRvIGJ1aWxkIGFueSBraW5kIG9mIGxpYnJhcnkiCisgICAgZmkKKworICAgICMgRGFyd2luIHN1Y2tzCisgICAgZXZhbCBzdGRfc2hyZXh0PVwiJHNocmV4dF9jbWRzXCIKKworICAgICMgT25seSBleGVjdXRlIG1vZGUgaXMgYWxsb3dlZCB0byBoYXZlIC1kbG9wZW4gZmxhZ3MuCisgICAgaWYgdGVzdCAtbiAiJG9wdF9kbG9wZW4iICYmIHRlc3QgIiRvcHRfbW9kZSIgIT0gZXhlY3V0ZTsgdGhlbgorICAgICAgZnVuY19lcnJvciAidW5yZWNvZ25pemVkIG9wdGlvbiBcYC1kbG9wZW4nIgorICAgICAgJEVDSE8gIiRoZWxwIiAxPiYyCisgICAgICBleGl0ICRFWElUX0ZBSUxVUkUKKyAgICBmaQorCisgICAgIyBDaGFuZ2UgdGhlIGhlbHAgbWVzc2FnZSB0byBhIG1vZGUtc3BlY2lmaWMgb25lLgorICAgIGdlbmVyaWNfaGVscD0iJGhlbHAiCisgICAgaGVscD0iVHJ5IFxgJHByb2duYW1lIC0taGVscCAtLW1vZGU9JG9wdF9tb2RlJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCisgIH0KKworCisgICMgQmFpbCBpZiB0aGUgb3B0aW9ucyB3ZXJlIHNjcmV3ZWQKKyAgJGV4aXRfY21kICRFWElUX0ZBSUxVUkUKK30KKworCisKKwogIyMgLS0tLS0tLS0tLS0gIyMKICMjICAgIE1haW4uICAgICMjCiAjIyAtLS0tLS0tLS0tLSAjIwogCi0kb3B0X2hlbHAgfHwgewotICAjIFNhbml0eSBjaGVja3MgZmlyc3Q6Ci0gIGZ1bmNfY2hlY2tfdmVyc2lvbl9tYXRjaAotCi0gIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllcyAmJiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiICE9IHllczsgdGhlbgotICAgIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAibm90IGNvbmZpZ3VyZWQgdG8gYnVpbGQgYW55IGtpbmQgb2YgbGlicmFyeSIKLSAgZmkKLQotICB0ZXN0IC16ICIkbW9kZSIgJiYgZnVuY19mYXRhbF9lcnJvciAiZXJyb3I6IHlvdSBtdXN0IHNwZWNpZnkgYSBNT0RFLiIKLQotCi0gICMgRGFyd2luIHN1Y2tzCi0gIGV2YWwgc3RkX3NocmV4dD1cIiRzaHJleHRfY21kc1wiCi0KLQotICAjIE9ubHkgZXhlY3V0ZSBtb2RlIGlzIGFsbG93ZWQgdG8gaGF2ZSAtZGxvcGVuIGZsYWdzLgotICBpZiB0ZXN0IC1uICIkZXhlY3V0ZV9kbGZpbGVzIiAmJiB0ZXN0ICIkbW9kZSIgIT0gZXhlY3V0ZTsgdGhlbgotICAgIGZ1bmNfZXJyb3IgInVucmVjb2duaXplZCBvcHRpb24gXGAtZGxvcGVuJyIKLSAgICAkRUNITyAiJGhlbHAiIDE+JjIKLSAgICBleGl0ICRFWElUX0ZBSUxVUkUKLSAgZmkKLQotICAjIENoYW5nZSB0aGUgaGVscCBtZXNzYWdlIHRvIGEgbW9kZS1zcGVjaWZpYyBvbmUuCi0gIGdlbmVyaWNfaGVscD0iJGhlbHAiCi0gIGhlbHA9IlRyeSBcYCRwcm9nbmFtZSAtLWhlbHAgLS1tb2RlPSRtb2RlJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCi19Ci0KLQogIyBmdW5jX2xhbGliX3AgZmlsZQogIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9vbCBgLmxhJyBsaWJyYXJ5IG9yIGAubG8nIG9iamVjdCBmaWxlLgogIyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYSBiYXNpYyBzYW5pdHkgY2hlY2s7IGl0IHdpbGwgaGFyZGx5IGZsdXNoIG91dApAQCAtOTUwLDEyICsxMjg2LDkgQEAKICMgdGVtcG9yYXJ5IGx0d3JhcHBlcl9zY3JpcHQuCiBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICgpCiB7Ci0gICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQ9IiIKLSAgICBpZiBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgIiQxIjsgdGhlbgotCWZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiQxIiAiIiAiLiIKLQlmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLQlmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdD0iJGZ1bmNfZGlybmFtZV9yZXN1bHQvJG9iamRpci8ke2Z1bmNfc3RyaXBuYW1lX3Jlc3VsdH1fbHRzaHdyYXBwZXIiCi0gICAgZmkKKyAgICBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICIkMSIgIiIgIi4iCisgICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisgICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQ9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0LyRvYmpkaXIvJHtmdW5jX3N0cmlwbmFtZV9yZXN1bHR9X2x0c2h3cmFwcGVyIgogfQogCiAjIGZ1bmNfbHR3cmFwcGVyX3AgZmlsZQpAQCAtMTAwMSw2ICsxMzM0LDM3IEBACiB9CiAKIAorIyBmdW5jX3Jlc29sdmVfc3lzcm9vdCBQQVRICisjIFJlcGxhY2UgYSBsZWFkaW5nID0gaW4gUEFUSCB3aXRoIGEgc3lzcm9vdC4gIFN0b3JlIHRoZSByZXN1bHQgaW50bworIyBmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQKK2Z1bmNfcmVzb2x2ZV9zeXNyb290ICgpCit7CisgIGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdD0kMQorICBjYXNlICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQgaW4KKyAgPSopCisgICAgZnVuY19zdHJpcG5hbWUgJz0nICcnICIkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0IgorICAgIGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdD0kbHRfc3lzcm9vdCRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKyAgICA7OworICBlc2FjCit9CisKKyMgZnVuY19yZXBsYWNlX3N5c3Jvb3QgUEFUSAorIyBJZiBQQVRIIGJlZ2lucyB3aXRoIHRoZSBzeXNyb290LCByZXBsYWNlIGl0IHdpdGggPSBhbmQKKyMgc3RvcmUgdGhlIHJlc3VsdCBpbnRvIGZ1bmNfcmVwbGFjZV9zeXNyb290X3Jlc3VsdC4KK2Z1bmNfcmVwbGFjZV9zeXNyb290ICgpCit7CisgIGNhc2UgIiRsdF9zeXNyb290OiQxIiBpbgorICA/KjoiJGx0X3N5c3Jvb3QiKikKKyAgICBmdW5jX3N0cmlwbmFtZSAiJGx0X3N5c3Jvb3QiICcnICIkMSIKKyAgICBmdW5jX3JlcGxhY2Vfc3lzcm9vdF9yZXN1bHQ9Ij0kZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorICAgIDs7CisgICopCisgICAgIyBJbmNsdWRpbmcgbm8gc3lzcm9vdC4KKyAgICBmdW5jX3JlcGxhY2Vfc3lzcm9vdF9yZXN1bHQ9JDEKKyAgICA7OworICBlc2FjCit9CisKICMgZnVuY19pbmZlcl90YWcgYXJnCiAjIEluZmVyIHRhZ2dlZCBjb25maWd1cmF0aW9uIHRvIHVzZSBpZiBhbnkgYXJlIGF2YWlsYWJsZSBhbmQKICMgaWYgb25lIHdhc24ndCBjaG9zZW4gdmlhIHRoZSAiLS10YWciIGNvbW1hbmQgbGluZSBvcHRpb24uCkBAIC0xMDEzLDEzICsxMzc3LDE1IEBACiAgICAgaWYgdGVzdCAtbiAiJGF2YWlsYWJsZV90YWdzIiAmJiB0ZXN0IC16ICIkdGFnbmFtZSI7IHRoZW4KICAgICAgIENDX3F1b3RlZD0KICAgICAgIGZvciBhcmcgaW4gJENDOyBkbwotICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgotCUNDX3F1b3RlZD0iJENDX3F1b3RlZCAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisJZnVuY19hcHBlbmRfcXVvdGVkIENDX3F1b3RlZCAiJGFyZyIKICAgICAgIGRvbmUKKyAgICAgIENDX2V4cGFuZGVkPWBmdW5jX2VjaG9fYWxsICRDQ2AKKyAgICAgIENDX3F1b3RlZF9leHBhbmRlZD1gZnVuY19lY2hvX2FsbCAkQ0NfcXVvdGVkYAogICAgICAgY2FzZSAkQCBpbgogICAgICAgIyBCbGFua3MgaW4gdGhlIGNvbW1hbmQgbWF5IGhhdmUgYmVlbiBzdHJpcHBlZCBieSB0aGUgY2FsbGluZyBzaGVsbCwKICAgICAgICMgYnV0IG5vdCBmcm9tIHRoZSBDQyBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aGVuIGNvbmZpZ3VyZSB3YXMgcnVuLgotICAgICAgIiAkQ0MgIiogfCAiJENDICIqIHwgIiBgJEVDSE8gJENDYCAiKiB8ICJgJEVDSE8gJENDYCAiKiB8ICIgJENDX3F1b3RlZCIqIHwgIiRDQ19xdW90ZWQgIiogfCAiIGAkRUNITyAkQ0NfcXVvdGVkYCAiKiB8ICJgJEVDSE8gJENDX3F1b3RlZGAgIiopIDs7CisgICAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiICRDQ19leHBhbmRlZCAiKiB8ICIkQ0NfZXhwYW5kZWQgIiogfCBcCisgICAgICAiICRDQ19xdW90ZWQiKiB8ICIkQ0NfcXVvdGVkICIqIHwgIiAkQ0NfcXVvdGVkX2V4cGFuZGVkICIqIHwgIiRDQ19xdW90ZWRfZXhwYW5kZWQgIiopIDs7CiAgICAgICAjIEJsYW5rcyBhdCB0aGUgc3RhcnQgb2YgJGJhc2VfY29tcGlsZSB3aWxsIGNhdXNlIHRoaXMgdG8gZmFpbAogICAgICAgIyBpZiB3ZSBkb24ndCBjaGVjayBmb3IgdGhlbSBhcyB3ZWxsLgogICAgICAgKikKQEAgLTEwMzAsMTEgKzEzOTYsMTMgQEAKIAkgICAgQ0NfcXVvdGVkPQogCSAgICBmb3IgYXJnIGluICRDQzsgZG8KIAkgICAgICAjIERvdWJsZS1xdW90ZSBhcmdzIGNvbnRhaW5pbmcgb3RoZXIgc2hlbGwgbWV0YWNoYXJhY3RlcnMuCi0JICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKLQkgICAgICBDQ19xdW90ZWQ9IiRDQ19xdW90ZWQgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorCSAgICAgIGZ1bmNfYXBwZW5kX3F1b3RlZCBDQ19xdW90ZWQgIiRhcmciCiAJICAgIGRvbmUKKwkgICAgQ0NfZXhwYW5kZWQ9YGZ1bmNfZWNob19hbGwgJENDYAorCSAgICBDQ19xdW90ZWRfZXhwYW5kZWQ9YGZ1bmNfZWNob19hbGwgJENDX3F1b3RlZGAKIAkgICAgY2FzZSAiJEAgIiBpbgotCSAgICAgICIgJENDICIqIHwgIiRDQyAiKiB8ICIgYCRFQ0hPICRDQ2AgIiogfCAiYCRFQ0hPICRDQ2AgIiogfCAiICRDQ19xdW90ZWQiKiB8ICIkQ0NfcXVvdGVkICIqIHwgIiBgJEVDSE8gJENDX3F1b3RlZGAgIiogfCAiYCRFQ0hPICRDQ19xdW90ZWRgICIqKQorCSAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiICRDQ19leHBhbmRlZCAiKiB8ICIkQ0NfZXhwYW5kZWQgIiogfCBcCisJICAgICIgJENDX3F1b3RlZCIqIHwgIiRDQ19xdW90ZWQgIiogfCAiICRDQ19xdW90ZWRfZXhwYW5kZWQgIiogfCAiJENDX3F1b3RlZF9leHBhbmRlZCAiKikKIAkgICAgICAjIFRoZSBjb21waWxlciBpbiB0aGUgYmFzZSBjb21waWxlIGNvbW1hbmQgbWF0Y2hlcwogCSAgICAgICMgdGhlIG9uZSBpbiB0aGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb24uCiAJICAgICAgIyBBc3N1bWUgdGhpcyBpcyB0aGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb24gd2Ugd2FudC4KQEAgLTEwOTcsNiArMTQ2NSw0ODYgQEAKICAgICB9CiB9CiAKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgRklMRSBOQU1FIEFORCBQQVRIIENPTlZFUlNJT04gSEVMUEVSIEZVTkNUSU9OUyAjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzIgQVJHCisjIEhlbHBlciBmdW5jdGlvbiB1c2VkIGJ5IGZpbGUgbmFtZSBjb252ZXJzaW9uIGZ1bmN0aW9ucyB3aGVuICRidWlsZCBpcyAqbml4LAorIyBhbmQgJGhvc3QgaXMgbWluZ3csIGN5Z3dpbiwgb3Igc29tZSBvdGhlciB3MzIgZW52aXJvbm1lbnQuIFJlbGllcyBvbiBhCisjIGNvcnJlY3RseSBjb25maWd1cmVkIHdpbmUgZW52aXJvbm1lbnQgYXZhaWxhYmxlLCB3aXRoIHRoZSB3aW5lcGF0aCBwcm9ncmFtCisjIGluICRidWlsZCdzICRQQVRILgorIworIyBBUkcgaXMgdGhlICRidWlsZCBmaWxlIG5hbWUgdG8gYmUgY29udmVydGVkIHRvIHczMiBmb3JtYXQuCisjIFJlc3VsdCBpcyBhdmFpbGFibGUgaW4gJGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzJfcmVzdWx0LCBhbmQgd2lsbAorIyBiZSBlbXB0eSBvbiBlcnJvciAob3Igd2hlbiBBUkcgaXMgZW1wdHkpCitmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMyICgpCit7CisgICRvcHRfZGVidWcKKyAgZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMl9yZXN1bHQ9IiQxIgorICBpZiB0ZXN0IC1uICIkMSI7IHRoZW4KKyAgICAjIFVuZm9ydHVuYXRlbHksIHdpbmVwYXRoIGRvZXMgbm90IGV4aXQgd2l0aCBhIG5vbi16ZXJvIGVycm9yIGNvZGUsIHNvIHdlCisgICAgIyBhcmUgZm9yY2VkIHRvIGNoZWNrIHRoZSBjb250ZW50cyBvZiBzdGRvdXQuIE9uIHRoZSBvdGhlciBoYW5kLCBpZiB0aGUKKyAgICAjIGNvbW1hbmQgaXMgbm90IGZvdW5kLCB0aGUgc2hlbGwgd2lsbCBzZXQgYW4gZXhpdCBjb2RlIG9mIDEyNyBhbmQgcHJpbnQKKyAgICAjICphbiBlcnJvciBtZXNzYWdlKiB0byBzdGRvdXQuIFNvIHdlIG11c3QgY2hlY2sgZm9yIGJvdGggZXJyb3IgY29kZSBvZgorICAgICMgemVybyBBTkQgbm9uLWVtcHR5IHN0ZG91dCwgd2hpY2ggZXhwbGFpbnMgdGhlIG9kZCBjb25zdHJ1Y3Rpb246CisgICAgZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMl90bXA9YHdpbmVwYXRoIC13ICIkMSIgMj4vZGV2L251bGxgCisgICAgaWYgdGVzdCAiJD8iIC1lcSAwICYmIHRlc3QgLW4gIiR7ZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMl90bXB9IjsgdGhlbgorICAgICAgZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMl9yZXN1bHQ9YCRFQ0hPICIkZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMl90bXAiIHwKKyAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnkiYAorICAgIGVsc2UKKyAgICAgIGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzJfcmVzdWx0PQorICAgIGZpCisgIGZpCit9CisjIGVuZDogZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMgorCisKKyMgZnVuY19jb252ZXJ0X2NvcmVfcGF0aF93aW5lX3RvX3czMiBBUkcKKyMgSGVscGVyIGZ1bmN0aW9uIHVzZWQgYnkgcGF0aCBjb252ZXJzaW9uIGZ1bmN0aW9ucyB3aGVuICRidWlsZCBpcyAqbml4LCBhbmQKKyMgJGhvc3QgaXMgbWluZ3csIGN5Z3dpbiwgb3Igc29tZSBvdGhlciB3MzIgZW52aXJvbm1lbnQuIFJlbGllcyBvbiBhIGNvcnJlY3RseQorIyBjb25maWd1cmVkIHdpbmUgZW52aXJvbm1lbnQgYXZhaWxhYmxlLCB3aXRoIHRoZSB3aW5lcGF0aCBwcm9ncmFtIGluICRidWlsZCdzCisjICRQQVRILiBBc3N1bWVzIEFSRyBoYXMgbm8gbGVhZGluZyBvciB0cmFpbGluZyBwYXRoIHNlcGFyYXRvciBjaGFyYWN0ZXJzLgorIworIyBBUkcgaXMgcGF0aCB0byBiZSBjb252ZXJ0ZWQgZnJvbSAkYnVpbGQgZm9ybWF0IHRvIHdpbjMyLgorIyBSZXN1bHQgaXMgYXZhaWxhYmxlIGluICRmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMyX3Jlc3VsdC4KKyMgVW5jb252ZXJ0aWJsZSBmaWxlIChkaXJlY3RvcnkpIG5hbWVzIGluIEFSRyBhcmUgc2tpcHBlZDsgaWYgbm8gZGlyZWN0b3J5IG5hbWVzCisjIGFyZSBjb252ZXJ0aWJsZSwgdGhlbiB0aGUgcmVzdWx0IG1heSBiZSBlbXB0eS4KK2Z1bmNfY29udmVydF9jb3JlX3BhdGhfd2luZV90b193MzIgKCkKK3sKKyAgJG9wdF9kZWJ1ZworICAjIHVuZm9ydHVuYXRlbHksIHdpbmVwYXRoIGRvZXNuJ3QgY29udmVydCBwYXRocywgb25seSBmaWxlIG5hbWVzCisgIGZ1bmNfY29udmVydF9jb3JlX3BhdGhfd2luZV90b193MzJfcmVzdWx0PSIiCisgIGlmIHRlc3QgLW4gIiQxIjsgdGhlbgorICAgIG9sZElGUz0kSUZTCisgICAgSUZTPToKKyAgICBmb3IgZnVuY19jb252ZXJ0X2NvcmVfcGF0aF93aW5lX3RvX3czMl9mIGluICQxOyBkbworICAgICAgSUZTPSRvbGRJRlMKKyAgICAgIGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzIgIiRmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMyX2YiCisgICAgICBpZiB0ZXN0IC1uICIkZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMl9yZXN1bHQiIDsgdGhlbgorICAgICAgICBpZiB0ZXN0IC16ICIkZnVuY19jb252ZXJ0X2NvcmVfcGF0aF93aW5lX3RvX3czMl9yZXN1bHQiOyB0aGVuCisgICAgICAgICAgZnVuY19jb252ZXJ0X2NvcmVfcGF0aF93aW5lX3RvX3czMl9yZXN1bHQ9IiRmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMyX3Jlc3VsdCIKKyAgICAgICAgZWxzZQorICAgICAgICAgIGZ1bmNfYXBwZW5kIGZ1bmNfY29udmVydF9jb3JlX3BhdGhfd2luZV90b193MzJfcmVzdWx0ICI7JGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzJfcmVzdWx0IgorICAgICAgICBmaQorICAgICAgZmkKKyAgICBkb25lCisgICAgSUZTPSRvbGRJRlMKKyAgZmkKK30KKyMgZW5kOiBmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMyCisKKworIyBmdW5jX2N5Z3BhdGggQVJHUy4uLgorIyBXcmFwcGVyIGFyb3VuZCBjYWxsaW5nIHRoZSBjeWdwYXRoIHByb2dyYW0gdmlhIExUX0NZR1BBVEguIFRoaXMgaXMgdXNlZCB3aGVuCisjIHdoZW4gKDEpICRidWlsZCBpcyAqbml4IGFuZCBDeWd3aW4gaXMgaG9zdGVkIHZpYSBhIHdpbmUgZW52aXJvbm1lbnQ7IG9yICgyKQorIyAkYnVpbGQgaXMgTVNZUyBhbmQgJGhvc3QgaXMgQ3lnd2luLCBvciAoMykgJGJ1aWxkIGlzIEN5Z3dpbi4gSW4gY2FzZSAoMSkgb3IKKyMgKDIpLCByZXR1cm5zIHRoZSBDeWd3aW4gZmlsZSBuYW1lIG9yIHBhdGggaW4gZnVuY19jeWdwYXRoX3Jlc3VsdCAoaW5wdXQKKyMgZmlsZSBuYW1lIG9yIHBhdGggaXMgYXNzdW1lZCB0byBiZSBpbiB3MzIgZm9ybWF0LCBhcyBwcmV2aW91c2x5IGNvbnZlcnRlZAorIyBmcm9tICRidWlsZCdzICpuaXggb3IgTVNZUyBmb3JtYXQpLiBJbiBjYXNlICgzKSwgcmV0dXJucyB0aGUgdzMyIGZpbGUgbmFtZQorIyBvciBwYXRoIGluIGZ1bmNfY3lncGF0aF9yZXN1bHQgKGlucHV0IGZpbGUgbmFtZSBvciBwYXRoIGlzIGFzc3VtZWQgdG8gYmUgaW4KKyMgQ3lnd2luIGZvcm1hdCkuIFJldHVybnMgYW4gZW1wdHkgc3RyaW5nIG9uIGVycm9yLgorIworIyBBUkdTIGFyZSBwYXNzZWQgdG8gY3lncGF0aCwgd2l0aCB0aGUgbGFzdCBvbmUgYmVpbmcgdGhlIGZpbGUgbmFtZSBvciBwYXRoIHRvCisjIGJlIGNvbnZlcnRlZC4KKyMKKyMgU3BlY2lmeSB0aGUgYWJzb2x1dGUgKm5peCAob3IgdzMyKSBuYW1lIHRvIGN5Z3BhdGggaW4gdGhlIExUX0NZR1BBVEgKKyMgZW52aXJvbm1lbnQgdmFyaWFibGU7IGRvIG5vdCBwdXQgaXQgaW4gJFBBVEguCitmdW5jX2N5Z3BhdGggKCkKK3sKKyAgJG9wdF9kZWJ1ZworICBpZiB0ZXN0IC1uICIkTFRfQ1lHUEFUSCIgJiYgdGVzdCAtZiAiJExUX0NZR1BBVEgiOyB0aGVuCisgICAgZnVuY19jeWdwYXRoX3Jlc3VsdD1gJExUX0NZR1BBVEggIiRAIiAyPi9kZXYvbnVsbGAKKyAgICBpZiB0ZXN0ICIkPyIgLW5lIDA7IHRoZW4KKyAgICAgICMgb24gZmFpbHVyZSwgZW5zdXJlIHJlc3VsdCBpcyBlbXB0eQorICAgICAgZnVuY19jeWdwYXRoX3Jlc3VsdD0KKyAgICBmaQorICBlbHNlCisgICAgZnVuY19jeWdwYXRoX3Jlc3VsdD0KKyAgICBmdW5jX2Vycm9yICJMVF9DWUdQQVRIIGlzIGVtcHR5IG9yIHNwZWNpZmllcyBub24tZXhpc3RlbnQgZmlsZTogXGAkTFRfQ1lHUEFUSCciCisgIGZpCit9CisjZW5kOiBmdW5jX2N5Z3BhdGgKKworCisjIGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyIEFSRworIyBDb252ZXJ0IGZpbGUgbmFtZSBvciBwYXRoIEFSRyBmcm9tIE1TWVMgZm9ybWF0IHRvIHczMiBmb3JtYXQuICBSZXR1cm4KKyMgcmVzdWx0IGluIGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyX3Jlc3VsdC4KK2Z1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyICgpCit7CisgICRvcHRfZGVidWcKKyAgIyBhd2t3YXJkOiBjbWQgYXBwZW5kcyBzcGFjZXMgdG8gcmVzdWx0CisgIGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyX3Jlc3VsdD1gKCBjbWQgLy9jIGVjaG8gIiQxIiApIDI+L2Rldi9udWxsIHwKKyAgICAkU0VEIC1lICdzL1sgXSokLy8nIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCit9CisjZW5kOiBmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMgorCisKKyMgZnVuY19jb252ZXJ0X2ZpbGVfY2hlY2sgQVJHMSBBUkcyCisjIFZlcmlmeSB0aGF0IEFSRzEgKGEgZmlsZSBuYW1lIGluICRidWlsZCBmb3JtYXQpIHdhcyBjb252ZXJ0ZWQgdG8gJGhvc3QKKyMgZm9ybWF0IGluIEFSRzIuIE90aGVyd2lzZSwgZW1pdCBhbiBlcnJvciBtZXNzYWdlLCBidXQgY29udGludWUgKHJlc2V0dGluZworIyBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQgdG8gQVJHMSkuCitmdW5jX2NvbnZlcnRfZmlsZV9jaGVjayAoKQoreworICAkb3B0X2RlYnVnCisgIGlmIHRlc3QgLXogIiQyIiAmJiB0ZXN0IC1uICIkMSIgOyB0aGVuCisgICAgZnVuY19lcnJvciAiQ291bGQgbm90IGRldGVybWluZSBob3N0IGZpbGUgbmFtZSBjb3JyZXNwb25kaW5nIHRvIgorICAgIGZ1bmNfZXJyb3IgIiAgXGAkMSciCisgICAgZnVuY19lcnJvciAiQ29udGludWluZywgYnV0IHVuaW5zdGFsbGVkIGV4ZWN1dGFibGVzIG1heSBub3Qgd29yay4iCisgICAgIyBGYWxsYmFjazoKKyAgICBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQ9IiQxIgorICBmaQorfQorIyBlbmQgZnVuY19jb252ZXJ0X2ZpbGVfY2hlY2sKKworCisjIGZ1bmNfY29udmVydF9wYXRoX2NoZWNrIEZST01fUEFUSFNFUCBUT19QQVRIU0VQIEZST01fUEFUSCBUT19QQVRICisjIFZlcmlmeSB0aGF0IEZST01fUEFUSCAoYSBwYXRoIGluICRidWlsZCBmb3JtYXQpIHdhcyBjb252ZXJ0ZWQgdG8gJGhvc3QKKyMgZm9ybWF0IGluIFRPX1BBVEguIE90aGVyd2lzZSwgZW1pdCBhbiBlcnJvciBtZXNzYWdlLCBidXQgY29udGludWUsIHJlc2V0dGluZworIyBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQgdG8gYSBzaW1wbGlzdGljIGZhbGxiYWNrIHZhbHVlIChzZWUgYmVsb3cpLgorZnVuY19jb252ZXJ0X3BhdGhfY2hlY2sgKCkKK3sKKyAgJG9wdF9kZWJ1ZworICBpZiB0ZXN0IC16ICIkNCIgJiYgdGVzdCAtbiAiJDMiOyB0aGVuCisgICAgZnVuY19lcnJvciAiQ291bGQgbm90IGRldGVybWluZSB0aGUgaG9zdCBwYXRoIGNvcnJlc3BvbmRpbmcgdG8iCisgICAgZnVuY19lcnJvciAiICBcYCQzJyIKKyAgICBmdW5jX2Vycm9yICJDb250aW51aW5nLCBidXQgdW5pbnN0YWxsZWQgZXhlY3V0YWJsZXMgbWF5IG5vdCB3b3JrLiIKKyAgICAjIEZhbGxiYWNrLiAgVGhpcyBpcyBhIGRlbGliZXJhdGVseSBzaW1wbGlzdGljICJjb252ZXJzaW9uIiBhbmQKKyAgICAjIHNob3VsZCBub3QgYmUgImltcHJvdmVkIi4gIFNlZSBsaWJ0b29sLmluZm8uCisgICAgaWYgdGVzdCAieCQxIiAhPSAieCQyIjsgdGhlbgorICAgICAgbHRfcmVwbGFjZV9wYXRoc2VwX2NoYXJzPSJzfCQxfCQyfGciCisgICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9YGVjaG8gIiQzIiB8CisgICAgICAgICRTRUQgLWUgIiRsdF9yZXBsYWNlX3BhdGhzZXBfY2hhcnMiYAorICAgIGVsc2UKKyAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDMiCisgICAgZmkKKyAgZmkKK30KKyMgZW5kIGZ1bmNfY29udmVydF9wYXRoX2NoZWNrCisKKworIyBmdW5jX2NvbnZlcnRfcGF0aF9mcm9udF9iYWNrX3BhdGhzZXAgRlJPTlRQQVQgQkFDS1BBVCBSRVBMIE9SSUcKKyMgTW9kaWZpZXMgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IGJ5IHByZXBlbmRpbmcgUkVQTCBpZiBPUklHIG1hdGNoZXMgRlJPTlRQQVQKKyMgYW5kIGFwcGVuZGluZyBSRVBMIGlmIE9SSUcgbWF0Y2hlcyBCQUNLUEFULgorZnVuY19jb252ZXJ0X3BhdGhfZnJvbnRfYmFja19wYXRoc2VwICgpCit7CisgICRvcHRfZGVidWcKKyAgY2FzZSAkNCBpbgorICAkMSApIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDMkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IgorICAgIDs7CisgIGVzYWMKKyAgY2FzZSAkNCBpbgorICAkMiApIGZ1bmNfYXBwZW5kIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCAiJDMiCisgICAgOzsKKyAgZXNhYworfQorIyBlbmQgZnVuY19jb252ZXJ0X3BhdGhfZnJvbnRfYmFja19wYXRoc2VwCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgJGJ1aWxkIHRvICRob3N0IEZJTEUgTkFNRSBDT05WRVJTSU9OIEZVTkNUSU9OUyAjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBpbnZva2VkIHZpYSBgJHRvX2hvc3RfZmlsZV9jbWQgQVJHJworIworIyBJbiBlYWNoIGNhc2UsIEFSRyBpcyB0aGUgcGF0aCB0byBiZSBjb252ZXJ0ZWQgZnJvbSAkYnVpbGQgdG8gJGhvc3QgZm9ybWF0LgorIyBSZXN1bHQgd2lsbCBiZSBhdmFpbGFibGUgaW4gJGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4KKworCisjIGZ1bmNfdG9faG9zdF9maWxlIEFSRworIyBDb252ZXJ0cyB0aGUgZmlsZSBuYW1lIEFSRyBmcm9tICRidWlsZCBmb3JtYXQgdG8gJGhvc3QgZm9ybWF0LiBSZXR1cm4gcmVzdWx0CisjIGluIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4KK2Z1bmNfdG9faG9zdF9maWxlICgpCit7CisgICRvcHRfZGVidWcKKyAgJHRvX2hvc3RfZmlsZV9jbWQgIiQxIgorfQorIyBlbmQgZnVuY190b19ob3N0X2ZpbGUKKworCisjIGZ1bmNfdG9fdG9vbF9maWxlIEFSRyBMQVpZCisjIGNvbnZlcnRzIHRoZSBmaWxlIG5hbWUgQVJHIGZyb20gJGJ1aWxkIGZvcm1hdCB0byB0b29sY2hhaW4gZm9ybWF0LiBSZXR1cm4KKyMgcmVzdWx0IGluIGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdC4gIElmIHRoZSBjb252ZXJzaW9uIGluIHVzZSBpcyBsaXN0ZWQKKyMgaW4gKHRoZSBjb21tYSBzZXBhcmF0ZWQpIExBWlksIG5vIGNvbnZlcnNpb24gdGFrZXMgcGxhY2UuCitmdW5jX3RvX3Rvb2xfZmlsZSAoKQoreworICAkb3B0X2RlYnVnCisgIGNhc2UgLCQyLCBpbgorICAgICosIiR0b190b29sX2ZpbGVfY21kIiwqKQorICAgICAgZnVuY190b190b29sX2ZpbGVfcmVzdWx0PSQxCisgICAgICA7OworICAgICopCisgICAgICAkdG9fdG9vbF9maWxlX2NtZCAiJDEiCisgICAgICBmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQ9JGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdAorICAgICAgOzsKKyAgZXNhYworfQorIyBlbmQgZnVuY190b190b29sX2ZpbGUKKworCisjIGZ1bmNfY29udmVydF9maWxlX25vb3AgQVJHCisjIENvcHkgQVJHIHRvIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4KK2Z1bmNfY29udmVydF9maWxlX25vb3AgKCkKK3sKKyAgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0PSIkMSIKK30KKyMgZW5kIGZ1bmNfY29udmVydF9maWxlX25vb3AKKworCisjIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyIEFSRworIyBDb252ZXJ0IGZpbGUgbmFtZSBBUkcgZnJvbSAobWluZ3cpIE1TWVMgdG8gKG1pbmd3KSB3MzIgZm9ybWF0OyBhdXRvbWF0aWMKKyMgY29udmVyc2lvbiB0byB3MzIgaXMgbm90IGF2YWlsYWJsZSBpbnNpZGUgdGhlIGN3cmFwcGVyLiAgUmV0dXJucyByZXN1bHQgaW4KKyMgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0LgorZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIgKCkKK3sKKyAgJG9wdF9kZWJ1ZworICBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQ9IiQxIgorICBpZiB0ZXN0IC1uICIkMSI7IHRoZW4KKyAgICBmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMiAiJDEiCisgICAgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0PSIkZnVuY19jb252ZXJ0X2NvcmVfbXN5c190b193MzJfcmVzdWx0IgorICBmaQorICBmdW5jX2NvbnZlcnRfZmlsZV9jaGVjayAiJDEiICIkZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0IgorfQorIyBlbmQgZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIKKworCisjIGZ1bmNfY29udmVydF9maWxlX2N5Z3dpbl90b193MzIgQVJHCisjIENvbnZlcnQgZmlsZSBuYW1lIEFSRyBmcm9tIEN5Z3dpbiB0byB3MzIgZm9ybWF0LiAgUmV0dXJucyByZXN1bHQgaW4KKyMgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0LgorZnVuY19jb252ZXJ0X2ZpbGVfY3lnd2luX3RvX3czMiAoKQoreworICAkb3B0X2RlYnVnCisgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJDEiCisgIGlmIHRlc3QgLW4gIiQxIjsgdGhlbgorICAgICMgYmVjYXVzZSAkYnVpbGQgaXMgY3lnd2luLCB3ZSBjYWxsICJ0aGUiIGN5Z3BhdGggaW4gJFBBVEg7IG5vIG5lZWQgdG8gdXNlCisgICAgIyBMVF9DWUdQQVRIIGluIHRoaXMgY2FzZS4KKyAgICBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQ9YGN5Z3BhdGggLW0gIiQxImAKKyAgZmkKKyAgZnVuY19jb252ZXJ0X2ZpbGVfY2hlY2sgIiQxIiAiJGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdCIKK30KKyMgZW5kIGZ1bmNfY29udmVydF9maWxlX2N5Z3dpbl90b193MzIKKworCisjIGZ1bmNfY29udmVydF9maWxlX25peF90b193MzIgQVJHCisjIENvbnZlcnQgZmlsZSBuYW1lIEFSRyBmcm9tICpuaXggdG8gdzMyIGZvcm1hdC4gIFJlcXVpcmVzIGEgd2luZSBlbnZpcm9ubWVudAorIyBhbmQgYSB3b3JraW5nIHdpbmVwYXRoLiBSZXR1cm5zIHJlc3VsdCBpbiBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCitmdW5jX2NvbnZlcnRfZmlsZV9uaXhfdG9fdzMyICgpCit7CisgICRvcHRfZGVidWcKKyAgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0PSIkMSIKKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCisgICAgZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMiAiJDEiCisgICAgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0PSIkZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMl9yZXN1bHQiCisgIGZpCisgIGZ1bmNfY29udmVydF9maWxlX2NoZWNrICIkMSIgIiRmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQiCit9CisjIGVuZCBmdW5jX2NvbnZlcnRfZmlsZV9uaXhfdG9fdzMyCisKKworIyBmdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX2N5Z3dpbiBBUkcKKyMgQ29udmVydCBmaWxlIG5hbWUgQVJHIGZyb20gTVNZUyB0byBDeWd3aW4gZm9ybWF0LiAgUmVxdWlyZXMgTFRfQ1lHUEFUSCBzZXQuCisjIFJldHVybnMgcmVzdWx0IGluIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4KK2Z1bmNfY29udmVydF9maWxlX21zeXNfdG9fY3lnd2luICgpCit7CisgICRvcHRfZGVidWcKKyAgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0PSIkMSIKKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCisgICAgZnVuY19jb252ZXJ0X2NvcmVfbXN5c190b193MzIgIiQxIgorICAgIGZ1bmNfY3lncGF0aCAtdSAiJGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyX3Jlc3VsdCIKKyAgICBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQ9IiRmdW5jX2N5Z3BhdGhfcmVzdWx0IgorICBmaQorICBmdW5jX2NvbnZlcnRfZmlsZV9jaGVjayAiJDEiICIkZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0IgorfQorIyBlbmQgZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b19jeWd3aW4KKworCisjIGZ1bmNfY29udmVydF9maWxlX25peF90b19jeWd3aW4gQVJHCisjIENvbnZlcnQgZmlsZSBuYW1lIEFSRyBmcm9tICpuaXggdG8gQ3lnd2luIGZvcm1hdC4gIFJlcXVpcmVzIEN5Z3dpbiBpbnN0YWxsZWQKKyMgaW4gYSB3aW5lIGVudmlyb25tZW50LCB3b3JraW5nIHdpbmVwYXRoLCBhbmQgTFRfQ1lHUEFUSCBzZXQuICBSZXR1cm5zIHJlc3VsdAorIyBpbiBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCitmdW5jX2NvbnZlcnRfZmlsZV9uaXhfdG9fY3lnd2luICgpCit7CisgICRvcHRfZGVidWcKKyAgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0PSIkMSIKKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCisgICAgIyBjb252ZXJ0IGZyb20gKm5peCB0byB3MzIsIHRoZW4gdXNlIGN5Z3BhdGggdG8gY29udmVydCBmcm9tIHczMiB0byBjeWd3aW4uCisgICAgZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMiAiJDEiCisgICAgZnVuY19jeWdwYXRoIC11ICIkZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMl9yZXN1bHQiCisgICAgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0PSIkZnVuY19jeWdwYXRoX3Jlc3VsdCIKKyAgZmkKKyAgZnVuY19jb252ZXJ0X2ZpbGVfY2hlY2sgIiQxIiAiJGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdCIKK30KKyMgZW5kIGZ1bmNfY29udmVydF9maWxlX25peF90b19jeWd3aW4KKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgJGJ1aWxkIHRvICRob3N0IFBBVEggQ09OVkVSU0lPTiBGVU5DVElPTlMgIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIGludm9rZWQgdmlhIGAkdG9faG9zdF9wYXRoX2NtZCBBUkcnCisjCisjIEluIGVhY2ggY2FzZSwgQVJHIGlzIHRoZSBwYXRoIHRvIGJlIGNvbnZlcnRlZCBmcm9tICRidWlsZCB0byAkaG9zdCBmb3JtYXQuCisjIFRoZSByZXN1bHQgd2lsbCBiZSBhdmFpbGFibGUgaW4gJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdC4KKyMKKyMgUGF0aCBzZXBhcmF0b3JzIGFyZSBhbHNvIGNvbnZlcnRlZCBmcm9tICRidWlsZCBmb3JtYXQgdG8gJGhvc3QgZm9ybWF0LiAgSWYKKyMgQVJHIGJlZ2lucyBvciBlbmRzIHdpdGggYSBwYXRoIHNlcGFyYXRvciBjaGFyYWN0ZXIsIGl0IGlzIHByZXNlcnZlZCAoYnV0CisjIGNvbnZlcnRlZCB0byAkaG9zdCBmb3JtYXQpIG9uIG91dHB1dC4KKyMKKyMgQWxsIHBhdGggY29udmVyc2lvbiBmdW5jdGlvbnMgYXJlIG5hbWVkIHVzaW5nIHRoZSBmb2xsb3dpbmcgY29udmVudGlvbjoKKyMgICBmaWxlIG5hbWUgY29udmVyc2lvbiBmdW5jdGlvbiAgICA6IGZ1bmNfY29udmVydF9maWxlX1hfdG9fWSAoKQorIyAgIHBhdGggY29udmVyc2lvbiBmdW5jdGlvbiAgICAgICAgIDogZnVuY19jb252ZXJ0X3BhdGhfWF90b19ZICgpCisjIHdoZXJlLCBmb3IgYW55IGdpdmVuICRidWlsZC8kaG9zdCBjb21iaW5hdGlvbiB0aGUgJ1hfdG9fWScgdmFsdWUgaXMgdGhlCisjIHNhbWUuICBJZiBjb252ZXJzaW9uIGZ1bmN0aW9ucyBhcmUgYWRkZWQgZm9yIG5ldyAkYnVpbGQvJGhvc3QgY29tYmluYXRpb25zLAorIyB0aGUgdHdvIG5ldyBmdW5jdGlvbnMgbXVzdCBmb2xsb3cgdGhpcyBwYXR0ZXJuLCBvciBmdW5jX2luaXRfdG9faG9zdF9wYXRoX2NtZAorIyB3aWxsIGJyZWFrLgorCisKKyMgZnVuY19pbml0X3RvX2hvc3RfcGF0aF9jbWQKKyMgRW5zdXJlcyB0aGF0IGZ1bmN0aW9uICJwb2ludGVyIiB2YXJpYWJsZSAkdG9faG9zdF9wYXRoX2NtZCBpcyBzZXQgdG8gdGhlCisjIGFwcHJvcHJpYXRlIHZhbHVlLCBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgJHRvX2hvc3RfZmlsZV9jbWQuCit0b19ob3N0X3BhdGhfY21kPQorZnVuY19pbml0X3RvX2hvc3RfcGF0aF9jbWQgKCkKK3sKKyAgJG9wdF9kZWJ1ZworICBpZiB0ZXN0IC16ICIkdG9faG9zdF9wYXRoX2NtZCI7IHRoZW4KKyAgICBmdW5jX3N0cmlwbmFtZSAnZnVuY19jb252ZXJ0X2ZpbGVfJyAnJyAiJHRvX2hvc3RfZmlsZV9jbWQiCisgICAgdG9faG9zdF9wYXRoX2NtZD0iZnVuY19jb252ZXJ0X3BhdGhfJHtmdW5jX3N0cmlwbmFtZV9yZXN1bHR9IgorICBmaQorfQorCisKKyMgZnVuY190b19ob3N0X3BhdGggQVJHCisjIENvbnZlcnRzIHRoZSBwYXRoIEFSRyBmcm9tICRidWlsZCBmb3JtYXQgdG8gJGhvc3QgZm9ybWF0LiBSZXR1cm4gcmVzdWx0CisjIGluIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdC4KK2Z1bmNfdG9faG9zdF9wYXRoICgpCit7CisgICRvcHRfZGVidWcKKyAgZnVuY19pbml0X3RvX2hvc3RfcGF0aF9jbWQKKyAgJHRvX2hvc3RfcGF0aF9jbWQgIiQxIgorfQorIyBlbmQgZnVuY190b19ob3N0X3BhdGgKKworCisjIGZ1bmNfY29udmVydF9wYXRoX25vb3AgQVJHCisjIENvcHkgQVJHIHRvIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdC4KK2Z1bmNfY29udmVydF9wYXRoX25vb3AgKCkKK3sKKyAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIKK30KKyMgZW5kIGZ1bmNfY29udmVydF9wYXRoX25vb3AKKworCisjIGZ1bmNfY29udmVydF9wYXRoX21zeXNfdG9fdzMyIEFSRworIyBDb252ZXJ0IHBhdGggQVJHIGZyb20gKG1pbmd3KSBNU1lTIHRvIChtaW5ndykgdzMyIGZvcm1hdDsgYXV0b21hdGljCisjIGNvbnZlcnNpb24gdG8gdzMyIGlzIG5vdCBhdmFpbGFibGUgaW5zaWRlIHRoZSBjd3JhcHBlci4gIFJldHVybnMgcmVzdWx0IGluCisjIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdC4KK2Z1bmNfY29udmVydF9wYXRoX21zeXNfdG9fdzMyICgpCit7CisgICRvcHRfZGVidWcKKyAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIKKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCisgICAgIyBSZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgcGF0aCBzZXBhcmF0b3IgY2hhcmFjdGVycyBmcm9tIEFSRy4gIE1TWVMKKyAgICAjIGJlaGF2aW9yIGlzIGluY29uc2lzdGVudCBoZXJlOyBjeWdwYXRoIHR1cm5zIHRoZW0gaW50byAnLjsnIGFuZCAnOy4nOworICAgICMgYW5kIHdpbmVwYXRoIGlnbm9yZXMgdGhlbSBjb21wbGV0ZWx5LgorICAgIGZ1bmNfc3RyaXBuYW1lIDogOiAiJDEiCisgICAgZnVuY190b19ob3N0X3BhdGhfdG1wMT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisgICAgZnVuY19jb252ZXJ0X2NvcmVfbXN5c190b193MzIgIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIgorICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyX3Jlc3VsdCIKKyAgICBmdW5jX2NvbnZlcnRfcGF0aF9jaGVjayA6ICI7IiBcCisgICAgICAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiICIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IgorICAgIGZ1bmNfY29udmVydF9wYXRoX2Zyb250X2JhY2tfcGF0aHNlcCAiOioiICIqOiIgIjsiICIkMSIKKyAgZmkKK30KKyMgZW5kIGZ1bmNfY29udmVydF9wYXRoX21zeXNfdG9fdzMyCisKKworIyBmdW5jX2NvbnZlcnRfcGF0aF9jeWd3aW5fdG9fdzMyIEFSRworIyBDb252ZXJ0IHBhdGggQVJHIGZyb20gQ3lnd2luIHRvIHczMiBmb3JtYXQuICBSZXR1cm5zIHJlc3VsdCBpbgorIyBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCitmdW5jX2NvbnZlcnRfcGF0aF9jeWd3aW5fdG9fdzMyICgpCit7CisgICRvcHRfZGVidWcKKyAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIKKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCisgICAgIyBTZWUgZnVuY19jb252ZXJ0X3BhdGhfbXN5c190b193MzI6CisgICAgZnVuY19zdHJpcG5hbWUgOiA6ICIkMSIKKyAgICBmdW5jX3RvX2hvc3RfcGF0aF90bXAxPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKyAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9YGN5Z3BhdGggLW0gLXAgIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxImAKKyAgICBmdW5jX2NvbnZlcnRfcGF0aF9jaGVjayA6ICI7IiBcCisgICAgICAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiICIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IgorICAgIGZ1bmNfY29udmVydF9wYXRoX2Zyb250X2JhY2tfcGF0aHNlcCAiOioiICIqOiIgIjsiICIkMSIKKyAgZmkKK30KKyMgZW5kIGZ1bmNfY29udmVydF9wYXRoX2N5Z3dpbl90b193MzIKKworCisjIGZ1bmNfY29udmVydF9wYXRoX25peF90b193MzIgQVJHCisjIENvbnZlcnQgcGF0aCBBUkcgZnJvbSAqbml4IHRvIHczMiBmb3JtYXQuICBSZXF1aXJlcyBhIHdpbmUgZW52aXJvbm1lbnQgYW5kCisjIGEgd29ya2luZyB3aW5lcGF0aC4gIFJldHVybnMgcmVzdWx0IGluIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4KK2Z1bmNfY29udmVydF9wYXRoX25peF90b193MzIgKCkKK3sKKyAgJG9wdF9kZWJ1ZworICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiQxIgorICBpZiB0ZXN0IC1uICIkMSI7IHRoZW4KKyAgICAjIFNlZSBmdW5jX2NvbnZlcnRfcGF0aF9tc3lzX3RvX3czMjoKKyAgICBmdW5jX3N0cmlwbmFtZSA6IDogIiQxIgorICAgIGZ1bmNfdG9faG9zdF9wYXRoX3RtcDE9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorICAgIGZ1bmNfY29udmVydF9jb3JlX3BhdGhfd2luZV90b193MzIgIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIgorICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJGZ1bmNfY29udmVydF9jb3JlX3BhdGhfd2luZV90b193MzJfcmVzdWx0IgorICAgIGZ1bmNfY29udmVydF9wYXRoX2NoZWNrIDogIjsiIFwKKyAgICAgICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSIgIiRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiCisgICAgZnVuY19jb252ZXJ0X3BhdGhfZnJvbnRfYmFja19wYXRoc2VwICI6KiIgIio6IiAiOyIgIiQxIgorICBmaQorfQorIyBlbmQgZnVuY19jb252ZXJ0X3BhdGhfbml4X3RvX3czMgorCisKKyMgZnVuY19jb252ZXJ0X3BhdGhfbXN5c190b19jeWd3aW4gQVJHCisjIENvbnZlcnQgcGF0aCBBUkcgZnJvbSBNU1lTIHRvIEN5Z3dpbiBmb3JtYXQuICBSZXF1aXJlcyBMVF9DWUdQQVRIIHNldC4KKyMgUmV0dXJucyByZXN1bHQgaW4gZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0LgorZnVuY19jb252ZXJ0X3BhdGhfbXN5c190b19jeWd3aW4gKCkKK3sKKyAgJG9wdF9kZWJ1ZworICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiQxIgorICBpZiB0ZXN0IC1uICIkMSI7IHRoZW4KKyAgICAjIFNlZSBmdW5jX2NvbnZlcnRfcGF0aF9tc3lzX3RvX3czMjoKKyAgICBmdW5jX3N0cmlwbmFtZSA6IDogIiQxIgorICAgIGZ1bmNfdG9faG9zdF9wYXRoX3RtcDE9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorICAgIGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSIKKyAgICBmdW5jX2N5Z3BhdGggLXUgLXAgIiRmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMl9yZXN1bHQiCisgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkZnVuY19jeWdwYXRoX3Jlc3VsdCIKKyAgICBmdW5jX2NvbnZlcnRfcGF0aF9jaGVjayA6IDogXAorICAgICAgIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIiAiJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIKKyAgICBmdW5jX2NvbnZlcnRfcGF0aF9mcm9udF9iYWNrX3BhdGhzZXAgIjoqIiAiKjoiIDogIiQxIgorICBmaQorfQorIyBlbmQgZnVuY19jb252ZXJ0X3BhdGhfbXN5c190b19jeWd3aW4KKworCisjIGZ1bmNfY29udmVydF9wYXRoX25peF90b19jeWd3aW4gQVJHCisjIENvbnZlcnQgcGF0aCBBUkcgZnJvbSAqbml4IHRvIEN5Z3dpbiBmb3JtYXQuICBSZXF1aXJlcyBDeWd3aW4gaW5zdGFsbGVkIGluIGEKKyMgYSB3aW5lIGVudmlyb25tZW50LCB3b3JraW5nIHdpbmVwYXRoLCBhbmQgTFRfQ1lHUEFUSCBzZXQuICBSZXR1cm5zIHJlc3VsdCBpbgorIyBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCitmdW5jX2NvbnZlcnRfcGF0aF9uaXhfdG9fY3lnd2luICgpCit7CisgICRvcHRfZGVidWcKKyAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIKKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCisgICAgIyBSZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgcGF0aCBzZXBhcmF0b3IgY2hhcmFjdGVycyBmcm9tCisgICAgIyBBUkcuIG1zeXMgYmVoYXZpb3IgaXMgaW5jb25zaXN0ZW50IGhlcmUsIGN5Z3BhdGggdHVybnMgdGhlbQorICAgICMgaW50byAnLjsnIGFuZCAnOy4nLCBhbmQgd2luZXBhdGggaWdub3JlcyB0aGVtIGNvbXBsZXRlbHkuCisgICAgZnVuY19zdHJpcG5hbWUgOiA6ICIkMSIKKyAgICBmdW5jX3RvX2hvc3RfcGF0aF90bXAxPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKyAgICBmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMyICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSIKKyAgICBmdW5jX2N5Z3BhdGggLXUgLXAgIiRmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMyX3Jlc3VsdCIKKyAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiRmdW5jX2N5Z3BhdGhfcmVzdWx0IgorICAgIGZ1bmNfY29udmVydF9wYXRoX2NoZWNrIDogOiBcCisgICAgICAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiICIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IgorICAgIGZ1bmNfY29udmVydF9wYXRoX2Zyb250X2JhY2tfcGF0aHNlcCAiOioiICIqOiIgOiAiJDEiCisgIGZpCit9CisjIGVuZCBmdW5jX2NvbnZlcnRfcGF0aF9uaXhfdG9fY3lnd2luCisKKwogIyBmdW5jX21vZGVfY29tcGlsZSBhcmcuLi4KIGZ1bmNfbW9kZV9jb21waWxlICgpCiB7CkBAIC0xMTM3LDEyICsxOTg1LDEyIEBACiAJICA7OwogCiAJLXBpZSB8IC1mcGllIHwgLWZQSUUpCi0gICAgICAgICAgcGllX2ZsYWc9IiRwaWVfZmxhZyAkYXJnIgorICAgICAgICAgIGZ1bmNfYXBwZW5kIHBpZV9mbGFnICIgJGFyZyIKIAkgIGNvbnRpbnVlCiAJICA7OwogCiAJLXNoYXJlZCB8IC1zdGF0aWMgfCAtcHJlZmVyLXBpYyB8IC1wcmVmZXItbm9uLXBpYykKLQkgIGxhdGVyPSIkbGF0ZXIgJGFyZyIKKwkgIGZ1bmNfYXBwZW5kIGxhdGVyICIgJGFyZyIKIAkgIGNvbnRpbnVlCiAJICA7OwogCkBAIC0xMTYzLDE1ICsyMDExLDE0IEBACiAJICBzYXZlX2lmcz0iJElGUyI7IElGUz0nLCcKIAkgIGZvciBhcmcgaW4gJGFyZ3M7IGRvCiAJICAgIElGUz0iJHNhdmVfaWZzIgotCSAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgotCSAgICBsYXN0YXJnPSIkbGFzdGFyZyAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisJICAgIGZ1bmNfYXBwZW5kX3F1b3RlZCBsYXN0YXJnICIkYXJnIgogCSAgZG9uZQogCSAgSUZTPSIkc2F2ZV9pZnMiCiAJICBmdW5jX3N0cmlwbmFtZSAnICcgJycgIiRsYXN0YXJnIgogCSAgbGFzdGFyZz0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CiAKIAkgICMgQWRkIHRoZSBhcmd1bWVudHMgdG8gYmFzZV9jb21waWxlLgotCSAgYmFzZV9jb21waWxlPSIkYmFzZV9jb21waWxlICRsYXN0YXJnIgorCSAgZnVuY19hcHBlbmQgYmFzZV9jb21waWxlICIgJGxhc3RhcmciCiAJICBjb250aW51ZQogCSAgOzsKIApAQCAtMTE4Nyw4ICsyMDM0LDcgQEAKICAgICAgIGVzYWMgICAgIyAgY2FzZSAkYXJnX21vZGUKIAogICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIHRoZSBwcmV2aW91cyBhcmd1bWVudC4KLSAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRsYXN0YXJnIgotICAgICAgYmFzZV9jb21waWxlPSIkYmFzZV9jb21waWxlICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKyAgICAgIGZ1bmNfYXBwZW5kX3F1b3RlZCBiYXNlX2NvbXBpbGUgIiRsYXN0YXJnIgogICAgIGRvbmUgIyBmb3IgYXJnCiAKICAgICBjYXNlICRhcmdfbW9kZSBpbgpAQCAtMTIxMyw3ICsyMDU5LDcgQEAKICAgICAqLltjQ0ZTaWZtc29dIHwgXAogICAgICouYWRhIHwgKi5hZGIgfCAqLmFkcyB8ICouYXNtIHwgXAogICAgICouYysrIHwgKi5jYyB8ICouaWkgfCAqLmNsYXNzIHwgKi5jcHAgfCAqLmN4eCB8IFwKLSAgICAqLltmRl1bMDldPyB8ICouZm9yIHwgKi5qYXZhIHwgKi5vYmogfCAqLnN4KQorICAgICouW2ZGXVswOV0/IHwgKi5mb3IgfCAqLmphdmEgfCAqLm9iaiB8ICouc3ggfCAqLmN1IHwgKi5jdXApCiAgICAgICBmdW5jX3hmb3JtICIkbGlib2JqIgogICAgICAgbGlib2JqPSRmdW5jX3hmb3JtX3Jlc3VsdAogICAgICAgOzsKQEAgLTEyODgsNyArMjEzNCw3IEBACiAgICAgIyBDYWxjdWxhdGUgdGhlIGZpbGVuYW1lIG9mIHRoZSBvdXRwdXQgb2JqZWN0IGlmIGNvbXBpbGVyIGRvZXMKICAgICAjIG5vdCBzdXBwb3J0IC1vIHdpdGggLWMKICAgICBpZiB0ZXN0ICIkY29tcGlsZXJfY19vIiA9IG5vOyB0aGVuCi0gICAgICBvdXRwdXRfb2JqPWAkRUNITyAiWCRzcmNmaWxlIiB8ICRYc2VkIC1lICdzJV4uKi8lJScgLWUgJ3MlXC5bXi5dKiQlJSdgLiR7b2JqZXh0fQorICAgICAgb3V0cHV0X29iaj1gJEVDSE8gIiRzcmNmaWxlIiB8ICRTRUQgJ3MlXi4qLyUlOyBzJVwuW14uXSokJSUnYC4ke29iamV4dH0KICAgICAgIGxvY2tmaWxlPSIkb3V0cHV0X29iai5sb2NrIgogICAgIGVsc2UKICAgICAgIG91dHB1dF9vYmo9CkBAIC0xMzE5LDE3ICsyMTY1LDE2IEBACiAJJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdAogCWV4aXQgJEVYSVRfRkFJTFVSRQogICAgICAgZmkKLSAgICAgIHJlbW92ZWxpc3Q9IiRyZW1vdmVsaXN0ICRvdXRwdXRfb2JqIgorICAgICAgZnVuY19hcHBlbmQgcmVtb3ZlbGlzdCAiICRvdXRwdXRfb2JqIgogICAgICAgJEVDSE8gIiRzcmNmaWxlIiA+ICIkbG9ja2ZpbGUiCiAgICAgZmkKIAogICAgICRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3QKLSAgICByZW1vdmVsaXN0PSIkcmVtb3ZlbGlzdCAkbG9ja2ZpbGUiCisgICAgZnVuY19hcHBlbmQgcmVtb3ZlbGlzdCAiICRsb2NrZmlsZSIKICAgICB0cmFwICckb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0OyBleGl0ICRFWElUX0ZBSUxVUkUnIDEgMiAxNQogCi0gICAgaWYgdGVzdCAtbiAiJGZpeF9zcmNmaWxlX3BhdGgiOyB0aGVuCi0gICAgICBldmFsIHNyY2ZpbGU9XCIkZml4X3NyY2ZpbGVfcGF0aFwiCi0gICAgZmkKKyAgICBmdW5jX3RvX3Rvb2xfZmlsZSAiJHNyY2ZpbGUiIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCisgICAgc3JjZmlsZT0kZnVuY190b190b29sX2ZpbGVfcmVzdWx0CiAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJHNyY2ZpbGUiCiAgICAgcXNyY2ZpbGU9JGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0CiAKQEAgLTEzNDksNyArMjE5NCw3IEBACiAKICAgICAgIGlmIHRlc3QgLXogIiRvdXRwdXRfb2JqIjsgdGhlbgogCSMgUGxhY2UgUElDIG9iamVjdHMgaW4gJG9iamRpcgotCWNvbW1hbmQ9IiRjb21tYW5kIC1vICRsb2JqIgorCWZ1bmNfYXBwZW5kIGNvbW1hbmQgIiAtbyAkbG9iaiIKICAgICAgIGZpCiAKICAgICAgIGZ1bmNfc2hvd19ldmFsX2xvY2FsZSAiJGNvbW1hbmQiCVwKQEAgLTEzOTYsMTEgKzIyNDEsMTEgQEAKIAljb21tYW5kPSIkYmFzZV9jb21waWxlICRxc3JjZmlsZSAkcGljX2ZsYWciCiAgICAgICBmaQogICAgICAgaWYgdGVzdCAiJGNvbXBpbGVyX2NfbyIgPSB5ZXM7IHRoZW4KLQljb21tYW5kPSIkY29tbWFuZCAtbyAkb2JqIgorCWZ1bmNfYXBwZW5kIGNvbW1hbmQgIiAtbyAkb2JqIgogICAgICAgZmkKIAogICAgICAgIyBTdXBwcmVzcyBjb21waWxlciBvdXRwdXQgaWYgd2UgYWxyZWFkeSBkaWQgYSBQSUMgY29tcGlsYXRpb24uCi0gICAgICBjb21tYW5kPSIkY29tbWFuZCRzdXBwcmVzc19vdXRwdXQiCisgICAgICBmdW5jX2FwcGVuZCBjb21tYW5kICIkc3VwcHJlc3Nfb3V0cHV0IgogICAgICAgZnVuY19zaG93X2V2YWxfbG9jYWxlICIkY29tbWFuZCIgXAogICAgICAgICAnJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdDsgZXhpdCAkRVhJVF9GQUlMVVJFJwogCkBAIC0xNDQ1LDEzICsyMjkwLDEzIEBACiB9CiAKICRvcHRfaGVscCB8fCB7Ci10ZXN0ICIkbW9kZSIgPSBjb21waWxlICYmIGZ1bmNfbW9kZV9jb21waWxlICR7MSsiJEAifQorICB0ZXN0ICIkb3B0X21vZGUiID0gY29tcGlsZSAmJiBmdW5jX21vZGVfY29tcGlsZSAkezErIiRAIn0KIH0KIAogZnVuY19tb2RlX2hlbHAgKCkKIHsKICAgICAjIFdlIG5lZWQgdG8gZGlzcGxheSBoZWxwIGZvciBlYWNoIG9mIHRoZSBtb2Rlcy4KLSAgICBjYXNlICRtb2RlIGluCisgICAgY2FzZSAkb3B0X21vZGUgaW4KICAgICAgICIiKQogICAgICAgICAjIEdlbmVyaWMgaGVscCBpcyBleHRyYWN0ZWQgZnJvbSB0aGUgdXNhZ2UgY29tbWVudHMKICAgICAgICAgIyBhdCB0aGUgc3RhcnQgb2YgdGhpcyBmaWxlLgpAQCAtMTQ4MiwxMCArMjMyNywxMSBAQAogCiAgIC1vIE9VVFBVVC1GSUxFICAgIHNldCB0aGUgb3V0cHV0IGZpbGUgbmFtZSB0byBPVVRQVVQtRklMRQogICAtbm8tc3VwcHJlc3MgICAgICBkbyBub3Qgc3VwcHJlc3MgY29tcGlsZXIgb3V0cHV0IGZvciBtdWx0aXBsZSBwYXNzZXMKLSAgLXByZWZlci1waWMgICAgICAgdHJ5IHRvIGJ1aWxkaW5nIFBJQyBvYmplY3RzIG9ubHkKLSAgLXByZWZlci1ub24tcGljICAgdHJ5IHRvIGJ1aWxkaW5nIG5vbi1QSUMgb2JqZWN0cyBvbmx5CisgIC1wcmVmZXItcGljICAgICAgIHRyeSB0byBidWlsZCBQSUMgb2JqZWN0cyBvbmx5CisgIC1wcmVmZXItbm9uLXBpYyAgIHRyeSB0byBidWlsZCBub24tUElDIG9iamVjdHMgb25seQogICAtc2hhcmVkICAgICAgICAgICBkbyBub3QgYnVpbGQgYSBcYC5vJyBmaWxlIHN1aXRhYmxlIGZvciBzdGF0aWMgbGlua2luZwogICAtc3RhdGljICAgICAgICAgICBvbmx5IGJ1aWxkIGEgXGAubycgZmlsZSBzdWl0YWJsZSBmb3Igc3RhdGljIGxpbmtpbmcKKyAgLVdjLEZMQUcgICAgICAgICAgcGFzcyBGTEFHIGRpcmVjdGx5IHRvIHRoZSBjb21waWxlcgogCiBDT01QSUxFLUNPTU1BTkQgaXMgYSBjb21tYW5kIHRvIGJlIHVzZWQgaW4gY3JlYXRpbmcgYSBcYHN0YW5kYXJkJyBvYmplY3QgZmlsZQogZnJvbSB0aGUgZ2l2ZW4gU09VUkNFRklMRS4KQEAgLTE1MzgsNyArMjM4NCw3IEBACiAKIFRoZSBmb2xsb3dpbmcgY29tcG9uZW50cyBvZiBJTlNUQUxMLUNPTU1BTkQgYXJlIHRyZWF0ZWQgc3BlY2lhbGx5OgogCi0gIC1pbnN0LXByZWZpeCBQUkVGSVgtRElSICBVc2UgUFJFRklYLURJUiBhcyBhIHN0YWdpbmcgYXJlYSBmb3IgaW5zdGFsbGF0aW9uCisgIC1pbnN0LXByZWZpeC1kaXIgUFJFRklYLURJUiAgVXNlIFBSRUZJWC1ESVIgYXMgYSBzdGFnaW5nIGFyZWEgZm9yIGluc3RhbGxhdGlvbgogCiBUaGUgcmVzdCBvZiB0aGUgY29tcG9uZW50cyBhcmUgaW50ZXJwcmV0ZWQgYXMgYXJndW1lbnRzIHRvIHRoYXQgY29tbWFuZCAob25seQogQlNELWNvbXBhdGlibGUgaW5zdGFsbCBvcHRpb25zIGFyZSByZWNvZ25pemVkKS4iCkBAIC0xNTU4LDYgKzI0MDQsOCBAQAogCiAgIC1hbGwtc3RhdGljICAgICAgIGRvIG5vdCBkbyBhbnkgZHluYW1pYyBsaW5raW5nIGF0IGFsbAogICAtYXZvaWQtdmVyc2lvbiAgICBkbyBub3QgYWRkIGEgdmVyc2lvbiBzdWZmaXggaWYgcG9zc2libGUKKyAgLWJpbmRpciBCSU5ESVIgICAgc3BlY2lmeSBwYXRoIHRvIGJpbmFyaWVzIGRpcmVjdG9yeSAoZm9yIHN5c3RlbXMgd2hlcmUKKyAgICAgICAgICAgICAgICAgICAgbGlicmFyaWVzIG11c3QgYmUgZm91bmQgaW4gdGhlIFBBVEggc2V0dGluZyBhdCBydW50aW1lKQogICAtZGxvcGVuIEZJTEUgICAgICBcYC1kbHByZW9wZW4nIEZJTEUgaWYgaXQgY2Fubm90IGJlIGRsb3BlbmVkIGF0IHJ1bnRpbWUKICAgLWRscHJlb3BlbiBGSUxFICAgbGluayBpbiBGSUxFIGFuZCBhZGQgaXRzIHN5bWJvbHMgdG8gbHRfcHJlbG9hZGVkX3N5bWJvbHMKICAgLWV4cG9ydC1keW5hbWljICAgYWxsb3cgc3ltYm9scyBmcm9tIE9VVFBVVC1GSUxFIHRvIGJlIHJlc29sdmVkIHdpdGggZGxzeW0oMykKQEAgLTE1ODYsNiArMjQzNCwxMSBAQAogICAtdmVyc2lvbi1pbmZvIENVUlJFTlRbOlJFVklTSU9OWzpBR0VdXQogICAgICAgICAgICAgICAgICAgICBzcGVjaWZ5IGxpYnJhcnkgdmVyc2lvbiBpbmZvIFtlYWNoIHZhcmlhYmxlIGRlZmF1bHRzIHRvIDBdCiAgIC13ZWFrIExJQk5BTUUgICAgIGRlY2xhcmUgdGhhdCB0aGUgdGFyZ2V0IHByb3ZpZGVzIHRoZSBMSUJOQU1FIGludGVyZmFjZQorICAtV2MsRkxBRworICAtWGNvbXBpbGVyIEZMQUcgICBwYXNzIGxpbmtlci1zcGVjaWZpYyBGTEFHIGRpcmVjdGx5IHRvIHRoZSBjb21waWxlcgorICAtV2wsRkxBRworICAtWGxpbmtlciBGTEFHICAgICBwYXNzIGxpbmtlci1zcGVjaWZpYyBGTEFHIGRpcmVjdGx5IHRvIHRoZSBsaW5rZXIKKyAgLVhDQ2xpbmtlciBGTEFHICAgcGFzcyBsaW5rLXNwZWNpZmljIEZMQUcgdG8gdGhlIGNvbXBpbGVyIGRyaXZlciAoQ0MpCiAKIEFsbCBvdGhlciBvcHRpb25zIChhcmd1bWVudHMgYmVnaW5uaW5nIHdpdGggXGAtJykgYXJlIGlnbm9yZWQuCiAKQEAgLTE2MTksMTggKzI0NzIsNDQgQEAKICAgICAgICAgOzsKIAogICAgICAgKikKLSAgICAgICAgZnVuY19mYXRhbF9oZWxwICJpbnZhbGlkIG9wZXJhdGlvbiBtb2RlIFxgJG1vZGUnIgorICAgICAgICBmdW5jX2ZhdGFsX2hlbHAgImludmFsaWQgb3BlcmF0aW9uIG1vZGUgXGAkb3B0X21vZGUnIgogICAgICAgICA7OwogICAgIGVzYWMKIAotICAgICRFQ0hPCisgICAgZWNobwogICAgICRFQ0hPICJUcnkgXGAkcHJvZ25hbWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBvdGhlciBtb2Rlcy4iCi0KLSAgICBleGl0ICQ/CiB9CiAKLSAgIyBOb3cgdGhhdCB3ZSd2ZSBjb2xsZWN0ZWQgYSBwb3NzaWJsZSAtLW1vZGUgYXJnLCBzaG93IGhlbHAgaWYgbmVjZXNzYXJ5Ci0gICRvcHRfaGVscCAmJiBmdW5jX21vZGVfaGVscAorIyBOb3cgdGhhdCB3ZSd2ZSBjb2xsZWN0ZWQgYSBwb3NzaWJsZSAtLW1vZGUgYXJnLCBzaG93IGhlbHAgaWYgbmVjZXNzYXJ5CitpZiAkb3B0X2hlbHA7IHRoZW4KKyAgaWYgdGVzdCAiJG9wdF9oZWxwIiA9IDo7IHRoZW4KKyAgICBmdW5jX21vZGVfaGVscAorICBlbHNlCisgICAgeworICAgICAgZnVuY19oZWxwIG5vZXhpdAorICAgICAgZm9yIG9wdF9tb2RlIGluIGNvbXBpbGUgbGluayBleGVjdXRlIGluc3RhbGwgZmluaXNoIHVuaW5zdGFsbCBjbGVhbjsgZG8KKwlmdW5jX21vZGVfaGVscAorICAgICAgZG9uZQorICAgIH0gfCBzZWQgLW4gJzFwOyAyLCRzL15Vc2FnZTovICBvcjogL3AnCisgICAgeworICAgICAgZnVuY19oZWxwIG5vZXhpdAorICAgICAgZm9yIG9wdF9tb2RlIGluIGNvbXBpbGUgbGluayBleGVjdXRlIGluc3RhbGwgZmluaXNoIHVuaW5zdGFsbCBjbGVhbjsgZG8KKwllY2hvCisJZnVuY19tb2RlX2hlbHAKKyAgICAgIGRvbmUKKyAgICB9IHwKKyAgICBzZWQgJzFkCisgICAgICAvXldoZW4gcmVwb3J0aW5nLywvXlJlcG9ydC97CisJSAorCWQKKyAgICAgIH0KKyAgICAgICR4CisgICAgICAvaW5mb3JtYXRpb24gYWJvdXQgb3RoZXIgbW9kZXMvZAorICAgICAgL21vcmUgZGV0YWlsZWQgLipNT0RFL2QKKyAgICAgIHMvXlVzYWdlOi4qLS1tb2RlPVwoW14gXSpcKSAuKi9EZXNjcmlwdGlvbiBvZiBcMSBtb2RlOi8nCisgIGZpCisgIGV4aXQgJD8KK2ZpCiAKIAogIyBmdW5jX21vZGVfZXhlY3V0ZSBhcmcuLi4KQEAgLTE2NDMsMTMgKzI1MjIsMTYgQEAKICAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhIENPTU1BTkQiCiAKICAgICAjIEhhbmRsZSAtZGxvcGVuIGZsYWdzIGltbWVkaWF0ZWx5LgotICAgIGZvciBmaWxlIGluICRleGVjdXRlX2RsZmlsZXM7IGRvCisgICAgZm9yIGZpbGUgaW4gJG9wdF9kbG9wZW47IGRvCiAgICAgICB0ZXN0IC1mICIkZmlsZSIgXAogCXx8IGZ1bmNfZmF0YWxfaGVscCAiXGAkZmlsZScgaXMgbm90IGEgZmlsZSIKIAogICAgICAgZGlyPQogICAgICAgY2FzZSAkZmlsZSBpbgogICAgICAgKi5sYSkKKwlmdW5jX3Jlc29sdmVfc3lzcm9vdCAiJGZpbGUiCisJZmlsZT0kZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0CisKIAkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBhcmNoaXZlLgogCWZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRmaWxlIiBcCiAJICB8fCBmdW5jX2ZhdGFsX2hlbHAgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgpAQCAtMTY3MSw3ICsyNTUzLDcgQEAKIAlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgogCiAJaWYgdGVzdCAtZiAiJGRpci8kb2JqZGlyLyRkbG5hbWUiOyB0aGVuCi0JICBkaXI9IiRkaXIvJG9iamRpciIKKwkgIGZ1bmNfYXBwZW5kIGRpciAiLyRvYmpkaXIiCiAJZWxzZQogCSAgaWYgdGVzdCAhIC1mICIkZGlyLyRkbG5hbWUiOyB0aGVuCiAJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIFxgJGRsbmFtZScgaW4gXGAkZGlyJyBvciBcYCRkaXIvJG9iamRpciciCkBAIC0xNzEyLDcgKzI1OTQsNyBAQAogICAgIGZvciBmaWxlCiAgICAgZG8KICAgICAgIGNhc2UgJGZpbGUgaW4KLSAgICAgIC0qKSA7OworICAgICAgLSogfCAqLmxhIHwgKi5sbyApIDs7CiAgICAgICAqKQogCSMgRG8gYSB0ZXN0IHRvIHNlZSBpZiB0aGlzIGlzIHJlYWxseSBhIGxpYnRvb2wgcHJvZ3JhbS4KIAlpZiBmdW5jX2x0d3JhcHBlcl9zY3JpcHRfcCAiJGZpbGUiOyB0aGVuCkBAIC0xNzI4LDggKzI2MTAsNyBAQAogCTs7CiAgICAgICBlc2FjCiAgICAgICAjIFF1b3RlIGFyZ3VtZW50cyAodG8gcHJlc2VydmUgc2hlbGwgbWV0YWNoYXJhY3RlcnMpLgotICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGZpbGUiCi0gICAgICBhcmdzPSIkYXJncyAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisgICAgICBmdW5jX2FwcGVuZF9xdW90ZWQgYXJncyAiJGZpbGUiCiAgICAgZG9uZQogCiAgICAgaWYgdGVzdCAiWCRvcHRfZHJ5X3J1biIgPSBYZmFsc2U7IHRoZW4KQEAgLTE3NTQsMjkgKzI2MzUsNjYgQEAKICAgICAgICMgRGlzcGxheSB3aGF0IHdvdWxkIGJlIGRvbmUuCiAgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KIAlldmFsICJcJEVDSE8gXCJcJHNobGlicGF0aF92YXI9XCQkc2hsaWJwYXRoX3ZhclwiIgotCSRFQ0hPICJleHBvcnQgJHNobGlicGF0aF92YXIiCisJZWNobyAiZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgogICAgICAgZmkKICAgICAgICRFQ0hPICIkY21kJGFyZ3MiCiAgICAgICBleGl0ICRFWElUX1NVQ0NFU1MKICAgICBmaQogfQogCi10ZXN0ICIkbW9kZSIgPSBleGVjdXRlICYmIGZ1bmNfbW9kZV9leGVjdXRlICR7MSsiJEAifQordGVzdCAiJG9wdF9tb2RlIiA9IGV4ZWN1dGUgJiYgZnVuY19tb2RlX2V4ZWN1dGUgJHsxKyIkQCJ9CiAKIAogIyBmdW5jX21vZGVfZmluaXNoIGFyZy4uLgogZnVuY19tb2RlX2ZpbmlzaCAoKQogewogICAgICRvcHRfZGVidWcKLSAgICBsaWJkaXJzPSIkbm9ub3B0IgorICAgIGxpYnM9CisgICAgbGliZGlycz0KICAgICBhZG1pbmNtZHM9CiAKLSAgICBpZiB0ZXN0IC1uICIkZmluaXNoX2NtZHMkZmluaXNoX2V2YWwiICYmIHRlc3QgLW4gIiRsaWJkaXJzIjsgdGhlbgotICAgICAgZm9yIGRpcgotICAgICAgZG8KLQlsaWJkaXJzPSIkbGliZGlycyAkZGlyIgotICAgICAgZG9uZQorICAgIGZvciBvcHQgaW4gIiRub25vcHQiICR7MSsiJEAifQorICAgIGRvCisgICAgICBpZiB0ZXN0IC1kICIkb3B0IjsgdGhlbgorCWZ1bmNfYXBwZW5kIGxpYmRpcnMgIiAkb3B0IgogCisgICAgICBlbGlmIHRlc3QgLWYgIiRvcHQiOyB0aGVuCisJaWYgZnVuY19sYWxpYl91bnNhZmVfcCAiJG9wdCI7IHRoZW4KKwkgIGZ1bmNfYXBwZW5kIGxpYnMgIiAkb3B0IgorCWVsc2UKKwkgIGZ1bmNfd2FybmluZyAiXGAkb3B0JyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCisJZmkKKworICAgICAgZWxzZQorCWZ1bmNfZmF0YWxfZXJyb3IgImludmFsaWQgYXJndW1lbnQgXGAkb3B0JyIKKyAgICAgIGZpCisgICAgZG9uZQorCisgICAgaWYgdGVzdCAtbiAiJGxpYnMiOyB0aGVuCisgICAgICBpZiB0ZXN0IC1uICIkbHRfc3lzcm9vdCI7IHRoZW4KKyAgICAgICAgc3lzcm9vdF9yZWdleD1gJEVDSE8gIiRsdF9zeXNyb290IiB8ICRTRUQgIiRzZWRfbWFrZV9saXRlcmFsX3JlZ2V4ImAKKyAgICAgICAgc3lzcm9vdF9jbWQ9InMvXChbICddXCkkc3lzcm9vdF9yZWdleC9cMS9nOyIKKyAgICAgIGVsc2UKKyAgICAgICAgc3lzcm9vdF9jbWQ9CisgICAgICBmaQorCisgICAgICAjIFJlbW92ZSBzeXNyb290IHJlZmVyZW5jZXMKKyAgICAgIGlmICRvcHRfZHJ5X3J1bjsgdGhlbgorICAgICAgICBmb3IgbGliIGluICRsaWJzOyBkbworICAgICAgICAgIGVjaG8gInJlbW92aW5nIHJlZmVyZW5jZXMgdG8gJGx0X3N5c3Jvb3QgYW5kIFxgPScgcHJlZml4ZXMgZnJvbSAkbGliIgorICAgICAgICBkb25lCisgICAgICBlbHNlCisgICAgICAgIHRtcGRpcj1gZnVuY19ta3RlbXBkaXJgCisgICAgICAgIGZvciBsaWIgaW4gJGxpYnM7IGRvCisJICBzZWQgLWUgIiR7c3lzcm9vdF9jbWR9IHMvXChbICddLVtMUl1cKT0vXDEvZzsgcy9cKFsgJ11cKT0vXDEvZyIgJGxpYiBcCisJICAgID4gJHRtcGRpci90bXAtbGEKKwkgIG12IC1mICR0bXBkaXIvdG1wLWxhICRsaWIKKwlkb25lCisgICAgICAgICR7Uk19ciAiJHRtcGRpciIKKyAgICAgIGZpCisgICAgZmkKKworICAgIGlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyRmaW5pc2hfZXZhbCIgJiYgdGVzdCAtbiAiJGxpYmRpcnMiOyB0aGVuCiAgICAgICBmb3IgbGliZGlyIGluICRsaWJkaXJzOyBkbwogCWlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyI7IHRoZW4KIAkgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBmaW5pc2ggY29tbWFuZHMuCkBAIC0xNzg2LDcgKzI3MDQsNyBAQAogCWlmIHRlc3QgLW4gIiRmaW5pc2hfZXZhbCI7IHRoZW4KIAkgICMgRG8gdGhlIHNpbmdsZSBmaW5pc2hfZXZhbC4KIAkgIGV2YWwgY21kcz1cIiRmaW5pc2hfZXZhbFwiCi0JICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiJGNtZHMiIHx8IGFkbWluY21kcz0iJGFkbWluY21kcworCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgIiRjbWRzIiB8fCBmdW5jX2FwcGVuZCBhZG1pbmNtZHMgIgogICAgICAgICRjbWRzIgogCWZpCiAgICAgICBkb25lCkBAIC0xNzk1LDUzICsyNzEzLDU1IEBACiAgICAgIyBFeGl0IGhlcmUgaWYgdGhleSB3YW50ZWQgc2lsZW50IG1vZGUuCiAgICAgJG9wdF9zaWxlbnQgJiYgZXhpdCAkRVhJVF9TVUNDRVNTCiAKLSAgICAkRUNITyAiWC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIHwgJFhzZWQKLSAgICAkRUNITyAiTGlicmFyaWVzIGhhdmUgYmVlbiBpbnN0YWxsZWQgaW46IgotICAgIGZvciBsaWJkaXIgaW4gJGxpYmRpcnM7IGRvCi0gICAgICAkRUNITyAiICAgJGxpYmRpciIKLSAgICBkb25lCi0gICAgJEVDSE8KLSAgICAkRUNITyAiSWYgeW91IGV2ZXIgaGFwcGVuIHRvIHdhbnQgdG8gbGluayBhZ2FpbnN0IGluc3RhbGxlZCBsaWJyYXJpZXMiCi0gICAgJEVDSE8gImluIGEgZ2l2ZW4gZGlyZWN0b3J5LCBMSUJESVIsIHlvdSBtdXN0IGVpdGhlciB1c2UgbGlidG9vbCwgYW5kIgotICAgICRFQ0hPICJzcGVjaWZ5IHRoZSBmdWxsIHBhdGhuYW1lIG9mIHRoZSBsaWJyYXJ5LCBvciB1c2UgdGhlIFxgLUxMSUJESVInIgotICAgICRFQ0hPICJmbGFnIGR1cmluZyBsaW5raW5nIGFuZCBkbyBhdCBsZWFzdCBvbmUgb2YgdGhlIGZvbGxvd2luZzoiCi0gICAgaWYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiOyB0aGVuCi0gICAgICAkRUNITyAiICAgLSBhZGQgTElCRElSIHRvIHRoZSBcYCRzaGxpYnBhdGhfdmFyJyBlbnZpcm9ubWVudCB2YXJpYWJsZSIKLSAgICAgICRFQ0hPICIgICAgIGR1cmluZyBleGVjdXRpb24iCi0gICAgZmkKLSAgICBpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCi0gICAgICAkRUNITyAiICAgLSBhZGQgTElCRElSIHRvIHRoZSBcYCRydW5wYXRoX3ZhcicgZW52aXJvbm1lbnQgdmFyaWFibGUiCi0gICAgICAkRUNITyAiICAgICBkdXJpbmcgbGlua2luZyIKLSAgICBmaQotICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhlbgotICAgICAgbGliZGlyPUxJQkRJUgotICAgICAgZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgorICAgIGlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyRmaW5pc2hfZXZhbCIgJiYgdGVzdCAtbiAiJGxpYmRpcnMiOyB0aGVuCisgICAgICBlY2hvICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgorICAgICAgZWNobyAiTGlicmFyaWVzIGhhdmUgYmVlbiBpbnN0YWxsZWQgaW46IgorICAgICAgZm9yIGxpYmRpciBpbiAkbGliZGlyczsgZG8KKwkkRUNITyAiICAgJGxpYmRpciIKKyAgICAgIGRvbmUKKyAgICAgIGVjaG8KKyAgICAgIGVjaG8gIklmIHlvdSBldmVyIGhhcHBlbiB0byB3YW50IHRvIGxpbmsgYWdhaW5zdCBpbnN0YWxsZWQgbGlicmFyaWVzIgorICAgICAgZWNobyAiaW4gYSBnaXZlbiBkaXJlY3RvcnksIExJQkRJUiwgeW91IG11c3QgZWl0aGVyIHVzZSBsaWJ0b29sLCBhbmQiCisgICAgICBlY2hvICJzcGVjaWZ5IHRoZSBmdWxsIHBhdGhuYW1lIG9mIHRoZSBsaWJyYXJ5LCBvciB1c2UgdGhlIFxgLUxMSUJESVInIgorICAgICAgZWNobyAiZmxhZyBkdXJpbmcgbGlua2luZyBhbmQgZG8gYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmc6IgorICAgICAgaWYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiOyB0aGVuCisJZWNobyAiICAgLSBhZGQgTElCRElSIHRvIHRoZSBcYCRzaGxpYnBhdGhfdmFyJyBlbnZpcm9ubWVudCB2YXJpYWJsZSIKKwllY2hvICIgICAgIGR1cmluZyBleGVjdXRpb24iCisgICAgICBmaQorICAgICAgaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgorCWVjaG8gIiAgIC0gYWRkIExJQkRJUiB0byB0aGUgXGAkcnVucGF0aF92YXInIGVudmlyb25tZW50IHZhcmlhYmxlIgorCWVjaG8gIiAgICAgZHVyaW5nIGxpbmtpbmciCisgICAgICBmaQorICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCisJbGliZGlyPUxJQkRJUgorCWV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKIAotICAgICAgJEVDSE8gIiAgIC0gdXNlIHRoZSBcYCRmbGFnJyBsaW5rZXIgZmxhZyIKLSAgICBmaQotICAgIGlmIHRlc3QgLW4gIiRhZG1pbmNtZHMiOyB0aGVuCi0gICAgICAkRUNITyAiICAgLSBoYXZlIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgcnVuIHRoZXNlIGNvbW1hbmRzOiRhZG1pbmNtZHMiCi0gICAgZmkKLSAgICBpZiB0ZXN0IC1mIC9ldGMvbGQuc28uY29uZjsgdGhlbgotICAgICAgJEVDSE8gIiAgIC0gaGF2ZSB5b3VyIHN5c3RlbSBhZG1pbmlzdHJhdG9yIGFkZCBMSUJESVIgdG8gXGAvZXRjL2xkLnNvLmNvbmYnIgotICAgIGZpCi0gICAgJEVDSE8KKwkkRUNITyAiICAgLSB1c2UgdGhlIFxgJGZsYWcnIGxpbmtlciBmbGFnIgorICAgICAgZmkKKyAgICAgIGlmIHRlc3QgLW4gIiRhZG1pbmNtZHMiOyB0aGVuCisJJEVDSE8gIiAgIC0gaGF2ZSB5b3VyIHN5c3RlbSBhZG1pbmlzdHJhdG9yIHJ1biB0aGVzZSBjb21tYW5kczokYWRtaW5jbWRzIgorICAgICAgZmkKKyAgICAgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCisJZWNobyAiICAgLSBoYXZlIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgYWRkIExJQkRJUiB0byBcYC9ldGMvbGQuc28uY29uZiciCisgICAgICBmaQorICAgICAgZWNobwogCi0gICAgJEVDSE8gIlNlZSBhbnkgb3BlcmF0aW5nIHN5c3RlbSBkb2N1bWVudGF0aW9uIGFib3V0IHNoYXJlZCBsaWJyYXJpZXMgZm9yIgotICAgIGNhc2UgJGhvc3QgaW4KLSAgICAgIHNvbGFyaXMyLls2Nzg5XXxzb2xhcmlzMi4xWzAtOV0pCi0gICAgICAgICRFQ0hPICJtb3JlIGluZm9ybWF0aW9uLCBzdWNoIGFzIHRoZSBsZCgxKSwgY3JsZSgxKSBhbmQgbGQuc28oOCkgbWFudWFsIgotCSRFQ0hPICJwYWdlcy4iCi0JOzsKLSAgICAgICopCi0gICAgICAgICRFQ0hPICJtb3JlIGluZm9ybWF0aW9uLCBzdWNoIGFzIHRoZSBsZCgxKSBhbmQgbGQuc28oOCkgbWFudWFsIHBhZ2VzLiIKLSAgICAgICAgOzsKLSAgICBlc2FjCi0gICAgJEVDSE8gIlgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiB8ICRYc2VkCisgICAgICBlY2hvICJTZWUgYW55IG9wZXJhdGluZyBzeXN0ZW0gZG9jdW1lbnRhdGlvbiBhYm91dCBzaGFyZWQgbGlicmFyaWVzIGZvciIKKyAgICAgIGNhc2UgJGhvc3QgaW4KKwlzb2xhcmlzMi5bNjc4OV18c29sYXJpczIuMVswLTldKQorCSAgZWNobyAibW9yZSBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgbGQoMSksIGNybGUoMSkgYW5kIGxkLnNvKDgpIG1hbnVhbCIKKwkgIGVjaG8gInBhZ2VzLiIKKwkgIDs7CisJKikKKwkgIGVjaG8gIm1vcmUgaW5mb3JtYXRpb24sIHN1Y2ggYXMgdGhlIGxkKDEpIGFuZCBsZC5zbyg4KSBtYW51YWwgcGFnZXMuIgorCSAgOzsKKyAgICAgIGVzYWMKKyAgICAgIGVjaG8gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCisgICAgZmkKICAgICBleGl0ICRFWElUX1NVQ0NFU1MKIH0KIAotdGVzdCAiJG1vZGUiID0gZmluaXNoICYmIGZ1bmNfbW9kZV9maW5pc2ggJHsxKyIkQCJ9Cit0ZXN0ICIkb3B0X21vZGUiID0gZmluaXNoICYmIGZ1bmNfbW9kZV9maW5pc2ggJHsxKyIkQCJ9CiAKIAogIyBmdW5jX21vZGVfaW5zdGFsbCBhcmcuLi4KQEAgLTE4NTIsNyArMjc3Miw3IEBACiAgICAgIyBpbnN0YWxsX3Byb2cgKGVzcGVjaWFsbHkgb24gV2luZG93cyBOVCkuCiAgICAgaWYgdGVzdCAiJG5vbm9wdCIgPSAiJFNIRUxMIiB8fCB0ZXN0ICIkbm9ub3B0IiA9IC9iaW4vc2ggfHwKICAgICAgICAjIEFsbG93IHRoZSB1c2Ugb2YgR05VIHNodG9vbCdzIGluc3RhbGwgY29tbWFuZC4KLSAgICAgICAkRUNITyAiWCRub25vcHQiIHwgJEdSRVAgc2h0b29sID4vZGV2L251bGw7IHRoZW4KKyAgICAgICBjYXNlICRub25vcHQgaW4gKnNodG9vbCopIDo7OyAqKSBmYWxzZTs7IGVzYWM7IHRoZW4KICAgICAgICMgQWVzdGhldGljYWxseSBxdW90ZSBpdC4KICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRub25vcHQiCiAgICAgICBpbnN0YWxsX3Byb2c9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCAiCkBAIC0xODY2LDcgKzI3ODYsMTIgQEAKICAgICAjIFRoZSByZWFsIGZpcnN0IGFyZ3VtZW50IHNob3VsZCBiZSB0aGUgbmFtZSBvZiB0aGUgaW5zdGFsbGF0aW9uIHByb2dyYW0uCiAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIGl0LgogICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCi0gICAgaW5zdGFsbF9wcm9nPSIkaW5zdGFsbF9wcm9nJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorICAgIGZ1bmNfYXBwZW5kIGluc3RhbGxfcHJvZyAiJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorICAgIGluc3RhbGxfc2hhcmVkX3Byb2c9JGluc3RhbGxfcHJvZworICAgIGNhc2UgIiAkaW5zdGFsbF9wcm9nICIgaW4KKyAgICAgICpbXFxcIC9dY3BcICopIGluc3RhbGxfY3A9OiA7OworICAgICAgKikgaW5zdGFsbF9jcD1mYWxzZSA7OworICAgIGVzYWMKIAogICAgICMgV2UgbmVlZCB0byBhY2NlcHQgYXQgbGVhc3QgYWxsIHRoZSBCU0QgaW5zdGFsbCBmbGFncy4KICAgICBkZXN0PQpAQCAtMTg3NiwxMCArMjgwMSwxMiBAQAogICAgIGluc3RhbGxfdHlwZT0KICAgICBpc2Rpcj1ubwogICAgIHN0cmlwbWU9CisgICAgbm9fbW9kZT06CiAgICAgZm9yIGFyZwogICAgIGRvCisgICAgICBhcmcyPQogICAgICAgaWYgdGVzdCAtbiAiJGRlc3QiOyB0aGVuCi0JZmlsZXM9IiRmaWxlcyAkZGVzdCIKKwlmdW5jX2FwcGVuZCBmaWxlcyAiICRkZXN0IgogCWRlc3Q9JGFyZwogCWNvbnRpbnVlCiAgICAgICBmaQpAQCAtMTg4NywxMCArMjgxNCw5IEBACiAgICAgICBjYXNlICRhcmcgaW4KICAgICAgIC1kKSBpc2Rpcj15ZXMgOzsKICAgICAgIC1mKQotCWNhc2UgIiAkaW5zdGFsbF9wcm9nICIgaW4KLQkqW1xcXCAvXWNwXCAqKSA7OwotCSopIHByZXY9JGFyZyA7OwotCWVzYWMKKwlpZiAkaW5zdGFsbF9jcDsgdGhlbiA6OyBlbHNlCisJICBwcmV2PSRhcmcKKwlmaQogCTs7CiAgICAgICAtZyB8IC1tIHwgLW8pCiAJcHJldj0kYXJnCkBAIC0xOTA0LDYgKzI4MzAsMTAgQEAKICAgICAgICopCiAJIyBJZiB0aGUgcHJldmlvdXMgb3B0aW9uIG5lZWRlZCBhbiBhcmd1bWVudCwgdGhlbiBza2lwIGl0LgogCWlmIHRlc3QgLW4gIiRwcmV2IjsgdGhlbgorCSAgaWYgdGVzdCAieCRwcmV2IiA9IHgtbSAmJiB0ZXN0IC1uICIkaW5zdGFsbF9vdmVycmlkZV9tb2RlIjsgdGhlbgorCSAgICBhcmcyPSRpbnN0YWxsX292ZXJyaWRlX21vZGUKKwkgICAgbm9fbW9kZT1mYWxzZQorCSAgZmkKIAkgIHByZXY9CiAJZWxzZQogCSAgZGVzdD0kYXJnCkBAIC0xOTE0LDcgKzI4NDQsMTEgQEAKIAogICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIHRoZSBhcmd1bWVudC4KICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCi0gICAgICBpbnN0YWxsX3Byb2c9IiRpbnN0YWxsX3Byb2cgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorICAgICAgZnVuY19hcHBlbmQgaW5zdGFsbF9wcm9nICIgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorICAgICAgaWYgdGVzdCAtbiAiJGFyZzIiOyB0aGVuCisJZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZzIiCisgICAgICBmaQorICAgICAgZnVuY19hcHBlbmQgaW5zdGFsbF9zaGFyZWRfcHJvZyAiICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKICAgICBkb25lCiAKICAgICB0ZXN0IC16ICIkaW5zdGFsbF9wcm9nIiAmJiBcCkBAIC0xOTIzLDYgKzI4NTcsMTMgQEAKICAgICB0ZXN0IC1uICIkcHJldiIgJiYgXAogICAgICAgZnVuY19mYXRhbF9oZWxwICJ0aGUgXGAkcHJldicgb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50IgogCisgICAgaWYgdGVzdCAtbiAiJGluc3RhbGxfb3ZlcnJpZGVfbW9kZSIgJiYgJG5vX21vZGU7IHRoZW4KKyAgICAgIGlmICRpbnN0YWxsX2NwOyB0aGVuIDo7IGVsc2UKKwlmdW5jX3F1b3RlX2Zvcl9ldmFsICIkaW5zdGFsbF9vdmVycmlkZV9tb2RlIgorCWZ1bmNfYXBwZW5kIGluc3RhbGxfc2hhcmVkX3Byb2cgIiAtbSAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisgICAgICBmaQorICAgIGZpCisKICAgICBpZiB0ZXN0IC16ICIkZmlsZXMiOyB0aGVuCiAgICAgICBpZiB0ZXN0IC16ICIkZGVzdCI7IHRoZW4KIAlmdW5jX2ZhdGFsX2hlbHAgIm5vIGZpbGUgb3IgZGVzdGluYXRpb24gc3BlY2lmaWVkIgpAQCAtMTk3NywxMCArMjkxOCwxMyBAQAogICAgICAgY2FzZSAkZmlsZSBpbgogICAgICAgKi4kbGliZXh0KQogCSMgRG8gdGhlIHN0YXRpYyBsaWJyYXJpZXMgbGF0ZXIuCi0Jc3RhdGljbGlicz0iJHN0YXRpY2xpYnMgJGZpbGUiCisJZnVuY19hcHBlbmQgc3RhdGljbGlicyAiICRmaWxlIgogCTs7CiAKICAgICAgICoubGEpCisJZnVuY19yZXNvbHZlX3N5c3Jvb3QgIiRmaWxlIgorCWZpbGU9JGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdAorCiAJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wgYXJjaGl2ZS4KIAlmdW5jX2xhbGliX3Vuc2FmZV9wICIkZmlsZSIgXAogCSAgfHwgZnVuY19mYXRhbF9oZWxwICJcYCRmaWxlJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCkBAIC0xOTk0LDIzICsyOTM4LDIzIEBACiAJaWYgdGVzdCAiWCRkZXN0ZGlyIiA9ICJYJGxpYmRpciI7IHRoZW4KIAkgIGNhc2UgIiRjdXJyZW50X2xpYmRpcnMgIiBpbgogCSAgKiIgJGxpYmRpciAiKikgOzsKLQkgICopIGN1cnJlbnRfbGliZGlycz0iJGN1cnJlbnRfbGliZGlycyAkbGliZGlyIiA7OworCSAgKikgZnVuY19hcHBlbmQgY3VycmVudF9saWJkaXJzICIgJGxpYmRpciIgOzsKIAkgIGVzYWMKIAllbHNlCiAJICAjIE5vdGUgdGhlIGxpYmRpciBhcyBhIGZ1dHVyZSBsaWJkaXIuCiAJICBjYXNlICIkZnV0dXJlX2xpYmRpcnMgIiBpbgogCSAgKiIgJGxpYmRpciAiKikgOzsKLQkgICopIGZ1dHVyZV9saWJkaXJzPSIkZnV0dXJlX2xpYmRpcnMgJGxpYmRpciIgOzsKKwkgICopIGZ1bmNfYXBwZW5kIGZ1dHVyZV9saWJkaXJzICIgJGxpYmRpciIgOzsKIAkgIGVzYWMKIAlmaQogCiAJZnVuY19kaXJuYW1lICIkZmlsZSIgIi8iICIiCiAJZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKLQlkaXI9IiRkaXIkb2JqZGlyIgorCWZ1bmNfYXBwZW5kIGRpciAiJG9iamRpciIKIAogCWlmIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4KIAkgICMgRGV0ZXJtaW5lIHRoZSBwcmVmaXggdGhlIHVzZXIgaGFzIGFwcGxpZWQgdG8gb3VyIGZ1dHVyZSBkaXIuCi0JICBpbnN0X3ByZWZpeF9kaXI9YCRFQ0hPICJYJGRlc3RkaXIiIHwgJFhzZWQgLWUgInMlJGxpYmRpclwkJSUiYAorCSAgaW5zdF9wcmVmaXhfZGlyPWAkRUNITyAiJGRlc3RkaXIiIHwgJFNFRCAtZSAicyUkbGliZGlyXCQlJSJgCiAKIAkgICMgRG9uJ3QgYWxsb3cgdGhlIHVzZXIgdG8gcGxhY2UgdXMgb3V0c2lkZSBvZiBvdXIgZXhwZWN0ZWQKIAkgICMgbG9jYXRpb24gYi9jIHRoaXMgcHJldmVudHMgZmluZGluZyBkZXBlbmRlbnQgbGlicmFyaWVzIHRoYXQKQEAgLTIwMjMsOSArMjk2Nyw5IEBACiAKIAkgIGlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiOyB0aGVuCiAJICAgICMgU3RpY2sgdGhlIGluc3RfcHJlZml4X2RpciBkYXRhIGludG8gdGhlIGxpbmsgY29tbWFuZC4KLQkgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJHJlbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBpbnN0X3ByZWZpeF9kaXJAJS1pbnN0LXByZWZpeC1kaXIgJGluc3RfcHJlZml4X2RpciUiYAorCSAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIiRyZWxpbmtfY29tbWFuZCIgfCAkU0VEICJzJUBpbnN0X3ByZWZpeF9kaXJAJS1pbnN0LXByZWZpeC1kaXIgJGluc3RfcHJlZml4X2RpciUiYAogCSAgZWxzZQotCSAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkcmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQGluc3RfcHJlZml4X2RpckAlJSJgCisJICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiJHJlbGlua19jb21tYW5kIiB8ICRTRUQgInMlQGluc3RfcHJlZml4X2RpckAlJSJgCiAJICBmaQogCiAJICBmdW5jX3dhcm5pbmcgInJlbGlua2luZyBcYCRmaWxlJyIKQEAgLTIwNDMsNyArMjk4Nyw3IEBACiAJICB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiICYmIHNyY25hbWU9IiRyZWFsbmFtZSJUCiAKIAkgICMgSW5zdGFsbCB0aGUgc2hhcmVkIGxpYnJhcnkgYW5kIGJ1aWxkIHRoZSBzeW1saW5rcy4KLQkgIGZ1bmNfc2hvd19ldmFsICIkaW5zdGFsbF9wcm9nICRkaXIvJHNyY25hbWUgJGRlc3RkaXIvJHJlYWxuYW1lIiBcCisJICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfc2hhcmVkX3Byb2cgJGRpci8kc3JjbmFtZSAkZGVzdGRpci8kcmVhbG5hbWUiIFwKIAkgICAgICAnZXhpdCAkPycKIAkgIHRzdHJpcG1lPSIkc3RyaXBtZSIKIAkgIGNhc2UgJGhvc3Rfb3MgaW4KQEAgLTIwODMsNyArMzAyNyw3IEBACiAJZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cgJGluc3RuYW1lICRkZXN0ZGlyLyRuYW1lIiAnZXhpdCAkPycKIAogCSMgTWF5YmUgaW5zdGFsbCB0aGUgc3RhdGljIGxpYnJhcnksIHRvby4KLQl0ZXN0IC1uICIkb2xkX2xpYnJhcnkiICYmIHN0YXRpY2xpYnM9IiRzdGF0aWNsaWJzICRkaXIvJG9sZF9saWJyYXJ5IgorCXRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgZnVuY19hcHBlbmQgc3RhdGljbGlicyAiICRkaXIvJG9sZF9saWJyYXJ5IgogCTs7CiAKICAgICAgICoubG8pCkBAIC0yMTgzLDcgKzMxMjcsNyBAQAogCSAgICBpZiB0ZXN0IC1mICIkbGliIjsgdGhlbgogCSAgICAgIGZ1bmNfc291cmNlICIkbGliIgogCSAgICBmaQotCSAgICBsaWJmaWxlPSIkbGliZGlyLyJgJEVDSE8gIlgkbGliIiB8ICRYc2VkIC1lICdzJV4uKi8lJWcnYCAjIyMgdGVzdHN1aXRlOiBza2lwIG5lc3RlZCBxdW90aW5nIHRlc3QKKwkgICAgbGliZmlsZT0iJGxpYmRpci8iYCRFQ0hPICIkbGliIiB8ICRTRUQgJ3MlXi4qLyUlZydgICMjIyB0ZXN0c3VpdGU6IHNraXAgbmVzdGVkIHF1b3RpbmcgdGVzdAogCSAgICBpZiB0ZXN0IC1uICIkbGliZGlyIiAmJiB0ZXN0ICEgLWYgIiRsaWJmaWxlIjsgdGhlbgogCSAgICAgIGZ1bmNfd2FybmluZyAiXGAkbGliJyBoYXMgbm90IGJlZW4gaW5zdGFsbGVkIGluIFxgJGxpYmRpciciCiAJICAgICAgZmluYWxpemU9bm8KQEAgLTIyMDIsNyArMzE0Niw3IEBACiAJCWZpbGU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKIAkgICAgICAgIG91dHB1dG5hbWU9IiR0bXBkaXIvJGZpbGUiCiAJICAgICAgICAjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCi0JICAgICAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkcmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0bmFtZSInJWcnYAorCSAgICAgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICIkcmVsaW5rX2NvbW1hbmQiIHwgJFNFRCAncyVAT1VUUFVUQCUnIiRvdXRwdXRuYW1lIiclZydgCiAKIAkgICAgICAgICRvcHRfc2lsZW50IHx8IHsKIAkgICAgICAgICAgZnVuY19xdW90ZV9mb3JfZXhwYW5kICIkcmVsaW5rX2NvbW1hbmQiCkBAIC0yMjIxLDcgKzMxNjUsNyBAQAogCSAgICB9CiAJICBlbHNlCiAJICAgICMgSW5zdGFsbCB0aGUgYmluYXJ5IHRoYXQgd2UgY29tcGlsZWQgZWFybGllci4KLQkgICAgZmlsZT1gJEVDSE8gIlgkZmlsZSRzdHJpcHBlZF9leHQiIHwgJFhzZWQgLWUgInMlXChbXi9dKlwpJCUkb2JqZGlyL1wxJSJgCisJICAgIGZpbGU9YCRFQ0hPICIkZmlsZSRzdHJpcHBlZF9leHQiIHwgJFNFRCAicyVcKFteL10qXCkkJSRvYmpkaXIvXDElImAKIAkgIGZpCiAJZmkKIApAQCAtMjI4MCw3ICszMjI0LDcgQEAKICAgICBmaQogfQogCi10ZXN0ICIkbW9kZSIgPSBpbnN0YWxsICYmIGZ1bmNfbW9kZV9pbnN0YWxsICR7MSsiJEAifQordGVzdCAiJG9wdF9tb2RlIiA9IGluc3RhbGwgJiYgZnVuY19tb2RlX2luc3RhbGwgJHsxKyIkQCJ9CiAKIAogIyBmdW5jX2dlbmVyYXRlX2Rsc3ltcyBvdXRwdXRuYW1lIG9yaWdpbmF0b3IgcGljX3AKQEAgLTIzMjMsNiArMzI2NywyMiBAQAogZXh0ZXJuIFwiQ1wiIHsKICNlbmRpZgogCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKCgoX19HTlVDX18gPT0gNCkgJiYgKF9fR05VQ19NSU5PUl9fID49IDQpKSB8fCAoX19HTlVDX18gPiA0KSkKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCBcIi1Xc3RyaWN0LXByb3RvdHlwZXNcIgorI2VuZGlmCisKKy8qIEtlZXAgdGhpcyBjb2RlIGluIHN5bmMgYmV0d2VlbiBsaWJ0b29sLm00LCBsdG1haW4sIGx0X3N5c3RlbS5oLCBhbmQgdGVzdHMuICAqLworI2lmIGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKF9fQ1lHV0lOX18pIHx8IGRlZmluZWQoX1dJTjMyX1dDRSkKKy8qIERBVEEgaW1wb3J0cyBmcm9tIERMTHMgb24gV0lOMzIgY29uJ3QgYmUgY29uc3QsIGJlY2F1c2UgcnVudGltZQorICAgcmVsb2NhdGlvbnMgYXJlIHBlcmZvcm1lZCAtLSBzZWUgbGQncyBkb2N1bWVudGF0aW9uIG9uIHBzZXVkby1yZWxvY3MuICAqLworIyBkZWZpbmUgTFRfRExTWU1fQ09OU1QKKyNlbGlmIGRlZmluZWQoX19vc2ZfXykKKy8qIFRoaXMgc3lzdGVtIGRvZXMgbm90IGNvcGUgd2VsbCB3aXRoIHJlbG9jYXRpb25zIGluIGNvbnN0IGRhdGEuICAqLworIyBkZWZpbmUgTFRfRExTWU1fQ09OU1QKKyNlbHNlCisjIGRlZmluZSBMVF9ETFNZTV9DT05TVCBjb25zdAorI2VuZGlmCisKIC8qIEV4dGVybmFsIHN5bWJvbCBkZWNsYXJhdGlvbnMgZm9yIHRoZSBjb21waWxlci4gKi9cCiAiCiAKQEAgLTIzMzIsMTAgKzMyOTIsMTEgQEAKIAkgICRvcHRfZHJ5X3J1biB8fCBlY2hvICc6IEBQUk9HUkFNQCAnID4gIiRubGlzdCIKIAogCSAgIyBBZGQgb3VyIG93biBwcm9ncmFtIG9iamVjdHMgdG8gdGhlIHN5bWJvbCBsaXN0LgotCSAgcHJvZ2ZpbGVzPWAkRUNITyAiWCRvYmpzJG9sZF9kZXBsaWJzIiB8ICRTUDJOTCB8ICRYc2VkIC1lICIkbG8ybyIgfCAkTkwyU1BgCisJICBwcm9nZmlsZXM9YCRFQ0hPICIkb2JqcyRvbGRfZGVwbGlicyIgfCAkU1AyTkwgfCAkU0VEICIkbG8ybyIgfCAkTkwyU1BgCiAJICBmb3IgcHJvZ2ZpbGUgaW4gJHByb2dmaWxlczsgZG8KLQkgICAgZnVuY192ZXJib3NlICJleHRyYWN0aW5nIGdsb2JhbCBDIHN5bWJvbHMgZnJvbSBcYCRwcm9nZmlsZSciCi0JICAgICRvcHRfZHJ5X3J1biB8fCBldmFsICIkTk0gJHByb2dmaWxlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSA+PiAnJG5saXN0JyIKKwkgICAgZnVuY190b190b29sX2ZpbGUgIiRwcm9nZmlsZSIgZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIKKwkgICAgZnVuY192ZXJib3NlICJleHRyYWN0aW5nIGdsb2JhbCBDIHN5bWJvbHMgZnJvbSBcYCRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQnIgorCSAgICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiJE5NICRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQgfCAkZ2xvYmFsX3N5bWJvbF9waXBlID4+ICckbmxpc3QnIgogCSAgZG9uZQogCiAJICBpZiB0ZXN0IC1uICIkZXhjbHVkZV9leHBzeW1zIjsgdGhlbgpAQCAtMjM3MSw3ICszMzMyLDcgQEAKIAkgICAgICBldmFsICckR1JFUCAtZiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZXhwIiA8ICIkbmxpc3QiID4gIiRubGlzdCJUJwogCSAgICAgIGV2YWwgJyRNViAiJG5saXN0IlQgIiRubGlzdCInCiAJICAgICAgY2FzZSAkaG9zdCBpbgotCSAgICAgICAgKmN5Z3dpbiB8ICptaW5ndyogfCAqY2VnY2MqICkKKwkgICAgICAgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQogCSAgICAgICAgICBldmFsICJlY2hvIEVYUE9SVFMgIic+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJwogCSAgICAgICAgICBldmFsICdjYXQgIiRubGlzdCIgPj4gIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmRlZiInCiAJICAgICAgICAgIDs7CkBAIC0yMzg0LDEwICszMzQ1LDUyIEBACiAJICBmdW5jX3ZlcmJvc2UgImV4dHJhY3RpbmcgZ2xvYmFsIEMgc3ltYm9scyBmcm9tIFxgJGRscHJlZmlsZSciCiAJICBmdW5jX2Jhc2VuYW1lICIkZGxwcmVmaWxlIgogCSAgbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotCSAgJG9wdF9kcnlfcnVuIHx8IHsKLQkgICAgZXZhbCAnJEVDSE8gIjogJG5hbWUgIiA+PiAiJG5saXN0IicKLQkgICAgZXZhbCAiJE5NICRkbHByZWZpbGUgMj4vZGV2L251bGwgfCAkZ2xvYmFsX3N5bWJvbF9waXBlID4+ICckbmxpc3QnIgotCSAgfQorICAgICAgICAgIGNhc2UgJGhvc3QgaW4KKwkgICAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKiApCisJICAgICAgIyBpZiBhbiBpbXBvcnQgbGlicmFyeSwgd2UgbmVlZCB0byBvYnRhaW4gZGxuYW1lCisJICAgICAgaWYgZnVuY193aW4zMl9pbXBvcnRfbGliX3AgIiRkbHByZWZpbGUiOyB0aGVuCisJICAgICAgICBmdW5jX3RyX3NoICIkZGxwcmVmaWxlIgorCSAgICAgICAgZXZhbCAiY3Vycl9sYWZpbGU9XCRsaWJmaWxlXyRmdW5jX3RyX3NoX3Jlc3VsdCIKKwkgICAgICAgIGRscHJlZmlsZV9kbGJhc2VuYW1lPSIiCisJICAgICAgICBpZiB0ZXN0IC1uICIkY3Vycl9sYWZpbGUiICYmIGZ1bmNfbGFsaWJfcCAiJGN1cnJfbGFmaWxlIjsgdGhlbgorCSAgICAgICAgICAjIFVzZSBzdWJzaGVsbCwgdG8gYXZvaWQgY2xvYmJlcmluZyBjdXJyZW50IHZhcmlhYmxlIHZhbHVlcworCSAgICAgICAgICBkbHByZWZpbGVfZGxuYW1lPWBzb3VyY2UgIiRjdXJyX2xhZmlsZSIgJiYgZWNobyAiJGRsbmFtZSJgCisJICAgICAgICAgIGlmIHRlc3QgLW4gIiRkbHByZWZpbGVfZGxuYW1lIiA7IHRoZW4KKwkgICAgICAgICAgICBmdW5jX2Jhc2VuYW1lICIkZGxwcmVmaWxlX2RsbmFtZSIKKwkgICAgICAgICAgICBkbHByZWZpbGVfZGxiYXNlbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorCSAgICAgICAgICBlbHNlCisJICAgICAgICAgICAgIyBubyBsYWZpbGUuIHVzZXIgZXhwbGljaXRseSByZXF1ZXN0ZWQgLWRscHJlb3BlbiA8aW1wb3J0IGxpYnJhcnk+LgorCSAgICAgICAgICAgICRzaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZCAiJGRscHJlZmlsZSIKKwkgICAgICAgICAgICBkbHByZWZpbGVfZGxiYXNlbmFtZT0kc2hhcmVkbGliX2Zyb21fbGlua2xpYl9yZXN1bHQKKwkgICAgICAgICAgZmkKKwkgICAgICAgIGZpCisJICAgICAgICAkb3B0X2RyeV9ydW4gfHwgeworCSAgICAgICAgICBpZiB0ZXN0IC1uICIkZGxwcmVmaWxlX2RsYmFzZW5hbWUiIDsgdGhlbgorCSAgICAgICAgICAgIGV2YWwgJyRFQ0hPICI6ICRkbHByZWZpbGVfZGxiYXNlbmFtZSIgPj4gIiRubGlzdCInCisJICAgICAgICAgIGVsc2UKKwkgICAgICAgICAgICBmdW5jX3dhcm5pbmcgIkNvdWxkIG5vdCBjb21wdXRlIERMTCBuYW1lIGZyb20gJG5hbWUiCisJICAgICAgICAgICAgZXZhbCAnJEVDSE8gIjogJG5hbWUgIiA+PiAiJG5saXN0IicKKwkgICAgICAgICAgZmkKKwkgICAgICAgICAgZnVuY190b190b29sX2ZpbGUgIiRkbHByZWZpbGUiIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCisJICAgICAgICAgIGV2YWwgIiROTSBcIiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHRcIiAyPi9kZXYvbnVsbCB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfAorCSAgICAgICAgICAgICRTRUQgLWUgJy9JIF9faW1wL2QnIC1lICdzL0kgX19ubV8vRCAvO3MvX25tX18vLycgPj4gJyRubGlzdCciCisJICAgICAgICB9CisJICAgICAgZWxzZSAjIG5vdCBhbiBpbXBvcnQgbGliCisJICAgICAgICAkb3B0X2RyeV9ydW4gfHwgeworCSAgICAgICAgICBldmFsICckRUNITyAiOiAkbmFtZSAiID4+ICIkbmxpc3QiJworCSAgICAgICAgICBmdW5jX3RvX3Rvb2xfZmlsZSAiJGRscHJlZmlsZSIgZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIKKwkgICAgICAgICAgZXZhbCAiJE5NIFwiJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdFwiIDI+L2Rldi9udWxsIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSA+PiAnJG5saXN0JyIKKwkgICAgICAgIH0KKwkgICAgICBmaQorCSAgICA7OworCSAgICAqKQorCSAgICAgICRvcHRfZHJ5X3J1biB8fCB7CisJICAgICAgICBldmFsICckRUNITyAiOiAkbmFtZSAiID4+ICIkbmxpc3QiJworCSAgICAgICAgZnVuY190b190b29sX2ZpbGUgIiRkbHByZWZpbGUiIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCisJICAgICAgICBldmFsICIkTk0gXCIkZnVuY190b190b29sX2ZpbGVfcmVzdWx0XCIgMj4vZGV2L251bGwgfCAkZ2xvYmFsX3N5bWJvbF9waXBlID4+ICckbmxpc3QnIgorCSAgICAgIH0KKwkgICAgOzsKKyAgICAgICAgICBlc2FjCiAJZG9uZQogCiAJJG9wdF9kcnlfcnVuIHx8IHsKQEAgLTI0MTUsMzYgKzM0MTgsMTkgQEAKIAkgIGlmIHRlc3QgLWYgIiRubGlzdCJTOyB0aGVuCiAJICAgIGV2YWwgIiRnbG9iYWxfc3ltYm9sX3RvX2NkZWNsIicgPCAiJG5saXN0IlMgPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiJwogCSAgZWxzZQotCSAgICAkRUNITyAnLyogTk9ORSAqLycgPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiCisJICAgIGVjaG8gJy8qIE5PTkUgKi8nID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIgogCSAgZmkKIAotCSAgJEVDSE8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCisJICBlY2hvID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAogCiAvKiBUaGUgbWFwcGluZyBiZXR3ZWVuIHN5bWJvbCBuYW1lcyBhbmQgc3ltYm9scy4gICovCiB0eXBlZGVmIHN0cnVjdCB7CiAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgIHZvaWQgKmFkZHJlc3M7CiB9IGx0X2Rsc3ltbGlzdDsKLSIKLQkgIGNhc2UgJGhvc3QgaW4KLQkgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQotCSAgICAkRUNITyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIlwKLS8qIERBVEEgaW1wb3J0cyBmcm9tIERMTHMgb24gV0lOMzIgY29uJ3QgYmUgY29uc3QsIGJlY2F1c2UKLSAgIHJ1bnRpbWUgcmVsb2NhdGlvbnMgYXJlIHBlcmZvcm1lZCAtLSBzZWUgbGQncyBkb2N1bWVudGF0aW9uCi0gICBvbiBwc2V1ZG8tcmVsb2NzLiAgKi8iCi0JICAgIGx0X2Rsc3ltX2NvbnN0PSA7OwotCSAgKm9zZjUqKQotCSAgICBlY2hvID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAotLyogVGhpcyBzeXN0ZW0gZG9lcyBub3QgY29wZSB3ZWxsIHdpdGggcmVsb2NhdGlvbnMgaW4gY29uc3QgZGF0YSAqLyIKLQkgICAgbHRfZGxzeW1fY29uc3Q9IDs7Ci0JICAqKQotCSAgICBsdF9kbHN5bV9jb25zdD1jb25zdCA7OwotCSAgZXNhYwotCi0JICAkRUNITyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIlwKLWV4dGVybiAkbHRfZGxzeW1fY29uc3QgbHRfZGxzeW1saXN0CitleHRlcm4gTFRfRExTWU1fQ09OU1QgbHRfZGxzeW1saXN0CiBsdF8ke215X3ByZWZpeH1fTFRYX3ByZWxvYWRlZF9zeW1ib2xzW107Ci0kbHRfZGxzeW1fY29uc3QgbHRfZGxzeW1saXN0CitMVF9ETFNZTV9DT05TVCBsdF9kbHN5bWxpc3QKIGx0XyR7bXlfcHJlZml4fV9MVFhfcHJlbG9hZGVkX3N5bWJvbHNbXSA9CiB7XAogICB7IFwiJG15X29yaWdpbmF0b3JcIiwgKHZvaWQgKikgMCB9LCIKQEAgLTI0NTcsNyArMzQ0Myw3IEBACiAJICAgIGV2YWwgIiRnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXgiIDwgIiRubGlzdCIgPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiCiAJICAgIDs7CiAJICBlc2FjCi0JICAkRUNITyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIlwKKwkgIGVjaG8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCiAgIHswLCAodm9pZCAqKSAwfQogfTsKIApAQCAtMjUwMCw3ICszNDg2LDcgQEAKIAlmb3IgYXJnIGluICRMVENGTEFHUzsgZG8KIAkgIGNhc2UgJGFyZyBpbgogCSAgLXBpZSB8IC1mcGllIHwgLWZQSUUpIDs7Ci0JICAqKSBzeW10YWJfY2ZsYWdzPSIkc3ltdGFiX2NmbGFncyAkYXJnIiA7OworCSAgKikgZnVuY19hcHBlbmQgc3ltdGFiX2NmbGFncyAiICRhcmciIDs7CiAJICBlc2FjCiAJZG9uZQogCkBAIC0yNTE1LDE2ICszNTAxLDE2IEBACiAJY2FzZSAkaG9zdCBpbgogCSpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQogCSAgaWYgdGVzdCAtZiAiJG91dHB1dF9vYmpkaXIvJG15X291dHB1dG5hbWUuZGVmIjsgdGhlbgotCSAgICBjb21waWxlX2NvbW1hbmQ9YCRFQ0hPICJYJGNvbXBpbGVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJG91dHB1dF9vYmpkaXIvJG15X291dHB1dG5hbWUuZGVmICRzeW1maWxlb2JqJSJgCi0JICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRvdXRwdXRfb2JqZGlyLyRteV9vdXRwdXRuYW1lLmRlZiAkc3ltZmlsZW9iaiUiYAorCSAgICBjb21waWxlX2NvbW1hbmQ9YCRFQ0hPICIkY29tcGlsZV9jb21tYW5kIiB8ICRTRUQgInMlQFNZTUZJTEVAJSRvdXRwdXRfb2JqZGlyLyRteV9vdXRwdXRuYW1lLmRlZiAkc3ltZmlsZW9iaiUiYAorCSAgICBmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiJGZpbmFsaXplX2NvbW1hbmQiIHwgJFNFRCAicyVAU1lNRklMRUAlJG91dHB1dF9vYmpkaXIvJG15X291dHB1dG5hbWUuZGVmICRzeW1maWxlb2JqJSJgCiAJICBlbHNlCi0JICAgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAotCSAgICBmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiWCRmaW5hbGl6ZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAorCSAgICBjb21waWxlX2NvbW1hbmQ9YCRFQ0hPICIkY29tcGlsZV9jb21tYW5kIiB8ICRTRUQgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJgCisJICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICIkZmluYWxpemVfY29tbWFuZCIgfCAkU0VEICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAogCSAgZmkKIAkgIDs7CiAJKikKLQkgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAotCSAgZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJHN5bWZpbGVvYmolImAKKwkgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIiRjb21waWxlX2NvbW1hbmQiIHwgJFNFRCAicyVAU1lNRklMRUAlJHN5bWZpbGVvYmolImAKKwkgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICIkZmluYWxpemVfY29tbWFuZCIgfCAkU0VEICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAogCSAgOzsKIAllc2FjCiAJOzsKQEAgLTI1MzgsOCArMzUyNCw4IEBACiAgICAgICAjIHJlYWxseSB3YXMgcmVxdWlyZWQuCiAKICAgICAgICMgTnVsbGlmeSB0aGUgc3ltYm9sIGZpbGUuCi0gICAgICBjb21waWxlX2NvbW1hbmQ9YCRFQ0hPICJYJGNvbXBpbGVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyUgQFNZTUZJTEVAJSUiYAotICAgICAgZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyUgQFNZTUZJTEVAJSUiYAorICAgICAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAiJGNvbXBpbGVfY29tbWFuZCIgfCAkU0VEICJzJSBAU1lNRklMRUAlJSJgCisgICAgICBmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiJGZpbmFsaXplX2NvbW1hbmQiIHwgJFNFRCAicyUgQFNZTUZJTEVAJSUiYAogICAgIGZpCiB9CiAKQEAgLTI1NDksNiArMzUzNSw3IEBACiAjIE5lZWQgYSBsb3Qgb2YgZ29vIHRvIGhhbmRsZSAqYm90aCogRExMcyBhbmQgaW1wb3J0IGxpYnMKICMgSGFzIHRvIGJlIGEgc2hlbGwgZnVuY3Rpb24gaW4gb3JkZXIgdG8gJ2VhdCcgdGhlIGFyZ3VtZW50CiAjIHRoYXQgaXMgc3VwcGxpZWQgd2hlbiAkZmlsZV9tYWdpY19jb21tYW5kIGlzIGNhbGxlZC4KKyMgRGVzcGl0ZSB0aGUgbmFtZSwgYWxzbyBkZWFsIHdpdGggNjQgYml0IGJpbmFyaWVzLgogZnVuY193aW4zMl9saWJpZCAoKQogewogICAkb3B0X2RlYnVnCkBAIC0yNTU5LDkgKzM1NDYsMTEgQEAKICAgICB3aW4zMl9saWJpZF90eXBlPSJ4ODYgYXJjaGl2ZSBpbXBvcnQiCiAgICAgOzsKICAgKmFyXCBhcmNoaXZlKikgIyBjb3VsZCBiZSBhbiBpbXBvcnQsIG9yIHN0YXRpYworICAgICMgS2VlcCB0aGUgZWdyZXAgcGF0dGVybiBpbiBzeW5jIHdpdGggdGhlIG9uZSBpbiBfTFRfQ0hFQ0tfTUFHSUNfTUVUSE9ELgogICAgIGlmIGV2YWwgJE9CSkRVTVAgLWYgJDEgfCAkU0VEIC1lICcxMHEnIDI+L2Rldi9udWxsIHwKLSAgICAgICAkRUdSRVAgJ2ZpbGUgZm9ybWF0IHBlLWkzODYoLiphcmNoaXRlY3R1cmU6IGkzODYpPycgPi9kZXYvbnVsbCA7IHRoZW4KLSAgICAgIHdpbjMyX25tcmVzPWBldmFsICROTSAtZiBwb3NpeCAtQSAkMSB8CisgICAgICAgJEVHUkVQICdmaWxlIGZvcm1hdCAocGVpKi1pMzg2KC4qYXJjaGl0ZWN0dXJlOiBpMzg2KT98cGUtYXJtLXdpbmNlfHBlLXg4Ni02NCknID4vZGV2L251bGw7IHRoZW4KKyAgICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkMSIgZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIKKyAgICAgIHdpbjMyX25tcmVzPWBldmFsICROTSAtZiBwb3NpeCAtQSBcIiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHRcIiB8CiAJJFNFRCAtbiAtZSAnCiAJICAgIDEsMTAwewogCQkvIEkgL3sKQEAgLTI1OTAsNiArMzU3OSwxMzEgQEAKICAgJEVDSE8gIiR3aW4zMl9saWJpZF90eXBlIgogfQogCisjIGZ1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYiBBUkcKKyMKKyMgUGxhdGZvcm0tc3BlY2lmaWMgZnVuY3Rpb24gdG8gZXh0cmFjdCB0aGUKKyMgbmFtZSBvZiB0aGUgRExMIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkCisjIGltcG9ydCBsaWJyYXJ5IEFSRy4KKyMgSW52b2tlZCBieSBldmFsJ2luZyB0aGUgbGlidG9vbCB2YXJpYWJsZQorIyAgICAkc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQKKyMgUmVzdWx0IGlzIGF2YWlsYWJsZSBpbiB0aGUgdmFyaWFibGUKKyMgICAgJHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfcmVzdWx0CitmdW5jX2N5Z21pbmdfZGxsX2Zvcl9pbXBsaWIgKCkKK3sKKyAgJG9wdF9kZWJ1ZworICBzaGFyZWRsaWJfZnJvbV9saW5rbGliX3Jlc3VsdD1gJERMTFRPT0wgLS1pZGVudGlmeS1zdHJpY3QgLS1pZGVudGlmeSAiJDEiYAorfQorCisjIGZ1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYl9mYWxsYmFja19jb3JlIFNFQ1RJT05fTkFNRSBMSUJOQU1FcworIworIyBUaGUgaXMgdGhlIGNvcmUgb2YgYSBmYWxsYmFjayBpbXBsZW1lbnRhdGlvbiBvZiBhCisjIHBsYXRmb3JtLXNwZWNpZmljIGZ1bmN0aW9uIHRvIGV4dHJhY3QgdGhlIG5hbWUgb2YgdGhlCisjIERMTCBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBpbXBvcnQgbGlicmFyeSBMSUJOQU1FLgorIworIyBTRUNUSU9OX05BTUUgaXMgZWl0aGVyIC5pZGF0YSQ2IG9yIC5pZGF0YSQ3LCBkZXBlbmRpbmcKKyMgb24gdGhlIHBsYXRmb3JtIGFuZCBjb21waWxlciB0aGF0IGNyZWF0ZWQgdGhlIGltcGxpYi4KKyMKKyMgRWNob3MgdGhlIG5hbWUgb2YgdGhlIERMTCBhc3NvY2lhdGVkIHdpdGggdGhlCisjIHNwZWNpZmllZCBpbXBvcnQgbGlicmFyeS4KK2Z1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYl9mYWxsYmFja19jb3JlICgpCit7CisgICRvcHRfZGVidWcKKyAgbWF0Y2hfbGl0ZXJhbD1gJEVDSE8gIiQxIiB8ICRTRUQgIiRzZWRfbWFrZV9saXRlcmFsX3JlZ2V4ImAKKyAgJE9CSkRVTVAgLXMgLS1zZWN0aW9uICIkMSIgIiQyIiAyPi9kZXYvbnVsbCB8CisgICAgJFNFRCAnL15Db250ZW50cyBvZiBzZWN0aW9uICciJG1hdGNoX2xpdGVyYWwiJzoveworICAgICAgIyBQbGFjZSBtYXJrZXIgYXQgYmVnaW5uaW5nIG9mIGFyY2hpdmUgbWVtYmVyIGRsbG5hbWUgc2VjdGlvbgorICAgICAgcy8uKi89PT09TUFSSz09PT0vCisgICAgICBwCisgICAgICBkCisgICAgfQorICAgICMgVGhlc2UgbGluZXMgY2FuIHNvbWV0aW1lcyBiZSBsb25nZXIgdGhhbiA0MyBjaGFyYWN0ZXJzLCBidXQKKyAgICAjIGFyZSBhbHdheXMgdW5pbnRlcmVzdGluZworICAgIC86WwkgXSpmaWxlIGZvcm1hdCBwZVtpXVx7LDFcfS0vZAorICAgIC9eSW4gYXJjaGl2ZSBbXjpdKjovZAorICAgICMgRW5zdXJlIG1hcmtlciBpcyBwcmludGVkCisgICAgL149PT09TUFSSz09PT0vcAorICAgICMgUmVtb3ZlIGFsbCBsaW5lcyB3aXRoIGxlc3MgdGhhbiA0MyBjaGFyYWN0ZXJzCisgICAgL14uXHs0M1x9LyFkCisgICAgIyBGcm9tIHJlbWFpbmluZyBsaW5lcywgcmVtb3ZlIGZpcnN0IDQzIGNoYXJhY3RlcnMKKyAgICBzL14uXHs0M1x9Ly8nIHwKKyAgICAkU0VEIC1uICcKKyAgICAgICMgSm9pbiBtYXJrZXIgYW5kIGFsbCBsaW5lcyB1bnRpbCBuZXh0IG1hcmtlciBpbnRvIGEgc2luZ2xlIGxpbmUKKyAgICAgIC9ePT09PU1BUks9PT09LyBiIHBhcmEKKyAgICAgIEgKKyAgICAgICQgYiBwYXJhCisgICAgICBiCisgICAgICA6cGFyYQorICAgICAgeAorICAgICAgcy9cbi8vZworICAgICAgIyBSZW1vdmUgdGhlIG1hcmtlcgorICAgICAgcy9ePT09PU1BUks9PT09Ly8KKyAgICAgICMgUmVtb3ZlIHRyYWlsaW5nIGRvdHMgYW5kIHdoaXRlc3BhY2UKKyAgICAgIHMvW1wuIFx0XSokLy8KKyAgICAgICMgUHJpbnQKKyAgICAgIC8uL3AnIHwKKyAgICAjIHdlIG5vdyBoYXZlIGEgbGlzdCwgb25lIGVudHJ5IHBlciBsaW5lLCBvZiB0aGUgc3RyaW5naWZpZWQKKyAgICAjIGNvbnRlbnRzIG9mIHRoZSBhcHByb3ByaWF0ZSBzZWN0aW9uIG9mIGFsbCBtZW1iZXJzIG9mIHRoZQorICAgICMgYXJjaGl2ZSB3aGljaCBwb3NzZXNzIHRoYXQgc2VjdGlvbi4gSGV1cmlzdGljOiBlbGltaW5hdGUKKyAgICAjIGFsbCB0aG9zZSB3aGljaCBoYXZlIGEgZmlyc3Qgb3Igc2Vjb25kIGNoYXJhY3RlciB0aGF0IGlzCisgICAgIyBhICcuJyAodGhhdCBpcywgb2JqZHVtcCdzIHJlcHJlc2VudGF0aW9uIG9mIGFuIHVucHJpbnRhYmxlCisgICAgIyBjaGFyYWN0ZXIuKSBUaGlzIHNob3VsZCB3b3JrIGZvciBhbGwgYXJjaGl2ZXMgd2l0aCBsZXNzIHRoYW4KKyAgICAjIDB4MzAyZiBleHBvcnRzIC0tIGJ1dCB3aWxsIGZhaWwgZm9yIERMTHMgd2hvc2UgbmFtZSBhY3R1YWxseQorICAgICMgYmVnaW5zIHdpdGggYSBsaXRlcmFsICcuJyBvciBhIHNpbmdsZSBjaGFyYWN0ZXIgZm9sbG93ZWQgYnkKKyAgICAjIGEgJy4nLgorICAgICMKKyAgICAjIE9mIHRob3NlIHRoYXQgcmVtYWluLCBwcmludCB0aGUgZmlyc3Qgb25lLgorICAgICRTRUQgLWUgJy9eXC4vZDsvXi5cLi9kO3EnCit9CisKKyMgZnVuY19jeWdtaW5nX2dudV9pbXBsaWJfcCBBUkcKKyMgVGhpcyBwcmVkaWNhdGUgcmV0dXJucyB3aXRoIHplcm8gc3RhdHVzIChUUlVFKSBpZgorIyBBUkcgaXMgYSBHTlUvYmludXRpbHMtc3R5bGUgaW1wb3J0IGxpYnJhcnkuIFJldHVybnMKKyMgd2l0aCBub256ZXJvIHN0YXR1cyAoRkFMU0UpIG90aGVyd2lzZS4KK2Z1bmNfY3lnbWluZ19nbnVfaW1wbGliX3AgKCkKK3sKKyAgJG9wdF9kZWJ1ZworICBmdW5jX3RvX3Rvb2xfZmlsZSAiJDEiIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCisgIGZ1bmNfY3lnbWluZ19nbnVfaW1wbGliX3RtcD1gJE5NICIkZnVuY190b190b29sX2ZpbGVfcmVzdWx0IiB8IGV2YWwgIiRnbG9iYWxfc3ltYm9sX3BpcGUiIHwgJEVHUkVQICcgKF9oZWFkX1tBLVphLXowLTlfXStfW2FkXWwqfFtBLVphLXowLTlfXStfW2FkXWwqX2luYW1lKSQnYAorICB0ZXN0IC1uICIkZnVuY19jeWdtaW5nX2dudV9pbXBsaWJfdG1wIgorfQorCisjIGZ1bmNfY3lnbWluZ19tc19pbXBsaWJfcCBBUkcKKyMgVGhpcyBwcmVkaWNhdGUgcmV0dXJucyB3aXRoIHplcm8gc3RhdHVzIChUUlVFKSBpZgorIyBBUkcgaXMgYW4gTVMtc3R5bGUgaW1wb3J0IGxpYnJhcnkuIFJldHVybnMKKyMgd2l0aCBub256ZXJvIHN0YXR1cyAoRkFMU0UpIG90aGVyd2lzZS4KK2Z1bmNfY3lnbWluZ19tc19pbXBsaWJfcCAoKQoreworICAkb3B0X2RlYnVnCisgIGZ1bmNfdG9fdG9vbF9maWxlICIkMSIgZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIKKyAgZnVuY19jeWdtaW5nX21zX2ltcGxpYl90bXA9YCROTSAiJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdCIgfCBldmFsICIkZ2xvYmFsX3N5bWJvbF9waXBlIiB8ICRHUkVQICdfTlVMTF9JTVBPUlRfREVTQ1JJUFRPUidgCisgIHRlc3QgLW4gIiRmdW5jX2N5Z21pbmdfbXNfaW1wbGliX3RtcCIKK30KKworIyBmdW5jX2N5Z21pbmdfZGxsX2Zvcl9pbXBsaWJfZmFsbGJhY2sgQVJHCisjIFBsYXRmb3JtLXNwZWNpZmljIGZ1bmN0aW9uIHRvIGV4dHJhY3QgdGhlCisjIG5hbWUgb2YgdGhlIERMTCBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZAorIyBpbXBvcnQgbGlicmFyeSBBUkcuCisjCisjIFRoaXMgZmFsbGJhY2sgaW1wbGVtZW50YXRpb24gaXMgZm9yIHVzZSB3aGVuICRETExUT09MCisjIGRvZXMgbm90IHN1cHBvcnQgdGhlIC0taWRlbnRpZnktc3RyaWN0IG9wdGlvbi4KKyMgSW52b2tlZCBieSBldmFsJ2luZyB0aGUgbGlidG9vbCB2YXJpYWJsZQorIyAgICAkc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQKKyMgUmVzdWx0IGlzIGF2YWlsYWJsZSBpbiB0aGUgdmFyaWFibGUKKyMgICAgJHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfcmVzdWx0CitmdW5jX2N5Z21pbmdfZGxsX2Zvcl9pbXBsaWJfZmFsbGJhY2sgKCkKK3sKKyAgJG9wdF9kZWJ1ZworICBpZiBmdW5jX2N5Z21pbmdfZ251X2ltcGxpYl9wICIkMSIgOyB0aGVuCisgICAgIyBiaW51dGlscyBpbXBvcnQgbGlicmFyeQorICAgIHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfcmVzdWx0PWBmdW5jX2N5Z21pbmdfZGxsX2Zvcl9pbXBsaWJfZmFsbGJhY2tfY29yZSAnLmlkYXRhJDcnICIkMSJgCisgIGVsaWYgZnVuY19jeWdtaW5nX21zX2ltcGxpYl9wICIkMSIgOyB0aGVuCisgICAgIyBtcy1nZW5lcmF0ZWQgaW1wb3J0IGxpYnJhcnkKKyAgICBzaGFyZWRsaWJfZnJvbV9saW5rbGliX3Jlc3VsdD1gZnVuY19jeWdtaW5nX2RsbF9mb3JfaW1wbGliX2ZhbGxiYWNrX2NvcmUgJy5pZGF0YSQ2JyAiJDEiYAorICBlbHNlCisgICAgIyB1bmtub3duCisgICAgc2hhcmVkbGliX2Zyb21fbGlua2xpYl9yZXN1bHQ9IiIKKyAgZmkKK30KIAogCiAjIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlIGRpciBvbGRsaWIKQEAgLTI1OTgsNyArMzcxMiwxOCBAQAogICAgICRvcHRfZGVidWcKICAgICBmX2V4X2FuX2FyX2Rpcj0iJDEiOyBzaGlmdAogICAgIGZfZXhfYW5fYXJfb2xkbGliPSIkMSIKLSAgICBmdW5jX3Nob3dfZXZhbCAiKGNkIFwkZl9leF9hbl9hcl9kaXIgJiYgJEFSIHggXCJcJGZfZXhfYW5fYXJfb2xkbGliXCIpIiAnZXhpdCAkPycKKyAgICBpZiB0ZXN0ICIkbG9ja19vbGRfYXJjaGl2ZV9leHRyYWN0aW9uIiA9IHllczsgdGhlbgorICAgICAgbG9ja2ZpbGU9JGZfZXhfYW5fYXJfb2xkbGliLmxvY2sKKyAgICAgIHVudGlsICRvcHRfZHJ5X3J1biB8fCBsbiAiJHByb2dwYXRoIiAiJGxvY2tmaWxlIiAyPi9kZXYvbnVsbDsgZG8KKwlmdW5jX2VjaG8gIldhaXRpbmcgZm9yICRsb2NrZmlsZSB0byBiZSByZW1vdmVkIgorCXNsZWVwIDIKKyAgICAgIGRvbmUKKyAgICBmaQorICAgIGZ1bmNfc2hvd19ldmFsICIoY2QgXCRmX2V4X2FuX2FyX2RpciAmJiAkQVIgeCBcIlwkZl9leF9hbl9hcl9vbGRsaWJcIikiIFwKKwkJICAgJ3N0YXQ9JD87IHJtIC1mICIkbG9ja2ZpbGUiOyBleGl0ICRzdGF0JworICAgIGlmIHRlc3QgIiRsb2NrX29sZF9hcmNoaXZlX2V4dHJhY3Rpb24iID0geWVzOyB0aGVuCisgICAgICAkb3B0X2RyeV9ydW4gfHwgcm0gLWYgIiRsb2NrZmlsZSIKKyAgICBmaQogICAgIGlmICgkQVIgdCAiJGZfZXhfYW5fYXJfb2xkbGliIiB8IHNvcnQgfCBzb3J0IC11YyA+L2Rldi9udWxsIDI+JjEpOyB0aGVuCiAgICAgIDoKICAgICBlbHNlCkBAIC0yNjY5LDcgKzM3OTQsNyBAQAogCSAgICBkYXJ3aW5fZmlsZT0KIAkgICAgZGFyd2luX2ZpbGVzPQogCSAgICBmb3IgZGFyd2luX2ZpbGUgaW4gJGRhcndpbl9maWxlbGlzdDsgZG8KLQkgICAgICBkYXJ3aW5fZmlsZXM9YGZpbmQgdW5mYXQtJCQgLW5hbWUgJGRhcndpbl9maWxlIC1wcmludCB8ICROTDJTUGAKKwkgICAgICBkYXJ3aW5fZmlsZXM9YGZpbmQgdW5mYXQtJCQgLW5hbWUgJGRhcndpbl9maWxlIC1wcmludCB8IHNvcnQgfCAkTkwyU1BgCiAJICAgICAgJExJUE8gLWNyZWF0ZSAtb3V0cHV0ICIkZGFyd2luX2ZpbGUiICRkYXJ3aW5fZmlsZXMKIAkgICAgZG9uZSAjICRkYXJ3aW5fZmlsZWxpc3QKIAkgICAgJFJNIC1yZiB1bmZhdC0kJApAQCAtMjY4NCwyNSArMzgwOSwzMCBAQAogICAgICAgICBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAiJG15X3hkaXIiICIkbXlfeGFicyIKIAk7OwogICAgICAgZXNhYwotICAgICAgbXlfb2xkb2Jqcz0iJG15X29sZG9ianMgImBmaW5kICRteV94ZGlyIC1uYW1lIFwqLiRvYmpleHQgLXByaW50IC1vIC1uYW1lIFwqLmxvIC1wcmludCB8ICROTDJTUGAKKyAgICAgIG15X29sZG9ianM9IiRteV9vbGRvYmpzICJgZmluZCAkbXlfeGRpciAtbmFtZSBcKi4kb2JqZXh0IC1wcmludCAtbyAtbmFtZSBcKi5sbyAtcHJpbnQgfCBzb3J0IHwgJE5MMlNQYAogICAgIGRvbmUKIAogICAgIGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQ9IiRteV9vbGRvYmpzIgogfQogCiAKLQotIyBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MSBbYXJnPW5vXQorIyBmdW5jX2VtaXRfd3JhcHBlciBbYXJnPW5vXQogIwotIyBFbWl0IHRoZSBmaXJzdCBwYXJ0IG9mIGEgbGlidG9vbCB3cmFwcGVyIHNjcmlwdCBvbiBzdGRvdXQuCi0jIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIGRlc2NyaXB0aW9uIGFzc29jaWF0ZWQgd2l0aAotIyBmdW5jX2VtaXRfd3JhcHBlcigpLCBiZWxvdy4KLWZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxICgpCisjIEVtaXQgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9uIHN0ZG91dC4KKyMgRG9uJ3QgZGlyZWN0bHkgb3BlbiBhIGZpbGUgYmVjYXVzZSB3ZSBtYXkgd2FudCB0bworIyBpbmNvcnBvcmF0ZSB0aGUgc2NyaXB0IGNvbnRlbnRzIHdpdGhpbiBhIGN5Z3dpbi9taW5ndworIyB3cmFwcGVyIGV4ZWN1dGFibGUuICBNdXN0IE9OTFkgYmUgY2FsbGVkIGZyb20gd2l0aGluCisjIGZ1bmNfbW9kZV9saW5rIGJlY2F1c2UgaXQgZGVwZW5kcyBvbiBhIG51bWJlciBvZiB2YXJpYWJsZXMKKyMgc2V0IHRoZXJlaW4uCisjCisjIEFSRyBpcyB0aGUgdmFsdWUgdGhhdCB0aGUgV1JBUFBFUl9TQ1JJUFRfQkVMT05HU19JTl9PQkpESVIKKyMgdmFyaWFibGUgd2lsbCB0YWtlLiAgSWYgJ3llcycsIHRoZW4gdGhlIGVtaXR0ZWQgc2NyaXB0CisjIHdpbGwgYXNzdW1lIHRoYXQgdGhlIGRpcmVjdG9yeSBpbiB3aGljaCBpdCBpcyBzdG9yZWQgaXMKKyMgdGhlICRvYmpkaXIgZGlyZWN0b3J5LiAgVGhpcyBpcyBhIGN5Z3dpbi9taW5ndy1zcGVjaWZpYworIyBiZWhhdmlvci4KK2Z1bmNfZW1pdF93cmFwcGVyICgpCiB7Ci0JZnVuY19lbWl0X3dyYXBwZXJfcGFydDFfYXJnMT1ubwotCWlmIHRlc3QgLW4gIiQxIiA7IHRoZW4KLQkgIGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxX2FyZzE9JDEKLQlmaQorCWZ1bmNfZW1pdF93cmFwcGVyX2FyZzE9JHsxLW5vfQogCiAJJEVDSE8gIlwKICMhICRTSEVMTApAQCAtMjcxOCw3ICszODQ4LDYgQEAKIAogIyBTZWQgc3Vic3RpdHV0aW9uIHRoYXQgaGVscHMgdXMgZG8gcm9idXN0IHF1b3RpbmcuICBJdCBiYWNrc2xhc2hpZmllcwogIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KLVhzZWQ9JyR7U0VEfSAtZSAxcy9eWC8vJwogc2VkX3F1b3RlX3N1YnN0PSckc2VkX3F1b3RlX3N1YnN0JwogCiAjIEJlIEJvdXJuZSBjb21wYXRpYmxlCkBAIC0yNzQ5LDMxICszODc4LDEzMiBAQAogZWxzZQogICAjIFdoZW4gd2UgYXJlIHNvdXJjZWQgaW4gZXhlY3V0ZSBtb2RlLCBcJGZpbGUgYW5kIFwkRUNITyBhcmUgYWxyZWFkeSBzZXQuCiAgIGlmIHRlc3QgXCJcJGxpYnRvb2xfZXhlY3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2ljXCI7IHRoZW4KLSAgICBFQ0hPPVwiJHFlY2hvXCIKLSAgICBmaWxlPVwiXCQwXCIKLSAgICAjIE1ha2Ugc3VyZSBlY2hvIHdvcmtzLgotICAgIGlmIHRlc3QgXCJYXCQxXCIgPSBYLS1uby1yZWV4ZWM7IHRoZW4KLSAgICAgICMgRGlzY2FyZCB0aGUgLS1uby1yZWV4ZWMgZmxhZywgYW5kIGNvbnRpbnVlLgotICAgICAgc2hpZnQKLSAgICBlbGlmIHRlc3QgXCJYXGB7IFwkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxsXGBcIiA9ICdYXHQnOyB0aGVuCi0gICAgICAjIFlpcHBlZSwgXCRFQ0hPIHdvcmtzIQotICAgICAgOgotICAgIGVsc2UKLSAgICAgICMgUmVzdGFydCB1bmRlciB0aGUgY29ycmVjdCBzaGVsbCwgYW5kIHRoZW4gbWF5YmUgXCRFQ0hPIHdpbGwgd29yay4KLSAgICAgIGV4ZWMgJFNIRUxMIFwiXCQwXCIgLS1uby1yZWV4ZWMgXCR7MStcIlwkQFwifQotICAgIGZpCi0gIGZpXAorICAgIGZpbGU9XCJcJDBcIiIKKworICAgIHFFQ0hPPWAkRUNITyAiJEVDSE8iIHwgJFNFRCAiJHNlZF9xdW90ZV9zdWJzdCJgCisgICAgJEVDSE8gIlwKKworIyBBIGZ1bmN0aW9uIHRoYXQgaXMgdXNlZCB3aGVuIHRoZXJlIGlzIG5vIHByaW50IGJ1aWx0aW4gb3IgcHJpbnRmLgorZnVuY19mYWxsYmFja19lY2hvICgpCit7CisgIGV2YWwgJ2NhdCA8PF9MVEVDSE9fRU9GCitcJDEKK19MVEVDSE9fRU9GJworfQorICAgIEVDSE89XCIkcUVDSE9cIgorICBmaQorCisjIFZlcnkgYmFzaWMgb3B0aW9uIHBhcnNpbmcuIFRoZXNlIG9wdGlvbnMgYXJlIChhKSBzcGVjaWZpYyB0bworIyB0aGUgbGlidG9vbCB3cmFwcGVyLCAoYikgYXJlIGlkZW50aWNhbCBiZXR3ZWVuIHRoZSB3cmFwcGVyCisjIC9zY3JpcHQvIGFuZCB0aGUgd3JhcHBlciAvZXhlY3V0YWJsZS8gd2hpY2ggaXMgdXNlZCBvbmx5IG9uCisjIHdpbmRvd3MgcGxhdGZvcm1zLCBhbmQgKGMpIGFsbCBiZWdpbiB3aXRoIHRoZSBzdHJpbmcgIi0tbHQtIgorIyAoYXBwbGljYXRpb24gcHJvZ3JhbXMgYXJlIHVubGlrZWx5IHRvIGhhdmUgb3B0aW9ucyB3aGljaCBtYXRjaAorIyB0aGlzIHBhdHRlcm4pLgorIworIyBUaGVyZSBhcmUgb25seSB0d28gc3VwcG9ydGVkIG9wdGlvbnM6IC0tbHQtZGVidWcgYW5kCisjIC0tbHQtZHVtcC1zY3JpcHQuIFRoZXJlIGlzLCBkZWxpYmVyYXRlbHksIG5vIC0tbHQtaGVscC4KKyMKKyMgVGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoaXMgcGFyc2luZyBmdW5jdGlvbiBzaG91bGQgYmUgdGhlCisjIHNjcmlwdCdzICQwIHZhbHVlLCBmb2xsb3dlZCBieSAiJEAiLgorbHRfb3B0aW9uX2RlYnVnPQorZnVuY19wYXJzZV9sdF9vcHRpb25zICgpCit7CisgIGx0X3NjcmlwdF9hcmcwPVwkMAorICBzaGlmdAorICBmb3IgbHRfb3B0CisgIGRvCisgICAgY2FzZSBcIlwkbHRfb3B0XCIgaW4KKyAgICAtLWx0LWRlYnVnKSBsdF9vcHRpb25fZGVidWc9MSA7OworICAgIC0tbHQtZHVtcC1zY3JpcHQpCisgICAgICAgIGx0X2R1bXBfRD1cYFwkRUNITyBcIlhcJGx0X3NjcmlwdF9hcmcwXCIgfCAkU0VEIC1lICdzL15YLy8nIC1lICdzJS9bXi9dKiQlJSdcYAorICAgICAgICB0ZXN0IFwiWFwkbHRfZHVtcF9EXCIgPSBcIlhcJGx0X3NjcmlwdF9hcmcwXCIgJiYgbHRfZHVtcF9EPS4KKyAgICAgICAgbHRfZHVtcF9GPVxgXCRFQ0hPIFwiWFwkbHRfc2NyaXB0X2FyZzBcIiB8ICRTRUQgLWUgJ3MvXlgvLycgLWUgJ3MlXi4qLyUlJ1xgCisgICAgICAgIGNhdCBcIlwkbHRfZHVtcF9EL1wkbHRfZHVtcF9GXCIKKyAgICAgICAgZXhpdCAwCisgICAgICA7OworICAgIC0tbHQtKikKKyAgICAgICAgXCRFQ0hPIFwiVW5yZWNvZ25pemVkIC0tbHQtIG9wdGlvbjogJ1wkbHRfb3B0J1wiIDE+JjIKKyAgICAgICAgZXhpdCAxCisgICAgICA7OworICAgIGVzYWMKKyAgZG9uZQorCisgICMgUHJpbnQgdGhlIGRlYnVnIGJhbm5lciBpbW1lZGlhdGVseToKKyAgaWYgdGVzdCAtbiBcIlwkbHRfb3B0aW9uX2RlYnVnXCI7IHRoZW4KKyAgICBlY2hvIFwiJHtvdXRwdXRuYW1lfToke291dHB1dH06XCR7TElORU5PfTogbGlidG9vbCB3cmFwcGVyIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTlwiIDE+JjIKKyAgZmkKK30KKworIyBVc2VkIHdoZW4gLS1sdC1kZWJ1Zy4gUHJpbnRzIGl0cyBhcmd1bWVudHMgdG8gc3Rkb3V0CisjIChyZWRpcmVjdGlvbiBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNhbGxlcikKK2Z1bmNfbHRfZHVtcF9hcmdzICgpCit7CisgIGx0X2R1bXBfYXJnc19OPTE7CisgIGZvciBsdF9hcmcKKyAgZG8KKyAgICBcJEVDSE8gXCIke291dHB1dG5hbWV9OiR7b3V0cHV0fTpcJHtMSU5FTk99OiBuZXdhcmd2W1wkbHRfZHVtcF9hcmdzX05dOiBcJGx0X2FyZ1wiCisgICAgbHRfZHVtcF9hcmdzX049XGBleHByIFwkbHRfZHVtcF9hcmdzX04gKyAxXGAKKyAgZG9uZQorfQorCisjIENvcmUgZnVuY3Rpb24gZm9yIGxhdW5jaGluZyB0aGUgdGFyZ2V0IGFwcGxpY2F0aW9uCitmdW5jX2V4ZWNfcHJvZ3JhbV9jb3JlICgpCit7CiAiCi0JJEVDSE8gIlwKKyAgY2FzZSAkaG9zdCBpbgorICAjIEJhY2tzbGFzaGVzIHNlcGFyYXRlIGRpcmVjdG9yaWVzIG9uIHBsYWluIHdpbmRvd3MKKyAgKi0qLW1pbmd3IHwgKi0qLW9zMiogfCAqLWNlZ2NjKikKKyAgICAkRUNITyAiXAorICAgICAgaWYgdGVzdCAtbiBcIlwkbHRfb3B0aW9uX2RlYnVnXCI7IHRoZW4KKyAgICAgICAgXCRFQ0hPIFwiJHtvdXRwdXRuYW1lfToke291dHB1dH06XCR7TElORU5PfTogbmV3YXJndlswXTogXCRwcm9nZGlyXFxcXFwkcHJvZ3JhbVwiIDE+JjIKKyAgICAgICAgZnVuY19sdF9kdW1wX2FyZ3MgXCR7MStcIlwkQFwifSAxPiYyCisgICAgICBmaQorICAgICAgZXhlYyBcIlwkcHJvZ2RpclxcXFxcJHByb2dyYW1cIiBcJHsxK1wiXCRAXCJ9CisiCisgICAgOzsKKworICAqKQorICAgICRFQ0hPICJcCisgICAgICBpZiB0ZXN0IC1uIFwiXCRsdF9vcHRpb25fZGVidWdcIjsgdGhlbgorICAgICAgICBcJEVDSE8gXCIke291dHB1dG5hbWV9OiR7b3V0cHV0fTpcJHtMSU5FTk99OiBuZXdhcmd2WzBdOiBcJHByb2dkaXIvXCRwcm9ncmFtXCIgMT4mMgorICAgICAgICBmdW5jX2x0X2R1bXBfYXJncyBcJHsxK1wiXCRAXCJ9IDE+JjIKKyAgICAgIGZpCisgICAgICBleGVjIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiIFwkezErXCJcJEBcIn0KKyIKKyAgICA7OworICBlc2FjCisgICRFQ0hPICJcCisgICAgICBcJEVDSE8gXCJcJDA6IGNhbm5vdCBleGVjIFwkcHJvZ3JhbSBcJCpcIiAxPiYyCisgICAgICBleGl0IDEKK30KKworIyBBIGZ1bmN0aW9uIHRvIGVuY2Fwc3VsYXRlIGxhdW5jaGluZyB0aGUgdGFyZ2V0IGFwcGxpY2F0aW9uCisjIFN0cmlwcyBvcHRpb25zIGluIHRoZSAtLWx0LSogbmFtZXNwYWNlIGZyb20gXCRAIGFuZAorIyBsYXVuY2hlcyB0YXJnZXQgYXBwbGljYXRpb24gd2l0aCB0aGUgcmVtYWluaW5nIGFyZ3VtZW50cy4KK2Z1bmNfZXhlY19wcm9ncmFtICgpCit7CisgIGZvciBsdF93cl9hcmcKKyAgZG8KKyAgICBjYXNlIFwkbHRfd3JfYXJnIGluCisgICAgLS1sdC0qKSA7OworICAgICopIHNldCB4IFwiXCRAXCIgXCJcJGx0X3dyX2FyZ1wiOyBzaGlmdDs7CisgICAgZXNhYworICAgIHNoaWZ0CisgIGRvbmUKKyAgZnVuY19leGVjX3Byb2dyYW1fY29yZSBcJHsxK1wiXCRAXCJ9Cit9CisKKyAgIyBQYXJzZSBvcHRpb25zCisgIGZ1bmNfcGFyc2VfbHRfb3B0aW9ucyBcIlwkMFwiIFwkezErXCJcJEBcIn0KIAogICAjIEZpbmQgdGhlIGRpcmVjdG9yeSB0aGF0IHRoaXMgc2NyaXB0IGxpdmVzIGluLgotICB0aGlzZGlyPVxgXCRFQ0hPIFwiWFwkZmlsZVwiIHwgXCRYc2VkIC1lICdzJS9bXi9dKiQlJSdcYAorICB0aGlzZGlyPVxgXCRFQ0hPIFwiXCRmaWxlXCIgfCAkU0VEICdzJS9bXi9dKiQlJSdcYAogICB0ZXN0IFwieFwkdGhpc2RpclwiID0gXCJ4XCRmaWxlXCIgJiYgdGhpc2Rpcj0uCiAKICAgIyBGb2xsb3cgc3ltYm9saWMgbGlua3MgdW50aWwgd2UgZ2V0IHRvIHRoZSByZWFsIHRoaXNkaXIuCi0gIGZpbGU9XGBscyAtbGQgXCJcJGZpbGVcIiB8ICR7U0VEfSAtbiAncy8uKi0+IC8vcCdcYAorICBmaWxlPVxgbHMgLWxkIFwiXCRmaWxlXCIgfCAkU0VEIC1uICdzLy4qLT4gLy9wJ1xgCiAgIHdoaWxlIHRlc3QgLW4gXCJcJGZpbGVcIjsgZG8KLSAgICBkZXN0ZGlyPVxgXCRFQ0hPIFwiWFwkZmlsZVwiIHwgXCRYc2VkIC1lICdzJS9bXi9dKlwkJSUnXGAKKyAgICBkZXN0ZGlyPVxgXCRFQ0hPIFwiXCRmaWxlXCIgfCAkU0VEICdzJS9bXi9dKlwkJSUnXGAKIAogICAgICMgSWYgdGhlcmUgd2FzIGEgZGlyZWN0b3J5IGNvbXBvbmVudCwgdGhlbiBjaGFuZ2UgdGhpc2Rpci4KICAgICBpZiB0ZXN0IFwieFwkZGVzdGRpclwiICE9IFwieFwkZmlsZVwiOyB0aGVuCkBAIC0yNzgzLDMwICs0MDEzLDEzIEBACiAgICAgICBlc2FjCiAgICAgZmkKIAotICAgIGZpbGU9XGBcJEVDSE8gXCJYXCRmaWxlXCIgfCBcJFhzZWQgLWUgJ3MlXi4qLyUlJ1xgCi0gICAgZmlsZT1cYGxzIC1sZCBcIlwkdGhpc2Rpci9cJGZpbGVcIiB8ICR7U0VEfSAtbiAncy8uKi0+IC8vcCdcYAorICAgIGZpbGU9XGBcJEVDSE8gXCJcJGZpbGVcIiB8ICRTRUQgJ3MlXi4qLyUlJ1xgCisgICAgZmlsZT1cYGxzIC1sZCBcIlwkdGhpc2Rpci9cJGZpbGVcIiB8ICRTRUQgLW4gJ3MvLiotPiAvL3AnXGAKICAgZG9uZQotIgotfQotIyBlbmQ6IGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxCi0KLSMgZnVuY19lbWl0X3dyYXBwZXJfcGFydDIgW2FyZz1ub10KLSMKLSMgRW1pdCB0aGUgc2Vjb25kIHBhcnQgb2YgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9uIHN0ZG91dC4KLSMgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgZGVzY3JpcHRpb24gYXNzb2NpYXRlZCB3aXRoCi0jIGZ1bmNfZW1pdF93cmFwcGVyKCksIGJlbG93LgotZnVuY19lbWl0X3dyYXBwZXJfcGFydDIgKCkKLXsKLQlmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0Ml9hcmcxPW5vCi0JaWYgdGVzdCAtbiAiJDEiIDsgdGhlbgotCSAgZnVuY19lbWl0X3dyYXBwZXJfcGFydDJfYXJnMT0kMQotCWZpCi0KLQkkRUNITyAiXAogCiAgICMgVXN1YWxseSAnbm8nLCBleGNlcHQgb24gY3lnd2luL21pbmd3IHdoZW4gZW1iZWRkZWQgaW50bwogICAjIHRoZSBjd3JhcHBlci4KLSAgV1JBUFBFUl9TQ1JJUFRfQkVMT05HU19JTl9PQkpESVI9JGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyX2FyZzEKKyAgV1JBUFBFUl9TQ1JJUFRfQkVMT05HU19JTl9PQkpESVI9JGZ1bmNfZW1pdF93cmFwcGVyX2FyZzEKICAgaWYgdGVzdCBcIlwkV1JBUFBFUl9TQ1JJUFRfQkVMT05HU19JTl9PQkpESVJcIiA9IFwieWVzXCI7IHRoZW4KICAgICAjIHNwZWNpYWwgY2FzZSBmb3IgJy4nCiAgICAgaWYgdGVzdCBcIlwkdGhpc2RpclwiID0gXCIuXCI7IHRoZW4KQEAgLTI4MTQsNyArNDAyNyw3IEBACiAgICAgZmkKICAgICAjIHJlbW92ZSAubGlicyBmcm9tIHRoaXNkaXIKICAgICBjYXNlIFwiXCR0aGlzZGlyXCIgaW4KLSAgICAqW1xcXFwvXSRvYmpkaXIgKSB0aGlzZGlyPVxgXCRFQ0hPIFwiWFwkdGhpc2RpclwiIHwgXCRYc2VkIC1lICdzJVtcXFxcL11bXlxcXFwvXSokJSUnXGAgOzsKKyAgICAqW1xcXFwvXSRvYmpkaXIgKSB0aGlzZGlyPVxgXCRFQ0hPIFwiXCR0aGlzZGlyXCIgfCAkU0VEICdzJVtcXFxcL11bXlxcXFwvXSokJSUnXGAgOzsKICAgICAkb2JqZGlyICkgICB0aGlzZGlyPS4gOzsKICAgICBlc2FjCiAgIGZpCkBAIC0yODY5LDYgKzQwODIsMTggQEAKIAogICBpZiB0ZXN0IC1mIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiOyB0aGVuIgogCisJIyBmaXh1cCB0aGUgZGxsIHNlYXJjaHBhdGggaWYgd2UgbmVlZCB0by4KKwkjCisJIyBGaXggdGhlIERMTCBzZWFyY2hwYXRoIGlmIHdlIG5lZWQgdG8uICBEbyB0aGlzIGJlZm9yZSBwcmVwZW5kaW5nCisJIyB0byBzaGxpYnBhdGgsIGJlY2F1c2Ugb24gV2luZG93cywgYm90aCBhcmUgUEFUSCBhbmQgdW5pbnN0YWxsZWQKKwkjIGxpYnJhcmllcyBtdXN0IGNvbWUgZmlyc3QuCisJaWYgdGVzdCAtbiAiJGRsbHNlYXJjaHBhdGgiOyB0aGVuCisJICAkRUNITyAiXAorICAgICMgQWRkIHRoZSBkbGwgc2VhcmNoIHBhdGggY29tcG9uZW50cyB0byB0aGUgZXhlY3V0YWJsZSBQQVRICisgICAgUEFUSD0kZGxsc2VhcmNocGF0aDpcJFBBVEgKKyIKKwlmaQorCiAJIyBFeHBvcnQgb3VyIHNobGlicGF0aF92YXIgaWYgd2UgaGF2ZSBvbmUuCiAJaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgJiYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiICYmIHRlc3QgLW4gIiR0ZW1wX3JwYXRoIjsgdGhlbgogCSAgJEVDSE8gIlwKQEAgLTI4NzcsMjU0ICs0MTAyLDI5IEBACiAKICAgICAjIFNvbWUgc3lzdGVtcyBjYW5ub3QgY29wZSB3aXRoIGNvbG9uLXRlcm1pbmF0ZWQgJHNobGlicGF0aF92YXIKICAgICAjIFRoZSBzZWNvbmQgY29sb24gaXMgYSB3b3JrYXJvdW5kIGZvciBhIGJ1ZyBpbiBCZU9TIFI0IHNlZAotICAgICRzaGxpYnBhdGhfdmFyPVxgXCRFQ0hPIFwiWFwkJHNobGlicGF0aF92YXJcIiB8IFwkWHNlZCAtZSAncy86OipcJC8vJ1xgCisgICAgJHNobGlicGF0aF92YXI9XGBcJEVDSE8gXCJcJCRzaGxpYnBhdGhfdmFyXCIgfCAkU0VEICdzLzo6KlwkLy8nXGAKIAogICAgIGV4cG9ydCAkc2hsaWJwYXRoX3ZhcgogIgogCWZpCiAKLQkjIGZpeHVwIHRoZSBkbGwgc2VhcmNocGF0aCBpZiB3ZSBuZWVkIHRvLgotCWlmIHRlc3QgLW4gIiRkbGxzZWFyY2hwYXRoIjsgdGhlbgotCSAgJEVDSE8gIlwKLSAgICAjIEFkZCB0aGUgZGxsIHNlYXJjaCBwYXRoIGNvbXBvbmVudHMgdG8gdGhlIGV4ZWN1dGFibGUgUEFUSAotICAgIFBBVEg9JGRsbHNlYXJjaHBhdGg6XCRQQVRICi0iCi0JZmkKLQogCSRFQ0hPICJcCiAgICAgaWYgdGVzdCBcIlwkbGlidG9vbF9leGVjdXRlX21hZ2ljXCIgIT0gXCIkbWFnaWNcIjsgdGhlbgogICAgICAgIyBSdW4gdGhlIGFjdHVhbCBwcm9ncmFtIHdpdGggb3VyIGFyZ3VtZW50cy4KLSIKLQljYXNlICRob3N0IGluCi0JIyBCYWNrc2xhc2hlcyBzZXBhcmF0ZSBkaXJlY3RvcmllcyBvbiBwbGFpbiB3aW5kb3dzCi0JKi0qLW1pbmd3IHwgKi0qLW9zMiogfCAqLWNlZ2NjKikKLQkgICRFQ0hPICJcCi0gICAgICBleGVjIFwiXCRwcm9nZGlyXFxcXFwkcHJvZ3JhbVwiIFwkezErXCJcJEBcIn0KLSIKLQkgIDs7Ci0KLQkqKQotCSAgJEVDSE8gIlwKLSAgICAgIGV4ZWMgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgXCR7MStcIlwkQFwifQotIgotCSAgOzsKLQllc2FjCi0JJEVDSE8gIlwKLSAgICAgIFwkRUNITyBcIlwkMDogY2Fubm90IGV4ZWMgXCRwcm9ncmFtIFwkKlwiIDE+JjIKLSAgICAgIGV4aXQgMQorICAgICAgZnVuY19leGVjX3Byb2dyYW0gXCR7MStcIlwkQFwifQogICAgIGZpCiAgIGVsc2UKICAgICAjIFRoZSBwcm9ncmFtIGRvZXNuJ3QgZXhpc3QuCiAgICAgXCRFQ0hPIFwiXCQwOiBlcnJvcjogXFxcYFwkcHJvZ2Rpci9cJHByb2dyYW0nIGRvZXMgbm90IGV4aXN0XCIgMT4mMgogICAgIFwkRUNITyBcIlRoaXMgc2NyaXB0IGlzIGp1c3QgYSB3cmFwcGVyIGZvciBcJHByb2dyYW0uXCIgMT4mMgotICAgICRFQ0hPIFwiU2VlIHRoZSAkUEFDS0FHRSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLlwiIDE+JjIKKyAgICBcJEVDSE8gXCJTZWUgdGhlICRQQUNLQUdFIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uXCIgMT4mMgogICAgIGV4aXQgMQogICBmaQogZmlcCiAiCiB9Ci0jIGVuZDogZnVuY19lbWl0X3dyYXBwZXJfcGFydDIKIAogCi0jIGZ1bmNfZW1pdF93cmFwcGVyIFthcmc9bm9dCi0jCi0jIEVtaXQgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9uIHN0ZG91dC4KLSMgRG9uJ3QgZGlyZWN0bHkgb3BlbiBhIGZpbGUgYmVjYXVzZSB3ZSBtYXkgd2FudCB0bwotIyBpbmNvcnBvcmF0ZSB0aGUgc2NyaXB0IGNvbnRlbnRzIHdpdGhpbiBhIGN5Z3dpbi9taW5ndwotIyB3cmFwcGVyIGV4ZWN1dGFibGUuICBNdXN0IE9OTFkgYmUgY2FsbGVkIGZyb20gd2l0aGluCi0jIGZ1bmNfbW9kZV9saW5rIGJlY2F1c2UgaXQgZGVwZW5kcyBvbiBhIG51bWJlciBvZiB2YXJpYWJsZXMKLSMgc2V0IHRoZXJlaW4uCi0jCi0jIEFSRyBpcyB0aGUgdmFsdWUgdGhhdCB0aGUgV1JBUFBFUl9TQ1JJUFRfQkVMT05HU19JTl9PQkpESVIKLSMgdmFyaWFibGUgd2lsbCB0YWtlLiAgSWYgJ3llcycsIHRoZW4gdGhlIGVtaXR0ZWQgc2NyaXB0Ci0jIHdpbGwgYXNzdW1lIHRoYXQgdGhlIGRpcmVjdG9yeSBpbiB3aGljaCBpdCBpcyBzdG9yZWQgaXMKLSMgdGhlICRvYmpkaXIgZGlyZWN0b3J5LiAgVGhpcyBpcyBhIGN5Z3dpbi9taW5ndy1zcGVjaWZpYwotIyBiZWhhdmlvci4KLWZ1bmNfZW1pdF93cmFwcGVyICgpCi17Ci0JZnVuY19lbWl0X3dyYXBwZXJfYXJnMT1ubwotCWlmIHRlc3QgLW4gIiQxIiA7IHRoZW4KLQkgIGZ1bmNfZW1pdF93cmFwcGVyX2FyZzE9JDEKLQlmaQotCi0JIyBzcGxpdCB0aGlzIHVwIHNvIHRoYXQgZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYwotCSMgY2FuIGNhbGwgZWFjaCBwYXJ0IGluZGVwZW5kZW50bHkuCi0JZnVuY19lbWl0X3dyYXBwZXJfcGFydDEgIiR7ZnVuY19lbWl0X3dyYXBwZXJfYXJnMX0iCi0JZnVuY19lbWl0X3dyYXBwZXJfcGFydDIgIiR7ZnVuY19lbWl0X3dyYXBwZXJfYXJnMX0iCi19Ci0KLQotIyBmdW5jX3RvX2hvc3RfcGF0aCBhcmcKLSMKLSMgQ29udmVydCBwYXRocyB0byBob3N0IGZvcm1hdCB3aGVuIHVzZWQgd2l0aCBidWlsZCB0b29scy4KLSMgSW50ZW5kZWQgZm9yIHVzZSB3aXRoICJuYXRpdmUiIG1pbmd3ICh3aGVyZSBsaWJ0b29sIGl0c2VsZgotIyBpcyBydW5uaW5nIHVuZGVyIHRoZSBtc3lzIHNoZWxsKSwgb3IgaW4gdGhlIGZvbGxvd2luZyBjcm9zcy0KLSMgYnVpbGQgZW52aXJvbm1lbnRzOgotIyAgICAkYnVpbGQgICAgICAgICAgJGhvc3QKLSMgICAgbWluZ3cgKG1zeXMpICAgIG1pbmd3ICBbZS5nLiBuYXRpdmVdCi0jICAgIGN5Z3dpbiAgICAgICAgICBtaW5ndwotIyAgICAqbml4ICsgd2luZSAgICAgbWluZ3cKLSMgd2hlcmUgd2luZSBpcyBlcXVpcHBlZCB3aXRoIHRoZSBgd2luZXBhdGgnIGV4ZWN1dGFibGUuCi0jIEluIHRoZSBuYXRpdmUgbWluZ3cgY2FzZSwgdGhlIChtc3lzKSBzaGVsbCBhdXRvbWF0aWNhbGx5Ci0jIGNvbnZlcnRzIHBhdGhzIGZvciBhbnkgbm9uLW1zeXMgYXBwbGljYXRpb25zIGl0IGxhdW5jaGVzLAotIyBidXQgdGhhdCBmYWNpbGl0eSBpc24ndCBhdmFpbGFibGUgZnJvbSBpbnNpZGUgdGhlIGN3cmFwcGVyLgotIyBTaW1pbGFyIGFjY29tbW9kYXRpb25zIGFyZSBuZWNlc3NhcnkgZm9yICRob3N0IG1pbmd3IGFuZAotIyAkYnVpbGQgY3lnd2luLiAgQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIGRvZXMgbm8gaGFybSBmb3Igb3RoZXIKLSMgJGhvc3QvJGJ1aWxkIGNvbWJpbmF0aW9ucyBub3QgbGlzdGVkIGFib3ZlLgotIwotIyBBUkcgaXMgdGhlIHBhdGggKG9uICRidWlsZCkgdGhhdCBzaG91bGQgYmUgY29udmVydGVkIHRvCi0jIHRoZSBwcm9wZXIgcmVwcmVzZW50YXRpb24gZm9yICRob3N0LiBUaGUgcmVzdWx0IGlzIHN0b3JlZAotIyBpbiAkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0LgotZnVuY190b19ob3N0X3BhdGggKCkKLXsKLSAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIKLSAgaWYgdGVzdCAtbiAiJDEiIDsgdGhlbgotICAgIGNhc2UgJGhvc3QgaW4KLSAgICAgICptaW5ndyogKQotICAgICAgICBsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5PSdzfFxcXFwqfFxcfGc7c3wvfFxcfGc7c3xcXHxcXFxcfGcnCi0gICAgICAgIGNhc2UgJGJ1aWxkIGluCi0gICAgICAgICAgKm1pbmd3KiApICMgYWN0dWFsbHksIG1zeXMKLSAgICAgICAgICAgICMgYXdrd2FyZDogY21kIGFwcGVuZHMgc3BhY2VzIHRvIHJlc3VsdAotICAgICAgICAgICAgbHRfc2VkX3N0cmlwX3RyYWlsaW5nX3NwYWNlcz0icy9bIF0qXCQvLyIKLSAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3RtcDE9YCggY21kIC8vYyBlY2hvICIkMSIgfFwKLSAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9zdHJpcF90cmFpbGluZ19zcGFjZXMiICkgMj4vZGV2L251bGwgfHwgZWNobyAiImAKLSAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiIHxcCi0gICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKLSAgICAgICAgICAgIDs7Ci0gICAgICAgICAgKmN5Z3dpbiogKQotICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfdG1wMT1gY3lncGF0aCAtdyAiJDEiYAotICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSIgfFwKLSAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnkiYAotICAgICAgICAgICAgOzsKLSAgICAgICAgICAqICkKLSAgICAgICAgICAgICMgVW5mb3J0dW5hdGVseSwgd2luZXBhdGggZG9lcyBub3QgZXhpdCB3aXRoIGEgbm9uLXplcm8KLSAgICAgICAgICAgICMgZXJyb3IgY29kZSwgc28gd2UgYXJlIGZvcmNlZCB0byBjaGVjayB0aGUgY29udGVudHMgb2YKLSAgICAgICAgICAgICMgc3Rkb3V0LiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgdGhlIGNvbW1hbmQgaXMgbm90Ci0gICAgICAgICAgICAjIGZvdW5kLCB0aGUgc2hlbGwgd2lsbCBzZXQgYW4gZXhpdCBjb2RlIG9mIDEyNyBhbmQgcHJpbnQKLSAgICAgICAgICAgICMgKmFuIGVycm9yIG1lc3NhZ2UqIHRvIHN0ZG91dC4gU28gd2UgbXVzdCBjaGVjayBmb3IgYm90aAotICAgICAgICAgICAgIyBlcnJvciBjb2RlIG9mIHplcm8gQU5EIG5vbi1lbXB0eSBzdGRvdXQsIHdoaWNoIGV4cGxhaW5zCi0gICAgICAgICAgICAjIHRoZSBvZGQgY29uc3RydWN0aW9uOgotICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfdG1wMT1gd2luZXBhdGggLXcgIiQxIiAyPi9kZXYvbnVsbGAKLSAgICAgICAgICAgIGlmIHRlc3QgIiQ/IiAtZXEgMCAmJiB0ZXN0IC1uICIke2Z1bmNfdG9faG9zdF9wYXRoX3RtcDF9IjsgdGhlbgotICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIiB8XAotICAgICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgIyBBbGxvdyB3YXJuaW5nIGJlbG93LgotICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiIKLSAgICAgICAgICAgIGZpCi0gICAgICAgICAgICA7OwotICAgICAgICBlc2FjCi0gICAgICAgIGlmIHRlc3QgLXogIiRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiIDsgdGhlbgotICAgICAgICAgIGZ1bmNfZXJyb3IgIkNvdWxkIG5vdCBkZXRlcm1pbmUgaG9zdCBwYXRoIGNvcnJlc3BvbmRpbmcgdG8iCi0gICAgICAgICAgZnVuY19lcnJvciAiICAnJDEnIgotICAgICAgICAgIGZ1bmNfZXJyb3IgIkNvbnRpbnVpbmcsIGJ1dCB1bmluc3RhbGxlZCBleGVjdXRhYmxlcyBtYXkgbm90IHdvcmsuIgotICAgICAgICAgICMgRmFsbGJhY2s6Ci0gICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIKLSAgICAgICAgZmkKLSAgICAgICAgOzsKLSAgICBlc2FjCi0gIGZpCi19Ci0jIGVuZDogZnVuY190b19ob3N0X3BhdGgKLQotIyBmdW5jX3RvX2hvc3RfcGF0aGxpc3QgYXJnCi0jCi0jIENvbnZlcnQgcGF0aGxpc3RzIHRvIGhvc3QgZm9ybWF0IHdoZW4gdXNlZCB3aXRoIGJ1aWxkIHRvb2xzLgotIyBTZWUgZnVuY190b19ob3N0X3BhdGgoKSwgYWJvdmUuIFRoaXMgZnVuY3Rpb24gc3VwcG9ydHMgdGhlCi0jIGZvbGxvd2luZyAkYnVpbGQvJGhvc3QgY29tYmluYXRpb25zIChidXQgZG9lcyBubyBoYXJtIGZvcgotIyBjb21iaW5hdGlvbnMgbm90IGxpc3RlZCBoZXJlKToKLSMgICAgJGJ1aWxkICAgICAgICAgICRob3N0Ci0jICAgIG1pbmd3IChtc3lzKSAgICBtaW5ndyAgW2UuZy4gbmF0aXZlXQotIyAgICBjeWd3aW4gICAgICAgICAgbWluZ3cKLSMgICAgKm5peCArIHdpbmUgICAgIG1pbmd3Ci0jCi0jIFBhdGggc2VwYXJhdG9ycyBhcmUgYWxzbyBjb252ZXJ0ZWQgZnJvbSAkYnVpbGQgZm9ybWF0IHRvCi0jICRob3N0IGZvcm1hdC4gSWYgQVJHIGJlZ2lucyBvciBlbmRzIHdpdGggYSBwYXRoIHNlcGFyYXRvcgotIyBjaGFyYWN0ZXIsIGl0IGlzIHByZXNlcnZlZCAoYnV0IGNvbnZlcnRlZCB0byAkaG9zdCBmb3JtYXQpCi0jIG9uIG91dHB1dC4KLSMKLSMgQVJHIGlzIGEgcGF0aGxpc3QgKG9uICRidWlsZCkgdGhhdCBzaG91bGQgYmUgY29udmVydGVkIHRvCi0jIHRoZSBwcm9wZXIgcmVwcmVzZW50YXRpb24gb24gJGhvc3QuIFRoZSByZXN1bHQgaXMgc3RvcmVkCi0jIGluICRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0LgotZnVuY190b19ob3N0X3BhdGhsaXN0ICgpCi17Ci0gIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiQxIgotICBpZiB0ZXN0IC1uICIkMSIgOyB0aGVuCi0gICAgY2FzZSAkaG9zdCBpbgotICAgICAgKm1pbmd3KiApCi0gICAgICAgIGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnk9J3N8XFxcXCp8XFx8ZztzfC98XFx8ZztzfFxcfFxcXFx8ZycKLSAgICAgICAgIyBSZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgcGF0aCBzZXBhcmF0b3IgY2hhcmFjdGVycyBmcm9tCi0gICAgICAgICMgQVJHLiBtc3lzIGJlaGF2aW9yIGlzIGluY29uc2lzdGVudCBoZXJlLCBjeWdwYXRoIHR1cm5zIHRoZW0KLSAgICAgICAgIyBpbnRvICcuOycgYW5kICc7LicsIGFuZCB3aW5lcGF0aCBpZ25vcmVzIHRoZW0gY29tcGxldGVseS4KLSAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDI9IiQxIgotICAgICAgICAjIE9uY2Ugc2V0IGZvciB0aGlzIGNhbGwsIHRoaXMgdmFyaWFibGUgc2hvdWxkIG5vdCBiZQotICAgICAgICAjIHJlYXNzaWduZWQuIEl0IGlzIHVzZWQgaW4gdGhhIGZhbGxiYWNrIGNhc2UuCi0gICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAxPWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDIiIHxcCi0gICAgICAgICAgJFNFRCAtZSAnc3xeOip8fCcgLWUgJ3N8OiokfHwnYAotICAgICAgICBjYXNlICRidWlsZCBpbgotICAgICAgICAgICptaW5ndyogKSAjIEFjdHVhbGx5LCBtc3lzLgotICAgICAgICAgICAgIyBBd2t3YXJkOiBjbWQgYXBwZW5kcyBzcGFjZXMgdG8gcmVzdWx0LgotICAgICAgICAgICAgbHRfc2VkX3N0cmlwX3RyYWlsaW5nX3NwYWNlcz0icy9bIF0qXCQvLyIKLSAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAyPWAoIGNtZCAvL2MgZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAxIiB8XAotICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX3N0cmlwX3RyYWlsaW5nX3NwYWNlcyIgKSAyPi9kZXYvbnVsbCB8fCBlY2hvICIiYAotICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAyIiB8XAotICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCi0gICAgICAgICAgICA7OwotICAgICAgICAgICpjeWd3aW4qICkKLSAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAyPWBjeWdwYXRoIC13IC1wICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDEiYAotICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAyIiB8XAotICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCi0gICAgICAgICAgICA7OwotICAgICAgICAgICogKQotICAgICAgICAgICAgIyB1bmZvcnR1bmF0ZWx5LCB3aW5lcGF0aCBkb2Vzbid0IGNvbnZlcnQgcGF0aGxpc3RzCi0gICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PSIiCi0gICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3Rfb2xkSUZTPSRJRlMKLSAgICAgICAgICAgIElGUz06Ci0gICAgICAgICAgICBmb3IgZnVuY190b19ob3N0X3BhdGhsaXN0X2YgaW4gJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAxIDsgZG8KLSAgICAgICAgICAgICAgSUZTPSRmdW5jX3RvX2hvc3RfcGF0aGxpc3Rfb2xkSUZTCi0gICAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfZiIgOyB0aGVuCi0gICAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGggIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfZiIKLSAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IiA7IHRoZW4KLSAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLXogIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0IiA7IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD0iJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIKLSAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD0iJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ7JGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIKLSAgICAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgSUZTPToKLSAgICAgICAgICAgIGRvbmUKLSAgICAgICAgICAgIElGUz0kZnVuY190b19ob3N0X3BhdGhsaXN0X29sZElGUwotICAgICAgICAgICAgOzsKLSAgICAgICAgZXNhYwotICAgICAgICBpZiB0ZXN0IC16ICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCIgOyB0aGVuCi0gICAgICAgICAgZnVuY19lcnJvciAiQ291bGQgbm90IGRldGVybWluZSB0aGUgaG9zdCBwYXRoKHMpIGNvcnJlc3BvbmRpbmcgdG8iCi0gICAgICAgICAgZnVuY19lcnJvciAiICAnJDEnIgotICAgICAgICAgIGZ1bmNfZXJyb3IgIkNvbnRpbnVpbmcsIGJ1dCB1bmluc3RhbGxlZCBleGVjdXRhYmxlcyBtYXkgbm90IHdvcmsuIgotICAgICAgICAgICMgRmFsbGJhY2suIFRoaXMgbWF5IGJyZWFrIGlmICQxIGNvbnRhaW5zIERPUy1zdHlsZSBkcml2ZQotICAgICAgICAgICMgc3BlY2lmaWNhdGlvbnMuIFRoZSBmaXggaXMgbm90IHRvIGNvbXBsaWNhdGUgdGhlIGV4cHJlc3Npb24KLSAgICAgICAgICAjIGJlbG93LCBidXQgZm9yIHRoZSB1c2VyIHRvIHByb3ZpZGUgYSB3b3JraW5nIHdpbmUgaW5zdGFsbGF0aW9uCi0gICAgICAgICAgIyB3aXRoIHdpbmVwYXRoIHNvIHRoYXQgcGF0aCB0cmFuc2xhdGlvbiBpbiB0aGUgY3Jvc3MtdG8tbWluZ3cKLSAgICAgICAgICAjIGNhc2Ugd29ya3MgcHJvcGVybHkuCi0gICAgICAgICAgbHRfcmVwbGFjZV9wYXRoc2VwX25peF90b19kb3M9InN8Onw7fGciCi0gICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAxIiB8XAotICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3JlcGxhY2VfcGF0aHNlcF9uaXhfdG9fZG9zImAKLSAgICAgICAgZmkKLSAgICAgICAgIyBOb3csIGFkZCB0aGUgbGVhZGluZyBhbmQgdHJhaWxpbmcgcGF0aCBzZXBhcmF0b3JzIGJhY2sKLSAgICAgICAgY2FzZSAiJDEiIGluCi0gICAgICAgICAgOiogKSBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PSI7JGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQiCi0gICAgICAgICAgICA7OwotICAgICAgICBlc2FjCi0gICAgICAgIGNhc2UgIiQxIiBpbgotICAgICAgICAgICo6ICkgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD0iJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ7IgotICAgICAgICAgICAgOzsKLSAgICAgICAgZXNhYwotICAgICAgICA7OwotICAgIGVzYWMKLSAgZmkKLX0KLSMgZW5kOiBmdW5jX3RvX2hvc3RfcGF0aGxpc3QKLQogIyBmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3JjCiAjIGVtaXQgdGhlIHNvdXJjZSBjb2RlIGZvciBhIHdyYXBwZXIgZXhlY3V0YWJsZSBvbiBzdGRvdXQKICMgTXVzdCBPTkxZIGJlIGNhbGxlZCBmcm9tIHdpdGhpbiBmdW5jX21vZGVfbGluayBiZWNhdXNlCkBAIC0zMTQxLDMxICs0MTQxLDIzIEBACiAKICAgIFRoaXMgd3JhcHBlciBleGVjdXRhYmxlIHNob3VsZCBuZXZlciBiZSBtb3ZlZCBvdXQgb2YgdGhlIGJ1aWxkIGRpcmVjdG9yeS4KICAgIElmIGl0IGlzLCBpdCB3aWxsIG5vdCBvcGVyYXRlIGNvcnJlY3RseS4KLQotICAgQ3VycmVudGx5LCBpdCBzaW1wbHkgZXhlY3MgdGhlIHdyYXBwZXIgKnNjcmlwdCogIiRTSEVMTCAkb3V0cHV0IiwKLSAgIGJ1dCBjb3VsZCBldmVudHVhbGx5IGFic29yYiBhbGwgb2YgdGhlIHNjcmlwdHMgZnVuY3Rpb25hbGl0eSBhbmQKLSAgIGV4ZWMgJG9iamRpci8kb3V0cHV0bmFtZSBkaXJlY3RseS4KICovCiBFT0YKIAkgICAgY2F0IDw8IkVPRiIKKyNpZmRlZiBfTVNDX1ZFUgorIyBkZWZpbmUgX0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFIDEKKyNlbmRpZgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaWZkZWYgX01TQ19WRVIKICMgaW5jbHVkZSA8ZGlyZWN0Lmg+CiAjIGluY2x1ZGUgPHByb2Nlc3MuaD4KICMgaW5jbHVkZSA8aW8uaD4KLSMgZGVmaW5lIHNldG1vZGUgX3NldG1vZGUKICNlbHNlCiAjIGluY2x1ZGUgPHVuaXN0ZC5oPgogIyBpbmNsdWRlIDxzdGRpbnQuaD4KICMgaWZkZWYgX19DWUdXSU5fXwogIyAgaW5jbHVkZSA8aW8uaD4KLSMgIGRlZmluZSBIQVZFX1NFVEVOVgotIyAgaWZkZWYgX19TVFJJQ1RfQU5TSV9fCi1jaGFyICpyZWFscGF0aCAoY29uc3QgY2hhciAqLCBjaGFyICopOwotaW50IHB1dGVudiAoY2hhciAqKTsKLWludCBzZXRlbnYgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBpbnQpOwotIyAgZW5kaWYKICMgZW5kaWYKICNlbmRpZgogI2luY2x1ZGUgPG1hbGxvYy5oPgpAQCAtMzE3Nyw2ICs0MTY5LDQ0IEBACiAjaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogCisvKiBkZWNsYXJhdGlvbnMgb2Ygbm9uLUFOU0kgZnVuY3Rpb25zICovCisjaWYgZGVmaW5lZChfX01JTkdXMzJfXykKKyMgaWZkZWYgX19TVFJJQ1RfQU5TSV9fCitpbnQgX3B1dGVudiAoY29uc3QgY2hhciAqKTsKKyMgZW5kaWYKKyNlbGlmIGRlZmluZWQoX19DWUdXSU5fXykKKyMgaWZkZWYgX19TVFJJQ1RfQU5TSV9fCitjaGFyICpyZWFscGF0aCAoY29uc3QgY2hhciAqLCBjaGFyICopOworaW50IHB1dGVudiAoY2hhciAqKTsKK2ludCBzZXRlbnYgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBpbnQpOworIyBlbmRpZgorLyogI2VsaWYgZGVmaW5lZCAob3RoZXIgcGxhdGZvcm1zKSAuLi4gKi8KKyNlbmRpZgorCisvKiBwb3J0YWJpbGl0eSBkZWZpbmVzLCBleGNsdWRpbmcgcGF0aCBoYW5kbGluZyBtYWNyb3MgKi8KKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQorIyBkZWZpbmUgc2V0bW9kZSBfc2V0bW9kZQorIyBkZWZpbmUgc3RhdCAgICBfc3RhdAorIyBkZWZpbmUgY2htb2QgICBfY2htb2QKKyMgZGVmaW5lIGdldGN3ZCAgX2dldGN3ZAorIyBkZWZpbmUgcHV0ZW52ICBfcHV0ZW52CisjIGRlZmluZSBTX0lYVVNSIF9TX0lFWEVDCisjIGlmbmRlZiBfSU5UUFRSX1RfREVGSU5FRAorIyAgZGVmaW5lIF9JTlRQVFJfVF9ERUZJTkVECisjICBkZWZpbmUgaW50cHRyX3QgaW50CisjIGVuZGlmCisjZWxpZiBkZWZpbmVkKF9fTUlOR1czMl9fKQorIyBkZWZpbmUgc2V0bW9kZSBfc2V0bW9kZQorIyBkZWZpbmUgc3RhdCAgICBfc3RhdAorIyBkZWZpbmUgY2htb2QgICBfY2htb2QKKyMgZGVmaW5lIGdldGN3ZCAgX2dldGN3ZAorIyBkZWZpbmUgcHV0ZW52ICBfcHV0ZW52CisjZWxpZiBkZWZpbmVkKF9fQ1lHV0lOX18pCisjIGRlZmluZSBIQVZFX1NFVEVOVgorIyBkZWZpbmUgRk9QRU5fV0IgIndiIgorLyogI2VsaWYgZGVmaW5lZCAob3RoZXIgcGxhdGZvcm1zKSAuLi4gKi8KKyNlbmRpZgorCiAjaWYgZGVmaW5lZChQQVRIX01BWCkKICMgZGVmaW5lIExUX1BBVEhNQVggUEFUSF9NQVgKICNlbGlmIGRlZmluZWQoTUFYUEFUSExFTikKQEAgLTMxOTIsMTQgKzQyMjIsNyBAQAogIyBkZWZpbmUgU19JWEdSUCAwCiAjZW5kaWYKIAotI2lmZGVmIF9NU0NfVkVSCi0jIGRlZmluZSBTX0lYVVNSIF9TX0lFWEVDCi0jIGRlZmluZSBzdGF0IF9zdGF0Ci0jIGlmbmRlZiBfSU5UUFRSX1RfREVGSU5FRAotIyAgZGVmaW5lIGludHB0cl90IGludAotIyBlbmRpZgotI2VuZGlmCi0KKy8qIHBhdGggaGFuZGxpbmcgcG9ydGFiaWxpdHkgbWFjcm9zICovCiAjaWZuZGVmIERJUl9TRVBBUkFUT1IKICMgZGVmaW5lIERJUl9TRVBBUkFUT1IgJy8nCiAjIGRlZmluZSBQQVRIX1NFUEFSQVRPUiAnOicKQEAgLTMyMzAsMTAgKzQyNTMsNiBAQAogIyBkZWZpbmUgSVNfUEFUSF9TRVBBUkFUT1IoY2gpICgoY2gpID09IFBBVEhfU0VQQVJBVE9SXzIpCiAjZW5kaWYgLyogUEFUSF9TRVBBUkFUT1JfMiAqLwogCi0jaWZkZWYgX19DWUdXSU5fXwotIyBkZWZpbmUgRk9QRU5fV0IgIndiIgotI2VuZGlmCi0KICNpZm5kZWYgRk9QRU5fV0IKICMgZGVmaW5lIEZPUEVOX1dCICJ3IgogI2VuZGlmCkBAIC0zMjQ2LDIyICs0MjY1LDEzIEBACiAgIGlmIChzdGFsZSkgeyBmcmVlICgodm9pZCAqKSBzdGFsZSk7IHN0YWxlID0gMDsgfSBcCiB9IHdoaWxlICgwKQogCi0jdW5kZWYgTFRXUkFQUEVSX0RFQlVHUFJJTlRGCi0jaWYgZGVmaW5lZCBERUJVR1dSQVBQRVIKLSMgZGVmaW5lIExUV1JBUFBFUl9ERUJVR1BSSU5URihhcmdzKSBsdHdyYXBwZXJfZGVidWdwcmludGYgYXJncwotc3RhdGljIHZvaWQKLWx0d3JhcHBlcl9kZWJ1Z3ByaW50ZiAoY29uc3QgY2hhciAqZm10LCAuLi4pCi17Ci0gICAgdmFfbGlzdCBhcmdzOwotICAgIHZhX3N0YXJ0IChhcmdzLCBmbXQpOwotICAgICh2b2lkKSB2ZnByaW50ZiAoc3RkZXJyLCBmbXQsIGFyZ3MpOwotICAgIHZhX2VuZCAoYXJncyk7Ci19CisjaWYgZGVmaW5lZChMVF9ERUJVR1dSQVBQRVIpCitzdGF0aWMgaW50IGx0X2RlYnVnID0gMTsKICNlbHNlCi0jIGRlZmluZSBMVFdSQVBQRVJfREVCVUdQUklOVEYoYXJncykKK3N0YXRpYyBpbnQgbHRfZGVidWcgPSAwOwogI2VuZGlmCiAKLWNvbnN0IGNoYXIgKnByb2dyYW1fbmFtZSA9IE5VTEw7Citjb25zdCBjaGFyICpwcm9ncmFtX25hbWUgPSAibGlidG9vbC13cmFwcGVyIjsgLyogaW4gY2FzZSB4c3RyZHVwIGZhaWxzICovCiAKIHZvaWQgKnhtYWxsb2MgKHNpemVfdCBudW0pOwogY2hhciAqeHN0cmR1cCAoY29uc3QgY2hhciAqc3RyaW5nKTsKQEAgLTMyNzEsNDEgKzQyODEsMjcgQEAKIGludCBtYWtlX2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIgKnBhdGgpOwogaW50IGNoZWNrX2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIgKnBhdGgpOwogY2hhciAqc3RyZW5kemFwIChjaGFyICpzdHIsIGNvbnN0IGNoYXIgKnBhdCk7Ci12b2lkIGx0X2ZhdGFsIChjb25zdCBjaGFyICptZXNzYWdlLCAuLi4pOwordm9pZCBsdF9kZWJ1Z3ByaW50ZiAoY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKK3ZvaWQgbHRfZmF0YWwgKGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFyICptZXNzYWdlLCAuLi4pOworc3RhdGljIGNvbnN0IGNoYXIgKm5vbm51bGwgKGNvbnN0IGNoYXIgKnMpOworc3RhdGljIGNvbnN0IGNoYXIgKm5vbmVtcHR5IChjb25zdCBjaGFyICpzKTsKIHZvaWQgbHRfc2V0ZW52IChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSk7CiBjaGFyICpsdF9leHRlbmRfc3RyIChjb25zdCBjaGFyICpvcmlnX3ZhbHVlLCBjb25zdCBjaGFyICphZGQsIGludCB0b19lbmQpOwotdm9pZCBsdF9vcHRfcHJvY2Vzc19lbnZfc2V0IChjb25zdCBjaGFyICphcmcpOwotdm9pZCBsdF9vcHRfcHJvY2Vzc19lbnZfcHJlcGVuZCAoY29uc3QgY2hhciAqYXJnKTsKLXZvaWQgbHRfb3B0X3Byb2Nlc3NfZW52X2FwcGVuZCAoY29uc3QgY2hhciAqYXJnKTsKLWludCBsdF9zcGxpdF9uYW1lX3ZhbHVlIChjb25zdCBjaGFyICphcmcsIGNoYXIqKiBuYW1lLCBjaGFyKiogdmFsdWUpOwogdm9pZCBsdF91cGRhdGVfZXhlX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKTsKIHZvaWQgbHRfdXBkYXRlX2xpYl9wYXRoIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSk7Ci0KLXN0YXRpYyBjb25zdCBjaGFyICpzY3JpcHRfdGV4dF9wYXJ0MSA9CitjaGFyICoqcHJlcGFyZV9zcGF3biAoY2hhciAqKmFyZ3YpOwordm9pZCBsdF9kdW1wX3NjcmlwdCAoRklMRSAqZik7CiBFT0YKIAotCSAgICBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MSB5ZXMgfAotCSAgICAgICAgJFNFRCAtZSAncy9cKFtcXCJdXCkvXFxcMS9nJyBcCi0JICAgICAgICAgICAgIC1lICdzL14vICAiLycgLWUgJ3MvJC9cXG4iLycKLQkgICAgZWNobyAiOyIKIAkgICAgY2F0IDw8RU9GCi0KLXN0YXRpYyBjb25zdCBjaGFyICpzY3JpcHRfdGV4dF9wYXJ0MiA9Ci1FT0YKLQkgICAgZnVuY19lbWl0X3dyYXBwZXJfcGFydDIgeWVzIHwKLQkgICAgICAgICRTRUQgLWUgJ3MvXChbXFwiXVwpL1xcXDEvZycgXAotCSAgICAgICAgICAgICAtZSAncy9eLyAgIi8nIC1lICdzLyQvXFxuIi8nCi0JICAgIGVjaG8gIjsiCi0KLQkgICAgY2F0IDw8RU9GCi1jb25zdCBjaGFyICogTUFHSUNfRVhFID0gIiRtYWdpY19leGUiOwordm9sYXRpbGUgY29uc3QgY2hhciAqIE1BR0lDX0VYRSA9ICIkbWFnaWNfZXhlIjsKIGNvbnN0IGNoYXIgKiBMSUJfUEFUSF9WQVJOQU1FID0gIiRzaGxpYnBhdGhfdmFyIjsKIEVPRgogCiAJICAgIGlmIHRlc3QgIiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0geWVzICYmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIiAmJiB0ZXN0IC1uICIkdGVtcF9ycGF0aCI7IHRoZW4KLSAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0ICIkdGVtcF9ycGF0aCIKKyAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGggIiR0ZW1wX3JwYXRoIgogCSAgICAgIGNhdCA8PEVPRgotY29uc3QgY2hhciAqIExJQl9QQVRIX1ZBTFVFICAgPSAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQiOworY29uc3QgY2hhciAqIExJQl9QQVRIX1ZBTFVFICAgPSAiJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCI7CiBFT0YKIAkgICAgZWxzZQogCSAgICAgIGNhdCA8PCJFT0YiCkBAIC0zMzE0LDEwICs0MzEwLDEwIEBACiAJICAgIGZpCiAKIAkgICAgaWYgdGVzdCAtbiAiJGRsbHNlYXJjaHBhdGgiOyB0aGVuCi0gICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdCAiJGRsbHNlYXJjaHBhdGg6IgorICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aCAiJGRsbHNlYXJjaHBhdGg6IgogCSAgICAgIGNhdCA8PEVPRgogY29uc3QgY2hhciAqIEVYRV9QQVRIX1ZBUk5BTUUgPSAiUEFUSCI7Ci1jb25zdCBjaGFyICogRVhFX1BBVEhfVkFMVUUgICA9ICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCI7Citjb25zdCBjaGFyICogRVhFX1BBVEhfVkFMVUUgICA9ICIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IjsKIEVPRgogCSAgICBlbHNlCiAJICAgICAgY2F0IDw8IkVPRiIKQEAgLTMzNDAsMjQgKzQzMzYsMTAgQEAKIAkgICAgY2F0IDw8IkVPRiIKIAogI2RlZmluZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAgICAgICAgICItLWx0LSIKLSNkZWZpbmUgTFRXUkFQUEVSX09QVElPTl9QUkVGSVhfTEVOR1RIICA1CiAKLXN0YXRpYyBjb25zdCBzaXplX3Qgb3B0X3ByZWZpeF9sZW4gICAgICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYX0xFTkdUSDsKIHN0YXRpYyBjb25zdCBjaGFyICpsdHdyYXBwZXJfb3B0aW9uX3ByZWZpeCA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYOwotCiBzdGF0aWMgY29uc3QgY2hhciAqZHVtcHNjcmlwdF9vcHQgICAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAiZHVtcC1zY3JpcHQiOwotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IGVudl9zZXRfb3B0X2xlbiAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWF9MRU5HVEggKyA3Owotc3RhdGljIGNvbnN0IGNoYXIgKmVudl9zZXRfb3B0ICAgICAgICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVggImVudi1zZXQiOwotICAvKiBhcmd1bWVudCBpcyBwdXRlbnYtc3R5bGUgImZvbz1iYXIiLCB2YWx1ZSBvZiBmb28gaXMgc2V0IHRvIGJhciAqLwotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IGVudl9wcmVwZW5kX29wdF9sZW4gPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWF9MRU5HVEggKyAxMTsKLXN0YXRpYyBjb25zdCBjaGFyICplbnZfcHJlcGVuZF9vcHQgICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYICJlbnYtcHJlcGVuZCI7Ci0gIC8qIGFyZ3VtZW50IGlzIHB1dGVudi1zdHlsZSAiZm9vPWJhciIsIG5ldyB2YWx1ZSBvZiBmb28gaXMgYmFyJHtmb299ICovCi0KLXN0YXRpYyBjb25zdCBzaXplX3QgZW52X2FwcGVuZF9vcHRfbGVuICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYX0xFTkdUSCArIDEwOwotc3RhdGljIGNvbnN0IGNoYXIgKmVudl9hcHBlbmRfb3B0ICAgICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVggImVudi1hcHBlbmQiOwotICAvKiBhcmd1bWVudCBpcyBwdXRlbnYtc3R5bGUgImZvbz1iYXIiLCBuZXcgdmFsdWUgb2YgZm9vIGlzICR7Zm9vfWJhciAqLworc3RhdGljIGNvbnN0IGNoYXIgKmRlYnVnX29wdCAgICAgICAgICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVggImRlYnVnIjsKIAogaW50CiBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQpAQCAtMzM3NCwxMCArNDM1NiwxMyBAQAogICBpbnQgaTsKIAogICBwcm9ncmFtX25hbWUgPSAoY2hhciAqKSB4c3RyZHVwIChiYXNlX25hbWUgKGFyZ3ZbMF0pKTsKLSAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBhcmd2WzBdICAgICAgOiAlc1xuIiwgYXJndlswXSkpOwotICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIHByb2dyYW1fbmFtZSA6ICVzXG4iLCBwcm9ncmFtX25hbWUpKTsKKyAgbmV3YXJneiA9IFhNQUxMT0MgKGNoYXIgKiwgYXJnYyArIDEpOwogCi0gIC8qIHZlcnkgc2ltcGxlIGFyZyBwYXJzaW5nOyBkb24ndCB3YW50IHRvIHJlbHkgb24gZ2V0b3B0ICovCisgIC8qIHZlcnkgc2ltcGxlIGFyZyBwYXJzaW5nOyBkb24ndCB3YW50IHRvIHJlbHkgb24gZ2V0b3B0CisgICAqIGFsc28sIGNvcHkgYWxsIG5vbiBjd3JhcHBlciBvcHRpb25zIHRvIG5ld2FyZ3osIGV4Y2VwdAorICAgKiBhcmd6WzBdLCB3aGljaCBpcyBoYW5kbGVkIGRpZmZlcmVudGx5CisgICAqLworICBuZXdhcmdjPTA7CiAgIGZvciAoaSA9IDE7IGkgPCBhcmdjOyBpKyspCiAgICAgewogICAgICAgaWYgKHN0cmNtcCAoYXJndltpXSwgZHVtcHNjcmlwdF9vcHQpID09IDApCkBAIC0zMzkxLDI1ICs0Mzc2LDU3IEBACiAJICAgICAgZXNhYwogCiAJICAgIGNhdCA8PCJFT0YiCi0JICBwcmludGYgKCIlcyIsIHNjcmlwdF90ZXh0X3BhcnQxKTsKLQkgIHByaW50ZiAoIiVzIiwgc2NyaXB0X3RleHRfcGFydDIpOworCSAgbHRfZHVtcF9zY3JpcHQgKHN0ZG91dCk7CiAJICByZXR1cm4gMDsKIAl9CisgICAgICBpZiAoc3RyY21wIChhcmd2W2ldLCBkZWJ1Z19vcHQpID09IDApCisJeworICAgICAgICAgIGx0X2RlYnVnID0gMTsKKyAgICAgICAgICBjb250aW51ZTsKKwl9CisgICAgICBpZiAoc3RyY21wIChhcmd2W2ldLCBsdHdyYXBwZXJfb3B0aW9uX3ByZWZpeCkgPT0gMCkKKyAgICAgICAgeworICAgICAgICAgIC8qIGhvd2V2ZXIsIGlmIHRoZXJlIGlzIGFuIG9wdGlvbiBpbiB0aGUgTFRXUkFQUEVSX09QVElPTl9QUkVGSVgKKyAgICAgICAgICAgICBuYW1lc3BhY2UsIGJ1dCBpdCBpcyBub3Qgb25lIG9mIHRoZSBvbmVzIHdlIGtub3cgYWJvdXQgYW5kCisgICAgICAgICAgICAgaGF2ZSBhbHJlYWR5IGRlYWx0IHdpdGgsIGFib3ZlIChpbmx1ZGluZyBkdW1wLXNjcmlwdCksIHRoZW4KKyAgICAgICAgICAgICByZXBvcnQgYW4gZXJyb3IuIE90aGVyd2lzZSwgdGFyZ2V0cyBtaWdodCBiZWdpbiB0byBiZWxpZXZlCisgICAgICAgICAgICAgdGhleSBhcmUgYWxsb3dlZCB0byB1c2Ugb3B0aW9ucyBpbiB0aGUgTFRXUkFQUEVSX09QVElPTl9QUkVGSVgKKyAgICAgICAgICAgICBuYW1lc3BhY2UuIFRoZSBmaXJzdCB0aW1lIGFueSB1c2VyIGNvbXBsYWlucyBhYm91dCB0aGlzLCB3ZSdsbAorICAgICAgICAgICAgIG5lZWQgdG8gbWFrZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCBhIGNvbmZpZ3VyZS10aW1lIG9wdGlvbgorICAgICAgICAgICAgIG9yIGEgY29uZmlndXJlLmFjLXNldHRhYmxlIHZhbHVlLgorICAgICAgICAgICAqLworICAgICAgICAgIGx0X2ZhdGFsIChfX0ZJTEVfXywgX19MSU5FX18sCisJCSAgICAidW5yZWNvZ25pemVkICVzIG9wdGlvbjogJyVzJyIsCisgICAgICAgICAgICAgICAgICAgIGx0d3JhcHBlcl9vcHRpb25fcHJlZml4LCBhcmd2W2ldKTsKKyAgICAgICAgfQorICAgICAgLyogb3RoZXJ3aXNlIC4uLiAqLworICAgICAgbmV3YXJnelsrK25ld2FyZ2NdID0geHN0cmR1cCAoYXJndltpXSk7CiAgICAgfQorICBuZXdhcmd6WysrbmV3YXJnY10gPSBOVUxMOwogCi0gIG5ld2FyZ3ogPSBYTUFMTE9DIChjaGFyICosIGFyZ2MgKyAxKTsKK0VPRgorCSAgICBjYXQgPDxFT0YKKyAgLyogVGhlIEdOVSBiYW5uZXIgbXVzdCBiZSB0aGUgZmlyc3Qgbm9uLWVycm9yIGRlYnVnIG1lc3NhZ2UgKi8KKyAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywgImxpYnRvb2wgd3JhcHBlciAoR05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT05cbiIpOworRU9GCisJICAgIGNhdCA8PCJFT0YiCisgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sICIobWFpbikgYXJndlswXTogJXNcbiIsIGFyZ3ZbMF0pOworICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLCAiKG1haW4pIHByb2dyYW1fbmFtZTogJXNcbiIsIHByb2dyYW1fbmFtZSk7CisKICAgdG1wX3BhdGhzcGVjID0gZmluZF9leGVjdXRhYmxlIChhcmd2WzBdKTsKICAgaWYgKHRtcF9wYXRoc3BlYyA9PSBOVUxMKQotICAgIGx0X2ZhdGFsICgiQ291bGRuJ3QgZmluZCAlcyIsIGFyZ3ZbMF0pOwotICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIGZvdW5kIGV4ZSAoYmVmb3JlIHN5bWxpbmsgY2hhc2UpIGF0IDogJXNcbiIsCi0JCQkgIHRtcF9wYXRoc3BlYykpOworICAgIGx0X2ZhdGFsIChfX0ZJTEVfXywgX19MSU5FX18sICJjb3VsZG4ndCBmaW5kICVzIiwgYXJndlswXSk7CisgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sCisgICAgICAgICAgICAgICAgICAiKG1haW4pIGZvdW5kIGV4ZSAoYmVmb3JlIHN5bWxpbmsgY2hhc2UpIGF0OiAlc1xuIiwKKwkJICB0bXBfcGF0aHNwZWMpOwogCiAgIGFjdHVhbF9jd3JhcHBlcl9wYXRoID0gY2hhc2Vfc3ltbGlua3MgKHRtcF9wYXRoc3BlYyk7Ci0gIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgZm91bmQgZXhlIChhZnRlciBzeW1saW5rIGNoYXNlKSBhdCA6ICVzXG4iLAotCQkJICBhY3R1YWxfY3dyYXBwZXJfcGF0aCkpOworICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLAorICAgICAgICAgICAgICAgICAgIihtYWluKSBmb3VuZCBleGUgKGFmdGVyIHN5bWxpbmsgY2hhc2UpIGF0OiAlc1xuIiwKKwkJICBhY3R1YWxfY3dyYXBwZXJfcGF0aCk7CiAgIFhGUkVFICh0bXBfcGF0aHNwZWMpOwogCi0gIGFjdHVhbF9jd3JhcHBlcl9uYW1lID0geHN0cmR1cCggYmFzZV9uYW1lIChhY3R1YWxfY3dyYXBwZXJfcGF0aCkpOworICBhY3R1YWxfY3dyYXBwZXJfbmFtZSA9IHhzdHJkdXAgKGJhc2VfbmFtZSAoYWN0dWFsX2N3cmFwcGVyX3BhdGgpKTsKICAgc3RyZW5kemFwIChhY3R1YWxfY3dyYXBwZXJfcGF0aCwgYWN0dWFsX2N3cmFwcGVyX25hbWUpOwogCiAgIC8qIHdyYXBwZXIgbmFtZSB0cmFuc2Zvcm1zICovCkBAIC0zNDI3LDggKzQ0NDQsOSBAQAogICB0YXJnZXRfbmFtZSA9IHRtcF9wYXRoc3BlYzsKICAgdG1wX3BhdGhzcGVjID0gMDsKIAotICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIGxpYnRvb2wgdGFyZ2V0IG5hbWU6ICVzXG4iLAotCQkJICB0YXJnZXRfbmFtZSkpOworICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLAorCQkgICIobWFpbikgbGlidG9vbCB0YXJnZXQgbmFtZTogJXNcbiIsCisJCSAgdGFyZ2V0X25hbWUpOwogRU9GCiAKIAkgICAgY2F0IDw8RU9GCkBAIC0zNDc4LDgwICs0NDk2LDE5IEBACiAKICAgbHRfc2V0ZW52ICgiQklOX1NIIiwgInhwZzQiKTsgLyogZm9yIFRydTY0ICovCiAgIGx0X3NldGVudiAoIkRVQUxDQVNFIiwgIjEiKTsgIC8qIGZvciBNU0sgc2ggKi8KLSAgbHRfdXBkYXRlX2xpYl9wYXRoIChMSUJfUEFUSF9WQVJOQU1FLCBMSUJfUEFUSF9WQUxVRSk7CisgIC8qIFVwZGF0ZSB0aGUgRExMIHNlYXJjaHBhdGguICBFWEVfUEFUSF9WQUxVRSAoJGRsbHNlYXJjaHBhdGgpIG11c3QKKyAgICAgYmUgcHJlcGVuZGVkIGJlZm9yZSAodGhhdCBpcywgYXBwZWFyIGFmdGVyKSBMSUJfUEFUSF9WQUxVRSAoJHRlbXBfcnBhdGgpCisgICAgIGJlY2F1c2Ugb24gV2luZG93cywgYm90aCAqX1ZBUk5BTUVzIGFyZSBQQVRIIGJ1dCB1bmluc3RhbGxlZAorICAgICBsaWJyYXJpZXMgbXVzdCBjb21lIGZpcnN0LiAqLwogICBsdF91cGRhdGVfZXhlX3BhdGggKEVYRV9QQVRIX1ZBUk5BTUUsIEVYRV9QQVRIX1ZBTFVFKTsKKyAgbHRfdXBkYXRlX2xpYl9wYXRoIChMSUJfUEFUSF9WQVJOQU1FLCBMSUJfUEFUSF9WQUxVRSk7CiAKLSAgbmV3YXJnYz0wOwotICBmb3IgKGkgPSAxOyBpIDwgYXJnYzsgaSsrKQotICAgIHsKLSAgICAgIGlmIChzdHJuY21wIChhcmd2W2ldLCBlbnZfc2V0X29wdCwgZW52X3NldF9vcHRfbGVuKSA9PSAwKQotICAgICAgICB7Ci0gICAgICAgICAgaWYgKGFyZ3ZbaV1bZW52X3NldF9vcHRfbGVuXSA9PSAnPScpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnAgPSBhcmd2W2ldICsgZW52X3NldF9vcHRfbGVuICsgMTsKLSAgICAgICAgICAgICAgbHRfb3B0X3Byb2Nlc3NfZW52X3NldCAocCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgZWxzZSBpZiAoYXJndltpXVtlbnZfc2V0X29wdF9sZW5dID09ICdcMCcgJiYgaSArIDEgPCBhcmdjKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19lbnZfc2V0IChhcmd2WysraV0pOyAvKiBkb24ndCBjb3B5ICovCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgZWxzZQotICAgICAgICAgICAgbHRfZmF0YWwgKCIlcyBtaXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50IiwgZW52X3NldF9vcHQpOwotICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICBpZiAoc3RybmNtcCAoYXJndltpXSwgZW52X3ByZXBlbmRfb3B0LCBlbnZfcHJlcGVuZF9vcHRfbGVuKSA9PSAwKQotICAgICAgICB7Ci0gICAgICAgICAgaWYgKGFyZ3ZbaV1bZW52X3ByZXBlbmRfb3B0X2xlbl0gPT0gJz0nKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICBjb25zdCBjaGFyICpwID0gYXJndltpXSArIGVudl9wcmVwZW5kX29wdF9sZW4gKyAxOwotICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19lbnZfcHJlcGVuZCAocCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgZWxzZSBpZiAoYXJndltpXVtlbnZfcHJlcGVuZF9vcHRfbGVuXSA9PSAnXDAnICYmIGkgKyAxIDwgYXJnYykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgbHRfb3B0X3Byb2Nlc3NfZW52X3ByZXBlbmQgKGFyZ3ZbKytpXSk7IC8qIGRvbid0IGNvcHkgKi8KLSAgICAgICAgICAgIH0KLSAgICAgICAgICBlbHNlCi0gICAgICAgICAgICBsdF9mYXRhbCAoIiVzIG1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQiLCBlbnZfcHJlcGVuZF9vcHQpOwotICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICBpZiAoc3RybmNtcCAoYXJndltpXSwgZW52X2FwcGVuZF9vcHQsIGVudl9hcHBlbmRfb3B0X2xlbikgPT0gMCkKLSAgICAgICAgewotICAgICAgICAgIGlmIChhcmd2W2ldW2Vudl9hcHBlbmRfb3B0X2xlbl0gPT0gJz0nKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICBjb25zdCBjaGFyICpwID0gYXJndltpXSArIGVudl9hcHBlbmRfb3B0X2xlbiArIDE7Ci0gICAgICAgICAgICAgIGx0X29wdF9wcm9jZXNzX2Vudl9hcHBlbmQgKHApOwotICAgICAgICAgICAgfQotICAgICAgICAgIGVsc2UgaWYgKGFyZ3ZbaV1bZW52X2FwcGVuZF9vcHRfbGVuXSA9PSAnXDAnICYmIGkgKyAxIDwgYXJnYykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgbHRfb3B0X3Byb2Nlc3NfZW52X2FwcGVuZCAoYXJndlsrK2ldKTsgLyogZG9uJ3QgY29weSAqLwotICAgICAgICAgICAgfQotICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGx0X2ZhdGFsICgiJXMgbWlzc2luZyByZXF1aXJlZCBhcmd1bWVudCIsIGVudl9hcHBlbmRfb3B0KTsKLSAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgaWYgKHN0cm5jbXAgKGFyZ3ZbaV0sIGx0d3JhcHBlcl9vcHRpb25fcHJlZml4LCBvcHRfcHJlZml4X2xlbikgPT0gMCkKLSAgICAgICAgewotICAgICAgICAgIC8qIGhvd2V2ZXIsIGlmIHRoZXJlIGlzIGFuIG9wdGlvbiBpbiB0aGUgTFRXUkFQUEVSX09QVElPTl9QUkVGSVgKLSAgICAgICAgICAgICBuYW1lc3BhY2UsIGJ1dCBpdCBpcyBub3Qgb25lIG9mIHRoZSBvbmVzIHdlIGtub3cgYWJvdXQgYW5kCi0gICAgICAgICAgICAgaGF2ZSBhbHJlYWR5IGRlYWx0IHdpdGgsIGFib3ZlIChpbmx1ZGluZyBkdW1wLXNjcmlwdCksIHRoZW4KLSAgICAgICAgICAgICByZXBvcnQgYW4gZXJyb3IuIE90aGVyd2lzZSwgdGFyZ2V0cyBtaWdodCBiZWdpbiB0byBiZWxpZXZlCi0gICAgICAgICAgICAgdGhleSBhcmUgYWxsb3dlZCB0byB1c2Ugb3B0aW9ucyBpbiB0aGUgTFRXUkFQUEVSX09QVElPTl9QUkVGSVgKLSAgICAgICAgICAgICBuYW1lc3BhY2UuIFRoZSBmaXJzdCB0aW1lIGFueSB1c2VyIGNvbXBsYWlucyBhYm91dCB0aGlzLCB3ZSdsbAotICAgICAgICAgICAgIG5lZWQgdG8gbWFrZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCBhIGNvbmZpZ3VyZS10aW1lIG9wdGlvbgotICAgICAgICAgICAgIG9yIGEgY29uZmlndXJlLmFjLXNldHRhYmxlIHZhbHVlLgotICAgICAgICAgICAqLwotICAgICAgICAgIGx0X2ZhdGFsICgiVW5yZWNvZ25pemVkIG9wdGlvbiBpbiAlcyBuYW1lc3BhY2U6ICclcyciLAotICAgICAgICAgICAgICAgICAgICBsdHdyYXBwZXJfb3B0aW9uX3ByZWZpeCwgYXJndltpXSk7Ci0gICAgICAgIH0KLSAgICAgIC8qIG90aGVyd2lzZSAuLi4gKi8KLSAgICAgIG5ld2FyZ3pbKytuZXdhcmdjXSA9IHhzdHJkdXAgKGFyZ3ZbaV0pOwotICAgIH0KLSAgbmV3YXJnelsrK25ld2FyZ2NdID0gTlVMTDsKLQotICBMVFdSQVBQRVJfREVCVUdQUklOVEYgICAgICgoIihtYWluKSBsdF9hcmd2X3plcm8gOiAlc1xuIiwgKGx0X2FyZ3ZfemVybyA/IGx0X2FyZ3ZfemVybyA6ICI8TlVMTD4iKSkpOworICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLCAiKG1haW4pIGx0X2FyZ3ZfemVybzogJXNcbiIsCisJCSAgbm9ubnVsbCAobHRfYXJndl96ZXJvKSk7CiAgIGZvciAoaSA9IDA7IGkgPCBuZXdhcmdjOyBpKyspCiAgICAgewotICAgICAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBuZXdhcmd6WyVkXSAgIDogJXNcbiIsIGksIChuZXdhcmd6W2ldID8gbmV3YXJneltpXSA6ICI8TlVMTD4iKSkpOworICAgICAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywgIihtYWluKSBuZXdhcmd6WyVkXTogJXNcbiIsCisJCSAgICAgIGksIG5vbm51bGwgKG5ld2FyZ3pbaV0pKTsKICAgICB9CiAKIEVPRgpAQCAtMzU2MCwxMSArNDUxNywxNCBAQAogCSAgICAgIG1pbmd3KikKIAkJY2F0IDw8IkVPRiIKICAgLyogZXhlY3YgZG9lc24ndCBhY3R1YWxseSB3b3JrIG9uIG1pbmd3IGFzIGV4cGVjdGVkIG9uIHVuaXggKi8KKyAgbmV3YXJneiA9IHByZXBhcmVfc3Bhd24gKG5ld2FyZ3opOwogICBydmFsID0gX3NwYXdudiAoX1BfV0FJVCwgbHRfYXJndl96ZXJvLCAoY29uc3QgY2hhciAqIGNvbnN0ICopIG5ld2FyZ3opOwogICBpZiAocnZhbCA9PSAtMSkKICAgICB7CiAgICAgICAvKiBmYWlsZWQgdG8gc3RhcnQgcHJvY2VzcyAqLwotICAgICAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBmYWlsZWQgdG8gbGF1bmNoIHRhcmdldCBcIiVzXCI6IGVycm5vID0gJWRcbiIsIGx0X2FyZ3ZfemVybywgZXJybm8pKTsKKyAgICAgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sCisJCSAgICAgICIobWFpbikgZmFpbGVkIHRvIGxhdW5jaCB0YXJnZXQgXCIlc1wiOiAlc1xuIiwKKwkJICAgICAgbHRfYXJndl96ZXJvLCBub25udWxsIChzdHJlcnJvciAoZXJybm8pKSk7CiAgICAgICByZXR1cm4gMTI3OwogICAgIH0KICAgcmV0dXJuIHJ2YWw7CkBAIC0zNTg2LDcgKzQ1NDYsNyBAQAogewogICB2b2lkICpwID0gKHZvaWQgKikgbWFsbG9jIChudW0pOwogICBpZiAoIXApCi0gICAgbHRfZmF0YWwgKCJNZW1vcnkgZXhoYXVzdGVkIik7CisgICAgbHRfZmF0YWwgKF9fRklMRV9fLCBfX0xJTkVfXywgIm1lbW9yeSBleGhhdXN0ZWQiKTsKIAogICByZXR1cm4gcDsKIH0KQEAgLTM2MjAsOCArNDU4MCw4IEBACiB7CiAgIHN0cnVjdCBzdGF0IHN0OwogCi0gIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIoY2hlY2tfZXhlY3V0YWJsZSkgIDogJXNcbiIsCi0JCQkgIHBhdGggPyAoKnBhdGggPyBwYXRoIDogIkVNUFRZISIpIDogIk5VTEwhIikpOworICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLCAiKGNoZWNrX2V4ZWN1dGFibGUpOiAlc1xuIiwKKyAgICAgICAgICAgICAgICAgIG5vbmVtcHR5IChwYXRoKSk7CiAgIGlmICgoIXBhdGgpIHx8ICghKnBhdGgpKQogICAgIHJldHVybiAwOwogCkBAIC0zNjM4LDggKzQ1OTgsOCBAQAogICBpbnQgcnZhbCA9IDA7CiAgIHN0cnVjdCBzdGF0IHN0OwogCi0gIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFrZV9leGVjdXRhYmxlKSAgIDogJXNcbiIsCi0JCQkgIHBhdGggPyAoKnBhdGggPyBwYXRoIDogIkVNUFRZISIpIDogIk5VTEwhIikpOworICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLCAiKG1ha2VfZXhlY3V0YWJsZSk6ICVzXG4iLAorICAgICAgICAgICAgICAgICAgbm9uZW1wdHkgKHBhdGgpKTsKICAgaWYgKCghcGF0aCkgfHwgKCEqcGF0aCkpCiAgICAgcmV0dXJuIDA7CiAKQEAgLTM2NjUsOCArNDYyNSw4IEBACiAgIGludCB0bXBfbGVuOwogICBjaGFyICpjb25jYXRfbmFtZTsKIAotICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKGZpbmRfZXhlY3V0YWJsZSkgICA6ICVzXG4iLAotCQkJICB3cmFwcGVyID8gKCp3cmFwcGVyID8gd3JhcHBlciA6ICJFTVBUWSEiKSA6ICJOVUxMISIpKTsKKyAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywgIihmaW5kX2V4ZWN1dGFibGUpOiAlc1xuIiwKKyAgICAgICAgICAgICAgICAgIG5vbmVtcHR5ICh3cmFwcGVyKSk7CiAKICAgaWYgKCh3cmFwcGVyID09IE5VTEwpIHx8ICgqd3JhcHBlciA9PSAnXDAnKSkKICAgICByZXR1cm4gTlVMTDsKQEAgLTM3MTksNyArNDY3OSw4IEBACiAJCXsKIAkJICAvKiBlbXB0eSBwYXRoOiBjdXJyZW50IGRpcmVjdG9yeSAqLwogCQkgIGlmIChnZXRjd2QgKHRtcCwgTFRfUEFUSE1BWCkgPT0gTlVMTCkKLQkJICAgIGx0X2ZhdGFsICgiZ2V0Y3dkIGZhaWxlZCIpOworCQkgICAgbHRfZmF0YWwgKF9fRklMRV9fLCBfX0xJTkVfXywgImdldGN3ZCBmYWlsZWQ6ICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbm51bGwgKHN0cmVycm9yIChlcnJubykpKTsKIAkJICB0bXBfbGVuID0gc3RybGVuICh0bXApOwogCQkgIGNvbmNhdF9uYW1lID0KIAkJICAgIFhNQUxMT0MgKGNoYXIsIHRtcF9sZW4gKyAxICsgc3RybGVuICh3cmFwcGVyKSArIDEpOwpAQCAtMzc0NCw3ICs0NzA1LDggQEAKICAgICB9CiAgIC8qIFJlbGF0aXZlIHBhdGggfCBub3QgZm91bmQgaW4gcGF0aDogcHJlcGVuZCBjd2QgKi8KICAgaWYgKGdldGN3ZCAodG1wLCBMVF9QQVRITUFYKSA9PSBOVUxMKQotICAgIGx0X2ZhdGFsICgiZ2V0Y3dkIGZhaWxlZCIpOworICAgIGx0X2ZhdGFsIChfX0ZJTEVfXywgX19MSU5FX18sICJnZXRjd2QgZmFpbGVkOiAlcyIsCisgICAgICAgICAgICAgIG5vbm51bGwgKHN0cmVycm9yIChlcnJubykpKTsKICAgdG1wX2xlbiA9IHN0cmxlbiAodG1wKTsKICAgY29uY2F0X25hbWUgPSBYTUFMTE9DIChjaGFyLCB0bXBfbGVuICsgMSArIHN0cmxlbiAod3JhcHBlcikgKyAxKTsKICAgbWVtY3B5IChjb25jYXRfbmFtZSwgdG1wLCB0bXBfbGVuKTsKQEAgLTM3NzAsOCArNDczMiw5IEBACiAgIGludCBoYXNfc3ltbGlua3MgPSAwOwogICB3aGlsZSAoc3RybGVuICh0bXBfcGF0aHNwZWMpICYmICFoYXNfc3ltbGlua3MpCiAgICAgewotICAgICAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoImNoZWNraW5nIHBhdGggY29tcG9uZW50IGZvciBzeW1saW5rczogJXNcbiIsCi0JCQkgICAgICB0bXBfcGF0aHNwZWMpKTsKKyAgICAgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sCisJCSAgICAgICJjaGVja2luZyBwYXRoIGNvbXBvbmVudCBmb3Igc3ltbGlua3M6ICVzXG4iLAorCQkgICAgICB0bXBfcGF0aHNwZWMpOwogICAgICAgaWYgKGxzdGF0ICh0bXBfcGF0aHNwZWMsICZzKSA9PSAwKQogCXsKIAkgIGlmIChTX0lTTE5LIChzLnN0X21vZGUpICE9IDApCkBAIC0zNzkzLDggKzQ3NTYsOSBAQAogCX0KICAgICAgIGVsc2UKIAl7Ci0JICBjaGFyICplcnJzdHIgPSBzdHJlcnJvciAoZXJybm8pOwotCSAgbHRfZmF0YWwgKCJFcnJvciBhY2Nlc3NpbmcgZmlsZSAlcyAoJXMpIiwgdG1wX3BhdGhzcGVjLCBlcnJzdHIpOworCSAgbHRfZmF0YWwgKF9fRklMRV9fLCBfX0xJTkVfXywKKwkJICAgICJlcnJvciBhY2Nlc3NpbmcgZmlsZSBcIiVzXCI6ICVzIiwKKwkJICAgIHRtcF9wYXRoc3BlYywgbm9ubnVsbCAoc3RyZXJyb3IgKGVycm5vKSkpOwogCX0KICAgICB9CiAgIFhGUkVFICh0bXBfcGF0aHNwZWMpOwpAQCAtMzgwNyw3ICs0NzcxLDggQEAKICAgdG1wX3BhdGhzcGVjID0gcmVhbHBhdGggKHBhdGhzcGVjLCBidWYpOwogICBpZiAodG1wX3BhdGhzcGVjID09IDApCiAgICAgewotICAgICAgbHRfZmF0YWwgKCJDb3VsZCBub3QgZm9sbG93IHN5bWxpbmtzIGZvciAlcyIsIHBhdGhzcGVjKTsKKyAgICAgIGx0X2ZhdGFsIChfX0ZJTEVfXywgX19MSU5FX18sCisJCSJjb3VsZCBub3QgZm9sbG93IHN5bWxpbmtzIGZvciAlcyIsIHBhdGhzcGVjKTsKICAgICB9CiAgIHJldHVybiB4c3RyZHVwICh0bXBfcGF0aHNwZWMpOwogI2VuZGlmCkBAIC0zODMzLDExICs0Nzk4LDI1IEBACiAgIHJldHVybiBzdHI7CiB9CiAKK3ZvaWQKK2x0X2RlYnVncHJpbnRmIChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisgIHZhX2xpc3QgYXJnczsKKyAgaWYgKGx0X2RlYnVnKQorICAgIHsKKyAgICAgICh2b2lkKSBmcHJpbnRmIChzdGRlcnIsICIlczolczolZDogIiwgcHJvZ3JhbV9uYW1lLCBmaWxlLCBsaW5lKTsKKyAgICAgIHZhX3N0YXJ0IChhcmdzLCBmbXQpOworICAgICAgKHZvaWQpIHZmcHJpbnRmIChzdGRlcnIsIGZtdCwgYXJncyk7CisgICAgICB2YV9lbmQgKGFyZ3MpOworICAgIH0KK30KKwogc3RhdGljIHZvaWQKLWx0X2Vycm9yX2NvcmUgKGludCBleGl0X3N0YXR1cywgY29uc3QgY2hhciAqbW9kZSwKK2x0X2Vycm9yX2NvcmUgKGludCBleGl0X3N0YXR1cywgY29uc3QgY2hhciAqZmlsZSwKKwkgICAgICAgaW50IGxpbmUsIGNvbnN0IGNoYXIgKm1vZGUsCiAJICAgICAgIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIHZhX2xpc3QgYXApCiB7Ci0gIGZwcmludGYgKHN0ZGVyciwgIiVzOiAlczogIiwgcHJvZ3JhbV9uYW1lLCBtb2RlKTsKKyAgZnByaW50ZiAoc3RkZXJyLCAiJXM6JXM6JWQ6ICVzOiAiLCBwcm9ncmFtX25hbWUsIGZpbGUsIGxpbmUsIG1vZGUpOwogICB2ZnByaW50ZiAoc3RkZXJyLCBtZXNzYWdlLCBhcCk7CiAgIGZwcmludGYgKHN0ZGVyciwgIi5cbiIpOwogCkBAIC0zODQ2LDIwICs0ODI1LDMyIEBACiB9CiAKIHZvaWQKLWx0X2ZhdGFsIChjb25zdCBjaGFyICptZXNzYWdlLCAuLi4pCitsdF9mYXRhbCAoY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIC4uLikKIHsKICAgdmFfbGlzdCBhcDsKICAgdmFfc3RhcnQgKGFwLCBtZXNzYWdlKTsKLSAgbHRfZXJyb3JfY29yZSAoRVhJVF9GQUlMVVJFLCAiRkFUQUwiLCBtZXNzYWdlLCBhcCk7CisgIGx0X2Vycm9yX2NvcmUgKEVYSVRfRkFJTFVSRSwgZmlsZSwgbGluZSwgIkZBVEFMIiwgbWVzc2FnZSwgYXApOwogICB2YV9lbmQgKGFwKTsKIH0KIAorc3RhdGljIGNvbnN0IGNoYXIgKgorbm9ubnVsbCAoY29uc3QgY2hhciAqcykKK3sKKyAgcmV0dXJuIHMgPyBzIDogIihudWxsKSI7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICoKK25vbmVtcHR5IChjb25zdCBjaGFyICpzKQoreworICByZXR1cm4gKHMgJiYgISpzKSA/ICIoZW1wdHkpIiA6IG5vbm51bGwgKHMpOworfQorCiB2b2lkCiBsdF9zZXRlbnYgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQogewotICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKGx0X3NldGVudikgc2V0dGluZyAnJXMnIHRvICclcydcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChuYW1lID8gbmFtZSA6ICI8TlVMTD4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlID8gdmFsdWUgOiAiPE5VTEw+IikpKTsKKyAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywKKwkJICAiKGx0X3NldGVudikgc2V0dGluZyAnJXMnIHRvICclcydcbiIsCisgICAgICAgICAgICAgICAgICBub25udWxsIChuYW1lKSwgbm9ubnVsbCAodmFsdWUpKTsKICAgewogI2lmZGVmIEhBVkVfU0VURU5WCiAgICAgLyogYWx3YXlzIG1ha2UgYSBjb3B5LCBmb3IgY29uc2lzdGVuY3kgd2l0aCAhSEFWRV9TRVRFTlYgKi8KQEAgLTM5MDQsOTUgKzQ4OTUsMTIgQEAKICAgcmV0dXJuIG5ld192YWx1ZTsKIH0KIAotaW50Ci1sdF9zcGxpdF9uYW1lX3ZhbHVlIChjb25zdCBjaGFyICphcmcsIGNoYXIqKiBuYW1lLCBjaGFyKiogdmFsdWUpCi17Ci0gIGNvbnN0IGNoYXIgKnA7Ci0gIGludCBsZW47Ci0gIGlmICghYXJnIHx8ICEqYXJnKQotICAgIHJldHVybiAxOwotCi0gIHAgPSBzdHJjaHIgKGFyZywgKGludCknPScpOwotCi0gIGlmICghcCkKLSAgICByZXR1cm4gMTsKLQotICAqdmFsdWUgPSB4c3RyZHVwICgrK3ApOwotCi0gIGxlbiA9IHN0cmxlbiAoYXJnKSAtIHN0cmxlbiAoKnZhbHVlKTsKLSAgKm5hbWUgPSBYTUFMTE9DIChjaGFyLCBsZW4pOwotICBzdHJuY3B5ICgqbmFtZSwgYXJnLCBsZW4tMSk7Ci0gICgqbmFtZSlbbGVuIC0gMV0gPSAnXDAnOwotCi0gIHJldHVybiAwOwotfQotCi12b2lkCi1sdF9vcHRfcHJvY2Vzc19lbnZfc2V0IChjb25zdCBjaGFyICphcmcpCi17Ci0gIGNoYXIgKm5hbWUgPSBOVUxMOwotICBjaGFyICp2YWx1ZSA9IE5VTEw7Ci0KLSAgaWYgKGx0X3NwbGl0X25hbWVfdmFsdWUgKGFyZywgJm5hbWUsICZ2YWx1ZSkgIT0gMCkKLSAgICB7Ci0gICAgICBYRlJFRSAobmFtZSk7Ci0gICAgICBYRlJFRSAodmFsdWUpOwotICAgICAgbHRfZmF0YWwgKCJiYWQgYXJndW1lbnQgZm9yICVzOiAnJXMnIiwgZW52X3NldF9vcHQsIGFyZyk7Ci0gICAgfQotCi0gIGx0X3NldGVudiAobmFtZSwgdmFsdWUpOwotICBYRlJFRSAobmFtZSk7Ci0gIFhGUkVFICh2YWx1ZSk7Ci19Ci0KLXZvaWQKLWx0X29wdF9wcm9jZXNzX2Vudl9wcmVwZW5kIChjb25zdCBjaGFyICphcmcpCi17Ci0gIGNoYXIgKm5hbWUgPSBOVUxMOwotICBjaGFyICp2YWx1ZSA9IE5VTEw7Ci0gIGNoYXIgKm5ld192YWx1ZSA9IE5VTEw7Ci0KLSAgaWYgKGx0X3NwbGl0X25hbWVfdmFsdWUgKGFyZywgJm5hbWUsICZ2YWx1ZSkgIT0gMCkKLSAgICB7Ci0gICAgICBYRlJFRSAobmFtZSk7Ci0gICAgICBYRlJFRSAodmFsdWUpOwotICAgICAgbHRfZmF0YWwgKCJiYWQgYXJndW1lbnQgZm9yICVzOiAnJXMnIiwgZW52X3ByZXBlbmRfb3B0LCBhcmcpOwotICAgIH0KLQotICBuZXdfdmFsdWUgPSBsdF9leHRlbmRfc3RyIChnZXRlbnYgKG5hbWUpLCB2YWx1ZSwgMCk7Ci0gIGx0X3NldGVudiAobmFtZSwgbmV3X3ZhbHVlKTsKLSAgWEZSRUUgKG5ld192YWx1ZSk7Ci0gIFhGUkVFIChuYW1lKTsKLSAgWEZSRUUgKHZhbHVlKTsKLX0KLQotdm9pZAotbHRfb3B0X3Byb2Nlc3NfZW52X2FwcGVuZCAoY29uc3QgY2hhciAqYXJnKQotewotICBjaGFyICpuYW1lID0gTlVMTDsKLSAgY2hhciAqdmFsdWUgPSBOVUxMOwotICBjaGFyICpuZXdfdmFsdWUgPSBOVUxMOwotCi0gIGlmIChsdF9zcGxpdF9uYW1lX3ZhbHVlIChhcmcsICZuYW1lLCAmdmFsdWUpICE9IDApCi0gICAgewotICAgICAgWEZSRUUgKG5hbWUpOwotICAgICAgWEZSRUUgKHZhbHVlKTsKLSAgICAgIGx0X2ZhdGFsICgiYmFkIGFyZ3VtZW50IGZvciAlczogJyVzJyIsIGVudl9hcHBlbmRfb3B0LCBhcmcpOwotICAgIH0KLQotICBuZXdfdmFsdWUgPSBsdF9leHRlbmRfc3RyIChnZXRlbnYgKG5hbWUpLCB2YWx1ZSwgMSk7Ci0gIGx0X3NldGVudiAobmFtZSwgbmV3X3ZhbHVlKTsKLSAgWEZSRUUgKG5ld192YWx1ZSk7Ci0gIFhGUkVFIChuYW1lKTsKLSAgWEZSRUUgKHZhbHVlKTsKLX0KLQogdm9pZAogbHRfdXBkYXRlX2V4ZV9wYXRoIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSkKIHsKLSAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihsdF91cGRhdGVfZXhlX3BhdGgpIG1vZGlmeWluZyAnJXMnIGJ5IHByZXBlbmRpbmcgJyVzJ1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hbWUgPyBuYW1lIDogIjxOVUxMPiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWUgPyB2YWx1ZSA6ICI8TlVMTD4iKSkpOworICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLAorCQkgICIobHRfdXBkYXRlX2V4ZV9wYXRoKSBtb2RpZnlpbmcgJyVzJyBieSBwcmVwZW5kaW5nICclcydcbiIsCisgICAgICAgICAgICAgICAgICBub25udWxsIChuYW1lKSwgbm9ubnVsbCAodmFsdWUpKTsKIAogICBpZiAobmFtZSAmJiAqbmFtZSAmJiB2YWx1ZSAmJiAqdmFsdWUpCiAgICAgewpAQCAtNDAxMSw5ICs0OTE5LDkgQEAKIHZvaWQKIGx0X3VwZGF0ZV9saWJfcGF0aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCiB7Ci0gIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobHRfdXBkYXRlX2xpYl9wYXRoKSBtb2RpZnlpbmcgJyVzJyBieSBwcmVwZW5kaW5nICclcydcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChuYW1lID8gbmFtZSA6ICI8TlVMTD4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlID8gdmFsdWUgOiAiPE5VTEw+IikpKTsKKyAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywKKwkJICAiKGx0X3VwZGF0ZV9saWJfcGF0aCkgbW9kaWZ5aW5nICclcycgYnkgcHJlcGVuZGluZyAnJXMnXG4iLAorICAgICAgICAgICAgICAgICAgbm9ubnVsbCAobmFtZSksIG5vbm51bGwgKHZhbHVlKSk7CiAKICAgaWYgKG5hbWUgJiYgKm5hbWUgJiYgdmFsdWUgJiYgKnZhbHVlKQogICAgIHsKQEAgLTQwMjMsMTEgKzQ5MzEsMTUyIEBACiAgICAgfQogfQogCitFT0YKKwkgICAgY2FzZSAkaG9zdF9vcyBpbgorCSAgICAgIG1pbmd3KikKKwkJY2F0IDw8IkVPRiIKIAorLyogUHJlcGFyZXMgYW4gYXJndW1lbnQgdmVjdG9yIGJlZm9yZSBjYWxsaW5nIHNwYXduKCkuCisgICBOb3RlIHRoYXQgc3Bhd24oKSBkb2VzIG5vdCBieSBpdHNlbGYgY2FsbCB0aGUgY29tbWFuZCBpbnRlcnByZXRlcgorICAgICAoZ2V0ZW52ICgiQ09NU1BFQyIpICE9IE5VTEwgPyBnZXRlbnYgKCJDT01TUEVDIikgOgorICAgICAgKHsgT1NWRVJTSU9OSU5GTyB2OyB2LmR3T1NWZXJzaW9uSW5mb1NpemUgPSBzaXplb2YoT1NWRVJTSU9OSU5GTyk7CisgICAgICAgICBHZXRWZXJzaW9uRXgoJnYpOworICAgICAgICAgdi5kd1BsYXRmb3JtSWQgPT0gVkVSX1BMQVRGT1JNX1dJTjMyX05UOworICAgICAgfSkgPyAiY21kLmV4ZSIgOiAiY29tbWFuZC5jb20iKS4KKyAgIEluc3RlYWQgaXQgc2ltcGx5IGNvbmNhdGVuYXRlcyB0aGUgYXJndW1lbnRzLCBzZXBhcmF0ZWQgYnkgJyAnLCBhbmQgY2FsbHMKKyAgIENyZWF0ZVByb2Nlc3MoKS4gIFdlIG11c3QgcXVvdGUgdGhlIGFyZ3VtZW50cyBzaW5jZSBXaW4zMiBDcmVhdGVQcm9jZXNzKCkKKyAgIGludGVycHJldHMgY2hhcmFjdGVycyBsaWtlICcgJywgJ1x0JywgJ1xcJywgJyInIChidXQgbm90ICc8JyBhbmQgJz4nKSBpbiBhCisgICBzcGVjaWFsIHdheToKKyAgIC0gU3BhY2UgYW5kIHRhYiBhcmUgaW50ZXJwcmV0ZWQgYXMgZGVsaW1pdGVycy4gVGhleSBhcmUgbm90IHRyZWF0ZWQgYXMKKyAgICAgZGVsaW1pdGVycyBpZiB0aGV5IGFyZSBzdXJyb3VuZGVkIGJ5IGRvdWJsZSBxdW90ZXM6ICIuLi4iLgorICAgLSBVbmVzY2FwZWQgZG91YmxlIHF1b3RlcyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBpbnB1dC4gVGhlaXIgb25seSBlZmZlY3QgaXMKKyAgICAgdGhhdCB3aXRoaW4gZG91YmxlIHF1b3Rlcywgc3BhY2UgYW5kIHRhYiBhcmUgdHJlYXRlZCBsaWtlIG5vcm1hbAorICAgICBjaGFyYWN0ZXJzLgorICAgLSBCYWNrc2xhc2hlcyBub3QgZm9sbG93ZWQgYnkgZG91YmxlIHF1b3RlcyBhcmUgbm90IHNwZWNpYWwuCisgICAtIEJ1dCAyKm4rMSBiYWNrc2xhc2hlcyBmb2xsb3dlZCBieSBhIGRvdWJsZSBxdW90ZSBiZWNvbWUKKyAgICAgbiBiYWNrc2xhc2hlcyBmb2xsb3dlZCBieSBhIGRvdWJsZSBxdW90ZSAobiA+PSAwKToKKyAgICAgICBcIiAtPiAiCisgICAgICAgXFxcIiAtPiBcIgorICAgICAgIFxcXFxcIiAtPiBcXCIKKyAqLworI2RlZmluZSBTSEVMTF9TUEVDSUFMX0NIQVJTICJcIlxcIFwwMDFcMDAyXDAwM1wwMDRcMDA1XDAwNlwwMDdcMDEwXDAxMVwwMTJcMDEzXDAxNFwwMTVcMDE2XDAxN1wwMjBcMDIxXDAyMlwwMjNcMDI0XDAyNVwwMjZcMDI3XDAzMFwwMzFcMDMyXDAzM1wwMzRcMDM1XDAzNlwwMzciCisjZGVmaW5lIFNIRUxMX1NQQUNFX0NIQVJTICIgXDAwMVwwMDJcMDAzXDAwNFwwMDVcMDA2XDAwN1wwMTBcMDExXDAxMlwwMTNcMDE0XDAxNVwwMTZcMDE3XDAyMFwwMjFcMDIyXDAyM1wwMjRcMDI1XDAyNlwwMjdcMDMwXDAzMVwwMzJcMDMzXDAzNFwwMzVcMDM2XDAzNyIKK2NoYXIgKioKK3ByZXBhcmVfc3Bhd24gKGNoYXIgKiphcmd2KQoreworICBzaXplX3QgYXJnYzsKKyAgY2hhciAqKm5ld19hcmd2OworICBzaXplX3QgaTsKKworICAvKiBDb3VudCBudW1iZXIgb2YgYXJndW1lbnRzLiAgKi8KKyAgZm9yIChhcmdjID0gMDsgYXJndlthcmdjXSAhPSBOVUxMOyBhcmdjKyspCisgICAgOworCisgIC8qIEFsbG9jYXRlIG5ldyBhcmd1bWVudCB2ZWN0b3IuICAqLworICBuZXdfYXJndiA9IFhNQUxMT0MgKGNoYXIgKiwgYXJnYyArIDEpOworCisgIC8qIFB1dCBxdW90ZWQgYXJndW1lbnRzIGludG8gdGhlIG5ldyBhcmd1bWVudCB2ZWN0b3IuICAqLworICBmb3IgKGkgPSAwOyBpIDwgYXJnYzsgaSsrKQorICAgIHsKKyAgICAgIGNvbnN0IGNoYXIgKnN0cmluZyA9IGFyZ3ZbaV07CisKKyAgICAgIGlmIChzdHJpbmdbMF0gPT0gJ1wwJykKKwluZXdfYXJndltpXSA9IHhzdHJkdXAgKCJcIlwiIik7CisgICAgICBlbHNlIGlmIChzdHJwYnJrIChzdHJpbmcsIFNIRUxMX1NQRUNJQUxfQ0hBUlMpICE9IE5VTEwpCisJeworCSAgaW50IHF1b3RlX2Fyb3VuZCA9IChzdHJwYnJrIChzdHJpbmcsIFNIRUxMX1NQQUNFX0NIQVJTKSAhPSBOVUxMKTsKKwkgIHNpemVfdCBsZW5ndGg7CisJICB1bnNpZ25lZCBpbnQgYmFja3NsYXNoZXM7CisJICBjb25zdCBjaGFyICpzOworCSAgY2hhciAqcXVvdGVkX3N0cmluZzsKKwkgIGNoYXIgKnA7CisKKwkgIGxlbmd0aCA9IDA7CisJICBiYWNrc2xhc2hlcyA9IDA7CisJICBpZiAocXVvdGVfYXJvdW5kKQorCSAgICBsZW5ndGgrKzsKKwkgIGZvciAocyA9IHN0cmluZzsgKnMgIT0gJ1wwJzsgcysrKQorCSAgICB7CisJICAgICAgY2hhciBjID0gKnM7CisJICAgICAgaWYgKGMgPT0gJyInKQorCQlsZW5ndGggKz0gYmFja3NsYXNoZXMgKyAxOworCSAgICAgIGxlbmd0aCsrOworCSAgICAgIGlmIChjID09ICdcXCcpCisJCWJhY2tzbGFzaGVzKys7CisJICAgICAgZWxzZQorCQliYWNrc2xhc2hlcyA9IDA7CisJICAgIH0KKwkgIGlmIChxdW90ZV9hcm91bmQpCisJICAgIGxlbmd0aCArPSBiYWNrc2xhc2hlcyArIDE7CisKKwkgIHF1b3RlZF9zdHJpbmcgPSBYTUFMTE9DIChjaGFyLCBsZW5ndGggKyAxKTsKKworCSAgcCA9IHF1b3RlZF9zdHJpbmc7CisJICBiYWNrc2xhc2hlcyA9IDA7CisJICBpZiAocXVvdGVfYXJvdW5kKQorCSAgICAqcCsrID0gJyInOworCSAgZm9yIChzID0gc3RyaW5nOyAqcyAhPSAnXDAnOyBzKyspCisJICAgIHsKKwkgICAgICBjaGFyIGMgPSAqczsKKwkgICAgICBpZiAoYyA9PSAnIicpCisJCXsKKwkJICB1bnNpZ25lZCBpbnQgajsKKwkJICBmb3IgKGogPSBiYWNrc2xhc2hlcyArIDE7IGogPiAwOyBqLS0pCisJCSAgICAqcCsrID0gJ1xcJzsKKwkJfQorCSAgICAgICpwKysgPSBjOworCSAgICAgIGlmIChjID09ICdcXCcpCisJCWJhY2tzbGFzaGVzKys7CisJICAgICAgZWxzZQorCQliYWNrc2xhc2hlcyA9IDA7CisJICAgIH0KKwkgIGlmIChxdW90ZV9hcm91bmQpCisJICAgIHsKKwkgICAgICB1bnNpZ25lZCBpbnQgajsKKwkgICAgICBmb3IgKGogPSBiYWNrc2xhc2hlczsgaiA+IDA7IGotLSkKKwkJKnArKyA9ICdcXCc7CisJICAgICAgKnArKyA9ICciJzsKKwkgICAgfQorCSAgKnAgPSAnXDAnOworCisJICBuZXdfYXJndltpXSA9IHF1b3RlZF9zdHJpbmc7CisJfQorICAgICAgZWxzZQorCW5ld19hcmd2W2ldID0gKGNoYXIgKikgc3RyaW5nOworICAgIH0KKyAgbmV3X2FyZ3ZbYXJnY10gPSBOVUxMOworCisgIHJldHVybiBuZXdfYXJndjsKK30KK0VPRgorCQk7OworCSAgICBlc2FjCisKKyAgICAgICAgICAgIGNhdCA8PCJFT0YiCit2b2lkIGx0X2R1bXBfc2NyaXB0IChGSUxFKiBmKQoreworRU9GCisJICAgIGZ1bmNfZW1pdF93cmFwcGVyIHllcyB8CisgICAgICAgICAgICAgICRTRUQgLWUgJ3MvXChbXFwiXVwpL1xcXDEvZycgXAorCSAgICAgICAgICAgLWUgJ3MvXi8gIGZwdXRzICgiLycgLWUgJ3MvJC9cXG4iLCBmKTsvJworCisgICAgICAgICAgICBjYXQgPDwiRU9GIgorfQogRU9GCiB9CiAjIGVuZDogZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYwogCisjIGZ1bmNfd2luMzJfaW1wb3J0X2xpYl9wIEFSRworIyBUcnVlIGlmIEFSRyBpcyBhbiBpbXBvcnQgbGliLCBhcyBpbmRpY2F0ZWQgYnkgJGZpbGVfbWFnaWNfY21kCitmdW5jX3dpbjMyX2ltcG9ydF9saWJfcCAoKQoreworICAgICRvcHRfZGVidWcKKyAgICBjYXNlIGBldmFsICRmaWxlX21hZ2ljX2NtZCBcIlwkMVwiIDI+L2Rldi9udWxsIHwgJFNFRCAtZSAxMHFgIGluCisgICAgKmltcG9ydCopIDogOzsKKyAgICAqKSBmYWxzZSA7OworICAgIGVzYWMKK30KKwogIyBmdW5jX21vZGVfbGluayBhcmcuLi4KIGZ1bmNfbW9kZV9saW5rICgpCiB7CkBAIC00MDcyLDYgKzUxMjEsNyBAQAogICAgIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPQogCiAgICAgYXZvaWRfdmVyc2lvbj1ubworICAgIGJpbmRpcj0KICAgICBkbGZpbGVzPQogICAgIGRscHJlZmlsZXM9CiAgICAgZGxzZWxmPW5vCkBAIC00MTY0LDYgKzUyMTQsMTEgQEAKIAllc2FjCiAKIAljYXNlICRwcmV2IGluCisJYmluZGlyKQorCSAgYmluZGlyPSIkYXJnIgorCSAgcHJldj0KKwkgIGNvbnRpbnVlCisJICA7OwogCWRsZmlsZXN8ZGxwcmVmaWxlcykKIAkgIGlmIHRlc3QgIiRwcmVsb2FkIiA9IG5vOyB0aGVuCiAJICAgICMgQWRkIHRoZSBzeW1ib2wgb2JqZWN0IGludG8gdGhlIGxpbmtpbmcgY29tbWFuZHMuCkBAIC00MTk1LDkgKzUyNTAsOSBAQAogCSAgICA7OwogCSAgKikKIAkgICAgaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgotCSAgICAgIGRsZmlsZXM9IiRkbGZpbGVzICRhcmciCisJICAgICAgZnVuY19hcHBlbmQgZGxmaWxlcyAiICRhcmciCiAJICAgIGVsc2UKLQkgICAgICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkYXJnIgorCSAgICAgIGZ1bmNfYXBwZW5kIGRscHJlZmlsZXMgIiAkYXJnIgogCSAgICBmaQogCSAgICBwcmV2PQogCSAgICBjb250aW51ZQpAQCAtNDIyMSw3ICs1Mjc2LDcgQEAKIAkgICAgKi0qLWRhcndpbiopCiAJICAgICAgY2FzZSAiJGRlcGxpYnMgIiBpbgogCQkqIiAkcWFyZy5sdGZyYW1ld29yayAiKikgOzsKLQkJKikgZGVwbGlicz0iJGRlcGxpYnMgJHFhcmcubHRmcmFtZXdvcmsiICMgdGhpcyBpcyBmaXhlZCBsYXRlcgorCQkqKSBmdW5jX2FwcGVuZCBkZXBsaWJzICIgJHFhcmcubHRmcmFtZXdvcmsiICMgdGhpcyBpcyBmaXhlZCBsYXRlcgogCQkgICA7OwogCSAgICAgIGVzYWMKIAkgICAgICA7OwpAQCAtNDI0MCw3ICs1Mjk1LDcgQEAKIAkgICAgbW9yZWFyZ3M9CiAJICAgIGZvciBmaWwgaW4gYGNhdCAiJHNhdmVfYXJnImAKIAkgICAgZG8KLSMJICAgICAgbW9yZWFyZ3M9IiRtb3JlYXJncyAkZmlsIgorIwkgICAgICBmdW5jX2FwcGVuZCBtb3JlYXJncyAiICRmaWwiCiAJICAgICAgYXJnPSRmaWwKIAkgICAgICAjIEEgbGlidG9vbC1jb250cm9sbGVkIG9iamVjdC4KIApAQCAtNDI2OSw3ICs1MzI0LDcgQEAKIAogCQkgIGlmIHRlc3QgIiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4KIAkJICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYmIHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgPSB5ZXM7IHRoZW4KLQkJICAgICAgZGxmaWxlcz0iJGRsZmlsZXMgJHBpY19vYmplY3QiCisJCSAgICAgIGZ1bmNfYXBwZW5kIGRsZmlsZXMgIiAkcGljX29iamVjdCIKIAkJICAgICAgcHJldj0KIAkJICAgICAgY29udGludWUKIAkJICAgIGVsc2UKQEAgLTQyODEsNyArNTMzNiw3IEBACiAJCSAgIyBDSEVDSyBNRTogIEkgdGhpbmsgSSBidXN0ZWQgdGhpcy4gIC1Pc3NhbWEKIAkJICBpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCiAJCSAgICAjIFByZWxvYWQgdGhlIG9sZC1zdHlsZSBvYmplY3QuCi0JCSAgICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkcGljX29iamVjdCIKKwkJICAgIGZ1bmNfYXBwZW5kIGRscHJlZmlsZXMgIiAkcGljX29iamVjdCIKIAkJICAgIHByZXY9CiAJCSAgZmkKIApAQCAtNDM1MSwxMiArNTQwNiwxMiBAQAogCSAgaWYgdGVzdCAiJHByZXYiID0gcnBhdGg7IHRoZW4KIAkgICAgY2FzZSAiJHJwYXRoICIgaW4KIAkgICAgKiIgJGFyZyAiKikgOzsKLQkgICAgKikgcnBhdGg9IiRycGF0aCAkYXJnIiA7OworCSAgICAqKSBmdW5jX2FwcGVuZCBycGF0aCAiICRhcmciIDs7CiAJICAgIGVzYWMKIAkgIGVsc2UKIAkgICAgY2FzZSAiJHhycGF0aCAiIGluCiAJICAgICoiICRhcmcgIiopIDs7Ci0JICAgICopIHhycGF0aD0iJHhycGF0aCAkYXJnIiA7OworCSAgICAqKSBmdW5jX2FwcGVuZCB4cnBhdGggIiAkYXJnIiA7OwogCSAgICBlc2FjCiAJICBmaQogCSAgcHJldj0KQEAgLTQzNjgsMjggKzU0MjMsMjggQEAKIAkgIGNvbnRpbnVlCiAJICA7OwogCXdlYWspCi0JICB3ZWFrX2xpYnM9IiR3ZWFrX2xpYnMgJGFyZyIKKwkgIGZ1bmNfYXBwZW5kIHdlYWtfbGlicyAiICRhcmciCiAJICBwcmV2PQogCSAgY29udGludWUKIAkgIDs7CiAJeGNjbGlua2VyKQotCSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRxYXJnIgotCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkcWFyZyIKKwkgIGZ1bmNfYXBwZW5kIGxpbmtlcl9mbGFncyAiICRxYXJnIgorCSAgZnVuY19hcHBlbmQgY29tcGlsZXJfZmxhZ3MgIiAkcWFyZyIKIAkgIHByZXY9CiAJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkcWFyZyIKIAkgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkcWFyZyIKIAkgIGNvbnRpbnVlCiAJICA7OwogCXhjb21waWxlcikKLQkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHFhcmciCisJICBmdW5jX2FwcGVuZCBjb21waWxlcl9mbGFncyAiICRxYXJnIgogCSAgcHJldj0KIAkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRxYXJnIgogCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRxYXJnIgogCSAgY29udGludWUKIAkgIDs7CiAJeGxpbmtlcikKLQkgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAkcWFyZyIKLQkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHdsJHFhcmciCisJICBmdW5jX2FwcGVuZCBsaW5rZXJfZmxhZ3MgIiAkcWFyZyIKKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVyX2ZsYWdzICIgJHdsJHFhcmciCiAJICBwcmV2PQogCSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJHdsJHFhcmciCiAJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJHdsJHFhcmciCkBAIC00NDI1LDYgKzU0ODAsMTEgQEAKIAljb250aW51ZQogCTs7CiAKKyAgICAgIC1iaW5kaXIpCisJcHJldj1iaW5kaXIKKwljb250aW51ZQorCTs7CisKICAgICAgIC1kbG9wZW4pCiAJcHJldj1kbGZpbGVzCiAJY29udGludWUKQEAgLTQ0NzUsMTUgKzU1MzUsMTYgQEAKIAk7OwogCiAgICAgICAtTCopCi0JZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGFyZyIKLQlkaXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotCWlmIHRlc3QgLXogIiRkaXIiOyB0aGVuCisJZnVuY19zdHJpcG5hbWUgIi1MIiAnJyAiJGFyZyIKKwlpZiB0ZXN0IC16ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0IjsgdGhlbgogCSAgaWYgdGVzdCAiJCMiIC1ndCAwOyB0aGVuCiAJICAgIGZ1bmNfZmF0YWxfZXJyb3IgInJlcXVpcmUgbm8gc3BhY2UgYmV0d2VlbiBcYC1MJyBhbmQgXGAkMSciCiAJICBlbHNlCiAJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm5lZWQgcGF0aCBmb3IgXGAtTCcgb3B0aW9uIgogCSAgZmkKIAlmaQorCWZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorCWRpcj0kZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0CiAJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCiAJY2FzZSAkZGlyIGluCiAJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSA7OwpAQCAtNDQ5NSwyNCArNTU1NiwzMCBAQAogCSAgOzsKIAllc2FjCiAJY2FzZSAiJGRlcGxpYnMgIiBpbgotCSoiIC1MJGRpciAiKikgOzsKKwkqIiAtTCRkaXIgIiogfCAqIiAkYXJnICIqKQorCSAgIyBXaWxsIG9ubHkgaGFwcGVuIGZvciBhYnNvbHV0ZSBvciBzeXNyb290IGFyZ3VtZW50cworCSAgOzsKIAkqKQotCSAgZGVwbGlicz0iJGRlcGxpYnMgLUwkZGlyIgotCSAgbGliX3NlYXJjaF9wYXRoPSIkbGliX3NlYXJjaF9wYXRoICRkaXIiCisJICAjIFByZXNlcnZlIHN5c3Jvb3QsIGJ1dCBuZXZlciBpbmNsdWRlIHJlbGF0aXZlIGRpcmVjdG9yaWVzCisJICBjYXNlICRkaXIgaW4KKwkgICAgW1xcL10qIHwgW0EtWmEtel06W1xcL10qIHwgPSopIGZ1bmNfYXBwZW5kIGRlcGxpYnMgIiAkYXJnIiA7OworCSAgICAqKSBmdW5jX2FwcGVuZCBkZXBsaWJzICIgLUwkZGlyIiA7OworCSAgZXNhYworCSAgZnVuY19hcHBlbmQgbGliX3NlYXJjaF9wYXRoICIgJGRpciIKIAkgIDs7CiAJZXNhYwogCWNhc2UgJGhvc3QgaW4KIAkqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotb3MyKiB8ICotY2VnY2MqKQotCSAgdGVzdGJpbmRpcj1gJEVDSE8gIlgkZGlyIiB8ICRYc2VkIC1lICdzKi9saWIkKi9iaW4qJ2AKKwkgIHRlc3RiaW5kaXI9YCRFQ0hPICIkZGlyIiB8ICRTRUQgJ3MqL2xpYiQqL2JpbionYAogCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCiAJICAqIjokZGlyOiIqKSA7OwogCSAgOjopIGRsbHNlYXJjaHBhdGg9JGRpcjs7Ci0JICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxsc2VhcmNocGF0aDokZGlyIjs7CisJICAqKSBmdW5jX2FwcGVuZCBkbGxzZWFyY2hwYXRoICI6JGRpciI7OwogCSAgZXNhYwogCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCiAJICAqIjokdGVzdGJpbmRpcjoiKikgOzsKIAkgIDo6KSBkbGxzZWFyY2hwYXRoPSR0ZXN0YmluZGlyOzsKLQkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiR0ZXN0YmluZGlyIjs7CisJICAqKSBmdW5jX2FwcGVuZCBkbGxzZWFyY2hwYXRoICI6JHRlc3RiaW5kaXIiOzsKIAkgIGVzYWMKIAkgIDs7CiAJZXNhYwpAQCAtNDUyMiw3ICs1NTg5LDcgQEAKICAgICAgIC1sKikKIAlpZiB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgfHwgdGVzdCAiWCRhcmciID0gIlgtbG0iOyB0aGVuCiAJICBjYXNlICRob3N0IGluCi0JICAqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotYmVvcyogfCAqLWNlZ2NjKikKKwkgICotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1iZW9zKiB8ICotY2VnY2MqIHwgKi0qLWhhaWt1KikKIAkgICAgIyBUaGVzZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBDIG9yIG1hdGggbGlicmFyeSAoYXMgc3VjaCkKIAkgICAgY29udGludWUKIAkgICAgOzsKQEAgLTQ1MzYsNyArNTYwMyw3IEBACiAJICAgIDs7CiAJICAqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCiAJICAgICMgUmhhcHNvZHkgQyBhbmQgbWF0aCBsaWJyYXJpZXMgYXJlIGluIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCi0JICAgIGRlcGxpYnM9IiRkZXBsaWJzIFN5c3RlbS5sdGZyYW1ld29yayIKKwkgICAgZnVuY19hcHBlbmQgZGVwbGlicyAiIFN5c3RlbS5sdGZyYW1ld29yayIKIAkgICAgY29udGludWUKIAkgICAgOzsKIAkgICotKi1zY28zLjJ2NSogfCAqLSotc2NvNXY2KikKQEAgLTQ1NTYsNyArNTYyMyw3IEBACiAJICAgOzsKIAkgZXNhYwogCWZpCi0JZGVwbGlicz0iJGRlcGxpYnMgJGFyZyIKKwlmdW5jX2FwcGVuZCBkZXBsaWJzICIgJGFyZyIKIAljb250aW51ZQogCTs7CiAKQEAgLTQ1NjgsMjEgKzU2MzUsMjEgQEAKICAgICAgICMgVHJ1NjQgVU5JWCB1c2VzIC1tb2RlbCBbYXJnXSB0byBkZXRlcm1pbmUgdGhlIGxheW91dCBvZiBDKysKICAgICAgICMgY2xhc3NlcywgbmFtZSBtYW5nbGluZywgYW5kIGV4Y2VwdGlvbiBoYW5kbGluZy4KICAgICAgICMgRGFyd2luIHVzZXMgdGhlIC1hcmNoIGZsYWcgdG8gZGV0ZXJtaW5lIG91dHB1dCBhcmNoaXRlY3R1cmUuCi0gICAgICAtbW9kZWx8LWFyY2h8LWlzeXNyb290KQotCWNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJGFyZyIKKyAgICAgIC1tb2RlbHwtYXJjaHwtaXN5c3Jvb3R8LS1zeXNyb290KQorCWZ1bmNfYXBwZW5kIGNvbXBpbGVyX2ZsYWdzICIgJGFyZyIKIAlmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgogCWZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgogCXByZXY9eGNvbXBpbGVyCiAJY29udGludWUKIAk7OwogCi0gICAgICAtbXR8LW10aHJlYWRzfC1rdGhyZWFkfC1LdGhyZWFkfC1wdGhyZWFkfC1wdGhyZWFkc3wtLXRocmVhZC1zYWZlfC10aHJlYWRzfC1mc3RhY2stcHJvdGVjdG9yKikKLQljb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCisgICAgICAtbXR8LW10aHJlYWRzfC1rdGhyZWFkfC1LdGhyZWFkfC1wdGhyZWFkfC1wdGhyZWFkc3wtLXRocmVhZC1zYWZlfC10aHJlYWRzKQorCWZ1bmNfYXBwZW5kIGNvbXBpbGVyX2ZsYWdzICIgJGFyZyIKIAlmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgogCWZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgogCWNhc2UgIiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCiAJICAgICoiICRhcmcgIiopIDs7Ci0JICAgICogKSBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICRhcmciIDs7CisJICAgICogKSBmdW5jX2FwcGVuZCBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiICRhcmciIDs7CiAJZXNhYwogCWNvbnRpbnVlCiAJOzsKQEAgLTQ2NDksMTMgKzU3MTYsMTcgQEAKIAkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KIAljYXNlICRkaXIgaW4KIAlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7CisJPSopCisJICBmdW5jX3N0cmlwbmFtZSAnPScgJycgIiRkaXIiCisJICBkaXI9JGx0X3N5c3Jvb3QkZnVuY19zdHJpcG5hbWVfcmVzdWx0CisJICA7OwogCSopCiAJICBmdW5jX2ZhdGFsX2Vycm9yICJvbmx5IGFic29sdXRlIHJ1bi1wYXRocyBhcmUgYWxsb3dlZCIKIAkgIDs7CiAJZXNhYwogCWNhc2UgIiR4cnBhdGggIiBpbgogCSoiICRkaXIgIiopIDs7Ci0JKikgeHJwYXRoPSIkeHJwYXRoICRkaXIiIDs7CisJKikgZnVuY19hcHBlbmQgeHJwYXRoICIgJGRpciIgOzsKIAllc2FjCiAJY29udGludWUKIAk7OwpAQCAtNDcwOCw4ICs1Nzc5LDggQEAKIAlmb3IgZmxhZyBpbiAkYXJnczsgZG8KIAkgIElGUz0iJHNhdmVfaWZzIgogICAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRmbGFnIgotCSAgYXJnPSIkYXJnICR3bCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLQkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorCSAgZnVuY19hcHBlbmQgYXJnICIgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorCSAgZnVuY19hcHBlbmQgY29tcGlsZXJfZmxhZ3MgIiAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCiAJZG9uZQogCUlGUz0iJHNhdmVfaWZzIgogCWZ1bmNfc3RyaXBuYW1lICcgJyAnJyAiJGFyZyIKQEAgLTQ3MjQsOSArNTc5NSw5IEBACiAJZm9yIGZsYWcgaW4gJGFyZ3M7IGRvCiAJICBJRlM9IiRzYXZlX2lmcyIKICAgICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkZmxhZyIKLQkgIGFyZz0iJGFyZyAkd2wkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0JICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICR3bCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLQkgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisJICBmdW5jX2FwcGVuZCBhcmcgIiAkd2wkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisJICBmdW5jX2FwcGVuZCBjb21waWxlcl9mbGFncyAiICR3bCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKwkgIGZ1bmNfYXBwZW5kIGxpbmtlcl9mbGFncyAiICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKIAlkb25lCiAJSUZTPSIkc2F2ZV9pZnMiCiAJZnVuY19zdHJpcG5hbWUgJyAnICcnICIkYXJnIgpAQCAtNDc1NCwyMyArNTgyNSwyOCBAQAogCWFyZz0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgogCTs7CiAKLSAgICAgICMgLTY0LCAtbWlwc1swLTldIGVuYWJsZSA2NC1iaXQgbW9kZSBvbiB0aGUgU0dJIGNvbXBpbGVyCi0gICAgICAjIC1yWzAtOV1bMC05XSogc3BlY2lmaWVzIHRoZSBwcm9jZXNzb3Igb24gdGhlIFNHSSBjb21waWxlcgotICAgICAgIyAteGFyY2g9KiwgLXh0YXJnZXQ9KiBlbmFibGUgNjQtYml0IG1vZGUgb24gdGhlIFN1biBjb21waWxlcgotICAgICAgIyArREEqLCArREQqIGVuYWJsZSA2NC1iaXQgbW9kZSBvbiB0aGUgSFAgY29tcGlsZXIKLSAgICAgICMgLXEqIHBhc3MgdGhyb3VnaCBjb21waWxlciBhcmdzIGZvciB0aGUgSUJNIGNvbXBpbGVyCi0gICAgICAjIC1tKiwgLXRbNDVdKiwgLXR4c2NhbGUqIHBhc3MgdGhyb3VnaCBhcmNoaXRlY3R1cmUtc3BlY2lmaWMKLSAgICAgICMgY29tcGlsZXIgYXJncyBmb3IgR0NDCi0gICAgICAjIC1GL3BhdGggZ2l2ZXMgcGF0aCB0byB1bmluc3RhbGxlZCBmcmFtZXdvcmtzLCBnY2Mgb24gZGFyd2luCi0gICAgICAjIC1wLCAtcGcsIC0tY292ZXJhZ2UsIC1mcHJvZmlsZS0qIHBhc3MgdGhyb3VnaCBwcm9maWxpbmcgZmxhZyBmb3IgR0NDCi0gICAgICAjIEBmaWxlIEdDQyByZXNwb25zZSBmaWxlcworICAgICAgIyBGbGFncyB0byBiZSBwYXNzZWQgdGhyb3VnaCB1bmNoYW5nZWQsIHdpdGggcmF0aW9uYWxlOgorICAgICAgIyAtNjQsIC1taXBzWzAtOV0gICAgICBlbmFibGUgNjQtYml0IG1vZGUgZm9yIHRoZSBTR0kgY29tcGlsZXIKKyAgICAgICMgLXJbMC05XVswLTldKiAgICAgICAgc3BlY2lmeSBwcm9jZXNzb3IgZm9yIHRoZSBTR0kgY29tcGlsZXIKKyAgICAgICMgLXhhcmNoPSosIC14dGFyZ2V0PSogZW5hYmxlIDY0LWJpdCBtb2RlIGZvciB0aGUgU3VuIGNvbXBpbGVyCisgICAgICAjICtEQSosICtERCogICAgICAgICAgIGVuYWJsZSA2NC1iaXQgbW9kZSBmb3IgdGhlIEhQIGNvbXBpbGVyCisgICAgICAjIC1xKiAgICAgICAgICAgICAgICAgIGNvbXBpbGVyIGFyZ3MgZm9yIHRoZSBJQk0gY29tcGlsZXIKKyAgICAgICMgLW0qLCAtdFs0NV0qLCAtdHhzY2FsZSogYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGZsYWdzIGZvciBHQ0MKKyAgICAgICMgLUYvcGF0aCAgICAgICAgICAgICAgcGF0aCB0byB1bmluc3RhbGxlZCBmcmFtZXdvcmtzLCBnY2Mgb24gZGFyd2luCisgICAgICAjIC1wLCAtcGcsIC0tY292ZXJhZ2UsIC1mcHJvZmlsZS0qICBwcm9maWxpbmcgZmxhZ3MgZm9yIEdDQworICAgICAgIyAtZnN0YWNrLXByb3RlY3RvciogICBzdGFjayBwcm90ZWN0b3IgZmxhZ3MgZm9yIEdDQworICAgICAgIyBAZmlsZSAgICAgICAgICAgICAgICBHQ0MgcmVzcG9uc2UgZmlsZXMKKyAgICAgICMgLXRwPSogICAgICAgICAgICAgICAgUG9ydGxhbmQgcGdjYyB0YXJnZXQgcHJvY2Vzc29yIHNlbGVjdGlvbgorICAgICAgIyAtLXN5c3Jvb3Q9KiAgICAgICAgICBmb3Igc3lzcm9vdCBzdXBwb3J0CisgICAgICAjIC1PKiwgLWZsdG8qLCAtZndob3ByKiwgLWZ1c2UtbGlua2VyLXBsdWdpbiBHQ0MgbGluay10aW1lIG9wdGltaXphdGlvbgogICAgICAgLTY0fC1taXBzWzAtOV18LXJbMC05XVswLTldKnwteGFyY2g9KnwteHRhcmdldD0qfCtEQSp8K0REKnwtcSp8LW0qfCBcCi0gICAgICAtdFs0NV0qfC10eHNjYWxlKnwtcHwtcGd8LS1jb3ZlcmFnZXwtZnByb2ZpbGUtKnwtRip8QCopCisgICAgICAtdFs0NV0qfC10eHNjYWxlKnwtcHwtcGd8LS1jb3ZlcmFnZXwtZnByb2ZpbGUtKnwtRip8QCp8LXRwPSp8LS1zeXNyb290PSp8IFwKKyAgICAgIC1PKnwtZmx0byp8LWZ3aG9wcip8LWZ1c2UtbGlua2VyLXBsdWdpbnwtZnN0YWNrLXByb3RlY3RvciopCiAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCiAJYXJnPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCiAgICAgICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCiAgICAgICAgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgotICAgICAgICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCisgICAgICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVyX2ZsYWdzICIgJGFyZyIKICAgICAgICAgY29udGludWUKICAgICAgICAgOzsKIApAQCAtNDc4Miw3ICs1ODU4LDcgQEAKIAogICAgICAgKi4kb2JqZXh0KQogCSMgQSBzdGFuZGFyZCBvYmplY3QuCi0Jb2Jqcz0iJG9ianMgJGFyZyIKKwlmdW5jX2FwcGVuZCBvYmpzICIgJGFyZyIKIAk7OwogCiAgICAgICAqLmxvKQpAQCAtNDgxMyw3ICs1ODg5LDcgQEAKIAogCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVuCiAJICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiA9IHllczsgdGhlbgotCQlkbGZpbGVzPSIkZGxmaWxlcyAkcGljX29iamVjdCIKKwkJZnVuY19hcHBlbmQgZGxmaWxlcyAiICRwaWNfb2JqZWN0IgogCQlwcmV2PQogCQljb250aW51ZQogCSAgICAgIGVsc2UKQEAgLTQ4MjUsNyArNTkwMSw3IEBACiAJICAgICMgQ0hFQ0sgTUU6ICBJIHRoaW5rIEkgYnVzdGVkIHRoaXMuICAtT3NzYW1hCiAJICAgIGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KIAkgICAgICAjIFByZWxvYWQgdGhlIG9sZC1zdHlsZSBvYmplY3QuCi0JICAgICAgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJHBpY19vYmplY3QiCisJICAgICAgZnVuY19hcHBlbmQgZGxwcmVmaWxlcyAiICRwaWNfb2JqZWN0IgogCSAgICAgIHByZXY9CiAJICAgIGZpCiAKQEAgLTQ4NzAsMjQgKzU5NDYsMjUgQEAKIAogICAgICAgKi4kbGliZXh0KQogCSMgQW4gYXJjaGl2ZS4KLQlkZXBsaWJzPSIkZGVwbGlicyAkYXJnIgotCW9sZF9kZXBsaWJzPSIkb2xkX2RlcGxpYnMgJGFyZyIKKwlmdW5jX2FwcGVuZCBkZXBsaWJzICIgJGFyZyIKKwlmdW5jX2FwcGVuZCBvbGRfZGVwbGlicyAiICRhcmciCiAJY29udGludWUKIAk7OwogCiAgICAgICAqLmxhKQogCSMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgbGlicmFyeS4KIAorCWZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkYXJnIgogCWlmIHRlc3QgIiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4KIAkgICMgVGhpcyBsaWJyYXJ5IHdhcyBzcGVjaWZpZWQgd2l0aCAtZGxvcGVuLgotCSAgZGxmaWxlcz0iJGRsZmlsZXMgJGFyZyIKKwkgIGZ1bmNfYXBwZW5kIGRsZmlsZXMgIiAkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0IgogCSAgcHJldj0KIAllbGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KIAkgICMgVGhlIGxpYnJhcnkgd2FzIHNwZWNpZmllZCB3aXRoIC1kbHByZW9wZW4uCi0JICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkYXJnIgorCSAgZnVuY19hcHBlbmQgZGxwcmVmaWxlcyAiICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQiCiAJICBwcmV2PQogCWVsc2UKLQkgIGRlcGxpYnM9IiRkZXBsaWJzICRhcmciCisJICBmdW5jX2FwcGVuZCBkZXBsaWJzICIgJGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdCIKIAlmaQogCWNvbnRpbnVlCiAJOzsKQEAgLTQ5MjUsNyArNjAwMiw3IEBACiAKICAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KICAgICAgICMgZ2V0IHRoZSBkaXJlY3RvcmllcyBsaXN0ZWQgaW4gJHNobGlicGF0aF92YXIKLSAgICAgIGV2YWwgc2hsaWJfc2VhcmNoX3BhdGg9XGBcJEVDSE8gXCJYXCR7JHNobGlicGF0aF92YXJ9XCIgXHwgXCRYc2VkIC1lIFwncy86LyAvZ1wnXGAKKyAgICAgIGV2YWwgc2hsaWJfc2VhcmNoX3BhdGg9XGBcJEVDSE8gXCJcJHskc2hsaWJwYXRoX3Zhcn1cIiBcfCBcJFNFRCBcJ3MvOi8gL2dcJ1xgCiAgICAgZWxzZQogICAgICAgc2hsaWJfc2VhcmNoX3BhdGg9CiAgICAgZmkKQEAgLTQ5MzQsNiArNjAxMSw4IEBACiAKICAgICBmdW5jX2Rpcm5hbWUgIiRvdXRwdXQiICIvIiAiIgogICAgIG91dHB1dF9vYmpkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0JG9iamRpciIKKyAgICBmdW5jX3RvX3Rvb2xfZmlsZSAiJG91dHB1dF9vYmpkaXIvIgorICAgIHRvb2xfb3V0cHV0X29iamRpcj0kZnVuY190b190b29sX2ZpbGVfcmVzdWx0CiAgICAgIyBDcmVhdGUgdGhlIG9iamVjdCBkaXJlY3RvcnkuCiAgICAgZnVuY19ta2Rpcl9wICIkb3V0cHV0X29iamRpciIKIApAQCAtNDk1NCwxMiArNjAzMywxMiBAQAogICAgICMgRmluZCBhbGwgaW50ZXJkZXBlbmRlbnQgZGVwbGlicyBieSBzZWFyY2hpbmcgZm9yIGxpYnJhcmllcwogICAgICMgdGhhdCBhcmUgbGlua2VkIG1vcmUgdGhhbiBvbmNlIChlLmcuIC1sYSAtbGIgLWxhKQogICAgIGZvciBkZXBsaWIgaW4gJGRlcGxpYnM7IGRvCi0gICAgICBpZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgorICAgICAgaWYgJG9wdF9wcmVzZXJ2ZV9kdXBfZGVwcyA7IHRoZW4KIAljYXNlICIkbGlicyAiIGluCi0JKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkZGVwbGliIiA7OworCSoiICRkZXBsaWIgIiopIGZ1bmNfYXBwZW5kIHNwZWNpYWxkZXBsaWJzICIgJGRlcGxpYiIgOzsKIAllc2FjCiAgICAgICBmaQotICAgICAgbGlicz0iJGxpYnMgJGRlcGxpYiIKKyAgICAgIGZ1bmNfYXBwZW5kIGxpYnMgIiAkZGVwbGliIgogICAgIGRvbmUKIAogICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRoZW4KQEAgLTQ5NzIsOSArNjA1MSw5IEBACiAgICAgICBpZiAkb3B0X2R1cGxpY2F0ZV9jb21waWxlcl9nZW5lcmF0ZWRfZGVwczsgdGhlbgogCWZvciBwcmVfcG9zdF9kZXAgaW4gJHByZWRlcHMgJHBvc3RkZXBzOyBkbwogCSAgY2FzZSAiJHByZV9wb3N0X2RlcHMgIiBpbgotCSAgKiIgJHByZV9wb3N0X2RlcCAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkcHJlX3Bvc3RfZGVwcyIgOzsKKwkgICoiICRwcmVfcG9zdF9kZXAgIiopIGZ1bmNfYXBwZW5kIHNwZWNpYWxkZXBsaWJzICIgJHByZV9wb3N0X2RlcHMiIDs7CiAJICBlc2FjCi0JICBwcmVfcG9zdF9kZXBzPSIkcHJlX3Bvc3RfZGVwcyAkcHJlX3Bvc3RfZGVwIgorCSAgZnVuY19hcHBlbmQgcHJlX3Bvc3RfZGVwcyAiICRwcmVfcG9zdF9kZXAiCiAJZG9uZQogICAgICAgZmkKICAgICAgIHByZV9wb3N0X2RlcHM9CkBAIC01MDQxLDE3ICs2MTIwLDE5IEBACiAJZm9yIGxpYiBpbiAkZGxwcmVmaWxlczsgZG8KIAkgICMgSWdub3JlIG5vbi1saWJ0b29sLWxpYnMKIAkgIGRlcGVuZGVuY3lfbGlicz0KKwkgIGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkbGliIgogCSAgY2FzZSAkbGliIGluCi0JICAqLmxhKQlmdW5jX3NvdXJjZSAiJGxpYiIgOzsKKwkgICoubGEpCWZ1bmNfc291cmNlICIkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0IiA7OwogCSAgZXNhYwogCiAJICAjIENvbGxlY3QgcHJlb3BlbmVkIGxpYnRvb2wgZGVwbGlicywgZXhjZXB0IGFueSB0aGlzIGxpYnJhcnkKIAkgICMgaGFzIGRlY2xhcmVkIGFzIHdlYWsgbGlicwogCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwotICAgICAgICAgICAgZGVwbGliX2Jhc2U9YCRFQ0hPICJYJGRlcGxpYiIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAKKwkgICAgZnVuY19iYXNlbmFtZSAiJGRlcGxpYiIKKyAgICAgICAgICAgIGRlcGxpYl9iYXNlPSRmdW5jX2Jhc2VuYW1lX3Jlc3VsdAogCSAgICBjYXNlICIgJHdlYWtfbGlicyAiIGluCiAJICAgICoiICRkZXBsaWJfYmFzZSAiKikgOzsKLQkgICAgKikgZGVwbGlicz0iJGRlcGxpYnMgJGRlcGxpYiIgOzsKKwkgICAgKikgZnVuY19hcHBlbmQgZGVwbGlicyAiICRkZXBsaWIiIDs7CiAJICAgIGVzYWMKIAkgIGRvbmUKIAlkb25lCkBAIC01MDcyLDExICs2MTUzLDExIEBACiAJICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgogCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgogCSAgZWxzZQotCSAgICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRkZXBsaWIiCisJICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVyX2ZsYWdzICIgJGRlcGxpYiIKIAkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiA7IHRoZW4KIAkJY2FzZSAiJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICIgaW4KIAkJICAgICoiICRkZXBsaWIgIiopIDs7Ci0JCSAgICAqICkgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkZGVwbGliIiA7OworCQkgICAgKiApIGZ1bmNfYXBwZW5kIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICIgJGRlcGxpYiIgOzsKIAkJZXNhYwogCSAgICBmaQogCSAgZmkKQEAgLTUxNjEsNyArNjI0Miw3IEBACiAJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWIgOyB0aGVuCiAJCWNhc2UgIiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCiAJCSAgICAqIiAkZGVwbGliICIqKSA7OwotCQkgICAgKiApIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGRlcGxpYiIgOzsKKwkJICAgICogKSBmdW5jX2FwcGVuZCBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiICRkZXBsaWIiIDs7CiAJCWVzYWMKIAkgICAgZmkKIAkgIGZpCkBAIC01MTc0LDcgKzYyNTUsOCBAQAogCSAgICB0ZXN0ICIkcGFzcyIgPSBjb252ICYmIGNvbnRpbnVlCiAJICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgogCSAgICBmdW5jX3N0cmlwbmFtZSAnLUwnICcnICIkZGVwbGliIgotCSAgICBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIKKwkgICAgZnVuY19yZXNvbHZlX3N5c3Jvb3QgIiRmdW5jX3N0cmlwbmFtZV9yZXN1bHQiCisJICAgIGZ1bmNfYXBwZW5kIG5ld2xpYl9zZWFyY2hfcGF0aCAiICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQiCiAJICAgIDs7CiAJICBwcm9nKQogCSAgICBpZiB0ZXN0ICIkcGFzcyIgPSBjb252OyB0aGVuCkBAIC01MTg4LDcgKzYyNzAsOCBAQAogCSAgICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCiAJICAgIGZpCiAJICAgIGZ1bmNfc3RyaXBuYW1lICctTCcgJycgIiRkZXBsaWIiCi0JICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorCSAgICBmdW5jX3Jlc29sdmVfc3lzcm9vdCAiJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIKKwkgICAgZnVuY19hcHBlbmQgbmV3bGliX3NlYXJjaF9wYXRoICIgJGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdCIKIAkgICAgOzsKIAkgICopCiAJICAgIGZ1bmNfd2FybmluZyAiXGAtTCcgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMvb2JqZWN0cyIKQEAgLTUxOTksMTcgKzYyODIsMjEgQEAKIAktUiopCiAJICBpZiB0ZXN0ICIkcGFzcyIgPSBsaW5rOyB0aGVuCiAJICAgIGZ1bmNfc3RyaXBuYW1lICctUicgJycgIiRkZXBsaWIiCi0JICAgIGRpcj0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisJICAgIGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorCSAgICBkaXI9JGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdAogCSAgICAjIE1ha2Ugc3VyZSB0aGUgeHJwYXRoIGNvbnRhaW5zIG9ubHkgdW5pcXVlIGRpcmVjdG9yaWVzLgogCSAgICBjYXNlICIkeHJwYXRoICIgaW4KIAkgICAgKiIgJGRpciAiKikgOzsKLQkgICAgKikgeHJwYXRoPSIkeHJwYXRoICRkaXIiIDs7CisJICAgICopIGZ1bmNfYXBwZW5kIHhycGF0aCAiICRkaXIiIDs7CiAJICAgIGVzYWMKIAkgIGZpCiAJICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgogCSAgY29udGludWUKIAkgIDs7Ci0JKi5sYSkgbGliPSIkZGVwbGliIiA7OworCSoubGEpCisJICBmdW5jX3Jlc29sdmVfc3lzcm9vdCAiJGRlcGxpYiIKKwkgIGxpYj0kZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0CisJICA7OwogCSouJGxpYmV4dCkKIAkgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KIAkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKQEAgLTUyMjcsNyArNjMxNCw3IEBACiAJCW1hdGNoX3BhdHRlcm4qKQogCQkgIHNldCBkdW1teSAkZGVwbGlic19jaGVja19tZXRob2Q7IHNoaWZ0CiAJCSAgbWF0Y2hfcGF0dGVybl9yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIkMSBcKC4qXCkiYAotCQkgIGlmIGV2YWwgIlwkRUNITyBcIlgkZGVwbGliXCIiIDI+L2Rldi9udWxsIHwgJFhzZWQgLWUgMTBxIFwKKwkJICBpZiBldmFsICJcJEVDSE8gXCIkZGVwbGliXCIiIDI+L2Rldi9udWxsIHwgJFNFRCAxMHEgXAogCQkgICAgfCAkRUdSRVAgIiRtYXRjaF9wYXR0ZXJuX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgogCQkgICAgdmFsaWRfYV9saWI9eWVzCiAJCSAgZmkKQEAgLTUyMzcsMTUgKzYzMjQsMTUgQEAKIAkJOzsKIAkgICAgICBlc2FjCiAJICAgICAgaWYgdGVzdCAiJHZhbGlkX2FfbGliIiAhPSB5ZXM7IHRoZW4KLQkJJEVDSE8KKwkJZWNobwogCQkkRUNITyAiKioqIFdhcm5pbmc6IFRyeWluZyB0byBsaW5rIHdpdGggc3RhdGljIGxpYiBhcmNoaXZlICRkZXBsaWIuIgotCQkkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKLQkJJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0JCSRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCi0JCSRFQ0hPICIqKiogYmVjYXVzZSB0aGUgZmlsZSBleHRlbnNpb25zIC4kbGliZXh0IG9mIHRoaXMgYXJndW1lbnQgbWFrZXMgbWUgYmVsaWV2ZSIKLQkJJEVDSE8gIioqKiB0aGF0IGl0IGlzIGp1c3QgYSBzdGF0aWMgYXJjaGl2ZSB0aGF0IEkgc2hvdWxkIG5vdCB1c2UgaGVyZS4iCisJCWVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCisJCWVjaG8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCisJCWVjaG8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSIKKwkJZWNobyAiKioqIGJlY2F1c2UgdGhlIGZpbGUgZXh0ZW5zaW9ucyAuJGxpYmV4dCBvZiB0aGlzIGFyZ3VtZW50IG1ha2VzIG1lIGJlbGlldmUiCisJCWVjaG8gIioqKiB0aGF0IGl0IGlzIGp1c3QgYSBzdGF0aWMgYXJjaGl2ZSB0aGF0IEkgc2hvdWxkIG5vdCB1c2UgaGVyZS4iCiAJICAgICAgZWxzZQotCQkkRUNITworCQllY2hvCiAJCSRFQ0hPICIqKiogV2FybmluZzogTGlua2luZyB0aGUgc2hhcmVkIGxpYnJhcnkgJG91dHB1dCBhZ2FpbnN0IHRoZSIKIAkJJEVDSE8gIioqKiBzdGF0aWMgbGlicmFyeSAkZGVwbGliIGlzIG5vdCBwb3J0YWJsZSEiCiAJCWRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCkBAIC01MjcyLDExICs2MzU5LDExIEBACiAJICAgIGlmIHRlc3QgIiRwYXNzIiA9IGRscHJlb3BlbiB8fCB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiICE9IHllcyB8fCB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IG5vOyB0aGVuCiAJICAgICAgIyBJZiB0aGVyZSBpcyBubyBkbG9wZW4gc3VwcG9ydCBvciB3ZSdyZSBsaW5raW5nIHN0YXRpY2FsbHksCiAJICAgICAgIyB3ZSBuZWVkIHRvIHByZWxvYWQuCi0JICAgICAgbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGRlcGxpYiIKKwkgICAgICBmdW5jX2FwcGVuZCBuZXdkbHByZWZpbGVzICIgJGRlcGxpYiIKIAkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKIAkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgogCSAgICBlbHNlCi0JICAgICAgbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGRlcGxpYiIKKwkgICAgICBmdW5jX2FwcGVuZCBuZXdkbGZpbGVzICIgJGRlcGxpYiIKIAkgICAgZmkKIAkgIGZpCiAJICBjb250aW51ZQpAQCAtNTMxOCwyMCArNjQwNSwyMCBAQAogCiAJIyBDb252ZXJ0ICItZnJhbWV3b3JrIGZvbyIgdG8gImZvby5sdGZyYW1ld29yayIKIAlpZiB0ZXN0IC1uICIkaW5oZXJpdGVkX2xpbmtlcl9mbGFncyI7IHRoZW4KLQkgIHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPWAkRUNITyAiWCRpbmhlcml0ZWRfbGlua2VyX2ZsYWdzIiB8ICRYc2VkIC1lICdzLy1mcmFtZXdvcmsgXChbXiAkXSpcKS9cMS5sdGZyYW1ld29yay9nJ2AKKwkgIHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPWAkRUNITyAiJGluaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFNFRCAncy8tZnJhbWV3b3JrIFwoW14gJF0qXCkvXDEubHRmcmFtZXdvcmsvZydgCiAJICBmb3IgdG1wX2luaGVyaXRlZF9saW5rZXJfZmxhZyBpbiAkdG1wX2luaGVyaXRlZF9saW5rZXJfZmxhZ3M7IGRvCiAJICAgIGNhc2UgIiAkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiBpbgogCSAgICAgICoiICR0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnICIqKSA7OwotCSAgICAgICopIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWciOzsKKwkgICAgICAqKSBmdW5jX2FwcGVuZCBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiICR0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnIjs7CiAJICAgIGVzYWMKIAkgIGRvbmUKIAlmaQotCWRlcGVuZGVuY3lfbGlicz1gJEVDSE8gIlggJGRlcGVuZGVuY3lfbGlicyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKwlkZXBlbmRlbmN5X2xpYnM9YCRFQ0hPICIgJGRlcGVuZGVuY3lfbGlicyIgfCAkU0VEICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAogCWlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAibGliLGxpbmsiIHx8CiAJICAgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLHNjYW4iIHx8CiAJICAgeyB0ZXN0ICIkbGlua21vZGUiICE9IHByb2cgJiYgdGVzdCAiJGxpbmttb2RlIiAhPSBsaWI7IH07IHRoZW4KLQkgIHRlc3QgLW4gIiRkbG9wZW4iICYmIGRsZmlsZXM9IiRkbGZpbGVzICRkbG9wZW4iCi0JICB0ZXN0IC1uICIkZGxwcmVvcGVuIiAmJiBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkZGxwcmVvcGVuIgorCSAgdGVzdCAtbiAiJGRsb3BlbiIgJiYgZnVuY19hcHBlbmQgZGxmaWxlcyAiICRkbG9wZW4iCisJICB0ZXN0IC1uICIkZGxwcmVvcGVuIiAmJiBmdW5jX2FwcGVuZCBkbHByZWZpbGVzICIgJGRscHJlb3BlbiIKIAlmaQogCiAJaWYgdGVzdCAiJHBhc3MiID0gY29udjsgdGhlbgpAQCAtNTM0MiwyMCArNjQyOSwyMCBAQAogCSAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2YgbGluayBsaWJyYXJ5IGZvciBcYCRsaWInIgogCSAgICBmaQogCSAgICAjIEl0IGlzIGEgbGlidG9vbCBjb252ZW5pZW5jZSBsaWJyYXJ5LCBzbyBhZGQgaW4gaXRzIG9iamVjdHMuCi0JICAgIGNvbnZlbmllbmNlPSIkY29udmVuaWVuY2UgJGxhZGlyLyRvYmpkaXIvJG9sZF9saWJyYXJ5IgotCSAgICBvbGRfY29udmVuaWVuY2U9IiRvbGRfY29udmVuaWVuY2UgJGxhZGlyLyRvYmpkaXIvJG9sZF9saWJyYXJ5IgorCSAgICBmdW5jX2FwcGVuZCBjb252ZW5pZW5jZSAiICRsYWRpci8kb2JqZGlyLyRvbGRfbGlicmFyeSIKKwkgICAgZnVuY19hcHBlbmQgb2xkX2NvbnZlbmllbmNlICIgJGxhZGlyLyRvYmpkaXIvJG9sZF9saWJyYXJ5IgogCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUiICE9IHByb2cgJiYgdGVzdCAiJGxpbmttb2RlIiAhPSBsaWI7IHRoZW4KIAkgICAgZnVuY19mYXRhbF9lcnJvciAiXGAkbGliJyBpcyBub3QgYSBjb252ZW5pZW5jZSBsaWJyYXJ5IgogCSAgZmkKIAkgIHRtcF9saWJzPQogCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwogCSAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgotCSAgICBpZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgorCSAgICBpZiAkb3B0X3ByZXNlcnZlX2R1cF9kZXBzIDsgdGhlbgogCSAgICAgIGNhc2UgIiR0bXBfbGlicyAiIGluCi0JICAgICAgKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkZGVwbGliIiA7OworCSAgICAgICoiICRkZXBsaWIgIiopIGZ1bmNfYXBwZW5kIHNwZWNpYWxkZXBsaWJzICIgJGRlcGxpYiIgOzsKIAkgICAgICBlc2FjCiAJICAgIGZpCi0JICAgIHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIKKwkgICAgZnVuY19hcHBlbmQgdG1wX2xpYnMgIiAkZGVwbGliIgogCSAgZG9uZQogCSAgY29udGludWUKIAlmaSAjICRwYXNzID0gY29udgpAQCAtNTM2Myw5ICs2NDUwLDE1IEBACiAKIAkjIEdldCB0aGUgbmFtZSBvZiB0aGUgbGlicmFyeSB3ZSBsaW5rIGFnYWluc3QuCiAJbGlua2xpYj0KLQlmb3IgbCBpbiAkb2xkX2xpYnJhcnkgJGxpYnJhcnlfbmFtZXM7IGRvCi0JICBsaW5rbGliPSIkbCIKLQlkb25lCisJaWYgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IiAmJgorCSAgIHsgdGVzdCAiJHByZWZlcl9zdGF0aWNfbGlicyIgPSB5ZXMgfHwKKwkgICAgIHRlc3QgIiRwcmVmZXJfc3RhdGljX2xpYnMsJGluc3RhbGxlZCIgPSAiYnVpbHQsbm8iOyB9OyB0aGVuCisJICBsaW5rbGliPSRvbGRfbGlicmFyeQorCWVsc2UKKwkgIGZvciBsIGluICRvbGRfbGlicmFyeSAkbGlicmFyeV9uYW1lczsgZG8KKwkgICAgbGlua2xpYj0iJGwiCisJICBkb25lCisJZmkKIAlpZiB0ZXN0IC16ICIkbGlua2xpYiI7IHRoZW4KIAkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2YgbGluayBsaWJyYXJ5IGZvciBcYCRsaWInIgogCWZpCkBAIC01MzgyLDkgKzY0NzUsOSBAQAogCSAgICAjIHN0YXRpY2FsbHksIHdlIG5lZWQgdG8gcHJlbG9hZC4gIFdlIGFsc28gbmVlZCB0byBwcmVsb2FkIGFueQogCSAgICAjIGRlcGVuZGVudCBsaWJyYXJpZXMgc28gbGlibHRkbCdzIGRlcGxpYiBwcmVsb2FkZXIgZG9lc24ndAogCSAgICAjIGJvbWIgb3V0IGluIHRoZSBsb2FkIGRlcGxpYnMgcGhhc2UuCi0JICAgIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRsaWIgJGRlcGVuZGVuY3lfbGlicyIKKwkgICAgZnVuY19hcHBlbmQgZGxwcmVmaWxlcyAiICRsaWIgJGRlcGVuZGVuY3lfbGlicyIKIAkgIGVsc2UKLQkgICAgbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGxpYiIKKwkgICAgZnVuY19hcHBlbmQgbmV3ZGxmaWxlcyAiICRsaWIiCiAJICBmaQogCSAgY29udGludWUKIAlmaSAjICRwYXNzID0gZGxvcGVuCkBAIC01NDA2LDE0ICs2NDk5LDE0IEBACiAKIAkjIEZpbmQgdGhlIHJlbGV2YW50IG9iamVjdCBkaXJlY3RvcnkgYW5kIGxpYnJhcnkgbmFtZS4KIAlpZiB0ZXN0ICJYJGluc3RhbGxlZCIgPSBYeWVzOyB0aGVuCi0JICBpZiB0ZXN0ICEgLWYgIiRsaWJkaXIvJGxpbmtsaWIiICYmIHRlc3QgLWYgIiRhYnNfbGFkaXIvJGxpbmtsaWIiOyB0aGVuCisJICBpZiB0ZXN0ICEgLWYgIiRsdF9zeXNyb290JGxpYmRpci8kbGlua2xpYiIgJiYgdGVzdCAtZiAiJGFic19sYWRpci8kbGlua2xpYiI7IHRoZW4KIAkgICAgZnVuY193YXJuaW5nICJsaWJyYXJ5IFxgJGxpYicgd2FzIG1vdmVkLiIKIAkgICAgZGlyPSIkbGFkaXIiCiAJICAgIGFic2Rpcj0iJGFic19sYWRpciIKIAkgICAgbGliZGlyPSIkYWJzX2xhZGlyIgogCSAgZWxzZQotCSAgICBkaXI9IiRsaWJkaXIiCi0JICAgIGFic2Rpcj0iJGxpYmRpciIKKwkgICAgZGlyPSIkbHRfc3lzcm9vdCRsaWJkaXIiCisJICAgIGFic2Rpcj0iJGx0X3N5c3Jvb3QkbGliZGlyIgogCSAgZmkKIAkgIHRlc3QgIlgkaGFyZGNvZGVfYXV0b21hdGljIiA9IFh5ZXMgJiYgYXZvaWR0ZW1wcnBhdGg9eWVzCiAJZWxzZQpAQCAtNTQyMSwxMiArNjUxNCwxMiBAQAogCSAgICBkaXI9IiRsYWRpciIKIAkgICAgYWJzZGlyPSIkYWJzX2xhZGlyIgogCSAgICAjIFJlbW92ZSB0aGlzIHNlYXJjaCBwYXRoIGxhdGVyCi0JICAgIG5vdGluc3RfcGF0aD0iJG5vdGluc3RfcGF0aCAkYWJzX2xhZGlyIgorCSAgICBmdW5jX2FwcGVuZCBub3RpbnN0X3BhdGggIiAkYWJzX2xhZGlyIgogCSAgZWxzZQogCSAgICBkaXI9IiRsYWRpci8kb2JqZGlyIgogCSAgICBhYnNkaXI9IiRhYnNfbGFkaXIvJG9iamRpciIKIAkgICAgIyBSZW1vdmUgdGhpcyBzZWFyY2ggcGF0aCBsYXRlcgotCSAgICBub3RpbnN0X3BhdGg9IiRub3RpbnN0X3BhdGggJGFic19sYWRpciIKKwkgICAgZnVuY19hcHBlbmQgbm90aW5zdF9wYXRoICIgJGFic19sYWRpciIKIAkgIGZpCiAJZmkgIyAkaW5zdGFsbGVkID0geWVzCiAJZnVuY19zdHJpcG5hbWUgJ2xpYicgJy5sYScgIiRsYW5hbWUiCkBAIC01NDM3LDIwICs2NTMwLDQ2IEBACiAJICBpZiB0ZXN0IC16ICIkbGliZGlyIiAmJiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgogCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJvbmx5IGxpYnJhcmllcyBtYXkgLWRscHJlb3BlbiBhIGNvbnZlbmllbmNlIGxpYnJhcnk6IFxgJGxpYiciCiAJICBmaQotCSAgIyBQcmVmZXIgdXNpbmcgYSBzdGF0aWMgbGlicmFyeSAoc28gdGhhdCBubyBzaWxseSBfRFlOQU1JQyBzeW1ib2xzCi0JICAjIGFyZSByZXF1aXJlZCB0byBsaW5rKS4KLQkgIGlmIHRlc3QgLW4gIiRvbGRfbGlicmFyeSI7IHRoZW4KLQkgICAgbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGRpci8kb2xkX2xpYnJhcnkiCi0JICAgICMgS2VlcCBhIGxpc3Qgb2YgcHJlb3BlbmVkIGNvbnZlbmllbmNlIGxpYnJhcmllcyB0byBjaGVjawotCSAgICAjIHRoYXQgdGhleSBhcmUgYmVpbmcgdXNlZCBjb3JyZWN0bHkgaW4gdGhlIGxpbmsgcGFzcy4KLQkgICAgdGVzdCAteiAiJGxpYmRpciIgJiYgXAotCQlkbHByZWNvbnZlbmllbmNlbGlicz0iJGRscHJlY29udmVuaWVuY2VsaWJzICRkaXIvJG9sZF9saWJyYXJ5IgotCSAgIyBPdGhlcndpc2UsIHVzZSB0aGUgZGxuYW1lLCBzbyB0aGF0IGx0X2Rsb3BlbiBmaW5kcyBpdC4KLQkgIGVsaWYgdGVzdCAtbiAiJGRsbmFtZSI7IHRoZW4KLQkgICAgbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGRpci8kZGxuYW1lIgotCSAgZWxzZQotCSAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkZGlyLyRsaW5rbGliIgotCSAgZmkKKwkgIGNhc2UgIiRob3N0IiBpbgorCSAgICAjIHNwZWNpYWwgaGFuZGxpbmcgZm9yIHBsYXRmb3JtcyB3aXRoIFBFLURMTHMuCisJICAgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQorCSAgICAgICMgTGlua2VyIHdpbGwgYXV0b21hdGljYWxseSBsaW5rIGFnYWluc3Qgc2hhcmVkIGxpYnJhcnkgaWYgYm90aAorCSAgICAgICMgc3RhdGljIGFuZCBzaGFyZWQgYXJlIHByZXNlbnQuICBUaGVyZWZvcmUsIGVuc3VyZSB3ZSBleHRyYWN0CisJICAgICAgIyBzeW1ib2xzIGZyb20gdGhlIGltcG9ydCBsaWJyYXJ5IGlmIGEgc2hhcmVkIGxpYnJhcnkgaXMgcHJlc2VudAorCSAgICAgICMgKG90aGVyd2lzZSwgdGhlIGRsb3BlbiBtb2R1bGUgbmFtZSB3aWxsIGJlIGluY29ycmVjdCkuICBXZSBkbworCSAgICAgICMgdGhpcyBieSBwdXR0aW5nIHRoZSBpbXBvcnQgbGlicmFyeSBuYW1lIGludG8gJG5ld2RscHJlZmlsZXMuCisJICAgICAgIyBXZSByZWNvdmVyIHRoZSBkbG9wZW4gbW9kdWxlIG5hbWUgYnkgJ3NhdmluZycgdGhlIGxhIGZpbGUKKwkgICAgICAjIG5hbWUgaW4gYSBzcGVjaWFsIHB1cnBvc2UgdmFyaWFibGUsIGFuZCAobGF0ZXIpIGV4dHJhY3RpbmcgdGhlCisJICAgICAgIyBkbG5hbWUgZnJvbSB0aGUgbGEgZmlsZS4KKwkgICAgICBpZiB0ZXN0IC1uICIkZGxuYW1lIjsgdGhlbgorCSAgICAgICAgZnVuY190cl9zaCAiJGRpci8kbGlua2xpYiIKKwkgICAgICAgIGV2YWwgImxpYmZpbGVfJGZ1bmNfdHJfc2hfcmVzdWx0PVwkYWJzX2xhZGlyL1wkbGFuYW1lIgorCSAgICAgICAgZnVuY19hcHBlbmQgbmV3ZGxwcmVmaWxlcyAiICRkaXIvJGxpbmtsaWIiCisJICAgICAgZWxzZQorCSAgICAgICAgZnVuY19hcHBlbmQgbmV3ZGxwcmVmaWxlcyAiICRkaXIvJG9sZF9saWJyYXJ5IgorCSAgICAgICAgIyBLZWVwIGEgbGlzdCBvZiBwcmVvcGVuZWQgY29udmVuaWVuY2UgbGlicmFyaWVzIHRvIGNoZWNrCisJICAgICAgICAjIHRoYXQgdGhleSBhcmUgYmVpbmcgdXNlZCBjb3JyZWN0bHkgaW4gdGhlIGxpbmsgcGFzcy4KKwkgICAgICAgIHRlc3QgLXogIiRsaWJkaXIiICYmIFwKKwkgICAgICAgICAgZnVuY19hcHBlbmQgZGxwcmVjb252ZW5pZW5jZWxpYnMgIiAkZGlyLyRvbGRfbGlicmFyeSIKKwkgICAgICBmaQorCSAgICA7OworCSAgICAqICkKKwkgICAgICAjIFByZWZlciB1c2luZyBhIHN0YXRpYyBsaWJyYXJ5IChzbyB0aGF0IG5vIHNpbGx5IF9EWU5BTUlDIHN5bWJvbHMKKwkgICAgICAjIGFyZSByZXF1aXJlZCB0byBsaW5rKS4KKwkgICAgICBpZiB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiOyB0aGVuCisJICAgICAgICBmdW5jX2FwcGVuZCBuZXdkbHByZWZpbGVzICIgJGRpci8kb2xkX2xpYnJhcnkiCisJICAgICAgICAjIEtlZXAgYSBsaXN0IG9mIHByZW9wZW5lZCBjb252ZW5pZW5jZSBsaWJyYXJpZXMgdG8gY2hlY2sKKwkgICAgICAgICMgdGhhdCB0aGV5IGFyZSBiZWluZyB1c2VkIGNvcnJlY3RseSBpbiB0aGUgbGluayBwYXNzLgorCSAgICAgICAgdGVzdCAteiAiJGxpYmRpciIgJiYgXAorCSAgICAgICAgICBmdW5jX2FwcGVuZCBkbHByZWNvbnZlbmllbmNlbGlicyAiICRkaXIvJG9sZF9saWJyYXJ5IgorCSAgICAgICMgT3RoZXJ3aXNlLCB1c2UgdGhlIGRsbmFtZSwgc28gdGhhdCBsdF9kbG9wZW4gZmluZHMgaXQuCisJICAgICAgZWxpZiB0ZXN0IC1uICIkZGxuYW1lIjsgdGhlbgorCSAgICAgICAgZnVuY19hcHBlbmQgbmV3ZGxwcmVmaWxlcyAiICRkaXIvJGRsbmFtZSIKKwkgICAgICBlbHNlCisJICAgICAgICBmdW5jX2FwcGVuZCBuZXdkbHByZWZpbGVzICIgJGRpci8kbGlua2xpYiIKKwkgICAgICBmaQorCSAgICA7OworCSAgZXNhYwogCWZpICMgJHBhc3MgPSBkbHByZW9wZW4KIAogCWlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCkBAIC01NDY4LDcgKzY1ODcsNyBAQAogCiAKIAlpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyAmJiB0ZXN0ICIkcGFzcyIgIT0gbGluazsgdGhlbgotCSAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRsYWRpciIKKwkgIGZ1bmNfYXBwZW5kIG5ld2xpYl9zZWFyY2hfcGF0aCAiICRsYWRpciIKIAkgIGRlcGxpYnM9IiRsaWIgJGRlcGxpYnMiCiAKIAkgIGxpbmthbGxkZXBsaWJzPW5vCkBAIC01NDgxLDcgKzY2MDAsOCBAQAogCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwogCSAgICBjYXNlICRkZXBsaWIgaW4KIAkgICAgLUwqKSBmdW5jX3N0cmlwbmFtZSAnLUwnICcnICIkZGVwbGliIgotCSAgICAgICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorCSAgICAgICAgIGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorCSAgICAgICAgIGZ1bmNfYXBwZW5kIG5ld2xpYl9zZWFyY2hfcGF0aCAiICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQiCiAJCSA7OwogCSAgICBlc2FjCiAJICAgICMgTmVlZCB0byBsaW5rIGFnYWluc3QgYWxsIGRlcGVuZGVuY3lfbGlicz8KQEAgLTU0OTIsMTIgKzY2MTIsMTIgQEAKIAkgICAgICAjIG9yL2FuZCBsaW5rIGFnYWluc3Qgc3RhdGljIGxpYnJhcmllcwogCSAgICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgogCSAgICBmaQotCSAgICBpZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgorCSAgICBpZiAkb3B0X3ByZXNlcnZlX2R1cF9kZXBzIDsgdGhlbgogCSAgICAgIGNhc2UgIiR0bXBfbGlicyAiIGluCi0JICAgICAgKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkZGVwbGliIiA7OworCSAgICAgICoiICRkZXBsaWIgIiopIGZ1bmNfYXBwZW5kIHNwZWNpYWxkZXBsaWJzICIgJGRlcGxpYiIgOzsKIAkgICAgICBlc2FjCiAJICAgIGZpCi0JICAgIHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIKKwkgICAgZnVuY19hcHBlbmQgdG1wX2xpYnMgIiAkZGVwbGliIgogCSAgZG9uZSAjIGZvciBkZXBsaWIKIAkgIGNvbnRpbnVlCiAJZmkgIyAkbGlua21vZGUgPSBwcm9nLi4uCkBAIC01NTEyLDcgKzY2MzIsNyBAQAogCSAgICAgICMgTWFrZSBzdXJlIHRoZSBycGF0aCBjb250YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KIAkgICAgICBjYXNlICIkdGVtcF9ycGF0aDoiIGluCiAJICAgICAgKiIkYWJzZGlyOiIqKSA7OwotCSAgICAgICopIHRlbXBfcnBhdGg9IiR0ZW1wX3JwYXRoJGFic2RpcjoiIDs7CisJICAgICAgKikgZnVuY19hcHBlbmQgdGVtcF9ycGF0aCAiJGFic2RpcjoiIDs7CiAJICAgICAgZXNhYwogCSAgICBmaQogCkBAIC01NTI0LDcgKzY2NDQsNyBAQAogCSAgICAqKQogCSAgICAgIGNhc2UgIiRjb21waWxlX3JwYXRoICIgaW4KIAkgICAgICAqIiAkYWJzZGlyICIqKSA7OwotCSAgICAgICopIGNvbXBpbGVfcnBhdGg9IiRjb21waWxlX3JwYXRoICRhYnNkaXIiCisJICAgICAgKikgZnVuY19hcHBlbmQgY29tcGlsZV9ycGF0aCAiICRhYnNkaXIiIDs7CiAJICAgICAgZXNhYwogCSAgICAgIDs7CiAJICAgIGVzYWMKQEAgLTU1MzMsNyArNjY1Myw3IEBACiAJICAgICopCiAJICAgICAgY2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KIAkgICAgICAqIiAkbGliZGlyICIqKSA7OwotCSAgICAgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIKKwkgICAgICAqKSBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9ycGF0aCAiICRsaWJkaXIiIDs7CiAJICAgICAgZXNhYwogCSAgICAgIDs7CiAJICAgIGVzYWMKQEAgLTU1NTgsMTIgKzY2NzgsMTIgQEAKIAkgIGNhc2UgJGhvc3QgaW4KIAkgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyopCiAJICAgICAgIyBObyBwb2ludCBpbiByZWxpbmtpbmcgRExMcyBiZWNhdXNlIHBhdGhzIGFyZSBub3QgZW5jb2RlZAotCSAgICAgIG5vdGluc3RfZGVwbGlicz0iJG5vdGluc3RfZGVwbGlicyAkbGliIgorCSAgICAgIGZ1bmNfYXBwZW5kIG5vdGluc3RfZGVwbGlicyAiICRsaWIiCiAJICAgICAgbmVlZF9yZWxpbms9bm8KIAkgICAgOzsKIAkgICopCiAJICAgIGlmIHRlc3QgIiRpbnN0YWxsZWQiID0gbm87IHRoZW4KLQkgICAgICBub3RpbnN0X2RlcGxpYnM9IiRub3RpbnN0X2RlcGxpYnMgJGxpYiIKKwkgICAgICBmdW5jX2FwcGVuZCBub3RpbnN0X2RlcGxpYnMgIiAkbGliIgogCSAgICAgIG5lZWRfcmVsaW5rPXllcwogCSAgICBmaQogCSAgICA7OwpAQCAtNTU4MCw3ICs2NzAwLDcgQEAKIAkgICAgZmkKIAkgIGRvbmUKIAkgIGlmIHRlc3QgLXogIiRkbG9wZW5tb2R1bGUiICYmIHRlc3QgIiRzaG91bGRub3RsaW5rIiA9IHllcyAmJiB0ZXN0ICIkcGFzcyIgPSBsaW5rOyB0aGVuCi0JICAgICRFQ0hPCisJICAgIGVjaG8KIAkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KIAkgICAgICAkRUNITyAiKioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIGV4ZWN1dGFibGUgJG91dHB1dCBhZ2FpbnN0IHRoZSBsb2FkYWJsZSBtb2R1bGUiCiAJICAgIGVsc2UKQEAgLTU1OTgsNyArNjcxOCw3IEBACiAJICAgICopCiAJICAgICAgY2FzZSAiJGNvbXBpbGVfcnBhdGggIiBpbgogCSAgICAgICoiICRhYnNkaXIgIiopIDs7Ci0JICAgICAgKikgY29tcGlsZV9ycGF0aD0iJGNvbXBpbGVfcnBhdGggJGFic2RpciIKKwkgICAgICAqKSBmdW5jX2FwcGVuZCBjb21waWxlX3JwYXRoICIgJGFic2RpciIgOzsKIAkgICAgICBlc2FjCiAJICAgICAgOzsKIAkgICAgZXNhYwpAQCAtNTYwNyw3ICs2NzI3LDcgQEAKIAkgICAgKikKIAkgICAgICBjYXNlICIkZmluYWxpemVfcnBhdGggIiBpbgogCSAgICAgICoiICRsaWJkaXIgIiopIDs7Ci0JICAgICAgKikgZmluYWxpemVfcnBhdGg9IiRmaW5hbGl6ZV9ycGF0aCAkbGliZGlyIgorCSAgICAgICopIGZ1bmNfYXBwZW5kIGZpbmFsaXplX3JwYXRoICIgJGxpYmRpciIgOzsKIAkgICAgICBlc2FjCiAJICAgICAgOzsKIAkgICAgZXNhYwpAQCAtNTY2MSw3ICs2NzgxLDcgQEAKIAkgICAgbGlua2xpYj0kbmV3bGliCiAJICBmaSAjIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyIKIAotCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgfHwgdGVzdCAiJG1vZGUiICE9IHJlbGluazsgdGhlbgorCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgfHwgdGVzdCAiJG9wdF9tb2RlIiAhPSByZWxpbms7IHRoZW4KIAkgICAgYWRkX3NobGlicGF0aD0KIAkgICAgYWRkX2Rpcj0KIAkgICAgYWRkPQpAQCAtNTY4Myw5ICs2ODAzLDkgQEAKIAkJICAgICAgaWYgdGVzdCAiWCRkbG9wZW5tb2R1bGUiICE9ICJYJGxpYiI7IHRoZW4KIAkJCSRFQ0hPICIqKiogV2FybmluZzogbGliICRsaW5rbGliIGlzIGEgbW9kdWxlLCBub3QgYSBzaGFyZWQgbGlicmFyeSIKIAkJCWlmIHRlc3QgLXogIiRvbGRfbGlicmFyeSIgOyB0aGVuCi0JCQkgICRFQ0hPCi0JCQkgICRFQ0hPICIqKiogQW5kIHRoZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIHN0YXRpYyBhcmNoaXZlIGF2YWlsYWJsZSIKLQkJCSAgJEVDSE8gIioqKiBUaGUgbGluayB3aWxsIHByb2JhYmx5IGZhaWwsIHNvcnJ5IgorCQkJICBlY2hvCisJCQkgIGVjaG8gIioqKiBBbmQgdGhlcmUgZG9lc24ndCBzZWVtIHRvIGJlIGEgc3RhdGljIGFyY2hpdmUgYXZhaWxhYmxlIgorCQkJICBlY2hvICIqKiogVGhlIGxpbmsgd2lsbCBwcm9iYWJseSBmYWlsLCBzb3JyeSIKIAkJCWVsc2UKIAkJCSAgYWRkPSIkZGlyLyRvbGRfbGlicmFyeSIKIAkJCWZpCkBAIC01NzE3LDcgKzY4MzcsNyBAQAogCQlpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsgdGhlbgogCQkgIGNhc2UgJGxpYmRpciBpbgogCQkgICAgW1xcL10qKQotCQkgICAgICBhZGRfZGlyPSIkYWRkX2RpciAtTCRpbnN0X3ByZWZpeF9kaXIkbGliZGlyIgorCQkgICAgICBmdW5jX2FwcGVuZCBhZGRfZGlyICIgLUwkaW5zdF9wcmVmaXhfZGlyJGxpYmRpciIKIAkJICAgICAgOzsKIAkJICBlc2FjCiAJCWZpCkBAIC01NzM5LDcgKzY4NTksNyBAQAogCSAgICBpZiB0ZXN0IC1uICIkYWRkX3NobGlicGF0aCI7IHRoZW4KIAkgICAgICBjYXNlIDokY29tcGlsZV9zaGxpYnBhdGg6IGluCiAJICAgICAgKiI6JGFkZF9zaGxpYnBhdGg6IiopIDs7Ci0JICAgICAgKikgY29tcGlsZV9zaGxpYnBhdGg9IiRjb21waWxlX3NobGlicGF0aCRhZGRfc2hsaWJwYXRoOiIgOzsKKwkgICAgICAqKSBmdW5jX2FwcGVuZCBjb21waWxlX3NobGlicGF0aCAiJGFkZF9zaGxpYnBhdGg6IiA7OwogCSAgICAgIGVzYWMKIAkgICAgZmkKIAkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KQEAgLTU3NTMsMTMgKzY4NzMsMTMgQEAKIAkJIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IHllczsgdGhlbgogCQljYXNlIDokZmluYWxpemVfc2hsaWJwYXRoOiBpbgogCQkqIjokbGliZGlyOiIqKSA7OwotCQkqKSBmaW5hbGl6ZV9zaGxpYnBhdGg9IiRmaW5hbGl6ZV9zaGxpYnBhdGgkbGliZGlyOiIgOzsKKwkJKikgZnVuY19hcHBlbmQgZmluYWxpemVfc2hsaWJwYXRoICIkbGliZGlyOiIgOzsKIAkJZXNhYwogCSAgICAgIGZpCiAJICAgIGZpCiAJICBmaQogCi0JICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyB8fCB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nIHx8IHRlc3QgIiRvcHRfbW9kZSIgPSByZWxpbms7IHRoZW4KIAkgICAgYWRkX3NobGlicGF0aD0KIAkgICAgYWRkX2Rpcj0KIAkgICAgYWRkPQpAQCAtNTc3Myw3ICs2ODkzLDcgQEAKIAkgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgPSB5ZXM7IHRoZW4KIAkgICAgICBjYXNlIDokZmluYWxpemVfc2hsaWJwYXRoOiBpbgogCSAgICAgICoiOiRsaWJkaXI6IiopIDs7Ci0JICAgICAgKikgZmluYWxpemVfc2hsaWJwYXRoPSIkZmluYWxpemVfc2hsaWJwYXRoJGxpYmRpcjoiIDs7CisJICAgICAgKikgZnVuY19hcHBlbmQgZmluYWxpemVfc2hsaWJwYXRoICIkbGliZGlyOiIgOzsKIAkgICAgICBlc2FjCiAJICAgICAgYWRkPSItbCRuYW1lIgogCSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9hdXRvbWF0aWMiID0geWVzOyB0aGVuCkBAIC01NzkwLDcgKzY5MTAsNyBAQAogCSAgICAgIGlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiOyB0aGVuCiAJCWNhc2UgJGxpYmRpciBpbgogCQkgIFtcXC9dKikKLQkJICAgIGFkZF9kaXI9IiRhZGRfZGlyIC1MJGluc3RfcHJlZml4X2RpciRsaWJkaXIiCisJCSAgICBmdW5jX2FwcGVuZCBhZGRfZGlyICIgLUwkaW5zdF9wcmVmaXhfZGlyJGxpYmRpciIKIAkJICAgIDs7CiAJCWVzYWMKIAkgICAgICBmaQpAQCAtNTgyNSwyMSArNjk0NSwyMSBAQAogCiAJICAgICMgSnVzdCBwcmludCBhIHdhcm5pbmcgYW5kIGFkZCB0aGUgbGlicmFyeSB0byBkZXBlbmRlbmN5X2xpYnMgc28KIAkgICAgIyB0aGF0IHRoZSBwcm9ncmFtIGNhbiBiZSBsaW5rZWQgYWdhaW5zdCB0aGUgc3RhdGljIGxpYnJhcnkuCi0JICAgICRFQ0hPCisJICAgIGVjaG8KIAkgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBUaGlzIHN5c3RlbSBjYW4gbm90IGxpbmsgdG8gc3RhdGljIGxpYiBhcmNoaXZlICRsaWIuIgotCSAgICAkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKLQkgICAgJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0JICAgICRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUuIgorCSAgICBlY2hvICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgorCSAgICBlY2hvICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgorCSAgICBlY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUuIgogCSAgICBpZiB0ZXN0ICIkbW9kdWxlIiA9IHllczsgdGhlbgotCSAgICAgICRFQ0hPICIqKiogQnV0IGFzIHlvdSB0cnkgdG8gYnVpbGQgYSBtb2R1bGUgbGlicmFyeSwgbGlidG9vbCB3aWxsIHN0aWxsIGNyZWF0ZSAiCi0JICAgICAgJEVDSE8gIioqKiBhIHN0YXRpYyBtb2R1bGUsIHRoYXQgc2hvdWxkIHdvcmsgYXMgbG9uZyBhcyB0aGUgZGxvcGVuaW5nIGFwcGxpY2F0aW9uIgotCSAgICAgICRFQ0hPICIqKiogaXMgbGlua2VkIHdpdGggdGhlIC1kbG9wZW4gZmxhZyB0byByZXNvbHZlIHN5bWJvbHMgYXQgcnVudGltZS4iCisJICAgICAgZWNobyAiKioqIEJ1dCBhcyB5b3UgdHJ5IHRvIGJ1aWxkIGEgbW9kdWxlIGxpYnJhcnksIGxpYnRvb2wgd2lsbCBzdGlsbCBjcmVhdGUgIgorCSAgICAgIGVjaG8gIioqKiBhIHN0YXRpYyBtb2R1bGUsIHRoYXQgc2hvdWxkIHdvcmsgYXMgbG9uZyBhcyB0aGUgZGxvcGVuaW5nIGFwcGxpY2F0aW9uIgorCSAgICAgIGVjaG8gIioqKiBpcyBsaW5rZWQgd2l0aCB0aGUgLWRsb3BlbiBmbGFnIHRvIHJlc29sdmUgc3ltYm9scyBhdCBydW50aW1lLiIKIAkgICAgICBpZiB0ZXN0IC16ICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgotCQkkRUNITwotCQkkRUNITyAiKioqIEhvd2V2ZXIsIHRoaXMgd291bGQgb25seSB3b3JrIGlmIGxpYnRvb2wgd2FzIGFibGUgdG8gZXh0cmFjdCBzeW1ib2wiCi0JCSRFQ0hPICIqKiogbGlzdHMgZnJvbSBhIHByb2dyYW0sIHVzaW5nIFxgbm0nIG9yIGVxdWl2YWxlbnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgotCQkkRUNITyAiKioqIG5vdCBmaW5kIHN1Y2ggYSBwcm9ncmFtLiAgU28sIHRoaXMgbW9kdWxlIGlzIHByb2JhYmx5IHVzZWxlc3MuIgotCQkkRUNITyAiKioqIFxgbm0nIGZyb20gR05VIGJpbnV0aWxzIGFuZCBhIGZ1bGwgcmVidWlsZCBtYXkgaGVscC4iCisJCWVjaG8KKwkJZWNobyAiKioqIEhvd2V2ZXIsIHRoaXMgd291bGQgb25seSB3b3JrIGlmIGxpYnRvb2wgd2FzIGFibGUgdG8gZXh0cmFjdCBzeW1ib2wiCisJCWVjaG8gIioqKiBsaXN0cyBmcm9tIGEgcHJvZ3JhbSwgdXNpbmcgXGBubScgb3IgZXF1aXZhbGVudCwgYnV0IGxpYnRvb2wgY291bGQiCisJCWVjaG8gIioqKiBub3QgZmluZCBzdWNoIGEgcHJvZ3JhbS4gIFNvLCB0aGlzIG1vZHVsZSBpcyBwcm9iYWJseSB1c2VsZXNzLiIKKwkJZWNobyAiKioqIFxgbm0nIGZyb20gR05VIGJpbnV0aWxzIGFuZCBhIGZ1bGwgcmVidWlsZCBtYXkgaGVscC4iCiAJICAgICAgZmkKIAkgICAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0gbm87IHRoZW4KIAkJYnVpbGRfbGlidG9vbF9saWJzPW1vZHVsZQpAQCAtNTg2NywzNyArNjk4Nyw0NiBAQAogCSAgICAgICAgICAgdGVtcF94cnBhdGg9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAogCQkgICBjYXNlICIgJHhycGF0aCAiIGluCiAJCSAgICoiICR0ZW1wX3hycGF0aCAiKikgOzsKLQkJICAgKikgeHJwYXRoPSIkeHJwYXRoICR0ZW1wX3hycGF0aCI7OworCQkgICAqKSBmdW5jX2FwcGVuZCB4cnBhdGggIiAkdGVtcF94cnBhdGgiOzsKIAkJICAgZXNhYzs7Ci0JICAgICAgKikgdGVtcF9kZXBsaWJzPSIkdGVtcF9kZXBsaWJzICRsaWJkaXIiOzsKKwkgICAgICAqKSBmdW5jX2FwcGVuZCB0ZW1wX2RlcGxpYnMgIiAkbGliZGlyIjs7CiAJICAgICAgZXNhYwogCSAgICBkb25lCiAJICAgIGRlcGVuZGVuY3lfbGlicz0iJHRlbXBfZGVwbGlicyIKIAkgIGZpCiAKLQkgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkYWJzZGlyIgorCSAgZnVuY19hcHBlbmQgbmV3bGliX3NlYXJjaF9wYXRoICIgJGFic2RpciIKIAkgICMgTGluayBhZ2FpbnN0IHRoaXMgbGlicmFyeQogCSAgdGVzdCAiJGxpbmtfc3RhdGljIiA9IG5vICYmIG5ld2RlcGVuZGVuY3lfbGlicz0iJGFic19sYWRpci8kbGFuYW1lICRuZXdkZXBlbmRlbmN5X2xpYnMiCiAJICAjIC4uLiBhbmQgaXRzIGRlcGVuZGVuY3lfbGlicwogCSAgdG1wX2xpYnM9CiAJICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCiAJICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgotCSAgICBpZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgorCSAgICBjYXNlICRkZXBsaWIgaW4KKyAgICAgICAgICAgICAgLUwqKSBmdW5jX3N0cmlwbmFtZSAnLUwnICcnICIkZGVwbGliIgorICAgICAgICAgICAgICAgICAgIGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0Ijs7CisgICAgICAgICAgICAgICopIGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZGVwbGliIiA7OworICAgICAgICAgICAgZXNhYworCSAgICBpZiAkb3B0X3ByZXNlcnZlX2R1cF9kZXBzIDsgdGhlbgogCSAgICAgIGNhc2UgIiR0bXBfbGlicyAiIGluCi0JICAgICAgKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkZGVwbGliIiA7OworCSAgICAgICoiICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQgIiopCisgICAgICAgICAgICAgICAgZnVuY19hcHBlbmQgc3BlY2lhbGRlcGxpYnMgIiAkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0IiA7OwogCSAgICAgIGVzYWMKIAkgICAgZmkKLQkgICAgdG1wX2xpYnM9IiR0bXBfbGlicyAkZGVwbGliIgorCSAgICBmdW5jX2FwcGVuZCB0bXBfbGlicyAiICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQiCiAJICBkb25lCiAKIAkgIGlmIHRlc3QgIiRsaW5rX2FsbF9kZXBsaWJzIiAhPSBubzsgdGhlbgogCSAgICAjIEFkZCB0aGUgc2VhcmNoIHBhdGhzIG9mIGFsbCBkZXBlbmRlbmN5IGxpYnJhcmllcwogCSAgICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCisJICAgICAgcGF0aD0KIAkgICAgICBjYXNlICRkZXBsaWIgaW4KIAkgICAgICAtTCopIHBhdGg9IiRkZXBsaWIiIDs7CiAJICAgICAgKi5sYSkKKwkgICAgICAgIGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZGVwbGliIgorCSAgICAgICAgZGVwbGliPSRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQKIAkgICAgICAgIGZ1bmNfZGlybmFtZSAiJGRlcGxpYiIgIiIgIi4iCi0JCWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisJCWRpcj0kZnVuY19kaXJuYW1lX3Jlc3VsdAogCQkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KIAkJY2FzZSAkZGlyIGluCiAJCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgYWJzZGlyPSIkZGlyIiA7OwpAQCAtNTkyNCw4ICs3MDUzLDggQEAKICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkZGFyd2luX2luc3RhbGxfbmFtZSI7IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFyd2luX2luc3RhbGxfbmFtZT1gJHtPVE9PTDY0fSAtTCAkZGVwZGVwbCAgfCBhd2sgJ3tpZiAoTlIgPT0gMikge3ByaW50ICQxO2V4aXR9fSdgCiAgICAgICAgICAgICAgICAgICAgICAgZmkKLQkJICAgICAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAke3dsfS1keWxpYl9maWxlICR7d2x9JHtkYXJ3aW5faW5zdGFsbF9uYW1lfToke2RlcGRlcGx9IgotCQkgICAgICBsaW5rZXJfZmxhZ3M9IiRsaW5rZXJfZmxhZ3MgLWR5bGliX2ZpbGUgJHtkYXJ3aW5faW5zdGFsbF9uYW1lfToke2RlcGRlcGx9IgorCQkgICAgICBmdW5jX2FwcGVuZCBjb21waWxlcl9mbGFncyAiICR7d2x9LWR5bGliX2ZpbGUgJHt3bH0ke2Rhcndpbl9pbnN0YWxsX25hbWV9OiR7ZGVwZGVwbH0iCisJCSAgICAgIGZ1bmNfYXBwZW5kIGxpbmtlcl9mbGFncyAiIC1keWxpYl9maWxlICR7ZGFyd2luX2luc3RhbGxfbmFtZX06JHtkZXBkZXBsfSIKIAkJICAgICAgcGF0aD0KIAkJICAgIGZpCiAJCSAgZmkKQEAgLTU5NTgsNyArNzA4Nyw3IEBACiAJICBjb21waWxlX2RlcGxpYnM9IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkY29tcGlsZV9kZXBsaWJzIgogCSAgZmluYWxpemVfZGVwbGlicz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICRmaW5hbGl6ZV9kZXBsaWJzIgogCWVsc2UKLQkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgImAkRUNITyAiWCAkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICJgJEVDSE8gIiAkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFNFRCAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKIAlmaQogICAgICAgZmkKICAgICAgIGRlcGVuZGVuY3lfbGlicz0iJG5ld2RlcGVuZGVuY3lfbGlicyIKQEAgLTU5NzUsNyArNzEwNCw3IEBACiAJICBmb3IgZGlyIGluICRuZXdsaWJfc2VhcmNoX3BhdGg7IGRvCiAJICAgIGNhc2UgIiRsaWJfc2VhcmNoX3BhdGggIiBpbgogCSAgICAqIiAkZGlyICIqKSA7OwotCSAgICAqKSBsaWJfc2VhcmNoX3BhdGg9IiRsaWJfc2VhcmNoX3BhdGggJGRpciIgOzsKKwkgICAgKikgZnVuY19hcHBlbmQgbGliX3NlYXJjaF9wYXRoICIgJGRpciIgOzsKIAkgICAgZXNhYwogCSAgZG9uZQogCSAgbmV3bGliX3NlYXJjaF9wYXRoPQpAQCAtNjAzMywxMCArNzE2MiwxMCBAQAogCSAgICAtTCopCiAJICAgICAgY2FzZSAiICR0bXBfbGlicyAiIGluCiAJICAgICAgKiIgJGRlcGxpYiAiKikgOzsKLQkgICAgICAqKSB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiIDs7CisJICAgICAgKikgZnVuY19hcHBlbmQgdG1wX2xpYnMgIiAkZGVwbGliIiA7OwogCSAgICAgIGVzYWMKIAkgICAgICA7OwotCSAgICAqKSB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiIDs7CisJICAgICopIGZ1bmNfYXBwZW5kIHRtcF9saWJzICIgJGRlcGxpYiIgOzsKIAkgICAgZXNhYwogCSAgZG9uZQogCSAgZXZhbCAkdmFyPVwiJHRtcF9saWJzXCIKQEAgLTYwNTIsNyArNzE4MSw3IEBACiAJICA7OwogCWVzYWMKIAlpZiB0ZXN0IC1uICIkaSIgOyB0aGVuCi0JICB0bXBfbGlicz0iJHRtcF9saWJzICRpIgorCSAgZnVuY19hcHBlbmQgdG1wX2xpYnMgIiAkaSIKIAlmaQogICAgICAgZG9uZQogICAgICAgZGVwZW5kZW5jeV9saWJzPSR0bXBfbGlicwpAQCAtNjA5Myw3ICs3MjIyLDcgQEAKICAgICAgICMgTm93IHNldCB0aGUgdmFyaWFibGVzIGZvciBidWlsZGluZyBvbGQgbGlicmFyaWVzLgogICAgICAgYnVpbGRfbGlidG9vbF9saWJzPW5vCiAgICAgICBvbGRsaWJzPSIkb3V0cHV0IgotICAgICAgb2Jqcz0iJG9ianMkb2xkX2RlcGxpYnMiCisgICAgICBmdW5jX2FwcGVuZCBvYmpzICIkb2xkX2RlcGxpYnMiCiAgICAgICA7OwogCiAgICAgbGliKQpAQCAtNjEyNiwxMCArNzI1NSwxMCBAQAogCWlmIHRlc3QgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgIT0gcGFzc19hbGw7IHRoZW4KIAkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBidWlsZCBsaWJ0b29sIGxpYnJhcnkgXGAkb3V0cHV0JyBmcm9tIG5vbi1saWJ0b29sIG9iamVjdHMgb24gdGhpcyBob3N0OiRvYmpzIgogCWVsc2UKLQkgICRFQ0hPCisJICBlY2hvCiAJICAkRUNITyAiKioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIHNoYXJlZCBsaWJyYXJ5ICRvdXRwdXQgYWdhaW5zdCB0aGUgbm9uLWxpYnRvb2wiCiAJICAkRUNITyAiKioqIG9iamVjdHMgJG9ianMgaXMgbm90IHBvcnRhYmxlISIKLQkgIGxpYm9ianM9IiRsaWJvYmpzICRvYmpzIgorCSAgZnVuY19hcHBlbmQgbGlib2JqcyAiICRvYmpzIgogCWZpCiAgICAgICBmaQogCkBAIC02MTk0LDcgKzczMjMsNyBAQAogCSAgICBhZ2U9IiRudW1iZXJfbWlub3IiCiAJICAgIHJldmlzaW9uPSIkbnVtYmVyX3JldmlzaW9uIgogCSAgICA7OwotCSAgZnJlZWJzZC1hb3V0fGZyZWVic2QtZWxmfHN1bm9zKQorCSAgZnJlZWJzZC1hb3V0fGZyZWVic2QtZWxmfHFueHxzdW5vcykKIAkgICAgY3VycmVudD0iJG51bWJlcl9tYWpvciIKIAkgICAgcmV2aXNpb249IiRudW1iZXJfbWlub3IiCiAJICAgIGFnZT0iMCIKQEAgLTYzMjcsNyArNzQ1Niw3IEBACiAJICBkb25lCiAKIAkgICMgTWFrZSBleGVjdXRhYmxlcyBkZXBlbmQgb24gb3VyIGN1cnJlbnQgdmVyc2lvbi4KLQkgIHZlcnN0cmluZz0iJHZlcnN0cmluZzoke2N1cnJlbnR9LjAiCisJICBmdW5jX2FwcGVuZCB2ZXJzdHJpbmcgIjoke2N1cnJlbnR9LjAiCiAJICA7OwogCiAJcW54KQpAQCAtNjM5NSwxMCArNzUyNCwxMCBAQAogICAgICAgZmkKIAogICAgICAgZnVuY19nZW5lcmF0ZV9kbHN5bXMgIiRsaWJuYW1lIiAiJGxpYm5hbWUiICJ5ZXMiCi0gICAgICBsaWJvYmpzPSIkbGlib2JqcyAkc3ltZmlsZW9iaiIKKyAgICAgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkc3ltZmlsZW9iaiIKICAgICAgIHRlc3QgIlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9CiAKLSAgICAgIGlmIHRlc3QgIiRtb2RlIiAhPSByZWxpbms7IHRoZW4KKyAgICAgIGlmIHRlc3QgIiRvcHRfbW9kZSIgIT0gcmVsaW5rOyB0aGVuCiAJIyBSZW1vdmUgb3VyIG91dHB1dHMsIGJ1dCBkb24ndCByZW1vdmUgb2JqZWN0IGZpbGVzIHNpbmNlIHRoZXkKIAkjIG1heSBoYXZlIGJlZW4gY3JlYXRlZCB3aGVuIGNvbXBpbGluZyBQSUMgb2JqZWN0cy4KIAlyZW1vdmVsaXN0PQpAQCAtNjQxNCw3ICs3NTQzLDcgQEAKIAkJICAgY29udGludWUKIAkJIGZpCiAJICAgICAgIGZpCi0JICAgICAgIHJlbW92ZWxpc3Q9IiRyZW1vdmVsaXN0ICRwIgorCSAgICAgICBmdW5jX2FwcGVuZCByZW1vdmVsaXN0ICIgJHAiCiAJICAgICAgIDs7CiAJICAgICopIDs7CiAJICBlc2FjCkBAIC02NDI1LDI3ICs3NTU0LDI4IEBACiAKICAgICAgICMgTm93IHNldCB0aGUgdmFyaWFibGVzIGZvciBidWlsZGluZyBvbGQgbGlicmFyaWVzLgogICAgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllcyAmJiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSBjb252ZW5pZW5jZSA7IHRoZW4KLQlvbGRsaWJzPSIkb2xkbGlicyAkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0IgorCWZ1bmNfYXBwZW5kIG9sZGxpYnMgIiAkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0IgogCiAJIyBUcmFuc2Zvcm0gLmxvIGZpbGVzIHRvIC5vIGZpbGVzLgotCW9sZG9ianM9IiRvYmpzICJgJEVDSE8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAnL1wuJyR7bGliZXh0fSckL2QnIC1lICIkbG8ybyIgfCAkTkwyU1BgCisJb2xkb2Jqcz0iJG9ianMgImAkRUNITyAiJGxpYm9ianMiIHwgJFNQMk5MIHwgJFNFRCAiL1wuJHtsaWJleHR9JC9kOyAkbG8ybyIgfCAkTkwyU1BgCiAgICAgICBmaQogCiAgICAgICAjIEVsaW1pbmF0ZSBhbGwgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzLgogICAgICAgI2ZvciBwYXRoIGluICRub3RpbnN0X3BhdGg7IGRvCi0gICAgICAjCWxpYl9zZWFyY2hfcGF0aD1gJEVDSE8gIlgkbGliX3NlYXJjaF9wYXRoICIgfCAkWHNlZCAtZSAicyUgJHBhdGggJSAlZyJgCi0gICAgICAjCWRlcGxpYnM9YCRFQ0hPICJYJGRlcGxpYnMgIiB8ICRYc2VkIC1lICJzJSAtTCRwYXRoICUgJWciYAotICAgICAgIwlkZXBlbmRlbmN5X2xpYnM9YCRFQ0hPICJYJGRlcGVuZGVuY3lfbGlicyAiIHwgJFhzZWQgLWUgInMlIC1MJHBhdGggJSAlZyJgCisgICAgICAjCWxpYl9zZWFyY2hfcGF0aD1gJEVDSE8gIiRsaWJfc2VhcmNoX3BhdGggIiB8ICRTRUQgInMlICRwYXRoICUgJWciYAorICAgICAgIwlkZXBsaWJzPWAkRUNITyAiJGRlcGxpYnMgIiB8ICRTRUQgInMlIC1MJHBhdGggJSAlZyJgCisgICAgICAjCWRlcGVuZGVuY3lfbGlicz1gJEVDSE8gIiRkZXBlbmRlbmN5X2xpYnMgIiB8ICRTRUQgInMlIC1MJHBhdGggJSAlZyJgCiAgICAgICAjZG9uZQogCiAgICAgICBpZiB0ZXN0IC1uICIkeHJwYXRoIjsgdGhlbgogCSMgSWYgdGhlIHVzZXIgc3BlY2lmaWVkIGFueSBycGF0aCBmbGFncywgdGhlbiBhZGQgdGhlbS4KIAl0ZW1wX3hycGF0aD0KIAlmb3IgbGliZGlyIGluICR4cnBhdGg7IGRvCi0JICB0ZW1wX3hycGF0aD0iJHRlbXBfeHJwYXRoIC1SJGxpYmRpciIKKwkgIGZ1bmNfcmVwbGFjZV9zeXNyb290ICIkbGliZGlyIgorCSAgZnVuY19hcHBlbmQgdGVtcF94cnBhdGggIiAtUiRmdW5jX3JlcGxhY2Vfc3lzcm9vdF9yZXN1bHQiCiAJICBjYXNlICIkZmluYWxpemVfcnBhdGggIiBpbgogCSAgKiIgJGxpYmRpciAiKikgOzsKLQkgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIgOzsKKwkgICopIGZ1bmNfYXBwZW5kIGZpbmFsaXplX3JwYXRoICIgJGxpYmRpciIgOzsKIAkgIGVzYWMKIAlkb25lCiAJaWYgdGVzdCAiJGhhcmRjb2RlX2ludG9fbGlicyIgIT0geWVzIHx8IHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KQEAgLTY0NTksNyArNzU4OSw3IEBACiAgICAgICBmb3IgbGliIGluICRvbGRfZGxmaWxlczsgZG8KIAljYXNlICIgJGRscHJlZmlsZXMgJGRsZmlsZXMgIiBpbgogCSoiICRsaWIgIiopIDs7Ci0JKikgZGxmaWxlcz0iJGRsZmlsZXMgJGxpYiIgOzsKKwkqKSBmdW5jX2FwcGVuZCBkbGZpbGVzICIgJGxpYiIgOzsKIAllc2FjCiAgICAgICBkb25lCiAKQEAgLTY0NjksMTkgKzc1OTksMTkgQEAKICAgICAgIGZvciBsaWIgaW4gJG9sZF9kbHByZWZpbGVzOyBkbwogCWNhc2UgIiRkbHByZWZpbGVzICIgaW4KIAkqIiAkbGliICIqKSA7OwotCSopIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRsaWIiIDs7CisJKikgZnVuY19hcHBlbmQgZGxwcmVmaWxlcyAiICRsaWIiIDs7CiAJZXNhYwogICAgICAgZG9uZQogCiAgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgogCWlmIHRlc3QgLW4gIiRycGF0aCI7IHRoZW4KIAkgIGNhc2UgJGhvc3QgaW4KLQkgICotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi0qLWJlb3MqIHwgKi1jZWdjYyopCisJICAqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotb3MyKiB8ICotKi1iZW9zKiB8ICotY2VnY2MqIHwgKi0qLWhhaWt1KikKIAkgICAgIyB0aGVzZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBjIGxpYnJhcnkgKGFzIHN1Y2gpIQogCSAgICA7OwogCSAgKi0qLXJoYXBzb2R5KiB8ICotKi1kYXJ3aW4xLlswMTJdKQogCSAgICAjIFJoYXBzb2R5IEMgbGlicmFyeSBpcyBpbiB0aGUgU3lzdGVtIGZyYW1ld29yawotCSAgICBkZXBsaWJzPSIkZGVwbGlicyBTeXN0ZW0ubHRmcmFtZXdvcmsiCisJICAgIGZ1bmNfYXBwZW5kIGRlcGxpYnMgIiBTeXN0ZW0ubHRmcmFtZXdvcmsiCiAJICAgIDs7CiAJICAqLSotbmV0YnNkKikKIAkgICAgIyBEb24ndCBsaW5rIHdpdGggbGliYyB1bnRpbCB0aGUgYS5vdXQgbGQuc28gaXMgZml4ZWQuCkBAIC02NDk4LDcgKzc2MjgsNyBAQAogCSAgKikKIAkgICAgIyBBZGQgbGliYyB0byBkZXBsaWJzIG9uIGFsbCBvdGhlciBzeXN0ZW1zIGlmIG5lY2Vzc2FyeS4KIAkgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbmVlZF9sYyIgPSAieWVzIjsgdGhlbgotCSAgICAgIGRlcGxpYnM9IiRkZXBsaWJzIC1sYyIKKwkgICAgICBmdW5jX2FwcGVuZCBkZXBsaWJzICIgLWxjIgogCSAgICBmaQogCSAgICA7OwogCSAgZXNhYwpAQCAtNjU0Nyw3ICs3Njc3LDcgQEAKIAkJaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgogCQkgIGNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgogCQkgICoiICRpICIqKQotCQkgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisJCSAgICBmdW5jX2FwcGVuZCBuZXdkZXBsaWJzICIgJGkiCiAJCSAgICBpPSIiCiAJCSAgICA7OwogCQkgIGVzYWMKQEAgLTY1NTgsMjEgKzc2ODgsMjEgQEAKIAkJICBzZXQgZHVtbXkgJGRlcGxpYl9tYXRjaGVzOyBzaGlmdAogCQkgIGRlcGxpYl9tYXRjaD0kMQogCQkgIGlmIHRlc3QgYGV4cHIgIiRsZGRfb3V0cHV0IiA6ICIuKiRkZXBsaWJfbWF0Y2giYCAtbmUgMCA7IHRoZW4KLQkJICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgorCQkgICAgZnVuY19hcHBlbmQgbmV3ZGVwbGlicyAiICRpIgogCQkgIGVsc2UKIAkJICAgIGRyb3BwZWRkZXBzPXllcwotCQkgICAgJEVDSE8KKwkJICAgIGVjaG8KIAkJICAgICRFQ0hPICIqKiogV2FybmluZzogZHluYW1pYyBsaW5rZXIgZG9lcyBub3QgYWNjZXB0IG5lZWRlZCBsaWJyYXJ5ICRpLiIKLQkJICAgICRFQ0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgotCQkgICAgJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0JCSAgICAkRUNITyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCBJIGJlbGlldmUgeW91IGRvIG5vdCBoYXZlIgotCQkgICAgJEVDSE8gIioqKiBiZWNhdXNlIGEgdGVzdF9jb21waWxlIGRpZCByZXZlYWwgdGhhdCB0aGUgbGlua2VyIGRpZCBub3QgdXNlIGl0IGZvciIKLQkJICAgICRFQ0hPICIqKiogaXRzIGR5bmFtaWMgZGVwZW5kZW5jeSBsaXN0IHRoYXQgcHJvZ3JhbXMgZ2V0IHJlc29sdmVkIHdpdGggYXQgcnVudGltZS4iCisJCSAgICBlY2hvICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgorCQkgICAgZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKwkJICAgIGVjaG8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggSSBiZWxpZXZlIHlvdSBkbyBub3QgaGF2ZSIKKwkJICAgIGVjaG8gIioqKiBiZWNhdXNlIGEgdGVzdF9jb21waWxlIGRpZCByZXZlYWwgdGhhdCB0aGUgbGlua2VyIGRpZCBub3QgdXNlIGl0IGZvciIKKwkJICAgIGVjaG8gIioqKiBpdHMgZHluYW1pYyBkZXBlbmRlbmN5IGxpc3QgdGhhdCBwcm9ncmFtcyBnZXQgcmVzb2x2ZWQgd2l0aCBhdCBydW50aW1lLiIKIAkJICBmaQogCQlmaQogCQk7OwogCSAgICAgICopCi0JCW5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgorCQlmdW5jX2FwcGVuZCBuZXdkZXBsaWJzICIgJGkiCiAJCTs7CiAJICAgICAgZXNhYwogCSAgICBkb25lCkBAIC02NTkwLDcgKzc3MjAsNyBAQAogCQkgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KIAkJICAgIGNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgogCQkgICAgKiIgJGkgIiopCi0JCSAgICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgorCQkgICAgICBmdW5jX2FwcGVuZCBuZXdkZXBsaWJzICIgJGkiCiAJCSAgICAgIGk9IiIKIAkJICAgICAgOzsKIAkJICAgIGVzYWMKQEAgLTY2MDEsMjkgKzc3MzEsMjkgQEAKIAkJICAgIHNldCBkdW1teSAkZGVwbGliX21hdGNoZXM7IHNoaWZ0CiAJCSAgICBkZXBsaWJfbWF0Y2g9JDEKIAkJICAgIGlmIHRlc3QgYGV4cHIgIiRsZGRfb3V0cHV0IiA6ICIuKiRkZXBsaWJfbWF0Y2giYCAtbmUgMCA7IHRoZW4KLQkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisJCSAgICAgIGZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMgIiAkaSIKIAkJICAgIGVsc2UKIAkJICAgICAgZHJvcHBlZGRlcHM9eWVzCi0JCSAgICAgICRFQ0hPCisJCSAgICAgIGVjaG8KIAkJICAgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBkeW5hbWljIGxpbmtlciBkb2VzIG5vdCBhY2NlcHQgbmVlZGVkIGxpYnJhcnkgJGkuIgotCQkgICAgICAkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKLQkJICAgICAgJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0JCSAgICAgICRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCi0JCSAgICAgICRFQ0hPICIqKiogYmVjYXVzZSBhIHRlc3RfY29tcGlsZSBkaWQgcmV2ZWFsIHRoYXQgdGhlIGxpbmtlciBkaWQgbm90IHVzZSB0aGlzIG9uZSIKLQkJICAgICAgJEVDSE8gIioqKiBhcyBhIGR5bmFtaWMgZGVwZW5kZW5jeSB0aGF0IHByb2dyYW1zIGNhbiBnZXQgcmVzb2x2ZWQgd2l0aCBhdCBydW50aW1lLiIKKwkJICAgICAgZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKwkJICAgICAgZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKwkJICAgICAgZWNobyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlIgorCQkgICAgICBlY2hvICIqKiogYmVjYXVzZSBhIHRlc3RfY29tcGlsZSBkaWQgcmV2ZWFsIHRoYXQgdGhlIGxpbmtlciBkaWQgbm90IHVzZSB0aGlzIG9uZSIKKwkJICAgICAgZWNobyAiKioqIGFzIGEgZHluYW1pYyBkZXBlbmRlbmN5IHRoYXQgcHJvZ3JhbXMgY2FuIGdldCByZXNvbHZlZCB3aXRoIGF0IHJ1bnRpbWUuIgogCQkgICAgZmkKIAkJICBmaQogCQllbHNlCiAJCSAgZHJvcHBlZGRlcHM9eWVzCi0JCSAgJEVDSE8KKwkJICBlY2hvCiAJCSAgJEVDSE8gIioqKiBXYXJuaW5nISAgTGlicmFyeSAkaSBpcyBuZWVkZWQgYnkgdGhpcyBsaWJyYXJ5IGJ1dCBJIHdhcyBub3QgYWJsZSB0byIKLQkJICAkRUNITyAiKioqIG1ha2UgaXQgbGluayBpbiEgIFlvdSB3aWxsIHByb2JhYmx5IG5lZWQgdG8gaW5zdGFsbCBpdCBvciBzb21lIgotCQkgICRFQ0hPICIqKiogbGlicmFyeSB0aGF0IGl0IGRlcGVuZHMgb24gYmVmb3JlIHRoaXMgbGlicmFyeSB3aWxsIGJlIGZ1bGx5IgotCQkgICRFQ0hPICIqKiogZnVuY3Rpb25hbC4gIEluc3RhbGxpbmcgaXQgYmVmb3JlIGNvbnRpbnVpbmcgd291bGQgYmUgZXZlbiBiZXR0ZXIuIgorCQkgIGVjaG8gIioqKiBtYWtlIGl0IGxpbmsgaW4hICBZb3Ugd2lsbCBwcm9iYWJseSBuZWVkIHRvIGluc3RhbGwgaXQgb3Igc29tZSIKKwkJICBlY2hvICIqKiogbGlicmFyeSB0aGF0IGl0IGRlcGVuZHMgb24gYmVmb3JlIHRoaXMgbGlicmFyeSB3aWxsIGJlIGZ1bGx5IgorCQkgIGVjaG8gIioqKiBmdW5jdGlvbmFsLiAgSW5zdGFsbGluZyBpdCBiZWZvcmUgY29udGludWluZyB3b3VsZCBiZSBldmVuIGJldHRlci4iCiAJCWZpCiAJCTs7CiAJICAgICAgKikKLQkJbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisJCWZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMgIiAkaSIKIAkJOzsKIAkgICAgICBlc2FjCiAJICAgIGRvbmUKQEAgLTY2NDAsMTUgKzc3NzAsMjcgQEAKIAkgICAgICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCiAJCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgogCQkqIiAkYV9kZXBsaWIgIiopCi0JCSAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorCQkgIGZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMgIiAkYV9kZXBsaWIiCiAJCSAgYV9kZXBsaWI9IiIKIAkJICA7OwogCQllc2FjCiAJICAgICAgZmkKIAkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgogCQlsaWJuYW1lPWBldmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKKwkJaWYgdGVzdCAtbiAiJGZpbGVfbWFnaWNfZ2xvYiI7IHRoZW4KKwkJICBsaWJuYW1lZ2xvYj1gZnVuY19lY2hvX2FsbCAiJGxpYm5hbWUiIHwgJFNFRCAtZSAkZmlsZV9tYWdpY19nbG9iYAorCQllbHNlCisJCSAgbGlibmFtZWdsb2I9JGxpYm5hbWUKKwkJZmkKKwkJdGVzdCAiJHdhbnRfbm9jYXNlZ2xvYiIgPSB5ZXMgJiYgbm9jYXNlZ2xvYj1gc2hvcHQgLXAgbm9jYXNlZ2xvYmAKIAkJZm9yIGkgaW4gJGxpYl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGg7IGRvCi0JCSAgcG90ZW50aWFsX2xpYnM9YGxzICRpLyRsaWJuYW1lWy4tXSogMj4vZGV2L251bGxgCisJCSAgaWYgdGVzdCAiJHdhbnRfbm9jYXNlZ2xvYiIgPSB5ZXM7IHRoZW4KKwkJICAgIHNob3B0IC1zIG5vY2FzZWdsb2IKKwkJICAgIHBvdGVudGlhbF9saWJzPWBscyAkaS8kbGlibmFtZWdsb2JbLi1dKiAyPi9kZXYvbnVsbGAKKwkJICAgICRub2Nhc2VnbG9iCisJCSAgZWxzZQorCQkgICAgcG90ZW50aWFsX2xpYnM9YGxzICRpLyRsaWJuYW1lZ2xvYlsuLV0qIDI+L2Rldi9udWxsYAorCQkgIGZpCiAJCSAgZm9yIHBvdGVudF9saWIgaW4gJHBvdGVudGlhbF9saWJzOyBkbwogCQkgICAgICAjIEZvbGxvdyBzb2Z0IGxpbmtzLgogCQkgICAgICBpZiBscyAtbExkICIkcG90ZW50X2xpYiIgMj4vZGV2L251bGwgfApAQCAtNjY2NSwxMyArNzgwNywxMyBAQAogCQkJcG90bGlibGluaz1gbHMgLWxkICRwb3RsaWIgfCAke1NFRH0gJ3MvLiogLT4gLy8nYAogCQkJY2FzZSAkcG90bGlibGluayBpbgogCQkJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBwb3RsaWI9IiRwb3RsaWJsaW5rIjs7Ci0JCQkqKSBwb3RsaWI9YCRFQ0hPICJYJHBvdGxpYiIgfCAkWHNlZCAtZSAncyxbXi9dKiQsLCdgIiRwb3RsaWJsaW5rIjs7CisJCQkqKSBwb3RsaWI9YCRFQ0hPICIkcG90bGliIiB8ICRTRUQgJ3MsW14vXSokLCwnYCIkcG90bGlibGluayI7OwogCQkJZXNhYwogCQkgICAgICBkb25lCiAJCSAgICAgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwiXCRwb3RsaWJcIiAyPi9kZXYvbnVsbCB8CiAJCQkgJFNFRCAtZSAxMHEgfAogCQkJICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCi0JCQluZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCisJCQlmdW5jX2FwcGVuZCBuZXdkZXBsaWJzICIgJGFfZGVwbGliIgogCQkJYV9kZXBsaWI9IiIKIAkJCWJyZWFrIDIKIAkJICAgICAgZmkKQEAgLTY2ODAsMTIgKzc4MjIsMTIgQEAKIAkgICAgICBmaQogCSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCiAJCWRyb3BwZWRkZXBzPXllcwotCQkkRUNITworCQllY2hvCiAJCSRFQ0hPICIqKiogV2FybmluZzogbGlua2VyIHBhdGggZG9lcyBub3QgaGF2ZSByZWFsIGZpbGUgZm9yIGxpYnJhcnkgJGFfZGVwbGliLiIKLQkJJEVDSE8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCi0JCSRFQ0hPICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgotCQkkRUNITyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlIgotCQkkRUNITyAiKioqIGJlY2F1c2UgSSBkaWQgY2hlY2sgdGhlIGxpbmtlciBwYXRoIGxvb2tpbmcgZm9yIGEgZmlsZSBzdGFydGluZyIKKwkJZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKwkJZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKwkJZWNobyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlIgorCQllY2hvICIqKiogYmVjYXVzZSBJIGRpZCBjaGVjayB0aGUgbGlua2VyIHBhdGggbG9va2luZyBmb3IgYSBmaWxlIHN0YXJ0aW5nIgogCQlpZiB0ZXN0IC16ICIkcG90bGliIiA7IHRoZW4KIAkJICAkRUNITyAiKioqIHdpdGggJGxpYm5hbWUgYnV0IG5vIGNhbmRpZGF0ZXMgd2VyZSBmb3VuZC4gKC4uLmZvciBmaWxlIG1hZ2ljIHRlc3QpIgogCQllbHNlCkBAIC02Njk2LDcgKzc4MzgsNyBAQAogCSAgICAgIDs7CiAJICAgICopCiAJICAgICAgIyBBZGQgYSAtTCBhcmd1bWVudC4KLQkgICAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCisJICAgICAgZnVuY19hcHBlbmQgbmV3ZGVwbGlicyAiICRhX2RlcGxpYiIKIAkgICAgICA7OwogCSAgICBlc2FjCiAJICBkb25lICMgR29uZSB0aHJvdWdoIGFsbCBkZXBsaWJzLgpAQCAtNjcxMiw3ICs3ODU0LDcgQEAKIAkgICAgICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCiAJCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgogCQkqIiAkYV9kZXBsaWIgIiopCi0JCSAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorCQkgIGZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMgIiAkYV9kZXBsaWIiCiAJCSAgYV9kZXBsaWI9IiIKIAkJICA7OwogCQllc2FjCkBAIC02NzIzLDkgKzc4NjUsOSBAQAogCQkgIHBvdGVudGlhbF9saWJzPWBscyAkaS8kbGlibmFtZVsuLV0qIDI+L2Rldi9udWxsYAogCQkgIGZvciBwb3RlbnRfbGliIGluICRwb3RlbnRpYWxfbGliczsgZG8KIAkJICAgIHBvdGxpYj0iJHBvdGVudF9saWIiICMgc2VlIHN5bWxpbmstY2hlY2sgYWJvdmUgaW4gZmlsZV9tYWdpYyB0ZXN0Ci0JCSAgICBpZiBldmFsICJcJEVDSE8gXCJYJHBvdGVudF9saWJcIiIgMj4vZGV2L251bGwgfCAkWHNlZCAtZSAxMHEgfCBcCisJCSAgICBpZiBldmFsICJcJEVDSE8gXCIkcG90ZW50X2xpYlwiIiAyPi9kZXYvbnVsbCB8ICRTRUQgMTBxIHwgXAogCQkgICAgICAgJEVHUkVQICIkbWF0Y2hfcGF0dGVybl9yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KLQkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorCQkgICAgICBmdW5jX2FwcGVuZCBuZXdkZXBsaWJzICIgJGFfZGVwbGliIgogCQkgICAgICBhX2RlcGxpYj0iIgogCQkgICAgICBicmVhayAyCiAJCSAgICBmaQpAQCAtNjczNCwxMiArNzg3NiwxMiBAQAogCSAgICAgIGZpCiAJICAgICAgaWYgdGVzdCAtbiAiJGFfZGVwbGliIiA7IHRoZW4KIAkJZHJvcHBlZGRlcHM9eWVzCi0JCSRFQ0hPCisJCWVjaG8KIAkJJEVDSE8gIioqKiBXYXJuaW5nOiBsaW5rZXIgcGF0aCBkb2VzIG5vdCBoYXZlIHJlYWwgZmlsZSBmb3IgbGlicmFyeSAkYV9kZXBsaWIuIgotCQkkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKLQkJJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0JCSRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCi0JCSRFQ0hPICIqKiogYmVjYXVzZSBJIGRpZCBjaGVjayB0aGUgbGlua2VyIHBhdGggbG9va2luZyBmb3IgYSBmaWxlIHN0YXJ0aW5nIgorCQllY2hvICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgorCQllY2hvICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgorCQllY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCisJCWVjaG8gIioqKiBiZWNhdXNlIEkgZGlkIGNoZWNrIHRoZSBsaW5rZXIgcGF0aCBsb29raW5nIGZvciBhIGZpbGUgc3RhcnRpbmciCiAJCWlmIHRlc3QgLXogIiRwb3RsaWIiIDsgdGhlbgogCQkgICRFQ0hPICIqKiogd2l0aCAkbGlibmFtZSBidXQgbm8gY2FuZGlkYXRlcyB3ZXJlIGZvdW5kLiAoLi4uZm9yIHJlZ2V4IHBhdHRlcm4gdGVzdCkiCiAJCWVsc2UKQEAgLTY3NTAsMzIgKzc4OTIsMzIgQEAKIAkgICAgICA7OwogCSAgICAqKQogCSAgICAgICMgQWRkIGEgLUwgYXJndW1lbnQuCi0JICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorCSAgICAgIGZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMgIiAkYV9kZXBsaWIiCiAJICAgICAgOzsKIAkgICAgZXNhYwogCSAgZG9uZSAjIEdvbmUgdGhyb3VnaCBhbGwgZGVwbGlicy4KIAkgIDs7CiAJbm9uZSB8IHVua25vd24gfCAqKQogCSAgbmV3ZGVwbGlicz0iIgotCSAgdG1wX2RlcGxpYnM9YCRFQ0hPICJYICRkZXBsaWJzIiB8ICRYc2VkIFwKLQkgICAgICAtZSAncy8gLWxjJC8vJyAtZSAncy8gLVtMUl1bXiBdKi8vZydgCisJICB0bXBfZGVwbGlicz1gJEVDSE8gIiAkZGVwbGlicyIgfCAkU0VEICdzLyAtbGMkLy87IHMvIC1bTFJdW14gXSovL2cnYAogCSAgaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgogCSAgICBmb3IgaSBpbiAkcHJlZGVwcyAkcG9zdGRlcHMgOyBkbwogCSAgICAgICMgY2FuJ3QgdXNlIFhzZWQgYmVsb3csIGJlY2F1c2UgJGkgbWlnaHQgY29udGFpbiAnLycKLQkgICAgICB0bXBfZGVwbGlicz1gJEVDSE8gIlggJHRtcF9kZXBsaWJzIiB8ICRYc2VkIC1lICJzLCRpLCwiYAorCSAgICAgIHRtcF9kZXBsaWJzPWAkRUNITyAiICR0bXBfZGVwbGlicyIgfCAkU0VEICJzLCRpLCwiYAogCSAgICBkb25lCiAJICBmaQotCSAgaWYgJEVDSE8gIlggJHRtcF9kZXBsaWJzIiB8ICRYc2VkIC1lICdzL1sJIF0vL2cnIHwKLQkgICAgICRHUkVQIC4gPi9kZXYvbnVsbDsgdGhlbgotCSAgICAkRUNITworCSAgY2FzZSAkdG1wX2RlcGxpYnMgaW4KKwkgICpbIVwJXCBdKikKKwkgICAgZWNobwogCSAgICBpZiB0ZXN0ICJYJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA9ICJYbm9uZSI7IHRoZW4KLQkgICAgICAkRUNITyAiKioqIFdhcm5pbmc6IGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoaXMgcGxhdGZvcm0uIgorCSAgICAgIGVjaG8gIioqKiBXYXJuaW5nOiBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY2llcyBhcmUgbm90IHN1cHBvcnRlZCBpbiB0aGlzIHBsYXRmb3JtLiIKIAkgICAgZWxzZQotCSAgICAgICRFQ0hPICIqKiogV2FybmluZzogaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgYXJlIG5vdCBrbm93biB0byBiZSBzdXBwb3J0ZWQuIgorCSAgICAgIGVjaG8gIioqKiBXYXJuaW5nOiBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY2llcyBhcmUgbm90IGtub3duIHRvIGJlIHN1cHBvcnRlZC4iCiAJICAgIGZpCi0JICAgICRFQ0hPICIqKiogQWxsIGRlY2xhcmVkIGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBiZWluZyBkcm9wcGVkLiIKKwkgICAgZWNobyAiKioqIEFsbCBkZWNsYXJlZCBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY2llcyBhcmUgYmVpbmcgZHJvcHBlZC4iCiAJICAgIGRyb3BwZWRkZXBzPXllcwotCSAgZmkKKwkgICAgOzsKKwkgIGVzYWMKIAkgIDs7CiAJZXNhYwogCXZlcnN1ZmZpeD0kdmVyc3VmZml4X3NhdmUKQEAgLTY3ODcsMjMgKzc5MjksMjMgQEAKIAljYXNlICRob3N0IGluCiAJKi0qLXJoYXBzb2R5KiB8ICotKi1kYXJ3aW4xLlswMTJdKQogCSAgIyBPbiBSaGFwc29keSByZXBsYWNlIHRoZSBDIGxpYnJhcnkgd2l0aCB0aGUgU3lzdGVtIGZyYW1ld29yawotCSAgbmV3ZGVwbGlicz1gJEVDSE8gIlggJG5ld2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MvIC1sYyAvIFN5c3RlbS5sdGZyYW1ld29yayAvJ2AKKwkgIG5ld2RlcGxpYnM9YCRFQ0hPICIgJG5ld2RlcGxpYnMiIHwgJFNFRCAncy8gLWxjIC8gU3lzdGVtLmx0ZnJhbWV3b3JrIC8nYAogCSAgOzsKIAllc2FjCiAKIAlpZiB0ZXN0ICIkZHJvcHBlZGRlcHMiID0geWVzOyB0aGVuCiAJICBpZiB0ZXN0ICIkbW9kdWxlIiA9IHllczsgdGhlbgotCSAgICAkRUNITwotCSAgICAkRUNITyAiKioqIFdhcm5pbmc6IGxpYnRvb2wgY291bGQgbm90IHNhdGlzZnkgYWxsIGRlY2xhcmVkIGludGVyLWxpYnJhcnkiCisJICAgIGVjaG8KKwkgICAgZWNobyAiKioqIFdhcm5pbmc6IGxpYnRvb2wgY291bGQgbm90IHNhdGlzZnkgYWxsIGRlY2xhcmVkIGludGVyLWxpYnJhcnkiCiAJICAgICRFQ0hPICIqKiogZGVwZW5kZW5jaWVzIG9mIG1vZHVsZSAkbGlibmFtZS4gIFRoZXJlZm9yZSwgbGlidG9vbCB3aWxsIGNyZWF0ZSIKLQkgICAgJEVDSE8gIioqKiBhIHN0YXRpYyBtb2R1bGUsIHRoYXQgc2hvdWxkIHdvcmsgYXMgbG9uZyBhcyB0aGUgZGxvcGVuaW5nIgotCSAgICAkRUNITyAiKioqIGFwcGxpY2F0aW9uIGlzIGxpbmtlZCB3aXRoIHRoZSAtZGxvcGVuIGZsYWcuIgorCSAgICBlY2hvICIqKiogYSBzdGF0aWMgbW9kdWxlLCB0aGF0IHNob3VsZCB3b3JrIGFzIGxvbmcgYXMgdGhlIGRsb3BlbmluZyIKKwkgICAgZWNobyAiKioqIGFwcGxpY2F0aW9uIGlzIGxpbmtlZCB3aXRoIHRoZSAtZGxvcGVuIGZsYWcuIgogCSAgICBpZiB0ZXN0IC16ICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgotCSAgICAgICRFQ0hPCi0JICAgICAgJEVDSE8gIioqKiBIb3dldmVyLCB0aGlzIHdvdWxkIG9ubHkgd29yayBpZiBsaWJ0b29sIHdhcyBhYmxlIHRvIGV4dHJhY3Qgc3ltYm9sIgotCSAgICAgICRFQ0hPICIqKiogbGlzdHMgZnJvbSBhIHByb2dyYW0sIHVzaW5nIFxgbm0nIG9yIGVxdWl2YWxlbnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgotCSAgICAgICRFQ0hPICIqKiogbm90IGZpbmQgc3VjaCBhIHByb2dyYW0uICBTbywgdGhpcyBtb2R1bGUgaXMgcHJvYmFibHkgdXNlbGVzcy4iCi0JICAgICAgJEVDSE8gIioqKiBcYG5tJyBmcm9tIEdOVSBiaW51dGlscyBhbmQgYSBmdWxsIHJlYnVpbGQgbWF5IGhlbHAuIgorCSAgICAgIGVjaG8KKwkgICAgICBlY2hvICIqKiogSG93ZXZlciwgdGhpcyB3b3VsZCBvbmx5IHdvcmsgaWYgbGlidG9vbCB3YXMgYWJsZSB0byBleHRyYWN0IHN5bWJvbCIKKwkgICAgICBlY2hvICIqKiogbGlzdHMgZnJvbSBhIHByb2dyYW0sIHVzaW5nIFxgbm0nIG9yIGVxdWl2YWxlbnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgorCSAgICAgIGVjaG8gIioqKiBub3QgZmluZCBzdWNoIGEgcHJvZ3JhbS4gIFNvLCB0aGlzIG1vZHVsZSBpcyBwcm9iYWJseSB1c2VsZXNzLiIKKwkgICAgICBlY2hvICIqKiogXGBubScgZnJvbSBHTlUgYmludXRpbHMgYW5kIGEgZnVsbCByZWJ1aWxkIG1heSBoZWxwLiIKIAkgICAgZmkKIAkgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IG5vOyB0aGVuCiAJICAgICAgb2xkbGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKQEAgLTY4MTMsMTYgKzc5NTUsMTYgQEAKIAkgICAgICBidWlsZF9saWJ0b29sX2xpYnM9bm8KIAkgICAgZmkKIAkgIGVsc2UKLQkgICAgJEVDSE8gIioqKiBUaGUgaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgdGhhdCBoYXZlIGJlZW4gZHJvcHBlZCBoZXJlIHdpbGwgYmUiCi0JICAgICRFQ0hPICIqKiogYXV0b21hdGljYWxseSBhZGRlZCB3aGVuZXZlciBhIHByb2dyYW0gaXMgbGlua2VkIHdpdGggdGhpcyBsaWJyYXJ5IgotCSAgICAkRUNITyAiKioqIG9yIGlzIGRlY2xhcmVkIHRvIC1kbG9wZW4gaXQuIgorCSAgICBlY2hvICIqKiogVGhlIGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIHRoYXQgaGF2ZSBiZWVuIGRyb3BwZWQgaGVyZSB3aWxsIGJlIgorCSAgICBlY2hvICIqKiogYXV0b21hdGljYWxseSBhZGRlZCB3aGVuZXZlciBhIHByb2dyYW0gaXMgbGlua2VkIHdpdGggdGhpcyBsaWJyYXJ5IgorCSAgICBlY2hvICIqKiogb3IgaXMgZGVjbGFyZWQgdG8gLWRsb3BlbiBpdC4iCiAKIAkgICAgaWYgdGVzdCAiJGFsbG93X3VuZGVmaW5lZCIgPSBubzsgdGhlbgotCSAgICAgICRFQ0hPCi0JICAgICAgJEVDSE8gIioqKiBTaW5jZSB0aGlzIGxpYnJhcnkgbXVzdCBub3QgY29udGFpbiB1bmRlZmluZWQgc3ltYm9scywiCi0JICAgICAgJEVDSE8gIioqKiBiZWNhdXNlIGVpdGhlciB0aGUgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0aGVtIG9yIgotCSAgICAgICRFQ0hPICIqKiogaXQgd2FzIGV4cGxpY2l0bHkgcmVxdWVzdGVkIHdpdGggLW5vLXVuZGVmaW5lZCwiCi0JICAgICAgJEVDSE8gIioqKiBsaWJ0b29sIHdpbGwgb25seSBjcmVhdGUgYSBzdGF0aWMgdmVyc2lvbiBvZiBpdC4iCisJICAgICAgZWNobworCSAgICAgIGVjaG8gIioqKiBTaW5jZSB0aGlzIGxpYnJhcnkgbXVzdCBub3QgY29udGFpbiB1bmRlZmluZWQgc3ltYm9scywiCisJICAgICAgZWNobyAiKioqIGJlY2F1c2UgZWl0aGVyIHRoZSBwbGF0Zm9ybSBkb2VzIG5vdCBzdXBwb3J0IHRoZW0gb3IiCisJICAgICAgZWNobyAiKioqIGl0IHdhcyBleHBsaWNpdGx5IHJlcXVlc3RlZCB3aXRoIC1uby11bmRlZmluZWQsIgorCSAgICAgIGVjaG8gIioqKiBsaWJ0b29sIHdpbGwgb25seSBjcmVhdGUgYSBzdGF0aWMgdmVyc2lvbiBvZiBpdC4iCiAJICAgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IG5vOyB0aGVuCiAJCW9sZGxpYnM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLiRsaWJleHQiCiAJCWJ1aWxkX2xpYnRvb2xfbGlicz1tb2R1bGUKQEAgLTY4MzksOSArNzk4MSw5IEBACiAgICAgICAjIFRpbWUgdG8gY2hhbmdlIGFsbCBvdXIgImZvby5sdGZyYW1ld29yayIgc3R1ZmYgYmFjayB0byAiLWZyYW1ld29yayBmb28iCiAgICAgICBjYXNlICRob3N0IGluCiAJKi0qLWRhcndpbiopCi0JICBuZXdkZXBsaWJzPWAkRUNITyAiWCAkbmV3ZGVwbGlicyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKLQkgIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPWAkRUNITyAiWCAkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCi0JICBkZXBsaWJzPWAkRUNITyAiWCAkZGVwbGlicyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKwkgIG5ld2RlcGxpYnM9YCRFQ0hPICIgJG5ld2RlcGxpYnMiIHwgJFNFRCAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKwkgIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPWAkRUNITyAiICRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyIgfCAkU0VEICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAorCSAgZGVwbGlicz1gJEVDSE8gIiAkZGVwbGlicyIgfCAkU0VEICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAogCSAgOzsKICAgICAgIGVzYWMKIApAQCAtNjg1NCw3ICs3OTk2LDcgQEAKIAkqKQogCSAgY2FzZSAiICRkZXBsaWJzICIgaW4KIAkgICoiIC1MJHBhdGgvJG9iamRpciAiKikKLQkgICAgbmV3X2xpYnM9IiRuZXdfbGlicyAtTCRwYXRoLyRvYmpkaXIiIDs7CisJICAgIGZ1bmNfYXBwZW5kIG5ld19saWJzICIgLUwkcGF0aC8kb2JqZGlyIiA7OwogCSAgZXNhYwogCSAgOzsKIAllc2FjCkBAIC02ODY0LDEwICs4MDA2LDEwIEBACiAJLUwqKQogCSAgY2FzZSAiICRuZXdfbGlicyAiIGluCiAJICAqIiAkZGVwbGliICIqKSA7OwotCSAgKikgbmV3X2xpYnM9IiRuZXdfbGlicyAkZGVwbGliIiA7OworCSAgKikgZnVuY19hcHBlbmQgbmV3X2xpYnMgIiAkZGVwbGliIiA7OwogCSAgZXNhYwogCSAgOzsKLQkqKSBuZXdfbGlicz0iJG5ld19saWJzICRkZXBsaWIiIDs7CisJKikgZnVuY19hcHBlbmQgbmV3X2xpYnMgIiAkZGVwbGliIiA7OwogCWVzYWMKICAgICAgIGRvbmUKICAgICAgIGRlcGxpYnM9IiRuZXdfbGlicyIKQEAgLTY4ODQsMTAgKzgwMjYsMTIgQEAKIAkgIGhhcmRjb2RlX2xpYmRpcnM9CiAJICBkZXBfcnBhdGg9CiAJICBycGF0aD0iJGZpbmFsaXplX3JwYXRoIgotCSAgdGVzdCAiJG1vZGUiICE9IHJlbGluayAmJiBycGF0aD0iJGNvbXBpbGVfcnBhdGgkcnBhdGgiCisJICB0ZXN0ICIkb3B0X21vZGUiICE9IHJlbGluayAmJiBycGF0aD0iJGNvbXBpbGVfcnBhdGgkcnBhdGgiCiAJICBmb3IgbGliZGlyIGluICRycGF0aDsgZG8KIAkgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCiAJICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisJCWZ1bmNfcmVwbGFjZV9zeXNyb290ICIkbGliZGlyIgorCQlsaWJkaXI9JGZ1bmNfcmVwbGFjZV9zeXNyb290X3Jlc3VsdAogCQlpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KIAkJICBoYXJkY29kZV9saWJkaXJzPSIkbGliZGlyIgogCQllbHNlCkBAIC02ODk2LDE4ICs4MDQwLDE4IEBACiAJCSAgKiIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIqKQogCQkgICAgOzsKIAkJICAqKQotCQkgICAgaGFyZGNvZGVfbGliZGlycz0iJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCisJCSAgICBmdW5jX2FwcGVuZCBoYXJkY29kZV9saWJkaXJzICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCiAJCSAgICA7OwogCQkgIGVzYWMKIAkJZmkKIAkgICAgICBlbHNlCiAJCWV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKLQkJZGVwX3JwYXRoPSIkZGVwX3JwYXRoICRmbGFnIgorCQlmdW5jX2FwcGVuZCBkZXBfcnBhdGggIiAkZmxhZyIKIAkgICAgICBmaQogCSAgICBlbGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KIAkgICAgICBjYXNlICIkcGVybV9ycGF0aCAiIGluCiAJICAgICAgKiIgJGxpYmRpciAiKikgOzsKLQkgICAgICAqKSBwZXJtX3JwYXRoPSIkcGVybV9ycGF0aCAkbGliZGlyIiA7OworCSAgICAgICopIGZ1bmNfYXBwZW5kIHBlcm1fcnBhdGggIiAkbGliZGlyIiA7OwogCSAgICAgIGVzYWMKIAkgICAgZmkKIAkgIGRvbmUKQEAgLTY5MjUsNyArODA2OSw3IEBACiAJICAgICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVucGF0aF92YXIuCiAJICAgIHJwYXRoPQogCSAgICBmb3IgZGlyIGluICRwZXJtX3JwYXRoOyBkbwotCSAgICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIKKwkgICAgICBmdW5jX2FwcGVuZCBycGF0aCAiJGRpcjoiCiAJICAgIGRvbmUKIAkgICAgZXZhbCAiJHJ1bnBhdGhfdmFyPSckcnBhdGhcJCRydW5wYXRoX3Zhcic7IGV4cG9ydCAkcnVucGF0aF92YXIiCiAJICBmaQpAQCAtNjkzMyw3ICs4MDc3LDcgQEAKIAlmaQogCiAJc2hsaWJwYXRoPSIkZmluYWxpemVfc2hsaWJwYXRoIgotCXRlc3QgIiRtb2RlIiAhPSByZWxpbmsgJiYgc2hsaWJwYXRoPSIkY29tcGlsZV9zaGxpYnBhdGgkc2hsaWJwYXRoIgorCXRlc3QgIiRvcHRfbW9kZSIgIT0gcmVsaW5rICYmIHNobGlicGF0aD0iJGNvbXBpbGVfc2hsaWJwYXRoJHNobGlicGF0aCIKIAlpZiB0ZXN0IC1uICIkc2hsaWJwYXRoIjsgdGhlbgogCSAgZXZhbCAiJHNobGlicGF0aF92YXI9JyRzaGxpYnBhdGhcJCRzaGxpYnBhdGhfdmFyJzsgZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgogCWZpCkBAIC02OTU5LDE4ICs4MTAzLDE4IEBACiAJbGlua25hbWVzPQogCWZvciBsaW5rCiAJZG8KLQkgIGxpbmtuYW1lcz0iJGxpbmtuYW1lcyAkbGluayIKKwkgIGZ1bmNfYXBwZW5kIGxpbmtuYW1lcyAiICRsaW5rIgogCWRvbmUKIAogCSMgVXNlIHN0YW5kYXJkIG9iamVjdHMgaWYgdGhleSBhcmUgcGljCi0JdGVzdCAteiAiJHBpY19mbGFnIiAmJiBsaWJvYmpzPWAkRUNITyAiWCRsaWJvYmpzIiB8ICRTUDJOTCB8ICRYc2VkIC1lICIkbG8ybyIgfCAkTkwyU1BgCisJdGVzdCAteiAiJHBpY19mbGFnIiAmJiBsaWJvYmpzPWAkRUNITyAiJGxpYm9ianMiIHwgJFNQMk5MIHwgJFNFRCAiJGxvMm8iIHwgJE5MMlNQYAogCXRlc3QgIlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9CiAKIAlkZWxmaWxlcz0KIAlpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRpbmNsdWRlX2V4cHN5bXMiOyB0aGVuCiAJICAkb3B0X2RyeV9ydW4gfHwgY3AgIiRleHBvcnRfc3ltYm9scyIgIiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnVleHAiCiAJICBleHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudWV4cCIKLQkgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJGV4cG9ydF9zeW1ib2xzIgorCSAgZnVuY19hcHBlbmQgZGVsZmlsZXMgIiAkZXhwb3J0X3N5bWJvbHMiCiAJZmkKIAogCW9yaWdfZXhwb3J0X3N5bWJvbHM9CkBAIC03MDAxLDE0ICs4MTQ1LDQ2IEBACiAJICAgICRvcHRfZHJ5X3J1biB8fCAkUk0gJGV4cG9ydF9zeW1ib2xzCiAJICAgIGNtZHM9JGV4cG9ydF9zeW1ib2xzX2NtZHMKIAkgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCi0JICAgIGZvciBjbWQgaW4gJGNtZHM7IGRvCisJICAgIGZvciBjbWQxIGluICRjbWRzOyBkbwogCSAgICAgIElGUz0iJHNhdmVfaWZzIgotCSAgICAgIGV2YWwgY21kPVwiJGNtZFwiCi0JICAgICAgZnVuY19sZW4gIiAkY21kIgotCSAgICAgIGxlbj0kZnVuY19sZW5fcmVzdWx0Ci0JICAgICAgaWYgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iIHx8IHRlc3QgIiRtYXhfY21kX2xlbiIgLWxlIC0xOyB0aGVuCisJICAgICAgIyBUYWtlIHRoZSBub3JtYWwgYnJhbmNoIGlmIHRoZSBubV9maWxlX2xpc3Rfc3BlYyBicmFuY2gKKwkgICAgICAjIGRvZXNuJ3Qgd29yayBvciBpZiB0b29sIGNvbnZlcnNpb24gaXMgbm90IG5lZWRlZC4KKwkgICAgICBjYXNlICRubV9maWxlX2xpc3Rfc3BlY34kdG9fdG9vbF9maWxlX2NtZCBpbgorCQkqfmZ1bmNfY29udmVydF9maWxlX25vb3AgfCAqfmZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyIHwgfiopCisJCSAgdHJ5X25vcm1hbF9icmFuY2g9eWVzCisJCSAgZXZhbCBjbWQ9XCIkY21kMVwiCisJCSAgZnVuY19sZW4gIiAkY21kIgorCQkgIGxlbj0kZnVuY19sZW5fcmVzdWx0CisJCSAgOzsKKwkJKikKKwkJICB0cnlfbm9ybWFsX2JyYW5jaD1ubworCQkgIDs7CisJICAgICAgZXNhYworCSAgICAgIGlmIHRlc3QgIiR0cnlfbm9ybWFsX2JyYW5jaCIgPSB5ZXMgXAorCQkgJiYgeyB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiIgXAorCQkgICAgICB8fCB0ZXN0ICIkbWF4X2NtZF9sZW4iIC1sZSAtMTsgfQorCSAgICAgIHRoZW4KIAkJZnVuY19zaG93X2V2YWwgIiRjbWQiICdleGl0ICQ/JwogCQlza2lwcGVkX2V4cG9ydD1mYWxzZQorCSAgICAgIGVsaWYgdGVzdCAtbiAiJG5tX2ZpbGVfbGlzdF9zcGVjIjsgdGhlbgorCQlmdW5jX2Jhc2VuYW1lICIkb3V0cHV0IgorCQlvdXRwdXRfbGE9JGZ1bmNfYmFzZW5hbWVfcmVzdWx0CisJCXNhdmVfbGlib2Jqcz0kbGlib2JqcworCQlzYXZlX291dHB1dD0kb3V0cHV0CisJCW91dHB1dD0ke291dHB1dF9vYmpkaXJ9LyR7b3V0cHV0X2xhfS5ubQorCQlmdW5jX3RvX3Rvb2xfZmlsZSAiJG91dHB1dCIKKwkJbGlib2Jqcz0kbm1fZmlsZV9saXN0X3NwZWMkZnVuY190b190b29sX2ZpbGVfcmVzdWx0CisJCWZ1bmNfYXBwZW5kIGRlbGZpbGVzICIgJG91dHB1dCIKKwkJZnVuY192ZXJib3NlICJjcmVhdGluZyAkTk0gaW5wdXQgZmlsZSBsaXN0OiAkb3V0cHV0IgorCQlmb3Igb2JqIGluICRzYXZlX2xpYm9ianM7IGRvCisJCSAgZnVuY190b190b29sX2ZpbGUgIiRvYmoiCisJCSAgJEVDSE8gIiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQiCisJCWRvbmUgPiAiJG91dHB1dCIKKwkJZXZhbCBjbWQ9XCIkY21kMVwiCisJCWZ1bmNfc2hvd19ldmFsICIkY21kIiAnZXhpdCAkPycKKwkJb3V0cHV0PSRzYXZlX291dHB1dAorCQlsaWJvYmpzPSRzYXZlX2xpYm9ianMKKwkJc2tpcHBlZF9leHBvcnQ9ZmFsc2UKIAkgICAgICBlbHNlCiAJCSMgVGhlIGNvbW1hbmQgbGluZSBpcyB0b28gbG9uZyB0byBleGVjdXRlIGluIG9uZSBzdGVwLgogCQlmdW5jX3ZlcmJvc2UgInVzaW5nIHJlbG9hZGFibGUgb2JqZWN0IGZpbGUgZm9yIGV4cG9ydCBsaXN0Li4uIgpAQCAtNzAyOSw3ICs4MjA1LDcgQEAKIAlpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRpbmNsdWRlX2V4cHN5bXMiOyB0aGVuCiAJICB0bXBfZXhwb3J0X3N5bWJvbHM9IiRleHBvcnRfc3ltYm9scyIKIAkgIHRlc3QgLW4gIiRvcmlnX2V4cG9ydF9zeW1ib2xzIiAmJiB0bXBfZXhwb3J0X3N5bWJvbHM9IiRvcmlnX2V4cG9ydF9zeW1ib2xzIgotCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgJyRFQ0hPICJYJGluY2x1ZGVfZXhwc3ltcyIgfCAkWHNlZCB8ICRTUDJOTCA+PiAiJHRtcF9leHBvcnRfc3ltYm9scyInCisJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnJEVDSE8gIiRpbmNsdWRlX2V4cHN5bXMiIHwgJFNQMk5MID4+ICIkdG1wX2V4cG9ydF9zeW1ib2xzIicKIAlmaQogCiAJaWYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6IiAmJiB0ZXN0IC1uICIkb3JpZ19leHBvcnRfc3ltYm9scyI7IHRoZW4KQEAgLTcwNDEsNyArODIxNyw3IEBACiAJICAjIGdsb2JhbCB2YXJpYWJsZXMuIGpvaW4oMSkgd291bGQgYmUgbmljZSBoZXJlLCBidXQgdW5mb3J0dW5hdGVseQogCSAgIyBpc24ndCBhIGJsZXNzZWQgdG9vbC4KIAkgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1lICcvWyAsXURBVEEvIWQ7cyxcKC4qXClcKFsgXCxdLipcKSxzfF5cMSR8XDFcMnwsJyA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlcgotCSAgZGVsZmlsZXM9IiRkZWxmaWxlcyAkZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIgorCSAgZnVuY19hcHBlbmQgZGVsZmlsZXMgIiAkZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIgogCSAgZXhwb3J0X3N5bWJvbHM9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmCiAJICAkb3B0X2RyeV9ydW4gfHwgJFNFRCAtZiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIgPCAkb3JpZ19leHBvcnRfc3ltYm9scyA+ICRleHBvcnRfc3ltYm9scwogCWZpCkBAIC03MDUxLDcgKzgyMjcsNyBAQAogCSAgY2FzZSAiICRjb252ZW5pZW5jZSAiIGluCiAJICAqIiAkdGVzdF9kZXBsaWIgIiopIDs7CiAJICAqKQotCSAgICB0bXBfZGVwbGlicz0iJHRtcF9kZXBsaWJzICR0ZXN0X2RlcGxpYiIKKwkgICAgZnVuY19hcHBlbmQgdG1wX2RlcGxpYnMgIiAkdGVzdF9kZXBsaWIiCiAJICAgIDs7CiAJICBlc2FjCiAJZG9uZQpAQCAtNzA3MSwyMSArODI0NywyMSBAQAogCSAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQogCSAgZWxzZQogCSAgICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgotCSAgICBnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKKwkgICAgZnVuY19hcHBlbmQgZ2VuZXJhdGVkICIgJGdlbnRvcCIKIAogCSAgICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkY29udmVuaWVuY2UKLQkgICAgbGlib2Jqcz0iJGxpYm9ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCisJICAgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKIAkgICAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KIAkgIGZpCiAJZmkKIAogCWlmIHRlc3QgIiR0aHJlYWRfc2FmZSIgPSB5ZXMgJiYgdGVzdCAtbiAiJHRocmVhZF9zYWZlX2ZsYWdfc3BlYyI7IHRoZW4KIAkgIGV2YWwgZmxhZz1cIiR0aHJlYWRfc2FmZV9mbGFnX3NwZWNcIgotCSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRmbGFnIgorCSAgZnVuY19hcHBlbmQgbGlua2VyX2ZsYWdzICIgJGZsYWciCiAJZmkKIAogCSMgTWFrZSBhIGJhY2t1cCBvZiB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSB3aGVuIHJlbGlua2luZwotCWlmIHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgorCWlmIHRlc3QgIiRvcHRfbW9kZSIgPSByZWxpbms7IHRoZW4KIAkgICRvcHRfZHJ5X3J1biB8fCBldmFsICcoY2QgJG91dHB1dF9vYmpkaXIgJiYgJFJNICR7cmVhbG5hbWV9VSAmJiAkTVYgJHJlYWxuYW1lICR7cmVhbG5hbWV9VSknIHx8IGV4aXQgJD8KIAlmaQogCkBAIC03MTMwLDcgKzgzMDYsOCBAQAogCSAgICBzYXZlX2xpYm9ianM9JGxpYm9ianMKIAkgIGZpCiAJICBzYXZlX291dHB1dD0kb3V0cHV0Ci0JICBvdXRwdXRfbGE9YCRFQ0hPICJYJG91dHB1dCIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAKKwkgIGZ1bmNfYmFzZW5hbWUgIiRvdXRwdXQiCisJICBvdXRwdXRfbGE9JGZ1bmNfYmFzZW5hbWVfcmVzdWx0CiAKIAkgICMgQ2xlYXIgdGhlIHJlbG9hZGFibGUgb2JqZWN0IGNyZWF0aW9uIGNvbW1hbmQgcXVldWUgYW5kCiAJICAjIGluaXRpYWxpemUgayB0byBvbmUuCkBAIC03MTQzLDEzICs4MzIwLDE2IEBACiAJICBpZiB0ZXN0IC1uICIkc2F2ZV9saWJvYmpzIiAmJiB0ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KIAkgICAgb3V0cHV0PSR7b3V0cHV0X29iamRpcn0vJHtvdXRwdXRfbGF9Lmxua3NjcmlwdAogCSAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nIEdOVSBsZCBzY3JpcHQ6ICRvdXRwdXQiCi0JICAgICRFQ0hPICdJTlBVVCAoJyA+ICRvdXRwdXQKKwkgICAgZWNobyAnSU5QVVQgKCcgPiAkb3V0cHV0CiAJICAgIGZvciBvYmogaW4gJHNhdmVfbGlib2JqcwogCSAgICBkbwotCSAgICAgICRFQ0hPICIkb2JqIiA+PiAkb3V0cHV0CisJICAgICAgZnVuY190b190b29sX2ZpbGUgIiRvYmoiCisJICAgICAgJEVDSE8gIiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQiID4+ICRvdXRwdXQKIAkgICAgZG9uZQotCSAgICAkRUNITyAnKScgPj4gJG91dHB1dAotCSAgICBkZWxmaWxlcz0iJGRlbGZpbGVzICRvdXRwdXQiCisJICAgIGVjaG8gJyknID4+ICRvdXRwdXQKKwkgICAgZnVuY19hcHBlbmQgZGVsZmlsZXMgIiAkb3V0cHV0IgorCSAgICBmdW5jX3RvX3Rvb2xfZmlsZSAiJG91dHB1dCIKKwkgICAgb3V0cHV0PSRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQKIAkgIGVsaWYgdGVzdCAtbiAiJHNhdmVfbGlib2JqcyIgJiYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6IiAmJiB0ZXN0ICJYJGZpbGVfbGlzdF9zcGVjIiAhPSBYOyB0aGVuCiAJICAgIG91dHB1dD0ke291dHB1dF9vYmpkaXJ9LyR7b3V0cHV0X2xhfS5sbmsKIAkgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyBsaW5rZXIgaW5wdXQgZmlsZSBsaXN0OiAkb3V0cHV0IgpAQCAtNzE2MywxMCArODM0MywxMiBAQAogCSAgICBmaQogCSAgICBmb3Igb2JqCiAJICAgIGRvCi0JICAgICAgJEVDSE8gIiRvYmoiID4+ICRvdXRwdXQKKwkgICAgICBmdW5jX3RvX3Rvb2xfZmlsZSAiJG9iaiIKKwkgICAgICAkRUNITyAiJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdCIgPj4gJG91dHB1dAogCSAgICBkb25lCi0JICAgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJG91dHB1dCIKLQkgICAgb3V0cHV0PSRmaXJzdG9ialwiJGZpbGVfbGlzdF9zcGVjJG91dHB1dFwiCisJICAgIGZ1bmNfYXBwZW5kIGRlbGZpbGVzICIgJG91dHB1dCIKKwkgICAgZnVuY190b190b29sX2ZpbGUgIiRvdXRwdXQiCisJICAgIG91dHB1dD0kZmlyc3RvYmpcIiRmaWxlX2xpc3Rfc3BlYyRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHRcIgogCSAgZWxzZQogCSAgICBpZiB0ZXN0IC1uICIkc2F2ZV9saWJvYmpzIjsgdGhlbgogCSAgICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXMuLi4iCkBAIC03MTkwLDE3ICs4MzcyLDE5IEBACiAJCSAgIyBjb21tYW5kIHRvIHRoZSBxdWV1ZS4KIAkJICBpZiB0ZXN0ICIkayIgLWVxIDEgOyB0aGVuCiAJCSAgICAjIFRoZSBmaXJzdCBmaWxlIGRvZXNuJ3QgaGF2ZSBhIHByZXZpb3VzIGNvbW1hbmQgdG8gYWRkLgotCQkgICAgZXZhbCBjb25jYXRfY21kcz1cIiRyZWxvYWRfY21kcyAkb2JqbGlzdCAkbGFzdF9yb2JqXCIKKwkJICAgIHJlbG9hZF9vYmpzPSRvYmpsaXN0CisJCSAgICBldmFsIGNvbmNhdF9jbWRzPVwiJHJlbG9hZF9jbWRzXCIKIAkJICBlbHNlCiAJCSAgICAjIEFsbCBzdWJzZXF1ZW50IHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzIHdpbGwgbGluayBpbgogCQkgICAgIyB0aGUgbGFzdCBvbmUgY3JlYXRlZC4KLQkJICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJGNvbmNhdF9jbWRzfiRyZWxvYWRfY21kcyAkb2JqbGlzdCAkbGFzdF9yb2JqflwkUk0gJGxhc3Rfcm9ialwiCisJCSAgICByZWxvYWRfb2Jqcz0iJG9iamxpc3QgJGxhc3Rfcm9iaiIKKwkJICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJGNvbmNhdF9jbWRzfiRyZWxvYWRfY21kc35cJFJNICRsYXN0X3JvYmpcIgogCQkgIGZpCiAJCSAgbGFzdF9yb2JqPSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4kb2JqZXh0CiAJCSAgZnVuY19hcml0aCAkayArIDEKIAkJICBrPSRmdW5jX2FyaXRoX3Jlc3VsdAogCQkgIG91dHB1dD0kb3V0cHV0X29iamRpci8kb3V0cHV0X2xhLSR7a30uJG9iamV4dAotCQkgIG9iamxpc3Q9JG9iagorCQkgIG9iamxpc3Q9IiAkb2JqIgogCQkgIGZ1bmNfbGVuICIgJGxhc3Rfcm9iaiIKIAkJICBmdW5jX2FyaXRoICRsZW4wICsgJGZ1bmNfbGVuX3Jlc3VsdAogCQkgIGxlbj0kZnVuY19hcml0aF9yZXN1bHQKQEAgLTcyMTAsMTEgKzgzOTQsMTIgQEAKIAkgICAgICAjIHJlbG9hZGFibGUgb2JqZWN0IGZpbGUuICBBbGwgc3Vic2VxdWVudCByZWxvYWRhYmxlIG9iamVjdAogCSAgICAgICMgZmlsZXMgd2lsbCBsaW5rIGluIHRoZSBsYXN0IG9uZSBjcmVhdGVkLgogCSAgICAgIHRlc3QgLXogIiRjb25jYXRfY21kcyIgfHwgY29uY2F0X2NtZHM9JGNvbmNhdF9jbWRzfgotCSAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJHtjb25jYXRfY21kc30kcmVsb2FkX2NtZHMgJG9iamxpc3QgJGxhc3Rfcm9ialwiCisJICAgICAgcmVsb2FkX29ianM9IiRvYmpsaXN0ICRsYXN0X3JvYmoiCisJICAgICAgZXZhbCBjb25jYXRfY21kcz1cIlwke2NvbmNhdF9jbWRzfSRyZWxvYWRfY21kc1wiCiAJICAgICAgaWYgdGVzdCAtbiAiJGxhc3Rfcm9iaiI7IHRoZW4KIAkgICAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJHtjb25jYXRfY21kc31+XCRSTSAkbGFzdF9yb2JqXCIKIAkgICAgICBmaQotCSAgICAgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJG91dHB1dCIKKwkgICAgICBmdW5jX2FwcGVuZCBkZWxmaWxlcyAiICRvdXRwdXQiCiAKIAkgICAgZWxzZQogCSAgICAgIG91dHB1dD0KQEAgLTcyNDgsNyArODQzMyw3IEBACiAJCWx0X2V4aXQ9JD8KIAogCQkjIFJlc3RvcmUgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgYW5kIGV4aXQKLQkJaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCisJCWlmIHRlc3QgIiRvcHRfbW9kZSIgPSByZWxpbms7IHRoZW4KIAkJICAoIGNkICIkb3V0cHV0X29iamRpciIgJiYgXAogCQkgICAgJFJNICIke3JlYWxuYW1lfVQiICYmIFwKIAkJICAgICRNViAiJHtyZWFsbmFtZX1VIiAiJHJlYWxuYW1lIiApCkBAIC03MjY5LDcgKzg0NTQsNyBAQAogCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRpbmNsdWRlX2V4cHN5bXMiOyB0aGVuCiAJICAgICAgdG1wX2V4cG9ydF9zeW1ib2xzPSIkZXhwb3J0X3N5bWJvbHMiCiAJICAgICAgdGVzdCAtbiAiJG9yaWdfZXhwb3J0X3N5bWJvbHMiICYmIHRtcF9leHBvcnRfc3ltYm9scz0iJG9yaWdfZXhwb3J0X3N5bWJvbHMiCi0JICAgICAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgJyRFQ0hPICJYJGluY2x1ZGVfZXhwc3ltcyIgfCAkWHNlZCB8ICRTUDJOTCA+PiAiJHRtcF9leHBvcnRfc3ltYm9scyInCisJICAgICAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgJyRFQ0hPICIkaW5jbHVkZV9leHBzeW1zIiB8ICRTUDJOTCA+PiAiJHRtcF9leHBvcnRfc3ltYm9scyInCiAJICAgIGZpCiAKIAkgICAgaWYgdGVzdCAtbiAiJG9yaWdfZXhwb3J0X3N5bWJvbHMiOyB0aGVuCkBAIC03MjgxLDcgKzg0NjYsNyBAQAogCSAgICAgICMgZ2xvYmFsIHZhcmlhYmxlcy4gam9pbigxKSB3b3VsZCBiZSBuaWNlIGhlcmUsIGJ1dCB1bmZvcnR1bmF0ZWx5CiAJICAgICAgIyBpc24ndCBhIGJsZXNzZWQgdG9vbC4KIAkgICAgICAkb3B0X2RyeV9ydW4gfHwgJFNFRCAtZSAnL1sgLF1EQVRBLyFkO3MsXCguKlwpXChbIFwsXS4qXCksc3xeXDEkfFwxXDJ8LCcgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIKLQkgICAgICBkZWxmaWxlcz0iJGRlbGZpbGVzICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIiCisJICAgICAgZnVuY19hcHBlbmQgZGVsZmlsZXMgIiAkZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIgogCSAgICAgIGV4cG9ydF9zeW1ib2xzPSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZgogCSAgICAgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1mICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciA8ICRvcmlnX2V4cG9ydF9zeW1ib2xzID4gJGV4cG9ydF9zeW1ib2xzCiAJICAgIGZpCkBAIC03MzIyLDEwICs4NTA3LDEwIEBACiAJIyBBZGQgYW55IG9iamVjdHMgZnJvbSBwcmVsb2FkZWQgY29udmVuaWVuY2UgbGlicmFyaWVzCiAJaWYgdGVzdCAtbiAiJGRscHJlZmlsZXMiOyB0aGVuCiAJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgotCSAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCisJICBmdW5jX2FwcGVuZCBnZW5lcmF0ZWQgIiAkZ2VudG9wIgogCiAJICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkZGxwcmVmaWxlcwotCSAgbGlib2Jqcz0iJGxpYm9ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCisJICBmdW5jX2FwcGVuZCBsaWJvYmpzICIgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCiAJICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQogCWZpCiAKQEAgLTczNDEsNyArODUyNiw3IEBACiAJICAgIGx0X2V4aXQ9JD8KIAogCSAgICAjIFJlc3RvcmUgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgYW5kIGV4aXQKLQkgICAgaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCisJICAgIGlmIHRlc3QgIiRvcHRfbW9kZSIgPSByZWxpbms7IHRoZW4KIAkgICAgICAoIGNkICIkb3V0cHV0X29iamRpciIgJiYgXAogCSAgICAgICAgJFJNICIke3JlYWxuYW1lfVQiICYmIFwKIAkJJE1WICIke3JlYWxuYW1lfVUiICIkcmVhbG5hbWUiICkKQEAgLTczNTMsNyArODUzOCw3IEBACiAJSUZTPSIkc2F2ZV9pZnMiCiAKIAkjIFJlc3RvcmUgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgYW5kIGV4aXQKLQlpZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KKwlpZiB0ZXN0ICIkb3B0X21vZGUiID0gcmVsaW5rOyB0aGVuCiAJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnKGNkICRvdXRwdXRfb2JqZGlyICYmICRSTSAke3JlYWxuYW1lfVQgJiYgJE1WICRyZWFsbmFtZSAke3JlYWxuYW1lfVQgJiYgJE1WICR7cmVhbG5hbWV9VSAkcmVhbG5hbWUpJyB8fCBleGl0ICQ/CiAKIAkgIGlmIHRlc3QgLW4gIiRjb252ZW5pZW5jZSI7IHRoZW4KQEAgLTc0MzQsMTggKzg2MTksMjEgQEAKICAgICAgIGlmIHRlc3QgLW4gIiRjb252ZW5pZW5jZSI7IHRoZW4KIAlpZiB0ZXN0IC1uICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCiAJICBldmFsIHRtcF93aG9sZV9hcmNoaXZlX2ZsYWdzPVwiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjXCIKLQkgIHJlbG9hZF9jb252X29ianM9JHJlbG9hZF9vYmpzXCBgJEVDSE8gIlgkdG1wX3dob2xlX2FyY2hpdmVfZmxhZ3MiIHwgJFhzZWQgLWUgJ3N8LHwgfGcnYAorCSAgcmVsb2FkX2NvbnZfb2Jqcz0kcmVsb2FkX29ianNcIGAkRUNITyAiJHRtcF93aG9sZV9hcmNoaXZlX2ZsYWdzIiB8ICRTRUQgJ3N8LHwgfGcnYAogCWVsc2UKIAkgIGdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvYmp9eCIKLQkgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgorCSAgZnVuY19hcHBlbmQgZ2VuZXJhdGVkICIgJGdlbnRvcCIKIAogCSAgZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGNvbnZlbmllbmNlCiAJICByZWxvYWRfY29udl9vYmpzPSIkcmVsb2FkX29ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCiAJZmkKICAgICAgIGZpCiAKKyAgICAgICMgSWYgd2UncmUgbm90IGJ1aWxkaW5nIHNoYXJlZCwgd2UgbmVlZCB0byB1c2Ugbm9uX3BpY19vYmpzCisgICAgICB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXMgJiYgbGlib2Jqcz0iJG5vbl9waWNfb2JqZWN0cyIKKwogICAgICAgIyBDcmVhdGUgdGhlIG9sZC1zdHlsZSBvYmplY3QuCi0gICAgICByZWxvYWRfb2Jqcz0iJG9ianMkb2xkX2RlcGxpYnMgImAkRUNITyAiWCRsaWJvYmpzIiB8ICRTUDJOTCB8ICRYc2VkIC1lICcvXC4nJHtsaWJleHR9JCcvZCcgLWUgJy9cLmxpYiQvZCcgLWUgIiRsbzJvIiB8ICROTDJTUGAiICRyZWxvYWRfY29udl9vYmpzIiAjIyMgdGVzdHN1aXRlOiBza2lwIG5lc3RlZCBxdW90aW5nIHRlc3QKKyAgICAgIHJlbG9hZF9vYmpzPSIkb2JqcyRvbGRfZGVwbGlicyAiYCRFQ0hPICIkbGlib2JqcyIgfCAkU1AyTkwgfCAkU0VEICIvXC4ke2xpYmV4dH0kL2Q7IC9cLmxpYiQvZDsgJGxvMm8iIHwgJE5MMlNQYCIgJHJlbG9hZF9jb252X29ianMiICMjIyB0ZXN0c3VpdGU6IHNraXAgbmVzdGVkIHF1b3RpbmcgdGVzdAogCiAgICAgICBvdXRwdXQ9IiRvYmoiCiAgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJHJlbG9hZF9jbWRzIiAnZXhpdCAkPycKQEAgLTc1MDUsOCArODY5Myw4IEBACiAgICAgICBjYXNlICRob3N0IGluCiAgICAgICAqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCiAJIyBPbiBSaGFwc29keSByZXBsYWNlIHRoZSBDIGxpYnJhcnkgaXMgdGhlIFN5c3RlbSBmcmFtZXdvcmsKLQljb21waWxlX2RlcGxpYnM9YCRFQ0hPICJYICRjb21waWxlX2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MvIC1sYyAvIFN5c3RlbS5sdGZyYW1ld29yayAvJ2AKLQlmaW5hbGl6ZV9kZXBsaWJzPWAkRUNITyAiWCAkZmluYWxpemVfZGVwbGlicyIgfCAkWHNlZCAtZSAncy8gLWxjIC8gU3lzdGVtLmx0ZnJhbWV3b3JrIC8nYAorCWNvbXBpbGVfZGVwbGlicz1gJEVDSE8gIiAkY29tcGlsZV9kZXBsaWJzIiB8ICRTRUQgJ3MvIC1sYyAvIFN5c3RlbS5sdGZyYW1ld29yayAvJ2AKKwlmaW5hbGl6ZV9kZXBsaWJzPWAkRUNITyAiICRmaW5hbGl6ZV9kZXBsaWJzIiB8ICRTRUQgJ3MvIC1sYyAvIFN5c3RlbS5sdGZyYW1ld29yayAvJ2AKIAk7OwogICAgICAgZXNhYwogCkBAIC03NTE3LDE0ICs4NzA1LDE0IEBACiAJaWYgdGVzdCAiJHRhZ25hbWUiID0gQ1hYIDsgdGhlbgogCSAgY2FzZSAke01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVC0xMC4wfSBpbgogCSAgICAxMC5bMDEyM10pCi0JICAgICAgY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kICR7d2x9LWJpbmRfYXRfbG9hZCIKLQkgICAgICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAke3dsfS1iaW5kX2F0X2xvYWQiCisJICAgICAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJHt3bH0tYmluZF9hdF9sb2FkIgorCSAgICAgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAke3dsfS1iaW5kX2F0X2xvYWQiCiAJICAgIDs7CiAJICBlc2FjCiAJZmkKIAkjIFRpbWUgdG8gY2hhbmdlIGFsbCBvdXIgImZvby5sdGZyYW1ld29yayIgc3R1ZmYgYmFjayB0byAiLWZyYW1ld29yayBmb28iCi0JY29tcGlsZV9kZXBsaWJzPWAkRUNITyAiWCAkY29tcGlsZV9kZXBsaWJzIiB8ICRYc2VkIC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAotCWZpbmFsaXplX2RlcGxpYnM9YCRFQ0hPICJYICRmaW5hbGl6ZV9kZXBsaWJzIiB8ICRYc2VkIC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAorCWNvbXBpbGVfZGVwbGlicz1gJEVDSE8gIiAkY29tcGlsZV9kZXBsaWJzIiB8ICRTRUQgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisJZmluYWxpemVfZGVwbGlicz1gJEVDSE8gIiAkZmluYWxpemVfZGVwbGlicyIgfCAkU0VEICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAogCTs7CiAgICAgICBlc2FjCiAKQEAgLTc1MzgsNyArODcyNiw3IEBACiAJKikKIAkgIGNhc2UgIiAkY29tcGlsZV9kZXBsaWJzICIgaW4KIAkgICoiIC1MJHBhdGgvJG9iamRpciAiKikKLQkgICAgbmV3X2xpYnM9IiRuZXdfbGlicyAtTCRwYXRoLyRvYmpkaXIiIDs7CisJICAgIGZ1bmNfYXBwZW5kIG5ld19saWJzICIgLUwkcGF0aC8kb2JqZGlyIiA7OwogCSAgZXNhYwogCSAgOzsKIAllc2FjCkBAIC03NTQ4LDE3ICs4NzM2LDE3IEBACiAJLUwqKQogCSAgY2FzZSAiICRuZXdfbGlicyAiIGluCiAJICAqIiAkZGVwbGliICIqKSA7OwotCSAgKikgbmV3X2xpYnM9IiRuZXdfbGlicyAkZGVwbGliIiA7OworCSAgKikgZnVuY19hcHBlbmQgbmV3X2xpYnMgIiAkZGVwbGliIiA7OwogCSAgZXNhYwogCSAgOzsKLQkqKSBuZXdfbGlicz0iJG5ld19saWJzICRkZXBsaWIiIDs7CisJKikgZnVuY19hcHBlbmQgbmV3X2xpYnMgIiAkZGVwbGliIiA7OwogCWVzYWMKICAgICAgIGRvbmUKICAgICAgIGNvbXBpbGVfZGVwbGlicz0iJG5ld19saWJzIgogCiAKLSAgICAgIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAkY29tcGlsZV9kZXBsaWJzIgotICAgICAgZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgJGZpbmFsaXplX2RlcGxpYnMiCisgICAgICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkY29tcGlsZV9kZXBsaWJzIgorICAgICAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRmaW5hbGl6ZV9kZXBsaWJzIgogCiAgICAgICBpZiB0ZXN0IC1uICIkcnBhdGgkeHJwYXRoIjsgdGhlbgogCSMgSWYgdGhlIHVzZXIgc3BlY2lmaWVkIGFueSBycGF0aCBmbGFncywgdGhlbiBhZGQgdGhlbS4KQEAgLTc1NjYsNyArODc1NCw3IEBACiAJICAjIFRoaXMgaXMgdGhlIG1hZ2ljIHRvIHVzZSAtcnBhdGguCiAJICBjYXNlICIkZmluYWxpemVfcnBhdGggIiBpbgogCSAgKiIgJGxpYmRpciAiKikgOzsKLQkgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIgOzsKKwkgICopIGZ1bmNfYXBwZW5kIGZpbmFsaXplX3JwYXRoICIgJGxpYmRpciIgOzsKIAkgIGVzYWMKIAlkb25lCiAgICAgICBmaQpAQCAtNzU4NSwxOCArODc3MywxOCBAQAogCSAgICAgICoiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiKikKIAkJOzsKIAkgICAgICAqKQotCQloYXJkY29kZV9saWJkaXJzPSIkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciIKKwkJZnVuY19hcHBlbmQgaGFyZGNvZGVfbGliZGlycyAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyIgogCQk7OwogCSAgICAgIGVzYWMKIAkgICAgZmkKIAkgIGVsc2UKIAkgICAgZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgotCSAgICBycGF0aD0iJHJwYXRoICRmbGFnIgorCSAgICBmdW5jX2FwcGVuZCBycGF0aCAiICRmbGFnIgogCSAgZmkKIAllbGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KIAkgIGNhc2UgIiRwZXJtX3JwYXRoICIgaW4KIAkgICoiICRsaWJkaXIgIiopIDs7Ci0JICAqKSBwZXJtX3JwYXRoPSIkcGVybV9ycGF0aCAkbGliZGlyIiA7OworCSAgKikgZnVuY19hcHBlbmQgcGVybV9ycGF0aCAiICRsaWJkaXIiIDs7CiAJICBlc2FjCiAJZmkKIAljYXNlICRob3N0IGluCkBAIC03NjA1LDEyICs4NzkzLDEyIEBACiAJICBjYXNlIDokZGxsc2VhcmNocGF0aDogaW4KIAkgICoiOiRsaWJkaXI6IiopIDs7CiAJICA6OikgZGxsc2VhcmNocGF0aD0kbGliZGlyOzsKLQkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiRsaWJkaXIiOzsKKwkgICopIGZ1bmNfYXBwZW5kIGRsbHNlYXJjaHBhdGggIjokbGliZGlyIjs7CiAJICBlc2FjCiAJICBjYXNlIDokZGxsc2VhcmNocGF0aDogaW4KIAkgICoiOiR0ZXN0YmluZGlyOiIqKSA7OwogCSAgOjopIGRsbHNlYXJjaHBhdGg9JHRlc3RiaW5kaXI7OwotCSAgKikgZGxsc2VhcmNocGF0aD0iJGRsbHNlYXJjaHBhdGg6JHRlc3RiaW5kaXIiOzsKKwkgICopIGZ1bmNfYXBwZW5kIGRsbHNlYXJjaHBhdGggIjokdGVzdGJpbmRpciI7OwogCSAgZXNhYwogCSAgOzsKIAllc2FjCkBAIC03NjM2LDE4ICs4ODI0LDE4IEBACiAJICAgICAgKiIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIqKQogCQk7OwogCSAgICAgICopCi0JCWhhcmRjb2RlX2xpYmRpcnM9IiRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyIgorCQlmdW5jX2FwcGVuZCBoYXJkY29kZV9saWJkaXJzICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCiAJCTs7CiAJICAgICAgZXNhYwogCSAgICBmaQogCSAgZWxzZQogCSAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCi0JICAgIHJwYXRoPSIkcnBhdGggJGZsYWciCisJICAgIGZ1bmNfYXBwZW5kIHJwYXRoICIgJGZsYWciCiAJICBmaQogCWVsaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgogCSAgY2FzZSAiJGZpbmFsaXplX3Blcm1fcnBhdGggIiBpbgogCSAgKiIgJGxpYmRpciAiKikgOzsKLQkgICopIGZpbmFsaXplX3Blcm1fcnBhdGg9IiRmaW5hbGl6ZV9wZXJtX3JwYXRoICRsaWJkaXIiIDs7CisJICAqKSBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9wZXJtX3JwYXRoICIgJGxpYmRpciIgOzsKIAkgIGVzYWMKIAlmaQogICAgICAgZG9uZQpAQCAtNzY2MSw4ICs4ODQ5LDggQEAKIAogICAgICAgaWYgdGVzdCAtbiAiJGxpYm9ianMiICYmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KIAkjIFRyYW5zZm9ybSBhbGwgdGhlIGxpYnJhcnkgb2JqZWN0cyBpbnRvIHN0YW5kYXJkIG9iamVjdHMuCi0JY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgIiRsbzJvIiB8ICROTDJTUGAKLQlmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiWCRmaW5hbGl6ZV9jb21tYW5kIiB8ICRTUDJOTCB8ICRYc2VkIC1lICIkbG8ybyIgfCAkTkwyU1BgCisJY29tcGlsZV9jb21tYW5kPWAkRUNITyAiJGNvbXBpbGVfY29tbWFuZCIgfCAkU1AyTkwgfCAkU0VEICIkbG8ybyIgfCAkTkwyU1BgCisJZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIiRmaW5hbGl6ZV9jb21tYW5kIiB8ICRTUDJOTCB8ICRTRUQgIiRsbzJvIiB8ICROTDJTUGAKICAgICAgIGZpCiAKICAgICAgIGZ1bmNfZ2VuZXJhdGVfZGxzeW1zICIkb3V0cHV0bmFtZSIgIkBQUk9HUkFNQCIgIm5vIgpAQCAtNzY3NCwxNSArODg2MiwxNSBAQAogCiAgICAgICB3cmFwcGVyc19yZXF1aXJlZD15ZXMKICAgICAgIGNhc2UgJGhvc3QgaW4KKyAgICAgICpjZWdjYyogfCAqbWluZ3czMmNlKikKKyAgICAgICAgIyBEaXNhYmxlIHdyYXBwZXJzIGZvciBjZWdjYyBhbmQgbWluZ3czMmNlIGhvc3RzLCB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nIGFueXdheS4KKyAgICAgICAgd3JhcHBlcnNfcmVxdWlyZWQ9bm8KKyAgICAgICAgOzsKICAgICAgICpjeWd3aW4qIHwgKm1pbmd3KiApCiAgICAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllczsgdGhlbgogICAgICAgICAgIHdyYXBwZXJzX3JlcXVpcmVkPW5vCiAgICAgICAgIGZpCiAgICAgICAgIDs7Ci0gICAgICAqY2VnY2MpCi0gICAgICAgICMgRGlzYWJsZSB3cmFwcGVycyBmb3IgY2VnY2MsIHdlIGFyZSBjcm9zcyBjb21waWxpbmcgYW55d2F5LgotICAgICAgICB3cmFwcGVyc19yZXF1aXJlZD1ubwotICAgICAgICA7OwogICAgICAgKikKICAgICAgICAgaWYgdGVzdCAiJG5lZWRfcmVsaW5rIiA9IG5vIHx8IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllczsgdGhlbgogICAgICAgICAgIHdyYXBwZXJzX3JlcXVpcmVkPW5vCkBAIC03NjkxLDEzICs4ODc5LDE5IEBACiAgICAgICBlc2FjCiAgICAgICBpZiB0ZXN0ICIkd3JhcHBlcnNfcmVxdWlyZWQiID0gbm87IHRoZW4KIAkjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCi0JY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0IiclZydgCisJY29tcGlsZV9jb21tYW5kPWAkRUNITyAiJGNvbXBpbGVfY29tbWFuZCIgfCAkU0VEICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcnYAogCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgogCiAJIyBXZSBoYXZlIG5vIHVuaW5zdGFsbGVkIGxpYnJhcnkgZGVwZW5kZW5jaWVzLCBzbyBmaW5hbGl6ZSByaWdodCBub3cuCiAJZXhpdF9zdGF0dXM9MAogCWZ1bmNfc2hvd19ldmFsICIkbGlua19jb21tYW5kIiAnZXhpdF9zdGF0dXM9JD8nCiAKKwlpZiB0ZXN0IC1uICIkcG9zdGxpbmtfY21kcyI7IHRoZW4KKwkgIGZ1bmNfdG9fdG9vbF9maWxlICIkb3V0cHV0IgorCSAgcG9zdGxpbmtfY21kcz1gZnVuY19lY2hvX2FsbCAiJHBvc3RsaW5rX2NtZHMiIHwgJFNFRCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXQiJyVnJyAtZSAncyVAVE9PTF9PVVRQVVRAJSciJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdCInJWcnYAorCSAgZnVuY19leGVjdXRlX2NtZHMgIiRwb3N0bGlua19jbWRzIiAnZXhpdCAkPycKKwlmaQorCiAJIyBEZWxldGUgdGhlIGdlbmVyYXRlZCBmaWxlcy4KIAlpZiB0ZXN0IC1mICIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9Uy4ke29iamV4dH0iOyB0aGVuCiAJICBmdW5jX3Nob3dfZXZhbCAnJFJNICIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9Uy4ke29iamV4dH0iJwpAQCAtNzcyMCw3ICs4OTE0LDcgQEAKIAkgICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVucGF0aF92YXIuCiAJICBycGF0aD0KIAkgIGZvciBkaXIgaW4gJHBlcm1fcnBhdGg7IGRvCi0JICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIKKwkgICAgZnVuY19hcHBlbmQgcnBhdGggIiRkaXI6IgogCSAgZG9uZQogCSAgY29tcGlsZV92YXI9IiRydW5wYXRoX3Zhcj1cIiRycGF0aFwkJHJ1bnBhdGhfdmFyXCIgIgogCWZpCkBAIC03NzI4LDcgKzg5MjIsNyBAQAogCSAgIyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4KIAkgIHJwYXRoPQogCSAgZm9yIGRpciBpbiAkZmluYWxpemVfcGVybV9ycGF0aDsgZG8KLQkgICAgcnBhdGg9IiRycGF0aCRkaXI6IgorCSAgICBmdW5jX2FwcGVuZCBycGF0aCAiJGRpcjoiCiAJICBkb25lCiAJICBmaW5hbGl6ZV92YXI9IiRydW5wYXRoX3Zhcj1cIiRycGF0aFwkJHJ1bnBhdGhfdmFyXCIgIgogCWZpCkBAIC03NzM4LDExICs4OTMyLDE4IEBACiAJIyBXZSBkb24ndCBuZWVkIHRvIGNyZWF0ZSBhIHdyYXBwZXIgc2NyaXB0LgogCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgogCSMgUmVwbGFjZSB0aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWNhdGlvbi4KLQlsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJGxpbmtfY29tbWFuZCIgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXQiJyVnJ2AKKwlsaW5rX2NvbW1hbmQ9YCRFQ0hPICIkbGlua19jb21tYW5kIiB8ICRTRUQgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0IiclZydgCiAJIyBEZWxldGUgdGhlIG9sZCBvdXRwdXQgZmlsZS4KIAkkb3B0X2RyeV9ydW4gfHwgJFJNICRvdXRwdXQKIAkjIExpbmsgdGhlIGV4ZWN1dGFibGUgYW5kIGV4aXQKIAlmdW5jX3Nob3dfZXZhbCAiJGxpbmtfY29tbWFuZCIgJ2V4aXQgJD8nCisKKwlpZiB0ZXN0IC1uICIkcG9zdGxpbmtfY21kcyI7IHRoZW4KKwkgIGZ1bmNfdG9fdG9vbF9maWxlICIkb3V0cHV0IgorCSAgcG9zdGxpbmtfY21kcz1gZnVuY19lY2hvX2FsbCAiJHBvc3RsaW5rX2NtZHMiIHwgJFNFRCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXQiJyVnJyAtZSAncyVAVE9PTF9PVVRQVVRAJSciJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdCInJWcnYAorCSAgZnVuY19leGVjdXRlX2NtZHMgIiRwb3N0bGlua19jbWRzIiAnZXhpdCAkPycKKwlmaQorCiAJZXhpdCAkRVhJVF9TVUNDRVNTCiAgICAgICBmaQogCkBAIC03NzU3LDcgKzg5NTgsNyBAQAogCWlmIHRlc3QgIiRmYXN0X2luc3RhbGwiICE9IG5vOyB0aGVuCiAJICBsaW5rX2NvbW1hbmQ9IiRmaW5hbGl6ZV92YXIkY29tcGlsZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgogCSAgaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgPSB5ZXM7IHRoZW4KLQkgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIiB8ICRYc2VkIC1lICdzJUBPVVRQVVRAJVwkcHJvZ2Rpci9cJGZpbGUlZydgCisJICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIiB8ICRTRUQgJ3MlQE9VVFBVVEAlXCRwcm9nZGlyL1wkZmlsZSVnJ2AKIAkgIGVsc2UKIAkgICAgIyBmYXN0X2luc3RhbGwgaXMgc2V0IHRvIG5lZWRsZXNzCiAJICAgIHJlbGlua19jb21tYW5kPQpAQCAtNzc2OSwxMyArODk3MCwxOSBAQAogICAgICAgZmkKIAogICAgICAgIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9uLgotICAgICAgbGlua19jb21tYW5kPWAkRUNITyAiWCRsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSInJWcnYAorICAgICAgbGlua19jb21tYW5kPWAkRUNITyAiJGxpbmtfY29tbWFuZCIgfCAkU0VEICdzJUBPVVRQVVRAJSciJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUiJyVnJ2AKIAogICAgICAgIyBEZWxldGUgdGhlIG9sZCBvdXRwdXQgZmlsZXMuCiAgICAgICAkb3B0X2RyeV9ydW4gfHwgJFJNICRvdXRwdXQgJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUgJG91dHB1dF9vYmpkaXIvbHQtJG91dHB1dG5hbWUKIAogICAgICAgZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1hbmQiICdleGl0ICQ/JwogCisgICAgICBpZiB0ZXN0IC1uICIkcG9zdGxpbmtfY21kcyI7IHRoZW4KKwlmdW5jX3RvX3Rvb2xfZmlsZSAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUiCisJcG9zdGxpbmtfY21kcz1gZnVuY19lY2hvX2FsbCAiJHBvc3RsaW5rX2NtZHMiIHwgJFNFRCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lIiclZycgLWUgJ3MlQFRPT0xfT1VUUFVUQCUnIiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQiJyVnJ2AKKwlmdW5jX2V4ZWN1dGVfY21kcyAiJHBvc3RsaW5rX2NtZHMiICdleGl0ICQ/JworICAgICAgZmkKKwogICAgICAgIyBOb3cgY3JlYXRlIHRoZSB3cmFwcGVyIHNjcmlwdC4KICAgICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgJG91dHB1dCIKIApAQCAtNzc5MywxOCArOTAwMCw3IEBACiAJICBmaQogCWRvbmUKIAlyZWxpbmtfY29tbWFuZD0iKGNkIGBwd2RgOyAkcmVsaW5rX2NvbW1hbmQpIgotCXJlbGlua19jb21tYW5kPWAkRUNITyAiWCRyZWxpbmtfY29tbWFuZCIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCi0gICAgICBmaQotCi0gICAgICAjIFF1b3RlICRFQ0hPIGZvciBzaGlwcGluZy4KLSAgICAgIGlmIHRlc3QgIlgkRUNITyIgPSAiWCRTSEVMTCAkcHJvZ3BhdGggLS1mYWxsYmFjay1lY2hvIjsgdGhlbgotCWNhc2UgJHByb2dwYXRoIGluCi0JW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBxZWNobz0iJFNIRUxMICRwcm9ncGF0aCAtLWZhbGxiYWNrLWVjaG8iOzsKLQkqKSBxZWNobz0iJFNIRUxMIGBwd2RgLyRwcm9ncGF0aCAtLWZhbGxiYWNrLWVjaG8iOzsKLQllc2FjCi0JcWVjaG89YCRFQ0hPICJYJHFlY2hvIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKLSAgICAgIGVsc2UKLQlxZWNobz1gJEVDSE8gIlgkRUNITyIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCisJcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICIkcmVsaW5rX2NvbW1hbmQiIHwgJFNFRCAiJHNlZF9xdW90ZV9zdWJzdCJgCiAgICAgICBmaQogCiAgICAgICAjIE9ubHkgYWN0dWFsbHkgZG8gdGhpbmdzIGlmIG5vdCBpbiBkcnkgcnVuIG1vZGUuCkBAIC03ODg0LDcgKzkwODAsNyBAQAogCWVsc2UKIAkgIG9sZG9ianM9IiRvbGRfZGVwbGlicyAkbm9uX3BpY19vYmplY3RzIgogCSAgaWYgdGVzdCAiJHByZWxvYWQiID0geWVzICYmIHRlc3QgLWYgIiRzeW1maWxlb2JqIjsgdGhlbgotCSAgICBvbGRvYmpzPSIkb2xkb2JqcyAkc3ltZmlsZW9iaiIKKwkgICAgZnVuY19hcHBlbmQgb2xkb2JqcyAiICRzeW1maWxlb2JqIgogCSAgZmkKIAlmaQogCWFkZGxpYnM9IiRvbGRfY29udmVuaWVuY2UiCkBAIC03ODkyLDEwICs5MDg4LDEwIEBACiAKICAgICAgIGlmIHRlc3QgLW4gIiRhZGRsaWJzIjsgdGhlbgogCWdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCi0JZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCisJZnVuY19hcHBlbmQgZ2VuZXJhdGVkICIgJGdlbnRvcCIKIAogCWZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRhZGRsaWJzCi0Jb2xkb2Jqcz0iJG9sZG9ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCisJZnVuY19hcHBlbmQgb2xkb2JqcyAiICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgogICAgICAgZmkKIAogICAgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIGFyY2hpdmUgY29tbWFuZHMuCkBAIC03OTA2LDEwICs5MTAyLDEwIEBACiAJIyBBZGQgYW55IG9iamVjdHMgZnJvbSBwcmVsb2FkZWQgY29udmVuaWVuY2UgbGlicmFyaWVzCiAJaWYgdGVzdCAtbiAiJGRscHJlZmlsZXMiOyB0aGVuCiAJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgotCSAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCisJICBmdW5jX2FwcGVuZCBnZW5lcmF0ZWQgIiAkZ2VudG9wIgogCiAJICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkZGxwcmVmaWxlcwotCSAgb2xkb2Jqcz0iJG9sZG9ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCisJICBmdW5jX2FwcGVuZCBvbGRvYmpzICIgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCiAJZmkKIAogCSMgUE9TSVggZGVtYW5kcyBubyBwYXRocyB0byBiZSBlbmNvZGVkIGluIGFyY2hpdmVzLiAgV2UgaGF2ZQpAQCAtNzkyNSw5ICs5MTIxLDkgQEAKIAkgICAgZG9uZSB8IHNvcnQgfCBzb3J0IC11YyA+L2Rldi9udWxsIDI+JjEpOyB0aGVuCiAJICA6CiAJZWxzZQotCSAgJEVDSE8gImNvcHlpbmcgc2VsZWN0ZWQgb2JqZWN0IGZpbGVzIHRvIGF2b2lkIGJhc2VuYW1lIGNvbmZsaWN0cy4uLiIKKwkgIGVjaG8gImNvcHlpbmcgc2VsZWN0ZWQgb2JqZWN0IGZpbGVzIHRvIGF2b2lkIGJhc2VuYW1lIGNvbmZsaWN0cy4uLiIKIAkgIGdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCi0JICBnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKKwkgIGZ1bmNfYXBwZW5kIGdlbmVyYXRlZCAiICRnZW50b3AiCiAJICBmdW5jX21rZGlyX3AgIiRnZW50b3AiCiAJICBzYXZlX29sZG9ianM9JG9sZG9ianMKIAkgIG9sZG9ianM9CkBAIC03OTUxLDkgKzkxNDcsOSBAQAogCQllc2FjCiAJICAgICAgZG9uZQogCSAgICAgIGZ1bmNfc2hvd19ldmFsICJsbiAkb2JqICRnZW50b3AvJG5ld29iaiB8fCBjcCAkb2JqICRnZW50b3AvJG5ld29iaiIKLQkgICAgICBvbGRvYmpzPSIkb2xkb2JqcyAkZ2VudG9wLyRuZXdvYmoiCisJICAgICAgZnVuY19hcHBlbmQgb2xkb2JqcyAiICRnZW50b3AvJG5ld29iaiIKIAkgICAgICA7OwotCSAgICAqKSBvbGRvYmpzPSIkb2xkb2JqcyAkb2JqIiA7OworCSAgICAqKSBmdW5jX2FwcGVuZCBvbGRvYmpzICIgJG9iaiIgOzsKIAkgICAgZXNhYwogCSAgZG9uZQogCWZpCkBAIC03OTYzLDYgKzkxNTksMTYgQEAKIAlsZW49JGZ1bmNfbGVuX3Jlc3VsdAogCWlmIHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIiB8fCB0ZXN0ICIkbWF4X2NtZF9sZW4iIC1sZSAtMTsgdGhlbgogCSAgY21kcz0kb2xkX2FyY2hpdmVfY21kcworCWVsaWYgdGVzdCAtbiAiJGFyY2hpdmVyX2xpc3Rfc3BlYyI7IHRoZW4KKwkgIGZ1bmNfdmVyYm9zZSAidXNpbmcgY29tbWFuZCBmaWxlIGFyY2hpdmUgbGlua2luZy4uLiIKKwkgIGZvciBvYmogaW4gJG9sZG9ianMKKwkgIGRvCisJICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkb2JqIgorCSAgICAkRUNITyAiJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdCIKKwkgIGRvbmUgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5saWJjbWQKKwkgIGZ1bmNfdG9fdG9vbF9maWxlICIkb3V0cHV0X29iamRpci8kbGlibmFtZS5saWJjbWQiCisJICBvbGRvYmpzPSIgJGFyY2hpdmVyX2xpc3Rfc3BlYyRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQiCisJICBjbWRzPSRvbGRfYXJjaGl2ZV9jbWRzCiAJZWxzZQogCSAgIyB0aGUgY29tbWFuZCBsaW5lIGlzIHRvbyBsb25nIHRvIGxpbmsgaW4gb25lIHN0ZXAsIGxpbmsgaW4gcGFydHMKIAkgIGZ1bmNfdmVyYm9zZSAidXNpbmcgcGllY2V3aXNlIGFyY2hpdmUgbGlua2luZy4uLiIKQEAgLTgwMzYsNyArOTI0Miw3IEBACiAgICAgICBkb25lCiAgICAgICAjIFF1b3RlIHRoZSBsaW5rIGNvbW1hbmQgZm9yIHNoaXBwaW5nLgogICAgICAgcmVsaW5rX2NvbW1hbmQ9IihjZCBgcHdkYDsgJFNIRUxMICRwcm9ncGF0aCAkcHJlc2VydmVfYXJncyAtLW1vZGU9cmVsaW5rICRsaWJ0b29sX2FyZ3MgQGluc3RfcHJlZml4X2RpckApIgotICAgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJHJlbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKKyAgICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiJHJlbGlua19jb21tYW5kIiB8ICRTRUQgIiRzZWRfcXVvdGVfc3Vic3QiYAogICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSB5ZXMgOyB0aGVuCiAJcmVsaW5rX2NvbW1hbmQ9CiAgICAgICBmaQpAQCAtODA1OSw5ICs5MjY1LDE5IEBACiAJCWV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRkZXBsaWJgCiAJCXRlc3QgLXogIiRsaWJkaXIiICYmIFwKIAkJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRkZXBsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKLQkJbmV3ZGVwZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5jeV9saWJzICRsaWJkaXIvJG5hbWUiCisJCWZ1bmNfYXBwZW5kIG5ld2RlcGVuZGVuY3lfbGlicyAiICR7bHRfc3lzcm9vdDorPX0kbGliZGlyLyRuYW1lIgogCQk7OwotCSAgICAgICopIG5ld2RlcGVuZGVuY3lfbGlicz0iJG5ld2RlcGVuZGVuY3lfbGlicyAkZGVwbGliIiA7OworCSAgICAgIC1MKikKKwkJZnVuY19zdHJpcG5hbWUgLUwgJycgIiRkZXBsaWIiCisJCWZ1bmNfcmVwbGFjZV9zeXNyb290ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorCQlmdW5jX2FwcGVuZCBuZXdkZXBlbmRlbmN5X2xpYnMgIiAtTCRmdW5jX3JlcGxhY2Vfc3lzcm9vdF9yZXN1bHQiCisJCTs7CisJICAgICAgLVIqKQorCQlmdW5jX3N0cmlwbmFtZSAtUiAnJyAiJGRlcGxpYiIKKwkJZnVuY19yZXBsYWNlX3N5c3Jvb3QgIiRmdW5jX3N0cmlwbmFtZV9yZXN1bHQiCisJCWZ1bmNfYXBwZW5kIG5ld2RlcGVuZGVuY3lfbGlicyAiIC1SJGZ1bmNfcmVwbGFjZV9zeXNyb290X3Jlc3VsdCIKKwkJOzsKKwkgICAgICAqKSBmdW5jX2FwcGVuZCBuZXdkZXBlbmRlbmN5X2xpYnMgIiAkZGVwbGliIiA7OwogCSAgICAgIGVzYWMKIAkgICAgZG9uZQogCSAgICBkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMiCkBAIC04MDc1LDkgKzkyOTEsOSBAQAogCQlldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9XCguKlwpJC9cMS9wJyAkbGliYAogCQl0ZXN0IC16ICIkbGliZGlyIiAmJiBcCiAJCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCi0JCW5ld2RsZmlsZXM9IiRuZXdkbGZpbGVzICRsaWJkaXIvJG5hbWUiCisJCWZ1bmNfYXBwZW5kIG5ld2RsZmlsZXMgIiAke2x0X3N5c3Jvb3Q6Kz19JGxpYmRpci8kbmFtZSIKIAkJOzsKLQkgICAgICAqKSBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkbGliIiA7OworCSAgICAgICopIGZ1bmNfYXBwZW5kIG5ld2RsZmlsZXMgIiAkbGliIiA7OwogCSAgICAgIGVzYWMKIAkgICAgZG9uZQogCSAgICBkbGZpbGVzPSIkbmV3ZGxmaWxlcyIKQEAgLTgwOTQsNyArOTMxMCw3IEBACiAJCWV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRsaWJgCiAJCXRlc3QgLXogIiRsaWJkaXIiICYmIFwKIAkJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKLQkJbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGxpYmRpci8kbmFtZSIKKwkJZnVuY19hcHBlbmQgbmV3ZGxwcmVmaWxlcyAiICR7bHRfc3lzcm9vdDorPX0kbGliZGlyLyRuYW1lIgogCQk7OwogCSAgICAgIGVzYWMKIAkgICAgZG9uZQpAQCAtODEwNiw3ICs5MzIyLDcgQEAKIAkJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBhYnM9IiRsaWIiIDs7CiAJCSopIGFicz1gcHdkYCIvJGxpYiIgOzsKIAkgICAgICBlc2FjCi0JICAgICAgbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGFicyIKKwkgICAgICBmdW5jX2FwcGVuZCBuZXdkbGZpbGVzICIgJGFicyIKIAkgICAgZG9uZQogCSAgICBkbGZpbGVzPSIkbmV3ZGxmaWxlcyIKIAkgICAgbmV3ZGxwcmVmaWxlcz0KQEAgLTgxMTUsMTUgKzkzMzEsMzMgQEAKIAkJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBhYnM9IiRsaWIiIDs7CiAJCSopIGFicz1gcHdkYCIvJGxpYiIgOzsKIAkgICAgICBlc2FjCi0JICAgICAgbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGFicyIKKwkgICAgICBmdW5jX2FwcGVuZCBuZXdkbHByZWZpbGVzICIgJGFicyIKIAkgICAgZG9uZQogCSAgICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyIKIAkgIGZpCiAJICAkUk0gJG91dHB1dAogCSAgIyBwbGFjZSBkbG5hbWUgaW4gY29ycmVjdCBwb3NpdGlvbiBmb3IgY3lnd2luCisJICAjIEluIGZhY3QsIGl0IHdvdWxkIGJlIG5pY2UgaWYgd2UgY291bGQgdXNlIHRoaXMgY29kZSBmb3IgYWxsIHRhcmdldAorCSAgIyBzeXN0ZW1zIHRoYXQgY2FuJ3QgaGFyZC1jb2RlIGxpYnJhcnkgcGF0aHMgaW50byB0aGVpciBleGVjdXRhYmxlcworCSAgIyBhbmQgdGhhdCBoYXZlIG5vIHNoYXJlZCBsaWJyYXJ5IHBhdGggdmFyaWFibGUgaW5kZXBlbmRlbnQgb2YgUEFUSCwKKwkgICMgYnV0IGl0IHR1cm5zIG91dCB3ZSBjYW4ndCBlYXNpbHkgZGV0ZXJtaW5lIHRoYXQgZnJvbSBpbnNwZWN0aW5nCisJICAjIGxpYnRvb2wgdmFyaWFibGVzLCBzbyB3ZSBoYXZlIHRvIGhhcmQtY29kZSB0aGUgT1NzIHRvIHdoaWNoIGl0CisJICAjIGFwcGxpZXMgaGVyZTsgYXQgdGhlIG1vbWVudCwgdGhhdCBtZWFucyBwbGF0Zm9ybXMgdGhhdCB1c2UgdGhlIFBFCisJICAjIG9iamVjdCBmb3JtYXQgd2l0aCBETEwgZmlsZXMuICBTZWUgdGhlIGxvbmcgY29tbWVudCBhdCB0aGUgdG9wIG9mCisJICAjIHRlc3RzL2JpbmRpci5hdCBmb3IgZnVsbCBkZXRhaWxzLgogCSAgdGRsbmFtZT0kZGxuYW1lCiAJICBjYXNlICRob3N0LCRvdXRwdXQsJGluc3RhbGxlZCwkbW9kdWxlLCRkbG5hbWUgaW4KLQkgICAgKmN5Z3dpbiosKmxhaSx5ZXMsbm8sKi5kbGwgfCAqbWluZ3cqLCpsYWkseWVzLG5vLCouZGxsIHwgKmNlZ2NjKiwqbGFpLHllcyxubywqLmRsbCkgdGRsbmFtZT0uLi9iaW4vJGRsbmFtZSA7OworCSAgICAqY3lnd2luKiwqbGFpLHllcyxubywqLmRsbCB8ICptaW5ndyosKmxhaSx5ZXMsbm8sKi5kbGwgfCAqY2VnY2MqLCpsYWkseWVzLG5vLCouZGxsKQorCSAgICAgICMgSWYgYSAtYmluZGlyIGFyZ3VtZW50IHdhcyBzdXBwbGllZCwgcGxhY2UgdGhlIGRsbCB0aGVyZS4KKwkgICAgICBpZiB0ZXN0ICJ4JGJpbmRpciIgIT0geCA7CisJICAgICAgdGhlbgorCQlmdW5jX3JlbGF0aXZlX3BhdGggIiRpbnN0YWxsX2xpYmRpciIgIiRiaW5kaXIiCisJCXRkbG5hbWU9JGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQkZGxuYW1lCisJICAgICAgZWxzZQorCQkjIE90aGVyd2lzZSBmYWxsIGJhY2sgb24gaGV1cmlzdGljLgorCQl0ZGxuYW1lPS4uL2Jpbi8kZGxuYW1lCisJICAgICAgZmkKKwkgICAgICA7OwogCSAgZXNhYwogCSAgJEVDSE8gPiAkb3V0cHV0ICJcCiAjICRvdXRwdXRuYW1lIC0gYSBsaWJ0b29sIGxpYnJhcnkgZmlsZQpAQCAtODE4Miw3ICs5NDE2LDcgQEAKICAgICBleGl0ICRFWElUX1NVQ0NFU1MKIH0KIAoteyB0ZXN0ICIkbW9kZSIgPSBsaW5rIHx8IHRlc3QgIiRtb2RlIiA9IHJlbGluazsgfSAmJgoreyB0ZXN0ICIkb3B0X21vZGUiID0gbGluayB8fCB0ZXN0ICIkb3B0X21vZGUiID0gcmVsaW5rOyB9ICYmCiAgICAgZnVuY19tb2RlX2xpbmsgJHsxKyIkQCJ9CiAKIApAQCAtODIwMiw5ICs5NDM2LDkgQEAKICAgICBmb3IgYXJnCiAgICAgZG8KICAgICAgIGNhc2UgJGFyZyBpbgotICAgICAgLWYpIFJNPSIkUk0gJGFyZyI7IHJtZm9yY2U9eWVzIDs7Ci0gICAgICAtKikgUk09IiRSTSAkYXJnIiA7OwotICAgICAgKikgZmlsZXM9IiRmaWxlcyAkYXJnIiA7OworICAgICAgLWYpIGZ1bmNfYXBwZW5kIFJNICIgJGFyZyI7IHJtZm9yY2U9eWVzIDs7CisgICAgICAtKikgZnVuY19hcHBlbmQgUk0gIiAkYXJnIiA7OworICAgICAgKikgZnVuY19hcHBlbmQgZmlsZXMgIiAkYXJnIiA7OwogICAgICAgZXNhYwogICAgIGRvbmUKIApAQCAtODIxMywyNCArOTQ0NywyMyBAQAogCiAgICAgcm1kaXJzPQogCi0gICAgb3JpZ29iamRpcj0iJG9iamRpciIKICAgICBmb3IgZmlsZSBpbiAkZmlsZXM7IGRvCiAgICAgICBmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiIiAiLiIKICAgICAgIGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCiAgICAgICBpZiB0ZXN0ICJYJGRpciIgPSBYLjsgdGhlbgotCW9iamRpcj0iJG9yaWdvYmpkaXIiCisJb2Rpcj0iJG9iamRpciIKICAgICAgIGVsc2UKLQlvYmpkaXI9IiRkaXIvJG9yaWdvYmpkaXIiCisJb2Rpcj0iJGRpci8kb2JqZGlyIgogICAgICAgZmkKICAgICAgIGZ1bmNfYmFzZW5hbWUgIiRmaWxlIgogICAgICAgbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotICAgICAgdGVzdCAiJG1vZGUiID0gdW5pbnN0YWxsICYmIG9iamRpcj0iJGRpciIKKyAgICAgIHRlc3QgIiRvcHRfbW9kZSIgPSB1bmluc3RhbGwgJiYgb2Rpcj0iJGRpciIKIAotICAgICAgIyBSZW1lbWJlciBvYmpkaXIgZm9yIHJlbW92YWwgbGF0ZXIsIGJlaW5nIGNhcmVmdWwgdG8gYXZvaWQgZHVwbGljYXRlcwotICAgICAgaWYgdGVzdCAiJG1vZGUiID0gY2xlYW47IHRoZW4KKyAgICAgICMgUmVtZW1iZXIgb2RpciBmb3IgcmVtb3ZhbCBsYXRlciwgYmVpbmcgY2FyZWZ1bCB0byBhdm9pZCBkdXBsaWNhdGVzCisgICAgICBpZiB0ZXN0ICIkb3B0X21vZGUiID0gY2xlYW47IHRoZW4KIAljYXNlICIgJHJtZGlycyAiIGluCi0JICAqIiAkb2JqZGlyICIqKSA7OwotCSAgKikgcm1kaXJzPSIkcm1kaXJzICRvYmpkaXIiIDs7CisJICAqIiAkb2RpciAiKikgOzsKKwkgICopIGZ1bmNfYXBwZW5kIHJtZGlycyAiICRvZGlyIiA7OwogCWVzYWMKICAgICAgIGZpCiAKQEAgLTgyNTYsMTggKzk0ODksMTcgQEAKIAogCSAgIyBEZWxldGUgdGhlIGxpYnRvb2wgbGlicmFyaWVzIGFuZCBzeW1saW5rcy4KIAkgIGZvciBuIGluICRsaWJyYXJ5X25hbWVzOyBkbwotCSAgICBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRuIgorCSAgICBmdW5jX2FwcGVuZCBybWZpbGVzICIgJG9kaXIvJG4iCiAJICBkb25lCi0JICB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiICYmIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJG9sZF9saWJyYXJ5IgorCSAgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IiAmJiBmdW5jX2FwcGVuZCBybWZpbGVzICIgJG9kaXIvJG9sZF9saWJyYXJ5IgogCi0JICBjYXNlICIkbW9kZSIgaW4KKwkgIGNhc2UgIiRvcHRfbW9kZSIgaW4KIAkgIGNsZWFuKQotCSAgICBjYXNlICIgICRsaWJyYXJ5X25hbWVzICIgaW4KLQkgICAgIyAiICAiIGluIHRoZSBiZWdpbm5pbmcgY2F0Y2hlcyBlbXB0eSAkZGxuYW1lCisJICAgIGNhc2UgIiAkbGlicmFyeV9uYW1lcyAiIGluCiAJICAgICoiICRkbG5hbWUgIiopIDs7Ci0JICAgICopIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJGRsbmFtZSIgOzsKKwkgICAgKikgdGVzdCAtbiAiJGRsbmFtZSIgJiYgZnVuY19hcHBlbmQgcm1maWxlcyAiICRvZGlyLyRkbG5hbWUiIDs7CiAJICAgIGVzYWMKLQkgICAgdGVzdCAtbiAiJGxpYmRpciIgJiYgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kbmFtZSAkb2JqZGlyLyR7bmFtZX1pIgorCSAgICB0ZXN0IC1uICIkbGliZGlyIiAmJiBmdW5jX2FwcGVuZCBybWZpbGVzICIgJG9kaXIvJG5hbWUgJG9kaXIvJHtuYW1lfWkiCiAJICAgIDs7CiAJICB1bmluc3RhbGwpCiAJICAgIGlmIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIjsgdGhlbgpAQCAtODI5NSwxOSArOTUyNywxOSBAQAogCSAgIyBBZGQgUElDIG9iamVjdCB0byB0aGUgbGlzdCBvZiBmaWxlcyB0byByZW1vdmUuCiAJICBpZiB0ZXN0IC1uICIkcGljX29iamVjdCIgJiYKIAkgICAgIHRlc3QgIiRwaWNfb2JqZWN0IiAhPSBub25lOyB0aGVuCi0JICAgIHJtZmlsZXM9IiRybWZpbGVzICRkaXIvJHBpY19vYmplY3QiCisJICAgIGZ1bmNfYXBwZW5kIHJtZmlsZXMgIiAkZGlyLyRwaWNfb2JqZWN0IgogCSAgZmkKIAogCSAgIyBBZGQgbm9uLVBJQyBvYmplY3QgdG8gdGhlIGxpc3Qgb2YgZmlsZXMgdG8gcmVtb3ZlLgogCSAgaWYgdGVzdCAtbiAiJG5vbl9waWNfb2JqZWN0IiAmJgogCSAgICAgdGVzdCAiJG5vbl9waWNfb2JqZWN0IiAhPSBub25lOyB0aGVuCi0JICAgIHJtZmlsZXM9IiRybWZpbGVzICRkaXIvJG5vbl9waWNfb2JqZWN0IgorCSAgICBmdW5jX2FwcGVuZCBybWZpbGVzICIgJGRpci8kbm9uX3BpY19vYmplY3QiCiAJICBmaQogCWZpCiAJOzsKIAogICAgICAgKikKLQlpZiB0ZXN0ICIkbW9kZSIgPSBjbGVhbiA7IHRoZW4KKwlpZiB0ZXN0ICIkb3B0X21vZGUiID0gY2xlYW4gOyB0aGVuCiAJICBub2V4ZW5hbWU9JG5hbWUKIAkgIGNhc2UgJGZpbGUgaW4KIAkgICouZXhlKQpAQCAtODMxNyw3ICs5NTQ5LDcgQEAKIAkgICAgbm9leGVuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKIAkgICAgIyAkZmlsZSB3aXRoIC5leGUgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCB0byBybWZpbGVzLAogCSAgICAjIGFkZCAkZmlsZSB3aXRob3V0IC5leGUKLQkgICAgcm1maWxlcz0iJHJtZmlsZXMgJGZpbGUiCisJICAgIGZ1bmNfYXBwZW5kIHJtZmlsZXMgIiAkZmlsZSIKIAkgICAgOzsKIAkgIGVzYWMKIAkgICMgRG8gYSB0ZXN0IHRvIHNlZSBpZiB0aGlzIGlzIGEgbGlidG9vbCBwcm9ncmFtLgpAQCAtODMyNiw3ICs5NTU4LDcgQEAKIAkgICAgICBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICIkZmlsZSIKIAkgICAgICByZWxpbmtfY29tbWFuZD0KIAkgICAgICBmdW5jX3NvdXJjZSAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQKLQkgICAgICBybWZpbGVzPSIkcm1maWxlcyAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQiCisJICAgICAgZnVuY19hcHBlbmQgcm1maWxlcyAiICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdCIKIAkgICAgZWxzZQogCSAgICAgIHJlbGlua19jb21tYW5kPQogCSAgICAgIGZ1bmNfc291cmNlICRkaXIvJG5vZXhlbmFtZQpAQCAtODMzNCwxMiArOTU2NiwxMiBAQAogCiAJICAgICMgbm90ZSAkbmFtZSBzdGlsbCBjb250YWlucyAuZXhlIGlmIGl0IHdhcyBpbiAkZmlsZSBvcmlnaW5hbGx5CiAJICAgICMgYXMgZG9lcyB0aGUgdmVyc2lvbiBvZiAkZmlsZSB0aGF0IHdhcyBhZGRlZCBpbnRvICRybWZpbGVzCi0JICAgIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJG5hbWUgJG9iamRpci8ke25hbWV9Uy4ke29iamV4dH0iCisJICAgIGZ1bmNfYXBwZW5kIHJtZmlsZXMgIiAkb2Rpci8kbmFtZSAkb2Rpci8ke25hbWV9Uy4ke29iamV4dH0iCiAJICAgIGlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0geWVzICYmIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4KLQkgICAgICBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyL2x0LSRuYW1lIgorCSAgICAgIGZ1bmNfYXBwZW5kIHJtZmlsZXMgIiAkb2Rpci9sdC0kbmFtZSIKIAkgICAgZmkKIAkgICAgaWYgdGVzdCAiWCRub2V4ZW5hbWUiICE9ICJYJG5hbWUiIDsgdGhlbgotCSAgICAgIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvbHQtJHtub2V4ZW5hbWV9LmMiCisJICAgICAgZnVuY19hcHBlbmQgcm1maWxlcyAiICRvZGlyL2x0LSR7bm9leGVuYW1lfS5jIgogCSAgICBmaQogCSAgZmkKIAlmaQpAQCAtODM0Nyw3ICs5NTc5LDYgQEAKICAgICAgIGVzYWMKICAgICAgIGZ1bmNfc2hvd19ldmFsICIkUk0gJHJtZmlsZXMiICdleGl0X3N0YXR1cz0xJwogICAgIGRvbmUKLSAgICBvYmpkaXI9IiRvcmlnb2JqZGlyIgogCiAgICAgIyBUcnkgdG8gcmVtb3ZlIHRoZSAke29iamRpcn1zIGluIHRoZSBkaXJlY3RvcmllcyB3aGVyZSB3ZSBkZWxldGVkIGZpbGVzCiAgICAgZm9yIGRpciBpbiAkcm1kaXJzOyBkbwpAQCAtODM1OSwxNiArOTU5MCwxNiBAQAogICAgIGV4aXQgJGV4aXRfc3RhdHVzCiB9CiAKLXsgdGVzdCAiJG1vZGUiID0gdW5pbnN0YWxsIHx8IHRlc3QgIiRtb2RlIiA9IGNsZWFuOyB9ICYmCit7IHRlc3QgIiRvcHRfbW9kZSIgPSB1bmluc3RhbGwgfHwgdGVzdCAiJG9wdF9tb2RlIiA9IGNsZWFuOyB9ICYmCiAgICAgZnVuY19tb2RlX3VuaW5zdGFsbCAkezErIiRAIn0KIAotdGVzdCAteiAiJG1vZGUiICYmIHsKK3Rlc3QgLXogIiRvcHRfbW9kZSIgJiYgewogICBoZWxwPSIkZ2VuZXJpY19oZWxwIgogICBmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYSBNT0RFIgogfQogCiB0ZXN0IC16ICIkZXhlY19jbWQiICYmIFwKLSAgZnVuY19mYXRhbF9oZWxwICJpbnZhbGlkIG9wZXJhdGlvbiBtb2RlIFxgJG1vZGUnIgorICBmdW5jX2ZhdGFsX2hlbHAgImludmFsaWQgb3BlcmF0aW9uIG1vZGUgXGAkb3B0X21vZGUnIgogCiBpZiB0ZXN0IC1uICIkZXhlY19jbWQiOyB0aGVuCiAgIGV2YWwgZXhlYyAiJGV4ZWNfY21kIgpkaWZmIC0tZ2l0IGEvbTQvbGlidG9vbC5tNCBiL200L2xpYnRvb2wubTQKaW5kZXggMzliYTk5Ni4uZDgxMjU4NCAxMDA2NDQKLS0tIGEvbTQvbGlidG9vbC5tNAorKysgYi9tNC9saWJ0b29sLm00CkBAIC0xLDcgKzEsOCBAQAogIyBsaWJ0b29sLm00IC0gQ29uZmlndXJlIGxpYnRvb2wgZm9yIHRoZSBob3N0IHN5c3RlbS4gLSotQXV0b2NvbmYtKi0KICMKICMgICBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsCi0jICAgICAgICAgICAgICAgICAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyAgICAgICAgICAgICAgICAgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisjICAgICAgICAgICAgICAgICBJbmMuCiAjICAgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCwgMTk5NgogIwogIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcwpAQCAtMTAsNyArMTEsOCBAQAogCiBtNF9kZWZpbmUoW19MVF9DT1BZSU5HXSwgW2RubAogIyAgIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAwNSwKLSMgICAgICAgICAgICAgICAgIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjICAgICAgICAgICAgICAgICAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyMgICAgICAgICAgICAgICAgIEluYy4KICMgICBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdrZWl0LCAxOTk2CiAjCiAjICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIExpYnRvb2wuCkBAIC0zNyw3ICszOSw3IEBACiAjIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogXSkKIAotIyBzZXJpYWwgNTYgTFRfSU5JVAorIyBzZXJpYWwgNTcgTFRfSU5JVAogCiAKICMgTFRfUFJFUkVRKFZFUlNJT04pCkBAIC02Niw2ICs2OCw3IEBACiAjIC0tLS0tLS0tLS0tLS0tLS0tLQogQUNfREVGVU4oW0xUX0lOSVRdLAogW0FDX1BSRVJFUShbMi41OF0pZG5sIFdlIHVzZSBBQ19JTkNMVURFU19ERUZBVUxUCitBQ19SRVFVSVJFKFtBQ19DT05GSUdfQVVYX0RJUl9ERUZBVUxUXSlkbmwKIEFDX0JFRk9SRShbJDBdLCBbTFRfTEFOR10pZG5sCiBBQ19CRUZPUkUoWyQwXSwgW0xUX09VVFBVVF0pZG5sCiBBQ19CRUZPUkUoWyQwXSwgW0xURExfSU5JVF0pZG5sCkBAIC04Miw2ICs4NSw4IEBACiBBQ19SRVFVSVJFKFtMVE9CU09MRVRFX1ZFUlNJT05dKWRubAogbTRfcmVxdWlyZShbX0xUX1BST0dfTFRNQUlOXSlkbmwKIAorX0xUX1NIRUxMX0lOSVQoW1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9XSkKKwogZG5sIFBhcnNlIE9QVElPTlMKIF9MVF9TRVRfT1BUSU9OUyhbJDBdLCBbJDFdKQogCkBAIC0xMTgsNyArMTIzLDcgQEAKICAgICAqKSBicmVhazs7CiAgIGVzYWMKIGRvbmUKLWNjX2Jhc2VuYW1lPWAkRUNITyAiWCRjY190ZW1wIiB8ICRYc2VkIC1lICdzJS4qLyUlJyAtZSAicyVeJGhvc3RfYWxpYXMtJSUiYAorY2NfYmFzZW5hbWU9YCRFQ0hPICIkY2NfdGVtcCIgfCAkU0VEICJzJS4qLyUlOyBzJV4kaG9zdF9hbGlhcy0lJSJgCiBdKQogCiAKQEAgLTEzOCw2ICsxNDMsOSBAQAogbTRfZGVmdW4oW19MVF9TRVRVUF0sCiBbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAogQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0JVSUxEXSlkbmwKK0FDX1JFUVVJUkUoW19MVF9QUkVQQVJFX1NFRF9RVU9URV9WQVJTXSlkbmwKK0FDX1JFUVVJUkUoW19MVF9QUk9HX0VDSE9fQkFDS1NMQVNIXSlkbmwKKwogX0xUX0RFQ0woW10sIFtob3N0X2FsaWFzXSwgWzBdLCBbVGhlIGhvc3Qgc3lzdGVtXSlkbmwKIF9MVF9ERUNMKFtdLCBbaG9zdF0sIFswXSlkbmwKIF9MVF9ERUNMKFtdLCBbaG9zdF9vc10sIFswXSlkbmwKQEAgLTE2MCwxMCArMTY4LDEzIEBACiBkbmwKIG00X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAogbTRfcmVxdWlyZShbX0xUX0NIRUNLX1NIRUxMX0ZFQVRVUkVTXSlkbmwKK200X3JlcXVpcmUoW19MVF9QQVRIX0NPTlZFUlNJT05fRlVOQ1RJT05TXSlkbmwKIG00X3JlcXVpcmUoW19MVF9DTURfUkVMT0FEXSlkbmwKIG00X3JlcXVpcmUoW19MVF9DSEVDS19NQUdJQ19NRVRIT0RdKWRubAorbTRfcmVxdWlyZShbX0xUX0NIRUNLX1NIQVJFRExJQl9GUk9NX0xJTktMSUJdKWRubAogbTRfcmVxdWlyZShbX0xUX0NNRF9PTERfQVJDSElWRV0pZG5sCiBtNF9yZXF1aXJlKFtfTFRfQ01EX0dMT0JBTF9TWU1CT0xTXSlkbmwKK200X3JlcXVpcmUoW19MVF9XSVRIX1NZU1JPT1RdKWRubAogCiBfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbCiAjIFNlZSBpZiB3ZSBhcmUgcnVubmluZyBvbiB6c2gsIGFuZCBzZXQgdGhlIG9wdGlvbnMgd2hpY2ggYWxsb3cgb3VyCkBAIC0xNzksNyArMTkwLDYgQEAKIF9MVF9DSEVDS19PQkpESVIKIAogbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCi1fTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSAogCiBjYXNlICRob3N0X29zIGluCiBhaXgzKikKQEAgLTE5MywyMyArMjAzLDYgQEAKICAgOzsKIGVzYWMKIAotIyBTZWQgc3Vic3RpdHV0aW9uIHRoYXQgaGVscHMgdXMgZG8gcm9idXN0IHF1b3RpbmcuICBJdCBiYWNrc2xhc2hpZmllcwotIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KLXNlZF9xdW90ZV9zdWJzdD0ncy9cKFtbImAkXFxdXVwpL1xcXDEvZycKLQotIyBTYW1lIGFzIGFib3ZlLCBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCi1kb3VibGVfcXVvdGVfc3Vic3Q9J3MvXChbWyJgXFxdXVwpL1xcXDEvZycKLQotIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2NhcGVkIHNoZWxsIHZhcmlhYmxlIGluIGEKLSMgZG91YmxlX3F1b3RlX3N1YnN0J2VkIHN0cmluZy4KLWRlbGF5X3ZhcmlhYmxlX3N1YnN0PSdzL1xcXFxcXFxcXFxcJC9cXFxcXFwkL2cnCi0KLSMgU2VkIHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24gb2YgYW4gZXNjYXBlZCBzaW5nbGUgcXVvdGUuCi1kZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Q9J3MvJ1wnJy8nXCdcXFxcXFxcJ1wnJy9nJwotCi0jIFNlZCBzdWJzdGl0dXRpb24gdG8gYXZvaWQgYWNjaWRlbnRhbCBnbG9iYmluZyBpbiBldmFsZWQgZXhwcmVzc2lvbnMKLW5vX2dsb2Jfc3Vic3Q9J3MvXCovXFxcKi9nJwotCiAjIEdsb2JhbCB2YXJpYWJsZXM6CiBvZmlsZT1saWJ0b29sCiBjYW5fYnVpbGRfc2hhcmVkPXllcwpAQCAtMjUwLDYgKzI0MywyOCBAQAogXSkjIF9MVF9TRVRVUAogCiAKKyMgX0xUX1BSRVBBUkVfU0VEX1FVT1RFX1ZBUlMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRGVmaW5lIGEgZmV3IHNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwIHVzIGRvIHJvYnVzdCBxdW90aW5nLgorbTRfZGVmdW4oW19MVF9QUkVQQVJFX1NFRF9RVU9URV9WQVJTXSwKK1sjIEJhY2tzbGFzaGlmeSBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluCisjIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KK3NlZF9xdW90ZV9zdWJzdD0ncy9cKFtbImAkXFxdXVwpL1xcXDEvZycKKworIyBTYW1lIGFzIGFib3ZlLCBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCitkb3VibGVfcXVvdGVfc3Vic3Q9J3MvXChbWyJgXFxdXVwpL1xcXDEvZycKKworIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2NhcGVkIHNoZWxsIHZhcmlhYmxlIGluIGEKKyMgZG91YmxlX3F1b3RlX3N1YnN0J2VkIHN0cmluZy4KK2RlbGF5X3ZhcmlhYmxlX3N1YnN0PSdzL1xcXFxcXFxcXFxcJC9cXFxcXFwkL2cnCisKKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24gb2YgYW4gZXNjYXBlZCBzaW5nbGUgcXVvdGUuCitkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Q9J3MvJ1wnJy8nXCdcXFxcXFxcJ1wnJy9nJworCisjIFNlZCBzdWJzdGl0dXRpb24gdG8gYXZvaWQgYWNjaWRlbnRhbCBnbG9iYmluZyBpbiBldmFsZWQgZXhwcmVzc2lvbnMKK25vX2dsb2Jfc3Vic3Q9J3MvXCovXFxcKi9nJworXSkKKwogIyBfTFRfUFJPR19MVE1BSU4KICMgLS0tLS0tLS0tLS0tLS0tCiAjIE5vdGUgdGhhdCB0aGlzIGNvZGUgaXMgY2FsbGVkIGJvdGggZnJvbSBgY29uZmlndXJlJywgYW5kIGBjb25maWcuc3RhdHVzJwpAQCAtNDA4LDcgKzQyMyw3IEBACiAjIGRlY2xhcmF0aW9uIHRoZXJlIHdpbGwgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyBpbiBgY29uZmlndXJlJy4gIFZBUk5BTUUKICMgbXVzdCBoYXZlIGEgc2luZ2xlIHF1b3RlIGRlbGltaXRlZCB2YWx1ZSBmb3IgdGhpcyB0byB3b3JrLgogbTRfZGVmaW5lKFtfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJFXSwKLVskMT0nYCRFQ0hPICJYJF1bJDEiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCddKQorWyQxPSdgJEVDSE8gIiRdWyQxIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCddKQogCiAKICMgX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSQVRJT05TCkBAIC00MTgsNyArNDMzLDcgQEAKICMgZW1iZWRkZWQgc2luZ2xlIHF1b3RlcyBwcm9wZXJseS4gIEluIGNvbmZpZ3VyZSwgdGhpcyBtYWNybyBleHBhbmRzCiAjIGVhY2ggdmFyaWFibGUgZGVjbGFyZWQgd2l0aCBfTFRfREVDTCAoYW5kIF9MVF9UQUdERUNMKSBpbnRvOgogIwotIyAgICA8dmFyPj0nYCRFQ0hPICJYJDx2YXI+IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisjICAgIDx2YXI+PSdgJEVDSE8gIiQ8dmFyPiIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCiBtNF9kZWZ1bihbX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSQVRJT05TXSwKIFttNF9mb3JlYWNoKFtfbHRfdmFyXSwgbTRfcXVvdGUobHRfZGVjbF9hbGxfdmFybmFtZXMpLAogICAgIFttNF9uKFtfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJFKF9sdF92YXIpXSldKV0pCkBAIC01MTcsMTIgKzUzMiwyMCBAQAogTFRDRkxBR1M9JyRMVENGTEFHUycKIGNvbXBpbGVyPSckY29tcGlsZXJfREVGQVVMVCcKIAorIyBBIGZ1bmN0aW9uIHRoYXQgaXMgdXNlZCB3aGVuIHRoZXJlIGlzIG5vIHByaW50IGJ1aWx0aW4gb3IgcHJpbnRmLgorZnVuY19mYWxsYmFja19lY2hvICgpCit7CisgIGV2YWwgJ2NhdCA8PF9MVEVDSE9fRU9GCitcJFtdMQorX0xURUNIT19FT0YnCit9CisKICMgUXVvdGUgZXZhbGVkIHN0cmluZ3MuCiBmb3IgdmFyIGluIGx0X2RlY2xfYWxsX3Zhcm5hbWVzKFtbIFwKIF1dLCBsdF9kZWNsX3F1b3RlX3Zhcm5hbWVzKTsgZG8KLSAgICBjYXNlIFxgZXZhbCBcXFxcXCRFQ0hPICJYXFxcXFwkXCR2YXIiXGAgaW4KKyAgICBjYXNlIFxgZXZhbCBcXFxcXCRFQ0hPIFxcXFwiIlxcXFxcJFwkdmFyIlxcXFwiXGAgaW4KICAgICAqW1tcXFxcXFxcYFxcIlxcXCRdXSopCi0gICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcYFxcXCRFQ0hPIFxcIlhcXFwkXCR2YXJcXCIgfCBcXFwkWHNlZCAtZSBcXCJcXFwkc2VkX3F1b3RlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCisgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcYFxcXCRFQ0hPIFxcIlxcXCRcJHZhclxcIiB8IFxcXCRTRUQgXFwiXFxcJHNlZF9xdW90ZV9zdWJzdFxcIlxcXGBcXFxcXFwiIgogICAgICAgOzsKICAgICAqKQogICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxcIlxcXCRcJHZhclxcXFxcXCIiCkBAIC01MzMsOSArNTU2LDkgQEAKICMgRG91YmxlLXF1b3RlIGRvdWJsZS1ldmFsZWQgc3RyaW5ncy4KIGZvciB2YXIgaW4gbHRfZGVjbF9hbGxfdmFybmFtZXMoW1sgXAogXV0sIGx0X2RlY2xfZHF1b3RlX3Zhcm5hbWVzKTsgZG8KLSAgICBjYXNlIFxgZXZhbCBcXFxcXCRFQ0hPICJYXFxcXFwkXCR2YXIiXGAgaW4KKyAgICBjYXNlIFxgZXZhbCBcXFxcXCRFQ0hPIFxcXFwiIlxcXFxcJFwkdmFyIlxcXFwiXGAgaW4KICAgICAqW1tcXFxcXFxcYFxcIlxcXCRdXSopCi0gICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcYFxcXCRFQ0hPIFxcIlhcXFwkXCR2YXJcXCIgfCBcXFwkWHNlZCAtZSBcXCJcXFwkZG91YmxlX3F1b3RlX3N1YnN0XFwiIC1lIFxcIlxcXCRzZWRfcXVvdGVfc3Vic3RcXCIgLWUgXFwiXFxcJGRlbGF5X3ZhcmlhYmxlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCisgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcYFxcXCRFQ0hPIFxcIlxcXCRcJHZhclxcIiB8IFxcXCRTRUQgLWUgXFwiXFxcJGRvdWJsZV9xdW90ZV9zdWJzdFxcIiAtZSBcXCJcXFwkc2VkX3F1b3RlX3N1YnN0XFwiIC1lIFxcIlxcXCRkZWxheV92YXJpYWJsZV9zdWJzdFxcIlxcXGBcXFxcXFwiIgogICAgICAgOzsKICAgICAqKQogICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxcIlxcXCRcJHZhclxcXFxcXCIiCkBAIC01NDMsMTYgKzU2NiwzOCBAQAogICAgIGVzYWMKIGRvbmUKIAotIyBGaXgtdXAgZmFsbGJhY2sgZWNobyBpZiBpdCB3YXMgbWFuZ2xlZCBieSB0aGUgYWJvdmUgcXVvdGluZyBydWxlcy4KLWNhc2UgXCRsdF9FQ0hPIGluCi0qJ1xcXFskXTAgLS1mYWxsYmFjay1lY2hvIicpZG5sICIKLSAgbHRfRUNITz1cYFwkRUNITyAiWFwkbHRfRUNITyIgfCBcJFhzZWQgLWUgJ3MvXFxcXFxcXFxcXFxcXFxcWyRdMCAtLWZhbGxiYWNrLWVjaG8iXFskXS9cWyRdMCAtLWZhbGxiYWNrLWVjaG8iLydcYAotICA7OwotZXNhYwotCiBfTFRfT1VUUFVUX0xJQlRPT0xfSU5JVAogXSkKIAorIyBfTFRfR0VORVJBVEVEX0ZJTEVfSU5JVChGSUxFLCBbQ09NTUVOVF0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBHZW5lcmF0ZSBhIGNoaWxkIHNjcmlwdCBGSUxFIHdpdGggYWxsIGluaXRpYWxpemF0aW9uIG5lY2Vzc2FyeSB0bworIyByZXVzZSB0aGUgZW52aXJvbm1lbnQgbGVhcm5lZCBieSB0aGUgcGFyZW50IHNjcmlwdCwgYW5kIG1ha2UgdGhlCisjIGZpbGUgZXhlY3V0YWJsZS4gIElmIENPTU1FTlQgaXMgc3VwcGxpZWQsIGl0IGlzIGluc2VydGVkIGFmdGVyIHRoZQorIyBgIyEnIHNlcXVlbmNlIGJ1dCBiZWZvcmUgaW5pdGlhbGl6YXRpb24gdGV4dCBiZWdpbnMuICBBZnRlciB0aGlzCisjIG1hY3JvLCBhZGRpdGlvbmFsIHRleHQgY2FuIGJlIGFwcGVuZGVkIHRvIEZJTEUgdG8gZm9ybSB0aGUgYm9keSBvZgorIyB0aGUgY2hpbGQgc2NyaXB0LiAgVGhlIG1hY3JvIGVuZHMgd2l0aCBub24temVybyBzdGF0dXMgaWYgdGhlCisjIGZpbGUgY291bGQgbm90IGJlIGZ1bGx5IHdyaXR0ZW4gKHN1Y2ggYXMgaWYgdGhlIGRpc2sgaXMgZnVsbCkuCittNF9pZmRlZihbQVNfSU5JVF9HRU5FUkFURURdLAorW200X2RlZnVuKFtfTFRfR0VORVJBVEVEX0ZJTEVfSU5JVF0sW0FTX0lOSVRfR0VORVJBVEVEKCRAKV0pXSwKK1ttNF9kZWZ1bihbX0xUX0dFTkVSQVRFRF9GSUxFX0lOSVRdLAorW200X3JlcXVpcmUoW0FTX1BSRVBBUkVdKV1kbmwKK1ttNF9wdXNoZGVmKFtBU19NRVNTQUdFX0xPR19GRF0pXWRubAorW2x0X3dyaXRlX2ZhaWw9MAorY2F0ID4kMSA8PF9BU0VPRiB8fCBsdF93cml0ZV9mYWlsPTEKKyMhICRTSEVMTAorIyBHZW5lcmF0ZWQgYnkgJGFzX21lLgorJDIKK1NIRUxMPVwke0NPTkZJR19TSEVMTC0kU0hFTEx9CitleHBvcnQgU0hFTEwKK19BU0VPRgorY2F0ID4+JDEgPDxcX0FTRU9GIHx8IGx0X3dyaXRlX2ZhaWw9MQorQVNfU0hFTExfU0FOSVRJWkUKK19BU19QUkVQQVJFCitleGVjIEFTX01FU1NBR0VfRkQ+JjEKK19BU0VPRgordGVzdCAkbHRfd3JpdGVfZmFpbCA9IDAgJiYgY2htb2QgK3ggJDFbXWRubAorbTRfcG9wZGVmKFtBU19NRVNTQUdFX0xPR19GRF0pXSldKSMgX0xUX0dFTkVSQVRFRF9GSUxFX0lOSVQKIAogIyBMVF9PVVRQVVQKICMgLS0tLS0tLS0tCkBAIC01NjIsMjAgKzYwNywxMSBAQAogQUNfREVGVU4oW0xUX09VVFBVVF0sCiBbOiAke0NPTkZJR19MVD0uL2NvbmZpZy5sdH0KIEFDX01TR19OT1RJQ0UoW2NyZWF0aW5nICRDT05GSUdfTFRdKQotY2F0ID4iJENPTkZJR19MVCIgPDxfTFRFT0YKLSMhICRTSEVMTAotIyBHZW5lcmF0ZWQgYnkgJGFzX21lLgotIyBSdW4gdGhpcyBmaWxlIHRvIHJlY3JlYXRlIGEgbGlidG9vbCBzdHViIHdpdGggdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4KLQotbHRfY2xfc2lsZW50PWZhbHNlCi1TSEVMTD1cJHtDT05GSUdfU0hFTEwtJFNIRUxMfQotX0xURU9GCitfTFRfR0VORVJBVEVEX0ZJTEVfSU5JVChbIiRDT05GSUdfTFQiXSwKK1sjIFJ1biB0aGlzIGZpbGUgdG8gcmVjcmVhdGUgYSBsaWJ0b29sIHN0dWIgd2l0aCB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLl0pCiAKIGNhdCA+PiIkQ09ORklHX0xUIiA8PFxfTFRFT0YKLUFTX1NIRUxMX1NBTklUSVpFCi1fQVNfUFJFUEFSRQotCi1leGVjIEFTX01FU1NBR0VfRkQ+JjEKK2x0X2NsX3NpbGVudD1mYWxzZQogZXhlYyBBU19NRVNTQUdFX0xPR19GRD4+Y29uZmlnLmxvZwogewogICBlY2hvCkBAIC02MDEsNyArNjM3LDcgQEAKIG00X2lmc2V0KFtBQ19QQUNLQUdFX1ZFUlNJT05dLCBbIEFDX1BBQ0tBR0VfVkVSU0lPTl0pCiBjb25maWd1cmVkIGJ5ICRbMF0sIGdlbmVyYXRlZCBieSBtNF9QQUNLQUdFX1NUUklORy4KIAotQ29weXJpZ2h0IChDKSAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorQ29weXJpZ2h0IChDKSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogVGhpcyBjb25maWcubHQgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KIGdpdmVzIHVubGltaXRlZCBwZXJtaXNpb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LiIKIApAQCAtNjQ2LDE1ICs2ODIsMTMgQEAKICMgYXBwZW5kaW5nIHRvIGNvbmZpZy5sb2csIHdoaWNoIGZhaWxzIG9uIERPUywgYXMgY29uZmlnLmxvZyBpcyBzdGlsbCBrZXB0CiAjIG9wZW4gYnkgY29uZmlndXJlLiAgSGVyZSB3ZSBleGVjIHRoZSBGRCB0byAvZGV2L251bGwsIGVmZmVjdGl2ZWx5IGNsb3NpbmcKICMgY29uZmlnLmxvZywgc28gaXQgY2FuIGJlIHByb3Blcmx5IChyZSlvcGVuZWQgYW5kIGFwcGVuZGVkIHRvIGJ5IGNvbmZpZy5sdC4KLWlmIHRlc3QgIiRub19jcmVhdGUiICE9IHllczsgdGhlbgotICBsdF9jbF9zdWNjZXNzPToKLSAgdGVzdCAiJHNpbGVudCIgPSB5ZXMgJiYKLSAgICBsdF9jb25maWdfbHRfYXJncz0iJGx0X2NvbmZpZ19sdF9hcmdzIC0tcXVpZXQiCi0gIGV4ZWMgQVNfTUVTU0FHRV9MT0dfRkQ+L2Rldi9udWxsCi0gICRTSEVMTCAiJENPTkZJR19MVCIgJGx0X2NvbmZpZ19sdF9hcmdzIHx8IGx0X2NsX3N1Y2Nlc3M9ZmFsc2UKLSAgZXhlYyBBU19NRVNTQUdFX0xPR19GRD4+Y29uZmlnLmxvZwotICAkbHRfY2xfc3VjY2VzcyB8fCBBU19FWElUKDEpCi1maQorbHRfY2xfc3VjY2Vzcz06Cit0ZXN0ICIkc2lsZW50IiA9IHllcyAmJgorICBsdF9jb25maWdfbHRfYXJncz0iJGx0X2NvbmZpZ19sdF9hcmdzIC0tcXVpZXQiCitleGVjIEFTX01FU1NBR0VfTE9HX0ZEPi9kZXYvbnVsbAorJFNIRUxMICIkQ09ORklHX0xUIiAkbHRfY29uZmlnX2x0X2FyZ3MgfHwgbHRfY2xfc3VjY2Vzcz1mYWxzZQorZXhlYyBBU19NRVNTQUdFX0xPR19GRD4+Y29uZmlnLmxvZworJGx0X2NsX3N1Y2Nlc3MgfHwgQVNfRVhJVCgxKQogXSkjIExUX09VVFBVVAogCiAKQEAgLTcxNywxNSArNzUxLDEyIEBACiAgICMgaWYgZmluZHMgbWl4ZWQgQ1IvTEYgYW5kIExGLW9ubHkgbGluZXMuICBTaW5jZSBzZWQgb3BlcmF0ZXMgaW4KICAgIyB0ZXh0IG1vZGUsIGl0IHByb3Blcmx5IGNvbnZlcnRzIGxpbmVzIHRvIENSL0xGLiAgVGhpcyBiYXNoIHByb2JsZW0KICAgIyBpcyByZXBvcnRlZGx5IGZpeGVkLCBidXQgd2h5IG5vdCBydW4gb24gb2xkIHZlcnNpb25zIHRvbz8KLSAgc2VkICcvXiMgR2VuZXJhdGVkIHNoZWxsIGZ1bmN0aW9ucyBpbnNlcnRlZCBoZXJlL3EnICIkbHRtYWluIiA+PiAiJGNmZ2ZpbGUiIFwKLSAgICB8fCAocm0gLWYgIiRjZmdmaWxlIjsgZXhpdCAxKQorICBzZWQgJyRxJyAiJGx0bWFpbiIgPj4gIiRjZmdmaWxlIiBcCisgICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiOyBleGl0IDEpCiAKLSAgX0xUX1BST0dfWFNJX1NIRUxMRk5TCisgIF9MVF9QUk9HX1JFUExBQ0VfU0hFTExGTlMKIAotICBzZWQgLW4gJy9eIyBHZW5lcmF0ZWQgc2hlbGwgZnVuY3Rpb25zIGluc2VydGVkIGhlcmUvLCRwJyAiJGx0bWFpbiIgPj4gIiRjZmdmaWxlIiBcCi0gICAgfHwgKHJtIC1mICIkY2ZnZmlsZSI7IGV4aXQgMSkKLQotICBtdiAtZiAiJGNmZ2ZpbGUiICIkb2ZpbGUiIHx8CisgICBtdiAtZiAiJGNmZ2ZpbGUiICIkb2ZpbGUiIHx8CiAgICAgKHJtIC1mICIkb2ZpbGUiICYmIGNwICIkY2ZnZmlsZSIgIiRvZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlIikKICAgY2htb2QgK3ggIiRvZmlsZSIKIF0sCkBAIC04MzEsMTEgKzg2MiwxMyBAQAogQVVfREVGVU4oW0FDX0xJQlRPT0xfRjc3XSwgW0xUX0xBTkcoRm9ydHJhbiA3NyldKQogQVVfREVGVU4oW0FDX0xJQlRPT0xfRkNdLCBbTFRfTEFORyhGb3J0cmFuKV0pCiBBVV9ERUZVTihbQUNfTElCVE9PTF9HQ0pdLCBbTFRfTEFORyhKYXZhKV0pCitBVV9ERUZVTihbQUNfTElCVE9PTF9SQ10sIFtMVF9MQU5HKFdpbmRvd3MgUmVzb3VyY2UpXSkKIGRubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKIGRubCBBQ19ERUZVTihbQUNfTElCVE9PTF9DWFhdLCBbXSkKIGRubCBBQ19ERUZVTihbQUNfTElCVE9PTF9GNzddLCBbXSkKIGRubCBBQ19ERUZVTihbQUNfTElCVE9PTF9GQ10sIFtdKQogZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0dDSl0sIFtdKQorZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX1JDXSwgW10pCiAKIAogIyBfTFRfVEFHX0NPTVBJTEVSCkBAIC05NDAsNiArOTczLDMxIEBACiAJW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD1ub10pCiAJTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKICAgICBdKQorICAgIEFDX0NBQ0hFX0NIRUNLKFtmb3IgLWZvcmNlX2xvYWQgbGlua2VyIGZsYWddLFtsdF9jdl9sZF9mb3JjZV9sb2FkXSwKKyAgICAgIFtsdF9jdl9sZF9mb3JjZV9sb2FkPW5vCisgICAgICBjYXQgPiBjb25mdGVzdC5jIDw8IF9MVF9FT0YKK2ludCBmb3JjZWRfbG9hZGVkKCkgeyByZXR1cm4gMjt9CitfTFRfRU9GCisgICAgICBlY2hvICIkTFRDQyAkTFRDRkxBR1MgLWMgLW8gY29uZnRlc3QubyBjb25mdGVzdC5jIiA+JkFTX01FU1NBR0VfTE9HX0ZECisgICAgICAkTFRDQyAkTFRDRkxBR1MgLWMgLW8gY29uZnRlc3QubyBjb25mdGVzdC5jIDI+JkFTX01FU1NBR0VfTE9HX0ZECisgICAgICBlY2hvICIkQVIgY3J1IGxpYmNvbmZ0ZXN0LmEgY29uZnRlc3QubyIgPiZBU19NRVNTQUdFX0xPR19GRAorICAgICAgJEFSIGNydSBsaWJjb25mdGVzdC5hIGNvbmZ0ZXN0Lm8gMj4mQVNfTUVTU0FHRV9MT0dfRkQKKyAgICAgIGVjaG8gIiRSQU5MSUIgbGliY29uZnRlc3QuYSIgPiZBU19NRVNTQUdFX0xPR19GRAorICAgICAgJFJBTkxJQiBsaWJjb25mdGVzdC5hIDI+JkFTX01FU1NBR0VfTE9HX0ZECisgICAgICBjYXQgPiBjb25mdGVzdC5jIDw8IF9MVF9FT0YKK2ludCBtYWluKCkgeyByZXR1cm4gMDt9CitfTFRfRU9GCisgICAgICBlY2hvICIkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAtV2wsLWZvcmNlX2xvYWQsLi9saWJjb25mdGVzdC5hIiA+JkFTX01FU1NBR0VfTE9HX0ZECisgICAgICAkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAtV2wsLWZvcmNlX2xvYWQsLi9saWJjb25mdGVzdC5hIDI+Y29uZnRlc3QuZXJyCisgICAgICBfbHRfcmVzdWx0PSQ/CisgICAgICBpZiB0ZXN0IC1mIGNvbmZ0ZXN0ICYmIHRlc3QgISAtcyBjb25mdGVzdC5lcnIgJiYgdGVzdCAkX2x0X3Jlc3VsdCA9IDAgJiYgJEdSRVAgZm9yY2VkX2xvYWQgY29uZnRlc3QgMj4mMSA+L2Rldi9udWxsOyB0aGVuCisJbHRfY3ZfbGRfZm9yY2VfbG9hZD15ZXMKKyAgICAgIGVsc2UKKwljYXQgY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKKyAgICAgIGZpCisgICAgICAgIHJtIC1mIGNvbmZ0ZXN0LmVyciBsaWJjb25mdGVzdC5hIGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMKKyAgICAgICAgcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKyAgICBdKQogICAgIGNhc2UgJGhvc3Rfb3MgaW4KICAgICByaGFwc29keSogfCBkYXJ3aW4xLltbMDEyXV0pCiAgICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7CkBAIC05NjcsNyArMTAyNSw3IEBACiAgICAgZWxzZQogICAgICAgX2x0X2Rhcl9leHBvcnRfc3ltcz0nfiROTUVESVQgLXMgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAke2xpYn0nCiAgICAgZmkKLSAgICBpZiB0ZXN0ICIkRFNZTVVUSUwiICE9ICI6IjsgdGhlbgorICAgIGlmIHRlc3QgIiREU1lNVVRJTCIgIT0gIjoiICYmIHRlc3QgIiRsdF9jdl9sZF9mb3JjZV9sb2FkIiA9ICJubyI7IHRoZW4KICAgICAgIF9sdF9kc3ltdXRpbD0nfiREU1lNVVRJTCAkbGliIHx8IDonCiAgICAgZWxzZQogICAgICAgX2x0X2RzeW11dGlsPQpAQCAtOTg3LDcgKzEwNDUsMTEgQEAKICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwogICBfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPXllcwogICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT11bnN1cHBvcnRlZAotICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JycKKyAgaWYgdGVzdCAiJGx0X2N2X2xkX2ZvcmNlX2xvYWQiID0gInllcyI7IHRoZW4KKyAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9J2Bmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSAke3dsfS1mb3JjZV9sb2FkLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgJworICBlbHNlCisgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScnCisgIGZpCiAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcwogICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9IiRfbHRfZGFyX2FsbG93X3VuZGVmaW5lZCIKICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KQEAgLTk5NSw3ICsxMDU3LDcgQEAKICAgICAgKikgX2x0X2Rhcl9jYW5fc2hhcmVkPSRHQ0MgOzsKICAgZXNhYwogICBpZiB0ZXN0ICIkX2x0X2Rhcl9jYW5fc2hhcmVkIiA9ICJ5ZXMiOyB0aGVuCi0gICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZWNobworICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPWZ1bmNfZWNob19hbGwKICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSJcJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAkX2x0X2Rhcl9zaW5nbGVfbW9kJHtfbHRfZHN5bXV0aWx9IgogICAgIF9MVF9UQUdWQVIobW9kdWxlX2NtZHMsICQxKT0iXCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZHN5bXV0aWx9IgogICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICR7X2x0X2Rhcl9zaW5nbGVfbW9kfSR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCkBAIC0xMDExLDIwMyArMTA3MywxNDIgQEAKICAgZmkKIF0pCiAKLSMgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgoW1RBR05BTUVdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIExpbmtzIGEgbWluaW1hbCBwcm9ncmFtIGFuZCBjaGVja3MgdGhlIGV4ZWN1dGFibGUKICMgZm9yIHRoZSBzeXN0ZW0gZGVmYXVsdCBoYXJkY29kZWQgbGlicmFyeSBwYXRoLiBJbiBtb3N0IGNhc2VzLAogIyB0aGlzIGlzIC91c3IvbGliOi9saWIsIGJ1dCB3aGVuIHRoZSBNUEkgY29tcGlsZXJzIGFyZSB1c2VkCiAjIHRoZSBsb2NhdGlvbiBvZiB0aGUgY29tbXVuaWNhdGlvbiBhbmQgTVBJIGxpYnMgYXJlIGluY2x1ZGVkIHRvby4KICMgSWYgd2UgZG9uJ3QgZmluZCBhbnl0aGluZywgdXNlIHRoZSBkZWZhdWx0IGxpYnJhcnkgcGF0aCBhY2NvcmRpbmcKICMgdG8gdGhlIGFpeCBsZCBtYW51YWwuCisjIFN0b3JlIHRoZSByZXN1bHRzIGZyb20gdGhlIGRpZmZlcmVudCBjb21waWxlcnMgZm9yIGVhY2ggVEFHTkFNRS4KKyMgQWxsb3cgdG8gb3ZlcnJpZGUgdGhlbSBmb3IgYWxsIHRhZ3MgdGhyb3VnaCBsdF9jdl9haXhfbGlicGF0aC4KIG00X2RlZnVuKFtfTFRfU1lTX01PRFVMRV9QQVRIX0FJWF0sCiBbbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKLUFDX0xJTktfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTSxbCi1sdF9haXhfbGlicGF0aF9zZWQ9JwotICAgIC9JbXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsKLQkvXjAvIHsKLQkgICAgcy9eMCAgKlwoLipcKSQvXDEvCi0JICAgIHAKLQl9Ci0gICAgfScKLWFpeF9saWJwYXRoPWBkdW1wIC1IIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgotaWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgotICBhaXhfbGlicGF0aD1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKLWZpXSxbXSkKLWlmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4gYWl4X2xpYnBhdGg9Ii91c3IvbGliOi9saWIiOyBmaQoraWYgdGVzdCAiJHtsdF9jdl9haXhfbGlicGF0aCtzZXR9IiA9IHNldDsgdGhlbgorICBhaXhfbGlicGF0aD0kbHRfY3ZfYWl4X2xpYnBhdGgKK2Vsc2UKKyAgQUNfQ0FDSEVfVkFMKFtfTFRfVEFHVkFSKFtsdF9jdl9haXhfbGlicGF0aF9dLCBbJDFdKV0sCisgIFtBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNXSxbCisgIGx0X2FpeF9saWJwYXRoX3NlZD0nWworICAgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8geworCSAgL14wLyB7CisJICAgICAgcy9eMCAgKlwoW14gXSpcKSAqJC9cMS8KKwkgICAgICBwCisJICB9CisgICAgICB9XScKKyAgX0xUX1RBR1ZBUihbbHRfY3ZfYWl4X2xpYnBhdGhfXSwgWyQxXSk9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisgICMgQ2hlY2sgZm9yIGEgNjQtYml0IG9iamVjdCBpZiB3ZSBkaWRuJ3QgZmluZCBhbnl0aGluZy4KKyAgaWYgdGVzdCAteiAiJF9MVF9UQUdWQVIoW2x0X2N2X2FpeF9saWJwYXRoX10sIFskMV0pIjsgdGhlbgorICAgIF9MVF9UQUdWQVIoW2x0X2N2X2FpeF9saWJwYXRoX10sIFskMV0pPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAorICBmaV0sW10pCisgIGlmIHRlc3QgLXogIiRfTFRfVEFHVkFSKFtsdF9jdl9haXhfbGlicGF0aF9dLCBbJDFdKSI7IHRoZW4KKyAgICBfTFRfVEFHVkFSKFtsdF9jdl9haXhfbGlicGF0aF9dLCBbJDFdKT0iL3Vzci9saWI6L2xpYiIKKyAgZmkKKyAgXSkKKyAgYWl4X2xpYnBhdGg9JF9MVF9UQUdWQVIoW2x0X2N2X2FpeF9saWJwYXRoX10sIFskMV0pCitmaQogXSkjIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCiAKIAogIyBfTFRfU0hFTExfSU5JVChBUkcpCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0KIG00X2RlZmluZShbX0xUX1NIRUxMX0lOSVRdLAotW2lmZGVmKFtBQ19ESVZFUlNJT05fTk9USUNFXSwKLQkgICAgIFtBQ19ESVZFUlRfUFVTSChBQ19ESVZFUlNJT05fTk9USUNFKV0sCi0JIFtBQ19ESVZFUlRfUFVTSChOT1RJQ0UpXSkKLSQxCi1BQ19ESVZFUlRfUE9QCi1dKSMgX0xUX1NIRUxMX0lOSVQKK1ttNF9kaXZlcnRfdGV4dChbTTRTSC1JTklUXSwgWyQxCitdKV0pIyBfTFRfU0hFTExfSU5JVAorCiAKIAogIyBfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBBZGQgc29tZSBjb2RlIHRvIHRoZSBzdGFydCBvZiB0aGUgZ2VuZXJhdGVkIGNvbmZpZ3VyZSBzY3JpcHQgd2hpY2gKLSMgd2lsbCBmaW5kIGFuIGVjaG8gY29tbWFuZCB3aGljaCBkb2Vzbid0IGludGVycHJldCBiYWNrc2xhc2hlcy4KKyMgRmluZCBob3cgd2UgY2FuIGZha2UgYW4gZWNobyBjb21tYW5kIHRoYXQgZG9lcyBub3QgaW50ZXJwcmV0IGJhY2tzbGFzaC4KKyMgSW4gcGFydGljdWxhciwgd2l0aCBBdXRvY29uZiAyLjYwIG9yIGxhdGVyIHdlIGFkZCBzb21lIGNvZGUgdG8gdGhlIHN0YXJ0CisjIG9mIHRoZSBnZW5lcmF0ZWQgY29uZmlndXJlIHNjcmlwdCB3aGljaCB3aWxsIGZpbmQgYSBzaGVsbCB3aXRoIGEgYnVpbHRpbgorIyBwcmludGYgKHdoaWNoIHdlIGNhbiB1c2UgYXMgYW4gZWNobyBjb21tYW5kKS4KIG00X2RlZnVuKFtfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSF0sCi1bX0xUX1NIRUxMX0lOSVQoWwotIyBDaGVjayB0aGF0IHdlIGFyZSBydW5uaW5nIHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLgotU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KK1tFQ0hPPSdcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcJworRUNITz0kRUNITyRFQ0hPJEVDSE8kRUNITyRFQ0hPCitFQ0hPPSRFQ0hPJEVDSE8kRUNITyRFQ0hPJEVDSE8kRUNITwogCi1jYXNlIFgkbHRfRUNITyBpbgotWCotLWZhbGxiYWNrLWVjaG8pCi0gICMgUmVtb3ZlIG9uZSBsZXZlbCBvZiBxdW90YXRpb24gKHdoaWNoIHdhcyByZXF1aXJlZCBmb3IgTWFrZSkuCi0gIEVDSE89YGVjaG8gIiRsdF9FQ0hPIiB8IHNlZCAncyxcXFxcXFskXVxcWyRdMCwnWyRdMCcsJ2AKLSAgOzsKK0FDX01TR19DSEVDS0lORyhbaG93IHRvIHByaW50IHN0cmluZ3NdKQorIyBUZXN0IHByaW50IGZpcnN0LCBiZWNhdXNlIGl0IHdpbGwgYmUgYSBidWlsdGluIGlmIHByZXNlbnQuCitpZiB0ZXN0ICJYYCggcHJpbnQgLXIgLS0gLW4gKSAyPi9kZXYvbnVsbGAiID0gWC1uICYmIFwKKyAgIHRlc3QgIlhgcHJpbnQgLXIgLS0gJEVDSE8gMj4vZGV2L251bGxgIiA9ICJYJEVDSE8iOyB0aGVuCisgIEVDSE89J3ByaW50IC1yIC0tJworZWxpZiB0ZXN0ICJYYHByaW50ZiAlcyAkRUNITyAyPi9kZXYvbnVsbGAiID0gIlgkRUNITyI7IHRoZW4KKyAgRUNITz0ncHJpbnRmICVzXG4nCitlbHNlCisgICMgVXNlIHRoaXMgZnVuY3Rpb24gYXMgYSBmYWxsYmFjayB0aGF0IGFsd2F5cyB3b3Jrcy4KKyAgZnVuY19mYWxsYmFja19lY2hvICgpCisgIHsKKyAgICBldmFsICdjYXQgPDxfTFRFQ0hPX0VPRgorJFtdMQorX0xURUNIT19FT0YnCisgIH0KKyAgRUNITz0nZnVuY19mYWxsYmFja19lY2hvJworZmkKKworIyBmdW5jX2VjaG9fYWxsIGFyZy4uLgorIyBJbnZva2UgJEVDSE8gd2l0aCBhbGwgYXJncywgc3BhY2Utc2VwYXJhdGVkLgorZnVuY19lY2hvX2FsbCAoKQoreworICAgICRFQ0hPICIkKiIgCit9CisKK2Nhc2UgIiRFQ0hPIiBpbgorICBwcmludGYqKSBBQ19NU0dfUkVTVUxUKFtwcmludGZdKSA7OworICBwcmludCopIEFDX01TR19SRVNVTFQoW3ByaW50IC1yXSkgOzsKKyAgKikgQUNfTVNHX1JFU1VMVChbY2F0XSkgOzsKIGVzYWMKIAotRUNITz0ke2x0X0VDSE8tZWNob30KLWlmIHRlc3QgIlhbJF0xIiA9IFgtLW5vLXJlZXhlYzsgdGhlbgotICAjIERpc2NhcmQgdGhlIC0tbm8tcmVleGVjIGZsYWcsIGFuZCBjb250aW51ZS4KLSAgc2hpZnQKLWVsaWYgdGVzdCAiWFskXTEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgotICAjIEF2b2lkIGlubGluZSBkb2N1bWVudCBoZXJlLCBpdCBtYXkgYmUgbGVmdCBvdmVyCi0gIDoKLWVsaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnIDsgdGhlbgotICAjIFlpcHBlZSwgJEVDSE8gd29ya3MhCi0gIDoKLWVsc2UKLSAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLgotICBleGVjICRTSEVMTCAiWyRdMCIgLS1uby1yZWV4ZWMgJHsxKyJbJF1AIn0KLWZpCittNF9pZmRlZihbX0FTX0RFVEVDVF9TVUdHRVNURURdLAorW19BU19ERVRFQ1RfU1VHR0VTVEVEKFsKKyAgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9JHtCQVNIX1ZFUlNJT04rc2V0fSIgfHwgKAorICAgIEVDSE89J1xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwnCisgICAgRUNITz0kRUNITyRFQ0hPJEVDSE8kRUNITyRFQ0hPCisgICAgRUNITz0kRUNITyRFQ0hPJEVDSE8kRUNITyRFQ0hPJEVDSE8KKyAgICBQQVRIPS9lbXB0eSBGUEFUSD0vZW1wdHk7IGV4cG9ydCBQQVRIIEZQQVRICisgICAgdGVzdCAiWGBwcmludGYgJXMgJEVDSE9gIiA9ICJYJEVDSE8iIFwKKyAgICAgIHx8IHRlc3QgIlhgcHJpbnQgLXIgLS0gJEVDSE9gIiA9ICJYJEVDSE8iICldKV0pCiAKLWlmIHRlc3QgIlhbJF0xIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KLSAgIyB1c2VkIGFzIGZhbGxiYWNrIGVjaG8KLSAgc2hpZnQKLSAgY2F0IDw8X0xUX0VPRgotWyRdKgotX0xUX0VPRgotICBleGl0IDAKLWZpCi0KLSMgVGhlIEhQLVVYIGtzaCBhbmQgUE9TSVggc2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gc3Rkb3V0Ci0jIGlmIENEUEFUSCBpcyBzZXQuCi0odW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRICi0KLWlmIHRlc3QgLXogIiRsdF9FQ0hPIjsgdGhlbgotICBpZiB0ZXN0ICJYJHtlY2hvX3Rlc3Rfc3RyaW5nK3NldH0iICE9IFhzZXQ7IHRoZW4KLSAgICAjIGZpbmQgYSBzdHJpbmcgYXMgbGFyZ2UgYXMgcG9zc2libGUsIGFzIGxvbmcgYXMgdGhlIHNoZWxsIGNhbiBjb3BlIHdpdGggaXQKLSAgICBmb3IgY21kIGluICdzZWQgNTBxICJbJF0wIicgJ3NlZCAyMHEgIlskXTAiJyAnc2VkIDEwcSAiWyRdMCInICdzZWQgMnEgIlskXTAiJyAnZWNobyB0ZXN0JzsgZG8KLSAgICAgICMgZXhwZWN0ZWQgc2l6ZXM6IGxlc3MgdGhhbiAyS2IsIDFLYiwgNTEyIGJ5dGVzLCAxNiBieXRlcywgLi4uCi0gICAgICBpZiB7IGVjaG9fdGVzdF9zdHJpbmc9YGV2YWwgJGNtZGA7IH0gMj4vZGV2L251bGwgJiYKLQkgeyB0ZXN0ICJYJGVjaG9fdGVzdF9zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IH0gMj4vZGV2L251bGwKLSAgICAgIHRoZW4KLSAgICAgICAgYnJlYWsKLSAgICAgIGZpCi0gICAgZG9uZQotICBmaQotCi0gIGlmIHRlc3QgIlhgeyAkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgotICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWB7ICRFQ0hPICIkZWNob190ZXN0X3N0cmluZyI7IH0gMj4vZGV2L251bGxgICYmCi0gICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgotICAgIDoKLSAgZWxzZQotICAgICMgVGhlIFNvbGFyaXMsIEFJWCwgYW5kIERpZ2l0YWwgVW5peCBkZWZhdWx0IGVjaG8gcHJvZ3JhbXMgdW5xdW90ZQotICAgICMgYmFja3NsYXNoZXMuICBUaGlzIG1ha2VzIGl0IGltcG9zc2libGUgdG8gcXVvdGUgYmFja3NsYXNoZXMgdXNpbmcKLSAgICAjICAgZWNobyAiJHNvbWV0aGluZyIgfCBzZWQgJ3MvXFwvXFxcXC9nJwotICAgICMKLSAgICAjIFNvLCBmaXJzdCB3ZSBsb29rIGZvciBhIHdvcmtpbmcgZWNobyBpbiB0aGUgdXNlcidzIFBBVEguCi0KLSAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKLSAgICBmb3IgZGlyIGluICRQQVRIIC91c3IvdWNiOyBkbwotICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0gICAgICBpZiAodGVzdCAtZiAkZGlyL2VjaG8gfHwgdGVzdCAtZiAkZGlyL2VjaG8kYWNfZXhlZXh0KSAmJgotICAgICAgICAgdGVzdCAiWGAoJGRpci9lY2hvICdcdCcpIDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgotICAgICAgICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRkaXIvZWNobyAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVsbGAgJiYKLSAgICAgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgotICAgICAgICBFQ0hPPSIkZGlyL2VjaG8iCi0gICAgICAgIGJyZWFrCi0gICAgICBmaQotICAgIGRvbmUKLSAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLQotICAgIGlmIHRlc3QgIlgkRUNITyIgPSBYZWNobzsgdGhlbgotICAgICAgIyBXZSBkaWRuJ3QgZmluZCBhIGJldHRlciBlY2hvLCBzbyBsb29rIGZvciBhbHRlcm5hdGl2ZXMuCi0gICAgICBpZiB0ZXN0ICJYYHsgcHJpbnQgLXIgJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKLSAgICAgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YHsgcHJpbnQgLXIgIiRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYKLSAgICAgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgotICAgICAgICAjIFRoaXMgc2hlbGwgaGFzIGEgYnVpbHRpbiBwcmludCAtciB0aGF0IGRvZXMgdGhlIHRyaWNrLgotICAgICAgICBFQ0hPPSdwcmludCAtcicKLSAgICAgIGVsaWYgeyB0ZXN0IC1mIC9iaW4va3NoIHx8IHRlc3QgLWYgL2Jpbi9rc2gkYWNfZXhlZXh0OyB9ICYmCi0JICAgdGVzdCAiWCRDT05GSUdfU0hFTEwiICE9IFgvYmluL2tzaDsgdGhlbgotICAgICAgICAjIElmIHdlIGhhdmUga3NoLCB0cnkgcnVubmluZyBjb25maWd1cmUgYWdhaW4gd2l0aCBpdC4KLSAgICAgICAgT1JJR0lOQUxfQ09ORklHX1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9Ci0gICAgICAgIGV4cG9ydCBPUklHSU5BTF9DT05GSUdfU0hFTEwKLSAgICAgICAgQ09ORklHX1NIRUxMPS9iaW4va3NoCi0gICAgICAgIGV4cG9ydCBDT05GSUdfU0hFTEwKLSAgICAgICAgZXhlYyAkQ09ORklHX1NIRUxMICJbJF0wIiAtLW5vLXJlZXhlYyAkezErIlskXUAifQotICAgICAgZWxzZQotICAgICAgICAjIFRyeSB1c2luZyBwcmludGYuCi0gICAgICAgIEVDSE89J3ByaW50ZiAlc1xuJwotICAgICAgICBpZiB0ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKLQkgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWB7ICRFQ0hPICIkZWNob190ZXN0X3N0cmluZyI7IH0gMj4vZGV2L251bGxgICYmCi0JICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0JICAjIENvb2wsIHByaW50ZiB3b3JrcwotCSAgOgotICAgICAgICBlbGlmIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkT1JJR0lOQUxfQ09ORklHX1NIRUxMICJbJF0wIiAtLWZhbGxiYWNrLWVjaG8gJ1x0JykgMj4vZGV2L251bGxgICYmCi0JICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gJ1hcdCcgJiYKLQkgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkT1JJR0lOQUxfQ09ORklHX1NIRUxMICJbJF0wIiAtLWZhbGxiYWNrLWVjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCi0JICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLQkgIENPTkZJR19TSEVMTD0kT1JJR0lOQUxfQ09ORklHX1NIRUxMCi0JICBleHBvcnQgQ09ORklHX1NIRUxMCi0JICBTSEVMTD0iJENPTkZJR19TSEVMTCIKLQkgIGV4cG9ydCBTSEVMTAotCSAgRUNITz0iJENPTkZJR19TSEVMTCBbJF0wIC0tZmFsbGJhY2stZWNobyIKLSAgICAgICAgZWxpZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJENPTkZJR19TSEVMTCAiWyRdMCIgLS1mYWxsYmFjay1lY2hvICdcdCcpIDI+L2Rldi9udWxsYCAmJgotCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICdYXHQnICYmCi0JICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJENPTkZJR19TSEVMTCAiWyRdMCIgLS1mYWxsYmFjay1lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgotCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0JICBFQ0hPPSIkQ09ORklHX1NIRUxMIFskXTAgLS1mYWxsYmFjay1lY2hvIgotICAgICAgICBlbHNlCi0JICAjIG1heWJlIHdpdGggYSBzbWFsbGVyIHN0cmluZy4uLgotCSAgcHJldj06Ci0KLQkgIGZvciBjbWQgaW4gJ2VjaG8gdGVzdCcgJ3NlZCAycSAiWyRdMCInICdzZWQgMTBxICJbJF0wIicgJ3NlZCAyMHEgIlskXTAiJyAnc2VkIDUwcSAiWyRdMCInOyBkbwotCSAgICBpZiB7IHRlc3QgIlgkZWNob190ZXN0X3N0cmluZyIgPSAiWGBldmFsICRjbWRgIjsgfSAyPi9kZXYvbnVsbAotCSAgICB0aGVuCi0JICAgICAgYnJlYWsKLQkgICAgZmkKLQkgICAgcHJldj0iJGNtZCIKLQkgIGRvbmUKLQotCSAgaWYgdGVzdCAiJHByZXYiICE9ICdzZWQgNTBxICJbJF0wIic7IHRoZW4KLQkgICAgZWNob190ZXN0X3N0cmluZz1gZXZhbCAkcHJldmAKLQkgICAgZXhwb3J0IGVjaG9fdGVzdF9zdHJpbmcKLQkgICAgZXhlYyAke09SSUdJTkFMX0NPTkZJR19TSEVMTC0ke0NPTkZJR19TSEVMTC0vYmluL3NofX0gIlskXTAiICR7MSsiWyRdQCJ9Ci0JICBlbHNlCi0JICAgICMgT29wcy4gIFdlIGxvc3QgY29tcGxldGVseSwgc28ganVzdCBzdGljayB3aXRoIGVjaG8uCi0JICAgIEVDSE89ZWNobwotCSAgZmkKLSAgICAgICAgZmkKLSAgICAgIGZpCi0gICAgZmkKLSAgZmkKLWZpCi0KLSMgQ29weSBlY2hvIGFuZCBxdW90ZSB0aGUgY29weSBzdWl0YWJseSBmb3IgcGFzc2luZyB0byBsaWJ0b29sIGZyb20KLSMgdGhlIE1ha2VmaWxlLCBpbnN0ZWFkIG9mIHF1b3RpbmcgdGhlIG9yaWdpbmFsLCB3aGljaCBpcyB1c2VkIGxhdGVyLgotbHRfRUNITz0kRUNITwotaWYgdGVzdCAiWCRsdF9FQ0hPIiA9ICJYJENPTkZJR19TSEVMTCBbJF0wIC0tZmFsbGJhY2stZWNobyI7IHRoZW4KLSAgIGx0X0VDSE89IiRDT05GSUdfU0hFTEwgXFxcJFxbJF0wIC0tZmFsbGJhY2stZWNobyIKLWZpCi0KLUFDX1NVQlNUKGx0X0VDSE8pCi1dKQogX0xUX0RFQ0woW10sIFtTSEVMTF0sIFsxXSwgW1NoZWxsIHRvIHVzZSB3aGVuIGludm9raW5nIHNoZWxsIHNjcmlwdHNdKQotX0xUX0RFQ0woW10sIFtFQ0hPXSwgWzFdLAotICAgIFtBbiBlY2hvIHByb2dyYW0gdGhhdCBkb2VzIG5vdCBpbnRlcnByZXQgYmFja3NsYXNoZXNdKQorX0xUX0RFQ0woW10sIFtFQ0hPXSwgWzFdLCBbQW4gZWNobyBwcm9ncmFtIHRoYXQgcHJvdGVjdHMgYmFja3NsYXNoZXNdKQogXSkjIF9MVF9QUk9HX0VDSE9fQkFDS1NMQVNICiAKIAorIyBfTFRfV0lUSF9TWVNST09UCisjIC0tLS0tLS0tLS0tLS0tLS0KK0FDX0RFRlVOKFtfTFRfV0lUSF9TWVNST09UXSwKK1tBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBzeXNyb290XSkKK0FDX0FSR19XSVRIKFtzeXNyb290XSwKK1sgIC0td2l0aC1zeXNyb290Wz1ESVJdIFNlYXJjaCBmb3IgZGVwZW5kZW50IGxpYnJhcmllcyB3aXRoaW4gRElSCisgICAgICAgICAgICAgICAgICAgICAgICAob3IgdGhlIGNvbXBpbGVyJ3Mgc3lzcm9vdCBpZiBub3Qgc3BlY2lmaWVkKS5dLAorW10sIFt3aXRoX3N5c3Jvb3Q9bm9dKQorCitkbmwgbHRfc3lzcm9vdCB3aWxsIGFsd2F5cyBiZSBwYXNzZWQgdW5xdW90ZWQuICBXZSBxdW90ZSBpdCBoZXJlCitkbmwgaW4gY2FzZSB0aGUgdXNlciBwYXNzZWQgYSBkaXJlY3RvcnkgbmFtZS4KK2x0X3N5c3Jvb3Q9CitjYXNlICR7d2l0aF9zeXNyb290fSBpbiAjKAorIHllcykKKyAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisgICAgIGx0X3N5c3Jvb3Q9YCRDQyAtLXByaW50LXN5c3Jvb3QgMj4vZGV2L251bGxgCisgICBmaQorICAgOzsgIygKKyAvKikKKyAgIGx0X3N5c3Jvb3Q9YGVjaG8gIiR3aXRoX3N5c3Jvb3QiIHwgc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKKyAgIDs7ICMoCisgbm98JycpCisgICA7OyAjKAorICopCisgICBBQ19NU0dfUkVTVUxUKFske3dpdGhfc3lzcm9vdH1dKQorICAgQUNfTVNHX0VSUk9SKFtUaGUgc3lzcm9vdCBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguXSkKKyAgIDs7Citlc2FjCisKKyBBQ19NU0dfUkVTVUxUKFske2x0X3N5c3Jvb3Q6LW5vfV0pCitfTFRfREVDTChbXSwgW2x0X3N5c3Jvb3RdLCBbMF0sIFtUaGUgcm9vdCB3aGVyZSB0byBzZWFyY2ggZm9yIF1kbmwKK1tkZXBlbmRlbnQgbGlicmFyaWVzLCBhbmQgaW4gd2hpY2ggb3VyIGxpYnJhcmllcyBzaG91bGQgYmUgaW5zdGFsbGVkLl0pXSkKKwogIyBfTFRfRU5BQkxFX0xPQ0sKICMgLS0tLS0tLS0tLS0tLS0tCiBtNF9kZWZ1bihbX0xUX0VOQUJMRV9MT0NLXSwKQEAgLTEyMzYsNyArMTIzNyw3IEBACiAgIDs7CiAqLSotaXJpeDYqKQogICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0gIGVjaG8gJ1sjXWxpbmUgX19vbGluZV9fICJjb25maWd1cmUiJyA+IGNvbmZ0ZXN0LiRhY19leHQKKyAgZWNobyAnWyNdbGluZSAnJExJTkVOTycgImNvbmZpZ3VyZSInID4gY29uZnRlc3QuJGFjX2V4dAogICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgogICAgIGlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KICAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KQEAgLTEzNTQsMTQgKzEzNTUsNDcgQEAKIF0pIyBfTFRfRU5BQkxFX0xPQ0sKIAogCisjIF9MVF9QUk9HX0FSCisjIC0tLS0tLS0tLS0tCittNF9kZWZ1bihbX0xUX1BST0dfQVJdLAorW0FDX0NIRUNLX1RPT0xTKEFSLCBbYXJdLCBmYWxzZSkKKzogJHtBUj1hcn0KKzogJHtBUl9GTEFHUz1jcnV9CitfTFRfREVDTChbXSwgW0FSXSwgWzFdLCBbVGhlIGFyY2hpdmVyXSkKK19MVF9ERUNMKFtdLCBbQVJfRkxBR1NdLCBbMV0sIFtGbGFncyB0byBjcmVhdGUgYW4gYXJjaGl2ZV0pCisKK0FDX0NBQ0hFX0NIRUNLKFtmb3IgYXJjaGl2ZXIgQEZJTEUgc3VwcG9ydF0sIFtsdF9jdl9hcl9hdF9maWxlXSwKKyAgW2x0X2N2X2FyX2F0X2ZpbGU9bm8KKyAgIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU1dLAorICAgICBbZWNobyBjb25mdGVzdC4kYWNfb2JqZXh0ID4gY29uZnRlc3QubHN0CisgICAgICBsdF9hcl90cnk9JyRBUiAkQVJfRkxBR1MgbGliY29uZnRlc3QuYSBAY29uZnRlc3QubHN0ID4mQVNfTUVTU0FHRV9MT0dfRkQnCisgICAgICBBQ19UUllfRVZBTChbbHRfYXJfdHJ5XSkKKyAgICAgIGlmIHRlc3QgIiRhY19zdGF0dXMiIC1lcSAwOyB0aGVuCisJIyBFbnN1cmUgdGhlIGFyY2hpdmVyIGZhaWxzIHVwb24gYm9ndXMgZmlsZSBuYW1lcy4KKwlybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGxpYmNvbmZ0ZXN0LmEKKwlBQ19UUllfRVZBTChbbHRfYXJfdHJ5XSkKKwlpZiB0ZXN0ICIkYWNfc3RhdHVzIiAtbmUgMDsgdGhlbgorICAgICAgICAgIGx0X2N2X2FyX2F0X2ZpbGU9QAorICAgICAgICBmaQorICAgICAgZmkKKyAgICAgIHJtIC1mIGNvbmZ0ZXN0LiogbGliY29uZnRlc3QuYQorICAgICBdKQorICBdKQorCitpZiB0ZXN0ICJ4JGx0X2N2X2FyX2F0X2ZpbGUiID0geG5vOyB0aGVuCisgIGFyY2hpdmVyX2xpc3Rfc3BlYz0KK2Vsc2UKKyAgYXJjaGl2ZXJfbGlzdF9zcGVjPSRsdF9jdl9hcl9hdF9maWxlCitmaQorX0xUX0RFQ0woW10sIFthcmNoaXZlcl9saXN0X3NwZWNdLCBbMV0sCisgIFtIb3cgdG8gZmVlZCBhIGZpbGUgbGlzdGluZyB0byB0aGUgYXJjaGl2ZXJdKQorXSkjIF9MVF9QUk9HX0FSCisKKwogIyBfTFRfQ01EX09MRF9BUkNISVZFCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0KIG00X2RlZnVuKFtfTFRfQ01EX09MRF9BUkNISVZFXSwKLVtBQ19DSEVDS19UT09MKEFSLCBhciwgZmFsc2UpCi10ZXN0IC16ICIkQVIiICYmIEFSPWFyCi10ZXN0IC16ICIkQVJfRkxBR1MiICYmIEFSX0ZMQUdTPWNydQotX0xUX0RFQ0woW10sIFtBUl0sIFsxXSwgW1RoZSBhcmNoaXZlcl0pCi1fTFRfREVDTChbXSwgW0FSX0ZMQUdTXSwgWzFdKQorW19MVF9QUk9HX0FSCiAKIEFDX0NIRUNLX1RPT0woU1RSSVAsIHN0cmlwLCA6KQogdGVzdCAteiAiJFNUUklQIiAmJiBTVFJJUD06CkBAIC0xMzg4LDEwICsxNDIyLDE5IEBACiAgIGVzYWMKICAgb2xkX2FyY2hpdmVfY21kcz0iJG9sZF9hcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCiBmaQorCitjYXNlICRob3N0X29zIGluCisgIGRhcndpbiopCisgICAgbG9ja19vbGRfYXJjaGl2ZV9leHRyYWN0aW9uPXllcyA7OworICAqKQorICAgIGxvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbj1ubyA7OworZXNhYwogX0xUX0RFQ0woW10sIFtvbGRfcG9zdGluc3RhbGxfY21kc10sIFsyXSkKIF9MVF9ERUNMKFtdLCBbb2xkX3Bvc3R1bmluc3RhbGxfY21kc10sIFsyXSkKIF9MVF9UQUdERUNMKFtdLCBbb2xkX2FyY2hpdmVfY21kc10sIFsyXSwKICAgICBbQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbiBvbGQtc3R5bGUgYXJjaGl2ZV0pCitfTFRfREVDTChbXSwgW2xvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbl0sIFswXSwKKyAgICBbV2hldGhlciB0byB1c2UgYSBsb2NrIGZvciBvbGQgYXJjaGl2ZSBleHRyYWN0aW9uXSkKIF0pIyBfTFRfQ01EX09MRF9BUkNISVZFCiAKIApAQCAtMTQxNiwxNSArMTQ1OSwxNSBAQAogICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAogICAgLWUgJ3M6IFtbXiBdXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCiAgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xpbmVfXzogJGx0X2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiAkbHRfY29tcGlsZVwiIiA+JkFTX01FU1NBR0VfTE9HX0ZEKQogICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKICAgIGFjX3N0YXR1cz0kPwogICAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECi0gICBlY2hvICIkYXNfbWU6X19vbGluZV9fOiBcJD8gPSAkYWNfc3RhdHVzIiA+JkFTX01FU1NBR0VfTE9HX0ZECisgICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiZBU19NRVNTQUdFX0xPR19GRAogICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCiAgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCiAgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQuCi0gICAgICRFQ0hPICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID5jb25mdGVzdC5leHAKKyAgICAgJEVDSE8gIiRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFNFRCAnL14kL2QnID5jb25mdGVzdC5leHAKICAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCiAgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcjIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KICAgICAgICAkMj15ZXMKQEAgLTE0NjQsNyArMTUwNyw3IEBACiAgICAgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCiAgICAgICAgIyBBcHBlbmQgYW55IGVycm9ycyB0byB0aGUgY29uZmlnLmxvZy4KICAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JkFTX01FU1NBR0VfTE9HX0ZECi0gICAgICAgJEVDSE8gIlgkX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gY29uZnRlc3QuZXhwCisgICAgICAgJEVDSE8gIiRfbHRfbGlua2VyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAogICAgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgogICAgICAgIGlmIGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCiAgICAgICAgICAkMj15ZXMKQEAgLTE1MjcsNiArMTU3MCwxMSBAQAogICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOwogICAgIDs7CiAKKyAgbWludCopCisgICAgIyBPbiBNaU5UIHRoaXMgY2FuIHRha2UgYSBsb25nIHRpbWUgYW5kIHJ1biBvdXQgb2YgbWVtb3J5LgorICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOworICAgIDs7CisKICAgYW1pZ2FvcyopCiAgICAgIyBPbiBBbWlnYU9TIHdpdGggcGRrc2gsIHRoaXMgdGVzdCB0YWtlcyBob3VycywgbGl0ZXJhbGx5LgogICAgICMgU28gd2UganVzdCBwdW50IGFuZCB1c2UgYSBtaW5pbXVtIGxpbmUgbGVuZ3RoIG9mIDgxOTIuCkBAIC0xNTkxLDggKzE2MzksOCBAQAogICAgICAgIyBJZiB0ZXN0IGlzIG5vdCBhIHNoZWxsIGJ1aWx0LWluLCB3ZSdsbCBwcm9iYWJseSBlbmQgdXAgY29tcHV0aW5nIGEKICAgICAgICMgbWF4aW11bSBsZW5ndGggdGhhdCBpcyBvbmx5IGhhbGYgb2YgdGhlIGFjdHVhbCBtYXhpbXVtIGxlbmd0aCwgYnV0CiAgICAgICAjIHdlIGNhbid0IHRlbGwuCi0gICAgICB3aGlsZSB7IHRlc3QgIlgiYCRTSEVMTCBbJF0wIC0tZmFsbGJhY2stZWNobyAiWCR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciIDI+L2Rldi9udWxsYCBcCi0JICAgICAgICAgPSAiWFgkdGVzdHN0cmluZyR0ZXN0c3RyaW5nIjsgfSA+L2Rldi9udWxsIDI+JjEgJiYKKyAgICAgIHdoaWxlIHsgdGVzdCAiWCJgZnVuY19mYWxsYmFja19lY2hvICIkdGVzdHN0cmluZyR0ZXN0c3RyaW5nIiAyPi9kZXYvbnVsbGAgXAorCSAgICAgICAgID0gIlgkdGVzdHN0cmluZyR0ZXN0c3RyaW5nIjsgfSA+L2Rldi9udWxsIDI+JjEgJiYKIAkgICAgICB0ZXN0ICRpICE9IDE3ICMgMS8yIE1CIHNob3VsZCBiZSBlbm91Z2gKICAgICAgIGRvCiAgICAgICAgIGk9YGV4cHIgJGkgKyAxYApAQCAtMTY0Myw3ICsxNjkxLDcgQEAKICAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2RsbmVlZF91c2NvcmU9MgogICBsdF9zdGF0dXM9JGx0X2RsdW5rbm93bgogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgotWyNsaW5lIF9fb2xpbmVfXyAiY29uZmlndXJlIgorWyNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKICNpbmNsdWRlICJjb25mZGVmcy5oIgogCiAjaWYgSEFWRV9ETEZDTl9ICkBAIC0xNjg0LDcgKzE3MzIsMTMgQEAKICMgIGVuZGlmCiAjZW5kaWYKIAotdm9pZCBmbm9yZCgpIHsgaW50IGk9NDI7fQorLyogV2hlbiAtZnZpc2JpbGl0eT1oaWRkZW4gaXMgdXNlZCwgYXNzdW1lIHRoZSBjb2RlIGhhcyBiZWVuIGFubm90YXRlZAorICAgY29ycmVzcG9uZGluZ2x5IGZvciB0aGUgc3ltYm9scyBuZWVkZWQuICAqLworI2lmIGRlZmluZWQoX19HTlVDX18pICYmICgoKF9fR05VQ19fID09IDMpICYmIChfX0dOVUNfTUlOT1JfXyA+PSAzKSkgfHwgKF9fR05VQ19fID4gMykpCitpbnQgZm5vcmQgKCkgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSk7CisjZW5kaWYKKworaW50IGZub3JkICgpIHsgcmV0dXJuIDQyOyB9CiBpbnQgbWFpbiAoKQogewogICB2b2lkICpzZWxmID0gZGxvcGVuICgwLCBMVF9ETEdMT0JBTHxMVF9ETExBWllfT1JfTk9XKTsKQEAgLTE2OTMsNyArMTc0NywxMSBAQAogICBpZiAoc2VsZikKICAgICB7CiAgICAgICBpZiAoZGxzeW0gKHNlbGYsImZub3JkIikpICAgICAgIHN0YXR1cyA9ICRsdF9kbG5vX3VzY29yZTsKLSAgICAgIGVsc2UgaWYgKGRsc3ltKCBzZWxmLCJfZm5vcmQiKSkgc3RhdHVzID0gJGx0X2RsbmVlZF91c2NvcmU7CisgICAgICBlbHNlCisgICAgICAgIHsKKwkgIGlmIChkbHN5bSggc2VsZiwiX2Zub3JkIikpICBzdGF0dXMgPSAkbHRfZGxuZWVkX3VzY29yZTsKKyAgICAgICAgICBlbHNlIHB1dHMgKGRsZXJyb3IgKCkpOworCX0KICAgICAgIC8qIGRsY2xvc2UgKHNlbGYpOyAqLwogICAgIH0KICAgZWxzZQpAQCAtMTg2OSwxNiArMTkyNywxNiBAQAogICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAogICAgLWUgJ3M6IFtbXiBdXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCiAgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xpbmVfXzogJGx0X2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiAkbHRfY29tcGlsZVwiIiA+JkFTX01FU1NBR0VfTE9HX0ZEKQogICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPm91dC9jb25mdGVzdC5lcnIpCiAgICBhY19zdGF0dXM9JD8KICAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKLSAgIGVjaG8gIiRhc19tZTpfX29saW5lX186IFwkPyA9ICRhY19zdGF0dXMiID4mQVNfTUVTU0FHRV9MT0dfRkQKKyAgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JkFTX01FU1NBR0VfTE9HX0ZECiAgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29iamV4dAogICAgdGhlbgogICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAogICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCisgICAgICRFQ0hPICIkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+IG91dC9jb25mdGVzdC5leHAKICAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIG91dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIKICAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgogICAgICAgIF9MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKT15ZXMKQEAgLTIwMzcsNiArMjA5NSw3IEBACiBtNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKIG00X3JlcXVpcmUoW19MVF9ERUNMX09CSkRVTVBdKWRubAogbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKK200X3JlcXVpcmUoW19MVF9DSEVDS19TSEVMTF9GRUFUVVJFU10pZG5sCiBBQ19NU0dfQ0hFQ0tJTkcoW2R5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljc10pCiBtNF9pZihbJDFdLAogCVtdLCBbCkBAIC0yMDQ1LDE2ICsyMTA0LDIzIEBACiAgICAgZGFyd2luKikgbHRfYXdrX2FyZz0iL15saWJyYXJpZXM6LywvTFIvIiA7OwogICAgICopIGx0X2F3a19hcmc9Ii9ebGlicmFyaWVzOi8iIDs7CiAgIGVzYWMKLSAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8IGF3ayAkbHRfYXdrX2FyZyB8ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgInMsPS8sLyxnImAKLSAgaWYgJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRHUkVQICc7JyA+L2Rldi9udWxsIDsgdGhlbgorICBjYXNlICRob3N0X29zIGluCisgICAgbWluZ3cqIHwgY2VnY2MqKSBsdF9zZWRfc3RyaXBfZXE9InMsPVwoW1tBLVphLXpdXTpcKSxcMSxnIiA7OworICAgICopIGx0X3NlZF9zdHJpcF9lcT0icyw9LywvLGciIDs7CisgIGVzYWMKKyAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8IGF3ayAkbHRfYXdrX2FyZyB8ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgJGx0X3NlZF9zdHJpcF9lcWAKKyAgY2FzZSAkbHRfc2VhcmNoX3BhdGhfc3BlYyBpbgorICAqXDsqKQogICAgICMgaWYgdGhlIHBhdGggY29udGFpbnMgIjsiIHRoZW4gd2UgYXNzdW1lIGl0IHRvIGJlIHRoZSBzZXBhcmF0b3IKICAgICAjIG90aGVyd2lzZSBkZWZhdWx0IHRvIHRoZSBzdGFuZGFyZCBwYXRoIHNlcGFyYXRvciAoaS5lLiAiOiIpIC0gaXQgaXMKICAgICAjIGFzc3VtZWQgdGhhdCBubyBwYXJ0IG9mIGEgbm9ybWFsIHBhdGhuYW1lIGNvbnRhaW5zICI7IiBidXQgdGhhdCBzaG91bGQKICAgICAjIG9rYXkgaW4gdGhlIHJlYWwgd29ybGQgd2hlcmUgIjsiIGluIGRpcnBhdGhzIGlzIGl0c2VsZiBwcm9ibGVtYXRpYy4KLSAgICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAncy87LyAvZydgCi0gIGVsc2UKLSAgICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0gIGZpCisgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgJ3MvOy8gL2cnYAorICAgIDs7CisgICopCisgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCisgICAgOzsKKyAgZXNhYwogICAjIE9rLCBub3cgd2UgaGF2ZSB0aGUgcGF0aCwgc2VwYXJhdGVkIGJ5IHNwYWNlcywgd2UgY2FuIHN0ZXAgdGhyb3VnaCBpdAogICAjIGFuZCBhZGQgbXVsdGlsaWIgZGlyIGlmIG5lY2Vzc2FyeS4KICAgbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9CkBAIC0yMDY3LDcgKzIxMzMsNyBAQAogCWx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMgJGx0X3N5c19wYXRoIgogICAgIGZpCiAgIGRvbmUKLSAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjIHwgYXdrICcKKyAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCBhd2sgJwogQkVHSU4ge1JTPSIgIjsgRlM9Ii98XG4iO30gewogICBsdF9mb289IiI7CiAgIGx0X2NvdW50PTA7CkBAIC0yMDg3LDcgKzIxNTMsMTMgQEAKICAgaWYgKGx0X2ZvbyAhPSAiIikgeyBsdF9mcmVxW1tsdF9mb29dXSsrOyB9CiAgIGlmIChsdF9mcmVxW1tsdF9mb29dXSA9PSAxKSB7IHByaW50IGx0X2ZvbzsgfQogfSdgCi0gIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gJGx0X3NlYXJjaF9wYXRoX3NwZWNgCisgICMgQVdLIHByb2dyYW0gYWJvdmUgZXJyb25lb3VzbHkgcHJlcGVuZHMgJy8nIHRvIEM6L2Rvcy9wYXRocworICAjIGZvciB0aGVzZSBob3N0cy4KKyAgY2FzZSAkaG9zdF9vcyBpbgorICAgIG1pbmd3KiB8IGNlZ2NjKikgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8XAorICAgICAgJFNFRCAncywvXChbW0EtWmEtel1dOlwpLFwxLGcnYCA7OworICBlc2FjCisgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRsdF9OTDJTUGAKIGVsc2UKICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgogZmldKQpAQCAtMjE3NSw3ICsyMjQ3LDcgQEAKICAgbTY4aykKICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLml4bGlicmFyeSAkbGlibmFtZS5hJwogICAgICMgQ3JlYXRlICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgZW50cmllcyBpbiAvc3lzL2xpYnMuCi0gICAgZmluaXNoX2V2YWw9J2ZvciBsaWIgaW4gYGxzICRsaWJkaXIvKi5peGxpYnJhcnkgMj4vZGV2L251bGxgOyBkbyBsaWJuYW1lPWAkRUNITyAiWCRsaWIiIHwgJFhzZWQgLWUgJ1wnJ3MlXi4qL1woW1teL11dKlwpXC5peGxpYnJhcnkkJVwxJSdcJydgOyB0ZXN0ICRSTSAvc3lzL2xpYnMvJHtsaWJuYW1lfV9peGxpYnJhcnkuYTsgJHNob3cgImNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEiOyBjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIHx8IGV4aXQgMTsgZG9uZScKKyAgICBmaW5pc2hfZXZhbD0nZm9yIGxpYiBpbiBgbHMgJGxpYmRpci8qLml4bGlicmFyeSAyPi9kZXYvbnVsbGA7IGRvIGxpYm5hbWU9YGZ1bmNfZWNob19hbGwgIiRsaWIiIHwgJFNFRCAnXCcncyVeLiovXChbW14vXV0qXClcLml4bGlicmFyeSQlXDElJ1wnJ2A7IHRlc3QgJFJNIC9zeXMvbGlicy8ke2xpYm5hbWV9X2l4bGlicmFyeS5hOyAkc2hvdyAiY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSI7IGNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBkb25lJwogICAgIDs7CiAgIGVzYWMKICAgOzsKQEAgLTIyMDYsOCArMjI3OCw5IEBACiAgIG5lZWRfdmVyc2lvbj1ubwogICBuZWVkX2xpYl9wcmVmaXg9bm8KIAotICBjYXNlICRHQ0MsJGhvc3Rfb3MgaW4KLSAgeWVzLGN5Z3dpbiogfCB5ZXMsbWluZ3cqIHwgeWVzLHB3MzIqIHwgeWVzLGNlZ2NjKikKKyAgY2FzZSAkR0NDLCRjY19iYXNlbmFtZSBpbgorICB5ZXMsKikKKyAgICAjIGdjYwogICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEnCiAgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21kcwogICAgIHBvc3RpbnN0YWxsX2NtZHM9J2Jhc2VfZmlsZT1gYmFzZW5hbWUgXCR7ZmlsZX1gfgpAQCAtMjIyOCwzNiArMjMwMSw4MyBAQAogICAgIGN5Z3dpbiopCiAgICAgICAjIEN5Z3dpbiBETExzIHVzZSAnY3lnJyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKICAgICAgIHNvbmFtZV9zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvY3lnLydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwotICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiAvbGliL3czMmFwaSAvbGliIC91c3IvbG9jYWwvbGliIgorbTRfaWYoWyQxXSwgW10sWworICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC91c3IvbGliL3czMmFwaSJdKQogICAgICAgOzsKICAgICBtaW5ndyogfCBjZWdjYyopCiAgICAgICAjIE1pbkdXIERMTHMgdXNlIHRyYWRpdGlvbmFsICdsaWInIHByZWZpeAogICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0gICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRpcnMgfCAkR1JFUCAiXmxpYnJhcmllczoiIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9LywvLGciYAotICAgICAgaWYgJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgWyRHUkVQICc7W2MtekMtWl06LycgPi9kZXYvbnVsbF07IHRoZW4KLSAgICAgICAgIyBJdCBpcyBtb3N0IHByb2JhYmx5IGEgV2luZG93cyBmb3JtYXQgUEFUSCBwcmludGVkIGJ5Ci0gICAgICAgICMgbWluZ3cgZ2NjLCBidXQgd2UgYXJlIHJ1bm5pbmcgb24gQ3lnd2luLiBHY2MgcHJpbnRzIGl0cyBzZWFyY2gKLSAgICAgICAgIyBwYXRoIHdpdGggOyBzZXBhcmF0b3JzLCBhbmQgd2l0aCBkcml2ZSBsZXR0ZXJzLiBXZSBjYW4gaGFuZGxlIHRoZQotICAgICAgICAjIGRyaXZlIGxldHRlcnMgKGN5Z3dpbiBmaWxldXRpbHMgdW5kZXJzdGFuZHMgdGhlbSksIHNvIGxlYXZlIHRoZW0sCi0gICAgICAgICMgZXNwZWNpYWxseSBhcyB3ZSBtaWdodCBwYXNzIGZpbGVzIGZvdW5kIHRoZXJlIHRvIGEgbWluZ3cgb2JqZHVtcCwKLSAgICAgICAgIyB3aGljaCB3b3VsZG4ndCB1bmRlcnN0YW5kIGEgY3lnd2luaWZpZWQgcGF0aC4gQWhoLgotICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAotICAgICAgZWxzZQotICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAotICAgICAgZmkKICAgICAgIDs7CiAgICAgcHczMiopCiAgICAgICAjIHB3MzIgRExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKICAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL3B3LydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwogICAgICAgOzsKICAgICBlc2FjCisgICAgZHluYW1pY19saW5rZXI9J1dpbjMyIGxkLmV4ZScKKyAgICA7OworCisgICosY2wqKQorICAgICMgTmF0aXZlIE1TVkMKKyAgICBsaWJuYW1lX3NwZWM9JyRuYW1lJworICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfS5kbGwubGliJworCisgICAgY2FzZSAkYnVpbGRfb3MgaW4KKyAgICBtaW5ndyopCisgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9CisgICAgICBsdF9zYXZlX2lmcz0kSUZTCisgICAgICBJRlM9JzsnCisgICAgICBmb3IgbHRfcGF0aCBpbiAkTElCCisgICAgICBkbworICAgICAgICBJRlM9JGx0X3NhdmVfaWZzCisgICAgICAgICMgTGV0IERPUyB2YXJpYWJsZSBleHBhbnNpb24gcHJpbnQgdGhlIHNob3J0IDguMyBzdHlsZSBmaWxlIG5hbWUuCisgICAgICAgIGx0X3BhdGg9YGNkICIkbHRfcGF0aCIgMj4vZGV2L251bGwgJiYgY21kIC8vQyAiZm9yICVpIGluICgiLiIpIGRvIEBlY2hvICV+c2kiYAorICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgJGx0X3BhdGgiCisgICAgICBkb25lCisgICAgICBJRlM9JGx0X3NhdmVfaWZzCisgICAgICAjIENvbnZlcnQgdG8gTVNZUyBzdHlsZS4KKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgc2VkIC1lICdzfFxcXFx8L3xnJyAtZSAnc3wgXFwoW1thLXpBLVpdXVxcKTp8IC9cXDF8ZycgLWUgJ3N8XiB8fCdgCisgICAgICA7OworICAgIGN5Z3dpbiopCisgICAgICAjIENvbnZlcnQgdG8gdW5peCBmb3JtLCB0aGVuIHRvIGRvcyBmb3JtLCB0aGVuIGJhY2sgdG8gdW5peCBmb3JtCisgICAgICAjIGJ1dCB0aGlzIHRpbWUgZG9zIHN0eWxlIChubyBzcGFjZXMhKSBzbyB0aGF0IHRoZSB1bml4IGZvcm0gbG9va3MKKyAgICAgICMgbGlrZSAvY3lnZHJpdmUvYy9QUk9HUkF+MTovY3lnZHIuLi4KKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gY3lncGF0aCAtLXBhdGggLS11bml4ICIkTElCImAKKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gY3lncGF0aCAtLXBhdGggLS1kb3MgIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIDI+L2Rldi9udWxsYAorICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBjeWdwYXRoIC0tcGF0aCAtLXVuaXggIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKKyAgICAgIDs7CisgICAgKikKKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJExJQiIKKyAgICAgIGlmICRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8IFskR1JFUCAnO1tjLXpDLVpdOi8nID4vZGV2L251bGxdOyB0aGVuCisgICAgICAgICMgSXQgaXMgbW9zdCBwcm9iYWJseSBhIFdpbmRvd3MgZm9ybWF0IFBBVEguCisgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAncy87LyAvZydgCisgICAgICBlbHNlCisgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKKyAgICAgIGZpCisgICAgICAjIEZJWE1FOiBmaW5kIHRoZSBzaG9ydCBuYW1lIG9yIHRoZSBwYXRoIGNvbXBvbmVudHMsIGFzIHNwYWNlcyBhcmUKKyAgICAgICMgY29tbW9uLiAoZS5nLiAiUHJvZ3JhbSBGaWxlcyIgLT4gIlBST0dSQX4xIikKKyAgICAgIDs7CisgICAgZXNhYworCisgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21kcworICAgIHBvc3RpbnN0YWxsX2NtZHM9J2Jhc2VfZmlsZT1gYmFzZW5hbWUgXCR7ZmlsZX1gfgorICAgICAgZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7IGVjaG8gXCRkbG5hbWUnXCcnYH4KKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KKyAgICAgIHRlc3QgLWQgXCRkbGRpciB8fCBta2RpciAtcCBcJGRsZGlyfgorICAgICAgJGluc3RhbGxfcHJvZyAkZGlyLyRkbG5hbWUgXCRkbGRpci8kZGxuYW1lJworICAgIHBvc3R1bmluc3RhbGxfY21kcz0nZGxkbGw9YCRTSEVMTCAyPiYxIC1jICdcJycuICRmaWxlOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+CisgICAgICBkbHBhdGg9JGRpci9cJGRsZGxsfgorICAgICAgICRSTSBcJGRscGF0aCcKKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisgICAgZHluYW1pY19saW5rZXI9J1dpbjMyIGxpbmsuZXhlJwogICAgIDs7CiAKICAgKikKKyAgICAjIEFzc3VtZSBNU1ZDIHdyYXBwZXIKICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUubGliJworICAgIGR5bmFtaWNfbGlua2VyPSdXaW4zMiBsZC5leGUnCiAgICAgOzsKICAgZXNhYwotICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhlJwogICAjIEZJWE1FOiBmaXJzdCB3ZSBzaG91bGQgc2VhcmNoIC4gYW5kIHRoZSBkaXJlY3RvcnkgdGhlIGV4ZWN1dGFibGUgaXMgaW4KICAgc2hsaWJwYXRoX3Zhcj1QQVRICiAgIDs7CkBAIC0yMzQ0LDYgKzI0NjQsMTkgQEAKICAgaGFyZGNvZGVfaW50b19saWJzPXllcwogICA7OwogCitoYWlrdSopCisgIHZlcnNpb25fdHlwZT1saW51eAorICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgbmVlZF92ZXJzaW9uPW5vCisgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBydW50aW1lX2xvYWRlciIKKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JworICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworICBzaGxpYnBhdGhfdmFyPUxJQlJBUllfUEFUSAorICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvYm9vdC9ob21lL2NvbmZpZy9saWIgL2Jvb3QvY29tbW9uL2xpYiAvYm9vdC9zeXN0ZW0vbGliJworICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisgIDs7CisKIGhwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQogICAjIEdpdmUgYSBzb25hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgbWFqb3IgdmVyc2lvbiBzbyB0aGF0IGRsZC5zbCByZWZ1c2VzIHRvCiAgICMgbGluayBhZ2FpbnN0IG90aGVyIHZlcnNpb25zLgpAQCAtMjM4Niw4ICsyNTE5LDEwIEBACiAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKICAgICA7OwogICBlc2FjCi0gICMgSFAtVVggcnVucyAqcmVhbGx5KiBzbG93bHkgdW5sZXNzIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG1vZGUgNTU1LgorICAjIEhQLVVYIHJ1bnMgKnJlYWxseSogc2xvd2x5IHVubGVzcyBzaGFyZWQgbGlicmFyaWVzIGFyZSBtb2RlIDU1NSwgLi4uCiAgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDU1NSAkbGliJworICAjIG9yIGZhaWxzIG91dHJpZ2h0LCBzbyBvdmVycmlkZSBhdG9taWNhbGx5OgorICBpbnN0YWxsX292ZXJyaWRlX21vZGU9NTU1CiAgIDs7CiAKIGludGVyaXhbWzMtOV1dKikKQEAgLTI0NDUsNyArMjU4MCw3IEBACiAgIDs7CiAKICMgVGhpcyBtdXN0IGJlIExpbnV4IEVMRi4KLWxpbnV4KiB8IGsqYnNkKi1nbnUpCitsaW51eCogfCBrKmJzZCotZ251IHwga29wZW5zb2xhcmlzKi1nbnUpCiAgIHZlcnNpb25fdHlwZT1saW51eAogICBuZWVkX2xpYl9wcmVmaXg9bm8KICAgbmVlZF92ZXJzaW9uPW5vCkBAIC0yNDU0LDE2ICsyNTg5LDIxIEBACiAgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1uICRsaWJkaXInCiAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICiAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworCiAgICMgU29tZSBiaW51dGlscyBsZCBhcmUgcGF0Y2hlZCB0byBzZXQgRFRfUlVOUEFUSAotICBzYXZlX0xERkxBR1M9JExERkxBR1MKLSAgc2F2ZV9saWJkaXI9JGxpYmRpcgotICBldmFsICJsaWJkaXI9L2Zvbzsgd2w9XCIkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSlcIjsgXAotICAgICAgIExERkxBR1M9XCJcJExERkxBR1MgJF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpXCIiCi0gIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW10sW10pXSwKLSAgICBbQVNfSUYoWyAoJE9CSkRVTVAgLXAgY29uZnRlc3QkYWNfZXhlZXh0KSAyPi9kZXYvbnVsbCB8IGdyZXAgIlJVTlBBVEguKiRsaWJkaXIiID4vZGV2L251bGxdLAotICAgICAgIFtzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzXSldKQotICBMREZMQUdTPSRzYXZlX0xERkxBR1MKLSAgbGliZGlyPSRzYXZlX2xpYmRpcgorICBBQ19DQUNIRV9WQUwoW2x0X2N2X3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aF0sCisgICAgW2x0X2N2X3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworICAgIHNhdmVfTERGTEFHUz0kTERGTEFHUworICAgIHNhdmVfbGliZGlyPSRsaWJkaXIKKyAgICBldmFsICJsaWJkaXI9L2Zvbzsgd2w9XCIkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSlcIjsgXAorCSBMREZMQUdTPVwiXCRMREZMQUdTICRfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKVwiIgorICAgIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW10sW10pXSwKKyAgICAgIFtBU19JRihbICgkT0JKRFVNUCAtcCBjb25mdGVzdCRhY19leGVleHQpIDI+L2Rldi9udWxsIHwgZ3JlcCAiUlVOUEFUSC4qJGxpYmRpciIgPi9kZXYvbnVsbF0sCisJIFtsdF9jdl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzXSldKQorICAgIExERkxBR1M9JHNhdmVfTERGTEFHUworICAgIGxpYmRpcj0kc2F2ZV9saWJkaXIKKyAgICBdKQorICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9JGx0X2N2X3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aAogCiAgICMgVGhpcyBpbXBsaWVzIG5vIGZhc3RfaW5zdGFsbCwgd2hpY2ggaXMgdW5hY2NlcHRhYmxlLgogICAjIFNvbWUgcmV3b3JrIHdpbGwgYmUgbmVlZGVkIHRvIGFsbG93IGZvciBmYXN0X2luc3RhbGwKQEAgLTI0NzIsNyArMjYxMiw3IEBACiAKICAgIyBBcHBlbmQgbGQuc28uY29uZiBjb250ZW50cyB0byB0aGUgc2VhcmNoIHBhdGgKICAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4KLSAgICBsdF9sZF9leHRyYT1gYXdrICcvXmluY2x1ZGUgLyB7IHN5c3RlbShzcHJpbnRmKCJjZCAvZXRjOyBjYXQgJXMgMj4vZGV2L251bGwiLCBcWyRdMikpOyBza2lwID0gMTsgfSB7IGlmICghc2tpcCkgcHJpbnQgXFskXTA7IHNraXAgPSAwOyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15bCSBdKmh3Y2FwWwkgXS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBdKiAvIC9nOy9eJC9kJyB8IHRyICdcbicgJyAnYAorICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVtKHNwcmludGYoImNkIC9ldGM7IGNhdCAlcyAyPi9kZXYvbnVsbCIsIFxbJF0yKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcWyRdMDsgc2tpcCA9IDA7IH0nIDwgL2V0Yy9sZC5zby5jb25mIHwgJFNFRCAtZSAncy8jLiovLzsvXlsJIF0qaHdjYXBbCSBdL2Q7cy9bOiwJXS8gL2c7cy89W149XSokLy87cy89W149IF0qIC8gL2c7cy8iLy9nOy9eJC9kJyB8IHRyICdcbicgJyAnYAogICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliICRsdF9sZF9leHRyYSIKICAgZmkKIApAQCAtMjcwNSw2ICsyODQ1LDggQEAKICAgICBUaGUgbGFzdCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUgbGlua2VyIGZpbmRzIHdpdGggLWxOQU1FXV0pCiBfTFRfREVDTChbXSwgW3NvbmFtZV9zcGVjXSwgWzFdLAogICAgIFtbVGhlIGNvZGVkIG5hbWUgb2YgdGhlIGxpYnJhcnksIGlmIGRpZmZlcmVudCBmcm9tIHRoZSByZWFsIG5hbWVdXSkKK19MVF9ERUNMKFtdLCBbaW5zdGFsbF9vdmVycmlkZV9tb2RlXSwgWzFdLAorICAgIFtQZXJtaXNzaW9uIG1vZGUgb3ZlcnJpZGUgZm9yIGluc3RhbGxhdGlvbiBvZiBzaGFyZWQgbGlicmFyaWVzXSkKIF9MVF9ERUNMKFtdLCBbcG9zdGluc3RhbGxfY21kc10sIFsyXSwKICAgICBbQ29tbWFuZCB0byB1c2UgYWZ0ZXIgaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmVdKQogX0xUX0RFQ0woW10sIFtwb3N0dW5pbnN0YWxsX2NtZHNdLCBbMl0sCkBAIC0yODE3LDYgKzI5NTksNyBAQAogQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0JVSUxEXSlkbmwKIG00X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCiBtNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCittNF9yZXF1aXJlKFtfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSF0pZG5sCiAKIEFDX0FSR19XSVRIKFtnbnUtbGRdLAogICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLWdudS1sZF0sCkBAIC0yOTM4LDYgKzMwODEsMTEgQEAKIGVzYWMKIHJlbG9hZF9jbWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKIGNhc2UgJGhvc3Rfb3MgaW4KKyAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorICAgIGlmIHRlc3QgIiRHQ0MiICE9IHllczsgdGhlbgorICAgICAgcmVsb2FkX2NtZHM9ZmFsc2UKKyAgICBmaQorICAgIDs7CiAgIGRhcndpbiopCiAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KICAgICAgIHJlbG9hZF9jbWRzPSckTFRDQyAkTFRDRkxBR1MgLW5vc3RkbGliICR7d2x9LXIgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKQEAgLTI5NDYsOCArMzA5NCw4IEBACiAgICAgZmkKICAgICA7OwogZXNhYwotX0xUX0RFQ0woW10sIFtyZWxvYWRfZmxhZ10sIFsxXSwgW0hvdyB0byBjcmVhdGUgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXNdKWRubAotX0xUX0RFQ0woW10sIFtyZWxvYWRfY21kc10sIFsyXSlkbmwKK19MVF9UQUdERUNMKFtdLCBbcmVsb2FkX2ZsYWddLCBbMV0sIFtIb3cgdG8gY3JlYXRlIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzXSlkbmwKK19MVF9UQUdERUNMKFtdLCBbcmVsb2FkX2NtZHNdLCBbMl0pZG5sCiBdKSMgX0xUX0NNRF9SRUxPQUQKIAogCkBAIC0yOTk5LDE2ICszMTQ3LDE4IEBACiAgICMgQmFzZSBNU1lTL01pbkdXIGRvIG5vdCBwcm92aWRlIHRoZSAnZmlsZScgY29tbWFuZCBuZWVkZWQgYnkKICAgIyBmdW5jX3dpbjMyX2xpYmlkIHNoZWxsIGZ1bmN0aW9uLCBzbyB1c2UgYSB3ZWFrZXIgdGVzdCBiYXNlZCBvbiAnb2JqZHVtcCcsCiAgICMgdW5sZXNzIHdlIGZpbmQgJ2ZpbGUnLCBmb3IgZXhhbXBsZSBiZWNhdXNlIHdlIGFyZSBjcm9zcy1jb21waWxpbmcuCi0gIGlmICggZmlsZSAvICkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICMgZnVuY193aW4zMl9saWJpZCBhc3N1bWVzIEJTRCBubSwgc28gZGlzYWxsb3cgaXQgaWYgdXNpbmcgTVMgZHVtcGJpbi4KKyAgaWYgKCB0ZXN0ICIkbHRfY3Zfbm1faW50ZXJmYWNlIiA9ICJCU0Qgbm0iICYmIGZpbGUgLyApID4vZGV2L251bGwgMj4mMTsgdGhlbgogICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIF54ODYgYXJjaGl2ZSBpbXBvcnR8Xng4NiBETEwnCiAgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJfbGliaWQnCiAgIGVsc2UKLSAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBmaWxlIGZvcm1hdCBwZWkqLWkzODYoLiphcmNoaXRlY3R1cmU6IGkzODYpPycKKyAgICAjIEtlZXAgdGhpcyBwYXR0ZXJuIGluIHN5bmMgd2l0aCB0aGUgb25lIGluIGZ1bmNfd2luMzJfbGliaWQuCisgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgKHBlaSotaTM4NiguKmFyY2hpdGVjdHVyZTogaTM4Nik/fHBlLWFybS13aW5jZXxwZS14ODYtNjQpJwogICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicKICAgZmkKICAgOzsKIAotY2VnY2MpCitjZWdjYyopCiAgICMgdXNlIHRoZSB3ZWFrZXIgdGVzdCBiYXNlZCBvbiAnb2JqZHVtcCcuIFNlZSBtaW5ndyouCiAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0IHBlLWFybS0uKmxpdHRsZSguKmFyY2hpdGVjdHVyZTogYXJtKT8nCiAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicKQEAgLTMwMzgsNiArMzE4OCwxMCBAQAogICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAogICA7OwogCitoYWlrdSopCisgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisgIDs7CisKIGhwdXgxMC4yMCogfCBocHV4MTEqKQogICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxlCiAgIGNhc2UgJGhvc3RfY3B1IGluCkBAIC0zMDQ2LDExICszMjAwLDExIEBACiAgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvaHB1eDMyL2xpYmMuc28KICAgICA7OwogICBocHBhKjY0KikKLSAgICBbbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbMC05XVswLTldWzAtOV18RUxGLVswLTldWzAtOV0pIHNoYXJlZCBvYmplY3QgZmlsZSAtIFBBLVJJU0MgWzAtOV0uWzAtOV0nXQorICAgIFtsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxFTEZbIC1dWzAtOV1bMC05XSkoLWJpdCk/KCBbTE1dU0IpPyBzaGFyZWQgb2JqZWN0KCBmaWxlKT9bLCAtXSogUEEtUklTQyBbMC05XVwuWzAtOV0nXQogICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL3BhMjBfNjQvbGliYy5zbAogICAgIDs7CiAgICopCi0gICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbWzAtOV1dW1swLTldXVtbMC05XV18UEEtUklTQ1tbMC05XV0uW1swLTldXSkgc2hhcmVkIGxpYnJhcnknCisgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbWzAtOV1dW1swLTldXVtbMC05XV18UEEtUklTQ1tbMC05XV1cLltbMC05XV0pIHNoYXJlZCBsaWJyYXJ5JwogICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2xpYmMuc2wKICAgICA7OwogICBlc2FjCkBAIC0zMDcyLDcgKzMyMjYsNyBAQAogICA7OwogCiAjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCi1saW51eCogfCBrKmJzZCotZ251KQorbGludXgqIHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQogICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAogICA7OwogCkBAIC0zMTUwLDYgKzMzMDQsMjEgQEAKICAgOzsKIGVzYWMKIF0pCisKK2ZpbGVfbWFnaWNfZ2xvYj0KK3dhbnRfbm9jYXNlZ2xvYj1ubworaWYgdGVzdCAiJGJ1aWxkIiA9ICIkaG9zdCI7IHRoZW4KKyAgY2FzZSAkaG9zdF9vcyBpbgorICBtaW5ndyogfCBwdzMyKikKKyAgICBpZiAoIHNob3B0IHwgZ3JlcCBub2Nhc2VnbG9iICkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgICB3YW50X25vY2FzZWdsb2I9eWVzCisgICAgZWxzZQorICAgICAgZmlsZV9tYWdpY19nbG9iPWBlY2hvIGFBYkJjQ2REZUVmRmdHaEhpSWpKa0tsTG1Nbk5vT3BQcVFyUnNTdFR1VXZWd1d4WHlZelogfCAkU0VEIC1lICJzL1woLi5cKS9zXC9bW1wxXV1cL1tbXDFdXVwvZzsvZyJgCisgICAgZmkKKyAgICA7OworICBlc2FjCitmaQorCiBmaWxlX21hZ2ljX2NtZD0kbHRfY3ZfZmlsZV9tYWdpY19jbWQKIGRlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZAogdGVzdCAteiAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAmJiBkZXBsaWJzX2NoZWNrX21ldGhvZD11bmtub3duCkBAIC0zMTU3LDcgKzMzMjYsMTEgQEAKIF9MVF9ERUNMKFtdLCBbZGVwbGlic19jaGVja19tZXRob2RdLCBbMV0sCiAgICAgW01ldGhvZCB0byBjaGVjayB3aGV0aGVyIGRlcGVuZGVudCBsaWJyYXJpZXMgYXJlIHNoYXJlZCBvYmplY3RzXSkKIF9MVF9ERUNMKFtdLCBbZmlsZV9tYWdpY19jbWRdLCBbMV0sCi0gICAgW0NvbW1hbmQgdG8gdXNlIHdoZW4gZGVwbGlic19jaGVja19tZXRob2QgPT0gImZpbGVfbWFnaWMiXSkKKyAgICBbQ29tbWFuZCB0byB1c2Ugd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9ICJmaWxlX21hZ2ljIl0pCitfTFRfREVDTChbXSwgW2ZpbGVfbWFnaWNfZ2xvYl0sIFsxXSwKKyAgICBbSG93IHRvIGZpbmQgcG90ZW50aWFsIGZpbGVzIHdoZW4gZGVwbGlic19jaGVja19tZXRob2QgPSAiZmlsZV9tYWdpYyJdKQorX0xUX0RFQ0woW10sIFt3YW50X25vY2FzZWdsb2JdLCBbMV0sCisgICAgW0ZpbmQgcG90ZW50aWFsIGZpbGVzIHVzaW5nIG5vY2FzZWdsb2Igd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9ICJmaWxlX21hZ2ljIl0pCiBdKSMgX0xUX0NIRUNLX01BR0lDX01FVEhPRAogCiAKQEAgLTMyMTQsNyArMzM4NywxOSBAQAogICBOTT0iJGx0X2N2X3BhdGhfTk0iCiBlbHNlCiAgICMgRGlkbid0IGZpbmQgYW55IEJTRCBjb21wYXRpYmxlIG5hbWUgbGlzdGVyLCBsb29rIGZvciBkdW1wYmluLgotICBBQ19DSEVDS19UT09MUyhEVU1QQklOLCBbImR1bXBiaW4gLXN5bWJvbHMiICJsaW5rIC1kdW1wIC1zeW1ib2xzIl0sIDopCisgIGlmIHRlc3QgLW4gIiREVU1QQklOIjsgdGhlbiA6CisgICAgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisgIGVsc2UKKyAgICBBQ19DSEVDS19UT09MUyhEVU1QQklOLCBbZHVtcGJpbiAibGluayAtZHVtcCJdLCA6KQorICAgIGNhc2UgYCREVU1QQklOIC1zeW1ib2xzIC9kZXYvbnVsbCAyPiYxIHwgc2VkICcxcSdgIGluCisgICAgKkNPRkYqKQorICAgICAgRFVNUEJJTj0iJERVTVBCSU4gLXN5bWJvbHMiCisgICAgICA7OworICAgICopCisgICAgICBEVU1QQklOPToKKyAgICAgIDs7CisgICAgZXNhYworICBmaQogICBBQ19TVUJTVChbRFVNUEJJTl0pCiAgIGlmIHRlc3QgIiREVU1QQklOIiAhPSAiOiI7IHRoZW4KICAgICBOTT0iJERVTVBCSU4iCkBAIC0zMjI3LDEzICszNDEyLDEzIEBACiBBQ19DQUNIRV9DSEVDSyhbdGhlIG5hbWUgbGlzdGVyICgkTk0pIGludGVyZmFjZV0sIFtsdF9jdl9ubV9pbnRlcmZhY2VdLAogICBbbHRfY3Zfbm1faW50ZXJmYWNlPSJCU0Qgbm0iCiAgIGVjaG8gImludCBzb21lX3ZhcmlhYmxlID0gMDsiID4gY29uZnRlc3QuJGFjX2V4dAotICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6X19vbGluZV9fOiAkYWNfY29tcGlsZVwiIiA+JkFTX01FU1NBR0VfTE9HX0ZEKQorICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJGFjX2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKICAgKGV2YWwgIiRhY19jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKICAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECi0gIChldmFsIGVjaG8gIlwiXCRhc19tZTpfX29saW5lX186ICROTSBcXFwiY29uZnRlc3QuJGFjX29iamV4dFxcXCJcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKyAgKGV2YWwgZWNobyAiXCJcJGFzX21lOiRMSU5FTk86ICROTSBcXFwiY29uZnRlc3QuJGFjX29iamV4dFxcXCJcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKICAgKGV2YWwgIiROTSBcImNvbmZ0ZXN0LiRhY19vYmpleHRcIiIgMj5jb25mdGVzdC5lcnIgPiBjb25mdGVzdC5vdXQpCiAgIGNhdCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAotICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6X19vbGluZV9fOiBvdXRwdXRcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKyAgKGV2YWwgZWNobyAiXCJcJGFzX21lOiRMSU5FTk86IG91dHB1dFwiIiA+JkFTX01FU1NBR0VfTE9HX0ZEKQogICBjYXQgY29uZnRlc3Qub3V0ID4mQVNfTUVTU0FHRV9MT0dfRkQKICAgaWYgJEdSRVAgJ0V4dGVybmFsLipzb21lX3ZhcmlhYmxlJyBjb25mdGVzdC5vdXQgPiAvZGV2L251bGw7IHRoZW4KICAgICBsdF9jdl9ubV9pbnRlcmZhY2U9Ik1TIGR1bXBiaW4iCkBAIC0zMjQ4LDYgKzM0MzMsNjcgQEAKIGRubCBBQ19ERUZVTihbQU1fUFJPR19OTV0sIFtdKQogZG5sIEFDX0RFRlVOKFtBQ19QUk9HX05NXSwgW10pCiAKKyMgX0xUX0NIRUNLX1NIQVJFRExJQl9GUk9NX0xJTktMSUIKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgaG93IHRvIGRldGVybWluZSB0aGUgbmFtZSBvZiB0aGUgc2hhcmVkIGxpYnJhcnkKKyMgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgbGluayBsaWJyYXJ5LgorIyAgLS0gUE9SVE1FIGZpbGwgaW4gd2l0aCB0aGUgZHluYW1pYyBsaWJyYXJ5IGNoYXJhY3RlcmlzdGljcworbTRfZGVmdW4oW19MVF9DSEVDS19TSEFSRURMSUJfRlJPTV9MSU5LTElCXSwKK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pCittNF9yZXF1aXJlKFtfTFRfREVDTF9PQkpEVU1QXSkKK200X3JlcXVpcmUoW19MVF9ERUNMX0RMTFRPT0xdKQorQUNfQ0FDSEVfQ0hFQ0soW2hvdyB0byBhc3NvY2lhdGUgcnVudGltZSBhbmQgbGluayBsaWJyYXJpZXNdLAorbHRfY3Zfc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQsCitbbHRfY3Zfc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQ9J3Vua25vd24nCisKK2Nhc2UgJGhvc3Rfb3MgaW4KK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKyAgIyB0d28gZGlmZmVyZW50IHNoZWxsIGZ1bmN0aW9ucyBkZWZpbmVkIGluIGx0bWFpbi5zaAorICAjIGRlY2lkZSB3aGljaCB0byB1c2UgYmFzZWQgb24gY2FwYWJpbGl0aWVzIG9mICRETExUT09MCisgIGNhc2UgYCRETExUT09MIC0taGVscCAyPiYxYCBpbgorICAqLS1pZGVudGlmeS1zdHJpY3QqKQorICAgIGx0X2N2X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kPWZ1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYgorICAgIDs7CisgICopCisgICAgbHRfY3Zfc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQ9ZnVuY19jeWdtaW5nX2RsbF9mb3JfaW1wbGliX2ZhbGxiYWNrCisgICAgOzsKKyAgZXNhYworICA7OworKikKKyAgIyBmYWxsYmFjazogYXNzdW1lIGxpbmtsaWIgSVMgc2hhcmVkbGliCisgIGx0X2N2X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kPSIkRUNITyIKKyAgOzsKK2VzYWMKK10pCitzaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZD0kbHRfY3Zfc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQKK3Rlc3QgLXogIiRzaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZCIgJiYgc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQ9JEVDSE8KKworX0xUX0RFQ0woW10sIFtzaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZF0sIFsxXSwKKyAgICBbQ29tbWFuZCB0byBhc3NvY2lhdGUgc2hhcmVkIGFuZCBsaW5rIGxpYnJhcmllc10pCitdKSMgX0xUX0NIRUNLX1NIQVJFRExJQl9GUk9NX0xJTktMSUIKKworCisjIF9MVF9QQVRIX01BTklGRVNUX1RPT0wKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBsb2NhdGUgdGhlIG1hbmlmZXN0IHRvb2wKK200X2RlZnVuKFtfTFRfUEFUSF9NQU5JRkVTVF9UT09MXSwKK1tBQ19DSEVDS19UT09MKE1BTklGRVNUX1RPT0wsIG10LCA6KQordGVzdCAteiAiJE1BTklGRVNUX1RPT0wiICYmIE1BTklGRVNUX1RPT0w9bXQKK0FDX0NBQ0hFX0NIRUNLKFtpZiAkTUFOSUZFU1RfVE9PTCBpcyBhIG1hbmlmZXN0IHRvb2xdLCBbbHRfY3ZfcGF0aF9tYWluZmVzdF90b29sXSwKKyAgW2x0X2N2X3BhdGhfbWFpbmZlc3RfdG9vbD1ubworICBlY2hvICIkYXNfbWU6JExJTkVOTzogJE1BTklGRVNUX1RPT0wgJy0/JyIgPiZBU19NRVNTQUdFX0xPR19GRAorICAkTUFOSUZFU1RfVE9PTCAnLT8nIDI+Y29uZnRlc3QuZXJyID4gY29uZnRlc3Qub3V0CisgIGNhdCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAorICBpZiAkR1JFUCAnTWFuaWZlc3QgVG9vbCcgY29uZnRlc3Qub3V0ID4gL2Rldi9udWxsOyB0aGVuCisgICAgbHRfY3ZfcGF0aF9tYWluZmVzdF90b29sPXllcworICBmaQorICBybSAtZiBjb25mdGVzdCpdKQoraWYgdGVzdCAieCRsdF9jdl9wYXRoX21haW5mZXN0X3Rvb2wiICE9IHh5ZXM7IHRoZW4KKyAgTUFOSUZFU1RfVE9PTD06CitmaQorX0xUX0RFQ0woW10sIFtNQU5JRkVTVF9UT09MXSwgWzFdLCBbTWFuaWZlc3QgdG9vbF0pZG5sCitdKSMgX0xUX1BBVEhfTUFOSUZFU1RfVE9PTAorCiAKICMgTFRfTElCX00KICMgLS0tLS0tLS0KQEAgLTMyNTYsNyArMzUwMiw3IEBACiBbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAogTElCTT0KIGNhc2UgJGhvc3QgaW4KLSotKi1iZW9zKiB8ICotKi1jeWd3aW4qIHwgKi0qLXB3MzIqIHwgKi0qLWRhcndpbiopCisqLSotYmVvcyogfCAqLSotY2VnY2MqIHwgKi0qLWN5Z3dpbiogfCAqLSotaGFpa3UqIHwgKi0qLXB3MzIqIHwgKi0qLWRhcndpbiopCiAgICMgVGhlc2Ugc3lzdGVtIGRvbid0IGhhdmUgbGlibSwgb3IgZG9uJ3QgbmVlZCBpdAogICA7OwogKi1uY3Itc3lzdjQuMyopCkBAIC0zMjg0LDcgKzM1MzAsMTIgQEAKIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0KIAogaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPScgLWZuby1idWlsdGluJworICBjYXNlICRjY19iYXNlbmFtZSBpbgorICBudmNjKikKKyAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9JyAtWGNvbXBpbGVyIC1mbm8tYnVpbHRpbicgOzsKKyAgKikKKyAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9JyAtZm5vLWJ1aWx0aW4nIDs7CisgIGVzYWMKIAogICBfTFRfQ09NUElMRVJfT1BUSU9OKFtpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9uc10sCiAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnMsCkBAIC0zMzAxLDYgKzM1NTIsNyBAQAogbTRfZGVmdW4oW19MVF9DTURfR0xPQkFMX1NZTUJPTFNdLAogW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKIEFDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAorQUNfUkVRVUlSRShbQUNfUFJPR19BV0tdKWRubAogQUNfUkVRVUlSRShbTFRfUEFUSF9OTV0pZG5sCiBBQ19SRVFVSVJFKFtMVF9QQVRIX0xEXSlkbmwKIG00X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCkBAIC0zMzY4LDggKzM2MjAsOCBAQAogbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9InNlZCAtbiAtZSAncy9eVCAuKiBcKC4qXCkkL2V4dGVybiBpbnQgXDEoKTsvcCcgLWUgJ3MvXiRzeW1jb2RlKiAuKiBcKC4qXCkkL2V4dGVybiBjaGFyIFwxOy9wJyIKIAogIyBUcmFuc2Zvcm0gYW4gZXh0cmFjdGVkIHN5bWJvbCBsaW5lIGludG8gc3ltYm9sIG5hbWUgYW5kIHN5bWJvbCBhZGRyZXNzCi1sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0ic2VkIC1uIC1lICdzL146IFwoW1teIF1dKlwpICQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChbW14gXV0qXCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sL3AnIgotbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeD0ic2VkIC1uIC1lICdzL146IFwoW1teIF1dKlwpICQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChsaWJbW14gXV0qXCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sL3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChbW14gXV0qXCkkLyAge1wibGliXDJcIiwgKHZvaWQgKikgXCZcMn0sL3AnIgorbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9InNlZCAtbiAtZSAncy9eOiBcKFtbXiBdXSpcKVtbIF1dKiQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChbW14gXV0qXCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sL3AnIgorbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeD0ic2VkIC1uIC1lICdzL146IFwoW1teIF1dKlwpW1sgXV0qJC8gIHtcXFwiXDFcXFwiLCAodm9pZCAqKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFtbXiBdXSpcKSBcKGxpYltbXiBdXSpcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFtbXiBdXSpcKSBcKFtbXiBdXSpcKSQvICB7XCJsaWJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCciCiAKICMgSGFuZGxlIENSTEYgaW4gbWluZ3cgdG9vbCBjaGFpbgogb3B0X2NyPQpAQCAtMzQwNSw2ICszNjU3LDcgQEAKICAgZWxzZQogICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9InNlZCAtbiAtZSAncy9eLipbWwkgXV1cKCRzeW1jb2RlJHN5bWNvZGUqXClbWwkgXV1bWwkgXV0qJGFjX3N5bXByZngkc3ltcGF0JG9wdF9jciQvJHN5bXhmcm0vcCciCiAgIGZpCisgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9IiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIHwgc2VkICcvIF9fZ251X2x0by9kJyIKIAogICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoZSBwaXBlIHdvcmtzIGNvcnJlY3RseS4KICAgcGlwZV93b3Jrcz1ubwpAQCAtMzQyNiw3ICszNjc5LDcgQEAKICAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KICAgICAjIE5vdyB0cnkgdG8gZ3JhYiB0aGUgc3ltYm9scy4KICAgICBubGlzdD1jb25mdGVzdC5ubQotICAgIGlmIEFDX1RSWV9FVkFMKE5NIGNvbmZ0ZXN0LiRhY19vYmpleHQgXHwgJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgXD4gJG5saXN0KSAmJiB0ZXN0IC1zICIkbmxpc3QiOyB0aGVuCisgICAgaWYgQUNfVFJZX0VWQUwoTk0gY29uZnRlc3QuJGFjX29iamV4dCBcfCAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiIFw+ICRubGlzdCkgJiYgdGVzdCAtcyAiJG5saXN0IjsgdGhlbgogICAgICAgIyBUcnkgc29ydGluZyBhbmQgdW5pcXVpZnlpbmcgdGhlIG91dHB1dC4KICAgICAgIGlmIHNvcnQgIiRubGlzdCIgfCB1bmlxID4gIiRubGlzdCJUOyB0aGVuCiAJbXYgLWYgIiRubGlzdCJUICIkbmxpc3QiCkBAIC0zNDM4LDYgKzM2OTEsMTggQEAKICAgICAgIGlmICRHUkVQICcgbm1fdGVzdF92YXIkJyAiJG5saXN0IiA+L2Rldi9udWxsOyB0aGVuCiAJaWYgJEdSRVAgJyBubV90ZXN0X2Z1bmMkJyAiJG5saXN0IiA+L2Rldi9udWxsOyB0aGVuCiAJICBjYXQgPDxfTFRfRU9GID4gY29uZnRlc3QuJGFjX2V4dAorLyogS2VlcCB0aGlzIGNvZGUgaW4gc3luYyBiZXR3ZWVuIGxpYnRvb2wubTQsIGx0bWFpbiwgbHRfc3lzdGVtLmgsIGFuZCB0ZXN0cy4gICovCisjaWYgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoX19DWUdXSU5fXykgfHwgZGVmaW5lZChfV0lOMzJfV0NFKQorLyogREFUQSBpbXBvcnRzIGZyb20gRExMcyBvbiBXSU4zMiBjb24ndCBiZSBjb25zdCwgYmVjYXVzZSBydW50aW1lCisgICByZWxvY2F0aW9ucyBhcmUgcGVyZm9ybWVkIC0tIHNlZSBsZCdzIGRvY3VtZW50YXRpb24gb24gcHNldWRvLXJlbG9jcy4gICovCisjIGRlZmluZSBMVEAmdEBfRExTWU1fQ09OU1QKKyNlbGlmIGRlZmluZWQoX19vc2ZfXykKKy8qIFRoaXMgc3lzdGVtIGRvZXMgbm90IGNvcGUgd2VsbCB3aXRoIHJlbG9jYXRpb25zIGluIGNvbnN0IGRhdGEuICAqLworIyBkZWZpbmUgTFRAJnRAX0RMU1lNX0NPTlNUCisjZWxzZQorIyBkZWZpbmUgTFRAJnRAX0RMU1lNX0NPTlNUIGNvbnN0CisjZW5kaWYKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiBleHRlcm4gIkMiIHsKICNlbmRpZgpAQCAtMzQ0OSw3ICszNzE0LDcgQEAKIAkgIGNhdCA8PF9MVF9FT0YgPj4gY29uZnRlc3QuJGFjX2V4dAogCiAvKiBUaGUgbWFwcGluZyBiZXR3ZWVuIHN5bWJvbCBuYW1lcyBhbmQgc3ltYm9scy4gICovCi1jb25zdCBzdHJ1Y3QgeworTFRAJnRAX0RMU1lNX0NPTlNUIHN0cnVjdCB7CiAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgIHZvaWQgICAgICAgKmFkZHJlc3M7CiB9CkBAIC0zNDc1LDE1ICszNzQwLDE1IEBACiBfTFRfRU9GCiAJICAjIE5vdyB0cnkgbGlua2luZyB0aGUgdHdvIGZpbGVzLgogCSAgbXYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdHN0bS4kYWNfb2JqZXh0Ci0JICBsdF9zYXZlX0xJQlM9IiRMSUJTIgotCSAgbHRfc2F2ZV9DRkxBR1M9IiRDRkxBR1MiCisJICBsdF9nbG9ic3ltX3NhdmVfTElCUz0kTElCUworCSAgbHRfZ2xvYnN5bV9zYXZlX0NGTEFHUz0kQ0ZMQUdTCiAJICBMSUJTPSJjb25mdHN0bS4kYWNfb2JqZXh0IgogCSAgQ0ZMQUdTPSIkQ0ZMQUdTJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKSIKIAkgIGlmIEFDX1RSWV9FVkFMKGFjX2xpbmspICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4KIAkgICAgcGlwZV93b3Jrcz15ZXMKIAkgIGZpCi0JICBMSUJTPSIkbHRfc2F2ZV9MSUJTIgotCSAgQ0ZMQUdTPSIkbHRfc2F2ZV9DRkxBR1MiCisJICBMSUJTPSRsdF9nbG9ic3ltX3NhdmVfTElCUworCSAgQ0ZMQUdTPSRsdF9nbG9ic3ltX3NhdmVfQ0ZMQUdTCiAJZWxzZQogCSAgZWNobyAiY2Fubm90IGZpbmQgbm1fdGVzdF9mdW5jIGluICRubGlzdCIgPiZBU19NRVNTQUdFX0xPR19GRAogCWZpCkBAIC0zNTE2LDYgKzM3ODEsMTMgQEAKICAgQUNfTVNHX1JFU1VMVChvaykKIGZpCiAKKyMgUmVzcG9uc2UgZmlsZSBzdXBwb3J0LgoraWYgdGVzdCAiJGx0X2N2X25tX2ludGVyZmFjZSIgPSAiTVMgZHVtcGJpbiI7IHRoZW4KKyAgbm1fZmlsZV9saXN0X3NwZWM9J0AnCitlbGlmICROTSAtLWhlbHAgMj4vZGV2L251bGwgfCBncmVwICdbW0BdXUZJTEUnID4vZGV2L251bGw7IHRoZW4KKyAgbm1fZmlsZV9saXN0X3NwZWM9J0AnCitmaQorCiBfTFRfREVDTChbZ2xvYmFsX3N5bWJvbF9waXBlXSwgW2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGVdLCBbMV0sCiAgICAgW1Rha2UgdGhlIG91dHB1dCBvZiBubSBhbmQgcHJvZHVjZSBhIGxpc3Rpbmcgb2YgcmF3IHN5bWJvbHMgYW5kIEMgbmFtZXNdKQogX0xUX0RFQ0woW2dsb2JhbF9zeW1ib2xfdG9fY2RlY2xdLCBbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2xdLCBbMV0sCkBAIC0zNTI2LDYgKzM3OTgsOCBAQAogX0xUX0RFQ0woW2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeF0sCiAgICAgW2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXhdLCBbMV0sCiAgICAgW1RyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpciB3aGVuIGxpYiBwcmVmaXggaXMgbmVlZGVkXSkKK19MVF9ERUNMKFtdLCBbbm1fZmlsZV9saXN0X3NwZWNdLCBbMV0sCisgICAgW1NwZWNpZnkgZmlsZW5hbWUgY29udGFpbmluZyBpbnB1dCBmaWxlcyBmb3IgJE5NXSkKIF0pICMgX0xUX0NNRF9HTE9CQUxfU1lNQk9MUwogCiAKQEAgLTM1MzcsNyArMzgxMSw2IEBACiBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9CiBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9CiAKLUFDX01TR19DSEVDS0lORyhbZm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUNdKQogbTRfaWYoWyQxXSwgW0NYWF0sIFsKICAgIyBDKysgc3BlY2lmaWMgY2FzZXMgZm9yIHBpYywgc3RhdGljLCB3bCwgZXRjLgogICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgpAQCAtMzU4OCw2ICszODYxLDExIEBACiAgICAgICAjIERKR1BQIGRvZXMgbm90IHN1cHBvcnQgc2hhcmVkIGxpYnJhcmllcyBhdCBhbGwKICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0KICAgICAgIDs7CisgICAgaGFpa3UqKQorICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIEhhaWt1LgorICAgICAgIyBUaGUgIi1zdGF0aWMiIGZsYWcgZXhpc3RzLCBidXQgaXMgYnJva2VuLgorICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPQorICAgICAgOzsKICAgICBpbnRlcml4W1szLTldXSopCiAgICAgICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8tZlBJQyBvcHRpb25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgogICAgICAgIyBJbnN0ZWFkLCB3ZSByZWxvY2F0ZSBzaGFyZWQgbGlicmFyaWVzIGF0IHJ1bnRpbWUuCkBAIC0zNjM3LDYgKzM5MTUsMTIgQEAKIAkgIDs7CiAJZXNhYwogCTs7CisgICAgICBtaW5ndyogfCBjeWd3aW4qIHwgb3MyKiB8IHB3MzIqIHwgY2VnY2MqKQorCSMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKKwkjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgorCW00X2lmKFskMV0sIFtHQ0pdLCBbXSwKKwkgIFtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1ERExMX0VYUE9SVCddKQorCTs7CiAgICAgICBkZ3V4KikKIAljYXNlICRjY19iYXNlbmFtZSBpbgogCSAgZWMrKyopCkBAIC0zNjkzLDcgKzM5NzcsNyBAQAogCSAgICA7OwogCWVzYWMKIAk7OwotICAgICAgbGludXgqIHwgaypic2QqLWdudSkKKyAgICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKIAljYXNlICRjY19iYXNlbmFtZSBpbgogCSAgS0NDKikKIAkgICAgIyBLQUkgQysrIENvbXBpbGVyCkBAIC0zNzI2LDggKzQwMTAsOCBAQAogCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9CiAJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCiAJICAgIDs7Ci0JICB4bGMqIHwgeGxDKikKLQkgICAgIyBJQk0gWEwgOC4wIG9uIFBQQworCSAgeGxjKiB8IHhsQyogfCBiZ3hsW1tjQ11dKiB8IG1waXhsW1tjQ11dKikKKwkgICAgIyBJQk0gWEwgOC4wLCA5LjAgb24gUFBDIGFuZCBCbHVlR2VuZQogCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKIAkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcXBpYycKIAkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctcXN0YXRpY2xpbmsnCkBAIC0zNzg5LDcgKzQwNzMsNyBAQAogCTs7CiAgICAgICBzb2xhcmlzKikKIAljYXNlICRjY19iYXNlbmFtZSBpbgotCSAgQ0MqKQorCSAgQ0MqIHwgc3VuQ0MqKQogCSAgICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENlbnRlcmxpbmUgQysrCiAJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCiAJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCkBAIC0zODkzLDYgKzQxNzcsMTIgQEAKICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZuby1jb21tb24nCiAgICAgICA7OwogCisgICAgaGFpa3UqKQorICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIEhhaWt1LgorICAgICAgIyBUaGUgIi1zdGF0aWMiIGZsYWcgZXhpc3RzLCBidXQgaXMgYnJva2VuLgorICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPQorICAgICAgOzsKKwogICAgIGhwdXgqKQogICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIDY0LWJpdCBQQSBIUC1VWCwgYnV0IG5vdCBmb3IgMzItYml0CiAgICAgICAjIFBBIEhQLVVYLiAgT24gSUE2NCBIUC1VWCwgUElDIGlzIHRoZSBkZWZhdWx0IGJ1dCB0aGUgcGljIGZsYWcKQEAgLTM5MzUsNiArNDIyNSwxMyBAQAogICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKICAgICAgIDs7CiAgICAgZXNhYworCisgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKyAgICBudmNjKikgIyBDdWRhIENvbXBpbGVyIERyaXZlciAyLjIKKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctWGxpbmtlciAnCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1YY29tcGlsZXIgLWZQSUMnCisgICAgICA7OworICAgIGVzYWMKICAgZWxzZQogICAgICMgUE9SVE1FIENoZWNrIGZvciBmbGFnIHRvIHBhc3MgbGlua2VyIGZsYWdzIHRocm91Z2ggdGhlIHN5c3RlbSBjb21waWxlci4KICAgICBjYXNlICRob3N0X29zIGluCkBAIC0zOTc3LDcgKzQyNzQsNyBAQAogICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKICAgICAgIDs7CiAKLSAgICBsaW51eCogfCBrKmJzZCotZ251KQorICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCiAgICAgICAjIG9sZCBJbnRlbCBmb3IgeDg2XzY0IHdoaWNoIHN0aWxsIHN1cHBvcnRlZCAtS1BJQy4KICAgICAgIGVjYyopCkBAIC0zOTk4LDcgKzQyOTUsMTMgQEAKIAlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy0tc2hhcmVkJwogCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLS1zdGF0aWMnCiAJOzsKLSAgICAgIHBnY2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQorICAgICAgbmFnZm9yKikKKwkjIE5BRyBGb3J0cmFuIGNvbXBpbGVyCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwtV2wsLCcKKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1QSUMnCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKwk7OworICAgICAgcGdjYyogfCBwZ2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSogfCBwZ2ZvcnRyYW4qKQogICAgICAgICAjIFBvcnRsYW5kIEdyb3VwIGNvbXBpbGVycyAoKm5vdCogdGhlIFBlbnRpdW0gZ2NjIGNvbXBpbGVyLAogCSMgd2hpY2ggbG9va3MgdG8gYmUgYSBkZWFkIHByb2plY3QpCiAJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCkBAIC00MDEwLDI2ICs0MzEzLDI2IEBACiAgICAgICAgICMgQWxsIEFscGhhIGNvZGUgaXMgUElDLgogICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJwogICAgICAgICA7OwotICAgICAgeGwqKQotCSMgSUJNIFhMIEMgOC4wL0ZvcnRyYW4gMTAuMSBvbiBQUEMKKyAgICAgIHhsKiB8IGJneGwqIHwgYmdmKiB8IG1waXhsKikKKwkjIElCTSBYTCBDIDguMC9Gb3J0cmFuIDEwLjEsIDExLjEgb24gUFBDIGFuZCBCbHVlR2VuZQogCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwogCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXFwaWMnCiAJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctcXN0YXRpY2xpbmsnCiAJOzsKICAgICAgICopCiAJY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCisJKlN1blwgRiogfCAqU3VuKkZvcnRyYW4qKQorCSAgIyBTdW4gRm9ydHJhbiA4LjMgcGFzc2VzIGFsbCB1bnJlY29nbml6ZWQgZmxhZ3MgdG8gdGhlIGxpbmtlcgorCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nJworCSAgOzsKIAkqU3VuXCBDKikKIAkgICMgU3VuIEMgNS45CiAJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwogCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKIAkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwogCSAgOzsKLQkqU3VuXCBGKikKLQkgICMgU3VuIEZvcnRyYW4gOC4zIHBhc3NlcyBhbGwgdW5yZWNvZ25pemVkIGZsYWdzIHRvIHRoZSBsaW5rZXIKLQkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCi0JICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9JycKLQkgIDs7CiAJZXNhYwogCTs7CiAgICAgICBlc2FjCkBAIC00MDYwLDcgKzQzNjMsNyBAQAogICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCiAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotICAgICAgZjc3KiB8IGY5MCogfCBmOTUqKQorICAgICAgZjc3KiB8IGY5MCogfCBmOTUqIHwgc3VuZjc3KiB8IHN1bmY5MCogfCBzdW5mOTUqKQogCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctUW9wdGlvbiBsZCAnOzsKICAgICAgICopCiAJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnOzsKQEAgLTQxMTcsOSArNDQyMCwxMSBAQAogICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0iJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKUAmdEBtNF9pZihbJDFdLFtdLFsgLURQSUNdLFttNF9pZihbJDFdLFtDWFhdLFsgLURQSUNdLFtdKV0pIgogICAgIDs7CiBlc2FjCi1BQ19NU0dfUkVTVUxUKFskX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpXSkKLV9MVF9UQUdERUNMKFt3bF0sIFtsdF9wcm9nX2NvbXBpbGVyX3dsXSwgWzFdLAotCVtIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyXSkKKworQUNfQ0FDSEVfQ0hFQ0soW2ZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDXSwKKyAgW19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9waWMsICQxKV0sCisgIFtfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKV0pCitfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9JF9MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9waWMsICQxKQogCiAjCiAjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgYWN0dWFsbHkgd29ya3MuCkBAIC00MTM4LDYgKzQ0NDMsOCBAQAogX0xUX1RBR0RFQ0woW3BpY19mbGFnXSwgW2x0X3Byb2dfY29tcGlsZXJfcGljXSwgWzFdLAogCVtBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHNdKQogCitfTFRfVEFHREVDTChbd2xdLCBbbHRfcHJvZ19jb21waWxlcl93bF0sIFsxXSwKKwlbSG93IHRvIHBhc3MgYSBsaW5rZXIgZmxhZyB0aHJvdWdoIHRoZSBjb21waWxlcl0pCiAjCiAjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGljIGZsYWcgYWN0dWFsbHkgd29ya3MuCiAjCkBAIC00MTU4LDYgKzQ0NjUsNyBAQAogbTRfZGVmdW4oW19MVF9MSU5LRVJfU0hMSUJTXSwKIFtBQ19SRVFVSVJFKFtMVF9QQVRIX0xEXSlkbmwKIEFDX1JFUVVJUkUoW0xUX1BBVEhfTk1dKWRubAorbTRfcmVxdWlyZShbX0xUX1BBVEhfTUFOSUZFU1RfVE9PTF0pZG5sCiBtNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKIG00X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKIG00X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCkBAIC00MTY2LDI3ICs0NDc0LDM1IEBACiBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllc10pCiBtNF9pZihbJDFdLCBbQ1hYXSwgWwogICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworICBfTFRfVEFHVkFSKGV4Y2x1ZGVfZXhwc3ltcywgJDEpPVsnX0dMT0JBTF9PRkZTRVRfVEFCTEVffF9HTE9CQUxfX0ZbSURdXy4qJ10KICAgY2FzZSAkaG9zdF9vcyBpbgogICBhaXhbWzQtOV1dKikKICAgICAjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB3ZSBkb24ndCB3YW50IHRoZSAiLUMiIG9wdGlvbi4KICAgICAjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5zIGRvbid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCisgICAgIyBBbHNvLCBBSVggbm0gdHJlYXRzIHdlYWsgZGVmaW5lZCBzeW1ib2xzIGxpa2Ugb3RoZXIgZ2xvYmFsIGRlZmluZWQKKyAgICAjIHN5bWJvbHMsIHdoZXJlYXMgR05VIG5tIG1hcmtzIHRoZW0gYXMgIlciLgogICAgIGlmICROTSAtViAyPiYxIHwgJEdSRVAgJ0dOVScgPiAvZGV2L251bGw7IHRoZW4KLSAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gLUJwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCisgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikgfHwgKFwkIDIgPT0gIlciKSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCiAgICAgZWxzZQogICAgICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCiAgICAgZmkKICAgICA7OwogICBwdzMyKikKICAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0iJGx0ZGxsX2NtZHMiCi0gIDs7CisgICAgOzsKICAgY3lnd2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKLSAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltbQkNER1JTXV1bWyBdXS9zLy4qW1sgXV1cKFtbXiBdXSpcKS9cMSBEQVRBLzsvXi4qW1sgXV1fX25tX18vcy9eLipbWyBdXV9fbm1fX1woW1teIF1dKlwpW1sgXV1bW14gXV0qL1wxIERBVEEvOy9eSVtbIF1dL2Q7L15bW0FJVFddXVtbIF1dL3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0gIDs7CisgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKyAgICBjbCopIDs7CisgICAgKikKKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW1tCQ0RHUlNdXVtbIF1dL3MvLipbWyBdXVwoW1teIF1dKlwpL1wxIERBVEEvO3MvXi4qW1sgXV1fX25tX19cKFtbXiBdXSpcKVtbIF1dW1teIF1dKi9cMSBEQVRBLzsvXklbWyBdXS9kOy9eW1tBSVRXXV1bWyBdXS9zLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworICAgICAgX0xUX1RBR1ZBUihleGNsdWRlX2V4cHN5bXMsICQxKT1bJ1tfXStHTE9CQUxfT0ZGU0VUX1RBQkxFX3xbX10rR0xPQkFMX19bRklEXV8uKnxbX10raGVhZF9bQS1aYS16MC05X10rX2RsbHxbQS1aYS16MC05X10rX2RsbF9pbmFtZSddCisgICAgICA7OworICAgIGVzYWMKKyAgICA7OwogICAqKQogICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0gIDs7CisgICAgOzsKICAgZXNhYwotICBfTFRfVEFHVkFSKGV4Y2x1ZGVfZXhwc3ltcywgJDEpPVsnX0dMT0JBTF9PRkZTRVRfVEFCTEVffF9HTE9CQUxfX0ZbSURdXy4qJ10KIF0sIFsKICAgcnVucGF0aF92YXI9CiAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KQEAgLTQyNDksNyArNDU2NSwzMyBAQAogICBlc2FjCiAKICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKKworICAjIE9uIHNvbWUgdGFyZ2V0cywgR05VIGxkIGlzIGNvbXBhdGlibGUgZW5vdWdoIHdpdGggdGhlIG5hdGl2ZSBsaW5rZXIKKyAgIyB0aGF0IHdlJ3JlIGJldHRlciBvZmYgdXNpbmcgdGhlIG5hdGl2ZSBpbnRlcmZhY2UgZm9yIGJvdGguCisgIGx0X3VzZV9nbnVfbGRfaW50ZXJmYWNlPW5vCiAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKyAgICBjYXNlICRob3N0X29zIGluCisgICAgICBhaXgqKQorCSMgVGhlIEFJWCBwb3J0IG9mIEdOVSBsZCBoYXMgYWx3YXlzIGFzcGlyZWQgdG8gY29tcGF0aWJpbGl0eQorCSMgd2l0aCB0aGUgbmF0aXZlIGxpbmtlci4gIEhvd2V2ZXIsIGFzIHRoZSB3YXJuaW5nIGluIHRoZSBHTlUgbGQKKwkjIGJsb2NrIHNheXMsIHZlcnNpb25zIGJlZm9yZSAyLjE5LjUqIGNvdWxkbid0IHJlYWxseSBjcmVhdGUgd29ya2luZworCSMgc2hhcmVkIGxpYnJhcmllcywgcmVnYXJkbGVzcyBvZiB0aGUgaW50ZXJmYWNlIHVzZWQuCisJY2FzZSBgJExEIC12IDI+JjFgIGluCisJICAqXCBcKEdOVVwgQmludXRpbHNcKVwgMi4xOS41KikgOzsKKwkgICpcIFwoR05VXCBCaW51dGlsc1wpXCAyLltbMi05XV0qKSA7OworCSAgKlwgXChHTlVcIEJpbnV0aWxzXClcIFtbMy05XV0qKSA7OworCSAgKikKKwkgICAgbHRfdXNlX2dudV9sZF9pbnRlcmZhY2U9eWVzCisJICAgIDs7CisJZXNhYworCTs7CisgICAgICAqKQorCWx0X3VzZV9nbnVfbGRfaW50ZXJmYWNlPXllcworCTs7CisgICAgZXNhYworICBmaQorCisgIGlmIHRlc3QgIiRsdF91c2VfZ251X2xkX2ludGVyZmFjZSIgPSB5ZXM7IHRoZW4KICAgICAjIElmIGFyY2hpdmVfY21kcyBydW5zIExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBiZSBlbXB0eQogICAgIHdsYXJjPScke3dsfScKIApAQCAtNDI2Nyw2ICs0NjA5LDcgQEAKICAgICBmaQogICAgIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz1ubwogICAgIGNhc2UgYCRMRCAtdiAyPiYxYCBpbgorICAgICAgKkdOVVwgZ29sZCopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsKICAgICAgICpcIFtbMDFdXS4qIHwgKlwgMi5bWzAtOV1dLiogfCAqXCAyLjEwLiopIDs7ICMgY2F0Y2ggdmVyc2lvbnMgPCAyLjExCiAgICAgICAqXCAyLjExLjkzLjAuMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIFJINy4zIC4uLgogICAgICAgKlwgMi4xMS45Mi4wLjEyXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgTWFuZHJha2UgOC4yIC4uLgpAQCAtNDI4MiwxMSArNDYyNSwxMiBAQAogCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KIAljYXQgPDxfTFRfRU9GIDE+JjIKIAotKioqIFdhcm5pbmc6IHRoZSBHTlUgbGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuOS4xLCBpcyByZXBvcnRlZAorKioqIFdhcm5pbmc6IHRoZSBHTlUgbGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuMTksIGlzIHJlcG9ydGVkCiAqKiogdG8gYmUgdW5hYmxlIHRvIHJlbGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIEFJWC4KICoqKiBUaGVyZWZvcmUsIGxpYnRvb2wgaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIElmIHlvdQotKioqIHJlYWxseSBjYXJlIGZvciBzaGFyZWQgbGlicmFyaWVzLCB5b3UgbWF5IHdhbnQgdG8gbW9kaWZ5IHlvdXIgUEFUSAotKioqIHNvIHRoYXQgYSBub24tR05VIGxpbmtlciBpcyBmb3VuZCwgYW5kIHRoZW4gcmVzdGFydC4KKyoqKiByZWFsbHkgY2FyZSBmb3Igc2hhcmVkIGxpYnJhcmllcywgeW91IG1heSB3YW50IHRvIGluc3RhbGwgYmludXRpbHMKKyoqKiAyLjIwIG9yIGFib3ZlLCBvciBtb2RpZnkgeW91ciBQQVRIIHNvIHRoYXQgYSBub24tR05VIGxpbmtlciBpcyBmb3VuZC4KKyoqKiBZb3Ugd2lsbCB0aGVuIG5lZWQgdG8gcmVzdGFydCB0aGUgY29uZmlndXJhdGlvbiBwcm9jZXNzLgogCiBfTFRfRU9GCiAgICAgICBmaQpAQCAtNDMyMiwxMCArNDY2NiwxMiBAQAogICAgICAgIyBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKICAgICAgICMgYXMgdGhlcmUgaXMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCiAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1hbGwtc3ltYm9scycKICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAogICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubwogICAgICAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9eWVzCi0gICAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltbQkNER1JTXV1bWyBdXS9zLy4qW1sgXV1cKFtbXiBdXSpcKS9cMSBEQVRBLydcJycgfCAkU0VEIC1lICdcJycvXltbQUlUV11dW1sgXV0vcy8uKltbIF1dLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltbQkNER1JTXV1bWyBdXS9zLy4qW1sgXV1cKFtbXiBdXSpcKS9cMSBEQVRBLztzL14uKltbIF1dX19ubV9fXChbW14gXV0qXClbWyBdXVtbXiBdXSovXDEgREFUQS87L15JW1sgXV0vZDsvXltbQUlUV11dW1sgXV0vcy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKyAgICAgIF9MVF9UQUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9WydbX10rR0xPQkFMX09GRlNFVF9UQUJMRV98W19dK0dMT0JBTF9fW0ZJRF1fLip8W19dK2hlYWRfW0EtWmEtejAtOV9dK19kbGx8W0EtWmEtejAtOV9dK19kbGxfaW5hbWUnXQogCiAgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnYXV0by1pbXBvcnQnID4gL2Rldi9udWxsOyB0aGVuCiAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwpAQCAtNDM0Myw2ICs0Njg5LDExIEBACiAgICAgICBmaQogICAgICAgOzsKIAorICAgIGhhaWt1KikKKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworICAgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCisgICAgICA7OworCiAgICAgaW50ZXJpeFtbMy05XV0qKQogICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwogICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KQEAgLTQzNTgsNyArNDcwOSw3IEBACiAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKICAgICAgIDs7CiAKLSAgICBnbnUqIHwgbGludXgqIHwgdHBmKiB8IGsqYnNkKi1nbnUpCisgICAgZ251KiB8IGxpbnV4KiB8IHRwZiogfCBrKmJzZCotZ251IHwga29wZW5zb2xhcmlzKi1nbnUpCiAgICAgICB0bXBfZGlldD1ubwogICAgICAgaWYgdGVzdCAiJGhvc3Rfb3MiID0gbGludXgtZGlldGxpYmM7IHRoZW4KIAljYXNlICRjY19iYXNlbmFtZSBpbgpAQCAtNDM2OCwxNSArNDcxOSwxNiBAQAogICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEVHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGwgXAogCSAmJiB0ZXN0ICIkdG1wX2RpZXQiID0gbm8KICAgICAgIHRoZW4KLQl0bXBfYWRkZmxhZz0KKwl0bXBfYWRkZmxhZz0nICRwaWNfZmxhZycKIAl0bXBfc2hhcmVkZmxhZz0nLXNoYXJlZCcKIAljYXNlICRjY19iYXNlbmFtZSwkaG9zdF9jcHUgaW4KICAgICAgICAgcGdjYyopCQkJCSMgUG9ydGxhbmQgR3JvdXAgQyBjb21waWxlcgotCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwogCSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcnCiAJICA7OwotCXBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KikJIyBQb3J0bGFuZCBHcm91cCBmNzcgYW5kIGY5MCBjb21waWxlcnMKLQkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworCXBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KiB8IHBnZm9ydHJhbiopCisJCQkJCSMgUG9ydGxhbmQgR3JvdXAgZjc3IGFuZCBmOTAgY29tcGlsZXJzCisJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwogCSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcgLU1ub21haW4nIDs7CiAJZWNjKixpYTY0KiB8IGljYyosaWE2NCopCSMgSW50ZWwgQyBjb21waWxlciBvbiBpYTY0CiAJICB0bXBfYWRkZmxhZz0nIC1pX2R5bmFtaWMnIDs7CkBAIC00Mzg3LDEzICs0NzM5LDE3IEBACiAJbGY5NSopCQkJCSMgTGFoZXkgRm9ydHJhbiA4LjEKIAkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KIAkgIHRtcF9zaGFyZWRmbGFnPSctLXNoYXJlZCcgOzsKLQl4bFtbY0NdXSopCQkJIyBJQk0gWEwgQyA4LjAgb24gUFBDIChkZWFsIHdpdGggeGxmIGJlbG93KQorCXhsW1tjQ11dKiB8IGJneGxbW2NDXV0qIHwgbXBpeGxbW2NDXV0qKSAjIElCTSBYTCBDIDguMCBvbiBQUEMgKGRlYWwgd2l0aCB4bGYgYmVsb3cpCiAJICB0bXBfc2hhcmVkZmxhZz0nLXFta3Nocm9iaicKIAkgIHRtcF9hZGRmbGFnPSA7OworCW52Y2MqKQkjIEN1ZGEgQ29tcGlsZXIgRHJpdmVyIDIuMgorCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKwkgIF9MVF9UQUdWQVIoY29tcGlsZXJfbmVlZHNfb2JqZWN0LCAkMSk9eWVzCisJICA7OwogCWVzYWMKIAljYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KIAkqU3VuXCBDKikJCQkjIFN1biBDIDUuOQotCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKIAkgIF9MVF9UQUdWQVIoY29tcGlsZXJfbmVlZHNfb2JqZWN0LCAkMSk9eWVzCiAJICB0bXBfc2hhcmVkZmxhZz0nLUcnIDs7CiAJKlN1blwgRiopCQkJIyBTdW4gRm9ydHJhbiA4LjMKQEAgLTQ0MDksMTcgKzQ3NjUsMTcgQEAKICAgICAgICAgZmkKIAogCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0JeGxmKikKKwl4bGYqIHwgYmdmKiB8IGJneGxmKiB8IG1waXhsZiopCiAJICAjIElCTSBYTCBGb3J0cmFuIDEwLjEgb24gUFBDIGNhbm5vdCBjcmVhdGUgc2hhcmVkIGxpYnMgaXRzZWxmCiAJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Jy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAtLW5vLXdob2xlLWFyY2hpdmUnCiAJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KIAkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpPSctcnBhdGggJGxpYmRpcicKLQkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgLW8gJGxpYicKKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIC1vICRsaWInCiAJICBpZiB0ZXN0ICJ4JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0aGVuCiAJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgogCSAgICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KIAkgICAgICBlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLQkgICAgICAkTEQgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIC12ZXJzaW9uLXNjcmlwdCAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKKwkgICAgICAkTEQgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSAtdmVyc2lvbi1zY3JpcHQgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCiAJICBmaQogCSAgOzsKIAllc2FjCkBAIC00NDMzLDggKzQ3ODksOCBAQAogCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1vICRsaWInCiAJd2xhcmM9CiAgICAgICBlbHNlCi0JX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0JX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwogICAgICAgZmkKICAgICAgIDs7CiAKQEAgLTQ0NTIsOCArNDgwOCw4IEBACiAKIF9MVF9FT0YKICAgICAgIGVsaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKICAgICAgIGVsc2UKIAlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCiAgICAgICBmaQpAQCAtNDQ5OSw4ICs0ODU1LDggQEAKIAogICAgICopCiAgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0JX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0JX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwogICAgICAgZWxzZQogCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KICAgICAgIGZpCkBAIC00NTQwLDggKzQ4OTYsMTAgQEAKICAgICAgIGVsc2UKIAkjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB3ZSBkb24ndCB3YW50IHRoZSAiLUMiIG9wdGlvbi4KIAkjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5zIGRvbid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCisJIyBBbHNvLCBBSVggbm0gdHJlYXRzIHdlYWsgZGVmaW5lZCBzeW1ib2xzIGxpa2Ugb3RoZXIgZ2xvYmFsCisJIyBkZWZpbmVkIHN5bWJvbHMsIHdoZXJlYXMgR05VIG5tIG1hcmtzIHRoZW0gYXMgIlciLgogCWlmICROTSAtViAyPiYxIHwgJEdSRVAgJ0dOVScgPiAvZGV2L251bGw7IHRoZW4KLQkgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gLUJwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCisJICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikgfHwgKFwkIDIgPT0gIlciKSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCiAJZWxzZQogCSAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCiAJZmkKQEAgLTQ2MjgsOSArNDk4Niw5IEBACiAJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSctYmVyb2snCiAgICAgICAgICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbgogICAgICAgICAjIGVtcHR5IGV4ZWN1dGFibGUuCi0gICAgICAgIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCisgICAgICAgIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYKFskMV0pCiAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAieCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4gJEVDSE8gIlgke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiB8ICRYc2VkOyBlbHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAkc2hhcmVkX2ZsYWciCisgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiBmdW5jX2VjaG9fYWxsICIke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IjsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgogICAgICAgZWxzZQogCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCiAJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tUiAkbGliZGlyOi91c3IvbGliOi9saWInCkBAIC00NjM5LDE0ICs0OTk3LDE5IEBACiAJZWxzZQogCSAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KIAkgIyBlbXB0eSBleGVjdXRhYmxlLgotCSBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorCSBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWChbJDFdKQogCSBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKIAkgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCiAJICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCiAJICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1iZXJub3RvaycKIAkgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm9rJwotCSAgIyBFeHBvcnRlZCBzeW1ib2xzIGNhbiBiZSBwdWxsZWQgaW50byBzaGFyZWQgb2JqZWN0cyBmcm9tIGFyY2hpdmVzCi0JICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyRjb252ZW5pZW5jZScKKwkgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKwkgICAgIyBXZSBvbmx5IHVzZSB0aGlzIGNvZGUgZm9yIEdOVSBsZHMgdGhhdCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZS4KKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKwkgIGVsc2UKKwkgICAgIyBFeHBvcnRlZCBzeW1ib2xzIGNhbiBiZSBwdWxsZWQgaW50byBzaGFyZWQgb2JqZWN0cyBmcm9tIGFyY2hpdmVzCisJICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJGNvbnZlbmllbmNlJworCSAgZmkKIAkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT15ZXMKIAkgICMgVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBBSVggdHJhZGl0aW9uYWxseSBidWlsZHMgaXRzIHNoYXJlZCBsaWJyYXJpZXMuCiAJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICR7d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAke3dsfS1iRTokZXhwb3J0X3N5bWJvbHMke2FsbG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lJHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29uYW1lJwpAQCAtNDY3OCwyMCArNTA0MSw2MyBAQAogICAgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KICAgICAgICMgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywgYXMgdGhlcmUgaXMKICAgICAgICMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCi0gICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nICcKLSAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAotICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5saWIgZmlsZXMsIG5vdCAuYSBmaWxlcy4KLSAgICAgIGxpYmV4dD1saWIKLSAgICAgICMgVGVsbCBsdG1haW4gdG8gbWFrZSAuZGxsIGZpbGVzLCBub3QgLnNvIGZpbGVzLgotICAgICAgc2hyZXh0X2NtZHM9Ii5kbGwiCi0gICAgICAjIEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCi0gICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLW8gJGxpYiAkbGlib2JqcyAkY29tcGlsZXJfZmxhZ3MgYCRFQ0hPICJYJGRlcGxpYnMiIHwgJFhzZWQgLWUgJ1wnJ3MvIC1sYyQvLydcJydgIC1saW5rIC1kbGx+bGlua25hbWVzPScKLSAgICAgICMgVGhlIGxpbmtlciB3aWxsIGF1dG9tYXRpY2FsbHkgYnVpbGQgYSAubGliIGZpbGUgaWYgd2UgYnVpbGQgYSBETEwuCi0gICAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKT0ndHJ1ZScKLSAgICAgICMgRklYTUU6IFNob3VsZCBsZXQgdGhlIHVzZXIgc3BlY2lmeSB0aGUgbGliIHByb2dyYW0uCi0gICAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nbGliIC1PVVQ6JG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzJwotICAgICAgX0xUX1RBR1ZBUihmaXhfc3JjZmlsZV9wYXRoLCAkMSk9J2BjeWdwYXRoIC13ICIkc3JjZmlsZSJgJwotICAgICAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9eWVzCisgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorICAgICAgY2wqKQorCSMgTmF0aXZlIE1TVkMKKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nICcKKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKKwlfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPXllcworCV9MVF9UQUdWQVIoZmlsZV9saXN0X3NwZWMsICQxKT0nQCcKKwkjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywgbm90IC5hIGZpbGVzLgorCWxpYmV4dD1saWIKKwkjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmRsbCBmaWxlcywgbm90IC5zbyBmaWxlcy4KKwlzaHJleHRfY21kcz0iLmRsbCIKKwkjIEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGNvbXBpbGVyX2ZsYWdzICRkZXBsaWJzIC1XbCwtZGxsfmxpbmtuYW1lcz0nCisJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCisJICAgIHNlZCAtbiAtZSAncy9cXFxcXFxcKC4qXFxcXFxcXCkvLWxpbmtcXFwgLUVYUE9SVDpcXFxcXFxcMS8nIC1lICcxXFxcIXAnIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHA7CisJICBlbHNlCisJICAgIHNlZCAtZSAncy9cXFxcXFxcKC4qXFxcXFxcXCkvLWxpbmtcXFwgLUVYUE9SVDpcXFxcXFxcMS8nIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHA7CisJICBmaX4KKwkgICRDQyAtbyAkdG9vbF9vdXRwdXRfb2JqZGlyJHNvbmFtZSAkbGlib2JqcyAkY29tcGlsZXJfZmxhZ3MgJGRlcGxpYnMgIkAkdG9vbF9vdXRwdXRfb2JqZGlyJHNvbmFtZS5leHAiIC1XbCwtRExMLC1JTVBMSUI6IiR0b29sX291dHB1dF9vYmpkaXIkbGlibmFtZS5kbGwubGliIn4KKwkgIGxpbmtuYW1lcz0nCisJIyBUaGUgbGlua2VyIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgYnVpbGQgYSBzdGF0aWMgbGliIGlmIHdlIGJ1aWxkIGEgRExMLgorCSMgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzLCAkMSk9J3RydWUnCisJX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9eWVzCisJX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bW0JDREdSU11dW1sgXV0vcy8uKltbIF1dXChbW14gXV0qXCkvXDEsREFUQS8nXCcnIHwgJFNFRCAtZSAnXCcnL15bW0FJVFddXVtbIF1dL3MvLipbWyBdXS8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworCSMgRG9uJ3QgdXNlIHJhbmxpYgorCV9MVF9UQUdWQVIob2xkX3Bvc3RpbnN0YWxsX2NtZHMsICQxKT0nY2htb2QgNjQ0ICRvbGRsaWInCisJX0xUX1RBR1ZBUihwb3N0bGlua19jbWRzLCAkMSk9J2x0X291dHB1dGZpbGU9IkBPVVRQVVRAIn4KKwkgIGx0X3Rvb2xfb3V0cHV0ZmlsZT0iQFRPT0xfT1VUUFVUQCJ+CisJICBjYXNlICRsdF9vdXRwdXRmaWxlIGluCisJICAgICouZXhlfCouRVhFKSA7OworCSAgICAqKQorCSAgICAgIGx0X291dHB1dGZpbGU9IiRsdF9vdXRwdXRmaWxlLmV4ZSIKKwkgICAgICBsdF90b29sX291dHB1dGZpbGU9IiRsdF90b29sX291dHB1dGZpbGUuZXhlIgorCSAgICAgIDs7CisJICBlc2FjfgorCSAgaWYgdGVzdCAiJE1BTklGRVNUX1RPT0wiICE9ICI6IiAmJiB0ZXN0IC1mICIkbHRfb3V0cHV0ZmlsZS5tYW5pZmVzdCI7IHRoZW4KKwkgICAgJE1BTklGRVNUX1RPT0wgLW1hbmlmZXN0ICIkbHRfdG9vbF9vdXRwdXRmaWxlLm1hbmlmZXN0IiAtb3V0cHV0cmVzb3VyY2U6IiRsdF90b29sX291dHB1dGZpbGUiIHx8IGV4aXQgMTsKKwkgICAgJFJNICIkbHRfb3V0cHV0ZmlsZS5tYW5pZmVzdCI7CisJICBmaScKKwk7OworICAgICAgKikKKwkjIEFzc3VtZSBNU1ZDIHdyYXBwZXIKKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nICcKKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKKwkjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywgbm90IC5hIGZpbGVzLgorCWxpYmV4dD1saWIKKwkjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmRsbCBmaWxlcywgbm90IC5zbyBmaWxlcy4KKwlzaHJleHRfY21kcz0iLmRsbCIKKwkjIEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1vICRsaWIgJGxpYm9ianMgJGNvbXBpbGVyX2ZsYWdzIGBmdW5jX2VjaG9fYWxsICIkZGVwbGlicyIgfCAkU0VEICdcJydzLyAtbGMkLy8nXCcnYCAtbGluayAtZGxsfmxpbmtuYW1lcz0nCisJIyBUaGUgbGlua2VyIHdpbGwgYXV0b21hdGljYWxseSBidWlsZCBhIC5saWIgZmlsZSBpZiB3ZSBidWlsZCBhIERMTC4KKwlfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKT0ndHJ1ZScKKwkjIEZJWE1FOiBTaG91bGQgbGV0IHRoZSB1c2VyIHNwZWNpZnkgdGhlIGxpYiBwcm9ncmFtLgorCV9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSdsaWIgLU9VVDokb2xkbGliJG9sZG9ianMkb2xkX2RlcGxpYnMnCisJX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9eWVzCisJOzsKKyAgICAgIGVzYWMKICAgICAgIDs7CiAKICAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQpAQCAtNDcyOSw3ICs1MTM1LDcgQEAKIAogICAgICMgRnJlZUJTRCAzIGFuZCBncmVhdGVyIHVzZXMgZ2NjIC1zaGFyZWQgdG8gZG8gc2hhcmVkIGxpYnJhcmllcy4KICAgICBmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0gICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCiAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwogICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KQEAgLTQ3MzcsNyArNTE0Myw3IEBACiAKICAgICBocHV4OSopCiAgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1zaGFyZWQgJHBpY19mbGFnICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCiAgICAgICBlbHNlCiAJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JExEIC1iICtiICRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCiAgICAgICBmaQpAQCAtNDc1Miw4ICs1MTU4LDggQEAKICAgICAgIDs7CiAKICAgICBocHV4MTAqKQotICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKICAgICAgIGVsc2UKIAlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLWIgK2ggJHNvbmFtZSArYiAkaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwogICAgICAgZmkKQEAgLTQ3NzEsMTYgKzUxNzcsMTYgQEAKICAgICAgIDs7CiAKICAgICBocHV4MTEqKQotICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCiAJY2FzZSAkaG9zdF9jcHUgaW4KIAlocHBhKjY0KikKIAkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwogCSAgOzsKIAlpYTY0KikKLQkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwogCSAgOzsKIAkqKQotCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwogCSAgOzsKIAllc2FjCiAgICAgICBlbHNlCkBAIC00NzkyLDcgKzUxOTgsMTQgQEAKIAkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKIAkgIDs7CiAJKikKLQkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCW00X2lmKCQxLCBbXSwgWworCSAgIyBPbGRlciB2ZXJzaW9ucyBvZiB0aGUgMTEuMDAgY29tcGlsZXIgZG8gbm90IHVuZGVyc3RhbmQgLWIgeWV0CisJICAjIChIUDkyNDUzLTAxIEEuMTEuMDEuMjAgZG9lc24ndCwgSFA5MjQ1My0wMSBCLjExLlguMzUxNzUtMzUxNzYuR1AgZG9lcykKKwkgIF9MVF9MSU5LRVJfT1BUSU9OKFtpZiAkQ0MgdW5kZXJzdGFuZHMgLWJdLAorCSAgICBfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfX2IsICQxKSwgWy1iXSwKKwkgICAgW19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJ10sCisJICAgIFtfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLWIgK2ggJHNvbmFtZSArYiAkaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJ10pXSwKKwkgIFtfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyddKQogCSAgOzsKIAllc2FjCiAgICAgICBmaQpAQCAtNDgyMCwxOSArNTIzMywzNCBAQAogCiAgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKICAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0JX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKIAkjIFRyeSB0byB1c2UgdGhlIC1leHBvcnRlZF9zeW1ib2wgbGQgb3B0aW9uLCBpZiBpdCBkb2VzIG5vdAogCSMgd29yaywgYXNzdW1lIHRoYXQgLWV4cG9ydHNfZmlsZSBkb2VzIG5vdCB3b3JrIGVpdGhlciBhbmQKIAkjIGltcGxpY2l0bHkgZXhwb3J0IGFsbCBzeW1ib2xzLgotICAgICAgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotICAgICAgICBMREZMQUdTPSIkTERGTEFHUyAtc2hhcmVkICR7d2x9LWV4cG9ydGVkX3N5bWJvbCAke3dsfWZvbyAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0vZGV2L251bGwiCi0gICAgICAgIEFDX0xJTktfSUZFTFNFKGludCBmb28odm9pZCkge30sCi0gICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgJHt3bH0tZXhwb3J0c19maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0gICAgICAgICkKLSAgICAgICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKKwkjIFRoaXMgc2hvdWxkIGJlIHRoZSBzYW1lIGZvciBhbGwgbGFuZ3VhZ2VzLCBzbyBubyBwZXItdGFnIGNhY2hlIHZhcmlhYmxlLgorCUFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIHRoZSAkaG9zdF9vcyBsaW5rZXIgYWNjZXB0cyAtZXhwb3J0ZWRfc3ltYm9sXSwKKwkgIFtsdF9jdl9pcml4X2V4cG9ydGVkX3N5bWJvbF0sCisJICBbc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKwkgICBMREZMQUdTPSIkTERGTEFHUyAtc2hhcmVkICR7d2x9LWV4cG9ydGVkX3N5bWJvbCAke3dsfWZvbyAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0vZGV2L251bGwiCisJICAgQUNfTElOS19JRkVMU0UoCisJICAgICBbQUNfTEFOR19TT1VSQ0UoCisJICAgICAgICBbQUNfTEFOR19DQVNFKFtDXSwgW1tpbnQgZm9vICh2b2lkKSB7IHJldHVybiAwOyB9XV0sCisJCQkgICAgICBbQysrXSwgW1tpbnQgZm9vICh2b2lkKSB7IHJldHVybiAwOyB9XV0sCisJCQkgICAgICBbRm9ydHJhbiA3N10sIFtbCisgICAgICBzdWJyb3V0aW5lIGZvbworICAgICAgZW5kXV0sCisJCQkgICAgICBbRm9ydHJhbl0sIFtbCisgICAgICBzdWJyb3V0aW5lIGZvbworICAgICAgZW5kXV0pXSldLAorCSAgICAgIFtsdF9jdl9pcml4X2V4cG9ydGVkX3N5bWJvbD15ZXNdLAorCSAgICAgIFtsdF9jdl9pcml4X2V4cG9ydGVkX3N5bWJvbD1ub10pCisgICAgICAgICAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiXSkKKwlpZiB0ZXN0ICIkbHRfY3ZfaXJpeF9leHBvcnRlZF9zeW1ib2wiID0geWVzOyB0aGVuCisgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgJHt3bH0tZXhwb3J0c19maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisJZmkKICAgICAgIGVsc2UKLQlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0JX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLWV4cG9ydHNfZmlsZSAkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICItc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1leHBvcnRzX2ZpbGUgJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCiAgICAgICBmaQogICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPSdubycKICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCkBAIC00ODk0LDE3ICs1MzIyLDE3IEBACiAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJwogICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCiAgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKLSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRFQ0hPICJMSUJSQVJZICRsaWJuYW1lIElOSVRJTlNUQU5DRSIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8gIkRFU0NSSVBUSU9OIFwiJGxpYm5hbWVcIiIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPIERBVEEgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPICIgU0lOR0xFIE5PTlNIQVJFRCIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPIEVYUE9SVFMgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVteGV4cCAkbGlib2JqcyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JENDIC1aZGxsIC1aY3J0ZGxsIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicKKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRFQ0hPICJMSUJSQVJZICRsaWJuYW1lIElOSVRJTlNUQU5DRSIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8gIkRFU0NSSVBUSU9OIFwiJGxpYm5hbWVcIiIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVjaG8gREFUQSA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZWNobyAiIFNJTkdMRSBOT05TSEFSRUQiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn5lY2hvIEVYUE9SVFMgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVteGV4cCAkbGlib2JqcyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JENDIC1aZGxsIC1aY3J0ZGxsIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicKICAgICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcywgJDEpPSdlbXhpbXAgLW8gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuYSAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCiAgICAgICA7OwogCiAgICAgb3NmMyopCiAgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgogCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0JX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKICAgICAgIGVsc2UKIAlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCi0JX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICItc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKICAgICAgIGZpCiAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9J25vJwogICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKQEAgLTQ5MTQsMTMgKzUzNDIsMTMgQEAKICAgICBvc2Y0KiB8IG9zZjUqKQkjIGFzIG9zZjMqIHdpdGggdGhlIGFkZGl0aW9uIG9mIC1tc3ltIGZsYWcKICAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCiAJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKLQlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyJgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCiAJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKICAgICAgIGVsc2UKIAlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCi0JX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICItc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKIAlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lOyBwcmludGYgIiVzXFxuIiAiLWhpZGRlbiI+PiAkbGliLmV4cH4KLQkkQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICR7d2x9LWlucHV0ICR7d2x9JGxpYi5leHAgJGNvbXBpbGVyX2ZsYWdzICRsaWJvYmpzICRkZXBsaWJzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGlifiRSTSAkbGliLmV4cCcKKwkkQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICR7d2x9LWlucHV0ICR7d2x9JGxpYi5leHAgJGNvbXBpbGVyX2ZsYWdzICRsaWJvYmpzICRkZXBsaWJzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGlifiRSTSAkbGliLmV4cCcKIAogCSMgQm90aCBjIGFuZCBjeHggY29tcGlsZXIgc3VwcG9ydCAtcnBhdGggZGlyZWN0bHkKIAlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLXJwYXRoICRsaWJkaXInCkBAIC00OTMzLDkgKzUzNjEsOSBAQAogICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScgLXogZGVmcycKICAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCiAJd2xhcmM9JyR7d2x9JwotCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LXogJHt3bH10ZXh0ICR7d2x9LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAke3dsfS16ICR7d2x9dGV4dCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKIAlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotCSAgJENDIC1zaGFyZWQgJHt3bH0teiAke3dsfXRleHQgJHt3bH0tTSAke3dsfSRsaWIuZXhwICR7d2x9LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKKwkgICRDQyAtc2hhcmVkICRwaWNfZmxhZyAke3dsfS16ICR7d2x9dGV4dCAke3dsfS1NICR7d2x9JGxpYi5leHAgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJwogICAgICAgZWxzZQogCWNhc2UgYCRDQyAtViAyPiYxYCBpbgogCSoiQ29tcGlsZXJzIDUuMCIqKQpAQCAtNTExMSwzNiArNTUzOSwzOCBAQAogICAgICAgIyBUZXN0IHdoZXRoZXIgdGhlIGNvbXBpbGVyIGltcGxpY2l0bHkgbGlua3Mgd2l0aCAtbGMgc2luY2Ugb24gc29tZQogICAgICAgIyBzeXN0ZW1zLCAtbGdjYyBoYXMgdG8gY29tZSBiZWZvcmUgLWxjLiBJZiBnY2MgYWxyZWFkeSBwYXNzZXMgLWxjCiAgICAgICAjIHRvIGxkLCBkb24ndCBhZGQgLWxjIGJlZm9yZSAtbGdjYy4KLSAgICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluXSkKLSAgICAgICRSTSBjb25mdGVzdCoKLSAgICAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorICAgICAgQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbl0sCisJW2x0X2N2X11fTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSksCisJWyRSTSBjb25mdGVzdCoKKwllY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKIAotICAgICAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcnI7IHRoZW4KLSAgICAgICAgc29uYW1lPWNvbmZ0ZXN0Ci0gICAgICAgIGxpYj1jb25mdGVzdAotICAgICAgICBsaWJvYmpzPWNvbmZ0ZXN0LiRhY19vYmpleHQKLSAgICAgICAgZGVwbGlicz0KLSAgICAgICAgd2w9JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpCi0JcGljX2ZsYWc9JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKQotICAgICAgICBjb21waWxlcl9mbGFncz0tdgotICAgICAgICBsaW5rZXJfZmxhZ3M9LXYKLSAgICAgICAgdmVyc3RyaW5nPQotICAgICAgICBvdXRwdXRfb2JqZGlyPS4KLSAgICAgICAgbGlibmFtZT1jb25mdGVzdAotICAgICAgICBsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnPSRfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSkKLSAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPQotICAgICAgICBpZiBBQ19UUllfRVZBTChfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpIDJcPlwmMSBcfCAkR1JFUCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxKQotICAgICAgICB0aGVuCi0JICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KLSAgICAgICAgZWxzZQotCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcwotICAgICAgICBmaQotICAgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKLSAgICAgIGVsc2UKLSAgICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiY1Ci0gICAgICBmaQotICAgICAgJFJNIGNvbmZ0ZXN0KgotICAgICAgQUNfTVNHX1JFU1VMVChbJF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKV0pCisJaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcnI7IHRoZW4KKwkgIHNvbmFtZT1jb25mdGVzdAorCSAgbGliPWNvbmZ0ZXN0CisJICBsaWJvYmpzPWNvbmZ0ZXN0LiRhY19vYmpleHQKKwkgIGRlcGxpYnM9CisJICB3bD0kX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSkKKwkgIHBpY19mbGFnPSRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkKKwkgIGNvbXBpbGVyX2ZsYWdzPS12CisJICBsaW5rZXJfZmxhZ3M9LXYKKwkgIHZlcnN0cmluZz0KKwkgIG91dHB1dF9vYmpkaXI9LgorCSAgbGlibmFtZT1jb25mdGVzdAorCSAgbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZz0kX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpCisJICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9CisJICBpZiBBQ19UUllfRVZBTChfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpIDJcPlwmMSBcfCAkR1JFUCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxKQorCSAgdGhlbgorCSAgICBsdF9jdl9bXV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworCSAgZWxzZQorCSAgICBsdF9jdl9bXV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT15ZXMKKwkgIGZpCisJICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKKwllbHNlCisJICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKKwlmaQorCSRSTSBjb25mdGVzdCoKKwldKQorICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPSRsdF9jdl9bXV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKQogICAgICAgOzsKICAgICBlc2FjCiAgIGZpCkBAIC01MjA1LDggKzU2MzUsNiBAQAogICAgIHRvIHJ1bnRpbWUgcGF0aCBsaXN0XSkKIF9MVF9UQUdERUNMKFtdLCBbbGlua19hbGxfZGVwbGlic10sIFswXSwKICAgICBbV2hldGhlciBsaWJ0b29sIG11c3QgbGluayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVuY3kgbGlicmFyaWVzXSkKLV9MVF9UQUdERUNMKFtdLCBbZml4X3NyY2ZpbGVfcGF0aF0sIFsxXSwKLSAgICBbRml4IHRoZSBzaGVsbCB2YXJpYWJsZSAkc3JjZmlsZSBmb3IgdGhlIGNvbXBpbGVyXSkKIF9MVF9UQUdERUNMKFtdLCBbYWx3YXlzX2V4cG9ydF9zeW1ib2xzXSwgWzBdLAogICAgIFtTZXQgdG8gInllcyIgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWRdKQogX0xUX1RBR0RFQ0woW10sIFtleHBvcnRfc3ltYm9sc19jbWRzXSwgWzJdLApAQCAtNTIxNyw2ICs1NjQ1LDggQEAKICAgICBbU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkXSkKIF9MVF9UQUdERUNMKFtdLCBbcHJlbGlua19jbWRzXSwgWzJdLAogICAgIFtDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgcHJvZ3JhbXMgKGFnYWluc3QgbGlicmFyaWVzKSB3aXRoIHRlbXBsYXRlc10pCitfTFRfVEFHREVDTChbXSwgW3Bvc3RsaW5rX2NtZHNdLCBbMl0sCisgICAgW0NvbW1hbmRzIG5lY2Vzc2FyeSBmb3IgZmluaXNoaW5nIGxpbmtpbmcgcHJvZ3JhbXNdKQogX0xUX1RBR0RFQ0woW10sIFtmaWxlX2xpc3Rfc3BlY10sIFsxXSwKICAgICBbU3BlY2lmeSBmaWxlbmFtZSBjb250YWluaW5nIGlucHV0IGZpbGVzXSkKIGRubCBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRlZApAQCAtNTMxMCwxNCArNTc0MCwxNSBAQAogXSkjIF9MVF9MQU5HX0NfQ09ORklHCiAKIAotIyBfTFRfUFJPR19DWFgKLSMgLS0tLS0tLS0tLS0tCi0jIFNpbmNlIEFDX1BST0dfQ1hYIGlzIGJyb2tlbiwgaW4gdGhhdCBpdCByZXR1cm5zIGcrKyBpZiB0aGVyZSBpcyBubyBjKysKLSMgY29tcGlsZXIsIHdlIGhhdmUgb3VyIG93biB2ZXJzaW9uIGhlcmUuCi1tNF9kZWZ1bihbX0xUX1BST0dfQ1hYXSwKLVsKLXB1c2hkZWYoW0FDX01TR19FUlJPUl0sIFtfbHRfY2F1Z2h0X0NYWF9lcnJvcj15ZXNdKQotQUNfUFJPR19DWFgKKyMgX0xUX0xBTkdfQ1hYX0NPTkZJRyhbVEFHXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEMrKyBjb21waWxlciBhcmUgc3VpdGFibHkKKyMgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRyB0byB3cml0ZQorIyB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCittNF9kZWZ1bihbX0xUX0xBTkdfQ1hYX0NPTkZJR10sCitbbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCittNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCittNF9yZXF1aXJlKFtfTFRfUEFUSF9NQU5JRkVTVF9UT09MXSlkbmwKIGlmIHRlc3QgLW4gIiRDWFgiICYmICggdGVzdCAiWCRDWFgiICE9ICJYbm8iICYmCiAgICAgKCAodGVzdCAiWCRDWFgiID0gIlhnKysiICYmIGBnKysgLXYgPi9kZXYvbnVsbCAyPiYxYCApIHx8CiAgICAgKHRlc3QgIlgkQ1hYIiAhPSAiWGcrKyIpKSkgOyB0aGVuCkBAIC01MzI1LDIyICs1NzU2LDYgQEAKIGVsc2UKICAgX2x0X2NhdWdodF9DWFhfZXJyb3I9eWVzCiBmaQotcG9wZGVmKFtBQ19NU0dfRVJST1JdKQotXSkjIF9MVF9QUk9HX0NYWAotCi1kbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci1kbmwgQUNfREVGVU4oW19MVF9QUk9HX0NYWF0sIFtdKQotCi0KLSMgX0xUX0xBTkdfQ1hYX0NPTkZJRyhbVEFHXSkKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEMrKyBjb21waWxlciBhcmUgc3VpdGFibHkKLSMgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRyB0byB3cml0ZQotIyB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCi1tNF9kZWZ1bihbX0xUX0xBTkdfQ1hYX0NPTkZJR10sCi1bQUNfUkVRVUlSRShbX0xUX1BST0dfQ1hYXSlkbmwKLW00X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAotbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRubAogCiBBQ19MQU5HX1BVU0goQysrKQogX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCkBAIC01MzYyLDYgKzU3NzcsOCBAQAogX0xUX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0KIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXVua25vd24KIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCitfTFRfVEFHVkFSKHJlbG9hZF9mbGFnLCAkMSk9JHJlbG9hZF9mbGFnCitfTFRfVEFHVkFSKHJlbG9hZF9jbWRzLCAkMSk9JHJlbG9hZF9jbWRzCiBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9CiBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9CiBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1ubwpAQCAtNTM5Myw2ICs1ODEwLDcgQEAKIAogICAjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgogICBsdF9zYXZlX0NDPSRDQworICBsdF9zYXZlX0NGTEFHUz0kQ0ZMQUdTCiAgIGx0X3NhdmVfTEQ9JExECiAgIGx0X3NhdmVfR0NDPSRHQ0MKICAgR0NDPSRHWFgKQEAgLTU0MTAsNiArNTgyOCw3IEBACiAgIGZpCiAgIHRlc3QgLXogIiR7TERDWFgrc2V0fSIgfHwgTEQ9JExEQ1hYCiAgIENDPSR7Q1hYLSJjKysifQorICBDRkxBR1M9JENYWEZMQUdTCiAgIGNvbXBpbGVyPSRDQwogICBfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCiAgIF9MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKQEAgLTU0MzEsOCArNTg1MCw4IEBACiAgICAgICAjIENoZWNrIGlmIEdOVSBDKysgdXNlcyBHTlUgbGQgYXMgdGhlIHVuZGVybHlpbmcgbGlua2VyLCBzaW5jZSB0aGUKICAgICAgICMgYXJjaGl2aW5nIGNvbW1hbmRzIGJlbG93IGFzc3VtZSB0aGF0IEdOVSBsZCBpcyBiZWluZyB1c2VkLgogICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0gICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAkcGljX2ZsYWcgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgJHBpY19mbGFnIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwogCiAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCiAgICAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKQEAgLTU0NjQsNyArNTg4Myw3IEBACiAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCiAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgIlwtTCInCisgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAtdiAiXkNvbmZpZ3VyZWQgd2l0aDoiIHwgJEdSRVAgIlwtTCInCiAKICAgICBlbHNlCiAgICAgICBHWFg9bm8KQEAgLTU1NzMsMTAgKzU5OTIsMTAgQEAKICAgICAgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Jy1iZXJvaycKICAgICAgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkKICAgICAgICAgICAjIGV4ZWN1dGFibGUuCi0gICAgICAgICAgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgKKyAgICAgICAgICBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWChbJDFdKQogICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgogCi0gICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuICRFQ0hPICJYJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgfCAkWHNlZDsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgorICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiBmdW5jX2VjaG9fYWxsICIke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IjsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgogICAgICAgICBlbHNlCiAgICAgICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KIAkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJwpAQCAtNTU4NSwxNCArNjAwNCwxOSBAQAogICAgICAgICAgIGVsc2UKIAkgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCiAJICAgICMgZW1wdHkgZXhlY3V0YWJsZS4KLQkgICAgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgKKwkgICAgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgoWyQxXSkKIAkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCiAJICAgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCiAJICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KIAkgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tYmVybm90b2snCiAJICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm9rJwotCSAgICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKLQkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSckY29udmVuaWVuY2UnCisJICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKwkgICAgICAjIFdlIG9ubHkgdXNlIHRoaXMgY29kZSBmb3IgR05VIGxkcyB0aGF0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlLgorCSAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisJICAgIGVsc2UKKwkgICAgICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKKwkgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyRjb252ZW5pZW5jZScKKwkgICAgZmkKIAkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcwogCSAgICAjIFRoaXMgaXMgc2ltaWxhciB0byBob3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQKIAkgICAgIyBsaWJyYXJpZXMuCkBAIC01NjIyLDI4ICs2MDQ2LDc1IEBACiAgICAgICAgIDs7CiAKICAgICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKLSAgICAgICAgIyBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKLSAgICAgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCi0gICAgICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KLSAgICAgICAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9eWVzCisJY2FzZSAkR1hYLCRjY19iYXNlbmFtZSBpbgorCSxjbCogfCBubyxjbCopCisJICAjIE5hdGl2ZSBNU1ZDCisJICAjIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsIGFzIHRoZXJlIGlzCisJICAjIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgorCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyAnCisJICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKKwkgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9eWVzCisJICBfTFRfVEFHVkFSKGZpbGVfbGlzdF9zcGVjLCAkMSk9J0AnCisJICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywgbm90IC5hIGZpbGVzLgorCSAgbGliZXh0PWxpYgorCSAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5kbGwgZmlsZXMsIG5vdCAuc28gZmlsZXMuCisJICBzaHJleHRfY21kcz0iLmRsbCIKKwkgICMgRklYTUU6IFNldHRpbmcgbGlua25hbWVzIGhlcmUgaXMgYSBiYWQgaGFjay4KKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRjb21waWxlcl9mbGFncyAkZGVwbGlicyAtV2wsLWRsbH5saW5rbmFtZXM9JworCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCisJICAgICAgJFNFRCAtbiAtZSAncy9cXFxcXFxcKC4qXFxcXFxcXCkvLWxpbmtcXFwgLUVYUE9SVDpcXFxcXFxcMS8nIC1lICcxXFxcIXAnIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHA7CisJICAgIGVsc2UKKwkgICAgICAkU0VEIC1lICdzL1xcXFxcXFwoLipcXFxcXFxcKS8tbGlua1xcXCAtRVhQT1JUOlxcXFxcXFwxLycgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cDsKKwkgICAgZml+CisJICAgICRDQyAtbyAkdG9vbF9vdXRwdXRfb2JqZGlyJHNvbmFtZSAkbGlib2JqcyAkY29tcGlsZXJfZmxhZ3MgJGRlcGxpYnMgIkAkdG9vbF9vdXRwdXRfb2JqZGlyJHNvbmFtZS5leHAiIC1XbCwtRExMLC1JTVBMSUI6IiR0b29sX291dHB1dF9vYmpkaXIkbGlibmFtZS5kbGwubGliIn4KKwkgICAgbGlua25hbWVzPScKKwkgICMgVGhlIGxpbmtlciB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IGJ1aWxkIGEgc3RhdGljIGxpYiBpZiB3ZSBidWlsZCBhIERMTC4KKwkgICMgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzLCAkMSk9J3RydWUnCisJICBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMKKwkgICMgRG9uJ3QgdXNlIHJhbmxpYgorCSAgX0xUX1RBR1ZBUihvbGRfcG9zdGluc3RhbGxfY21kcywgJDEpPSdjaG1vZCA2NDQgJG9sZGxpYicKKwkgIF9MVF9UQUdWQVIocG9zdGxpbmtfY21kcywgJDEpPSdsdF9vdXRwdXRmaWxlPSJAT1VUUFVUQCJ+CisJICAgIGx0X3Rvb2xfb3V0cHV0ZmlsZT0iQFRPT0xfT1VUUFVUQCJ+CisJICAgIGNhc2UgJGx0X291dHB1dGZpbGUgaW4KKwkgICAgICAqLmV4ZXwqLkVYRSkgOzsKKwkgICAgICAqKQorCQlsdF9vdXRwdXRmaWxlPSIkbHRfb3V0cHV0ZmlsZS5leGUiCisJCWx0X3Rvb2xfb3V0cHV0ZmlsZT0iJGx0X3Rvb2xfb3V0cHV0ZmlsZS5leGUiCisJCTs7CisJICAgIGVzYWN+CisJICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkbHRfb3V0cHV0ZmlsZSJ+CisJICAgIGlmIHRlc3QgIiRNQU5JRkVTVF9UT09MIiAhPSAiOiIgJiYgdGVzdCAtZiAiJGx0X291dHB1dGZpbGUubWFuaWZlc3QiOyB0aGVuCisJICAgICAgJE1BTklGRVNUX1RPT0wgLW1hbmlmZXN0ICIkbHRfdG9vbF9vdXRwdXRmaWxlLm1hbmlmZXN0IiAtb3V0cHV0cmVzb3VyY2U6IiRsdF90b29sX291dHB1dGZpbGUiIHx8IGV4aXQgMTsKKwkgICAgICAkUk0gIiRsdF9vdXRwdXRmaWxlLm1hbmlmZXN0IjsKKwkgICAgZmknCisJICA7OworCSopCisJICAjIGcrKworCSAgIyBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKKwkgICMgYXMgdGhlcmUgaXMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCisJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworCSAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1hbGwtc3ltYm9scycKKwkgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAorCSAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubworCSAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9eWVzCiAKLSAgICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgotICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKLSAgICAgICAgICAjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCi0gICAgICAgICAgIyBpcyBFWFBPUlRTKSwgdXNlIGl0IGFzIGlzOyBvdGhlcndpc2UsIHByZXBlbmQuLi4KLSAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0naWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiID0geEVYUE9SVFM7IHRoZW4KLQkgICAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotICAgICAgICAgIGVsc2UKLQkgICAgZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0JICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0gICAgICAgICAgZml+Ci0gICAgICAgICAgJENDIC1zaGFyZWQgLW5vc3RkbGliICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwotICAgICAgICBlbHNlCi0gICAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotICAgICAgICBmaQotICAgICAgICA7OworCSAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgorCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCisJICAgICMgSWYgdGhlIGV4cG9ydC1zeW1ib2xzIGZpbGUgYWxyZWFkeSBpcyBhIC5kZWYgZmlsZSAoMXN0IGxpbmUKKwkgICAgIyBpcyBFWFBPUlRTKSwgdXNlIGl0IGFzIGlzOyBvdGhlcndpc2UsIHByZXBlbmQuLi4KKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCisJICAgICAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworCSAgICBlbHNlCisJICAgICAgZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisJICAgICAgY2F0ICRleHBvcnRfc3ltYm9scyA+PiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKwkgICAgZml+CisJICAgICRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKwkgIGVsc2UKKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworCSAgZmkKKwkgIDs7CisJZXNhYworCTs7CiAgICAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQogICAgICAgICBfTFRfREFSV0lOX0xJTktFUl9GRUFUVVJFUygkMSkKIAk7OwpAQCAtNTY4NSw2ICs2MTU2LDExIEBACiAgICAgICBnbnUqKQogICAgICAgICA7OwogCisgICAgICBoYWlrdSopCisgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworICAgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKyAgICAgICAgOzsKKwogICAgICAgaHB1eDkqKQogICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3dsfSRsaWJkaXInCiAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKQEAgLTU3MDksMTEgKzYxODUsMTEgQEAKICAgICAgICAgICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCiAgICAgICAgICAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CiAgICAgICAgICAgICAjIGRlcGVuZGVuY2llcy4KLSAgICAgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gKCRDQyAtYiAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSkgfCAkRUdSRVAgIlwtTCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKKyAgICAgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gKCRDQyAtYiAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSkgfCAkRUdSRVAgIlwtTCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZnVuY19lY2hvX2FsbCAiJGxpc3QiJwogICAgICAgICAgICAgOzsKICAgICAgICAgICAqKQogICAgICAgICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSAgICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCisgICAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcGljX2ZsYWcgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CiAgICAgICAgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KQEAgLTU3NzQsNyArNjI1MCw3IEBACiAJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCiAJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKIAkgICAgIyBkZXBlbmRlbmNpZXMuCi0JICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gKCRDQyAtYiAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSkgfCAkR1JFUCAiXC1MImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJworCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEdSRVAgIlwtTCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZnVuY19lY2hvX2FsbCAiJGxpc3QiJwogCSAgICA7OwogICAgICAgICAgICopCiAJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCkBAIC01Nzg0LDEwICs2MjYwLDEwIEBACiAJICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwogCSAgICAgICAgICAgIDs7CiAJICAgICAgICAgIGlhNjQqKQotCSAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKwkgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHBpY19mbGFnICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwogCSAgICAgICAgICAgIDs7CiAJICAgICAgICAgICopCi0JICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisJICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwaWNfZmxhZyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwogCSAgICAgICAgICAgIDs7CiAJICAgICAgICBlc2FjCiAJICAgICAgZmkKQEAgLTU4MTcsNyArNjI5Myw3IEBACiAgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCiAgICAgICAgICAgQ0MqKQogCSAgICAjIFNHSSBDKysKLQkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLWFsbCAtbXVsdGlnb3QgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtYWxsIC1tdWx0aWdvdCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICItc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKIAogCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKIAkgICAgIyAiQ0MgLWFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgSVJJWCBDKysgY29tcGlsZXIuICBUaGlzIGlzCkBAIC01ODI4LDkgKzYzMDQsOSBAQAogICAgICAgICAgICopCiAJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCiAJICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0JICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKIAkgICAgICBlbHNlCi0JICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAtbyAkbGliJworCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgLW8gJGxpYicKIAkgICAgICBmaQogCSAgICBmaQogCSAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKQEAgLTU4NDEsNyArNjMxNyw3IEBACiAgICAgICAgIF9MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpPXllcwogICAgICAgICA7OwogCi0gICAgICBsaW51eCogfCBrKmJzZCotZ251KQorICAgICAgbGludXgqIHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQogICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgogICAgICAgICAgIEtDQyopCiAJICAgICMgS3VjayBhbmQgQXNzb2NpYXRlcywgSW5jLiAoS0FJKSBDKysgQ29tcGlsZXIKQEAgLTU4NTksNyArNjMzNSw3IEBACiAJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCiAJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKIAkgICAgIyBkZXBlbmRlbmNpZXMuCi0JICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRfZXh0IDI+JjEgfCAkR1JFUCAibGQiYDsgcm0gLWYgbGliY29uZnRlc3Qkc2hhcmVkX2V4dDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCisJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRfZXh0IDI+JjEgfCAkR1JFUCAibGQiYDsgcm0gLWYgbGliY29uZnRlc3Qkc2hhcmVkX2V4dDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGZ1bmNfZWNob19hbGwgIiRsaXN0IicKIAogCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKIAkgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwpAQCAtNTg5NiwyNiArNjM3MiwyNiBAQAogICAgICAgICAgIHBnQ0MqIHwgcGdjcHAqKQogICAgICAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBDKysgY29tcGlsZXIKIAkgICAgY2FzZSBgJENDIC1WYCBpbgotCSAgICAqcGdDQ1wgW1sxLTVdXSogfCAqcGdjcHBcIFtbMS01XV0qKQorCSAgICAqcGdDQ1wgW1sxLTVdXS4qIHwgKnBnY3BwXCBbWzEtNV1dLiopCiAJICAgICAgX0xUX1RBR1ZBUihwcmVsaW5rX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KIAkJcm0gLXJmICR0cGxkaXJ+CiAJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJG9ianMgJGxpYm9ianMgJGNvbXBpbGVfZGVwbGlic34KLQkJY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGAiJworCQljb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgc29ydCB8ICROTDJTUGAiJwogCSAgICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgogCQlybSAtcmYgJHRwbGRpcn4KIAkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkb2xkb2JqcyRvbGRfZGVwbGlic34KLQkJJEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9ianMkb2xkX2RlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYH4KKwkJJEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9ianMkb2xkX2RlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgc29ydCB8ICROTDJTUGB+CiAJCSRSQU5MSUIgJG9sZGxpYicKIAkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgogCQlybSAtcmYgJHRwbGRpcn4KIAkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJGNvbnZlbmllbmNlICRwb3N0ZGVwX29iamVjdHN+Ci0JCSRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYCAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIC1vICRsaWInCisJCSRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgc29ydCB8ICROTDJTUGAgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAtbyAkbGliJwogCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgogCQlybSAtcmYgJHRwbGRpcn4KIAkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJGNvbnZlbmllbmNlICRwb3N0ZGVwX29iamVjdHN+Ci0JCSRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYCAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKwkJJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCBzb3J0IHwgJE5MMlNQYCAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKIAkgICAgICA7OwotCSAgICAqKSAjIFZlcnNpb24gNiB3aWxsIHVzZSB3ZWFrIHN5bWJvbHMKKwkgICAgKikgIyBWZXJzaW9uIDYgYW5kIGFib3ZlIHVzZSB3ZWFrIHN5bWJvbHMKIAkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgLW8gJGxpYicKIAkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKIAkgICAgICA7OwpAQCAtNTkyMyw3ICs2Mzk5LDcgQEAKIAogCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXJwYXRoICR7d2x9JGxpYmRpcicKIAkgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotCSAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKICAgICAgICAgICAgIDs7CiAJICBjeHgqKQogCSAgICAjIENvbXBhcSBDKysKQEAgLTU5NDIsOSArNjQxOCw5IEBACiAJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCiAJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKIAkgICAgIyBkZXBlbmRlbmNpZXMuCi0JICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAibGQiYDsgdGVtcGxpc3Q9YCRFQ0hPICJYJHRlbXBsaXN0IiB8ICRYc2VkIC1lICJzL1woXi4qbGQuKlwpXCggLipsZCAuKiRcKS9cMS8iYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCisJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAibGQiYDsgdGVtcGxpc3Q9YGZ1bmNfZWNob19hbGwgIiR0ZW1wbGlzdCIgfCAkU0VEICJzL1woXi4qbGQuKlwpXCggLipsZCAuKiRcKS9cMS8iYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGZ1bmNfZWNob19hbGwgIlgkbGlzdCIgfCAkWHNlZCcKIAkgICAgOzsKLQkgIHhsKikKKwkgIHhsKiB8IG1waXhsKiB8IGJneGwqKQogCSAgICAjIElCTSBYTCA4LjAgb24gUFBDLCB3aXRoIEdOVSBsZAogCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwogCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCkBAIC01OTY0LDEzICs2NDQwLDEzIEBACiAJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwogCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scycKIAkgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJwotCSAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisJICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwogCSAgICAgIF9MVF9UQUdWQVIoY29tcGlsZXJfbmVlZHNfb2JqZWN0LCAkMSk9eWVzCiAKIAkgICAgICAjIE5vdCBzdXJlIHdoZXRoZXIgc29tZXRoaW5nIGJhc2VkIG9uCiAJICAgICAgIyAkQ0MgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IC1vIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQgMj4mMQogCSAgICAgICMgd291bGQgYmUgYmV0dGVyLgotCSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJworCSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdmdW5jX2VjaG9fYWxsJwogCiAJICAgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCiAJICAgICAgIyAiQ0MgLXhhciIsIHdoZXJlICJDQyIgaXMgdGhlIFN1biBDKysgY29tcGlsZXIuICBUaGlzIGlzCkBAIC02MDM5LDcgKzY1MTUsNyBAQAogCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJwogCSAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCiAJICBmaQotCSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZWNobworCSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZnVuY19lY2hvX2FsbAogCWVsc2UKIAkgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KIAlmaQpAQCAtNjA3NCwxNSArNjU1MCwxNSBAQAogCSAgICBjYXNlICRob3N0IGluCiAJICAgICAgb3NmMyopCiAJICAgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwotCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCiAJICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwogCQk7OwogCSAgICAgICopCiAJICAgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCi0JICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCiAJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lfgogCSAgICAgICAgICBlY2hvICItaGlkZGVuIj4+ICRsaWIuZXhwfgotCSAgICAgICAgICAkQ0MgLXNoYXJlZCRhbGxvd191bmRlZmluZWRfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lICR7d2x9LWlucHV0ICR7d2x9JGxpYi5leHAgIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+CisJICAgICAgICAgICRDQyAtc2hhcmVkJGFsbG93X3VuZGVmaW5lZF9mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgJHt3bH0taW5wdXQgJHt3bH0kbGliLmV4cCAgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICItc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4KIAkgICAgICAgICAgJFJNICRsaWIuZXhwJwogCSAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1ycGF0aCAkbGliZGlyJwogCQk7OwpAQCAtNjA5OCwxNyArNjU3NCwxNyBAQAogCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQogCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CiAJICAgICMgZGVwZW5kZW5jaWVzLgotCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgImxkIiB8ICRHUkVQIC12ICJsZDoiYDsgdGVtcGxpc3Q9YCRFQ0hPICJYJHRlbXBsaXN0IiB8ICRYc2VkIC1lICJzL1woXi4qbGQuKlwpXCggLipsZC4qJFwpL1wxLyJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJsZCIgfCAkR1JFUCAtdiAibGQ6ImA7IHRlbXBsaXN0PWBmdW5jX2VjaG9fYWxsICIkdGVtcGxpc3QiIHwgJFNFRCAicy9cKF4uKmxkLipcKVwoIC4qbGQuKiRcKS9cMS8iYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGZ1bmNfZWNob19hbGwgIiRsaXN0IicKIAkgICAgOzsKIAkgICopCiAJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgogCSAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCiAJICAgICAgY2FzZSAkaG9zdCBpbgogCSAgICAgICAgb3NmMyopCi0JICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisJICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKIAkJICA7OwogCSAgICAgICAgKikKLQkgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisJICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbm9zdGRsaWIgJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKIAkJICA7OwogCSAgICAgIGVzYWMKIApAQCAtNjExOCw3ICs2NTk0LDcgQEAKIAkgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCiAJICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCiAJICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0JICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgIlwtTCInCisJICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgLXYgIl5Db25maWd1cmVkIHdpdGg6IiB8ICRHUkVQICJcLUwiJwogCiAJICAgIGVsc2UKIAkgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKQEAgLTYxNTQsNyArNjYzMCw3IEBACiAKICAgICAgIHNvbGFyaXMqKQogICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotICAgICAgICAgIENDKikKKyAgICAgICAgICBDQyogfCBzdW5DQyopCiAJICAgICMgU3VuIEMrKyA0LjIsIDUueCBhbmQgQ2VudGVybGluZSBDKysKICAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsJDEpPXllcwogCSAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtemRlZnMnCkBAIC02MTc1LDcgKzY2NTEsNyBAQAogCSAgICBlc2FjCiAJICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcwogCi0JICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJworCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZnVuY19lY2hvX2FsbCcKIAogCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKIAkgICAgIyAiQ0MgLXhhciIsIHdoZXJlICJDQyIgaXMgdGhlIFN1biBDKysgY29tcGlsZXIuICBUaGlzIGlzCkBAIC02MTk1LDE0ICs2NjcxLDE0IEBACiAJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgogCSAgICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LXogJHt3bH1kZWZzJwogCSAgICAgIGlmICRDQyAtLXZlcnNpb24gfCAkR1JFUCAtdiAnXjJcLjcnID4gL2Rldi9udWxsOyB0aGVuCi0JICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJExERkxBR1MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJworCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1ub3N0ZGxpYiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCiAJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotCQkgICRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke3dsfS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKKwkJICAkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJwogCiAJICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCiAJICAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KIAkgICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgIlwtTCInCisJICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAtdiAiXkNvbmZpZ3VyZWQgd2l0aDoiIHwgJEdSRVAgIlwtTCInCiAJICAgICAgZWxzZQogCSAgICAgICAgIyBnKysgMi43IGFwcGVhcnMgdG8gcmVxdWlyZSBgLUcnIE5PVCBgLXNoYXJlZCcgb24gdGhpcwogCSAgICAgICAgIyBwbGF0Zm9ybS4KQEAgLTYyMTMsNyArNjY4OSw3IEBACiAJICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCiAJICAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KIAkgICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtRyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwiJworCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtRyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQIC12ICJeQ29uZmlndXJlZCB3aXRoOiIgfCAkR1JFUCAiXC1MIicKIAkgICAgICBmaQogCiAJICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIgJHdsJGxpYmRpcicKQEAgLTYyNjcsNiArNjc0MywxMCBAQAogICAgICAgICAgIENDKikKIAkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKIAkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLVRwcmVsaW5rX29iamVjdHMgJG9sZG9ianN+CisJICAgICAgJyIkX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSkiCisJICAgIF9MVF9UQUdWQVIocmVsb2FkX2NtZHMsICQxKT0nJENDIC1UcHJlbGlua19vYmplY3RzICRyZWxvYWRfb2Jqc34KKwkgICAgICAnIiRfTFRfVEFHVkFSKHJlbG9hZF9jbWRzLCAkMSkiCiAJICAgIDs7CiAJICAqKQogCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCkBAIC02MzIyLDYgKzY4MDIsNyBAQAogICBmaSAjIHRlc3QgLW4gIiRjb21waWxlciIKIAogICBDQz0kbHRfc2F2ZV9DQworICBDRkxBR1M9JGx0X3NhdmVfQ0ZMQUdTCiAgIExEQ1hYPSRMRAogICBMRD0kbHRfc2F2ZV9MRAogICBHQ0M9JGx0X3NhdmVfR0NDCkBAIC02MzM2LDYgKzY4MTcsMjkgQEAKIF0pIyBfTFRfTEFOR19DWFhfQ09ORklHCiAKIAorIyBfTFRfRlVOQ19TVFJJUE5BTUVfQ05GCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgZnVuY19zdHJpcG5hbWVfY25mIHByZWZpeCBzdWZmaXggbmFtZQorIyBzdHJpcCBQUkVGSVggYW5kIFNVRkZJWCBvZmYgb2YgTkFNRS4KKyMgUFJFRklYIGFuZCBTVUZGSVggbXVzdCBub3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVjaWFsCisjIGNoYXJhY3RlcnMsIGhhc2hlcywgcGVyY2VudCBzaWducywgYnV0IFNVRkZJWCBtYXkgY29udGFpbiBhIGxlYWRpbmcKKyMgZG90IChpbiB3aGljaCBjYXNlIHRoYXQgbWF0Y2hlcyBvbmx5IGEgZG90KS4KKyMKKyMgVGhpcyBmdW5jdGlvbiBpcyBpZGVudGljYWwgdG8gdGhlIChub24tWFNJKSB2ZXJzaW9uIG9mIGZ1bmNfc3RyaXBuYW1lLAorIyBleGNlcHQgdGhpcyBvbmUgY2FuIGJlIHVzZWQgYnkgbTQgY29kZSB0aGF0IG1heSBiZSBleGVjdXRlZCBieSBjb25maWd1cmUsCisjIHJhdGhlciB0aGFuIHRoZSBsaWJ0b29sIHNjcmlwdC4KK200X2RlZnVuKFtfTFRfRlVOQ19TVFJJUE5BTUVfQ05GXSxbZG5sCitBQ19SRVFVSVJFKFtfTFRfREVDTF9TRURdKQorQUNfUkVRVUlSRShbX0xUX1BST0dfRUNIT19CQUNLU0xBU0hdKQorZnVuY19zdHJpcG5hbWVfY25mICgpCit7CisgIGNhc2UgJHsyfSBpbgorICAuKikgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAkRUNITyAiJHszfSIgfCAkU0VEICJzJV4kezF9JSU7IHMlXFxcXCR7Mn1cJCUlImA7OworICAqKSAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAkRUNITyAiJHszfSIgfCAkU0VEICJzJV4kezF9JSU7IHMlJHsyfVwkJSUiYDs7CisgIGVzYWMKK30gIyBmdW5jX3N0cmlwbmFtZV9jbmYKK10pIyBfTFRfRlVOQ19TVFJJUE5BTUVfQ05GCisKICMgX0xUX1NZU19ISURERU5fTElCREVQUyhbVEFHTkFNRV0pCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBGaWd1cmUgb3V0ICJoaWRkZW4iIGxpYnJhcnkgZGVwZW5kZW5jaWVzIGZyb20gdmVyYm9zZQpAQCAtNjM0NCw2ICs2ODQ4LDcgQEAKICMgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgogbTRfZGVmdW4oW19MVF9TWVNfSElEREVOX0xJQkRFUFNdLAogW200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAorQUNfUkVRVUlSRShbX0xUX0ZVTkNfU1RSSVBOQU1FX0NORl0pZG5sCiAjIERlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgYW5kIGFmdGVyIHRoZSBvYmplY3QgYmVpbmcgbGlua2VkOgogX0xUX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpPQogX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKT0KQEAgLTYzOTQsNiArNjg5OSwxMyBAQAogfTsKIF9MVF9FT0YKIF0pCisKK19sdF9saWJkZXBzX3NhdmVfQ0ZMQUdTPSRDRkxBR1MKK2Nhc2UgIiRDQyAkQ0ZMQUdTICIgaW4gIygKKypcIC1mbHRvKlwgKikgQ0ZMQUdTPSIkQ0ZMQUdTIC1mbm8tbHRvIiA7OworKlwgLWZ3aG9wcipcICopIENGTEFHUz0iJENGTEFHUyAtZm5vLXdob3ByIiA7OworZXNhYworCiBkbmwgUGFyc2UgdGhlIGNvbXBpbGVyIG91dHB1dCBhbmQgZXh0cmFjdCB0aGUgbmVjZXNzYXJ5CiBkbmwgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgogaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KQEAgLTY0MDUsNyArNjkxNyw3IEBACiAgIHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmU9bm8KIAogICBmb3IgcCBpbiBgZXZhbCAiJG91dHB1dF92ZXJib3NlX2xpbmtfY21kImA7IGRvCi0gICAgY2FzZSAkcCBpbgorICAgIGNhc2UgJHtwcmV2fSR7cH0gaW4KIAogICAgIC1MKiB8IC1SKiB8IC1sKikKICAgICAgICAjIFNvbWUgY29tcGlsZXJzIHBsYWNlIHNwYWNlIGJldHdlZW4gIi17TCxSfSIgYW5kIHRoZSBwYXRoLgpAQCAtNjQxNCwxMyArNjkyNiwyMiBAQAogICAgICAgICAgIHRlc3QgJHAgPSAiLVIiOyB0aGVuCiAJIHByZXY9JHAKIAkgY29udGludWUKLSAgICAgICBlbHNlCi0JIHByZXY9CiAgICAgICAgZmkKIAorICAgICAgICMgRXhwYW5kIHRoZSBzeXNyb290IHRvIGVhc2UgZXh0cmFjdGluZyB0aGUgZGlyZWN0b3JpZXMgbGF0ZXIuCisgICAgICAgaWYgdGVzdCAteiAiJHByZXYiOyB0aGVuCisgICAgICAgICBjYXNlICRwIGluCisgICAgICAgICAtTCopIGZ1bmNfc3RyaXBuYW1lX2NuZiAnLUwnICcnICIkcCI7IHByZXY9LUw7IHA9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCA7OworICAgICAgICAgLVIqKSBmdW5jX3N0cmlwbmFtZV9jbmYgJy1SJyAnJyAiJHAiOyBwcmV2PS1SOyBwPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQgOzsKKyAgICAgICAgIC1sKikgZnVuY19zdHJpcG5hbWVfY25mICctbCcgJycgIiRwIjsgcHJldj0tbDsgcD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0IDs7CisgICAgICAgICBlc2FjCisgICAgICAgZmkKKyAgICAgICBjYXNlICRwIGluCisgICAgICAgPSopIGZ1bmNfc3RyaXBuYW1lX2NuZiAnPScgJycgIiRwIjsgcD0kbHRfc3lzcm9vdCRmdW5jX3N0cmlwbmFtZV9yZXN1bHQgOzsKKyAgICAgICBlc2FjCiAgICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRoZW4KLQkgY2FzZSAkcCBpbgotCSAtTCogfCAtUiopCisJIGNhc2UgJHtwcmV2fSBpbgorCSAtTCB8IC1SKQogCSAgICMgSW50ZXJuYWwgY29tcGlsZXIgbGlicmFyeSBwYXRocyBzaG91bGQgY29tZSBhZnRlciB0aG9zZQogCSAgICMgcHJvdmlkZWQgdGhlIHVzZXIuICBUaGUgcG9zdGRlcHMgYWxyZWFkeSBjb21lIGFmdGVyIHRoZQogCSAgICMgdXNlciBzdXBwbGllZCBsaWJzIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJvY2VzcyB0aGVtLgpAQCAtNjQ0MCw4ICs2OTYxLDEwIEBACiAJICAgX0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpPSIke19MVF9UQUdWQVIocG9zdGRlcHMsICQxKX0gJHtwcmV2fSR7cH0iCiAJIGZpCiAgICAgICAgZmkKKyAgICAgICBwcmV2PQogICAgICAgIDs7CiAKKyAgICAqLmx0by4kb2JqZXh0KSA7OyAjIElnbm9yZSBHQ0MgTFRPIG9iamVjdHMKICAgICAqLiRvYmpleHQpCiAgICAgICAgIyBUaGlzIGFzc3VtZXMgdGhhdCB0aGUgdGVzdCBvYmplY3QgZmlsZSBvbmx5IHNob3dzIHVwCiAgICAgICAgIyBvbmNlIGluIHRoZSBjb21waWxlciBvdXRwdXQuCkBAIC02NDc3LDYgKzcwMDAsNyBAQAogZmkKIAogJFJNIC1mIGNvbmZlc3QuJG9iamV4dAorQ0ZMQUdTPSRfbHRfbGliZGVwc19zYXZlX0NGTEFHUwogCiAjIFBPUlRNRTogb3ZlcnJpZGUgYWJvdmUgdGVzdCBvbiBzeXN0ZW1zIHdoZXJlIGl0IGlzIGJyb2tlbgogbTRfaWYoWyQxXSwgW0NYWF0sCkBAIC02NTEzLDcgKzcwMzcsNyBAQAogCiBzb2xhcmlzKikKICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSAgQ0MqKQorICBDQyogfCBzdW5DQyopCiAgICAgIyBUaGUgbW9yZSBzdGFuZGFyZHMtY29uZm9ybWluZyBzdGxwb3J0NCBsaWJyYXJ5IGlzCiAgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCiAgICAgIyBpdCBpZiBpdCdzIGluIENYWEZMQUdTLiBJZ25vcmUgbGliQ3J1biBhcwpAQCAtNjU1NywzMiArNzA4MSwxNiBAQAogXSkjIF9MVF9TWVNfSElEREVOX0xJQkRFUFMKIAogCi0jIF9MVF9QUk9HX0Y3NwotIyAtLS0tLS0tLS0tLS0KLSMgU2luY2UgQUNfUFJPR19GNzcgaXMgYnJva2VuLCBpbiB0aGF0IGl0IHJldHVybnMgdGhlIGVtcHR5IHN0cmluZwotIyBpZiB0aGVyZSBpcyBubyBmb3J0cmFuIGNvbXBpbGVyLCB3ZSBoYXZlIG91ciBvd24gdmVyc2lvbiBoZXJlLgotbTRfZGVmdW4oW19MVF9QUk9HX0Y3N10sCi1bCi1wdXNoZGVmKFtBQ19NU0dfRVJST1JdLCBbX2x0X2Rpc2FibGVfRjc3PXllc10pCi1BQ19QUk9HX0Y3NwotaWYgdGVzdCAteiAiJEY3NyIgfHwgdGVzdCAiWCRGNzciID0gIlhubyI7IHRoZW4KLSAgX2x0X2Rpc2FibGVfRjc3PXllcwotZmkKLXBvcGRlZihbQUNfTVNHX0VSUk9SXSkKLV0pIyBfTFRfUFJPR19GNzcKLQotZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgotZG5sIEFDX0RFRlVOKFtfTFRfUFJPR19GNzddLCBbXSkKLQotCiAjIF9MVF9MQU5HX0Y3N19DT05GSUcoW1RBR10pCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgYSBGb3J0cmFuIDc3IGNvbXBpbGVyIGFyZQogIyBzdWl0YWJseSBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHCiAjIHRvIHdyaXRlIHRoZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4KIG00X2RlZnVuKFtfTFRfTEFOR19GNzdfQ09ORklHXSwKLVtBQ19SRVFVSVJFKFtfTFRfUFJPR19GNzddKWRubAotQUNfTEFOR19QVVNIKEZvcnRyYW4gNzcpCitbQUNfTEFOR19QVVNIKEZvcnRyYW4gNzcpCitpZiB0ZXN0IC16ICIkRjc3IiB8fCB0ZXN0ICJYJEY3NyIgPSAiWG5vIjsgdGhlbgorICBfbHRfZGlzYWJsZV9GNzc9eWVzCitmaQogCiBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KQEAgLTY2MDEsNiArNzEwOSw4IEBACiBfTFRfVEFHVkFSKG1vZHVsZV9leHBzeW1fY21kcywgJDEpPQogX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgogX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMKK19MVF9UQUdWQVIocmVsb2FkX2ZsYWcsICQxKT0kcmVsb2FkX2ZsYWcKK19MVF9UQUdWQVIocmVsb2FkX2NtZHMsICQxKT0kcmVsb2FkX2NtZHMKIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0KIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KIF9MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPW5vCkBAIC02NjQwLDcgKzcxNTAsOSBAQAogICAjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgogICBsdF9zYXZlX0NDPSIkQ0MiCiAgIGx0X3NhdmVfR0NDPSRHQ0MKKyAgbHRfc2F2ZV9DRkxBR1M9JENGTEFHUwogICBDQz0ke0Y3Ny0iZjc3In0KKyAgQ0ZMQUdTPSRGRkxBR1MKICAgY29tcGlsZXI9JENDCiAgIF9MVF9UQUdWQVIoY29tcGlsZXIsICQxKT0kQ0MKICAgX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQpAQCAtNjY5NCwzOCArNzIwNiwyNCBAQAogCiAgIEdDQz0kbHRfc2F2ZV9HQ0MKICAgQ0M9IiRsdF9zYXZlX0NDIgorICBDRkxBR1M9IiRsdF9zYXZlX0NGTEFHUyIKIGZpICMgdGVzdCAiJF9sdF9kaXNhYmxlX0Y3NyIgIT0geWVzCiAKIEFDX0xBTkdfUE9QCiBdKSMgX0xUX0xBTkdfRjc3X0NPTkZJRwogCiAKLSMgX0xUX1BST0dfRkMKLSMgLS0tLS0tLS0tLS0KLSMgU2luY2UgQUNfUFJPR19GQyBpcyBicm9rZW4sIGluIHRoYXQgaXQgcmV0dXJucyB0aGUgZW1wdHkgc3RyaW5nCi0jIGlmIHRoZXJlIGlzIG5vIGZvcnRyYW4gY29tcGlsZXIsIHdlIGhhdmUgb3VyIG93biB2ZXJzaW9uIGhlcmUuCi1tNF9kZWZ1bihbX0xUX1BST0dfRkNdLAotWwotcHVzaGRlZihbQUNfTVNHX0VSUk9SXSwgW19sdF9kaXNhYmxlX0ZDPXllc10pCi1BQ19QUk9HX0ZDCi1pZiB0ZXN0IC16ICIkRkMiIHx8IHRlc3QgIlgkRkMiID0gIlhubyI7IHRoZW4KLSAgX2x0X2Rpc2FibGVfRkM9eWVzCi1maQotcG9wZGVmKFtBQ19NU0dfRVJST1JdKQotXSkjIF9MVF9QUk9HX0ZDCi0KLWRubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLWRubCBBQ19ERUZVTihbX0xUX1BST0dfRkNdLCBbXSkKLQotCiAjIF9MVF9MQU5HX0ZDX0NPTkZJRyhbVEFHXSkKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIGEgRm9ydHJhbiBjb21waWxlciBhcmUKICMgc3VpdGFibHkgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRwogIyB0byB3cml0ZSB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCiBtNF9kZWZ1bihbX0xUX0xBTkdfRkNfQ09ORklHXSwKLVtBQ19SRVFVSVJFKFtfTFRfUFJPR19GQ10pZG5sCi1BQ19MQU5HX1BVU0goRm9ydHJhbikKK1tBQ19MQU5HX1BVU0goRm9ydHJhbikKKworaWYgdGVzdCAteiAiJEZDIiB8fCB0ZXN0ICJYJEZDIiA9ICJYbm8iOyB0aGVuCisgIF9sdF9kaXNhYmxlX0ZDPXllcworZmkKIAogX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCiBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9CkBAIC02NzQ0LDYgKzcyNDIsOCBAQAogX0xUX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0KIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXVua25vd24KIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCitfTFRfVEFHVkFSKHJlbG9hZF9mbGFnLCAkMSk9JHJlbG9hZF9mbGFnCitfTFRfVEFHVkFSKHJlbG9hZF9jbWRzLCAkMSk9JHJlbG9hZF9jbWRzCiBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9CiBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9CiBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1ubwpAQCAtNjc4Myw3ICs3MjgzLDkgQEAKICAgIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KICAgbHRfc2F2ZV9DQz0iJENDIgogICBsdF9zYXZlX0dDQz0kR0NDCisgIGx0X3NhdmVfQ0ZMQUdTPSRDRkxBR1MKICAgQ0M9JHtGQy0iZjk1In0KKyAgQ0ZMQUdTPSRGQ0ZMQUdTCiAgIGNvbXBpbGVyPSRDQwogICBHQ0M9JGFjX2N2X2ZjX2NvbXBpbGVyX2dudQogCkBAIC02ODM5LDcgKzczNDEsOCBAQAogICBmaSAjIHRlc3QgLW4gIiRjb21waWxlciIKIAogICBHQ0M9JGx0X3NhdmVfR0NDCi0gIENDPSIkbHRfc2F2ZV9DQyIKKyAgQ0M9JGx0X3NhdmVfQ0MKKyAgQ0ZMQUdTPSRsdF9zYXZlX0NGTEFHUwogZmkgIyB0ZXN0ICIkX2x0X2Rpc2FibGVfRkMiICE9IHllcwogCiBBQ19MQU5HX1BPUApAQCAtNjg3NiwxMCArNzM3OSwxMiBAQAogX0xUX0xJTktFUl9CT0lMRVJQTEFURQogCiAjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgotbHRfc2F2ZV9DQz0iJENDIgorbHRfc2F2ZV9DQz0kQ0MKK2x0X3NhdmVfQ0ZMQUdTPSRDRkxBR1MKIGx0X3NhdmVfR0NDPSRHQ0MKIEdDQz15ZXMKIENDPSR7R0NKLSJnY2oifQorQ0ZMQUdTPSRHQ0pGTEFHUwogY29tcGlsZXI9JENDCiBfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCiBfTFRfVEFHVkFSKExELCAkMSk9IiRMRCIKQEAgLTY4ODksNiArNzM5NCw4IEBACiBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KIAogX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMKK19MVF9UQUdWQVIocmVsb2FkX2ZsYWcsICQxKT0kcmVsb2FkX2ZsYWcKK19MVF9UQUdWQVIocmVsb2FkX2NtZHMsICQxKT0kcmVsb2FkX2NtZHMKIAogIyMgQ0FWRUFUIEVNUFRPUjoKICMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCkBAIC02OTA4LDcgKzc0MTUsOCBAQAogQUNfTEFOR19SRVNUT1JFCiAKIEdDQz0kbHRfc2F2ZV9HQ0MKLUNDPSIkbHRfc2F2ZV9DQyIKK0NDPSRsdF9zYXZlX0NDCitDRkxBR1M9JGx0X3NhdmVfQ0ZMQUdTCiBdKSMgX0xUX0xBTkdfR0NKX0NPTkZJRwogCiAKQEAgLTY5NDMsOSArNzQ1MSwxMSBAQAogCiAjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgogbHRfc2F2ZV9DQz0iJENDIgorbHRfc2F2ZV9DRkxBR1M9JENGTEFHUwogbHRfc2F2ZV9HQ0M9JEdDQwogR0NDPQogQ0M9JHtSQy0id2luZHJlcyJ9CitDRkxBR1M9CiBjb21waWxlcj0kQ0MKIF9MVF9UQUdWQVIoY29tcGlsZXIsICQxKT0kQ0MKIF9MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKQEAgLTY5NTgsNyArNzQ2OCw4IEBACiAKIEdDQz0kbHRfc2F2ZV9HQ0MKIEFDX0xBTkdfUkVTVE9SRQotQ0M9IiRsdF9zYXZlX0NDIgorQ0M9JGx0X3NhdmVfQ0MKK0NGTEFHUz0kbHRfc2F2ZV9DRkxBR1MKIF0pIyBfTFRfTEFOR19SQ19DT05GSUcKIAogCkBAIC03MDE3LDYgKzc1MjgsMTUgQEAKIEFDX1NVQlNUKFtPQkpEVU1QXSkKIF0pCiAKKyMgX0xUX0RFQ0xfRExMVE9PTAorIyAtLS0tLS0tLS0tLS0tLS0tCisjIEVuc3VyZSBETExUT09MIHZhcmlhYmxlIGlzIHNldC4KK200X2RlZnVuKFtfTFRfREVDTF9ETExUT09MXSwKK1tBQ19DSEVDS19UT09MKERMTFRPT0wsIGRsbHRvb2wsIGZhbHNlKQordGVzdCAteiAiJERMTFRPT0wiICYmIERMTFRPT0w9ZGxsdG9vbAorX0xUX0RFQ0woW10sIFtETExUT09MXSwgWzFdLCBbRExMIGNyZWF0aW9uIHByb2dyYW1dKQorQUNfU1VCU1QoW0RMTFRPT0xdKQorXSkKIAogIyBfTFRfREVDTF9TRUQKICMgLS0tLS0tLS0tLS0tCkBAIC03MTEwLDggKzc2MzAsOCBAQAogIyBUcnkgc29tZSBYU0kgZmVhdHVyZXMKIHhzaV9zaGVsbD1ubwogKCBfbHRfZHVtbXk9ImEvYi9jIgotICB0ZXN0ICIke19sdF9kdW1teSMjKi99LCR7X2x0X2R1bW15JS8qfSwiJHtfbHRfZHVtbXklIiRfbHRfZHVtbXkifSwgXAotICAgICAgPSBjLGEvYiwsIFwKKyAgdGVzdCAiJHtfbHRfZHVtbXkjIyovfSwke19sdF9kdW1teSUvKn0sJHtfbHRfZHVtbXkjPz99IiR7X2x0X2R1bW15JSIkX2x0X2R1bW15In0sIFwKKyAgICAgID0gYyxhL2IsYi9jLCBcCiAgICAgJiYgZXZhbCAndGVzdCAkKCggMSArIDEgKSkgLWVxIDIgXAogICAgICYmIHRlc3QgIiR7I19sdF9kdW1teX0iIC1lcSA1JyApID4vZGV2L251bGwgMj4mMSBcCiAgICYmIHhzaV9zaGVsbD15ZXMKQEAgLTcxNTAsMjA4ICs3NjcwLDE2MiBAQAogXSkjIF9MVF9DSEVDS19TSEVMTF9GRUFUVVJFUwogCiAKLSMgX0xUX1BST0dfWFNJX1NIRUxMRk5TCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBCb3VybmUgYW5kIFhTSSBjb21wYXRpYmxlIHZhcmlhbnRzIG9mIHNvbWUgdXNlZnVsIHNoZWxsIGZ1bmN0aW9ucy4KLW00X2RlZnVuKFtfTFRfUFJPR19YU0lfU0hFTExGTlNdLAotW2Nhc2UgJHhzaV9zaGVsbCBpbgotICB5ZXMpCi0gICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLQotIyBmdW5jX2Rpcm5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50Ci0jIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsCi0jIG90aGVyd2lzZSBzZXQgcmVzdWx0IHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KLWZ1bmNfZGlybmFtZSAoKQotewotICBjYXNlICR7MX0gaW4KLSAgICAqLyopIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7MSUvKn0kezJ9IiA7OwotICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKLSAgZXNhYwotfQotCi0jIGZ1bmNfYmFzZW5hbWUgZmlsZQotZnVuY19iYXNlbmFtZSAoKQotewotICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD0iJHsxIyMqL30iCi19Ci0KLSMgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKLSMgcGVyZm9ybSBmdW5jX2Jhc2VuYW1lIGFuZCBmdW5jX2Rpcm5hbWUgaW4gYSBzaW5nbGUgZnVuY3Rpb24KLSMgY2FsbDoKLSMgICBkaXJuYW1lOiAgQ29tcHV0ZSB0aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYgbm9uZW1wdHksCi0jICAgICAgICAgICAgIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwgb3RoZXJ3aXNlIHNldCByZXN1bHQKLSMgICAgICAgICAgICAgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgotIyAgICAgICAgICAgICB2YWx1ZSByZXR1cm5lZCBpbiAiJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0jICAgYmFzZW5hbWU6IENvbXB1dGUgZmlsZW5hbWUgb2YgRklMRS4KLSMgICAgICAgICAgICAgdmFsdWUgcmV0dW5lZCBpbiAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotIyBJbXBsZW1lbnRhdGlvbiBtdXN0IGJlIGtlcHQgc3luY2hyb25pemVkIHdpdGggZnVuY19kaXJuYW1lCi0jIGFuZCBmdW5jX2Jhc2VuYW1lLiBGb3IgZWZmaWNpZW5jeSwgd2UgZG8gbm90IGRlbGVnYXRlIHRvCi0jIHRob3NlIGZ1bmN0aW9ucyBidXQgaW5zdGVhZCBkdXBsaWNhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgaGVyZS4KLWZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgKCkKLXsKLSAgY2FzZSAkezF9IGluCi0gICAgKi8qKSBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezElLyp9JHsyfSIgOzsKLSAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iIDs7Ci0gIGVzYWMKLSAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9IiR7MSMjKi99IgotfQotCi0jIGZ1bmNfc3RyaXBuYW1lIHByZWZpeCBzdWZmaXggbmFtZQotIyBzdHJpcCBQUkVGSVggYW5kIFNVRkZJWCBvZmYgb2YgTkFNRS4KLSMgUFJFRklYIGFuZCBTVUZGSVggbXVzdCBub3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVjaWFsCi0jIGNoYXJhY3RlcnMsIGhhc2hlcywgcGVyY2VudCBzaWducywgYnV0IFNVRkZJWCBtYXkgY29udGFpbiBhIGxlYWRpbmcKLSMgZG90IChpbiB3aGljaCBjYXNlIHRoYXQgbWF0Y2hlcyBvbmx5IGEgZG90KS4KLWZ1bmNfc3RyaXBuYW1lICgpCi17Ci0gICMgcGRrc2ggNS4yLjE0IGRvZXMgbm90IGRvICR7WCUkWX0gY29ycmVjdGx5IGlmIGJvdGggWCBhbmQgWSBhcmUKLSAgIyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMsIHNvIGFzc2lnbiBvbmUgdG8gb3JkaW5hcnkgcGFyYW1ldGVyIGZpcnN0LgotICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHszfQotICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQjIiR7MX0ifQotICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQlIiR7Mn0ifQotfQotCi0jIGZ1bmNfb3B0X3NwbGl0Ci1mdW5jX29wdF9zcGxpdCAoKQotewotICBmdW5jX29wdF9zcGxpdF9vcHQ9JHsxJSU9Kn0KLSAgZnVuY19vcHRfc3BsaXRfYXJnPSR7MSMqPX0KLX0KLQotIyBmdW5jX2xvMm8gb2JqZWN0Ci1mdW5jX2xvMm8gKCkKLXsKLSAgY2FzZSAkezF9IGluCi0gICAgKi5sbykgZnVuY19sbzJvX3Jlc3VsdD0kezElLmxvfS4ke29iamV4dH0gOzsKLSAgICAqKSAgICBmdW5jX2xvMm9fcmVzdWx0PSR7MX0gOzsKLSAgZXNhYwotfQotCi0jIGZ1bmNfeGZvcm0gbGlib2JqLW9yLXNvdXJjZQotZnVuY194Zm9ybSAoKQotewotICBmdW5jX3hmb3JtX3Jlc3VsdD0kezElLip9LmxvCi19Ci0KLSMgZnVuY19hcml0aCBhcml0aG1ldGljLXRlcm0uLi4KLWZ1bmNfYXJpdGggKCkKLXsKLSAgZnVuY19hcml0aF9yZXN1bHQ9JCgoICRbKl0gKSkKLX0KLQotIyBmdW5jX2xlbiBzdHJpbmcKLSMgU1RSSU5HIG1heSBub3Qgc3RhcnQgd2l0aCBhIGh5cGhlbi4KLWZ1bmNfbGVuICgpCi17Ci0gIGZ1bmNfbGVuX3Jlc3VsdD0keyMxfQotfQotCi1fTFRfRU9GCi0gICAgOzsKLSAgKikgIyBCb3VybmUgY29tcGF0aWJsZSBmdW5jdGlvbnMuCi0gICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLQotIyBmdW5jX2Rpcm5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50Ci0jIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsCi0jIG90aGVyd2lzZSBzZXQgcmVzdWx0IHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KLWZ1bmNfZGlybmFtZSAoKQotewotICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgotICBmdW5jX2Rpcm5hbWVfcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRkaXJuYW1lImAKLSAgaWYgdGVzdCAiWCRmdW5jX2Rpcm5hbWVfcmVzdWx0IiA9ICJYJHsxfSI7IHRoZW4KLSAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezN9IgotICBlbHNlCi0gICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJGZ1bmNfZGlybmFtZV9yZXN1bHQkezJ9IgotICBmaQotfQotCi0jIGZ1bmNfYmFzZW5hbWUgZmlsZQotZnVuY19iYXNlbmFtZSAoKQotewotICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkYmFzZW5hbWUiYAotfQotCi1kbmwgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZQotZG5sIEEgcG9ydGFibGUgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIGlzIGFscmVhZHkgZGVmaW5lZCBpbiBnZW5lcmFsLm00c2gKLWRubCBzbyB0aGVyZSBpcyBubyBuZWVkIGZvciBpdCBoZXJlLgotCi0jIGZ1bmNfc3RyaXBuYW1lIHByZWZpeCBzdWZmaXggbmFtZQotIyBzdHJpcCBQUkVGSVggYW5kIFNVRkZJWCBvZmYgb2YgTkFNRS4KLSMgUFJFRklYIGFuZCBTVUZGSVggbXVzdCBub3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVjaWFsCi0jIGNoYXJhY3RlcnMsIGhhc2hlcywgcGVyY2VudCBzaWducywgYnV0IFNVRkZJWCBtYXkgY29udGFpbiBhIGxlYWRpbmcKLSMgZG90IChpbiB3aGljaCBjYXNlIHRoYXQgbWF0Y2hlcyBvbmx5IGEgZG90KS4KLSMgZnVuY19zdHJpcF9zdWZmaXggcHJlZml4IG5hbWUKLWZ1bmNfc3RyaXBuYW1lICgpCi17Ci0gIGNhc2UgJHsyfSBpbgotICAgIC4qKSBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHszfSIgXAotICAgICAgICAgICB8ICRYc2VkIC1lICJzJV4kezF9JSUiIC1lICJzJVxcXFwkezJ9XCQlJSJgOzsKLSAgICAqKSAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAkRUNITyAiWCR7M30iIFwKLSAgICAgICAgICAgfCAkWHNlZCAtZSAicyVeJHsxfSUlIiAtZSAicyUkezJ9XCQlJSJgOzsKLSAgZXNhYwotfQotCi0jIHNlZCBzY3JpcHRzOgotbXlfc2VkX2xvbmdfb3B0PScxcy9eXCgtW1tePV1dKlwpPS4qL1wxLztxJwotbXlfc2VkX2xvbmdfYXJnPScxcy9eLVtbXj1dXSo9Ly8nCi0KLSMgZnVuY19vcHRfc3BsaXQKLWZ1bmNfb3B0X3NwbGl0ICgpCi17Ci0gIGZ1bmNfb3B0X3NwbGl0X29wdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkbXlfc2VkX2xvbmdfb3B0ImAKLSAgZnVuY19vcHRfc3BsaXRfYXJnPWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRteV9zZWRfbG9uZ19hcmciYAotfQotCi0jIGZ1bmNfbG8ybyBvYmplY3QKLWZ1bmNfbG8ybyAoKQotewotICBmdW5jX2xvMm9fcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRsbzJvImAKLX0KLQotIyBmdW5jX3hmb3JtIGxpYm9iai1vci1zb3VyY2UKLWZ1bmNfeGZvcm0gKCkKLXsKLSAgZnVuY194Zm9ybV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAncy9cLltbXi5dXSokLy5sby8nYAotfQotCi0jIGZ1bmNfYXJpdGggYXJpdGhtZXRpYy10ZXJtLi4uCi1mdW5jX2FyaXRoICgpCi17Ci0gIGZ1bmNfYXJpdGhfcmVzdWx0PWBleHByICIkW0BdImAKLX0KLQotIyBmdW5jX2xlbiBzdHJpbmcKLSMgU1RSSU5HIG1heSBub3Qgc3RhcnQgd2l0aCBhIGh5cGhlbi4KLWZ1bmNfbGVuICgpCi17Ci0gIGZ1bmNfbGVuX3Jlc3VsdD1gZXhwciAiJFsxXSIgOiAiLioiIDI+L2Rldi9udWxsIHx8IGVjaG8gJG1heF9jbWRfbGVuYAotfQotCi1fTFRfRU9GCi1lc2FjCi0KLWNhc2UgJGx0X3NoZWxsX2FwcGVuZCBpbgotICB5ZXMpCi0gICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLQotIyBmdW5jX2FwcGVuZCB2YXIgdmFsdWUKLSMgQXBwZW5kIFZBTFVFIHRvIHRoZSBlbmQgb2Ygc2hlbGwgdmFyaWFibGUgVkFSLgotZnVuY19hcHBlbmQgKCkKLXsKLSAgZXZhbCAiJFsxXSs9XCRbMl0iCi19Ci1fTFRfRU9GCi0gICAgOzsKLSAgKikKLSAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgotCi0jIGZ1bmNfYXBwZW5kIHZhciB2YWx1ZQotIyBBcHBlbmQgVkFMVUUgdG8gdGhlIGVuZCBvZiBzaGVsbCB2YXJpYWJsZSBWQVIuCi1mdW5jX2FwcGVuZCAoKQotewotICBldmFsICIkWzFdPVwkJFsxXVwkWzJdIgotfQotCi1fTFRfRU9GCi0gICAgOzsKLSAgZXNhYworIyBfTFRfUFJPR19GVU5DVElPTl9SRVBMQUNFIChGVU5DTkFNRSwgUkVQTEFDRU1FTlQtQk9EWSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEluIGAkY2ZnZmlsZScsIGxvb2sgZm9yIGZ1bmN0aW9uIEZVTkNOQU1FIGRlbGltaXRlZCBieSBgXkZVTkNOQU1FICgpJCcgYW5kCisjICdefSBGVU5DTkFNRSAnLCBhbmQgcmVwbGFjZSBpdHMgYm9keSB3aXRoIFJFUExBQ0VNRU5ULUJPRFkuCittNF9kZWZ1bihbX0xUX1BST0dfRlVOQ1RJT05fUkVQTEFDRV0sCitbZG5sIHsKK3NlZCAtZSAnL14kMSAoKSQvLC9efSAjICQxIC9jXAorJDEgKClcCit7XAorbTRfYnBhdHN1YnN0cyhbJDJdLCBbJF0sIFtcXF0sIFteXChbCSBdXCldLCBbXFxcMV0pCit9ICMgRXh0ZW5kZWQtc2hlbGwgJDEgaW1wbGVtZW50YXRpb24nICIkY2ZnZmlsZSIgPiAkY2ZnZmlsZS50bXAgXAorICAmJiBtdiAtZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBjcCAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50bXAiKQordGVzdCAwIC1lcSAkPyB8fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9mYWlsPToKIF0pCisKKworIyBfTFRfUFJPR19SRVBMQUNFX1NIRUxMRk5TCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgUmVwbGFjZSBleGlzdGluZyBwb3J0YWJsZSBpbXBsZW1lbnRhdGlvbnMgb2Ygc2V2ZXJhbCBzaGVsbCBmdW5jdGlvbnMgd2l0aAorIyBlcXVpdmFsZW50IGV4dGVuZGVkIHNoZWxsIGltcGxlbWVudGF0aW9ucyB3aGVyZSB0aG9zZSBmZWF0dXJlcyBhcmUgYXZhaWxhYmxlLi4KK200X2RlZnVuKFtfTFRfUFJPR19SRVBMQUNFX1NIRUxMRk5TXSwKK1tpZiB0ZXN0IHgiJHhzaV9zaGVsbCIgPSB4eWVzOyB0aGVuCisgIF9MVF9QUk9HX0ZVTkNUSU9OX1JFUExBQ0UoW2Z1bmNfZGlybmFtZV0sIFtkbmwKKyAgICBjYXNlICR7MX0gaW4KKyAgICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7CisgICAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iIDs7CisgICAgZXNhY10pCisKKyAgX0xUX1BST0dfRlVOQ1RJT05fUkVQTEFDRShbZnVuY19iYXNlbmFtZV0sIFtkbmwKKyAgICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD0iJHsxIyMqL30iXSkKKworICBfTFRfUFJPR19GVU5DVElPTl9SRVBMQUNFKFtmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lXSwgW2RubAorICAgIGNhc2UgJHsxfSBpbgorICAgICAgKi8qKSBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezElLyp9JHsyfSIgOzsKKyAgICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKKyAgICBlc2FjCisgICAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9IiR7MSMjKi99Il0pCisKKyAgX0xUX1BST0dfRlVOQ1RJT05fUkVQTEFDRShbZnVuY19zdHJpcG5hbWVdLCBbZG5sCisgICAgIyBwZGtzaCA1LjIuMTQgZG9lcyBub3QgZG8gJHtYJSRZfSBjb3JyZWN0bHkgaWYgYm90aCBYIGFuZCBZIGFyZQorICAgICMgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLCBzbyBhc3NpZ24gb25lIHRvIG9yZGluYXJ5IHBhcmFtZXRlciBmaXJzdC4KKyAgICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHszfQorICAgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0ke2Z1bmNfc3RyaXBuYW1lX3Jlc3VsdCMiJHsxfSJ9CisgICAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0JSIkezJ9In1dKQorCisgIF9MVF9QUk9HX0ZVTkNUSU9OX1JFUExBQ0UoW2Z1bmNfc3BsaXRfbG9uZ19vcHRdLCBbZG5sCisgICAgZnVuY19zcGxpdF9sb25nX29wdF9uYW1lPSR7MSUlPSp9CisgICAgZnVuY19zcGxpdF9sb25nX29wdF9hcmc9JHsxIyo9fV0pCisKKyAgX0xUX1BST0dfRlVOQ1RJT05fUkVQTEFDRShbZnVuY19zcGxpdF9zaG9ydF9vcHRdLCBbZG5sCisgICAgZnVuY19zcGxpdF9zaG9ydF9vcHRfYXJnPSR7MSM/P30KKyAgICBmdW5jX3NwbGl0X3Nob3J0X29wdF9uYW1lPSR7MSUiJGZ1bmNfc3BsaXRfc2hvcnRfb3B0X2FyZyJ9XSkKKworICBfTFRfUFJPR19GVU5DVElPTl9SRVBMQUNFKFtmdW5jX2xvMm9dLCBbZG5sCisgICAgY2FzZSAkezF9IGluCisgICAgICAqLmxvKSBmdW5jX2xvMm9fcmVzdWx0PSR7MSUubG99LiR7b2JqZXh0fSA7OworICAgICAgKikgICAgZnVuY19sbzJvX3Jlc3VsdD0kezF9IDs7CisgICAgZXNhY10pCisKKyAgX0xUX1BST0dfRlVOQ1RJT05fUkVQTEFDRShbZnVuY194Zm9ybV0sIFsgICAgZnVuY194Zm9ybV9yZXN1bHQ9JHsxJS4qfS5sb10pCisKKyAgX0xUX1BST0dfRlVOQ1RJT05fUkVQTEFDRShbZnVuY19hcml0aF0sIFsgICAgZnVuY19hcml0aF9yZXN1bHQ9JCgoICRbKl0gKSldKQorCisgIF9MVF9QUk9HX0ZVTkNUSU9OX1JFUExBQ0UoW2Z1bmNfbGVuXSwgWyAgICBmdW5jX2xlbl9yZXN1bHQ9JHsjMX1dKQorZmkKKworaWYgdGVzdCB4IiRsdF9zaGVsbF9hcHBlbmQiID0geHllczsgdGhlbgorICBfTFRfUFJPR19GVU5DVElPTl9SRVBMQUNFKFtmdW5jX2FwcGVuZF0sIFsgICAgZXZhbCAiJHsxfSs9XFwkezJ9Il0pCisKKyAgX0xUX1BST0dfRlVOQ1RJT05fUkVQTEFDRShbZnVuY19hcHBlbmRfcXVvdGVkXSwgW2RubAorICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiR7Mn0iCitkbmwgbTQgZXhwYW5zaW9uIHR1cm5zIFxcXFwgaW50byBcXCwgYW5kIHRoZW4gdGhlIHNoZWxsIGV2YWwgdHVybnMgdGhhdCBpbnRvIFwKKyAgICBldmFsICIkezF9Kz1cXFxcIFxcJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0Il0pCisKKyAgIyBTYXZlIGEgYGZ1bmNfYXBwZW5kJyBmdW5jdGlvbiBjYWxsIHdoZXJlIHBvc3NpYmxlIGJ5IGRpcmVjdCB1c2Ugb2YgJys9JworICBzZWQgLWUgJ3MlZnVuY19hcHBlbmQgXChbW2EtekEtWl9dXVx7MSxcfVwpICIlXDErPSIlZycgJGNmZ2ZpbGUgPiAkY2ZnZmlsZS50bXAgXAorICAgICYmIG12IC1mICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgXAorICAgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUudG1wIikKKyAgdGVzdCAwIC1lcSAkPyB8fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9mYWlsPToKK2Vsc2UKKyAgIyBTYXZlIGEgYGZ1bmNfYXBwZW5kJyBmdW5jdGlvbiBjYWxsIGV2ZW4gd2hlbiAnKz0nIGlzIG5vdCBhdmFpbGFibGUKKyAgc2VkIC1lICdzJWZ1bmNfYXBwZW5kIFwoW1thLXpBLVpfXV1cezEsXH1cKSAiJVwxPSIkXDElZycgJGNmZ2ZpbGUgPiAkY2ZnZmlsZS50bXAgXAorICAgICYmIG12IC1mICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgXAorICAgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUudG1wIikKKyAgdGVzdCAwIC1lcSAkPyB8fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9mYWlsPToKK2ZpCisKK2lmIHRlc3QgeCIkX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFpbCIgPSB4IjoiOyB0aGVuCisgIEFDX01TR19XQVJOKFtVbmFibGUgdG8gc3Vic3RpdHV0ZSBleHRlbmRlZCBzaGVsbCBmdW5jdGlvbnMgaW4gJG9maWxlXSkKK2ZpCitdKQorCisjIF9MVF9QQVRIX0NPTlZFUlNJT05fRlVOQ1RJT05TCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIERldGVybWluZSB3aGljaCBmaWxlIG5hbWUgY29udmVyc2lvbiBmdW5jdGlvbnMgc2hvdWxkIGJlIHVzZWQgYnkKKyMgZnVuY190b19ob3N0X2ZpbGUgKGFuZCwgaW1wbGljaXRseSwgYnkgZnVuY190b19ob3N0X3BhdGgpLiAgVGhlc2UgYXJlIG5lZWRlZAorIyBmb3IgY2VydGFpbiBjcm9zcy1jb21waWxlIGNvbmZpZ3VyYXRpb25zIGFuZCBuYXRpdmUgbWluZ3cuCittNF9kZWZ1bihbX0xUX1BBVEhfQ09OVkVSU0lPTl9GVU5DVElPTlNdLAorW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKK0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9CVUlMRF0pZG5sCitBQ19NU0dfQ0hFQ0tJTkcoW2hvdyB0byBjb252ZXJ0ICRidWlsZCBmaWxlIG5hbWVzIHRvICRob3N0IGZvcm1hdF0pCitBQ19DQUNIRV9WQUwobHRfY3ZfdG9faG9zdF9maWxlX2NtZCwKK1tjYXNlICRob3N0IGluCisgICotKi1taW5ndyogKQorICAgIGNhc2UgJGJ1aWxkIGluCisgICAgICAqLSotbWluZ3cqICkgIyBhY3R1YWxseSBtc3lzCisgICAgICAgIGx0X2N2X3RvX2hvc3RfZmlsZV9jbWQ9ZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIKKyAgICAgICAgOzsKKyAgICAgICotKi1jeWd3aW4qICkKKyAgICAgICAgbHRfY3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9jeWd3aW5fdG9fdzMyCisgICAgICAgIDs7CisgICAgICAqICkgIyBvdGhlcndpc2UsIGFzc3VtZSAqbml4CisgICAgICAgIGx0X2N2X3RvX2hvc3RfZmlsZV9jbWQ9ZnVuY19jb252ZXJ0X2ZpbGVfbml4X3RvX3czMgorICAgICAgICA7OworICAgIGVzYWMKKyAgICA7OworICAqLSotY3lnd2luKiApCisgICAgY2FzZSAkYnVpbGQgaW4KKyAgICAgICotKi1taW5ndyogKSAjIGFjdHVhbGx5IG1zeXMKKyAgICAgICAgbHRfY3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX2N5Z3dpbgorICAgICAgICA7OworICAgICAgKi0qLWN5Z3dpbiogKQorICAgICAgICBsdF9jdl90b19ob3N0X2ZpbGVfY21kPWZ1bmNfY29udmVydF9maWxlX25vb3AKKyAgICAgICAgOzsKKyAgICAgICogKSAjIG90aGVyd2lzZSwgYXNzdW1lICpuaXgKKyAgICAgICAgbHRfY3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9uaXhfdG9fY3lnd2luCisgICAgICAgIDs7CisgICAgZXNhYworICAgIDs7CisgICogKSAjIHVuaGFuZGxlZCBob3N0cyAoYW5kICJub3JtYWwiIG5hdGl2ZSBidWlsZHMpCisgICAgbHRfY3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9ub29wCisgICAgOzsKK2VzYWMKK10pCit0b19ob3N0X2ZpbGVfY21kPSRsdF9jdl90b19ob3N0X2ZpbGVfY21kCitBQ19NU0dfUkVTVUxUKFskbHRfY3ZfdG9faG9zdF9maWxlX2NtZF0pCitfTFRfREVDTChbdG9faG9zdF9maWxlX2NtZF0sIFtsdF9jdl90b19ob3N0X2ZpbGVfY21kXSwKKyAgICAgICAgIFswXSwgW2NvbnZlcnQgJGJ1aWxkIGZpbGUgbmFtZXMgdG8gJGhvc3QgZm9ybWF0XSlkbmwKKworQUNfTVNHX0NIRUNLSU5HKFtob3cgdG8gY29udmVydCAkYnVpbGQgZmlsZSBuYW1lcyB0byB0b29sY2hhaW4gZm9ybWF0XSkKK0FDX0NBQ0hFX1ZBTChsdF9jdl90b190b29sX2ZpbGVfY21kLAorWyNhc3N1bWUgb3JkaW5hcnkgY3Jvc3MgdG9vbHMsIG9yIG5hdGl2ZSBidWlsZC4KK2x0X2N2X3RvX3Rvb2xfZmlsZV9jbWQ9ZnVuY19jb252ZXJ0X2ZpbGVfbm9vcAorY2FzZSAkaG9zdCBpbgorICAqLSotbWluZ3cqICkKKyAgICBjYXNlICRidWlsZCBpbgorICAgICAgKi0qLW1pbmd3KiApICMgYWN0dWFsbHkgbXN5cworICAgICAgICBsdF9jdl90b190b29sX2ZpbGVfY21kPWZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCisgICAgICAgIDs7CisgICAgZXNhYworICAgIDs7Citlc2FjCitdKQordG9fdG9vbF9maWxlX2NtZD0kbHRfY3ZfdG9fdG9vbF9maWxlX2NtZAorQUNfTVNHX1JFU1VMVChbJGx0X2N2X3RvX3Rvb2xfZmlsZV9jbWRdKQorX0xUX0RFQ0woW3RvX3Rvb2xfZmlsZV9jbWRdLCBbbHRfY3ZfdG9fdG9vbF9maWxlX2NtZF0sCisgICAgICAgICBbMF0sIFtjb252ZXJ0ICRidWlsZCBmaWxlcyB0byB0b29sY2hhaW4gZm9ybWF0XSlkbmwKK10pIyBfTFRfUEFUSF9DT05WRVJTSU9OX0ZVTkNUSU9OUwpkaWZmIC0tZ2l0IGEvbTQvbHRvcHRpb25zLm00IGIvbTQvbHRvcHRpb25zLm00CmluZGV4IDM0MTUxYTMuLjE3Y2ZkNTEgMTAwNjQ0Ci0tLSBhL200L2x0b3B0aW9ucy5tNAorKysgYi9tNC9sdG9wdGlvbnMubTQKQEAgLTEsMTMgKzEsMTQgQEAKICMgSGVscGVyIGZ1bmN0aW9ucyBmb3Igb3B0aW9uIGhhbmRsaW5nLiAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQogIwotIyAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDcsIDIwMDgsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorIyAgIEluYy4KICMgICBXcml0dGVuIGJ5IEdhcnkgVi4gVmF1Z2hhbiwgMjAwNAogIwogIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcwogIyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCiAKLSMgc2VyaWFsIDYgbHRvcHRpb25zLm00CisjIHNlcmlhbCA3IGx0b3B0aW9ucy5tNAogCiAjIFRoaXMgaXMgdG8gaGVscCBhY2xvY2FsIGZpbmQgdGhlc2UgbWFjcm9zLCBhcyBpdCBjYW4ndCBzZWUgbTRfZGVmaW5lLgogQUNfREVGVU4oW0xUT1BUSU9OU19WRVJTSU9OXSwgW200X2lmKFsxXSldKQpAQCAtMTI1LDcgKzEyNiw3IEBACiBbZW5hYmxlX3dpbjMyX2RsbD15ZXMKIAogY2FzZSAkaG9zdCBpbgotKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi1jZWdjYyopCisqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotY2VnY2MqKQogICBBQ19DSEVDS19UT09MKEFTLCBhcywgZmFsc2UpCiAgIEFDX0NIRUNLX1RPT0woRExMVE9PTCwgZGxsdG9vbCwgZmFsc2UpCiAgIEFDX0NIRUNLX1RPT0woT0JKRFVNUCwgb2JqZHVtcCwgZmFsc2UpCkBAIC0xMzMsMTMgKzEzNCwxMyBAQAogZXNhYwogCiB0ZXN0IC16ICIkQVMiICYmIEFTPWFzCi1fTFRfREVDTChbXSwgW0FTXSwgICAgICBbMF0sIFtBc3NlbWJsZXIgcHJvZ3JhbV0pZG5sCitfTFRfREVDTChbXSwgW0FTXSwgICAgICBbMV0sIFtBc3NlbWJsZXIgcHJvZ3JhbV0pZG5sCiAKIHRlc3QgLXogIiRETExUT09MIiAmJiBETExUT09MPWRsbHRvb2wKLV9MVF9ERUNMKFtdLCBbRExMVE9PTF0sIFswXSwgW0RMTCBjcmVhdGlvbiBwcm9ncmFtXSlkbmwKK19MVF9ERUNMKFtdLCBbRExMVE9PTF0sIFsxXSwgW0RMTCBjcmVhdGlvbiBwcm9ncmFtXSlkbmwKIAogdGVzdCAteiAiJE9CSkRVTVAiICYmIE9CSkRVTVA9b2JqZHVtcAotX0xUX0RFQ0woW10sIFtPQkpEVU1QXSwgWzBdLCBbT2JqZWN0IGR1bXBlciBwcm9ncmFtXSlkbmwKK19MVF9ERUNMKFtdLCBbT0JKRFVNUF0sIFsxXSwgW09iamVjdCBkdW1wZXIgcHJvZ3JhbV0pZG5sCiBdKSMgd2luMzItZGxsCiAKIEFVX0RFRlVOKFtBQ19MSUJUT09MX1dJTjMyX0RMTF0sCmRpZmYgLS1naXQgYS9tNC9sdHZlcnNpb24ubTQgYi9tNC9sdHZlcnNpb24ubTQKaW5kZXggYjhlMTU0Zi4uOWM3YjVkNCAxMDA2NDQKLS0tIGEvbTQvbHR2ZXJzaW9uLm00CisrKyBiL200L2x0dmVyc2lvbi5tNApAQCAtNywxNyArNywxNyBAQAogIyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCiAKLSMgR2VuZXJhdGVkIGZyb20gbHR2ZXJzaW9uLmluLgorIyBAY29uZmlndXJlX2lucHV0QAogCi0jIHNlcmlhbCAzMDEyIGx0dmVyc2lvbi5tNAorIyBzZXJpYWwgMzI5MyBsdHZlcnNpb24ubTQKICMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIExpYnRvb2wKIAotbTRfZGVmaW5lKFtMVF9QQUNLQUdFX1ZFUlNJT05dLCBbMi4yLjZdKQotbTRfZGVmaW5lKFtMVF9QQUNLQUdFX1JFVklTSU9OXSwgWzEuMzAxMl0pCittNF9kZWZpbmUoW0xUX1BBQ0tBR0VfVkVSU0lPTl0sIFsyLjRdKQorbTRfZGVmaW5lKFtMVF9QQUNLQUdFX1JFVklTSU9OXSwgWzEuMzI5M10pCiAKIEFDX0RFRlVOKFtMVFZFUlNJT05fVkVSU0lPTl0sCi1bbWFjcm9fdmVyc2lvbj0nMi4yLjYnCi1tYWNyb19yZXZpc2lvbj0nMS4zMDEyJworW21hY3JvX3ZlcnNpb249JzIuNCcKK21hY3JvX3JldmlzaW9uPScxLjMyOTMnCiBfTFRfREVDTCgsIG1hY3JvX3ZlcnNpb24sIDAsIFtXaGljaCByZWxlYXNlIG9mIGxpYnRvb2wubTQgd2FzIHVzZWQ/XSkKIF9MVF9ERUNMKCwgbWFjcm9fcmV2aXNpb24sIDApCiBdKQpkaWZmIC0tZ2l0IGEvbTQvbHR+b2Jzb2xldGUubTQgYi9tNC9sdH5vYnNvbGV0ZS5tNAppbmRleCA2MzdiYjIwLi5jNTczZGE5IDEwMDY0NAotLS0gYS9tNC9sdH5vYnNvbGV0ZS5tNAorKysgYi9tNC9sdH5vYnNvbGV0ZS5tNApAQCAtMSwxMyArMSwxMyBAQAogIyBsdH5vYnNvbGV0ZS5tNCAtLSBhY2xvY2FsIHNhdGlzZnlpbmcgb2Jzb2xldGUgZGVmaW5pdGlvbnMuICAgIC0qLUF1dG9jb25mLSotCiAjCi0jICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNywgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICMgICBXcml0dGVuIGJ5IFNjb3R0IEphbWVzIFJlbW5hbnQsIDIwMDQuCiAjCiAjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCiAjIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KIAotIyBzZXJpYWwgNCBsdH5vYnNvbGV0ZS5tNAorIyBzZXJpYWwgNSBsdH5vYnNvbGV0ZS5tNAogCiAjIFRoZXNlIGV4aXN0IGVudGlyZWx5IHRvIGZvb2wgYWNsb2NhbCB3aGVuIGJvb3RzdHJhcHBpbmcgbGlidG9vbC4KICMKQEAgLTc3LDcgKzc3LDYgQEAKIG00X2lmbmRlZihbX0xUX0FDX0xBTkdfQ1hYXSwJCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfQ1hYXSldKQogbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19GNzddLAkJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19GNzddKV0pCiBtNF9pZm5kZWYoW19MVF9BQ19MQU5HX0dDSl0sCQlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0dDSl0pXSkKLW00X2lmbmRlZihbQUNfTElCVE9PTF9SQ10sCQlbQUNfREVGVU4oW0FDX0xJQlRPT0xfUkNdKV0pCiBtNF9pZm5kZWYoW0FDX0xJQlRPT0xfTEFOR19DX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX0NfQ09ORklHXSldKQogbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19DX0NPTkZJR10sCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfQ19DT05GSUddKV0pCiBtNF9pZm5kZWYoW0FDX0xJQlRPT0xfTEFOR19DWFhfQ09ORklHXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfQ1hYX0NPTkZJR10pXSkKQEAgLTkwLDMgKzg5LDEwIEBACiBtNF9pZm5kZWYoW19MVF9BQ19MQU5HX1JDX0NPTkZJR10sCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfUkNfQ09ORklHXSldKQogbTRfaWZuZGVmKFtBQ19MSUJUT09MX0NPTkZJR10sCQlbQUNfREVGVU4oW0FDX0xJQlRPT0xfQ09ORklHXSldKQogbTRfaWZuZGVmKFtfTFRfQUNfRklMRV9MVERMTF9DXSwJW0FDX0RFRlVOKFtfTFRfQUNfRklMRV9MVERMTF9DXSldKQorbTRfaWZuZGVmKFtfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNLU10sCVtBQ19ERUZVTihbX0xUX1JFUVVJUkVEX0RBUldJTl9DSEVDS1NdKV0pCittNF9pZm5kZWYoW19MVF9BQ19QUk9HX0NYWENQUF0sCQlbQUNfREVGVU4oW19MVF9BQ19QUk9HX0NYWENQUF0pXSkKK200X2lmbmRlZihbX0xUX1BSRVBBUkVfU0VEX1FVT1RFX1ZBUlNdLAlbQUNfREVGVU4oW19MVF9QUkVQQVJFX1NFRF9RVU9URV9WQVJTXSldKQorbTRfaWZuZGVmKFtfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSF0sCVtBQ19ERUZVTihbX0xUX1BST0dfRUNIT19CQUNLU0xBU0hdKV0pCittNF9pZm5kZWYoW19MVF9QUk9HX0Y3N10sCQlbQUNfREVGVU4oW19MVF9QUk9HX0Y3N10pXSkKK200X2lmbmRlZihbX0xUX1BST0dfRkNdLAkJW0FDX0RFRlVOKFtfTFRfUFJPR19GQ10pXSkKK200X2lmbmRlZihbX0xUX1BST0dfQ1hYXSwJCVtBQ19ERUZVTihbX0xUX1BST0dfQ1hYXSldKQpkaWZmIC0tZ2l0IGEvbWFuL01ha2VmaWxlLmluIGIvbWFuL01ha2VmaWxlLmluCmluZGV4IDc5ZjIzNmIuLjAxZmU4NTIgMTAwNjQ0Ci0tLSBhL21hbi9NYWtlZmlsZS5pbgorKysgYi9tYW4vTWFrZWZpbGUuaW4KQEAgLTU0LDExICs1NCwxMyBAQAogQUxBUk1fQUxJQVNFUyAgID0gc25tcF9hbGFybV9yZWdpc3Rlci4zIHNubXBfYWxhcm1fcmVnaXN0ZXJfaHIuMyBzbm1wX2FsYXJtX3VucmVnaXN0ZXIuMwogU0VTU0lPTl9BTElBU0VTID0gc25tcF9hcGlfZXJyc3RyaW5nLjMgc25tcF9jbG9zZS4zIHNubXBfZXJyb3IuMyAgICBcCiAJc25tcF9vcGVuLjMgc25tcF9wZXJyb3IuMyBzbm1wX3JlYWQuMyBzbm1wX3NlbGVjdF9pbmZvLjMgICAgXAotCXNubXBfc2VuZC4zIHNubXBfc2Vzc19wZXJyb3IuMyBzbm1wX3RpbWVvdXQuMworCXNubXBfc2VuZC4zIHNubXBfc2Vzc19wZXJyb3IuMyBzbm1wX3RpbWVvdXQuMyAgICAgICAgICAgICAgIFwKKwlzbm1wX2FzeW5jX3NlbmQuMyBzbm1wX3N5bmNoX3Jlc3BvbnNlLjMKIFNTRVNTX0FMSUFTRVMgICA9IHNubXBfc2Vzc19hc3luY19zZW5kLjMgc25tcF9zZXNzX2Nsb3NlLjMgc25tcF9zZXNzX2Vycm9yLjMgXAogCXNubXBfc2Vzc19pbml0LjMgc25tcF9zZXNzX29wZW4uMyBzbm1wX3Nlc3NfcmVhZC4zCQkgICAgIFwKIAlzbm1wX3Nlc3Nfc2VsZWN0X2luZm8uMyBzbm1wX3Nlc3Nfc2VuZC4zCQkJICAgICBcCi0Jc25tcF9zZXNzX3Nlc3Npb24uMyBzbm1wX3Nlc3NfdGltZW91dC4zCisJc25tcF9zZXNzX3Nlc3Npb24uMyBzbm1wX3Nlc3NfdGltZW91dC4zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCXNubXBfc2Vzc19zeW5jaF9yZXNwb25zZS4zCiBUUkFQX0FMSUFTRVMgICAgPSBzZW5kX2Vhc3lfdHJhcC4zIHNlbmRfdHJhcF92YXJzLjMgc2VuZF92MnRyYXAuMyAKIFZBUkJJTkRfQUxJQVNFUyA9IGZwcmludF92YWx1ZS4zIGZwcmludF92YXJpYWJsZS4zCVwKIAlwcmludF92YWx1ZS4zIHByaW50X3ZhcmlhYmxlLjMJCQlcCkBAIC04MSwxNCArODMsMjYgQEAKIAogYWxsOiAkKFRBUkdFVFMpIHN0YW5kYXJkYWxsIG1hbmFsaWFzZXMKIAotbWFuYWxpYXNlczogTWFrZWZpbGUKK21hbmFsaWFzZXM6IE1ha2VmaWxlICQoTUFOM19BUEkpCiAJdG91Y2ggbWFuYWxpYXNlcwotCUBmb3IgaSBpbiAkKE1BTjNfQVBJKSA7IGRvCQkJCSAgXAotICAgICAgICAgICAgZm9yIGogaW4gYHNlZCAtbiAnL14uU0ggTkFNRS8sL14uU0ggU1lOT1BTSVMvcCcgJCRpICB8IHNlZCAtZSAncy8uLSAuKi8vJyB8IHNlZCAncy8sLiovLycgIHwgQEVHUkVQQCAtdiAnXi5TSCAnIGA7IGRvIFwKKwlAcmVzdWx0PTAgOyBcCisgICAgICAgIGZvciBpIGluICQoTUFOM19BUEkpIDsgZG8JCQkJICBcCisgICAgICAgICAgICBmb3IgaiBpbiBgJChTRUQpIC1uICcvXi5TSCBOQU1FLywvXi5TSCBTWU5PUFNJUy9wJyAkJGkgIHwgJChTRUQpIC1lICdzLy4tIC4qLy8nIHwgJChTRUQpICdzLywuKi8vJyAgfCAkKEVHUkVQKSAtdiAnXi5TSCAnIGA7IGRvIFwKIAkJZWNobyAibWFraW5nIG1hbiBwYWdlIGFsaWFzICQkaiAtPiAkJGkgQVBJcyIgOyAgICBcCiAJCWVjaG8gIi5zbyBtYW4zLyQkaSIgPiAkJGouMyA7IAkJICBcCisJCWlmIGV4cHIgIiQoTUFOQUxJQVNFUykiIDogIi4qJCRqXFwuMyIgPiAvZGV2L251bGwgOyBcCisJCXRoZW4gXAorCQkgIDogOyBcCisJCWVsc2UgXAorCQkgICAgdmFyPWBlY2hvICQkaSB8ICQoU0VEKSAtZSAncy9ebmV0c25tcF8vLycgLWUgJ3MvX2FwaS4zLy8nIHwgdHIgJ1thLXpdJyAnW0EtWl0nYCA7IFwKKwkJICAgIGVjaG8gIllvdSBtdXN0IGFkZCAkJGouMyB0byB0aGUgJCR7dmFyfV9BTElBU0VTIHZhcmlhYmxlIGluIHRoZSBNYWtlZmlsZS5pbiIgOyBcCisJCSAgICByZXN1bHQ9MSA7IFwKKwkgICAgICAgIGZpOyBcCiAJICAgIGRvbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQlkb25lCisJZG9uZSA7IFwKKwlleGl0ICQkcmVzdWx0CisKKyQoTUFOQUxJQVNFUyk6IG1hbmFsaWFzZXMKIAogYWdlbnR4dHJhcC4xOiAkKHNyY2RpcikvYWdlbnR4dHJhcC4xLmRlZiAuLi9zZWRzY3JpcHQKIAkkKFNFRCkgLWYgLi4vc2Vkc2NyaXB0IDwgJChzcmNkaXIpL2FnZW50eHRyYXAuMS5kZWYgPiBhZ2VudHh0cmFwLjEKQEAgLTIzOSw3ICsyNTMsNyBAQAogCSAgdG91Y2ggbWliMmMuY29uZi41IDsgXAogCWZpCiAKLW1hbmluc3RhbGw6ICBtYW5pbnN0YWxsZGlycyAkKE1BTjEpICQoTUFOMUcpICQoTUFOMykgJChNQU41RykgJChNQU44KSAkKE1BTkFMSUFTRVMpCittYW5pbnN0YWxsOiAgbWFuaW5zdGFsbGRpcnMgJChNQU4xKSAkKE1BTjFHKSAkKE1BTjMpICQoTUFOM19BUEkpICQoTUFOM0cpICQoTUFONUcpICQoTUFOOEcpICQoTUFOQUxJQVNFUykKIAlAZm9yIGkgaW4gJChNQU4xKSA7IGRvICQoSU5TVEFMTF9EQVRBKSAkKHNyY2RpcikvYGJhc2VuYW1lICQkaWAgJChJTlNUQUxMX1BSRUZJWCkkKG1hbjFkaXIpIDsgZWNobyAiaW5zdGFsbDogIGluc3RhbGxlZCAkJGkgaW4gJChJTlNUQUxMX1BSRUZJWCkkKG1hbjFkaXIpIiA7IGRvbmUKIAlAJChJTlNUQUxMX0RBVEEpICQoTUFOMUcpICQoSU5TVEFMTF9QUkVGSVgpJChtYW4xZGlyKQogCUBmb3IgaSBpbiAkKE1BTjFHKSA7IGRvIGVjaG8gImluc3RhbGw6ICBpbnN0YWxsZWQgJCRpIGluICQoSU5TVEFMTF9QUkVGSVgpJChtYW4xZGlyKSIgOyBkb25lCmRpZmYgLS1naXQgYS9tYW4vZGVmYXVsdF9zdG9yZS4zLmJvdCBiL21hbi9kZWZhdWx0X3N0b3JlLjMuYm90CmluZGV4IDE2YzA4ZWUuLmViZDJiZjYgMTAwNjQ0Ci0tLSBhL21hbi9kZWZhdWx0X3N0b3JlLjMuYm90CisrKyBiL21hbi9kZWZhdWx0X3N0b3JlLjMuYm90CkBAIC0xMTEsNyArMTExLDcgQEAKIGFsbG9jYXRpb24gZmFpbHVyZSkuCiAuVFAKIC5CSSAiaW50IG5ldHNubXBfZHNfcmVnaXN0ZXJfcHJlbWliKHVfY2hhciAiIHR5cGUgIiwgY29uc3QgY2hhciAqIiBmdHlwZSAiLCBjb25zdCBjaGFyICoiIHRva2VuICIsIGludCAiIHN0b3JlICIsIGludCAiIHdoaWNoICIpOyIKLUFuYWxvZ291cyB0byB0aGUgcHJlY2VlZGluZyBmdW5jdGlvbiwgYnV0IHRoZQorQW5hbG9nb3VzIHRvIHRoZSBwcmVjZWRpbmcgZnVuY3Rpb24sIGJ1dCB0aGUKIC5JIHRva2VuCiBpcyBwcm9jZXNzZWQgYmVmb3JlIE1JQnMgYXJlIHJlYWQgKHRoaXMgaXMgdGhlcmVmb3JlIHVzZWZ1bCBmb3IgY29udHJvbGxpbmcKIE1JQiBwcm9jZXNzaW5nIG9wdGlvbnMpLgpkaWZmIC0tZ2l0IGEvbWFuL2VuY29kZV9rZXljaGFuZ2UuMS5kZWYgYi9tYW4vZW5jb2RlX2tleWNoYW5nZS4xLmRlZgppbmRleCA3NDE1NjE3Li4yMGY1Y2MzIDEwMDY0NAotLS0gYS9tYW4vZW5jb2RlX2tleWNoYW5nZS4xLmRlZgorKysgYi9tYW4vZW5jb2RlX2tleWNoYW5nZS4xLmRlZgpAQCAtMywxMyArMywxMyBAQAogZW5jb2RlX2tleWNoYW5nZSAtIHByb2R1Y2UgdGhlIEtleUNoYW5nZSBzdHJpbmcgZm9yIFNOTVB2MwogLlNIIFNZTk9QU0lTCiAuQiBlbmNvZGVfa2V5Y2hhbmdlIAotLXQgbWQ1fHNoYTEKK1wtdCBtZDV8c2hhMQogW1xmSU9QVElPTlNcZlJdCiAuU0ggREVTQ1JJUFRJT04KIC5CIGVuY29kZV9rZXljaGFuZ2UKIHByb2R1Y2VzIGEgS2V5Q2hhbmdlIHN0cmluZyB1c2luZyB0aGUgb2xkIGFuZCBuZXcgcGFzc3BocmFzZXMgCiBhcyBkZXNjcmliZWQgaW4gU2VjdGlvbiA1IG9mIFJGQyAyMjc0ICJVc2VyLWJhc2VkIFNlY3VyaXR5IE1vZGVsIChVU00pIGZvciAKLXZlcnNpb24gMyBvZiB0aGUgU2ltcGxlIE5ldHdvcmsgTWFuYWdlbWVudCBQcm90b2NvbCAoU05NUHYzKSIuIFxmQi10XGZSCit2ZXJzaW9uIDMgb2YgdGhlIFNpbXBsZSBOZXR3b3JrIE1hbmFnZW1lbnQgUHJvdG9jb2wgKFNOTVB2MykiLiBcZkJcLXRcZlIKIG9wdGlvbiBpcyBtYW5kYXRvcnkgYW5kIHNwZWNpZmllcyB0aGUgaGFzaCB0cmFuc2Zvcm0gdHlwZSB0byB1c2UuCiAKIFRoZSB0cmFuc2Zvcm0gaXMgdXNlZCB0byBjb252ZXJ0IHBhc3NwaHJhc2UgdG8gbWFzdGVyIGtleSBmb3IgYSBnaXZlbgpAQCAtMjAsOSArMjAsOSBAQAogKGluIG9yZGVyIGxpc3RlZCk6CiAuSVAKIGNvbW1hbmQgbGluZSBvcHRpb25zIChzZWUgCi0uQiAtTgorLkIgXC1OCiBhbmQKLS5CIC1PCisuQiBcLU8KIG9wdGlvbnMgYmVsb3cpOwogLklQCiB0aGUgZmlsZSAKQEAgLTM1LDcgKzM1LDcgQEAKIC5TSCBPUFRJT05TCiAuVFAKIFxmQlwtRVxmUiBbMHhdPFxmSWVuZ2luZUlEXGZSPiBFbmdpbmVJRCB1c2VkIGZvciBLdWwgZ2VuZXJhdGlvbi4KLTxcZkllbmdpbmVJRFxmUj4gaXMgaW50ZXByZXRlZCBhcyBhIGhleCBzdHJpbmcgd2hlbiBwcmVjZWVkZWQgYnkgMHgsCis8XGZJZW5naW5lSURcZlI+IGlzIGludGVwcmV0ZWQgYXMgYSBoZXggc3RyaW5nIHdoZW4gcHJlY2VkZWQgYnkgMHgsCiBvdGhlcndpc2UgaXQgaXMgdHJlYXRlZCBhcyBhIHRleHQgc3RyaW5nLiBJZiBubyA8XGZJZW5naW5lSURcZlI+IGlzCiBzcGVjaWZpZWQsIGl0IGlzIGNvbnN0cnVjdGVkIGZyb20gdGhlIGZpcnN0IElQIGFkZHJlc3MgZm9yIHRoZSBsb2NhbAogaG9zdC4KZGlmZiAtLWdpdCBhL21hbi9maXhwcm9jLjEuZGVmIGIvbWFuL2ZpeHByb2MuMS5kZWYKaW5kZXggZWY5MDAzNi4uYWU4OGEzZCAxMDA2NDQKLS0tIGEvbWFuL2ZpeHByb2MuMS5kZWYKKysrIGIvbWFuL2ZpeHByb2MuMS5kZWYKQEAgLTI3LDEwICsyNywxMCBAQAogY2hlY2sgcHJvY2VzcyBhZ2FpbnN0IGRhdGFiYXNlIC9sb2NhbC9ldGMvZml4cHJvYy5jb25mLgogLlRQCiAuQiBcLWtpbGwKLWtpbGwgcHJvY2Vzcywgd2FpdCA1IHNlY29uZHMsIGtpbGwgLTkgaWYgc3RpbGwgZXhpc3QKK2tpbGwgcHJvY2Vzcywgd2FpdCA1IHNlY29uZHMsIGtpbGwgXC05IGlmIHN0aWxsIGV4aXN0CiAuVFAKIC5CIFwtcmVzdGFydAota2lsbCBwcm9jZXNzLCB3YWl0IDUgc2Vjb25kcywga2lsbCAtOSBpZiBzdGlsbCBleGlzdCwgdGhlbiBzdGFydCBhZ2Fpbgora2lsbCBwcm9jZXNzLCB3YWl0IDUgc2Vjb25kcywga2lsbCBcLTkgaWYgc3RpbGwgZXhpc3QsIHRoZW4gc3RhcnQgYWdhaW4KIC5UUAogLkIgXC1leGlzdAogY2hlY2tzIGlmIHByb2MgZXhpc3RzIGluIHBzICYmIChtaW4gPD0gbnVtLiBvZiBwcm9jZXNzZXMgPD0gbWF4KQpkaWZmIC0tZ2l0IGEvbWFuL21pYjJjLmNvbmYuNS5pbiBiL21hbi9taWIyYy5jb25mLjUuaW4KaW5kZXggN2U1YTIxMC4uMzY5MmE2NSAxMDA2NDQKLS0tIGEvbWFuL21pYjJjLmNvbmYuNS5pbgorKysgYi9tYW4vbWliMmMuY29uZi41LmluCkBAIC0xLDYgKzEsNiBAQAogLlRIIE1JQjJDLkNPTkYgNSAiMjggQXByIDIwMDQiIFZWRVJTSU9OSU5GTyAiTmV0LVNOTVAiCiAuU0ggTkFNRQotbWliMmMuY29uZiAtLSBIb3cgdG8gd3JpdGUgbWliMmMuY29uZiBmaWxlcyB0byBkbyBBTllUSElORyBiYXNlZCBvbiBNSUIgaW5wdXQuCittaWIyYy5jb25mIFxbZW1dIEhvdyB0byB3cml0ZSBtaWIyYy5jb25mIGZpbGVzIHRvIGRvIEFOWVRISU5HIGJhc2VkIG9uIE1JQiBpbnB1dC4KIC5TSCBTWU5PUFNJUwogJSBjYXQgPiBtaWIyYy50ZXN0LmNvbmYgIDw8IEVPRgogQGZvcmVhY2ggJHQgdGFibGVACkBAIC0xMiw3ICsxMiw3IEBACiBAZW5kQAogRU9GCiAKLSUgbWliMmMgLWMgbWliMmMudGVzdC5jb25mIGludGVybmV0CislIG1pYjJjIFwtYyBtaWIyYy50ZXN0LmNvbmYgaW50ZXJuZXQKIC5TSCBERVNDUklQVElPTgogVGhlIG1pYjJjLmNvbmYgc2NyaXB0IGxhbmd1YWdlIGlzIGEgTUlCLXBhcnRpY3VsYXIgbGFuZ3VhZ2UgZGVzaWduZWQKIHRvIGVhc2lseSBwcm9jZXNzIE1JQiBub2RlcyBpbiB3YXlzIHRoYXQgeW91IHdhbnQuICBtaWIyYyBpcyBhCmRpZmYgLS1naXQgYS9tYW4vbmV0LXNubXAtY29uZmlnLjEuZGVmIGIvbWFuL25ldC1zbm1wLWNvbmZpZy4xLmRlZgppbmRleCA2NTIxYzllLi4zYTBmYTJiIDEwMDY0NAotLS0gYS9tYW4vbmV0LXNubXAtY29uZmlnLjEuZGVmCisrKyBiL21hbi9uZXQtc25tcC1jb25maWcuMS5kZWYKQEAgLTEsMTcgKzEsMTcgQEAKIC5USCBuZXQtc25tcC1jb25maWcgMSAiMTYgTm92IDIwMDYiIFZWRVJTSU9OSU5GTyAiTmV0LVNOTVAiCiAuU0ggTkFNRQotbmV0LXNubXAtY29uZmlnIFwtIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgaW5zdGFsbGVkIG5ldC1zbm1wIGxpYnJhcmllcyBhbmQgYmluYXJpZXMgCituZXRcLXNubXBcLWNvbmZpZyAtIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgaW5zdGFsbGVkIG5ldC1zbm1wIGxpYnJhcmllcyBhbmQgYmluYXJpZXMgCiAuU0ggU1lOT1BTSVMKIC5QUAotLkIgbmV0LXNubXAtY29uZmlnCisuQiBuZXRcLXNubXBcLWNvbmZpZwogW09QVElPTlNdCiAuU0ggREVTQ1JJUFRJT04KIC5QUAotVGhlIFxmSW5ldC1zbm1wLWNvbmZpZ1xmUCBzaGVsbCBzY3JpcHQgaXMgZGVzaWduZWQgdG8gcmV0cmlldmUgdGhlCitUaGUgXGZJbmV0XC1zbm1wXC1jb25maWdcZlAgc2hlbGwgc2NyaXB0IGlzIGRlc2lnbmVkIHRvIHJldHJpZXZlIHRoZQogY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbGlicmFyaWVzIGFuZCBiaW5hcmllcyBkZWFsaW5nIHdpdGgKIHRoZSBTaW1wbGUgTmV0d29yayBNYW5hZ2VtZW50IFByb3RvY29sIChTTk1QKSwgYnVpbHQgZnJvbSB0aGUgCiAuQiBuZXQtc25tcCAKLXNvdXJjZSBwYWNrYWdlLiBUaGUgaW5mb3JtYXRpb24gaXMgcGFydGljdWxhcmlseSB1c2VmdWwgZm9yCitzb3VyY2UgcGFja2FnZS4gVGhlIGluZm9ybWF0aW9uIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgZm9yCiBhcHBsaWNhdGlvbnMgdGhhdCBuZWVkIHRvIGxpbmsgYWdhaW5zdCB0aGUgU05NUCBsaWJyYXJpZXMgYW5kIGhlbmNlCiBtdXN0IGtub3cgYWJvdXQgYW55IG90aGVyIGxpYnJhcmllcyB0aGF0IG11c3QgYmUgbGlua2VkIGluIGFzIHdlbGwuCiAKQEAgLTI5LDggKzI5LDggQEAKIC5QUAogU05NUCBTZXR1cCBjb21tYW5kczoKIC5UUAotXGZCXC1cLWNyZWF0ZVwtc25tcHYzXC11c2VyXGZSIFstcm9dIFstYSBhdXRocGFzc10gWy14IHByaXZwYXNzXSBbLVggREVTfEFFU10KLVstQSBNRDV8U0hBXSBbdXNlcm5hbWVdCitcZkJcLVwtY3JlYXRlXC1zbm1wdjNcLXVzZXJcZlIgW1wtcm9dIFtcLWEgYXV0aHBhc3NdIFtcLXggcHJpdnBhc3NdCitbXC1YIERFU3xBRVNdIFtcLUEgTUQ1fFNIQV0gW3VzZXJuYW1lXQogLlBQCiBUaGVzZSBvcHRpb25zIHByb2R1Y2UgdGhlIHZhcmlvdXMgY29tcGlsYXRpb24gZmxhZ3MgbmVlZGVkIHdoZW4KIGJ1aWxkaW5nIGV4dGVybmFsIFNOTVAgYXBwbGljYXRpb25zOgpAQCAtNjMsOCArNjMsOCBAQAogQXV0b21hdGVkIHN1YmFnZW50IGJ1aWxkaW5nIChwcm9kdWNlcyBhbiBPVVRQVVROQU1FIGJpbmFyeSBmaWxlKToKIFtUaGlzIGZlYXR1cmUgaGFzIG5vdCBiZWVuIGV4dGVuc2l2ZWx5IHRlc3RlZCwgIHVzZSBhdCB5b3VyIG93biByaXNrLl0KIC5UUAotXGZCXC1cLWNvbXBpbGVcLXN1YmFnZW50XGZSIE9VVFBVVE5BTUUgWy0tbm9ybV0gWy0tY2ZsYWdzIGZsYWdzXQotWy0tbGRmbGFncyBmbGFnc10gbWlibW9kdWxlMS5jIFsuLi5dXQorXGZCXC1cLWNvbXBpbGVcLXN1YmFnZW50XGZSIE9VVFBVVE5BTUUgW1wtXC1ub3JtXSBbXC1cLWNmbGFncyBmbGFnc10KK1tcLVwtbGRmbGFncyBmbGFnc10gbWlibW9kdWxlMS5jIFsuLi5dXQogLlRQCiBcZkJcLVwtbm9ybVxmUgogbGVhdmUgdGhlIGdlbmVyYXRlZCAuYyBmaWxlIGFyb3VuZCB0byByZWFkLgpkaWZmIC0tZ2l0IGEvbWFuL25ldHNubXBfYWdlbnRfYXBpLjMuZGVmIGIvbWFuL25ldHNubXBfYWdlbnRfYXBpLjMuZGVmCmluZGV4IDg3ZGM1NDEuLjE5ZWZkMDAgMTAwNjQ0Ci0tLSBhL21hbi9uZXRzbm1wX2FnZW50X2FwaS4zLmRlZgorKysgYi9tYW4vbmV0c25tcF9hZ2VudF9hcGkuMy5kZWYKQEAgLTEsMTEgKzEsMTEgQEAKIC5USCBORVRTTk1QX0FHRU5UX0FQSSAzICIxMyBBdWcgMjAxMCIgVlZFUlNJT05JTkZPICJOZXQtU05NUCIKIC5TSCBOQU1FCi1uZXRzbm1wX2FnZW50X2FwaSBcLSBlbWJlZGRpbmcgYW4gYWdlbnQgaW50byBhIGV4dGVybmFsIGFwcGxpY2F0aW9uCituZXRzbm1wX2FnZW50X2FwaSAtIGVtYmVkZGluZyBhbiBhZ2VudCBpbnRvIGEgZXh0ZXJuYWwgYXBwbGljYXRpb24KIC5TSCBTWU5PUFNJUwogLm5mCi0jaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+Ci0jaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KLSNpbmNsdWRlIDxuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oPgorI2luY2x1ZGUgPG5ldFwtc25tcC9uZXRcLXNubXBcLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldFwtc25tcC9uZXRcLXNubXBcLWluY2x1ZGVzLmg+CisjaW5jbHVkZSA8bmV0XC1zbm1wL2FnZW50L25ldFwtc25tcFwtYWdlbnRcLWluY2x1ZGVzLmg+CiAKIGludAogbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKQEAgLTQ1LDcgKzQ1LDcgQEAKIH0KIAogVGhlbjoKLSQoQ0MpIC4uLiBgbmV0LXNubXAtY29uZmlnIC0tYWdlbnQtbGlic2AKKyQoQ0MpIC4uLiBgbmV0XC1zbm1wXC1jb25maWcgXC1cLWFnZW50XC1saWJzYAogCiAuZmkKIC5TSCBERVNDUklQVElPTgpAQCAtNzYsOCArNzYsOCBAQAogY29uZmlndXJlZCB0aGUgTmV0LVNOTVAgcGFja2FnZSB3aXRoIGFnZW50eCBzdXBwb3J0ICh3aGljaCBpcyB0dXJuZWQKIG9uIGJ5IGRlZmF1bHQsIHNvIGp1c3QgZG9uJ3QgdHVybiBpdCBvZmYpCiAuUFAKLUFkZGl0aW9uYWxseSwgeW91IHdpbGwgbmVlZCB0byBsaW5rIGFnYWluc3QgdGhlIG5ldC1zbm1wIGxpYnJhcmllcwotKHVzZSB0aGUgb3V0cHV0IG9mICJuZXQtc25tcC1jb25maWcgLS1hZ2VudC1saWJzIiB0byBnZXQgYSBsaWJyYXJ5CitBZGRpdGlvbmFsbHksIHlvdSB3aWxsIG5lZWQgdG8gbGluayBhZ2FpbnN0IHRoZSBOZXQtU05NUCBsaWJyYXJpZXMKKyh1c2UgdGhlIG91dHB1dCBvZiAibmV0XC1zbm1wXC1jb25maWcgXC1cLWFnZW50XC1saWJzIiB0byBnZXQgYSBsaWJyYXJ5CiBsaXN0KSBhbmQgY2FsbCBzdWJhZ2VudF9wcmVfaW5pdCgpIGFzIGluZGljYXRlZCBhYm92ZS4KIC5TSCBDT01QSUxJTkcKIC5QUApAQCAtODYsNyArODYsNyBAQAogLlNIIEZVTkNUSU9OUwogLlBQIFRoaXMgaXMgYSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgZnVuY3Rpb25zIGNhbGxlZCBhYm92ZSBhbmQKIHdoZXJlIHRvIGZpbmQgb3V0IG1vcmUgaW5mb3JtYXRpb24gb24gdGhlbS4gIEl0IGlzIGNlcnRhaW5seSBub3QgYQotY29tcGxldGUgbGlzdCBvZiB3aGF0IGlzIGF2YWlsYWJsZSB3aXRoaW4gYWxsIHRoZSBuZXQtc25tcCBsaWJyYXJpZXMuIAorY29tcGxldGUgbGlzdCBvZiB3aGF0IGlzIGF2YWlsYWJsZSB3aXRoaW4gYWxsIHRoZSBOZXQtU05NUCBsaWJyYXJpZXMuIAogLklQICJzbm1wX2VuYWJsZV9zdGRlcnJsb2coKSIKIExvZ3MgZXJyb3Igb3V0cHV0IGZyb20gdGhlIFNOTVAgYWdlbnQgdG8gdGhlIHN0YW5kYXJkIGVycm9yIHN0cmVhbS4KIC5JUCAibmV0c25tcF9kc19zZXRfYm9vbGVhbigpIgpAQCAtMTIzLDEwICsxMjMsMTAgQEAKIGFsYXJtIG11c3QgYmUgcnVuIChzZWUKIC5JUiBzbm1wX2FsYXJtKDMpICkuCiBUaGUgcmV0dXJuIHZhbHVlIGZyb20gdGhpcyBmdW5jdGlvbiBpcyBhIHBvc2l0aXZlIGludGVnZXIgaWYgcGFja2V0cwotd2VyZSBwcm9jZXNzZWQsIHplcm8gaWYgYW4gYWxhcm0gb2NjdXJyZWQgYW5kIC0xIGlmIGFuIGVycm9yIG9jY3VyZWQuCit3ZXJlIHByb2Nlc3NlZCwgemVybyBpZiBhbiBhbGFybSBvY2N1cnJlZCBhbmQgXC0xIGlmIGFuIGVycm9yIG9jY3VyZWQuCiAuSVAgInNubXBfc2h1dGRvd24oY2hhciAqbmFtZSk7IgogVGhpcyBzaHV0cyBkb3duIHRoZSBhZ2VudCwgc2F2aW5nIGFueSBuZWVkZWQgcGVyc2lzdGVudCBzdG9yYWdlLCBldGMuCiAuU0ggIlNFRSBBTFNPIgotaHR0cDovL3d3dy5uZXQtc25tcC5vcmcvdHV0b3JpYWwtNS90b29sa2l0LyBzZWxlY3QoMiksIHNubXBfYXBpKDMpLAoraHR0cDovL3d3dy5uZXRcLXNubXAub3JnL3R1dG9yaWFsXC01L3Rvb2xraXQvIHNlbGVjdCgyKSwgc25tcF9hcGkoMyksCiBkZWZhdWx0X3N0b3JlKDMpLCBzbm1wX2FsYXJtKDMpLCBuZXRzbm1wX2NvbmZpZ19hcGkoMyksIHNubXBfY29uZmlnKDUpLAogc25tcGQuY29uZig1KQpkaWZmIC0tZ2l0IGEvbWFuL25ldHNubXBfbWliX2FwaS4zLmRlZiBiL21hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWYKaW5kZXggY2MwZDBjYi4uMmUxZGE4ZiAxMDA2NDQKLS0tIGEvbWFuL25ldHNubXBfbWliX2FwaS4zLmRlZgorKysgYi9tYW4vbmV0c25tcF9taWJfYXBpLjMuZGVmCkBAIC0yMSw3ICsyMSw3IEBACiBmcHJpbnRfZGVzY3JpcHRpb24sCiBzbnByaW50X2Rlc2NyaXB0aW9uIC0gbmV0c25tcF9taWJfYXBpIGZ1bmN0aW9ucwogLlNIIFNZTk9QU0lTCi0uQiAjaW5jbHVkZSA8bmV0LXNubXAvbWliX2FwaS5oPgorLkIgI2luY2x1ZGUgPG5ldFwtc25tcC9taWJfYXBpLmg+CiAuUFAKIC5TUyBJbml0aWFsaXNhdGlvbiBhbmQgU2h1dGRvd24KIC5CSSAiaW50IGFkZF9taWJkaXIoY29uc3QgY2hhciAqIiAiZGlybmFtZSIgKTsKQEAgLTEwNCw3ICsxMDQsNyBAQAogaW4gdGhhdCBkaXJlY3RvcnksIGJ1dCBpcyBzaW1wbHkgYW4gaW5pdGlhbGlzYXRpb24gc3RlcCB0byBtYWtlCiB0aGVtIGF2YWlsYWJsZSB0bwogLkJSIG5ldHNubXBfcmVhZF9tb2R1bGUgLgotVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgY291bnQgb2YgZmlsZXMgZm91bmQgaW4gdGhlIGRpcmVjdG9yeSwgb3IgYSAtMQorVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgY291bnQgb2YgZmlsZXMgZm91bmQgaW4gdGhlIGRpcmVjdG9yeSwgb3IgYSBcLTEKIGlmIHRoZXJlIGlzIGFuIGVycm9yLiAgCiBJdCBzaG91bGQgYmUgY2FsbGVkIFxmSWJlZm9yZVxmUCBpbnZva2luZyBcZkJuZXRzbm1wX2luaXRfbWliXGZQLgogLlBQCkBAIC0xODAsNyArMTgwLDcgQEAKIGluIE1JQiBJTVBPUlRTIGNsYXVzZXMgKHN1Y2ggYXMgcmVmZXJyaW5nIHRvCiAuSSBSRkMxMjEzCiBpbnN0ZWFkIG9mCi0uSVIgUkZDMTIxMy1NSUIgKS4KKy5JUiBSRkMxMjEzXC1NSUIgKS4KIC5TUyBTZWFyY2hpbmcgdGhlIE1JQiBUcmVlCiAuUFAKIC5CIHJlYWRfb2JqaWQKQEAgLTIzNCw3ICsyMzQsNyBAQAogLkkgYnVmCiB3aGljaCBpcyBvZiBsZW5ndGgKIC5JUiBsZW4gLgotSXQgcmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgcHJpbnRlZCwgb3IgLTEgaWYgdGhlCitJdCByZXR1cm5zIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBwcmludGVkLCBvciBcLTEgaWYgdGhlCiBidWZmZXIgd2FzIG5vdCBsYXJnZSBlbm91Z2guICBJbiB0aGUgbGF0dGVyIGNhc2UsCiAuSSBidWYKIHdpbGwgdHlwaWNhbGx5IGNvbnRhaW4gYSB0cnVuY2F0ZWQgdmVyc2lvbiBvZiB0aGUgaW5mb3JtYXRpb24gKGJ1dApAQCAtMjc3LDcgKzI3Nyw3IEBACiAuYnIKIFRoZSBkZWZhdWx0IGxpc3Qgb2YgbW9kdWxlcyB3aWxsIGRlcGVuZCBvbiBob3cgdGhlIE5ldC1TTk1QIHNvZnR3YXJlCiB3YXMgb3JpZ2luYWxseSBjb21waWxlZCwgYnV0IGlzIHR5cGljYWxseToKLUlQLU1JQjpJRi1NSUI6VENQLU1JQjpVRFAtTUlCOlNOTVB2Mi1NSUI6UkZDMTIxMy1NSUI6IFVDRC1TTk1QLU1JQjpIT1NULVJFU09VUkNFUy1NSUIKK0lQXC1NSUI6SUZcLU1JQjpUQ1BcLU1JQjpVRFBcLU1JQjpTTk1QdjJcLU1JQjpSRkMxMjEzXC1NSUI6IFVDRFwtU05NUFwtTUlCOkhPU1RcLVJFU09VUkNFU1wtTUlCCiAuSVAKIElmIHRoZSB2YWx1ZSBvZiB0aGUKIC5CIE1JQlMKZGlmZiAtLWdpdCBhL21hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmIGIvbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYKaW5kZXggODY0MTUzOC4uODkwMzUzZCAxMDA2NDQKLS0tIGEvbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYKKysrIGIvbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYKQEAgLTgsNiArOCw3IEBACiBzbm1wX3Nlc3Nfc2VsZWN0X2luZm8sCiBzbm1wX3Nlc3NfcmVhZCwKIHNubXBfc2Vzc190aW1lb3V0LAorc25tcF9zZXNzX3N5bmNoX3Jlc3BvbnNlLAogc25tcF9zZXNzX2Nsb3NlLAogc25tcF9zZXNzX2Vycm9yIC0gc2Vzc2lvbiBmdW5jdGlvbnMKIC5TSCBTWU5PUFNJUwpAQCAtNDEsNiArNDIsMTMgQEAKIC5QUAogLkJJICJ2b2lkIHNubXBfc2Vzc190aW1lb3V0KHZvaWQgKiIgaGFuZGxlICIpOyIKIC5QUAorLkJJICJpbnQgc25tcF9zZXNzX3N5bmNoX3Jlc3BvbnNlICggdm9pZCAqIiAiaGFuZGxlLCIKKy5SUworLkJJICJuZXRzbm1wX3BkdSAqIiAicGR1IiAiLCAiCisuYnIKKy5CSSAibmV0c25tcF9wZHUgKioiICJyZXNwb25zZSIgKTsKKy5SRQorLlBQCiAuQkkgImludCBzbm1wX3Nlc3NfY2xvc2Uodm9pZCAqIiBoYW5kbGUgIik7IgogLlBQCiAuQkkgInZvaWQgc25tcF9zZXNzX2Vycm9yKHZvaWQgKiIgaGFuZGxlICIsIGludCAqIiBwY2xpYmVyciAiLCAiCkBAIC05OSw2ICsxMDcsMTIgQEAKIC5QUAogQ29uc3VsdCBzbm1wX2FwaS5oIGZvciB0aGUgZGVmaW5pdGlvbnMgb2YgdGhlc2Ugc3RydWN0dXJlcy4KIC5QUAorV2l0aCB0aGUKKy5JIHNubXBfc2Vzc19hc3luY19zZW5kKCkKK2NhbGwsCisuSSBzbm1wX3Nlc3NfcmVhZAord2lsbCBpbnZva2UgdGhlIHNwZWNpZmllZCBjYWxsYmFjayB3aGVuIHRoZSByZXNwb25zZSBpcyByZWNlaXZlZC4KKy5QUAogLkJSIHNubXBfc2Vzc19zZWxlY3RfaW5mbygpICIsICIgc25tcF9zZXNzX3JlYWQoKSAiIGFuZCAiIHNubXBfc2Vzc190aW1lb3V0KCkKIHByb3ZpZGUgYW4gaW50ZXJmYWNlIGZvciB0aGUgdXNlIG9mIHRoZQogLkJSIHNlbGVjdCAoMikKQEAgLTE0OCw2ICsxNjIsMTMgQEAKIC5CIHNubXBfc2Vzc190aW1lb3V0KCkKIHNob3VsZCBiZSBjYWxsZWQgdG8gc2VlIGlmIGEgdGltZW91dCBoYXMgb2NjdXJyZWQgb24gdGhlIFNOTVAKIHNlc3Npb24uCisuUFAKKy5JIHNubXBfc2Vzc19zeW5jaF9yZXNwb25zZQoraXMgYSBjb252ZW5pZW5jZSByb3V0aW5lIHRoYXQgd2lsbCBzZW5kIHRoZSByZXF1ZXN0LAord2FpdCBmb3IgdGhlIHJlc3BvbnNlIGFuZCBwcm9jZXNzIGl0IGJlZm9yZSByZXR1cm5pbmcuCitTZWUgdGhlIGRlc2NyaXB0aW9ucyBvZgorLkkgInNubXBfc2Vzc19zZW5kIiAiLCAiICJzbm1wX3Nlc3NfcmVhZCIKK2V0YyBmb3IgZGV0YWlscy4KIC5TSCBESUFHTk9TVElDUwogLlBQCiBFcnJvciByZXR1cm4gc3RhdHVzIGZyb20gCmRpZmYgLS1naXQgYS9tYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiBiL21hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmCmluZGV4IDYwYjY4ZDEuLmM4ODkxYTEgMTAwNjQ0Ci0tLSBhL21hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmCisrKyBiL21hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmCkBAIC0xLDcgKzEsNyBAQAogLlwiIC0qLSBucm9mZiAtKi0KLS5cIiBQb3J0aW9ucyBvZiB0aGlzIGZpbGUgYXJlIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb3B5cmlnaHQuIAotLlwiIFNlZSB0aGUgTmV0LVNOTVAgQ09QWUlORyBmaWxlIGZvciBtb3JlIGRldGFpbHMgYW5kIG90aGVyCi0uXCIgY29weXJpZ2h0cyB0aGF0IG1heSBhcHBseToKKy5cIiBQb3J0aW9ucyBvZiB0aGlzIGZpbGUgYXJlIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb3B5cmlnaHQuICBTZWUKKy5cIiB0aGUgTmV0LVNOTVAgQ09QWUlORyBmaWxlIGZvciBtb3JlIGRldGFpbHMgYW5kIG90aGVyIGNvcHlyaWdodHMKKy5cIiB0aGF0IG1heSBhcHBseToKIC5cIiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIC5cIiAJQ29weXJpZ2h0IDE5ODkgYnkgQ2FybmVnaWUgTWVsbG9uIFVuaXZlcnNpdHkKIC5cIiAKQEAgLTI4LDkgKzI4LDExIEBACiBzbm1wX3Nlc3NfaW5pdCwKIHNubXBfb3BlbiwKIHNubXBfc2VuZCwKK3NubXBfYXN5bmNfc2VuZCwKIHNubXBfc2VsZWN0X2luZm8sCiBzbm1wX3JlYWQsCiBzbm1wX3RpbWVvdXQsCitzbm1wX3N5bmNoX3Jlc3BvbnNlLAogc25tcF9jbG9zZSwKIHNubXBfcGVycm9yLAogc25tcF9zZXNzX3BlcnJvciwKQEAgLTUxLDYgKzUzLDE1IEBACiAuQkkgIm5ldHNubXBfcGR1ICoiICJwZHUiICk7CiAuUkUKIC5QUAorLkJJICJpbnQgc25tcF9hc3luY19zZW5kICggbmV0c25tcF9zZXNzaW9uICoiICJzZXNzaW9uLCIKKy5SUworLkJJICIgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9wZHUgKiIgcGR1ICIsICIKKy5icgorLkJJICIgICAgICAgICAgICAgICAgICAgICAgICAgc25tcF9jYWxsYmFjayAiIGNhbGxiYWNrICIsICIKKy5icgorLkJJICIgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqIiBjYWxsYmFja0RhdGEgIik7IgorLlJFCisuUFAKIC5CSSAiaW50IHNubXBfc2VsZWN0X2luZm8gKCBpbnQgKiAiIG51bWZkcywgImZkX3NldCAqIiBmZHNldCwKIC5SUwogLkJJICJzdHJ1Y3QgdGltZXZhbCAqIiB0aW1lb3V0LCAiaW50ICoiIGJsb2NrICk7CkBAIC02MCw2ICs3MSwxMyBAQAogLlBQCiAuQiAgdm9pZCBzbm1wX3RpbWVvdXQgKCB2b2lkICk7CiAuUFAKKy5CSSAiaW50IHNubXBfc3luY2hfcmVzcG9uc2UgKCBuZXRzbm1wX3Nlc3Npb24gKiIgInNlc3Npb24sIgorLlJTCisuQkkgIm5ldHNubXBfcGR1ICoiICJwZHUiICIsICIKKy5icgorLkJJICJuZXRzbm1wX3BkdSAqKiIgInJlc3BvbnNlIiApOworLlJFCisuUFAKIC5CSSAiaW50IHNubXBfY2xvc2UgKCBuZXRzbm1wX3Nlc3Npb24gKiIgc2Vzc2lvbiApOwogLmJyCiAuQiAgImludCBzbm1wX2Nsb3NlX3Nlc3Npb25zICggdm9pZCApOwpAQCAtOTgsOCArMTE2LDEwIEBACiBvYmplY3QsIHdoaWNoIHRoZSBhcHBsaWNhdGlvbiBtdXN0IHVzZSB0byByZWZlcmVuY2UgdGhlCiBhY3RpdmUgU05NUCBzZXNzaW9uLgogLlBQCi0uSSBTbm1wX3NlbmQKLXRha2VzIGFzIGlucHV0IGEgcG9pbnRlciB0byBhCisuSSBzbm1wX3NlbmQKK2FuZAorLkkgc25tcF9hc3luY19zZW5kKCkKK2VhY2ggdGFrZSBhcyBpbnB1dCBhIHBvaW50ZXIgdG8gYQogLkkgbmV0c25tcF9wZHUKIG9iamVjdC4KIFRoaXMgc3RydWN0dXJlIGNvbnRhaW5zIGluZm9ybWF0aW9uIHRoYXQgZGVzY3JpYmVzIGEgdHJhbnNhY3Rpb24KQEAgLTEwNyw2ICsxMjcsMTIgQEAKIC5QUAogQ29uc3VsdCBzbm1wX2FwaS5oIGZvciB0aGUgZGVmaW5pdGlvbnMgb2YgdGhlc2Ugc3RydWN0dXJlcy4KIC5QUAorV2l0aCB0aGUKKy5JIHNubXBfYXN5bmNfc2VuZCgpCitjYWxsLAorLkkgc25tcF9yZWFkCit3aWxsIGludm9rZSB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIHdoZW4gdGhlIHJlc3BvbnNlIGlzIHJlY2VpdmVkLgorLlBQCiAuSSBTbm1wX3JlYWQsIHNubXBfc2VsZWN0X2luZm8sCiBhbmQKIC5JIHNubXBfdGltZW91dApAQCAtMTU2LDYgKzE4MiwxMyBAQAogdGltZXMgb3V0LAogLkkgc25tcF90aW1lb3V0CiBzaG91bGQgYmUgY2FsbGVkIHRvIHNlZSBpZiB0aGUgdGltZW91dCB3YXMgaW50ZW5kZWQgZm9yIFNOTVAuCisuUFAKKy5JIHNubXBfc3luY2hfcmVzcG9uc2UKK2lzIGEgY29udmVuaWVuY2Ugcm91dGluZSB0aGF0IHdpbGwgc2VuZCB0aGUgcmVxdWVzdCwKK3dhaXQgZm9yIHRoZSByZXNwb25zZSBhbmQgcHJvY2VzcyBpdCBiZWZvcmUgcmV0dXJuaW5nLgorU2VlIHRoZSBkZXNjcmlwdGlvbnMgb2YKKy5JICJzbm1wX3NlbmQiICIsICIgInNubXBfcmVhZCIKK2V0YyBmb3IgZGV0YWlscy4KIC5TSCBESUFHTk9TVElDUwogLlBQCiBQcmV2aW91cyB2ZXJzaW9ucyBvZiB0aGUgbGlicmFyeSB1c2VkCmRpZmYgLS1naXQgYS9tYW4vc25tcC5jb25mLjUuZGVmIGIvbWFuL3NubXAuY29uZi41LmRlZgppbmRleCAyZmU1ODEwLi40NjIwM2QwIDEwMDY0NAotLS0gYS9tYW4vc25tcC5jb25mLjUuZGVmCisrKyBiL21hbi9zbm1wLmNvbmYuNS5kZWYKQEAgLTM1LDggKzM1LDggQEAKICJkb250TG9hZEhvc3RDb25maWcgdHJ1ZSIgaW4geW91ciBzbm1wLmNvbmYgZmlsZS4KIC5TSCBDT01NQU5ELUxJTkUgT1BUSU9OUwogQWxsIG9mIHRoZSB0b2tlbnMgZGVzY3JpYmVkIGluIHRoaXMgZmlsZSBjYW4gYmUgdXNlZCBvbiB0aGUgY29tbWFuZAotbGluZSBvZiBOZXQtU05NUCBhcHBsaWNhdGlvbnMgYXMgd2VsbCBieSBwcmVmaXhpbmcgdGhlbSB3aXRoICItLSIuCi1FRywgc3BlY2lmeWluZyBcZkktLWRvbnRMb2FkSG9zdENvbmZpZz10cnVlXGZSIG9uIHRoZSBjb21tYW5kIGxpbmUgd2lsbAorbGluZSBvZiBOZXQtU05NUCBhcHBsaWNhdGlvbnMgYXMgd2VsbCBieSBwcmVmaXhpbmcgdGhlbSB3aXRoICJcLVwtIi4KK0VHLCBzcGVjaWZ5aW5nIFxmSVwtXC1kb250TG9hZEhvc3RDb25maWc9dHJ1ZVxmUiBvbiB0aGUgY29tbWFuZCBsaW5lIHdpbGwKIHR1cm4gb2YgbG9hZGluZyBvZiB0aGUgaG9zdCBzcGVjaWZpYyBjb25maWd1cmF0aW9uIGZpbGVzLgogLlNIIElNUE9SVEFOVCBOT1RFCiBTZXZlcmFsIG9mIHRoZXNlIGRpcmVjdGl2ZXMgbWF5IGNvbnRhaW4gc2Vuc2l0aXZlIGluZm9ybWF0aW9uCkBAIC04MiwxMCArODIsMTAgQEAKIFRDUCB0byBcZklmb28uZXhtYXBsZS5jb21cZlIgb24gcG9ydCA5ODc2LgogLklQICJkZWZWZXJzaW9uICgxfDJjfDMpIgogZGVmaW5lcyB0aGUgZGVmYXVsdCB2ZXJzaW9uIG9mIFNOTVAgdG8gdXNlLgotVGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB1c2luZyB0aGUgXGZCLXZcZlIgb3B0aW9uLgorVGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB1c2luZyB0aGUgXGZCXC12XGZSIG9wdGlvbi4KIC5JUCAiZGVmQ29tbXVuaXR5IFNUUklORyIKIGRlZmluZXMgdGhlIGRlZmF1bHQgY29tbXVuaXR5IHRvIHVzZSBmb3IgU05NUHYxIGFuZCBTTk1QdjJjIHJlcXVlc3RzLgotVGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB1c2luZyB0aGUgXGZCLWNcZlIgb3B0aW9uLgorVGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB1c2luZyB0aGUgXGZCXC1jXGZSIG9wdGlvbi4KIC5cIi5JUCAiZHVtcFBhY2tldCAoMXx5ZXN8dHJ1ZXwwfG5vfGZhbHNlKSIKIC5JUCAiYWxpYXMgTkFNRSBERUZJTklUSU9OIgogQ3JlYXRlcyBhbiBhbGlhc2VkIHRpZWQgdG8gTkFNRSBmb3IgYSBnaXZlbiB0cmFuc3BvcnQgZGVmaW5pdGlvbi4gIFRoZQpAQCAtOTcsNyArOTcsNyBAQAogLklQICJkdW1wUGFja2V0IHllcyIKIGRlZmluZXMgd2hldGhlciB0byBkaXNwbGF5IGEgaGV4YWRlY2ltYWwgZHVtcCBvZiB0aGUgcmF3IFNOTVAgcmVxdWVzdHMKIHNlbnQgYW5kIHJlY2VpdmVkIGJ5IHRoZSBhcHBsaWNhdGlvbi4KLVRoaXMgaXMgZXF1aXZhbGVudCB0byB0aGUgXGZCLWRcZlIgb3B0aW9uLgorVGhpcyBpcyBlcXVpdmFsZW50IHRvIHRoZSBcZkJcLWRcZlIgb3B0aW9uLgogLklQICJkb0RlYnVnZ2luZyAoMXwwKSIKIHR1cm5zIG9uIGRlYnVnZ2luZyBmb3IgYWxsIGFwcGxpY2F0aW9ucyBydW4gaWYgc2V0IHRvIDEuCiAuXCIKQEAgLTEwNyw3ICsxMDcsNyBAQAogLklQICJkZWJ1Z1Rva2VucyBUT0tFTlssVE9LRU4uLi5dIgogZGVmaW5lcyB0aGUgZGVidWdnaW5nIHRva2VucyB0aGF0IHNob3VsZCBiZSB0dXJuZWQgb24gd2hlbgogXGZJZG9EZWJ1Z2dpbmdcZlIgaXMgc2V0LgotVGhpcyBpcyBlcXVpdmFsZW50IHRvIHRoZSBcZkItRFxmUiBvcHRpb24uCitUaGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhlIFxmQlwtRFxmUiBvcHRpb24uCiAuXCIuSVAgIjE2Yml0SURzICgxfHllc3x0cnVlfDB8bm98ZmFsc2UpIgogLklQICIxNmJpdElEcyB5ZXMiCiByZXN0cmljdHMgcmVxdWVzdElEcywgZXRjIHRvIDE2LWJpdCB2YWx1ZXMuCkBAIC0xNDMsNyArMTQzLDcgQEAKIC5JUCAibm9SYW5nZUNoZWNrIHllcyIKIGRpc2FibGVzIHRoZSB2YWxpZGF0aW9uIG9mIHZhcmJpbmQgdmFsdWVzIGFnYWluc3QgdGhlIE1JQiBkZWZpbml0aW9uCiBmb3IgdGhlIHJlbGV2YW50IE9JRC4KLVRoaXMgaXMgZXF1aXZhbGVudCB0byB0aGUgXGZCLUlyXGZSIG9wdGlvbi4KK1RoaXMgaXMgZXF1aXZhbGVudCB0byB0aGUgXGZCXC1JclxmUiBvcHRpb24uCiAuSVAKIFRoaXMgZGlyZWN0aXZlIGlzIHByaW1hcmlseSByZWxldmFudCB0byB0aGUgXGZCc25tcHNldFxmUiBjb21tYW5kLAogYnV0IHdpbGwgYWxzbyBhcHBseSB0byBhbnkgYXBwbGljYXRpb24gdGhhdCBjYWxscyBcZklzbm1wX2FkZF92YXIoKVxmUgpAQCAtMTcwLDE2ICsxNzAsMjAgQEAKIFNwZWNpZmllcyB3aGV0aGVyIG9yIG5vdCB0aGUgaG9zdC1zcGVjaWZpYyBjb25maWd1cmF0aW9uIGZpbGVzIGFyZQogbG9hZGVkLiAgU2V0IHRvICJ0cnVlIiB0byB0dXJuIG9mZiB0aGUgbG9hZGluZyBvZiB0aGUgaG9zdCBzcGVjaWZpYwogY29uZmlndXJhdGlvbiBmaWxlcy4KKy5JUCAicmV0cmllcyBJTlRFR0VSIgorU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgcmV0cmllcyB0byBiZSB1c2VkIGluIHRoZSByZXF1ZXN0cy4KKy5JUCAidGltZW91dCBJTlRFR0VSIgorU3BlY2lmaWVzIHRoZSB0aW1lb3V0IGluIHNlY29uZHMgYmV0d2VlbiByZXRyaWVzLgogLlwiCiAuXCIgWFhYIC0gSXQgaXMgcHJvYmFibHkgYWJvdXQgdGltZSB0byByZW1vdmUgdGhpcyBjaG9pY2UhCiAuXCIKIC5TSCBTTk1QdjMgU0VUVElOR1MKIC5JUCAiZGVmU2VjdXJpdHlOYW1lIFNUUklORyIKIGRlZmluZXMgdGhlIGRlZmF1bHQgc2VjdXJpdHkgbmFtZSB0byB1c2UgZm9yIFNOTVB2MyByZXF1ZXN0cy4KLVRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gdXNpbmcgdGhlIFxmQi11XGZSIG9wdGlvbi4KK1RoaXMgY2FuIGJlIG92ZXJyaWRkZW4gdXNpbmcgdGhlIFxmQlwtdVxmUiBvcHRpb24uCiAuSVAgImRlZlNlY3VyaXR5TGV2ZWwgbm9BdXRoTm9Qcml2fGF1dGhOb1ByaXZ8YXV0aFByaXYiCiBkZWZpbmVzIHRoZSBkZWZhdWx0IHNlY3VyaXR5IGxldmVsIHRvIHVzZSBmb3IgU05NUHYzIHJlcXVlc3RzLgotVGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB1c2luZyB0aGUgXGZCLWxcZlIgb3B0aW9uLgorVGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB1c2luZyB0aGUgXGZCXC1sXGZSIG9wdGlvbi4KIC5JUAogSWYgbm90IHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoaXMgdG9rZW4gaXMgXGZJbm9BdXRoTm9Qcml2XGZSLgogLlwiCkBAIC0xOTUsNyArMTk5LDcgQEAKIC5JUCAiZGVmUHJpdlBhc3NwaHJhc2UgU1RSSU5HIgogZGVmaW5lIHRoZSBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGFuZCBwcml2YWN5IHBhc3MgcGhyYXNlcyB0byB1c2UKIGZvciBTTk1QdjMgcmVxdWVzdHMuCi1UaGVzZSBjYW4gYmUgb3ZlcnJpZGRlbiB1c2luZyB0aGUgXGZCLUFcZlIgYW5kIFxmQi1YXGZSIG9wdGlvbnMgcmVzcGVjdGl2ZWx5LgorVGhlc2UgY2FuIGJlIG92ZXJyaWRkZW4gdXNpbmcgdGhlIFxmQlwtQVxmUiBhbmQgXGZCXC1YXGZSIG9wdGlvbnMgcmVzcGVjdGl2ZWx5LgogLklQCiBUaGUgCiAuQiBkZWZQYXNzcGhyYXNlCkBAIC0yMDUsNyArMjA5LDcgQEAKIC5JUCAiZGVmUHJpdlR5cGUgREVTfEFFUyIKIGRlZmluZSB0aGUgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBhbmQgcHJpdmFjeSBwcm90b2NvbHMgdG8gdXNlIGZvcgogU05NUHYzIHJlcXVlc3RzLgotVGhlc2UgY2FuIGJlIG92ZXJyaWRkZW4gdXNpbmcgdGhlIFxmQi1hXGZSIGFuZCBcZkIteFxmUiBvcHRpb25zIHJlc3BlY3RpdmVseS4KK1RoZXNlIGNhbiBiZSBvdmVycmlkZGVuIHVzaW5nIHRoZSBcZkJcLWFcZlIgYW5kIFxmQlwteFxmUiBvcHRpb25zIHJlc3BlY3RpdmVseS4KIC5JUAogSWYgbm90IHNwZWNpZmllZCwgU05NUHYzIHJlcXVlc3RzIHdpbGwgZGVmYXVsdCB0byBNRDUgYXV0aGVudGljYXRpb24KIGFuZCBERVMgZW5jcnlwdGlvbi4KQEAgLTIxNyw3ICsyMjEsNyBAQAogLlJFCiAuSVAgImRlZkNvbnRleHQgU1RSSU5HIgogZGVmaW5lcyB0aGUgZGVmYXVsdCBjb250ZXh0IHRvIHVzZSBmb3IgU05NUHYzIHJlcXVlc3RzLgotVGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB1c2luZyB0aGUgXGZCLW5cZlIgb3B0aW9uLgorVGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB1c2luZyB0aGUgXGZCXC1uXGZSIG9wdGlvbi4KIC5JUAogSWYgbm90IHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoaXMgdG9rZW4gaXMgdGhlIGRlZmF1bHQgY29udGV4dAogKGkuZS4gdGhlIGVtcHR5IHN0cmluZyAiIikuCkBAIC0yMzYsNyArMjQwLDcgQEAKIG5vcm1hbGx5IGhhcyBiZXR0ZXIgZW50cm9weSB0aGFuIGEgcGFzc3dvcmQgdW5sZXNzIGl0IGlzCiBhbWF6aW5nbHkgbG9uZykuCiBUaGUgZGlyZWN0aXZlcyBhcmUgZXF1aXZhbGVudCB0byB0aGUgc2hvcnQtZm9ybQotY29tbWFuZCBsaW5lIG9wdGlvbnMgXGZCLTNtXGZSLCBcZkItM01cZlIsIFxmQi0za1xmUiwgYW5kIFxmQi0zS1xmUi4KK2NvbW1hbmQgbGluZSBvcHRpb25zIFxmQlwtM21cZlIsIFxmQlwtM01cZlIsIFxmQlwtM2tcZlIsIGFuZCBcZkJcLTNLXGZSLgogLklQCiBMb2NhbGl6ZWQga2V5cyBhcmUKIG1hc3RlciBrZXlzIHdoaWNoIGhhdmUgYmVlbiBjb252ZXJ0ZWQgdG8gYSB1bmlxdWUga2V5IHdoaWNoIGlzIG9ubHkKQEAgLTI1Niw2ICsyNjAsMTIgQEAKIHByaXZpbGVnZWQgZm9yIFNTSCB1c2VycyB0aGF0IGFyZSBhbGxvd2VkIHRvIGNvbm5lY3QgdG8gdGhlIFNOTVAKIHNlcnZpY2UgKFZBQ00gYWNjZXNzIHN0aWxsIG5lZWRzIHRvIGJlIGdyYW50ZWQgYXMgd2VsbCwgbW9zdCBsaWtlbHkKIHRocm91Z2ggdGhlIFRTTSBzZWN1cml0eSBtb2RlbCkuCisuSVAgInNzaHVzZXJuYW1lIE5BTUUiCitTZXRzIHRoZSBTU0ggdXNlciBuYW1lIGZvciBsb2dnaW5nIGludG8gdGhlIHJlbW90ZSBzeXN0ZW0uCisuSVAgInNzaHB1YmtleSBGSUxFIgorU2V0IHRoZSBwdWJsaWMga2V5IGZpbGUgdG8gdXNlIHdoZW4gY29ubmVjdGluZyB0byBhIHJlbW90ZSBzeXN0ZW0uCisuSVAgInNzaHByaXZrZXkgRklMRSIKK1NldCB0aGUgcHJpdmF0ZSBrZXkgZmlsZSB0byB1c2Ugd2hlbiBjb25uZWN0aW5nIHRvIGEgcmVtb3RlIHN5c3RlbS4KIC5cIgogLlwiIFhYWCAtIGFyZSB0aGVzZSBsZW5ndGhzIHN0aWxsIGNvcnJlY3QgPwogLlwiCkBAIC0yOTYsMTggKzMwNiwxOCBAQAogLlNIIE1JQiBIQU5ETElORwogLklQICJtaWJkaXJzIERJUkxJU1QiCiBzcGVjaWZpZXMgYSBsaXN0IG9mIGRpcmVjdG9yaWVzIHRvIHNlYXJjaCBmb3IgTUlCIGZpbGVzLgotVGhpcyBvcGVyYXRlcyBpbiB0aGUgc2FtZSB3YXkgYXMgdGhlIFxmQi1NXGZSIG9wdGlvbiAtCitUaGlzIG9wZXJhdGVzIGluIHRoZSBzYW1lIHdheSBhcyB0aGUgXGZCXC1NXGZSIG9wdGlvbiAtCiBzZWUgXGZJc25tcGNtZCgxKVxmUiBmb3IgZGV0YWlscy4KIE5vdGUgdGhhdCB0aGlzIHZhbHVlIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZQogLkIgTUlCRElSUwotZW52aXJvbm1lbnQgdmFyaWFibGUsIGFuZCB0aGUgXGZCLU1cZlIgb3B0aW9uLgorZW52aXJvbm1lbnQgdmFyaWFibGUsIGFuZCB0aGUgXGZCXC1NXGZSIG9wdGlvbi4KIC5JUCAibWlicyBNSUJMSVNUIgogc3BlY2lmaWVzIGEgbGlzdCBvZiBNSUIgbW9kdWxlcyAobm90IGZpbGVzKSB0aGF0IHNob3VsZCBiZSBsb2FkZWQuCi1UaGlzIG9wZXJhdGVzIGluIHRoZSBzYW1lIHdheSBhcyB0aGUgXGZCLW1cZlIgb3B0aW9uIC0KK1RoaXMgb3BlcmF0ZXMgaW4gdGhlIHNhbWUgd2F5IGFzIHRoZSBcZkJcLW1cZlIgb3B0aW9uIC0KIHNlZSBcZklzbm1wY21kKDEpXGZSIGZvciBkZXRhaWxzLgogTm90ZSB0aGF0IHRoaXMgbGlzdCBjYW4gYmUgb3ZlcnJpZGRlbiBieSB0aGUKIC5CIE1JQlMKLWVudmlyb25tZW50IHZhcmlhYmxlLCBhbmQgdGhlIFxmQi1tXGZSIG9wdGlvbi4KK2Vudmlyb25tZW50IHZhcmlhYmxlLCBhbmQgdGhlIFxmQlwtbVxmUiBvcHRpb24uCiAuSVAgIm1pYmZpbGUgRklMRSIKIHNwZWNpZmllcyBhIChzaW5nbGUpIE1JQiBmaWxlIHRvIGxvYWQsIGluIGFkZGl0aW9uIHRvIHRoZQogbGlzdCByZWFkIGZyb20gdGhlIFxmSW1pYnNcZlIgdG9rZW4gKG9yIGVxdWl2YWxlbnQgY29uZmlndXJhdGlvbikuCkBAIC0zMTksNyArMzI5LDcgQEAKIC5JUCAiY29tbWVudFRvRU9MICgxfHllc3x0cnVlfDB8bm98ZmFsc2UpIgogd2hldGhlciBNSUIgcGFyc2luZyBzaG91bGQgYmUgc3RyaWN0IGFib3V0IGNvbW1lbnQgdGVybWluYXRpb24uCiBNYW55IE1JQiB3cml0ZXJzIGFzc3VtZSB0aGF0IEFTTi4xIGNvbW1lbnRzIGV4dGVuZCB0byB0aGUgZW5kIG9mCi10aGUgdGV4dCBsaW5lLCByYXRoZXIgdGhhbiBiZWluZyB0ZXJtaW5hdGVkIGJ5IHRoZSBuZXh0ICItLSIgdG9rZW4uCit0aGUgdGV4dCBsaW5lLCByYXRoZXIgdGhhbiBiZWluZyB0ZXJtaW5hdGVkIGJ5IHRoZSBuZXh0ICJcLVwtIiB0b2tlbi4KIFRoaXMgdG9rZW4gY2FuIGJlIHVzZWQgdG8gYWNjZXB0IHN1Y2ggKHN0cmljdGx5IGluY29ycmVjdCkgTUlCcy4KIC5icgogTm90ZSB0aGF0IHRoaXMgZGlyZWN0aXZlIHdhcyBwcmV2aW91cyAobWlzLSluYW1lZCBcZklzdHJpY3RDb21tZW50VGVybVxmUiwKQEAgLTM0MCw0OSArMzUwLDQ5IEBACiBiZWluZyBwYXNzZWQgdG8gdGhlIGxvZ2dpbmcgcm91dGluZXMuICBUaGlzIG9wdGlvbiBpcyBvbmx5IHVzZWQgd2hlbiBmaWxlIGxvZ2dpbmcgaXMgYWN0aXZlLiAKIC5JUCAicHJpbnROdW1lcmljRW51bXMgKDF8eWVzfHRydWV8MHxub3xmYWxzZSkiCiBFcXVpdmFsZW50IHRvCi0uQlIgLU9lIC4KKy5CUiBcLU9lIC4KIC5JUCAicHJpbnROdW1lcmljT2lkcyAoMXx5ZXN8dHJ1ZXwwfG5vfGZhbHNlKSIKIEVxdWl2YWxlbnQgdG8KLS5CUiAtT24gLgorLkJSIFwtT24gLgogLklQICJkb250QnJlYWtkb3duT2lkcyAoMXx5ZXN8dHJ1ZXwwfG5vfGZhbHNlKSIKIEVxdWl2YWxlbnQgdG8KLS5CUiAtT2IgLgorLkJSIFwtT2IgLgogLklQICJlc2NhcGVRdW90ZXMgKDF8eWVzfHRydWV8MHxub3xmYWxzZSkiCiBFcXVpdmFsZW50IHRvCi0uQlIgLU9FIC4KKy5CUiBcLU9FIC4KIC5JUCAicXVpY2tQcmludGluZyAoMXx5ZXN8dHJ1ZXwwfG5vfGZhbHNlKSIKIEVxdWl2YWxlbnQgdG8KLS5CUiAtT3EgLgorLkJSIFwtT3EgLgogLklQICJwcmludFZhbHVlT25seSAoMXx5ZXN8dHJ1ZXwwfG5vfGZhbHNlKSIKIEVxdWl2YWxlbnQgdG8KLS5CUiAtT3YgLgorLkJSIFwtT3YgLgogLklQICJkb250UHJpbnRVbml0cyAoMXx5ZXN8dHJ1ZXwwfG5vfGZhbHNlKSIKIEVxdWl2YWxlbnQgdG8KLS5CUiAtT1UgLgorLkJSIFwtT1UgLgogLklQICJudW1lcmljVGltZXRpY2tzICgxfHllc3x0cnVlfDB8bm98ZmFsc2UpIgogRXF1aXZhbGVudCB0bwotLkJSIC1PdCAuCisuQlIgXC1PdCAuCiAuSVAgInByaW50SGV4VGV4dCAoMXx5ZXN8dHJ1ZXwwfG5vfGZhbHNlKSIKIEVxdWl2YWxlbnQgdG8KLS5CUiAtT1QgLgorLkJSIFwtT1QgLgogLklQICJoZXhPdXRwdXRMZW5ndGggaW50ZWdlciIKIFNwZWNpZmllcyB3aGVyZSB0byBicmVhayB1cCB0aGUgb3V0cHV0IG9mIGhleGFkZWNpbWFsIHN0cmluZ3MuICAKIFNldCB0byAwIHRvIGRpc2FibGUgbGluZSBicmVha3MuICBEZWZhdWx0cyB0byAxNi4KIC5JUCAic3VmZml4UHJpbnRpbmcgKDB8MXwyKSIKIFRoZSB2YWx1ZSAxIGlzIGVxdWl2YWxlbnQgdG8KLS5CIC1PcworLkIgXC1PcwogYW5kIHRoZSB2YWx1ZSAyIGlzIGVxdWl2YWxlbnQgdG8KLS5CUiAtT1MgLgorLkJSIFwtT1MgLgogLklQICJvaWRPdXRwdXRGb3JtYXQgKDF8MnwzfDR8NXw2KSIKLU1hcHMgLU8gb3B0aW9ucyBhcyBmb2xsb3c6IC1Pcz0xLCAtT1M9MiwgLU9mPTMsIC1Pbj00LCAtT3U9NS4KLVRoZSB2YWx1ZSA2IGhhcyBubyBtYXRjaGluZyAtTyBvcHRpb24uIEl0IHN1cHByZXNzZXMgb3V0cHV0LgorTWFwcyBcLU8gb3B0aW9ucyBhcyBmb2xsb3c6IFwtT3M9MSwgXC1PUz0yLCBcLU9mPTMsIFwtT249NCwgXC1PdT01LgorVGhlIHZhbHVlIDYgaGFzIG5vIG1hdGNoaW5nIFwtTyBvcHRpb24uIEl0IHN1cHByZXNzZXMgb3V0cHV0LgogLklQICJleHRlbmRlZEluZGV4ICgxfHllc3x0cnVlfDB8bm98ZmFsc2UpIgogRXF1aXZhbGVudCB0bwotLkJSIC1PWCAuCisuQlIgXC1PWCAuCiAuSVAgIm5vRGlzcGxheUhpbnQgKDF8eWVzfHRydWV8MHxub3xmYWxzZSkiCiBEaXNhYmxlcyB0aGUgdXNlIG9mIERJU1BMQVktSElOVCBpbmZvcm1hdGlvbiB3aGVuIHBhcnNpbmcgaW5kaWNlcyBhbmQKIHZhbHVlcyB0byBzZXQuIEVxdWl2YWxlbnQgdG8KLS5CUiAtSWggLgorLkJSIFwtSWggLgogLlNIIEZJTEVTCiAuSVAgIlN5c3RlbS13aWRlIGNvbmZpZ3VyYXRpb24gZmlsZXM6IgogU1lTQ09ORkRJUi9zbm1wL3NubXAuY29uZgpkaWZmIC0tZ2l0IGEvbWFuL3NubXBidWxrZ2V0LjEuZGVmIGIvbWFuL3NubXBidWxrZ2V0LjEuZGVmCmluZGV4IGI0ZTA2MmQuLjI1MjEwZjMgMTAwNjQ0Ci0tLSBhL21hbi9zbm1wYnVsa2dldC4xLmRlZgorKysgYi9tYW4vc25tcGJ1bGtnZXQuMS5kZWYKQEAgLTE3LDEzICsxNywxMyBAQAogcGlucG9pbnQgd2h5IHRoZSByZXF1ZXN0IHdhcyBtYWxmb3JtZWQuCiAuU0ggT1BUSU9OUwogLlRQIDgKLS5CSSAtQ24gPE5VTT4KKy5CSSBcLUNuIDxOVU0+CiBTZXQgdGhlCiAuSSBub24tcmVwZWF0ZXJzCiBmaWVsZCBpbiB0aGUgR0VUQlVMSyBQRFUuICBUaGlzIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIHN1cHBsaWVkCiB2YXJpYWJsZXMgdGhhdCBzaG91bGQgbm90IGJlIGl0ZXJhdGVkIG92ZXIuICBUaGUgZGVmYXVsdCBpcyAwLgogLlRQCi0uQkkgLUNyIDxOVU0+CisuQkkgXC1DciA8TlVNPgogU2V0IHRoZQogLkkgbWF4LXJlcGV0aXRpb25zCiBmaWVsZCBpbiB0aGUgR0VUQlVMSyBQRFUuICBUaGlzIHNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2YKQEAgLTQxLDcgKzQxLDcgQEAKIC5TSCBFWEFNUExFCiBUaGUgY29tbWFuZDoKIC5QUAotc25tcGJ1bGtnZXQgLXYyYyAtQ24xIC1DcjUgLU9zIC1jIHB1YmxpYyB6ZXVzIHN5c3RlbSBpZlRhYmxlCitzbm1wYnVsa2dldCBcLXYyYyBcLUNuMSBcLUNyNSBcLU9zIFwtYyBwdWJsaWMgemV1cyBzeXN0ZW0gaWZUYWJsZQogLlBQCiB3aWxsIHJldHJpZXZlIHRoZSB2YXJpYWJsZSBzeXN0ZW0uc3lzRGVzY3IuMCAod2hpY2ggaXMgdGhlCiBsZXhpY29ncmFwaGljYWxseSBuZXh0IG9iamVjdCB0byBzeXN0ZW0pIGFuZCB0aGUgZmlyc3QgNSBvYmplY3RzIGluCmRpZmYgLS1naXQgYS9tYW4vc25tcGJ1bGt3YWxrLjEuZGVmIGIvbWFuL3NubXBidWxrd2Fsay4xLmRlZgppbmRleCBlNmM3YTY5Li5jNWY0YTA2IDEwMDY0NAotLS0gYS9tYW4vc25tcGJ1bGt3YWxrLjEuZGVmCisrKyBiL21hbi9zbm1wYnVsa3dhbGsuMS5kZWYKQEAgLTEsNyArMSw3IEBACiAuXCIgLSotIG5yb2ZmIC0qLQotLlwiIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvcHlyaWdodC4gCi0uXCIgU2VlIHRoZSBOZXQtU05NUCBDT1BZSU5HIGZpbGUgZm9yIG1vcmUgZGV0YWlscyBhbmQgb3RoZXIKLS5cIiBjb3B5cmlnaHRzIHRoYXQgbWF5IGFwcGx5OgorLlwiIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvcHlyaWdodC4gIFNlZQorLlwiIHRoZSBOZXQtU05NUCBDT1BZSU5HIGZpbGUgZm9yIG1vcmUgZGV0YWlscyBhbmQgb3RoZXIgY29weXJpZ2h0cworLlwiIHRoYXQgbWF5IGFwcGx5OgogLlwiIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogLlwiIAlDb3B5cmlnaHQgMTk4OCwgMTk4OSBieSBDYXJuZWdpZSBNZWxsb24gVW5pdmVyc2l0eQogLlwiIApAQCAtNDIsNyArNDIsNyBAQAogLklSIHZhcmlhYmxlcyg1KSAuCiBJZiBubyBPSUQgYXJndW1lbnQgaXMgcHJlc2VudCwKIC5CIHNubXBidWxrd2Fsawotd2lsbCBzZWFyY2ggTUlCLTIuCit3aWxsIHNlYXJjaCBNSUJcLTIuCiAuUFAKIElmIHRoZSBuZXR3b3JrIGVudGl0eSBoYXMgYW4gZXJyb3IgcHJvY2Vzc2luZyB0aGUgcmVxdWVzdCBwYWNrZXQsIGFuCiBlcnJvciBwYWNrZXQgd2lsbCBiZSByZXR1cm5lZCBhbmQgYSBtZXNzYWdlIHdpbGwgYmUgc2hvd24sIGhlbHBpbmcgdG8KQEAgLTUyLDcgKzUyLDcgQEAKIE1JQiwgdGhlIG1lc3NhZ2UgIkVuZCBvZiBNSUIiIHdpbGwgYmUgZGlzcGxheWVkLgogLlNIIE9QVElPTlMKIC5UUCA4Ci0uQiAtQ2MKKy5CIFwtQ2MKIERvIG5vdCBjaGVjayB3aGV0aGVyIHRoZSByZXR1cm5lZCBPSURzIGFyZSBpbmNyZWFzaW5nLiAgU29tZSBhZ2VudHMKIChMYXNlckpldHMgYXJlIGFuIGV4YW1wbGUpIHJldHVybiBPSURzIG91dCBvZiBvcmRlciwgYnV0IGNhbgogY29tcGxldGUgdGhlIHdhbGsgYW55d2F5LiAgT3RoZXIgYWdlbnRzIHJldHVybiBPSURzIHRoYXQgYXJlIG91dCBvZgpAQCAtNjIsMTAgKzYyLDEwIEBACiAuQiBzbm1wYnVsa3dhbGsKIHRyaWVzIHRvIGRldGVjdCB0aGlzIGJlaGF2aW9yIGFuZCB3YXJucyB5b3Ugd2hlbiBpdCBoaXRzIGFuIGFnZW50CiBhY3RpbmcgaWxsZWdhbGx5LiAgVXNlCi0uQiAtQ2MKKy5CIFwtQ2MKIHRvIHR1cm4gb2ZmIHRoaXMgYmVoYXZpb3VyLgogLlRQCi0uQiAtQ2kKKy5CIFwtQ2kKIEluY2x1ZGUgdGhlIGdpdmVuIE9JRCBpbiB0aGUgc2VhcmNoIHJhbmdlLiAgTm9ybWFsbHkKIC5CIHNubXBidWxrd2FsawogdXNlcyBHRVRCVUxLIHJlcXVlc3RzIHN0YXJ0aW5nIHdpdGggdGhlIE9JRCB5b3Ugc3BlY2lmaWVkIGFuZCByZXR1cm5zCkBAIC03NCwxNiArNzQsMTYgQEAKIHJlc3VsdHMgaWYgaXQgaXMgYSB2YWxpZCBPSUQgaW4gdGhlIHRyZWUgaXRzZWxmLiAgVGhpcyBvcHRpb24gbGV0cyB5b3UKIGRvIHRoaXMuCiAuVFAKLS5CSSAtQ24gPE5VTT4KKy5CSSBcLUNuIDxOVU0+CiBTZXQgdGhlCiAuSSBub24tcmVwZWF0ZXJzCiBmaWVsZCBpbiB0aGUgR0VUQlVMSyBQRFVzLiAgVGhpcyBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBzdXBwbGllZAogdmFyaWFibGVzIHRoYXQgc2hvdWxkIG5vdCBiZSBpdGVyYXRlZCBvdmVyLiAgVGhlIGRlZmF1bHQgaXMgMC4KIC5UUAotLkIgLUNwCisuQiBcLUNwCiBVcG9uIGNvbXBsZXRpb24gb2YgdGhlIHdhbGssIHByaW50IHRoZSBudW1iZXIgb2YgdmFyaWFibGVzIGZvdW5kLgogLlRQCi0uQkkgLUNyIDxOVU0+CisuQkkgXC1DciA8TlVNPgogU2V0IHRoZQogLkkgbWF4LXJlcGV0aXRpb25zCiBmaWVsZCBpbiB0aGUgR0VUQlVMSyBQRFVzLiAgVGhpcyBzcGVjaWZpZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mCkBAIC0xMDEsNyArMTAxLDcgQEAKIC5TSCBFWEFNUExFCiBUaGUgY29tbWFuZDoKIC5QUAotc25tcGJ1bGt3YWxrIC12MmMgLU9zIC1jIHB1YmxpYyB6ZXVzIHN5c3RlbQorc25tcGJ1bGt3YWxrIFwtdjJjIFwtT3MgXC1jIHB1YmxpYyB6ZXVzIHN5c3RlbQogLlBQCiB3aWxsIHJldHJpZXZlIGFsbCBvZiB0aGUgdmFyaWFibGVzIHVuZGVyIHN5c3RlbToKIC5QUApkaWZmIC0tZ2l0IGEvbWFuL3NubXBjbWQuMS5kZWYgYi9tYW4vc25tcGNtZC4xLmRlZgppbmRleCBkOTdjYzE0Li5lNGRmOGIyIDEwMDY0NAotLS0gYS9tYW4vc25tcGNtZC4xLmRlZgorKysgYi9tYW4vc25tcGNtZC4xLmRlZgpAQCAtNDksOCArNDksOCBAQAogSW4gYWRkaXRpb24gdG8gdGhlIG9wdGlvbnMgZGVzY3JpYmVkIGluIHRoaXMgbWFudWFsIHBhZ2UsIGFsbCBvZiB0aGUKIHRva2VucyBkZXNjcmliZWQgaW4gdGhlIFxmSXNubXAuY29uZlxmUiBhbmQgb3RoZXIgLmNvbmYgbWFudWFsIHBhZ2VzCiBjYW4gYmUgdXNlZCBvbiB0aGUgY29tbWFuZCBsaW5lIG9mIE5ldC1TTk1QIGFwcGxpY2F0aW9ucyBhcyB3ZWxsIGJ5Ci1wcmVmaXhpbmcgdGhlbSB3aXRoICItLSIuICBFRywgc3BlY2lmeWluZwotXGZJLS1kb250TG9hZEhvc3RDb25maWc9dHJ1ZVxmUiBvbiB0aGUgY29tbWFuZCBsaW5lIHdpbGwgdHVybiBvZgorcHJlZml4aW5nIHRoZW0gd2l0aCAiXC1cLSIuICBFRywgc3BlY2lmeWluZworXGZJXC1cLWRvbnRMb2FkSG9zdENvbmZpZz10cnVlXGZSIG9uIHRoZSBjb21tYW5kIGxpbmUgd2lsbCB0dXJuIG9mCiBsb2FkaW5nIG9mIHRoZSBob3N0IHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZmlsZXMuCiAuUFAKIFRoZSBzbm1wLmNvbmYgZmlsZSBzZXR0aW5ncyBhbmQgdGhlIGRvdWJsZS1kYXNoIGFyZ3VtZW50cyBvdmVyLXJpZGUKQEAgLTYwLDE0ICs2MCwxNCBAQAogdGhlIGxvbmdlci1mb3JtIGRvdWJsZS1kYXNoIGFyZ3VtZW50cyB0byBzdWNjZXNzZnVsbHkgdHJ1bXAgdGhlCiBcZklzbm1wLmNvbmZcZlIgZmlsZSBzZXR0aW5ncy4KIC5TSCBHZW5lcmljIE9wdGlvbnMKLVRoZXMgb3B0aW9ucyBjb250cm9sIGhvdyB0aGUgTmV0LVNOTVAgY29tbWFuZHMgYmVoYXZlIHJlZ2FyZGxlc3Mgb2YKK1RoZXNlIG9wdGlvbnMgY29udHJvbCBob3cgdGhlIE5ldC1TTk1QIGNvbW1hbmRzIGJlaGF2ZSByZWdhcmRsZXNzIG9mCiB3aGF0IHZlcnNpb24gb2YgU05NUCB5b3UgYXJlIHVzaW5nLiAgU2VlIGZ1cnRoZXIgYmVsb3cgZm9yIG9wdGlvbnMKIHRoYXQgY29udHJvbCBzcGVjaWZpYyB2ZXJzaW9ucyBvciBzdWItbW9kdWxlcyBvZiB0aGUgU05NUCBwcm90b2NvbC4gCiAuVFAKLS5CIC1kCisuQiBcLWQKIER1bXAgKGluIGhleGFkZWNpbWFsKSB0aGUgcmF3IFNOTVAgcGFja2V0cyBzZW50IGFuZCByZWNlaXZlZC4KIC5UUAotLkIgLURcZklbVE9LRU5bLC4uLl1dCisuQiBcLURcZklbVE9LRU5bLC4uLl1dCiBUdXJuIG9uIGRlYnVnZ2luZyBvdXRwdXQgZm9yIHRoZSBnaXZlbgogLklSICJUT0tFTiIgIihzKS4iCiBUcnkKQEAgLTc1LDI0ICs3NSwyNCBAQAogZm9yIGV4dHJlbWVseSB2ZXJib3NlIG91dHB1dC4KIC5UUAogLlRQCi0uQiAtaCwgLS1oZWxwCisuQiBcLWgsIFwtXC1oZWxwCiBEaXNwbGF5IGEgYnJpZWYgdXNhZ2UgbWVzc2FnZSBhbmQgdGhlbiBleGl0LgogLlRQCi0uQiAtSAorLkIgXC1ICiBEaXNwbGF5IGEgbGlzdCBvZiBjb25maWd1cmF0aW9uIGZpbGUgZGlyZWN0aXZlcyB1bmRlcnN0b29kIGJ5IHRoZQogY29tbWFuZCBhbmQgdGhlbiBleGl0LgogLlRQCi0uQkkgLUkgIiBbYnJSaHVdIgorLkJJIFwtSSAiIFticlJodV0iCiBTcGVjaWZpZXMgaW5wdXQgcGFyc2luZyBvcHRpb25zLiBTZWUgCiAuQiBJTlBVVCBPUFRJT05TIAogYmVsb3cuCiAuVFAKLS5CSSAtTCAiIFtlRWZGb09zU10iCisuQkkgXC1MICIgW2VFZkZvT3NTXSIKIFNwZWNpZmllcyBvdXRwdXQgbG9nZ2luZyBvcHRpb25zLiBTZWUgCiAuQiBMT0dHSU5HIE9QVElPTlMgCiBiZWxvdy4KIC5UUAotLkJJIC1tICIgTUlCTElTVCIKKy5CSSBcLW0gIiBNSUJMSVNUIgogU3BlY2lmaWVzIGEgY29sb24gc2VwYXJhdGVkIGxpc3Qgb2YgTUlCIG1vZHVsZXMgKG5vdCBmaWxlcykgdG8gbG9hZCBmb3IKIHRoaXMgYXBwbGljYXRpb24uICBUaGlzIG92ZXJyaWRlcyAob3IgYXVnbWVudHMpIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZQogTUlCUywgdGhlIFxmSXNubXAuY29uZlxmUiBkaXJlY3RpdmUgXGZJbWlic1xmUiwgYW5kIHRoZSBsaXN0IG9mIE1JQnMKQEAgLTEwMCw3ICsxMDAsNyBAQAogLklQCiBJZiAKIC5JIE1JQkxJU1QKLWhhcyBhIGxlYWRpbmcgJy0nIG9yICcrJyBjaGFyYWN0ZXIsIHRoZW4gdGhlIE1JQiBtb2R1bGVzIGxpc3RlZCBhcmUKK2hhcyBhIGxlYWRpbmcgJ1wtJyBvciAnKycgY2hhcmFjdGVyLCB0aGVuIHRoZSBNSUIgbW9kdWxlcyBsaXN0ZWQgYXJlCiBsb2FkZWQgaW4gYWRkaXRpb24gdG8gdGhlIGRlZmF1bHQgbGlzdCwgY29taW5nIGJlZm9yZSBvciBhZnRlcgogdGhpcyBsaXN0IHJlc3BlY3RpdmVseS4KIE90aGVyd2lzZSwgdGhlIHNwZWNpZmllZCBNSUJzIGFyZSBsb2FkZWQgXGZJaW5zdGVhZFxmUiBvZiB0aGlzCkBAIC0xMTIsNyArMTEyLDcgQEAKIEV2ZXJ5IGZpbGUgd2hvc2UgbmFtZSBkb2VzIG5vdCBiZWdpbiB3aXRoICIuIiB3aWxsIGJlIHBhcnNlZCBhcwogaWYgaXQgd2VyZSBhIE1JQiBmaWxlLgogLlRQCi0uQkkgLU0gIiBESVJMSVNUIgorLkJJIFwtTSAiIERJUkxJU1QiCiBTcGVjaWZpZXMgYSBjb2xvbiBzZXBhcmF0ZWQgbGlzdCBvZiBkaXJlY3RvcmllcyB0byBzZWFyY2ggZm9yIE1JQnMuCiBUaGlzIG92ZXJyaWRlcyAob3IgYXVnbWVudHMpIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBNSUJESVJTLAogdGhlIFxmSXNubXAuY29uZlxmUiBkaXJlY3RpdmUgXGZJbWliZGlyc1xmUiwgYW5kIHRoZSBkZWZhdWx0CkBAIC0xMjEsNyArMTIxLDcgQEAKIC5JUAogSWYgCiAuSSBESVJMSVNUCi1oYXMgYSBsZWFkaW5nICctJyBvciAnKycgY2hhcmFjdGVyLCB0aGVuIHRoZSBnaXZlbiBkaXJlY3RvcmllcyBhcmUKK2hhcyBhIGxlYWRpbmcgJ1wtJyBvciAnKycgY2hhcmFjdGVyLCB0aGVuIHRoZSBnaXZlbiBkaXJlY3RvcmllcyBhcmUKIGFkZGVkIHRvIHRoZSBkZWZhdWx0IGxpc3QsIGJlaW5nIHNlYXJjaGVkIGJlZm9yZSBvciBhZnRlciB0aGUKIGRpcmVjdG9yaWVzIG9uIHRoaXMgbGlzdCByZXNwZWN0aXZlbHkuCiBPdGhlcndpc2UsIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3JpZXMgYXJlIHNlYXJjaGVkIFxmSWluc3RlYWRcZlIKQEAgLTEzNSw0NiArMTM1LDQ2IEBACiBUbyBhdm9pZCBzZWFyY2hpbmcgYW55IE1JQiBkaXJlY3Rvcmllcywgc2V0IHRoZSBNSUJESVJTCiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byB0aGUgZW1wdHkgc3RyaW5nICgiIikuCiAuXCIKLS5cIiBYWFggLSBvciAgICAgLU0gIiIgICAgPz8KKy5cIiBYWFggLSBvciAgICAgXC1NICIiICAgID8/CiAuXCIKIAotTm90ZSB0aGF0IE1JQnMgc3BlY2lmaWVkIHVzaW5nIHRoZSAtbSBvcHRpb24gb3IgdGhlIFxmSW1pYnNcZlIKK05vdGUgdGhhdCBNSUJzIHNwZWNpZmllZCB1c2luZyB0aGUgXC1tIG9wdGlvbiBvciB0aGUgXGZJbWlic1xmUgogY29uZmlndXJhdGlvbiBkaXJlY3RpdmUgd2lsbCBiZSBsb2FkZWQgZnJvbSBvbmUgb2YgdGhlIGRpcmVjdG9yaWVzCi1saXN0ZWQgYnkgdGhlIC1NIG9wdGlvbiAob3IgZXF1aXZhbGVudHMpLgorbGlzdGVkIGJ5IHRoZSBcLU0gb3B0aW9uIChvciBlcXVpdmFsZW50cykuCiBUaGUgXGZJbWliZmlsZVxmUiBkaXJlY3RpdmUgdGFrZXMgYSBmdWxsIHBhdGggdG8gdGhlIHNwZWNpZmllZCBNSUIKIGZpbGUsIHNvIHRoaXMgZG9lcyBub3QgbmVlZCB0byBiZSBpbiB0aGUgTUlCIGRpcmVjdG9yeSBzZWFyY2ggbGlzdC4KIC5UUAotLkIgLXYgXGZJMVxmUiB8IFxmSTJjXGZSIHwgXGZJMworLkIgXC12IFxmSTFcZlIgfCBcZkkyY1xmUiB8IFxmSTMKIFNwZWNpZmllcyB0aGUgcHJvdG9jb2wgdmVyc2lvbiB0byB1c2U6IDEgKFJGQ3MgMTE1NS0xMTU3KSwgMmMgKFJGQ3MgMTkwMS0xOTA4KSwKIG9yIDMgKFJGQ3MgMjU3MS0yNTc0KS4gIFRoZSBkZWZhdWx0IGlzIHR5cGljYWxseSB2ZXJzaW9uIDMuCiBPdmVycmlkZXMgdGhlIFxmSWRlZlZlcnNpb25cZlIgdG9rZW4gaW4gdGhlCiAuSSBzbm1wLmNvbmYKIGZpbGUuCi0uQkkgLU8gIiBbYWJlRWZucVFzU3RUdVV2eFhdIgorLkJJIFwtTyAiIFthYmVFZm5xUXNTdFR1VXZ4WF0iCiBTcGVjaWZpZXMgb3V0cHV0IHByaW50aW5nIG9wdGlvbnMuIFNlZSAKIC5CIE9VVFBVVCBPUFRJT05TCiBiZWxvdy4KIC5UUAotLkJJIC1QICIgW2NkZVJ1d1ddIgorLkJJIFwtUCAiIFtjZGVSdXdXXSIKIFNwZWNpZmllcyBNSUIgcGFyc2luZyBvcHRpb25zLiAgU2VlCiAuQiBNSUIgUEFSU0lORyBPUFRJT05TCiBiZWxvdy4KIC5UUAotLkJJIC1yICIgcmV0cmllcyIKKy5CSSBcLXIgIiByZXRyaWVzIgogU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgcmV0cmllcyB0byBiZSB1c2VkIGluIHRoZSByZXF1ZXN0cy4gVGhlIGRlZmF1bHQKIGlzIDUuCiAuVFAKLS5CSSAtdCAiIHRpbWVvdXQiCisuQkkgXC10ICIgdGltZW91dCIKIFNwZWNpZmllcyB0aGUgdGltZW91dCBpbiBzZWNvbmRzIGJldHdlZW4gcmV0cmllcy4gVGhlIGRlZmF1bHQgaXMgMS4KIEZsb2F0aW5nIHBvaW50IG51bWJlcnMgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBmcmFjdGlvbnMgb2Ygc2Vjb25kcy4KIC5UUAotLkIgLVYsIC0tdmVyc2lvbgorLkIgXC1WLCBcLVwtdmVyc2lvbgogRGlzcGxheSB2ZXJzaW9uIGluZm9ybWF0aW9uIGZvciB0aGUgYXBwbGljYXRpb24gYW5kIHRoZW4gZXhpdC4KIC5UUAotLkJJIC1ZICJuYW1lIj0idmFsdWUiCisuQkkgXC1ZICJuYW1lIj0idmFsdWUiCiAuVFAKLS5CSSAtLSAibmFtZSI9InZhbHVlIgotQWxsb3dzIHRvIHNwZWNpZnkgYW55IHRva2VuICgibmFtZSIpIHN1cHBvcnRlZCBpbiB0aGUKKy5CSSBcLVwtICJuYW1lIj0idmFsdWUiCitBbGxvd3Mgb25lIHRvIHNwZWNpZnkgYW55IHRva2VuICgibmFtZSIpIHN1cHBvcnRlZCBpbiB0aGUKIC5JIHNubXAuY29uZgogZmlsZSBhbmQgc2V0cyBpdHMgdmFsdWUgdG8gInZhbHVlIi4gT3ZlcnJpZGVzIHRoZSBjb3JyZXNwb25kaW5nIHRva2VuIGluIHRoZQogLkkgc25tcC5jb25mCkBAIC0xODksNyArMTg5LDcgQEAKIChEKVRMUyBzdXBwb3J0LgogCiAuVFAKLS5CSSAtbCAiIHNlY0xldmVsIgorLkJJIFwtbCAiIHNlY0xldmVsIgogU2V0IHRoZSBzZWN1cml0eUxldmVsIHVzZWQgZm9yIFNOTVB2MyBtZXNzYWdlcwogKG5vQXV0aE5vUHJpdnxhdXRoTm9Qcml2fGF1dGhQcml2KS4gIEFwcHJvcHJpYXRlIHBhc3MgcGhyYXNlKHMpIG11c3QKIHByb3ZpZGVkIHdoZW4gdXNpbmcgYW55IGxldmVsIGhpZ2hlciB0aGFuIG5vQXV0aE5vUHJpdi4KQEAgLTE5Nyw3ICsxOTcsNyBAQAogLkkgc25tcC5jb25mCiBmaWxlLgogLlRQCi0uQkkgLW4gIiBjb250ZXh0TmFtZSIKKy5CSSBcLW4gIiBjb250ZXh0TmFtZSIKIFNldCB0aGUgY29udGV4dE5hbWUgdXNlZCBmb3IgU05NUHYzIG1lc3NhZ2VzLiAgVGhlIGRlZmF1bHQKIGNvbnRleHROYW1lIGlzIHRoZSBlbXB0eSBzdHJpbmcgIiIuICBPdmVycmlkZXMgdGhlIFxmSWRlZkNvbnRleHRcZlIgdG9rZW4KIGluIHRoZQpAQCAtMjE3LDM5ICsyMTcsMzkgQEAKIGl0IHdpbGwgbG9vayBpbiB+Ly5zbm1wL3RscyBhbmQgaW4gL3Vzci9sb2NhbC9zaGFyZS9zbm1wL3RscyBmb3IKIGNlcnRpZmljYXRlcy4gIFRoZSBjZXJ0aWZpY2F0ZSBjb21wb25lbnRzIChlZywgdGhlIHB1YmxpYyBhbmQgcHJpdmF0ZQogaGFsdmVzKSBhcmUgc3RvcmVkIGluIHN1Yi1kaXJlY3RvcmllcyB1bmRlcm5lYXRoIHRoaXMgcm9vdCBzZXQgb2YKLWRpcmVjdG9yaWVzLiAgU2VlIHRoZSBuZXQtc25tcC1jZXJ0IHRvb2wgZm9yIGhlbHAgaW4gaW1wb3J0aW5nLAorZGlyZWN0b3JpZXMuICBTZWUgdGhlIG5ldFwtc25tcFwtY2VydCB0b29sIGZvciBoZWxwIGluIGltcG9ydGluZywKIGNyZWF0aW5nIGFuZCBtYW5hZ2luZyBOZXQtU05NUCBjZXJ0aWZpY2F0ZXMuCiAuSSAiPGNlcnRpZmljYXRlLXNwZWNpZmllcj5zIgogY2FuIHJlZmVyZW5jZSBlaXRoZXIgYSBmaW5nZXJwcmludCBvZiB0aGUgY2VydGlmaWNhdGUgdG8gdXNlICh0aGUKLW5ldC1zbm1wLWNlcnQgdG9vbCBjYW4gaGVscCB5b3UgZmlndXJlIG91dCB0aGUgY2VydGlmaWNhdGVzKSBvciB0aGUKK25ldFwtc25tcFwtY2VydCB0b29sIGNhbiBoZWxwIHlvdSBmaWd1cmUgb3V0IHRoZSBjZXJ0aWZpY2F0ZXMpIG9yIHRoZQogZmlsZW5hbWUncyBwcmVmaXggY2FuIGJlIHVzZWQuICBGb3IgZXhhbXBsZSwgaWYgeW91IGhhZCBhICJzbm1wZC5jcnQiCiBjZXJ0aWZpY2F0ZSBmaWxlIHRoZW4geW91IGNvdWxkIHNpbXBseSByZWZlciB0byB0aGUgY2VydGlmaWNhdGUgdmlhCiB0aGUgInNubXBkIiBzcGVjaWZpZXIuCiAuVFAKLS5CSSAiLVQgb3VyX2lkZW50aXR5PTxjZXJ0aWZpY2F0ZS1zcGVjaWZpZXI+IgorLkJJICJcLVQgbG9jYWxDZXJ0PTxjZXJ0aWZpY2F0ZS1zcGVjaWZpZXI+IgogSW5kaWNhdGVzIHRvIHRoZSB0cmFuc3BvcnQgd2hpY2gga2V5IHNob3VsZCBiZSB1c2VkIHRvIGluaXRpYXRlIChEKVRMUwogY2xpZW50IGNvbm5lY3Rpb25zLiAgVGhpcyB3b3VsZCB0eXBpY2FsbHkgYmUgYSBjZXJ0aWZpY2F0ZSBmb3VuZCB1c2luZwotdGhlIGFwcGxpY2F0aW9uIG5hbWUgKGVnIHNubXBkLCBzbm1wdHJhcGQsIHBlcmwsIHB5dGhvbikgb3IKK3RoZSBjZXJ0aWZpY2F0ZSBmaW5nZXJwcmludCwgdGhlIGFwcGxpY2F0aW9uIG5hbWUgKGVnIHNubXBkLCBzbm1wdHJhcGQsIHBlcmwsIHB5dGhvbikgb3IKIGdlbmVyaWNpemVkIG5hbWUgInNubXBhcHAiIGlmIHVzaW5nIG9uZSBvZiB0aGUgZ2VuZXJpYyBhcHBsaWNhdGlvbnMKIChzbm1wZ2V0LCBzbm1wd2FsaywgZXRjKS4gIFRoaXMgY2FuIGFsc28gYmUgc2V0IHVzaW5nIHRoZQotY2xpZW50Q2VydCBzcGVjaWZpZXIgaW4gYSBzbm1wLmNvbmYgY29uZmlndXJhdGlvbiBmaWxlLgorbG9jYWxDZXJ0IHNwZWNpZmllciBpbiBhIHNubXAuY29uZiBjb25maWd1cmF0aW9uIGZpbGUuCiAuVFAKLS5CSSAiLVQgdGhlaXJfaWRlbnRpdHk9PGNlcnRpZmljYXRlLXNwZWNpZmllcj4iCisuQkkgIlwtVCBwZWVyQ2VydD08Y2VydGlmaWNhdGUtc3BlY2lmaWVyPiIKIElmIHlvdSBleHBlY3QgYSBwYXJ0aWN1bGFyIGNlcnRpZmljYXRlIHRvIGJlIHByZXNlbnRlZCBieSB0aGUgb3RoZXIKIHNpZGUgdGhlbiB5b3UgY2FuIHVzZSB0aGlzIHNwZWNpZmllciB0byBpbmRpY2F0ZSB0aGUgY2VydGlmaWNhdGUgaXQKIHNob3VsZCBwcmVzZW50LiAgSWYgaXQgZmFpbHMgdG8gcHJlc2VudCB0aGUgZXhwZWN0ZWQgY2VydGlmaWNhdGUgdGhlCiBjbGllbnQgd2lsbCByZWZ1c2UgdG8gb3BlbiB0aGUgY29ubmVjdGlvbiAoYmVjYXVzZSBkb2luZyBvdGhlcndpc2UKIGNvdWxkIGxlYWQgdG8gbWFuLWluLXRoZS1taWRkbGUgYXR0YWNrcykuICBUaGlzIGNhbiBhbHNvIGJlIHNldCB1c2luZwotdGhlIHNlcnZlckNlcnQgc3BlY2lmaWVyIGluIGEgc25tcC5jb25mIGNvbmZpZ3VyYXRpb24gZmlsZS4KK3RoZSBwZWVyQ2VydCBzcGVjaWZpZXIgaW4gYSBzbm1wLmNvbmYgY29uZmlndXJhdGlvbiBmaWxlLgogLlRQCi0uQkkgIi1UIHRydXN0X2NlcnQ9PGNlcnRpZmljYXRlLXNwZWNpZmllcj4iCisuQkkgIlwtVCB0cnVzdF9jZXJ0PTxjZXJ0aWZpY2F0ZS1zcGVjaWZpZXI+IgogSWYgeW91IGhhdmUgYSB0cnVzdGVkIENBIGNlcnRpZmljYXRlIHlvdSB3aXNoIHRvIGFuY2hvciB0cnVzdCB3aXRoLAogeW91IGNhbiB1c2UgdGhpcyBmbGFnIHRvIGxvYWQgYSBnaXZlbiBjZXJ0aWZpY2F0ZSBhcyBhIHRydXN0IGFuY2hvci4KIEEgY29weSBvZiB0aGUgY2VydGlmaWNhdGUgbXVzdCBleGlzdCB3aXRoaW4gdGhlIE5ldC1TTk1QIGNlcnRpZmljYXRlCiBzdG9yYWdlIHN5c3RlbSBvciB0aGlzIG11c3QgcG9pbnQgdG8gYSBjb21wbGV0ZSBwYXRoIG5hbWUuICBBbHNvIHNlZQogdGhlICJ0cnVzdENlcnQiIHNubXAuY29uZiBjb25maWd1cmF0aW9uIHRva2VuLgogLlRQCi0uQkkgIi1UIHRoZWlyX2hvc3RuYW1lPTxuYW1lPiIKKy5CSSAiXC1UIHRoZWlyX2hvc3RuYW1lPTxuYW1lPiIKIElmIHRoZSBzZXJ2ZXIncyBwcmVzZW50ZWQgY2VydGlmaWNhdGUgY2FuIGJlIHZhbGlkYXRpbmcgdXNpbmcgYSB0cnVzdAogYW5jaG9yIHRoZW4gdGhlaXIgaG9zdG5hbWUgd2lsbCBiZSBjaGVja2VkIHRvIGVuc3VyZSB0aGVpciBwcmVzZW50ZWQKIGhvc3RuYW1lIG1hdGNoZXMgb25lIHRoYXQgaXMgZXhwZWN0ZWQgKHlvdSBkb24ndCB3YW50IHRvIGNvbm5lY3QgdG8KQEAgLTI2MiwyOSArMjYyLDI5IEBACiBUaGVzZSBvcHRpb25zIGFyZSBzcGVjaWZpYyB0byB1c2luZyBTTk1QdjMgd2l0aCB0aGUgb3JpZ2luYWwKIFVzZXItYmFzZWQgU2VjdXJpdHkgTW9kZWwgKFVTTSkuCiAuVFAKLS5CSSAiLTNbTW1La10gIDB4SEVYS0VZIgorLkJJICJcLTNbTW1La10gIDB4SEVYS0VZIgogU2V0cyB0aGUga2V5cyB0byBiZSB1c2VkIGZvciBTTk1QdjMgdHJhbnNhY3Rpb25zLiAgVGhlc2Ugb3B0aW9ucyBhbGxvdwoteW91IHRvIHNldCB0aGUgbWFzdGVyIGF1dGhlbnRpY2F0aW9uIGFuZCBlbmNyeXB0aW9uIGtleXMgKC0zbSBhbmQgLTNNCit5b3UgdG8gc2V0IHRoZSBtYXN0ZXIgYXV0aGVudGljYXRpb24gYW5kIGVuY3J5cHRpb24ga2V5cyAoXC0zbSBhbmQgXC0zTQogcmVzcGVjdGl2ZWx5KSBvciBzZXQgdGhlIGxvY2FsaXplZCBhdXRoZW50aWNhdGlvbiBhbmQgZW5jcnlwdGlvbiBrZXlzCi0oLTNrIGFuZCAtM0sgcmVzcGVjdGl2ZWx5KS4gIFNOTVB2MyBrZXlzIGNhbiBiZSBlaXRoZXIgcGFzc2VkIGluIGJ5CisoXC0zayBhbmQgXC0zSyByZXNwZWN0aXZlbHkpLiAgU05NUHYzIGtleXMgY2FuIGJlIGVpdGhlciBwYXNzZWQgaW4gYnkKIGhhbmQgdXNpbmcgdGhlc2UgZmxhZ3MsIG9yIGJ5IHRoZSB1c2Ugb2Yga2V5cyBnZW5lcmF0ZWQgZnJvbSBwYXNzd29yZHMKLXVzaW5nIHRoZSAtQSBhbmQgLVggZmxhZ3MgZGlzY3Vzc2VkIGJlbG93LiAgRm9yIGZ1cnRoZXIgZGV0YWlscyBvbgordXNpbmcgdGhlIFwtQSBhbmQgXC1YIGZsYWdzIGRpc2N1c3NlZCBiZWxvdy4gIEZvciBmdXJ0aGVyIGRldGFpbHMgb24KIFNOTVB2MyBhbmQgaXRzIHVzYWdlIG9mIGtleWluZyBpbmZvcm1hdGlvbiwgc2VlIHRoZSBOZXQtU05NUCB0dXRvcmlhbAotd2ViIHNpdGUgKCBodHRwOi8vd3d3Lk5ldC1TTk1QLm9yZy90dXRvcmlhbC01L2NvbW1hbmRzLyApLiAKLU92ZXJyaWRlcyB0aGUgZGVmQXV0aE1hc3RlcktleSAoLTNtKSwgZGVmUHJpdk1hc3RlcktleSAoLTNNKSwgCi1kZWZBdXRoTG9jYWxpemVkS2V5ICgtM2spIG9yIGRlZlByaXZMb2NhbGl6ZWRLZXkgKC0zSykgdG9rZW5zLCByZXNwZWN0aXZlbHksIAord2ViIHNpdGUgKCBodHRwOi8vd3d3Lk5ldFwtU05NUC5vcmcvdHV0b3JpYWxcLTUvY29tbWFuZHMvICkuIAorT3ZlcnJpZGVzIHRoZSBkZWZBdXRoTWFzdGVyS2V5IChcLTNtKSwgZGVmUHJpdk1hc3RlcktleSAoXC0zTSksIAorZGVmQXV0aExvY2FsaXplZEtleSAoXC0zaykgb3IgZGVmUHJpdkxvY2FsaXplZEtleSAoXC0zSykgdG9rZW5zLCByZXNwZWN0aXZlbHksIAogaW4gdGhlCiAuSSBzbm1wLmNvbmYKIGZpbGUsIHNlZQogLkkgc25tcC5jb25mKDUpLgogLlRQCi0uQkkgLWEgIiBhdXRoUHJvdG9jb2wiCisuQkkgXC1hICIgYXV0aFByb3RvY29sIgogU2V0IHRoZSBhdXRoZW50aWNhdGlvbiBwcm90b2NvbCAoTUQ1IG9yIFNIQSkgdXNlZCBmb3IgYXV0aGVudGljYXRlZCBTTk1QdjMKIG1lc3NhZ2VzLiBPdmVycmlkZXMgdGhlIFxmSWRlZkF1dGhUeXBlXGZSIHRva2VuIGluIHRoZQogLkkgc25tcC5jb25mCiBmaWxlLgogLlRQCi0uQkkgLUEgIiBhdXRoUGFzc3dvcmQiCisuQkkgXC1BICIgYXV0aFBhc3N3b3JkIgogU2V0IHRoZSBhdXRoZW50aWNhdGlvbiBwYXNzIHBocmFzZSB1c2VkIGZvciBhdXRoZW50aWNhdGVkIFNOTVB2MwogbWVzc2FnZXMuICBPdmVycmlkZXMgdGhlIFxmSWRlZkF1dGhQYXNzcGhyYXNlXGZSIHRva2VuIGluIHRoZQogLkkgc25tcC5jb25mCkBAIC0yOTIsMzEgKzI5MiwzMSBAQAogc2VlCiAuSSBzbm1wLmNvbmYoNSkuCiAuVFAKLS5CSSAtZSAiIGVuZ2luZUlEIgorLkJJIFwtZSAiIGVuZ2luZUlEIgogU2V0IHRoZSBhdXRob3JpdGF0aXZlIChzZWN1cml0eSkgZW5naW5lSUQgdXNlZCBmb3IgU05NUHYzIFJFUVVFU1QKIG1lc3NhZ2VzLCBnaXZlbiBhcyBhIGhleGFkZWNpbWFsIHN0cmluZyAob3B0aW9uYWxseSBwcmVmaXhlZCBieSAiMHgiKS4KIEl0IGlzIHR5cGljYWxseSBub3QgbmVjZXNzYXJ5IHRvIHNwZWNpZnkgdGhpcyBlbmdpbmUgSUQsIGFzIGl0IHdpbGwKIHVzdWFsbHkgYmUgZGlzY292ZXJlZCBhdXRvbWF0aWNhbGx5LgogLlRQCi0uQkkgLUUgIiBlbmdpbmVJRCIKKy5CSSBcLUUgIiBlbmdpbmVJRCIKIFNldCB0aGUgY29udGV4dCBlbmdpbmVJRCB1c2VkIGZvciBTTk1QdjMgUkVRVUVTVCBtZXNzYWdlcyBzY29wZWRQZHUsCiBnaXZlbiBhcyBhIGhleGFkZWNpbWFsIHN0cmluZy4KIElmIG5vdCBzcGVjaWZpZWQsIHRoaXMgd2lsbCBkZWZhdWx0IHRvIHRoZSBhdXRob3JpdGF0aXZlIGVuZ2luZUlELgogLlRQCi0uQkkgLXUgIiBzZWNOYW1lIgorLkJJIFwtdSAiIHNlY05hbWUiCiBTZXQgdGhlIHNlY3VyaXR5TmFtZSB1c2VkIGZvciBhdXRoZW50aWNhdGVkIFNOTVB2MyBtZXNzYWdlcy4KIE92ZXJyaWRlcyB0aGUgXGZJZGVmU2VjdXJpdHlOYW1lXGZSIHRva2VuIGluIHRoZQogLkkgc25tcC5jb25mCiBmaWxlLgogLlRQCi0uQkkgLXggIiBwcml2UHJvdG9jb2wiCisuQkkgXC14ICIgcHJpdlByb3RvY29sIgogU2V0IHRoZSBwcml2YWN5IHByb3RvY29sIChERVMgb3IgQUVTKSB1c2VkIGZvciBlbmNyeXB0ZWQgU05NUHYzIG1lc3NhZ2VzLiAKIE92ZXJyaWRlcyB0aGUgXGZJZGVmUHJpdlR5cGVcZlIgdG9rZW4gaW4gdGhlCiAuSSBzbm1wLmNvbmYKIGZpbGUuIFRoaXMgb3B0aW9uIGlzIG9ubHkgdmFsaWQgaWYgdGhlIE5ldC1TTk1QIHNvZnR3YXJlIHdhcyBidWlsZAogdG8gdXNlIE9wZW5TU0wuCiAuVFAKLS5CSSAtWCAiIHByaXZQYXNzd29yZCIKKy5CSSBcLVggIiBwcml2UGFzc3dvcmQiCiBTZXQgdGhlIHByaXZhY3kgcGFzcyBwaHJhc2UgdXNlZCBmb3IgZW5jcnlwdGVkIFNOTVB2MyBtZXNzYWdlcy4KIE92ZXJyaWRlcyB0aGUgXGZJZGVmUHJpdlBhc3NwaHJhc2VcZlIgdG9rZW4gaW4gdGhlCiAuSSBzbm1wLmNvbmYKQEAgLTMyNCw3ICszMjQsNyBAQAogSXQgaXMgaW5zZWN1cmUgdG8gc3BlY2lmeSBwYXNzIHBocmFzZXMgb24gdGhlIGNvbW1hbmQgbGluZSwgc2VlCiAuSSBzbm1wLmNvbmYoNSkuCiAuVFAKLS5CSSAtWiAiIGJvb3RzLHRpbWUiCisuQkkgXC1aICIgYm9vdHMsdGltZSIKIFNldCB0aGUgZW5naW5lQm9vdHMgYW5kIGVuZ2luZVRpbWUgdXNlZCBmb3IgYXV0aGVudGljYXRlZCBTTk1QdjMKIG1lc3NhZ2VzLiAgVGhpcyB3aWxsIGluaXRpYWxpemUgdGhlIGxvY2FsIG5vdGlvbiBvZiB0aGUgYWdlbnRzCiBib290cy90aW1lIHdpdGggYW4gYXV0aGVudGljYXRlZCB2YWx1ZSBzdG9yZWQgaW4gdGhlIExDRC4KQEAgLTMzNCw3ICszMzQsNyBAQAogCiAuU0ggU05NUHYxIGFuZCBTTk1QdjJjIE9wdGlvbnMgCiAuVFAKLS5CSSAtYyAiIGNvbW11bml0eSIKKy5CSSBcLWMgIiBjb21tdW5pdHkiCiBTZXQgdGhlIGNvbW11bml0eSBzdHJpbmcgZm9yIFNOTVB2MS92MmMgdHJhbnNhY3Rpb25zLgogT3ZlcnJpZGVzIHRoZSBcZklkZWZDb21tdW5pdHlcZlIgdG9rZW4gaW4gdGhlCiAuSSBzbm1wLmNvbmYKQEAgLTQ0MSw3ICs0NDEsNyBAQAogLklSICJzc2g6aG9zdG5hbWU6MjIiCiBDb25uZWN0cyB1c2luZyBTTk1QIG92ZXIgU1NIIGFzIGRvY3VtZW50ZWQgYnkgdGhlIElTTVMgd29ya2luZyBncm91cAogKFJGQ3Mgbm90IHlldCBwdWJsaXNoZWQgYXMgb2YgdGhpcyBkYXRlKS4gIFRoaXMgd2lsbCByZXF1aXJlIHRoYXQgdGhlCi1UU00gc2VjdXJpdHkgbW9kZWwgaXMgaW4gdXNlICgtLWRlZlNlY3VyaXR5TW9kZWw9dHNtKS4KK1RTTSBzZWN1cml0eSBtb2RlbCBpcyBpbiB1c2UgKFwtXC1kZWZTZWN1cml0eU1vZGVsPXRzbSkuCiAuVFAgMjQKIC5JUiAiaXB4OjowMEQwQjdBQUUzMDgiCiBwZXJmb3JtIHF1ZXJ5IHVzaW5nIElQWCBkYXRhZ3JhbXMgdG8gbm9kZSBudW1iZXIgCkBAIC00NTcsMTIgKzQ1NywxMiBAQAogb24gbmV0d29yayBudW1iZXIKIC5JUiAwQUU0MzQwOSAuCiAuVFAgMjQKLS5JUiAidW5peDovdG1wL2xvY2FsLWFnZW50IgorLklSICJ1bml4Oi90bXAvbG9jYWxcLWFnZW50IgogY29ubmVjdCB0byB0aGUgVW5peCBkb21haW4gc29ja2V0IAotLklSIC90bXAvbG9jYWwtYWdlbnQgLAorLklSIC90bXAvbG9jYWxcLWFnZW50ICwKIGFuZCBwZXJmb3JtIHRoZSBxdWVyeSBvdmVyIHRoYXQgY29ubmVjdGlvbi4KIC5UUCAyNAotLklSICIvdG1wL2xvY2FsLWFnZW50IgorLklSICIvdG1wL2xvY2FsXC1hZ2VudCIKIGlkZW50aWNhbCB0byB0aGUgcHJldmlvdXMgc3BlY2lmaWNhdGlvbiwgc2luY2UgdGhlIFVuaXggZG9tYWluIGlzIHRoZQogZGVmYXVsdCB0cmFuc3BvcnQgaWZmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIDx0cmFuc3BvcnQtYWRkcmVzcz4KIGlzIGEgJy8nLgpAQCAtNDk5LDI2ICs0OTksMjYgQEAKIGluIHJlY29nbml0aW9uIG9mIHRoZSAoYWhlbSkgZGl2ZXJzaXR5IGluIGNvbXBsaWFuY2UgZXhwcmVzc2VkIGluIE1JQgogZmlsZXMsIGFkZGl0aW9uYWwgb3B0aW9ucyBwcm92aWRlIG1vcmUgZmxleGliaWxpdHkgaW4gcmVhZGluZyBNSUIgZmlsZXMuCiAuVFAKLS5CICItUGMiCisuQiAiXC1QYyIKIFRvZ2dsZXMgd2hldGhlciBBU04uMSBjb21tZW50cyBzaG91bGQgZXh0ZW5kIHRvIHRoZSBlbmQgb2YgdGhlIE1JQgogc291cmNlIGxpbmUuCi1TdHJpY3RseSBzcGVha2luZywgYSBzZWNvbmQgYXBwZWFyYW5jZSBvZiAiLS0iIHNob3VsZCB0ZXJtaW5hdGUgdGhlCitTdHJpY3RseSBzcGVha2luZywgYSBzZWNvbmQgYXBwZWFyYW5jZSBvZiAiXC1cLSIgc2hvdWxkIHRlcm1pbmF0ZSB0aGUKIGNvbW1lbnQsIGJ1dCB0aGlzIGJyZWFrcyBzb21lIE1JQiBmaWxlcy4KIFRoZSBkZWZhdWx0IGJlaGF2aW91ciAodG8gaW50ZXJwcmV0IGNvbW1lbnRzIGNvcnJlY3RseSkgY2FuIGFsc28KIGJlIHNldCB3aXRoIHRoZSBjb25maWd1cmF0aW9uIHRva2VuIFxmSWNvbW1lbnRUb0VPTFxmUi4KIC5UUAotLkIgIi1QZCIKKy5CICJcLVBkIgogRGlzYWJsZXMgdGhlIGxvYWRpbmcgb2YgTUlCIG9iamVjdCBERVNDUklQVElPTnMgd2hlbiBwYXJzaW5nIE1JQiBmaWxlcy4KIFRoaXMgcmVkdWNlcyB0aGUgYW1vdW50IG9mIG1lbW9yeSB1c2VkIGJ5IHRoZSBydW5uaW5nIGFwcGxpY2F0aW9uLgogLlRQCi0uQiAiLVBlIgorLkIgIlwtUGUiCiBUb2dnbGVzIHdoZXRoZXIgdG8gc2hvdyBlcnJvcnMgZW5jb3VudGVyZWQgd2hlbiBwYXJzaW5nIE1JQiBmaWxlcy4KIFRoZXNlIGluY2x1ZGUKIHJlZmVyZW5jZXMgdG8gSU1QT1JUZWQgbW9kdWxlcyBhbmQgTUlCIG9iamVjdHMgdGhhdCBjYW5ub3QgYmUKIGxvY2F0ZWQgaW4gdGhlIE1JQiBkaXJlY3Rvcnkgc2VhcmNoIGxpc3QuCiBUaGUgZGVmYXVsdCBiZWhhdmlvdXIgY2FuIGFsc28gYmUgc2V0IHdpdGggdGhlIGNvbmZpZ3VyYXRpb24gdG9rZW4gXGZJc2hvd01pYkVycm9yc1xmUi4KIC5UUAotLkIgIi1QUiIKKy5CICJcLVBSIgogSWYgdGhlIHNhbWUgTUlCIG9iamVjdCAocGFyZW50IG5hbWUgYW5kIHN1Yi1pZGVudGlmaWVyKSBhcHBlYXJzIG11bHRpcGxlCiB0aW1lcyBpbiB0aGUgbGlzdCBvZiBNSUIgZGVmaW5pdGlvbnMgbG9hZGVkLCB1c2UgdGhlIGxhc3QgdmVyc2lvbiB0byBiZQogcmVhZCBpbi4gIEJ5IGRlZmF1bHQsIHRoZSBmaXJzdCB2ZXJzaW9uIHdpbGwgYmUgdXNlZCwgYW5kIGFueSBkdXBsaWNhdGVzCkBAIC01MzIsMjAgKzUzMiwyMCBAQAogLlwiIFNldHRpbmcgdGhpcyBvcHRpb24gbWF5IHJlc3VsdCBpbiBhbiBpbmNvcnJlY3QgaGllcmFyY2h5LgogLlwiIFhYWCAtIFdoeT8KIC5UUAotLkIgIi1QdSIKKy5CICJcLVB1IgogVG9nZ2xlcyB3aGV0aGVyIHRvIGFsbG93IHRoZSB1bmRlcmxpbmUgY2hhcmFjdGVyIGluIE1JQiBvYmplY3QgbmFtZXMKIGFuZCBvdGhlciBzeW1ib2xzLgogU3RyaWN0bHkgc3BlYWtpbmcsIHRoaXMgaXMgbm90IHZhbGlkIFNNSSBzeW50YXgsIGJ1dCBzb21lIHZlbmRvciBNSUIKIGZpbGVzIGRlZmluZSBzdWNoIG5hbWVzLgogVGhlIGRlZmF1bHQgYmVoYXZpb3VyIGNhbiBhbHNvIGJlIHNldCB3aXRoIHRoZSBjb25maWd1cmF0aW9uIHRva2VuIFxmSW1pYkFsbG93VW5kZXJsaW5lXGZSLgogLlRQCi0uQiAiLVB3IgorLkIgIlwtUHciCiBTaG93IHZhcmlvdXMgd2FybmluZyBtZXNzYWdlcyBpbiBwYXJzaW5nIE1JQiBmaWxlcyBhbmQgYnVpbGRpbmcKIHRoZSBvdmVyYWxsIE9JRCB0cmVlLgogVGhpcyBjYW4gYWxzbyBiZSBzZXQgd2l0aCB0aGUgY29uZmlndXJhdGlvbiBkaXJlY3RpdmUKIFxmSW1pYldhcm5pbmdMZXZlbCAxXGZSCiAuVFAKLS5CICItUFciCisuQiAiXC1QVyIKIFNob3cgc29tZSBhZGRpdGlvbmFsIHdhcm5pbmcgbWVzc2FnZXMsIG1vc3RseSByZWxhdGluZyB0byBwYXJzaW5nCiBpbmRpdmlkdWFsIE1JQiBvYmplY3RzLgogVGhpcyBjYW4gYWxzbyBiZSBzZXQgd2l0aCB0aGUgY29uZmlndXJhdGlvbiBkaXJlY3RpdmUKQEAgLTU1MywxMDcgKzU1MywxMDcgQEAKIAogLlNIICJPVVRQVVQgT1BUSU9OUyIKIFRoZSBmb3JtYXQgb2YgdGhlIG91dHB1dCBmcm9tIFNOTVAgY29tbWFuZHMgY2FuIGJlIGNvbnRyb2xsZWQgdXNpbmcKLXZhcmlvdXMgcGFyYW1ldGVycyBvZiB0aGUgXGZCLU9cZlIgZmxhZy4KK3ZhcmlvdXMgcGFyYW1ldGVycyBvZiB0aGUgXGZCXC1PXGZSIGZsYWcuCiBUaGUgZWZmZWN0cyBvZiB0aGVzZSBzdWItb3B0aW9ucyBjYW4gYmUgc2VlbiBieSBjb21wYXJpc29uIHdpdGgKIHRoZSBmb2xsb3dpbmcgZGVmYXVsdCBvdXRwdXQgKHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkKToKIC5SUwogLm5mCi1cZkMkIHNubXBnZXQgLWMgcHVibGljIC12IDEgbG9jYWxob3N0IHN5c1VwVGltZS4wCi1TTk1QdjItTUlCOjpzeXNVcFRpbWUuMCA9IFRpbWV0aWNrczogKDE0MDk2NzYzKSAxIGRheSwgMTU6MDk6MjcuNjNcZlIKK1xmQyQgc25tcGdldCBcLWMgcHVibGljIFwtdiAxIGxvY2FsaG9zdCBzeXNVcFRpbWUuMAorU05NUHYyXC1NSUI6OnN5c1VwVGltZS4wID0gVGltZXRpY2tzOiAoMTQwOTY3NjMpIDEgZGF5LCAxNTowOToyNy42M1xmUgogLmZpCiAuUkUKIAogLlRQCi0uQiAtT2EKKy5CIFwtT2EKIERpc3BsYXkgc3RyaW5nIHZhbHVlcyBhcyBBU0NJSSBzdHJpbmdzICh1bmxlc3MgdGhlcmUgaXMgYSAKLVxmQ0RJU1BMQVktSElOVFxmUiBkZWZpbmVkIGZvciB0aGUgY29ycmVzcG9uZGluZyBNSUIgb2JqZWN0KS4KK1xmQ0RJU1BMQVlcLUhJTlRcZlIgZGVmaW5lZCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgTUlCIG9iamVjdCkuCiBCeSBkZWZhdWx0LCB0aGUgbGlicmFyeSBhdHRlbXB0cyB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgdmFsdWUgaXMKIGEgcHJpbnRhYmxlIG9yIGJpbmFyeSBzdHJpbmcsIGFuZCBkaXNwbGF5cyBpdCBhY2NvcmRpbmdseS4KIAogVGhpcyBvcHRpb24gZG9lcyBub3QgYWZmZWN0IG9iamVjdHMgdGhhdCBcZklkb1xmUiBoYXZlIGEgRGlzcGxheSBIaW50LgogLlRQCi0uQiAtT2IKKy5CIFwtT2IKIERpc3BsYXkgdGFibGUgaW5kZXhlcyBudW1lcmljYWxseSwgcmF0aGVyIHRoYW4gdHJ5aW5nIHRvIGludGVycHJldAogdGhlIGluc3RhbmNlIHN1YmlkZW50aWZpZXJzIGFzIHN0cmluZyBvciBPSUQgdmFsdWVzOgogLlJTCiAubmYKLVxmQyAgICAkIHNubXBnZXRuZXh0IC1jIHB1YmxpYyAtdiAxIGxvY2FsaG9zdCB2YWNtU2VjdXJpdHlNb2RlbAotICAgIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCOjp2YWNtU2VjdXJpdHlNb2RlbC4wLiJ3ZXMiID0geHh4Ci0gICAgJCBzbm1wZ2V0bmV4dCAtYyBwdWJsaWMgLXYgMSBcZkItT2JcZlAgbG9jYWxob3N0IHZhY21TZWN1cml0eU1vZGVsCi0gICAgU05NUC1WSUVXLUJBU0VELUFDTS1NSUI6OnZhY21TZWN1cml0eU1vZGVsLjAuMy4xMTkuMTAxLjExNSA9IHh4eFxmUgorXGZDICAgICQgc25tcGdldG5leHQgXC1jIHB1YmxpYyBcLXYgMSBsb2NhbGhvc3QgdmFjbVNlY3VyaXR5TW9kZWwKKyAgICBTTk1QXC1WSUVXXC1CQVNFRFwtQUNNXC1NSUI6OnZhY21TZWN1cml0eU1vZGVsLjAuIndlcyIgPSB4eHgKKyAgICAkIHNubXBnZXRuZXh0IFwtYyBwdWJsaWMgXC12IDEgXGZCXC1PYlxmUCBsb2NhbGhvc3QgdmFjbVNlY3VyaXR5TW9kZWwKKyAgICBTTk1QXC1WSUVXXC1CQVNFRFwtQUNNXC1NSUI6OnZhY21TZWN1cml0eU1vZGVsLjAuMy4xMTkuMTAxLjExNSA9IHh4eFxmUgogLmZpCiAuUkUKIC5UUAotLkIgLU9lCisuQiBcLU9lCiBSZW1vdmVzIHRoZSBzeW1ib2xpYyBsYWJlbHMgZnJvbSBlbnVtZXJhdGlvbiB2YWx1ZXM6CiAuUlMKIC5uZgotXGZDICAgICQgc25tcGdldCAtYyBwdWJsaWMgLXYgMSBsb2NhbGhvc3QgaXBGb3J3YXJkaW5nLjAKLSAgICBJUC1NSUI6OmlwRm9yd2FyZGluZy4wID0gSU5URUdFUjogZm9yd2FyZGluZygxKQotXGZDICAgICQgc25tcGdldCAtYyBwdWJsaWMgLXYgMSBcZkItT2VcZlAgbG9jYWxob3N0IGlwRm9yd2FyZGluZy4wCi0gICAgSVAtTUlCOjppcEZvcndhcmRpbmcuMCA9IElOVEVHRVI6IDFcZlIKK1xmQyAgICAkIHNubXBnZXQgXC1jIHB1YmxpYyBcLXYgMSBsb2NhbGhvc3QgaXBGb3J3YXJkaW5nLjAKKyAgICBJUFwtTUlCOjppcEZvcndhcmRpbmcuMCA9IElOVEVHRVI6IGZvcndhcmRpbmcoMSkKK1xmQyAgICAkIHNubXBnZXQgXC1jIHB1YmxpYyBcLXYgMSBcZkJcLU9lXGZQIGxvY2FsaG9zdCBpcEZvcndhcmRpbmcuMAorICAgIElQXC1NSUI6OmlwRm9yd2FyZGluZy4wID0gSU5URUdFUjogMVxmUgogLmZpCiAuUkUKIC5UUAotLkIgLU9FCisuQiBcLU9FCiBNb2RpZmllcyBpbmRleCBzdHJpbmdzIHRvIGVzY2FwZSB0aGUgcXVvdGUgY2hhcmFjdGVyczoKIC5SUwogLm5mCi1cZkMgICAgJCBzbm1wZ2V0bmV4dCAtYyBwdWJsaWMgLXYgMSBsb2NhbGhvc3QgdmFjbVNlY3VyaXR5TW9kZWwKLSAgICBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQjo6dmFjbVNlY3VyaXR5TW9kZWwuMC4id2VzIiA9IHh4eAotICAgICQgc25tcGdldG5leHQgLWMgcHVibGljIC12IDEgXGZCLU9FXGZQIGxvY2FsaG9zdCB2YWNtU2VjdXJpdHlNb2RlbAotICAgIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCOjp2YWNtU2VjdXJpdHlNb2RlbC4wLlxcIndlc1xcIiA9IHh4eFxmUgorXGZDICAgICQgc25tcGdldG5leHQgXC1jIHB1YmxpYyBcLXYgMSBsb2NhbGhvc3QgdmFjbVNlY3VyaXR5TW9kZWwKKyAgICBTTk1QXC1WSUVXXC1CQVNFRFwtQUNNXC1NSUI6OnZhY21TZWN1cml0eU1vZGVsLjAuIndlcyIgPSB4eHgKKyAgICAkIHNubXBnZXRuZXh0IFwtYyBwdWJsaWMgXC12IDEgXGZCXC1PRVxmUCBsb2NhbGhvc3QgdmFjbVNlY3VyaXR5TW9kZWwKKyAgICBTTk1QXC1WSUVXXC1CQVNFRFwtQUNNXC1NSUI6OnZhY21TZWN1cml0eU1vZGVsLjAuXFwid2VzXFwiID0geHh4XGZSCiAuZmkKIC5SRQogLklQCiBUaGlzIGFsbG93cyB0aGUgb3V0cHV0IHRvIGJlIHJldXNlZCBpbiBzaGVsbCBjb21tYW5kcy4KIC5UUAotLkIgLU9mCisuQiBcLU9mCiBJbmNsdWRlIHRoZSBmdWxsIGxpc3Qgb2YgTUlCIG9iamVjdHMgd2hlbiBkaXNwbGF5aW5nIGFuIE9JRDoKIC5SUwotXGZDICAgIC5pc28ub3JnLmRvZC5pbnRlcm5ldC5tZ210Lm1pYi0yLnN5c3RlbS5zeXNVcFRpbWUuMCA9XGZSCitcZkMgICAgLmlzby5vcmcuZG9kLmludGVybmV0Lm1nbXQubWliXC0yLnN5c3RlbS5zeXNVcFRpbWUuMCA9XGZSCiAuUlMKIFxmQyAgICAgICAgVGltZXRpY2tzOiAoMTQwOTY3NjMpIDEgZGF5LCAxNTowOToyNy42M1xmUgogLlJFCiAuUkUKIC5UUAotLkIgLU9uCisuQiBcLU9uCiBEaXNwbGF5cyB0aGUgT0lEIG51bWVyaWNhbGx5OgogLmJyCiBcZkMgICAgLjEuMy42LjEuMi4xLjEuMy4wID0gVGltZXRpY2tzOiAoMTQwOTY3NjMpIDEgZGF5LCAxNTowOToyNy42M1xmUgogLlRQCi0uQiAtT3EKKy5CIFwtT3EKIFJlbW92ZXMgdGhlIGVxdWFsIHNpZ24gYW5kIHR5cGUgaW5mb3JtYXRpb24gd2hlbiBkaXNwbGF5aW5nIHZhcmJpbmQgdmFsdWVzOgogLmJyCi1cZkMgICAgU05NUHYyLU1JQjo6c3lzVXBUaW1lLjAgMToxNTowOToyNy42M1xmUgorXGZDICAgIFNOTVB2MlwtTUlCOjpzeXNVcFRpbWUuMCAxOjE1OjA5OjI3LjYzXGZSCiAuVFAKLS5CIC1PUQorLkIgXC1PUQogUmVtb3ZlcyB0aGUgdHlwZSBpbmZvcm1hdGlvbiB3aGVuIGRpc3BsYXlpbmcgdmFyYmluZCB2YWx1ZXM6CiAuYnIKLVxmQyAgICBTTk1QdjItTUlCOjpzeXNVcFRpbWUuMCA9IDE6MTU6MDk6MjcuNjNcZlIKK1xmQyAgICBTTk1QdjJcLU1JQjo6c3lzVXBUaW1lLjAgPSAxOjE1OjA5OjI3LjYzXGZSCiAuVFAKLS5CIC1PcworLkIgXC1PcwogRGlzcGxheSB0aGUgTUlCIG9iamVjdCBuYW1lIChwbHVzIGFueSBpbnN0YW5jZSBvciBvdGhlciBzdWJpZGVudGlmaWVycyk6CiAuYnIKIFxmQyAgICBzeXNVcFRpbWUuMCA9IFRpbWV0aWNrczogKDE0MDk2NzYzKSAxIGRheSwgMTU6MDk6MjcuNjNcZlIKIC5UUAotLkIgLU9TCisuQiBcLU9TCiBEaXNwbGF5IHRoZSBuYW1lIG9mIHRoZSBNSUIsIGFzIHdlbGwgYXMgdGhlIG9iamVjdCBuYW1lOgogLmJyCi1cZkMgICAgU05NUHYyLU1JQjo6c3lzVXBUaW1lLjAgPSBUaW1ldGlja3M6ICgxNDA5Njc2MykgMSBkYXksIDE1OjA5OjI3LjYzXGZSCitcZkMgICAgU05NUHYyXC1NSUI6OnN5c1VwVGltZS4wID0gVGltZXRpY2tzOiAoMTQwOTY3NjMpIDEgZGF5LCAxNTowOToyNy42M1xmUgogLklQCiBUaGlzIGlzIHRoZSBkZWZhdWx0IE9JRCBvdXRwdXQgZm9ybWF0LgogLlRQCi0uQiAtT3QKKy5CIFwtT3QKIERpc3BsYXkgXGZDVGltZVRpY2tzXGZSIHZhbHVlcyBhcyByYXcgbnVtYmVyczoKIC5icgotXGZDICAgIFNOTVB2Mi1NSUI6OnN5c1VwVGltZS4wID0gMTQwOTY3NjNcZlIKK1xmQyAgICBTTk1QdjJcLU1JQjo6c3lzVXBUaW1lLjAgPSAxNDA5Njc2M1xmUgogLlRQCi0uQiAtT1QKKy5CIFwtT1QKIElmIHZhbHVlcyBhcmUgcHJpbnRlZCBhcyBIZXggc3RyaW5ncywKIGRpc3BsYXkgYSBwcmludGFibGUgdmVyc2lvbiBhcyB3ZWxsLgogLlRQCi0uQiAtT3UKKy5CIFwtT3UKIERpc3BsYXkgdGhlIE9JRCBpbiB0aGUgdHJhZGl0aW9uYWwgVUNELXN0eWxlIChpbmhlcml0ZWQgZnJvbSB0aGUgb3JpZ2luYWwKIENNVSBjb2RlKS4KIFRoYXQgbWVhbnMgcmVtb3ZpbmcgYSBzZXJpZXMgb2YgInN0YW5kYXJkIiBwcmVmaXhlcyBmcm9tIHRoZSBPSUQsCkBAIC02NjIsMzUgKzY2MiwzNSBAQAogLmJyCiBcZkMgICAgc3lzdGVtLnN5c1VwVGltZS4wID0gVGltZXRpY2tzOiAoMTQwOTY3NjMpIDEgZGF5LCAxNTowOToyNy42M1xmUgogLlRQCi0uQiAtT1UKKy5CIFwtT1UKIERvIG5vdCBwcmludCB0aGUgVU5JVFMgc3VmZml4IGF0IHRoZSBlbmQgb2YgdGhlIHZhbHVlLgogLlRQCi0uQiAtT3YKKy5CIFwtT3YKIERpc3BsYXkgdGhlIHZhcmJpbmQgdmFsdWUgb25seSwgbm90IHRoZSBPSUQ6CiAuUlMKIC5uZgotXGZDICAgICQgc25tcGdldCAtYyBwdWJsaWMgLXYgMSBcZkItT3ZcZlAgbG9jYWxob3N0IGlwRm9yd2FyZGluZy4wCitcZkMgICAgJCBzbm1wZ2V0IFwtYyBwdWJsaWMgXC12IDEgXGZCXC1PdlxmUCBsb2NhbGhvc3QgaXBGb3J3YXJkaW5nLjAKICAgICBJTlRFR0VSOiBmb3J3YXJkaW5nKDEpXGZSCiAuZmkKIC5SRQogLlRQCi0uQiAtT3gKKy5CIFwtT3gKIERpc3BsYXkgc3RyaW5nIHZhbHVlcyBhcyBIZXggc3RyaW5ncyAodW5sZXNzIHRoZXJlIGlzIGEgCi1cZkNESVNQTEFZLUhJTlRcZlIgZGVmaW5lZCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgTUlCIG9iamVjdCkuCitcZkNESVNQTEFZXC1ISU5UXGZSIGRlZmluZWQgZm9yIHRoZSBjb3JyZXNwb25kaW5nIE1JQiBvYmplY3QpLgogQnkgZGVmYXVsdCwgdGhlIGxpYnJhcnkgYXR0ZW1wdHMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHZhbHVlIGlzCiBhIHByaW50YWJsZSBvciBiaW5hcnkgc3RyaW5nLCBhbmQgZGlzcGxheXMgaXQgYWNjb3JkaW5nbHkuCiAKIFRoaXMgb3B0aW9uIGRvZXMgbm90IGFmZmVjdCBvYmplY3RzIHRoYXQgXGZJZG9cZlIgaGF2ZSBhIERpc3BsYXkgSGludC4KIC5UUAotLkIgLU9YCisuQiBcLU9YCiBEaXNwbGF5IHRhYmxlIGluZGV4ZXMgaW4gYSBtb3JlICJwcm9ncmFtIGxpa2UiIG91dHB1dCwgaW1pdGF0aW5nCiBhIHRyYWRpdGlvbmFsIGFycmF5LXN0eWxlIGluZGV4IGZvcm1hdDoKIC5SUwogLm5mCi1cZkMgICAgJCBzbm1wZ2V0bmV4dCAtYyBwdWJsaWMgLXYgMSBsb2NhbGhvc3QgaXB2NlJvdXRlVGFibGUKLSAgICBJUHY2LU1JQjo6aXB2NlJvdXRlSWZJbmRleC42My4yNTQuMS4wLjI1NS4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuNjQuMSA9IElOVEVHRVI6IDIKLSAgICAkIHNubXBnZXRuZXh0IC1jIHB1YmxpYyAtdiAxIFxmQi1PWFxmUCBsb2NhbGhvc3QgaXB2NlJvdXRlVGFibGUKLSAgICBJUHY2LU1JQjo6aXB2NlJvdXRlSWZJbmRleFszZmZlOjEwMDpmZjAwOjA6MDowOjA6MF1bNjRdWzFdID0gSU5URUdFUjogMgorXGZDICAgICQgc25tcGdldG5leHQgXC1jIHB1YmxpYyBcLXYgMSBsb2NhbGhvc3QgaXB2NlJvdXRlVGFibGUKKyAgICBJUHY2XC1NSUI6OmlwdjZSb3V0ZUlmSW5kZXguNjMuMjU0LjEuMC4yNTUuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjY0LjEgPSBJTlRFR0VSOiAyCisgICAgJCBzbm1wZ2V0bmV4dCBcLWMgcHVibGljIFwtdiAxIFxmQlwtT1hcZlAgbG9jYWxob3N0IGlwdjZSb3V0ZVRhYmxlCisgICAgSVB2NlwtTUlCOjppcHY2Um91dGVJZkluZGV4WzNmZmU6MTAwOmZmMDA6MDowOjA6MDowXVs2NF1bMV0gPSBJTlRFR0VSOiAyCiAuZmkKIC5SRQogLlBQCkBAIC03MDIsMTkgKzcwMiwxOSBAQAogLlNIICJMT0dHSU5HIE9QVElPTlMiCiBUaGUgbWVjaGFuaXNtIGFuZCBkZXN0aW5hdGlvbiB0byB1c2UgZm9yIGxvZ2dpbmcgb2Ygd2FybmluZyBhbmQgZXJyb3IKIG1lc3NhZ2VzIGNhbiBiZSBjb250cm9sbGVkIGJ5IHBhc3NpbmcgdmFyaW91cyBwYXJhbWV0ZXJzIHRvIHRoZQotLkIgLUwKKy5CIFwtTAogZmxhZy4KIC5UUAotLkIgLUxlCisuQiBcLUxlCiBMb2cgbWVzc2FnZXMgdG8gdGhlIHN0YW5kYXJkIGVycm9yIHN0cmVhbS4KIC5UUAotLkIgLUxmIEZJTEUKKy5CIFwtTGYgRklMRQogTG9nIG1lc3NhZ2VzIHRvIHRoZSBzcGVjaWZpZWQgZmlsZS4KIC5UUAotLkIgLUxvCisuQiBcLUxvCiBMb2cgbWVzc2FnZXMgdG8gdGhlIHN0YW5kYXJkIG91dHB1dCBzdHJlYW0uCiAuVFAKLS5CIC1McyBGQUNJTElUWQorLkIgXC1McyBGQUNJTElUWQogTG9nIG1lc3NhZ2VzIHZpYSBzeXNsb2csIHVzaW5nIHRoZSBzcGVjaWZpZWQgZmFjaWxpdHkKICgnZCcgZm9yIExPR19EQUVNT04sICd1JyBmb3IgTE9HX1VTRVIsCiBvciAnMCctJzcnIGZvciBMT0dfTE9DQUwwIHRocm91Z2ggTE9HX0xPQ0FMNykuCkBAIC03MjQsMTcgKzcyNCwxNyBAQAogYWxsb3cgdGhlIGNvcnJlc3BvbmRpbmcgbG9nZ2luZyBtZWNoYW5pc20gdG8gYmUgcmVzdHJpY3RlZCB0byBjZXJ0YWluCiBwcmlvcml0aWVzIG9mIG1lc3NhZ2UuICBVc2luZyBzdGFuZGFyZCBlcnJvciBsb2dnaW5nIGFzIGFuIGV4YW1wbGU6CiAuVFAKLS5CIC1MRSBwcmkKKy5CIFwtTEUgcHJpCiB3aWxsIGxvZyBtZXNzYWdlcyBvZiBwcmlvcml0eSAncHJpJyBhbmQgYWJvdmUgdG8gc3RhbmRhcmQgZXJyb3IuCiAuVFAKLS5CIC1MRSBwMS1wMgorLkIgXC1MRSBwMVwtcDIKIHdpbGwgbG9nIG1lc3NhZ2VzIHdpdGggcHJpb3JpdHkgYmV0d2VlbiAncDEnIGFuZCAncDInIChpbmNsdXNpdmUpIHRvCiBzdGFuZGFyZCBlcnJvci4KIC5QUAogRm9yCi0uQiAtTEYKKy5CIFwtTEYKIGFuZAotLkIgLUxTCisuQiBcLUxTCiB0aGUgcHJpb3JpdHkgc3BlY2lmaWNhdGlvbiBjb21lcyBiZWZvcmUgdGhlIGZpbGUgb3IgZmFjaWxpdHkgdG9rZW4uCiBUaGUgcHJpb3JpdGllcyByZWNvZ25pc2VkIGFyZToKIC5JUApAQCAtNzgzLDEwICs3ODMsMTAgQEAKIAogLlNIICJJTlBVVCBPUFRJT05TIgogVGhlIGludGVycHJldGF0aW9uIG9mIGlucHV0IG9iamVjdCBuYW1lcyBhbmQgdGhlIHZhbHVlcyB0byBiZSBhc3NpZ25lZAotY2FuIGJlIGNvbnRyb2xsZWQgdXNpbmcgdmFyaW91cyBwYXJhbWV0ZXJzIG9mIHRoZSBcZkItSVxmUiBmbGFnLgorY2FuIGJlIGNvbnRyb2xsZWQgdXNpbmcgdmFyaW91cyBwYXJhbWV0ZXJzIG9mIHRoZSBcZkJcLUlcZlIgZmxhZy4KIFRoZSBkZWZhdWx0IGJlaGF2aW91ciB3aWxsIGJlIGRlc2NyaWJlZCBhdCB0aGUgZW5kIG9mIHRoaXMgc2VjdGlvbi4KIC5UUAotLkIgLUliCisuQiBcLUliCiBzcGVjaWZpZXMgdGhhdCB0aGUgZ2l2ZW4gbmFtZSBzaG91bGQgYmUgcmVnYXJkZWQgYXMgYSByZWd1bGFyIGV4cHJlc3Npb24sCiB0byBtYXRjaCAoY2FzZS1pbnNlbnNpdGl2ZWx5KSBhZ2FpbnN0IG9iamVjdCBuYW1lcyBpbiB0aGUgTUlCIHRyZWUuCiBUaGUgImJlc3QiIG1hdGNoIHdpbGwgYmUgdXNlZCAtIGNhbGN1bGF0ZWQgYXMgdGhlIG9uZSB0aGF0IG1hdGNoZXMgdGhlCkBAIC04MDcsMjMgKzgwNywyMyBAQAogaW5zdGFuY2UgXGZDc3lzQ29udGFjdC4wXGZSIChhbHRob3VnaCBcZklzeXMqb250YWN0XGZSIHdvdWxkIG1hdGNoCiBcZkNzeXNDb250YWN0XGZSKS4KIFNpbWlsYXJseSwgc3BlY2lmeWluZyBhIE1JQiBtb2R1bGUgbmFtZSB3aWxsIG5vdCBzdWNjZWVkCi0oc28gXGZJU05NUHYyLU1JQjo6c3lzLipvbnRhY3RcZlIgd291bGQgbm90IG1hdGNoIGVpdGhlcikuCisoc28gXGZJU05NUHYyXC1NSUI6OnN5cy4qb250YWN0XGZSIHdvdWxkIG5vdCBtYXRjaCBlaXRoZXIpLgogLlRQCi0uQiAtSWgKLWRpc2FibGVzIHRoZSB1c2Ugb2YgRElTUExBWS1ISU5UIGluZm9ybWF0aW9uIHdoZW4gYXNzaWduaW5nIHZhbHVlcy4KKy5CIFwtSWgKK2Rpc2FibGVzIHRoZSB1c2Ugb2YgRElTUExBWVwtSElOVCBpbmZvcm1hdGlvbiB3aGVuIGFzc2lnbmluZyB2YWx1ZXMuCiBUaGlzIHdvdWxkIHRoZW4gcmVxdWlyZSBwcm92aWRpbmcgdGhlIHJhdyB2YWx1ZToKIC5icgotXGZDICAgIHNubXBzZXQgLi4uIEhPU1QtUkVTT1VSQ0VTLU1JQjo6aHJTeXN0ZW1EYXRlLjAKK1xmQyAgICBzbm1wc2V0IC4uLiBIT1NUXC1SRVNPVVJDRVNcLU1JQjo6aHJTeXN0ZW1EYXRlLjAKIC5icgogICAgICAgICAgICAgICAgICAgICB4ICIwNyBEMiAwQyAwQSAwMiAwNCAwNiAwOCJcZlIKIC5icgogaW5zdGVhZCBvZiBhIGZvcm1hdHRlZCB2ZXJzaW9uOgogLmJyCi1cZkMgICAgc25tcHNldCAuLi4gSE9TVC1SRVNPVVJDRVMtTUlCOjpoclN5c3RlbURhdGUuMAorXGZDICAgIHNubXBzZXQgLi4uIEhPU1RcLVJFU09VUkNFU1wtTUlCOjpoclN5c3RlbURhdGUuMAogLmJyCi0gICAgICAgICAgICAgICAgICAgID0gMjAwMi0xMi0xMCwyOjQ6Ni44XGZSCisgICAgICAgICAgICAgICAgICAgID0gMjAwMlwtMTJcLTEwLDI6NDo2LjhcZlIKIC5UUAotLkIgLUlyCisuQiBcLUlyCiBkaXNhYmxlcyBjaGVja2luZyB0YWJsZSBpbmRleGVzIGFuZCB0aGUgdmFsdWUgdG8gYmUgYXNzaWduZWQgYWdhaW5zdCB0aGUKIHJlbGV2YW50IE1JQiBkZWZpbml0aW9ucy4gIFRoaXMgd2lsbCAoaG9wZWZ1bGx5KSByZXN1bHQgaW4gdGhlIHJlbW90ZQogYWdlbnQgcmVwb3J0aW5nIGFuIGludmFsaWQgcmVxdWVzdCwgcmF0aGVyIHRoYW4gY2hlY2tpbmcgKGFuZCByZWplY3RpbmcpCkBAIC04MzMsMTMgKzgzMywxMyBAQAogdGVuZCB0byBiZSBtb3JlIHByZWNpc2UpLCBidXQgZGlzYWJsaW5nIHRoaXMgYmVoYXZpb3VyIGlzIHBhcnRpY3VsYXJseQogdXNlZnVsIHdoZW4gdGVzdGluZyB0aGUgcmVtb3RlIGFnZW50LgogLlRQCi0uQiAtSVIKKy5CIFwtSVIKIGVuYWJsZXMgInJhbmRvbSBhY2Nlc3MiIGxvb2t1cCBvZiBNSUIgbmFtZXMuCiBSYXRoZXIgdGhhbiBwcm92aWRpbmcgYSBmdWxsIE9JRCBwYXRoIHRvIHRoZSBkZXNpcmVkIE1JQiBvYmplY3QKIChvciBxdWFsaWZ5aW5nIHRoaXMgb2JqZWN0IHdpdGggYW4gZXhwbGljaXQgTUlCIG1vZHVsZSBuYW1lKSwKIHRoZSBNSUIgdHJlZSB3aWxsIGJlIHNlYXJjaGVkIGZvciB0aGUgbWF0Y2hpbmcgb2JqZWN0IG5hbWUuCi1UaHVzIFxmQy5pc28ub3JnLmRvZC5pbnRlcm5ldC5taWItMi5zeXN0ZW0uc3lzRGVzY3IuMFxmUgotKG9yIFxmQ1NOTVB2Mi1NSUI6OnN5c0Rlc2NyLjBcZlIpIGNhbiBiZSBzcGVjaWZpZWQgc2ltcGx5CitUaHVzIFxmQy5pc28ub3JnLmRvZC5pbnRlcm5ldC5taWJcLTIuc3lzdGVtLnN5c0Rlc2NyLjBcZlIKKyhvciBcZkNTTk1QdjJcLU1JQjo6c3lzRGVzY3IuMFxmUikgY2FuIGJlIHNwZWNpZmllZCBzaW1wbHkKIGFzIFxmQ3N5c0Rlc2NyLjBcZlIuCiAuUlMKIC5JUCAiV2FybmluZzoiCkBAIC04NDgsMjQgKzg0OCwyNCBAQAogaGF2ZSBiZWVuIGxvYWRlZC4KIC5SRQogLklQCi1UaGUgXGZJTUlCLU1PRFVMRTo6b2JqZWN0TmFtZVxmUiBzeW50YXggaGFzCitUaGUgXGZJTUlCXC1NT0RVTEU6Om9iamVjdE5hbWVcZlIgc3ludGF4IGhhcwogdGhlIGFkdmFudGFnZSBvZiB1bmlxdWVseSBpZGVudGlmeWluZyBhIHBhcnRpY3VsYXIgTUlCIG9iamVjdCwKIGFzIHdlbGwgYXMgYmVpbmcgc2xpZ2h0bHkgbW9yZSBlZmZpY2llbnQgKGFuZCBhdXRvbWF0aWNhbGx5CiBsb2FkaW5nIHRoZSBuZWNlc3NhcnkgTUlCIGZpbGUgaWYgbmVjZXNzYXJ5KS4KIC5UUAotLkIgLUlzIFNVRkZJWAorLkIgXC1JcyBTVUZGSVgKIGFkZHMgdGhlIHNwZWNpZmllZCBzdWZmaXggdG8gZWFjaCB0ZXh0dWFsIE9JRCBnaXZlbiBvbiB0aGUgY29tbWFuZCBsaW5lLgogVGhpcyBjYW4gYmUgdXNlZCB0byByZXRyaWV2ZSBtdWx0aXBsZSBvYmplY3RzIGZyb20gdGhlIHNhbWUgcm93IG9mCiBhIHRhYmxlLCBieSBzcGVjaWZ5aW5nIGEgY29tbW9uIGluZGV4IHZhbHVlLgogLlRQCi0uQiAtSVMgUFJFRklYCisuQiBcLUlTIFBSRUZJWAogYWRkcyB0aGUgc3BlY2lmaWVkIHByZWZpeCB0byBlYWNoIHRleHR1YWwgT0lEIGdpdmVuIG9uIHRoZSBjb21tYW5kIGxpbmUuCiBUaGlzIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYW4gZXhwbGljaXQgTUlCIG1vZHVsZSBuYW1lIGZvciBhbGwgb2JqZWN0cwogYmVpbmcgcmV0cmlldmVkIChvciBmb3IgaW5jdXJhYmx5IGxhenkgdHlwaXN0cykuCiAuVFAKLS5CIC1JdQorLkIgXC1JdQogZW5hYmxlcyB0aGUgdHJhZGl0aW9uYWwgVUNELXN0eWxlIGFwcHJvYWNoIHRvIGludGVycHJldGluZyBpbnB1dCBPSURzLgotVGhpcyBhc3N1bWVzIHRoYXQgT0lEcyBhcmUgcm9vdGVkIGF0IHRoZSAnbWliLTInIHBvaW50IGluIHRoZSB0cmVlCitUaGlzIGFzc3VtZXMgdGhhdCBPSURzIGFyZSByb290ZWQgYXQgdGhlICdtaWJcLTInIHBvaW50IGluIHRoZSB0cmVlCiAodW5sZXNzIHRoZXkgc3RhcnQgd2l0aCBhbiBleHBsaWNpdCAnLicgb3IgaW5jbHVkZSBhIE1JQiBtb2R1bGUgbmFtZSkuCiBTbyB0aGUgXGZDc3lzRGVzY3JcZlIgaW5zdGFuY2UgYWJvdmUgd291bGQgYmUgcmVmZXJlbmNlZCBhcwogXGZDc3lzdGVtLnN5c0Rlc2NyLjBcZlIuIApAQCAtODc0LDI4ICs4NzQsMjggQEAKIE9iamVjdCBuYW1lcyBzcGVjaWZpZWQgd2l0aCBhIGxlYWRpbmcgJy4nIGFyZSBhbHdheXMgaW50ZXJwcmV0ZWQgYXMKICJmdWxseSBxdWFsaWZpZWQiIE9JRHMsIGxpc3RpbmcgdGhlIHNlcXVlbmNlIG9mIE1JQiBvYmplY3RzIGZyb20gdGhlCiByb290IG9mIHRoZSBNSUIgdHJlZS4gIFN1Y2ggb2JqZWN0cyBhbmQgdGhvc2UgcXVhbGlmaWVkIGJ5IGFuIGV4cGxpY2l0Ci1NSUIgbW9kdWxlIG5hbWUgYXJlIHVuYWZmZWN0ZWQgYnkgdGhlIFxmQi1JYlxmUiwgXGZCLUlSXGZSIGFuZCBcZkItSXVcZlIgZmxhZ3MuCitNSUIgbW9kdWxlIG5hbWUgYXJlIHVuYWZmZWN0ZWQgYnkgdGhlIFxmQlwtSWJcZlIsIFxmQlwtSVJcZlIgYW5kIFxmQlwtSXVcZlIgZmxhZ3MuCiAKIE90aGVyd2lzZSwgaWYgbm9uZSBvZiB0aGUgYWJvdmUgaW5wdXQgb3B0aW9ucyBhcmUgc3BlY2lmaWVkLCB0aGUKIGRlZmF1bHQgYmVoYXZpb3VyIGZvciBhICJyZWxhdGl2ZSIgT0lEIGlzIHRvIHRyeSBhbmQgaW50ZXJwcmV0IGl0CiBhcyBhbiAoaW1wbGljaXRseSkgZnVsbHkgcXVhbGlmaWVkIE9JRCwKLXRoZW4gYXBwbHkgInJhbmRvbSBhY2Nlc3MiIGxvb2t1cCAoXGZCLUlSXGZSKSwKLWZvbGxvd2VkIGJ5ICJiZXN0IG1hdGNoIiBwYXR0ZXJuIG1hdGNoaW5nIChcZkItSWJcZlIpLgordGhlbiBhcHBseSAicmFuZG9tIGFjY2VzcyIgbG9va3VwIChcZkJcLUlSXGZSKSwKK2ZvbGxvd2VkIGJ5ICJiZXN0IG1hdGNoIiBwYXR0ZXJuIG1hdGNoaW5nIChcZkJcLUliXGZSKS4KIAogLlNIICJFTlZJUk9OTUVOVCBWQVJJQUJMRVMiCiAuSVAgUFJFRklYCiBUaGUgc3RhbmRhcmQgcHJlZml4IGZvciBvYmplY3QgaWRlbnRpZmllcnMgKHdoZW4gdXNpbmcgVUNELXN0eWxlIG91dHB1dCkuCi1EZWZhdWx0cyB0byAuaXNvLm9yZy5kb2QuaW50ZXJuZXQubWdtdC5taWItMgorRGVmYXVsdHMgdG8gLmlzby5vcmcuZG9kLmludGVybmV0Lm1nbXQubWliXC0yCiAuSVAgTUlCUwogVGhlIGxpc3Qgb2YgTUlCcyB0byBsb2FkLiBEZWZhdWx0cyB0bwotU05NUHYyLVRDOlNOTVB2Mi1NSUI6SUYtTUlCOklQLU1JQjpUQ1AtTUlCOlVEUC1NSUI6U05NUC1WQUNNLU1JQi4KK1NOTVB2MlwtVEM6U05NUHYyXC1NSUI6SUZcLU1JQjpJUFwtTUlCOlRDUFwtTUlCOlVEUFwtTUlCOlNOTVBcLVZBQ01cLU1JQi4KIE92ZXJyaWRkZW4gYnkgdGhlCi0uQiAtbQorLkIgXC1tCiBvcHRpb24uCiAuSVAgTUlCRElSUwogVGhlIGxpc3Qgb2YgZGlyZWN0b3JpZXMgdG8gc2VhcmNoIGZvciBNSUJzLiBEZWZhdWx0cyB0byBEQVRBRElSL3NubXAvbWlicy4KIE92ZXJyaWRkZW4gYnkgdGhlCi0uQiAtTQorLkIgXC1NCiBvcHRpb24uCiAKIC5TSCBGSUxFUwpkaWZmIC0tZ2l0IGEvbWFuL3NubXBjb25mLjEuZGVmIGIvbWFuL3NubXBjb25mLjEuZGVmCmluZGV4IDg0ODhhYTUuLmNkMGMxMDQgMTAwNjQ0Ci0tLSBhL21hbi9zbm1wY29uZi4xLmRlZgorKysgYi9tYW4vc25tcGNvbmYuMS5kZWYKQEAgLTYsNyArNiw3IEBACiBbT1BUSU9OU10gW2ZpbGVUb0NyZWF0ZV0KIC5JUCAiU3RhcnQgd2l0aDoiCiAuQiBzbm1wY29uZgotLWcgYmFzaWNfc2V0dXAKK1wtZyBiYXNpY19zZXR1cAogLklQICJPciBldmVuIGp1c3Q6IgogLkIgc25tcGNvbmYKIC5TSCBERVNDUklQVElPTgpAQCAtMjcsMzUgKzI3LDM1IEBACiBjb21tZW50ZWQuCiAuUFAKIEEgcGFydGljdWxhcmx5IHVzZWZ1bCBvcHRpb24gaXMgdGhlCi0uQiAtZworLkIgXC1nCiBzd2l0Y2gsIHdoaWNoIHdhbGtzIGEgdXNlciB0aHJvdWdoIGEgc3BlY2lmaWMgc2V0IG9mIGNvbmZpZ3VyYXRpb24KIHF1ZXN0aW9ucy4gIFJ1bjoKIC5SUwogLlBQCi1zbm1wY29uZiAtZyBiYXNpY19zZXR1cAorc25tcGNvbmYgXC1nIGJhc2ljX3NldHVwCiAuUkUKIC5QUAogZm9yIGFuIGV4YW1wbGUuCiAuU0ggIk9QVElPTlMiCiAuVFAgOAotLkIgLWYKKy5CIFwtZgogRm9yY2Ugb3ZlcndyaXRpbmcgZXhpc3RpbmcgZmlsZXMgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHdpdGhvdXQKIHByb21wdGluZyB0aGUgdXNlciBpZiB0aGlzIGlzIGEgZGVzaXJlZCB0aGluZyB0byBkby4KIC5UUCAKLS5CIC1pCisuQiBcLWkKIFdoZW4gZmluaXNoZWQsIGluc3RhbGwgdGhlIGZpbGVzIGludG8gdGhlIGxvY2F0aW9uIHdoZXJlIHRoZSBnbG9iYWwKIHN5c3RlbSBjb21tYW5kcyBleHBlY3QgdG8gZmluZCB0aGVtLgogLlRQCi0uQiAtcAorLkIgXC1wCiBXaGVuIGZpbmlzaGVkLCBpbnN0YWxsIHRoZSBmaWxlcyBpbnRvIHRoZSB1c2VycyBob21lIGRpcmVjdG9yeSdzIC5zbm1wCiBzdWJkaXJlY3RvcnkgKHdoZXJlIHRoZSBhcHBsaWNhdGlvbnMgd2lsbCBhbHNvIHNlYXJjaCBmb3IKIGNvbmZpZ3VyYXRpb24gZmlsZXMpLgogLlRQCi0uQkkgLUkgIiBESVJFQ1RPUlkiCisuQkkgXC1JICIgRElSRUNUT1JZIgogV2hlbiBmaW5pc2hlZCwgaW5zdGFsbCB0aGUgZmlsZXMgaW50byB0aGUgZGlyZWN0b3J5IAogLklSIERJUkVDVE9SWSAuCiAuVFAKLS5CIC1hCisuQiBcLWEKIERvbid0IGFzayBhbnkgcXVlc3Rpb25zLiAgU2ltcGx5IHJlYWQgaW4gdGhlIHZhcmlvdXMga25vd24KIGNvbmZpZ3VyYXRpb24gZmlsZXMgYW5kIHdyaXRlIHRoZW0gYmFjayBvdXQgYWdhaW4uICBUaGlzIGhhcyB0aGUKIGVmZmVjdCBvZiAiYXV0by1jb21tZW50aW5nIiB0aGUgY29uZmlndXJhdGlvbiBmaWxlcyBmb3IgeW91LiAgU2VlCkBAIC02MywxNyArNjMsMTcgQEAKIC5CIE5FQVQgVFJJQ0tTCiBzZWN0aW9uIGJlbG93LgogLlRQCi0uQkkgLXIgYWxsfG5vbmUKKy5CSSBcLXIgYWxsfG5vbmUKIFJlYWQgaW4gZWl0aGVyIGFsbCBvciBub25lIG9mIHRoZSBmb3VuZCBjb25maWd1cmF0aW9uIGZpbGVzLiAgTm9ybWFsbHkKIC5CIHNubXBjb25mCiBwcm9tcHRzIHlvdSBmb3Igd2hpY2ggZmlsZXMgeW91IHdpc2ggdG8gcmVhZCBpbi4gIFJlYWRpbmcgaW4KIHRoZXNlIGNvbmZpZ3VyYXRpb24gZmlsZXMgd2lsbCBtZXJnZSB0aGVzZSBmaWxlcyB3aXRoIHRoZSByZXN1bHRzIG9mCiB0aGUgcXVlc3Rpb25zIHRoYXQgaXQgYXNrcyBvZiB5b3UuCiAuVFAKLS5CSSAtUiAiIEZJTEUsLi4uIgorLkJJIFwtUiAiIEZJTEUsLi4uIgogUmVhZCBpbiBhIHNwZWNpZmljIGxpc3Qgb2YgY29uZmlndXJhdGlvbiBmaWxlcy4KIC5UUAotLkJJIC1nICIgR1JPVVBOQU1FIgorLkJJIFwtZyAiIEdST1VQTkFNRSIKIEdyb3VwcyBvZiBjb25maWd1cmF0aW9uIGVudHJpZXMgY2FuIGJlIGNyZWF0ZWQgdGhhdCBjYW4gYmUgdXNlZCB0bwogd2FsayBhIHVzZXIgdGhyb3VnaCBhIHNlcmllcyBvZiBxdWVzdGlvbnMgdG8gY3JlYXRlIGFuIGluaXRpYWwKIGNvbmZpZ3VyYXRpb24gZmlsZS4gIFRoZXJlIGFyZSBubyBtZW51cyB0byBuYXZpZ2F0ZSwganVzdCBhIGxpc3Qgb2YKQEAgLTgxLDQ0ICs4MSw0NCBAQAogLlJTCiAuUlMKIC5QUAotc25tcGNvbmYgLWcgYmFzaWNfc2V0dXAKK3NubXBjb25mIFwtZyBiYXNpY19zZXR1cAogLlJFCiAuUFAKIGZvciBhIGdvb2QgZXhhbXBsZS4KIC5SRQogLlRQCi0uQiAtRworLkIgXC1HCiBMaXN0IGFsbCB0aGUga25vd24gZ3JvdXBzLgogLlRQCi0uQkkgLWMgIiBDT05GSUdESVIiCisuQkkgXC1jICIgQ09ORklHRElSIgogLkIgc25tcGNvbmYKIHVzZXMgYSBkaXJlY3Rvcnkgb2YgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiB0byBsZWFybiBhYm91dAogdGhlIGZpbGVzIGFuZCBxdWVzdGlvbnMgdGhhdCBpdCBzaG91bGQgYmUgYXNraW5nLiAgVGhpcyBvcHRpb24gdGVsbHMKIC5CIHNubXBjb25mCiB0byB1c2UgYSBkaWZmZXJlbnQgbG9jYXRpb24gZm9yIGNvbmZpZ3VyaW5nIGl0c2VsZi4KIC5UUAotLkIgLXEKKy5CIFwtcQogUnVuIHNsaWdodGx5IG1vcmUgcXVpZXRseS4gIFNpbmNlIHRoaXMgaXMgYW4gaW50ZXJhY3RpdmUgcHJvZ3JhbSwgSQogZG9uJ3QgcmVjb21tZW5kIHRoaXMgb3B0aW9uIHNpbmNlIGl0IG9ubHkgcmVtb3ZlcyBpbmZvcm1hdGlvbiBmcm9tIHRoZQogb3V0cHV0IHRoYXQgaXMgZGVzaWduZWQgdG8gaGVscCB5b3UuCiAuVFAKLS5CIC1kCisuQiBcLWQKIFR1cm4gb24gCiAuQiBsb3RzCiBvZiBkZWJ1Z2dpbmcgb3V0cHV0LgogLlRQCi0uQiAtRAorLkIgXC1ECiBBZGQgCiAuQiBldmVuIG1vcmUKIGRlYnVnZ2luZyBvdXRwdXQgaW4gdGhlIGZvcm0gb2YgUGVybCB2YXJpYWJsZSBkdW1wcy4KIC5JUAogLlNIICJORUFUIFRSSUNLUyIKLS5JUCAic25tcGNvbmYgLWcgYmFzaWNfc2V0dXAiCisuSVAgInNubXBjb25mIFwtZyBiYXNpY19zZXR1cCIKIEhhdmUgSSBtZW50aW9uZWQgdGhpcyBjb21tYW5kIGVub3VnaCB5ZXQ/ICBJdCdzIGRlc2lnbmVkIHRvIHdhbGsKIHNvbWVvbmUgdGhyb3VnaCBhbiBpbml0aWFsIHNldHVwIGZvciB0aGUKIC5JIHNubXBkKDgpCiBkYWVtb24uICBSZWFsbHksIHlvdSBzaG91bGQgdHJ5IGl0LgotLklQICJzbm1wY29uZiAtUiAvdXNyL2xvY2FsL3NubXAvc25tcGQuY29uZiAtYSAtZiBzbm1wZC5jb25mIgorLklQICJzbm1wY29uZiBcLVIgL3Vzci9sb2NhbC9zbm1wL3NubXBkLmNvbmYgXC1hIFwtZiBzbm1wZC5jb25mIgogQXV0b21hdGljYWxseSByZWFkcyBpbiBhbiBzbm1wZC5jb25mIGZpbGUgKGZvciBleGFtcGxlKSBhbmQgYWRkcwogY29tbWVudHMgdG8gdGhlbSBkZXNjcmliaW5nIHdoYXQgZWFjaCB0b2tlbiBkb2VzLiAgVHJ5IGl0LiAgSXQncyBjb29sLgogLlNIICJOT1RFUyIKZGlmZiAtLWdpdCBhL21hbi9zbm1wZC44LmRlZiBiL21hbi9zbm1wZC44LmRlZgppbmRleCAyYzkyZmEyLi5mMTczMzk2IDEwMDY0NAotLS0gYS9tYW4vc25tcGQuOC5kZWYKKysrIGIvbWFuL3NubXBkLjguZGVmCkBAIC0xMiwxMyArMTIsMTMgQEAKIHJlcXVlc3RlZCBvcGVyYXRpb24ocykgYW5kIHJldHVybnMgdGhlIGluZm9ybWF0aW9uIHRvIHRoZSBzZW5kZXIuCiAuU0ggT1BUSU9OUwogLlRQIDgKLS5CIC1hCisuQiBcLWEKIExvZyB0aGUgc291cmNlIGFkZHJlc3NlcyBvZiBpbmNvbWluZyByZXF1ZXN0cy4KIC5UUAotLkIgLUEKKy5CIFwtQQogQXBwZW5kIHRvIHRoZSBsb2cgZmlsZSByYXRoZXIgdGhhbiB0cnVuY2F0aW5nIGl0LgogLlRQCi0uQiAiLWMiIFxmSUZJTEUKKy5CICJcLWMiIFxmSUZJTEUKIFJlYWQgCiAuSSBGSUxFCiBhcyBhIGNvbmZpZ3VyYXRpb24gZmlsZQpAQCAtMjcsMjEgKzI3LDIxIEBACiBpcyBzcGVjaWZpZWQgaW4gdGhlIGZpbGUgYXMgZGVzY3JpYmVkIGluIHRoZSBzbm1wX2NvbmZpZyBtYW4gcGFnZSB1bmRlcgogU1dJVENISU5HIENPTkZJR1VSQVRJT04gVFlQRVMgSU4gTUlELUZJTEUuCiAuVFAKLS5CIC1DCisuQiBcLUMKIERvIG5vdCByZWFkIGFueSBjb25maWd1cmF0aW9uIGZpbGVzIGV4Y2VwdCB0aGUgb25lcyBvcHRpb25hbGx5IHNwZWNpZmllZCBieSB0aGUgCi0uQiAtYyAKKy5CIFwtYyAKIG9wdGlvbi4KIE5vdGUgdGhhdCB0aGlzIGJlaGF2aW91ciBhbHNvIGNvdmVycyB0aGUgcGVyc2lzdGVudCBjb25maWd1cmF0aW9uIGZpbGVzLgogVGhpcyBtYXkgcmVzdWx0IGluIGR5bmFtaWNhbGx5LWFzc2lnbmVkIHZhbHVlcyBiZWluZyByZXNldCBmb2xsb3dpbmcgYW4KIGFnZW50IHJlc3RhcnQsIHVubGVzcyB0aGUgcmVsZXZhbnQgcGVyc2lzdGVudCBjb25maWcgZmlsZXMgYXJlCiBleHBsaWNpdGx5IGxvYWRlZCB1c2luZyB0aGUKLS5CIC1jIAorLkIgXC1jIAogb3B0aW9uLgogLlRQCi0uQiAtZAorLkIgXC1kCiBEdW1wIChpbiBoZXhhZGVjaW1hbCkgdGhlIHNlbnQgYW5kIHJlY2VpdmVkIFNOTVAgcGFja2V0cy4KIC5UUAotLkIgLURcZklbVE9LRU5bLC4uLl1dCisuQiBcLURcZklbVE9LRU5bLC4uLl1dCiBUdXJuIG9uIGRlYnVnZ2luZyBvdXRwdXQgZm9yIHRoZSBnaXZlbgogLklSICJUT0tFTiIgIihzKS4iCiBXaXRob3V0IGFueSB0b2tlbnMgc3BlY2lmaWVkLCBpdCBkZWZhdWx0cyB0byBwcmludGluZyBhbGwgdGhlIHRva2VucwpAQCAtNDksOTkgKzQ5LDk5IEBACiBZb3UgbWlnaHQgd2FudCB0byB0cnkKIC5JUiBBTEwKIGZvciBleHRyZW1lbHkgdmVyYm9zZSBvdXRwdXQuICBOb3RlOiBZb3UgY2FuIG5vdCBwdXQgYSBzcGFjZSBiZXR3ZWVuCi10aGUgLUQgZmxhZyBhbmQgdGhlIGxpc3RlZCBUT0tFTnMuCit0aGUgXC1EIGZsYWcgYW5kIHRoZSBsaXN0ZWQgVE9LRU5zLgogLlRQCi0uQiAtZgorLkIgXC1mCiBEbyBub3QgZm9yaygpIGZyb20gdGhlIGNhbGxpbmcgc2hlbGwuCiAuVFAKLS5CIC1nIFxmSUdJRAorLkIgXC1nIFxmSUdJRAogQ2hhbmdlIHRvIHRoZSBudW1lcmljYWwgZ3JvdXAgSUQKIC5JIEdJRAogYWZ0ZXIgb3BlbmluZyBsaXN0ZW5pbmcgc29ja2V0cy4KIC5UUAotLkIgLWgsIC0taGVscAorLkIgXC1oLCBcLVwtaGVscAogRGlzcGxheSBhIGJyaWVmIHVzYWdlIG1lc3NhZ2UgYW5kIHRoZW4gZXhpdC4KIC5UUAotLkIgLUgKKy5CIFwtSAogRGlzcGxheSBhIGxpc3Qgb2YgY29uZmlndXJhdGlvbiBmaWxlIGRpcmVjdGl2ZXMgdW5kZXJzdG9vZCBieSB0aGUKIGFnZW50IGFuZCB0aGVuIGV4aXQuCiAuVFAKLS5CIC1JIFxmSVstXUlOSVRMSVNUCisuQiBcLUkgXGZJW1wtXUlOSVRMSVNUCiBTcGVjaWZpZXMgd2hpY2ggbW9kdWxlcyBzaG91bGQgKG9yIHNob3VsZCBub3QpIGJlIGluaXRpYWxpemVkCiB3aGVuIHRoZSBhZ2VudCBzdGFydHMgdXAuICBJZiB0aGUgY29tbWEtc2VwYXJhdGVkCiAuSSBJTklUTElTVAogaXMgcHJlY2VkZWQKLXdpdGggYSAnLScsIGl0IGlzIHRoZSBsaXN0IG9mIG1vZHVsZXMgdGhhdCBzaG91bGQgXGZJbm90XGZSIGJlIHN0YXJ0ZWQuCit3aXRoIGEgJ1wtJywgaXQgaXMgdGhlIGxpc3Qgb2YgbW9kdWxlcyB0aGF0IHNob3VsZCBcZklub3RcZlIgYmUgc3RhcnRlZC4KIE90aGVyd2lzZSB0aGlzIGlzIHRoZSBsaXN0IG9mIHRoZSBcZklvbmx5XGZSIG1vZHVsZXMgdGhhdCBzaG91bGQgYmUgc3RhcnRlZC4KIAogVG8gZ2V0IGEgbGlzdCBvZiBjb21waWxlZCBtb2R1bGVzLCBydW4gdGhlIGFnZW50IHdpdGggdGhlIGFyZ3VtZW50cwotLkkgIi1EbWliX2luaXQgLUgiCisuSSAiXC1EbWliX2luaXQgXC1IIgogKGFzc3VtaW5nIGRlYnVnZ2luZyBzdXBwb3J0IGhhcyBiZWVuIGNvbXBpbGVkIGluKS4KIC5UUAotLkIgLUxbZWZvc10KKy5CIFwtTFtlZm9zXQogU3BlY2lmeSB3aGVyZSBsb2dnaW5nIG91dHB1dCBzaG91bGQgYmUgZGlyZWN0ZWQgKHN0YW5kYXJkIGVycm9yIG9yIG91dHB1dCwKIHRvIGEgZmlsZSBvciB2aWEgc3lzbG9nKS4gIFNlZSBMT0dHSU5HIE9QVElPTlMgaW4gc25tcGNtZCg1KSBmb3IgZGV0YWlscy4KIC5UUAotLkJSIC1tICIgXGZJTUlCTElTVCIKKy5CUiBcLW0gIiBcZklNSUJMSVNUIgogU3BlY2lmaWVzIGEgY29sb24gc2VwYXJhdGVkIGxpc3Qgb2YgTUlCIG1vZHVsZXMgdG8gbG9hZCBmb3IgdGhpcwogYXBwbGljYXRpb24uICBUaGlzIG92ZXJyaWRlcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgTUlCUy4KIFNlZSBcZklzbm1wY21kKDEpXGZSIGZvciBkZXRhaWxzLgogLlRQCi0uQlIgLU0gIiBcZklESVJMSVNUIgorLkJSIFwtTSAiIFxmSURJUkxJU1QiCiBTcGVjaWZpZXMgYSBjb2xvbiBzZXBhcmF0ZWQgbGlzdCBvZiBkaXJlY3RvcmllcyB0byBzZWFyY2ggZm9yIE1JQnMuCiBUaGlzIG92ZXJyaWRlcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgTUlCRElSUy4KIFNlZSBcZklzbm1wY21kKDEpXGZSIGZvciBkZXRhaWxzLgogLlRQCi0uQiAtbiBcZklOQU1FCisuQiBcLW4gXGZJTkFNRQogU2V0IGFuIGFsdGVybmF0aXZlIGFwcGxpY2F0aW9uIG5hbWUgKHdoaWNoIHdpbGwgYWZmZWN0IHRoZQogY29uZmlndXJhdGlvbiBmaWxlcyBsb2FkZWQpLgogQnkgZGVmYXVsdCB0aGlzIHdpbGwgYmUgXGZJc25tcGRcZlIsIHJlZ2FyZGxlc3Mgb2YgdGhlIG5hbWUKIG9mIHRoZSBhY3R1YWwgYmluYXJ5LgogLlRQCi0uQiAtcCBcZklGSUxFCisuQiBcLXAgXGZJRklMRQogU2F2ZSB0aGUgcHJvY2VzcyBJRCBvZiB0aGUgZGFlbW9uIGluCiAuSVIgRklMRSAiLiIKIC5UUCAKLS5CIC1xCisuQiBcLXEKIFByaW50IHNpbXBsZXIgb3V0cHV0IGZvciBlYXNpZXIgYXV0b21hdGVkIHBhcnNpbmcuCiAuVFAKLS5CIC1yCisuQiBcLXIKIERvIG5vdCByZXF1aXJlIHJvb3QgYWNjZXNzIHRvIHJ1biB0aGUgZGFlbW9uLiAgU3BlY2lmaWNhbGx5LCBkbyBub3QgZXhpdAogaWYgZmlsZXMgb25seSBhY2Nlc3NpYmxlIHRvIHJvb3QgKHN1Y2ggYXMgL2Rldi9rbWVtIGV0Yy4pIGNhbm5vdCBiZQogb3BlbmVkLgogLlRQCi0uQiAtdSBcZklVSUQKKy5CIFwtdSBcZklVSUQKIENoYW5nZSB0byB0aGUgdXNlciBJRAogLkkgVUlECiAod2hpY2ggY2FuIGJlIGdpdmVuIGluIG51bWVyaWNhbCBvciB0ZXh0dWFsIGZvcm0pIGFmdGVyIG9wZW5pbmcKIGxpc3RlbmluZyBzb2NrZXRzLgogLlRQCi0uQiAtVQorLkIgXC1VCiBJbnN0cnVjdHMgdGhlIGFnZW50IHRvIG5vdCByZW1vdmUgaXRzIHBpZCBmaWxlIChzZWUgdGhlCi0uQiAtcAorLkIgXC1wCiBvcHRpb24pIG9uIHNodXRkb3duLiBPdmVycmlkZXMgdGhlIGxlYXZlX3BpZGZpbGUgdG9rZW4gaW4gdGhlCiAuSSBzbm1wZC5jb25mCiBmaWxlLCBzZWUKIC5JIHNubXBkLmNvbmYoNSkuCiAuVFAKLS5CIC12LCAtLXZlcnNpb24KKy5CIFwtdiwgXC1cLXZlcnNpb24KIFByaW50IHZlcnNpb24gaW5mb3JtYXRpb24gZm9yIHRoZSBhZ2VudCBhbmQgdGhlbiBleGl0LgogLlRQCi0uQiAtVgorLkIgXC1WCiBTeW1ib2xpY2FsbHkgZHVtcCBTTk1QIHRyYW5zYWN0aW9ucy4KIC5UUAotLkIgLXggXGZJQUREUkVTUworLkIgXC14IFxmSUFERFJFU1MKIExpc3RlbnMgZm9yIEFnZW50WCBjb25uZWN0aW9ucyBvbiB0aGUgc3BlY2lmaWVkIGFkZHJlc3MKIHJhdGhlciB0aGFuIHRoZSBkZWZhdWx0IEFHRU5UWF9TT0NLRVQuCiBUaGUgYWRkcmVzcyBjYW4gZWl0aGVyIGJlIGEgVW5peCBkb21haW4gc29ja2V0IHBhdGgsCiBvciB0aGUgYWRkcmVzcyBvZiBhIG5ldHdvcmsgaW50ZXJmYWNlLiAgVGhlIGZvcm1hdCBpcyB0aGUgc2FtZSBhcyB0aGUKIGZvcm1hdCBvZiBsaXN0ZW5pbmcgYWRkcmVzc2VzIGRlc2NyaWJlZCBiZWxvdy4KIC5UUAotLkIgLVgKKy5CIFwtWAogUnVuIGFzIGFuIEFnZW50WCBzdWJhZ2VudCByYXRoZXIgdGhhbiBhcyBhbiBTTk1QIG1hc3RlciBhZ2VudC4KIC5UUAotLkJJIC0tICJuYW1lIj0idmFsdWUiCi1BbGxvd3MgdG8gc3BlY2lmeSBhbnkgdG9rZW4gKCJuYW1lIikgc3VwcG9ydGVkIGluIHRoZQorLkJJIFwtXC0gIm5hbWUiPSJ2YWx1ZSIKK0FsbG93cyBvbmUgdG8gc3BlY2lmeSBhbnkgdG9rZW4gKCJuYW1lIikgc3VwcG9ydGVkIGluIHRoZQogLkkgc25tcGQuY29uZgogZmlsZSBhbmQgc2V0cyBpdHMgdmFsdWUgdG8gInZhbHVlIi4gT3ZlcnJpZGVzIHRoZSBjb3JyZXNwb25kaW5nIHRva2VuIGluIHRoZQogLkkgc25tcGQuY29uZgpAQCAtMjE4LDEwICsyMTgsMTAgQEAKIC5JUiAiaXB4Oi80MDAwMCIKIGxpc3RlbiBvbiBJUFggcG9ydCA0MDAwMCBvbiBhbGwgSVBYIGludGVyZmFjZXMuCiAuVFAgMjQKLS5JUiAidW5peDovdG1wL2xvY2FsLWFnZW50IgotbGlzdGVuIG9uIHRoZSBVbml4IGRvbWFpbiBzb2NrZXQgXGZJL3RtcC9sb2NhbC1hZ2VudFxmUi4KKy5JUiAidW5peDovdG1wL2xvY2FsXC1hZ2VudCIKK2xpc3RlbiBvbiB0aGUgVW5peCBkb21haW4gc29ja2V0IFxmSS90bXAvbG9jYWxcLWFnZW50XGZSLgogLlRQIDI0Ci0uSVIgIi90bXAvbG9jYWwtYWdlbnQiCisuSVIgIi90bXAvbG9jYWxcLWFnZW50IgogaXMgaWRlbnRpY2FsIHRvIHRoZSBwcmV2aW91cyBzcGVjaWZpY2F0aW9uLCBzaW5jZSB0aGUgVW5peCBkb21haW4gaXMKIGFzc3VtZWQgaWYgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgPHRyYW5zcG9ydC1hZGRyZXNzPiBpcyAnLycuCiAuVFAgMjQKQEAgLTI1Niw3ICsyNTYsNyBAQAogbmFtZWQgcGlwZSB0aGF0IGNhbiBiZSBjb25uZWN0ZWQgdG8gdmlhIGEgc3NoIHN1YnN5c3RlbSBjb25maWd1cmVkIGluCiB0aGUgbWFpbiBzc2ggc2VydmVyLiAgVGhlIHBpcGUgbG9jYXRpb24gKGNvbmZpZ3VyYWJsZSB3aXRoIHRoZQogc3NodG9zbm1wc29ja2V0IHRva2VuIGluIHNubXAuY29uZikgaXMKLS5JIC92YXIvbmV0LXNubXAvc3NodG9zbm1wLgorLkkgL3Zhci9uZXRcLXNubXAvc3NodG9zbm1wLgogUGFja2V0cyBzaG91bGQgYmUgc3VibWl0dGVkIHRvIGl0IHZpYSB0aGUgc3NodG9zbm1wIGFwcGxpY2F0aW9uLCB3aGljaAogYWxzbyBzZW5kcyB0aGUgdXNlciBJRCBhcyB3ZWxsIHdoZW4gc3RhcnRpbmcgdGhlIGNvbm5lY3Rpb24uICBUaGUgVFNNCiBzZWN1cml0eSBtb2RlbCBzaG91bGQgYmUgdXNlZCB3aGVuIHBhY2tldHMgc2hvdWxkIHByb2Nlc3MgaXQuCkBAIC0yNzYsMTEgKzI3NiwxMSBAQAogVGhlCiAuSSBzc2h0b3NubXAKIGNvbW1hbmQgd2lsbCBuZWVkIHJlYWQvd3JpdGUgYWNjZXNzIHRvIHRoZSAKLS5JIC92YXIvbmV0LXNubXAvc3NodG9zbm1wCisuSSAvdmFyL25ldFwtc25tcC9zc2h0b3NubXAKIHBpcGUuICBBbHRob3VnaCBpdCBzaG91bGQgYmUgZmFpcmx5IHNhZmUgdG8gZ3JhbnQgYWNjZXNzIHRvIHRoZQogYXZlcmFnZSB1c2VyIHNpbmNlIGl0IHN0aWxsIHJlcXVpcmVzIG1vZGlmaWNhdGlvbnMgdG8gdGhlIEFDTSBzZXR0aW5ncwogYmVmb3JlIHRoZSB1c2VyIGNhbiBwZXJmb3JtIG9wZXJhdGlvbnMsIHBhcmFub2lkIGFkbWluaXN0cmF0b3JzIG1heQotd2FudCB0byBtYWtlIHRoZSAvdmFyL25ldC1zbm1wIGRpcmVjdG9yeSBhY2Nlc3NpYmxlIG9ubHkgYnkgdXNlcnMgaW4gYQord2FudCB0byBtYWtlIHRoZSAvdmFyL25ldFwtc25tcCBkaXJlY3RvcnkgYWNjZXNzaWJsZSBvbmx5IGJ5IHVzZXJzIGluIGEKIHBhcnRpY3VsYXIgZ3JvdXAuICBVc2UgdGhlCiAuSSBzc2h0b3NubXBzb2NrZXRwZXJtcwogc25tcC5jb25mIGNvbmZpZ3VyZSBvcHRpb24gdG8gc2V0IHRoZSBwZXJtaXNzaW9ucywgb3duZXIgYW5kIGdyb3VwIG9mCkBAIC0yOTAsNyArMjkwLDcgQEAKIHN0eWxlIG9mIHNpbXBsZSBzbm1wZC5jb25mIHNldHRpbmdzOgogLlRQIDgKIC5JUAotcm91c2VyIC1zIHRzbSBmb28gYXV0aHByaXYKK3JvdXNlciBcLXMgdHNtIGZvbyBhdXRocHJpdgogLklQCiBOb3RlIHRoYXQgImF1dGhwcml2IiBpcyBhY2NlcHRhYmxlIGFzc3VtaW5nIGFzIFNTSCBwcm90ZWN0cyBldmVyeXRoaW5nCiB0aGF0IHdheSAoYXNzdW1pbmcgeW91IGhhdmUgYSBub24taW5zYW5lIHNldHVwKS4KZGlmZiAtLWdpdCBhL21hbi9zbm1wZC5jb25mLjUuZGVmIGIvbWFuL3NubXBkLmNvbmYuNS5kZWYKaW5kZXggNDlkODFiNi4uMmE4YTNkMyAxMDA2NDQKLS0tIGEvbWFuL3NubXBkLmNvbmYuNS5kZWYKKysrIGIvbWFuL3NubXBkLmNvbmYuNS5kZWYKQEAgLTE4LDcgKzE4LDcgQEAKIG1hbnVhbCBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uLCBvciB0cnkgcnVubmluZyB0aGUKIGNvbW1hbmQ6CiAuUlMKLS5JUCAic25tcGNvbmYgLWcgYmFzaWNfc2V0dXAiCisuSVAgInNubXBjb25mIFwtZyBiYXNpY19zZXR1cCIKIC5SRQogLlBQCiBUaGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2YgZGlyZWN0aXZlcyB0aGF0IGNhbiBiZSBzcGVjaWZpZWQsCkBAIC00MCw3ICs0MCw3IEBACiBBIGZ1bGwgbGlzdCBvZiByZWNvZ25pc2VkIGRpcmVjdGl2ZXMgY2FuIGJlIG9idGFpbmVkIGJ5IHJ1bm5pbmcKIHRoZSBjb21tYW5kOgogLlJTCi0uSVAgInNubXBkIC1IIgorLklQICJzbm1wZCBcLUgiCiAuUkUKIC5TSCBBR0VOVCBCRUhBVklPVVIKIEFsdGhvdWdoIG1vc3QgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzIGFyZSBjb25jZXJuZWQgd2l0aCB0aGUgTUlCCkBAIC02OSwxMSArNjksMTEgQEAKIHN0YXJ0aW5nIHdpdGggJyMnICgjVUlEKS4KIC5JUCAibGVhdmVfcGlkZmlsZSB5ZXMiCiBpbnN0cnVjdHMgdGhlIGFnZW50IHRvIG5vdCByZW1vdmUgaXRzIHBpZCBmaWxlIG9uIHNodXRkb3duLiBFcXVpdmFsZW50IHRvCi1zcGVjaWZ5aW5nICItVSIgb24gdGhlIGNvbW1hbmQgbGluZS4KK3NwZWNpZnlpbmcgIlwtVSIgb24gdGhlIGNvbW1hbmQgbGluZS4KIC5JUCAibWF4R2V0YnVsa1JlcGVhdHMgTlVNIgogU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVzcG9uc2VzIGFsbG93ZWQgZm9yIGEgc2luZ2xlIHZhcmlhYmxlIGluCi1hIGdldGJ1bGsgcmVxdWVzdC4gIFNldCB0byAwIHRvIGVuYWJsZSB0aGUgZGVmYXVsdCBhbmQgc2V0IGl0IHRvIC0xIHRvCi1lbmFibGUgdW5saW1pdGVkLiAgQmVjYXVzZSBtZW1vcnkgaXMgYWxsb2NhdGVkIGFoZWFkIG9mIHRpbWUsIHNpdHRpbmcKK2EgZ2V0YnVsayByZXF1ZXN0LiAgU2V0IHRvIDAgdG8gZW5hYmxlIHRoZSBkZWZhdWx0IGFuZCBzZXQgaXQgdG8gXC0xIHRvCitlbmFibGUgdW5saW1pdGVkLiAgQmVjYXVzZSBtZW1vcnkgaXMgYWxsb2NhdGVkIGFoZWFkIG9mIHRpbWUsIHNldHRpbmcKIHRoaXMgdG8gdW5saW1pdGVkIGlzIG5vdCBjb25zaWRlcmVkIHNhZmUgaWYgeW91ciB1c2VyIHBvcHVsYXRpb24gY2FuCiBub3QgYmUgdHJ1c3RlZC4gIEEgcmVwZWF0IG51bWJlciBncmVhdGVyIHRoYW4gdGhpcyB3aWxsIGJlIHRydW5jYXRlZAogdG8gdGhpcyB2YWx1ZS4KQEAgLTgyLDggKzgyLDggQEAKIC5JUCAibWF4R2V0YnVsa1Jlc3BvbnNlcyBOVU0iCiBTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXNwb25zZXMgYWxsb3dlZCBmb3IgYSBnZXRidWxrIHJlcXVlc3QuCiBUaGlzIGlzIHNldCBieSBkZWZhdWx0IHRvIDEwMC4gIFNldCB0byAwIHRvIGVuYWJsZSB0aGUgZGVmYXVsdCBhbmQgc2V0Ci1pdCB0byAtMSB0byBlbmFibGUgdW5saW1pdGVkLiAgQmVjYXVzZSBtZW1vcnkgaXMgYWxsb2NhdGVkIGFoZWFkIG9mCi10aW1lLCBzaXR0aW5nIHRoaXMgdG8gdW5saW1pdGVkIGlzIG5vdCBjb25zaWRlcmVkIHNhZmUgaWYgeW91ciB1c2VyCitpdCB0byBcLTEgdG8gZW5hYmxlIHVubGltaXRlZC4gIEJlY2F1c2UgbWVtb3J5IGlzIGFsbG9jYXRlZCBhaGVhZCBvZgordGltZSwgc2V0dGluZyB0aGlzIHRvIHVubGltaXRlZCBpcyBub3QgY29uc2lkZXJlZCBzYWZlIGlmIHlvdXIgdXNlcgogcG9wdWxhdGlvbiBjYW4gbm90IGJlIHRydXN0ZWQuCiAuSVAKIEluIGdlbmVyYWwsIHRoZSB0b3RhbCBudW1iZXIgb2YgcmVzcG9uc2VzIHdpbGwgbm90IGJlIGFsbG93ZWQgdG8KQEAgLTEwNSw5ICsxMDUsOSBAQAogZXh0ZW5zaXZlbHkgdGVzdGVkLiAgSXQgYWxzbyBjb250YWlucyBjb2RlIGZvciBzdXBwb3J0IGZvciBhbgogZXhwZXJpbWVudGFsIEtlcmJlcm9zIGJhc2VkIFNOTVB2MyB0aGF0IG5ldmVyIGdvdCBzdGFuZGFyZGl6ZWQuCiAuUFAKLUhvcGVmdWwgbW9yZSBTTk1QIHNvZnR3YXJlIGFuZCBkZXZpY2VzIHdpbGwgZXZlbnR1YWxseSBzdXBwb3J0IFNOTVAKK0hvcGVmdWxseSBtb3JlIFNOTVAgc29mdHdhcmUgYW5kIGRldmljZXMgd2lsbCBldmVudHVhbGx5IHN1cHBvcnQgU05NUAogb3ZlciAoRClUTFMgb3IgU1NILCBidXQgaXQgaXMgbGlrZWx5IHRoYXQgZGV2aWNlcyB3aXRoIG9yaWdpbmFsCi1zdXBwb3J0IGZvciBTTk1QIHdpbGwgb25seSBjb250YWluIHN1cHBvcnQgZm9yIFNOTVAgb3ZlciBVU00uICBJZiB5b3VyCitzdXBwb3J0IGZvciBTTk1QIHdpbGwgb25seSBjb250YWluIHN1cHBvcnQgZm9yIFVTTSB1c2Vycy4gIElmIHlvdXIKIG5ldHdvcmsgbWFuYWdlciBzdXBwb3J0cyBTTk1QIG92ZXIgKEQpVExTIG9yIFNOTVAgb3ZlciBTU0ggd2Ugc3VnZ2VzdAogeW91IHVzZSBvbmUgb2YgdGhlc2UgbWVjaGFuaXNtcyBpbnN0ZWFkIG9mIHVzaW5nIFVTTSwgYnV0IGFzIGFsd2F5cwogd2l0aCBOZXQtU05NUCB3ZSBnaXZlIHlvdSB0aGUgb3B0aW9ucyB0byBwaWNrIGZyb20gc28geW91IGNhbiBtYWtlIHRoZQpAQCAtMTU4LDIwICsxNTgsMTQgQEAKIGEgJ1tzbm1wXScgdGFnLiAgSWYgeW91IHBsYWNlIHRoZXNlIHRva2VucyBpbiB5b3VyIHNubXBkLmNvbmYgZmlsZSwKIHRoaXMgdGFrZSBpcyByZXF1aXJlZC4gIFNlZSB0aGUgc25tcF9jb25maWcoNSkgbWFudWFsIHBhZ2UgZm9yIHRoZQogbWVhbmluZyBvZiB0aGlzIGNvbnRleHQgc3dpdGNoLgotLklQICJbc25tcF0gc2VydmVyQ2VydCA8c3BlY2lmaWVyPiIKKy5JUCAiW3NubXBdIGxvY2FsQ2VydCA8c3BlY2lmaWVyPiIKIFRoaXMgdG9rZW4gZGVmaW5lcyB0aGUgZGVmYXVsdCBYLjUwOSBwdWJsaWMga2V5IHRvIHVzZSBhcyB0aGUgc2VydmVyJ3MKIGlkZW50aXR5LiAgSXQgc2hvdWxkIGVpdGhlciBiZSBhIGZpbmdlcnByaW50IG9yIGEgZmlsZW5hbWUuICBUbyBjcmVhdGUKLWEgcHVibGljIGtleSBmb3IgdXNlLCBwbGVhc2UgcnVuIHRoZSAibmV0LXNubXAtY2VydCIgdXRpbGl0eSB3aGljaAorYSBwdWJsaWMga2V5IGZvciB1c2UsIHBsZWFzZSBydW4gdGhlICJuZXRcLXNubXBcLWNlcnQiIHV0aWxpdHkgd2hpY2gKIHdpbGwgaGVscCB5b3UgY3JlYXRlIHRoZSByZXF1aXJlZCBjZXJ0aWZpY2F0ZS4KIC5JUAogVGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoaXMgaXMgdGhlIGNlcnRpZmljYXRlIGluIHRoZSAic25tcGQiIG5hbWVkCiBjZXJ0aWZpY2F0ZSBmaWxlLgotLklQICJbc25tcF0gY2xpZW50Q2VydCA8c3BlY2lmaWVyPiIKLUlmIG91dGdvaW5nIFRMUyBjb25uZWN0aW9ucyBhcmUgdG8gYmUgb3BlbmVkLCBmb3IgZXhhbXBsZSBiZWNhdXNlCi1ub3RpZmljYXRpb25zIGFyZSB0byBiZSBzZW50IG92ZXIgVExTLCB0aGVuIHRoaXMgd2lsbCBzZWxlY3QgdGhlCi1jbGllbnQtc2lkZSBwdWJsaWMga2V5IHRvIHVzZSBmb3IgdGhvc2Ugb3V0Z29pbmcgY29ubmVjdGlvbnMuICBJdCBjYW4KLWVpdGhlciBiZSBzcGVjaWZpZWQgYXMgYSBmaW5nZXJwcmludCBvciBhIGZpbGVuYW1lLiAgU2VlIHRoZQotIm5ldC1zbm1wLWNlcnQiIHV0aWxpdHkgZm9yIGNyZWF0aW5nIGNlcnRpZmljYXRlcy4KIC5JUCAiW3NubXBdIHRsc0FsZ29yaXRobXMgPGFsZ29yaXRobXM+IgogVGhpcyBzdHJpbmcgd2lsbCBzZWxlY3QgdGhlIGFsZ29yaXRobXMgdG8gdXNlIHdoZW4gbmVnb3RpYXRpbmcKIHNlY3VyaXR5IGR1cmluZyAoRClUTFMgc2Vzc2lvbiBlc3RhYmxpc2htZW50LiAgU2VlIHRoZSBvcGVuc3NsIG1hbnVhbApAQCAtMTgyLDEyICsxNzYsMTIgQEAKIERFRkFVTFQKIEFMTAogSElHSAotSElHSDohQUVTMTI4LVNIQQorSElHSDohQUVTMTI4XC1TSEEKIC5maQogLlJFCiAuSVAKIFRoZSBkZWZhdWx0IHZhbHVlIGlzIHdoYXRldmVyIG9wZW5zc2wgaXRzZWxmIHdhcyBjb25maWd1cmVkIHdpdGguCi0uSVAgIltzbm1wXSB4MDU5Q1JMRmlsZSIKKy5JUCAiW3NubXBdIHg1MDlDUkxGaWxlIgogSWYgeW91IGFyZSB1c2luZyBhIENlcnRpZmljYXRlIEF1dGhvcml0eSAoQ0EpIHRoYXQgcHVibGlzaGVzIGEKIENlcnRpZmljYXRlIFJldm9jYXRpb24gTGlzdCAoQ1JMKSB0aGVuIHRoaXMgdG9rZW4gY2FuIGJlIHVzZWQgdG8KIHNwZWNpZnkgdGhlIGxvY2F0aW9uIGluIHRoZSBmaWxlc3lzdGVtIG9mIGEgY29weSBvZiB0aGUgQ1JMIGZpbGUuCkBAIC0xOTcsMjIgKzE5MSwyMiBAQAogYmUgbm90aWNlZCB1cG9uIGEgcmVzdGFydCBvZiB0aGUgc25tcGQgYWdlbnQuCiAKIC5JUCAiY2VydFNlY05hbWUgUFJJT1JJVFkgRklOR0VSUFJJTlQgT1BUSU9OUyIKLU9QVElPTlMgY2FuIGJlIG9uZSBvZiA8LS1zbiBTRUNOQU1FIHwgLS1yZmM4MjIgfCAtLWRucyB8IC0taXAgfCAtLWNuIHwgLS1hbnk+LgorT1BUSU9OUyBjYW4gYmUgb25lIG9mIDxcLVwtc24gU0VDTkFNRSB8IFwtXC1yZmM4MjIgfCBcLVwtZG5zIHwgXC1cLWlwIHwgXC1cLWNuIHwgXC1cLWFueT4uCiAuSVAKIFRoZSBjZXJ0U2VjTmFtZSB0b2tlbiB3aWxsIHNwZWNpZnkgaG93IHRvIG1hcCBhIGNlcnRpZmljYXRlIGZpZWxkIGZyb20KLXRoZSBjbGllbnQncyBYLjUwOSBjZXJ0aWZpY2F0ZSB0byBhIFNOTVB2MyB1c2VybmFtZS4gIFVzZSB0aGUgLS1zbgordGhlIGNsaWVudCdzIFguNTA5IGNlcnRpZmljYXRlIHRvIGEgU05NUHYzIHVzZXJuYW1lLiAgVXNlIHRoZSBcLVwtc24KIFNFQ05BTUUgZmxhZyB0byBkaXJlY3RseSBzcGVjaWZ5IGEgc2VjdXJpdHlOYW1lIGZvciBhIGdpdmVuCiBjZXJ0aWZpY2F0ZS4gIFRoZSBvdGhlciBmbGFncyBleHRyYWN0IGEgcGFydGljdWxhciBjb21wb25lbnQgb2YgdGhlCiBjZXJ0aWZpY2F0ZSBmb3IgdXNlIGFzIGEgc25tcHYzIHNlY3VyaXR5TmFtZS4gIFRoZXNlIGZpZWxkcyBhcmUgb25lCi1vZjogQSBTdWJqZWN0QWx0TmFtZSBjb250YWluaW5nIGFuIHJmYzgyMiB2YWx1ZSAoZWcgaGFyZGFrZXJAbmV0LXNubXAub3JnKSwKLUEgU3ViamVjdEFsdE5hbWUgY29udGFpbmluZyBhIGRucyBuYW1lIHZhbHVlIChlZyBmb28ubmV0LXNubXAub3JnKSwKK29mOiBBIFN1YmplY3RBbHROYW1lIGNvbnRhaW5pbmcgYW4gcmZjODIyIHZhbHVlIChlZyBoYXJkYWtlckBuZXRcLXNubXAub3JnKSwKK0EgU3ViamVjdEFsdE5hbWUgY29udGFpbmluZyBhIGRucyBuYW1lIHZhbHVlIChlZyBmb28ubmV0XC1zbm1wLm9yZyksCiBhbiBJUCBhZGRyZXNzIChlZyAxOTIuMC4yLjEpIG9yIGEgY29tbW9uIG5hbWUgIldlcyBIYXJkYWtlciIuICBUaGUKLS0tYW55IGZsYWcgc3BlY2lmaWVzIHRoYXQgYW55IG9mIHRoZSBzdWJqZWNBbHROYW1lIGZpZWxkcyBtYXkgYmUKK1wtXC1hbnkgZmxhZyBzcGVjaWZpZXMgdGhhdCBhbnkgb2YgdGhlIHN1YmplY0FsdE5hbWUgZmllbGRzIG1heSBiZQogdXNlZC4gIE1ha2Ugc3VyZSBvbmNlIGEgc2VjdXJpdHlOYW1lIGhhcyBiZWVuIHNlbGVjdGVkIHRoYXQgaXQgaXMKIGdpdmVuIGF1dGhvcml6YXRpb24gdmlhIHRoZSBWQUNNIGNvbnRyb2xzIGRpc2N1c3NlZCBsYXRlciBpbiB0aGlzCiBtYW51YWwgcGFnZS4KIC5JUAotU2VlIHRoZSBodHRwOi8vd3d3Lm5ldC1zbm1wLm9yZy93aWtpL2luZGV4LnBocC9Vc2luZ19EVExTIHdlYiBwYWdlIGZvcgorU2VlIHRoZSBodHRwOi8vd3d3Lm5ldFwtc25tcC5vcmcvd2lraS9pbmRleC5waHAvVXNpbmdfRFRMUyB3ZWIgcGFnZSBmb3IKIG1vcmUgZGV0YWlsZWQgaW5zdHJ1Y3Rpb25zIGZvciBzZXR0aW5nIHVwIChEKVRMUy4KIC5JUCAidHJ1c3RDZXJ0IDxzcGVjaWZpZXI+IgogRm9yIFg1MDkgdG8gcHJvcGVybHkgdmVyaWZ5IGEgY2VydGlmaWNhdGUsIGl0IHNob3VsZCBiZSB2ZXJpZmlhYmxlIHVwCkBAIC0yMjcsNyArMjIxLDcgQEAKIGNvbm5lY3Rpb25zIGZyb20gKEQpVExTIHRoYXQgeW91IHVzZSB0aGUgInRzbSIgc2VjdXJpdHkgbW9kZWwuICBFLkcuOgogLmZpCiAKLXJ3dXNlciAtcyB0c20gaGFyZGFrZXJAbmV0LXNubXAub3JnCityd3VzZXIgXC1zIHRzbSBoYXJkYWtlckBuZXRcLXNubXAub3JnCiAuZmkKIC5TUyBTTk1QdjMgb3ZlciBTU0ggU3VwcG9ydAogVG8gdXNlIFNTSCwgeW91J2xsIG5lZWQgdG8gY29uZmlndXJlIHNzaGQgdG8gaW52b2tlIHRoZSBzc2h0b3NubXAKQEAgLTI2NSwxMCArMjU5LDEwIEBACiAuU1MgU05NUHYzIFVTTSBVc2VycwogVG8gdXNlIHRoZSBVU00gYmFzZWQgU05NUHYzLXNwZWNpZmljIHVzZXJzLCB5b3UnbGwgbmVlZCB0byBjcmVhdGUKIHRoZW0uICBJdCBpcyByZWNvbW1lbmRlZCB5b3UKLS5CICJ1c2UgdGhlIG5ldC1zbm1wLWNvbmZpZyBjb21tYW5kIgorLkIgInVzZSB0aGUgbmV0XC1zbm1wXC1jb25maWcgY29tbWFuZCIKIHRvIGRvIHRoaXMsIGJ1dCB5b3UgY2FuIGFsc28gZG8gaXQgYnkgZGlyZWN0bHkgc3BlY2lmeWluZyBjcmVhdGVVc2VyCiBkaXJlY3RpdmVzIHlvdXJzZWxmIGluc3RlYWQ6Ci0uSVAgImNyZWF0ZVVzZXIgWy1lIEVOR0lORUlEXSB1c2VybmFtZSAoTUQ1fFNIQSkgYXV0aHBhc3NwaHJhc2UgW0RFU3xBRVNdIFtwcml2cGFzc3BocmFzZV0iCisuSVAgImNyZWF0ZVVzZXIgW1wtZSBFTkdJTkVJRF0gdXNlcm5hbWUgKE1ENXxTSEEpIGF1dGhwYXNzcGhyYXNlIFtERVN8QUVTXSBbcHJpdnBhc3NwaHJhc2VdIgogLklQCiBNRDUgYW5kIFNIQSBhcmUgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGVzIHRvIHVzZS4gIERFUyBhbmQgQUVTIGFyZSB0aGUKIHByaXZhY3kgcHJvdG9jb2xzIHRvIHVzZS4gIElmIHRoZSBwcml2YWN5CkBAIC0yODgsNyArMjgyLDcgQEAKIGNvbW1hbmQuCiAuSVAKIEluc3RlYWQgb2YgZmlndXJpbmcgb3V0IGhvdyB0byB1c2UgdGhpcyBkaXJlY3RpdmUgYW5kIHdoZXJlIHRvIHB1dCBpdAotKHNlZSBiZWxvdyksIGp1c3QgcnVuICJuZXQtc25tcC1jb25maWcgLS1jcmVhdGUtc25tcHYzLXVzZXIiIGluc3RlYWQsCisoc2VlIGJlbG93KSwganVzdCBydW4gIm5ldFwtc25tcFwtY29uZmlnIFwtXC1jcmVhdGVcLXNubXB2M1wtdXNlciIgaW5zdGVhZCwKIHdoaWNoIHdpbGwgYWRkIG9uZSBvZiB0aGVzZSBsaW5lcyB0byB0aGUgcmlnaHQgcGxhY2UuCiAuSVAKIFRoaXMgZGlyZWN0aXZlIHNob3VsZCBiZSBwbGFjZWQgaW50byB0aGUKQEAgLTMwMSwxMiArMjk1LDEyIEBACiBpdCBjYW4gYmUuCiAuSVAKIElmIHlvdSBuZWVkIHRvIGxvY2FsaXplIHRoZSB1c2VyIHRvIGEgcGFydGljdWxhciBFbmdpbmVJRCAodGhpcyBpcwotdXNlZnVsIG1vc3RseSBpbiB0aGUgc2ltaWxhciBzbm1wdHJhcGQuY29uZiBmaWxlKSwgeW91IGNhbiB1c2UgdGhlIC1lCit1c2VmdWwgbW9zdGx5IGluIHRoZSBzaW1pbGFyIHNubXB0cmFwZC5jb25mIGZpbGUpLCB5b3UgY2FuIHVzZSB0aGUgXC1lCiBhcmd1bWVudCB0byBzcGVjaWZ5IGFuIEVuZ2luZUlEIGFzIGEgaGV4IHZhbHVlIChFRywgIjB4MDEwMjAzMDQiKS4KIC5JUAogSWYgeW91IHdhbnQgdG8gZ2VuZXJhdGUgZWl0aGVyIHlvdXIgbWFzdGVyIG9yIGxvY2FsaXplZCBrZXlzIGRpcmVjdGx5LAotcmVwbGFjZSB0aGUgZ2l2ZW4gcGFzc3dvcmQgd2l0aCBhIGhleHN0cmluZyAocHJlY2VlZGVkIGJ5IGEgIjB4IikgYW5kCi1wcmVjZWRlIHRoZSBoZXggc3RyaW5nIGJ5IGEgLW0gb3IgLWwgdG9rZW4gKHJlc3BlY3RpdmVseSkuICBFR3M6CityZXBsYWNlIHRoZSBnaXZlbiBwYXNzd29yZCB3aXRoIGEgaGV4c3RyaW5nIChwcmVjZWRlZCBieSBhICIweCIpIGFuZAorcHJlY2VkZSB0aGUgaGV4IHN0cmluZyBieSBhIFwtbSBvciBcLWwgdG9rZW4gKHJlc3BlY3RpdmVseSkuICBFR3M6CiAuSVAKIC5SUwogLm5mCkBAIC0zMTQsOCArMzA4LDggQEAKIGNvdW50aW5nIHB1cnBvc2VzLiAgUGxlYXNlIGdlbmVyYXRlIHJhbmRvbSBrZXlzIGluc3RlYWQgb2YgdXNpbmcKIHRoZXNlIGV4YW1wbGVzXQogCi1jcmVhdGVVc2VyIG15dXNlciBTSEEgLWwgMHgwMDAxMDIwMzA0MDUwNjA3MDgwOTAwMDEwMjAzMDQwNTA2MDcwODA5IEFFUyAtbCAweDAwMDEwMjAzMDQwNTA2MDcwODA5MDAwMTAyMDMwNDA1Ci1jcmVhdGVVc2VyIG15dXNlciBTSEEgLW0gMHgwMDAxMDIwMzA0MDUwNjA3MDgwOTAwMDEwMjAzMDQwNTA2MDcwODA5IEFFUyAtbSAweDAwMDEwMjAzMDQwNTA2MDcwODA5MDAwMTAyMDMwNDA1MDYwNzA4MDkKK2NyZWF0ZVVzZXIgbXl1c2VyIFNIQSBcLWwgMHgwMDAxMDIwMzA0MDUwNjA3MDgwOTAwMDEwMjAzMDQwNTA2MDcwODA5IEFFUyBcLWwgMHgwMDAxMDIwMzA0MDUwNjA3MDgwOTAwMDEwMjAzMDQwNQorY3JlYXRlVXNlciBteXVzZXIgU0hBIFwtbSAweDAwMDEwMjAzMDQwNTA2MDcwODA5MDAwMTAyMDMwNDA1MDYwNzA4MDkgQUVTIFwtbSAweDAwMDEwMjAzMDQwNTA2MDcwODA5MDAwMTAyMDMwNDA1MDYwNzA4MDkKIC5maQogLlJFCiAuSVAKQEAgLTMzMyw4ICszMjcsOCBAQAogTW9zdCBzaW1wbGUgYWNjZXNzIGNvbnRyb2wgcmVxdWlyZW1lbnRzIGNhbiBiZSBzcGVjaWZpZWQgdXNpbmcgdGhlCiBkaXJlY3RpdmVzIFxmSXJvdXNlclxmUi9cZklyd3VzZXJcZlIgKGZvciBTTk1QdjMpIG9yCiBcZklyb2NvbW11bml0eVxmUi9cZklyd2NvbW11bml0eVxmUiAoZm9yIFNOTVB2MSBvciBTTk1QdjJjKS4KLS5JUCAicm91c2VyIFstcyBTRUNNT0RFTF0gVVNFUiBbbm9hdXRofGF1dGh8cHJpdiBbT0lEIHwgLVYgVklFVyBbQ09OVEVYVF1dXSIKLS5JUCAicnd1c2VyIFstcyBTRUNNT0RFTF0gIFVTRVIgW25vYXV0aHxhdXRofHByaXYgW09JRCB8IC1WIFZJRVcgW0NPTlRFWFRdXV0iCisuSVAgInJvdXNlciBbXC1zIFNFQ01PREVMXSBVU0VSIFtub2F1dGh8YXV0aHxwcml2IFtPSUQgfCBcLVYgVklFVyBbQ09OVEVYVF1dXSIKKy5JUCAicnd1c2VyIFtcLXMgU0VDTU9ERUxdICBVU0VSIFtub2F1dGh8YXV0aHxwcml2IFtPSUQgfCBcLVYgVklFVyBbQ09OVEVYVF1dXSIKIHNwZWNpZnkgYW4gU05NUHYzIHVzZXIgdGhhdCB3aWxsIGJlIGFsbG93ZWQgcmVhZC1vbmx5IChHRVQgYW5kIEdFVE5FWFQpCiBvciByZWFkLXdyaXRlIChHRVQsIEdFVE5FWFQgYW5kIFNFVCkgYWNjZXNzIHJlc3BlY3RpdmVseS4KIEJ5IGRlZmF1bHQsIHRoaXMgd2lsbCBwcm92aWRlIGFjY2VzcyB0byB0aGUgZnVsbCBPSUQgdHJlZSBmb3IgYXV0aGVudGljYXRlZApAQCAtMzUzLDggKzM0Nyw4IEBACiBhY2Nlc3MgY29udHJvbCBzZXR0aW5ncykuICBUaGUgZGVmYXVsdCBzZWN1cml0eSBtb2RlbCBpcyAidXNtIiBhbmQgdGhlCiBvdGhlciBjb21tb24gc2VjdXJpdHkgbW9kZWxzIGFyZSBsaWtlbHkgInRzbSIgd2hlbiB1c2luZyAoRClUTFMgb3IgU1NICiBzdXBwb3J0IGFuZCAia3NtIiBpZiB0aGUgS2VyYmVyb3Mgc3VwcG9ydCBoYXMgYmVlbiBjb21waWxlZCBpbi4KLS5JUCAicm9jb21tdW5pdHkgQ09NTVVOSVRZIFtTT1VSQ0UgW09JRCB8IC1WIFZJRVcgW0NPTlRFWFRdXV0iCi0uSVAgInJ3Y29tbXVuaXR5IENPTU1VTklUWSBbU09VUkNFIFtPSUQgfCAtViBWSUVXIFtDT05URVhUXV1dIgorLklQICJyb2NvbW11bml0eSBDT01NVU5JVFkgW1NPVVJDRSBbT0lEIHwgXC1WIFZJRVcgW0NPTlRFWFRdXV0iCisuSVAgInJ3Y29tbXVuaXR5IENPTU1VTklUWSBbU09VUkNFIFtPSUQgfCBcLVYgVklFVyBbQ09OVEVYVF1dXSIKIHNwZWNpZnkgYW4gU05NUHYxIG9yIFNOTVB2MmMgY29tbXVuaXR5IHRoYXQgd2lsbCBiZSBhbGxvd2VkIHJlYWQtb25seQogKEdFVCBhbmQgR0VUTkVYVCkgb3IgcmVhZC13cml0ZSAoR0VULCBHRVRORVhUIGFuZCBTRVQpIGFjY2VzcyByZXNwZWN0aXZlbHkuCiBCeSBkZWZhdWx0LCB0aGlzIHdpbGwgcHJvdmlkZSBhY2Nlc3MgdG8gdGhlIGZ1bGwgT0lEIHRyZWUgZm9yIHN1Y2ggcmVxdWVzdHMsCkBAIC0zNjQsOCArMzU4LDggQEAKIHRoYXQgY29tbXVuaXR5IHRvIHRoZSBzdWJ0cmVlIHJvb3RlZCBhdCB0aGUgZ2l2ZW4gT0lELCBvciBuYW1lZCB2aWV3LgogQ29udGV4dHMgYXJlIHR5cGljYWxseSBsZXNzIHJlbGV2YW50IHRvIGNvbW11bml0eS1iYXNlZCBTTk1QIHZlcnNpb25zLAogYnV0IHRoZSBzYW1lIGJlaGF2aW91ciBhcHBsaWVzIGhlcmUuCi0uSVAgInJvY29tbXVuaXR5NiBDT01NVU5JVFkgW1NPVVJDRSBbT0lEIHwgLVYgVklFVyBbQ09OVEVYVF1dXSIKLS5JUCAicndjb21tdW5pdHk2IENPTU1VTklUWSBbU09VUkNFIFtPSUQgfCAtViBWSUVXIFtDT05URVhUXV1dIgorLklQICJyb2NvbW11bml0eTYgQ09NTVVOSVRZIFtTT1VSQ0UgW09JRCB8IFwtViBWSUVXIFtDT05URVhUXV1dIgorLklQICJyd2NvbW11bml0eTYgQ09NTVVOSVRZIFtTT1VSQ0UgW09JRCB8IFwtViBWSUVXIFtDT05URVhUXV1dIgogYXJlIGRpcmVjdGl2ZXMgcmVsYXRpbmcgdG8gcmVxdWVzdHMgcmVjZWl2ZWQgdXNpbmcgSVB2NgogKGlmIHRoZSBhZ2VudCBzdXBwb3J0cyBzdWNoIHRyYW5zcG9ydCBkb21haW5zKS4KIFRoZSBpbnRlcnByZXRhdGlvbiBvZiB0aGUgU09VUkNFLCBPSUQsIFZJRVcgYW5kIENPTlRFWFQgdG9rZW5zIGFyZSBleGFjdGx5CkBAIC0zODcsMTAgKzM4MSwxMCBAQAogY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzLgogLlNTIFZBQ00gQ29uZmlndXJhdGlvbgogVGhlIGZ1bGwgZmxleGliaWxpdHkgb2YgdGhlIFZBQ00gaXMgYXZhaWxhYmxlIHVzaW5nIGZvdXIgY29uZmlndXJhdGlvbgotZGlyZWN0aXZlcyAtIFxmSWNvbTJzZWNcZlIsIFxmSWdyb3VwXGZSLCBcZkl2aWV3XGZSIGFuZCBcZklhY2Nlc3NcZlIuCitkaXJlY3RpdmVzIFwtIFxmSWNvbTJzZWNcZlIsIFxmSWdyb3VwXGZSLCBcZkl2aWV3XGZSIGFuZCBcZklhY2Nlc3NcZlIuCiBUaGVzZSBwcm92aWRlIGRpcmVjdCBjb25maWd1cmF0aW9uIG9mIHRoZSB1bmRlcmx5aW5nIFZBQ00gdGFibGVzLgotLklQICJjb20yc2VjICBbLUNuIENPTlRFWFRdIFNFQ05BTUUgU09VUkNFIENPTU1VTklUWSIKLS5JUCAiY29tMnNlYzYgWy1DbiBDT05URVhUXSBTRUNOQU1FIFNPVVJDRSBDT01NVU5JVFkiCisuSVAgImNvbTJzZWMgIFtcLUNuIENPTlRFWFRdIFNFQ05BTUUgU09VUkNFIENPTU1VTklUWSIKKy5JUCAiY29tMnNlYzYgW1wtQ24gQ09OVEVYVF0gU0VDTkFNRSBTT1VSQ0UgQ09NTVVOSVRZIgogbWFwIGFuIFNOTVB2MSBvciBTTk1QdjJjIGNvbW11bml0eSBzdHJpbmcgdG8gYSBzZWN1cml0eSBuYW1lIC0gZWl0aGVyIGZyb20KIGEgcGFydGljdWxhciByYW5nZSBvZiBzb3VyY2UgYWRkcmVzc2VzLCBvciBnbG9iYWxseSAoXGZJImRlZmF1bHQiXGZSKS4KIEEgcmVzdHJpY3RlZCBzb3VyY2UgY2FuIGVpdGhlciBiZSBhIHNwZWNpZmljIGhvc3RuYW1lIChvciBhZGRyZXNzKSwgb3IKQEAgLTQwMiwxMCArMzk2LDEwIEBACiBjb21iaW5hdGlvbiB0aGF0IG1hdGNoZXMgdGhlIGluY29taW5nIHJlcXVlc3Qgd2lsbCBiZSBzZWxlY3RlZC4KIFZhcmlvdXMgc291cmNlL2NvbW11bml0eSBjb21iaW5hdGlvbnMgY2FuIGFsc28gbWFwIHRvIHRoZSBzYW1lIHNlY3VyaXR5IG5hbWUuCiAuSVAKLUlmIGEgQ09OVEVYVCBpcyBzcGVjaWZpZWQgKHVzaW5nIFxmSS1DblxmUiksIHRoZSBjb21tdW5pdHkgc3RyaW5nIHdpbGwgYmUKK0lmIGEgQ09OVEVYVCBpcyBzcGVjaWZpZWQgKHVzaW5nIFxmSVwtQ25cZlIpLCB0aGUgY29tbXVuaXR5IHN0cmluZyB3aWxsIGJlCiBtYXBwZWQgdG8gYSBzZWN1cml0eSBuYW1lIGluIHRoZSBuYW1lZCBTTk1QdjMgY29udGV4dC4gT3RoZXJ3aXNlIHRoZQogZGVmYXVsdCBjb250ZXh0ICgiIikgd2lsbCBiZSB1c2VkLgotLklQICJjb20yc2VjdW5peCBbLUNuIENPTlRFWFRdIFNFQ05BTUUgU09DS1BBVEggQ09NTVVOSVRZIgorLklQICJjb20yc2VjdW5peCBbXC1DbiBDT05URVhUXSBTRUNOQU1FIFNPQ0tQQVRIIENPTU1VTklUWSIKIGlzIHRoZSBVbml4IGRvbWFpbiBzb2NrZXRzIHZlcnNpb24gb2YgXGZJY29tMnNlY1xmUi4KIC5JUCAiZ3JvdXAgR1JPVVAge3YxfHYyY3x1c218dHNtfGtzbX0gU0VDTkFNRSIKIG1hcHMgYSBzZWN1cml0eSBuYW1lIChpbiB0aGUgc3BlY2lmaWVkIHNlY3VyaXR5IG1vZGVsKSBpbnRvCkBAIC00NzEsNyArNDY1LDcgQEAKIGNvbmNlcm5lZCwgdGhlIHR3byBtYWluIHZpZXcgdHlwZXMgYXJlIFxmSXJlYWRcZlIgYW5kIFxmSXdyaXRlXGZSLAogY29ycmVzcG9uZGluZyB0byB0aGUgUkVBRCBhbmQgV1JJVEUgdmlld3Mgb2YgdGhlIG1haW4gXGZJYWNjZXNzXGZSIGRpcmVjdGl2ZS4KIFNlZSB0aGUgJ3NubXB0cmFwZC5jb25mKDUpJyBtYW4gcGFnZSBmb3IgZGlzY3Vzc2lvbiBvZiBvdGhlciB2aWV3IHR5cGVzLgotLklQICJhdXRoY29tbXVuaXR5IFRZUEVTICBDT01NVU5JVFkgICBbU09VUkNFIFtPSUQgfCAtViBWSUVXIFtDT05URVhUXV1dIgorLklQICJhdXRoY29tbXVuaXR5IFRZUEVTICBDT01NVU5JVFkgICBbU09VUkNFIFtPSUQgfCBcLVYgVklFVyBbQ09OVEVYVF1dXSIKIGlzIGFuIGFsdGVybmF0aXZlIHRvIHRoZSBcZklyb2NvbW11bml0eVxmUi9cZklyd2NvbW11bml0eVxmUiBkaXJlY3RpdmVzLgogVFlQRVMgd2lsbCB1c3VhbGx5IGJlIFxmSXJlYWRcZlIgb3IgXGZJcmVhZCx3cml0ZVxmUiByZXNwZWN0aXZlbHkuCiBUaGUgdmlldyBzcGVjaWZpY2F0aW9uIGNhbiBlaXRoZXIgYmUgYW4gT0lEIHN1YnRyZWUgKGFzIGJlZm9yZSksCkBAIC00ODAsMjAgKzQ3NCwyMCBAQAogdGhlbiBhY2Nlc3Mgd2lsbCBiZSBhbGxvd2VkIHRvIHRoZSBmdWxsIE9JRCB0cmVlLgogSWYgQ09OVEVYVCBpcyBzcGVjaWZpZWQsIGFjY2VzcyBpcyBjb25maWd1cmVkIHdpdGhpbiB0aGlzIFNOTVB2MyBjb250ZXh0LgogT3RoZXJ3aXNlIHRoZSBkZWZhdWx0IGNvbnRleHQgKCIiKSBpcyB1c2VkLgotLklQICJhdXRodXNlciAgIFRZUEVTIFstcyBNT0RFTF0gVVNFUiAgW0xFVkVMIFtPSUQgfCAtViBWSUVXIFtDT05URVhUXV1dIgorLklQICJhdXRodXNlciAgIFRZUEVTIFtcLXMgTU9ERUxdIFVTRVIgIFtMRVZFTCBbT0lEIHwgXC1WIFZJRVcgW0NPTlRFWFRdXV0iCiBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgXGZJcm91c2VyXGZSL1xmSXJ3dXNlclxmUiBkaXJlY3RpdmVzLgogVGhlIGZpZWxkcyBUWVBFUywgT0lELCBWSUVXIGFuZCBDT05URVhUIGhhdmUgdGhlIHNhbWUgbWVhbmluZyBhcyBmb3IKIFxmSWF1dGhjb21tdW5pdHlcZlIuCi0uSVAgImF1dGhncm91cCAgVFlQRVMgWy1zIE1PREVMXSBHUk9VUCBbTEVWRUwgW09JRCB8IC1WIFZJRVcgW0NPTlRFWFRdXV0iCisuSVAgImF1dGhncm91cCAgVFlQRVMgW1wtcyBNT0RFTF0gR1JPVVAgW0xFVkVMIFtPSUQgfCBcLVYgVklFVyBbQ09OVEVYVF1dXSIKIGlzIGEgY29tcGFuaW9uIHRvIHRoZSBcZklhdXRodXNlclxmUiBkaXJlY3RpdmUsIHNwZWNpZnlpbmcgYWNjZXNzCiBmb3IgYSBwYXJ0aWN1bGFyIGdyb3VwIChkZWZpbmVkIHVzaW5nIHRoZSBcZklncm91cFxmUiBkaXJlY3RpdmUgYXMgdXN1YWwpLgogQm90aCBcZklhdXRodXNlclxmUiBhbmQgXGZJYXV0aGdyb3VwXGZSIGRlZmF1bHQgdG8gYXV0aGVudGljYXRlZCByZXF1ZXN0cyAtCiBMRVZFTCBjYW4gYWxzbyBiZSBzcGVjaWZpZWQgYXMgXGZJbm9hdXRoXGZSIG9yIFxmSXByaXZcZlIgdG8gYWxsb3cKIHVuYXV0aGVudGljYXRlZCByZXF1ZXN0cywgb3IgcmVxdWlyZSBlbmNyeXB0aW9uIHJlc3BlY3RpdmVseS4KIEJvdGggXGZJYXV0aHVzZXJcZlIgYW5kIFxmSWF1dGhncm91cFxmUiBkaXJlY3RpdmVzIGFsc28gZGVmYXVsdCB0byBjb25maWd1cmluZwotYWNjZXNzIGZvciBTTk1QdjMvVVNNIHJlcXVlc3RzIC0gdXNlIHRoZSAnLXMnIGZsYWcgdG8gc3BlY2lmeSBhbiBhbHRlcm5hdGl2ZQorYWNjZXNzIGZvciBTTk1QdjMvVVNNIHJlcXVlc3RzIC0gdXNlIHRoZSAnXC1zJyBmbGFnIHRvIHNwZWNpZnkgYW4gYWx0ZXJuYXRpdmUKIHNlY3VyaXR5IG1vZGVsICh1c2luZyB0aGUgc2FtZSB2YWx1ZXMgYXMgZm9yIFxmSWFjY2Vzc1xmUiBhYm92ZSkuCi0uSVAgImF1dGhhY2Nlc3MgVFlQRVMgWy1zIE1PREVMXSBHUk9VUCBWSUVXIFtMRVZFTCBbQ09OVEVYVF1dIgorLklQICJhdXRoYWNjZXNzIFRZUEVTIFtcLXMgTU9ERUxdIEdST1VQIFZJRVcgW0xFVkVMIFtDT05URVhUXV0iCiBhbHNvIGNvbmZpZ3VyZXMgdGhlIGFjY2VzcyBmb3IgYSBwYXJ0aWN1bGFyIGdyb3VwLAogc3BlY2lmeWluZyB0aGUgbmFtZSBhbmQgdHlwZSBvZiB2aWV3IHRvIGFwcGx5LiBUaGUgTU9ERUwgYW5kIExFVkVMIGZpZWxkcwogYXJlIGludGVycHJldGVkIGluIHRoZSBzYW1lIHdheSBhcyBmb3IgXGZJYXV0aGdyb3VwXGZSLgpAQCAtNTE5LDcgKzUxMyw3IEBACiAuSVAgInN5c05hbWUgU1RSSU5HIgogc2V0IHRoZSBzeXN0ZW0gbG9jYXRpb24sIHN5c3RlbSBjb250YWN0IG9yIHN5c3RlbSBuYW1lCiAoXGZDc3lzTG9jYXRpb24uMFxmUiwgXGZDc3lzQ29udGFjdC4wXGZSIGFuZCBcZkNzeXNOYW1lLjBcZlIpIGZvciB0aGUgYWdlbnQgcmVzcGVjdGl2ZWx5LgotT3JkaW5hcmlseSB0aGVzZSBvYmplY3RzIGFyZSB3cml0ZWFibGUgdmlhIHN1aXRhYmx5IGF1dGhvcml6ZWQgU05NUCBTRVQKK09yZGluYXJpbHkgdGhlc2Ugb2JqZWN0cyBhcmUgd3JpdGFibGUgdmlhIHN1aXRhYmx5IGF1dGhvcml6ZWQgU05NUCBTRVQKIHJlcXVlc3RzLiAgSG93ZXZlciwgc3BlY2lmeWluZyBvbmUgb2YgdGhlc2UgZGlyZWN0aXZlcyBtYWtlcyB0aGUKIGNvcnJlc3BvbmRpbmcgb2JqZWN0IHJlYWQtb25seSwgYW5kIGF0dGVtcHRzIHRvIFNFVCBpdCB3aWxsIHJlc3VsdCBpbgogYSBcZklub3RXcml0YWJsZVxmUiBlcnJvciByZXNwb25zZS4KQEAgLTUzNyw3ICs1MzEsNyBAQAogLklQICJpbnRlcmZhY2UgTkFNRSBUWVBFIFNQRUVEIgogY2FuIGJlIHVzZWQgdG8gcHJvdmlkZSBhcHByb3ByaWF0ZSB0eXBlIGFuZCBzcGVlZCBzZXR0aW5ncyBmb3IKIGludGVyZmFjZXMgd2hlcmUgdGhlIGFnZW50IGZhaWxzIHRvIGRldGVybWluZSB0aGlzIGluZm9ybWF0aW9uIGNvcnJlY3RseS4KLVRZUEUgaXMgYSB0eXBlIHZhbHVlIGFzIGdpdmVuIGluIHRoZSBJQU5BaWZUeXBlLU1JQiwKK1RZUEUgaXMgYSB0eXBlIHZhbHVlIGFzIGdpdmVuIGluIHRoZSBJQU5BaWZUeXBlXC1NSUIsCiBhbmQgY2FuIGJlIHNwZWNpZmllZCBudW1lcmljYWxseSBvciBieSBuYW1lIChhc3N1bWluZyB0aGlzIE1JQiBpcyBsb2FkZWQpLgogLklQICJpbnRlcmZhY2VfZmFkZW91dCBUSU1FT1VUIgogc3BlY2lmaWVzLCBmb3IgaG93IGxvbmcgdGhlIGFnZW50IGtlZXBzIGVudHJpZXMgaW4gXGZDaWZUYWJsZVxmUiBhZnRlcgpAQCAtNTkwLDEzICs1ODQsMzIgQEAKIGFzICdGaXhlZCBEaXNrcycsIGFuZCB0aGlzIGlzIHN0aWxsIHRoZSBkZWZhdWx0IGJlaGF2aW91ci4KIFNldHRpbmcgdGhpcyBkaXJlY3RpdmUgdG8gJzEnIHJlcG9ydHMgc3VjaCBmaWxlIHN5c3RlbXMgYXMKIFwnTmV0d29yayBEaXNrcycsIGFzIHJlcXVpcmVkIGJ5IHRoZSBIb3N0IFJlc291cmNlcyBNSUIuCisuSVAgInJlYWxTdG9yYWdlVW5pdHMiCitjb250cm9sbHMgaG93IHRoZSBhZ2VudCByZXBvcnRzIGhyU3RvcmFnZUFsbG9jYXRpb25Vbml0cywgaHJTdG9yYWdlU2l6ZSBhbmQKK2hyU3RvcmFnZVVzZWQgaW4gaHJTdG9yYWdlVGFibGUuCitGb3IgYmlnIHN0b3JhZ2UgZHJpdmVzIHdpdGggc21hbGwgYWxsb2NhdGlvbiB1bml0cyB0aGUgYWdlbnQgcmUtY2FsY3VsYXRlcwordGhlc2UgdmFsdWVzIHNvIHRoZXkgYWxsIGZpdCBJbnRlZ2VyMzIgYW5kCitoclN0b3JhZ2VBbGxvY2F0aW9uVW5pdHMgeCBoclN0b3JhZ2VTaXplCitnaXZlcyByZWFsIHNpemUgb2YgdGhlIHN0b3JhZ2UuCisuUlMKKy5JUCAiRXhhbXBsZToiCitMaW51eCB4ZnMgMTZUQiBmaWxlc3lzdGVtIHdpdGggNDA5NiBieXRlcyBsYXJnZSBibG9ja3Mgd2lsbCBiZQorcmVwb3J0ZWQgYXMgIGhyU3RvcmFnZUFsbG9jYXRpb25Vbml0cyA9IDgxOTIgYW5kIGhyU3RvcmFnZVNpemUgPSAyMTQ3NDgzNjQ3LAorc28gODE5MiB4IDIxNDc0ODM2NDcgZ2l2ZXMgcmVhbCBzaXplIG9mIHRoZSBmaWxlc3lzdGVtICg9MTYgVEIpLgorLlJFCisuSVAKK1NldHRpbmcgdGhpcyBkaXJlY3RpdmUgdG8gJzEnIHR1cm5zIG9mZgordGhpcyBjYWxjdWxhdGlvbiBhbmQgdGhlIGFnZW50IHJlcG9ydHMgcmVhbCBoclN0b3JhZ2VBbGxvY2F0aW9uVW5pdHMsIGJ1dCBpdAorbWlnaHQgcmVwb3J0IHdyb25nIGhyU3RvcmFnZVNpemUgZm9yIGJpZyBkcml2ZXMgYmVjYXVzZSB0aGUgdmFsdWUgd29uJ3QgZml0IGludG8KK0ludGVnZXIzMi4gSW4gdGhpcyBjYXNlLCBoclN0b3JhZ2VBbGxvY2F0aW9uVW5pdHMgeCBoclN0b3JhZ2VTaXplIHdvbid0IGdpdmUKK3JlYWwgc2l6ZSBvZiB0aGUgc3RvcmFnZS4KIC5TUyBQcm9jZXNzIE1vbml0b3JpbmcgCiBUaGUgXGZDaHJTV1J1blxmUiBncm91cCBvZiB0aGUgSG9zdCBSZXNvdXJjZXMgTUlCIHByb3ZpZGVzCiBpbmZvcm1hdGlvbiBhYm91dCBpbmRpdmlkdWFsIHByb2Nlc3NlcyBydW5uaW5nIG9uIHRoZSBsb2NhbCBzeXN0ZW0uCi1UaGUgXGZDcHJUYWJsZVxmUiBvZiB0aGUgVUNELVNOTVAtTUlCIGNvbXBsZW1lbnRzIHRoaXMgYnkgcmVwb3J0aW5nCitUaGUgXGZDcHJUYWJsZVxmUiBvZiB0aGUgVUNEXC1TTk1QXC1NSUIgY29tcGxlbWVudHMgdGhpcyBieSByZXBvcnRpbmcKIG9uIHNlbGVjdGVkIHNlcnZpY2VzICh3aGljaCBtYXkgaW52b2x2ZSBtdWx0aXBsZSBwcm9jZXNzZXMpLgogVGhpcyByZXF1aXJlcyB0aGF0IHRoZSBhZ2VudCB3YXMgYnVpbHQgd2l0aCBzdXBwb3J0IGZvciB0aGUKLVxmSXVjZC1zbm1wL3Byb2NcZlIgbW9kdWxlICh3aGljaCBpcyBpbmNsdWRlZCBhcyBwYXJ0IG9mIHRoZQorXGZJdWNkXC1zbm1wL3Byb2NcZlIgbW9kdWxlICh3aGljaCBpcyBpbmNsdWRlZCBhcyBwYXJ0IG9mIHRoZQogZGVmYXVsdCBidWlsZCBjb25maWd1cmF0aW9uKS4KIC5JUCAicHJvYyBOQU1FIFtNQVggW01JTl1dIgogbW9uaXRvcnMgdGhlIG51bWJlciBvZiBwcm9jZXNzZXMgY2FsbGVkIE5BTUUgKGFzIHJlcG9ydGVkIGJ5IFBTQ01EKQpAQCAtNjM1LDcgKzY0OCw3IEBACiBcZkNwclRhYmxlXGZSIHdpbGwgZmFpbCAoXGZJbm9TdWNoT2JqZWN0XGZJKS4KIC5TUyBEaXNrIFVzYWdlIE1vbml0b3JpbmcKIFRoaXMgcmVxdWlyZXMgdGhhdCB0aGUgYWdlbnQgd2FzIGJ1aWx0IHdpdGggc3VwcG9ydCBmb3IgdGhlCi1cZkl1Y2Qtc25tcC9kaXNrXGZSIG1vZHVsZSAod2hpY2ggaXMgaW5jbHVkZWQgYXMgcGFydCBvZiB0aGUKK1xmSXVjZFwtc25tcC9kaXNrXGZSIG1vZHVsZSAod2hpY2ggaXMgaW5jbHVkZWQgYXMgcGFydCBvZiB0aGUKIGRlZmF1bHQgYnVpbGQgY29uZmlndXJhdGlvbikuCiAuSVAgImRpc2sgUEFUSCBbIE1JTlNQQUNFIHwgTUlOUEVSQ0VOVCUgXSIKIG1vbml0b3JzIHRoZSBkaXNrIG1vdW50ZWQgYXQgUEFUSCBmb3IgYXZhaWxhYmxlIGRpc2sgc3BhY2UuCkBAIC02ODEsNyArNjk0LDcgQEAKIHRoZW4gd2Fsa2luZyB0aGUgXGZDZHNrVGFibGVcZlIgd2lsbCBmYWlsIChcZklub1N1Y2hPYmplY3RcZkkpLgogLlNTIERpc2sgSS9PIE1vbml0b3JpbmcKIFRoaXMgcmVxdWlyZXMgdGhhdCB0aGUgYWdlbnQgd2FzIGJ1aWx0IHdpdGggc3VwcG9ydCBmb3IgdGhlCi1cZkl1Y2Qtc25tcC9kaXNraW9cZlIgbW9kdWxlICh3aGljaCBpcyBub3QgaW5jbHVkZWQgYXMgcGFydCBvZiB0aGUKK1xmSXVjZFwtc25tcC9kaXNraW9cZlIgbW9kdWxlICh3aGljaCBpcyBub3QgaW5jbHVkZWQgYXMgcGFydCBvZiB0aGUKIGRlZmF1bHQgYnVpbGQgY29uZmlndXJhdGlvbikuCiAuUFAKIEJ5IGRlZmF1bHQsIGFsbCBibG9jayBkZXZpY2VzIGtub3duIHRvIHRoZSBvcGVyYXRpbmcgc3lzdGVtIGFyZQpAQCAtNzAzLDcgKzcxNiw3IEBACiAicmFtMCIKIC5TUyBTeXN0ZW0gTG9hZCBNb25pdG9yaW5nCiBUaGlzIHJlcXVpcmVzIHRoYXQgdGhlIGFnZW50IHdhcyBidWlsdCB3aXRoIHN1cHBvcnQgZm9yIGVpdGhlciB0aGUKLVxmSXVjZC1zbm1wL2xvYWRhdmVcZlIgbW9kdWxlIG9yIHRoZSBcZkl1Y2Qtc25tcC9tZW1vcnlcZlIgbW9kdWxlCitcZkl1Y2RcLXNubXAvbG9hZGF2ZVxmUiBtb2R1bGUgb3IgdGhlIFxmSXVjZFwtc25tcC9tZW1vcnlcZlIgbW9kdWxlCiByZXNwZWN0aXZlbHkgKGJvdGggb2Ygd2hpY2ggYXJlIGluY2x1ZGVkIGFzIHBhcnQgb2YgdGhlCiBkZWZhdWx0IGJ1aWxkIGNvbmZpZ3VyYXRpb24pLgogLklQICJsb2FkIE1BWDEgW01BWDUgW01BWDE1XV0iCkBAIC03MzAsNyArNzQzLDcgQEAKIC5QUAogVW5saWtlIHRoZSBcZklwcm9jXGZSIGFuZCBcZklkaXNrXGZSIGRpcmVjdGl2ZXMsIHdhbGtpbmcgdGhlCiB3YWxraW5nIHRoZSBcZkNsYVRhYmxlXGZSIHdpbGwgc3VjY2VlZCAoYXNzdW1pbmcgdGhlCi1cZkl1Y2Qtc25tcC9sb2FkYXZlXGZSIG1vZHVsZSB3YXMgY29uZmlndXJlZCBpbnRvIHRoZSBhZ2VudCksCitcZkl1Y2RcLXNubXAvbG9hZGF2ZVxmUiBtb2R1bGUgd2FzIGNvbmZpZ3VyZWQgaW50byB0aGUgYWdlbnQpLAogZXZlbiBpZiB0aGUgXGZJbG9hZFxmUiBkaXJlY3RpdmUgaXMgbm90IHByZXNlbnQuCiAuSVAgInN3YXAgTUlOICIKIG1vbml0b3JzIHRoZSBhbW91bnQgb2Ygc3dhcCBzcGFjZSBhdmFpbGFibGUgb24gdGhlIGxvY2FsIHN5c3RlbS4KQEAgLTc0NSw3ICs3NTgsNyBAQAogSWYgdGhpcyBkaXJlY3RpdmUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgdGhyZXNob2xkIGlzIDE2IE1CLgogLlNTIExvZyBGaWxlIE1vbml0b3JpbmcKIFRoaXMgcmVxdWlyZXMgdGhhdCB0aGUgYWdlbnQgd2FzIGJ1aWx0IHdpdGggc3VwcG9ydCBmb3IgZWl0aGVyIHRoZQotXGZJdWNkLXNubXAvZmlsZVxmUiBvciBcZkl1Y2Qtc25tcC9sb2dtYXRjaFxmUiBtb2R1bGVzIHJlc3BlY3RpdmVseQorXGZJdWNkXC1zbm1wL2ZpbGVcZlIgb3IgXGZJdWNkXC1zbm1wL2xvZ21hdGNoXGZSIG1vZHVsZXMgcmVzcGVjdGl2ZWx5CiAoYm90aCBvZiB3aGljaCBhcmUgaW5jbHVkZWQgYXMgcGFydCBvZiB0aGUKIGRlZmF1bHQgYnVpbGQgY29uZmlndXJhdGlvbikuCiAuSVAgImZpbGUgRklMRSBbTUFYU0laRV0iCkBAIC03NzIsNyArNzg1LDcgQEAKIC5SUwogLklQIE5BTUUKIG5hbWUgb2YgdGhlIGxvZ21hdGNoIGluc3RhbmNlICh3aWxsIGFwcGVhciBhcyBsb2dNYXRjaE5hbWUgdW5kZXIKLWxvZ01hdGNoL2xvZ01hdGNoVGFibGUvbG9nTWF0Y2hFbnRyeS9sb2dNYXRjaE5hbWUgaW4gdGhlIHVjZC1zbm1wIE1JQiB0cmVlKQorbG9nTWF0Y2gvbG9nTWF0Y2hUYWJsZS9sb2dNYXRjaEVudHJ5L2xvZ01hdGNoTmFtZSBpbiB0aGUgdWNkXC1zbm1wIE1JQiB0cmVlKQogLklQIEZJTEUKIGFic29sdXRlIHBhdGggdG8gdGhlIGxvZ2ZpbGUgdG8gYmUgbW9uaXRvcmVkLiBOb3RlIHRoYXQgdGhpcyBwYXRoCiBjYW4gY29udGFpbiBkYXRlL3RpbWUgZGlyZWN0aXZlcyAobGlrZSBpbiB0aGUgVU5JWCAnZGF0ZScgY29tbWFuZCkuIFNlZSB0aGUKQEAgLTc5MCwxMiArODAzLDEyIEBACiBFeGFtcGxlOgogLlJTCiAuSVAKLWxvZ21hdGNoIGFwYWNoZS1HRVRzIC91c3IvbG9jYWwvYXBhY2hlL2xvZ3MvYWNjZXNzLmxvZy0lWS0lbS0lZCA2MCBHRVQuKkhUVFAuKgorbG9nbWF0Y2ggYXBhY2hlXC1HRVRzIC91c3IvbG9jYWwvYXBhY2hlL2xvZ3MvYWNjZXNzLmxvZ1wtJVlcLSVtXC0lZCA2MCBHRVQuKkhUVFAuKgogLklQCi1UaGlzIGxvZ21hdGNoIGluc3RhbmNlIGlzIG5hbWVkICdhcGFjaGUtR0VUcycsIHVzZXMgJ0dFVC4qSFRUUC4qJyBhcyBpdHMKK1RoaXMgbG9nbWF0Y2ggaW5zdGFuY2UgaXMgbmFtZWQgJ2FwYWNoZVwtR0VUcycsIHVzZXMgJ0dFVC4qSFRUUC4qJyBhcyBpdHMKIHJlZ3VsYXIgZXhwcmVzc2lvbiBhbmQgaXQgd2lsbCBtb25pdG9yIHRoZSBmaWxlIG5hbWVkCi0oYXNzdW1pbmcgdG9kYXkgaXMgTWF5IDZ0aCAyMDA5KTogJy91c3IvbG9jYWwvYXBhY2hlL2xvZ3MvYWNjZXNzLmxvZy0yMDA5LTA1LTA2JywKLXRvbW9ycm93IGl0IHdpbGwgbG9vayBmb3IgJ2FjY2Vzcy5sb2ctMjAwOS0wNS0wNycuIFRoZSBsb2dmaWxlIGlzIHJlYWQgZXZlcnkgNjAKKyhhc3N1bWluZyB0b2RheSBpcyBNYXkgNnRoIDIwMDkpOiAnL3Vzci9sb2NhbC9hcGFjaGUvbG9ncy9hY2Nlc3MubG9nXC0yMDA5XC0wNVwtMDYnLAordG9tb3Jyb3cgaXQgd2lsbCBsb29rIGZvciAnYWNjZXNzLmxvZ1wtMjAwOVwtMDVcLTA3Jy4gVGhlIGxvZ2ZpbGUgaXMgcmVhZCBldmVyeSA2MAogc2Vjb25kcy4KIC5SRQogLklQCkBAIC04NTAsMTIgKzg2MywxMiBAQAogLkkgIlNOTVBDTURfQVJHUyIKIHNob3VsZCBiZSB0aGUgY29tbWFuZC1saW5lIG9wdGlvbnMgcmVxdWlyZWQgZm9yIGFuIGVxdWl2YWxlbnQKIFxmSXNubXB0cmFwXGZSIChvciBcZklzbm1waW5mb3JtXGZSKSBjb21tYW5kIHRvIHNlbmQgdGhlIGRlc2lyZWQgbm90aWZpY2F0aW9uLgotVGhlIG9wdGlvbiBcZkktQ2lcZlIgY2FuIGJlIHVzZWQgKHdpdGggXGZJLXYyY1xmUiBvciBcZkktdjNcZlIpIHRvIGdlbmVyYXRlCitUaGUgb3B0aW9uIFxmSVwtQ2lcZlIgY2FuIGJlIHVzZWQgKHdpdGggXGZJXC12MmNcZlIgb3IgXGZJXC12M1xmUikgdG8gZ2VuZXJhdGUKIGFuIElORk9STSBub3RpZmljYXRpb24gcmF0aGVyIHRoYW4gYW4gdW5hY2tub3dsZWRnZWQgVFJBUC4KIC5JUAogVGhpcyBpcyB0aGUgYXBwcm9wcmlhdGUgZGlyZWN0aXZlIGZvciBkZWZpbmluZyBTTk1QdjMgdHJhcCByZWNlaXZlcnMuCiBTZWUKLWh0dHA6Ly93d3cubmV0LXNubXAub3JnL3R1dG9yaWFsL3R1dG9yaWFsLTUvY29tbWFuZHMvc25tcHRyYXAtdjMuaHRtbAoraHR0cDovL3d3dy5uZXRcLXNubXAub3JnL3R1dG9yaWFsL3R1dG9yaWFsXC01L2NvbW1hbmRzL3NubXB0cmFwXC12My5odG1sCiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBTTk1QdjMgbm90aWZpY2F0aW9uIGJlaGF2aW91ci4KIC5JUCAiYXV0aHRyYXBlbmFibGUgezF8Mn0iCiBkZXRlcm1pbmVzIHdoZXRoZXIgdG8gZ2VuZXJhdGUgYXV0aGVudGljYXRpb24gZmFpbHVyZSB0cmFwcwpAQCAtOTU3LDQ3ICs5NzAsNDkgQEAKIFRoZXJlIGFyZSB2YXJpb3VzIG9wdGlvbnMgdG8gY29udHJvbCB0aGUgYmVoYXZpb3VyIG9mIHRoZSBtb25pdG9yZWQKIGV4cHJlc3Npb24uICBUaGVzZSBpbmNsdWRlOgogLlJTCi0uSVAgIi1EIgorLklQICJcLUQiCiBpbmRpY2F0ZXMgdGhhdCB0aGUgZXhwcmVzc2lvbiBzaG91bGQgYmUgZXZhbHVhdGVkIHVzaW5nIGRlbHRhIGRpZmZlcmVuY2VzCiBiZXR3ZWVuIHNhbXBsZSB2YWx1ZXMgKHJhdGhlciB0aGFuIHRoZSB2YWx1ZXMgdGhlbXNlbHZlcykuCi0uSVAgIi1kIE9JRCIKLS5JUCAiLWRpIE9JRCIKKy5JUCAiXC1kIE9JRCIKKy5JUCAiXC1kaSBPSUQiCiBzcGVjaWZpZXMgYSBkaXNjb250aW51aXR5IG1hcmtlciBmb3IgdmFsaWRhdGluZyBkZWx0YSBkaWZmZXJlbmNlcy4KLUEgXGZJLWRpXGZSIG9iamVjdCBpbnN0YW5jZSB3aWxsIGJlIHVzZWQgZXhhY3RseSBhcyBnaXZlbi4KLUEgXGZJLWRcZlIgb2JqZWN0IHdpbGwgaGF2ZSB0aGUgaW5zdGFuY2Ugc3ViaWRlbnRpZmllcnMgZnJvbSB0aGUKK0EgXGZJXC1kaVxmUiBvYmplY3QgaW5zdGFuY2Ugd2lsbCBiZSB1c2VkIGV4YWN0bHkgYXMgZ2l2ZW4uCitBIFxmSVwtZFxmUiBvYmplY3Qgd2lsbCBoYXZlIHRoZSBpbnN0YW5jZSBzdWJpZGVudGlmaWVycyBmcm9tIHRoZQogY29ycmVzcG9uZGluZyAod2lsZGNhcmRlZCkgZXhwcmVzc2lvbiBvYmplY3QgYXBwZW5kZWQuCi1JZiB0aGUgXGZJLUlcZlIgZmxhZyBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlcmUgaXMgbm8gZGlmZmVyZW5jZQorSWYgdGhlIFxmSVwtSVxmUiBmbGFnIGlzIHNwZWNpZmllZCwgdGhlbiB0aGVyZSBpcyBubyBkaWZmZXJlbmNlCiBiZXR3ZWVuIHRoZXNlIHR3byBvcHRpb25zLgogLklQCi1UaGlzIG9wdGlvbiBhbHNvIGltcGxpZXMgXGZJLURcZlIuCi0uSVAgIi1lIEVWRU5UIgorVGhpcyBvcHRpb24gYWxzbyBpbXBsaWVzIFxmSVwtRFxmUi4KKy5JUCAiXC1lIEVWRU5UIgogc3BlY2lmaWVzIHRoZSBldmVudCB0byBiZSBpbnZva2VkIHdoZW4gdGhpcyBtb25pdG9yIGVudHJ5IGlzIHRyaWdnZXJlZC4KIElmIHRoaXMgb3B0aW9uIGlzIG5vdCBnaXZlbiwgdGhlIG1vbml0b3IgZW50cnkgd2lsbCBnZW5lcmF0ZSBvbmUKLW9mIHRoZSBzdGFuZGFyZCBub3RpZmljYXRpb25zIGRlZmluZWQgaW4gdGhlIERJU01BTi1FVkVOVC1NSUIuCi0uSVAgIi1JIgorb2YgdGhlIHN0YW5kYXJkIG5vdGlmaWNhdGlvbnMgZGVmaW5lZCBpbiB0aGUgRElTTUFOXC1FVkVOVFwtTUlCLgorLklQICJcLUkiCiBpbmRpY2F0ZXMgdGhhdCB0aGUgbW9uaXRvcmVkIGV4cHJlc3Npb24gc2hvdWxkIGJlIGFwcGxpZWQgdG8gdGhlCiBzcGVjaWZpZWQgT0lEIGFzIGEgc2luZ2xlIGluc3RhbmNlLiAgQnkgZGVmYXVsdCwgdGhlIE9JRCB3aWxsCiBiZSB0cmVhdGVkIGFzIGEgd2lsZGNhcmRlZCBvYmplY3QsIGFuZCB0aGUgbW9uaXRvciBleHBhbmRlZAogdG8gY292ZXIgYWxsIG1hdGNoaW5nIGluc3RhbmNlcy4KLS5JUCAiLWkgT0lEIgotLklQICItbyBPSUQiCisuSVAgIlwtaSBPSUQiCisuSVAgIlwtbyBPSUQiCiBkZWZpbmUgYWRkaXRpb25hbCB2YXJiaW5kcyB0byBiZSBhZGRlZCB0byB0aGUgbm90aWZpY2F0aW9uIHBheWxvYWQKIHdoZW4gdGhpcyBtb25pdG9yIHRyaWdnZXIgZmlyZXMuCiBGb3IgYSB3aWxkY2FyZGVkIGV4cHJlc3Npb24sIHRoZSBzdWZmaXggb2YgdGhlIG1hdGNoZWQgaW5zdGFuY2UKLXdpbGwgYmUgYWRkZWQgdG8gYW55IE9JRHMgc3BlY2lmaWVkIHVzaW5nIFxmSS1vXGZSLCB3aGlsZSBPSURzCi1zcGVjaWZpZWQgdXNpbmcgXGZJLWlcZlIgd2lsbCBiZSB0cmVhdGVkIGFzIGV4YWN0IGluc3RhbmNlcy4KLUlmIHRoZSBcZkktSVxmUiBmbGFnIGlzIHNwZWNpZmllZCwgdGhlbiB0aGVyZSBpcyBubyBkaWZmZXJlbmNlCit3aWxsIGJlIGFkZGVkIHRvIGFueSBPSURzIHNwZWNpZmllZCB1c2luZyBcZklcLW9cZlIsIHdoaWxlIE9JRHMKK3NwZWNpZmllZCB1c2luZyBcZklcLWlcZlIgd2lsbCBiZSB0cmVhdGVkIGFzIGV4YWN0IGluc3RhbmNlcy4KK0lmIHRoZSBcZklcLUlcZlIgZmxhZyBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlcmUgaXMgbm8gZGlmZmVyZW5jZQogYmV0d2VlbiB0aGVzZSB0d28gb3B0aW9ucy4KIC5JUAogU2VlIFxmSXN0cmljdERpc21hblxmUiBmb3IgZGV0YWlscyBvZiB0aGUgb3JkZXJpbmcgb2Ygbm90aWZpY2F0aW9uIHBheWxvYWRzLgotLklQICItciBGUkVRVUVOQ1kiCi1tb25pdG9ycyB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBldmVyeSBGUkVRVUVOQ1kgc2Vjb25kcy4KLUJ5IGRlZmF1bHQsIHRoZSBleHByZXNzaW9uIHdpbGwgYmUgZXZhbHVhdGVkIGV2ZXJ5IDYwMHMgKDEwIG1pbnV0ZXMpLiAKLS5JUCAiLVMiCisuSVAgIlwtciBGUkVRVUVOQ1kiCittb25pdG9ycyB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBldmVyeSBGUkVRVUVOQ1ksIHdoZXJlIEZSRVFVRU5DWSBpcyBpbgorc2Vjb25kcyBvciBvcHRpb25hbGx5IHN1ZmZpeGVkIGJ5IG9uZSBvZiBzIChmb3Igc2Vjb25kcyksIG0gKGZvcgorbWludXRlcyksIGggKGZvciBob3VycyksIGQgKGZvciBkYXlzKSwgb3IgdyAoZm9yIHdlZWtzKS4gIEJ5IGRlZmF1bHQsCit0aGUgZXhwcmVzc2lvbiB3aWxsIGJlIGV2YWx1YXRlZCBldmVyeSA2MDBzICgxMCBtaW51dGVzKS4KKy5JUCAiXC1TIgogaW5kaWNhdGVzIHRoYXQgdGhlIG1vbml0b3IgZXhwcmVzc2lvbiBzaG91bGQgXGZJbm90XGZSIGJlIGV2YWx1YXRlZAogd2hlbiB0aGUgYWdlbnQgZmlyc3Qgc3RhcnRzIHVwLiAgVGhlIGZpcnN0IGV2YWx1YXRpb24gd2lsbCBiZSBkb25lCiBvbmNlIHRoZSBmaXJzdCByZXBlYXQgaW50ZXJ2YWwgaGFzIGV4cGlyZWQuCi0uSVAgIi1zIgorLklQICJcLXMiCiBpbmRpY2F0ZXMgdGhhdCB0aGUgbW9uaXRvciBleHByZXNzaW9uIFxmSXNob3VsZFxmUiBiZSBldmFsdWF0ZWQgd2hlbiB0aGUKIGFnZW50IGZpcnN0IHN0YXJ0cyB1cC4gIFRoaXMgaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3VyLgogLlJTCkBAIC0xMDA1LDIwICsxMDIwLDIwIEBACiBOb3RpZmljYXRpb25zIHRyaWdnZXJlZCBieSB0aGlzIGluaXRpYWwgZXZhbHVhdGlvbiB3aWxsIGJlIHNlbnQKIFxmSWJlZm9yZVxmUiB0aGUgXGZDY29sZFN0YXJ0XGZSIHRyYXAuCiAuUkUKLS5JUCAiLXUgU0VDTkFNRSIKKy5JUCAiXC11IFNFQ05BTUUiCiBzcGVjaWZpZXMgYSBzZWN1cml0eSBuYW1lIHRvIHVzZSBmb3Igc2Nhbm5pbmcgdGhlIGxvY2FsIGhvc3QsCiBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IFxmSWlxdWVyeVNlY05hbWVcZlIuCiBPbmNlIGFnYWluLCB0aGlzIHVzZXIgbXVzdCBiZSBleHBsaWNpdGx5IGNyZWF0ZWQgYW5kIGdpdmVuCiBzdWl0YWJsZSBhY2Nlc3MgcmlnaHRzLgogLlJFCi0uSVAgIm5vdGlmaWNhdGlvbkV2ZW50IEVOQU1FIE5PVElGSUNBVElPTiBbLW1dIFstaSBPSUQgfCAtbyBPSUQgXSoiCisuSVAgIm5vdGlmaWNhdGlvbkV2ZW50IEVOQU1FIE5PVElGSUNBVElPTiBbXC1tXSBbXC1pIE9JRCB8IFwtbyBPSUQgXSoiCiBkZWZpbmVzIGEgbm90aWZpY2F0aW9uIGV2ZW50IG5hbWVkIEVOQU1FLgogVGhpcyBjYW4gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBcZkltb25pdG9yXGZSIGVudHJ5IGJ5IHNwZWNpZnlpbmcKLXRoZSBvcHRpb24gXGZJLWUgRU5BTUVcZlIgKHNlZSBhYm92ZSkuCi1OT1RJRklDQVRJT04gc2hvdWxkIGJlIHRoZSBPSUQgb2YgdGhlIE5PVElGSUNBVElPTi1UWVBFIGRlZmluaXRpb24KK3RoZSBvcHRpb24gXGZJXC1lIEVOQU1FXGZSIChzZWUgYWJvdmUpLgorTk9USUZJQ0FUSU9OIHNob3VsZCBiZSB0aGUgT0lEIG9mIHRoZSBOT1RJRklDQVRJT05cLVRZUEUgZGVmaW5pdGlvbgogZm9yIHRoZSBub3RpZmljYXRpb24gdG8gYmUgZ2VuZXJhdGVkLgogLklQCi1JZiB0aGUgXGZJLW1cZlIgb3B0aW9uIGlzIGdpdmVuLCB0aGUgbm90aWZpY2F0aW9uIHBheWxvYWQgd2lsbAorSWYgdGhlIFxmSVwtbVxmUiBvcHRpb24gaXMgZ2l2ZW4sIHRoZSBub3RpZmljYXRpb24gcGF5bG9hZCB3aWxsCiBpbmNsdWRlIHRoZSBzdGFuZGFyZCB2YXJiaW5kcyBhcyBzcGVjaWZpZWQgaW4gdGhlIE9CSkVDVFMgY2xhdXNlCiBvZiB0aGUgbm90aWZpY2F0aW9uIE1JQiBkZWZpbml0aW9uLgogVGhpcyBvcHRpb24gbXVzdCBjb21lIFxmQmFmdGVyXGZSIHRoZSBOT1RJRklDQVRJT04gT0lECkBAIC0xMDI3LDI1ICsxMDQyLDI1IEBACiBiZSBsaXN0ZWQgZXhwbGljaXRseSAoZWl0aGVyIGhlcmUgb3IgaW4gdGhlIGNvcnJlc3BvbmRpbmcKIFxmSW1vbml0b3JcZlIgZGlyZWN0aXZlKS4KIC5JUAotVGhlIFxmSS1pIE9JRFxmUiBhbmQgXGZJLW8gT0lEXGZSIG9wdGlvbnMgc3BlY2lmeSBhZGRpdGlvbmFsCitUaGUgXGZJXC1pIE9JRFxmUiBhbmQgXGZJXC1vIE9JRFxmUiBvcHRpb25zIHNwZWNpZnkgYWRkaXRpb25hbAogdmFyYmluZHMgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIG5vdGlmaWNhdGlvbiBwYXlsb2FkLCBhZnRlciB0aGUKIHN0YW5kYXJkIGxpc3QuCiBJZiB0aGUgbW9uaXRvciBlbnRyeSB0aGF0IHRyaWdnZXJlZCB0aGlzIGV2ZW50IGludm9sdmVkIGEKIHdpbGRjYXJkZWQgZXhwcmVzc2lvbiwgdGhlIHN1ZmZpeCBvZiB0aGUgbWF0Y2hlZCBpbnN0YW5jZQotd2lsbCBiZSBhZGRlZCB0byBhbnkgT0lEcyBzcGVjaWZpZWQgdXNpbmcgXGZJLW9cZlIsIHdoaWxlIE9JRHMKLXNwZWNpZmllZCB1c2luZyBcZkktaVxmUiB3aWxsIGJlIHRyZWF0ZWQgYXMgZXhhY3QgaW5zdGFuY2VzLgotSWYgdGhlIFxmSS1JXGZSIGZsYWcgd2FzIHNwZWNpZmllZCB0byB0aGUgXGZJbW9uaXRvclxmUiBkaXJlY3RpdmUsCit3aWxsIGJlIGFkZGVkIHRvIGFueSBPSURzIHNwZWNpZmllZCB1c2luZyBcZklcLW9cZlIsIHdoaWxlIE9JRHMKK3NwZWNpZmllZCB1c2luZyBcZklcLWlcZlIgd2lsbCBiZSB0cmVhdGVkIGFzIGV4YWN0IGluc3RhbmNlcy4KK0lmIHRoZSBcZklcLUlcZlIgZmxhZyB3YXMgc3BlY2lmaWVkIHRvIHRoZSBcZkltb25pdG9yXGZSIGRpcmVjdGl2ZSwKIHRoZW4gdGhlcmUgaXMgbm8gZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBvcHRpb25zLgotLklQICJzZXRFdmVudCBFTkFNRSBbLUldIE9JRCA9IFZBTFVFICIKKy5JUCAic2V0RXZlbnQgRU5BTUUgW1wtSV0gT0lEID0gVkFMVUUgIgogZGVmaW5lcyBhIHNldCBldmVudCBuYW1lZCBFTkFNRSwgYXNzaWduaW5nIHRoZSAoaW50ZWdlcikgVkFMVUUKIHRvIHRoZSBzcGVjaWZpZWQgT0lELgogVGhpcyBjYW4gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBcZkltb25pdG9yXGZSIGVudHJ5IGJ5IHNwZWNpZnlpbmcKLXRoZSBvcHRpb24gXGZJLWUgRU5BTUVcZlIgKHNlZSBhYm92ZSkuCit0aGUgb3B0aW9uIFxmSVwtZSBFTkFNRVxmUiAoc2VlIGFib3ZlKS4KIC5JUAogSWYgdGhlIG1vbml0b3IgZW50cnkgdGhhdCB0cmlnZ2VyZWQgdGhpcyBldmVudCBpbnZvbHZlZCBhCiB3aWxkY2FyZGVkIGV4cHJlc3Npb24sIHRoZSBzdWZmaXggb2YgdGhlIG1hdGNoZWQgaW5zdGFuY2UKIHdpbGwgbm9ybWFsbHkgYmUgYWRkZWQgdG8gdGhlIE9JRC4KLUlmIHRoZSBcZkktSVxmUiBmbGFnIHdhcyBzcGVjaWZpZWQgdG8gZWl0aGVyIG9mIHRoZQorSWYgdGhlIFxmSVwtSVxmUiBmbGFnIHdhcyBzcGVjaWZpZWQgdG8gZWl0aGVyIG9mIHRoZQogXGZJbW9uaXRvclxmUiBvciBcZklzZXRFdmVudFxmUiBkaXJlY3RpdmVzLCB0aGUKIHNwZWNpZmllZCBPSUQgd2lsbCBiZSByZWdhcmRlZCBhcyBhbiBleGFjdCBzaW5nbGUgaW5zdGFuY2UuCiAuSVAgInN0cmljdERpc21hbiB5ZXMiCkBAIC0xMDY2LDggKzEwODEsOCBAQAogLlJTCiAuSVAgIk5vdGU6IgogU3RyaWN0IERpc01hbiBvcmRlcmluZyBtYXkgcmVzdWx0IGluIGdlbmVyYXRpbmcgaW52YWxpZCBub3RpZmljYXRpb25zCi1wYXlsb2FkIGxpc3RzIGlmIHRoZSBcZklub3RpZmljYXRpb25FdmVudCAtblxmUiBmbGFnIGlzIHVzZWQgdG9nZXRoZXIKLXdpdGggXGZJbW9uaXRvciAtb1xmUiAob3IgXGZJLWlcZlIpIHZhcmJpbmQgb3B0aW9ucy4KK3BheWxvYWQgbGlzdHMgaWYgdGhlIFxmSW5vdGlmaWNhdGlvbkV2ZW50IFwtblxmUiBmbGFnIGlzIHVzZWQgdG9nZXRoZXIKK3dpdGggXGZJbW9uaXRvciBcLW9cZlIgKG9yIFxmSVwtaVxmUikgdmFyYmluZCBvcHRpb25zLgogLlJFCiAuSVAKIElmIG5vIFxmSW1vbml0b3JcZlIgZW50cmllcyBzcGVjaWZ5IHBheWxvYWQgdmFyYmluZHMsCkBAIC0xMDg0LDI1ICsxMDk5LDI1IEBACiBub3RpZmljYXRpb25FdmVudCAgbGlua1VwVHJhcCAgICBsaW5rVXAgICBpZkluZGV4IGlmQWRtaW5TdGF0dXMgaWZPcGVyU3RhdHVzCiBub3RpZmljYXRpb25FdmVudCAgbGlua0Rvd25UcmFwICBsaW5rRG93biBpZkluZGV4IGlmQWRtaW5TdGF0dXMgaWZPcGVyU3RhdHVzCiAKLW1vbml0b3IgIC1yIDYwIC1lIGxpbmtVcFRyYXAgICAiR2VuZXJhdGUgbGlua1VwIiBpZk9wZXJTdGF0dXMgIT0gMgotbW9uaXRvciAgLXIgNjAgLWUgbGlua0Rvd25UcmFwICJHZW5lcmF0ZSBsaW5rRG93biIgaWZPcGVyU3RhdHVzID09IDIKK21vbml0b3IgIFwtciA2MCBcLWUgbGlua1VwVHJhcCAgICJHZW5lcmF0ZSBsaW5rVXAiIGlmT3BlclN0YXR1cyAhPSAyCittb25pdG9yICBcLXIgNjAgXC1lIGxpbmtEb3duVHJhcCAiR2VuZXJhdGUgbGlua0Rvd24iIGlmT3BlclN0YXR1cyA9PSAyCiAuZmkKIC5SRQogLklQICJkZWZhdWx0TW9uaXRvcnMgeWVzIgogd2lsbCBjb25maWd1cmUgdGhlIEV2ZW50IE1JQiB0YWJsZXMgdG8gbW9uaXRvciB0aGUgdmFyaW91cwotXGZDVUNELVNOTVAtTUlCXGZSIHRhYmxlcyBmb3IgcHJvYmxlbXMgKGFzIGluZGljYXRlZCBieQorXGZDVUNEXC1TTk1QXC1NSUJcZlIgdGFibGVzIGZvciBwcm9ibGVtcyAoYXMgaW5kaWNhdGVkIGJ5CiB0aGUgYXBwcm9wcmlhdGUgXGZDeHhFcnJGbGFnXGZSIGNvbHVtbiBvYmplY3RzKS4KIC5JUAogVGhpcyBpcyBleGFjdGx5IGVxdWl2YWxlbnQgdG8gdGhlIGNvbmZpZ3VyYXRpb246CiAuUlMKIC5JUAogLm5mCi1tb25pdG9yCS1vIHByTmFtZXMgLW8gcHJFcnJNZXNzYWdlICJwcm9jZXNzIHRhYmxlIiBwckVycm9yRmxhZyAhPSAwCi1tb25pdG9yCS1vIG1lbUVycm9yTmFtZSAtbyBtZW1Td2FwRXJyb3JNc2cgIm1lbW9yeSIgbWVtU3dhcEVycm9yICE9IDAKLW1vbml0b3IJLW8gZXh0TmFtZXMgLW8gZXh0T3V0cHV0ICJleHRUYWJsZSIgZXh0UmVzdWx0ICE9IDAKLW1vbml0b3IJLW8gZHNrUGF0aCAtbyBkc2tFcnJvck1zZyAiZHNrVGFibGUiIGRza0Vycm9yRmxhZyAhPSAwCi1tb25pdG9yCS1vIGxhTmFtZXMgLW8gbGFFcnJNZXNzYWdlICAibGFUYWJsZSIgbGFFcnJvckZsYWcgIT0gMAotbW9uaXRvcgktbyBmaWxlTmFtZSAtbyBmaWxlRXJyb3JNc2cgICJmaWxlVGFibGUiIGZpbGVFcnJvckZsYWcgIT0gMAorbW9uaXRvcglcLW8gcHJOYW1lcyBcLW8gcHJFcnJNZXNzYWdlICJwcm9jZXNzIHRhYmxlIiBwckVycm9yRmxhZyAhPSAwCittb25pdG9yCVwtbyBtZW1FcnJvck5hbWUgXC1vIG1lbVN3YXBFcnJvck1zZyAibWVtb3J5IiBtZW1Td2FwRXJyb3IgIT0gMAorbW9uaXRvcglcLW8gZXh0TmFtZXMgXC1vIGV4dE91dHB1dCAiZXh0VGFibGUiIGV4dFJlc3VsdCAhPSAwCittb25pdG9yCVwtbyBkc2tQYXRoIFwtbyBkc2tFcnJvck1zZyAiZHNrVGFibGUiIGRza0Vycm9yRmxhZyAhPSAwCittb25pdG9yCVwtbyBsYU5hbWVzIFwtbyBsYUVyck1lc3NhZ2UgICJsYVRhYmxlIiBsYUVycm9yRmxhZyAhPSAwCittb25pdG9yCVwtbyBmaWxlTmFtZSBcLW8gZmlsZUVycm9yTXNnICAiZmlsZVRhYmxlIiBmaWxlRXJyb3JGbGFnICE9IDAKIC5maQogLlJFCiAuUFAKQEAgLTExMTksNyArMTEzNCw5IEBACiBUaGVyZSBhcmUgdGhyZWUgd2F5cyBvZiBzcGVjaWZ5aW5nIHRoZSBzY2hlZHVsZWQgYWN0aW9uOgogLklQICJyZXBlYXQgRlJFUVVFTkNZIE9JRCA9IFZBTFVFIgogY29uZmlndXJlcyBhIFNFVCBhc3NpZ25tZW50IG9mIHRoZSAoaW50ZWdlcikgVkFMVUUgdG8gdGhlIE1JQiBpbnN0YW5jZQotT0lELCB0byBiZSBydW4gZXZlcnkgRlJFUVVFTkNZIHNlY29uZHMuCitPSUQsIHRvIGJlIHJ1biBldmVyeSBGUkVRVUVOQ1kgc2Vjb25kcywgd2hlcmUgRlJFUVVFTkNZIGlzIGluCitzZWNvbmRzIG9yIG9wdGlvbmFsbHkgc3VmZml4ZWQgYnkgb25lIG9mIHMgKGZvciBzZWNvbmRzKSwgbSAoZm9yCittaW51dGVzKSwgaCAoZm9yIGhvdXJzKSwgZCAoZm9yIGRheXMpLCBvciB3IChmb3Igd2Vla3MpLgogLklQICJjcm9uIE1JTlVURSBIT1VSIERBWSBNT05USCBXRUVLREFZICBPSUQgPSBWQUxVRSIKIGNvbmZpZ3VyZXMgYSBTRVQgYXNzaWdubWVudCBvZiB0aGUgKGludGVnZXIpIFZBTFVFIHRvIHRoZSBNSUIgaW5zdGFuY2UKIE9JRCwgdG8gYmUgcnVuIGF0IHRoZSB0aW1lcyBzcGVjaWZpZWQgYnkgdGhlIGZpZWxkcyBNSU5VVEUgdG8gV0VFS0RBWS4KQEAgLTExMzcsNiArMTE1NCw3MCBAQAogY29uZmlndXJlcyBhIG9uZS1zaG90IFNFVCBhc3NpZ25tZW50LCB0byBiZSBydW4gYXQgdGhlIGZpcnN0IG1hdGNoaW5nCiB0aW1lIGFzIHNwZWNpZmllZCBieSB0aGUgZmllbGRzIE1JTlVURSB0byBXRUVLREFZLiAgVGhlIGludGVycHJldGF0aW9uCiBvZiB0aGVzZSBmaWVsZHMgaXMgZXhhY3RseSB0aGUgc2FtZSBhcyBmb3IgdGhlIFxmSWNyb25cZlIgZGlyZWN0aXZlLgorLlNTICJEYXRhIERlbGl2ZXJ5IHZpYSBOb3RmaWljYXRpb25zIgorTm90ZTogdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG9ubHkgYXZhaWxhYmxlIGlmIHRoZQorXGZJZGVsaXZlci9kZWxpdmVyQnlOb3RpZnlcZlIgbWliIG1vZHVsZSB3YXMgY29tcGxpZWQgaW4gdG8gdGhlIGFnZW50CisuUFAKK0luIHNvbWUgc2l0dWF0aW9ucyBpdCBtYXkgYmUgYWR2YW50YWdlb3VzIHRvIGRlbGl2ZXIgU05NUCBkYXRhIG92ZXIKK1NOTVAgTm90aWZpY2F0aW9ucyAoVFJBUHMgYW5kIElORk9STXMpIHJhdGhlciB0aGFuIHRoZSB0eXBpY2FsIHByb2Nlc3MKK29mIGhhdmluZyB0aGUgbWFuYWdlciBpc3N1ZSByZXF1ZXN0cyBmb3IgdGhlIGRhdGEgKHZpYSBHRVRzIGFuZAorR0VUTkVYVHMpLiAgUmVhc29ucyBmb3IgZG9pbmcgdGhpcyBhcmUgbnVtZXJvdXMsIGJ1dCBmcmVxdWVudGx5IGNvcm5lcgorY2FzZXMuICBUaGUgbW9zdCBjb21tb24gcmVhc29uIGZvciB3YW50aW5nIHRoaXMgYmVoYXZpb3VyIG1pZ2h0IGJlIHRvCittb25pdG9yIGRldmljZXMgdGhhdCByZXNpZGUgYmVoaW5kIE5BVHMgb3IgRmlyZXdhbGxzIHRoYXQgcHJldmVudAoraW5jb21pbmcgU05NUCB0cmFmZmljLgorLlBQCitJdCBzaG91bGQgYmUgbm90ZWQgdGhhdCBhbHRob3VnaCBtb3N0IG1hbmFnZW1lbnQgc29mdHdhcmUgaXMgY2FwYWJsZQorb2YgbG9nZ2luZyBub3RpZmljYXRpb25zLCB2ZXJ5IGxpdHRsZSAoaWYgYW55KSBtYW5hZ2VtZW50IHNvZnR3YXJlCit3aWxsIHVwZGF0ZWQgdGhlaXIgImtub3dsZWRnZSBkYXRhYmFzZSIgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIFNOTVAKK25vdGlmaWNhdGlvbnMuICBJRSwgaXQgd29uJ3QgKGZvciBleGFtcGxlKSB1cGRhdGUgdGhlIGludGVyZmFjZQordHJhZmZpYyBjb3VudGVyIGhpc3RvcnkgdGhhdCBpcyB1c2VkIHRvIHByb2R1Y2UgZ3JhcGhzLiAgTW9zdCBsYXJnZXIKK25ldHdvcmsgbWFuYWdlbWVudCBwYWNrYWdlcyBoYXZlIGEgc2VwYXJhdGUgZGF0YWJhc2UgZm9yIHN0b3JpbmcgZGF0YQorcmVjZWl2ZWQgdmlhIFNOTVAgcmVxdWVzdHMgKEdFVHMgYW5kIEdFVE5FWFRzKSB2cyB0aG9zZSByZWNlaXZlZCBmcm9tCitub3RpZmljYXRpb25zLiAgUmVzZWFyY2hpbmcgdGhlIGNhcGFiaWxpdGllcyBvZiB5b3VyIG1hbmFnZW1lbnQKK3N0YXRpb24gc29mdHdhcmUgaXMgcmVxdWlyZWQgYmVmb3JlIGFzc3VtaW5nIHRoaXMgZnVuY3Rpb25hbGl0eSB3aWxsCitzb2x2ZSB5b3VyIGRhdGEgZGVsaXZlcnkgcmVxdWlyZW1lbnRzLgorLlBQCitOb3RpZmljYXRpb25zIGdlbmVyYXRlZCB2aWEgdGhpcyBtZWNoYW5pc20gd2lsbCBiZSBzZW50IHRvIHRoZQorc3RhbmRhcmQgc2V0IG9mIGNvbmZpZ3VyZWQgbm90aWZpY2F0aW9uIHRhcmdldHMuICBTZWUgdGhlCisiTm90aWZpY2F0aW9uIEhhbmRsaW5nIiBzZWN0aW9uIG9mIHRoaXMgZG9jdW1lbnQgZm9yIGZ1cnRoZXIKK2luZm9ybWF0aW9uLgorLklQICJkZWxpdmVyQnlOb3RpZnkgW1wtcF0gW1wtbV0gW1wtcyBNQVhTSVpFXSBGUkVRVUVOQ1kgT0lEIgorVGhpcyBkaXJlY3RpdmUgdGVsbHMgdGhlIFNOTVAgYWdlbnQgdG8gc2VsZi13YWxrIHRoZSBcZklPSURcZlIsCitjb2xsZWN0IGFsbCB0aGUgZGF0YSBhbmQgc2VuZCBpdCBvdXQgZXZlcnkgXGZJRlJFUVVFTkNZXGZSIHNlY29uZHMsCit3aGVyZSBGUkVRVUVOQ1kgaXMgaW4gc2Vjb25kcyBvciBvcHRpb25hbGx5IHN1ZmZpeGVkIGJ5IG9uZSBvZiBzIChmb3IKK3NlY29uZHMpLCBtIChmb3IgbWludXRlcyksIGggKGZvciBob3VycyksIGQgKGZvciBkYXlzKSwgb3IgdyAoZm9yCit3ZWVrcykuICBCeSBkZWZhdWx0IHNjYWxhcnMgYXJlIGluY2x1ZGVkIGluIHRoZSBub3RpZmljYXRpb24gdGhhdAorc3BlY2lmeSB0aGUgaG93IG9mdGVuIHRoZSBub3RpZmljYXRpb24gd2lsbCBiZSBzZW50ICh1bmxlc3MgdGhlCitcZklcLXBcZlIgb3B0aW9uIGlzIHNwZWNpZmllZCkgYW5kIHdoaWNoIG1lc3NhZ2UgbnVtYmVyIG9mIGhvdyBtYW55CittZXNzYWdlcyBhIHBhcnRpY3VsYXIgbm90aWZpY2F0aW9uIGlzICh1bmxlc3MgXGZJXC1tXGZSIGlzIHNwZWNpZmllZCkuCitUbyBicmVhayB0aGUgbm90aWZpY2F0aW9ucyBpbnRvIG1hbmFnZWFibGUgcGFja2V0IHNpemVzLCB1c2UgdGhlCitcZklcLXNcZlIgZmxhZyB0byBzcGVjaWZ5IHRoZSBhcHByb3hpbWF0ZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcyB0aGF0CithIG5vdGlmaWNhdGlvbiBtZXNzYWdlIHNob3VsZCBiZSBsaW1pdGVkIHRvLiAgSWYgbW9yZSB0aGFuCitcZklNQVhTSVpFXGZSIG9mIGJ5dGVzIGlzIG5lZWRlZCB0aGVuIG11bHRpcGxlIG5vdGlmaWNhdGlvbnMgd2lsbCBiZQorc2VudCB0byBkZWxpdmVyIHRoZSBkYXRhLiAgTm90ZSB0aGF0IHRoZSBjYWxjdWxhdGlvbnMgZm9yIGVuc3VyaW5nIHRoZQorbWF4aW11bSBzaXplIGlzIG1ldCBhcmUgYXBwcm94aW1hdGlvbnMgYW5kIHRodXMgaXQgY2FuIGJlIGFic29sdXRlbHkKK2d1YXJhbnRlZWQgdGhleSdsbCBiZSB1bmRlciB0aGF0IHNpemUsIHNvIGxlYXZlIGEgcGFkZGluZyBidWZmZXIgaWYgaXQKK2lzIGNyaXRpY2FsIHRoYXQgeW91IGF2b2lkIGZyYWdtZW50YXRpb24uICBBIHZhbHVlIG9mIFwtMSBpbmRpY2F0ZXMKK2ZvcmNlIGV2ZXJ5dGhpbmcgaW50byBhIHNpbmdsZSBtZXNzYWdlIG5vIG1hdHRlciBob3cgYmlnIGl0IGlzLgorLklQCitFeGFtcGxlIHVzYWdlOiB0aGUgZm9sbG93aW5nIHdpbGwgZGVsaXZlciB0aGUgY29udGVudHMgb2YgdGhlIGlmVGFibGUKK29uY2UgYW4gaG91ciBhbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSBzeXN0ZW0gZ3JvdXAgb25jZSBldmVyeSAyIGhvdXJzOgorLlJTCisubmYKKworZGVsaXZlckJ5Tm90aWZ5IDM2MDAgaWZUYWJsZQorZGVsaXZlckJ5Tm90aWZ5IDcyMDAgc3lzdGVtCisuZmkKKy5SRQorLklQICJkZWxpdmVyQnlOb3RpZnlNYXhQYWNrZXRTaXplIFNJWkVJTkJZVEVTIgorU2V0cyB0aGUgZGVmYXVsdCBub3RpZmljYXRpb24gc2l6ZSBsaW1pdCAoc2VlIHRoZSBcZklcLXNcZlIgZmxhZyBhYm92ZSkuCisuSVAgImRlbGl2ZXJCeU5vdGlmeU9pZCBPSUQiCisuSVAgImRlbGl2ZXJCeU5vdGlmeUZyZXF1ZW5jeU9pZCBPSUQiCisuSVAgImRlbGl2ZXJCeU5vdGlmeU1lc3NhZ2VOdW1iZXJPaWQgT0lEIgorLklQICJkZWxpdmVyQnlOb3RpZnlNYXhNZXNzYWdlTnVtYmVyT2lkIE9JRCIKK1RoZXNlIHNldCB0aGUgZGF0YSBPSUQgdGhhdCB0aGUgbm90aWZpY2F0aW9uIHdpbGwgYmUgc2VudCB1bmRlciwgdGhlCitzY2FsYXIgT0lELCB0aGUgbWVzc2FnZSBudW1iZXIgT0lELCBhbmQgdGhlIG1heGltdW0gbWVzc2FnZSBudW1iZXIKK09JRC4gIFRoZXNlIGRlZmF1bHQgdG8gb2JqZWN0cyBpbiB0aGUgTkVUXC1TTk1QXC1QRVJJT0RJQ1wtTk9USUZZXC1NSUIuCiAuU0ggIkVYVEVORElORyBBR0VOVCBGVU5DVElPTkFMSVRZIgogT25lIG9mIHRoZSBmaXJzdCBkaXN0aW5ndWlzaGluZyBmZWF0dXJlcyBvZiB0aGUgb3JpZ2luYWwgVUNEIHN1aXRlIHdhcwogdGhlIGFiaWxpdHkgdG8gZXh0ZW5kIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBhZ2VudCAtIG5vdCBqdXN0IGJ5CkBAIC0xMTU1LDcgKzEyMzYsNyBAQAogU05NUCBvcGVyYXRpb25zLCBvciBjb25mb3JtIHRvIGFueSBwYXJ0aWN1bGFyIGJlaGF2aW91ciAtIHRoZSBNSUIKIHN0cnVjdHVyZXMgYXJlIGRlc2lnbmVkIHRvIGFjY29tbW9kYXRlIGFueSBmb3JtIG9mIGNvbW1hbmQgb3V0cHV0LgogVXNlIG9mIHRoaXMgbWVjaGFuaXNtIHJlcXVpcmVzIHRoYXQgdGhlIGFnZW50IHdhcyBidWlsdCB3aXRoIHN1cHBvcnQgZm9yIHRoZQotXGZJdWNkLXNubXAvZXh0ZW5zaWJsZVxmUiBhbmQvb3IgXGZJYWdlbnQvZXh0ZW5kXGZSIG1vZHVsZXMgKHdoaWNoCitcZkl1Y2RcLXNubXAvZXh0ZW5zaWJsZVxmUiBhbmQvb3IgXGZJYWdlbnQvZXh0ZW5kXGZSIG1vZHVsZXMgKHdoaWNoCiBhcmUgYm90aCBpbmNsdWRlZCBhcyBwYXJ0IG9mIHRoZSBkZWZhdWx0IGJ1aWxkIGNvbmZpZ3VyYXRpb24pLgogLklQICJleGVjIFtNSUJPSURdIE5BTUUgUFJPRyBBUkdTIgogLklQICJzaCBbTUlCT0lEXSBOQU1FIFBST0cgQVJHUyIKQEAgLTEyMjksNyArMTMxMCw3IEBACiBcZklleHRlbmRcZlIgZW50cnksIGFuZCBjYW4gYXBwZWFyIG9uIGl0cyBvd24uCiAuUFAKIEJvdGggXGZJZXh0ZW5kXGZSIGFuZCBcZklleHRlbmRmaXhcZlIgZGlyZWN0aXZlcyBjYW4gYmUgY29uZmlndXJlZAotZHluYW1pY2FsbHksIHVzaW5nIFNOTVAgU0VUIHJlcXVlc3RzIHRvIHRoZSBORVQtU05NUC1FWFRFTkQtTUlCLgorZHluYW1pY2FsbHksIHVzaW5nIFNOTVAgU0VUIHJlcXVlc3RzIHRvIHRoZSBORVRcLVNOTVBcLUVYVEVORFwtTUlCLgogLlNTICJNSUItU3BlY2lmaWMgRXh0ZW5zaW9uIENvbW1hbmRzIgogVGhlIGZpcnN0IGdyb3VwIG9mIGV4dGVuc2lvbiBkaXJlY3RpdmVzIGludm9rZSBhcmJpdHJhcnkgY29tbWFuZHMsCiBhbmQgcmVseSBvbiB0aGUgTUlCIHN0cnVjdHVyZSAoYW5kIG1hbmFnZW1lbnQgYXBwbGljYXRpb25zKSBoYXZpbmcKQEAgLTEyNDAsMTcgKzEzMjEsMTcgQEAKIFRoZSByZW1haW5pbmcgZXh0ZW5zaW9uIG1lY2hhbmlzbXMgYXJlIGFsbCBjb25jZXJuZWQgd2l0aCBzdWNoCiBNSUItc3BlY2lmaWMgc2l0dWF0aW9ucyAtIHN0YXJ0aW5nIHdpdGggInBhc3MtdGhyb3VnaCIgc2NyaXB0cy4KIFVzZSBvZiB0aGlzIG1lY2hhbmlzbSByZXF1aXJlcyB0aGF0IHRoZSBhZ2VudCB3YXMgYnVpbHQgd2l0aCBzdXBwb3J0IGZvciB0aGUKLVxmSXVjZC1zbm1wL3Bhc3NcZlIgYW5kIFxmSXVjZC1zbm1wL3Bhc3NfcGVyc2lzdFxmUiBtb2R1bGVzICh3aGljaAorXGZJdWNkXC1zbm1wL3Bhc3NcZlIgYW5kIFxmSXVjZFwtc25tcC9wYXNzX3BlcnNpc3RcZlIgbW9kdWxlcyAod2hpY2gKIGFyZSBib3RoIGluY2x1ZGVkIGFzIHBhcnQgb2YgdGhlIGRlZmF1bHQgYnVpbGQgY29uZmlndXJhdGlvbikuCi0uSVAgInBhc3MgWy1wIHByaW9yaXR5XSBNSUJPSUQgUFJPRyIKKy5JUCAicGFzcyBbXC1wIHByaW9yaXR5XSBNSUJPSUQgUFJPRyIKIHdpbGwgcGFzcyBjb250cm9sIG9mIHRoZSBzdWJ0cmVlIHJvb3RlZCBhdCBNSUJPSUQgdG8gdGhlIHNwZWNpZmllZAogUFJPRyBjb21tYW5kLiAgR0VUIGFuZCBHRVRORVhUIHJlcXVlc3RzIGZvciBPSURzIHdpdGhpbiB0aGlzIHRyZWUgd2lsbAogdHJpZ2dlciB0aGlzIGNvbW1hbmQsIGNhbGxlZCBhczoKIC5SUwogLklQCi1QUk9HIC1nIE9JRAorUFJPRyBcLWcgT0lECiAuSVAKLVBST0cgLW4gT0lECitQUk9HIFwtbiBPSUQKIC5SRQogLklQCiByZXNwZWN0aXZlbHksIHdoZXJlIE9JRCBpcyB0aGUgcmVxdWVzdGVkIE9JRC4KQEAgLTEyNzgsNyArMTM1OSw3IEBACiBBIFNFVCByZXF1ZXN0IHdpbGwgcmVzdWx0IGluIHRoZSBjb21tYW5kIGJlaW5nIGNhbGxlZCBhczoKIC5SUwogLklQCi1QUk9HIC1zIE9JRCBUWVBFIFZBTFVFCitQUk9HIFwtcyBPSUQgVFlQRSBWQUxVRQogLlJFCiAuSVAKIHdoZXJlIFRZUEUgaXMgb25lIG9mIHRoZSB0b2tlbnMgbGlzdGVkIGFib3ZlLCBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIHRoZQpAQCAtMTMxMiw5ICsxMzkzLDkgQEAKIGEgc2VwYXJhdGUgaW52b2NhdGlvbiBvZiB0aGUgY29tbWFuZC4KIC5JUAogVGhlIGRlZmF1bHQgcmVnaXN0cmF0aW9uIHByaW9yaXR5IGlzIDEyNy4gIFRoaXMgY2FuIGJlCi1jaGFuZ2VkIGJ5IHN1cHBseWluZyB0aGUgb3B0aW9uYWwgLXAgZmxhZywgd2l0aCBsb3dlciBwcmlvcml0eQorY2hhbmdlZCBieSBzdXBwbHlpbmcgdGhlIG9wdGlvbmFsIFwtcCBmbGFnLCB3aXRoIGxvd2VyIHByaW9yaXR5CiByZWdpc3RyYXRpb25zIGJlaW5nIHVzZWQgaW4gcHJlZmVyZW5jZSB0byBoaWdoZXIgcHJpb3JpdHkgdmFsdWVzLgotLklQICJwYXNzX3BlcnNpc3QgWy1wIHByaW9yaXR5XSBNSUJPSUQgUFJPRyIKKy5JUCAicGFzc19wZXJzaXN0IFtcLXAgcHJpb3JpdHldIE1JQk9JRCBQUk9HIgogd2lsbCBhbHNvIHBhc3MgY29udHJvbCBvZiB0aGUgc3VidHJlZSByb290ZWQgYXQgTUlCT0lEIHRvIHRoZSBzcGVjaWZpZWQKIFBST0cgY29tbWFuZC4gIEhvd2V2ZXIgdGhpcyBjb21tYW5kIHdpbGwgY29udGludWUgdG8gcnVuIGFmdGVyIHRoZSBpbml0aWFsCiByZXF1ZXN0IGhhcyBiZWVuIGFuc3dlcmVkLCBzbyBzdWJzZXF1ZW50IHJlcXVlc3RzIGNhbiBiZSBwcm9jZXNzZWQgd2l0aG91dApAQCAtMTMzNywxOCArMTQxOCwxOCBAQAogSWYgdGhlIGFzc2lnbm1lbnQgaXMgc3VjY2Vzc2Z1bCwgdGhlIGNvbW1hbmQgc2hvdWxkIHByaW50CiAiRE9ORVxcbiIgdG8gc3Rkb3V0LgogRXJyb3JzIHNob3VsZCBiZSBpbmRpY2F0ZWQgYnkgd3JpdGluZyBvbmUgb2YgdGhlIHN0cmluZ3MKLS5CIG5vdC13cml0YWJsZSwgCi0uQiB3cm9uZy10eXBlLAotLkIgd3JvbmctbGVuZ3RoLAotLkIgd3JvbmctdmFsdWUKKy5CIG5vdFwtd3JpdGFibGUsIAorLkIgd3JvbmdcLXR5cGUsCisuQiB3cm9uZ1wtbGVuZ3RoLAorLkIgd3JvbmdcLXZhbHVlCiBvcgotLkIgaW5jb25zaXN0ZW50LXZhbHVlCisuQiBpbmNvbnNpc3RlbnRcLXZhbHVlCiB0byBzdGRvdXQsCiBhbmQgdGhlIGFnZW50IHdpbGwgZ2VuZXJhdGUgdGhlIGFwcHJvcHJpYXRlIGVycm9yIHJlc3BvbnNlLgogSW4gZWl0aGVyIGNhc2UsIHRoZSBjb21tYW5kIHNob3VsZCBjb250aW51ZSBydW5uaW5nLgogLklQCiBUaGUgcmVnaXN0cmF0aW9uIHByaW9yaXR5IGNhbiBiZSBjaGFuZ2VkIHVzaW5nIHRoZSBvcHRpb25hbAotLXAgZmxhZywganVzdCBhcyBmb3IgdGhlIFxmSXBhc3NcZlIgZGlyZWN0aXZlLgorXC1wIGZsYWcsIGp1c3QgYXMgZm9yIHRoZSBcZklwYXNzXGZSIGRpcmVjdGl2ZS4KIC5QUAogXGZJcGFzc1xmUiBhbmQgXGZJcGFzc19wZXJzaXN0XGZSIGV4dGVuc2lvbnMgY2FuIG9ubHkgYmUgY29uZmlndXJlZCB2aWEgdGhlCiBzbm1wZC5jb25mIGZpbGUuICBUaGV5IGNhbm5vdCBiZSBzZXQgdXAgdmlhIFNOTVAgU0VUIHJlcXVlc3RzLgpAQCAtMTM2Niw3ICsxNDQ3LDcgQEAKIC5QUAogVXNlIG9mIHRoaXMgbWVjaGFuaXNtIHJlcXVpcmVzIHRoYXQgdGhlIGFnZW50IHdhcyBidWlsdCB3aXRoIHN1cHBvcnQgZm9yIHRoZSBlbWJlZGRlZAogcGVybCBtZWNoYW5pc20sIHdoaWNoIGlzIG5vdCBwYXJ0IG9mIHRoZSBkZWZhdWx0IGJ1aWxkIGVudmlyb25tZW50LiBJdAotbXVzdCBiZSBleHBsaWNpdGx5IGluY2x1ZGVkIGJ5IHNwZWNpZnlpbmcgdGhlICctLWVuYWJsZS1lbWJlZGRlZC1wZXJsJworbXVzdCBiZSBleHBsaWNpdGx5IGluY2x1ZGVkIGJ5IHNwZWNpZnlpbmcgdGhlICdcLVwtZW5hYmxlXC1lbWJlZGRlZFwtcGVybCcKIG9wdGlvbiB0byB0aGUgY29uZmlndXJlIHNjcmlwdCB3aGVuIHRoZSBwYWNrYWdlIGlzIGZpcnN0IGJ1aWx0LgogLlBQCiBJZiBlbmFibGVkLCB0aGUgZm9sbG93aW5nIGRpcmVjdGl2ZXMgd2lsbCBiZSByZWNvZ25pc2VkOgpAQCAtMTM5MSw3ICsxNDcyLDcgQEAKIC5uZgogXGZDcGVybCB1c2UgRGF0YTo6RHVtcGVyOwogcGVybCBzdWIgbXlyb3V0aW5lICB7IHByaW50ICJnb3QgY2FsbGVkOiAiLER1bXBlcihAXyksIlxcbiI7IH0KLXBlcmwgJGFnZW50LT5yZWdpc3RlcignbXlsaW5rJywgJy4xLjMuNi4xLjg3NjUnLCBcXCZteXJvdXRpbmUpO1xmUgorcGVybCAkYWdlbnRcLT5yZWdpc3RlcignbXlsaW5rJywgJy4xLjMuNi4xLjg3NjUnLCBcXCZteXJvdXRpbmUpO1xmUgogLmZpCiAuUkUKIC5SRQpAQCAtMTQxMyw3ICsxNDk0LDcgQEAKIHdoZW4gdGhlIHN1aXRlIHdhcyBmaXJzdCBidWlsdC4gIFN1Y2ggaW1wbGVtZW50YXRpb24gbW9kdWxlcyBjYW4gYWxzbyBiZQogY29tcGlsZWQgaW5kZXBlbmRlbnRseSBhbmQgbG9hZGVkIGludG8gdGhlIHJ1bm5pbmcgYWdlbnQgb25jZSBpdCBoYXMKIHN0YXJ0ZWQuICBVc2Ugb2YgdGhpcyBtZWNoYW5pc20gcmVxdWlyZXMgdGhhdCB0aGUgYWdlbnQgd2FzIGJ1aWx0IHdpdGggc3VwcG9ydCBmb3IgdGhlCi1cZkl1Y2Qtc25tcC9kbG1vZFxmUiBtb2R1bGUgKHdoaWNoIGlzIGluY2x1ZGVkIGFzIHBhcnQgb2YgdGhlIGRlZmF1bHQKK1xmSXVjZFwtc25tcC9kbG1vZFxmUiBtb2R1bGUgKHdoaWNoIGlzIGluY2x1ZGVkIGFzIHBhcnQgb2YgdGhlIGRlZmF1bHQKIGJ1aWxkIGNvbmZpZ3VyYXRpb24pLgogLklQICJkbG1vZCBOQU1FIFBBVEgiCiB3aWxsIGxvYWQgdGhlIHNoYXJlZCBvYmplY3QgbW9kdWxlIGZyb20gdGhlIGZpbGUgUEFUSCAoYW4gYWJzb2x1dGUKQEAgLTE0MjYsNyArMTUwNyw3IEBACiAuUkUKIC5QUAogVGhpcyBmdW5jdGlvbmFsaXR5IGNhbiBhbHNvIGJlIGNvbmZpZ3VyZWQgdXNpbmcgU05NUCBTRVQgcmVxdWVzdHMKLXRvIHRoZSBVQ0QtRExNT0QtTUlCLgordG8gdGhlIFVDRFwtRExNT0RcLU1JQi4KIC5TUyAiUHJveHkgU3VwcG9ydCIKIEFub3RoZXIgbWVjaGFuaXNtIGZvciBleHRlbmRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGFnZW50CiBpcyB0byBwYXNzIHNlbGVjdGVkIHJlcXVlc3RzIChvciBzZWxlY3RlZCB2YXJiaW5kcykgdG8gYW5vdGhlcgpAQCAtMTQzNSw5ICsxNTE2LDkgQEAKIFRoaXMgY2FuIGJlIHZpZXdlZCBlaXRoZXIgYXMgdGhlIG1haW4gYWdlbnQgZGVsZWdhdGluZyByZXF1ZXN0cyB0bwogdGhlIHJlbW90ZSBvbmUsIG9yIGFjdGluZyBhcyBhIHByb3h5IGZvciBpdC4KIFVzZSBvZiB0aGlzIG1lY2hhbmlzbSByZXF1aXJlcyB0aGF0IHRoZSBhZ2VudCB3YXMgYnVpbHQgd2l0aCBzdXBwb3J0IGZvciB0aGUKLVxmSXVjZC1zbm1wL3Byb3h5XGZSIG1vZHVsZSAod2hpY2ggaXMgaW5jbHVkZWQgYXMgcGFydCBvZiB0aGUKK1xmSXVjZFwtc25tcC9wcm94eVxmUiBtb2R1bGUgKHdoaWNoIGlzIGluY2x1ZGVkIGFzIHBhcnQgb2YgdGhlCiBkZWZhdWx0IGJ1aWxkIGNvbmZpZ3VyYXRpb24pLgotLklQICJwcm94eSBbLUNuIENPTlRFWFROQU1FXSBbU05NUENNRF9BUkdTXSBIT1NUIE9JRCBbUkVNT1RFT0lEXSIKKy5JUCAicHJveHkgW1wtQ24gQ09OVEVYVE5BTUVdIFtTTk1QQ01EX0FSR1NdIEhPU1QgT0lEIFtSRU1PVEVPSURdIgogd2lsbCBwYXNzIGFueSBpbmNvbWluZyByZXF1ZXN0cyB1bmRlciBPSUQgdG8gdGhlIGFnZW50IGxpc3RlbmluZwogb24gdGhlIHBvcnQgc3BlY2lmaWVkIGJ5IHRoZSB0cmFuc3BvcnQgYWRkcmVzcyBIT1NULgogU2VlIHRoZSBzZWN0aW9uIApAQCAtMTQ3Niw3ICsxNTU3LDcgQEAKIHdpdGggU01VWC1iYXNlZCBzdWJhZ2VudHMgKHN1Y2ggYXMgXGZJZ2F0ZWRcZlIsIFxmSXplYnJhXGZSIG9yIFxmSXF1YWdnYVxmUikuCiBVc2Ugb2YgdGhpcyBtZWNoYW5pc20gcmVxdWlyZXMgdGhhdCB0aGUgYWdlbnQgd2FzIGJ1aWx0IHdpdGggc3VwcG9ydCBmb3IgdGhlCiBcZklzbXV4XGZSIG1vZHVsZSwgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhlIGRlZmF1bHQgYnVpbGQgZW52aXJvbm1lbnQsIGFuZAotbXVzdCBiZSBleHBsaWNpdGx5IGluY2x1ZGVkIGJ5IHNwZWNpZnlpbmcgdGhlICctLXdpdGgtbWliLW1vZHVsZXM9c211eCcKK211c3QgYmUgZXhwbGljaXRseSBpbmNsdWRlZCBieSBzcGVjaWZ5aW5nIHRoZSAnXC1cLXdpdGhcLW1pYlwtbW9kdWxlcz1zbXV4Jwogb3B0aW9uIHRvIHRoZSBjb25maWd1cmUgc2NyaXB0IHdoZW4gdGhlIHBhY2thZ2UgaXMgZmlyc3QgYnVpbHQuCiAuUlMKIC5JUCAiTm90ZToiCkBAIC0xNTAzLDcgKzE1ODQsNyBAQAogLklQICJzbXV4c29ja2V0IDxJUHY0LWFkZHJlc3M+IgogZGVmaW5lcyB0aGUgSVB2NCBhZGRyZXNzIGZvciBTTVVYIHBlZXJzIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIE5ldC1TTk1QIGFnZW50LgogVGhlIGRlZmF1bHQgaXMgdG8gbGlzdGVuIG9uIGFsbCBJUHY0IGludGVyZmFjZXMgKCIwLjAuMC4wIiksIHVubGVzcyB0aGUgCi1wYWNrYWdlIGhhcyBiZWVuIGNvbmZpZ3VyZWQgd2l0aCAiLS1lbmFibGUtbG9jYWwtc211eCIgYXQgYnVpbGQgdGltZSwgd2hpY2ggCitwYWNrYWdlIGhhcyBiZWVuIGNvbmZpZ3VyZWQgd2l0aCAiXC1cLWVuYWJsZVwtbG9jYWxcLXNtdXgiIGF0IGJ1aWxkIHRpbWUsIHdoaWNoIAogY2F1c2VzIGl0IHRvIG9ubHkgbGlzdGVuIG9uIDEyNy4wLjAuMSBieSBkZWZhdWx0LiBTTVVYIHVzZXMgdGhlIHdlbGwta25vd24KIFRDUCBwb3J0IDE5OS4KIC5QUApAQCAtMTUyMiw3ICsxNjAzLDcgQEAKIC5JUCAibWFzdGVyIGFnZW50eCIKIHdpbGwgZW5hYmxlIHRoZSBBZ2VudFggZnVuY3Rpb25hbGl0eSBhbmQgY2F1c2UgdGhlIGFnZW50IHRvCiBzdGFydCBsaXN0ZW5pbmcgZm9yIGluY29taW5nIEFnZW50WCByZWdpc3RyYXRpb25zLgotVGhpcyBjYW4gYWxzbyBiZSBhY3RpdmF0ZWQgYnkgc3BlY2lmeWluZyB0aGUgJy14JyBjb21tYW5kLWxpbmUKK1RoaXMgY2FuIGFsc28gYmUgYWN0aXZhdGVkIGJ5IHNwZWNpZnlpbmcgdGhlICdcLXgnIGNvbW1hbmQtbGluZQogb3B0aW9uICh0byBzcGVjaWZ5IGFuIGFsdGVybmF0aXZlIGxpc3RlbmluZyBzb2NrZXQpLgogLklQICJhZ2VudFhQZXJtcyBTT0NLUEVSTVMgW0RJUlBFUk1TIFtVU0VSfFVJRCBbR1JPVVB8R0lEXV1dIgogRGVmaW5lcyB0aGUgcGVybWlzc2lvbnMgYW5kIG93bmVyc2hpcCBvZiB0aGUgQWdlbnRYIFVuaXggRG9tYWluIHNvY2tldCwKQEAgLTE1NTMsMTEgKzE2MzQsMTMgQEAKIC5SUwogLklQICJOb3RlOiIKIFNwZWNpZnlpbmcgYW4gQWdlbnRYIHNvY2tldCBkb2VzIFxmQm5vdFxmUiBhdXRvbWF0aWNhbGx5IGVuYWJsZQotQWdlbnRYIGZ1bmN0aW9uYWxpdHkgKHVubGlrZSB0aGUgJy14JyBjb21tYW5kLWxpbmUgb3B0aW9uKS4KK0FnZW50WCBmdW5jdGlvbmFsaXR5ICh1bmxpa2UgdGhlICdcLXgnIGNvbW1hbmQtbGluZSBvcHRpb24pLgogLlJFCiAuSVAgImFnZW50WFRpbWVvdXQgTlVNIgogZGVmaW5lcyB0aGUgdGltZW91dCBwZXJpb2QgKE5VTSBzZWNvbmRzKSBmb3IgYW4gQWdlbnRYIHJlcXVlc3QuCi1EZWZhdWx0IGlzIDEgc2Vjb25kLgorRGVmYXVsdCBpcyAxIHNlY29uZC4gIE5VTSBhbHNvIGJlIHNwZWNpZmllZCB3aXRoIGEgc3VmZml4IG9mIG9uZSBvZiBzCisoZm9yIHNlY29uZHMpLCBtIChmb3IgbWludXRlcyksIGggKGZvciBob3VycyksIGQgKGZvciBkYXlzKSwgb3IgdyAoZm9yCit3ZWVrcykuCiAuSVAgImFnZW50WFJldHJpZXMgTlVNIgogZGVmaW5lcyB0aGUgbnVtYmVyIG9mIHJldHJpZXMgZm9yIGFuIEFnZW50WCByZXF1ZXN0LgogRGVmYXVsdCBpcyA1IHJldHJpZXMuCkBAIC0xNTY1LDkgKzE2NDgsOSBAQAogbmV0LXNubXAgc2hpcHMgd2l0aCBib3RoIEMgYW5kIFBlcmwgQVBJcyB0byBkZXZlbG9wIHlvdXIgb3duIEFnZW50WAogc3ViYWdlbnQuCiAuU0ggIk9USEVSIENPTkZJR1VSQVRJT04iCi0uSVAgIm92ZXJyaWRlIFstcnddIE9JRCBUWVBFIFZBTFVFIgorLklQICJvdmVycmlkZSBbXC1yd10gT0lEIFRZUEUgVkFMVUUiCiBUaGlzIGRpcmVjdGl2ZSBhbGxvd3MgeW91IHRvIG92ZXJyaWRlIGEgcGFydGljdWxhciBPSUQgd2l0aCBhCi1kaWZmZXJlbnQgdmFsdWUgKGFuZCBwb3NzaWJseSBhIGRpZmZlcmVudCB0eXBlIG9mIHZhbHVlKS4gIFRoZSAtcncKK2RpZmZlcmVudCB2YWx1ZSAoYW5kIHBvc3NpYmx5IGEgZGlmZmVyZW50IHR5cGUgb2YgdmFsdWUpLiAgVGhlIFwtcncKIGZsYWcgd2lsbCBhbGxvdyBzbm1wIFNFVHMgdG8gbW9kaWZ5IGl0J3MgdmFsdWUgYXMgd2VsbC4gKG5vdGUgdGhhdCBpZgogeW91J3JlIG92ZXJyaWRpbmcgb3JpZ2luYWwgZnVuY3Rpb25hbGl0eSwgdGhhdCBmdW5jdGlvbmFsaXR5IHdpbGwgYmUKIGVudGlyZWx5IGxvc3QuICBUaHVzIFNFVFMgd2lsbCBkbyBub3RoaW5nIG1vcmUgdGhhbiBtb2RpZnkgdGhlCkBAIC0xNTk5LDggKzE2ODIsOCBAQAogSWYgeW91J3JlIHRyeWluZyB0byBmaWd1cmUgb3V0IGFzcGVjdHMgb2YgdGhlIHZhcmlvdXMgbWliIG1vZHVsZXMKIChwb3NzaWJseSBzb21lIHRoYXQgeW91J3ZlIGFkZGVkIHlvdXJzZWxmKSwgdGhlIGZvbGxvd2luZyBtYXkgaGVscCB5b3UKIHNwaXQgb3V0IHNvbWUgdXNlZnVsIGRlYnVnZ2luZyBpbmZvcm1hdGlvbi4gIEZpcnN0IG9mZiwgcGxlYXNlIHJlYWQKLXRoZSBzbm1wZCBtYW51YWwgcGFnZSBvbiB0aGUgLUQgZmxhZy4gIFRoZW4gdGhlIGZvbGxvd2luZwotY29uZmlndXJhdGlvbiBzbm1wZC5jb25mIHRva2VuLCBjb21iaW5lZCB3aXRoIHRoZSAtRCBmbGFnLCBjYW4gcHJvZHVjZQordGhlIHNubXBkIG1hbnVhbCBwYWdlIG9uIHRoZSBcLUQgZmxhZy4gIFRoZW4gdGhlIGZvbGxvd2luZworY29uZmlndXJhdGlvbiBzbm1wZC5jb25mIHRva2VuLCBjb21iaW5lZCB3aXRoIHRoZSBcLUQgZmxhZywgY2FuIHByb2R1Y2UKIHVzZWZ1bCBvdXRwdXQ6CiAuSVAgImluamVjdEhhbmRsZXIgSEFORExFUiBtb2R1bGVuYW1lIFtiZWZvcmVUaGlzXSIKIFRoaXMgd2lsbCBpbnNlcnQgbmV3IGhhbmRsZXJzIGludG8gdGhlIHNlY3Rpb24gb2YgdGhlIG1pYiB0cmVlCkBAIC0xNjI5LDcgKzE3MTIsNyBAQAogCiAuSVAgZGVidWcKIFByaW50cyBvdXQgbG90cyBvZiBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gd2hlbgotdGhlIC1EaGVscGVyOmRlYnVnIGZsYWcgaXMgcGFzc2VkIHRvIHRoZSBzbm1wZAordGhlIFwtRGhlbHBlcjpkZWJ1ZyBmbGFnIGlzIHBhc3NlZCB0byB0aGUgc25tcGQKIGFwcGxpY2F0aW9uLgogCiAuSVAgcmVhZF9vbmx5CkBAIC0xNjY0LDggKzE3NDcsOCBAQAogLklQIG8KIFRoZSBOZXQtU05NUCBhZ2VudCBjYW4gYmUgaW5zdHJ1Y3RlZCB0byByZS1yZWFkIHRoZSB2YXJpb3VzIGNvbmZpZ3VyYXRpb24gZmlsZXMsCiBlaXRoZXIgdmlhIGFuIFxmQnNubXBzZXRcZlIgYXNzaWdubWVudCBvZiBpbnRlZ2VyKDEpIHRvCi1cZkNVQ0QtU05NUC1NSUI6OnZlcnNpb25VcGRhdGVDb25maWcuMFxmUiAoLjEuMy42LjEuNC4xLjIwMjEuMTAwLjExLjApLAotb3IgYnkgc2VuZGluZyBhIFxmQmtpbGwgLUhVUFxmUiBzaWduYWwgdG8gdGhlIGFnZW50IHByb2Nlc3MuCitcZkNVQ0RcLVNOTVBcLU1JQjo6dmVyc2lvblVwZGF0ZUNvbmZpZy4wXGZSICguMS4zLjYuMS40LjEuMjAyMS4xMDAuMTEuMCksCitvciBieSBzZW5kaW5nIGEgXGZCa2lsbCBcLUhVUFxmUiBzaWduYWwgdG8gdGhlIGFnZW50IHByb2Nlc3MuCiAuSVAgbwogQWxsIGRpcmVjdGl2ZXMgbGlzdGVkIHdpdGggYSB2YWx1ZSBvZiAieWVzIiBhY3R1YWxseSBhY2NlcHQgYSByYW5nZQogb2YgYm9vbGVhbiB2YWx1ZXMuICBUaGVzZSB3aWxsIGFjY2VwdCBhbnkgb2YgXGZJMVxmUiwgXGZJeWVzXGZSIG9yCmRpZmYgLS1naXQgYS9tYW4vc25tcGQuZXhhbXBsZXMuNS5kZWYgYi9tYW4vc25tcGQuZXhhbXBsZXMuNS5kZWYKaW5kZXggOTdmOWQ5Yy4uMzYwMjg2OSAxMDA2NDQKLS0tIGEvbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmCisrKyBiL21hbi9zbm1wZC5leGFtcGxlcy41LmRlZgpAQCAtMTA0LDcgKzEwNCw3IEBACiBQRVJTSVNURU5UX0RJUkVDVE9SWS9zbm1wZC5jb25mIGZpbGUsIHJhdGhlciB0aGFuIHRoZSB1c3VhbCBsb2NhdGlvbi4KIC5SRQogLlwiCi0uXCIgID8/PyBJbGx1c3RyYXRlICItZSIsICItbCIgYW5kICItbSIgZm9ybXMgPz8KKy5cIiAgPz8/IElsbHVzdHJhdGUgIlwtZSIsICJcLWwiIGFuZCAiXC1tIiBmb3JtcyA/PwogLlwiCiAuU1MgVHJhZGl0aW9uYWwgQWNjZXNzIENvbnRyb2wKIFRoZSBTTk1QdjMgdXNlcnMgZGVmaW5lZCBhYm92ZSBjYW4gYmUgZ3JhbnRlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwKQEAgLTIxOSw3ICsyMTksNyBAQAogdmlldyAgIHN5czJWaWV3IGluY2x1ZGVkICAgIHN5c3RlbQogdmlldyAgIHN5czJWaWV3IGluY2x1ZGVkICAgIC4xLjMuNi4xLjIuMS4yNS4xCiAKLWF1dGhjb21tdW5pdHkgcmVhZCAgICAgICBwdWJsaWMgIGRlZmF1bHQgICAgICAtdiBzeXMyVmlldworYXV0aGNvbW11bml0eSByZWFkICAgICAgIHB1YmxpYyAgZGVmYXVsdCAgICAgIFwtdiBzeXMyVmlldwogYXV0aGNvbW11bml0eSByZWFkLHdyaXRlIHByaXZhdGUgMTAuMTAuMTAuMC84CiAuZmkKIC5SRQpAQCAtMjM4LDEyICsyMzgsMTIgQEAKIGNhbiBiZSBleHBsaWNpdGx5IGNvbmZpZ3VyZWQgdXNpbmc6CiAuUlMKIC5uZgotXGZJIyBPdmVycmlkZSAndW5hbWUgLWEnIGFuZCBoYXJkY29kZWQgc3lzdGVtIE9JRCAtIGluaGVyZW50bHkgcmVhZC1vbmx5IHZhbHVlc1xmUgorXGZJIyBPdmVycmlkZSAndW5hbWUgXC1hJyBhbmQgaGFyZGNvZGVkIHN5c3RlbSBPSUQgLSBpbmhlcmVudGx5IHJlYWQtb25seSB2YWx1ZXNcZlIKIHN5c0Rlc2NyICAgICBVbml2ZXJzYWwgVHVyaW5nIE1hY2hpbmUgbWsgSQogc3lzT2JqZWN0SUQgIC4xLjMuNi4xLjQuMS44MDcyLjMuMi4xMDY2CiAKIFxmSSMgT3ZlcnJpZGUgZGVmYXVsdCB2YWx1ZXMgZnJvbSAnY29uZmlndXJlJyAtIG1ha2VzIHRoZXNlIG9iamVjdHMgcmVhZC1vbmx5XGZSCi1zeXNDb250YWN0ICAgQWxhbi5UdXJpbmdAcHJlLWNzLm1hbi5hYy51aworc3lzQ29udGFjdCAgIEFsYW4uVHVyaW5nQHByZVwtY3MubWFuLmFjLnVrCiBzeXNOYW1lICAgICAgdG9ydG9pc2UudHVyaW5nLmNvbQogc3lzTG9jYXRpb24gIEFuIGlkZWEgaW4gdGhlIG1pbmQgb2YgQVQKIApAQCAtMjYyLDcgKzI2Miw3IEBACiAuUlMKIC5uZgogaWdub3JlZGlzayAvZGV2L3Jkc2svYzB0WyE2XWQwCi1pZ25vcmVkaXNrIC9kZXYvcmRzay9jMHRbMC01Ny05YS1mXWQwCitpZ25vcmVkaXNrIC9kZXYvcmRzay9jMHRbMFwtNTdcLTlhXC1mXWQwCiAuZmkKIC5SRQogZWl0aGVyIG9mIHdoaWNoIHByZXZlbnRzIGFsbCBkZXZpY2VzIFxmSS9kZXYvcmRzay9jMHRcZlJYXGZJZDBcZlIKQEAgLTM4OCw3ICszODgsNyBAQAogLlBQCiBBIG1vcmUgZGV0YWlsZWQgbW9uaXRvciBleGFtcGxlIGlzIGdpdmVuIGJ5OgogLlJTCi1tb25pdG9yIC11IG1lIC1vIGhyU1dSdW5OYW1lICJoaWdoIHByb2Nlc3MgbWVtb3J5IiBoclNXUnVuUGVyZk1lbSA+IDEwMDAwCittb25pdG9yIFwtdSBtZSBcLW8gaHJTV1J1bk5hbWUgImhpZ2ggcHJvY2VzcyBtZW1vcnkiIGhyU1dSdW5QZXJmTWVtID4gMTAwMDAKIC5SRQogLlBQCiBUaGlzIGRlZmluZXMgYW4gZXhwbGljaXQgYm9vbGVhbiBtb25pdG9yIGVudHJ5LCBsb29raW5nIGZvciBhbnkgcHJvY2VzcwpAQCAtNDAyLDcgKzQwMiw3IEBACiBPYmplY3RzIHRoYXQgY291bGQgcG90ZW50aWFsbHkgZmx1Y3R1YXRlIGFyb3VuZCB0aGUgc3BlY2lmaWVkIGxldmVsCiBhcmUgYmV0dGVyIG1vbml0b3JlZCB1c2luZyBhIHRocmVzaG9sZCBtb25pdG9yIGVudHJ5OiAKIC5SUwotbW9uaXRvciAtRCAtciAxMCAibmV0d29yayB0cmFmZmljIiBpZkluT2N0ZXRzIDEwMDAwMDAgNTAwMDAwMAorbW9uaXRvciBcLUQgXC1yIDEwICJuZXR3b3JrIHRyYWZmaWMiIGlmSW5PY3RldHMgMTAwMDAwMCA1MDAwMDAwCiAuUkUKIC5QUAogVGhpcyB3aWxsIHNlbmQgYSBcZkNtdGVUcmlnZ2VyUmlzaW5nXGZSIHRyYXAgd2hlbmV2ZXIgdGhlIGluY29taW5nCkBAIC00MTAsMTEgKzQxMCwxMSBAQAogYW5kIGEgY29ycmVzcG9uZGluZyBcZkNtdGVUcmlnZ2VyRmFsbGluZ1xmUiB0cmFwIHdoZW4gaXQgZmFsbHMgYmVsb3cKIDEwMCBrQi9zIGFnYWluLgogLlBQCi1Ob3RlIHRoYXQgdGhpcyBtb25pdG9ycyB0aGUgZGVsdGFzIGJldHdlZW4gc3VjY2Vzc2l2ZSBzYW1wbGVzIChcZkktRFxmUikKK05vdGUgdGhhdCB0aGlzIG1vbml0b3JzIHRoZSBkZWx0YXMgYmV0d2VlbiBzdWNjZXNzaXZlIHNhbXBsZXMgKFxmSVwtRFxmUikKIHJhdGhlciB0aGFuIHRoZSBhY3R1YWwgc2FtcGxlIHZhbHVlcyB0aGVtc2VsdmVzLiAgVGhlIHNhbWUgZWZmZWN0CiBjb3VsZCBiZSBvYnRhaW5lZCB1c2luZzoKIC5SUwotbW9uaXRvciAtciAxMCAibmV0d29yayB0cmFmZmljIiBpZkluT2N0ZXRzIC0gLSAxMDAwMDAwIDUwMDAwMDAKK21vbml0b3IgXC1yIDEwICJuZXR3b3JrIHRyYWZmaWMiIGlmSW5PY3RldHMgXC0gXC0gMTAwMDAwMCA1MDAwMDAwCiAuUkUKIC5QUAogVGhlIFxmSWxpbmtVcERvd25Ob3RpZmljYXRpb25zXGZSIGRpcmVjdGl2ZSBhYm92ZSBpcyBicm9hZGx5CkBAIC00MjQsOCArNDI0LDggQEAKIG5vdGlmaWNhdGlvbkV2ZW50ICBsaW5rVXBUcmFwICAgIGxpbmtVcCAgIGlmSW5kZXggaWZBZG1pblN0YXR1cyBpZk9wZXJTdGF0dXMKIG5vdGlmaWNhdGlvbkV2ZW50ICBsaW5rRG93blRyYXAgIGxpbmtEb3duIGlmSW5kZXggaWZBZG1pblN0YXR1cyBpZk9wZXJTdGF0dXMKIAotbW9uaXRvciAgLXIgNjAgLWUgbGlua1VwVHJhcCAgICJHZW5lcmF0ZSBsaW5rVXAiICAgaWZPcGVyU3RhdHVzICE9IDIKLW1vbml0b3IgIC1yIDYwIC1lIGxpbmtEb3duVHJhcCAiR2VuZXJhdGUgbGlua0Rvd24iIGlmT3BlclN0YXR1cyA9PSAyCittb25pdG9yICBcLXIgNjAgXC1lIGxpbmtVcFRyYXAgICAiR2VuZXJhdGUgbGlua1VwIiAgIGlmT3BlclN0YXR1cyAhPSAyCittb25pdG9yICBcLXIgNjAgXC1lIGxpbmtEb3duVHJhcCAiR2VuZXJhdGUgbGlua0Rvd24iIGlmT3BlclN0YXR1cyA9PSAyCiAuZmkKIC5SRQogLlBQCkBAIC00MzcsMTIgKzQzNywxMiBAQAogb2YgKGJvb2xlYW4pIG1vbml0b3IgZW50cmllczoKIC5SUwogLm5mCi1tb25pdG9yCS1vIHByTmFtZXMgICAgICAtbyBwckVyck1lc3NhZ2UgICJwcm9jVGFibGUiIHByRXJyb3JGbGFnICAgIT0gMAotbW9uaXRvcgktbyBtZW1FcnJvck5hbWUgLW8gbWVtU3dhcEVycm9yTXNnICJtZW1vcnkiICBtZW1Td2FwRXJyb3IgICE9IDAKLW1vbml0b3IJLW8gZXh0TmFtZXMgICAgIC1vIGV4dE91dHB1dCAgICAgImV4dFRhYmxlIiAgZXh0UmVzdWx0ICAgICAhPSAwCi1tb25pdG9yCS1vIGRza1BhdGggICAgICAtbyBkc2tFcnJvck1zZyAgICJkc2tUYWJsZSIgIGRza0Vycm9yRmxhZyAgIT0gMAotbW9uaXRvcgktbyBsYU5hbWVzICAgICAgLW8gbGFFcnJNZXNzYWdlICAibGFUYWJsZSIgICBsYUVycm9yRmxhZyAgICE9IDAKLW1vbml0b3IJLW8gZmlsZU5hbWUgICAgIC1vIGZpbGVFcnJvck1zZyAgImZpbGVUYWJsZSIgZmlsZUVycm9yRmxhZyAhPSAwCittb25pdG9yCVwtbyBwck5hbWVzICAgICAgXC1vIHByRXJyTWVzc2FnZSAgInByb2NUYWJsZSIgcHJFcnJvckZsYWcgICAhPSAwCittb25pdG9yCVwtbyBtZW1FcnJvck5hbWUgXC1vIG1lbVN3YXBFcnJvck1zZyAibWVtb3J5IiAgbWVtU3dhcEVycm9yICAhPSAwCittb25pdG9yCVwtbyBleHROYW1lcyAgICAgXC1vIGV4dE91dHB1dCAgICAgImV4dFRhYmxlIiAgZXh0UmVzdWx0ICAgICAhPSAwCittb25pdG9yCVwtbyBkc2tQYXRoICAgICAgXC1vIGRza0Vycm9yTXNnICAgImRza1RhYmxlIiAgZHNrRXJyb3JGbGFnICAhPSAwCittb25pdG9yCVwtbyBsYU5hbWVzICAgICAgXC1vIGxhRXJyTWVzc2FnZSAgImxhVGFibGUiICAgbGFFcnJvckZsYWcgICAhPSAwCittb25pdG9yCVwtbyBmaWxlTmFtZSAgICAgXC1vIGZpbGVFcnJvck1zZyAgImZpbGVUYWJsZSIgZmlsZUVycm9yRmxhZyAhPSAwCiAuZmkKIC5SRQogYW5kIHdpbGwgc2VuZCBhIHRyYXAgd2hlbmV2ZXIgYW55IG9mIHRoZXNlIGVudHJpZXMgaW5kaWNhdGUgYSBwcm9ibGVtLgpAQCAtNDUyLDcgKzQ1Miw3IEBACiAuUlMKIC5uZgogc2V0RXZlbnQgICBwckZpeEl0ICBwckVyckZpeCA9IDEKLW1vbml0b3IgLWUgcHJGaXhJdCAicHJvY1RhYmxlIiBwckVycm9yRmxhZyAgICE9IDAKK21vbml0b3IgXC1lIHByRml4SXQgInByb2NUYWJsZSIgcHJFcnJvckZsYWcgICAhPSAwCiAuZmkKIC5SRQogKGFuZCBzaW1pbGFybHkgZm9yIGFueSBvZiB0aGUgb3RoZXIgXGZJZGVmYXVsdE1vbml0b3JcZlIgZW50cmllcykuCkBAIC00OTQsMTIgKzQ5NCwxMiBAQAogLlNTICJNSUItU3BlY2lmaWMgRXh0ZW5zaW9uIENvbW1hbmRzIgogLkkgT25lLVNob3QKIC5SUwotInBhc3MgWy1wIHByaW9yaXR5XSBNSUJPSUQgUFJPRyIKKyJwYXNzIFtcLXAgcHJpb3JpdHldIE1JQk9JRCBQUk9HIgogLlJFCiAuSVAKIC5JIFBlcnNpc3RlbnQKIC5SUwotInBhc3NfcGVyc2lzdCBbLXAgcHJpb3JpdHldIE1JQk9JRCBQUk9HIgorInBhc3NfcGVyc2lzdCBbXC1wIHByaW9yaXR5XSBNSUJPSUQgUFJPRyIKIC5SRQogLlNTICJFbWJlZGRlZCBQZXJsIFN1cHBvcnQiCiBJZiBlbWJlZGRlZCBwZXJsIHN1cHBvcnQgaXMgZW5hYmxlZCBpbiB0aGUgYWdlbnQsIHRoZSBkZWZhdWx0CkBAIC01MTcsNyArNTE3LDcgQEAKIC5uZgogcGVybCB1c2UgRGF0YTo6RHVtcGVyOwogcGVybCBzdWIgbXlyb3V0aW5lICB7IHByaW50ICJnb3QgY2FsbGVkOiAiLER1bXBlcihAXyksIlxcbiI7IH0KLXBlcmwgJGFnZW50LT5yZWdpc3RlcignbXlsaW5rJywgJy4xLjMuNi4xLjg3NjUnLCBcXCZteXJvdXRpbmUpOworcGVybCAkYWdlbnRcLT5yZWdpc3RlcignbXlsaW5rJywgJy4xLjMuNi4xLjg3NjUnLCBcXCZteXJvdXRpbmUpOwogLmZpCiAuUkUKIC5QUApAQCAtNTQ4LDExICs1NDgsMTEgQEAKIFNOTVAgYWdlbnRzIChydW5uaW5nIG9uIHJlbW90ZSBzeXN0ZW1zKSBtaWdodCBiZToKIC5SUwogLm5mCi1jb20yc2VjIC1DbiByZW0xY29udGV4dCAgcmVtMXVzZXIgZGVmYXVsdCAgcmVtb3RlaG9zdDEKLWNvbTJzZWMgLUNuIHJlbTJjb250ZXh0ICByZW0ydXNlciBkZWZhdWx0ICByZW1vdGVob3N0MgorY29tMnNlYyBcLUNuIHJlbTFjb250ZXh0ICByZW0xdXNlciBkZWZhdWx0ICByZW1vdGVob3N0MQorY29tMnNlYyBcLUNuIHJlbTJjb250ZXh0ICByZW0ydXNlciBkZWZhdWx0ICByZW1vdGVob3N0MgogCi1wcm94eSAtQ24gcmVtMWNvbnRleHQgIC12IDEgLWMgcHVibGljICByZW1vdGVob3N0MSAgLjEuMwotcHJveHkgLUNuIHJlbTJjb250ZXh0ICAtdiAxIC1jIHB1YmxpYyAgcmVtb3RlaG9zdDIgIC4xLjMKK3Byb3h5IFwtQ24gcmVtMWNvbnRleHQgIFwtdiAxIC1jIHB1YmxpYyAgcmVtb3RlaG9zdDEgIC4xLjMKK3Byb3h5IFwtQ24gcmVtMmNvbnRleHQgIFwtdiAxIC1jIHB1YmxpYyAgcmVtb3RlaG9zdDIgIC4xLjMKIC5maQogLlJFCiAocGx1cyBzdWl0YWJsZSBhY2Nlc3MgY29udHJvbCBlbnRyaWVzKS4KQEAgLTU3Miw3ICs1NzIsNyBAQAogb3IgbGlzdGVuaW5nIG9uIGEgZGlmZmVyZW50IHBvcnQgb24gdGhlIHNhbWUgc3lzdGVtKSwKIHdoaWxlIGhhbmRsaW5nIHRoZSByZXN0IGludGVybmFsbHk6CiAuUlMKLXByb3h5IC12IDEgLWMgcHVibGljICBsb2NhbGhvc3Q6NjE2MSAgLjEuMy42LjEuNC4xLjk5Citwcm94eSBcLXYgMSBcLWMgcHVibGljICBsb2NhbGhvc3Q6NjE2MSAgLjEuMy42LjEuNC4xLjk5CiAuUkUKIFRoaXMgbWVjaGFuaXNtIGNhbiBiZSB1c2VkIHRvIGxpbmsgdG9nZXRoZXIgdHdvIHNlcGFyYXRlIFNOTVAgYWdlbnRzLgogLlBQCkBAIC01ODIsNyArNTgyLDcgQEAKIC5uZgogXGZJIyB1c2VzIFNOTVB2MyB0byBhY2Nlc3MgdGhlIE1JQiB0cmVlIC4xLjMuNi4xLjIuMS4xIG9uICdyZW1vdGVob3N0JwogIyBhbmQgbWFwcyB0aGlzIHRvIHRoZSBsb2NhbCB0cmVlIC4xLjMuNi4xLjMuMTBcZlIKLXByb3h5IC12IDMgLWwgbm9BdXRoTm9Qcml2IC11IHVzZXIgcmVtb3RlaG9zdCAuMS4zLjYuMS4zLjEwIC4xLjMuNi4xLjIuMS4xCitwcm94eSBcLXYgMyBcLWwgbm9BdXRoTm9Qcml2IFwtdSB1c2VyIHJlbW90ZWhvc3QgLjEuMy42LjEuMy4xMCAuMS4zLjYuMS4yLjEuMQogLmZpCiAuUkUKIC5TUyBTTVVYIFN1Yi1BZ2VudHMKZGlmZiAtLWdpdCBhL21hbi9zbm1wZGVsdGEuMS5kZWYgYi9tYW4vc25tcGRlbHRhLjEuZGVmCmluZGV4IDMzMDE1MWMuLmU5NWE2OWIgMTAwNjQ0Ci0tLSBhL21hbi9zbm1wZGVsdGEuMS5kZWYKKysrIGIvbWFuL3NubXBkZWx0YS4xLmRlZgpAQCAtMTIsNyArMTIsNyBAQAogc25tcGRlbHRhIFwtIE1vbml0b3IgZGVsdGEgZGlmZmVyZW5jZXMgaW4gU05NUCBDb3VudGVyIHZhbHVlcwogLlNIIFNZTk9QU0lTCiAuQiBzbm1wZGVsdGEKLVsgQ09NTU9OIE9QVElPTlMgXSBbLUNmXSBbIC1DdCBdIFsgLUNzIF0gWyAtQ1MgXSBbIC1DbSBdIFsgLUNGIGNvbmZpZ2ZpbGUgXSBbIC1DbCBdIFsgLUNwIHBlcmlvZCBdIFsgLUNQIFBlYWtzIF0gWyAtQ2sgXSBbIC1DVCBdIEFHRU5UIE9JRCBbIE9JRCAuLi4gXQorWyBDT01NT04gT1BUSU9OUyBdIFtcLUNmXSBbIFwtQ3QgXSBbIFwtQ3MgXSBbIFwtQ1MgXSBbIFwtQ20gXSBbIFwtQ0YgY29uZmlnZmlsZSBdIFsgXC1DbCBdIFsgXC1DcCBwZXJpb2QgXSBbIFwtQ1AgUGVha3MgXSBbIFwtQ2sgXSBbIFwtQ1QgXSBBR0VOVCBPSUQgWyBPSUQgLi4uIF0KIC5TSCAiREVTQ1JJUFRJT04iCiAuQiBzbm1wZGVsdGEKIHdpbGwgbW9uaXRvciB0aGUgc3BlY2lmaWVkIGludGVnZXIgdmFsdWVkIE9JRHMsIGFuZCByZXBvcnQgY2hhbmdlcwpAQCAtMzgsNTEgKzM4LDUxIEBACiBmb3IgYSBsaXN0IG9mIHBvc3NpYmxlIHZhbHVlcyBmb3IgQ09NTU9OIE9QVElPTlMKIGFzIHdlbGwgYXMgdGhlaXIgZGVzY3JpcHRpb25zLgogLlRQCi0uQiAtQ2YKKy5CIFwtQ2YKIERvbid0IGZpeCBlcnJvcnMgYW5kIHJldHJ5IHRoZSByZXF1ZXN0LgogV2l0aG91dCB0aGlzIG9wdGlvbiwgaWYgbXVsdGlwbGUgb2lkcyBoYXZlIGJlZW4gc3BlY2lmaWVkIGZvcgogYSBzaW5nbGUgcmVxdWVzdCBhbmQgaWYgdGhlIHJlcXVlc3QgZm9yIG9uZSBvciBtb3JlIG9mIHRoZQogb2lkcyBmYWlscywgc25tcGRlbHRhIHdpbGwgcmV0cnkgdGhlIHJlcXVlc3Qgc28gdGhhdCBkYXRhIGZvcgogb2lkcyBhcGFydCBmcm9tIHRoZSBvbmVzIHRoYXQgZmFpbGVkIHdpbGwgc3RpbGwgYmUgcmV0dXJuZWQuIAotU3BlY2lmeWluZyAtQ2YgdGVsbHMKK1NwZWNpZnlpbmcgXC1DZiB0ZWxscwogLkkgIHNubXBkZWx0YQogbm90IHRvIHJldHJ5IGEgcmVxdWVzdCwgZXZlbgogaWYgdGhlcmUgYXJlIG11bHRpcGxlIG9pZHMgc3BlY2lmaWVkLgogLlRQCi0uQiAtQ3QKKy5CIFwtQ3QKIEZsYWcgd2lsbCBkZXRlcm1pbmUgdGltZSBpbnRlcnZhbCBmcm9tIHRoZSBtb25pdG9yZWQgZW50aXR5LgogLlRQCi0uQiAtQ3MKKy5CIFwtQ3MKIEZsYWcgd2lsbCBkaXNwbGF5IGEgdGltZXN0YW1wLgogLlRQCi0uQiAtQ1MKKy5CIFwtQ1MKIEdlbmVyYXRlcyBhICJzdW0gY291bnQiIGluIGFkZGl0aW9uIHRvIHRoZSBpbmRpdmlkdWFsIGluc3RhbmNlCiBjb3VudHMuICBUaGUgInN1bSBjb3VudCIgaXMgdGhlIHRvdGFsIG9mIGFsbCB0aGUgaW5kaXZpZHVhbAogZGVsdGFzIGZvciBlYWNoIHRpbWUgcGVyaW9kLgogLlRQCi0uQiAtQ20KKy5CIFwtQ20KIFByaW50cyB0aGUgbWF4IHZhbHVlIGV2ZXIgYXR0YWluZWQuCiAuVFAKLS5CIC1DRiBjb25maWdmaWxlCisuQiBcLUNGIGNvbmZpZ2ZpbGUKIFRlbGxzCiAuQiBzbm1wZGVsdGEKIHRvIHJlYWQgaXQncyBjb25maWd1cmF0aW9uIGZyb20gdGhlIHNwZWNpZmllZCBmaWxlLgogVGhpcyBvcHRpb25zIGFsbG93cyB0aGUgaW5wdXQgdG8gYmUgc2V0IHVwIGluIGFkdmFuY2UgcmF0aGVyCiB0aGFuIGhhdmluZyB0byBiZSBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KIC5UUAotLkIgLUNsCisuQiBcLUNsCiBUZWxscwogLkIgc25tcGRlbHRhCiB0byB3cml0ZSBpdCdzIGNvbmZpZ3VyYXRpb24gdG8gZmlsZXMgd2hvc2UgbmFtZXMgY29ycmVzcG9uZCB0byB0aGUgTUlCCi1pbnN0YW5jZXMgbW9uaXRvcmVkLiAgRm9yIGV4YW1wbGUsIHNubXBkZWx0YSAtQ2wgbG9jYWxob3N0IGlmSW5PY3RldHMuMQotd2lsbCBjcmVhdGUgYSBmaWxlICJsb2NhbGhvc3QtaWZJbk9jdGV0cy4xIi4KK2luc3RhbmNlcyBtb25pdG9yZWQuICBGb3IgZXhhbXBsZSwgc25tcGRlbHRhIFwtQ2wgbG9jYWxob3N0IGlmSW5PY3RldHMuMQord2lsbCBjcmVhdGUgYSBmaWxlICJsb2NhbGhvc3RcLWlmSW5PY3RldHMuMSIuCiAuVFAKLS5CIC1DcAorLkIgXC1DcAogU3BlY2lmaWVzIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBiZXR3ZWVuIHBvbGxpbmcgcGVyaW9kcy4KIFBvbGxpbmcgY29uc3RpdHV0ZXMgc2VuZGluZyBhIHJlcXVlc3QgdG8gdGhlIGFnZW50LiBUaGUKIGRlZmF1bHQgcG9sbGluZyBwZXJpb2QgaXMgb25lIHNlY29uZC4KIC5UUAotLkIgLUNQIHBlYWtzCisuQiBcLUNQIHBlYWtzCiBTcGVjaWZpZXMgdGhlIHJlcG9ydGluZyBwZXJpb2QgaW4gbnVtYmVyIG9mIHBvbGxpbmcgcGVyaW9kcy4KIElmIHRoaXMgb3B0aW9uIGlzIHNwZWNpZmllZCwgc25tcGRlbHRhIHBvbGxzIHRoZSBhZ2VudAogLkkgcGVha3MKQEAgLTkxLDI0ICs5MSwyNCBAQAogdGhlIHJlcG9ydGluZyBwZXJpb2QuIEluIGFkZGl0aW9uLCB0aGUgaGlnaGVzdCBwb2xsZWQKIHZhbHVlIHdpdGhpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBpcyBzaG93bi4KIC5UUAotLkIgLUNrCi1XaGVuIHRoZSBwb2xsaW5nIHBlcmlvZCAoLUNwKSBpcyBhbiBpbmNyZW1lbnQgb2YgNjAgc2Vjb25kcwotYW5kIHRoZSB0aW1lc3RhbXAgaXMgZGlzcGxheWVkIGluIHRoZSBvdXRwdXQgKC1DcyksIHRoZW4KKy5CIFwtQ2sKK1doZW4gdGhlIHBvbGxpbmcgcGVyaW9kIChcLUNwKSBpcyBhbiBpbmNyZW1lbnQgb2YgNjAgc2Vjb25kcworYW5kIHRoZSB0aW1lc3RhbXAgaXMgZGlzcGxheWVkIGluIHRoZSBvdXRwdXQgKFwtQ3MpLCB0aGVuCiB0aGUgZGVmYXVsdCBkaXNwbGF5IHNob3dzIHRoZSB0aW1lc3RhbXAgaW4gdGhlIGZvcm1hdAogaGg6bW0gbW0vZGQuIFRoaXMgb3B0aW9uIGNhdXNlcyB0aGUgdGltZXN0YW1wIGZvcm1hdAogdG8gYmUgaGg6bW06c3MgbW0vZGQuCiAuVFAKLS5CIC1DVAorLkIgXC1DVAogTWFrZXMgCiAuQiBzbm1wZGVsdGEKIHByaW50IGl0cyBvdXRwdXQgaW4gdGFidWxhciBmb3JtLgogLlRQCi0uQiAtQ3YgdmFycy9wa3QKKy5CIFwtQ3YgdmFycy9wa3QKIFNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2Ygb2lkcyBhbGxvd2VkIHRvIGJlIHBhY2thZ2VkCiBpbiBhIHNpbmdsZSBQRFUuIE11bHRpcGxlIFBEVXMgY2FuIGJlIGNyZWF0ZWQgaW4gYSBzaW5nbGUKIHJlcXVlc3QuIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHZhcmlhYmxlcyBwZXIgcGFja2V0IGlzIDYwLgogVGhpcyBvcHRpb24gaXMgdXNlZnVsIGlmIGEgcmVxdWVzdCByZXNwb25zZSByZXN1bHRzIGluIGFuCi1lcnJvciBiZWNhdWVzIHRoZSBwYWNrZXQgaXMgdG9vIGJpZy4KK2Vycm9yIGJlY2F1c2UgdGhlIHBhY2tldCBpcyB0b28gYmlnLgogLlBQCiBOb3RlIHRoYXQKIC5CIHNubXBkZWx0YQpAQCAtMTE4LDcgKzExOCw3IEBACiBtYW51YWwgcGFnZS4KIC5TSCBFWEFNUExFUwogLm5mCi0kIHNubXBkZWx0YSAtYyBwdWJsaWMgLXYgMSAtQ3MgbG9jYWxob3N0IElGLU1JQjo6aWZJblVjYXN0UGt0cy4zIElGLU1JQjo6aWZPdXRVY2FzdFBrdHMuMworJCBzbm1wZGVsdGEgXC1jIHB1YmxpYyBcLXYgMSBcLUNzIGxvY2FsaG9zdCBJRlwtTUlCOjppZkluVWNhc3RQa3RzLjMgSUZcLU1JQjo6aWZPdXRVY2FzdFBrdHMuMwogWzIwOjE1OjQzIDYvMTRdIGlmSW5VY2FzdFBrdHMuMyAvMSBzZWM6IDE1OAogWzIwOjE1OjQzIDYvMTRdIGlmT3V0VWNhc3RQa3RzLjMgLzEgc2VjOiAxNTgKIFsyMDoxNTo0NCA2LzE0XSBpZkluVWNhc3RQa3RzLjMgLzEgc2VjOiAxODQKQEAgLTEzNCw3ICsxMzQsNyBAQAogWzIwOjE1OjQ5IDYvMTRdIGlmSW5VY2FzdFBrdHMuMyAvMSBzZWM6IDE1OAogWzIwOjE1OjQ5IDYvMTRdIGlmT3V0VWNhc3RQa3RzLjMgLzEgc2VjOiAxNTgKIF5DCi0kIHNubXBkZWx0YSAtYyBwdWJsaWMgLXYgMSAtQ3MgLUNUIGxvY2FsaG9zdCBJRi1NSUI6aWZJblVjYXN0UGt0cy4zIElGLU1JQjppZk91dGNhc3RQa3RzLjMKKyQgc25tcGRlbHRhIFwtYyBwdWJsaWMgXC12IDEgXC1DcyBcLUNUIGxvY2FsaG9zdCBJRlwtTUlCOmlmSW5VY2FzdFBrdHMuMyBJRlwtTUlCOmlmT3V0Y2FzdFBrdHMuMwogbG9jYWxob3N0CWlmSW5VY2FzdFBrdHMuMwlpZk91dFVjYXN0UGt0cy4zCiBbMjA6MTU6NTkgNi8xNF0JMTg0LjAwCTE4NC4wMAogWzIwOjE2OjAwIDYvMTRdCTE1OC4wMAkxNTguMDAKQEAgLTE1Myw3ICsxNTMsNyBAQAogc2NyZWVuLgogLlBQCiAubmYKLSQgc25tcGRlbHRhIC1jIHB1YmxpYyAtdiAxIC1DdCAtQ3MgLUNTIC1DbSAtQ2wgLUNwIDYwIC1DUCA2MAorJCBzbm1wZGVsdGEgXC1jIHB1YmxpYyBcLXYgMSBcLUN0IFwtQ3MgXC1DUyBcLUNtIFwtQ2wgXC1DcCA2MCBcLUNQIDYwCiAgIGludGVybGluay5zdy5uZXQuY211LmVkdSAuMS4zLjYuMS4yLjEuMi4yLjEuMTYuMyAuMS4zLjYuMS4yLjEuMi4yLjEuMTYuNAogLmZpCiAuU0ggIlNFRSBBTFNPIgpkaWZmIC0tZ2l0IGEvbWFuL3NubXBkZi4xLmRlZiBiL21hbi9zbm1wZGYuMS5kZWYKaW5kZXggNzY1MzM0Ny4uNDA2ODQ1YSAxMDA2NDQKLS0tIGEvbWFuL3NubXBkZi4xLmRlZgorKysgYi9tYW4vc25tcGRmLjEuZGVmCkBAIC03LDE5ICs3LDE5IEBACiAuXCIgVXNlIGlzIHN1YmplY3QgdG8gbGljZW5zZSB0ZXJtcyBzcGVjaWZpZWQgaW4gdGhlIENPUFlJTkcgZmlsZQogLlwiIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAuXCIgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLlRIIFNOTVBERiAxICIyNSBKdWwgMjAwMyIgVlZFUlNJT05JTkZPICJOZXQtU05NUCIKKy5USCBTTk1QREYgMSAiMjggSmFuIDIwMTMiIFZWRVJTSU9OSU5GTyAiTmV0LVNOTVAiCiAuU0ggTkFNRQogc25tcGRmIC0gZGlzcGxheSBkaXNrIHNwYWNlIHVzYWdlIG9uIGEgbmV0d29yayBlbnRpdHkgdmlhIFNOTVAKIC5TSCBTWU5PUFNJUwogLkIgc25tcGRmCi1bQ09NTU9OIE9QVElPTlNdIFstQ3VdIEFHRU5UCitbQ09NTU9OIE9QVElPTlNdIFtcLUN1XSBbXC1DaF0gQUdFTlQKIC5TSCBERVNDUklQVElPTgogLkIgc25tcGRmCi1pcyBzaW1wbHkgYSBuZXR3b3JrZWQgdmVyaXNvbiBvZiB0aGUgdHlwaWNhbCBkZiBjb21tYW5kLiAgSXQKK2lzIHNpbXBseSBhIG5ldHdvcmtlZCB2ZXJzaW9uIG9mIHRoZSB0eXBpY2FsIGRmIGNvbW1hbmQuICBJdAogY2hlY2tzIHRoZSBkaXNrIHNwYWNlIG9uIHRoZSByZW1vdGUgbWFjaGluZSBieSBleGFtaW5pbmcgdGhlCi1IT1NULVJFU09VUkNFUy1NSUIncyBoclN0b3JhZ2VUYWJsZSBvciB0aGUgVUNELVNOTVAtTUlCJ3MgZHNrVGFibGUuCitIT1NUXC1SRVNPVVJDRVNcLU1JQidzIGhyU3RvcmFnZVRhYmxlIG9yIHRoZSBVQ0RcLVNOTVBcLU1JQidzIGRza1RhYmxlLgogQnkgZGVmYXVsdCwgdGhlIGhyU3RvcmFnZVRhYmxlIGlzIHByZWZlcnJlZCBhcyBpdCB0eXBpY2FsbHkgY29udGFpbnMKLW1vcmUgaW5mb3JtYXRpb24uICBIb3dldmVyLCB0aGUgLUN1IGFyZ3VtZW50IGNhbiBiZSBwYXNzZWQgdG8gc25tcGRmCittb3JlIGluZm9ybWF0aW9uLiAgSG93ZXZlciwgdGhlIFwtQ3UgYXJndW1lbnQgY2FuIGJlIHBhc3NlZCB0byBzbm1wZGYKIHRvIGZvcmNlIHRoZSB1c2FnZSBvZiB0aGUgZHNrVGFibGUuCiAuUFAKIEFHRU5UIGlkZW50aWZpZXMgYSB0YXJnZXQgU05NUCBhZ2VudCwgd2hpY2ggaXMgaW5zdHJ1bWVudGVkCkBAIC00NCwxNiArNDQsMjIgQEAKIGZvciBhIGxpc3Qgb2YgcG9zc2libGUgdmFsdWVzIGZvciBDT01NT04gT1BUSU9OUwogYXMgd2VsbCBhcyB0aGVpciBkZXNjcmlwdGlvbnMuCiAuVFAKLS5CIC1DdQorLkIgXC1DdQogRm9yY2VzIHRoZSBjb21tYW5kIHRvIHVzZSBkc2tUYWJsZSBpbiBtaWIKLVVDRC1TTk1QLU1JQiBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IHRvIGRldGVybWluZQorVUNEXC1TTk1QXC1NSUIgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCB0byBkZXRlcm1pbmUKIHRoZSBzdG9yYWdlIGluZm9ybWF0aW9uLiBHZW5lcmFsbHksIHRoZSBkZWZhdWx0Ci11c2Ugb2YgaHJTdG9yYWdlVGFibGUgaW4gbWliIEhPU1QtUkVTT1VSQ0VTLU1JQgordXNlIG9mIGhyU3RvcmFnZVRhYmxlIGluIG1pYiBIT1NUXC1SRVNPVVJDRVNcLU1JQgogaXMgcHJlZmVycmVkIGJlY2F1c2UgaXQgdHlwaWNhbGx5IGNvbnRhaW5zCiBtb3JlIGluZm9ybWF0aW9uLgorLlRQCisuQiBcLUNoCitQcmludCBzaXplcyBpbiBodW1hbiByZWFkYWJsZSBmb3JtYXQgKGkuZS4gTWlCLCBHaUIsIFRpQikKKy5UUAorLkIgXC1DSAorUHJpbnQgc2l6ZXMgaW4gaHVtYW4gcmVhZGFibGUgU0kgZm9ybWF0IChpLmUuIE1CLCBHQiwgVEIpCiAuU0ggIkVYQU1QTEVTIgogLlBQCi0lIHNubXBkZiAtdiAyYyAtYyBwdWJsaWMgbG9jYWxob3N0CislIHNubXBkZiBcLXYgMmMgXC1jIHB1YmxpYyBsb2NhbGhvc3QKIC5QUAogLm5mCiBEZXNjcmlwdGlvbiAgICAgICBzaXplIChrQikgICAgICAgICBVc2VkICAgIEF2YWlsYWJsZSBVc2VkJQpkaWZmIC0tZ2l0IGEvbWFuL3NubXBnZXQuMS5kZWYgYi9tYW4vc25tcGdldC4xLmRlZgppbmRleCA2YmMxYjVhLi4wZWNhYzE5IDEwMDY0NAotLS0gYS9tYW4vc25tcGdldC4xLmRlZgorKysgYi9tYW4vc25tcGdldC4xLmRlZgpAQCAtMSw3ICsxLDcgQEAKIC5cIiAtKi0gbnJvZmYgLSotCi0uXCIgUG9ydGlvbnMgb2YgdGhpcyBmaWxlIGFyZSBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29weXJpZ2h0LiAKLS5cIiBTZWUgdGhlIE5ldC1TTk1QIENPUFlJTkcgZmlsZSBmb3IgbW9yZSBkZXRhaWxzIGFuZCBvdGhlcgotLlwiIGNvcHlyaWdodHMgdGhhdCBtYXkgYXBwbHk6CisuXCIgUG9ydGlvbnMgb2YgdGhpcyBmaWxlIGFyZSBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29weXJpZ2h0LiAgU2VlCisuXCIgdGhlIE5ldC1TTk1QIENPUFlJTkcgZmlsZSBmb3IgbW9yZSBkZXRhaWxzIGFuZCBvdGhlciBjb3B5cmlnaHRzCisuXCIgdGhhdCBtYXkgYXBwbHk6CiAuXCIgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAuXCIgCUNvcHlyaWdodCAxOTg4LCAxOTg5IGJ5IENhcm5lZ2llIE1lbGxvbiBVbml2ZXJzaXR5CiAuXCIgCkBAIC0yOCw3ICsyOCw3IEBACiBzbm1wZ2V0IC0gY29tbXVuaWNhdGVzIHdpdGggYSBuZXR3b3JrIGVudGl0eSB1c2luZyBTTk1QIEdFVCByZXF1ZXN0cwogLlNIIFNZTk9QU0lTCiAuQiBzbm1wZ2V0Ci1bQ09NTU9OIE9QVElPTlNdIFstQ2ZdIEFHRU5UIE9JRCBbT0lEXS4uLgorW0NPTU1PTiBPUFRJT05TXSBbXC1DZl0gQUdFTlQgT0lEIFtPSURdLi4uCiAuU0ggREVTQ1JJUFRJT04KIC5CIHNubXBnZXQKIGlzIGFuIFNOTVAgYXBwbGljYXRpb24gdGhhdCB1c2VzIHRoZSBTTk1QIEdFVCByZXF1ZXN0IHRvIHF1ZXJ5IGZvcgpAQCAtMzgsOSArMzgsOSBAQAogLklSIHZhcmlhYmxlcyg1KSAuCiAuU0ggIk9QVElPTlMiCiAuVFAgOAotLkIgLUNmCisuQiBcLUNmCiBJZgotLkIgLUNmCisuQiBcLUNmCiBpcwogLkkgbm90CiBzcGVjaWZpZWQsIHNvbWUgYXBwbGljYXRpb25zCkBAIC02Miw3ICs2Miw3IEBACiAuU0ggIkVYQU1QTEVTIgogVGhlIGNvbW1hbmQ6CiAuUFAKLSAgICBzbm1wZ2V0IC1jIHB1YmxpYyB6ZXVzIHN5c3RlbS5zeXNEZXNjci4wCisgICAgc25tcGdldCBcLWMgcHVibGljIHpldXMgc3lzdGVtLnN5c0Rlc2NyLjAKIC5QUAogd2lsbCByZXRyaWV2ZSB0aGUgdmFyaWFibGUgc3lzdGVtLnN5c0Rlc2NyLjAgZnJvbSB0aGUgaG9zdCAKIC5CIHpldXMgCkBAIC03OCwxMyArNzgsMTMgQEAKIHZhcmlhYmxlcyBpbiB0aGUgcmVxdWVzdCwgdGhlIHJlcXVlc3Qgd2lsbCBiZSByZXNlbnQgd2l0aG91dCB0aGUgYmFkCiB2YXJpYWJsZS4KIC5QUAotSGVyZSBpcyBhbm90aGVyIGV4YW1wbGUuIFRoZSAtYyBhbmQgLXYgb3B0aW9ucyBhcmUgZGVmaW5lZCBpbiB0aGUgCitIZXJlIGlzIGFub3RoZXIgZXhhbXBsZS4gVGhlIFwtYyBhbmQgXC12IG9wdGlvbnMgYXJlIGRlZmluZWQgaW4gdGhlIAogLkkgc25tcGNtZCgxKQogbWFudWFsIHBhZ2UuIChOb3RlIHRoYXQgc3lzdGVtLnN5c1VwVGltZSBpcyBhbiBpbmNvbXBsZXRlCiBPSUQsIGFzIGl0IG5lZWRzIHRoZSAuMCBpbmRleCBhcHBlbmRlZCB0byBpdCk6CiAuUFAKIC5uZgotICAgIHNubXBnZXQgLXYxIC1DZiAtYyBwdWJsaWMgbG9jYWxob3N0IHN5c3RlbS5zeXNVcFRpbWUgc3lzdGVtLnN5c0NvbnRhY3QuMAorICAgIHNubXBnZXQgXC12MSBcLUNmIFwtYyBwdWJsaWMgbG9jYWxob3N0IHN5c3RlbS5zeXNVcFRpbWUgc3lzdGVtLnN5c0NvbnRhY3QuMAogLmZpCiAuUFAKIFRoaXMgZXhhbXBsZSB3aWxsIHJldHVybiB0aGUgZm9sbG93aW5nOgpAQCAtOTcsNyArOTcsNyBAQAogLlBQCiBTaW1pbGFybHksIHRoZSBjb21tYW5kOgogLm5mCi0gICAgc25tcGdldCAtdjEgLWMgcHVibGljIGxvY2FsaG9zdCBzeXN0ZW0uc3lzVXBUaW1lIHN5c3RlbS5zeXNDb250YWN0LjAKKyAgICBzbm1wZ2V0IFwtdjEgXC1jIHB1YmxpYyBsb2NhbGhvc3Qgc3lzdGVtLnN5c1VwVGltZSBzeXN0ZW0uc3lzQ29udGFjdC4wCiAuZmkKIC5QUAogV2lsbCByZXR1cm46CkBAIC0xMTIsNyArMTEyLDcgQEAKIC5QUAogV2l0aCB0aGUKIC5CCi0tQ2YKK1wtQ2YKIGZsYWcgc3BlY2lmaWVkIHRoZSBhcHBsaWNhdGlvbiB3aWxsIG5vdCB0cnkgdG8gZml4IHRoZSBQRFUgZm9yIHlvdS4KIC5TSCAiU0VFIEFMU08iCiBzbm1wY21kKDEpLCBzbm1wd2FsaygxKSwgdmFyaWFibGVzKDUpLgpkaWZmIC0tZ2l0IGEvbWFuL3NubXBnZXRuZXh0LjEuZGVmIGIvbWFuL3NubXBnZXRuZXh0LjEuZGVmCmluZGV4IDc3Yzc4MzUuLmU2YzZlNjAgMTAwNjQ0Ci0tLSBhL21hbi9zbm1wZ2V0bmV4dC4xLmRlZgorKysgYi9tYW4vc25tcGdldG5leHQuMS5kZWYKQEAgLTEsNyArMSw3IEBACiAuXCIgLSotIG5yb2ZmIC0qLQotLlwiIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvcHlyaWdodC4gCi0uXCIgU2VlIHRoZSBOZXQtU05NUCBDT1BZSU5HIGZpbGUgZm9yIG1vcmUgZGV0YWlscyBhbmQgb3RoZXIKLS5cIiBjb3B5cmlnaHRzIHRoYXQgbWF5IGFwcGx5OgorLlwiIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvcHlyaWdodC4gIFNlZQorLlwiIHRoZSBOZXQtU05NUCBDT1BZSU5HIGZpbGUgZm9yIG1vcmUgZGV0YWlscyBhbmQgb3RoZXIgY29weXJpZ2h0cworLlwiIHRoYXQgbWF5IGFwcGx5OgogLlwiIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogLlwiIAlDb3B5cmlnaHQgMTk4OCwgMTk4OSBieSBDYXJuZWdpZSBNZWxsb24gVW5pdmVyc2l0eQogLlwiIApAQCAtMjgsOSArMjgsOSBAQAogc25tcGdldG5leHQgLSBjb21tdW5pY2F0ZXMgd2l0aCBhIG5ldHdvcmsgZW50aXR5IHVzaW5nIFNOTVAgR0VUTkVYVCByZXF1ZXN0cwogLlNIIFNZTk9QU0lTCiAuQiBzbm1wZ2V0bmV4dAotW0NPTU1PTiBPUFRJT05TXSBbLUNmXSBBR0VOVCBPSUQgW09JRF0uLi4KK1tDT01NT04gT1BUSU9OU10gW1wtQ2ZdIEFHRU5UIE9JRCBbT0lEXS4uLgogLlNIIERFU0NSSVBUSU9OCi0uQiBzbm1wZ2V0CisuQiBzbm1wZ2V0bmV4dAogaXMgYW4gU05NUCBhcHBsaWNhdGlvbiB0aGF0IHVzZXMgdGhlIFNOTVAgR0VUTkVYVCByZXF1ZXN0IHRvIHF1ZXJ5IGZvcgogaW5mb3JtYXRpb24gb24gYSBuZXR3b3JrIGVudGl0eS4gIE9uZSBvciBtb3JlIG9iamVjdCBpZGVudGlmaWVycwogKE9JRHMpIG1heSBiZSBnaXZlbiBhcyBhcmd1bWVudHMgb24gdGhlIGNvbW1hbmQgbGluZS4gIEVhY2ggdmFyaWFibGUKQEAgLTQxLDcgKzQxLDcgQEAKIC5QUAogRm9yIGV4YW1wbGU6CiAuUFAKLXNubXBnZXRuZXh0IC1jIHB1YmxpYyB6ZXVzIGludGVyZmFjZXMuaWZUYWJsZS5pZkVudHJ5LmlmVHlwZS4xCitzbm1wZ2V0bmV4dCBcLWMgcHVibGljIHpldXMgaW50ZXJmYWNlcy5pZlRhYmxlLmlmRW50cnkuaWZUeXBlLjEKIC5QUAogd2lsbCByZXRyaWV2ZSB0aGUgdmFyaWFibGUgaW50ZXJmYWNlcy5pZlRhYmxlLmlmRW50cnkuaWZUeXBlLjI6CiAuUFAKQEAgLTUyLDkgKzUyLDkgQEAKIHJlcXVlc3Qgd2FzIG1hbGZvcm1lZC4KIC5TSCAiT1BUSU9OUyIKIC5UUCA4Ci0uQiAtQ2YKKy5CIFwtQ2YKIElmCi0uQiAtQ2YKKy5CIFwtQ2YKIGlzCiAuSSBub3QKIHNwZWNpZmllZCwgc29tZSBhcHBsaWNhdGlvbnMKZGlmZiAtLWdpdCBhL21hbi9zbm1wbmV0c3RhdC4xLmRlZiBiL21hbi9zbm1wbmV0c3RhdC4xLmRlZgppbmRleCA5MmNmZWU0Li40NTBhYjdmIDEwMDY0NAotLS0gYS9tYW4vc25tcG5ldHN0YXQuMS5kZWYKKysrIGIvbWFuL3NubXBuZXRzdGF0LjEuZGVmCkBAIC0xMiw3ICsxMiw3IEBACiAuXCIgYm90aCB0aGF0IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIAogLlwiIHN1cHBvcnRpbmcgZG9jdW1lbnRhdGlvbiwgYW5kIHRoYXQgdGhlIG5hbWUgb2YgQ01VIG5vdCBiZQogLlwiIHVzZWQgaW4gYWR2ZXJ0aXNpbmcgb3IgcHVibGljaXR5IHBlcnRhaW5pbmcgdG8gZGlzdHJpYnV0aW9uIG9mIHRoZQotLlwiIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMsIHdyaXR0ZW4gcHJpb3IgcGVybWlzc2lvbi4gIAorLlwiIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMsIHdyaXR0ZW4gcHJpb3IgcGVybWlzc2lvbi4KIC5cIiAKIC5cIiBDTVUgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUsIElOQ0xVRElORwogLlwiIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLCBJTiBOTyBFVkVOVCBTSEFMTApAQCAtNTgsMjEgKzU4LDIxIEBACiAuXCIgVXNlIGlzIHN1YmplY3QgdG8gbGljZW5zZSB0ZXJtcyBzcGVjaWZpZWQgaW4gdGhlIENPUFlJTkcgZmlsZQogLlwiIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAuXCIgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLlRIIFNOTVBORVRTVEFUIDEgIjIwIEphbiAyMDEwIiBWVkVSU0lPTklORk8gIk5ldC1TTk1QIgorLlRIIFNOTVBORVRTVEFUIDEgIjA0IE5vdiAyMDEzIiBWVkVSU0lPTklORk8gIk5ldC1TTk1QIgogLlNIIE5BTUUKIHNubXBuZXRzdGF0IFwtIGRpc3BsYXkgbmV0d29ya2luZyBzdGF0dXMgYW5kIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gZnJvbSBhIG5ldHdvcmsgZW50aXR5IHZpYSBTTk1QCiAuU0ggU1lOT1BTSVMKIC5CIHNubXBuZXRzdGF0Ci1bQ09NTU9OIE9QVElPTlNdIFstQ2FdIFstQ25dIEFHRU5UCitbQ09NTU9OIE9QVElPTlNdIFtcLUNhXSBbXC1Dbl0gW1wtQ3ZdIFtcLUNmIGFkZHJlc3NfZmFtaWx5XSBBR0VOVAogLmJyCiAuQiBzbm1wbmV0c3RhdAotW0NPTU1PTiBPUFRJT05TXSBbLUNpXSBbLUNvXSBbLUNyXSBbLUNuXSBbLUNzXSBBR0VOVAorW0NPTU1PTiBPUFRJT05TXSBbXC1Dcl0gW1wtQ25dIFtcLUN2XSBbXC1DZiBhZGRyZXNzX2ZhbWlseV0gQUdFTlQKIC5icgogLkIgc25tcG5ldHN0YXQKLVtDT01NT04gT1BUSU9OU10gWy1DaV0gWy1Dbl0gWy1DSSBpbnRlcmZhY2VdIEFHRU5UIFtpbnRlcnZhbF0KK1tDT01NT04gT1BUSU9OU10gW1wtQ2ldIFtcLUMgbyB8IGIgfCBkXSBbXC1Dbl0gW1wtQ3ZdIFtcLUNJIGludGVyZmFjZV0gW1wtQ3cgaW50ZXJ2YWxdIEFHRU5UCiAuYnIKIC5CIHNubXBuZXRzdGF0Ci1bQ09NTU9OIE9QVElPTlNdIFstQ2FdIFstQ25dIFstQ3NdIFstQ3AgcHJvdG9jb2xdIEFHRU5UCitbQ09NTU9OIE9QVElPTlNdIFtcLUNzW3NdXSBbXC1DcCBwcm90b2NvbF0gQUdFTlQKIC5TSCBERVNDUklQVElPTgogVGhlCiAuQiBzbm1wbmV0c3RhdCAKQEAgLTExNSwxOCArMTE1LDMyIEBACiBmb3IgYSBsaXN0IG9mIHBvc3NpYmxlIHZhbHVlcyBmb3IgY29tbW9uIG9wdGlvbnMKIGFzIHdlbGwgYXMgdGhlaXIgZGVzY3JpcHRpb25zLgogLlBQCisuQiBcLUNMCit1c2UgdGhlIGxlZ2FjeSBTTk1QIE1JQiBlbGVtZW50cywgbm90IHRoZSBtb2Rlcm4gSVAgdmVyc2lvbiBhZ25vc3RpYwordGFibGVzLiBcZklzbm1wbmV0c3RhdFxmUiAgd2lsbCBhdXRvbWF0aWNhbGx5IGZhbGwgYmFjayB0byB0aGUgbGVnYWN5Cit0YWJsZXMgaWYgdGhlIG1vZGVybiBvbmVzIGFyZSBub3QgYXZhaWxhYmxlLgorLlBQCiAuQiBcLUNhCiBXaXRoIHRoZSBkZWZhdWx0IGRpc3BsYXksCiBzaG93IHRoZSBzdGF0ZSBvZiBhbGwgc29ja2V0czsgbm9ybWFsbHkgc29ja2V0cyB1c2VkIGJ5CiBzZXJ2ZXIgcHJvY2Vzc2VzIGFyZSBub3Qgc2hvd24uCiAuUFAKKy5CSSBcLUNmICIgYWRkcmVzc19mYW1pbHkiCitPbmx5IHNob3cgZW50cmllcyBmb3IgdGhlIHNlbGVjdGVkIGFkZHJlc3MgZmFtaWx5IChpbmV0LCBpbmV0NikKKy5QUAogLkIgXC1DaQogU2hvdyB0aGUgc3RhdGUgb2YgYWxsIG9mIHRoZSBuZXR3b3JrIGludGVyZmFjZXMuCi1UaGUgIGludGVyZmFjZSAgZGlzcGxheSAgcHJvdmlkZXMgIGEgIHRhYmxlICBvZiBjdW11bGF0aXZlCitUaGUgaW50ZXJmYWNlIGRpc3BsYXkgcHJvdmlkZXMgYSB0YWJsZSBvZiBjdW11bGF0aXZlCiBzdGF0aXN0aWNzIHJlZ2FyZGluZyBwYWNrZXRzIHRyYW5zZmVycmVkLCBlcnJvcnMsIGFuZCBjb2xsaXNpb25zLgotVGhlICBuZXR3b3JrIGFkZHJlc3NlcyBvZiB0aGUgaW50ZXJmYWNlIGFuZCB0aGUgbWF4aW11bSB0cmFuc21pc3Npb24gCitUaGUgbmV0d29yayBhZGRyZXNzZXMgb2YgdGhlIGludGVyZmFjZSBhbmQgdGhlIG1heGltdW0gdHJhbnNtaXNzaW9uIAogdW5pdCAoYGBtdHUnJykgYXJlIGFsc28gZGlzcGxheWVkLgogLlBQCisuQiBcLUNkCitBZGQgZHJvcHBlZCBwYWNrZXRzIHRvIHRoZSBpbnRlcmZhY2UgZGlzcGxheS4KKy5QUAorLkIgXC1DYgorU2hvdyBhbiBleHRlbmRlZCBpbnRlcmZhY2Ugc3RhdHVzLCBnaXZpbmcgb2N0ZXRzIGluIGFkZGl0aW9uIHRvIHBhY2tldHMuCisuUFAKIC5CIFwtQ28KIFNob3cgYW4gYWJicmV2aWF0ZWQgaW50ZXJmYWNlIHN0YXR1cywgZ2l2aW5nIG9jdGV0cyBpbiBwbGFjZSBvZiBwYWNrZXRzLgogVGhpcyBpcyB1c2VmdWwgd2hlbiBlbnF1aXJpbmcgdmlydHVhbCBpbnRlcmZhY2VzIChzdWNoIGFzIEZyYW1lLVJlbGF5IGNpcmN1aXRzKQpAQCAtMTQ1LDYgKzE1OSwxMCBAQAogc3ltYm9saWNhbGx5KS4KIFRoaXMgb3B0aW9uIG1heSBiZSB1c2VkIHdpdGggYW55IG9mIHRoZSBkaXNwbGF5IGZvcm1hdHMuCiAuUFAKKy5CIFwtQ3YKK0FsbG93IGxvbmcgaG9zdCBvciBzZXJ2aWNlIG5hbWVzIHRvIGJyZWFrIHRoZSBjb2x1bW5hciBvdXRwdXQuCitUaGlzIG9wdGlvbiBtYXkgYmUgdXNlZCB3aXRoIGFueSBvZiB0aGUgZGlzcGxheSBmb3JtYXRzLgorLlBQCiAuQkkgXC1DcCAiIHByb3RvY29sIgogU2hvdyBzdGF0aXN0aWNzIGFib3V0IAogLklSIHByb3RvY29sLApAQCAtMTU4LDI0ICsxNzYsMjAgQEAKIGlzIHVua25vd24gb3IgaWYgdGhlcmUgaXMgbm8gc3RhdGlzdGljcyByb3V0aW5lIGZvciBpdC4KIC5QUAogLkIgXC1DcwotU2hvdyBwZXItcHJvdG9jb2wgc3RhdGlzdGljcy4gIFdoZW4gdXNlZCB3aXRoIHRoZQotLkIgXC1Dcgotb3B0aW9uLCBzaG93IHJvdXRpbmcgc3RhdGlzdGljcyBpbnN0ZWFkLgorU2hvdyBwZXItcHJvdG9jb2wgc3RhdGlzdGljcy4KK0lmIHRoaXMgaXMgZHVwbGljYXRlZCAoLUNzcykgc3RhdGlzdGljcyBlbnRyaWVzIHdoaWNoIGFyZSB6ZXJvIHdpbGwKK2JlIHN1cHByZXNzZWQuCiAuUFAKIC5CIFwtQ3IKIFNob3cgdGhlIHJvdXRpbmcgdGFibGVzLgotV2hlbgotLkIgXC1DcwotaXMgYWxzbyBwcmVzZW50LCBzaG93IHBlci1wcm90b2NvbCByb3V0aW5nIHN0YXRpc3RpY3MgaW5zdGVhZCBvZiAKLXRoZSByb3V0aW5nIHRhYmxlcy4KIC5QUAogLkJJIFwtQ1IgIiByZXBlYXRlcnMiCiBGb3IgR0VUQlVMSyByZXF1ZXN0cywKIC5JIHJlcGVhdGVycwogc3BlY2lmaWVzIHRoZSBtYXgtcmVwZWF0ZXJzIHZhbHVlIHRvIHVzZS4KIC5QUAotV2hlbiAgc25tcG5ldHN0YXQgaXMgaW52b2tlZCB3aXRoIGFuIGludGVydmFsIGFyZ3VtZW50LCBpdAotZGlzcGxheXMgYSBydW5uaW5nIGNvdW50IG9mIHN0YXRpc3RpY3MgcmVsYXRlZCB0byAgbmV0d29yaworV2hlbiBzbm1wbmV0c3RhdCBpcyBpbnZva2VkIHdpdGggYW4gaW50ZXJ2YWwgYXJndW1lbnQsIGl0CitkaXNwbGF5cyBhIHJ1bm5pbmcgY291bnQgb2Ygc3RhdGlzdGljcyByZWxhdGVkIHRvIG5ldHdvcmsKIGludGVyZmFjZXMuCiAuSSBpbnRlcnZhbAogaXMgdGhlIG51bWJlciBvZiBzZWNvbmRzIGJldHdlZW4KQEAgLTE4NCw0MyArMTk4LDQzIEBACiAuSSBUaGUgQWN0aXZlIFNvY2tldHMgRGlzcGxheSAoZGVmYXVsdCkKIC5QUAogVGhlIGRlZmF1bHQgZGlzcGxheSwgZm9yIGFjdGl2ZSBzb2NrZXRzLCBzaG93cyB0aGUgbG9jYWwKLWFuZCByZW1vdGUgYWRkcmVzc2VzLCBwcm90b2NvbCwgYW5kIHRoZSBpbnRlcm5hbCBzdGF0ZSAgb2YKLXRoZSAgIHByb3RvY29sLiAgICBBZGRyZXNzICAgZm9ybWF0cyAgIGFyZSAgIG9mICB0aGUgIGZvcm0KLWBgaG9zdC5wb3J0Jycgb3IgYGBuZXR3b3JrLnBvcnQnJyBpZiAgYSAgc29ja2V0J3MgIGFkZHJlc3MKLXNwZWNpZmllcyAgYSAgbmV0d29yayAgYnV0IG5vIHNwZWNpZmljIGhvc3QgYWRkcmVzcy4gIFdoZW4KK2FuZCByZW1vdGUgYWRkcmVzc2VzLCBwcm90b2NvbCwgYW5kIHRoZSBpbnRlcm5hbCBzdGF0ZSBvZgordGhlIHByb3RvY29sLiAgQWRkcmVzcyBmb3JtYXRzIGFyZSBvZiB0aGUgZm9ybQorYGBob3N0LnBvcnQnJyBvciBgYG5ldHdvcmsucG9ydCcnIGlmIGEgc29ja2V0J3MgYWRkcmVzcworc3BlY2lmaWVzIGEgbmV0d29yayBidXQgbm8gc3BlY2lmaWMgaG9zdCBhZGRyZXNzLiAgV2hlbgoga25vd24sIHRoZSBob3N0IGFuZCBuZXR3b3JrIGFkZHJlc3NlcyBhcmUgZGlzcGxheWVkIHN5bWJvbGljYWxseQotYWNjb3JkaW5nICAgdG8gIHRoZSAgZGF0YSAgYmFzZXMgCi0uSSAvZXRjL2hvc3RzICBhbmQKK2FjY29yZGluZyB0byB0aGUgZGF0YWJhc2VzIAorLkkgL2V0Yy9ob3N0cyBhbmQKIC5JUiAvZXRjL25ldHdvcmtzLAotcmVzcGVjdGl2ZWx5LiAgSWYgYSBzeW1ib2xpYyAgbmFtZSAgZm9yICBhbgotYWRkcmVzcyAgaXMgdW5rbm93biwgb3IgaWYgdGhlCityZXNwZWN0aXZlbHkuICBJZiBhIHN5bWJvbGljIG5hbWUgZm9yIGFuCithZGRyZXNzIGlzIHVua25vd24sIG9yIGlmIHRoZQogLkIgXC1Dbgogb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhlCi1hZGRyZXNzIGlzIHByaW50ZWQgbnVtZXJpY2FsbHksIGFjY29yZGluZyB0byAgdGhlICBhZGRyZXNzCithZGRyZXNzIGlzIHByaW50ZWQgbnVtZXJpY2FsbHksIGFjY29yZGluZyB0byB0aGUgYWRkcmVzcwogZmFtaWx5LiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gcmVnYXJkaW5nIHRoZSBJbnRlcm5ldCBgYGRvdAotZm9ybWF0LCcnIHJlZmVyICB0bworZm9ybWF0LCcnIHJlZmVyIHRvCiAuSVIgaW5ldCgzTikuCi1VbnNwZWNpZmllZCwgIG9yICBgYHdpbGRjYXJkJycsIGFkZHJlc3NlcyBhbmQgcG9ydHMgYXBwZWFyIGFzIGBgKicnLgorVW5zcGVjaWZpZWQsIG9yIGBgd2lsZGNhcmQnJywgYWRkcmVzc2VzIGFuZCBwb3J0cyBhcHBlYXIgYXMgYGAqJycuCiAuUFAKIC5JIFRoZSBJbnRlcmZhY2UgRGlzcGxheQogLlBQCi1UaGUgIGludGVyZmFjZSAgZGlzcGxheSAgcHJvdmlkZXMgIGEgIHRhYmxlICBvZiBjdW11bGF0aXZlCitUaGUgaW50ZXJmYWNlIGRpc3BsYXkgcHJvdmlkZXMgYSB0YWJsZSBvZiBjdW11bGF0aXZlCiBzdGF0aXN0aWNzIHJlZ2FyZGluZyBwYWNrZXRzIHRyYW5zZmVycmVkLCBlcnJvcnMsIGFuZCBjb2wtCi1saXNpb25zLiAgIFRoZSAgbmV0d29yayBhZGRyZXNzZXMgb2YgdGhlIGludGVyZmFjZSBhbmQgdGhlCitsaXNpb25zLiAgVGhlIG5ldHdvcmsgYWRkcmVzc2VzIG9mIHRoZSBpbnRlcmZhY2UgYW5kIHRoZQogbWF4aW11bSB0cmFuc21pc3Npb24gdW5pdCAoYGBtdHUnJykgYXJlIGFsc28gZGlzcGxheWVkLgogLlBQCiAuSSBUaGUgUm91dGluZyBUYWJsZSBEaXNwbGF5CiAuUFAKLVRoZSByb3V0aW5nIHRhYmxlIGRpc3BsYXkgaW5kaWNhdGVzIHRoZSAgYXZhaWxhYmxlICByb3V0ZXMKLWFuZCAgdGhlaXIgIHN0YXR1cy4gICBFYWNoIHJvdXRlIGNvbnNpc3RzIG9mIGEgZGVzdGluYXRpb24KLWhvc3Qgb3IgbmV0d29yayBhbmQgYSBnYXRld2F5IHRvIHVzZSBpbiAgZm9yd2FyZGluZyAgcGFjay0KLWV0cy4gICBUaGUgZmxhZ3MgZmllbGQgc2hvd3MgdGhlIHN0YXRlIG9mIHRoZSByb3V0ZSAoYGBVJycKLWlmIGBgdXAnJyksIHdoZXRoZXIgdGhlIHJvdXRlIGlzICB0byAgYSAgZ2F0ZXdheSAgKGBgRycnKSwKLXdoZXRoZXIgIHRoZSAgcm91dGUgIHdhcyBjcmVhdGVkIGR5bmFtaWNhbGx5IGJ5IGEgcmVkaXJlY3QKLShgYEQnJyksIGFuZCB3aGV0aGVyIHRoZSByb3V0ZSAgaGFzICBiZWVuICBtb2RpZmllZCAgYnkgIGEKLXJlZGlyZWN0ICAoYGBNJycpLiAgIERpcmVjdCAgcm91dGVzICBhcmUgIGNyZWF0ZWQgZm9yIGVhY2gKLWludGVyZmFjZSBhdHRhY2hlZCB0byB0aGUgbG9jYWwgaG9zdDsgIHRoZSAgZ2F0ZXdheSAgZmllbGQKLWZvciAgc3VjaCBlbnRyaWVzIHNob3dzIHRoZSBhZGRyZXNzIG9mIHRoZSBvdXRnb2luZyBpbnRlci0KK1RoZSByb3V0aW5nIHRhYmxlIGRpc3BsYXkgaW5kaWNhdGVzIHRoZSBhdmFpbGFibGUgcm91dGVzCithbmQgdGhlaXIgc3RhdHVzLiAgRWFjaCByb3V0ZSBjb25zaXN0cyBvZiBhIGRlc3RpbmF0aW9uCitob3N0IG9yIG5ldHdvcmsgYW5kIGEgZ2F0ZXdheSB0byB1c2UgaW4gZm9yd2FyZGluZyBwYWNrLQorZXRzLiAgVGhlIGZsYWdzIGZpZWxkIHNob3dzIHRoZSBzdGF0ZSBvZiB0aGUgcm91dGUgKGBgVScnCitpZiBgYHVwJycpLCB3aGV0aGVyIHRoZSByb3V0ZSBpcyB0byBhIGdhdGV3YXkgKGBgRycnKSwKK3doZXRoZXIgdGhlIHJvdXRlIHdhcyBjcmVhdGVkIGR5bmFtaWNhbGx5IGJ5IGEgcmVkaXJlY3QKKyhgYEQnJyksIGFuZCB3aGV0aGVyIHRoZSByb3V0ZSBoYXMgYmVlbiBtb2RpZmllZCBieSBhCityZWRpcmVjdCAoYGBNJycpLiAgRGlyZWN0IHJvdXRlcyBhcmUgY3JlYXRlZCBmb3IgZWFjaAoraW50ZXJmYWNlIGF0dGFjaGVkIHRvIHRoZSBsb2NhbCBob3N0OyB0aGUgZ2F0ZXdheSBmaWVsZAorZm9yIHN1Y2ggZW50cmllcyBzaG93cyB0aGUgYWRkcmVzcyBvZiB0aGUgb3V0Z29pbmcgaW50ZXItCiBmYWNlLiAgVGhlIGludGVyZmFjZSBlbnRyeSBpbmRpY2F0ZXMgdGhlIG5ldHdvcmsgaW50ZXJmYWNlCiB1dGlsaXplZCBmb3IgdGhlIHJvdXRlLgogLlBQCkBAIC0yMzEsMTAgKzI0NSwxMCBAQAogaXMgaW52b2tlZCB3aXRoIGFuCiAuSSBpbnRlcnZhbAogYXJndW1lbnQsIGl0Ci1kaXNwbGF5cyBhIHJ1bm5pbmcgY291bnQgb2Ygc3RhdGlzdGljcyByZWxhdGVkIHRvICBuZXR3b3JrCi1pbnRlcmZhY2VzLiAgIFRoaXMgIGRpc3BsYXkgIGNvbnNpc3RzICBvZiBhIGNvbHVtbiBmb3IgdGhlCitkaXNwbGF5cyBhIHJ1bm5pbmcgY291bnQgb2Ygc3RhdGlzdGljcyByZWxhdGVkIHRvIG5ldHdvcmsKK2ludGVyZmFjZXMuICBUaGlzIGRpc3BsYXkgY29uc2lzdHMgb2YgYSBjb2x1bW4gZm9yIHRoZQogcHJpbWFyeSBpbnRlcmZhY2UgYW5kIGEgY29sdW1uIHN1bW1hcml6aW5nIGluZm9ybWF0aW9uIGZvcgotYWxsICBpbnRlcmZhY2VzLiAgIFRoZSAgcHJpbWFyeSAgaW50ZXJmYWNlIG1heSBiZSByZXBsYWNlZAorYWxsIGludGVyZmFjZXMuICBUaGUgcHJpbWFyeSBpbnRlcmZhY2UgbWF5IGJlIHJlcGxhY2VkCiB3aXRoIGFub3RoZXIgaW50ZXJmYWNlIHdpdGggdGhlCiAuQiBcLUNJCiBvcHRpb24uICBUaGUgZmlyc3QgbGluZQpAQCAtMjU0LDcgKzI2OCw3IEBACiAuU0ggRVhBTVBMRVMKIEV4YW1wbGUgb2YgdXNpbmcgc25tcG5ldHN0YXQgdG8gZGlzcGxheSBhY3RpdmUgc29ja2V0cyAoZGVmYXVsdCk6CiAuUFAKLSUgc25tcG5ldHN0YXQgLXYgMmMgLWMgcHVibGljIC1DYSB0ZXN0aG9zdAorJSBzbm1wbmV0c3RhdCBcLXYgMmMgXC1jIHB1YmxpYyBcLUNhIHRlc3Rob3N0CiAuUFAKIC5uZgogQWN0aXZlIEludGVybmV0ICh0Y3ApIENvbm5lY3Rpb25zIChpbmNsdWRpbmcgc2VydmVycykKQEAgLTI3OCw3ICsyOTIsNyBAQAogXCYuLi4KIC5maQogLlBQCi0lIHNubXBuZXRzdGF0IC12IDJjIC1jIHB1YmxpYyAtQ2kgdGVzdGhvc3QKKyUgc25tcG5ldHN0YXQgXC12IDJjIFwtYyBwdWJsaWMgXC1DaSB0ZXN0aG9zdAogLlBQCiAubmYKIE5hbWUgICAgIE10dSBOZXR3b3JrICAgIEFkZHJlc3MgICAgICAgICAgSXBrdHMgICBJZXJycyAgICBPcGt0cyBPZXJycyBRdWV1ZQpAQCAtMjg5LDcgKzMwMyw3IEBACiBFeGFtcGxlIG9mIHVzaW5nIHNubXBuZXRzdGF0IHRvIHNob3cgc3RhdGlzdGljcyBhYm91dCBhIHNwZWNpZmljIHByb3RvY29sOgogLlBQCiAubmYKLSUgc25tcG5ldHN0YXQgLXYgMmMgLWMgcHVibGljIC1DcCB0Y3AgdGVzdGhvc3QKKyUgc25tcG5ldHN0YXQgXC12IDJjIFwtYyBwdWJsaWMgXC1DcCB0Y3AgdGVzdGhvc3QKIAogQWN0aXZlIEludGVybmV0ICh0Y3ApIENvbm5lY3Rpb25zCiBQcm90byBMb2NhbCBBZGRyZXNzICAgICAgICAgICAgICAgIEZvcmVpZ24gQWRkcmVzcyAgICAgICAgICAgICAgICAgKHN0YXRlKQpkaWZmIC0tZ2l0IGEvbWFuL3NubXBzZXQuMS5kZWYgYi9tYW4vc25tcHNldC4xLmRlZgppbmRleCA1YzdkZjQ2Li5iMGM0ZTA3IDEwMDY0NAotLS0gYS9tYW4vc25tcHNldC4xLmRlZgorKysgYi9tYW4vc25tcHNldC4xLmRlZgpAQCAtMSw3ICsxLDcgQEAKIC5cIiAtKi0gbnJvZmYgLSotCi0uXCIgUG9ydGlvbnMgb2YgdGhpcyBmaWxlIGFyZSBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29weXJpZ2h0LgotLlwiIFNlZSB0aGUgTmV0LVNOTVAgQ09QWUlORyBmaWxlIGZvciBtb3JlIGRldGFpbHMgYW5kIG90aGVyCi0uXCIgY29weXJpZ2h0cyB0aGF0IG1heSBhcHBseToKKy5cIiBQb3J0aW9ucyBvZiB0aGlzIGZpbGUgYXJlIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb3B5cmlnaHQuICBTZWUKKy5cIiB0aGUgTmV0LVNOTVAgQ09QWUlORyBmaWxlIGZvciBtb3JlIGRldGFpbHMgYW5kIG90aGVyIGNvcHlyaWdodHMKKy5cIiB0aGF0IG1heSBhcHBseToKIC5cIiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIC5cIiAJQ29weXJpZ2h0IDE5ODgsIDE5ODkgYnkgQ2FybmVnaWUgTWVsbG9uIFVuaXZlcnNpdHkKIC5cIiAKQEAgLTg2LDEzICs4NiwxMyBAQAogLlBQCiBGb3IgZXhhbXBsZToKIC5QUAotc25tcHNldCAtYyBwcml2YXRlIC12IDEgdGVzdC1odWIgc3lzdGVtLnN5c0NvbnRhY3QuMCBzIGRwekBub2MucnV0Z2Vycy5lZHUgaXAuaXBmb3J3YXJkaW5nLjAgPSAyCitzbm1wc2V0IFwtYyBwcml2YXRlIFwtdiAxIHRlc3RcLWh1YiBzeXN0ZW0uc3lzQ29udGFjdC4wIHMgZHB6QG5vYy5ydXRnZXJzLmVkdSBpcC5pcGZvcndhcmRpbmcuMCA9IDIKIC5QUAogd2lsbCBzZXQgdGhlIHZhcmlhYmxlcyBzeXNDb250YWN0LjAgYW5kIGlwRm9yd2FyZGluZy4wOgogLlBQCiBzeXN0ZW0uc3lzQ29udGFjdC4wID0gU1RSSU5HOiAiZHB6QG5vYy5ydXRnZXJzLmVkdSIKIC5icgotaXAuaXBGb3J3YXJkaW5nLjAgPSBJTlRFR0VSOiBub3QtZm9yd2FyZGluZygyKQoraXAuaXBGb3J3YXJkaW5nLjAgPSBJTlRFR0VSOiBub3RcLWZvcndhcmRpbmcoMikKIC5QUAogSWYgdGhlIG5ldHdvcmsgZW50aXR5IGhhcyBhbiBlcnJvciBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0IHBhY2tldCwgYW4KIGVycm9yIHBhY2tldCB3aWxsIGJlIHJldHVybmVkIGFuZCBhIG1lc3NhZ2Ugd2lsbCBiZSBzaG93biwgaGVscGluZyB0bwpkaWZmIC0tZ2l0IGEvbWFuL3NubXBzdGF0dXMuMS5kZWYgYi9tYW4vc25tcHN0YXR1cy4xLmRlZgppbmRleCBiYmE0OGIzLi4xMTI2MTQ2IDEwMDY0NAotLS0gYS9tYW4vc25tcHN0YXR1cy4xLmRlZgorKysgYi9tYW4vc25tcHN0YXR1cy4xLmRlZgpAQCAtMzIsNyArMzIsNyBAQAogc25tcHN0YXR1cyAtIHJldHJpZXZlcyBhIGZpeGVkIHNldCBvZiBtYW5hZ2VtZW50IGluZm9ybWF0aW9uIGZyb20gYSBuZXR3b3JrIGVudGl0eQogLlNIIFNZTk9QU0lTCiAuQiBzbm1wc3RhdHVzCi1bQ09NTU9OIE9QVElPTlNdIFstQ2ZdIEFHRU5UCitbQ09NTU9OIE9QVElPTlNdIFtcLUNmXSBBR0VOVAogLlNIIERFU0NSSVBUSU9OCiAuQiBzbm1wc3RhdHVzCiBpcyBhbiBTTk1QIGFwcGxpY2F0aW9uIHRoYXQgcmV0cmlldmVzIHNldmVyYWwgaW1wb3J0YW50IHN0YXRpc3RpY3MKQEAgLTY4LDcgKzY4LDcgQEAKIC5QUAogRm9yIGV4YW1wbGU6CiAuUFAKLXNubXBzdGF0dXMgLWMgcHVibGljIC12IDEgbmV0ZGV2LWtib3guY2MuY211LmVkdQorc25tcHN0YXR1cyBcLWMgcHVibGljIFwtdiAxIG5ldGRldlwta2JveC5jYy5jbXUuZWR1CiAuUFAKIHdpbGwgcHJvZHVjZSBvdXRwdXQgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOgogLlBQCkBAIC05MCw3ICs5MCw3IEBACiAuQiBzbm1wc3RhdHVzCiB3aWxsIGF0dGVtcHQgdG8gcmVmb3JtIGl0cyByZXF1ZXN0IHRvIGVsaW1pbmF0ZSB0aGUgbWFsZm9ybWVkCiB2YXJpYWJsZSAodW5sZXNzIHRoZQotLkIgLUNmCisuQiBcLUNmCiBvcHRpb24gaXMgZ2l2ZW4sIHNlZSBiZWxvdyksIGJ1dCB0aGlzIHZhcmlhYmxlIHdpbGwgdGhlbiBiZSBtaXNzaW5nCiBmcm9tIHRoZSBkaXNwbGF5ZWQgZGF0YS4KIC5QUApAQCAtMTAyLDEwICsxMDIsMTAgQEAKIGZvciBhIGxpc3Qgb2YgcG9zc2libGUgdmFsdWVzIGZvciBDT01NT04gT1BUSU9OUwogYXMgd2VsbCBhcyB0aGVpciBkZXNjcmlwdGlvbnMuCiAuVFAKLS5CIC1DZgorLkIgXC1DZgogQnkgZGVmYXVsdCwgc25tcHN0YXR1cyB3aWxsIHRyeSB0byBmaXggZXJyb3JzIHJldHVybmVkCiBieSB0aGUgYWdlbnQgYW5kIHJldHJ5IGEgcmVxdWVzdC4gSW4gdGhpcyBzaXR1YXRpb24sCi10aGUgY29tbWFuZCB3aWxsIGRpc3BsYXkgdGhlIGRhdGEgdGhhdCBpdCBjYW4uIElmIHRoZSAtQ2Ygb3B0aW9uCit0aGUgY29tbWFuZCB3aWxsIGRpc3BsYXkgdGhlIGRhdGEgdGhhdCBpdCBjYW4uIElmIHRoZSBcLUNmIG9wdGlvbgogaXMgc3BlY2lmaWVkLCB0aGVuIHNubXBzdGF0dXMgd2lsbCBub3QgdHJ5IHRvIGZpeAogZXJyb3JzLCBhbmQgdGhlIGVycm9yIHdpbGwgY2F1c2UgdGhlIGNvbW1hbmQgdG8gdGVybWluYXRlLgogLlNIICJTRUUgQUxTTyIKZGlmZiAtLWdpdCBhL21hbi9zbm1wdGFibGUuMS5kZWYgYi9tYW4vc25tcHRhYmxlLjEuZGVmCmluZGV4IDU3NWIwMzQuLjRlNjVjYjQgMTAwNjQ0Ci0tLSBhL21hbi9zbm1wdGFibGUuMS5kZWYKKysrIGIvbWFuL3NubXB0YWJsZS4xLmRlZgpAQCAtMjAsMjggKzIwLDIxIEBACiAuXCIgVXNlIGlzIHN1YmplY3QgdG8gbGljZW5zZSB0ZXJtcyBzcGVjaWZpZWQgaW4gdGhlIENPUFlJTkcgZmlsZQogLlwiIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAuXCIgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLlRIIFNOTVBUQUJMRSAxICIwNiBTZXAgMjAwMyIgVlZFUlNJT05JTkZPICJOZXQtU05NUCIKKy5USCBTTk1QVEFCTEUgMSAiMjUgSnVsIDIwMDMiIFZWRVJTSU9OSU5GTyAiTmV0LVNOTVAiCiAuU0ggTkFNRQogc25tcHRhYmxlIC0gcmV0cmlldmUgYW4gU05NUCB0YWJsZSBhbmQgZGlzcGxheSBpdCBpbiB0YWJ1bGFyIGZvcm0KIC5TSCBTWU5PUFNJUwogLkIgc25tcHRhYmxlCi1bQ09NTU9OIE9QVElPTlNdIFstQ2JdIFstQ0JdIFstQ2hdIFstQ0hdIFstQ2ldIFstQ2YgU1RSSU5HXSBbLUN3IFdJRFRIXQotQUdFTlQgVEFCTEUtT0lECitbQ09NTU9OIE9QVElPTlNdIFtcLUNiXSBbXC1DQl0gW1wtQ2hdIFtcLUNIXSBbXC1DaV0gW1wtQ2YgU1RSSU5HXSBbXC1DdyBXSURUSF0KK0FHRU5UIFRBQkxFXC1PSUQKIC5TSCBERVNDUklQVElPTgogLkIgc25tcHRhYmxlCiBpcyBhbiBTTk1QIGFwcGxpY2F0aW9uIHRoYXQgcmVwZWF0ZWRseSB1c2VzIHRoZSBTTk1QIEdFVE5FWFQgb3IKIEdFVEJVTEsgcmVxdWVzdHMgdG8gcXVlcnkgZm9yIGluZm9ybWF0aW9uIG9uIGEgbmV0d29yayBlbnRpdHkuICBUaGUKLXBhcmFtZXRlcgotLkkgVEFCTEUtT0lECi1tdXN0IHNwZWNpZnkgYW4gU05NUCB0YWJsZS4KLS5QUAotc25tcHRhYmxlIGlzIGFuIFNOTVAgYXBwbGljYXRpb24gdGhhdCByZXBlYXRlZGx5IHVzZXMgdGhlCi1TTk1QIEdFVE5FWFQgb3IgR0VUQlVMSyByZXF1ZXN0cyB0byBxdWVyeSBmb3IgIGluZm9ybWF0aW9uCi1vbiBhIG5ldHdvcmsgZW50aXR5LiAgVGhlIHBhcmFtZXRlciBUQUJMRS1PSUQgbXVzdCBzcGVjaWZ5Ci1hbiBTTk1QIHRhYmxlLgorcGFyYW1ldGVyIFRBQkxFXC1PSUQgbXVzdCBzcGVjaWZ5IGFuIFNOTVAgdGFibGUuCiAKIEFHRU5UIGlkZW50aWZpZXMgYSB0YXJnZXQgU05NUCBhZ2VudCwgd2hpY2ggaXMgaW5zdHJ1bWVudGVkCi10byBtb25pdG9yIHRoZSBnaWV2biBvYmplY3RzLiAgQXQgaXRzIHNpbXBsZXN0LCB0aGUgQUdFTlQKK3RvIG1vbml0b3IgdGhlIGdpdmVuIG9iamVjdHMuICBBdCBpdHMgc2ltcGxlc3QsIHRoZSBBR0VOVAogc3BlY2lmaWNhdGlvbiB3aWxsIGNvbnNpc3Qgb2YgYSBob3N0bmFtZSBvciBhbiBJUHY0CiBhZGRyZXNzLiAgSW4gdGhpcyBzaXR1YXRpb24sIHRoZSBjb21tYW5kIHdpbGwgYXR0ZW1wdAogY29tbXVuaWNhdGlvbiB3aXRoIHRoZSBhZ2VudCwgdXNpbmcgVURQL0lQdjQgdG8gcG9ydCAxNjEKQEAgLTU3LDE5ICs1MCwxOSBAQAogZm9yIGEgbGlzdCBvZiBwb3NzaWJsZSB2YWx1ZXMgZm9yIENPTU1PTiBPUFRJT05TCiBhcyB3ZWxsIGFzIHRoZWlyIGRlc2NyaXB0aW9ucy4KIC5UUAotLkIgLUNiCisuQiBcLUNiCiBEaXNwbGF5IG9ubHkgYSBicmllZiBoZWFkaW5nLiBBbnkgY29tbW9uIHByZWZpeCBvZiB0aGUgdGFibGUgZmllbGQKIG5hbWVzIHdpbGwgYmUgZGVsZXRlZC4KIC5UUCAKLS5CIC1DQgorLkIgXC1DQgogRG8gbm90IHVzZSBHRVRCVUxLIHJlcXVlc3RzIHRvIHJldHJpZXZlIGRhdGEsIG9ubHkgR0VUTkVYVC4KIC5UUCAKLS5CSSAtQ2MgIiBDSEFSUyIKKy5CSSBcLUNjICIgQ0hBUlMiCiBQcmludCB0YWJsZSBpbiBjb2x1bW5zIG9mCiAuSSBDSEFSUwogY2hhcmFjdGVycyB3aWR0aC4KIC5UUAotLkJJIC1DZiAiIFNUUklORyIKKy5CSSBcLUNmICIgU1RSSU5HIgogVGhlIHN0cmluZwogLkkgU1RSSU5HCiBpcyB1c2VkIHRvIHNlcGFyYXRlIHRhYmxlIGNvbHVtbnMuICBXaXRoIHRoaXMgb3B0aW9uLCBlYWNoIHRhYmxlIGVudHJ5CkBAIC03NywyOCArNzAsMjggQEAKIHNlcGFyYXRlIHRoZSBjb2x1bW5zICh1c2VmdWwgaWYgeW91IHdhbnQgdG8gaW1wb3J0IGl0IGludG8gYQogZGF0YWJhc2UpLiAgT3RoZXJ3aXNlIGl0IGlzIHByaW50ZWQgaW4gbmljZWx5IGFsaWduZWQgY29sdW1ucy4KIC5UUAotLkIgLUNoCisuQiBcLUNoCiBEaXNwbGF5CiAuSSBvbmx5CiB0aGUgY29sdW1uIGhlYWRpbmdzLgogLlRQCi0uQiAtQ0gKKy5CIFwtQ0gKIERvIG5vdCBkaXNwbGF5IHRoZSBjb2x1bW4gaGVhZGluZ3MuCiAuVFAKLS5CIC1DaQorLkIgXC1DaQogVGhpcyBvcHRpb24gcHJlcGVuZHMgdGhlIGluZGV4IG9mIHRoZSBlbnRyeSB0byBhbGwgcHJpbnRlZCBsaW5lcy4KIC5UUAotLkIgLUNsCisuQiBcLUNsCiBMZWZ0IGp1c3RpZnkgdGhlIGRhdGEgaW4gZWFjaCBjb2x1bW4uCiAuVFAgCi0uQkkgLUNyICIgUkVQRUFURVJTIgorLkJJIFwtQ3IgIiBSRVBFQVRFUlMiCiBGb3IgR0VUQlVMSyByZXF1ZXN0cywgCiAuSSBSRVBFQVRFUlMKIHNwZWNpZmllcyB0aGUgbWF4LXJlcGVhdGVycyB2YWx1ZSB0byB1c2UuICBGb3IgR0VUTkVYVCByZXF1ZXN0cywKIC5JIFJFUEVBVEVSUwogc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgZW50cmllcyB0byByZXRyaWV2ZSBhdCBhIHRpbWUuCiAuVFAgCi0uQkkgLUN3ICIgV0lEVEgiCisuQkkgXC1DdyAiIFdJRFRIIgogU3BlY2lmaWVzIHRoZSB3aWR0aCBvZiB0aGUgbGluZXMgd2hlbiB0aGUgdGFibGUgaXMgcHJpbnRlZC4KIElmIHRoZSBsaW5lcyB3aWxsIGJlIGxvbmdlciwgdGhlIHRhYmxlIHdpbGwgYmUgcHJpbnRlZCBpbiBzZWN0aW9ucyBvZgogYXQgbW9zdCAKQEAgLTExNSwxNCArMTA4LDE0IEBACiAuSSBzbm1wY21kKDEpCiBtYW51YWwgcGFnZS4gIFRoaXMgT0lEIFxmQm11c3RcZlAgYmUgdGhhdCBvZiBhIE1JQiB0YWJsZSBvYmplY3QuCiAuU0ggRVhBTVBMRVMKLSQgc25tcHRhYmxlIC12IDJjIC1jIHB1YmxpYyBsb2NhbGhvc3QgYXQuYXRUYWJsZQorJCBzbm1wdGFibGUgXC12IDJjIFwtYyBwdWJsaWMgbG9jYWxob3N0IGF0LmF0VGFibGUKIAotU05NUCB0YWJsZTogYXQuYXRUYWJsZSBSRkMxMjEzLU1JQjo6YXRUYWJsZQorU05NUCB0YWJsZTogYXQuYXRUYWJsZSBSRkMxMjEzXC1NSUI6OmF0VGFibGUKIAogYXRJZkluZGV4ICAgYXRQaHlzQWRkcmVzcyAgIGF0TmV0QWRkcmVzcwogICAgICAgICAxICA4OjA6MjA6MjA6MDphYiAxMzAuMjI1LjI0My4zMwogLlBQCi0kIHNubXB0YWJsZSAtdiAyYyAtYyBwdWJsaWMgLUNmICsgbG9jYWxob3N0IGF0LmF0VGFibGUKKyQgc25tcHRhYmxlIFwtdiAyYyBcLWMgcHVibGljIFwtQ2YgKyBsb2NhbGhvc3QgYXQuYXRUYWJsZQogCiBTTk1QIHRhYmxlOiBhdC5hdFRhYmxlCiAKQEAgLTEzMCw3ICsxMjMsNyBAQAogMSs4OjA6MjA6MjA6MDphYisxMzAuMjI1LjI0My4zMwogLlBQCiAubmYKLSQgc25tcHRhYmxlIGxvY2FsaG9zdCAtQ2wgLUNCIC1DaSAtT1ggLUNiIC1DYyAxNiAtQ3cgNjQgaWZUYWJsZQorJCBzbm1wdGFibGUgbG9jYWxob3N0IFwtQ2wgXC1DQiBcLUNpIFwtT1ggXC1DYiBcLUNjIDE2IFwtQ3cgNjQgaWZUYWJsZQogCiBTTk1QIHRhYmxlOiBpZlRhYmxlCiAKQEAgLTE1OSw3ICsxNTIsNyBAQAogLlBQCiAuU0ggIkJVR1MiCiBUaGUgdGVzdCBmb3IKLS5JIFRBQkxFLU9JRAorLkkgVEFCTEVcLU9JRAogYWN0dWFsbHkgc3BlY2lmeWluZyBhIHRhYmxlIGlzIHJhdGhlciBoZXVyaXN0aWMuICBOb3RlIGFsc28gdGhhdCB0aGUKIHRlc3QgcmVxdWlyZXMgdGhlIGRlZmluaW5nIE1JQiBmaWxlIHRvIGJlIGxvYWRlZC4KIC5QUApkaWZmIC0tZ2l0IGEvbWFuL3NubXB0ZXN0LjEuZGVmIGIvbWFuL3NubXB0ZXN0LjEuZGVmCmluZGV4IGMxZWRiNDguLmRmZGFlZDggMTAwNjQ0Ci0tLSBhL21hbi9zbm1wdGVzdC4xLmRlZgorKysgYi9tYW4vc25tcHRlc3QuMS5kZWYKQEAgLTI3LDcgKzI3LDcgQEAKIC5cIiBVc2UgaXMgc3ViamVjdCB0byBsaWNlbnNlIHRlcm1zIHNwZWNpZmllZCBpbiB0aGUgQ09QWUlORyBmaWxlCiAuXCIgZGlzdHJpYnV0ZWQgd2l0aCB0aGUgTmV0LVNOTVAgcGFja2FnZS4KIC5cIiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0uVEggU05NUFRFU1QgMSAiMDYgU2VwIDIwMDMiIFZWRVJTSU9OSU5GTyAiTmV0LVNOTVAiCisuVEggU05NUFRFU1QgMSAiMjUgSnVsIDIwMDMiIFZWRVJTSU9OSU5GTyAiTmV0LVNOTVAiCiAuU0ggTkFNRQogc25tcHRlc3QgLSBjb21tdW5pY2F0ZXMgd2l0aCBhIG5ldHdvcmsgZW50aXR5IHVzaW5nIFNOTVAgcmVxdWVzdHMKIC5TSCBTWU5PUFNJUwpAQCAtNjIsNyArNjIsNyBAQAogLklSIHZhcmlhYmxlcyg1KSAuCiBGb3IgZXhhbXBsZToKIC5QUAotc25tcHRlc3QgLWMgcHVibGljIC12IDEgemV1cworc25tcHRlc3QgXC1jIHB1YmxpYyBcLXYgMSB6ZXVzCiAuYnIKIC5CUiBWYXJpYWJsZTogIiBzeXN0ZW0uc3lzRGVzY3IuMCIKIC5icgpAQCAtMTE0LDcgKzExNCw3IEBACiAuUFAKIEdFVE5FWFQgUmVxdWVzdDoKIC5QUAotVGhlICJHRVRORVhUIHJlcXVlc3QiIG1vZGUgKCROKSBpcyBzaW1sYXIgdG8gdGhlICJHZXQgcmVxdWVzdCIKK1RoZSAiR0VUTkVYVCByZXF1ZXN0IiBtb2RlICgkTikgaXMgc2ltaWxhciB0byB0aGUgIkdldCByZXF1ZXN0IgogbW9kZSwgZGVzY3JpYmVkIGFib3ZlLgogLlBQCiBTRVQgUmVxdWVzdDoKQEAgLTE3NSw3ICsxNzUsNyBAQAogLlBQCiBUaGUgZm9sbG93aW5nIGlzIGFuIGV4YW1wbGUgb2Ygc2VuZGluZyBhIEdFVCByZXF1ZXN0IGZvciB0d28gT0lEczoKIC5QUAotJSBzbm1wdGVzdCAtdiAyYyAtYyBwdWJsaWMgdGVzdGhvc3Q6OTk5OQorJSBzbm1wdGVzdCBcLXYgMmMgXC1jIHB1YmxpYyB0ZXN0aG9zdDo5OTk5CiAuUFAKIC5uZgogVmFyaWFibGU6IHN5c3RlbS5zeXNEZXNjci4wCkBAIC0xODMsMTggKzE4MywxOCBAQAogVmFyaWFibGU6CiBSZWNlaXZlZCBHZXQgUmVzcG9uc2UgZnJvbSAxMjguMi41Ni4yMjAKIHJlcXVlc3RpZCAweDdEOUZDRDYzIGVycnN0YXQgMHgwIGVycmluZGV4IDB4MAotU05NUHYyLU1JQjo6c3lzRGVzY3IuMCA9IFNUUklORzogU3VuT1MgdGVzdGhvc3QgNS45IEdlbmVyaWNfMTEyMjMzLTAyIHN1bjR1Ci1TTk1QdjItTUlCOjpzeXNDb250YWN0LjAgPSBTVFJJTkc6IHgxMTExCitTTk1QdjJcLU1JQjo6c3lzRGVzY3IuMCA9IFNUUklORzogU3VuT1MgdGVzdGhvc3QgNS45IEdlbmVyaWNfMTEyMjMzXC0wMiBzdW40dQorU05NUHYyXC1NSUI6OnN5c0NvbnRhY3QuMCA9IFNUUklORzogeDExMTEKIC5maQogLlBQCiBUaGUgZm9sbG93aW5nIGlzIGFuIGV4YW1wbGUgb2Ygc2VuZGluZyBhIEdFVE5FWFQgcmVxdWVzdDoKIC5QUAogLm5mCi1WYXJpYWJsZTogU05NUHYyLU1JQjo6c3lzT1JVcFRpbWUKK1ZhcmlhYmxlOiBTTk1QdjJcLU1JQjo6c3lzT1JVcFRpbWUKIFZhcmlhYmxlOgogUmVjZWl2ZWQgR2V0IFJlc3BvbnNlIGZyb20gMTI4LjIuNTYuMjIwCiByZXF1ZXN0aWQgMHg3RDlGQ0Q2NCBlcnJzdGF0IDB4MCBlcnJpbmRleCAweDAKLVNOTVB2Mi1NSUI6OnN5c09SVXBUaW1lLjEgPSBUaW1ldGlja3M6ICg2KSAwOjAwOjAwLjA2CitTTk1QdjJcLU1JQjo6c3lzT1JVcFRpbWUuMSA9IFRpbWV0aWNrczogKDYpIDA6MDA6MDAuMDYKIFZhcmlhYmxlOgogLmZpCiAuUFAKQEAgLTIwOSw3ICsyMDksNyBAQAogVmFyaWFibGU6CiBSZWNlaXZlZCBHZXQgUmVzcG9uc2UgZnJvbSAxMjguMi41Ni4yMjAKIHJlcXVlc3RpZCAweDdEOUZDRDY1IGVycnN0YXQgMHgwIGVycmluZGV4IDB4MAotU05NUHYyLU1JQjo6c3lzTG9jYXRpb24uMCA9IFNUUklORzogYnVpbGRpbmcgQQorU05NUHYyXC1NSUI6OnN5c0xvY2F0aW9uLjAgPSBTVFJJTkc6IGJ1aWxkaW5nIEEKIFZhcmlhYmxlOgogLmZpCiAuUFAKQEAgLTIyOCwxNyArMjI4LDE3IEBACiBXaGF0IHJlcGVhdCBjb3VudD8gMgogUmVjZWl2ZWQgR2V0IFJlc3BvbnNlIGZyb20gMTI4LjIuNTYuMjIwCiByZXF1ZXN0aWQgMHgyRUE3OTQyQSBlcnJzdGF0IDB4MCBlcnJpbmRleCAweDAKLVNOTVB2Mi1NSUI6OnN5c05hbWUuMCA9IFNUUklORzogdGVzdGhvc3QKLVNOTVB2Mi1NSUI6OnN5c09STGFzdENoYW5nZS4wID0gVGltZXRpY2tzOiAoNTgpIDA6MDA6MDAuNTgKLVNOTVB2Mi1NSUI6OnN5c0xvY2F0aW9uLjAgPSBTVFJJTkc6IGJsZGcgQQotU05NUHYyLU1JQjo6c3lzT1JJRC4xID0gT0lEOiBJRi1NSUI6OmlmTUlCCitTTk1QdjJcLU1JQjo6c3lzTmFtZS4wID0gU1RSSU5HOiB0ZXN0aG9zdAorU05NUHYyXC1NSUI6OnN5c09STGFzdENoYW5nZS4wID0gVGltZXRpY2tzOiAoNTgpIDA6MDA6MDAuNTgKK1NOTVB2MlwtTUlCOjpzeXNMb2NhdGlvbi4wID0gU1RSSU5HOiBibGRnIEEKK1NOTVB2MlwtTUlCOjpzeXNPUklELjEgPSBPSUQ6IElGXC1NSUI6OmlmTUlCCiBWYXJpYWJsZToKIC5maQogLlBQCiBUaGUgZm9sbG93aW5nIGlzIGFuIGV4YW1wbGUgb2Ygc2VuZGluZyBhbiBJbmZvcm0gcmVxdWVzdDoKIC5QUAogLm5mCi1zbm1wdGVzdCAtdiAyYyAtYyBwdWJsaWMgc25tcHRyYXBkX2hvc3QKK3NubXB0ZXN0IFwtdiAyYyBcLWMgcHVibGljIHNubXB0cmFwZF9ob3N0CiBWYXJpYWJsZTogJEkKIFJlcXVlc3QgdHlwZSBpcyBJbmZvcm0gUmVxdWVzdAogKEFyZSB5b3Ugc2VuZGluZyB0byB0aGUgcmlnaHQgcG9ydD8pCkBAIC0yNTIsMTMgKzI1MiwxMyBAQAogLlBQCiBUaGUgc25tcHRyYXBkX2hvc3Qgd2lsbCBzaG93OgogLlBQCi1zbm1wdHJhcGRfaG9zdCBbPGlwIGFkZHJlc3M+XTogVHJhcCBTTk1QdjItTUlCOjpzeXNDb250YWN0LjAgPSBTVFJJTkc6Citzbm1wdHJhcGRfaG9zdCBbPGlwIGFkZHJlc3M+XTogVHJhcCBTTk1QdjJcLU1JQjo6c3lzQ29udGFjdC4wID0gU1RSSU5HOgogeDEyMzQ1CiAuUFAKIFRoZSBmb2xsb3dpbmcgaXMgYW4gZXhhbXBsZSBvZiBzZW5kaW5nIGFuIFNOTVB2MiBUcmFwIHJlcXVlc3Q6CiAuUFAKIC5uZgotc25tcHRlc3QgLXYgMmMgLWMgcHVibGljIHNubXB0cmFwZF9ob3N0Citzbm1wdGVzdCBcLXYgMmMgXC1jIHB1YmxpYyBzbm1wdHJhcGRfaG9zdAogVmFyaWFibGU6ICRUCiBSZXF1ZXN0IHR5cGUgaXMgU05NUHYyIFRyYXAgUmVxdWVzdAogKEFyZSB5b3Ugc2VuZGluZyB0byB0aGUgcmlnaHQgcG9ydD8pCkBAIC0yNzEsNyArMjcxLDcgQEAKIFRoZSBzbm1wdHJhcGRfaG9zdCB3aWxsIHNob3c6CiAuUFAKIC5uZgotc25tcHRyYXBkX2hvc3QgWzxpcCBhZGRyZXNzPl06IFRyYXAgU05NUHYyLU1JQjo6c3lzLjAgPSBTVFJJTkc6Citzbm1wdHJhcGRfaG9zdCBbPGlwIGFkZHJlc3M+XTogVHJhcCBTTk1QdjJcLU1JQjo6c3lzLjAgPSBTVFJJTkc6CiBidWlsZGluZyBhCiAuZmkKIC5TSCAiU0VFIEFMU08iCmRpZmYgLS1naXQgYS9tYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiBiL21hbi9zbm1wdHJhbnNsYXRlLjEuZGVmCmluZGV4IDBmMzFhNTUuLjcyMWFmOTkgMTAwNjQ0Ci0tLSBhL21hbi9zbm1wdHJhbnNsYXRlLjEuZGVmCisrKyBiL21hbi9zbm1wdHJhbnNsYXRlLjEuZGVmCkBAIC0yNyw3ICsyNyw3IEBACiAuXCIgVXNlIGlzIHN1YmplY3QgdG8gbGljZW5zZSB0ZXJtcyBzcGVjaWZpZWQgaW4gdGhlIENPUFlJTkcgZmlsZQogLlwiIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAuXCIgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLlRIIFNOTVBUUkFOU0xBVEUgMSAiMjAgSnVsIDIwMTAiIFZWRVJTSU9OSU5GTyAiTmV0LVNOTVAiCisuVEggU05NUFRSQU5TTEFURSAxICIxMyBOb3YgMjAxMyIgVlZFUlNJT05JTkZPICJOZXQtU05NUCIKIC5TSCBOQU1FCiBzbm1wdHJhbnNsYXRlIC0gdHJhbnNsYXRlIE1JQiBPSUQgbmFtZXMgYmV0d2VlbiBudW1lcmljIGFuZCB0ZXh0dWFsIGZvcm1zCiAuU0ggU1lOT1BTSVMKQEAgLTQyLDE3ICs0MiwxNyBAQAogT0lEIGlzIGVpdGhlciBhIG51bWVyaWMgb3IgdGV4dHVhbCBvYmplY3QgaWRlbnRpZmllci4KIC5TSCBPUFRJT05TCiAuVFAgOAotLkIgLURcZklbVE9LRU5bLC4uLl1dCisuQiBcLURcZklbVE9LRU5bLC4uLl1dCiBUdXJuIG9uIGRlYnVnZ2luZyBvdXRwdXQgZm9yIHRoZSBnaXZlbgogLklSICJUT0tFTiIgIihzKS4iCiBUcnkKIC5JUiBBTEwKIGZvciBleHRyZW1lbHkgdmVyYm9zZSBvdXRwdXQuCiAuVFAKLS5CIC1oCisuQiBcLWgKIERpc3BsYXkgYSBicmllZiB1c2FnZSBtZXNzYWdlIGFuZCB0aGVuIGV4aXQuCiAuVFAKLS5CSSAtbSAiIE1JQkxJU1QiCisuQkkgXC1tICIgTUlCTElTVCIKIFNwZWNpZmllcyBhIGNvbG9uIHNlcGFyYXRlZCBsaXN0IG9mIE1JQiBtb2R1bGVzIHRvIGxvYWQgZm9yIHRoaXMKIGFwcGxpY2F0aW9uLiAgVGhpcyBvdmVycmlkZXMgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIE1JQlMuCiAuSVAKQEAgLTYyLDE3ICs2MiwyMCBAQAogZmlsZXMuICBFdmVyeSBmaWxlIHdob3NlIG5hbWUgZG9lcyBub3QgYmVnaW4gd2l0aCAiLiIgd2lsbCBiZSBwYXJzZWQgYXMKIGlmIGl0IHdlcmUgYSBNSUIgZmlsZS4KIC5UUAotLkJJIC1NICIgRElSTElTVCIKKy5CSSBcLU0gIiBESVJMSVNUIgogU3BlY2lmaWVzIGEgY29sb24gc2VwYXJhdGVkIGxpc3Qgb2YgZGlyZWN0b3JpZXMgdG8gc2VhcmNoIGZvciBNSUJzLgogVGhpcyBvdmVycmlkZXMgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIE1JQkRJUlMuCiAuVFAKLS5CSSAtVCAiIFRSQU5TT1BUUyIKKy5CSSBcLVQgIiBUUkFOU09QVFMiCiBQcm92aWRlcyBjb250cm9sIG92ZXIgdGhlIHRyYW5zbGF0aW9uIG9mIHRoZSBPSUQgdmFsdWVzLiAgVGhlCiBmb2xsb3dpbmcKIC5JIFRSQU5TT1BUUwogYXJlIGF2YWlsYWJsZToKIC5SUwogLlRQIDYKKy5CIFwtVEIKK1ByaW50IGFsbCBtYXRjaGluZyBvYmplY3RzIGZvciBhIHJlZ2V4IHNlYXJjaC4KKy5UUAogLkIgXC1UZAogUHJpbnQgZnVsbCBkZXRhaWxzIG9mIHRoZSBzcGVjaWZpZWQgT0lELgogLlRQCkBAIC05OCwyNCArMTAxLDI0IEBACiBEdW1wIGEgbnVtZXJpYyBhbmQgbGFiZWxlZCBmb3JtIG9mIGFsbCBvYmplY3RzIChjb21wYXRpYmxlIHdpdGggTUlCMlNDSEVNQSBmb3JtYXQpLgogLlJFCiAuVFAKLS5CIC1WCisuQiBcLVYKIERpc3BsYXkgdmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgdGhlIGFwcGxpY2F0aW9uIGFuZCB0aGVuIGV4aXQuCiAuVFAKLS5CSSAtdyAiIFdJRFRIIgorLkJJIFwtdyAiIFdJRFRIIgogU3BlY2lmaWVzIHRoZSB3aWR0aCBvZgotLkIgLVRwCisuQiBcLVRwCiBhbmQKLS5CIC1UZAorLkIgXC1UZAogb3V0cHV0LiBUaGUgZGVmYXVsdCBpcyB2ZXJ5IGxhcmdlLgogLlBQCiBJbiBhZGRpdGlvbiB0byB0aGUgYWJvdmUgb3B0aW9ucywgCiAuQiBzbm1wdHJhbnNsYXRlCiB0YWtlcyB0aGUgT0lEIGlucHV0IAotLlJCICggLUkgKSwKKy5SQiAoIFwtSSApLAogTUlCIHBhcnNpbmcKLS5SQiAoIC1NICkKKy5SQiAoIFwtTSApCiBhbmQgT0lEIG91dHB1dAotLlJCICggLU8gKQorLlJCICggXC1PICkKIG9wdGlvbnMgZGVzY3JpYmVkIGluIHRoZSAKIC5CUiAiSU5QVVQgT1BUSU9OUyIgIiwgIiAiTUlCIFBBUlNJTkcgT1BUSU9OUyIgIiBhbmQgIiAiT1VUUFVUIE9QVElPTlMiCiBzZWN0aW9ucyBvZiB0aGUKQEAgLTEyMyw0MCArMTI2LDQwIEBACiBtYW51YWwgcGFnZS4KIC5TSCBFWEFNUExFUwogLklQIFwoYnUgNAotc25tcHRyYW5zbGF0ZSAtT24gLUlSIHN5c0Rlc2NyCitzbm1wdHJhbnNsYXRlIFwtT24gXC1JUiBzeXNEZXNjcgogLmJyCiB3aWxsIHRyYW5zbGF0ZSAic3lzRGVzY3IiIHRvIGEgbW9yZSBxdWFsaWZpZWQgZm9ybToKIC5JUAogc3lzdGVtLnN5c0Rlc2NyCiAuSVAgXChidSA0Ci1zbm1wdHJhbnNsYXRlIC1PbmYgLUlSIHN5c0Rlc2NyCitzbm1wdHJhbnNsYXRlIFwtT25mIFwtSVIgc3lzRGVzY3IKIC5icgogd2lsbCB0cmFuc2xhdGUgInN5c0RlY3IiIHRvOgogLklQCi0uUkkgLmlzby5vcmcuZG9kLmludGVybmV0Lm1nbXQubWliLTIuc3lzdGVtLnN5c0Rlc2NyCisuUkkgLmlzby5vcmcuZG9kLmludGVybmV0Lm1nbXQubWliXC0yLnN5c3RlbS5zeXNEZXNjcgogLklQIFwoYnUgNCAKLXNubXB0cmFuc2xhdGUgLVRkIC1PUyBzeXN0ZW0uc3lzRGVzY3IKK3NubXB0cmFuc2xhdGUgXC1UZCBcLU9TIHN5c3RlbS5zeXNEZXNjcgogLmJyCiB3aWxsIHRyYW5zbGF0ZSAic3lzRGVjciIgaW50bzoKIC5JUAogLm5mCi1TTk1QdjItTUlCOjpzeXNEZXNjcgotc3lzRGVzY3IgT0JKRUNULVRZUEUKLSAgLS0gRlJPTSBTTk1QdjItTUlCCi0gIC0tIFRFWFRVQUwgQ09OVkVOVElPTiBEaXNwbGF5U3RyaW5nCitTTk1QdjJcLU1JQjo6c3lzRGVzY3IKK3N5c0Rlc2NyIE9CSkVDVFwtVFlQRQorICBcLVwtIEZST00gU05NUHYyXC1NSUIKKyAgXC1cLSBURVhUVUFMIENPTlZFTlRJT04gRGlzcGxheVN0cmluZwogICBTWU5UQVggT0NURVQgU1RSSU5HICgwLi4yNTUpCi0gIERJU1BMQVktSElOVCAiMjU1YSIKLSAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgRElTUExBWVwtSElOVCAiMjU1YSIKKyAgTUFYXC1BQ0NFU1MgcmVhZFwtb25seQogICBTVEFUVVMgY3VycmVudAogICBERVNDUklQVElPTiAiQSB0ZXh0dWFsIGRlc2NyaXB0aW9uIG9mIHRoZSBlbnRpdHkuIFRoaXMKICAgICAgICAgICAgICAgIHZhbHVlIHNob3VsZCBpbmNsdWRlIHRoZSBmdWxsIG5hbWUgYW5kCiAgICAgICAgICAgICAgICB2ZXJzaW9uIGlkZW50aWZpY2F0aW9uIG9mIHRoZSBzeXN0ZW0ncwotICAgICAgICAgICAgICAgaGFyZHdhcmUgdHlwZSwgc29mdHdhcmUgb3BlcmF0aW5nLXN5c3RlbSwKKyAgICAgICAgICAgICAgIGhhcmR3YXJlIHR5cGUsIHNvZnR3YXJlIG9wZXJhdGluZ1wtc3lzdGVtLAogICAgICAgICAgICAgICAgYW5kIG5ldHdvcmtpbmcgc29mdHdhcmUuIgotOjo9IHsgaXNvKDEpIG9yZygzKSBkb2QoNikgaW50ZXJuZXQoMSkgbWdtdCgyKSBtaWItMigxKSBzeXN0ZW0oMSkgMSB9Cis6Oj0geyBpc28oMSkgb3JnKDMpIGRvZCg2KSBpbnRlcm5ldCgxKSBtZ210KDIpIG1pYlwtMigxKSBzeXN0ZW0oMSkgMSB9CiAuZmkKIC5JUCBcKGJ1IDQgCi1zbm1wdHJhbnNsYXRlIC1UcCAtT1Mgc3lzdGVtCitzbm1wdHJhbnNsYXRlIFwtVHAgXC1PUyBzeXN0ZW0KIC5icgogd2lsbCBwcmludCB0aGUgZm9sbG93aW5nIHRyZWU6CiAuSVAKQEAgLTE5Niw3ICsxOTksNyBAQAogLmZpCiAuUFAKIC5JUCBcKGJ1IDQKLXNubXB0cmFuc2xhdGUgLVRhIHwgaGVhZAorc25tcHRyYW5zbGF0ZSBcLVRhIHwgaGVhZAogLmJyCiB3aWxsIHByb2R1Y2UgdGhlIGZvbGxvd2luZyBkdW1wOgogLklQCkBAIC0yMTQsNyArMjE3LDcgQEAKIC5maQogLlBQCiAuSVAgXChidSA0Ci1zbm1wdHJhbnNsYXRlIC1UbCB8IGhlYWQKK3NubXB0cmFuc2xhdGUgXC1UbCB8IGhlYWQKIC5icgogd2lsbCBwcm9kdWNlIHRoZSBmb2xsb3dpbmcgZHVtcDoKIC5JUApAQCAtMjI0LDE1ICsyMjcsMTUgQEAKIC5SSSAuaXNvKDEpLm9yZygzKS5kb2QoNikuaW50ZXJuZXQoMSkKIC5SSSAuaXNvKDEpLm9yZygzKS5kb2QoNikuaW50ZXJuZXQoMSkuZGlyZWN0b3J5KDEpCiAuUkkgLmlzbygxKS5vcmcoMykuZG9kKDYpLmludGVybmV0KDEpLm1nbXQoMikKLS5SSSAuaXNvKDEpLm9yZygzKS5kb2QoNikuaW50ZXJuZXQoMSkubWdtdCgyKS5taWItMigxKQotLlJJIC5pc28oMSkub3JnKDMpLmRvZCg2KS5pbnRlcm5ldCgxKS5tZ210KDIpLm1pYi0yKDEpLnN5c3RlbSgxKQotLlJJIC5pc28oMSkub3JnKDMpLmRvZCg2KS5pbnRlcm5ldCgxKS5tZ210KDIpLm1pYi0yKDEpLnN5c3RlbSgxKS5zeXNEZXNjcigxKQotLlJJIC5pc28oMSkub3JnKDMpLmRvZCg2KS5pbnRlcm5ldCgxKS5tZ210KDIpLm1pYi0yKDEpLnN5c3RlbSgxKS5zeXNPYmplY3RJRCgyKQotLlJJIC5pc28oMSkub3JnKDMpLmRvZCg2KS5pbnRlcm5ldCgxKS5tZ210KDIpLm1pYi0yKDEpLnN5c3RlbSgxKS5zeXNVcFRpbWUoMykKKy5SSSAuaXNvKDEpLm9yZygzKS5kb2QoNikuaW50ZXJuZXQoMSkubWdtdCgyKS5taWJcLTIoMSkKKy5SSSAuaXNvKDEpLm9yZygzKS5kb2QoNikuaW50ZXJuZXQoMSkubWdtdCgyKS5taWJcLTIoMSkuc3lzdGVtKDEpCisuUkkgLmlzbygxKS5vcmcoMykuZG9kKDYpLmludGVybmV0KDEpLm1nbXQoMikubWliXC0yKDEpLnN5c3RlbSgxKS5zeXNEZXNjcigxKQorLlJJIC5pc28oMSkub3JnKDMpLmRvZCg2KS5pbnRlcm5ldCgxKS5tZ210KDIpLm1pYlwtMigxKS5zeXN0ZW0oMSkuc3lzT2JqZWN0SUQoMikKKy5SSSAuaXNvKDEpLm9yZygzKS5kb2QoNikuaW50ZXJuZXQoMSkubWdtdCgyKS5taWJcLTIoMSkuc3lzdGVtKDEpLnN5c1VwVGltZSgzKQogLmZpCiAuUFAKIC5JUCBcKGJ1IDQKLXNubXB0cmFuc2xhdGUgLVRvIHwgaGVhZAorc25tcHRyYW5zbGF0ZSBcLVRvIHwgaGVhZAogLmJyCiB3aWxsIHByb2R1Y2UgdGhlIGZvbGxvd2luZyBkdW1wCiAuSVAKQEAgLTI1MCw3ICsyNTMsNyBAQAogLmZpCiAuUFAKIC5JUCBcKGJ1IDQKLXNubXB0cmFuc2xhdGUgLVRzIHwgaGVhZAorc25tcHRyYW5zbGF0ZSBcLVRzIHwgaGVhZAogLmJyCiB3aWxsIHByb2R1Y2UgdGhlIGZvbGxvd2luZyBkdW1wCiAuSVAKQEAgLTI2MCwxNSArMjYzLDE1IEBACiAuUkkgLmlzby5vcmcuZG9kLmludGVybmV0CiAuUkkgLmlzby5vcmcuZG9kLmludGVybmV0LmRpcmVjdG9yeQogLlJJIC5pc28ub3JnLmRvZC5pbnRlcm5ldC5tZ210Ci0uUkkgLmlzby5vcmcuZG9kLmludGVybmV0Lm1nbXQubWliLTIKLS5SSSAuaXNvLm9yZy5kb2QuaW50ZXJuZXQubWdtdC5taWItMi5zeXN0ZW0KLS5SSSAuaXNvLm9yZy5kb2QuaW50ZXJuZXQubWdtdC5taWItMi5zeXN0ZW0uc3lzRGVzY3IKLS5SSSAuaXNvLm9yZy5kb2QuaW50ZXJuZXQubWdtdC5taWItMi5zeXN0ZW0uc3lzT2JqZWN0SUQKLS5SSSAuaXNvLm9yZy5kb2QuaW50ZXJuZXQubWdtdC5taWItMi5zeXN0ZW0uc3lzVXBUaW1lCisuUkkgLmlzby5vcmcuZG9kLmludGVybmV0Lm1nbXQubWliXC0yCisuUkkgLmlzby5vcmcuZG9kLmludGVybmV0Lm1nbXQubWliXC0yLnN5c3RlbQorLlJJIC5pc28ub3JnLmRvZC5pbnRlcm5ldC5tZ210Lm1pYlwtMi5zeXN0ZW0uc3lzRGVzY3IKKy5SSSAuaXNvLm9yZy5kb2QuaW50ZXJuZXQubWdtdC5taWJcLTIuc3lzdGVtLnN5c09iamVjdElECisuUkkgLmlzby5vcmcuZG9kLmludGVybmV0Lm1nbXQubWliXC0yLnN5c3RlbS5zeXNVcFRpbWUKIC5maQogLlBQCiAuSVAgXChidSA0Ci1zbm1wdHJhbnNsYXRlIC1UdCB8IGhlYWQKK3NubXB0cmFuc2xhdGUgXC1UdCB8IGhlYWQKIC5icgogd2lsbCBwcm9kdWNlIHRoZSBmb2xsb3dpbmcgZHVtcAogLklQCkBAIC0yNzgsNyArMjgxLDcgQEAKICAgICAgIGludGVybmV0KDEpIHR5cGU9MAogICAgICAgICBkaXJlY3RvcnkoMSkgdHlwZT0wCiAgICAgICAgIG1nbXQoMikgdHlwZT0wCi0gICAgICAgICAgbWliLTIoMSkgdHlwZT0wCisgICAgICAgICAgbWliXC0yKDEpIHR5cGU9MAogICAgICAgICAgICAgc3lzdGVtKDEpIHR5cGU9MAogICAgICAgICAgICAgICBzeXNEZXNjcigxKSB0eXBlPTIgdGM9NCBoaW50PTI1NWEKICAgICAgICAgICAgICAgc3lzT2JqZWN0SUQoMikgdHlwZT0xCmRpZmYgLS1naXQgYS9tYW4vc25tcHRyYXAuMS5kZWYgYi9tYW4vc25tcHRyYXAuMS5kZWYKaW5kZXggMDlhZWM3OS4uNTVjMTlkMSAxMDA2NDQKLS0tIGEvbWFuL3NubXB0cmFwLjEuZGVmCisrKyBiL21hbi9zbm1wdHJhcC4xLmRlZgpAQCAtMSw3ICsxLDcgQEAKIC5cIiAtKi0gbnJvZmYgLSotCi0uXCIgUG9ydGlvbnMgb2YgdGhpcyBmaWxlIGFyZSBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29weXJpZ2h0LiAKLS5cIiBTZWUgdGhlIE5ldC1TTk1QIENPUFlJTkcgZmlsZSBmb3IgbW9yZSBkZXRhaWxzIGFuZCBvdGhlcgotLlwiIGNvcHlyaWdodHMgdGhhdCBtYXkgYXBwbHk6CisuXCIgUG9ydGlvbnMgb2YgdGhpcyBmaWxlIGFyZSBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29weXJpZ2h0LiAgU2VlCisuXCIgdGhlIE5ldC1TTk1QIENPUFlJTkcgZmlsZSBmb3IgbW9yZSBkZXRhaWxzIGFuZCBvdGhlciBjb3B5cmlnaHRzCisuXCIgdGhhdCBtYXkgYXBwbHk6CiAuXCIgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAuXCIgCUNvcHlyaWdodCAxOTg4LCAxOTg5IGJ5IENhcm5lZ2llIE1lbGxvbiBVbml2ZXJzaXR5CiAuXCIgCkBAIC0yNywxMyArMjcsMTMgQEAKIC5TSCBOQU1FCiBzbm1wdHJhcCwgc25tcGluZm9ybSAtIHNlbmRzIGFuIFNOTVAgbm90aWZpY2F0aW9uIHRvIGEgbWFuYWdlcgogLlNIIFNZTk9QU0lTCi0uQiBzbm1wdHJhcCAtdiAxCisuQiBzbm1wdHJhcCBcLXYgMQogW0NPTU1PTiBPUFRJT05TXSBBR0VOVCBlbnRlcnByaXNlLW9pZCBhZ2VudCBnZW5lcmljLXRyYXAgc3BlY2lmaWMtdHJhcCB1cHRpbWUgW09JRCBUWVBFIFZBTFVFXS4uLgogLlBQCi0uQiBzbm1wdHJhcCAtdiBbMmN8M10KLVtDT01NT04gT1BUSU9OU10gWy1DaV0gQUdFTlQgdXB0aW1lIHRyYXAtb2lkIFtPSUQgVFlQRSBWQUxVRV0uLi4KKy5CIHNubXB0cmFwIFwtdiBbMmN8M10KK1tDT01NT04gT1BUSU9OU10gW1wtQ2ldIEFHRU5UIHVwdGltZSB0cmFwLW9pZCBbT0lEIFRZUEUgVkFMVUVdLi4uCiAuUFAKLS5CIHNubXBpbmZvcm0gLXYgWzJjfDNdCisuQiBzbm1waW5mb3JtIFwtdiBbMmN8M10KIFtDT01NT04gT1BUSU9OU10gQUdFTlQgdXB0aW1lIHRyYXAtb2lkIFtPSUQgVFlQRSBWQUxVRV0uLi4KIC5TSCBERVNDUklQVElPTgogLkIgc25tcHRyYXAKQEAgLTQ3LDcgKzQ3LDcgQEAKIFdoZW4gaW52b2tlZCBhcwogLkIgc25tcGluZm9ybSwKIG9yIHdoZW4KLS5CIC1DaQorLkIgXC1DaQogaXMgYWRkZWQgdG8gdGhlIGNvbW1hbmQgbGluZSBmbGFncyBvZiBzbm1wdHJhcCwgaXQgc2VuZHMgYW4KIElORk9STS1QRFUsIGV4cGVjdGluZyBhIHJlc3BvbnNlIGZyb20gdGhlIHRyYXAgcmVjZWl2ZXIsCiByZXRyYW5zbWl0dGluZyBpZiByZXF1aXJlZC4gIE90aGVyd2lzZSBpdCBzZW5kcyBhbiBUUkFQLVBEVSBvcgpAQCAtMTExLDcgKzExMSw3IEBACiAuUFAKIEZvciBleGFtcGxlOgogLlBQCi1zbm1wdHJhcCAtdiAxIC1jIHB1YmxpYyBtYW5hZ2VyIGVudGVycHJpc2VzLnNwaWRlciB0ZXN0LWh1YiAzIDAgJycgaW50ZXJmYWNlcy5pZnRhYmxlLmlmZW50cnkuaWZpbmRleC4xIGkgMQorc25tcHRyYXAgXC12IDEgXC1jIHB1YmxpYyBtYW5hZ2VyIGVudGVycHJpc2VzLnNwaWRlciB0ZXN0XC1odWIgMyAwICcnIGludGVyZmFjZXMuaWZ0YWJsZS5pZmVudHJ5LmlmaW5kZXguMSBpIDEKIC5QUAogd2lsbCBzZW5kIGEgZ2VuZXJpYyBsaW5rVXAgdHJhcCB0byBtYW5hZ2VyLCBmb3IgaW50ZXJmYWNlIDEuCiAuU0ggT1BUSU9OUwpAQCAtMTIwLDcgKzEyMCw3IEBACiAuSSBzbm1wY21kKDEpIAogbWFudWFsIHBhZ2UgaW4KIGFkZGl0aW9uIHRvIHRoZSAKLS5CIC1DaQorLkIgXC1DaQogb3B0aW9uIGRlc2NyaWJlZCBhYm92ZS4KIE5vdGUgdGhhdAogLkIgc25tcHRyYXAKZGlmZiAtLWdpdCBhL21hbi9zbm1wdHJhcGQuOC5kZWYgYi9tYW4vc25tcHRyYXBkLjguZGVmCmluZGV4IGI2MjQ3YmYuLjQ1YmQwMzQgMTAwNjQ0Ci0tLSBhL21hbi9zbm1wdHJhcGQuOC5kZWYKKysrIGIvbWFuL3NubXB0cmFwZC44LmRlZgpAQCAtMSw3ICsxLDcgQEAKIC5cIiAtKi0gbnJvZmYgLSotCi0uXCIgUG9ydGlvbnMgb2YgdGhpcyBmaWxlIGFyZSBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29weXJpZ2h0LgotLlwiIFNlZSB0aGUgTmV0LVNOTVAgQ09QWUlORyBmaWxlIGZvciBtb3JlIGRldGFpbHMgYW5kIG90aGVyCi0uXCIgY29weXJpZ2h0cyB0aGF0IG1heSBhcHBseToKKy5cIiBQb3J0aW9ucyBvZiB0aGlzIGZpbGUgYXJlIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb3B5cmlnaHQuICBTZWUKKy5cIiB0aGUgTmV0LVNOTVAgQ09QWUlORyBmaWxlIGZvciBtb3JlIGRldGFpbHMgYW5kIG90aGVyIGNvcHlyaWdodHMKKy5cIiB0aGF0IG1heSBhcHBseToKIC5cIiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIC5cIiAJQ29weXJpZ2h0IDE5ODkgYnkgQ2FybmVnaWUgTWVsbG9uIFVuaXZlcnNpdHkKIC5cIiAKQEAgLTIzLDcgKzIzLDcgQEAKIC5cIiBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTCiAuXCIgU09GVFdBUkUuCiAuXCIgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLlRIIFNOTVBUUkFQRCA4ICIzMCBNYXIgMjAxMSIgVlZFUlNJT05JTkZPICJOZXQtU05NUCIKKy5USCBTTk1QVFJBUEQgOCAiMjcgQXByIDIwMTQiIFZWRVJTSU9OSU5GTyAiTmV0LVNOTVAiCiAuU0ggTkFNRQogc25tcHRyYXBkIC0gUmVjZWl2ZSBhbmQgbG9nIFNOTVAgdHJhcCBtZXNzYWdlcy4KIC5TSCBTWU5PUFNJUwpAQCAtMzksODggKzM5LDg4IEBACiBtdXN0IHR5cGljYWxseSBiZSBydW4gYXMgcm9vdC4KIC5TSCBPUFRJT05TCiAuVFAgOAotLkIgLWEKKy5CIFwtYQogSWdub3JlIGF1dGhlbnRpY2F0aW9uRmFpbHVyZSB0cmFwcy4KIC5UUAotLkIgLUEKKy5CIFwtQQogQXBwZW5kIHRvIHRoZSBsb2cgZmlsZSByYXRoZXIgdGhhbiB0cnVuY2F0aW5nIGl0LgogCi1Ob3RlIHRoYXQgdGhpcyBuZWVkcyB0byBjb21lIFxmSWJlZm9yZVxmUCBhbnkgLUxmIG9wdGlvbnMKK05vdGUgdGhhdCB0aGlzIG5lZWRzIHRvIGNvbWUgXGZJYmVmb3JlXGZQIGFueSBcLUxmIG9wdGlvbnMKIHRoYXQgaXQgc2hvdWxkIGFwcGx5IHRvLgogLlRQCi0uQkkgIi1jIiAiIEZJTEUiCisuQkkgIlwtYyIgIiBGSUxFIgogUmVhZCAKIC5JIEZJTEUKIGFzIGEgY29uZmlndXJhdGlvbiBmaWxlCiAob3IgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjb25maWd1cmF0aW9uIGZpbGVzKS4KIC5UUAotLkIgLUMKKy5CIFwtQwogRG8gbm90IHJlYWQgYW55IGNvbmZpZ3VyYXRpb24gZmlsZXMgZXhjZXB0IHRoZSBvbmUgb3B0aW9uYWxseSBzcGVjaWZpZWQgYnkgdGhlIAotLkIgLWMgCisuQiBcLWMgCiBvcHRpb24uCiAuVFAKLS5CIC1kCisuQiBcLWQKIER1bXAgKGluIGhleGFkZWNpbWFsKSB0aGUgc2VudCBhbmQgcmVjZWl2ZWQgU05NUCBwYWNrZXRzLgogLlRQCi0uQkkgLURbVE9LRU5bLC4uLl1dCisuQkkgXC1EW1RPS0VOWywuLi5dXQogVHVybiBvbiBkZWJ1Z2dpbmcgb3V0cHV0IGZvciB0aGUgZ2l2ZW4KIC5JUiAiVE9LRU4iICIocykuIgogVHJ5CiAuSVIgQUxMCiBmb3IgZXh0cmVtZWx5IHZlcmJvc2Ugb3V0cHV0LgogLlRQCi0uQiAtZgorLkIgXC1mCiBEbyBub3QgZm9yaygpIGZyb20gdGhlIGNhbGxpbmcgc2hlbGwuCiAuVFAKLS5CSSAtRiAiIEZPUk1BVCIKKy5CSSBcLUYgIiBGT1JNQVQiCiBXaGVuIGxvZ2dpbmcgdG8gc3RhbmRhcmQgb3V0cHV0LCB1c2UgdGhlIGZvcm1hdCBpbiB0aGUgc3RyaW5nCiAuSVIgRk9STUFUIC4KIFNlZSB0aGUgc2VjdGlvbgogLkIgRk9STUFUIFNQRUNJRklDQVRJT05TCiBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgogLlRQCi0uQiAtaCwgLS1oZWxwCisuQiBcLWgsIFwtXC1oZWxwCiBEaXNwbGF5IGEgYnJpZWYgdXNhZ2UgbWVzc2FnZSBhbmQgdGhlbiBleGl0LgogLlRQCi0uQiAtSAorLkIgXC1ICiBEaXNwbGF5IGEgbGlzdCBvZiBjb25maWd1cmF0aW9uIGZpbGUgZGlyZWN0aXZlcyB1bmRlcnN0b29kIGJ5IHRoZQogdHJhcCBkYWVtb24gYW5kIHRoZW4gZXhpdC4KIC5UUAotLkIgLUkgXGZJWy1dSU5JVExJU1QKKy5CIFwtSSBcZklbXC1dSU5JVExJU1QKIFNwZWNpZmllcyB3aGljaCBtb2R1bGVzIHNob3VsZCAob3Igc2hvdWxkIG5vdCkgYmUgaW5pdGlhbGl6ZWQKIHdoZW4gc25tcHRyYXBkIHN0YXJ0cyB1cC4gIElmIHRoZSBjb21tYS1zZXBhcmF0ZWQKIC5JIElOSVRMSVNUCiBpcyBwcmVjZWRlZAotd2l0aCBhICctJywgaXQgaXMgdGhlIGxpc3Qgb2YgbW9kdWxlcyB0aGF0IHNob3VsZCBcZklub3RcZlIgYmUgc3RhcnRlZC4KK3dpdGggYSAnXC0nLCBpdCBpcyB0aGUgbGlzdCBvZiBtb2R1bGVzIHRoYXQgc2hvdWxkIFxmSW5vdFxmUiBiZSBzdGFydGVkLgogT3RoZXJ3aXNlIHRoaXMgaXMgdGhlIGxpc3Qgb2YgdGhlIFxmSW9ubHlcZlIgbW9kdWxlcyB0aGF0IHNob3VsZCBiZSBzdGFydGVkLgogCiBUbyBnZXQgYSBsaXN0IG9mIGNvbXBpbGVkIG1vZHVsZXMsIHJ1biBzbm1wdHJhcGQgd2l0aCB0aGUgYXJndW1lbnRzCi0uSSAiLURtaWJfaW5pdCAtSCIKKy5JICJcLURtaWJfaW5pdCBcLUgiCiAoYXNzdW1pbmcgZGVidWdnaW5nIHN1cHBvcnQgaGFzIGJlZW4gY29tcGlsZWQgaW4pLgogLlRQCi0uQiAtTFtlZm9zXQorLkIgXC1MW2Vmb3NdCiBTcGVjaWZ5IHdoZXJlIGxvZ2dpbmcgb3V0cHV0IHNob3VsZCBiZSBkaXJlY3RlZCAoc3RhbmRhcmQgZXJyb3Igb3Igb3V0cHV0LAogdG8gYSBmaWxlIG9yIHZpYSBzeXNsb2cpLiAgU2VlIExPR0dJTkcgT1BUSU9OUyBpbiBcZklzbm1wY21kKDEpXGZSIGZvciBkZXRhaWxzLgogLlRQCi0uQlIgLW0gIiBcZklNSUJMSVNUIgorLkJSIFwtbSAiIFxmSU1JQkxJU1QiCiBTcGVjaWZpZXMgYSBjb2xvbiBzZXBhcmF0ZWQgbGlzdCBvZiBNSUIgbW9kdWxlcyB0byBsb2FkIGZvciB0aGlzCiBhcHBsaWNhdGlvbi4gIFRoaXMgb3ZlcnJpZGVzIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBNSUJTLgogU2VlIFxmSXNubXBjbWQoMSlcZlIgZm9yIGRldGFpbHMuCiAuVFAKLS5CUiAtTSAiIFxmSURJUkxJU1QiCisuQlIgXC1NICIgXGZJRElSTElTVCIKIFNwZWNpZmllcyBhIGNvbG9uIHNlcGFyYXRlZCBsaXN0IG9mIGRpcmVjdG9yaWVzIHRvIHNlYXJjaCBmb3IgTUlCcy4KIFRoaXMgb3ZlcnJpZGVzIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBNSUJESVJTLgogU2VlIFxmSXNubXBjbWQoMSlcZlIgZm9yIGRldGFpbHMuCiAuVFAKLS5CUiAtbgorLkJSIFwtbgogRG8gbm90IGF0dGVtcHQgdG8gdHJhbnNsYXRlIHNvdXJjZSBhZGRyZXNzZXMgb2YgaW5jb21pbmcgcGFja2V0cyBpbnRvCiBob3N0bmFtZXMuCiAuVFAKLS5CSSAtcCAiIEZJTEUiCisuQkkgXC1wICIgRklMRSIKIFNhdmUgdGhlIHByb2Nlc3MgSUQgb2YgdGhlIHRyYXAgZGFlbW9uIGluCiAuSVIgRklMRSAiLiIKIC5UUAotLkJJIC1PICIgW2FiZUVmbnFRc1N0VHVVdnhYXSIKKy5CSSBcLU8gIiBbYWJlRWZucVFzU3RUdVV2eFhdIgogU3BlY2lmaWVzIGhvdyBNSUIgb2JqZWN0cyBhbmQgb3RoZXIgb3V0cHV0IHNob3VsZCBiZSBkaXNwbGF5ZWQuCiBTZWUgdGhlIHNlY3Rpb24KIC5CIE9VVFBVVCBPUFRJT05TCkBAIC0xMjgsMjIgKzEyOCwyNSBAQAogLkkgc25tcGNtZCgxKQogbWFudWFsIHBhZ2UgZm9yIGRldGFpbHMuCiAuVFAKLS5CSSAtdAorLkJJIFwtdAogRG8gbm90IGxvZyB0cmFwcyB0byBzeXNsb2cuICBUaGlzIGRpc2FibGVzIGxvZ2dpbmcgdG8gc3lzbG9nLiAgVGhpcyBpcwogdXNlZnVsIGlmIHlvdSB3YW50IHRoZSBzbm1wdHJhcGQgYXBwbGljYXRpb24gdG8KIC5CIG9ubHkKIHJ1biB0cmFwaGFuZGxlIGhvb2tzIGFuZCBub3QgdG8gbG9nIGFueSB0cmFwcyB0byBhbnkgbG9jYXRpb24uCiAuVFAKLS5CIC12LCAtLXZlcnNpb24KKy5CIFwtdiwgXC1cLXZlcnNpb24KIFByaW50IHZlcnNpb24gaW5mb3JtYXRpb24gZm9yIHRoZSB0cmFwIGRhZW1vbiBhbmQgdGhlbiBleGl0LgogLlRQCi0uQiAteCBcZklBRERSRVNTCisuQiBcLXggXGZJQUREUkVTUwogQ29ubmVjdCB0byB0aGUgQWdlbnRYIG1hc3RlciBhZ2VudCBvbiB0aGUgc3BlY2lmaWVkIGFkZHJlc3MsCiByYXRoZXIgdGhhbiB0aGUgZGVmYXVsdCBBR0VOVFhfU09DS0VULgogU2VlIFxmSXNubXBkKDgpXGZSIGZvciBkZXRhaWxzIG9mIHRoZSBmb3JtYXQgb2Ygc3VjaCBhZGRyZXNzZXMuCiAuVFAKLS5CSSAtLSAibmFtZSI9InZhbHVlIgotQWxsb3dzIHRvIHNwZWNpZnkgYW55IHRva2VuICgibmFtZSIpIHN1cHBvcnRlZCBpbiB0aGUKKy5CIFwtWAorRG8gbm90IGNvbm5lY3QgdG8gYSBBZ2VudFggbWFzdGVyIGFnZW50CisuVFAKKy5CSSBcLVwtICJuYW1lIj0idmFsdWUiCitBbGxvd3Mgb25lIHRvIHNwZWNpZnkgYW55IHRva2VuICgibmFtZSIpIHN1cHBvcnRlZCBpbiB0aGUKIC5JIHNubXB0cmFwZC5jb25mCiBmaWxlIGFuZCBzZXRzIGl0cyB2YWx1ZSB0byAidmFsdWUiLiBPdmVycmlkZXMgdGhlIGNvcnJlc3BvbmRpbmcgdG9rZW4gaW4gdGhlCiAuSSBzbm1wdHJhcGQuY29uZgpAQCAtMTYyLDIxICsxNjUsMjYgQEAKIGEgbGl0ZXJhbCAlCiAuVFAKIC5CICVhCi10aGUgY29udGVudHMgb2YgdGhlIGFnZW50LWFkZHIgZmllbGQgb2YgdGhlIFBEVSAodjEgVFJBUHMgb25seSkKK3RoZSBjb250ZW50cyBvZiB0aGUgYWdlbnRcLWFkZHIgZmllbGQgb2YgdGhlIFBEVSAodjEgVFJBUHMgb25seSkKIC5UUAogLkIgJUEKLXRoZSBob3N0bmFtZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBjb250ZW50cyBvZiB0aGUgYWdlbnQtYWRkciBmaWVsZCBvZgotdGhlIFBEVSwgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgdGhlIGNvbnRlbnRzIG9mIHRoZSBhZ2VudC1hZGRyIGZpZWxkCit0aGUgaG9zdG5hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgY29udGVudHMgb2YgdGhlIGFnZW50XC1hZGRyIGZpZWxkIG9mCit0aGUgUERVLCBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSB0aGUgY29udGVudHMgb2YgdGhlIGFnZW50XC1hZGRyIGZpZWxkCiBvZiB0aGUgUERVICh2MSBUUkFQcyBvbmx5KS4KIC5UUAogLkIgJWIKLVBEVSBzb3VyY2UgYWRkcmVzcyAoTm90ZTogdGhpcyBpcyBub3QgbmVjZXNzYXJpbHkgYW4gSVB2NAotYWRkcmVzcykKK1BEVSB0cmFuc3BvcnQgYWRkcmVzcyAoTm90ZTogdGhpcyBpcyBub3QgbmVjZXNzYXJpbHkgYW4gSVB2NAorYWRkcmVzcykuCisuYnIKK1NvbWV0aGluZyBsaWtlICJbVURQOiBbMTcyLjE2LjEwLjEyXToyMzQ1Ni0+WzEwLjE1MC4wLjhdXSIKIC5UUAogLkIgJUIKIFBEVSBzb3VyY2UgaG9zdG5hbWUgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgUERVIHNvdXJjZSBhZGRyZXNzIChzZWUKIG5vdGUgYWJvdmUpIAogLlRQCisuQiAlRQorU05NUHYzIGNvbnRleHQgZW5naW5lIGlkCisuVFAKIC5CICVoCiBjdXJyZW50IGhvdXIgb24gdGhlIGxvY2FsIHN5c3RlbQogLlRQCkBAIC0yMTAsMTMgKzIxOCwxOSBAQAogLkIgJU4KIGVudGVycHJpc2Ugc3RyaW5nCiAuVFAKLS5CICVxCi10cmFwIHN1Yi10eXBlIChudW1lcmljLCBpbiBkZWNpbWFsKQotLlRQCiAuQiAlUAogc2VjdXJpdHkgaW5mb3JtYXRpb24gZnJvbSB0aGUgUERVIChjb21tdW5pdHkgbmFtZSBmb3IgdjEvdjJjLAogdXNlciBhbmQgY29udGV4dCBmb3IgdjMpCiAuVFAKKy5CICVxCit0cmFwIHN1Yi10eXBlIChudW1lcmljLCBpbiBkZWNpbWFsKQorLlRQCisuQiAlcworU05NUCB2ZXJzaW9uIG51bWJlciAoMDogdjEsIDE6IHYyYywgMjogdjMpCisuVFAKKy5CICVTCitTTk1QdjMgc2VjdXJpdHkgbW9kZWwgdmVyc2lvbiBudW1iZXIKKy5UUAogLkIgJXQKIGRlY2ltYWwgbnVtYmVyIG9mIHNlY29uZHMgc2luY2UgdGhlIG9wZXJhdGluZyBzeXN0ZW0gZXBvY2ggKGFzCiByZXR1cm5lZCBieQpAQCAtMjI1LDYgKzIzOSw5IEBACiAuQiAlVAogdGhlIHZhbHVlIG9mIHRoZSBcZkNzeXNVcFRpbWUuMFxmUiB2YXJiaW5kIGluIHNlY29uZHMKIC5UUAorLkIgJXUKK1NOTVB2MyBzZWN1cml0eSBuYW1lLCBvciB2MS92MmMgY29tbXVuaXR5IG5hbWUKKy5UUAogLkIgJXYKIGxpc3Qgb2YgdmFyaWFibGUtYmluZGluZ3MgZnJvbSB0aGUgbm90aWZpY2F0aW9uIHBheWxvYWQuCiBUaGVzZSB3aWxsIGJlIHNlcGFyYXRlZCBieSBhIHRhYiwgCkBAIC0yNTQsNyArMjcxLDcgQEAKIGFuZCBhIGZsYWcgdmFsdWUuIFRoZSBmb2xsb3dpbmcgZmxhZ3MgYXJlIHN1cHBvcnRlZDoKIC5SUyA0IAogLlRQIDQKLS5CIC0KKy5CIFwtCiBsZWZ0IGp1c3RpZnkKIC5UUAogLkIgMApAQCAtMjc5LDcgKzI5Niw3IEBACiAuUFAKIC5SUwogLm5mCi1zbm1wdHJhcGQgLVAgLUYgIiUwMi4yaDolMDIuMmogVFJBUCV3LiVxIGZyb20gJUFcZW4iCitzbm1wdHJhcGQgXC1QIFwtRiAiJTAyLjJoOiUwMi4yaiBUUkFQJXcuJXEgZnJvbSAlQVxlbiIKIC5maQogLlJFCiAuUFAKQEAgLTI4Nyw3ICszMDQsNyBAQAogLlBQCiAuUlMKIC5uZgotc25tcHRyYXBkIC1QIC1GICIlIzAyLjJoOiUjMDIuMmogVFJBUCV3LiVxIGZyb20gJUFcZW4iCitzbm1wdHJhcGQgXC1QIFwtRiAiJSMwMi4yaDolIzAyLjJqIFRSQVAldy4lcSBmcm9tICVBXGVuIgogLmZpCiAuUkUKIC5TSCBMSVNURU5JTkcgQUREUkVTU0VTCkBAIC0zMDEsMjAgKzMxOCwyMCBAQAogLkkgc25tcGQoOCkKIG1hbnVhbCBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBmb3JtYXQgb2YgbGlzdGVuaW5nCiBhZGRyZXNzZXMuCi0uU0ggTk9USUZJQ0FUSU9OLUxPRy1NSUIgU1VQUE9SVAorLlNIIE5PVElGSUNBVElPTlwtTE9HXC1NSUIgU1VQUE9SVAogQXMgb2YgbmV0LXNubXAgNS4wLCB0aGUgc25tcHRyYXBkIGFwcGxpY2F0aW9uIHN1cHBvcnRzIHRoZQotTk9USUZJQ0FUSU9OLUxPRy1NSUIuICBJdCBkb2VzIHRoaXMgYnkgb3BlbmluZyBhbiBBZ2VudFggc3ViYWdlbnQKK05PVElGSUNBVElPTlwtTE9HXC1NSUIuICBJdCBkb2VzIHRoaXMgYnkgb3BlbmluZyBhbiBBZ2VudFggc3ViYWdlbnQKIGNvbm5lY3Rpb24gdG8gdGhlIG1hc3RlciBzbm1wZCBhZ2VudCBhbmQgcmVnaXN0ZXJpbmcgdGhlIG5vdGlmaWNhdGlvbgogbG9nIHRhYmxlcy4gIEFzIGxvbmcgYXMgdGhlIHNubXBkIGFwcGxpY2F0aW9uIGlzIHN0YXJ0ZWQgZmlyc3QsIGl0CiB3aWxsIGF0dGFjaCBpdHNlbGYgdG8gaXQgYW5kIHRodXMgeW91IHNob3VsZCBiZSBhYmxlIHRvIHZpZXcgdGhlIGxhc3QKIHJlY29yZGVkIG5vdGlmaWNhdGlvbnMgdmlhIHRoZSBubG1Mb2dUYWJsZSBhbmQgbmxtTG9nVmFyaWFibGVUYWJsZS4KIFNlZSB0aGUgc25tcHRyYXBkLmNvbmYgZmlsZSBhbmQgdGhlICJkb05vdFJldGFpbk5vdGlmaWNhdGlvbkxvZ3MiIHRva2VuCiBmb3IgdHVybmluZwotb2ZmIHRoaXMgc3VwcG9ydC4gIFNlZSB0aGUgTk9USUZJQ0FUSU9OLUxPRy1NSUIgZm9yIG1vcmUgZGV0YWlscyBhYm91dAorb2ZmIHRoaXMgc3VwcG9ydC4gIFNlZSB0aGUgTk9USUZJQ0FUSU9OXC1MT0dcLU1JQiBmb3IgbW9yZSBkZXRhaWxzIGFib3V0CiB0aGUgTUlCIGl0c2VsZi4KIC5TSCBFWFRFTlNJQklMSVRZIEFORCBDT05GSUdVUkFUSU9OCiBTZWUgdGhlCiAuSSBzbm1wdHJhcGQuY29uZig1KQogbWFudWFsIHBhZ2UuCiAuU0ggIlNFRSBBTFNPIgotc25tcGNtZCgxKSwgc25tcGQoOCksIHByaW50ZigzKSwgc25tcHRyYXBkLmNvbmYoNSksIHN5c2xvZyg4KSwgdmFyaWFibGVzKDUpCitzbm1wY21kKDEpLCBzbm1wZCg4KSwgcHJpbnRmKDMpLCBzbm1wdHJhcGQuY29uZig1KSwgc3lzbG9nKDgpLCB0cmFwdG9lbWFpbCgxKSwgdmFyaWFibGVzKDUpCmRpZmYgLS1naXQgYS9tYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYgYi9tYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYKaW5kZXggZTIzOTRjYi4uMWJiYmZiYiAxMDA2NDQKLS0tIGEvbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmCisrKyBiL21hbi9zbm1wdHJhcGQuY29uZi41LmRlZgpAQCAtMSw0ICsxLDQgQEAKLS5USCBTTk1QVFJBUEQuQ09ORiA1ICIxOSBGZWIgMjAwOSIgVlZFUlNJT05JTkZPICJOZXQtU05NUCIKKy5USCBTTk1QVFJBUEQuQ09ORiA1ICIxMyBNYXIgMjAxNCIgVlZFUlNJT05JTkZPICJOZXQtU05NUCIKIC5TSCBOQU1FCiBzbm1wdHJhcGQuY29uZiAtIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgdGhlIE5ldC1TTk1QIG5vdGlmaWNhdGlvbiByZWNlaXZlcgogLlNIIERFU0NSSVBUSU9OCkBAIC03LDcgKzcsNyBAQAogKGFuZCBJTkZPUk0gcmVxdWVzdHMpIHNob3VsZCBiZSBwcm9jZXNzZWQuCiBUaGlzIGZpbGUgKFxmQnNubXB0cmFwZC5jb25mXGZSKSBjYW4gYmUgbG9jYXRlZCBpbgogb25lIG9mIHNldmVyYWwgbG9jYXRpb25zLCBhcyBkZXNjcmliZWQgaW4gdGhlCi0uSSBzbm1wX2NvbmZpZyg1KQorLklSIHNubXBfY29uZmlnICg1KQogbWFudWFsIHBhZ2UuCiAuU0ggSU1QT1JUQU5UCiBQcmV2aW91c2x5LApAQCAtMzIsMjIgKzMyLDIyIEBACiBTZWUgdGhlIHNlY3Rpb24gCiAuQiBMSVNURU5JTkcgQUREUkVTU0VTCiBpbiB0aGUKLS5JIHNubXBkKDgpCisuSVIgc25tcGQgKDgpCiBtYW51YWwgcGFnZSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZm9ybWF0IG9mIGxpc3RlbmluZwogYWRkcmVzc2VzLgogLklQCiBUaGUgZGVmYXVsdCBiZWhhdmlvdXIgaXMgdG8KIGxpc3RlbiBvbiBVRFAgcG9ydCAxNjIgb24gYWxsIElQdjQgaW50ZXJmYWNlcy4KIC5JUCAiZG9Ob3RSZXRhaW5Ob3RpZmljYXRpb25Mb2dzIHllcyIKLWRpc2FibGVzIHN1cHBvcnQgZm9yIHRoZSBOT1RJRklDQVRJT04tTE9HLU1JQi4KK2Rpc2FibGVzIHN1cHBvcnQgZm9yIHRoZSBOT1RJRklDQVRJT05cLUxPR1wtTUlCLgogTm9ybWFsbHkgdGhlIHNubXB0cmFwZCBwcm9ncmFtIGtlZXBzIGEgcmVjb3JkIG9mIHRoZSB0cmFwcwogcmVjZWl2ZWQsIHdoaWNoIGNhbiBiZSByZXRyaWV2ZWQgYnkgcXVlcnlpbmcKIHRoZSBcZkNubG1Mb2dUYWJsZVxmUiBhbmQgXGZDbmxtTG9ndmFyaWFibGVUYWJsZVxmUiB0YWJsZXMuICAKIFRoaXMgZGlyZWN0aXZlIGNhbiBiZSB1c2VkIHRvIHN1cHByZXNzIHRoaXMgYmVoYXZpb3VyLgogLklQCiBTZWUgdGhlIAotLkkgc25tcHRyYXBkKDgpIAotbWFudWFsIHBhZ2UgYW5kIHRoZSBOT1RJRklDQVRJT04tTE9HLU1JQiBmb3IgZGV0YWlscy4KKy5JUiBzbm1wdHJhcGQgKDgpIAorbWFudWFsIHBhZ2UgYW5kIHRoZSBOT1RJRklDQVRJT05cLUxPR1wtTUlCIGZvciBkZXRhaWxzLgogLklQICJkb05vdExvZ1RyYXBzIHllcyIKIGRpc2FibGVzIHRoZSBsb2dnaW5nIG9mIG5vdGlmaWNhdGlvbnMgYWx0b2dldGhlci4KIFRoaXMgaXMgdXNlZnVsIGlmIHRoZSBcZkJzbm1wdHJhcGRcZlIgYXBwbGljYXRpb24gc2hvdWxkCkBAIC04MSwxNCArODEsMTYgQEAKIGZvciBhIHBhcnRpY3VsYXIgY2F0ZWdvcnkgb2Ygbm90aWZpY2F0aW9uLiBCdXQgaXQgaXMgcGVyZmVjdGx5CiBwb3NzaWJsZSAoZXZlbiBkZXNpcmFibGUpIHRvIGxpbWl0IGNlcnRhaW4gbm90aWZpY2F0aW9uIHNvdXJjZXMgdG8KIHNlbGVjdGVkIHByb2Nlc3Npbmcgb25seS4KLS5JUCAiYXV0aENvbW11bml0eSAgIFRZUEVTIENPTU1VTklUWSAgW1NPVVJDRSBbT0lEIHwgLXYgVklFVyBdXSIKKy5JUCAiYXV0aENvbW11bml0eSAgIFRZUEVTIENPTU1VTklUWSAgW1NPVVJDRSBbT0lEIHwgXC12IFZJRVcgXV0iCiBhdXRob3Jpc2VzIHRyYXBzIChhbmQgU05NUHYyYyBJTkZPUk0gcmVxdWVzdHMpIHdpdGggdGhlIHNwZWNpZmllZAogY29tbXVuaXR5IHRvIHRyaWdnZXIgdGhlIHR5cGVzIG9mIHByb2Nlc3NpbmcgbGlzdGVkLgogQnkgZGVmYXVsdCwgdGhpcyB3aWxsIGFsbG93IGFueSBub3RpZmljYXRpb24gdXNpbmcgdGhpcyBjb21tdW5pdHkKIHRvIGJlIHByb2Nlc3NlZC4gIFRoZSBTT1VSQ0UgZmllbGQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGF0IHRoZQogY29uZmlndXJhdGlvbiBzaG91bGQgb25seSBhcHBseSB0byBub3RpZmljYXRpb25zIHJlY2VpdmVkIGZyb20KLXBhcnRpY3VsYXIgc291cmNlcyAtIHNlZSBcZklzbm1wZC5jb25mKDUpXGZSIGZvciBtb3JlIGRldGFpbHMuCi0uSVAgImF1dGhVc2VyICAgVFlQRVMgWy1zIE1PREVMXSBVU0VSICBbTEVWRUwgW09JRCB8IC12IFZJRVcgXV0iCitwYXJ0aWN1bGFyIHNvdXJjZXMgLSBzZWUKKy5JUiBzbm1wZC5jb25mICg1KQorZm9yIG1vcmUgZGV0YWlscy4KKy5JUCAiYXV0aFVzZXIgICBUWVBFUyBbXC1zIE1PREVMXSBVU0VSICBbTEVWRUwgW09JRCB8IFwtdiBWSUVXIF1dIgogYXV0aG9yaXNlcyBTTk1QdjMgbm90aWZpY2F0aW9ucyB3aXRoIHRoZSBzcGVjaWZpZWQKIHVzZXIgdG8gdHJpZ2dlciB0aGUgdHlwZXMgb2YgcHJvY2Vzc2luZyBsaXN0ZWQuCiBCeSBkZWZhdWx0LCB0aGlzIHdpbGwgYWNjZXB0IGF1dGhlbnRpY2F0ZWQgcmVxdWVzdHMuCkBAIC05Niw3ICs5OCw3IEBACiBiZSB1c2VkIHRvIGFsbG93IHVuYXV0aGVudGljYXRlZCBub3RpZmljYXRpb25zIChcZklub2F1dGhcZlIpLAogb3IgdG8gcmVxdWlyZSBlbmNyeXB0aW9uIChcZklwcml2XGZSKSwganVzdCBhcyBmb3IgdGhlIFNOTVAgYWdlbnQuCiAuSVAKLVdpdGggYm90aCBvZiB0aGVzZSBkaXJlY3RpdmVzLCB0aGUgT0lEIChvciBcZkktdiBWSUVXXGZSKSBmaWVsZAorV2l0aCBib3RoIG9mIHRoZXNlIGRpcmVjdGl2ZXMsIHRoZSBPSUQgKG9yIFxmSVwtdiBWSUVXXGZSKSBmaWVsZAogY2FuIGJlIHVzZWQgdG8gcmV0cmljdCB0aGlzIGNvbmZpZ3VyYXRpb24gdG8gdGhlIHByb2Nlc3Npbmcgb2YKIHBhcnRpY3VsYXIgbm90aWZpY2F0aW9ucy4KIC5SUwpAQCAtMTA2LDE2ICsxMDgsMTggQEAKIGluY29taW5nIG5vdGlmaWNhdGlvbi4gIEl0IGlzIG5vdCBhcHBsaWVkIHRvIHRoZSBwYXlsb2FkIHZhcmJpbmRzCiBoZWxkIHdpdGhpbiB0aGF0IG5vdGlmaWNhdGlvbi4KIC5SRQotLklQICJhdXRoR3JvdXAgIFRZUEVTIFstcyBNT0RFTF0gR1JPVVAgIFtMRVZFTCBbT0lEIHwgLXYgVklFVyBdXSIKLS5JUCAiYXV0aEFjY2VzcyBUWVBFUyBbLXMgTU9ERUxdIEdST1VQIFZJRVcgIFtMRVZFTCBbQ09OVEVYVF1dIgorLklQICJhdXRoR3JvdXAgIFRZUEVTIFtcLXMgTU9ERUxdIEdST1VQICBbTEVWRUwgW09JRCB8IFwtdiBWSUVXIF1dIgorLklQICJhdXRoQWNjZXNzIFRZUEVTIFtcLXMgTU9ERUxdIEdST1VQIFZJRVcgIFtMRVZFTCBbQ09OVEVYVF1dIgogLklQICJzZXRBY2Nlc3MgR1JPVVAgQ09OVEVYVCBNT0RFTCBMRVZFTCBQUkVGSVggVklFVyBUWVBFUyIKIGF1dGhvcmlzZSBub3RpZmljYXRpb25zIGluIHRoZSBzcGVjaWZpZWQgR1JPVVAKIChjb25maWd1cmVkIHVzaW5nIHRoZSBcZklncm91cFxmUiBkaXJlY3RpdmUpCiB0byB0cmlnZ2VyIHRoZSB0eXBlcyBvZiBwcm9jZXNzaW5nIGxpc3RlZC4KLVNlZSBcZklzbm1wZC5jb25mKDUpXGZSIGZvciBtb3JlIGRldGFpbHMuCitTZWUKKy5JUiBzbm1wZC5jb25mICg1KQorZm9yIG1vcmUgZGV0YWlscy4KIC5JUCAiY3JlYXRlVXNlciBbLWUgIEVOR0lORUlEXSB1c2VybmFtZSAoTUQ1fFNIQSkgYXV0aHBhc3NwaHJhc2UgW0RFU3xBRVNdIgogU2VlIHRoZSAKLS5JIHNubXBkLmNvbmYoNSkKKy5JUiBzbm1wZC5jb25mICg1KQogbWFudWFsIHBhZ2UgZm9yIGEgZGVzY3JpcHRpb24gb2YgaG93IHRvIGNyZWF0ZSBTTk1QdjMgdXNlcnMuICBUaGlzCiBpcyByb3VnaGx5IHRoZSBzYW1lLCBidXQgdGhlIGZpbGUgbmFtZSBjaGFuZ2VzIHRvIHNubXB0cmFwZC5jb25mIGZyb20KIHNubXBkLmNvbmYuCkBAIC0xMzEsOSArMTM1LDM4IEBACiBzcGVjaWZ5IHRoZSBmb3JtYXQgdXNlZCB0byBkaXNwbGF5IFNOTVB2MSBUUkFQcyBhbmQgU05NUHYyCiBub3RpZmljYXRpb25zIHJlc3BlY3RpdmVseS4gIE5vdGUgdGhhdCBTTk1QdjJjIGFuZCBTTk1QdjMKIGJvdGggdXNlIHRoZSBzYW1lIFNOTVB2MiBQRFUgZm9ybWF0LgorLklQICJmb3JtYXQgREVTVElOQVRJT04gRk9STUFUIgorc3BlY2lmeSB0aGUgZm9ybWF0IHVzZWQgZm9yIGRpZmZlcmVudCBkZXN0aW5hdGlvbnMuCitERVNUSU5BVElPTiBpcyBvbmUgb2Y6CisuSVIgcHJpbnQgIiwgIiBwcmludDEgIiwgIiBwcmludDIgIiwgIiAKKy5JUiBzeXNsb2cgIiwgIiBzeXNsb2cxICIsICIgc3lzbG9nMiAiLCAiIAorLklSIGV4ZWN1dGUgIiwgIiBleGVjdXRlMSAiLCAiIGV4ZWN1dGUyIC4KKy5JIHByaW50MQoraXMgdXNlZCBmb3IgcHJpbnRpbmcgU05NUHYxIHRyYXBzLAorLkkgcHJpbnQyCitpcyBmb3IgU05NUHYyLgorLkkgcHJpbnQKK2lzIHVzZWQgZm9yIGJvdGggdmVyc2lvbnMuCisuSSBzeXNsb2cKK2lzIHNpbWlsYXJseSB1c2VkIHdoZW4gc2VuZGluZyB0cmFwcyB0byBzeXNsb2csIGFuZAorLkkgZXhlY3V0ZQordXNlZCB3aGVuIHNlbmRpbmcgdHJhcHMgdG8gYSBwcm9ncmFtIHN1Y2ggYXMKKy5JUiB0cmFwdG9lbWFpbCAoMSkuCisuSVAKK1RoZSBkZWZhdWx0IGZvcm1hdHMgYXJlCisuYnIKKy5JIGZvcm1hdCBwcmludDEgJS40eS0lLjJtLSUuMmwgJS4yaDolLjJqOiUuMmsgJUIgWyViXSAodmlhICVBIFslYV0pOiAlTlxlblxldCVXIFRyYXAgKCVxKSBVcHRpbWU6ICUjVFxlbiV2XGVuCisuYnIKKy5JIGZvcm1hdCBwcmludDIgJS40eS0lLjJtLSUuMmwgJS4yaDolLjJqOiUuMmsgJUIgWyViXTpcZW4ldlxlbgorLmJyCisuSSBmb3JtYXQgc3lzbG9nMSAlYTogJVcgVHJhcCAoJXEpIFVwdGltZTogJSNUJSN2XGVuCisuYnIKKy5JIGZvcm1hdCBzeXNsb2cyICVCIFslYl06IFRyYXAgJSN2XGVuCisuYnIKKy5JIGZvcm1hdCBleGVjdXRlICVCXGVuJWJcZW4lVlxlbiV2XGVuCiAuSVAKIFNlZQotLklSIHNubXB0cmFwZCg4KQorLklSIHNubXB0cmFwZCAoOCkKIGZvciB0aGUgbGF5b3V0IGNoYXJhY3RlcnMgYXZhaWxhYmxlLgogLklQICJpZ25vcmVBdXRoRmFpbHVyZSB5ZXMiCiBpbnN0cnVjdHMgdGhlIHJlY2VpdmVyIHRvIGlnbm9yZSBcZklhdXRoZW50aWNhdGlvbkZhaWx1cmVcZlIgdHJhcHMuCkBAIC0xNDksMTIgKzE4MiwxNCBAQAogc3BlY2lmaWVzIHdoZXJlIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIGxvZ2dlZCAtIHRvIHN0YW5kYXJkCiBvdXRwdXQsIHN0YW5kYXJkIGVycm9yLCBhIHNwZWNpZmllZCBmaWxlIG9yIHZpYSBcZklzeXNsb2dcZlIuCiBTZWUgdGhlIHNlY3Rpb24gTE9HR0lORyBPUFRJT05TIGluIHRoZQotXGZJc25tcGNtZCgxKVxmUiBtYW51YWwgcGFnZSBmb3IgZGV0YWlscy4KKy5JUiBzbm1wY21kICgxKQorbWFudWFsIHBhZ2UgZm9yIGRldGFpbHMuCiAuSVAgIm91dHB1dE9wdGlvbiBzdHJpbmciCiBzcGVjaWZpZXMgdmFyaW91cyBjaGFyYWN0ZXJpc3RpY3Mgb2YgaG93IE9JRHMgYW5kIG90aGVyIHZhbHVlcwogc2hvdWxkIGJlIGRpc3BsYXllZC4KIFNlZSB0aGUgc2VjdGlvbiBPVVRQVVQgT1BUSU9OUyBpbiB0aGUKLVxmSXNubXBjbWQoMSlcZlIgbWFudWFsIHBhZ2UgZm9yIGRldGFpbHMuCisuSVIgc25tcGNtZCAoMSkKK21hbnVhbCBwYWdlIGZvciBkZXRhaWxzLgogLlNIIE15U1FMIExvZ2dpbmcKIFRoZXJlIGFyZSB0d28gY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgdGhhdCB3b3JrIHRvZ2V0aGVyIHRvIGNvbnRyb2wKIHdoZW4gcXVldWVkIHRyYXBzIGFyZSBsb2dnZWQgdG8gdGhlIE15U1FMIGRhdGFiYXNlLiBBIG5vbi16ZXJvCkBAIC0yMDEsMTQgKzIzNiwxNyBAQAogTm90ZSB0aGF0IHRoaXMgd2lsbCBhbHdheXMgdXNlIHRoZSBTTk1QdjItc3R5bGUgbm90aWZpY2F0aW9uIGZvcm1hdCwgd2l0aAogU05NUHYxIHRyYXBzIGJlaW5nIGNvbnZlcnRlZCBhcyBwZXIgUkZDIDI1NzYsIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gdGhlCiBwcm9ncmFtLgotVGhlIGlucHV0IGZvcm1hdCBpcyBhcyBmb2xsb3dzLCBvbmUgZW50cnkgcGVyIGxpbmU6CitUaGUgaW5wdXQgZm9ybWF0IGlzLCBpZiB5b3UgdXNlIHRoZSBkZWZhdWx0IHNldCBieQordGhlICJmb3JtYXQgZXhlY3V0ZSAlQlxlbiViXGVuJVZcZW4ldlxlbiIsIG9uZSBlbnRyeSBwZXIgbGluZToKIC5SUwogLklQIEhPU1ROQU1FCiBUaGUgbmFtZSBvZiB0aGUgaG9zdCB0aGF0IHNlbnQgdGhlIG5vdGlmaWNhdGlvbiwgYXMgZGV0ZXJtaW5lZCBieQotLklSIGdldGhvc3RieWFkZHIoMykgLgorLklSIGdldGhvc3RieWFkZHIgKDMpLgogLmJyCi0uSVAgSVBBRERSRVNTCi1UaGUgSVAgYWRkcmVzcyBvZiB0aGUgaG9zdCB0aGF0IHNlbnQgdGhlIG5vdGlmaWNhdGlvbi4KKy5JUCBBRERSRVNTCitUaGUgdHJhbnNwb3J0IGFkZHJlc3MsIGxpa2UKKy5icgorIltVRFA6IFsxNzIuMTYuMTAuMTJdOjIzNDU2LT5bMTAuMTUwLjAuOF1dIgogLlwiCiAuXCIgWFhYIC0gV2hhdCBhYm91dCBub24tSVB2NCB0cmFuc3BvcnRzPwogLlwiCkBAIC0yMTksMTAgKzI1NywxMCBAQAogVGhlIGZvcm1hdCBvZiBib3RoIG9mIHRoZXNlIGFyZSBjb250cm9sbGVkIGJ5IHRoZSBcZklvdXRwdXRPcHRpb25cZlIKIGRpcmVjdGl2ZSAob3Igc2ltaWxhciBjb25maWd1cmF0aW9uKS4KIC5JUAotVGhlIGZpcnN0IE9JRCBzaG91bGQgYWx3YXlzIGJlIFxmQ1NOTVB2Mi1NSUI6OnN5c1VwVGltZS4wXGZSLAotYW5kIHRoZSBzZWNvbmQgc2hvdWxkIGJlIFxmQ1NOTVB2Mi1NSUI6OnNubXBUcmFwT0lELjBcZlIuCitUaGUgZmlyc3QgT0lEIHNob3VsZCBhbHdheXMgYmUgXGZDU05NUHYyXC1NSUI6OnN5c1VwVGltZS4wXGZSLAorYW5kIHRoZSBzZWNvbmQgc2hvdWxkIGJlIFxmQ1NOTVB2MlwtTUlCOjpzbm1wVHJhcE9JRC4wXGZSLgogVGhlIHJlbWFpbmluZyBsaW5lcyB3aWxsIGNvbnRhaW4gdGhlIHBheWxvYWQgdmFyYmluZCBsaXN0LgotRm9yIFNOTVB2MSB0cmFwcywgdGhlIGZpbmFsIE9JRCB3aWxsIGJlIFxmQ1NOTVB2Mi1NSUI6OnNubXBUcmFwRW50ZXJwcmlzZS4wXGZSLgorRm9yIFNOTVB2MSB0cmFwcywgdGhlIGZpbmFsIE9JRCB3aWxsIGJlIFxmQ1NOTVB2MlwtTUlCOjpzbm1wVHJhcEVudGVycHJpc2UuMFxmUi4KIC5icgogLklQIEV4YW1wbGU6CiBBIFxmQnRyYXB0b2VtYWlsXGZSIHNjcmlwdCBoYXMgYmVlbiBpbmNsdWRlZCBpbiB0aGUgTmV0LVNOTVAgcGFja2FnZSB0aGF0CkBAIC0yMzAsNyArMjY4LDcgQEAKIC5icgogLlJTCiAuUAotdHJhcGhhbmRsZSBkZWZhdWx0IC91c3IvYmluL3BlcmwgQklORElSL3RyYXB0b2VtYWlsIC1zIG15c210cC5zb21ld2hlcmUuY29tIC1mIGFkbWluQHNvbWV3aGVyZS5jb20gbWVAc29tZXdoZXJlLmNvbQordHJhcGhhbmRsZSBkZWZhdWx0IC91c3IvYmluL3BlcmwgQklORElSL3RyYXB0b2VtYWlsIFwtcyBteXNtdHAuc29tZXdoZXJlLmNvbSBcLWYgYWRtaW5Ac29tZXdoZXJlLmNvbSBtZUBzb21ld2hlcmUuY29tCiAuUkUKIC5SRQogLklQICJmb3J3YXJkIE9JRHxkZWZhdWx0IERFU1RJTkFUSU9OIgpAQCAtMjQyLDcgKzI4MCw3IEBACiBTZWUgdGhlIHNlY3Rpb24gCiAuQiBMSVNURU5JTkcgQUREUkVTU0VTCiBpbiB0aGUKLS5JIHNubXBkKDgpCisuSVIgc25tcGQgKDgpCiBtYW51YWwgcGFnZSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZm9ybWF0IG9mIGxpc3RlbmluZwogYWRkcmVzc2VzLgogLlJFCkBAIC0yNjIsNSArMzAwLDUgQEAKIC5TSCBGSUxFUwogU1lTQ09ORkRJUi9zbm1wL3NubXB0cmFwZC5jb25mCiAuU0ggIlNFRSBBTFNPIgotc25tcF9jb25maWcoNSksIHNubXB0cmFwZCg4KSwgc3lzbG9nKDgpLCB2YXJpYWJsZXMoNSksIHNubXBkLmNvbmYoNSksIG5ldHNubXBfY29uZmlnX2FwaSgzKS4KK3NubXBfY29uZmlnKDUpLCBzbm1wdHJhcGQoOCksIHN5c2xvZyg4KSwgdHJhcHRvZW1haWwoMSksIHZhcmlhYmxlcyg1KSwgbmV0c25tcF9jb25maWdfYXBpKDMpLgogCmRpZmYgLS1naXQgYS9tYW4vc25tcHVzbS4xLmRlZiBiL21hbi9zbm1wdXNtLjEuZGVmCmluZGV4IDIxNzc1OTIuLjkwNjEyMTMgMTAwNjQ0Ci0tLSBhL21hbi9zbm1wdXNtLjEuZGVmCisrKyBiL21hbi9zbm1wdXNtLjEuZGVmCkBAIC0zLDcgKzMsNyBAQAogc25tcHVzbSAtIGNyZWF0ZXMgYW5kIG1haW50YWlucyBTTk1QdjMgdXNlcnMgb24gYSBuZXR3b3JrIGVudGl0eQogLlNIIFNZTk9QU0lTCiAuQiBzbm1wdXNtCi1bQ09NTU9OIE9QVElPTlNdIFstQ3ddIEFHRU5UCitbQ09NTU9OIE9QVElPTlNdIFtcLUN3XSBBR0VOVAogLkIgY3JlYXRlCiBVU0VSIFtDTE9ORUZST00tVVNFUl0KIC5icgpAQCAtMTgsMTcgKzE4LDE3IEBACiBVU0VSIENMT05FRlJPTS1VU0VSCiAuYnIKIC5CIHNubXB1c20KLVtDT01NT04gT1BUSU9OU10gWy1DYV0gWy1DeF0gQUdFTlQKK1tDT01NT04gT1BUSU9OU10gW1wtQ2FdIFtcLUN4XSBBR0VOVAogLkIgcGFzc3dkCiBPTEQtUEFTU1BIUkFTRSBORVctUEFTU1BIUkFTRSBbVVNFUl0KIC5icgogLkIgc25tcHVzbQotW0NPTU1PTiBPUFRJT05TXSA8LUNhIHwgLUN4PiAtQ2sgQUdFTlQKK1tDT01NT04gT1BUSU9OU10gPFwtQ2EgfCBcLUN4PiBcLUNrIEFHRU5UCiAuQiBwYXNzd2QKIE9MRC1LRVktT1ItUEFTU1BIUkFTRSBORVctS0VZLU9SLVBBU1NQSFJBU0UgW1VTRVJdCiAuYnIKIC5CIHNubXB1c20KLVtDT01NT04gT1BUSU9OU10gWy1DYV0gWy1DeF0gQUdFTlQKK1tDT01NT04gT1BUSU9OU10gW1wtQ2FdIFtcLUN4XSBBR0VOVAogLkIgY2hhbmdla2V5CiBbVVNFUl0KIApAQCAtNDYsMTIgKzQ2LDEyIEBACiAuQiBzbm1wdXNtCiBjb21tYW5kczoKIC5UUAotLkJJIC1DRSAiIEVOR0lORS1JRCIKKy5CSSBcLUNFICIgRU5HSU5FLUlEIgogU2V0IHVzbVVzZXJFbmdpbmVJRCB0byBiZSB1c2VkIGFzIHBhcnQgb2YgdGhlIGluZGV4IG9mIHRoZSB1c21Vc2VyVGFibGUuCi1EZWZhdWx0IGlzIHRvIHVzZSB0aGUgY29udGV4dEVuZ2luZUlEIChzZXQgdmlhIC1FIG9yIHByb2JlZCkgYXMgdGhlIAorRGVmYXVsdCBpcyB0byB1c2UgdGhlIGNvbnRleHRFbmdpbmVJRCAoc2V0IHZpYSBcLUUgb3IgcHJvYmVkKSBhcyB0aGUgCiB1c21Vc2VyRW5naW5lSUQuCiAuVFAKLS5CSSAtQ3AgIiBTVFJJTkciCisuQkkgXC1DcCAiIFNUUklORyIKIFNldCB0aGUgdXNtVXNlclB1YmxpYyB2YWx1ZSBvZiB0aGUgKG5ldykgdXNlciB0byB0aGUgc3BlY2lmaWVkIFNUUklORy4KIC5QUAogT3B0aW9ucyBmb3IgdGhlCkBAIC02MCwxNSArNjAsMTUgQEAKIC5CIGNoYW5nZWtleQogY29tbWFuZHM6CiAuVFAKLS5CSSAtQ2EKKy5CSSBcLUNhCiBDaGFuZ2UgdGhlIGF1dGhlbnRpY2F0aW9uIGtleS4KIC5UUAotLkJJIC1DeAorLkJJIFwtQ3gKIENoYW5nZSB0aGUgcHJpdmFjeSBrZXkuCiAuVFAKLS5CSSAtQ2sKLUFsbG93cyB0byB1c2UgbG9jYWxpemVkIGtleSAobXVzdCBzdGFydCB3aXRoIDB4KSBpbnN0ZWFkIG9mIHBhc3NwaHJhc2UuCi1XaGVuIHRoaXMgb3B0aW9uIGlzIHVzZWQsIGVpdGhlciB0aGUgLUNhIG9yIC1DeCBvcHRpb24gKGJ1dCBub3QgYm90aCkgbXVzdCBhbHNvCisuQkkgXC1DaworQWxsb3dzIG9uZSB0byB1c2UgbG9jYWxpemVkIGtleSAobXVzdCBzdGFydCB3aXRoIDB4KSBpbnN0ZWFkIG9mIHBhc3NwaHJhc2UuCitXaGVuIHRoaXMgb3B0aW9uIGlzIHVzZWQsIGVpdGhlciB0aGUgXC1DYSBvciBcLUN4IG9wdGlvbiAoYnV0IG5vdCBib3RoKSBtdXN0IGFsc28KIGJlIHVzZWQuCiAKIC5TSCBDUkVBVElORyBVU0VSUwpAQCAtNzYsMTQgKzc2LDE0IEBACiBBbiB1bmF1dGhlbnRpY2F0ZWQgU05NUHYzIHVzZXIgY2FuIGJlIGNyZWF0ZWQgdXNpbmcgdGhlIGNvbW1hbmQKIC5JUAogLkIgc25tcHVzbQotW09QVElPTlNdIEFHRU5UIGNyZWF0ZSBVU0VSCitbQ09NTU9OIE9QVElPTlNdIEFHRU5UIGNyZWF0ZSBVU0VSCiAuUFAKIFRoaXMgY29uc3RydWN0cyBhbiAoaW5hY3RpdmUpIGVudHJ5IGluIHRoZSB1c21Vc2VyVGFibGUsCiB3aXRoIG5vIGF1dGhlbnRpY2F0aW9uIG9yIHByaXZhY3kgc2V0dGluZ3MuCiBJbiBwcmluY2lwbGUsIHRoaXMgdXNlciBzaG91bGQgYmUgdXNlYWJsZSBmb3IgJ25vQXV0aE5vUHJpdicgcmVxdWVzdHMsCiBidXQgaW4gcHJhY3Rpc2UgdGhlIE5ldC1TTk1QIGFnZW50IHdpbGwgbm90IGFsbG93IHN1Y2ggYW4gZW50cnkKIHRvIGJlIG1hZGUgYWN0aXZlLiAgVGhlIHVzZXIgY2FuIGJlIGNyZWF0ZWQgdmlhIHRoZSBjcmVhdGVBbmRXYWl0Ci1vcGVyYXRpb24gaW5zdGVhZCBieSB1c2luZyB0aGUgLUNhIGZsYWcuICBUaGlzIHdpbGwgcHJldmVudCB0aGUgdXNlcgorb3BlcmF0aW9uIGluc3RlYWQgYnkgdXNpbmcgdGhlIFwtQ2EgZmxhZy4gIFRoaXMgd2lsbCBwcmV2ZW50IHRoZSB1c2VyCiBmcm9tIGJlaW5nIG1hcmtlZCBhcyBhY3RpdmUgaW4gYW55IGFnZW50IHVudGlsIGV4cGxpY2l0bHkgYWN0aXZhdGVkCiBsYXRlciB2aWEgdGhlIGFjdGl2YXRlIGNvbW1hbmQuCiAKQEAgLTkyLDcgKzkyLDcgQEAKIHVzZXIsIHVzaW5nIHRoZSBjb21tYW5kCiAuSVAKIC5CIHNubXB1c20KLVtPUFRJT05TXSBBR0VOVCBjbG9uZUZyb20gVVNFUiBDTE9ORUZST00tVVNFUgorW0NPTU1PTiBPUFRJT05TXSBBR0VOVCBjbG9uZUZyb20gVVNFUiBDTE9ORUZST00tVVNFUgogLlBQCiBUaGUgVVNFUiBlbnRyeSB0aGVuIGluaGVyaXRzIHRoZSBzYW1lIGF1dGhlbnRpY2F0aW9uIGFuZCBwcml2YWN5CiBzZXR0aW5ncyAoaW5jbHVkaW5nIHBhc3MgcGhyYXNlcykgYXMgdGhlIENMT05FRlJPTSB1c2VyLgpAQCAtMTAxLDcgKzEwMSw3IEBACiBUaGVzZSB0d28gc3RlcHMgY2FuIGJlIGNvbWJpbmVkIGludG8gb25lLCBieSB1c2luZyB0aGUgY29tbWFuZAogLklQCiAuQiBzbm1wdXNtCi1bT1BUSU9OU10gQUdFTlQgY3JlYXRlIFVTRVIgQ0xPTkVGUk9NLVVTRVIKK1tDT01NT04gT1BUSU9OU10gQUdFTlQgY3JlYXRlIFVTRVIgQ0xPTkVGUk9NLVVTRVIKIAogLlBQCiBUaGUgdHdvIGZvcm1zIG9mIHRoZQpAQCAtMTM3LDcgKzEzNyw3IEBACiBBIHVzZXIgY2FuIGJlIGRlbGV0ZWQgZnJvbSB0aGUgdXNtVXNlclRhYmxlIHVzaW5nIHRoZSBjb21tYW5kCiAuSVAKIC5CIHNubXB1c20KLVtPUFRJT05TXSBBR0VOVCBkZWxldGUgVVNFUgorW0NPTU1PTiBPUFRJT05TXSBBR0VOVCBkZWxldGUgVVNFUgogCiAuU0ggQ0hBTkdJTkcgUEFTUyBQSFJBU0VTCiBVc2VyIHByb2ZpbGVzIGNvbnRhaW4gcHJpdmF0ZSBrZXlzIHRoYXQgYXJlIG5ldmVyCkBAIC0xNDgsNyArMTQ4LDcgQEAKIFRoaXMgdXNlcyB0aGUgY29tbWFuZAogLklQCiAuQiBzbm1wdXNtCi1bT1BUSU9OU10gWy1DYV0gWy1DeF0gQUdFTlQgcGFzc3dkIE9MRC1QQVNTUEhSQVNFIE5FVy1QQVNTUEhSQVNFIFtVU0VSXQorW0NPTU1PTiBPUFRJT05TXSBbXC1DYV0gW1wtQ3hdIEFHRU5UIHBhc3N3ZCBPTEQtUEFTU1BIUkFTRSBORVctUEFTU1BIUkFTRSBbVVNFUl0KIAogLlBQCiBBZnRlciBjbG9uaW5nIGEgbmV3IHVzZXIgZW50cnkgZnJvbSB0aGUgYXBwcm9wcmlhdGUgdGVtcGxhdGUsCkBAIC0xNTYsMjEgKzE1NiwyMSBAQAogCiAuUFAKIElmIFVTRVIgaXMgbm90IHNwZWNpZmllZCwgdGhpcyBjb21tYW5kIHdpbGwgY2hhbmdlIHRoZSBwYXNzcGhyYXNlCi1vZiB0aGUgKFNOTVB2MykgdXNlciBpc3N1aW5nIHRoZSBjb21tYW5kLiAgSWYgdGhlIC1DYSBvciAtQ3ggb3B0aW9ucworb2YgdGhlIChTTk1QdjMpIHVzZXIgaXNzdWluZyB0aGUgY29tbWFuZC4gIElmIHRoZSBcLUNhIG9yIFwtQ3ggb3B0aW9ucwogYXJlIHNwZWNpZmllZCwgdGhlbiBvbmx5IHRoZSBhdXRoZW50aWNhdGlvbiBvciBwcml2YWN5IGtleXMgYXJlIGNoYW5nZWQuICBJZgogdGhlc2Ugb3B0aW9ucyBhcmUgbm90IHNwZWNpZmllZCwgdGhlbiBib3RoIHRoZSBhdXRoZW50aWNhdGlvbiBhbmQgcHJpdmFjeSBrZXlzCiBhcmUgY2hhbmdlZC4KIAogLklQCiAuQiBzbm1wdXNtCi1bT1BUSU9OU10gWy1DYV0gWy1DeF0gQUdFTlQgY2hhbmdla2V5IFtVU0VSXQorW0NPTU1PTiBPUFRJT05TXSBbXC1DYV0gW1wtQ3hdIEFHRU5UIGNoYW5nZWtleSBbVVNFUl0KIAogLlBQCiBUaGlzIGNvbW1hbmQgY2hhbmdlcyB0aGUga2V5IGluIGEgcGVyZmVjdC1mb3J3YXJkLXNlY3JlY3kgY29tcGxpYW50CiB3YXkgdGhyb3VnaCBhIGRpZmZpZS1oZWxtYW4gZXhjaGFuZ2UuICBUaGUgcmVtb3RlIGFnZW50IG11c3Qgc3VwcG9ydAotdGhlIFNOTVAtVVNNLURILU9CSkVDVFMtTUlCIGZvciB0aGlzIGNvbW1hbmQgdG8gd29yay4gIFRoZSByZXN1bHRpbmcKK3RoZSBTTk1QXC1VU01cLURIXC1PQkpFQ1RTXC1NSUIgZm9yIHRoaXMgY29tbWFuZCB0byB3b3JrLiAgVGhlIHJlc3VsdGluZwoga2V5cyBhcmUgcHJpbnRlZCB0byB0aGUgY29uc29sZSBhbmQgbWF5IGJlIHRoZW4gc2V0IGluIGZ1dHVyZSBjb21tYW5kCi1pbnZvY2F0aW9ucyB1c2luZyB0aGUgLS1kZWZBdXRoTG9jYWxpemVkS2V5IGFuZCAtLWRlZlByaXZMb2NhbGl6ZWRLZXkKK2ludm9jYXRpb25zIHVzaW5nIHRoZSBcLVwtZGVmQXV0aExvY2FsaXplZEtleSBhbmQgXC1cLWRlZlByaXZMb2NhbGl6ZWRLZXkKIG9wdGlvbnMgb3IgaW4geW91ciBzbm1wLmNvbmYgZmlsZSB1c2luZyB0aGUgZGVmQXV0aExvY2FsaXplZEtleSBhbmQKIGRlZlByaXZMb2NhbGl6ZWRLZXkga2V5d29yZHMuCiAKQEAgLTE4NywxMCArMTg3LDEwIEBACiAKIC5JUAogLkIgc25tcHVzbQotW09QVElPTlNdIDwtQ2EgfCAtQ3g+IC1DayBBR0VOVCBwYXNzd2QgT0xELUtFWS1PUi1QQVNTUEhSQVNFIE5FVy1LRVktT1ItUEFTU1BIUkFTRSBbVVNFUl0KK1tDT01NT04gT1BUSU9OU10gPFwtQ2EgfCBcLUN4PiBcLUNrIEFHRU5UIHBhc3N3ZCBPTEQtS0VZLU9SLVBBU1NQSFJBU0UgTkVXLUtFWS1PUi1QQVNTUEhSQVNFIFtVU0VSXQogCiAuUFAKLUVpdGhlciB0aGUgLUNhIG9yIHRoZSAtQ3ggb3B0aW9uIG11c3QgYmUgc3BlY2lmaWVkLiAgVGhlIE9MRC1LRVktT1ItUEFTU1BIUkFTRQorRWl0aGVyIHRoZSBcLUNhIG9yIHRoZSBcLUN4IG9wdGlvbiBtdXN0IGJlIHNwZWNpZmllZC4gIFRoZSBPTEQtS0VZLU9SLVBBU1NQSFJBU0UKIGFuZC9vciBORVctS0VZLU9SLVBBU1NQSFJBU0UgYXJndW1lbnRzIGNhbiBlaXRoZXIgYmUgYSBwYXNzcGhyYXNlIG9yIGEKIGxvY2FsaXplZCBrZXkgc3RhcnRpbmcgd2l0aCAiMHgiLCBlLmcuIGFzIHByaW50ZWQgb3V0IGJ5IHRoZQogLkIgY2hhbmdla2V5CkBAIC0yMjksNyArMjI5LDcgQEAKIGluIGxlbmd0aC4KIC5TUyBDcmVhdGUgYSBuZXcgdXNlcgogLlBQCi1zbm1wdXNtIC12MyAtdSBpbml0aWFsIC1uICIiIC1sIGF1dGhOb1ByaXYgLWEgTUQ1IC1BIHNldHVwX3Bhc3NwaHJhc2UKK3NubXB1c20gXC12MyBcLXUgaW5pdGlhbCBcLW4gIiIgXC1sIGF1dGhOb1ByaXYgXC1hIE1ENSBcLUEgc2V0dXBfcGFzc3BocmFzZQogbG9jYWxob3N0IGNyZWF0ZSB3ZXMgaW5pdGlhbAogLklQCiBDcmVhdGVzIGEgbmV3IHVzZXIsIGhlcmUgbmFtZWQgIndlcyIgdXNpbmcgdGhlIHVzZXIgImluaXRpYWwiIHRvIGRvCkBAIC0yMzcsNyArMjM3LDcgQEAKIHRoYXQgdXNlcidzIHBhc3NwaHJhc2UgKCJzZXR1cF9wYXNzcGhyYXNlIikuCiAuU1MgQ2hhbmdlIHRoZSB1c2VyJ3MgcGFzc3BocmFzZQogLlBQCi1zbm1wdXNtIC12IDMgLXUgd2VzIC1uICIiIC1sIGF1dGhOb1ByaXYgLWEgTUQ1IC1BIHNldHVwX3Bhc3NwaHJhc2UKK3NubXB1c20gXC12IDMgXC11IHdlcyBcLW4gIiIgXC1sIGF1dGhOb1ByaXYgXC1hIE1ENSBcLUEgc2V0dXBfcGFzc3BocmFzZQogbG9jYWxob3N0IHBhc3N3ZCBzZXR1cF9wYXNzcGhyYXNlIG5ld19wYXNzcGhyYXNlCiAuSVAKIEFmdGVyIGNyZWF0aW5nIHRoZSB1c2VyICJ3ZXMiIHdpdGggdGhlIHNhbWUgcGFzc3BocmFzZSBhcyB0aGUKQEAgLTI0Niw3ICsyNDYsNyBAQAogdGhlIGluaXRpYWwgdXNlciwgdG8gIm5ld19wYXNzcGhyYXNlIi4KIC5TUyBUZXN0IHRoZSBuZXcgdXNlcgogLlBQCi1zbm1wZ2V0IC12IDMgLXUgd2VzIC1uICIiIC1sIGF1dGhOb1ByaXYgLWEgTUQ1IC1BIG5ld19wYXNzcGhyYXNlCitzbm1wZ2V0IFwtdiAzIFwtdSB3ZXMgXC1uICIiIFwtbCBhdXRoTm9Qcml2IFwtYSBNRDUgXC1BIG5ld19wYXNzcGhyYXNlCiBsb2NhbGhvc3Qgc3lzVXBUaW1lLjAKIC5JUAogSWYgdGhlIGFib3ZlIGNvbW1hbmRzIHdlcmUgc3VjY2Vzc2Z1bCwgdGhpcyBjb21tYW5kIHNob3VsZCBoYXZlCmRpZmYgLS1naXQgYS9tYW4vc25tcHZhY20uMS5kZWYgYi9tYW4vc25tcHZhY20uMS5kZWYKaW5kZXggNmFlMWYwMy4uNzBiMDg5ZSAxMDA2NDQKLS0tIGEvbWFuL3NubXB2YWNtLjEuZGVmCisrKyBiL21hbi9zbm1wdmFjbS4xLmRlZgpAQCAtMTUsNyArMTUsNyBAQAogLkIgc25tcHZhY20KIFtDT01NT04gT1BUSU9OU10gQUdFTlQKIC5CIGNyZWF0ZVZpZXcKLVstQ2VdIE5BTUUgU1VCVFJFRSBNQVNLCitbXC1DZV0gTkFNRSBTVUJUUkVFIE1BU0sKIC5icgogLkIgc25tcHZhY20KIFtDT01NT04gT1BUSU9OU10gQUdFTlQKQEAgLTEwMiw3ICsxMDIsNyBAQAogLkIgY3JlYXRlU2VjMkdyb3VwCiBjb21tYW5kIChvciBlcXVpdmFsZW50KS4KIAotLlNTIGNyZWF0ZVZpZXcgXGZSWy1DZV0gTkFNRSBTVUJUUkVFIE1BU0tcZlAKKy5TUyBjcmVhdGVWaWV3IFxmUltcLUNlXSBOQU1FIFNVQlRSRUUgTUFTS1xmUAogLlBQCiBDcmVhdGUgYW4gZW50cnkgaW4gdGhlIFNOTVB2MyBNSUIgdmlldyB0YWJsZS4KIEEgTUlCIHZpZXcgY29uc2lzdHMgb2YgYSBmYW1pbHkgb2YgdmlldyBzdWJ0cmVlcyB3aGljaCBtYXkgYmUgaW5kaXZpZHVhbGx5CkBAIC0xMTAsNyArMTEwLDcgQEAKIGRlZmluZWQgYnkgYSBjb21iaW5hdGlvbiBvZiBhbiBPSUQgc3VidHJlZSB0b2dldGhlciB3aXRoIGEgYml0IHN0cmluZyBtYXNrLgogVGhlIHZpZXcgdGFibGUgaXMgaW5kZXhlZCBieSB0aGUgdmlldyBuYW1lIGFuZCBzdWJ0cmVlIE9JRCB2YWx1ZXMuCiAuUFAKLVstQ2VdCitbXC1DZV0KIC5JUAogQW4gb3B0aW9uYWwgZmxhZyB0byBpbmRpY2F0ZSB0aGF0IHRoaXMgdmlldyBzdWJ0cmVlIHNob3VsZCBiZSBleGNsdWRlZAogZnJvbSB0aGUgbmFtZWQgdmlldy4KQEAgLTMyNyw3ICszMjcsNyBAQAogLlBQCiBUaGlzIGNyZWF0ZXMgYSBuZXcgc2VjdXJpdHkgZ3JvdXAgbmFtZWQgIlJPR3JvdXAiIGNvbnRhaW5pbmcgdGhlIChwcmUtZXhpc3RpbmcpCiB1c2VyICJ3ZXMiLCBhIG5ldyB2aWV3ICJzeXNWaWV3IiBjb250YWluaW5nIGp1c3QgdGhlIE9JRCB0cmVlIGJhc2VkIG9uCi0uSSAuaXNvKDEpLm9yZygzKS5kb2QoNikuaW5ldCgxKS5tZ210KDIpLm1pYi0yKDEpLnN5c3RlbSgxKQorLkkgLmlzbygxKS5vcmcoMykuZG9kKDYpLmluZXQoMSkubWdtdCgyKS5taWJcLTIoMSkuc3lzdGVtKDEpCiAsIGFuZCB0aGVuIGFsbG93cyB0aG9zZSB1c2VycyBpbiB0aGUgZ3JvdXAgIlJPR3JvdXAiIChpLmUuICJ3ZXMiKQogcmVhZC1hY2Nlc3MsIGJ1dCBub3Qgd3JpdGUtYWNjZXNzIHRvIHRoZSB2aWV3ICJzeXNWaWV3IiAoaS5lLiB0aGUgc3lzdGVtIGdyb3VwKS4KIApkaWZmIC0tZ2l0IGEvbWFuL3NubXB3YWxrLjEuZGVmIGIvbWFuL3NubXB3YWxrLjEuZGVmCmluZGV4IDZlMTUyMDEuLmQ5ZjNkNWMgMTAwNjQ0Ci0tLSBhL21hbi9zbm1wd2Fsay4xLmRlZgorKysgYi9tYW4vc25tcHdhbGsuMS5kZWYKQEAgLTEsNyArMSw3IEBACiAuXCIgLSotIG5yb2ZmIC0qLQotLlwiIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvcHlyaWdodC4gCi0uXCIgU2VlIHRoZSBOZXQtU05NUCBDT1BZSU5HIGZpbGUgZm9yIG1vcmUgZGV0YWlscyBhbmQgb3RoZXIKLS5cIiBjb3B5cmlnaHRzIHRoYXQgbWF5IGFwcGx5OgorLlwiIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvcHlyaWdodC4gIFNlZQorLlwiIHRoZSBOZXQtU05NUCBDT1BZSU5HIGZpbGUgZm9yIG1vcmUgZGV0YWlscyBhbmQgb3RoZXIgY29weXJpZ2h0cworLlwiIHRoYXQgbWF5IGFwcGx5OgogLlwiIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogLlwiIAlDb3B5cmlnaHQgMTk4OCwgMTk4OSBieSBDYXJuZWdpZSBNZWxsb24gVW5pdmVyc2l0eQogLlwiIApAQCAtNDMsNyArNDMsNyBAQAogLlBQCiBJZiBubyBPSUQgYXJndW1lbnQgaXMgcHJlc2VudCwKIC5CIHNubXB3YWxrCi13aWxsIHNlYXJjaCB0aGUgc3VidHJlZSByb290ZWQgYXQgU05NUHYyLVNNSTo6bWliLTIKK3dpbGwgc2VhcmNoIHRoZSBzdWJ0cmVlIHJvb3RlZCBhdCBTTk1QdjJcLVNNSTo6bWliXC0yCiAoaW5jbHVkaW5nIGFueSBNSUIgb2JqZWN0IHZhbHVlcyBmcm9tIG90aGVyIE1JQiBtb2R1bGVzLAogdGhhdCBhcmUgZGVmaW5lZCBhcyBseWluZyB3aXRoaW4gdGhpcyBzdWJ0cmVlKS4KIElmIHRoZSBuZXR3b3JrIGVudGl0eSBoYXMgYW4gZXJyb3IgcHJvY2Vzc2luZyB0aGUgcmVxdWVzdCBwYWNrZXQsIGFuCkBAIC01NCw3ICs1NCw3IEBACiBNSUIsIHRoZSBtZXNzYWdlICJFbmQgb2YgTUlCIiB3aWxsIGJlIGRpc3BsYXllZC4KIC5TSCBPUFRJT05TCiAuVFAgOAotLkIgLUNjCisuQiBcLUNjCiBEbyBub3QgY2hlY2sgd2hldGhlciB0aGUgcmV0dXJuZWQgT0lEcyBhcmUgaW5jcmVhc2luZy4gIFNvbWUgYWdlbnRzCiAoTGFzZXJKZXRzIGFyZSBhbiBleGFtcGxlKSByZXR1cm4gT0lEcyBvdXQgb2Ygb3JkZXIsIGJ1dCBjYW4KIGNvbXBsZXRlIHRoZSB3YWxrIGFueXdheS4gIE90aGVyIGFnZW50cyByZXR1cm4gT0lEcyB0aGF0IGFyZSBvdXQgb2YKQEAgLTY0LDE1ICs2NCwxNSBAQAogLkIgc25tcHdhbGsKIHRyaWVzIHRvIGRldGVjdCB0aGlzIGJlaGF2aW9yIGFuZCB3YXJucyB5b3Ugd2hlbiBpdCBoaXRzIGFuIGFnZW50CiBhY3RpbmcgaWxsZWdhbGx5LiAgVXNlCi0uQiAtQ2MKKy5CIFwtQ2MKIHRvIHR1cm4gb2ZmIHRoaXMgY2hlY2suCiAuVFAKLS5CIC1DRSB7T0lEfQorLkIgXC1DRSB7T0lEfQogRW5kIHRoZSB3YWxrIGF0IHRoZSBzcGVjaWZpZWQgT0lELCByYXRoZXIgdGhhbiBhIHNpbXBsZSBzdWJ0cmVlLgogVGhpcyBjYW4gYmUgdXNlZCB0byB3YWxrIGEgcGFydGlhbCBzdWJ0cmVlLCBzZWxlY3RlZCBjb2x1bW5zIG9mCiBhIHRhYmxlLCBvciBldmVuIHR3byBvciBtb3JlIHRhYmxlcyB3aXRoaW4gYSBzaW5nbGUgY29tbWFuZC4KIC5UUAotLkIgLUNpCisuQiBcLUNpCiBJbmNsdWRlIHRoZSBnaXZlbiBPSUQgaW4gdGhlIHNlYXJjaCByYW5nZS4gIE5vcm1hbGx5CiAuQiBzbm1wd2FsawogdXNlcyBHRVRORVhUIHJlcXVlc3RzIHN0YXJ0aW5nIHdpdGggdGhlIE9JRCB5b3Ugc3BlY2lmaWVkIGFuZCByZXR1cm5zCkBAIC04MSw3ICs4MSw3IEBACiByZXN1bHRzIGlmIGl0IGlzIGEgdmFsaWQgT0lEIGluIHRoZSB0cmVlIGl0c2VsZi4gIFRoaXMgb3B0aW9uIGxldHMgeW91CiBkbyB0aGlzIGV4cGxpY2l0bHkuCiAuVFAKLS5CIC1DSQorLkIgXC1DSQogSW4gZmFjdCwgdGhlIGdpdmVuIE9JRCB3aWxsIGJlIHJldHJpZXZlZCBhdXRvbWF0aWNhbGx5IGlmIHRoZSBtYWluCiBzdWJ0cmVlIHdhbGsgcmV0dXJucyBubyB1c2VhYmxlIHZhbHVlcy4gIFRoaXMgYWxsb3dzIGEgd2FsayBvZiBhCiBzaW5nbGUgaW5zdGFuY2UgdG8gYmVoYXZlIGFzIGdlbmVyYWxseSBleHBlY3RlZCwgYW5kIHJldHVybiB0aGUKQEAgLTg5LDEwICs4OSwxMCBAQAogVGhpcyBvcHRpb24gdHVybnMgb2ZmIHRoaXMgZmluYWwgR0VUIHJlcXVlc3QsIHNvIGEgd2FsayBvZiBhCiBzaW5nbGUgaW5zdGFuY2Ugd2lsbCByZXR1cm4gbm90aGluZy4KIC5UUAotLkIgLUNwCisuQiBcLUNwCiBVcG9uIGNvbXBsZXRpb24gb2YgdGhlIHdhbGssIHByaW50IHRoZSBudW1iZXIgb2YgdmFyaWFibGVzIGZvdW5kLgogLlRQCi0uQiAtQ3QKKy5CIFwtQ3QKIFVwb24gY29tcGxldGlvbiBvZiB0aGUgd2FsaywgcHJpbnQgdGhlIHRvdGFsIHdhbGwtY2xvY2sgdGltZSBpdCB0b29rCiB0byBjb2xsZWN0IHRoZSBkYXRhIChpbiBzZWNvbmRzKS4gIE5vdGUgdGhhdCB0aGUgdGltZXIgaXMgc3RhcnRlZCBqdXN0CiBiZWZvcmUgdGhlIGJlZ2lubmluZyBvZiB0aGUgZGF0YSByZXF1ZXN0IHNlcmllcyBhbmQgc3RvcHBlZCBqdXN0IGFmdGVyCkBAIC0xMDgsMTIgKzEwOCwxMiBAQAogLlNIIEVYQU1QTEVTCiAuYnIKIE5vdGUgdGhhdAotLkIgc25tcGJ1bGtnZXQKKy5CIHNubXB3YWxrCiBSRVFVSVJFUyAgYW4gYXJndW1lbnQgc3BlY2lmeWluZyB0aGUgYWdlbnQgdG8gcXVlcnkKIGFuZCBhdCBtb3N0IG9uZSBPSUQgYXJndW1lbnQsIGFzIGRlc2NyaWJlZCB0aGVyZS4KIFRoZSBjb21tYW5kOgogLlBQCi1zbm1wd2FsayAtT3MgLWMgcHVibGljIC12IDEgemV1cyBzeXN0ZW0KK3NubXB3YWxrIFwtT3MgXC1jIHB1YmxpYyBcLXYgMSB6ZXVzIHN5c3RlbQogLlBQCiB3aWxsIHJldHJpZXZlIGFsbCBvZiB0aGUgdmFyaWFibGVzIHVuZGVyIHN5c3RlbToKIC5QUApAQCAtMTM1LDcgKzEzNSw3IEBACiAKIFRoZSBjb21tYW5kOgogLlBQCi1zbm1wd2FsayAtT3MgLWMgcHVibGljIC12IDEgLUNFIHN5c09SVGFibGUgemV1cyBzeXN0ZW0KK3NubXB3YWxrIFwtT3MgXC1jIHB1YmxpYyBcLXYgMSBcLUNFIHN5c09SVGFibGUgemV1cyBzeXN0ZW0KIC5QUAogd2lsbCByZXRyaWV2ZSB0aGUgc2NhbGFyIHZhbHVlcywgYnV0IG9taXQgdGhlIHN5c09SVGFibGUuCiAuU0ggIlNFRSBBTFNPIgpkaWZmIC0tZ2l0IGEvbWFuL3RrbWliLjEuZGVmIGIvbWFuL3RrbWliLjEuZGVmCmluZGV4IGZhNDVkY2UuLmYwMjUzYjkgMTAwNjQ0Ci0tLSBhL21hbi90a21pYi4xLmRlZgorKysgYi9tYW4vdGttaWIuMS5kZWYKQEAgLTEsNCArMSw0IEBACi0uVEggdGttaWIgMSAiMTYgTm92IDIwMDYiIFZWRVJTSU9OSU5GTyAiTmV0LVNOTVAiCisuVEggdGttaWIgIjEiICIxNiBOb3YgMjAwNiIgVlZFUlNJT05JTkZPICJOZXQtU05NUCIKIC5TSCBOQU1FCiB0a21pYiAtIGFuIGludGVyYWN0aXZlIGdyYXBoaWNhbCBNSUIgYnJvd3NlciBmb3IgU05NUAogLlNIIFNZTk9QU0lTCmRpZmYgLS1naXQgYS9taWJzL05FVC1TTk1QLVBFUklPRElDLU5PVElGWS1NSUIudHh0IGIvbWlicy9ORVQtU05NUC1QRVJJT0RJQy1OT1RJRlktTUlCLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44M2VhY2FkCi0tLSAvZGV2L251bGwKKysrIGIvbWlicy9ORVQtU05NUC1QRVJJT0RJQy1OT1RJRlktTUlCLnR4dApAQCAtMCwwICsxLDgzIEBACitORVQtU05NUC1QRVJJT0RJQy1OT1RJRlktTUlCIERFRklOSVRJT05TIDo6PSBCRUdJTgorCistLQorLS0gT2JqZWN0cyBmb3IgcGVyaW9kaWMgbm90aWZpY2F0aW9ucyBjb250YWluaW5nIGRhdGEgcGF5bG9hZHMKKy0tCisKK0lNUE9SVFMKKyAgICBuZXRTbm1wTW9kdWxlSURzLCBuZXRTbm1wT2JqZWN0cywgbmV0U25tcE5vdGlmaWNhdGlvbnMgRlJPTSBORVQtU05NUC1NSUIKKworICAgIE9CSkVDVC1UWVBFLCBOT1RJRklDQVRJT04tVFlQRSwgTU9EVUxFLUlERU5USVRZLCBJbnRlZ2VyMzIsIFVuc2lnbmVkMzIKKyAgICAgICAgRlJPTSBTTk1QdjItU01JCisKKyAgICBEaXNwbGF5U3RyaW5nIEZST00gU05NUHYyLVRDOworCisKK25ldFNubXBQZXJpb2RpY05vdGlmeU1pYiBNT0RVTEUtSURFTlRJVFkKKyAgICBMQVNULVVQREFURUQgIjIwMTEwNDIwMDAwMFoiCisgICAgT1JHQU5JWkFUSU9OICJ3d3cubmV0LXNubXAub3JnIgorICAgIENPTlRBQ1QtSU5GTyAgICAKKwkgInBvc3RhbDogICBXZXMgSGFyZGFrZXIKKyAgICAgICAgICAgICAgICAgICAgUC5PLiBCb3ggMzgyCisgICAgICAgICAgICAgICAgICAgIERhdmlzIENBICA5NTYxNworCisgICAgICAgICAgZW1haWw6ICAgIG5ldC1zbm1wLWNvZGVyc0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQiCisgICAgREVTQ1JJUFRJT04KKwkiT2JqZWN0cyBmb3IgcGVyaW9kaWMgbm90aWZpY2F0aW9ucyBjb250YWluaW5nIGRhdGEgcGF5bG9hZHMiCisgICAgUkVWSVNJT04gICAgICIyMDExMDQyMDAwMDBaIgorICAgIERFU0NSSVBUSU9OCisJIkZpcnN0IHJldmlzaW9uLiIKKyAgICA6Oj0geyBuZXRTbm1wTW9kdWxlSURzIDUgfQorCituc1BOU2NhbGFycyAgICAgICAgICAgICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHtuZXRTbm1wUGVyaW9kaWNOb3RpZnlNaWIgMX0KK25zUE5UYWJsZXMgICAgICAgICAgICAgICAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0ge25ldFNubXBQZXJpb2RpY05vdGlmeU1pYiAyfQorbnNQTm90aWZ5T2JqZWN0cyAgICAgICAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7bmV0U25tcFBlcmlvZGljTm90aWZ5TWliIDN9Cituc1BOb3RpZmljYXRpb25QcmVmaXggICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHtuZXRTbm1wUGVyaW9kaWNOb3RpZnlNaWIgNH0KK25zUE5vdGlmaWNhdGlvbnMgICAgICAgICAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0ge25zUE5vdGlmaWNhdGlvblByZWZpeCAwfQorbnNQTm90aWZpY2F0aW9uT2JqZWN0cyAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7bnNQTm90aWZpY2F0aW9uUHJlZml4IDF9CisKKy0tCistLSBOb3RpZmljYXRpb24gRGVmaW5pdGlvbnMKKy0tCisKK25zTm90aWZ5UGVyaW9kaWNOb3RpZmljYXRpb24gICAgICAgIE5PVElGSUNBVElPTi1UWVBFCisgICAgU1RBVFVTCWN1cnJlbnQKKyAgICBERVNDUklQVElPTgorCSJEYXRhIGRlbGl2ZXJ5IG5vdGlmaWNhdGlvbiBmcm9tIGEgY29uZmlndXJlZCBsaXN0IG9mIHBlcmlvZGljCisJZGF0YSBzZXRzIHRvIGRlbGl2ZXIuICBTZWUgdGhlIHNubXBkLmNvbmYgbWFudWFsIHBhZ2UgZm9yCisJZGV0YWlscyBhYm91dCBjb25maWd1cmluZyBOZXQtU05NUCBhZ2VudHMgZm9yIHNlbmRpbmcgdGhlc2UKKwlub3RpZmljYXRpb25zIG91dCBvbiBhIHJlZ3VsYXIgYmFzaXMuIgorICAgIDo6PSB7IG5zUE5vdGlmaWNhdGlvbnMgMSB9CisKKy0tCistLSBPYmplY3RzIHRoYXQgY2FuIGJlIHB1dCBpbnRvIHRoZSBub3RpZmljYXRpb25zCistLQorCituc1BOUGVyaW9kaWNUaW1lIE9CSkVDVC1UWVBFCisgICAgIFNZTlRBWCAgICAgIFVuc2lnbmVkMzIKKyAgICAgTUFYLUFDQ0VTUyAgYWNjZXNzaWJsZS1mb3Itbm90aWZ5CisgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICJUaGUgbnVtYmVyIG9mIHNlY29uZHMgYmV0d2VlbiBub3RpZmljYXRpb25zIGNvbnRhaW5pbmcgdGhpcyBkYXRhIHNldC4iCisgICAgIDo6PSB7IG5zUE5vdGlmeU9iamVjdHMgMSB9CisKK25zUE5vdGlmeU1lc3NhZ2VOdW1iZXIgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBVbnNpZ25lZDMyCisgICAgTUFYLUFDQ0VTUyAgYWNjZXNzaWJsZS1mb3Itbm90aWZ5CisgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICJJbmRpY2F0ZXMgdGhpcyBpcyB0aGUgTnRoIG5vdGlmaWNhdGlvbiBpbiBhIGxvbmdlciBzZXF1ZW5jZQorICAgICAgICBvZiBub3RpZmljYXRpb25zIgorICAgIDo6PSB7IG5zUE5vdGlmeU9iamVjdHMgMiB9CisKK25zUE5vdGlmeU1heE1lc3NhZ2VOdW1iZXIgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBVbnNpZ25lZDMyCisgICAgTUFYLUFDQ0VTUyAgYWNjZXNzaWJsZS1mb3Itbm90aWZ5CisgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICJUaGUgbWF4aW11bSBudW1iZXIgb2YgbWVzc2FnZXMgdGhpcyBub3RpZmljYXRpb24gc2VxdWVuY2UKKyAgICAgICAgd2lsbCBjb250YWluLiIKKyAgICA6Oj0geyBuc1BOb3RpZnlPYmplY3RzIDMgfQorCisKK0VORApkaWZmIC0tZ2l0IGEvbWlicy9VQ0QtU05NUC1NSUIudHh0IGIvbWlicy9VQ0QtU05NUC1NSUIudHh0CmluZGV4IDY5ZjlhYzUuLjNiZjQ5MTMgMTAwNjQ0Ci0tLSBhL21pYnMvVUNELVNOTVAtTUlCLnR4dAorKysgYi9taWJzL1VDRC1TTk1QLU1JQi50eHQKQEAgLTU1LDYgKzU1LDEwIEBACiAgICAgREVTQ1JJUFRJT04KIAkiVGhpcyBmaWxlIGRlZmluZXMgdGhlIHByaXZhdGUgVUNEIFNOTVAgTUlCIGV4dGVuc2lvbnMuIgogCisgICAgUkVWSVNJT04JICIyMDExMDUxNDAwMDBaIgorICAgIERFU0NSSVBUSU9OCisJIk5ldyBvYmplY3RzIGZvciBtb25pdG9yaW5nIENQVSBTdGVhbCwgR3Vlc3QgYW5kIE5pY2UgdmFsdWVzIgorCiAgICAgUkVWSVNJT04JICIyMDA5MDExOTAwMDBaIgogICAgIERFU0NSSVBUSU9OCiAJIk5ldyA2NC1iaXQgb2JqZWN0cyBmb3IgbW9uaXRvcmluZyBsYXJnZSBkaXNrIHVzYWdlIgpAQCAtMTQzMiw2ICsxNDM2LDU4IEBACiAgICAgICAgICJOdW1iZXIgb2YgYmxvY2tzIHN3YXBwZWQgb3V0IgogICAgIDo6PSB7IHN5c3RlbVN0YXRzIDYzIH0KIAorc3NDcHVSYXdTdGVhbCBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAiVGhlIG51bWJlciBvZiAndGlja3MnICh0eXBpY2FsbHkgMS8xMDBzKSBzcGVudAorICAgICAgICAgYnkgdGhlIGh5cGVydmlzb3IgY29kZSB0byBydW4gb3RoZXIgVk1zIGV2ZW4KKyAgICAgICAgIHRob3VnaCB0aGUgQ1BVIGluIHRoZSBjdXJyZW50IFZNIGhhZCBzb21ldGhpbmcgcnVubmFibGUuCisKKyAgICAgICAgIFRoaXMgb2JqZWN0IHdpbGwgbm90IGJlIGltcGxlbWVudGVkIG9uIGhvc3RzIHdoZXJlCisgICAgICAgICB0aGUgdW5kZXJseWluZyBvcGVyYXRpbmcgc3lzdGVtIGRvZXMgbm90IG1lYXN1cmUKKyAgICAgICAgIHRoaXMgcGFydGljdWxhciBDUFUgbWV0cmljLgorCisgICAgICAgICBPbiBhIG11bHRpLXByb2Nlc3NvciBzeXN0ZW0sIHRoZSAnc3NDcHVSYXcqJworICAgICAgICAgY291bnRlcnMgYXJlIGN1bXVsYXRpdmUgb3ZlciBhbGwgQ1BVcywgc28gdGhlaXIKKyAgICAgICAgIHN1bSB3aWxsIHR5cGljYWxseSBiZSBOKjEwMCAoZm9yIE4gcHJvY2Vzc29ycykuIgorICAgIDo6PSB7IHN5c3RlbVN0YXRzIDY0IH0KKworc3NDcHVSYXdHdWVzdCBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAiVGhlIG51bWJlciBvZiAndGlja3MnICh0eXBpY2FsbHkgMS8xMDBzKSBzcGVudAorICAgICAgICAgYnkgdGhlIENQVSB0byBydW4gYSB2aXJ0dWFsIENQVSAoZ3Vlc3QpLgorCisgICAgICAgICBUaGlzIG9iamVjdCB3aWxsIG5vdCBiZSBpbXBsZW1lbnRlZCBvbiBob3N0cyB3aGVyZQorICAgICAgICAgdGhlIHVuZGVybHlpbmcgb3BlcmF0aW5nIHN5c3RlbSBkb2VzIG5vdCBtZWFzdXJlCisgICAgICAgICB0aGlzIHBhcnRpY3VsYXIgQ1BVIG1ldHJpYy4KKworICAgICAgICAgT24gYSBtdWx0aS1wcm9jZXNzb3Igc3lzdGVtLCB0aGUgJ3NzQ3B1UmF3KicKKyAgICAgICAgIGNvdW50ZXJzIGFyZSBjdW11bGF0aXZlIG92ZXIgYWxsIENQVXMsIHNvIHRoZWlyCisgICAgICAgICBzdW0gd2lsbCB0eXBpY2FsbHkgYmUgTioxMDAgKGZvciBOIHByb2Nlc3NvcnMpLiIKKyAgICA6Oj0geyBzeXN0ZW1TdGF0cyA2NSB9CisKK3NzQ3B1UmF3R3Vlc3ROaWNlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICJUaGUgbnVtYmVyIG9mICd0aWNrcycgKHR5cGljYWxseSAxLzEwMHMpIHNwZW50CisgICAgICAgICBieSB0aGUgQ1BVIHRvIHJ1biBhIG5pY2VkIHZpcnR1YWwgQ1BVIChndWVzdCkuCisKKyAgICAgICAgIFRoaXMgb2JqZWN0IHdpbGwgbm90IGJlIGltcGxlbWVudGVkIG9uIGhvc3RzIHdoZXJlCisgICAgICAgICB0aGUgdW5kZXJseWluZyBvcGVyYXRpbmcgc3lzdGVtIGRvZXMgbm90IG1lYXN1cmUKKyAgICAgICAgIHRoaXMgcGFydGljdWxhciBDUFUgbWV0cmljLgorCisgICAgICAgICBPbiBhIG11bHRpLXByb2Nlc3NvciBzeXN0ZW0sIHRoZSAnc3NDcHVSYXcqJworICAgICAgICAgY291bnRlcnMgYXJlIGN1bXVsYXRpdmUgb3ZlciBhbGwgQ1BVcywgc28gdGhlaXIKKyAgICAgICAgIHN1bSB3aWxsIHR5cGljYWxseSBiZSBOKjEwMCAoZm9yIE4gcHJvY2Vzc29ycykuIgorICAgIDo6PSB7IHN5c3RlbVN0YXRzIDY2IH0KKwogLS0gcG9zc2libHkgdXNlZCBpbiB0aGUgZnV0dXJlOgogLS0KIC0tIHNzRXJyb3JGbGFnIE9CSkVDVC1UWVBFCmRpZmYgLS1naXQgYS9wZXJsL0FTTi9BU04ucG0gYi9wZXJsL0FTTi9BU04ucG0KaW5kZXggNmYwNjAzZi4uMDA4ZTk3YiAxMDA2NDQKLS0tIGEvcGVybC9BU04vQVNOLnBtCisrKyBiL3BlcmwvQVNOL0FTTi5wbQpAQCAtNjYsNyArNjYsNyBAQAogCUFTTl9VTlNJR05FRAogCUFTTl9VTlNJR05FRDY0CiApOwotJFZFUlNJT04gPSAnNS4wNjAyJzsKKyRWRVJTSU9OID0gJzUuMDcwMyc7CiAKIHN1YiBBVVRPTE9BRCB7CiAgICAgIyBUaGlzIEFVVE9MT0FEIGlzIHVzZWQgdG8gJ2F1dG9sb2FkJyBjb25zdGFudHMgZnJvbSB0aGUgY29uc3RhbnQoKQpkaWZmIC0tZ2l0IGEvcGVybC9BU04vbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmggYi9wZXJsL0FTTi9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvcGVybC9BU04vbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgKZGlmZiAtLWdpdCBhL3BlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0gYi9wZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtCmluZGV4IDQ0Yjg1YWUuLjY3Yzc5MWYgMTAwNjQ0Ci0tLSBhL3BlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0KKysrIGIvcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbQpAQCAtNiw3ICs2LDcgQEAKICMjICAgc2NhbGFyIHNldHM/CiAjIyAgIG11bHRpLWhvc3RzCiAKLSRBbnlEYXRhOjpTdG9yYWdlOjpWRVJTSU9OID0gJzUuMDYwMic7CiskQW55RGF0YTo6U3RvcmFnZTo6VkVSU0lPTiA9ICc1LjA3MDMnOwogdXNlIHN0cmljdDsKIHVzZSB3YXJuaW5nczsKIApkaWZmIC0tZ2l0IGEvcGVybC9NYWtlZmlsZS5QTCBiL3BlcmwvTWFrZWZpbGUuUEwKaW5kZXggOTJmNWFkMi4uMzFmZGM0MCAxMDA2NDQKLS0tIGEvcGVybC9NYWtlZmlsZS5QTAorKysgYi9wZXJsL01ha2VmaWxlLlBMCkBAIC0xMSw3ICsxMSw3IEBACiAgICAgJG5zY29uZmlnPSJuZXQtc25tcC1jb25maWciOyAjIGluIHBhdGggYnkgZGVmYXVsdAogICAgIG15ICVQYXJhbXMgPSAoCiAJCSAgJ05BTUUnID0+ICdCdW5kbGU6Ok5ldFNOTVAnLAotCQkgICdESVInID0+IFtxdyhkZWZhdWx0X3N0b3JlIEFTTiBPSUQgYWdlbnQgU05NUCBUcmFwUmVjZWl2ZXIpXQorCQkgICdESVInID0+IFtxdyhkZWZhdWx0X3N0b3JlIEFTTiBPSUQgYWdlbnQgU05NUCBUcmFwUmVjZWl2ZXIpXSwKIAkJICApOwogCiAgICAgIyBib2d1cywgYnV0IHRoZXNlIG9wdGlvbnMgbmVlZCB0byBiZSBwYXNzZWQgdG8gdGhlIGxvd2VyIGxldmVscwpkaWZmIC0tZ2l0IGEvcGVybC9PSUQvT0lELnBtIGIvcGVybC9PSUQvT0lELnBtCmluZGV4IGRjM2E0MjcuLmI3NWJmMWQgMTAwNjQ0Ci0tLSBhL3BlcmwvT0lEL09JRC5wbQorKysgYi9wZXJsL09JRC9PSUQucG0KQEAgLTkyLDcgKzkyLDcgQEAKIAlzbm1wX29pZF9jb21wYXJlCiAgICAgICAgIGNvbXBhcmUKICk7Ci0kVkVSU0lPTiA9ICc1LjA2MDInOworJFZFUlNJT04gPSAnNS4wNzAzJzsKIAogc3ViIG5ldyB7CiAgICAgbXkgJHR5cGUgPSBzaGlmdDsKZGlmZiAtLWdpdCBhL3BlcmwvT0lEL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oIGIvcGVybC9PSUQvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI0Y2NkYgotLS0gL2Rldi9udWxsCisrKyBiL3BlcmwvT0lEL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oCkBAIC0wLDAgKzEsNiBAQAorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CisKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHNucHJpbnRfb2JqaWQpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShzbnByaW50X3ZhbHVlKQorCmRpZmYgLS1naXQgYS9wZXJsL1NOTVAvU05NUC5wbSBiL3BlcmwvU05NUC9TTk1QLnBtCmluZGV4IGNhNjIzMzkuLmEwNWNkMzggMTAwNjQ0Ci0tLSBhL3BlcmwvU05NUC9TTk1QLnBtCisrKyBiL3BlcmwvU05NUC9TTk1QLnBtCkBAIC03LDcgKzcsNyBAQAogIyAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSBzYW1lIHRlcm1zIGFzIFBlcmwgaXRzZWxmLgogCiBwYWNrYWdlIFNOTVA7Ci0kVkVSU0lPTiA9ICc1LjA2MDInOyAgICMgY3VycmVudCByZWxlYXNlIHZlcnNpb24gbnVtYmVyCiskVkVSU0lPTiA9ICc1LjA3MDMnOyAgICMgY3VycmVudCByZWxlYXNlIHZlcnNpb24gbnVtYmVyCiAKIHVzZSBzdHJpY3Q7CiB1c2Ugd2FybmluZ3M7CmRpZmYgLS1naXQgYS9wZXJsL1NOTVAvU05NUC54cyBiL3BlcmwvU05NUC9TTk1QLnhzCmluZGV4IGNlMGZiNWMuLjJhNzM0ZTggMTAwNjQ0Ci0tLSBhL3BlcmwvU05NUC9TTk1QLnhzCisrKyBiL3BlcmwvU05NUC9TTk1QLnhzCkBAIC0yNDQsNyArMjQ0LDggQEAKIAogICAgICAgICBTT0NLX1NUQVJUVVA7CiAKLSAgICAgICAgc25tcF9zZXRfcXVpY2tfcHJpbnQoMSk7CisgICAgICAgIG5ldHNubXBfZHNfc2V0X2Jvb2xlYW4oTkVUU05NUF9EU19MSUJSQVJZX0lELCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9RVUlDS19QUklOVCwgMSk7CiAgICAgICAgIGluaXRfc25tcChhcHBuYW1lKTsKICAgICAKICAgICAgICAgbmV0c25tcF9kc19zZXRfYm9vbGVhbihORVRTTk1QX0RTX0xJQlJBUllfSUQsIE5FVFNOTVBfRFNfTElCX0RPTlRfQlJFQUtET1dOX09JRFMsIDEpOwpAQCAtMzA3Myw2ICszMDc0LDcgQEAKICAgICAgICAgICAgaW50IHVzZV9lbnVtczsKICAgICAgICAgICAgc3RydWN0IGVudW1fbGlzdCAqZXA7CiAgICAgICAgICAgIGludCBiZXN0X2d1ZXNzOwkgICAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAKICAgICAgICAgICAgTmV3ICgwLCBvaWRfYXJyLCBNQVhfT0lEX0xFTiwgb2lkKTsKIApAQCAtMzE5NCw2ICszMTk2LDkgQEAKICAgICAgICAgICAgICAgLyogQlVHISEhIG5lZWQgdG8gcmV0dXJuIGFuIGVycm9yIHZhbHVlICovCiAgICAgICAgICAgICAgIFhQVVNIcygmc3ZfdW5kZWYpOyAvKiBubyBtZW0gb3IgYmFkIGFyZ3MgKi8KICAgICAgICAgICAgfQorI2Vsc2UgIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworICAgICAgICAgICB3YXJuKCJlcnJvcjogTmV0LVNOTVAgd2FzIGNvbXBpbGVkIHVzaW5nIC0tZW5hYmxlLXJlYWQtb25seSwgc2V0KCkgY2FuIG5vdCBiZSB1c2VkLiIpOworI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogZG9uZToKICAgICAgICAgICAgU2FmZWZyZWUob2lkX2Fycik7CiAgICAgICAgIH0KQEAgLTQ0NDYsNyArNDQ1MSw3IEBACiAJICAgCiAgICAgICAgICAgIE5ldyAoMCwgb2lkX2FyciwgTUFYX09JRF9MRU4sIG9pZCk7CiAKLSAgICAgICAgICAgaWYgKG9pZF9hcnIgJiYgU3ZST0soc2Vzc19yZWYpICYmIFN2Uk9LKHZhcmxpc3RfcmVmKSkgeworICAgICAgICAgICBpZiAob2lkX2FyciAmJiBTdlJPSyhzZXNzX3JlZikpIHsKIAogICAgICAgICAgICAgICBzZXNzX3B0cl9zdiA9IGh2X2ZldGNoKChIViopU3ZSVihzZXNzX3JlZiksICJTZXNzUHRyIiwgNywgMSk7CiAJICAgICAgc3MgPSAoU25tcFNlc3Npb24gKilTdklWKChTViopU3ZSVigqc2Vzc19wdHJfc3YpKTsKQEAgLTQ0NjAsOCArNDQ2NSwxMyBAQAogCSAgICAgIAogICAgICAgICAgICAgICBwZHUgPSBzbm1wX3BkdV9jcmVhdGUoU05NUF9NU0dfVFJBUDIpOwogCi0gICAgICAgICAgICAgIHZhcmxpc3QgPSAoQVYqKSBTdlJWKHZhcmxpc3RfcmVmKTsKLSAgICAgICAgICAgICAgdmFybGlzdF9sZW4gPSBhdl9sZW4odmFybGlzdCk7CisgICAgICAgICAgICAgIGlmIChTdlJPSyh2YXJsaXN0X3JlZikpIHsKKyAgICAgICAgICAgICAgICAgIHZhcmxpc3QgPSAoQVYqKSBTdlJWKHZhcmxpc3RfcmVmKTsKKyAgICAgICAgICAgICAgICAgIHZhcmxpc3RfbGVuID0gYXZfbGVuKHZhcmxpc3QpOworICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgdmFybGlzdCA9IE5VTEw7CisgICAgICAgICAgICAgICAgICB2YXJsaXN0X2xlbiA9IC0xOworICAgICAgICAgICAgICB9CiAJICAgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICAgICAgICAgICAgICAgcmVzID0gX19hZGRfdmFyX3ZhbF9zdHIocGR1LCBzeXNVcFRpbWUsIFNZU19VUFRJTUVfT0lEX0xFTiwKIAkJCQl1cHRpbWUsIHN0cmxlbih1cHRpbWUpLCBUWVBFX1RJTUVUSUNLUyk7CkBAIC00NzQ5LDcgKzQ3NTksOCBAQAogCWludAkJZmxhZwogCUNPREU6CiAJewotCSAgIHNubXBfc2V0X2R1bXBfcGFja2V0KGZsYWcpOworICAgICAgICAgICAgbmV0c25tcF9kc19zZXRfYm9vbGVhbihORVRTTk1QX0RTX0xJQlJBUllfSUQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9EVU1QX1BBQ0tFVCwgZmxhZyk7CiAJfQogCiAKQEAgLTQ4OTcsNyArNDkwOCw4IEBACiAJaW50CXZhbAogCUNPREU6CiAJewotCSAgIHNubXBfc2V0X3NhdmVfZGVzY3JpcHRpb25zKHZhbCk7CisgICAgICAgICAgICBuZXRzbm1wX2RzX3NldF9ib29sZWFuKE5FVFNOTVBfRFNfTElCUkFSWV9JRCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCX1NBVkVfTUlCX0RFU0NSUywgdmFsKTsKIAl9CiAKIHZvaWQKZGlmZiAtLWdpdCBhL3BlcmwvU05NUC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCBiL3BlcmwvU05NUC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGM2NDJjCi0tLSAvZGV2L251bGwKKysrIGIvcGVybC9TTk1QL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oCkBAIC0wLDAgKzEsOCBAQAorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CisKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHNucHJpbnRfb2JqaWQpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShzbnByaW50X3ZhbHVlKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoZmluZF9tb2R1bGUpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShnZXRfdGNfZGVzY3JpcHRpb24pCisKZGlmZiAtLWdpdCBhL3BlcmwvU05NUC90L2FzeW5jLnQgYi9wZXJsL1NOTVAvdC9hc3luYy50CmluZGV4IGIxYzg2YzYuLmYzZmIzOGQgMTAwNjQ0Ci0tLSBhL3BlcmwvU05NUC90L2FzeW5jLnQKKysrIGIvcGVybC9TTk1QL3QvYXN5bmMudApAQCAtMTcsNyArMTcsNyBAQAogdXNlIHZhcnMgcXcoJGFnZW50X3BvcnQgJGNvbW0gJGFnZW50X2hvc3QpOwogCiBpZiAoJF5PID1+IC93aW4zMi9pKSB7Ci0gIHdhcm4gIldpbjMyIGRldGVjdGVkIC0gc2tpcHBpbmcgYXN5bmMgY2FsbHNcbiI7CisgIHdhcm4gIldpbjMyL1dpbjY0IGRldGVjdGVkIC0gc2tpcHBpbmcgYXN5bmMgY2FsbHNcbiI7CiAgIGV4aXQ7CiB9CiAKZGlmZiAtLWdpdCBhL3BlcmwvU05NUC90L2J1bGt3YWxrLnQgYi9wZXJsL1NOTVAvdC9idWxrd2Fsay50CmluZGV4IDYwZjEwYjUuLjJkMTNlN2IgMTAwNjQ0Ci0tLSBhL3BlcmwvU05NUC90L2J1bGt3YWxrLnQKKysrIGIvcGVybC9TTk1QL3QvYnVsa3dhbGsudApAQCAtMzI2LDcgKzMyNiw3IEBACiAJCQkgICAgWydpZlNwZWVkJ10sIFsnaWZEZXNjciddKTsJICMgUmVwZWF0ZWQgdmFyaWFibGVzLgogCiBpZiAoJF5PID1+IC93aW4zMi9pKSB7Ci0gIHdhcm4gIldpbjMyIGRldGVjdGVkIC0gc2tpcHBpbmcgYXN5bmMgY2FsbHNcbiI7CisgIHdhcm4gIldpbjMyL1dpbjY0IGRldGVjdGVkIC0gc2tpcHBpbmcgYXN5bmMgY2FsbHNcbiI7CiB9CiBlbHNlIHsKICAgQGxpc3QgPSAkczEtPmJ1bGt3YWxrKDIsIDE2LCAkdmFycywgWyBcJmFzeW5jX2NiMSwgJHZhcnMgXSApOwpkaWZmIC0tZ2l0IGEvcGVybC9TTk1QL3Qvbm90aWZ5LnQgYi9wZXJsL1NOTVAvdC9ub3RpZnkudAppbmRleCA0MzQyMzdmLi43MjYwMGZhIDEwMDY0NAotLS0gYS9wZXJsL1NOTVAvdC9ub3RpZnkudAorKysgYi9wZXJsL1NOTVAvdC9ub3RpZnkudApAQCAtMTAsNyArMTAsNyBAQAogICAgICRFTlZ7J01JQkRJUlMnfSA9ICcrJyAuIGFic19wYXRoKCIuLi8uLi9taWJzIik7CiB9CiB1c2UgVGVzdDsKLUJFR0lOIHsgJG4gPSAxMDsgcGxhbiB0ZXN0cyA9PiAkbiB9CitCRUdJTiB7ICRuID0gMTE7IHBsYW4gdGVzdHMgPT4gJG4gfQogdXNlIFNOTVA7CiB1c2UgdmFycyBxdygkYWdlbnRfcG9ydCAkY29tbSAkY29tbTIgJHRyYXBfcG9ydCAkYWdlbnRfaG9zdCAkc2VjX25hbWUgJHByaXZfcGFzcyAkYXV0aF9wYXNzICRiYWRfbmFtZSk7CiByZXF1aXJlICd0L3N0YXJ0YWdlbnQucGwnOwpAQCAtMjEsMjAgKzIxLDIwIEBACiBteSAkZ2VuZXJpYyA9ICdzcGVjaWZpYyc7CiAKICMgICAgICAgICAgICAgICAgICAgICAgICAgVjEgdHJhcCB0ZXN0aW5nCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjICAxICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICAxICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIEZpcmUgdXAgYSB0cmFwIHNlc3Npb24uCiBteSAkczEgPQogICAgIG5ldyBTTk1QOjpTZXNzaW9uIChEZXN0SG9zdD0+JGFnZW50X2hvc3QsVmVyc2lvbj0+MSxDb21tdW5pdHk9PiRjb21tLFJlbW90ZVBvcnQ9PiR0cmFwX3BvcnQpOwogb2soZGVmaW5lZCgkczEpKTsKIAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgIDIgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICAyICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIHRlc3QgdjEgdHJhcAogaWYgKGRlZmluZWQoJHMxKSkgewogICAkcmVzID0gJHMxLT50cmFwKGVudGVycHJpc2UgPT4gJGVudGVycHJpc2UsIGFnZW50PT4kYWdlbnRfaG9zdCwgZ2VuZXJpYz0+JGdlbmVyaWMsW1tzeXNDb250YWN0LCAwLCAncm9vdEBsb2NhbGhvc3QnXSwgW3N5c0xvY2F0aW9uLCAwLCAnaGVyZSddXSApOwogfQogb2soJHJlcyA9fiAvXjAgYnV0IHRydWUvKTsKIAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIDMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAgMyAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyB0ZXN0IHdpdGggd3JvbmcgdmFyYmluZAogdW5kZWYgJHJlczsKIGlmIChkZWZpbmVkKCRzMSkpIHsKQEAgLTQ1LDEyICs0NSwxMiBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKICMgICAgICAgICAgICAgICAgICAgICAgVjIgdGVzdGluZwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgNCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgIDQgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgRmlyZSB1cCBhIHYyIHRyYXAgc2Vzc2lvbi4KIG15ICRzMiA9CiAgICAgbmV3IFNOTVA6OlNlc3Npb24gKFZlcnNpb249PjIsIERlc3RIb3N0PT4kYWdlbnRfaG9zdCxDb21tdW5pdHk9PiRjb21tMixSZW1vdGVQb3J0PT4kdHJhcF9wb3J0KTsKIG9rKGRlZmluZWQoJHMyKSk7Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICA1ICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAgNSAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyB0ZXN0IHYyIHRyYXAKIHVuZGVmICRyZXM7CiBpZiAoZGVmaW5lZCgkczIpKSB7CkBAIC01OCw3ICs1OCw3IEBACiAgICNwcmludCgicmVzIGlzICRyZXNcbiIpOwogfQogb2soJHJlcyA9fiAvXjAgYnV0IHRydWUvKTsKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICA2ICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICA2ICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIG5vIHRyYXBvaWQgYW5kIHVwdGltZSBnaXZlbi4gU2hvdWxkIHRha2UgZGVmYXVsdHMuLi4KIG15ICRyZXQ7CiBpZiAoZGVmaW5lZCgkczIpKSB7CkBAIC02NiwyNyArNjYsMzUgQEAKICAgI3ByaW50KCJyZXMgaXMgJHJldFxuIik7CiB9CiBvayhkZWZpbmVkKCRyZXQpKTsKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAgNyAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBubyB2YXJiaW5kIGxpc3QgZ2l2ZW4uCit1bmRlZiAkcmVzOworaWYgKGRlZmluZWQoJHMyKSkgeworICAkcmVzID0gJHMyLT50cmFwKHRyYXBvaWQ9Pidjb2xkU3RhcnQnKTsKKyAgI3ByaW50KCJyZXMgaXMgJHJlc1xuIik7Cit9CitvayhkZWZpbmVkKCRyZXMpICYmICRyZXMgPX4gL14wIGJ1dCB0cnVlLyk7CiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCiAjICAgICAgICAgICAgICAgICAgICAgdjMgdGVzdGluZwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICA3ICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgIDggICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgRmlyZSB1cCBhIHYzIHRyYXAgc2Vzc2lvbi4KIG15ICRzMyA9IG5ldyBTTk1QOjpTZXNzaW9uKFZlcnNpb249PjMsIERlc3RIb3N0PT4gJGFnZW50X2hvc3QsIFJlbW90ZVBvcnQ9PiR0cmFwX3BvcnQsIFNlY05hbWUgPT4gJHNlY19uYW1lKTsKIG9rKGRlZmluZWQoJHMzKSk7CiAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAgOCAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgIDkgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIGlmIChkZWZpbmVkKCRzMykpIHsKICAgJHJlcyA9ICRzMy0+aW5mb3JtKHVwdGltZT0+MTExLCB0cmFwb2lkPT4nY29sZFN0YXJ0JywgW1tzeXNDb250YWN0LCAwLCAncm9vdEBsb2NhbGhvc3QnXSwgW3N5c0xvY2F0aW9uLCAwLCAnaGVyZSddXSApOwogfQogb2soJHJlcyA9fiAvXjAgYnV0IHRydWUvKTsKIAotIyMjIyMjIyMjIyMjIyMjIyMjIyMgOSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAxMCAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBGaXJlIHVwIGEgdjMgdHJhcCBzZXNzaW9uLgogJHMzID0gbmV3IFNOTVA6OlNlc3Npb24oVmVyc2lvbj0+MywgRGVzdEhvc3Q9PiAkYWdlbnRfaG9zdCwgUmVtb3RlUG9ydD0+JHRyYXBfcG9ydCwgU2VjTmFtZSA9PiAkc2VjX25hbWUsIFNlY0xldmVsID0+IGF1dGhQcml2LCBBdXRoUGFzcyA9PiAkYXV0aF9wYXNzLCBQcml2UGFzcyA9PiAkcHJpdl9wYXNzKTsKIG9rKGRlZmluZWQoJHMzKSk7CiAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAgMTAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIDExICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiB1bmRlZiAkcmVzOwogaWYgKGRlZmluZWQoJHMzKSkgewogICAgICRyZXMgPSAkczMtPmluZm9ybSh1cHRpbWU9PjExMSwgdHJhcG9pZD0+J2NvbGRTdGFydCcsIFtbc3lzQ29udGFjdCwgMCwgJ3Jvb3RAbG9jYWxob3N0J10sIFtzeXNMb2NhdGlvbiwgMCwgJ2hlcmUnXV0gKTsKZGlmZiAtLWdpdCBhL3BlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSBiL3BlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbQppbmRleCBiZDkwZTNjLi44NWEwNDFhIDEwMDY0NAotLS0gYS9wZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0KKysrIGIvcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtCkBAIC00Nyw3ICs0Nyw3IEBACiAJTkVUU05NUFRSQVBEX1BSRV9IQU5ETEVSCiApOwogCi0kVkVSU0lPTiA9ICc1LjA2MDInOworJFZFUlNJT04gPSAnNS4wNzAzJzsKIAogIyBzdWIgbmV3IHsKICMgICAgIG15ICR0eXBlID0gc2hpZnQ7CmRpZmYgLS1naXQgYS9wZXJsL1RyYXBSZWNlaXZlci9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCBiL3BlcmwvVHJhcFJlY2VpdmVyL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkMzMxZTMKLS0tIC9kZXYvbnVsbAorKysgYi9wZXJsL1RyYXBSZWNlaXZlci9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaApAQCAtMCwwICsxLDYgQEAKKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgorCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShuZXRzbm1wX2FkZF9kZWZhdWx0X3RyYXBoYW5kbGVyKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUobWVtb3J5X2ZyZWUpCisKZGlmZiAtLWdpdCBhL3BlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtIGIvcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0KaW5kZXggMDY1NDFjZC4uMDNmNTRkOSAxMDA2NDQKLS0tIGEvcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0KKysrIGIvcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0KQEAgLTI2LDcgKzI2LDcgQEAKIEBJU0EgICAgICAgPSBxdyhFeHBvcnRlciBnZXRMZWFmKTsKIEBFWFBPUlQgICAgPSBxdyhyZWdpc3RlckFnZW50IGdldE9pZEVsZW1lbnQgc2V0T2lkRWxlbWVudCk7CiBARVhQT1JUX09LID0gcXcoKTsKLSRWRVJTSU9OID0gJzUuMDYwMic7CiskVkVSU0lPTiA9ICc1LjA3MDMnOwogCiB1c2Ugc3RyaWN0OwogdXNlIHdhcm5pbmdzOwpkaWZmIC0tZ2l0IGEvcGVybC9hZ2VudC9hZ2VudC5wbSBiL3BlcmwvYWdlbnQvYWdlbnQucG0KaW5kZXggMWUyZGFkNS4uNDY1MDBmZiAxMDA2NDQKLS0tIGEvcGVybC9hZ2VudC9hZ2VudC5wbQorKysgYi9wZXJsL2FnZW50L2FnZW50LnBtCkBAIC04Nyw3ICs4Nyw3IEBACiAJU05NUF9FUlJfQVVUSE9SSVpBVElPTkVSUk9SCiAJU05NUF9FUlJfTk9UV1JJVEFCTEUKICk7Ci0kVkVSU0lPTiA9ICc1LjA2MDInOworJFZFUlNJT04gPSAnNS4wNzAzJzsKIAogc3ViIEFVVE9MT0FEIHsKICAgICAjIFRoaXMgQVVUT0xPQUQgaXMgdXNlZCB0byAnYXV0b2xvYWQnIGNvbnN0YW50cyBmcm9tIHRoZSBjb25zdGFudCgpCkBAIC0xOTksNiArMTk5LDEyIEBACiAgICAgX19hZ2VudF9jaGVja19hbmRfcHJvY2VzcygkYmxvY2tpbmcgfHwgMCk7CiB9CiAKK3N1YiB1cHRpbWUgeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgJHNlbGYtPm1heWJlX2luaXRfbGliKCk7CisgICAgcmV0dXJuIF91cHRpbWUoKTsKK30KKwogYm9vdHN0cmFwIE5ldFNOTVA6OmFnZW50ICRWRVJTSU9OOwogCiAjIFByZWxvYWRlZCBtZXRob2RzIGdvIGhlcmUuCmRpZmYgLS1naXQgYS9wZXJsL2FnZW50L2FnZW50LnhzIGIvcGVybC9hZ2VudC9hZ2VudC54cwppbmRleCA5OWU4ZWNiLi5jN2I1ZDlhIDEwMDY0NAotLS0gYS9wZXJsL2FnZW50L2FnZW50LnhzCisrKyBiL3BlcmwvYWdlbnQvYWdlbnQueHMKQEAgLTYwLDEyICs2MCwxNCBAQAogc3RhdGljIGludCBjb25zdGFudF9NT0RFX1NFVF9SKGRvdWJsZSAqdmFsdWUsIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGludCBsZW4pCiB7CiAgICAgc3dpdGNoIChsZW4gPj0gMTYgPyBuYW1lWzE2XSA6IC0xKSB7CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgJzEnOgogCVRFU1RfQ09OU1RBTlQodmFsdWUsIG5hbWUsIE1PREVfU0VUX1JFU0VSVkUxKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAnMic6CiAJVEVTVF9DT05TVEFOVCh2YWx1ZSwgbmFtZSwgTU9ERV9TRVRfUkVTRVJWRTIpOwogICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICB9CiAgICAgcmV0dXJuIEVJTlZBTDsKIH0KQEAgLTEyMSw2ICsxMjMsNyBAQAogICAgICAgICByZXR1cm4gRUlOVkFMOwogCiAgICAgc3dpdGNoIChsZW4gPj0gOSA/IG5hbWVbOV0gOiAtMSkgeworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKICAgICBjYXNlICdBJzoKICAgICAgICAgVEVTVF9DT05TVEFOVCh2YWx1ZSwgbmFtZSwgTU9ERV9TRVRfQUNUSU9OKTsKICAgICAgICAgYnJlYWs7CkBAIC0xMzMsMTEgKzEzNiwxMiBAQAogICAgIGNhc2UgJ0YnOgogICAgICAgICBURVNUX0NPTlNUQU5UKHZhbHVlLCBuYW1lLCBNT0RFX1NFVF9GUkVFKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAnUic6Ci0gICAgICAgIHJldHVybiBjb25zdGFudF9NT0RFX1NFVF9SKHZhbHVlLCBuYW1lLCBsZW4pOwogICAgIGNhc2UgJ1UnOgogICAgICAgICBURVNUX0NPTlNUQU5UKHZhbHVlLCBuYW1lLCBNT0RFX1NFVF9VTkRPKTsKICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgY2FzZSAnUic6CisgICAgICAgIHJldHVybiBjb25zdGFudF9NT0RFX1NFVF9SKHZhbHVlLCBuYW1lLCBsZW4pOwogICAgIH0KICAgICByZXR1cm4gRUlOVkFMOwogfQpAQCAtMjM0LDYgKzIzOCwxMyBAQAogICAgIE9VVFBVVDoKIAlSRVRWQUwKIAoraW50CitfdXB0aW1lKCkKKyAgICBDT0RFOgorICAgICAgICBSRVRWQUwgPSBuZXRzbm1wX2dldF9hZ2VudF91cHRpbWUoKTsKKyAgICBPVVRQVVQ6CisJUkVUVkFMCisKIHZvaWQKIGluaXRfbWliKCkKICAgICBDT0RFOgpkaWZmIC0tZ2l0IGEvcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0gYi9wZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbQppbmRleCAzOWI4YTE0Li5hODgxMmViIDEwMDY0NAotLS0gYS9wZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbQorKysgYi9wZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbQpAQCAtOTYsNyArOTYsNyBAQAogCQkJCSAgIE5FVFNOTVBfRFNfQUdFTlRfTUFYX0dFVEJVTEtSRVBFQVRTCiAJCQkJICAgTkVUU05NUF9EU19BR0VOVF9NQVhfR0VUQlVMS1JFU1BPTlNFUwogKTsKLSRWRVJTSU9OID0gJzUuMDYwMic7CiskVkVSU0lPTiA9ICc1LjA3MDMnOwogCiBzdWIgQVVUT0xPQUQgewogICAgICMgVGhpcyBBVVRPTE9BRCBpcyB1c2VkIHRvICdhdXRvbG9hZCcgY29uc3RhbnRzIGZyb20gdGhlIGNvbnN0YW50KCkKZGlmZiAtLWdpdCBhL3BlcmwvYWdlbnQvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmggYi9wZXJsL2FnZW50L25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmMjYzMGUKLS0tIC9kZXYvbnVsbAorKysgYi9wZXJsL2FnZW50L25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oCkBAIC0wLDAgKzEsNiBAQAorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CisKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoc25tcF9lbmFibGVfc3RkZXJybG9nKQorCmRpZmYgLS1naXQgYS9wZXJsL2FnZW50L3Rlc3QucGwgYi9wZXJsL2FnZW50L3Rlc3QucGwKaW5kZXggYTdhYzhmOS4uODhjYmE1NiAxMDA2NDQKLS0tIGEvcGVybC9hZ2VudC90ZXN0LnBsCisrKyBiL3BlcmwvYWdlbnQvdGVzdC5wbApAQCAtOSw3ICs5LDcgQEAKIEJFR0lOIHsgJHwgPSAxOyAKICAgICAgICAgJEVOVnsnU05NUENPTkZQQVRIJ30gPSAnbm9wYXRoJzsKICAgICAgICAgJEVOVnsnTUlCUyd9ID0gJyc7Ci0gICAgICAgIHByaW50ICIxLi41XG4iOworICAgICAgICBwcmludCAiMS4uNlxuIjsKICAgICAgIH0KIEVORCB7cHJpbnQgIm5vdCBvayAxXG4iIHVubGVzcyAkbG9hZGVkO30KIHVzZSBOZXRTTk1QOjphZ2VudCAoJzphbGwnKTsKQEAgLTc2LDYgKzc2LDEyIEBACiBwcmludCBpdCgkcmVnaXRlbSwgNCk7CiAjcHJpbnQgU1RERVJSICRyZWdpdGVtLCI6IixyZWYoJHJlZ2l0ZW0pLCJcbiI7CiBwcmludCBpdChyZWYoJHJlZ2l0ZW0pIGVxICJOZXRTTk1QOjphZ2VudDo6bmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiIsIDUpOworCitteSAkdXB0aW1lMSA9ICRhZ2VudC0+dXB0aW1lKCk7CitteSAkdXB0aW1lMiA9ICRhZ2VudC0+dXB0aW1lKDY2Nik7CitteSAkdXB0aW1lMyA9ICRhZ2VudC0+dXB0aW1lKDU1NSwgNDQ0KTsKK3ByaW50IGl0KCR1cHRpbWUxIDw9ICR1cHRpbWUyICYmICR1cHRpbWUyIDw9ICR1cHRpbWUzLCA2KTsKKwogZXhpdDsKIAogd2hpbGUoMSkgewpkaWZmIC0tZ2l0IGEvcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0gYi9wZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbQppbmRleCBjY2FlNjA2Li5iODk4NTAxIDEwMDY0NAotLS0gYS9wZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbQorKysgYi9wZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbQpAQCAtMjAwLDcgKzIwMCw3IEBACiAJCQkJICAgTkVUU05NUF9EU19MSUJfS1NNX1NFUlZJQ0VfTkFNRQogCQkJCSAgIE5FVFNOTVBfRFNfTElCX1NCU01fTE9DQUxfUFdECiApOwotJFZFUlNJT04gPSAnNS4wNjAyJzsKKyRWRVJTSU9OID0gJzUuMDcwMyc7CiAKIHN1YiBBVVRPTE9BRCB7CiAgICAgIyBUaGlzIEFVVE9MT0FEIGlzIHVzZWQgdG8gJ2F1dG9sb2FkJyBjb25zdGFudHMgZnJvbSB0aGUgY29uc3RhbnQoKQpkaWZmIC0tZ2l0IGEvcGVybC9kZWZhdWx0X3N0b3JlL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oIGIvcGVybC9kZWZhdWx0X3N0b3JlL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9wZXJsL2RlZmF1bHRfc3RvcmUvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgKZGlmZiAtLWdpdCBhL3B5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmMgYi9weXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jCmluZGV4IDlmNzI2ZjUuLjhiODgwNWQgMTAwNjQ0Ci0tLSBhL3B5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmMKKysrIGIvcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYwpAQCAtMTM2MCwxMiArMTM2MCwxMiBAQAogCiAgIGlmIChvdXJfaWRlbnRpdHkgJiYgb3VyX2lkZW50aXR5WzBdICE9ICdcMCcpCiAgICAgICBDT05UQUlORVJfSU5TRVJUKHNlc3Npb24udHJhbnNwb3J0X2NvbmZpZ3VyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfdHJhbnNwb3J0X2NyZWF0ZV9jb25maWcoIm91cl9pZGVudGl0eSIsCisgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfdHJhbnNwb3J0X2NyZWF0ZV9jb25maWcoImxvY2FsQ2VydCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3VyX2lkZW50aXR5KSk7CiAKICAgaWYgKHRoZWlyX2lkZW50aXR5ICYmIHRoZWlyX2lkZW50aXR5WzBdICE9ICdcMCcpCiAgICAgICBDT05UQUlORVJfSU5TRVJUKHNlc3Npb24udHJhbnNwb3J0X2NvbmZpZ3VyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfdHJhbnNwb3J0X2NyZWF0ZV9jb25maWcoInRoZWlyX2lkZW50aXR5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF90cmFuc3BvcnRfY3JlYXRlX2NvbmZpZygicGVlckNlcnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZWlyX2lkZW50aXR5KSk7CiAKICAgaWYgKHRoZWlyX2hvc3RuYW1lICYmIHRoZWlyX2hvc3RuYW1lWzBdICE9ICdcMCcpCmRpZmYgLS1naXQgYS9weXRob24vbmV0c25tcC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCBiL3B5dGhvbi9uZXRzbm1wL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4OTQxNmEKLS0tIC9kZXYvbnVsbAorKysgYi9weXRob24vbmV0c25tcC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaApAQCAtMCwwICsxLDYgQEAKKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgorCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShzbnByaW50X3ZhbHVlKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoZW5hYmxlX3N0ZGVycmxvZykKKwpkaWZmIC0tZ2l0IGEvc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQgYi9zbm1wbGliL01ha2VmaWxlLmRlcGVuZAppbmRleCAyMGZjNjUzLi42MmI1MTExIDEwMDY0NAotLS0gYS9zbm1wbGliL01ha2VmaWxlLmRlcGVuZAorKysgYi9zbm1wbGliL01ha2VmaWxlLmRlcGVuZApAQCAtNSw4ICs1LDcgQEAKIC4vYXNuMS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3lzdi5oCiAuL2FzbjEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2dlbmVyaWMuaAogLi9hc24xLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oCi0uL2FzbjEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oCi0uL2FzbjEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAorLi9hc24xLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaCAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKIC4vYXNuMS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oCiAuL2FzbjEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oCiAuL2FzbjEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaApAQCAtMjAsMTEgKzE5LDggQEAKIC4vYXNuMS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL2FzbjEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9hc24xLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9hc24xLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL2FzbjEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9hc24xLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vYXNuMS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vYXNuMS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9hc24xLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vYXNuMS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vYXNuMS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2FzbjEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0zMyw2ICsyOSw3IEBACiAuL2FzbjEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9hc24xLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9hc24xLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vYXNuMS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2FzbjEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9hc24xLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2FzbjEubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTU5LDYgKzU2LDcgQEAKIC4vY2FsbGJhY2subG86IC4uL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N5c3YuaAogLi9jYWxsYmFjay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZ2VuZXJpYy5oCiAuL2NhbGxiYWNrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oCisuL2NhbGxiYWNrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vY2FsbGJhY2subG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAogLi9jYWxsYmFjay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oCiAuL2NhbGxiYWNrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaApAQCAtNzcsMTEgKzc1LDggQEAKIC4vY2FsbGJhY2subG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9jYWxsYmFjay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2NhbGxiYWNrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9jYWxsYmFjay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9jYWxsYmFjay5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2NhbGxiYWNrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vY2FsbGJhY2subG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2NhbGxiYWNrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2NhbGxiYWNrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vY2FsbGJhY2subG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2NhbGxiYWNrLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vY2FsbGJhY2subG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0xMTUsMTEgKzExMCw1NyBAQAogLi9jZXJ0X3V0aWwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N5c3YuaAogLi9jZXJ0X3V0aWwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2dlbmVyaWMuaAogLi9jZXJ0X3V0aWwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbWFjaGluZS9nZW5lcmljLmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaAorLi9jZXJ0X3V0aWwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAorLi9jZXJ0X3V0aWwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oCisuL2NlcnRfdXRpbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oCisuL2NlcnRfdXRpbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3BkdV9hcGkuaAorLi9jZXJ0X3V0aWwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaAorLi9jZXJ0X3V0aWwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaAorLi9jZXJ0X3V0aWwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oCisuL2NlcnRfdXRpbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCisuL2NlcnRfdXRpbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCisuL2NlcnRfdXRpbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2NlcnRfdXRpbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCisuL2NlcnRfdXRpbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaAorLi9jZXJ0X3V0aWwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdWNkX2NvbXBhdC5oCisuL2NlcnRfdXRpbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oCisuL2NlcnRfdXRpbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAorLi9jZXJ0X3V0aWwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9jZXJ0X3V0aWwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAorLi9jZXJ0X3V0aWwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCisuL2NlcnRfdXRpbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaAorLi9jZXJ0X3V0aWwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2NlcnRfdXRpbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oCisuL2NlcnRfdXRpbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oCisuL2NlcnRfdXRpbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaAorLi9jZXJ0X3V0aWwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oCisuL2NlcnRfdXRpbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oCisuL2NlcnRfdXRpbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgKKy4vY2VydF91dGlsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmFjdG9yeS5oCisuL2NlcnRfdXRpbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oCisuL2NlcnRfdXRpbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZpbGVfdXRpbHMuaAorLi9jZXJ0X3V0aWwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kaXJfdXRpbHMuaAorLi9jZXJ0X3V0aWwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaAorLi9jZXJ0X3V0aWwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaAogLi9jaGVja192YXJiaW5kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCi0uL2NoZWNrX3ZhcmJpbmQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2xpbnV4LmgKLS4vY2hlY2tfdmFyYmluZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3lzdi5oCi0uL2NoZWNrX3ZhcmJpbmQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2dlbmVyaWMuaAotLi9jaGVja192YXJiaW5kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oCiAuL2NoZWNrX3ZhcmJpbmQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9jaGVja192YXJiaW5kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vY2hlY2tfdmFyYmluZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC0xMzksMTEgKzE4MCw4IEBACiAuL2NoZWNrX3ZhcmJpbmQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9jaGVja192YXJiaW5kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vY2hlY2tfdmFyYmluZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vY2hlY2tfdmFyYmluZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9jaGVja192YXJiaW5kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vY2hlY2tfdmFyYmluZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL2NoZWNrX3ZhcmJpbmQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2NoZWNrX3ZhcmJpbmQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vY2hlY2tfdmFyYmluZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL2NoZWNrX3ZhcmJpbmQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2NoZWNrX3ZhcmJpbmQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9jaGVja192YXJiaW5kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMTUzLDYgKzE5MSw3IEBACiAuL2NoZWNrX3ZhcmJpbmQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL2NoZWNrX3ZhcmJpbmQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL2NoZWNrX3ZhcmJpbmQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9jaGVja192YXJiaW5kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vY2hlY2tfdmFyYmluZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL2NoZWNrX3ZhcmJpbmQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vY2hlY2tfdmFyYmluZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTc2LDcgKzIxNSw2IEBACiAuL2NoZWNrX3ZhcmJpbmQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oCiAuL2NoZWNrX3ZhcmJpbmQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oCiAuL2NoZWNrX3ZhcmJpbmQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgKLS4vY2hlY2tfdmFyYmluZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogLi9jaGVja192YXJiaW5kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgKIC4vY2hlY2tfdmFyYmluZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oCiAuL2NoZWNrX3ZhcmJpbmQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgKQEAgLTE4OCw2ICsyMjYsNyBAQAogLi9jaGVja192YXJiaW5kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9jaGVja192YXJiaW5kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9jaGVja192YXJiaW5kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vY2hlY2tfdmFyYmluZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9jaGVja192YXJiaW5kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2Nsb3NlZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL2Nsb3NlZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTIwOCwxMSArMjQ3LDggQEAKIC4vY2xvc2VkaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9jbG9zZWRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2Nsb3NlZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9jbG9zZWRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9jbG9zZWRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2Nsb3NlZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vY2xvc2VkaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2Nsb3NlZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2Nsb3NlZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vY2xvc2VkaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2Nsb3NlZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vY2xvc2VkaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0yMjIsMTEgKzI1OCwxMSBAQAogLi9jbG9zZWRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vY2xvc2VkaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL2Nsb3NlZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vY2xvc2VkaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9jbG9zZWRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL2Nsb3NlZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2Nsb3NlZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCiAuL2Nsb3NlZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgKLS4vY211X2NvbXBhdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogLi9jb250YWluZXJfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9jb250YWluZXJfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKQEAgLTI0NywxMSArMjgzLDggQEAKIC4vY29udGFpbmVyX2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9jb250YWluZXJfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9jb250YWluZXJfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9jb250YWluZXJfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vY29udGFpbmVyX2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vY29udGFpbmVyX2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9jb250YWluZXJfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vY29udGFpbmVyX2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vY29udGFpbmVyX2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0yNjEsNiArMjk0LDcgQEAKIC4vY29udGFpbmVyX2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vY29udGFpbmVyX2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vY29udGFpbmVyX2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9jb250YWluZXJfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vY29udGFpbmVyX2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9jb250YWluZXJfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0yOTUsOCArMzI5LDEwIEBACiAuL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9jb250YWluZXJfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vY29udGFpbmVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oIC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAogLi9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaApAQCAtMzE1LDExICszNTEsOCBAQAogLi9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTM2Myw5ICszOTYsMTEgQEAKIC4vY29udGFpbmVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2NvbnRhaW5lci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9jb250YWluZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vY29udGFpbmVyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX251bGwuaAogLi9jb250YWluZXJfaXRlcmF0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vY29udGFpbmVyX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vY29udGFpbmVyX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vY29udGFpbmVyX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vY29udGFpbmVyX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTM4NSwxMSArNDIwLDggQEAKIC4vY29udGFpbmVyX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vY29udGFpbmVyX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vY29udGFpbmVyX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9jb250YWluZXJfaXRlcmF0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vY29udGFpbmVyX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vY29udGFpbmVyX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vY29udGFpbmVyX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9jb250YWluZXJfaXRlcmF0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vY29udGFpbmVyX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vY29udGFpbmVyX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9jb250YWluZXJfaXRlcmF0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9jb250YWluZXJfaXRlcmF0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC00MzMsOCArNDY1LDEwIEBACiAuL2NvbnRhaW5lcl9pdGVyYXRvci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vY29udGFpbmVyX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9jb250YWluZXJfaXRlcmF0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9jb250YWluZXJfaXRlcmF0b3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vY29udGFpbmVyX2l0ZXJhdG9yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2NvbnRhaW5lcl9saXN0X3NzbGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vY29udGFpbmVyX2xpc3Rfc3NsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2NvbnRhaW5lcl9saXN0X3NzbGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9jb250YWluZXJfbGlzdF9zc2xsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKIC4vY29udGFpbmVyX2xpc3Rfc3NsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCkBAIC00NTQsMTEgKzQ4OCw4IEBACiAuL2NvbnRhaW5lcl9saXN0X3NzbGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9jb250YWluZXJfbGlzdF9zc2xsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vY29udGFpbmVyX2xpc3Rfc3NsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vY29udGFpbmVyX2xpc3Rfc3NsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9jb250YWluZXJfbGlzdF9zc2xsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vY29udGFpbmVyX2xpc3Rfc3NsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL2NvbnRhaW5lcl9saXN0X3NzbGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2NvbnRhaW5lcl9saXN0X3NzbGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vY29udGFpbmVyX2xpc3Rfc3NsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL2NvbnRhaW5lcl9saXN0X3NzbGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2NvbnRhaW5lcl9saXN0X3NzbGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9jb250YWluZXJfbGlzdF9zc2xsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtNTAyLDggKzUzMywxMCBAQAogLi9jb250YWluZXJfbGlzdF9zc2xsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9jb250YWluZXJfbGlzdF9zc2xsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9jb250YWluZXJfbGlzdF9zc2xsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vY29udGFpbmVyX2xpc3Rfc3NsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9jb250YWluZXJfbGlzdF9zc2xsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2NvbnRhaW5lcl9udWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2NvbnRhaW5lcl9udWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vY29udGFpbmVyX251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaAogLi9jb250YWluZXJfbnVsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL2NvbnRhaW5lcl9udWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTUyMywxMSArNTU2LDggQEAKIC4vY29udGFpbmVyX251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9jb250YWluZXJfbnVsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2NvbnRhaW5lcl9udWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9jb250YWluZXJfbnVsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9jb250YWluZXJfbnVsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2NvbnRhaW5lcl9udWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vY29udGFpbmVyX251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2NvbnRhaW5lcl9udWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2NvbnRhaW5lcl9udWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vY29udGFpbmVyX251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2NvbnRhaW5lcl9udWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vY29udGFpbmVyX251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC01NzEsOSArNjAxLDExIEBACiAuL2NvbnRhaW5lcl9udWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9jb250YWluZXJfbnVsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vY29udGFpbmVyX251bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9jb250YWluZXJfbnVsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9jb250YWluZXJfbnVsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9jb250YWluZXJfbnVsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9udWxsLmgKIC4vZGF0YV9saXN0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2RhdGFfbGlzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2RhdGFfbGlzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL2RhdGFfbGlzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oIC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAogLi9kYXRhX2xpc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaApAQCAtNTkyLDExICs2MjQsOCBAQAogLi9kYXRhX2xpc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9kYXRhX2xpc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9kYXRhX2xpc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL2RhdGFfbGlzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9kYXRhX2xpc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9kYXRhX2xpc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9kYXRhX2xpc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2RhdGFfbGlzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9kYXRhX2xpc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9kYXRhX2xpc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2RhdGFfbGlzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2RhdGFfbGlzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTY0MCw4ICs2NjksMTAgQEAKIC4vZGF0YV9saXN0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9kYXRhX2xpc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2RhdGFfbGlzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2RhdGFfbGlzdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9kYXRhX2xpc3QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vZGVmYXVsdF9zdG9yZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9kZWZhdWx0X3N0b3JlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vZGVmYXVsdF9zdG9yZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiAuL2RlZmF1bHRfc3RvcmUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaAogLi9kZWZhdWx0X3N0b3JlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaApAQCAtNjYwLDExICs2OTEsOCBAQAogLi9kZWZhdWx0X3N0b3JlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vZGVmYXVsdF9zdG9yZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2RlZmF1bHRfc3RvcmUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL2RlZmF1bHRfc3RvcmUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vZGVmYXVsdF9zdG9yZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2RlZmF1bHRfc3RvcmUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9kZWZhdWx0X3N0b3JlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9kZWZhdWx0X3N0b3JlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2RlZmF1bHRfc3RvcmUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9kZWZhdWx0X3N0b3JlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9kZWZhdWx0X3N0b3JlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vZGVmYXVsdF9zdG9yZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTcwMCw2ICs3MjgsNyBAQAogLi9kZWZhdWx0X3N0b3JlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaAogLi9kZWZhdWx0X3N0b3JlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaAogLi9kaXJfdXRpbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vZGlyX3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vZGlyX3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vZGlyX3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmggLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiAuL2Rpcl91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oCkBAIC03MTgsMTEgKzc0Nyw4IEBACiAuL2Rpcl91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL2Rpcl91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2Rpcl91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vZGlyX3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL2Rpcl91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2Rpcl91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL2Rpcl91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vZGlyX3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2Rpcl91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL2Rpcl91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vZGlyX3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vZGlyX3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtNzY2LDYgKzc5Miw3IEBACiAuL2Rpcl91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vZGlyX3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9kaXJfdXRpbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9kaXJfdXRpbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vZGlyX3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2Rpcl91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZpbGVfdXRpbHMuaAogLi9kaXJfdXRpbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kaXJfdXRpbHMuaApAQCAtNzg5LDExICs4MTYsOCBAQAogLi9mZF9ldmVudF9tYW5hZ2VyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vZmRfZXZlbnRfbWFuYWdlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2ZkX2V2ZW50X21hbmFnZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL2ZkX2V2ZW50X21hbmFnZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vZmRfZXZlbnRfbWFuYWdlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2ZkX2V2ZW50X21hbmFnZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9mZF9ldmVudF9tYW5hZ2VyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9mZF9ldmVudF9tYW5hZ2VyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2ZkX2V2ZW50X21hbmFnZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9mZF9ldmVudF9tYW5hZ2VyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9mZF9ldmVudF9tYW5hZ2VyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vZmRfZXZlbnRfbWFuYWdlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTgwMyw2ICs4MjcsNyBAQAogLi9mZF9ldmVudF9tYW5hZ2VyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9mZF9ldmVudF9tYW5hZ2VyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9mZF9ldmVudF9tYW5hZ2VyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vZmRfZXZlbnRfbWFuYWdlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2ZkX2V2ZW50X21hbmFnZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9mZF9ldmVudF9tYW5hZ2VyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2ZkX2V2ZW50X21hbmFnZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTgzNywxMCArODYyLDEyIEBACiAuL2ZkX2V2ZW50X21hbmFnZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL2ZkX2V2ZW50X21hbmFnZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL2ZkX2V2ZW50X21hbmFnZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9mZF9ldmVudF9tYW5hZ2VyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL2ZkX2V2ZW50X21hbmFnZXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vZmRfZXZlbnRfbWFuYWdlci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZkX2V2ZW50X21hbmFnZXIuaAogLi9mZF9ldmVudF9tYW5hZ2VyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgKIC4vZmlsZV91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9maWxlX3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vZmlsZV91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL2ZpbGVfdXRpbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAogLi9maWxlX3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTg2MCwxMSArODg3LDggQEAKIC4vZmlsZV91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL2ZpbGVfdXRpbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9maWxlX3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9maWxlX3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL2ZpbGVfdXRpbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9maWxlX3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vZmlsZV91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vZmlsZV91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9maWxlX3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vZmlsZV91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vZmlsZV91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2ZpbGVfdXRpbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC05MDgsNiArOTMyLDcgQEAKIC4vZmlsZV91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vZmlsZV91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vZmlsZV91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL2ZpbGVfdXRpbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vZmlsZV91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9maWxlX3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmlsZV91dGlscy5oCiAuL2dldG9wdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaApAQCAtOTMxLDExICs5NTYsOCBAQAogLi9nZXR0aW1lb2ZkYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9nZXR0aW1lb2ZkYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9nZXR0aW1lb2ZkYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL2dldHRpbWVvZmRheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9nZXR0aW1lb2ZkYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9nZXR0aW1lb2ZkYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9nZXR0aW1lb2ZkYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2dldHRpbWVvZmRheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9nZXR0aW1lb2ZkYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9nZXR0aW1lb2ZkYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2dldHRpbWVvZmRheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2dldHRpbWVvZmRheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTk0NSw2ICs5NjcsNyBAQAogLi9nZXR0aW1lb2ZkYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL2dldHRpbWVvZmRheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vZ2V0dGltZW9mZGF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vZ2V0dGltZW9mZGF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vZ2V0dGltZW9mZGF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vZ2V0dGltZW9mZGF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2dldHRpbWVvZmRheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtOTY4LDExICs5OTEsOCBAQAogLi9pbmV0X250b3AubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9pbmV0X250b3AubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9pbmV0X250b3AubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL2luZXRfbnRvcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9pbmV0X250b3AubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9pbmV0X250b3AubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9pbmV0X250b3AubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2luZXRfbnRvcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9pbmV0X250b3AubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9pbmV0X250b3AubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2luZXRfbnRvcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2luZXRfbnRvcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTk4Miw2ICsxMDAyLDcgQEAKIC4vaW5ldF9udG9wLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9pbmV0X250b3AubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL2luZXRfbnRvcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL2luZXRfbnRvcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL2luZXRfbnRvcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL2luZXRfbnRvcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9pbmV0X250b3AubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmggaW5ldF9udG9wLmgKQEAgLTEwMDQsMTEgKzEwMjUsOCBAQAogLi9pbmV0X3B0b24ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9pbmV0X3B0b24ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9pbmV0X3B0b24ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL2luZXRfcHRvbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9pbmV0X3B0b24ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9pbmV0X3B0b24ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9pbmV0X3B0b24ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2luZXRfcHRvbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9pbmV0X3B0b24ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9pbmV0X3B0b24ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2luZXRfcHRvbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2luZXRfcHRvbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTEwMTgsNiArMTAzNiw3IEBACiAuL2luZXRfcHRvbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vaW5ldF9wdG9uLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9pbmV0X3B0b24ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9pbmV0X3B0b24ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9pbmV0X3B0b24ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9pbmV0X3B0b24ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vaW5ldF9wdG9uLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oIGluZXRfcHRvbi5oCkBAIC0xMDM5LDExICsxMDU4LDggQEAKIC4vaW50NjQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9pbnQ2NC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2ludDY0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9pbnQ2NC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9pbnQ2NC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2ludDY0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vaW50NjQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2ludDY0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2ludDY0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vaW50NjQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2ludDY0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vaW50NjQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0xMDUyLDEyICsxMDY4LDE0IEBACiAuL2ludDY0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vaW50NjQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL2ludDY0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vaW50NjQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9pbnQ2NC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL2ludDY0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2ludDY0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCiAuL2ludDY0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaAogLi9pbnQ2NC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0LmgKIC4va2V5dG9vbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4va2V5dG9vbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9rZXl0b29scy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiAuL2tleXRvb2xzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgKIC4va2V5dG9vbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oCkBAIC0xMDc2LDExICsxMDk0LDggQEAKIC4va2V5dG9vbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9rZXl0b29scy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL2tleXRvb2xzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9rZXl0b29scy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9rZXl0b29scy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL2tleXRvb2xzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4va2V5dG9vbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL2tleXRvb2xzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL2tleXRvb2xzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4va2V5dG9vbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL2tleXRvb2xzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4va2V5dG9vbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0xMTMyLDExICsxMTQ3LDggQEAKIC4vbGFyZ2VfZmRfc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vbGFyZ2VfZmRfc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vbGFyZ2VfZmRfc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9sYXJnZV9mZF9zZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vbGFyZ2VfZmRfc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vbGFyZ2VfZmRfc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vbGFyZ2VfZmRfc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9sYXJnZV9mZF9zZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vbGFyZ2VfZmRfc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vbGFyZ2VfZmRfc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9sYXJnZV9mZF9zZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9sYXJnZV9mZF9zZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0xMTQ2LDYgKzExNTgsNyBAQAogLi9sYXJnZV9mZF9zZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL2xhcmdlX2ZkX3NldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vbGFyZ2VfZmRfc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vbGFyZ2VfZmRfc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vbGFyZ2VfZmRfc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vbGFyZ2VfZmRfc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL2xhcmdlX2ZkX3NldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTE4MCw5ICsxMTkzLDExIEBACiAuL2xhcmdlX2ZkX3NldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vbGFyZ2VfZmRfc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9sYXJnZV9mZF9zZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9sYXJnZV9mZF9zZXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vbGFyZ2VfZmRfc2V0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL2xhcmdlX2ZkX3NldC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oCiAuL2xjZF90aW1lLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL2xjZF90aW1lLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vbGNkX3RpbWUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAogLi9sY2RfdGltZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oCiAuL2xjZF90aW1lLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaApAQCAtMTIwMSwxMSArMTIxNiw4IEBACiAuL2xjZF90aW1lLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vbGNkX3RpbWUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9sY2RfdGltZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vbGNkX3RpbWUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vbGNkX3RpbWUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9sY2RfdGltZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL2xjZF90aW1lLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9sY2RfdGltZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9sY2RfdGltZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL2xjZF90aW1lLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9sY2RfdGltZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL2xjZF90aW1lLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMTI1OCwxMSArMTI3MCw4IEBACiAuL21kNS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL21kNS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL21kNS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vbWQ1LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL21kNS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL21kNS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL21kNS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vbWQ1LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL21kNS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL21kNS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vbWQ1LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vbWQ1LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMTI3MSw2ICsxMjgwLDcgQEAKIC4vbWQ1LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vbWQ1LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9tZDUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9tZDUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9tZDUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9tZDUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vbWQ1LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xMzAzLDkgKzEzMTMsMTEgQEAKIC4vbWQ1LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9tZDUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL21kNS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL21kNS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9tZDUubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vbWQ1LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgKIC4vbWliLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL21pYi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL21pYi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiAuL21pYi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oCiAuL21pYi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgKQEAgLTEzMjMsMTEgKzEzMzUsOCBAQAogLi9taWIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9taWIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9taWIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL21pYi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9taWIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9taWIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9taWIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL21pYi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9taWIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9taWIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL21pYi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL21pYi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTEzNjMsNiArMTM3Miw3IEBACiAuL210X3N1cHBvcnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKIC4vbXRfc3VwcG9ydC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaAogLi9vaWRfc3Rhc2gubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vb2lkX3N0YXNoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vb2lkX3N0YXNoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vb2lkX3N0YXNoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmggLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiAuL29pZF9zdGFzaC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oCkBAIC0xMzgxLDExICsxMzkxLDggQEAKIC4vb2lkX3N0YXNoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vb2lkX3N0YXNoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vb2lkX3N0YXNoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9vaWRfc3Rhc2gubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vb2lkX3N0YXNoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vb2lkX3N0YXNoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vb2lkX3N0YXNoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9vaWRfc3Rhc2gubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vb2lkX3N0YXNoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vb2lkX3N0YXNoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9vaWRfc3Rhc2gubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9vaWRfc3Rhc2gubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0xNDI5LDYgKzE0MzYsNyBAQAogLi9vaWRfc3Rhc2gubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCiAuL29pZF9zdGFzaC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vb2lkX3N0YXNoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vb2lkX3N0YXNoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oCiAuL29pZF9zdGFzaC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaAogLi9vcGVuZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL29wZW5kaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMTQ0OSwxMSArMTQ1Nyw4IEBACiAuL29wZW5kaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9vcGVuZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vb3BlbmRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vb3BlbmRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9vcGVuZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vb3BlbmRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL29wZW5kaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL29wZW5kaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vb3BlbmRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL29wZW5kaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL29wZW5kaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9vcGVuZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMTQ2MiwxMSArMTQ2NywxMyBAQAogLi9vcGVuZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vb3BlbmRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vb3BlbmRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL29wZW5kaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9vcGVuZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vb3BlbmRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9vcGVuZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCiAuL29wZW5kaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaAogLi9wYXJzZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9wYXJzZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3BhcnNlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKIC4vcGFyc2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaAogLi9wYXJzZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgKQEAgLTE0ODQsMTEgKzE0OTEsOCBAQAogLi9wYXJzZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3BhcnNlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vcGFyc2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3BhcnNlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3BhcnNlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vcGFyc2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9wYXJzZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vcGFyc2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vcGFyc2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9wYXJzZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vcGFyc2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9wYXJzZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTE1MjQsNiArMTUyOCw3IEBACiAuL3BhcnNlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaAogLi9wa2NzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL3JlYWRfY29uZmlnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL3JlYWRfY29uZmlnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vcmVhZF9jb25maWcubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAogLi9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oCiAuL3JlYWRfY29uZmlnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaApAQCAtMTU0MiwxMSArMTU0Nyw4IEBACiAuL3JlYWRfY29uZmlnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vcmVhZF9jb25maWcubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vcmVhZF9jb25maWcubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vcmVhZF9jb25maWcubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3JlYWRfY29uZmlnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3JlYWRfY29uZmlnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9yZWFkX2NvbmZpZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3JlYWRfY29uZmlnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMTYwMCwxMSArMTYwMiw4IEBACiAuL3JlYWRkaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9yZWFkZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vcmVhZGRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vcmVhZGRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9yZWFkZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vcmVhZGRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3JlYWRkaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3JlYWRkaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vcmVhZGRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3JlYWRkaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3JlYWRkaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9yZWFkZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMTYxMywxMSArMTYxMiwxMyBAQAogLi9yZWFkZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vcmVhZGRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vcmVhZGRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3JlYWRkaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9yZWFkZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vcmVhZGRpci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9yZWFkZGlyLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCiAuL3JlYWRkaXIubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaAogLi9zY2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9zY2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NjYXBpLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKIC4vc2NhcGkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaAogLi9zY2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgKQEAgLTE2MzUsMTEgKzE2MzYsOCBAQAogLi9zY2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3NjYXBpLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vc2NhcGkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3NjYXBpLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3NjYXBpLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vc2NhcGkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9zY2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vc2NhcGkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vc2NhcGkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9zY2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vc2NhcGkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9zY2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTE2OTEsMTEgKzE2ODksOCBAQAogLi9zbm1wX2FsYXJtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vc25tcF9hbGFybS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3NubXBfYWxhcm0ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3NubXBfYWxhcm0ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vc25tcF9hbGFybS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBfYWxhcm0ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9zbm1wX2FsYXJtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9zbm1wX2FsYXJtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3NubXBfYWxhcm0ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9zbm1wX2FsYXJtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9zbm1wX2FsYXJtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vc25tcF9hbGFybS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTE3MDUsNiArMTcwMCw3IEBACiAuL3NubXBfYWxhcm0ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3NubXBfYWxhcm0ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NubXBfYWxhcm0ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zbm1wX2FsYXJtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcF9hbGFybS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NubXBfYWxhcm0ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc25tcF9hbGFybS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTczMSw2ICsxNzI3LDcgQEAKIC4vc25tcF9hbGFybS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0LmgKIC4vc25tcF9hbGFybS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgKIC4vc25tcF9hcGkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vc25tcF9hcGkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zbm1wX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiAuL3NubXBfYXBpLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgKIC4vc25tcF9hcGkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oCkBAIC0xNzQ5LDExICsxNzQ2LDggQEAKIC4vc25tcF9hcGkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zbm1wX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3NubXBfYXBpLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9zbm1wX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zbm1wX2FwaS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBfYXBpLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vc25tcF9hcGkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3NubXBfYXBpLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3NubXBfYXBpLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vc25tcF9hcGkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3NubXBfYXBpLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vc25tcF9hcGkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0xODE0LDExICsxODA4LDggQEAKIC4vc25tcF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vc25tcF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vc25tcF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9zbm1wX2F1dGgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vc25tcF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vc25tcF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vc25tcF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9zbm1wX2F1dGgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vc25tcF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vc25tcF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9zbm1wX2F1dGgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9zbm1wX2F1dGgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0xODI4LDYgKzE4MTksNyBAQAogLi9zbm1wX2F1dGgubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3NubXBfYXV0aC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc25tcF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc25tcF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc25tcF9hdXRoLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NubXBfYXV0aC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMTg2NywxMSArMTg1OSw4IEBACiAuL3NubXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zbm1wLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vc25tcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zbm1wLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vc25tcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3NubXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vc25tcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3NubXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9zbm1wLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMTg4MCwxMCArMTg2OSwxMiBAQAogLi9zbm1wLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vc25tcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc25tcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NubXAubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zbm1wLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc25tcC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zbm1wLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCiAuL3NubXBfY2xpZW50LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL3NubXBfY2xpZW50LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcF9jbGllbnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAogLi9zbm1wX2NsaWVudC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oCiAuL3NubXBfY2xpZW50LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaApAQCAtMTkwMiwxMSArMTg5Myw4IEBACiAuL3NubXBfY2xpZW50LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vc25tcF9jbGllbnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zbm1wX2NsaWVudC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcF9jbGllbnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vc25tcF9jbGllbnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zbm1wX2NsaWVudC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBfY2xpZW50LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9zbm1wX2NsaWVudC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zbm1wX2NsaWVudC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXBfY2xpZW50LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9zbm1wX2NsaWVudC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3NubXBfY2xpZW50LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMTk0MywxMSArMTkzMSw4IEBACiAuL3NubXBfZGVidWcubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zbm1wX2RlYnVnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vc25tcF9kZWJ1Zy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcF9kZWJ1Zy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zbm1wX2RlYnVnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vc25tcF9kZWJ1Zy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBfZGVidWcubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3NubXBfZGVidWcubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vc25tcF9kZWJ1Zy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXBfZGVidWcubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3NubXBfZGVidWcubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9zbm1wX2RlYnVnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMTk1Nyw2ICsxOTQyLDcgQEAKIC4vc25tcF9kZWJ1Zy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vc25tcF9kZWJ1Zy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc25tcF9kZWJ1Zy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NubXBfZGVidWcubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zbm1wX2RlYnVnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc25tcF9kZWJ1Zy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zbm1wX2RlYnVnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0xOTgzLDYgKzE5NjksNyBAQAogLi9zbm1wX2RlYnVnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaAogLi9zbm1wX2RlYnVnLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaAogLi9zbm1wX2VudW0ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vc25tcF9lbnVtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcF9lbnVtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKIC4vc25tcF9lbnVtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgKIC4vc25tcF9lbnVtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaApAQCAtMjAwMSwxMSArMTk4OCw4IEBACiAuL3NubXBfZW51bS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3NubXBfZW51bS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3NubXBfZW51bS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcF9lbnVtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3NubXBfZW51bS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBfZW51bS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBfZW51bS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vc25tcF9lbnVtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3NubXBfZW51bS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXBfZW51bS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vc25tcF9lbnVtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vc25tcF9lbnVtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjA0MiwxMSArMjAyNiw4IEBACiAuL3NubXBrc20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zbm1wa3NtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vc25tcGtzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcGtzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zbm1wa3NtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vc25tcGtzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBrc20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3NubXBrc20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vc25tcGtzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXBrc20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3NubXBrc20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9zbm1wa3NtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjA1NSw2ICsyMDM2LDcgQEAKIC4vc25tcGtzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oIC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3NubXBrc20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NubXBrc20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zbm1wa3NtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcGtzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NubXBrc20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc25tcGtzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMjA4OSw2ICsyMDcxLDcgQEAKIC4vc25tcGtzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc25tcGtzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaAogLi9zbm1wX2xvZ2dpbmcubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vc25tcF9sb2dnaW5nLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcF9sb2dnaW5nLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKIC4vc25tcF9sb2dnaW5nLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgKIC4vc25tcF9sb2dnaW5nLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaApAQCAtMjEwNywxMSArMjA5MCw4IEBACiAuL3NubXBfbG9nZ2luZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3NubXBfbG9nZ2luZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3NubXBfbG9nZ2luZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcF9sb2dnaW5nLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3NubXBfbG9nZ2luZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBfbG9nZ2luZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBfbG9nZ2luZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vc25tcF9sb2dnaW5nLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3NubXBfbG9nZ2luZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXBfbG9nZ2luZy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vc25tcF9sb2dnaW5nLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vc25tcF9sb2dnaW5nLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjE2NiwxMSArMjE0Niw4IEBACiAuL3NubXBfb3BlbnNzbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3NubXBfb3BlbnNzbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3NubXBfb3BlbnNzbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcF9vcGVuc3NsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3NubXBfb3BlbnNzbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBfb3BlbnNzbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBfb3BlbnNzbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vc25tcF9vcGVuc3NsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3NubXBfb3BlbnNzbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXBfb3BlbnNzbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vc25tcF9vcGVuc3NsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vc25tcF9vcGVuc3NsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjE4MCw2ICsyMTU3LDcgQEAKIC4vc25tcF9vcGVuc3NsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbm1wX29wZW5zc2wubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NubXBfb3BlbnNzbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NubXBfb3BlbnNzbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXBfb3BlbnNzbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NubXBfb3BlbnNzbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zbm1wX29wZW5zc2wubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTIyMTQsNiArMjE5Miw3IEBACiAuL3NubXBfb3BlbnNzbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc25tcF9vcGVuc3NsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zbm1wX29wZW5zc2wubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zbm1wX29wZW5zc2wubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc25tcF9vcGVuc3NsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NubXBfcGFyc2VfYXJncy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogLi9zbm1wX3BhcnNlX2FyZ3MubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaApAQCAtMjIzNSwxMSArMjIxNCw4IEBACiAuL3NubXBfcGFyc2VfYXJncy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3NubXBfcGFyc2VfYXJncy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3NubXBfcGFyc2VfYXJncy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcF9wYXJzZV9hcmdzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3NubXBfcGFyc2VfYXJncy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBfcGFyc2VfYXJncy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBfcGFyc2VfYXJncy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vc25tcF9wYXJzZV9hcmdzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3NubXBfcGFyc2VfYXJncy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXBfcGFyc2VfYXJncy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vc25tcF9wYXJzZV9hcmdzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vc25tcF9wYXJzZV9hcmdzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjI0OSw2ICsyMjI1LDcgQEAKIC4vc25tcF9wYXJzZV9hcmdzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbm1wX3BhcnNlX2FyZ3MubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3NubXBfcGFyc2VfYXJncy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3NubXBfcGFyc2VfYXJncy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXBfcGFyc2VfYXJncy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3NubXBfcGFyc2VfYXJncy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zbm1wX3BhcnNlX2FyZ3MubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTIyODMsNiArMjI2MCw3IEBACiAuL3NubXBfcGFyc2VfYXJncy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc25tcF9wYXJzZV9hcmdzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi9zbm1wX3BhcnNlX2FyZ3MubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zbm1wX3BhcnNlX2FyZ3MubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vc25tcF9wYXJzZV9hcmdzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NubXBfc2VjbW9kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL3NubXBfc2VjbW9kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKQEAgLTIzMDMsMTEgKzIyODEsOCBAQAogLi9zbm1wX3NlY21vZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3NubXBfc2VjbW9kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vc25tcF9zZWNtb2QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3NubXBfc2VjbW9kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3NubXBfc2VjbW9kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vc25tcF9zZWNtb2QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9zbm1wX3NlY21vZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vc25tcF9zZWNtb2QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vc25tcF9zZWNtb2QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9zbm1wX3NlY21vZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vc25tcF9zZWNtb2QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9zbm1wX3NlY21vZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTIzMTcsNiArMjI5Miw3IEBACiAuL3NubXBfc2VjbW9kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi9zbm1wX3NlY21vZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc25tcF9zZWNtb2QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zbm1wX3NlY21vZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXBfc2VjbW9kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc25tcF9zZWNtb2QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc25tcF9zZWNtb2QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTIzNDQsNyArMjMyMCw5IEBACiAuL3NubXBfc2VjbW9kLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaAogLi9zbm1wX3NlY21vZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc25tcF9zZWNtb2QubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaAorLi9zbm1wX3NlY21vZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zbm1wX3NlY21vZC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCBzbm1wc21faW5pdC5oCisuL3NubXBfc2VjbW9kLmxvOiBzbm1wc21fc2h1dGRvd24uaAogLi9zbm1wX3NlcnZpY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKIC4vc25tcF9zZXJ2aWNlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vc25tcF9zZXJ2aWNlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKQEAgLTIzNjUsMTEgKzIzNDMsOCBAQAogLi9zbm1wX3NlcnZpY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zbm1wX3NlcnZpY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zbm1wX3NlcnZpY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3NubXBfc2VydmljZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zbm1wX3NlcnZpY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zbm1wX3NlcnZpY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9zbm1wX3NlcnZpY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3NubXBfc2VydmljZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zbm1wX3NlcnZpY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9zbm1wX3NlcnZpY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3NubXBfc2VydmljZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3NubXBfc2VydmljZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTIzNzksNiArMjM1NCw3IEBACiAuL3NubXBfc2VydmljZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vc25tcF9zZXJ2aWNlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9zbm1wX3NlcnZpY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zbm1wX3NlcnZpY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zbm1wX3NlcnZpY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9zbm1wX3NlcnZpY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc25tcF9zZXJ2aWNlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0yNDEzLDggKzIzODksMTAgQEAKIC4vc25tcF9zZXJ2aWNlLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi9zbm1wX3NlcnZpY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3NubXBfc2VydmljZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCisuL3NubXBfc2VydmljZS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi9zbm1wX3NlcnZpY2UubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc25tcC10Yy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9zbm1wLXRjLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcC10Yy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiAuL3NubXAtdGMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaAogLi9zbm1wLXRjLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaApAQCAtMjQzMywxMSArMjQxMSw4IEBACiAuL3NubXAtdGMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zbm1wLXRjLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vc25tcC10Yy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcC10Yy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zbm1wLXRjLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vc25tcC10Yy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXAtdGMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3NubXAtdGMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vc25tcC10Yy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXAtdGMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3NubXAtdGMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9zbm1wLXRjLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjQ1MCw2ICsyNDI1LDcgQEAKIC4vc25tcC10Yy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zbm1wLXRjLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCiAuL3NubXBfdHJhbnNwb3J0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL3NubXBfdHJhbnNwb3J0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcF90cmFuc3BvcnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAogLi9zbm1wX3RyYW5zcG9ydC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oCiAuL3NubXBfdHJhbnNwb3J0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaApAQCAtMjQ2OCwxMSArMjQ0NCw4IEBACiAuL3NubXBfdHJhbnNwb3J0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vc25tcF90cmFuc3BvcnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zbm1wX3RyYW5zcG9ydC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc25tcF90cmFuc3BvcnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vc25tcF90cmFuc3BvcnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zbm1wX3RyYW5zcG9ydC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXBfdHJhbnNwb3J0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9zbm1wX3RyYW5zcG9ydC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zbm1wX3RyYW5zcG9ydC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3NubXBfdHJhbnNwb3J0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9zbm1wX3RyYW5zcG9ydC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3NubXBfdHJhbnNwb3J0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjUwMiw2ICsyNDc1LDkgQEAKIC4vc25tcF90cmFuc3BvcnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oCiAuL3NubXBfdHJhbnNwb3J0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaAogLi9zbm1wX3RyYW5zcG9ydC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaAorLi9zbm1wX3RyYW5zcG9ydC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAorLi9zbm1wX3RyYW5zcG9ydC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCisuL3NubXBfdHJhbnNwb3J0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9zbm1wX3RyYW5zcG9ydC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgKIC4vc25tcF90cmFuc3BvcnQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oCiAuL3NubXBfdHJhbnNwb3J0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgKQEAgLTI1MDksNiArMjQ4NSw3IEBACiAuL3NubXBfdHJhbnNwb3J0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oCiAuL3NubXBfdHJhbnNwb3J0LmxvOiB0cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmgKIC4vc25tcHRzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi9zbm1wdHNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcHRzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oCiAuL3NubXB0c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaCAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKIC4vc25tcHRzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oCkBAIC0yNTI3LDExICsyNTA0LDggQEAKIC4vc25tcHRzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3NubXB0c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zbm1wdHNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi9zbm1wdHNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3NubXB0c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zbm1wdHNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vc25tcHRzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vc25tcHRzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zbm1wdHNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vc25tcHRzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vc25tcHRzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3NubXB0c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0yNTczLDkgKzI1NDcsMTAgQEAKIC4vc25tcHRzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vc25tcHRzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vc25tcHRzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCi0uL3NubXB0c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vc25tcHRzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAorLi9zbm1wdHNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3NubXB1c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKy4vc25tcHVzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3NubXB1c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAogLi9zbm1wdXNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgKIC4vc25tcHVzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgKQEAgLTI1OTQsMTEgKzI1NjksOCBAQAogLi9zbm1wdXNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vc25tcHVzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3NubXB1c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3NubXB1c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vc25tcHVzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3NubXB1c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9zbm1wdXNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9zbm1wdXNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3NubXB1c20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9zbm1wdXNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9zbm1wdXNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vc25tcHVzbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTI2NTYsMTEgKzI2MjgsOCBAQAogLi9zbm1wdjMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zbm1wdjMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zbm1wdjMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3NubXB2My5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zbm1wdjMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zbm1wdjMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9zbm1wdjMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3NubXB2My5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zbm1wdjMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9zbm1wdjMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3NubXB2My5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3NubXB2My5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTI2NjksNiArMjYzOCw3IEBACiAuL3NubXB2My5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oIC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3NubXB2My5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vc25tcHYzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc25tcHYzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc25tcHYzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vc25tcHYzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3NubXB2My5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMjcyNCwxMSArMjY5NCw4IEBACiAuL3N0cmxjYXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zdHJsY2F0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vc3RybGNhdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc3RybGNhdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zdHJsY2F0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vc3RybGNhdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3N0cmxjYXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3N0cmxjYXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vc3RybGNhdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3N0cmxjYXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3N0cmxjYXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9zdHJsY2F0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjczNyw2ICsyNzA0LDcgQEAKIC4vc3RybGNhdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oIC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3N0cmxjYXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3N0cmxjYXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zdHJsY2F0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc3RybGNhdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3N0cmxjYXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc3RybGNhdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMjc2MCwxMSArMjcyOCw4IEBACiAuL3N0cmxjcHkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zdHJsY3B5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vc3RybGNweS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc3RybGNweS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zdHJsY3B5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vc3RybGNweS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3N0cmxjcHkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3N0cmxjcHkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vc3RybGNweS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3N0cmxjcHkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3N0cmxjcHkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi9zdHJsY3B5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjc3Myw2ICsyNzM4LDcgQEAKIC4vc3RybGNweS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oIC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3N0cmxjcHkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3N0cmxjcHkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi9zdHJsY3B5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc3RybGNweS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3N0cmxjcHkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vc3RybGNweS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMjc5NiwxMSArMjc2Miw4IEBACiAuL3N0cnRva19yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vc3RydG9rX3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zdHJ0b2tfci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc3RydG9rX3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vc3RydG9rX3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zdHJ0b2tfci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3N0cnRva19yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9zdHJ0b2tfci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zdHJ0b2tfci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3N0cnRva19yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9zdHJ0b2tfci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3N0cnRva19yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjgxMCw2ICsyNzczLDcgQEAKIC4vc3RydG9rX3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3N0cnRva19yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi9zdHJ0b2tfci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3N0cnRva19yLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vc3RydG9rX3IubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi9zdHJ0b2tfci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi9zdHJ0b2tfci5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMjgzNCwxMSArMjc5OCw4IEBACiAuL3N0cnRvdWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vc3RydG91bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zdHJ0b3VsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vc3RydG91bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vc3RydG91bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zdHJ0b3VsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3N0cnRvdWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi9zdHJ0b3VsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zdHJ0b3VsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3N0cnRvdWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi9zdHJ0b3VsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3N0cnRvdWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMjg0OCwxMSArMjgwOSwxMyBAQAogLi9zdHJ0b3VsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vc3RydG91bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3N0cnRvdWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vc3RydG91bGwubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi9zdHJ0b3VsbC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3N0cnRvdWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3N0cnRvdWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCiAuL3N0cnRvdWxsLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgKIC4vc3lzdGVtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL3N5c3RlbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3N5c3RlbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiAuL3N5c3RlbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oCiAuL3N5c3RlbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgKQEAgLTI4NzAsMTEgKzI4MzMsOCBAQAogLi9zeXN0ZW0ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi9zeXN0ZW0ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi9zeXN0ZW0ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3N5c3RlbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi9zeXN0ZW0ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi9zeXN0ZW0ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi9zeXN0ZW0ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3N5c3RlbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi9zeXN0ZW0ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi9zeXN0ZW0ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3N5c3RlbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3N5c3RlbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTI5MDcsNzcgKzI4NjcsOSBAQAogLi9zeXN0ZW0ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgKIC4vc3lzdGVtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgKIC4vc3lzdGVtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgKLS4vc3lzdGVtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9wZHVfYXBpLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS91Y2RfY29tcGF0LmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mYWN0b3J5LmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5LmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbGlzdF9zc2xsLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfaXRlcmF0b3IuaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgKLS4vdGVzdF9iaW5hcnlfYXJyYXkubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAotLi90ZXN0X2JpbmFyeV9hcnJheS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCi0uL3Rlc3RfYmluYXJ5X2FycmF5LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCisuL3N5c3RlbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCBpbmV0X250b3AuaAogLi90ZXh0X3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL3RleHRfdXRpbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi90ZXh0X3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgKIC4vdGV4dF91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiAuL3RleHRfdXRpbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaApAQCAtMjk5NywxMSArMjg4OSw4IEBACiAuL3RleHRfdXRpbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi90ZXh0X3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vdGV4dF91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vdGV4dF91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi90ZXh0X3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vdGV4dF91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3RleHRfdXRpbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3RleHRfdXRpbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vdGV4dF91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3RleHRfdXRpbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3RleHRfdXRpbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi90ZXh0X3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMzA0NSwxMCArMjkzNCwxMiBAQAogLi90ZXh0X3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaAogLi90ZXh0X3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaAogLi90ZXh0X3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vdGV4dF91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaAogLi90ZXh0X3V0aWxzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oCiAuL3RleHRfdXRpbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9maWxlX3V0aWxzLmgKIC4vdGV4dF91dGlscy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RleHRfdXRpbHMuaAogLi90b29scy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi90b29scy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3Rvb2xzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKIC4vdG9vbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaAogLi90b29scy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgKQEAgLTMwNjYsMTEgKzI5NTcsOCBAQAogLi90b29scy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3Rvb2xzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vdG9vbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3Rvb2xzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3Rvb2xzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vdG9vbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi90b29scy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vdG9vbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vdG9vbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi90b29scy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vdG9vbHMubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi90b29scy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTMwOTksNiArMjk4Nyw3IEBACiAuL3Rvb2xzLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaAogLi90b29scy5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmggLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgKIC4vdWNkX2NvbXBhdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi91Y2RfY29tcGF0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdWNkX2NvbXBhdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiAuL3VjZF9jb21wYXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaAogLi91Y2RfY29tcGF0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaApAQCAtMzExNywxMSArMzAwNiw4IEBACiAuL3VjZF9jb21wYXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi91Y2RfY29tcGF0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vdWNkX2NvbXBhdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vdWNkX2NvbXBhdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi91Y2RfY29tcGF0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vdWNkX2NvbXBhdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3VjZF9jb21wYXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3VjZF9jb21wYXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vdWNkX2NvbXBhdC5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3VjZF9jb21wYXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3VjZF9jb21wYXQubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi91Y2RfY29tcGF0LmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMzE1OCwxMSArMzA0NCw4IEBACiAuL3ZhY20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi92YWNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vdmFjbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vdmFjbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi92YWNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vdmFjbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3ZhY20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3ZhY20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vdmFjbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3ZhY20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3ZhY20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi92YWNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMzE3MSw2ICszMDU0LDcgQEAKIC4vdmFjbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oIC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3ZhY20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3ZhY20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi92YWNtLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdmFjbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3ZhY20ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vdmFjbS5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMzIyMywxMSArMzEwNyw4IEBACiAuL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMzIzNyw2ICszMTE4LDcgQEAKIC4vdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0zMjQ2LDYgKzMxMjgsNyBAQAogLi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgKIC4vdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oCiAuL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgKKy4vdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgKIC4vdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKIC4vdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAogLi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oCkBAIC0zMjY1LDExICszMTQ4LDggQEAKIC4vdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0zMjc5LDYgKzMxNTksNyBAQAogLi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0zMzE1LDYgKzMxOTYsNyBAQAogLi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgKIC4vdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oCiAuL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgKKy4vdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgKIC4vdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgKIC4vdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKIC4vdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaApAQCAtMzMzNSwxMSArMzIxNyw4IEBACiAuL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaAogLi90cmFuc3BvcnRzL3NubXBDYWxsYmFja0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBDYWxsYmFja0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBDYWxsYmFja0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0zMzQ5LDYgKzMyMjgsNyBAQAogLi90cmFuc3BvcnRzL3NubXBDYWxsYmFja0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi90cmFuc3BvcnRzL3NubXBDYWxsYmFja0RvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0zMzk0LDExICszMjc0LDggQEAKIC4vdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0zNDA4LDQ5ICszMjg1LDEzIEBACiAuL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKIC4vdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgKIC4vdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaAogLi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAotLi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCi0uL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgKLS4vdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oCi0uL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKLS4vdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oCi0uL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmgKLS4vdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oCi0uL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3BkdV9hcGkuaAotLi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaAotLi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgKLS4vdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgKLS4vdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaAotLi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oCi0uL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaAotLi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgKLS4vdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAotLi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaAotLi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oCi0uL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAotLi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKLS4vdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAotLi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCi0uL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCi0uL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCi0uL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oCi0uL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmxvOiBpbmV0X250b3AuaCBpbmV0X3B0b24uaAogLi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKIC4vdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgKQEAgLTM0NzEsMTEgKzMzMTIsOCBAQAogLi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTM0ODQsNiArMzMyMiw3IEBACiAuL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0zNDkzLDYgKzMzMzIsNyBAQAogLi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaAogLi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaAogLi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgKKy4vdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaAogLi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAuL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvdHlwZXMuaAogLi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgKQEAgLTM1MTIsMTEgKzMzNTIsOCBAQAogLi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTM1MjYsNiArMzM2Myw3IEBACiAuL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaApAQCAtMzUzNSw2ICszMzczLDcgQEAKIC4vdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oCiAuL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oCiAuL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1NIRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKIC4vdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgKQEAgLTM1NTQsMTEgKzMzOTMsOCBAQAogLi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTM2MDAsMTEgKzM0MzYsOCBAQAogLi90cmFuc3BvcnRzL3NubXBTVEREb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi90cmFuc3BvcnRzL3NubXBTVEREb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBTVEREb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcFNURERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBTVEREb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBTVEREb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBTVEREb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFNURERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi90cmFuc3BvcnRzL3NubXBTVEREb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBTVEREb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFNURERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFNURERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTM2MTQsNiArMzQ0Nyw3IEBACiAuL3RyYW5zcG9ydHMvc25tcFNURERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdHJhbnNwb3J0cy9zbm1wU1RERG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi90cmFuc3BvcnRzL3NubXBTVEREb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaAorLi90cmFuc3BvcnRzL3NubXBTVEREb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi90cmFuc3BvcnRzL3NubXBTVEREb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi90cmFuc3BvcnRzL3NubXBTVEREb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgKIC4vdHJhbnNwb3J0cy9zbm1wU1RERG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCkBAIC0zNjM3LDExICszNDcxLDggQEAKIC4vdHJhbnNwb3J0cy9zbm1wVENQQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3RyYW5zcG9ydHMvc25tcFRDUEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcFRDUEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vdHJhbnNwb3J0cy9zbm1wVENQQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVENQQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVENQQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVENQQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFRDUEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0zNjUxLDYgKzM0ODIsNyBAQAogLi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vdHJhbnNwb3J0cy9zbm1wVENQQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3RyYW5zcG9ydHMvc25tcFRDUEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3RyYW5zcG9ydHMvc25tcFRDUEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKQEAgLTM2NzQsMTEgKzM1MDYsOCBAQAogLi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTM2ODgsMTMgKzM1MTcsMTYgQEAKIC4vdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oCiAuL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oCiAuL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKIC4vdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQQmFzZURvbWFpbi5oCisuL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgKIC4vdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogLi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaAogLi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oCkBAIC0zNzE1LDExICszNTQ3LDggQEAKIC4vdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0zNzM0LDEzICszNTYzLDE5IEBACiAuL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKIC4vdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZhY3RvcnkuaAogLi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaAorLi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaAorLi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaAorLi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oCisuL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaAorLi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgKKy4vdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaAogLi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgKIC4vdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oCi0uL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgKIC4vdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0LmgKIC4vdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgKIC4vdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oCiAuL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAorLi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaApAQCAtMzc2MSw5ICszNTk2LDYgQEAKIC4vdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgKIC4vdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKLS4vdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaApAQCAtMzgxMSwxMSArMzY0Myw4IEBACiAuL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgKLS4vdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKLS4vdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgKKy4vdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaApAQCAtMzgyNSwxMCArMzY1NCwxNCBAQAogLi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAogLi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oCiAuL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgKKy4vdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTb2NrZXRCYXNlRG9tYWluLmgKKy4vdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAorLi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgKIC4vdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaAogLi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgKQEAgLTM4NTIsMTEgKzM2ODUsOCBAQAogLi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKQEAgLTM4NjYsOSArMzY5NiwxMyBAQAogLi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgKKy4vdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oCiAuL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaAorLi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgKKy4vdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgKKy4vdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oCiAuL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgKIC4vdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oCkBAIC0zODk4LDExICszNzMyLDggQEAKIC4vdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaAogLi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oCisuL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0zOTEyLDkgKzM3NDMsMTIgQEAKIC4vdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiAuL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaAogLi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmgKIC4vdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaAogLi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaAorLi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oCisuL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgKIC4vdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oCiAuL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oCkBAIC0zOTM5LDExICszNzczLDggQEAKIC4vdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgKQEAgLTM5NTIsMTAgKzM3ODMsMTMgQEAKIC4vdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgKIC4vdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgKIC4vdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oCisuL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgKIC4vdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaAogLi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oCisuL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaAogLi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCisuL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaAogLi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaAogLi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaAogLi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oCkBAIC0zOTc0LDExICszODA4LDggQEAKIC4vdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgKIC4vdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oCiAuL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oCi0uL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaAotLi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKLS4vdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaAorLi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgKIC4vdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5sbzogLi4vaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oCkBAIC0zOTk5LDMgKzM4MzAsNCBAQAogLi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oCiAuL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU29ja2V0QmFzZURvbWFpbi5oCiAuL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4ubG86IC4uL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaAorLi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmxvOiAuLi9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaApkaWZmIC0tZ2l0IGEvc25tcGxpYi9NYWtlZmlsZS5pbiBiL3NubXBsaWIvTWFrZWZpbGUuaW4KaW5kZXggYzFhMDg2ZC4uNTA2YjhkNCAxMDA2NDQKLS0tIGEvc25tcGxpYi9NYWtlZmlsZS5pbgorKysgYi9zbm1wbGliL01ha2VmaWxlLmluCkBAIC0xMyw2ICsxMyw3IEBACiAjCiAKIHRvcF9idWlsZGRpcj0uLgorbXlzdWJkaXI9c25tcGxpYgogCiAjIHVzZSBHTlUgdnBhdGgsIGlmIGF2YWlsYWJsZSwgdG8gb25seSBzZXQgYSBwYXRoIGZvciBzb3VyY2UgYW5kIGhlYWRlcnMKICMgVlBBVEggd2lsbCBwaWNrIHVwIG9iamVjdHMgdG9vLCB3aGljaCBpcyBiYWQgaWYgeW91IGFyZSBzaGFyaW5nIGEKQEAgLTg0LDcgKzg1LDYgQEAKIAl0b29scy5oIFwKIAl0cmFuc2Zvcm1fb2lkcy5oIFwKIAl0eXBlcy5oIFwKLSAgICAgICAgY211X2NvbXBhdC5oIFwKICAgICAgICAgZ2V0b3B0LmggXAogICAgICAgICBsY2RfdGltZS5oIFwKICAgICAgICAgbXRfc3VwcG9ydC5oIFwKQEAgLTEzOCw2MSArMTM4LDkxIEBACiAKICMKICMgVGhpbmdzIHRvIGJ1aWxkCisjICAgLSBmb3IgdGhlIGZlYXR1cmUgY2hlY2tpbmcgLyByZW1vdmFsIC8gbWluaW1pYWxpc3Qgc3VwcG9ydCB0aGVzZQorIyAgICAgbXVzdCBiZSBsaXN0ZWQgc3VjaCB0aGF0IGNvZGUgcmVxdWlyaW5nIGEgZmVhdHVyZSBtdXN0IGJlIGxpc3RlZAorIyAgICAgKmJlZm9yZSogdGhlIGNvZGUgaW1wbGVtZW50aW5nIHRoZSBmZWF0dXJlLgogIwogQ1NSQ1M9CXNubXBfY2xpZW50LmMgbWliLmMgcGFyc2UuYyBzbm1wX2FwaS5jIHNubXAuYyAJCVwKLQlsYXJnZV9mZF9zZXQuYyBjZXJ0X3V0aWwuYwkJCQlcCiAJc25tcF9hdXRoLmMgYXNuMS5jIG1kNS5jIHNubXBfcGFyc2VfYXJncy5jCQlcCiAJc3lzdGVtLmMgdmFjbS5jIGludDY0LmMgcmVhZF9jb25maWcuYyBwa2NzLmMJCVwKIAlzbm1wX2RlYnVnLmMgdG9vbHMuYyAgc25tcF9sb2dnaW5nLmMgdGV4dF91dGlscy5jCVwKLQlzbm1wdjMuYyBsY2RfdGltZS5jIGtleXRvb2xzLmMgZmlsZV91dGlscy5jIGRpcl91dGlscy5jIFwKKwlsYXJnZV9mZF9zZXQuYyBjZXJ0X3V0aWwuYyBzbm1wX29wZW5zc2wuYyAJCVwKKwlzbm1wdjMuYyBsY2RfdGltZS5jIGtleXRvb2xzLmMgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAlzY2FwaS5jIGNhbGxiYWNrLmMgZGVmYXVsdF9zdG9yZS5jIHNubXBfYWxhcm0uYwkJXAogCWRhdGFfbGlzdC5jIG9pZF9zdGFzaC5jIGZkX2V2ZW50X21hbmFnZXIuYyAJCVwKKwljaGVja192YXJiaW5kLmMgCQkJCQlcCiAJbXRfc3VwcG9ydC5jIHNubXBfZW51bS5jIHNubXAtdGMuYyBzbm1wX3NlcnZpY2UuYwlcCiAJc25wcmludGYuYwkJCQkJCVwKIAlzbm1wX3RyYW5zcG9ydC5jIEB0cmFuc3BvcnRfc3JjX2xpc3RACQkJXAogCXNubXBfc2VjbW9kLmMgQHNlY3VyaXR5X3NyY19saXN0QCBzbm1wX3ZlcnNpb24uYyAgICAgICAgXAotCWNoZWNrX3ZhcmJpbmQuYyBjb250YWluZXIuYyBjb250YWluZXJfYmluYXJ5X2FycmF5LmMJXAogCWNvbnRhaW5lcl9udWxsLmMgY29udGFpbmVyX2xpc3Rfc3NsbC5jIGNvbnRhaW5lcl9pdGVyYXRvci5jIFwKLQljbXVfY29tcGF0LmMgdWNkX2NvbXBhdC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQlzbm1wX29wZW5zc2wuYyBAb3RoZXJfc3JjX2xpc3RAIEBjcnlwdG9fZmlsZXNfY0AKKwl1Y2RfY29tcGF0LmMJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCUBvdGhlcl9zcmNfbGlzdEAgQGNyeXB0b19maWxlc19jQCAgICAgICAgCQlcCisJZGlyX3V0aWxzLmMgZmlsZV91dGlscy5jIAkgICAgICAgICAgICAgICAgICAgICAgICBcCisJY29udGFpbmVyLmMgY29udGFpbmVyX2JpbmFyeV9hcnJheS5jCQogCiBPQkpTPQlzbm1wX2NsaWVudC5vIG1pYi5vIHBhcnNlLm8gc25tcF9hcGkubyBzbm1wLm8gCQlcCi0JbGFyZ2VfZmRfc2V0Lm8gY2VydF91dGlsLm8JCQkJXAogCXNubXBfYXV0aC5vIGFzbjEubyBtZDUubyBzbm1wX3BhcnNlX2FyZ3MubwkJXAogCXN5c3RlbS5vIHZhY20ubyBpbnQ2NC5vIHJlYWRfY29uZmlnLm8gcGtjcy5vIAkJXAogCXNubXBfZGVidWcubyB0b29scy5vICBzbm1wX2xvZ2dpbmcubyB0ZXh0X3V0aWxzLm8JXAotCXNubXB2My5vIGxjZF90aW1lLm8ga2V5dG9vbHMubyBmaWxlX3V0aWxzLm8gZGlyX3V0aWxzLm8gXAorCWxhcmdlX2ZkX3NldC5vIGNlcnRfdXRpbC5vIHNubXBfb3BlbnNzbC5vIAkJXAorCXNubXB2My5vIGxjZF90aW1lLm8ga2V5dG9vbHMubyAgICAgICAgICAgICAgICAgICAgICAgICAgXAogCXNjYXBpLm8gY2FsbGJhY2subyBkZWZhdWx0X3N0b3JlLm8gc25tcF9hbGFybS5vCQlcCiAJZGF0YV9saXN0Lm8gb2lkX3N0YXNoLm8gZmRfZXZlbnRfbWFuYWdlci5vCQlcCisJY2hlY2tfdmFyYmluZC5vIAkJCQkJXAogCW10X3N1cHBvcnQubyBzbm1wX2VudW0ubyBzbm1wLXRjLm8gc25tcF9zZXJ2aWNlLm8JXAogCXNucHJpbnRmLm8JCQkJCQlcCiAJc25tcF90cmFuc3BvcnQubyBAdHJhbnNwb3J0X29ial9saXN0QCAgICAgICAgICAgICAgICAgICBcCiAJc25tcF9zZWNtb2QubyBAc2VjdXJpdHlfb2JqX2xpc3RAIHNubXBfdmVyc2lvbi5vICAgICAgICBcCi0JY2hlY2tfdmFyYmluZC5vIGNvbnRhaW5lci5vIGNvbnRhaW5lcl9iaW5hcnlfYXJyYXkubwlcCiAJY29udGFpbmVyX251bGwubyBjb250YWluZXJfbGlzdF9zc2xsLm8gY29udGFpbmVyX2l0ZXJhdG9yLm8gXAotCWNtdV9jb21wYXQubyB1Y2RfY29tcGF0Lm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBzbm1wX29wZW5zc2wubyBAY3J5cHRvX2ZpbGVzX29AIEBvdGhlcl9vYmpzX2xpc3RAIEBMSUJPQkpTQAorCXVjZF9jb21wYXQubyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJCVwKKyAgICAgICAgQGNyeXB0b19maWxlc19vQCBAb3RoZXJfb2Jqc19saXN0QCBATElCT0JKU0AgCQlcCisJZGlyX3V0aWxzLm8gZmlsZV91dGlscy5vIAkgICAgICAgICAgICAgICAgICAgICAgICBcCisJY29udGFpbmVyLm8gY29udGFpbmVyX2JpbmFyeV9hcnJheS5vCQogCiBMT0JKUz0Jc25tcF9jbGllbnQubG8gbWliLmxvIHBhcnNlLmxvIHNubXBfYXBpLmxvIHNubXAubG8gCVwKLQlsYXJnZV9mZF9zZXQubG8gY2VydF91dGlsLmxvCQkJCVwKIAlzbm1wX2F1dGgubG8gYXNuMS5sbyBtZDUubG8gc25tcF9wYXJzZV9hcmdzLmxvCQlcCiAJc3lzdGVtLmxvIHZhY20ubG8gaW50NjQubG8gcmVhZF9jb25maWcubG8gcGtjcy5sbwlcCiAJc25tcF9kZWJ1Zy5sbyB0b29scy5sbyAgc25tcF9sb2dnaW5nLmxvCSB0ZXh0X3V0aWxzLmxvCVwKLQlzbm1wdjMubG8gbGNkX3RpbWUubG8ga2V5dG9vbHMubG8gZmlsZV91dGlscy5sbyBkaXJfdXRpbHMubG8gXAotCXNjYXBpLmxvIGNhbGxiYWNrLmxvIGRlZmF1bHRfc3RvcmUubG8gc25tcF9hbGFybS5sbwkJXAorCWxhcmdlX2ZkX3NldC5sbyBjZXJ0X3V0aWwubG8gc25tcF9vcGVuc3NsLmxvIAkJXAorCXNubXB2My5sbyBsY2RfdGltZS5sbyBrZXl0b29scy5sbyAgICAgICAgICAgICAgICAgICAgICAgXAorCXNjYXBpLmxvIGNhbGxiYWNrLmxvIGRlZmF1bHRfc3RvcmUubG8gc25tcF9hbGFybS5sbwlcCiAJZGF0YV9saXN0LmxvIG9pZF9zdGFzaC5sbyBmZF9ldmVudF9tYW5hZ2VyLmxvCQlcCisJY2hlY2tfdmFyYmluZC5sbyAJCQkJCVwKIAltdF9zdXBwb3J0LmxvIHNubXBfZW51bS5sbyBzbm1wLXRjLmxvIHNubXBfc2VydmljZS5sbwlcCiAJc25wcmludGYubG8JCQkJCQlcCiAJc25tcF90cmFuc3BvcnQubG8gQHRyYW5zcG9ydF9sb2JqX2xpc3RAICAgICAgICAgICAgICAgICBcCiAJc25tcF9zZWNtb2QubG8gQHNlY3VyaXR5X2xvYmpfbGlzdEAgc25tcF92ZXJzaW9uLmxvICAgICBcCi0JY2hlY2tfdmFyYmluZC5sbyBjb250YWluZXIubG8gY29udGFpbmVyX2JpbmFyeV9hcnJheS5sbwlcCi0JY29udGFpbmVyX251bGwubG8gY29udGFpbmVyX2xpc3Rfc3NsbC5sbyBjb250YWluZXJfaXRlcmF0b3IubG8gXAotCWNtdV9jb21wYXQubG8gdWNkX2NvbXBhdC5sbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBzbm1wX29wZW5zc2wubG8gQGNyeXB0b19maWxlc19sb0AgQG90aGVyX2xvYmpzX2xpc3RAIEBMVExJQk9CSlNACisJY29udGFpbmVyLmxvIGNvbnRhaW5lcl9iaW5hcnlfYXJyYXkubG8JCQlcCisJdWNkX2NvbXBhdC5sbwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEBjcnlwdG9fZmlsZXNfbG9AIEBvdGhlcl9sb2Jqc19saXN0QCBATFRMSUJPQkpTQCAgICAgICAgXAorCWRpcl91dGlscy5sbyBmaWxlX3V0aWxzLmxvIAkgICAgICAgICAgICAgICAgICAgICAgICBcCisJY29udGFpbmVyX251bGwubG8gY29udGFpbmVyX2xpc3Rfc3NsbC5sbyBjb250YWluZXJfaXRlcmF0b3IubG8gCisKK0ZUT0JKUz0Jc25tcF9jbGllbnQuZnQgbWliLmZ0IHBhcnNlLmZ0IHNubXBfYXBpLmZ0IHNubXAuZnQgCVwKKwlzbm1wX2F1dGguZnQgYXNuMS5mdCBtZDUuZnQgc25tcF9wYXJzZV9hcmdzLmZ0CQlcCisJc3lzdGVtLmZ0IHZhY20uZnQgaW50NjQuZnQgcmVhZF9jb25maWcuZnQgcGtjcy5mdAlcCisJc25tcF9kZWJ1Zy5mdCB0b29scy5mdCAgc25tcF9sb2dnaW5nLmZ0CSB0ZXh0X3V0aWxzLmZ0CVwKKwlzbm1wdjMuZnQgbGNkX3RpbWUuZnQga2V5dG9vbHMuZnQgICAgICAgICAgICAgICAgICAgICAgIFwKKwlzY2FwaS5mdCBjYWxsYmFjay5mdCBkZWZhdWx0X3N0b3JlLmZ0IHNubXBfYWxhcm0uZnQJXAorCWRhdGFfbGlzdC5mdCBvaWRfc3Rhc2guZnQgZmRfZXZlbnRfbWFuYWdlci5mdAkJXAorCWNoZWNrX3ZhcmJpbmQuZnQgCQkJCQlcCisJbXRfc3VwcG9ydC5mdCBzbm1wX2VudW0uZnQgc25tcC10Yy5mdCBzbm1wX3NlcnZpY2UuZnQJXAorCXNucHJpbnRmLmZ0CQkJCQkJXAorCXNubXBfdHJhbnNwb3J0LmZ0IEB0cmFuc3BvcnRfZnRvYmpfbGlzdEAgICAgICAgICAgICAgICAgXAorCXNubXBfc2VjbW9kLmZ0IEBzZWN1cml0eV9mdG9ial9saXN0QCBzbm1wX3ZlcnNpb24uZnQgICAgXAorCWNvbnRhaW5lci5mdCBjb250YWluZXJfYmluYXJ5X2FycmF5LmZ0CVwKKwl1Y2RfY29tcGF0LmZ0CQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAlcCisgICAgICAgIEBvdGhlcl9mdG9ianNfbGlzdEAgICAgICAgICAgICAgICAgICAgICAJCVwKKwlsYXJnZV9mZF9zZXQuZnQgY2VydF91dGlsLmZ0IHNubXBfb3BlbnNzbC5mdCAJCVwKKwlkaXJfdXRpbHMuZnQgZmlsZV91dGlscy5mdCAJICAgICAgICAgICAgICAgICAgICAgICAgXAorCWNvbnRhaW5lcl9udWxsLmZ0IGNvbnRhaW5lcl9saXN0X3NzbGwuZnQgY29udGFpbmVyX2l0ZXJhdG9yLmZ0CiAKICMganVzdCBpbiBjYXNlIHNvbWVvbmUgd2FudHMgdG8gcmVtb3ZlIGxpYnRvb2wsIGNoYW5nZSB0aGlzIHRvIE9CSlMuCiBUT0JKUz0kKExPQkpTKQogCitGRUFUVVJFRklMRSAgICAgPSAkKHRvcF9idWlsZGRpcikvaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZlYXR1cmVzLmgKKwogIyAKIENQUEZMQUdTID0gJChUT1BfSU5DTFVERVMpIC1JLiAJJChTTk1QTElCX0lOQ0xVREVTKSBAQ1BQRkxBR1NACiAKQEAgLTIxMyw3ICsyNDMsMyBAQAogcGFyc2U6ICBtaWIubyBwYXJzZS5jCiAJJChDQykgJChDRkxBR1MpIC1EVEVTVCBwYXJzZS5jIC1vICRAIFwKIAkJYCQodG9wX3NyY2RpcikvbmV0LXNubXAtY29uZmlnIC0tbGlic2AKLQotdGVzdF9iaW5hcnlfYXJyYXk6IHRlc3RfYmluYXJ5X2FycmF5LmMKLQkkKENDKSAkKENGTEFHUykgdGVzdF9iaW5hcnlfYXJyYXkuYyAtbyAkQCBcCi0JCWAkKHRvcF9zcmNkaXIpL25ldC1zbm1wLWNvbmZpZyAtLWxpYnNgCmRpZmYgLS1naXQgYS9zbm1wbGliL2NhbGxiYWNrLmMgYi9zbm1wbGliL2NhbGxiYWNrLmMKaW5kZXggZmVhMGYyNS4uZGZlNTM3YSAxMDA2NDQKLS0tIGEvc25tcGxpYi9jYWxsYmFjay5jCisrKyBiL3NubXBsaWIvY2FsbGJhY2suYwpAQCAtMTcsNiArMTcsNyBAQAogICogIEB7CiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaWYgSEFWRV9TVERMSUJfSApAQCAtNTIsNiArNTMsMTEgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY2FsbGJhY2tzX2FsbCwgbGlibmV0c25tcCkKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGNhbGxiYWNrX2NvdW50LCBjYWxsYmFja3NfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGNhbGxiYWNrX2xpc3QsIGNhbGxiYWNrc19hbGwpCisKIC8qCiAgKiB0aGUgaW5saW5lIGNhbGxiYWNrIG1ldGhvZHMgdXNlIG1ham9yL21pbm9yIHRvIGluZGV4IGludG8gYXJyYXlzLgogICogYWxsIHVzZXJzIGluIHRoaXMgZnVuY3Rpb24gZG8gcmFuZ2UgY2hlY2tpbmcgYmVmb3JlIGNhbGxpbmcgdGhlc2UKQEAgLTIxNCw3ICsyMjAsOSBAQAogICogQHBhcmFtIG5ld19jYWxsYmFjayBpcyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyByZWdpc3RlcmVkLgogICoKICAqIEBwYXJhbSBhcmcgd2hlbiBub3QgTlVMTCBpcyBhIHZvaWQgcG9pbnRlciB1c2VkIHdoZW5ldmVyIG5ld19jYWxsYmFjayAKLSAqCWZ1bmN0aW9uIGlzIGV4ZXJjaXNlZC4KKyAqCWZ1bmN0aW9uIGlzIGV4ZXJjaXNlZC4gT3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIHRvIHRoZSB0d29kaW1lbnNpb25hbAorICogICAgICB0aGVjYWxsYmFja3NbXVtdIGFycmF5LiBUaGUgZnVuY3Rpb24gY2xlYXJfY2FsbGJhY2soKSB3aWxsIGRlYWxsb2NhdGUKKyAqICAgICAgdGhlIG1lbW9yeSBwb2ludGVkIGF0IGJ5IGNhbGxpbmcgZnJlZSgpLgogICoKICAqIEByZXR1cm4gCiAgKglSZXR1cm5zIFNOTVBFUlJfR0VORVJSIGlmIG1ham9yIGlzID49IE1BWF9DQUxMQkFDS19JRFMgb3IgbWlub3IgaXMgPj0KQEAgLTIzNCw2ICsyNDIsMjAgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9DQUxMQkFDS19ERUZBVUxUX1BSSU9SSVRZKTsKIH0KIAorLyoqCisgKiBSZWdpc3RlciBhIGNhbGxiYWNrIGZ1bmN0aW9uLgorICoKKyAqIEBwYXJhbSBtYWpvciAgICAgICAgTWFqb3IgY2FsbGJhY2sgZXZlbnQgdHlwZS4KKyAqIEBwYXJhbSBtaW5vciAgICAgICAgTWlub3IgY2FsbGJhY2sgZXZlbnQgdHlwZS4KKyAqIEBwYXJhbSBuZXdfY2FsbGJhY2sgQ2FsbGJhY2sgZnVuY3Rpb24gYmVpbmcgcmVnaXN0ZXJlZC4KKyAqIEBwYXJhbSBhcmcgICAgICAgICAgQXJndW1lbnQgdGhhdCB3aWxsIGJlIHBhc3NlZCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uCisgKiBAcGFyYW0gcHJpb3JpdHkgICAgIEhhbmRsZXIgaW52b2NhdGlvbiBwcmlvcml0eS4gV2hlbiBtdWx0aXBsZSBoYW5kbGVycyBoYXZlCisgKiAgIGJlZW4gcmVnaXN0ZXJlZCBmb3IgdGhlIHNhbWUgKG1ham9yLCBtaW5vcikgY2FsbGJhY2sgZXZlbnQgdHlwZSwgaGFuZGxlcnMKKyAqICAgd2l0aCB0aGUgbnVtZXJpY2FsbHkgbG93ZXN0IHByaW9yaXR5IHdpbGwgYmUgaW52b2tlZCBmaXJzdC4gSGFuZGxlcnMgd2l0aAorICogICBpZGVudGljYWwgcHJpb3JpdHkgYXJlIGludm9rZWQgaW4gdGhlIG9yZGVyIHRoZXkgaGF2ZSBiZWVuIHJlZ2lzdGVyZWQuCisgKgorICogQHNlZSBzbm1wX3JlZ2lzdGVyX2NhbGxiYWNrCisgKi8KIGludAogbmV0c25tcF9yZWdpc3Rlcl9jYWxsYmFjayhpbnQgbWFqb3IsIGludCBtaW5vciwgU05NUENhbGxiYWNrICogbmV3X2NhbGxiYWNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICphcmcsIGludCBwcmlvcml0eSkKQEAgLTM1MSw2ICszNzMsNyBAQAogICAgIHJldHVybiBTTk1QRVJSX1NVQ0NFU1M7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DQUxMQkFDS19DT1VOVAogaW50CiBzbm1wX2NvdW50X2NhbGxiYWNrcyhpbnQgbWFqb3IsIGludCBtaW5vcikKIHsKQEAgLTM3MCw2ICszOTMsNyBAQAogCiAgICAgcmV0dXJuIGNvdW50OwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0FMTEJBQ0tfQ09VTlQgKi8KIAogaW50CiBzbm1wX2NhbGxiYWNrX2F2YWlsYWJsZShpbnQgbWFqb3IsIGludCBtaW5vcikKQEAgLTU0OCw2ICs1NzIsNyBAQAogICAgIH0KIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NBTExCQUNLX0xJU1QKIHN0cnVjdCBzbm1wX2dlbl9jYWxsYmFjayAqCiBzbm1wX2NhbGxiYWNrX2xpc3QoaW50IG1ham9yLCBpbnQgbWlub3IpCiB7CkBAIC01NTYsNCArNTgxLDUgQEAKIAogICAgIHJldHVybiAodGhlY2FsbGJhY2tzW21ham9yXVttaW5vcl0pOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0FMTEJBQ0tfTElTVCAqLwogLyoqICBAfSAqLwpkaWZmIC0tZ2l0IGEvc25tcGxpYi9jZXJ0X3V0aWwuYyBiL3NubXBsaWIvY2VydF91dGlsLmMKaW5kZXggNmIyY2IzMC4uMjQ2YTZjOSAxMDA2NDQKLS0tIGEvc25tcGxpYi9jZXJ0X3V0aWwuYworKysgYi9zbm1wbGliL2NlcnRfdXRpbC5jCkBAIC0xLDEzICsxLDQwIEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2lmIGRlZmluZWQoTkVUU05NUF9VU0VfT1BFTlNTTCkgJiYgZGVmaW5lZChIQVZFX0xJQlNTTCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjZXJ0X3V0aWxfYWxsLCBsaWJuZXRzbm1wKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGNlcnRfdXRpbCwgY2VydF91dGlsX2FsbCkKKyNpZmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVRVUlSRV9DRVJUX1VUSUwKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNvbnRhaW5lcl9kaXJlY3RvcnkpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjb250YWluZXJfZmlmbykKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNvbnRhaW5lcl9kdXApCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjb250YWluZXJfZnJlZV9hbGwpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShzdWJjb250YWluZXJfZmluZCkKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGNlcnRfbWFwX3JlbW92ZSwgbmV0c25tcF91bnVzZWQpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY2VydF9tYXBfZmluZCwgbmV0c25tcF91bnVzZWQpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGxzdG1wYXJhbXNfZXh0ZXJuYWwsIGNlcnRfdXRpbF9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGxzdG1wYXJhbXNfY29udGFpbmVyLCB0bHN0bXBhcmFtc19leHRlcm5hbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0bHN0bXBhcmFtc19yZW1vdmUsIHRsc3RtcGFyYW1zX2V4dGVybmFsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRsc3RtcGFyYW1zX2ZpbmQsIHRsc3RtcGFyYW1zX2V4dGVybmFsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRsc3RtQWRkcl9yZW1vdmUsIG5ldHNubXBfdW51c2VkKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRsc3RtYWRkcl9leHRlcm5hbCwgY2VydF91dGlsX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0bHN0bWFkZHJfY29udGFpbmVyLCB0bHN0bWFkZHJfZXh0ZXJuYWwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGxzdG1BZGRyX2dldF9zZXJ2ZXJJZCwgdGxzdG1hZGRyX2V4dGVybmFsKQorCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY2VydF9maW5nZXJwcmludHMsIGNlcnRfdXRpbF9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGxzX2ZpbmdlcnByaW50X2J1aWxkLCBjZXJ0X3V0aWxfYWxsKQorCisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFUVVJUkVfQ0VSVF9VVElMICovCisKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DRVJUX1VUSUwKKworI2luY2x1ZGUgPGN0eXBlLmg+CiAKICNpZiBIQVZFX1NURExJQl9ICiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjZW5kaWYKIAotI2luY2x1ZGUgPGN0eXBlLmg+Ci0KICNpZiBIQVZFX1NUUklOR19ICiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjZWxzZQpAQCAtMjI4LDYgKzI1NSwxMSBAQAogbmV0c25tcF9jZXJ0c19zaHV0ZG93bih2b2lkKQogewogICAgIERFQlVHTVNHVCgoImNlcnQ6dXRpbDpzaHV0ZG93biIsInNodXRkb3duXG4iKSk7CisgICAgaWYgKF9tYXBzKSB7CisgICAgICAgIENPTlRBSU5FUl9GUkVFX0FMTChfbWFwcywgTlVMTCk7CisgICAgICAgIENPTlRBSU5FUl9GUkVFKF9tYXBzKTsKKyAgICAgICAgX21hcHMgPSBOVUxMOworICAgIH0KICAgICBpZiAoTlVMTCAhPSBfY2VydHMpIHsKICAgICAgICAgQ09OVEFJTkVSX0ZSRUVfQUxMKF9jZXJ0cywgTlVMTCk7CiAgICAgICAgIENPTlRBSU5FUl9GUkVFKF9jZXJ0cyk7CkBAIC0xMTM3LDcgKzExNjksNyBAQAogc3RhdGljIHZvaWQKIF9maW5kX3BhcnRuZXIobmV0c25tcF9jZXJ0ICpjZXJ0LCBuZXRzbm1wX2tleSAqa2V5KQogewotICAgIG5ldHNubXBfdm9pZF9hcnJheSAqbWF0Y2hpbmc7CisgICAgbmV0c25tcF92b2lkX2FycmF5ICptYXRjaGluZyA9IE5VTEw7CiAgICAgY2hhciAgICAgICAgICAgICAgICBmaWxlbmFtZVtOQU1FX01BWF0sICpwb3M7CiAKICAgICBpZiAoKGNlcnQgJiYga2V5KSB8fCAoIWNlcnQgJiYgISBrZXkpKSB7CkBAIC0xNjExLDYgKzE2NDMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VfZmluZF9sYWJlbF9pbl9zbGlzdCgiY2VydF9oYXNoX2FsZyIsIGMtPmhhc2hfdHlwZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLT5oYXNoX3R5cGUsIGMtPmZpbmdlcnByaW50KSk7CiAgICAgICAgIH0KKyAgICAgICAgLyogbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2VydF91dGlsc19kdW1wX25hbWVzKSAqLwogICAgICAgICAvKiBuZXRzbm1wX29wZW5zc2xfY2VydF9kdW1wX25hbWVzKGMtPm9jZXJ0KTsgKi8KICAgICAgICAgbmV0c25tcF9vcGVuc3NsX2NlcnRfZHVtcF9leHRlbnNpb25zKGMtPm9jZXJ0KTsKICAgICB9CkBAIC0xNzAxLDcgKzE3MzQsNiBAQAogbmV0c25tcF9jZXJ0X2ZpbmQoaW50IHdoYXQsIGludCB3aGVyZSwgdm9pZCAqaGludCkKIHsKICAgICBuZXRzbm1wX2NlcnQgKnJlc3VsdCA9IE5VTEw7Ci0gICAgaW50ICAgICAgICAgICB0bXA7CiAgICAgY2hhciAgICAgICAgICpmcCwgKmhpbnRfc3RyOwogCiAgICAgREVCVUdNU0dUKCgiY2VydDpmaW5kOnBhcmFtcyIsICJsb29raW5nIGZvciAlcyglZCkgaW4gJXMoMHgleCksIGhpbnQgJWx1XG4iLApAQCAtMTcxMSwxMyArMTc0MywyMCBAQAogICAgICAgICAgICAgCiAgICAgICAgIHN3aXRjaCAod2hhdCkgewogICAgICAgICAgICAgY2FzZSBOU19DRVJUX0lERU5USVRZOiAvKiB3YW50IG15IElEICovCi0gICAgICAgICAgICAgICAgdG1wID0gKHB0cmRpZmZfdCloaW50OwotICAgICAgICAgICAgICAgIERFQlVHTVNHVCgoImNlcnQ6ZmluZDpwYXJhbXMiLCAiIGhpbnQgPSAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA/ICJzZXJ2ZXIiIDogImNsaWVudCIpKTsKICAgICAgICAgICAgICAgICBmcCA9CiAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfZHNfZ2V0X3N0cmluZyhORVRTTk1QX0RTX0xJQlJBUllfSUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPyBORVRTTk1QX0RTX0xJQl9YNTA5X1NFUlZFUl9QVUIgOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfWDUwOV9DTElFTlRfUFVCICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9UTFNfTE9DQUxfQ0VSVCk7CisgICAgICAgICAgICAgICAgLyoqIHRlbXAgYmFja3dhcmRzIGNvbXBhYmlsaXR5OyByZW1vdmUgaW4gNS43ICovCisgICAgICAgICAgICAgICAgaWYgKCFmcCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgIHRtcDsKKyAgICAgICAgICAgICAgICAgICAgdG1wID0gKHB0cmRpZmZfdCloaW50OworICAgICAgICAgICAgICAgICAgICBERUJVR01TR1QoKCJjZXJ0OmZpbmQ6cGFyYW1zIiwgIiBoaW50ID0gJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wID8gInNlcnZlciIgOiAiY2xpZW50IikpOworICAgICAgICAgICAgICAgICAgICBmcCA9CisgICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2RzX2dldF9zdHJpbmcoTkVUU05NUF9EU19MSUJSQVJZX0lELCB0bXAgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCX1g1MDlfU0VSVkVSX1BVQiA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfWDUwOV9DTElFTlRfUFVCICk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmICghZnApIHsKICAgICAgICAgICAgICAgICAgICAgLyogQXMgYSBzcGVjaWFsIGNhc2UsIHVzZSB0aGUgYXBwbGljYXRpb24gdHlwZSB0bwogICAgICAgICAgICAgICAgICAgICAgICBkZXRlcm1pbmUgYSBmaWxlIG5hbWUgdG8gcHVsbCB0aGUgZGVmYXVsdCBpZGVudGl0eQpAQCAtMTcyNyw3ICsxNzY2LDExIEBACiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5TX0NFUlRfUkVNT1RFX1BFRVI6CiAgICAgICAgICAgICAgICAgZnAgPSBuZXRzbm1wX2RzX2dldF9zdHJpbmcoTkVUU05NUF9EU19MSUJSQVJZX0lELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCX1g1MDlfU0VSVkVSX1BVQik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfVExTX1BFRVJfQ0VSVCk7CisgICAgICAgICAgICAgICAgLyoqIHRlbXAgYmFja3dhcmRzIGNvbXBhYmlsaXR5OyByZW1vdmUgaW4gNS43ICovCisgICAgICAgICAgICAgICAgaWYgKCFmcCkKKyAgICAgICAgICAgICAgICAgICAgZnAgPSBuZXRzbm1wX2RzX2dldF9zdHJpbmcoTkVUU05NUF9EU19MSUJSQVJZX0lELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9YNTA5X1NFUlZFUl9QVUIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBERUJVR01TR1QoKCJjZXJ0OmZpbmQ6ZXJyIiwgInVuaGFuZGxlZCB0eXBlICVkIGZvciAlcyglZClcbiIsCkBAIC0xODMxLDEyICsxODc0LDcgQEAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1pbnQKLW5ldHNubXBfY2VydF92YWxpZGF0ZShpbnQgd2hvLCBpbnQgaG93LCBYNTA5ICpjZXJ0KQotewotICAgIHJldHVybiAtMTsKLX0KLQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NFUlRfRklOR0VSUFJJTlRTCiBpbnQKIG5ldHNubXBfY2VydF9jaGVja192Yl9maW5nZXJwcmludChjb25zdCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhcikKIHsKQEAgLTE5MTEsNyArMTk0OSw5IEBACiAKICAgICByZXR1cm4gU05NUEVSUl9TVUNDRVNTOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0VSVF9GSU5HRVJQUklOVFMgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RMU19GSU5HRVJQUklOVF9CVUlMRAogLyoqCiAgKiBjb21iaW5lIGEgaGFzaCB0eXBlIGFuZCBoZXggZmluZ2VycHJpbnQgaW50byBhIFNubXBUTFNGaW5nZXJwcmludAogICoKQEAgLTE5NTcsNiArMTk5Nyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgcmV0dXJuIFNOTVBFUlJfU1VDQ0VTUzsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RMU19GSU5HRVJQUklOVF9CVUlMRCAqLwogCiAvKioKICAqIFRydXN0cyBhIGdpdmVuIGNlcnRpZmljYXRlIGZvciB1c2UgaW4gVExTIHRyYW5zbGF0aW9ucy4KQEAgLTIyNDUsOCArMjI4NiwxMyBAQAogICAgIG1hdGNoaW5nID0gQ09OVEFJTkVSX0dFVF9TVUJTRVQoY29udGFpbmVyLCAmc2VhcmNoKTsKICAgICBERUJVR01TR1QoKCI5OmNlcnQ6c3Vic2V0OmZvdW5kIiwgIiUiIE5FVFNOTVBfUFJJeiAiZCBtYXRjaGVzXG4iLCBtYXRjaGluZyA/CiAgICAgICAgICAgICAgICBtYXRjaGluZy0+c2l6ZSA6IDApKTsKLSAgICBpZiAobWF0Y2hpbmcgJiYgbWF0Y2hpbmctPnNpemUgPiAxKQorICAgIGlmIChtYXRjaGluZyAmJiBtYXRjaGluZy0+c2l6ZSA+IDEpIHsKICAgICAgICAgX3JlZHVjZV9zdWJzZXQobWF0Y2hpbmcsIGZpbGVuYW1lKTsKKyAgICAgICAgaWYgKDAgPT0gbWF0Y2hpbmctPnNpemUpIHsKKyAgICAgICAgICAgIGZyZWUobWF0Y2hpbmctPmFycmF5KTsKKyAgICAgICAgICAgIFNOTVBfRlJFRShtYXRjaGluZyk7CisgICAgICAgIH0KKyAgICB9CiAgICAgcmV0dXJuIG1hdGNoaW5nOwogfQogCkBAIC0yMjYxLDggKzIzMDcsMTMgQEAKICAgICBuZXRzbm1wX2Fzc2VydChmbl9jb250YWluZXIpOwogCiAgICAgbWF0Y2hpbmcgPSBfY2VydF9maW5kX3N1YnNldF9jb21tb24oZmlsZW5hbWUsIGZuX2NvbnRhaW5lcik7Ci0gICAgaWYgKG1hdGNoaW5nICYmIChtYXRjaGluZy0+c2l6ZSA+IDEpICYmIGRpcmVjdG9yeSkKKyAgICBpZiAobWF0Y2hpbmcgJiYgKG1hdGNoaW5nLT5zaXplID4gMSkgJiYgZGlyZWN0b3J5KSB7CiAgICAgICAgIF9yZWR1Y2Vfc3Vic2V0X2RpcihtYXRjaGluZywgZGlyZWN0b3J5KTsKKyAgICAgICAgaWYgKDAgPT0gbWF0Y2hpbmctPnNpemUpIHsKKyAgICAgICAgICAgIGZyZWUobWF0Y2hpbmctPmFycmF5KTsKKyAgICAgICAgICAgIFNOTVBfRlJFRShtYXRjaGluZyk7CisgICAgICAgIH0KKyAgICB9CiAgICAgcmV0dXJuIG1hdGNoaW5nOwogfQogCkBAIC0yNDI4LDYgKzI0NzksNyBAQAogICAgIHJldHVybiByYzsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NFUlRfTUFQX1JFTU9WRQogaW50CiBuZXRzbm1wX2NlcnRfbWFwX3JlbW92ZShuZXRzbm1wX2NlcnRfbWFwICptYXApCiB7CkBAIC0yNDQ0LDcgKzI0OTYsOSBAQAogCiAgICAgcmV0dXJuIHJjOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0VSVF9NQVBfUkVNT1ZFICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DRVJUX01BUF9GSU5ECiBuZXRzbm1wX2NlcnRfbWFwICoKIG5ldHNubXBfY2VydF9tYXBfZmluZChuZXRzbm1wX2NlcnRfbWFwICptYXApCiB7CkBAIC0yNDUzLDYgKzI1MDcsNyBAQAogCiAgICAgcmV0dXJuIENPTlRBSU5FUl9GSU5EKF9tYXBzLCBtYXApOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0VSVF9NQVBfRklORCAqLwogCiBzdGF0aWMgdm9pZAogX21hcF9mcmVlKG5ldHNubXBfY2VydF9tYXAgKm1hcCwgdm9pZCAqY29udGV4dCkKQEAgLTI1MDIsMTAgKzI1NTcsOSBAQAogbmV0c25tcF9jb250YWluZXIgKgogbmV0c25tcF9jZXJ0X21hcF9jb250YWluZXJfY3JlYXRlKGludCB3aXRoX2ZwKQogewotICAgIG5ldHNubXBfY29udGFpbmVyICpjaGFpbl9tYXAgPQotICAgICAgICBuZXRzbm1wX2NvbnRhaW5lcl9maW5kKCJjZXJ0X21hcDpzdGFjazpiaW5hcnlfYXJyYXkiKTsKLSAgICBuZXRzbm1wX2NvbnRhaW5lciAqZnA7CisgICAgbmV0c25tcF9jb250YWluZXIgKmNoYWluX21hcCwgKmZwOwogCisgICAgY2hhaW5fbWFwID0gbmV0c25tcF9jb250YWluZXJfZmluZCgiY2VydF9tYXA6c3RhY2s6YmluYXJ5X2FycmF5Iik7CiAgICAgaWYgKE5VTEwgPT0gY2hhaW5fbWFwKSB7CiAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJjb3VsZCBub3QgYWxsb2NhdGUgY29udGFpbmVyIGZvciBjZXJ0X21hcFxuIik7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMjg5OCwxMSArMjk1MiwxMyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNfaGVscCk7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UTFNUTVBBUkFNU19DT05UQUlORVIKIG5ldHNubXBfY29udGFpbmVyICoKIG5ldHNubXBfdGxzdG1QYXJhbXNfY29udGFpbmVyKHZvaWQpCiB7CiAgICAgcmV0dXJuIF90bHN0bVBhcmFtczsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RMU1RNUEFSQU1TX0NPTlRBSU5FUiAqLwogCiBzbm1wVGxzdG1QYXJhbXMgKgogbmV0c25tcF90bHN0bVBhcmFtc19jcmVhdGUoY29uc3QgY2hhciAqbmFtZSwgaW50IGhhc2hUeXBlLCBjb25zdCBjaGFyICpmcCwKQEAgLTMwMDYsNiArMzA2Miw3IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UTFNUTVBBUkFNU19SRU1PVkUKIGludAogbmV0c25tcF90bHN0bVBhcmFtc19yZW1vdmUoc25tcFRsc3RtUGFyYW1zICpzdHApCiB7CkBAIC0zMDIyLDcgKzMwNzksOSBAQAogCiAgICAgcmV0dXJuIDA7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UTFNUTVBBUkFNU19SRU1PVkUgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RMU1RNUEFSQU1TX0ZJTkQKIHNubXBUbHN0bVBhcmFtcyAqCiBuZXRzbm1wX3Rsc3RtUGFyYW1zX2ZpbmQoc25tcFRsc3RtUGFyYW1zICpzdHApCiB7CkBAIC0zMDM0LDYgKzMwOTMsNyBAQAogICAgIGZvdW5kID0gQ09OVEFJTkVSX0ZJTkQoX3Rsc3RtUGFyYW1zLCBzdHApOwogICAgIHJldHVybiBmb3VuZDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RMU1RNUEFSQU1TX0ZJTkQgKi8KIAogc3RhdGljIHZvaWQKIF9wYXJzZV9wYXJhbXMoY29uc3QgY2hhciAqdG9rZW4sIGNoYXIgKmxpbmUpCkBAIC0zMTAwLDExICszMTYwLDEzIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcl9oZWxwKTsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RMU1RNQUREUl9DT05UQUlORVIKIG5ldHNubXBfY29udGFpbmVyICoKIG5ldHNubXBfdGxzdG1BZGRyX2NvbnRhaW5lcih2b2lkKQogewogICAgIHJldHVybiBfdGxzdG1BZGRyOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVExTVE1BRERSX0NPTlRBSU5FUiAqLwogCiAvKgogICogY3JlYXRlIGEgbmV3IHJvdyBpbiB0aGUgdGFibGUgCkBAIC0zMjEwLDYgKzMyNzIsNyBAQAogICAgIHJldHVybiAwOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVExTVE1BRERSX1JFTU9WRQogaW50CiBuZXRzbm1wX3Rsc3RtQWRkcl9yZW1vdmUoc25tcFRsc3RtQWRkciAqZW50cnkpCiB7CkBAIC0zMjIzLDYgKzMyODYsNyBAQAogCiAgICAgcmV0dXJuIDA7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UTFNUTUFERFJfUkVNT1ZFICovCiAKIHN0YXRpYyB2b2lkCiBfcGFyc2VfYWRkcihjb25zdCBjaGFyICp0b2tlbiwgY2hhciAqbGluZSkKQEAgLTMyNzQsNiArMzMzOCw3IEBACiAgICAgcmV0dXJuIHJlc3VsdC0+ZmluZ2VycHJpbnQ7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UTFNUTUFERFJfR0VUX1NFUlZFUklECiBjaGFyICoKIG5ldHNubXBfdGxzdG1BZGRyX2dldF9zZXJ2ZXJJZChjb25zdCBjaGFyICpuYW1lKQogewpAQCAtMzI5MCwxMCArMzM1NSwxMyBAQAogCiAgICAgcmV0dXJuIHJlc3VsdC0+aWRlbnRpdHk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9UTFNUTUFERFJfR0VUX1NFUlZFUklEICovCiAvKgogICogRU5EIHNubXBUbHN0bUFkZHJUYWJsZSBkYXRhCiAgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKICNlbHNlCi1pbnQgY2VydF91bnVzZWQ7CS8qIFN1cHByZXNzICJlbXB0eSB0cmFuc2xhdGlvbiB1bml0IiB3YXJuaW5nICovCituZXRzbm1wX2ZlYXR1cmVfdW51c2VkKGNlcnRfdXRpbCk7CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DRVJUX1VUSUwgKi8KK25ldHNubXBfZmVhdHVyZV91bnVzZWQoY2VydF91dGlsKTsKICNlbmRpZiAvKiBkZWZpbmVkKE5FVFNOTVBfVVNFX09QRU5TU0wpICYmIGRlZmluZWQoSEFWRV9MSUJTU0wpICovCmRpZmYgLS1naXQgYS9zbm1wbGliL2NoZWNrX3ZhcmJpbmQuYyBiL3NubXBsaWIvY2hlY2tfdmFyYmluZC5jCmluZGV4IDQ0Mjc5NWMuLjEyYjdhNTIgMTAwNjQ0Ci0tLSBhL3NubXBsaWIvY2hlY2tfdmFyYmluZC5jCisrKyBiL3NubXBsaWIvY2hlY2tfdmFyYmluZC5jCkBAIC0xLDkgKzEsMjcgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY2hlY2tfdmFyYmluZF9hbGwsIGxpYm5ldHNubXApCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjaGVja192Yl9yYW5nZSwgY2hlY2tfdmFyYmluZF9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY2hlY2tfdmJfc2l6ZV9yYW5nZSwgY2hlY2tfdmFyYmluZF9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY2hlY2tfdmJfdWludCwgY2hlY2tfdmFyYmluZF9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY2hlY2tfdmJfc3RvcmFnZXR5cGUsIGNoZWNrX3ZhcmJpbmRfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGNoZWNrX3ZiX29pZCwgY2hlY2tfdmFyYmluZF9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY2hlY2tfdmJfdHlwZV9hbmRfbWF4X3NpemUsIGNoZWNrX3ZhcmJpbmRfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGNoZWNrX3ZiX3R5cGVfYW5kX21heF9zaXplLCBjaGVja192YXJiaW5kX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjaGVja192Yl9yb3dzdGF0dXNfd2l0aF9zdG9yYWdldHlwZSwgY2hlY2tfdmFyYmluZF9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY2hlY2tfdmJfdHJ1dGh2YWx1ZSwgY2hlY2tfdmFyYmluZF9hbGwpCisKKyNpZmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVRVUlSRV9DSEVDS19WQl9ST1dTVEFUVVNfV0lUSF9TVE9SQUdFVFlQRQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY2hlY2tfcm93c3RhdHVzX3dpdGhfc3RvcmFnZXR5cGVfdHJhbnNpdGlvbikKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVRVUlSRVNfQ0hFQ0tfVkJfUk9XU1RBVFVTX1dJVEhfU1RPUkFHRVRZUEUgKi8KKworCiBORVRTTk1QX0lOTElORSBpbnQKIG5ldHNubXBfY2hlY2tfdmJfdHlwZShjb25zdCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhciwgaW50IHR5cGUgKQogewpAQCAtNDksNiArNjcsNyBAQAogICAgIHJldHVybiByYzsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NIRUNLX1ZCX1JBTkdFCiBORVRTTk1QX0lOTElORSBpbnQKIG5ldHNubXBfY2hlY2tfdmJfcmFuZ2UoY29uc3QgbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXIsCiAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsb3csIHNpemVfdCBoaWdoICkKQEAgLTY0LDcgKzgzLDkgQEAKIAogICAgIHJldHVybiByYzsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NIRUNLX1ZCX1JBTkdFICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DSEVDS19WQl9TSVpFX1JBTkdFCiBORVRTTk1QX0lOTElORSBpbnQKIG5ldHNubXBfY2hlY2tfdmJfc2l6ZV9yYW5nZShjb25zdCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbG93LCBzaXplX3QgaGlnaCApCkBAIC04MCw2ICsxMDEsNyBAQAogCiAgICAgcmV0dXJuIHJjOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0hFQ0tfVkJfU0laRV9SQU5HRSAqLwogCiBORVRTTk1QX0lOTElORSBpbnQKIG5ldHNubXBfY2hlY2tfdmJfdHlwZV9hbmRfc2l6ZShjb25zdCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhciwKQEAgLTk4LDYgKzEyMCw3IEBACiAgICAgcmV0dXJuIHJjOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0hFQ0tfVkJfVFlQRV9BTkRfTUFYX1NJWkUKIE5FVFNOTVBfSU5MSU5FIGludAogbmV0c25tcF9jaGVja192Yl90eXBlX2FuZF9tYXhfc2l6ZShjb25zdCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdHlwZSwgc2l6ZV90IHNpemUpCkBAIC0xMTQsNyArMTM3LDkgQEAKIAogICAgIHJldHVybiByYzsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NIRUNLX1ZCX1RZUEVfQU5EX01BWF9TSVpFICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DSEVDS19WQl9PSUQKIE5FVFNOTVBfSU5MSU5FIGludAogbmV0c25tcF9jaGVja192Yl9vaWQoY29uc3QgbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXIpCiB7CkBAIC0xMzAsNiArMTU1LDcgQEAKIAogICAgIHJldHVybiByYzsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NIRUNLX1ZCX09JRCAqLwogCiBORVRTTk1QX0lOTElORSBpbnQKIG5ldHNubXBfY2hlY2tfdmJfaW50KGNvbnN0IG5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFyKQpAQCAtMTQwLDYgKzE2Niw3IEBACiAgICAgcmV0dXJuIG5ldHNubXBfY2hlY2tfdmJfdHlwZV9hbmRfc2l6ZSh2YXIsIEFTTl9JTlRFR0VSLCBzaXplb2YobG9uZykpOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0hFQ0tfVkJfVUlOVAogTkVUU05NUF9JTkxJTkUgaW50CiBuZXRzbm1wX2NoZWNrX3ZiX3VpbnQoY29uc3QgbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXIpCiB7CkBAIC0xNDgsNiArMTc1LDcgQEAKICAgICAKICAgICByZXR1cm4gbmV0c25tcF9jaGVja192Yl90eXBlX2FuZF9zaXplKHZhciwgQVNOX1VOU0lHTkVELCBzaXplb2YobG9uZykpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0hFQ0tfVkJfVUlOVCAqLwogCiBORVRTTk1QX0lOTElORSBpbnQKIG5ldHNubXBfY2hlY2tfdmJfaW50X3JhbmdlKGNvbnN0IG5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFyLCBpbnQgbG93LCBpbnQgaGlnaCkKQEAgLTE2Nyw2ICsxOTUsNyBAQAogICAgIHJldHVybiByYzsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NIRUNLX1ZCX1RSVVRIVkFMVUUKIGludAogbmV0c25tcF9jaGVja192Yl90cnV0aHZhbHVlKGNvbnN0IG5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFyKQogewpAQCAtMTgwLDYgKzIwOSw3IEBACiAgICAgCiAgICAgcmV0dXJuIG5ldHNubXBfY2hlY2tfdmJfaW50X3JhbmdlKHZhciwgMSwgMik7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DSEVDS19WQl9UUlVUSFZBTFVFICovCiAKIE5FVFNOTVBfSU5MSU5FIGludAogbmV0c25tcF9jaGVja192Yl9yb3dzdGF0dXNfdmFsdWUoY29uc3QgbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXIpCkBAIC0yMTMsNiArMjQzLDcgQEAKICAgICByZXR1cm4gY2hlY2tfcm93c3RhdHVzX3RyYW5zaXRpb24ob2xkX3ZhbHVlLCAqdmFyLT52YWwuaW50ZWdlcik7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DSEVDS19WQl9ST1dTVEFUVVNfV0lUSF9TVE9SQUdFVFlQRQogaW50CiBuZXRzbm1wX2NoZWNrX3ZiX3Jvd3N0YXR1c193aXRoX3N0b3JhZ2V0eXBlKGNvbnN0IG5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2xkX3ZhbHVlLCBpbnQgb2xkX3N0b3JhZ2UpCkBAIC0yMjksNyArMjYwLDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqdmFyLT52YWwuaW50ZWdlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRfc3RvcmFnZSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DSEVDS19WQl9ST1dTVEFUVVNfV0lUSF9TVE9SQUdFVFlQRSAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0hFQ0tfVkJfU1RPUkFHRVRZUEUKIGludAogbmV0c25tcF9jaGVja192Yl9zdG9yYWdldHlwZShjb25zdCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhciwgaW50IG9sZF92YWx1ZSkKIHsKQEAgLTI0NywzICsyODAsNCBAQAogICAgICAgICAKICAgICByZXR1cm4gY2hlY2tfc3RvcmFnZV90cmFuc2l0aW9uKG9sZF92YWx1ZSwgKnZhci0+dmFsLmludGVnZXIpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0hFQ0tfVkJfU1RPUkFHRVRZUEUgKi8KZGlmZiAtLWdpdCBhL3NubXBsaWIvY211X2NvbXBhdC5jIGIvc25tcGxpYi9jbXVfY29tcGF0LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4ZGNmM2EuLjAwMDAwMDAKLS0tIGEvc25tcGxpYi9jbXVfY29tcGF0LmMKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi0jaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+Ci0KLSNpZmRlZiBDTVVfQ09NUEFUSUJMRQotCi0jaW5jbHVkZSA8bmV0LXNubXAvbWliX2FwaS5oPgotI2luY2x1ZGUgPG5ldC1zbm1wL3BkdV9hcGkuaD4KLSNpbmNsdWRlIDxuZXQtc25tcC9zZXNzaW9uX2FwaS5oPgotCi1pbnQKLW1pYl9UeHRUb09pZChjaGFyICpCdWYsIG9pZCAqKiBPaWRQLCBzaXplX3QgKiBMZW5QKQotewotICAgIHJldHVybiByZWFkX29iamlkKEJ1ZiwgKk9pZFAsIExlblApOwotfQotCi1pbnQKLW1pYl9PaWRUb1R4dChvaWQgKiBPLCBzaXplX3QgT2lkTGVuLCBjaGFyICpCdWYsIHNpemVfdCBCdWZMZW4pCi17Ci0gICAgX3NwcmludF9vYmppZChCdWYsIE8sIE9pZExlbik7Ci0gICAgcmV0dXJuIDE7Ci19Ci0KLQotLyoKLSAqIGNtdV9zbm1wX3BhcnNlIC0gZW11bGF0ZSBDTVUgbGlicmFyeSdzIHNubXBfcGFyc2UuCi0gKgotICogUGFyc2UgcGFja2V0LCBzdG9yaW5nIHJlc3VsdHMgaW50byBQRFUuCi0gKiBSZXR1cm5zIGNvbW11bml0eSBzdHJpbmcgaWYgc3VjY2VzcywgTlVMTCBpZiBmYWlsLgotICogV0FSTklORzogbWF5IHJldHVybiBhIHplcm8gbGVuZ3RoIGNvbW11bml0eSBzdHJpbmcuCi0gKgotICogTm90ZToKLSAqIFNvbWUgQ01VLWF3YXJlIGFwcHMgY2FsbCBpbml0X21pYigpLCBidXQgZG8gbm90Ci0gKiBpbml0aWFsaXplIGEgc2Vzc2lvbi4KLSAqIENoZWNrIFJlcWlkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoaXMgbW9kdWxlIGlzIGluaXRpYWxpemVkLgotICovCi0KLXVfY2hhciAgICAgICAgICoKLWNtdV9zbm1wX3BhcnNlKG5ldHNubXBfc2Vzc2lvbiAqIHNlc3Npb24sCi0gICAgICAgICAgICAgICBuZXRzbm1wX3BkdSAqcGR1LCB1X2NoYXIgKiBkYXRhLCBzaXplX3QgbGVuZ3RoKQotewotICAgIHVfY2hhciAgICAgICAgICpidWZwID0gTlVMTDsKLQotICAgIHNubXBfc2Vzc19pbml0KHNlc3Npb24pOyAgICAvKiBnaW1tZSBhIGJyZWFrISAqLwotCi0gICAgc3dpdGNoIChwZHUtPnZlcnNpb24pIHsKLSAgICBjYXNlIFNOTVBfVkVSU0lPTl8xOgotICAgIGNhc2UgU05NUF9WRVJTSU9OXzJjOgotICAgIGNhc2UgU05NUF9ERUZBVUxUX1ZFUlNJT046Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSNpZm5kZWYgTk9fSU5URVJOQUxfVkFSTElTVAotICAgIGlmIChzbm1wX3BhcnNlKDAsIHNlc3Npb24sIHBkdSwgZGF0YSwgbGVuZ3RoKSAhPSBTTk1QX0VSUl9OT0VSUk9SKSB7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSNlbHNlCi0gICAgLyoKLSAgICAgKiB3aGlsZSB0aGVyZSBhcmUgdHdvIHZlcnNpb25zIG9mIHZhcmlhYmxlX2xpc3Q6Ci0gICAgICogdXNlIGFuIGludGVybmFsIHZhcmlhYmxlIGxpc3QgZm9yIHNubXBfcGFyc2U7Ci0gICAgICogY2xvbmUgdGhlIHJlc3VsdC4KLSAgICAgKi8KLSAgICBpZiAoMSkgewotICAgICAgICBuZXRzbm1wX3BkdSAgICAqc25tcF9jbG9uZV9wZHUobmV0c25tcF9wZHUgKik7Ci0gICAgICAgIG5ldHNubXBfcGR1ICAgICpzbm1wXzJjbG9uZV9wZHUobmV0c25tcF9wZHUgKmZyb21fcGR1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfcGR1ICp0b19wZHUpOwotCi0gICAgICAgIG5ldHNubXBfcGR1ICAgICppcGR1OwotICAgICAgICBpcGR1ID0gc25tcF9jbG9uZV9wZHUocGR1KTsKLSAgICAgICAgaWYgKHNubXBfcGFyc2UoMCwgc2Vzc2lvbiwgaXBkdSwgZGF0YSwgbGVuZ3RoKSAhPSBTTk1QX0VSUl9OT0VSUk9SKSB7Ci0gICAgICAgICAgICBzbm1wX2ZyZWVfaW50ZXJuYWxfcGR1KGlwZHUpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICAgICAgcGR1ID0gc25tcF8yY2xvbmVfcGR1KGlwZHUsIHBkdSk7Ci0gICAgICAgIHNubXBfZnJlZV9pbnRlcm5hbF9wZHUoaXBkdSk7Ci0gICAgfQotI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBOT19JTlRFUk5BTF9WQVJfTElTVCAqLwotCi0gICAgLyoKLSAgICAgKiBBZGQgYSBudWxsIHRvIG1lZXQgdGhlIGNhbGxlcidzIGV4cGVjdGF0aW9ucy4gCi0gICAgICovCi0KLSAgICBidWZwID0gKHVfY2hhciAqKSBtYWxsb2MoMSArIHBkdS0+Y29tbXVuaXR5X2xlbik7Ci0gICAgaWYgKGJ1ZnAgJiYgcGR1LT5jb21tdW5pdHlfbGVuKSB7Ci0gICAgICAgIG1lbWNweShidWZwLCBwZHUtPmNvbW11bml0eSwgcGR1LT5jb21tdW5pdHlfbGVuKTsKLSAgICAgICAgYnVmcFtwZHUtPmNvbW11bml0eV9sZW5dID0gJ1wwJzsKLSAgICB9Ci0gICAgcmV0dXJuIChidWZwKTsKLX0KLQotCi0jZWxzZQotaW50IGNtdV91bnVzZWQ7CS8qIFN1cHByZXNzICJlbXB0eSB0cmFuc2xhdGlvbiB1bml0IiB3YXJuaW5nICovCi0jZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENNVV9DT01QQVRJQkxFICovCmRpZmYgLS1naXQgYS9zbm1wbGliL2NvbnRhaW5lci5jIGIvc25tcGxpYi9jb250YWluZXIuYwppbmRleCAxN2RkNDBmLi5iMmFjOTdlIDEwMDY0NAotLS0gYS9zbm1wbGliL2NvbnRhaW5lci5jCisrKyBiL3NubXBsaWIvY29udGFpbmVyLmMKQEAgLTksMTIgKzksMzEgQEAKICAqIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9saXN0X3NzbGwuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9udWxsLmg+CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjb250YWluZXJfYWxsLCBsaWJuZXRzbm1wKQorCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY29udGFpbmVyX2ZhY3RvcmllcywgY29udGFpbmVyX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjb250YWluZXJfdHlwZXMsIGNvbnRhaW5lcl9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY29udGFpbmVyX2NvbXBhcmUsIGNvbnRhaW5lcl9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY29udGFpbmVyX2R1cCwgY29udGFpbmVyX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjb250YWluZXJfZnJlZV9hbGwsIGNvbnRhaW5lcl9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yoc3ViY29udGFpbmVyX2ZpbmQsIGNvbnRhaW5lcl9hbGwpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjb250YWluZXJfbmNvbXBhcmVfY3N0cmluZywgY29udGFpbmVyX2NvbXBhcmUpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY29udGFpbmVyX2NvbXBhcmVfbWVtLCBjb250YWluZXJfY29tcGFyZSkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjb250YWluZXJfY29tcGFyZV9sb25nLCBjb250YWluZXJfY29tcGFyZSkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjb250YWluZXJfY29tcGFyZV91bG9uZywgY29udGFpbmVyX2NvbXBhcmUpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY29udGFpbmVyX2NvbXBhcmVfaW50MzIsIGNvbnRhaW5lcl9jb21wYXJlKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGNvbnRhaW5lcl9jb21wYXJlX3VpbnQzMiwgY29udGFpbmVyX2NvbXBhcmUpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjb250YWluZXJfZmluZF9mYWN0b3J5LCBjb250YWluZXJfZmFjdG9yaWVzKQorCiAvKiogQGRlZmdyb3VwIGNvbnRhaW5lciBjb250YWluZXIKICAqLwogCkBAIC02OCwxOCArODcsMjUgQEAKICAgICAgKiByZWdpc3RlciBjb250YWluZXJzCiAgICAgICovCiAgICAgbmV0c25tcF9jb250YWluZXJfYmluYXJ5X2FycmF5X2luaXQoKTsKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DT05UQUlORVJfTElOS0VEX0xJU1QKICAgICBuZXRzbm1wX2NvbnRhaW5lcl9zc2xsX2luaXQoKTsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NPTlRBSU5FUl9MSU5LRURfTElTVCAqLworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NPTlRBSU5FUl9OVUxMCiAgICAgbmV0c25tcF9jb250YWluZXJfbnVsbF9pbml0KCk7CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DT05UQUlORVJfTlVMTCAqLwogCiAgICAgLyoKICAgICAgKiBkZWZhdWx0IGFsaWFzZXMgZm9yIHNvbWUgY29udGFpbmVycwogICAgICAqLwogICAgIG5ldHNubXBfY29udGFpbmVyX3JlZ2lzdGVyKCJ0YWJsZV9jb250YWluZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfY29udGFpbmVyX2dldF9mYWN0b3J5KCJiaW5hcnlfYXJyYXkiKSk7CisKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DT05UQUlORVJfTElOS0VEX0xJU1QKICAgICBuZXRzbm1wX2NvbnRhaW5lcl9yZWdpc3RlcigibGlua2VkX2xpc3QiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfY29udGFpbmVyX2dldF9mYWN0b3J5KCJzb3J0ZWRfc2luZ2x5X2xpbmtlZF9saXN0IikpOwogICAgIG5ldHNubXBfY29udGFpbmVyX3JlZ2lzdGVyKCJzc2xsX2NvbnRhaW5lciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9jb250YWluZXJfZ2V0X2ZhY3RvcnkoInNvcnRlZF9zaW5nbHlfbGlua2VkX2xpc3QiKSk7CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DT05UQUlORVJfTElOS0VEX0xJU1QgKi8KIAogICAgIG5ldHNubXBfY29udGFpbmVyX3JlZ2lzdGVyX3dpdGhfY29tcGFyZQogICAgICAgICAoImNzdHJpbmciLCBuZXRzbm1wX2NvbnRhaW5lcl9nZXRfZmFjdG9yeSgiYmluYXJ5X2FycmF5IiksCkBAIC0xNjYsNiArMTkyLDcgQEAKICAgICByZXR1cm4gZm91bmQgPyBmb3VuZC0+ZmFjdG9yeSA6IE5VTEw7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DT05UQUlORVJfRklORF9GQUNUT1JZCiBuZXRzbm1wX2ZhY3RvcnkgKgogbmV0c25tcF9jb250YWluZXJfZmluZF9mYWN0b3J5KGNvbnN0IGNoYXIgKnR5cGVfbGlzdCkKIHsKQEAgLTE4OCw2ICsyMTUsNyBAQAogICAgIGZyZWUobGlzdCk7CiAgICAgcmV0dXJuIGY7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DT05UQUlORVJfRklORF9GQUNUT1JZICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KQEAgLTI4Niw4ICszMTQsNiBAQAogICAgIG5ld19pbmRleC0+cHJldiA9IGN1cnI7CiB9CiAKLSNpZm5kZWYgTkVUU05NUF9VU0VfSU5MSU5FIC8qIGRlZmF1bHQgaXMgdG8gaW5saW5lICovCi0KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIEVYQUNUTFkgbWF0Y2ggdGhlIGlubGluZSB2ZXJzaW9uIGluCiAgKiBjb250YWluZXIuaC4gSWYgeW91IGNoYW5nZSBvbmUsIGNoYW5nZSB0aGVtIGJvdGguCkBAIC0zNTIsNiArMzc4LDcgQEAKICAqIFRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgRVhBQ1RMWSBtYXRjaCB0aGUgZnVuY3Rpb24gdmVyc2lvbiBpbgogICogY29udGFpbmVyLmMuIElmIHlvdSBjaGFuZ2Ugb25lLCBjaGFuZ2UgdGhlbSBib3RoLgogICovCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ09OVEFJTkVSX0RVUAogbmV0c25tcF9jb250YWluZXIgKkNPTlRBSU5FUl9EVVAobmV0c25tcF9jb250YWluZXIgKngsIHZvaWQgKmN0eCwgdV9pbnQgZmxhZ3MpCiB7CiAgICAgaWYgKE5VTEwgPT0geC0+ZHVwbGljYXRlKSB7CkBAIC0zNjEsNiArMzg4LDcgQEAKICAgICB9CiAgICAgcmV0dXJuIHgtPmR1cGxpY2F0ZSh4LCBjdHgsIGZsYWdzKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NPTlRBSU5FUl9EVVAgKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgRVhBQ1RMWSBtYXRjaCB0aGUgaW5saW5lIHZlcnNpb24gaW4KQEAgLTQxMyw2ICs0NDEsNyBAQAogICAgIHgtPmNsZWFyKHgsIGYsIGMpOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ09OVEFJTkVSX0ZSRUVfQUxMCiAvKgogICogY2xlYXIgYWxsIGNvbnRhaW5lcnMuIFdoZW4gY2xlYXJpbmcgdGhlICpmaXJzdCogY29udGFpbmVyLCBhbmQKICAqICpvbmx5KiB0aGUgZmlyc3QgY29udGFpbmVyLCBjYWxsIHRoZSBmcmVlX2l0ZW0gZnVuY3Rpb24gZm9yIGVhY2ggaXRlbS4KQEAgLTQyMiw3ICs0NTEsOSBAQAogewogICAgIENPTlRBSU5FUl9DTEVBUih4LCB4LT5mcmVlX2l0ZW0sIGMpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ09OVEFJTkVSX0ZSRUVfQUxMICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TVUJDT05UQUlORVJfRklORAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgRVhBQ1RMWSBtYXRjaCB0aGUgZnVuY3Rpb24gdmVyc2lvbiBpbgogICogY29udGFpbmVyLmMuIElmIHlvdSBjaGFuZ2Ugb25lLCBjaGFuZ2UgdGhlbSBib3RoLgpAQCAtNDQ2LDcgKzQ3Nyw3IEBACiAgICAgfQogICAgIHJldHVybiB4OwogfQotI2VuZGlmCisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TVUJDT05UQUlORVJfRklORCAqLwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC01NTAsNiArNTgxLDcgQEAKICAgICAgICAgICAgICAgICAgICgoY29uc3QgY29udGFpbmVyX3R5cGUqKXJocyktPm5hbWUpOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ09OVEFJTkVSX05DT01QQVJFX0NTVFJJTkcKIGludAogbmV0c25tcF9uY29tcGFyZV9jc3RyaW5nKGNvbnN0IHZvaWQgKiBsaHMsIGNvbnN0IHZvaWQgKiByaHMpCiB7CkBAIC01NTcsNiArNTg5LDcgQEAKICAgICAgICAgICAgICAgICAgICAoKGNvbnN0IGNvbnRhaW5lcl90eXBlKilyaHMpLT5uYW1lLAogICAgICAgICAgICAgICAgICAgIHN0cmxlbigoKGNvbnN0IGNvbnRhaW5lcl90eXBlKilyaHMpLT5uYW1lKSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DT05UQUlORVJfTkNPTVBBUkVfQ1NUUklORyAqLwogCiBpbnQKIG5ldHNubXBfY29tcGFyZV9kaXJlY3RfY3N0cmluZyhjb25zdCB2b2lkICogbGhzLCBjb25zdCB2b2lkICogcmhzKQpAQCAtNTcxLDYgKzYwNCw3IEBACiAgKiBjb21wYXJlIHVwIHRvIHRoZSBsZW5ndGggb2YgdGhlIHNtYWxsZXIsIGFuZCB0aGVuIHVzZSBsZW5ndGggdG8KICAqIGJyZWFrIGFueSB0aWVzLgogICovCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ09OVEFJTkVSX0NPTVBBUkVfTUVNCiBpbnQKIG5ldHNubXBfY29tcGFyZV9tZW0oY29uc3QgY2hhciAqIGxocywgc2l6ZV90IGxoc19sZW4sCiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiByaHMsIHNpemVfdCByaHNfbGVuKQpAQCAtNTg3LDE2ICs2MjEsMTYgQEAKIAogICAgIHJldHVybiByYzsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NPTlRBSU5FUl9DT01QQVJFX01FTSAqLwogCi10eXBlZGVmIHN0cnVjdCBkdW1teV9sb25nX3MgewotICAgIGxvbmcgICAgICAgICAgICAgICAgICAgICAgaW5kZXg7Ci19IGR1bW15X2xvbmc7Ci0KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DT05UQUlORVJfQ09NUEFSRV9MT05HCiBpbnQKIG5ldHNubXBfY29tcGFyZV9sb25nKGNvbnN0IHZvaWQgKiBsaHMsIGNvbnN0IHZvaWQgKiByaHMpCiB7Ci0gICAgY29uc3QgZHVtbXlfbG9uZyAqbGhkID0gKGNvbnN0IGR1bW15X2xvbmcqKWxoczsKLSAgICBjb25zdCBkdW1teV9sb25nICpyaGQgPSAoY29uc3QgZHVtbXlfbG9uZyopcmhzOworICAgIHR5cGVkZWYgc3RydWN0IHsgbG9uZyBpbmRleDsgfSBkdW1teTsKKworICAgIGNvbnN0IGR1bW15ICpsaGQgPSAoY29uc3QgZHVtbXkqKWxoczsKKyAgICBjb25zdCBkdW1teSAqcmhkID0gKGNvbnN0IGR1bW15KilyaHM7CiAKICAgICBpZiAobGhkLT5pbmRleCA8IHJoZC0+aW5kZXgpCiAgICAgICAgIHJldHVybiAtMTsKQEAgLTYwNSwxNiArNjM5LDE2IEBACiAKICAgICByZXR1cm4gMDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NPTlRBSU5FUl9DT01QQVJFX0xPTkcgKi8KIAotdHlwZWRlZiBzdHJ1Y3QgZHVtbXlfdWxvbmdfcyB7Ci0gICAgdV9sb25nICAgICAgICAgICAgICAgICAgICAgIGluZGV4OwotfSBkdW1teV91bG9uZzsKLQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NPTlRBSU5FUl9DT01QQVJFX1VMT05HCiBpbnQKIG5ldHNubXBfY29tcGFyZV91bG9uZyhjb25zdCB2b2lkICogbGhzLCBjb25zdCB2b2lkICogcmhzKQogewotICAgIGNvbnN0IGR1bW15X3Vsb25nICpsaGQgPSAoY29uc3QgZHVtbXlfdWxvbmcqKWxoczsKLSAgICBjb25zdCBkdW1teV91bG9uZyAqcmhkID0gKGNvbnN0IGR1bW15X3Vsb25nKilyaHM7CisgICAgdHlwZWRlZiBzdHJ1Y3QgeyB1X2xvbmcgaW5kZXg7IH0gZHVtbXk7CisKKyAgICBjb25zdCBkdW1teSAqbGhkID0gKGNvbnN0IGR1bW15KilsaHM7CisgICAgY29uc3QgZHVtbXkgKnJoZCA9IChjb25zdCBkdW1teSopcmhzOwogCiAgICAgaWYgKGxoZC0+aW5kZXggPCByaGQtPmluZGV4KQogICAgICAgICByZXR1cm4gLTE7CkBAIC02MjMsMTYgKzY1NywxNiBAQAogCiAgICAgcmV0dXJuIDA7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DT05UQUlORVJfQ09NUEFSRV9VTE9ORyAqLwogCi10eXBlZGVmIHN0cnVjdCBkdW1teV9pbnQzMl9zIHsKLSAgICBpbnQzMl90ICAgICAgICAgICAgICAgICAgICBpbmRleDsKLX0gZHVtbXlfaW50MzI7Ci0KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DT05UQUlORVJfQ09NUEFSRV9JTlQzMgogaW50CiBuZXRzbm1wX2NvbXBhcmVfaW50MzIoY29uc3Qgdm9pZCAqIGxocywgY29uc3Qgdm9pZCAqIHJocykKIHsKLSAgICBjb25zdCBkdW1teV9pbnQzMiAqbGhkID0gKGNvbnN0IGR1bW15X2ludDMyKilsaHM7Ci0gICAgY29uc3QgZHVtbXlfaW50MzIgKnJoZCA9IChjb25zdCBkdW1teV9pbnQzMiopcmhzOworICAgIHR5cGVkZWYgc3RydWN0IHsgaW50MzJfdCBpbmRleDsgfSBkdW1teTsKKworICAgIGNvbnN0IGR1bW15ICpsaGQgPSAoY29uc3QgZHVtbXkqKWxoczsKKyAgICBjb25zdCBkdW1teSAqcmhkID0gKGNvbnN0IGR1bW15KilyaHM7CiAKICAgICBpZiAobGhkLT5pbmRleCA8IHJoZC0+aW5kZXgpCiAgICAgICAgIHJldHVybiAtMTsKQEAgLTY0MSwxNiArNjc1LDE2IEBACiAKICAgICByZXR1cm4gMDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NPTlRBSU5FUl9DT01QQVJFX0lOVDMyICovCiAKLXR5cGVkZWYgc3RydWN0IGR1bW15X3VpbnQzMl9zIHsKLSAgICB1aW50MzJfdCAgICAgICAgICAgICAgICAgICBpbmRleDsKLX0gZHVtbXlfdWludDMyOwotCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ09OVEFJTkVSX0NPTVBBUkVfVUlOVDMyCiBpbnQKIG5ldHNubXBfY29tcGFyZV91aW50MzIoY29uc3Qgdm9pZCAqIGxocywgY29uc3Qgdm9pZCAqIHJocykKIHsKLSAgICBjb25zdCBkdW1teV91aW50MzIgKmxoZCA9IChjb25zdCBkdW1teV91aW50MzIqKWxoczsKLSAgICBjb25zdCBkdW1teV91aW50MzIgKnJoZCA9IChjb25zdCBkdW1teV91aW50MzIqKXJoczsKKyAgICB0eXBlZGVmIHN0cnVjdCB7IHVpbnQzMl90IGluZGV4OyB9IGR1bW15OworCisgICAgY29uc3QgZHVtbXkgKmxoZCA9IChjb25zdCBkdW1teSopbGhzOworICAgIGNvbnN0IGR1bW15ICpyaGQgPSAoY29uc3QgZHVtbXkqKXJoczsKIAogICAgIGlmIChsaGQtPmluZGV4IDwgcmhkLT5pbmRleCkKICAgICAgICAgcmV0dXJuIC0xOwpAQCAtNjU5LDYgKzY5Myw3IEBACiAKICAgICByZXR1cm4gMDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NPTlRBSU5FUl9DT01QQVJFX1VJTlQzMiAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogbmV0c25tcF9jb250YWluZXJfc2ltcGxlX2ZyZWUKZGlmZiAtLWdpdCBhL3NubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jIGIvc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMKaW5kZXggYTMwOTI0OC4uMjQ5YTNhOSAxMDA2NDQKLS0tIGEvc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMKKysrIGIvc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMKQEAgLTM3LDcgKzM3LDYgQEAKICAgICBzaXplX3QgICAgICAgICAgICAgICAgICAgICBtYXhfc2l6ZTsgICAvKiBTaXplIG9mIHRoZSBjdXJyZW50IGRhdGEgdGFibGUgKi8KICAgICBzaXplX3QgICAgICAgICAgICAgICAgICAgICBjb3VudDsgICAgICAvKiBJbmRleCBvZiB0aGUgbmV4dCBmcmVlIGVudHJ5ICovCiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgZGlydHk7Ci0gICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9zaXplOyAgLyogU2l6ZSBvZiBhbiBpbmRpdmlkdWFsIGVudHJ5ICovCiAgICAgdm9pZCAgICAgICAgICAgICAgICAgICAgICoqZGF0YTsgICAgICAgLyogVGhlIHRhYmxlIGl0c2VsZiAqLwogfSBiaW5hcnlfYXJyYXlfdGFibGU7CiAKQEAgLTIyMSw3ICsyMjAsNiBAQAogICAgIHQtPm1heF9zaXplID0gMDsKICAgICB0LT5jb3VudCA9IDA7CiAgICAgdC0+ZGlydHkgPSAwOwotICAgIHQtPmRhdGFfc2l6ZSA9IHNpemVvZih2b2lkKik7CiAgICAgdC0+ZGF0YSA9IE5VTEw7CiAKICAgICByZXR1cm4gdDsKQEAgLTIzMSw5ICsyMjksNyBAQAogbmV0c25tcF9iaW5hcnlfYXJyYXlfcmVsZWFzZShuZXRzbm1wX2NvbnRhaW5lciAqYykKIHsKICAgICBiaW5hcnlfYXJyYXlfdGFibGUgKnQgPSAoYmluYXJ5X2FycmF5X3RhYmxlKiljLT5jb250YWluZXJfZGF0YTsKLSAgICBpZiAodC0+ZGF0YSAhPSBOVUxMKSB7Ci0JU05NUF9GUkVFKHQtPmRhdGEpOwotICAgIH0KKyAgICBTTk1QX0ZSRUUodC0+ZGF0YSk7CiAgICAgU05NUF9GUkVFKHQpOwogICAgIFNOTVBfRlJFRShjKTsKIH0KQEAgLTMyMiw3ICszMTgsNyBAQAogICAgICAgICAgKiBvdGhlcndpc2UsIHNoaWZ0IGFycmF5IGRvd24KICAgICAgICAgICovCiAgICAgICAgIG1lbW1vdmUoJnQtPmRhdGFbaW5kZXhdLCAmdC0+ZGF0YVtpbmRleCsxXSwKLSAgICAgICAgICAgICAgICB0LT5kYXRhX3NpemUgKiAodC0+Y291bnQgLSBpbmRleCkpOworICAgICAgICAgICAgICAgIHNpemVvZih2b2lkKikgKiAodC0+Y291bnQgLSBpbmRleCkpOwogCiAgICAgICAgICsrYy0+c3luYzsKICAgICB9CkBAIC0zOTcsMTYgKzM5MywxMyBAQAogbmV0c25tcF9iaW5hcnlfYXJyYXlfaW5zZXJ0KG5ldHNubXBfY29udGFpbmVyICpjLCBjb25zdCB2b2lkICplbnRyeSkKIHsKICAgICBiaW5hcnlfYXJyYXlfdGFibGUgKnQgPSAoYmluYXJ5X2FycmF5X3RhYmxlKiljLT5jb250YWluZXJfZGF0YTsKLSAgICBpbnQgICAgICAgICAgICAgbmV3X21heCwgbmV3X3NpemUsIHdhc19kaXJ0eSA9IDA7Ci0gICAgY2hhciAgICAgICAgICAgKm5ld19kYXRhOyAgIC8qIFVzZWQgZm9yICogYSkgZXh0ZW5kaW5nIHRoZSBkYXRhIHRhYmxlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICogYikgdGhlIG5leHQgZW50cnkgdG8gdXNlICovCisgICAgaW50ICAgICAgICAgICAgIHdhc19kaXJ0eSA9IDA7CiAgICAgLyoKICAgICAgKiBjaGVjayBmb3IgZHVwbGljYXRlcwogICAgICAqLwogICAgIGlmICghIChjLT5mbGFncyAmIENPTlRBSU5FUl9LRVlfQUxMT1dfRFVQTElDQVRFUykpIHsKICAgICAgICAgd2FzX2RpcnR5ID0gdC0+ZGlydHk7Ci0gICAgICAgIG5ld19kYXRhID0gbmV0c25tcF9iaW5hcnlfYXJyYXlfZ2V0KGMsIGVudHJ5LCAxKTsKLSAgICAgICAgaWYgKE5VTEwgIT0gbmV3X2RhdGEpIHsKKyAgICAgICAgaWYgKE5VTEwgIT0gbmV0c25tcF9iaW5hcnlfYXJyYXlfZ2V0KGMsIGVudHJ5LCAxKSkgewogICAgICAgICAgICAgREVCVUdNU0dUTCgoImNvbnRhaW5lciIsIm5vdCBpbnNlcnRpbmcgZHVwbGljYXRlIGtleVxuIikpOwogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICB9CkBAIC00MTcsMjIgKzQxMCwyMCBAQAogICAgICAqLwogICAgIGlmICh0LT5tYXhfc2l6ZSA8PSB0LT5jb3VudCkgewogICAgICAgICAvKgotICAgICAgICAgKiBUYWJsZSBpcyBmdWxsLCBzbyBleHRlbmQgaXQgdG8gZG91YmxlIHRoZSBzaXplCisgICAgICAgICAqIFRhYmxlIGlzIGZ1bGwsIHNvIGV4dGVuZCBpdCB0byBkb3VibGUgdGhlIHNpemUsIG9yIHVzZSAxMCBlbGVtZW50cworICAgICAgICAgKiBpZiBpdCBpcyBlbXB0eS4KICAgICAgICAgICovCi0gICAgICAgIG5ld19tYXggPSAyICogdC0+bWF4X3NpemU7Ci0gICAgICAgIGlmIChuZXdfbWF4ID09IDApCi0gICAgICAgICAgICBuZXdfbWF4ID0gMTA7ICAgICAgIC8qIFN0YXJ0IHdpdGggMTAgZW50cmllcyAqLworICAgICAgICBzaXplX3QgY29uc3QgbmV3X21heCA9IHQtPm1heF9zaXplID4gMCA/IDIgKiB0LT5tYXhfc2l6ZSA6IDEwOworICAgICAgICB2b2lkICoqIGNvbnN0IG5ld19kYXRhID0KKyAgICAgICAgICAgICh2b2lkKiopIHJlYWxsb2ModC0+ZGF0YSwgbmV3X21heCAqIHNpemVvZih2b2lkKikpOwogCi0gICAgICAgIG5ld19zaXplID0gbmV3X21heCAqIHQtPmRhdGFfc2l6ZTsKLSAgICAgICAgbmV3X2RhdGEgPSAoY2hhciAqKSByZWFsbG9jKHQtPmRhdGEsIG5ld19zaXplKTsKICAgICAgICAgaWYgKG5ld19kYXRhID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgaW50IG9sZF9zaXplID0gdC0+bWF4X3NpemUgKiB0LT5kYXRhX3NpemU7Ci0gICAgICAgICAgICBpbnQgY291bnQgPSBuZXdfc2l6ZSAtIG9sZF9zaXplOwotICAgICAgICAgICAgbWVtc2V0KCZuZXdfZGF0YVtvbGRfc2l6ZV0sIDB4MCwgY291bnQpOwotICAgICAgICB9Ci0gICAgICAgIHQtPmRhdGEgPSAodm9pZCoqKW5ld19kYXRhOworCisgICAgICAgIG1lbXNldChuZXdfZGF0YSArIHQtPm1heF9zaXplLCAweDAsCisgICAgICAgICAgICAgICAobmV3X21heCAtIHQtPm1heF9zaXplKSAqIHNpemVvZih2b2lkKikpOworCisgICAgICAgIHQtPmRhdGEgPSBuZXdfZGF0YTsKICAgICAgICAgdC0+bWF4X3NpemUgPSBuZXdfbWF4OwogICAgIH0KIApAQCAtNTMyLDkgKzUyMyw5IEBACiAgICAgfQogCiAgICAgKmxlbiA9IGVuZCAtIHN0YXJ0ICsgMTsKLSAgICBzdWJzZXQgPSAodm9pZCAqKiltYWxsb2MoKCpsZW4pICogdC0+ZGF0YV9zaXplKTsKKyAgICBzdWJzZXQgPSAodm9pZCAqKiltYWxsb2MoKCpsZW4pICogc2l6ZW9mKHZvaWQqKSk7CiAgICAgaWYgKHN1YnNldCkKLSAgICAgICAgbWVtY3B5KHN1YnNldCwgJnQtPmRhdGFbc3RhcnRdLCB0LT5kYXRhX3NpemUgKiAoKmxlbikpOworICAgICAgICBtZW1jcHkoc3Vic2V0LCAmdC0+ZGF0YVtzdGFydF0sIHNpemVvZih2b2lkKikgKiAoKmxlbikpOwogCiAgICAgcmV0dXJuIHN1YnNldDsKIH0KQEAgLTY1NywyMCArNjQ4LDE5IEBACiAgICAgZHVwdC0+bWF4X3NpemUgPSB0LT5tYXhfc2l6ZTsKICAgICBkdXB0LT5jb3VudCA9IHQtPmNvdW50OwogICAgIGR1cHQtPmRpcnR5ID0gdC0+ZGlydHk7Ci0gICAgZHVwdC0+ZGF0YV9zaXplID0gdC0+ZGF0YV9zaXplOwogCiAgICAgLyoKICAgICAgKiBzaGFsbG93IGNvcHkKICAgICAgKi8KLSAgICBkdXB0LT5kYXRhID0gKHZvaWQqKikgY2FsbG9jKGR1cHQtPm1heF9zaXplLCBkdXB0LT5kYXRhX3NpemUpOworICAgIGR1cHQtPmRhdGEgPSAodm9pZCoqKSBtYWxsb2MoZHVwdC0+bWF4X3NpemUgKiBzaXplb2Yodm9pZCopKTsKICAgICBpZiAoTlVMTCA9PSBkdXB0LT5kYXRhKSB7CiAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJubyBtZW1vcnkgZm9yIGJpbmFyeSBhcnJheSBkdXBsaWNhdGVcbiIpOwogICAgICAgICBuZXRzbm1wX2JpbmFyeV9hcnJheV9yZWxlYXNlKGR1cCk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAotICAgIG1lbWNweShkdXB0LT5kYXRhLCB0LT5kYXRhLCBkdXB0LT5tYXhfc2l6ZSAqIGR1cHQtPmRhdGFfc2l6ZSk7Ci0gICAgCisgICAgbWVtY3B5KGR1cHQtPmRhdGEsIHQtPmRhdGEsIGR1cHQtPm1heF9zaXplICogc2l6ZW9mKHZvaWQqKSk7CisKICAgICByZXR1cm4gZHVwOwogfQogCmRpZmYgLS1naXQgYS9zbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jIGIvc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYwppbmRleCBlMjZkOTllLi40MWIxNGZmIDEwMDY0NAotLS0gYS9zbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jCisrKyBiL3NubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMKQEAgLTQsNiArNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpbmNsdWRlIDxzdGRpby5oPgogI2lmIEhBVkVfU1RETElCX0gKQEAgLTI4LDYgKzI5LDkgQEAKIAogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2l0ZXJhdG9yLmg+CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjb250YWluZXJfaXRlcmF0b3IsIGNvbnRhaW5lcl90eXBlcykKKworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NPTlRBSU5FUl9JVEVSQVRPUgogLyoqCiAgKiAgSG9sZHMgaXRlcmF0b3IgaW5mb3JtYXRpb24gY29udGFpbmluZyBmdW5jdGlvbnMgd2hpY2ggc2hvdWxkIGJlIGNhbGxlZAogICogIGJ5IHRoZSBpdGVyYXRvcl9oYW5kbGVyIHRvIGxvb3Agb3ZlciB5b3VyIGRhdGEgc2V0IGFuZCBzb3J0IGl0IGluIGEKQEAgLTUwNCwzICs1MDgsNiBAQAogICAgIGlpLT5yZW1vdmVfZGF0YSA9IHJlbW92ZV9kYXRhOwogICAgIGlpLT5nZXRfc2l6ZSA9IGdldF9zaXplOwogfQorI2Vsc2UgIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ09OVEFJTkVSX0lURVJBVE9SICovCituZXRzbm1wX2ZlYXR1cmVfdW51c2VkKGNvbnRhaW5lcl9pdGVyYXRvcik7CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DT05UQUlORVJfSVRFUkFUT1IgKi8KZGlmZiAtLWdpdCBhL3NubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jIGIvc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMKaW5kZXggNjVlMzk2OC4uN2ZmMDFjNCAxMDA2NDQKLS0tIGEvc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMKKysrIGIvc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMKQEAgLTQsNiArNCw3IEBACiAgKgogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaWYgSEFWRV9TVERMSUJfSApAQCAtMjgsNiArMjksMTkgQEAKIAogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2xpc3Rfc3NsbC5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY29udGFpbmVyX2xpbmtlZF9saXN0LCBjb250YWluZXJfdHlwZXMpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY29udGFpbmVyX2ZpZm8sIGNvbnRhaW5lcl90eXBlcykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjb250YWluZXJfbGlmbywgY29udGFpbmVyX3R5cGVzKQorCisvKiB0aGlzIGlzIGEgZmFuY3kgd2F5IG9mIGNsZWFuaW5nIHVwIGlmZGVmcyAqLworI2lmZGVmIE5FVFNOTVBfRkVBVFVSRV9SRVFVSVJFX0NPTlRBSU5FUl9GSUZPCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjb250YWluZXJfbGlua2VkX2xpc3QpCisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFUVVJUkVfQ09OVEFJTkVSX0ZJRk8gKi8KKyNpZmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVRVUlSRV9DT05UQUlORVJfTElGTworbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoY29udGFpbmVyX2xpbmtlZF9saXN0KQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRVFVSVJFX0NPTlRBSU5FUl9MSUZPICovCisKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DT05UQUlORVJfTElOS0VEX0xJU1QKIHR5cGVkZWYgc3RydWN0IHNsX25vZGUgewogICAgdm9pZCAgICAgICAgICAgKmRhdGE7CiAgICBzdHJ1Y3Qgc2xfbm9kZSAqbmV4dDsKQEAgLTU1MSwzICs1NjUsNiBAQAogCiAgICAgcmV0dXJuIChuZXRzbm1wX2l0ZXJhdG9yICopaXQ7CiB9CisjZWxzZSAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NPTlRBSU5FUl9MSU5LRURfTElTVCAqLworbmV0c25tcF9mZWF0dXJlX3VudXNlZChjb250YWluZXJfbGlua2VkX2xpc3QpOworI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ09OVEFJTkVSX0xJTktFRF9MSVNUICovCmRpZmYgLS1naXQgYS9zbm1wbGliL2NvbnRhaW5lcl9udWxsLmMgYi9zbm1wbGliL2NvbnRhaW5lcl9udWxsLmMKaW5kZXggMDRjY2EyMS4uMWY0ODcwZSAxMDA2NDQKLS0tIGEvc25tcGxpYi9jb250YWluZXJfbnVsbC5jCisrKyBiL3NubXBsaWIvY29udGFpbmVyX251bGwuYwpAQCAtNyw2ICs3LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2lmIEhBVkVfSU9fSAogI2luY2x1ZGUgPGlvLmg+CkBAIC0zMyw2ICszNCw4IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS90b29scy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGNvbnRhaW5lcl9udWxsLCBjb250YWluZXJfdHlwZXMpCisKIC8qKiBAZGVmZ3JvdXAgbnVsbF9jb250YWluZXIgbnVsbF9jb250YWluZXIKICAqICBIZWxwcyB5b3UgaW1wbGVtZW50IHNwZWNpYWxpemVkIGNvbnRhaW5lcnMuCiAgKiAgQGluZ3JvdXAgY29udGFpbmVyCkBAIC01MCw2ICs1Myw3IEBACiAgKiAgQHsKICAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ09OVEFJTkVSX05VTEwKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogY29udGFpbmVyCkBAIC0xODAsNSArMTg0LDggQEAKICAgICBuZXRzbm1wX2NvbnRhaW5lcl9yZWdpc3RlcigibnVsbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9jb250YWluZXJfZ2V0X251bGxfZmFjdG9yeSgpKTsKIH0KKyNlbHNlICAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NPTlRBSU5FUl9OVUxMICovCituZXRzbm1wX2ZlYXR1cmVfdW51c2VkKGNvbnRhaW5lcl9udWxsKTsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NPTlRBSU5FUl9OVUxMICovCiAvKiogIEB9ICovCiAKZGlmZiAtLWdpdCBhL3NubXBsaWIvZGF0YV9saXN0LmMgYi9zbm1wbGliL2RhdGFfbGlzdC5jCmluZGV4IGMzNzlmYTYuLjUwNWQ0ZmMgMTAwNjQ0Ci0tLSBhL3NubXBsaWIvZGF0YV9saXN0LmMKKysrIGIvc25tcGxpYi9kYXRhX2xpc3QuYwpAQCAtNCw4ICs0LDE0IEBACiAgKiAkSWQkCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihkYXRhX2xpc3RfYWxsLCBsaWJuZXRzbm1wKQorCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoZGF0YV9saXN0X2FkZF9kYXRhLCBkYXRhX2xpc3RfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGRhdGFfbGlzdF9nZXRfbGlzdF9ub2RlLCBkYXRhX2xpc3RfYWxsKQorCiAvKiogQGRlZmdyb3VwIGRhdGFfbGlzdCBnZW5lcmljIGxpbmtlZC1saXN0IGRhdGEgaGFuZGxpbmcgd2l0aCBhIHN0cmluZyBhcyBhIGtleS4KICAqIEBpbmdyb3VwIGxpYnJhcnkKICAqIEB7CkBAIC02Miw4ICs2OCw4IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIG5vZGUtPm5hbWUgPSBzdHJkdXAobmFtZSk7CiAgICAgaWYgKCFub2RlLT5uYW1lKSB7Ci0gICAgICBmcmVlKG5vZGUpOwotICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGZyZWUobm9kZSk7CisgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBub2RlLT5kYXRhID0gZGF0YTsKICAgICBub2RlLT5mcmVlX2Z1bmMgPSBiZWVyOwpAQCAtMTMxLDYgKzEzNyw3IEBACiAgKiBAcGFyYW0gYmVlciBBIGZ1bmN0aW9uIHRoYXQgY2FuIGZyZWUgdGhlIGRhdGEgcG9pbnRlciAoaW4gdGhlIGZ1dHVyZSkKICAqIEByZXR1cm4gYSBuZXdseSBjcmVhdGVkIGRhdGFfbGlzdCBub2RlIHdoaWNoIHdhcyBpbnNlcnRlZCBpbiB0aGUgbGlzdAogICovCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfREFUQV9MSVNUX0FERF9EQVRBCiBORVRTTk1QX0lOTElORSBuZXRzbm1wX2RhdGFfbGlzdCAqCiBuZXRzbm1wX2RhdGFfbGlzdF9hZGRfZGF0YShuZXRzbm1wX2RhdGFfbGlzdCAqKmhlYWQsIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhLCBOZXRzbm1wX0ZyZWVfTGlzdF9EYXRhICogYmVlcikKQEAgLTE1MCw2ICsxNTcsNyBAQAogCiAgICAgcmV0dXJuIG5vZGU7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9EQVRBX0xJU1RfQUREX0RBVEEgKi8KIAogLyoqIHJldHVybnMgYSBkYXRhX2xpc3Qgbm9kZSdzIGRhdGEgZm9yIGEgZ2l2ZW4gbmFtZSB3aXRoaW4gYSBkYXRhX2xpc3QKICAqIEBwYXJhbSBoZWFkIHRoZSBoZWFkIG5vZGUgb2YgYSBkYXRhX2xpc3QKQEAgLTE3NCw2ICsxODIsNyBAQAogICogQHBhcmFtIG5hbWUgdGhlIG5hbWUgdG8gZmluZAogICogQHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIGRhdGFfbGlzdCBub2RlCiAgKi8KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9EQVRBX0xJU1RfR0VUX0xJU1RfTk9ERQogTkVUU05NUF9JTkxJTkUgbmV0c25tcF9kYXRhX2xpc3QgICAgKgogbmV0c25tcF9nZXRfbGlzdF9ub2RlKG5ldHNubXBfZGF0YV9saXN0ICpoZWFkLCBjb25zdCBjaGFyICpuYW1lKQogewpAQCAtMTg2LDYgKzE5NSw3IEBACiAgICAgICAgIHJldHVybiBoZWFkOwogICAgIHJldHVybiBOVUxMOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfREFUQV9MSVNUX0dFVF9MSVNUX05PREUgKi8KIAogLyoqIFJlbW92ZXMgYSBuYW1lZCBub2RlIGZyb20gYSBkYXRhX2xpc3QgKGFuZCBmcmVlcyBpdCkKICAqIEBwYXJhbSByZWFsaGVhZCBhIHBvaW50ZXIgdG8gdGhlIGhlYWQgbm9kZSBvZiBhIGRhdGFfbGlzdApkaWZmIC0tZ2l0IGEvc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgYi9zbm1wbGliL2RlZmF1bHRfc3RvcmUuYwppbmRleCA4M2Y0ZTM0Li44ZGJjOWJjIDEwMDY0NAotLS0gYS9zbm1wbGliL2RlZmF1bHRfc3RvcmUuYworKysgYi9zbm1wbGliL2RlZmF1bHRfc3RvcmUuYwpAQCAtMTI2LDYgKzEyNiw3IEBACiAgKiAgQHsKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaWYgSEFWRV9TVERMSUJfSAogI2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtMTU3LDYgKzE1OCwxNCBAQAogCiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoZGVmYXVsdF9zdG9yZV9hbGwsIGxpYm5ldHNubXApCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihkZWZhdWx0X3N0b3JlX3ZvaWQsIGRlZmF1bHRfc3RvcmVfYWxsKQorCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfREVGQVVMVF9TVE9SRV9WT0lECisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9ERUZBVUxUX1NUT1JFX1ZPSUQgKi8KKworCiBzdGF0aWMgY29uc3QgY2hhciAqIHN0b3JlcyBbTkVUU05NUF9EU19NQVhfSURTXSA9IHsgIkxJQiIsICJBUFAiLCAiVE9LIiB9OwogCiB0eXBlZGVmIHN0cnVjdCBuZXRzbm1wX2RzX3JlYWRfY29uZmlnX3MgewpAQCAtMTczLDcgKzE4Miw5IEBACiBzdGF0aWMgaW50ICAgbmV0c25tcF9kc19pbnRlZ2Vyc1tORVRTTk1QX0RTX01BWF9JRFNdW05FVFNOTVBfRFNfTUFYX1NVQklEU107CiBzdGF0aWMgY2hhciAgbmV0c25tcF9kc19ib29sZWFuc1tORVRTTk1QX0RTX01BWF9JRFNdW05FVFNOTVBfRFNfTUFYX1NVQklEUy84XTsKIHN0YXRpYyBjaGFyICpuZXRzbm1wX2RzX3N0cmluZ3NbTkVUU05NUF9EU19NQVhfSURTXVtORVRTTk1QX0RTX01BWF9TVUJJRFNdOworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0RFRkFVTFRfU1RPUkVfVk9JRAogc3RhdGljIHZvaWQgKm5ldHNubXBfZHNfdm9pZHNbTkVUU05NUF9EU19NQVhfSURTXVtORVRTTk1QX0RTX01BWF9TVUJJRFNdOworI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfREVGQVVMVF9TVE9SRV9WT0lEICovCiAKIC8qCiAgKiBQcm90b3R5cGUgZGVmaW5pdGlvbnMgCkBAIC0zMTMsNiArMzI0LDcgQEAKICAgICByZXR1cm4gbmV0c25tcF9kc19zdHJpbmdzW3N0b3JlaWRdW3doaWNoXTsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0RFRkFVTFRfU1RPUkVfVk9JRAogaW50CiBuZXRzbm1wX2RzX3NldF92b2lkKGludCBzdG9yZWlkLCBpbnQgd2hpY2gsIHZvaWQgKnZhbHVlKQogewpAQCAtMzM5LDYgKzM1MSw3IEBACiAKICAgICByZXR1cm4gbmV0c25tcF9kc192b2lkc1tzdG9yZWlkXVt3aGljaF07CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9ERUZBVUxUX1NUT1JFX1ZPSUQgKi8KIAogaW50CiBuZXRzbm1wX2RzX3BhcnNlX2Jvb2xlYW4oY2hhciAqbGluZSkKZGlmZiAtLWdpdCBhL3NubXBsaWIvZGlyX3V0aWxzLmMgYi9zbm1wbGliL2Rpcl91dGlscy5jCmluZGV4IGE5NzUwNWQuLmQzNWU3MDAgMTAwNjQ0Ci0tLSBhL3NubXBsaWIvZGlyX3V0aWxzLmMKKysrIGIvc25tcGxpYi9kaXJfdXRpbHMuYwpAQCAtOSw2ICs5LDcgQEAKICAqIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAKICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtNDcsNiArNDgsMTMgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L2ZpbGVfdXRpbHMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L2Rpcl91dGlscy5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY29udGFpbmVyX2RpcmVjdG9yeSwgY29udGFpbmVyX3R5cGVzKQorI2lmZGVmIE5FVFNOTVBfRkVBVFVSRV9SRVFVSVJFX0NPTlRBSU5FUl9ESVJFQ1RPUlkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGZpbGVfdXRpbHMpCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjb250YWluZXJfZnJlZV9hbGwpCisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFUVVJUkVfQ09OVEFJTkVSX0RJUkVDVE9SWSAqLworCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ09OVEFJTkVSX0RJUkVDVE9SWQogc3RhdGljIGludAogX2luc2VydF9uc2ZpbGUoIG5ldHNubXBfY29udGFpbmVyICpjLCBjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc3RhdCAqc3RhdHMsCiAgICAgICAgICAgICAgICAgdV9pbnQgZmxhZ3MpOwpAQCAtMjI5LDEwICsyMzcsMTMgQEAKICAgICAgICAgfQogICAgIAogICAgICAgICAvKiogdXNlIHN0YXRzIGZyb20gZWFybGllciBpZiB3ZSBoYXZlIHRoZW0gKi8KLSAgICAgICAgaWYgKHN0YXRzKQorICAgICAgICBpZiAoc3RhdHMpIHsKICAgICAgICAgICAgIG1lbWNweShuc19maWxlLT5zdGF0cywgc3RhdHMsIHNpemVvZigqc3RhdHMpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgc3RhdChuc19maWxlLT5uYW1lLCBuc19maWxlLT5zdGF0cyk7CisgICAgICAgIH0gZWxzZSBpZiAoc3RhdChuc19maWxlLT5uYW1lLCBuc19maWxlLT5zdGF0cykgPCAwKSB7CisgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAic3RhdCgpIGZhaWxlZCBmb3IgbnNfZmlsZVxuIik7CisgICAgICAgICAgICBuZXRzbm1wX2ZpbGVfcmVsZWFzZShuc19maWxlKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHJjID0gQ09OVEFJTkVSX0lOU0VSVChjLCBuc19maWxlKTsKQEAgLTI0MywzICsyNTQsNiBAQAogCiAgICAgcmV0dXJuIDA7CiB9CisjZWxzZSAgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DT05UQUlORVJfRElSRUNUT1JZICovCituZXRzbm1wX2ZlYXR1cmVfdW51c2VkKGNvbnRhaW5lcl9kaXJlY3RvcnkpOworI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ09OVEFJTkVSX0RJUkVDVE9SWSAqLwpkaWZmIC0tZ2l0IGEvc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMgYi9zbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYwppbmRleCAyMDQ1NGY3Li5mOWNmMDhlIDEwMDY0NAotLS0gYS9zbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYworKysgYi9zbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYwpAQCAtNCwxMiArNCwxNSBAQAogI2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4KICNlbmRpZgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9mZF9ldmVudF9tYW5hZ2VyLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoZmRfZXZlbnRfbWFuYWdlciwgbGlibmV0c25tcCkKIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0ZEX0VWRU5UX01BTkFHRVIKIGludCAgICAgZXh0ZXJuYWxfcmVhZGZkW05VTV9FWFRFUk5BTF9GRFNdLCAgIGV4dGVybmFsX3JlYWRmZGxlbiAgID0gMDsKIGludCAgICAgZXh0ZXJuYWxfd3JpdGVmZFtOVU1fRVhURVJOQUxfRkRTXSwgIGV4dGVybmFsX3dyaXRlZmRsZW4gID0gMDsKIGludCAgICAgZXh0ZXJuYWxfZXhjZXB0ZmRbTlVNX0VYVEVSTkFMX0ZEU10sIGV4dGVybmFsX2V4Y2VwdGZkbGVuID0gMDsKQEAgLTI4OSwzICsyOTIsNiBAQAogICAgICAgfQogICB9CiB9CisjZWxzZSAgLyogICFORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0ZEX0VWRU5UX01BTkFHRVIgKi8KK25ldHNubXBfZmVhdHVyZV91bnVzZWQoZmRfZXZlbnRfbWFuYWdlcik7CisjZW5kaWYgLyogICFORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0ZEX0VWRU5UX01BTkFHRVIgKi8KZGlmZiAtLWdpdCBhL3NubXBsaWIvZmlsZV91dGlscy5jIGIvc25tcGxpYi9maWxlX3V0aWxzLmMKaW5kZXggODg5ZDU1Mi4uNTI2MTQzMSAxMDA2NDQKLS0tIGEvc25tcGxpYi9maWxlX3V0aWxzLmMKKysrIGIvc25tcGxpYi9maWxlX3V0aWxzLmMKQEAgLTEsNCArMSw1IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oPgogCiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTM3LDcgKzM4LDExIEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L2ZpbGVfdXRpbHMuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGZpbGVfdXRpbHNfYWxsLCBsaWJuZXRzbm1wKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGZpbGVfdXRpbHMsIGZpbGVfdXRpbHNfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGZpbGVfY2xvc2UsIGZpbGVfdXRpbHNfYWxsKQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfRklMRV9VVElMUwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKiBQcm90b3R5cGVzCkBAIC0yMDYsNiArMjExLDcgQEAKICAqIEByZXR2YWwgIDAgOiBzdWNjZXNzCiAgKiBAcmV0dmFsIC0xIDogZXJyb3IKICAqLworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0ZJTEVfQ0xPU0UKIGludAogbmV0c25tcF9maWxlX2Nsb3NlKG5ldHNubXBfZmlsZSAqIGZpbGVpKQogewpAQCAtMjM2LDYgKzI0Miw3IEBACiAKICAgICByZXR1cm4gcmM7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9GSUxFX0NMT1NFICovCiAKIHZvaWQKIG5ldHNubXBfZmlsZV9jb250YWluZXJfZnJlZShuZXRzbm1wX2ZpbGUgKmZpbGUsIHZvaWQgKmNvbnRleHQpCkBAIC0yNTEsMyArMjU4LDYgQEAKIAogICAgIHJldHVybiBzdHJjbXAobGhzLT5uYW1lLCByaHMtPm5hbWUpOwogfQorI2Vsc2UgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9GSUxFX1VUSUxTICovCituZXRzbm1wX2ZlYXR1cmVfdW51c2VkKGZpbGVfdXRpbHMpOworI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfRklMRV9VVElMUyAqLwpkaWZmIC0tZ2l0IGEvc25tcGxpYi9nZXR0aW1lb2ZkYXkuYyBiL3NubXBsaWIvZ2V0dGltZW9mZGF5LmMKaW5kZXggM2M3NWQzYS4uZGY1YzBhMCAxMDA2NDQKLS0tIGEvc25tcGxpYi9nZXR0aW1lb2ZkYXkuYworKysgYi9zbm1wbGliL2dldHRpbWVvZmRheS5jCkBAIC0yOCw2ICsyOCw2IEBACiAKICAgICBfZnRpbWUoJnRpbWVidWZmZXIpOwogICAgIHR2LT50dl91c2VjID0gdGltZWJ1ZmZlci5taWxsaXRtICogMTAwMDsKLSAgICB0di0+dHZfc2VjID0gdGltZWJ1ZmZlci50aW1lOworICAgIHR2LT50dl9zZWMgPSAobG9uZyl0aW1lYnVmZmVyLnRpbWU7CiAgICAgcmV0dXJuICgwKTsKIH0KZGlmZiAtLWdpdCBhL3NubXBsaWIvaW50NjQuYyBiL3NubXBsaWIvaW50NjQuYwppbmRleCAyZDg2OTU5Li41MWYxZjMyIDEwMDY0NAotLS0gYS9zbm1wbGliL2ludDY0LmMKKysrIGIvc25tcGxpYi9pbnQ2NC5jCkBAIC0yMyw2ICsyMyw4IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaD4KIAorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CisKIC8qKgogICogRGl2aWRlIGFuIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIGJ5IDEwLgogICoKQEAgLTE5Nyw2ICsxOTksOCBAQAogICAgIHU2NEluY3IocHU2NG91dCwgJnRtcCk7CiB9CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih1NjRjb3B5LCBuZXRzbm1wX3VudXNlZCkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9VNjRDT1BZCiAvKioKICAqIENvcHkgYSA2NC1iaXQgbnVtYmVyLgogICoKQEAgLTIwOCw2ICsyMTIsNyBAQAogewogICAgICpwdTY0b25lID0gKnB1NjR0d287CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9VNjRDT1BZICovCiAKIC8qKgogICogU2V0IGFuIHVuc2lnbmVkIDY0LWJpdCBudW1iZXIgdG8gemVyby4KZGlmZiAtLWdpdCBhL3NubXBsaWIva2V5dG9vbHMuYyBiL3NubXBsaWIva2V5dG9vbHMuYwppbmRleCBjMWRiY2Q2Li4wY2NiM2E2IDEwMDY0NAotLS0gYS9zbm1wbGliL2tleXRvb2xzLmMKKysrIGIvc25tcGxpYi9rZXl0b29scy5jCkBAIC0xNCw2ICsxNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgpAQCAtNjIsNiArNjMsMTEgQEAKIAogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHVzbV9zdXBwb3J0LCBsaWJuZXRzbm1wKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHVzbV9rZXl0b29scywgdXNtX3N1cHBvcnQpCisKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9VU01fS0VZVE9PTFMKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiotby0qKioqKioKICAqIGdlbmVyYXRlX0t1CiAgKgpAQCAtNjUzLDggKzY1OSw3IEBACiAgICAgICAgICAgICBtZW1zZXQobmV3a2V5LCAwLCBwcm9wZXJsZW5ndGgpOwogICAgIH0KICAgICBtZW1zZXQodG1wX2J1ZiwgMCwgU05NUF9NQVhCVUYpOwotICAgIGlmICh0bXBidWYgIT0gTlVMTCkKLSAgICAgICAgU05NUF9GUkVFKHRtcGJ1Zik7CisgICAgU05NUF9GUkVFKHRtcGJ1Zik7CiAKICAgICByZXR1cm4gcnZhbDsKIApAQCAtNjYzLDMgKzY2OCw0IEBACiAjZWxzZQogX0tFWVRPT0xTX05PVF9BVkFJTEFCTEUKICNlbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW50ZXJuYWwgb3Igb3BlbnNzbCAqLworI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVVNNX0tFWVRPT0xTICovCmRpZmYgLS1naXQgYS9zbm1wbGliL2xhcmdlX2ZkX3NldC5jIGIvc25tcGxpYi9sYXJnZV9mZF9zZXQuYwppbmRleCAzYjhiNGE0Li4yOTY3ZDNjIDEwMDY0NAotLS0gYS9zbm1wbGliL2xhcmdlX2ZkX3NldC5jCisrKyBiL3NubXBsaWIvbGFyZ2VfZmRfc2V0LmMKQEAgLTEyMSwxMCArMTIxLDEwIEBACiB9CiAKIGludAotbmV0X3NubXBfbGFyZ2VfZmRfc2V0X3NlbGVjdChpbnQgbnVtZmRzLCBuZXRzbm1wX2xhcmdlX2ZkX3NldCAqcmVhZGZkcywKLSAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2xhcmdlX2ZkX3NldCAqd3JpdGVmZHMsCi0gICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9sYXJnZV9mZF9zZXQgKmV4Y2VwdGZkcywKLSAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGltZXZhbCAqdGltZW91dCkKK25ldHNubXBfbGFyZ2VfZmRfc2V0X3NlbGVjdChpbnQgbnVtZmRzLCBuZXRzbm1wX2xhcmdlX2ZkX3NldCAqcmVhZGZkcywKKyAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfbGFyZ2VfZmRfc2V0ICp3cml0ZWZkcywKKyAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfbGFyZ2VfZmRfc2V0ICpleGNlcHRmZHMsCisgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGltZXZhbCAqdGltZW91dCkKIHsKICNpZiBkZWZpbmVkKGN5Z3dpbikgfHwgIWRlZmluZWQoSEFWRV9XSU5TT0NLX0gpCiAgICAgLyogQml0LXNldCByZXByZXNlbnRhdGlvbjogbWFrZSBzdXJlIGFsbCBmZHMgaGF2ZSBhdCBsZWFzdCBzaXplICdudW1mZHMnLiAqLwpAQCAtMTc0LDEzICsxNzQsMTYgQEAKICAgICB9CiAKICNpZiBkZWZpbmVkKGN5Z3dpbikgfHwgIWRlZmluZWQoSEFWRV9XSU5TT0NLX0gpCi0gICAgeworICAgIC8qCisgICAgICogVW5peDogd2hlbiBlbmxhcmdpbmcsIGNsZWFyIHRoZSBmaWxlIGRlc2NyaXB0b3JzIGRlZmluZWQgaW4gdGhlCisgICAgICogcmVzaXplZCAqZmRzZXQgYnV0IHRoYXQgd2VyZSBub3QgZGVmaW5lZCBpbiB0aGUgb3JpZ2luYWwgKmZkc2V0LgorICAgICAqLworICAgIGlmICggZmRzZXQtPmxmc19zZXRzaXplID09IDAgJiYgc2V0c2l6ZSA9PSBGRF9TRVRTSVpFICkgeworICAgICAgICAvKiBJbiB0aGlzIGNhc2Ugd2UgY2FuIHVzZSB0aGUgT1MncyBGRF9aRVJPICovCisgICAgICAgIEZEX1pFUk8oIGZkc2V0LT5sZnNfc2V0cHRyICk7CisgICAgfSBlbHNlIHsKICAgICAgICAgaW50ICAgICAgICAgICAgIGk7CiAKLSAgICAgICAgLyoKLSAgICAgICAgICogVW5peDogd2hlbiBlbmxhcmdpbmcsIGNsZWFyIHRoZSBmaWxlIGRlc2NyaXB0b3JzIGRlZmluZWQgaW4gdGhlCi0gICAgICAgICAqIHJlc2l6ZWQgKmZkc2V0IGJ1dCB0aGF0IHdlcmUgbm90IGRlZmluZWQgaW4gdGhlIG9yaWdpbmFsICpmZHNldC4KLSAgICAgICAgICovCiAgICAgICAgIGZvciAoaSA9IGZkc2V0LT5sZnNfc2V0c2l6ZTsgaSA8IHNldHNpemU7IGkrKykKICAgICAgICAgICAgIEZEX0NMUihpLCBmZHNldC0+bGZzX3NldHB0cik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvc25tcGxpYi9sY2RfdGltZS5jIGIvc25tcGxpYi9sY2RfdGltZS5jCmluZGV4IDIyMjI5MDQuLjJiZmE1NDkgMTAwNjQ0Ci0tLSBhL3NubXBsaWIvbGNkX3RpbWUuYworKysgYi9zbm1wbGliL2xjZF90aW1lLmMKQEAgLTYsNiArNiw3IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtNTIsNiArNTMsMTEgQEAKIAogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHVzbV9zdXBwb3J0LCBsaWJuZXRzbm1wKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHVzbV9sY2RfdGltZSwgdXNtX3N1cHBvcnQpCisKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9VU01fTENEX1RJTUUKKwogLyoKICAqIEdsb2JhbCBzdGF0aWMgaGFzaGxpc3QgdG8gY29udGFpbiBFbmdpbmV0aW1lIGVudHJpZXMuCiAgKgpAQCAtOTQsNyArMTAwLDcgQEAKICAgICAgICAgICAgICAgIHVfaW50ICogZW5naW5lX3RpbWUsIHVfaW50IGF1dGhlbnRpY2F0ZWQpCiB7CiAgICAgaW50ICAgICAgICAgICAgIHJ2YWwgPSBTTk1QRVJSX1NVQ0NFU1M7Ci0gICAgdGltZV90ICAgICAgICAgIHRpbWVkaWZmID0gMDsKKyAgICBpbnQgICAgICAgICAgICAgdGltZWRpZmYgPSAwOwogICAgIEVuZ2luZXRpbWUgICAgICBlID0gTlVMTDsKIAogCkBAIC0xMjYsNyArMTMyLDcgQEAKICAgICAgICAgKmVuZ2luZV90aW1lID0gZS0+ZW5naW5lVGltZTsKICAgICAgICAgKmVuZ2luZWJvb3QgPSBlLT5lbmdpbmVCb290OwogCi0gICAgICAgdGltZWRpZmYgPSBzbm1wdjNfbG9jYWxfc25tcEVuZ2luZVRpbWUoKSAtIGUtPmxhc3RSZWNlaXZlZEVuZ2luZVRpbWU7CisgICAgICAgdGltZWRpZmYgPSAoaW50KSAoc25tcHYzX2xvY2FsX3NubXBFbmdpbmVUaW1lKCkgLSBlLT5sYXN0UmVjZWl2ZWRFbmdpbmVUaW1lKTsKIAogI2lmZGVmIExDRF9USU1FX1NZTkNfT1BUCiAgICAgfQpAQCAtMTkwLDcgKzE5Niw3IEBACiAgICAgICAgICAgICAgICAgICB1X2ludCAqIGxhc3RfZW5naW5lX3RpbWUsIHVfaW50IGF1dGhlbnRpY2F0ZWQpCiB7CiAgICAgaW50ICAgICAgICAgICAgIHJ2YWwgPSBTTk1QRVJSX1NVQ0NFU1M7Ci0gICAgdGltZV90ICAgICAgICAgIHRpbWVkaWZmID0gMDsKKyAgICBpbnQgICAgICAgICAgICAgdGltZWRpZmYgPSAwOwogICAgIEVuZ2luZXRpbWUgICAgICBlID0gTlVMTDsKIAogCkBAIC0yMjIsNyArMjI4LDcgQEAKICAgICAgICAgKmxhc3RfZW5naW5lX3RpbWUgPSAqZW5naW5lX3RpbWUgPSBlLT5lbmdpbmVUaW1lOwogICAgICAgICAqZW5naW5lYm9vdCA9IGUtPmVuZ2luZUJvb3Q7CiAKLSAgICAgICB0aW1lZGlmZiA9IHNubXB2M19sb2NhbF9zbm1wRW5naW5lVGltZSgpIC0gZS0+bGFzdFJlY2VpdmVkRW5naW5lVGltZTsKKyAgICAgICB0aW1lZGlmZiA9IChpbnQpIChzbm1wdjNfbG9jYWxfc25tcEVuZ2luZVRpbWUoKSAtIGUtPmxhc3RSZWNlaXZlZEVuZ2luZVRpbWUpOwogCiAjaWZkZWYgTENEX1RJTUVfU1lOQ19PUFQKICAgICB9CkBAIC02MDUsMyArNjExLDQgQEAKIAogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBlbmQgZHVtcF9ldGltZWxpc3QoKSAqLwogI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBORVRTTk1QX0VOQUJMRV9URVNUSU5HX0NPREUgKi8KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1VTTV9MQ0RfVElNRSAqLwpkaWZmIC0tZ2l0IGEvc25tcGxpYi9taWIuYyBiL3NubXBsaWIvbWliLmMKaW5kZXggOTYyNWQ5Ni4uYmUwZTYyNyAxMDA2NDQKLS0tIGEvc25tcGxpYi9taWIuYworKysgYi9zbm1wbGliL21pYi5jCkBAIC0zOCw2ICszOCw3IEBACiAgKiBkaXN0cmlidXRlZCB3aXRoIHRoZSBOZXQtU05NUCBwYWNrYWdlLgogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8Y3R5cGUuaD4KQEAgLTEwNCw2ICsxMDUsMTkgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L2ludDY0Lmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YobWliX2FwaSwgbGlibmV0c25tcCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihtaWJfc3RyaW5nc19hbGwsIG1pYl9hcGkpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihtaWJfc25wcmludCwgbWliX3N0cmluZ3NfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKG1pYl9zbnByaW50X2Rlc2NyaXB0aW9uLCBtaWJfc3RyaW5nc19hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YobWliX3NucHJpbnRfdmFyaWFibGUsIG1pYl9zdHJpbmdzX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihtaWJfc3RyaW5nX2NvbnZlcnNpb25zLCBtaWJfc3RyaW5nc19hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YocHJpbnRfbWliLCBtaWJfc3RyaW5nc19hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yoc25wcmludF9vYmppZCwgbWliX3N0cmluZ3NfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHNucHJpbnRfdmFsdWUsIG1pYl9zdHJpbmdzX2FsbCkKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKG1pYl90b19hc25fdHlwZSwgbWliX2FwaSkKKwogLyoqIEBkZWZncm91cCBtaWJfdXRpbGl0aWVzIG1pYiBwYXJzaW5nIGFuZCBkYXRhdHlwZSBtYW5pcHVsYXRpb24gcm91dGluZXMuCiAgKiAgQGluZ3JvdXAgbGlicmFyeQogICoKQEAgLTI4OTgsNyArMjkxMiw2IEBACiAgICAgICAgIGlmICh0cmVlX3RvcC0+bGFiZWwpCiAgICAgICAgICAgICBTTk1QX0ZSRUUodHJlZV90b3AtPmxhYmVsKTsKICAgICAgICAgU05NUF9GUkVFKHRyZWVfdG9wKTsKLSAgICAgICAgdHJlZV90b3AgPSBOVUxMOwogICAgIH0KICAgICB0cmVlX2hlYWQgPSBOVUxMOwogICAgIE1pYiA9IE5VTEw7CkBAIC0yOTI0LDExICsyOTM3LDEzIEBACiAgKgogICogQHBhcmFtIGZwICAgVGhlIGZpbGUgZGVzY3JpcHRvciB0byBwcmludCB0by4KICAqLworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1BSSU5UX01JQgogdm9pZAogcHJpbnRfbWliKEZJTEUgKiBmcCkKIHsKICAgICBwcmludF9zdWJ0cmVlKGZwLCB0cmVlX2hlYWQsIDApOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUFJJTlRfTUlCICovCiAKIHZvaWQKIHByaW50X2FzY2lpX2R1bXAoRklMRSAqIGZwKQpAQCAtMzMwOSw2ICszMzI0LDcgQEAKICAgICByZXR1cm4gIWJ1Zl9vdmVyZmxvdzsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NQUklOVF9PQkpJRAogaW50CiBzbnByaW50X29iamlkKGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1Zl9sZW4sCiAgICAgICAgICAgICAgIGNvbnN0IG9pZCAqIG9iamlkLCBzaXplX3Qgb2JqaWRsZW4pCkBAIC0zMzIyLDYgKzMzMzgsNyBAQAogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU1BSSU5UX09CSklEICovCiAKIC8qKgogICogUHJpbnRzIGFuIG9pZCB0byBzdGRvdXQuCkBAIC0zNDU5LDYgKzM0NzYsNyBAQAogICAgIH0KIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NOUFJJTlRfVkFSQUJMRQogaW50CiBzbnByaW50X3ZhcmlhYmxlKGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1Zl9sZW4sCiAgICAgICAgICAgICAgICAgIGNvbnN0IG9pZCAqIG9iamlkLCBzaXplX3Qgb2JqaWRsZW4sCkBAIC0zNDczLDYgKzM0OTEsNyBAQAogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU05QUklOVF9WQVJBQkxFICovCiAKIC8qKgogICogUHJpbnRzIGEgdmFyaWFibGUgdG8gc3Rkb3V0LgpAQCAtMzU2Nyw2ICszNTg2LDggQEAKICAgICB9CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TTlBSSU5UX1ZBTFVFCisvKiB1c2VkIGluIHRoZSBwZXJsIG1vZHVsZSAqLwogaW50CiBzbnByaW50X3ZhbHVlKGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1Zl9sZW4sCiAgICAgICAgICAgICAgIGNvbnN0IG9pZCAqIG9iamlkLCBzaXplX3Qgb2JqaWRsZW4sCkBAIC0zNTgxLDYgKzM2MDIsNyBAQAogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU05QUklOVF9WQUxVRSAqLwogCiB2b2lkCiBwcmludF92YWx1ZShjb25zdCBvaWQgKiBvYmppZCwKQEAgLTQ2ODQsNiArNDcwNiw3IEBACiAgICAgU05NUF9GUkVFKGJ1Zik7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9NSUJfU05QUklOVF9ERVNDUklQVElPTgogaW50CiBzbnByaW50X2Rlc2NyaXB0aW9uKGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1Zl9sZW4sCiAgICAgICAgICAgICAgICAgICAgIG9pZCAqIG9iamlkLCBzaXplX3Qgb2JqaWRsZW4sIGludCB3aWR0aCkKQEAgLTQ2OTcsNiArNDcyMCw3IEBACiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9NSUJfU05QUklOVF9ERVNDUklQVElPTiAqLwogCiBpbnQKIHNwcmludF9yZWFsbG9jX2Rlc2NyaXB0aW9uKHVfY2hhciAqKiBidWYsIHNpemVfdCAqIGJ1Zl9sZW4sCkBAIC02MDEyLDcgKzYwMzYsNiBAQAogCiAvKioKICAqIENvbnZlcnRzIHRpbWV0aWNrcyB0byBob3VycywgbWludXRlcywgc2Vjb25kcyBzdHJpbmcuCi0gKiBDTVUgY29tcGF0aWJsZSBkb2VzIG5vdCBzaG93IGNlbnRpc2Vjb25kcy4KICAqCiAgKiBAcGFyYW0gdGltZXRpY2tzICAgIFRoZSB0aW1ldGlja3MgdG8gY29udmVydC4KICAqIEBwYXJhbSBidWYgICAgICAgICAgQnVmZmVyIHRvIHdyaXRlIHRvLCBoYXMgdG8gYmUgYXQgCkBAIC02MDMyLDEzICs2MDU1LDYgQEAKIHVwdGltZV9zdHJpbmdfbih1X2xvbmcgdGltZXRpY2tzLCBjaGFyICpidWYsIHNpemVfdCBidWZsZW4pCiB7CiAgICAgdXB0aW1lU3RyaW5nKHRpbWV0aWNrcywgYnVmLCBidWZsZW4pOwotI2lmZGVmIENNVV9DT01QQVRJQkxFCi0gICAgewotICAgIGNoYXIgKmNwID0gc3RycmNocihidWYsICcuJyk7Ci0gICAgaWYgKGNwKQotICAgICAgICAqY3AgPSAnXDAnOwotICAgIH0KLSNlbmRpZgogICAgIHJldHVybiBidWY7CiB9CiAKQEAgLTYzOTEsNiArNjQwNyw3IEBACiAKICNlbmRpZiAvKiB0ZXN0X2Rpc3BsYXlfaGludCAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTUlCX1RPX0FTTl9UWVBFCiB1X2NoYXIKIG1pYl90b19hc25fdHlwZShpbnQgbWliX3R5cGUpCiB7CkBAIC02NDQwLDYgKzY0NTcsNyBAQAogICAgIH0KICAgICByZXR1cm4gLTE7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9NSUJfVE9fQVNOX1RZUEUgKi8KIAogLyoqCiAgKiBDb252ZXJ0cyBhIHN0cmluZyB0byBpdHMgT0lEIGZvcm0uCkBAIC02NDUxLDYgKzY0NjksNyBAQAogICoKICAqIEByZXR1cm4gMCBvbiBTdWNlc3MsIDEgb24gZmFpbHVyZS4KICAqLworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX01JQl9TVFJJTkdfQ09OVkVSU0lPTlMKIGludAogbmV0c25tcF9zdHIyb2lkKGNvbnN0IGNoYXIgKlMsIG9pZCAqIE8sIGludCBMKQogewpAQCAtNjUzMCw3ICs2NTQ5LDEwIEBACiAKICAgICByZXR1cm4gMDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX01JQl9TVFJJTkdfQ09OVkVSU0lPTlMgKi8KIAorCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTUlCX1NOUFJJTlQKIGludAogc25wcmludF9ieV90eXBlKGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1Zl9sZW4sCiAgICAgICAgICAgICAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0ICogdmFyLApAQCAtNjgwOCw1ICs2ODMwLDYgQEAKICAgICAgICAgcmV0dXJuIC0xOwogfQogI2VuZGlmCisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9NSUJfU05QUklOVCAqLwogLyoqIEB9ICovCiAKZGlmZiAtLWdpdCBhL3NubXBsaWIvb2lkX3N0YXNoLmMgYi9zbm1wbGliL29pZF9zdGFzaC5jCmluZGV4IDg2MGFiYWIuLjhhNzk4OTcgMTAwNjQ0Ci0tLSBhL3NubXBsaWIvb2lkX3N0YXNoLmMKKysrIGIvc25tcGxpYi9vaWRfc3Rhc2guYwpAQCAtNSw4ICs1LDE1IEBACiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAKKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihvaWRfc3Rhc2hfYWxsLCBsaWJuZXRzbm1wKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKG9pZF9zdGFzaCwgb2lkX3N0YXNoX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihvaWRfc3Rhc2hfbm9fZnJlZSwgb2lkX3N0YXNoX2FsbCkKKworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX09JRF9TVEFTSAorCiAvKiogQGRlZmdyb3VwIG9pZF9zdGFzaCBTdG9yZSBhbmQgcmV0cmlldmUgZGF0YSByZWZlcmVuY2VkIGJ5IGFuIE9JRC4KICAgICBUaGlzIGlzIGVzc2VudGlhbGx5IGEgd2F5IG9mIHN0b3JpbmcgZGF0YSBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbgogICAgIE9JRC4gIEl0IHN0b3JlcyBhIGJ1bmNoIG9mIGRhdGEgcG9pbnRlcnMgd2l0aGluIGEgbWVtb3J5IHRyZWUgdGhhdApAQCAtNjgsNiArNzUsOCBAQAogICAgIHJldHVybiBuZXRzbm1wX29pZF9zdGFzaF9jcmVhdGVfc2l6ZWRfbm9kZShPSURfU1RBU0hfQ0hJTERSRU5fU0laRSk7CiB9CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihvaWRfc3Rhc2hfYWRkX2RhdGEsIG9pZF9zdGFzaF9hbGwpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfT0lEX1NUQVNIX0FERF9EQVRBCiAvKiogYWRkcyBkYXRhIHRvIHRoZSBzdGFzaCBhdCBhIGdpdmVuIG9pZC4KIAogICogQHBhcmFtIHJvb3QgdGhlIHRvcCBvZiB0aGUgc3Rhc2ggdHJlZQpAQCAtMTQ0LDYgKzE1Myw3IEBACiAgICAgdG1wcC0+dGhlZGF0YSA9IG15ZGF0YTsKICAgICByZXR1cm4gU05NUEVSUl9TVUNDRVNTOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfT0lEX1NUQVNIX0FERF9EQVRBICovCiAKIC8qKiByZXR1cm5zIGEgbm9kZSBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBPSUQuCiAgKiBAcGFyYW0gcm9vdCB0aGUgdG9wIG9mIHRoZSBzdGFzaCB0cmVlCkBAIC0xODcsNiArMTk3LDggQEAKICAqIEBwYXJhbSBsb29rdXAgdGhlIG9pZCB0byBsb29rIHVwIGEgbm9kZSBmb3IuCiAgKiBAcGFyYW0gbG9va3VwX2xlbiB0aGUgbGVuZ3RoIG9mIHRoZSBsb29rdXAgb2lkCiAgKi8KK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihvaWRfc3Rhc2hfaXRlcmF0ZSwgb2lkX3N0YXNoX2FsbCkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9PSURfU1RBU0hfSVRFUkFURQogbmV0c25tcF9vaWRfc3Rhc2hfbm9kZSAqCiBuZXRzbm1wX29pZF9zdGFzaF9nZXRuZXh0X25vZGUobmV0c25tcF9vaWRfc3Rhc2hfbm9kZSAqcm9vdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvaWQgKiBsb29rdXAsIHNpemVfdCBsb29rdXBfbGVuKQpAQCAtMjY4LDcgKzI4MCwxMCBAQAogICAgIC8qIGZlbGwgb2ZmIHRoZSB0b3AgKi8KICAgICByZXR1cm4gTlVMTDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX09JRF9TVEFTSF9JVEVSQVRFICovCiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihvaWRfc3Rhc2hfZ2V0X2RhdGEsIG9pZF9zdGFzaF9hbGwpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfT0lEX1NUQVNIX0dFVF9EQVRBCiAvKiogcmV0dXJucyBhIGRhdGEgcG9pbnRlciBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBPSUQuCiAKICAgICBUaGlzIGlzIGVxdWl2ZWxlbnQgdG8gbmV0c25tcF9vaWRfc3Rhc2hfZ2V0X25vZGUsIGJ1dCByZXR1cm5zIG9ubHkKQEAgLTI4OCw3ICszMDMsMTAgQEAKICAgICAgICAgcmV0dXJuIHJldC0+dGhlZGF0YTsKICAgICByZXR1cm4gTlVMTDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX09JRF9TVEFTSF9HRVRfREFUQSAqLwogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yob2lkX3N0YXNoX3N0b3JlX2FsbCwgb2lkX3N0YXNoX2FsbCkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9PSURfU1RBU0hfU1RPUkVfQUxMCiAvKiogYSB3cmFwcGVyIGFyb3VuZCBuZXRzbm1wX29pZF9zdGFzaF9zdG9yZSBmb3IgdXNlIHdpdGggYSBzbm1wX2FsYXJtLgogICogd2hlbiBjYWxsaW5nIHNubXBfYWxhcm0sIHlvdSBjYW4gbGlzdCB0aGlzIGFzIGEgY2FsbGJhY2suICBUaGUKICAqIGNsaWVudGFyZyBzaG91bGQgYmUgYSBwb2ludGVyIHRvIGEgbmV0c25tcF9vaWRfc3Rhc2hfc2F2ZV9pbmZvCkBAIC0zMTQsNiArMzMyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvaWRiYXNlLDApOwogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfT0lEX1NUQVNIX1NUT1JFX0FMTCAqLwogCiAvKiogc3RvcmVzIGRhdGEgaW4gYSBzdGFyc2ggdHJlZSB0byBwZXJpc3RlbnQgc3RvcmFnZS4KIApAQCAtNDI3LDEwICs0NDYsMTYgQEAKICAgICAqcm9vdCA9IE5VTEw7CiB9CiAKKyNlbHNlIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfT0lEX1NUQVNIICovCituZXRzbm1wX2ZlYXR1cmVfdW51c2VkKG9pZF9zdGFzaCk7CisjZW5kaWYvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX09JRF9TVEFTSCAqLworCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfT0lEX1NUQVNIX05PX0ZSRUUKIHZvaWQKIG5ldHNubXBfb2lkX3N0YXNoX25vX2ZyZWUodm9pZCAqYm9ndXMpCiB7CiAgICAgLyogbm9vcCAqLwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfT0lEX1NUQVNIX05PX0ZSRUUgKi8KIAogLyoqIEB9ICovCmRpZmYgLS1naXQgYS9zbm1wbGliL3BhcnNlLmMgYi9zbm1wbGliL3BhcnNlLmMKaW5kZXggODE3Yzg5Ny4uNGQ0NGQ4OCAxMDA2NDQKLS0tIGEvc25tcGxpYi9wYXJzZS5jCisrKyBiL3NubXBsaWIvcGFyc2UuYwpAQCAtMzMsNiArMzMsNyBAQAogICogZGlzdHJpYnV0ZWQgd2l0aCB0aGUgTmV0LVNOTVAgcGFja2FnZS4KICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HCiAKQEAgLTEwNiw2ICsxMDcsMTAgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3BhcnNlLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9taWIuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS90b29scy5oPgorCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoZmluZF9tb2R1bGUsIG1pYl9hcGkpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoZ2V0X3RjX2Rlc2NyaXB0aW9uLCBtaWJfYXBpKQogCiAvKgogICogQSBsaW5rZWQgbGlzdCBvZiBub2Rlcy4KQEAgLTUyOSw3ICs1MzQsMTEgQEAKICAqICNkZWZpbmUgTU9EVUxFX0xPQURfRkFJTEVEICAgMyAgICAgICAKICAqLwogI2RlZmluZSBNT0RVTEVfTE9BRF9GQUlMRUQJTU9EVUxFX05PVF9GT1VORAorI2RlZmluZSBNT0RVTEVfU1lOVEFYX0VSUk9SICAgICA0CiAKK2ludCBnTWliRXJyb3IgPSAwLGdMb29wID0gMDsKK2NoYXIgKmdwTWliRXJyb3JTdHJpbmcgPSBOVUxMOworY2hhciBnTWliTmFtZXNbU1RSSU5HTUFYXTsKIAogI2RlZmluZSBIQVNIU0laRSAgICAgICAgMzIKICNkZWZpbmUgQlVDS0VUKHgpICAgICAgICh4ICYgKEhBU0hTSVpFLTEpKQpAQCAtNzc0LDExICs3ODMsMTQgQEAKIAogc3RhdGljIGludCAgICAgIGVycm9uZW91c01pYnMgPSAwOwogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YocGFyc2VfZ2V0X2Vycm9yX2NvdW50LCBuZXRzbm1wX3VudXNlZCkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9QQVJTRV9HRVRfRVJST1JfQ09VTlQKIGludAogZ2V0X21pYl9wYXJzZV9lcnJvcl9jb3VudCh2b2lkKQogewogICAgIHJldHVybiBlcnJvbmVvdXNNaWJzOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUEFSU0VfR0VUX0VSUk9SX0NPVU5UICovCiAKIAogc3RhdGljIHZvaWQKQEAgLTkwNiw5ICs5MTgsOSBAQAogCiAgICAgdW5saW5rX3RidWNrZXQoVHJlZSk7CiAgICAgZnJlZV9wYXJ0aWFsX3RyZWUoVHJlZSwgRkFMU0UpOwotICAgIGlmIChUcmVlLT5udW1iZXJfbW9kdWxlcyA+IDEpCi0gICAgICAgIGZyZWUoKGNoYXIgKikgVHJlZS0+bW9kdWxlX2xpc3QpOwotICAgIGZyZWUoKGNoYXIgKikgVHJlZSk7CisgICAgaWYgKFRyZWUtPm1vZHVsZV9saXN0ICE9ICZUcmVlLT5tb2RpZCkKKyAgICAgICAgZnJlZShUcmVlLT5tb2R1bGVfbGlzdCk7CisgICAgZnJlZShUcmVlKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTE1NTksMTUgKzE1NzEsMTQgQEAKICAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICAqIFVwZGF0ZSBsaXN0IG9mIG1vZHVsZXMgCiAgICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgaW50X3AgPQotICAgICAgICAgICAgICAgICAgICAoaW50ICopIG1hbGxvYygodHAtPm51bWJlcl9tb2R1bGVzICsgMSkgKiBzaXplb2YoaW50KSk7CisgICAgICAgICAgICAgICAgaW50X3AgPSBtYWxsb2MoKHRwLT5udW1iZXJfbW9kdWxlcyArIDEpICogc2l6ZW9mKGludCkpOwogICAgICAgICAgICAgICAgIGlmIChpbnRfcCA9PSBOVUxMKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgbWVtY3B5KGludF9wLCB0cC0+bW9kdWxlX2xpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgIHRwLT5udW1iZXJfbW9kdWxlcyAqIHNpemVvZihpbnQpKTsKICAgICAgICAgICAgICAgICBpbnRfcFt0cC0+bnVtYmVyX21vZHVsZXNdID0gbnAtPm1vZGlkOwotICAgICAgICAgICAgICAgIGlmICh0cC0+bnVtYmVyX21vZHVsZXMgPiAxKQotICAgICAgICAgICAgICAgICAgICBmcmVlKChjaGFyICopIHRwLT5tb2R1bGVfbGlzdCk7CisgICAgICAgICAgICAgICAgaWYgKHRwLT5tb2R1bGVfbGlzdCAhPSAmdHAtPm1vZGlkKQorICAgICAgICAgICAgICAgICAgICBmcmVlKHRwLT5tb2R1bGVfbGlzdCk7CiAgICAgICAgICAgICAgICAgKyt0cC0+bnVtYmVyX21vZHVsZXM7CiAgICAgICAgICAgICAgICAgdHAtPm1vZHVsZV9saXN0ID0gaW50X3A7CiAKQEAgLTIxNDAsNiArMjE1MSw4IEBACiAgICAgcmV0dXJuICh0Y2xpc3RbdGNfaW5kZXhdLmRlc2NyaXB0b3IpOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfR0VUX1RDX0RFU0NSSVBUSU9OCisvKiB1c2VkIGluIHRoZSBwZXJsIG1vZHVsZSAqLwogY29uc3QgY2hhciAgICAgKgogZ2V0X3RjX2Rlc2NyaXB0aW9uKGludCB0Y19pbmRleCkKIHsKQEAgLTIxNDcsNiArMjE2MCw3IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIHJldHVybiAodGNsaXN0W3RjX2luZGV4XS5kZXNjcmlwdGlvbik7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9HRVRfVENfREVTQ1JJUFRJT04gKi8KIAogCiAvKgpAQCAtMjk3NSw2ICsyOTg5LDE1IEBACiAgICAgICAgIGZyZWVfbm9kZShucCk7CiAgICAgICAgIHJldHVybiAoTlVMTCk7CiAgICAgfQorCisgICAgLyogQ2F0Y2ggdGhlIHN5bnRheCBlcnJvciAqLworICAgIGlmIChucC0+cGFyZW50ID09IE5VTEwpIHsKKyAgICAgICAgZnJlZV9ub2RlKG5wLT5uZXh0KTsKKyAgICAgICAgZnJlZV9ub2RlKG5wKTsKKyAgICAgICAgZ01pYkVycm9yID0gTU9EVUxFX1NZTlRBWF9FUlJPUjsKKyAgICAgICAgcmV0dXJuIChOVUxMKTsKKyAgICB9CisKICAgICBucC0+bmV4dC0+cGFyZW50ID0gbnAtPnBhcmVudDsKICAgICBucC0+cGFyZW50ID0gKGNoYXIgKikgbWFsbG9jKHN0cmxlbihucC0+cGFyZW50KSArIDIpOwogICAgIGlmIChucC0+cGFyZW50ID09IE5VTEwpIHsKQEAgLTM3NTQsNiArMzc3Nyw4IEBACiAgKiAgICAgIG9yIHRob3NlIHJlbGF0aW5nIHRvIGEgc3BlY2lmaWVkIGlkZW50aWZpZXIgKHJlYWRfaW1wb3J0X3JlcGxhY2VtZW50cykKICAqICAgICAgcGx1cyBhbiBpbnRlcmZhY2UgdG8gYWRkIG5ldyByZXBsYWNlbWVudCByZXF1aXJlbWVudHMKICAqLworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHBhcnNlX2FkZF9tb2R1bGVfcmVwbGFjZW1lbnQsIG5ldHNubXBfdW51c2VkKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1BBUlNFX0FERF9NT0RVTEVfUkVQTEFDRU1FTlQKIHZvaWQKIGFkZF9tb2R1bGVfcmVwbGFjZW1lbnQoY29uc3QgY2hhciAqb2xkX21vZHVsZSwKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmV3X21vZHVsZV9uYW1lLApAQCAtMzc3NSw2ICszODAwLDcgQEAKICAgICBtY3AtPm5leHQgPSBtb2R1bGVfbWFwX2hlYWQ7CiAgICAgbW9kdWxlX21hcF9oZWFkID0gbWNwOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUEFSU0VfQUREX01PRFVMRV9SRVBMQUNFTUVOVCAqLwogCiBzdGF0aWMgaW50CiByZWFkX21vZHVsZV9yZXBsYWNlbWVudHMoY29uc3QgY2hhciAqbmFtZSkKQEAgLTM4NTAsNiArMzg3Niw3IEBACiB7CiAgICAgc3RydWN0IG1vZHVsZSAgKm1wOwogICAgIEZJTEUgICAgICAgICAgICpmcDsKKyAgICBzdHJ1Y3Qgbm9kZSAgICAqbnA7CiAKICAgICBuZXRzbm1wX2luaXRfbWliX2ludGVybmFscygpOwogCkBAIC0zODY1LDkgKzM4OTIsMTcgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gTU9EVUxFX0FMUkVBRFlfTE9BREVEOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKChmcCA9IGZvcGVuKG1wLT5maWxlLCAiciIpKSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgaW50IHJ2YWw7CisgICAgICAgICAgICAgICAgaWYgKGVycm5vID09IEVOT1RESVIgfHwgZXJybm8gPT0gRU5PRU5UKQorICAgICAgICAgICAgICAgICAgICBydmFsID0gTU9EVUxFX05PVF9GT1VORDsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJ2YWwgPSBNT0RVTEVfTE9BRF9GQUlMRUQ7CiAgICAgICAgICAgICAgICAgc25tcF9sb2dfcGVycm9yKG1wLT5maWxlKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gTU9EVUxFX0xPQURfRkFJTEVEOworICAgICAgICAgICAgICAgIHJldHVybiBydmFsOwogICAgICAgICAgICAgfQorI2lmZGVmIEhBVkVfRkxPQ0tGSUxFCisgICAgICAgICAgICBmbG9ja2ZpbGUoZnApOworI2VuZGlmCiAgICAgICAgICAgICBtcC0+bm9faW1wb3J0cyA9IDA7IC8qIE5vdGUgdGhhdCB3ZSd2ZSByZWFkIHRoZSBmaWxlICovCiAgICAgICAgICAgICBGaWxlID0gbXAtPmZpbGU7CiAgICAgICAgICAgICBtaWJMaW5lID0gMTsKQEAgLTM4NzUsMTEgKzM5MTAsMTYgQEAKICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgKiBQYXJzZSB0aGUgZmlsZQogICAgICAgICAgICAgICovCi0gICAgICAgICAgICBwYXJzZShmcCwgTlVMTCk7CisgICAgICAgICAgICBucCA9IHBhcnNlKGZwLCBOVUxMKTsKKyNpZmRlZiBIQVZFX0ZVTkxPQ0tGSUxFCisgICAgICAgICAgICBmdW5sb2NrZmlsZShmcCk7CisjZW5kaWYKICAgICAgICAgICAgIGZjbG9zZShmcCk7CiAgICAgICAgICAgICBGaWxlID0gb2xkRmlsZTsKICAgICAgICAgICAgIG1pYkxpbmUgPSBvbGRMaW5lOwogICAgICAgICAgICAgY3VycmVudF9tb2R1bGUgPSBvbGRNb2R1bGU7CisgICAgICAgICAgICBpZiAoKG5wID09IE5VTEwpICYmIChnTWliRXJyb3IgPT0gTU9EVUxFX1NZTlRBWF9FUlJPUikgKQorICAgICAgICAgICAgICAgIHJldHVybiBNT0RVTEVfU1lOVEFYX0VSUk9SOwogICAgICAgICAgICAgcmV0dXJuIE1PRFVMRV9MT0FERURfT0s7CiAgICAgICAgIH0KIApAQCAtMzk2OCw5ICs0MDA4LDIwIEBACiBzdHJ1Y3QgdHJlZSAgICAqCiBuZXRzbm1wX3JlYWRfbW9kdWxlKGNvbnN0IGNoYXIgKm5hbWUpCiB7Ci0gICAgaWYgKHJlYWRfbW9kdWxlX2ludGVybmFsKG5hbWUpID09IE1PRFVMRV9OT1RfRk9VTkQpCisgICAgaW50IHN0YXR1cyA9IDA7CisgICAgc3RhdHVzID0gcmVhZF9tb2R1bGVfaW50ZXJuYWwobmFtZSk7CisKKyAgICBpZiAoc3RhdHVzID09IE1PRFVMRV9OT1RfRk9VTkQpIHsKICAgICAgICAgaWYgKCFyZWFkX21vZHVsZV9yZXBsYWNlbWVudHMobmFtZSkpCi0JICAgIHByaW50X21vZHVsZV9ub3RfZm91bmQobmFtZSk7CisgICAgICAgICAgICBwcmludF9tb2R1bGVfbm90X2ZvdW5kKG5hbWUpOworICAgIH0gZWxzZSBpZiAoc3RhdHVzID09IE1PRFVMRV9TWU5UQVhfRVJST1IpIHsKKyAgICAgICAgZ01pYkVycm9yID0gMDsKKyAgICAgICAgZ0xvb3AgPSAxOworCisgICAgICAgIHN0cm5jYXQoZ01pYk5hbWVzLCAiICIsIHNpemVvZihnTWliTmFtZXMpIC0gc3RybGVuKGdNaWJOYW1lcykgLSAxKTsKKyAgICAgICAgc3RybmNhdChnTWliTmFtZXMsIG5hbWUsIHNpemVvZihnTWliTmFtZXMpIC0gc3RybGVuKGdNaWJOYW1lcykgLSAxKTsKKyAgICB9CisKICAgICByZXR1cm4gdHJlZV9oZWFkOwogfQogCkBAIC00MjkwLDYgKzQzNDEsNyBAQAogICAgICAgICBjYXNlIEVORDoKICAgICAgICAgICAgIGlmIChzdGF0ZSAhPSBJTl9NSUIpIHsKICAgICAgICAgICAgICAgICBwcmludF9lcnJvcigiRXJyb3IsIEVORCBiZWZvcmUgc3RhcnQgb2YgTUlCIiwgTlVMTCwgdHlwZSk7CisgICAgICAgICAgICAgICAgZ01pYkVycm9yID0gTU9EVUxFX1NZTlRBWF9FUlJPUjsKICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgc3RydWN0IG1vZHVsZSAgKm1wOwpAQCAtNDM1Myw2ICs0NDA1LDcgQEAKICAgICAgICAgICAgICAgICBubnAgPSBwYXJzZV9tYWNybyhmcCwgbmFtZSk7CiAgICAgICAgICAgICAgICAgaWYgKG5ucCA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgICAgIHByaW50X2Vycm9yKCJCYWQgcGFyc2Ugb2YgTUFDUk8iLCBOVUxMLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgZ01pYkVycm9yID0gTU9EVUxFX1NZTlRBWF9FUlJPUjsKICAgICAgICAgICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAgICAgICAgICogcmV0dXJuIE5VTEw7CiAgICAgICAgICAgICAgICAgICAgICAqLwpAQCAtNDM3Niw2ICs0NDI5LDcgQEAKICAgICAgICAgICAgICAgICB0eXBlID0gZ2V0X3Rva2VuKGZwLCB0b2tlbiwgTUFYVE9LRU4pOwogICAgICAgICAgICAgaWYgKHR5cGUgPT0gRU5ET0ZGSUxFKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRfZXJyb3IoIkV4cGVjdGVkIFwifVwiIiwgdG9rZW4sIHR5cGUpOworICAgICAgICAgICAgICAgIGdNaWJFcnJvciA9IE1PRFVMRV9TWU5UQVhfRVJST1I7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB0eXBlID0gZ2V0X3Rva2VuKGZwLCB0b2tlbiwgTUFYVE9LRU4pOwpAQCAtNDM4NSw2ICs0NDM5LDcgQEAKICAgICAgICAgY2FzZSBERUZJTklUSU9OUzoKICAgICAgICAgICAgIGlmIChzdGF0ZSAhPSBCRVRXRUVOX01JQlMpIHsKICAgICAgICAgICAgICAgICBwcmludF9lcnJvcigiRXJyb3IsIG5lc3RlZCBNSUJTIiwgTlVMTCwgdHlwZSk7CisgICAgICAgICAgICAgICAgZ01pYkVycm9yID0gTU9EVUxFX1NZTlRBWF9FUlJPUjsKICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHN0YXRlID0gSU5fTUlCOwpAQCAtNDQwOSw2ICs0NDY0LDcgQEAKICAgICAgICAgICAgIG5ucCA9IHBhcnNlX29iamVjdHR5cGUoZnAsIG5hbWUpOwogICAgICAgICAgICAgaWYgKG5ucCA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRfZXJyb3IoIkJhZCBwYXJzZSBvZiBPQkpFQ1QtVFlQRSIsIE5VTEwsIHR5cGUpOworICAgICAgICAgICAgICAgIGdNaWJFcnJvciA9IE1PRFVMRV9TWU5UQVhfRVJST1I7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTQ0MTYsNiArNDQ3Miw3IEBACiAgICAgICAgICAgICBubnAgPSBwYXJzZV9vYmplY3Rncm91cChmcCwgbmFtZSwgT0JKRUNUUywgJm9iamVjdHMpOwogICAgICAgICAgICAgaWYgKG5ucCA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRfZXJyb3IoIkJhZCBwYXJzZSBvZiBPQkpFQ1QtR1JPVVAiLCBOVUxMLCB0eXBlKTsKKyAgICAgICAgICAgICAgICBnTWliRXJyb3IgPSBNT0RVTEVfU1lOVEFYX0VSUk9SOwogICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC00NDIzLDYgKzQ0ODAsNyBAQAogICAgICAgICAgICAgbm5wID0gcGFyc2Vfb2JqZWN0Z3JvdXAoZnAsIG5hbWUsIE5PVElGSUNBVElPTlMsICZub3RpZnMpOwogICAgICAgICAgICAgaWYgKG5ucCA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRfZXJyb3IoIkJhZCBwYXJzZSBvZiBOT1RJRklDQVRJT04tR1JPVVAiLCBOVUxMLCB0eXBlKTsKKyAgICAgICAgICAgICAgICBnTWliRXJyb3IgPSBNT0RVTEVfU1lOVEFYX0VSUk9SOwogICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC00NDMwLDYgKzQ0ODgsNyBAQAogICAgICAgICAgICAgbm5wID0gcGFyc2VfdHJhcERlZmluaXRpb24oZnAsIG5hbWUpOwogICAgICAgICAgICAgaWYgKG5ucCA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRfZXJyb3IoIkJhZCBwYXJzZSBvZiBUUkFQLVRZUEUiLCBOVUxMLCB0eXBlKTsKKyAgICAgICAgICAgICAgICBnTWliRXJyb3IgPSBNT0RVTEVfU1lOVEFYX0VSUk9SOwogICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC00NDM3LDYgKzQ0OTYsNyBAQAogICAgICAgICAgICAgbm5wID0gcGFyc2Vfbm90aWZpY2F0aW9uRGVmaW5pdGlvbihmcCwgbmFtZSk7CiAgICAgICAgICAgICBpZiAobm5wID09IE5VTEwpIHsKICAgICAgICAgICAgICAgICBwcmludF9lcnJvcigiQmFkIHBhcnNlIG9mIE5PVElGSUNBVElPTi1UWVBFIiwgTlVMTCwgdHlwZSk7CisgICAgICAgICAgICAgICAgZ01pYkVycm9yID0gTU9EVUxFX1NZTlRBWF9FUlJPUjsKICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDQ0NCw2ICs0NTA0LDcgQEAKICAgICAgICAgICAgIG5ucCA9IHBhcnNlX2NvbXBsaWFuY2UoZnAsIG5hbWUpOwogICAgICAgICAgICAgaWYgKG5ucCA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRfZXJyb3IoIkJhZCBwYXJzZSBvZiBNT0RVTEUtQ09NUExJQU5DRSIsIE5VTEwsIHR5cGUpOworICAgICAgICAgICAgICAgIGdNaWJFcnJvciA9IE1PRFVMRV9TWU5UQVhfRVJST1I7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTQ0NTEsNiArNDUxMiw3IEBACiAgICAgICAgICAgICBubnAgPSBwYXJzZV9jYXBhYmlsaXRpZXMoZnAsIG5hbWUpOwogICAgICAgICAgICAgaWYgKG5ucCA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRfZXJyb3IoIkJhZCBwYXJzZSBvZiBBR0VOVC1DQVBBQklMSVRJRVMiLCBOVUxMLCB0eXBlKTsKKyAgICAgICAgICAgICAgICBnTWliRXJyb3IgPSBNT0RVTEVfU1lOVEFYX0VSUk9SOwogICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC00NDU4LDYgKzQ1MjAsNyBAQAogICAgICAgICAgICAgbm5wID0gcGFyc2VfbWFjcm8oZnAsIG5hbWUpOwogICAgICAgICAgICAgaWYgKG5ucCA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRfZXJyb3IoIkJhZCBwYXJzZSBvZiBNQUNSTyIsIE5VTEwsIHR5cGUpOworICAgICAgICAgICAgICAgIGdNaWJFcnJvciA9IE1PRFVMRV9TWU5UQVhfRVJST1I7CiAgICAgICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAgICAgKiByZXR1cm4gTlVMTDsKICAgICAgICAgICAgICAgICAgKi8KQEAgLTQ0NjksNiArNDUzMiw3IEBACiAgICAgICAgICAgICBubnAgPSBwYXJzZV9tb2R1bGVJZGVudGl0eShmcCwgbmFtZSk7CiAgICAgICAgICAgICBpZiAobm5wID09IE5VTEwpIHsKICAgICAgICAgICAgICAgICBwcmludF9lcnJvcigiQmFkIHBhcnNlIG9mIE1PRFVMRS1JREVOVElUWSIsIE5VTEwsIHR5cGUpOworICAgICAgICAgICAgICAgIGdNaWJFcnJvciA9IE1PRFVMRV9TWU5UQVhfRVJST1I7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTQ0NzYsNiArNDU0MCw3IEBACiAgICAgICAgICAgICBubnAgPSBwYXJzZV9vYmplY3Rncm91cChmcCwgbmFtZSwgT0JKRUNUUywgJm9iamVjdHMpOwogICAgICAgICAgICAgaWYgKG5ucCA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRfZXJyb3IoIkJhZCBwYXJzZSBvZiBPQkpFQ1QtSURFTlRJVFkiLCBOVUxMLCB0eXBlKTsKKyAgICAgICAgICAgICAgICBnTWliRXJyb3IgPSBNT0RVTEVfU1lOVEFYX0VSUk9SOwogICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC00NDgzLDE2ICs0NTQ4LDE5IEBACiAgICAgICAgICAgICB0eXBlID0gZ2V0X3Rva2VuKGZwLCB0b2tlbiwgTUFYVE9LRU4pOwogICAgICAgICAgICAgaWYgKHR5cGUgIT0gSURFTlRJRklFUikgewogICAgICAgICAgICAgICAgIHByaW50X2Vycm9yKCJFeHBlY3RlZCBJREVOVElGSUVSIiwgdG9rZW4sIHR5cGUpOworICAgICAgICAgICAgICAgIGdNaWJFcnJvciA9IE1PRFVMRV9TWU5UQVhfRVJST1I7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB0eXBlID0gZ2V0X3Rva2VuKGZwLCB0b2tlbiwgTUFYVE9LRU4pOwogICAgICAgICAgICAgaWYgKHR5cGUgIT0gRVFVQUxTKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRfZXJyb3IoIkV4cGVjdGVkIFwiOjo9XCIiLCB0b2tlbiwgdHlwZSk7CisgICAgICAgICAgICAgICAgZ01pYkVycm9yID0gTU9EVUxFX1NZTlRBWF9FUlJPUjsKICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIG5ucCA9IHBhcnNlX29iamVjdGlkKGZwLCBuYW1lKTsKICAgICAgICAgICAgIGlmIChubnAgPT0gTlVMTCkgewogICAgICAgICAgICAgICAgIHByaW50X2Vycm9yKCJCYWQgcGFyc2Ugb2YgT0JKRUNUIElERU5USUZJRVIiLCBOVUxMLCB0eXBlKTsKKyAgICAgICAgICAgICAgICBnTWliRXJyb3IgPSBNT0RVTEVfU1lOVEFYX0VSUk9SOwogICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC00NTA0LDYgKzQ1NzIsNyBAQAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBwcmludF9lcnJvcigiQmFkIG9wZXJhdG9yIiwgdG9rZW4sIHR5cGUpOworICAgICAgICAgICAgZ01pYkVycm9yID0gTU9EVUxFX1NZTlRBWF9FUlJPUjsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CiAgICAgICAgIGlmIChubnApIHsKQEAgLTQ1MzcsNiArNDYwNiwyMSBAQAogICAgIHJldHVybiAwOwogfQogCisvKioKKyAqIFJlYWQgYSBzaW5nbGUgY2hhcmFjdGVyIGZyb20gYSBmaWxlLiBBc3N1bWVzIHRoYXQgdGhlIGNhbGxlciBoYXMgaW52b2tlZAorICogZmxvY2tmaWxlKCkuIFVzZXMgZmdldGNfdW5sb2NrZWQoKSBpbnN0ZWFkIG9mIGdldGMoKSBzaW5jZSB0aGUgZm9ybWVyIGlzCisgKiBpbXBsZW1lbnRlZCBhcyBhbiBpbmxpbmUgZnVuY3Rpb24gaW4gZ2xpYmMuIFNlZSBhbHNvIGJ1ZyAzNDQ3MTk2CisgKiAoaHR0cDovL3NvdXJjZWZvcmdlLm5ldC90cmFja2VyLz9mdW5jPWRldGFpbCZhaWQ9MzQ0NzE5NiZncm91cF9pZD0xMjY5NCZhdGlkPTExMjY5NCkuCisgKi8KK3N0YXRpYyBpbnQgbmV0c25tcF9nZXRjKEZJTEUgKnN0cmVhbSkKK3sKKyNpZmRlZiBIQVZFX0ZHRVRDX1VOTE9DS0VECisgICAgcmV0dXJuIGZnZXRjX3VubG9ja2VkKHN0cmVhbSk7CisjZWxzZQorICAgIHJldHVybiBnZXRjKHN0cmVhbSk7CisjZW5kaWYKK30KKwogLyoKICAqIFBhcnNlcyBhIHRva2VuIGZyb20gdGhlIGZpbGUuICBUaGUgdHlwZSBvZiB0aGUgdG9rZW4gcGFyc2VkIGlzIHJldHVybmVkLAogICogYW5kIHRoZSB0ZXh0IGlzIHBsYWNlZCBpbiB0aGUgc3RyaW5nIHBvaW50ZWQgdG8gYnkgdG9rZW4uCkBAIC00NTU2LDcgKzQ2NDAsNyBAQAogICAgICAqIHNraXAgYWxsIHdoaXRlIHNwYWNlIAogICAgICAqLwogICAgIGRvIHsKLSAgICAgICAgY2ggPSBnZXRjKGZwKTsKKyAgICAgICAgY2ggPSBuZXRzbm1wX2dldGMoZnApOwogICAgICAgICBpZiAoY2ggPT0gJ1xuJykKICAgICAgICAgICAgIG1pYkxpbmUrKzsKICAgICB9CkBAIC00NTcwLDcgKzQ2NTQsNyBAQAogICAgICAgICByZXR1cm4gcGFyc2VRdW90ZVN0cmluZyhmcCwgdG9rZW4sIG1heHRsZW4pOwogICAgIGNhc2UgJ1wnJzogICAgICAgICAgICAgICAgIC8qIGJpbmFyeSBvciBoZXggY29uc3RhbnQgKi8KICAgICAgICAgc2VlblN5bWJvbHMgPSBiZGlnaXRzOwotICAgICAgICB3aGlsZSAoKGNoID0gZ2V0YyhmcCkpICE9IEVPRiAmJiBjaCAhPSAnXCcnKSB7CisgICAgICAgIHdoaWxlICgoY2ggPSBuZXRzbm1wX2dldGMoZnApKSAhPSBFT0YgJiYgY2ggIT0gJ1wnJykgewogICAgICAgICAgICAgc3dpdGNoIChzZWVuU3ltYm9scykgewogICAgICAgICAgICAgY2FzZSBiZGlnaXRzOgogICAgICAgICAgICAgICAgIGlmIChjaCA9PSAnMCcgfHwgY2ggPT0gJzEnKQpAQCAtNDU4OSw3ICs0NjczLDcgQEAKICAgICAgICAgaWYgKGNoID09ICdcJycpIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgICB2YWwgPSAwOwogICAgICAgICAgICAgY2hhciAgICAgICAgICAgKnJ1biA9IHRva2VuICsgMTsKLSAgICAgICAgICAgIGNoID0gZ2V0YyhmcCk7CisgICAgICAgICAgICBjaCA9IG5ldHNubXBfZ2V0YyhmcCk7CiAgICAgICAgICAgICBzd2l0Y2ggKGNoKSB7CiAgICAgICAgICAgICBjYXNlIEVPRjoKICAgICAgICAgICAgICAgICByZXR1cm4gRU5ET0ZGSUxFOwpAQCAtNDY0OCwyNSArNDczMiwyNSBAQAogICAgIGNhc2UgJ3wnOgogICAgICAgICByZXR1cm4gQkFSOwogICAgIGNhc2UgJy4nOgotICAgICAgICBjaF9uZXh0ID0gZ2V0YyhmcCk7CisgICAgICAgIGNoX25leHQgPSBuZXRzbm1wX2dldGMoZnApOwogICAgICAgICBpZiAoY2hfbmV4dCA9PSAnLicpCiAgICAgICAgICAgICByZXR1cm4gUkFOR0U7CiAgICAgICAgIHVuZ2V0YyhjaF9uZXh0LCBmcCk7CiAgICAgICAgIHJldHVybiBMQUJFTDsKICAgICBjYXNlICc6JzoKLSAgICAgICAgY2hfbmV4dCA9IGdldGMoZnApOworICAgICAgICBjaF9uZXh0ID0gbmV0c25tcF9nZXRjKGZwKTsKICAgICAgICAgaWYgKGNoX25leHQgIT0gJzonKSB7CiAgICAgICAgICAgICB1bmdldGMoY2hfbmV4dCwgZnApOwogICAgICAgICAgICAgcmV0dXJuIExBQkVMOwogICAgICAgICB9Ci0gICAgICAgIGNoX25leHQgPSBnZXRjKGZwKTsKKyAgICAgICAgY2hfbmV4dCA9IG5ldHNubXBfZ2V0YyhmcCk7CiAgICAgICAgIGlmIChjaF9uZXh0ICE9ICc9JykgewogICAgICAgICAgICAgdW5nZXRjKGNoX25leHQsIGZwKTsKICAgICAgICAgICAgIHJldHVybiBMQUJFTDsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gRVFVQUxTOwogICAgIGNhc2UgJy0nOgotICAgICAgICBjaF9uZXh0ID0gZ2V0YyhmcCk7CisgICAgICAgIGNoX25leHQgPSBuZXRzbm1wX2dldGMoZnApOwogICAgICAgICBpZiAoY2hfbmV4dCA9PSAnLScpIHsKICAgICAgICAgICAgIGlmIChuZXRzbm1wX2RzX2dldF9ib29sZWFuKE5FVFNOTVBfRFNfTElCUkFSWV9JRCwgCiAJCQkJICAgICAgIE5FVFNOTVBfRFNfTElCX01JQl9DT01NRU5UX1RFUk0pKSB7CkBAIC00Njc0LDcgKzQ3NTgsNyBAQAogICAgICAgICAgICAgICAgICAqIFRyZWF0IHRoZSByZXN0IG9mIHRoaXMgbGluZSBhcyBhIGNvbW1lbnQuIAogICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgIHdoaWxlICgoY2hfbmV4dCAhPSBFT0YpICYmIChjaF9uZXh0ICE9ICdcbicpKQotICAgICAgICAgICAgICAgICAgICBjaF9uZXh0ID0gZ2V0YyhmcCk7CisgICAgICAgICAgICAgICAgICAgIGNoX25leHQgPSBuZXRzbm1wX2dldGMoZnApOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICAqIFRyZWF0IHRoZSByZXN0IG9mIHRoZSBsaW5lIG9yIHVudGlsIGFub3RoZXIgJy0tJyBhcyBhIGNvbW1lbnQgCkBAIC00NjgzLDExICs0NzY3LDExIEBACiAgICAgICAgICAgICAgICAgICogKHRoaXMgaXMgdGhlICJ0ZWNobmljYWxseSIgY29ycmVjdCB3YXkgdG8gcGFyc2UgY29tbWVudHMpIAogICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgIGNoID0gJyAnOwotICAgICAgICAgICAgICAgIGNoX25leHQgPSBnZXRjKGZwKTsKKyAgICAgICAgICAgICAgICBjaF9uZXh0ID0gbmV0c25tcF9nZXRjKGZwKTsKICAgICAgICAgICAgICAgICB3aGlsZSAoY2hfbmV4dCAhPSBFT0YgJiYgY2hfbmV4dCAhPSAnXG4nICYmCiAgICAgICAgICAgICAgICAgICAgICAgIChjaCAhPSAnLScgfHwgY2hfbmV4dCAhPSAnLScpKSB7CiAgICAgICAgICAgICAgICAgICAgIGNoID0gY2hfbmV4dDsKLSAgICAgICAgICAgICAgICAgICAgY2hfbmV4dCA9IGdldGMoZnApOworICAgICAgICAgICAgICAgICAgICBjaF9uZXh0ID0gbmV0c25tcF9nZXRjKGZwKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoY2hfbmV4dCA9PSBFT0YpCkBAIC00NzA4LDcgKzQ3OTIsNyBAQAogICAgICAgICAgICAgcmV0dXJuIExBQkVMOwogICAgICAgICBoYXNoICs9IHRvbG93ZXIoY2gpOwogICAgICAgbW9yZToKLSAgICAgICAgd2hpbGUgKGlzX2xhYmVsY2hhcihjaF9uZXh0ID0gZ2V0YyhmcCkpKSB7CisgICAgICAgIHdoaWxlIChpc19sYWJlbGNoYXIoY2hfbmV4dCA9IG5ldHNubXBfZ2V0YyhmcCkpKSB7CiAgICAgICAgICAgICBoYXNoICs9IHRvbG93ZXIoY2hfbmV4dCk7CiAgICAgICAgICAgICBpZiAoY3AgLSB0b2tlbiA8IG1heHRsZW4gLSAxKQogICAgICAgICAgICAgICAgICpjcCsrID0gY2hfbmV4dDsKQEAgLTQ3MjcsNyArNDgxMSw3IEBACiAgICAgICAgIGlmICh0cCkgewogICAgICAgICAgICAgaWYgKHRwLT50b2tlbiAhPSBDT05USU5VRSkKICAgICAgICAgICAgICAgICByZXR1cm4gKHRwLT50b2tlbik7Ci0gICAgICAgICAgICB3aGlsZSAoaXNzcGFjZSgoY2hfbmV4dCA9IGdldGMoZnApKSkpCisgICAgICAgICAgICB3aGlsZSAoaXNzcGFjZSgoY2hfbmV4dCA9IG5ldHNubXBfZ2V0YyhmcCkpKSkKICAgICAgICAgICAgICAgICBpZiAoY2hfbmV4dCA9PSAnXG4nKQogICAgICAgICAgICAgICAgICAgICBtaWJMaW5lKys7CiAgICAgICAgICAgICBpZiAoY2hfbmV4dCA9PSBFT0YpCkBAIC00NzQ4LDExICs0ODMyLDE0IEBACiAgICAgfQogfQogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YocGFyc2VfZ2V0X3Rva2VuLCBuZXRzbm1wX3VudXNlZCkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9QQVJTRV9HRVRfVE9LRU4KIGludAogc25tcF9nZXRfdG9rZW4oRklMRSAqIGZwLCBjaGFyICp0b2tlbiwgaW50IG1heHRsZW4pCiB7CiAgICAgcmV0dXJuIGdldF90b2tlbihmcCwgdG9rZW4sIG1heHRsZW4pOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUEFSU0VfR0VUX1RPS0VOICovCiAKIGludAogYWRkX21pYmZpbGUoY29uc3QgY2hhciogdG1wc3RyLCBjb25zdCBjaGFyKiBkX25hbWUsIEZJTEUgKmlwICkKQEAgLTQ5MzUsNiArNTAyMiwyMyBAQAogICAgICAgICAgICAgbmV0c25tcF9yZWFkX21vZHVsZShtcC0+bmFtZSk7CiAgICAgYWRvcHRfb3JwaGFucygpOwogCisgICAgLyogSWYgZW50ZXJlZCB0aGUgc3ludGF4IGVycm9yIGxvb3AgaW4gInJlYWRfbW9kdWxlKCkiICovCisgICAgaWYgKGdMb29wID09IDEpIHsKKyAgICAgICAgZ0xvb3AgPSAwOworICAgICAgICBpZiAoZ3BNaWJFcnJvclN0cmluZyAhPSBOVUxMKSB7CisgICAgICAgICAgICBTTk1QX0ZSRUUoZ3BNaWJFcnJvclN0cmluZyk7CisgICAgICAgIH0KKyAgICAgICAgZ3BNaWJFcnJvclN0cmluZyA9IChjaGFyICopIGNhbGxvYygxLCBNQVhRVU9URVNUUik7CisgICAgICAgIGlmIChncE1pYkVycm9yU3RyaW5nID09IE5VTEwpIHsKKyAgICAgICAgICAgIHNubXBfbG9nKExPR19DUklULCAiZmFpbGVkIHRvIGFsbG9jYXRlZCBtZW1vcnkgZm9yIGdwTWliRXJyb3JTdHJpbmdcbiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc25wcmludGYoZ3BNaWJFcnJvclN0cmluZywgc2l6ZW9mKGdwTWliRXJyb3JTdHJpbmcpLTEsICJFcnJvciBpbiBwYXJzaW5nIE1JQiBtb2R1bGUocyk6ICVzICEgVW5hYmxlIHRvIGxvYWQgY29ycmVzcG9uZGluZyBNSUIocykiLCBnTWliTmFtZXMpOworICAgICAgICB9CisgICAgfQorCisgICAgLyogQ2FsbGVyJ3MgcmVzcG9uc2liaWxpdHkgdG8gZnJlZSB0aGlzIG1lbW9yeSAqLworICAgIHRyZWVfaGVhZC0+cGFyc2VFcnJvclN0cmluZyA9IGdwTWliRXJyb3JTdHJpbmc7CisJCiAgICAgcmV0dXJuIHRyZWVfaGVhZDsKIH0KIApAQCAtNDk3MCw3ICs1MDc0LDcgQEAKICAgICBpbnQgICAgICAgICAgICAgdG9vX2xvbmcgPSAwOwogICAgIGNoYXIgICAgICAgICAgICp0b2tlbl9zdGFydCA9IHRva2VuOwogCi0gICAgZm9yIChjaCA9IGdldGMoZnApOyBjaCAhPSBFT0Y7IGNoID0gZ2V0YyhmcCkpIHsKKyAgICBmb3IgKGNoID0gbmV0c25tcF9nZXRjKGZwKTsgY2ggIT0gRU9GOyBjaCA9IG5ldHNubXBfZ2V0YyhmcCkpIHsKICAgICAgICAgaWYgKGNoID09ICdccicpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKGNoID09ICdcbicpIHsKQEAgLTUyMzAsOCArNTMzNCw4IEBACiAgICAgcmV0dXJuIChmaW5kX3RyZWVfbm9kZShuYW1lLCAtMSkpOwogfQogCi0vKiBGaW5kIG5vZGUgaW4gc3BlY2lmaWMgTUlCIG1vZHVsZQotICAgVXNlZCBieSBQZXJsIG1vZHVsZXMJCSovCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YocGFyc2VfZmluZF9ub2RlMiwgbmV0c25tcF91bnVzZWQpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUEFSU0VfRklORF9OT0RFMgogc3RydWN0IHRyZWUgICAgKgogZmluZF9ub2RlMihjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICptb2R1bGUpCiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApAQCAtNTI0NSw3ICs1MzQ5LDEwIEBACiAgIH0KICAgcmV0dXJuIChmaW5kX3RyZWVfbm9kZShuYW1lLCBtb2RpZCkpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUEFSU0VfRklORF9OT0RFMiAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfRklORF9NT0RVTEUKKy8qIFVzZWQgaW4gdGhlIHBlcmwgbW9kdWxlICovCiBzdHJ1Y3QgbW9kdWxlICAqCiBmaW5kX21vZHVsZShpbnQgbWlkKQogewpAQCAtNTI1Nyw2ICs1MzY0LDcgQEAKICAgICB9CiAgICAgcmV0dXJuIG1wOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfRklORF9NT0RVTEUgKi8KIAogCiBzdGF0aWMgY2hhciAgICAgbGVhdmVfaW5kZW50WzI1Nl07CmRpZmYgLS1naXQgYS9zbm1wbGliL3JlYWRfY29uZmlnLmMgYi9zbm1wbGliL3JlYWRfY29uZmlnLmMKaW5kZXggOGU3MjRjMC4uMzE2NzY3NCAxMDA2NDQKLS0tIGEvc25tcGxpYi9yZWFkX2NvbmZpZy5jCisrKyBiL3NubXBsaWIvcmVhZF9jb25maWcuYwpAQCAtNjUsNiArNjUsNyBAQAogICogIEB7CiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxjdHlwZS5oPgpAQCAtMTQ1LDYgKzE0NiwxMiBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmg+CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihyZWFkX2NvbmZpZ19hbGwsIGxpYm5ldHNubXApCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih1bnJlZ2lzdGVyX2FwcF9jb25maWdfaGFuZGxlciwgcmVhZF9jb25maWdfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHJlYWRfY29uZmlnX3JlZ2lzdGVyX2FwcF9wcmVuZXRzbm1wX21pYl9oYW5kbGVyLCBuZXRzbm1wX3VudXNlZCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihyZWFkX2NvbmZpZ19yZWdpc3Rlcl9jb25zdF9jb25maWdfaGFuZGxlciwgbmV0c25tcF91bnVzZWQpCisKIHN0YXRpYyBpbnQgICAgICBjb25maWdfZXJyb3JzOwogCiBzdHJ1Y3QgY29uZmlnX2ZpbGVzICpjb25maWdfZmlsZXMgPSBOVUxMOwpAQCAtMjUyLDYgKzI1OSw3IEBACiAJCQkJCSAgICBoZWxwLCBQUkVNSUJfQ09ORklHKTsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JFQURfQ09ORklHX1JFR0lTVEVSX0FQUF9QUkVORVRTTk1QX01JQl9IQU5ETEVSCiBzdHJ1Y3QgY29uZmlnX2xpbmUgKgogcmVnaXN0ZXJfYXBwX3ByZW5ldHNubXBfbWliX2hhbmRsZXIoY29uc3QgY2hhciAqdG9rZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqcGFyc2VyKSAoY29uc3QgY2hhciAqLCBjaGFyICopLApAQCAtMjYxLDYgKzI2OSw3IEBACiAgICAgcmV0dXJuIChyZWdpc3Rlcl9wcmVuZXRzbm1wX21pYl9oYW5kbGVyCiAgICAgICAgICAgICAoTlVMTCwgdG9rZW4sIHBhcnNlciwgcmVsZWFzZXIsIGhlbHApKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JFQURfQ09ORklHX1JFR0lTVEVSX0FQUF9QUkVORVRTTk1QX01JQl9IQU5ETEVSICovCiAKIC8qKgogICogcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIgcmVnaXN0ZXJzIGhhbmRsZXJzIGZvciBjZXJ0YWluIHRva2VucyBzcGVjaWZpZWQgaW4KQEAgLTMwNSw2ICszMTQsNyBAQAogCQkJCQkgICAgaGVscCwgTk9STUFMX0NPTkZJRyk7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUFEX0NPTkZJR19SRUdJU1RFUl9DT05TVF9DT05GSUdfSEFORExFUgogc3RydWN0IGNvbmZpZ19saW5lICoKIHJlZ2lzdGVyX2NvbnN0X2NvbmZpZ19oYW5kbGVyKGNvbnN0IGNoYXIgKnR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp0b2tlbiwKQEAgLTMxNiw2ICszMjYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZXIsIHJlbGVhc2VyLAogCQkJCQkgICAgaGVscCwgTk9STUFMX0NPTkZJRyk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9SRUFEX0NPTkZJR19SRUdJU1RFUl9DT05TVF9DT05GSUdfSEFORExFUiAqLwogCiBzdHJ1Y3QgY29uZmlnX2xpbmUgKgogcmVnaXN0ZXJfYXBwX2NvbmZpZ19oYW5kbGVyKGNvbnN0IGNoYXIgKnRva2VuLApAQCAtNDE5LDExICs0MzAsMTMgQEAKICAgICB9CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9VTlJFR0lTVEVSX0FQUF9DT05GSUdfSEFORExFUgogdm9pZAogdW5yZWdpc3Rlcl9hcHBfY29uZmlnX2hhbmRsZXIoY29uc3QgY2hhciAqdG9rZW4pCiB7CiAgICAgdW5yZWdpc3Rlcl9jb25maWdfaGFuZGxlcihOVUxMLCB0b2tlbik7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9VTlJFR0lTVEVSX0FQUF9DT05GSUdfSEFORExFUiAqLwogCiB2b2lkCiB1bnJlZ2lzdGVyX2FsbF9jb25maWdfaGFuZGxlcnModm9pZCkKQEAgLTQ2Myw4ICs0NzYsOCBAQAogfQogI2VuZGlmCiAKLWludCAgICAgICAgICAgICBsaW5lY291bnQsICAgIHByZXZfbGluZWNvdW50OwotY29uc3QgY2hhciAgICAgKmN1cmZpbGVuYW1lLCAqcHJldl9maWxlbmFtZTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgIGxpbmVjb3VudDsKK3N0YXRpYyBjb25zdCBjaGFyICAgKmN1cmZpbGVuYW1lOwogCiBzdHJ1Y3QgY29uZmlnX2xpbmUgKgogcmVhZF9jb25maWdfZ2V0X2hhbmRsZXJzKGNvbnN0IGNoYXIgKnR5cGUpCkBAIC03NDIsMTcgKzc1NSwxNyBAQAogewogICAgIHN0YXRpYyBpbnQgICAgICBkZXB0aCA9IDA7CiAgICAgc3RhdGljIGludCAgICAgIGZpbGVzID0gMDsKKworICAgIGNvbnN0IGNoYXIgKiBjb25zdCBwcmV2X2ZpbGVuYW1lID0gY3VyZmlsZW5hbWU7CisgICAgY29uc3QgdW5zaWduZWQgaW50IHByZXZfbGluZWNvdW50ID0gbGluZWNvdW50OworCiAgICAgRklMRSAgICAgICAgICAgKmlmaWxlOwotICAgIGNoYXIgICAgICAgICAgICBsaW5lW1NUUklOR01BWF0sIHRva2VuW1NUUklOR01BWF07Ci0gICAgY2hhciAgICAgICAgICAgKmNwdHI7Ci0gICAgaW50ICAgICAgICAgICAgIGksIHJldDsKLSAgICBzdHJ1Y3QgY29uZmlnX2xpbmUgKmxwdHI7CisgICAgY2hhciAgICAgICAgICAgKmxpbmUgPSBOVUxMOyAgLyogY3VycmVudCBsaW5lIGJ1ZmZlciAqLworICAgIHNpemVfdCAgICAgICAgICBsaW5lc2l6ZSA9IDA7IC8qIGFsbG9jYXRlZCBzaXplIG9mIGxpbmUgKi8KIAotICAgIC8vIHJlc2V0IGZpbGUgY291bnRlciB3aGVuIHJlY3Vyc2lvbiBkZXB0aCBpcyAwCi0gICAgaWYgKGRlcHRoID09IDApIGZpbGVzID0gMDsKLQotICAgIGxpbmVjb3VudCA9IDA7Ci0gICAgY3VyZmlsZW5hbWUgPSBmaWxlbmFtZTsKKyAgICAvKiByZXNldCBmaWxlIGNvdW50ZXIgd2hlbiByZWN1cnNpb24gZGVwdGggaXMgMCAqLworICAgIGlmIChkZXB0aCA9PSAwKQorICAgICAgICBmaWxlcyA9IDA7CiAKICAgICBpZiAoKGlmaWxlID0gZm9wZW4oZmlsZW5hbWUsICJyIikpID09IE5VTEwpIHsKICNpZmRlZiBFTk9FTlQKQEAgLTc2NywxMyArNzgwLDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVycm9yKGVycm5vKSkpOwogICAgICAgICB9IGVsc2UKICNlbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRUFDQ0VTICovCi0jaWYgZGVmaW5lZChFTk9FTlQpIHx8IGRlZmluZWQoRUFDQ0VTKQogICAgICAgICB7CiAgICAgICAgICAgICBzbm1wX2xvZ19wZXJyb3IoZmlsZW5hbWUpOwogICAgICAgICB9Ci0jZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGRlZmluZWQoRU5PRU5UKSB8fCBkZWZpbmVkKEVBQ0NFUykgKi8KLSAgICAgICAgICAgIHNubXBfbG9nX3BlcnJvcihmaWxlbmFtZSk7Ci0jZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVOT0VOVCAqLwogICAgICAgICByZXR1cm4gU05NUEVSUl9HRU5FUlI7CiAgICAgfQogCkBAIC03OTEsMjUgKzgwMCw1OCBAQAogCWZjbG9zZShpZmlsZSk7CiAgICAgICAgIHJldHVybiBTTk1QRVJSX0dFTkVSUjsKICAgICB9CisKKyAgICBsaW5lY291bnQgPSAwOworICAgIGN1cmZpbGVuYW1lID0gZmlsZW5hbWU7CisKICAgICArK2ZpbGVzOwogICAgICsrZGVwdGg7CiAKICAgICBERUJVR01TR1RMKCgicmVhZF9jb25maWc6ZmlsZSIsICJSZWFkaW5nIGNvbmZpZ3VyYXRpb24gJXMgKCVkKVxuIiwKICAgICAgICAgICAgICAgICBmaWxlbmFtZSwgd2hlbikpOwotICAgIAotICAgIHdoaWxlIChmZ2V0cyhsaW5lLCBzaXplb2YobGluZSksIGlmaWxlKSAhPSBOVUxMKSB7Ci0gICAgICAgIGxwdHIgPSBsaW5lX2hhbmRsZXI7Ci0gICAgICAgIGxpbmVjb3VudCsrOwotICAgICAgICBjcHRyID0gbGluZTsKLSAgICAgICAgaSA9IHN0cmxlbihsaW5lKSAtIDE7Ci0gICAgICAgIGlmIChsaW5lW2ldID09ICdcbicpCi0gICAgICAgICAgICBsaW5lW2ldID0gMDsKKworICAgIHdoaWxlIChpZmlsZSkgeworICAgICAgICBzaXplX3QgICAgICAgICAgICAgIGxpbmVsZW4gPSAwOyAvKiBzdHJsZW4gb2YgdGhlIGN1cnJlbnQgbGluZSAqLworICAgICAgICBjaGFyICAgICAgICAgICAgICAgKmNwdHI7CisgICAgICAgIHN0cnVjdCBjb25maWdfbGluZSAqbHB0ciA9IGxpbmVfaGFuZGxlcjsKKworICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBpZiAobGluZXNpemUgPD0gbGluZWxlbiArIDEpIHsKKyAgICAgICAgICAgICAgICBjaGFyICp0bXAgPSByZWFsbG9jKGxpbmUsIGxpbmVzaXplICsgMjU2KTsKKyAgICAgICAgICAgICAgICBpZiAodG1wKSB7CisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSB0bXA7CisgICAgICAgICAgICAgICAgICAgIGxpbmVzaXplICs9IDI1NjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX2NvbmZpZ19lcnJvcigiRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeVxuIik7CisgICAgICAgICAgICAgICAgICAgIGZyZWUobGluZSk7CisgICAgICAgICAgICAgICAgICAgIGZjbG9zZShpZmlsZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBTTk1QRVJSX0dFTkVSUjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmdldHMobGluZSArIGxpbmVsZW4sIGxpbmVzaXplIC0gbGluZWxlbiwgaWZpbGUpID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBsaW5lW2xpbmVsZW5dID0gJ1wwJzsKKyAgICAgICAgICAgICAgICBmY2xvc2UgKGlmaWxlKTsKKyAgICAgICAgICAgICAgICBpZmlsZSA9IE5VTEw7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxpbmVsZW4gKz0gc3RybGVuKGxpbmUgKyBsaW5lbGVuKTsKKworICAgICAgICAgICAgaWYgKGxpbmVbbGluZWxlbiAtIDFdID09ICdcbicpIHsKKyAgICAgICAgICAgICAgbGluZVtsaW5lbGVuIC0gMV0gPSAnXDAnOworICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICsrbGluZWNvdW50OwogICAgICAgICBERUJVR01TR1RMKCgiOTpyZWFkX2NvbmZpZzpsaW5lIiwgIiVzOiVkIGV4YW1pbmluZzogJXNcbiIsCiAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLCBsaW5lY291bnQsIGxpbmUpKTsKICAgICAgICAgLyoKICAgICAgICAgICogY2hlY2sgYmxhbmsgbGluZSBvciAjIGNvbW1lbnQgCiAgICAgICAgICAqLwotICAgICAgICBpZiAoKGNwdHIgPSBza2lwX3doaXRlKGNwdHIpKSkgeworICAgICAgICBpZiAoKGNwdHIgPSBza2lwX3doaXRlKGxpbmUpKSkgeworICAgICAgICAgICAgY2hhciB0b2tlbltTVFJJTkdNQVhdOworCiAgICAgICAgICAgICBjcHRyID0gY29weV9ud29yZChjcHRyLCB0b2tlbiwgc2l6ZW9mKHRva2VuKSk7CiAgICAgICAgICAgICBpZiAodG9rZW5bMF0gPT0gJ1snKSB7CiAgICAgICAgICAgICAgICAgaWYgKHRva2VuW3N0cmxlbih0b2tlbikgLSAxXSAhPSAnXScpIHsKQEAgLTg2NCw4ICs5MDYsNiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfY29uZmlnX2Vycm9yKCJDYW4ndCBvcGVuIGluY2x1ZGUgZGlyICclcycuIiwgY3B0cik7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBwcmV2X2ZpbGVuYW1lICA9IGN1cmZpbGVuYW1lOwotICAgICAgICAgICAgICAgICAgICBwcmV2X2xpbmVjb3VudCA9IGxpbmVjb3VudDsKICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKChlbnRyeSA9IHJlYWRkaXIoIGQgKSkgIT0gTlVMTCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggZW50cnktPmRfbmFtZVswXSAhPSAnLicpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSBOQU1MRU4oZW50cnkpOwpAQCAtODc3LDggKzkxNyw2IEBACiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgY2xvc2VkaXIoZCk7Ci0gICAgICAgICAgICAgICAgICAgIGN1cmZpbGVuYW1lID0gcHJldl9maWxlbmFtZTsKLSAgICAgICAgICAgICAgICAgICAgbGluZWNvdW50ICAgPSBwcmV2X2xpbmVjb3VudDsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICggc3RyY2FzZWNtcCggdG9rZW4sICJpbmNsdWRlZmlsZSIgKT09MCkgewogICAgICAgICAgICAgICAgICAgICBjaGFyICBmbmFtZVtTTk1QX01BWFBBVEhdLCAqY3A7CkBAIC04OTksMTcgKzkzNywxNCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICooKytjcCkgPSAnXDAnOwogICAgICAgICAgICAgICAgICAgICAgICAgc3RybGNhdChmbmFtZSwgY3B0ciwgU05NUF9NQVhQQVRIKTsKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBwcmV2X2ZpbGVuYW1lICA9IGN1cmZpbGVuYW1lOwotICAgICAgICAgICAgICAgICAgICBwcmV2X2xpbmVjb3VudCA9IGxpbmVjb3VudDsKLSAgICAgICAgICAgICAgICAgICAgcmV0ID0gcmVhZF9jb25maWcoZm5hbWUsIGxpbmVfaGFuZGxlciwgd2hlbik7Ci0gICAgICAgICAgICAgICAgICAgIGN1cmZpbGVuYW1lID0gcHJldl9maWxlbmFtZTsKLSAgICAgICAgICAgICAgICAgICAgbGluZWNvdW50ICAgPSBwcmV2X2xpbmVjb3VudDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKChyZXQgIT0gU05NUEVSUl9TVUNDRVNTKSAmJiAod2hlbiAhPSBQUkVNSUJfQ09ORklHKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfY29uZmlnX2Vycm9yKCJJbmNsdWRlZCBmaWxlICclcycgbm90IGZvdW5kLiIsIGZuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlYWRfY29uZmlnKGZuYW1lLCBsaW5lX2hhbmRsZXIsIHdoZW4pICE9CisgICAgICAgICAgICAgICAgICAgICAgICBTTk1QRVJSX1NVQ0NFU1MgJiYgd2hlbiAhPSBQUkVNSUJfQ09ORklHKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9jb25maWdfZXJyb3IoIkluY2x1ZGVkIGZpbGUgJyVzJyBub3QgZm91bmQuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZuYW1lKTsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICggc3RyY2FzZWNtcCggdG9rZW4sICJpbmNsdWRlc2VhcmNoIiApPT0wKSB7CiAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb25maWdfZmlsZXMgY3RtcDsKLSAgICAgICAgICAgICAgICAgICAgaW50IGxlbjsKKyAgICAgICAgICAgICAgICAgICAgaW50IGxlbiwgcmV0OwogCiAgICAgICAgICAgICAgICAgICAgIGlmIChjcHRyID09IE5VTEwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aGVuICE9IFBSRU1JQl9DT05GSUcpCkBAIC05MjIsMTEgKzk1Nyw3IEBACiAgICAgICAgICAgICAgICAgICAgIGN0bXAubmV4dCA9IE5VTEw7CiAgICAgICAgICAgICAgICAgICAgIGlmICgobGVuID4gNSkgJiYgKHN0cmNtcCgmY3B0cltsZW4tNV0sIi5jb25mIikgPT0gMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIGNwdHJbbGVuLTVdID0gMDsgLyogY2hvcCBvZmYgLmNvbmYgKi8KLSAgICAgICAgICAgICAgICAgICAgcHJldl9maWxlbmFtZSAgPSBjdXJmaWxlbmFtZTsKLSAgICAgICAgICAgICAgICAgICAgcHJldl9saW5lY291bnQgPSBsaW5lY291bnQ7CiAgICAgICAgICAgICAgICAgICAgIHJldCA9IHJlYWRfY29uZmlnX2ZpbGVzX29mX3R5cGUod2hlbiwmY3RtcCk7Ci0gICAgICAgICAgICAgICAgICAgIGN1cmZpbGVuYW1lID0gcHJldl9maWxlbmFtZTsKLSAgICAgICAgICAgICAgICAgICAgbGluZWNvdW50ICAgPSBwcmV2X2xpbmVjb3VudDsKICAgICAgICAgICAgICAgICAgICAgaWYgKChsZW4gPiA1KSAmJiAoY3B0cltsZW4tNV0gPT0gMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIGNwdHJbbGVuLTVdID0gJy4nOyAvKiByZXN0b3JlIC5jb25mICovCiAgICAgICAgICAgICAgICAgICAgIGlmICgoIHJldCAhPSBTTk1QRVJSX1NVQ0NFU1MgKSAmJiAod2hlbiAhPSBQUkVNSUJfQ09ORklHKSkKQEAgLTk0Nyw3ICs5NzgsOSBAQAogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotICAgIGZjbG9zZShpZmlsZSk7CisgICAgZnJlZShsaW5lKTsKKyAgICBsaW5lY291bnQgPSBwcmV2X2xpbmVjb3VudDsKKyAgICBjdXJmaWxlbmFtZSA9IHByZXZfZmlsZW5hbWU7CiAgICAgLS1kZXB0aDsKICAgICByZXR1cm4gU05NUEVSUl9TVUNDRVNTOwogCmRpZmYgLS1naXQgYS9zbm1wbGliL3NjYXBpLmMgYi9zbm1wbGliL3NjYXBpLmMKaW5kZXggZTQyZjZjNi4uMTZhYzgyOSAxMDA2NDQKLS0tIGEvc25tcGxpYi9zY2FwaS5jCisrKyBiL3NubXBsaWIvc2NhcGkuYwpAQCAtMTUsNiArMTUsNyBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaWZkZWYgSEFWRV9TVERMSUJfSApAQCAtNTAsNiArNTEsMTEgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9vdXRwdXRfYXBpLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvdXRpbGl0aWVzLmg+CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih1c21fc3VwcG9ydCwgbGlibmV0c25tcCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih1c21fc2NhcGksIHVzbV9zdXBwb3J0KQorCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVVNNX1NDQVBJCisKICNpZmRlZiBORVRTTk1QX1VTRV9JTlRFUk5BTF9NRDUKICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L21kNS5oPgogI2VuZGlmCkBAIC02OCw2ICs3NCw3IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX2Rlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9hZXMuaD4KICNlbmRpZgorCiAjaWZkZWYgTkVUU05NUF9VU0VfT1BFTlNTTAogI2luY2x1ZGUgPG9wZW5zc2wvaG1hYy5oPgogI2luY2x1ZGUgPG9wZW5zc2wvZXZwLmg+CkBAIC0xNDMsNiArMTUwLDggQEAKICAgICByZXR1cm4gU05NUEVSUl9HRU5FUlI7CiB9CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzY2FwaV9nZXRfcHJvcGVyX3ByaXZfbGVuZ3RoLCBuZXRzbm1wX3VudXNlZCkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TQ0FQSV9HRVRfUFJPUEVSX1BSSVZfTEVOR1RICiBpbnQKIHNjX2dldF9wcm9wZXJfcHJpdl9sZW5ndGgoY29uc3Qgb2lkICogcHJpdnR5cGUsIHVfaW50IHByaXZ0eXBlX2xlbikKIHsKQEAgLTE1OSw2ICsxNjgsNyBAQAogI2VuZGlmCiAgICAgcmV0dXJuIHByb3Blcmxlbmd0aDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NDQVBJX0dFVF9QUk9QRVJfUFJJVl9MRU5HVEggKi8KIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi1vLSoqKioqKgpAQCAtMTgwLDcgKzE5MCw3IEBACiAKICAgICBnZXR0aW1lb2ZkYXkoJnR2LCAoc3RydWN0IHRpbWV6b25lICopIDApOwogCi0gICAgc3JhbmRvbSh0di50dl9zZWMgXiB0di50dl91c2VjKTsKKyAgICBzcmFuZG9tKCh1bnNpZ25lZCkodHYudHZfc2VjIF4gdHYudHZfdXNlYykpOwogI2VsaWYgTkVUU05NUF9VU0VfUEtDUzExCiAgICAgREVCVUdUUkFDRTsKICAgICBydmFsID0gcGtjc19pbml0KCk7CkBAIC0xMzUwLDMgKzEzNjAsNCBAQAogICAgIHJldHVybiByYzsKIH0KICNlbmRpZiAvKiBORVRTTk1QX1VTRV9JTlRFUk5BTF9DUllQVE8gKi8KKyNlbmRpZiAvKiAgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9VU01fU0NBUEkgICovCmRpZmYgLS1naXQgYS9zbm1wbGliL3NubXAtdGMuYyBiL3NubXBsaWIvc25tcC10Yy5jCmluZGV4IDM4Mjg1ZTEuLjg5MWMzYTAgMTAwNjQ0Ci0tLSBhL3NubXBsaWIvc25tcC10Yy5jCisrKyBiL3NubXBsaWIvc25tcC10Yy5jCkBAIC01LDYgKzUsNyBAQAogCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2lmIEhBVkVfU1RETElCX0gKICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAgLTMyLDYgKzMzLDE0IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmg+ICAgLyogZm9yICJpbnRlcm5hbCIgZGVmaW5pdGlvbnMgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg+CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzbm1wX3RjX2FsbCwgbGlibmV0c25tcCkKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKG5ldHNubXBfZGF0ZWFuZHRpbWVfc2V0X2J1Zl9mcm9tX3ZhcnMsIG5ldHNubXBfdW51c2VkKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGRhdGVfbl90aW1lLCBzbm1wX3RjX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjdGltZV90b190aW1ldCwgc25tcF90Y19hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoY2hlY2tfcm93c3RhdHVzX3dpdGhfc3RvcmFnZXR5cGVfdHJhbnNpdGlvbiwgc25tcF90Y19hbGwpCisKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9ORVRTTk1QX0RBVEVBTkRUSU1FX1NFVF9CVUZfRlJPTV9WQVJTCiAvKgogICBEYXRlQW5kVGltZSA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCiAgICAgRElTUExBWS1ISU5UICIyZC0xZC0xZCwxZDoxZDoxZC4xZCwxYTFkOjFkIgpAQCAtMTEyLDcgKzEyMSw5IEBACiAKICAgICByZXR1cm4gU05NUEVSUl9TVUNDRVNTOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTkVUU05NUF9EQVRFQU5EVElNRV9TRVRfQlVGX0ZST01fVkFSUyAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfREFURV9OX1RJTUUKIHVfY2hhciAgICAgICAgICoKIGRhdGVfbl90aW1lKGNvbnN0IHRpbWVfdCAqIHdoZW4sIHNpemVfdCAqIGxlbmd0aCkKIHsKQEAgLTE5Miw4ICsyMDMsOSBAQAogCiAgICAgcmV0dXJuIHN0cmluZzsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0RBVEVfTl9USU1FICovCiAKLQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NUSU1FX1RPX1RJTUVUCiB0aW1lX3QKIGN0aW1lX3RvX3RpbWV0KGNvbnN0IGNoYXIgKnN0cikKIHsKQEAgLTI1MSw5ICsyNjMsMTAgQEAKIAogICAgIHJldHVybiAobWt0aW1lKCZ0bSkpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ1RJTUVfVE9fVElNRVQgKi8KIAogLyoKLSAqIGJsYXRhbnRseSBsaWZ0ZWQgZnJvbSBvcGVuc21wIAorICogYmxhdGFudGx5IGxpZnRlZCBmcm9tIG9wZW5zbm1wIAogICovCiBjaGFyCiBjaGVja19yb3dzdGF0dXNfdHJhbnNpdGlvbihpbnQgb2xkVmFsdWUsIGludCBuZXdWYWx1ZSkKQEAgLTQwMSw2ICs0MTQsNyBAQAogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0hFQ0tfUk9XU1RBVFVTX1dJVEhfU1RPUkFHRVRZUEVfVFJBTlNJVElPTgogY2hhcgogY2hlY2tfcm93c3RhdHVzX3dpdGhfc3RvcmFnZXR5cGVfdHJhbnNpdGlvbihpbnQgb2xkVmFsdWUsIGludCBuZXdWYWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9sZFN0b3JhZ2UpCkBAIC00MTUsNyArNDI5LDEwIEBACiAKICAgICByZXR1cm4gY2hlY2tfcm93c3RhdHVzX3RyYW5zaXRpb24ob2xkVmFsdWUsIG5ld1ZhbHVlKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NIRUNLX1JPV1NUQVRVU19XSVRIX1NUT1JBR0VUWVBFX1RSQU5TSVRJT04gKi8KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGNoZWNrX3N0b3JhZ2VfdHJhbnNpdGlvbiwgc25tcF90Y19hbGwpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0hFQ0tfU1RPUkFHRV9UUkFOU0lUSU9OCiBjaGFyCiBjaGVja19zdG9yYWdlX3RyYW5zaXRpb24oaW50IG9sZFZhbHVlLCBpbnQgbmV3VmFsdWUpCiB7CkBAIC00NTYsMyArNDczLDQgQEAKIAogICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0hFQ0tfU1RPUkFHRV9UUkFOU0lUSU9OICovCmRpZmYgLS1naXQgYS9zbm1wbGliL3NubXBfYWxhcm0uYyBiL3NubXBsaWIvc25tcF9hbGFybS5jCmluZGV4IDc0NjI4YmUuLmFmNDgwMGYgMTAwNjQ0Ci0tLSBhL3NubXBsaWIvc25tcF9hbGFybS5jCisrKyBiL3NubXBsaWIvc25tcF9hbGFybS5jCkBAIC04MiwyOSArODIsMjQgQEAKIHZvaWQKIHNhX3VwZGF0ZV9lbnRyeShzdHJ1Y3Qgc25tcF9hbGFybSAqYSkKIHsKLSAgICBpZiAoIXRpbWVyaXNzZXQoJmEtPnRfbGFzdCkpIHsKLSAgICAgICAgc3RydWN0IHRpbWV2YWwgIHRfbm93OworICAgIGlmICghdGltZXJpc3NldCgmYS0+dF9sYXN0TSkpIHsKICAgICAgICAgLyoKLSAgICAgICAgICogTmV2ZXIgYmVlbiBjYWxsZWQgeWV0LCBjYWxsIHRpbWUgYHQnIGZyb20gbm93LiAgCisgICAgICAgICAqIEZpcnN0IGNhbGwgb2Ygc2FfdXBkYXRlX2VudHJ5KCkgZm9yIGFsYXJtIGE6IHNldCB0X2xhc3RNIGFuZCB0X25leHRNLgogICAgICAgICAgKi8KLSAgICAgICAgZ2V0dGltZW9mZGF5KCZ0X25vdywgTlVMTCk7Ci0KLSAgICAgICAgYS0+dF9sYXN0ID0gdF9ub3c7Ci0KLSAgICAgICAgTkVUU05NUF9USU1FUkFERCgmdF9ub3csICZhLT50LCAmYS0+dF9uZXh0KTsKLSAgICB9IGVsc2UgaWYgKCF0aW1lcmlzc2V0KCZhLT50X25leHQpKSB7CisgICAgICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmYS0+dF9sYXN0TSk7CisgICAgICAgIE5FVFNOTVBfVElNRVJBREQoJmEtPnRfbGFzdE0sICZhLT50LCAmYS0+dF9uZXh0TSk7CisgICAgfSBlbHNlIGlmICghdGltZXJpc3NldCgmYS0+dF9uZXh0TSkpIHsKICAgICAgICAgLyoKICAgICAgICAgICogV2UndmUgYmVlbiBjYWxsZWQgYnV0IG5vdCByZXNldCBmb3IgdGhlIG5leHQgY2FsbC4gIAogICAgICAgICAgKi8KICAgICAgICAgaWYgKGEtPmZsYWdzICYgU0FfUkVQRUFUKSB7Ci0gICAgICAgICAgICBpZiAoIXRpbWVyaXNzZXQoJmEtPnQpKSB7CisgICAgICAgICAgICBpZiAodGltZXJpc3NldCgmYS0+dCkpIHsKKyAgICAgICAgICAgICAgICBORVRTTk1QX1RJTUVSQUREKCZhLT50X2xhc3RNLCAmYS0+dCwgJmEtPnRfbmV4dE0pOworICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBERUJVR01TR1RMKCgic25tcF9hbGFybSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVwZGF0ZV9lbnRyeTogaWxsZWdhbCBpbnRlcnZhbCBzcGVjaWZpZWRcbiIpKTsKICAgICAgICAgICAgICAgICBzbm1wX2FsYXJtX3VucmVnaXN0ZXIoYS0+Y2xpZW50cmVnKTsKLSAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIE5FVFNOTVBfVElNRVJBREQoJmEtPnRfbGFzdCwgJmEtPnQsICZhLT50X25leHQpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAqIFNpbmdsZSB0aW1lIGNhbGwsIHJlbW92ZSBpdC4gIApAQCAtMTc3LDIyICsxNzIsMTIgQEAKIHNhX2ZpbmRfbmV4dCh2b2lkKQogewogICAgIHN0cnVjdCBzbm1wX2FsYXJtICphLCAqbG93ZXN0ID0gTlVMTDsKLSAgICBzdHJ1Y3QgdGltZXZhbCAgdF9ub3c7CiAKLSAgICBnZXR0aW1lb2ZkYXkoJnRfbm93LCBOVUxMKTsKKyAgICBmb3IgKGEgPSB0aGVhbGFybXM7IGEgIT0gTlVMTDsgYSA9IGEtPm5leHQpCisgICAgICAgIGlmICghKGEtPmZsYWdzICYgU0FfRklSRUQpCisgICAgICAgICAgICAmJiAobG93ZXN0ID09IE5VTEwgfHwgdGltZXJjbXAoJmEtPnRfbmV4dE0sICZsb3dlc3QtPnRfbmV4dE0sIDwpKSkKKyAgICAgICAgICAgIGxvd2VzdCA9IGE7CiAKLSAgICBmb3IgKGEgPSB0aGVhbGFybXM7IGEgIT0gTlVMTDsgYSA9IGEtPm5leHQpIHsKLSAgICAgICAgaWYgKCEoYS0+ZmxhZ3MgJiBTQV9GSVJFRCkpIHsKLSAgICAgICAgICAgIC8qIGNoZWNrIGZvciB0aW1lIGRlbHRhIHNrZXcgKi8KLSAgICAgICAgICAgIGlmICgoYS0+dF9uZXh0LnR2X3NlYyAtIHRfbm93LnR2X3NlYykgPiBhLT50LnR2X3NlYykgewotICAgICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJ0aW1lX3NrZXciLCAiVGltZSBkZWx0YSB0b28gYmlnICglbGQgc2Vjb25kcyksIHNob3VsZCBiZSAlbGQgc2Vjb25kcyAtIGZpeGluZ1xuIiwKLQkJICAgIChsb25nKShhLT50X25leHQudHZfc2VjIC0gdF9ub3cudHZfc2VjKSwgKGxvbmcpYS0+dC50dl9zZWMpKTsKLSAgICAgICAgICAgICAgICBORVRTTk1QX1RJTUVSQUREKCZ0X25vdywgJmEtPnQsICZhLT50X25leHQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGxvd2VzdCA9PSBOVUxMIHx8IHRpbWVyY21wKCZhLT50X25leHQsICZsb3dlc3QtPnRfbmV4dCwgPCkpCi0gICAgICAgICAgICAgICAgbG93ZXN0ID0gYTsKLSAgICAgICB9Ci0gICAgfQogICAgIHJldHVybiBsb3dlc3Q7CiB9CiAKQEAgLTIxMiw4ICsxOTcsNyBAQAogdm9pZAogcnVuX2FsYXJtcyh2b2lkKQogewotICAgIGludCAgICAgICAgICAgICBkb25lID0gMDsKLSAgICBzdHJ1Y3Qgc25tcF9hbGFybSAqYSA9IE5VTEw7CisgICAgc3RydWN0IHNubXBfYWxhcm0gKmE7CiAgICAgdW5zaWduZWQgaW50ICAgIGNsaWVudHJlZzsKICAgICBzdHJ1Y3QgdGltZXZhbCAgdF9ub3c7CiAKQEAgLTIyMiwzMSArMjA2LDI3IEBACiAgICAgICogY2FsbCB1bnRpbCBhbGwgZXZlbnRzIGFyZSBmaW5hbGx5IGluIHRoZSBmdXR1cmUgYWdhaW4uICAKICAgICAgKi8KIAotICAgIHdoaWxlICghZG9uZSkgewotICAgICAgICBpZiAoKGEgPSBzYV9maW5kX25leHQoKSkgPT0gTlVMTCkgeworICAgIHdoaWxlICgoYSA9IHNhX2ZpbmRfbmV4dCgpKSAhPSBOVUxMKSB7CisgICAgICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmdF9ub3cpOworCisgICAgICAgIGlmICh0aW1lcmNtcCgmYS0+dF9uZXh0TSwgJnRfbm93LCA+KSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQogCi0gICAgICAgIGdldHRpbWVvZmRheSgmdF9ub3csIE5VTEwpOworICAgICAgICBjbGllbnRyZWcgPSBhLT5jbGllbnRyZWc7CisgICAgICAgIGEtPmZsYWdzIHw9IFNBX0ZJUkVEOworICAgICAgICBERUJVR01TR1RMKCgic25tcF9hbGFybSIsICJydW4gYWxhcm0gJWRcbiIsIGNsaWVudHJlZykpOworICAgICAgICAoKihhLT50aGVjYWxsYmFjaykpIChjbGllbnRyZWcsIGEtPmNsaWVudGFyZyk7CisgICAgICAgIERFQlVHTVNHVEwoKCJzbm1wX2FsYXJtIiwgImFsYXJtICVkIGNvbXBsZXRlZFxuIiwgY2xpZW50cmVnKSk7CiAKLSAgICAgICAgaWYgKHRpbWVyY21wKCZhLT50X25leHQsICZ0X25vdywgPCkpIHsKLSAgICAgICAgICAgIGNsaWVudHJlZyA9IGEtPmNsaWVudHJlZzsKLSAgICAgICAgICAgIGEtPmZsYWdzIHw9IFNBX0ZJUkVEOwotICAgICAgICAgICAgREVCVUdNU0dUTCgoInNubXBfYWxhcm0iLCAicnVuIGFsYXJtICVkXG4iLCBjbGllbnRyZWcpKTsKLSAgICAgICAgICAgICgqKGEtPnRoZWNhbGxiYWNrKSkgKGNsaWVudHJlZywgYS0+Y2xpZW50YXJnKTsKLSAgICAgICAgICAgIERFQlVHTVNHVEwoKCJzbm1wX2FsYXJtIiwgImFsYXJtICVkIGNvbXBsZXRlZFxuIiwgY2xpZW50cmVnKSk7Ci0KLSAgICAgICAgICAgIGlmICgoYSA9IHNhX2ZpbmRfc3BlY2lmaWMoY2xpZW50cmVnKSkgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgIGEtPnRfbGFzdCA9IHRfbm93OwotICAgICAgICAgICAgICAgIHRpbWVyY2xlYXIoJmEtPnRfbmV4dCk7Ci0gICAgICAgICAgICAgICAgYS0+ZmxhZ3MgJj0gflNBX0ZJUkVEOwotICAgICAgICAgICAgICAgIHNhX3VwZGF0ZV9lbnRyeShhKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgREVCVUdNU0dUTCgoInNubXBfYWxhcm0iLCAiYWxhcm0gJWQgZGVsZXRlZCBpdHNlbGZcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50cmVnKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgIGEgPSBzYV9maW5kX3NwZWNpZmljKGNsaWVudHJlZyk7CisgICAgICAgIGlmIChhKSB7CisgICAgICAgICAgICBhLT50X2xhc3RNID0gdF9ub3c7CisgICAgICAgICAgICB0aW1lcmNsZWFyKCZhLT50X25leHRNKTsKKyAgICAgICAgICAgIGEtPmZsYWdzICY9IH5TQV9GSVJFRDsKKyAgICAgICAgICAgIHNhX3VwZGF0ZV9lbnRyeShhKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRvbmUgPSAxOworICAgICAgICAgICAgREVCVUdNU0dUTCgoInNubXBfYWxhcm0iLCAiYWxhcm0gJWQgZGVsZXRlZCBpdHNlbGZcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRyZWcpKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTI4MSw5ICsyNjEsOSBAQAogCiAgICAgaWYgKHNhX3B0cikgewogICAgICAgICBuZXRzbm1wX2Fzc2VydChhbGFybV90bSk7Ci0gICAgICAgIG5ldHNubXBfYXNzZXJ0KHRpbWVyaXNzZXQoJnNhX3B0ci0+dF9uZXh0KSk7Ci0gICAgICAgIGlmICh0aW1lcmNtcCgmc2FfcHRyLT50X25leHQsIG5vdywgPikpCi0gICAgICAgICAgICAqYWxhcm1fdG0gPSBzYV9wdHItPnRfbmV4dDsKKyAgICAgICAgbmV0c25tcF9hc3NlcnQodGltZXJpc3NldCgmc2FfcHRyLT50X25leHRNKSk7CisgICAgICAgIGlmICh0aW1lcmNtcCgmc2FfcHRyLT50X25leHRNLCBub3csID4pKQorICAgICAgICAgICAgKmFsYXJtX3RtID0gc2FfcHRyLT50X25leHRNOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICAqYWxhcm1fdG0gPSAqbm93OwogICAgICAgICByZXR1cm4gc2FfcHRyLT5jbGllbnRyZWc7CkBAIC0zMDcsNyArMjg3LDcgQEAKICAgICBzdHJ1Y3QgdGltZXZhbCB0X25vdywgYWxhcm1fdG07CiAgICAgaW50IHJlczsKIAotICAgIGdldHRpbWVvZmRheSgmdF9ub3csIE5VTEwpOworICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmdF9ub3cpOwogICAgIHJlcyA9IG5ldHNubXBfZ2V0X25leHRfYWxhcm1fdGltZSgmYWxhcm1fdG0sICZ0X25vdyk7CiAgICAgaWYgKHJlcykKICAgICAgICAgTkVUU05NUF9USU1FUlNVQigmYWxhcm1fdG0sICZ0X25vdywgZGVsdGEpOwpAQCAtMzM5LDcgKzMxOSw3IEBACiAgICAgICAgIHNpZ25hbChTSUdBTFJNLCBhbGFybV9oYW5kbGVyKTsKICAgICAgICAgc2V0aXRpbWVyKElUSU1FUl9SRUFMLCAmaXQsIE5VTEwpOwogICAgICAgICBERUJVR01TR1RMKCgic25tcF9hbGFybSIsICJzY2hlZHVsZSBhbGFybSAlZCBpbiAlbGQuJTAzbGQgc2Vjb25kc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgbmV4dGFsYXJtLCBkZWx0YS50dl9zZWMsIChkZWx0YS50dl91c2VjIC8gMTAwMCkpKTsKKyAgICAgICAgICAgICAgICAgICAgbmV4dGFsYXJtLCAobG9uZykgZGVsdGEudHZfc2VjLCAobG9uZykoZGVsdGEudHZfdXNlYyAvIDEwMDApKSk7CiAjIGVsc2UgIC8qIEhBVkVfU0VUSVRJTUVSICovCiAjICBpZmRlZiBTSUdBTFJNCiAgICAgICAgIHNpZ25hbChTSUdBTFJNLCBhbGFybV9oYW5kbGVyKTsKQEAgLTQ2Niw3ICs0NDYsNyBAQAogCiAgICAgREVCVUdNU0dUTCgoInNubXBfYWxhcm0iLAogICAgICAgICAgICAgICAgICJyZWdpc3RlcmVkIGFsYXJtICVkLCB0ID0gJWxkLiUwM2xkLCBmbGFncz0weCUwMnhcbiIsCi0gICAgICAgICAgICAgICAgKCpzKS0+Y2xpZW50cmVnLCAoKnMpLT50LnR2X3NlYywgKCgqcyktPnQudHZfdXNlYyAvIDEwMDApLAorICAgICAgICAgICAgICAgICgqcyktPmNsaWVudHJlZywgKGxvbmcpICgqcyktPnQudHZfc2VjLCAobG9uZykoKCpzKS0+dC50dl91c2VjIC8gMTAwMCksCiAgICAgICAgICAgICAgICAgKCpzKS0+ZmxhZ3MpKTsKIAogICAgIGlmIChzdGFydF9hbGFybXMpIHsKQEAgLTQ5NCwxMiArNDc0LDEyIEBACiAgICAgc3RydWN0IHNubXBfYWxhcm0gKmE7CiAgICAgc3RydWN0IHRpbWV2YWwgIHRfbm93OwogICAgIGlmICgoYSA9IHNhX2ZpbmRfc3BlY2lmaWMoY2xpZW50cmVnKSkgIT0gTlVMTCkgewotICAgICAgICBnZXR0aW1lb2ZkYXkoJnRfbm93LCBOVUxMKTsKLSAgICAgICAgYS0+dF9sYXN0LnR2X3NlYyA9IHRfbm93LnR2X3NlYzsKLSAgICAgICAgYS0+dF9sYXN0LnR2X3VzZWMgPSB0X25vdy50dl91c2VjOwotICAgICAgICBhLT50X25leHQudHZfc2VjID0gMDsKLSAgICAgICAgYS0+dF9uZXh0LnR2X3VzZWMgPSAwOwotICAgICAgICBORVRTTk1QX1RJTUVSQUREKCZ0X25vdywgJmEtPnQsICZhLT50X25leHQpOworICAgICAgICBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soJnRfbm93KTsKKyAgICAgICAgYS0+dF9sYXN0TS50dl9zZWMgPSB0X25vdy50dl9zZWM7CisgICAgICAgIGEtPnRfbGFzdE0udHZfdXNlYyA9IHRfbm93LnR2X3VzZWM7CisgICAgICAgIGEtPnRfbmV4dE0udHZfc2VjID0gMDsKKyAgICAgICAgYS0+dF9uZXh0TS50dl91c2VjID0gMDsKKyAgICAgICAgTkVUU05NUF9USU1FUkFERCgmdF9ub3csICZhLT50LCAmYS0+dF9uZXh0TSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICBERUJVR01TR1RMKCgic25tcF9hbGFybV9yZXNldCIsICJhbGFybSAlZCBub3QgZm91bmRcbiIsCmRpZmYgLS1naXQgYS9zbm1wbGliL3NubXBfYXBpLmMgYi9zbm1wbGliL3NubXBfYXBpLmMKaW5kZXggMGRjZjY2ZC4uMTkxZGViZiAxMDA2NDQKLS0tIGEvc25tcGxpYi9zbm1wX2FwaS5jCisrKyBiL3NubXBsaWIvc25tcF9hcGkuYwpAQCAtMzgsNiArMzgsNyBAQAogICogc25tcF9hcGkuYyAtIEFQSSBmb3IgYWNjZXNzIHRvIHNubXAuCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxjdHlwZS5oPgpAQCAtMTM1LDggKzEzNiwxNCBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS92YWNtLmg+CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzdGF0aXN0aWNzLCBsaWJuZXRzbm1wKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHNubXBfYXBpLCBsaWJuZXRzbm1wKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKG9pZF9pc19zdWJ0cmVlLCBzbm1wX2FwaSkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzbm1wdjNfcHJvYmVfY29udGV4dEVuZ2luZUlEX3JmYzUzNDMsIHNubXBfYXBpKQorCiAjaWYgZGVmaW5lZChORVRTTk1QX1VTRV9PUEVOU1NMKSAmJiBkZWZpbmVkKEhBVkVfTElCU1NMKQogZXh0ZXJuIHZvaWQgbmV0c25tcF9jZXJ0c19pbml0KHZvaWQpOworZXh0ZXJuIHZvaWQgbmV0c25tcF9jZXJ0c19zaHV0ZG93bih2b2lkKTsKICNlbmRpZgogCiBzdGF0aWMgdm9pZCAgICAgX2luaXRfc25tcCh2b2lkKTsKQEAgLTE4Nyw3ICsxOTQsNyBAQAogCiAjZGVmaW5lIERFRkFVTFRfQ09NTVVOSVRZICAgInB1YmxpYyIKICNkZWZpbmUgREVGQVVMVF9SRVRSSUVTCSAgICA1Ci0jZGVmaW5lIERFRkFVTFRfVElNRU9VVAkgICAgMTAwMDAwMEwKKyNkZWZpbmUgREVGQVVMVF9USU1FT1VUCSAgICBPTkVfU0VDCiAjZGVmaW5lIERFRkFVTFRfUkVNUE9SVAkgICAgU05NUF9QT1JUCiAjZGVmaW5lIERFRkFVTFRfRU5URVJQUklTRSAgZGVmYXVsdF9lbnRlcnByaXNlCiAjZGVmaW5lIERFRkFVTFRfVElNRQkgICAgMApAQCAtMjIyLDE4ICsyMjksNiBAQAogICAgIHNpemVfdCAgICAgICAgICBwYWNrZXRfbGVuLCBwYWNrZXRfc2l6ZTsKIH07CiAKLS8qCi0gKiBUaGUgbGlzdCBvZiBhY3RpdmUvb3BlbiBzZXNzaW9ucy4KLSAqLwotc3RydWN0IHNlc3Npb25fbGlzdCB7Ci0gICAgc3RydWN0IHNlc3Npb25fbGlzdCAqbmV4dDsKLSAgICBuZXRzbm1wX3Nlc3Npb24gKnNlc3Npb247Ci0gICAgbmV0c25tcF90cmFuc3BvcnQgKnRyYW5zcG9ydDsKLSAgICBzdHJ1Y3Qgc25tcF9pbnRlcm5hbF9zZXNzaW9uICppbnRlcm5hbDsKLX07Ci0KLQotCiBzdGF0aWMgY29uc3QgY2hhciAqYXBpX2Vycm9yc1stU05NUEVSUl9NQVggKyAxXSA9IHsKICAgICAiTm8gZXJyb3IiLCAgICAgICAgICAgICAgICAgLyogU05NUEVSUl9TVUNDRVNTICovCiAgICAgIkdlbmVyaWMgZXJyb3IiLCAgICAgICAgICAgIC8qIFNOTVBFUlJfR0VORVJSICovCkBAIC0zNTMsNyArMzQ4LDYgQEAKIAogc3RhdGljIHZvaWQgICAgIHNubXB2M19jYWxjX21zZ19mbGFncyhpbnQsIGludCwgdV9jaGFyICopOwogc3RhdGljIGludCAgICAgIHNubXB2M192ZXJpZnlfbXNnKG5ldHNubXBfcmVxdWVzdF9saXN0ICosIG5ldHNubXBfcGR1ICopOwotc3RhdGljIGludCAgICAgIHNubXB2M19idWlsZF9wcm9iZV9wZHUobmV0c25tcF9wZHUgKiopOwogc3RhdGljIGludCAgICAgIHNubXB2M19idWlsZCh1X2NoYXIgKiogcGt0LCBzaXplX3QgKiBwa3RfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKiBvZmZzZXQsIG5ldHNubXBfc2Vzc2lvbiAqIHNlc3Npb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHNubXBfcGR1ICpwZHUpOwpAQCAtMzkxLDEyICszODUsMTQgQEAKICAgICAgICAgcmV0dXJuICJHRVQiOwogICAgIGNhc2UgU05NUF9NU0dfR0VUTkVYVDoKICAgICAgICAgcmV0dXJuICJHRVRORVhUIjsKLSAgICBjYXNlIFNOTVBfTVNHX1JFU1BPTlNFOgotICAgICAgICByZXR1cm4gIlJFU1BPTlNFIjsKLSAgICBjYXNlIFNOTVBfTVNHX1NFVDoKLSAgICAgICAgcmV0dXJuICJTRVQiOwogICAgIGNhc2UgU05NUF9NU0dfR0VUQlVMSzoKICAgICAgICAgcmV0dXJuICJHRVRCVUxLIjsKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCisgICAgY2FzZSBTTk1QX01TR19TRVQ6CisgICAgICAgIHJldHVybiAiU0VUIjsKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCisgICAgY2FzZSBTTk1QX01TR19SRVNQT05TRToKKyAgICAgICAgcmV0dXJuICJSRVNQT05TRSI7CiAgICAgY2FzZSBTTk1QX01TR19JTkZPUk06CiAgICAgICAgIHJldHVybiAiSU5GT1JNIjsKICAgICBjYXNlIFNOTVBfTVNHX1RSQVAyOgpAQCAtNjc1LDcgKzY3MSw3IEBACiAgICAgdG1wUmVxaWQgPSBscmFuZDQ4KCk7CiAgICAgdG1wTXNnaWQgPSBscmFuZDQ4KCk7CiAjZWxzZQotICAgIHNyYW5kb20odHYudHZfc2VjIF4gdHYudHZfdXNlYyk7CisgICAgc3JhbmRvbSgodW5zaWduZWQpKHR2LnR2X3NlYyBeIHR2LnR2X3VzZWMpKTsKICAgICB0bXBSZXFpZCA9IHJhbmRvbSgpOwogICAgIHRtcE1zZ2lkID0gcmFuZG9tKCk7CiAjZW5kaWYKQEAgLTcxMSw2ICs3MDcsOCBAQAogCiAgICAgbmV0c25tcF9kc19zZXRfaW50KE5FVFNOTVBfRFNfTElCUkFSWV9JRCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCX0hFWF9PVVRQVVRfTEVOR1RILCAxNik7CisgICAgbmV0c25tcF9kc19zZXRfaW50KE5FVFNOTVBfRFNfTElCUkFSWV9JRCwgTkVUU05NUF9EU19MSUJfUkVUUklFUywKKyAgICAgICAgICAgICAgICAgICAgICAgREVGQVVMVF9SRVRSSUVTKTsKIAogI2lmZGVmIE5FVFNOTVBfVVNFX1JFVkVSU0VfQVNORU5DT0RJTkcKICAgICBuZXRzbm1wX2RzX3NldF9ib29sZWFuKE5FVFNOTVBfRFNfTElCUkFSWV9JRCwgCkBAIC03ODcsNiArNzg1LDEwIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vQ29udGV4dEVuZ2luZUlERGlzY292ZXJ5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQlJBUllfSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfTk9fRElTQ09WRVJZKTsKKyAgICBuZXRzbm1wX2RzX3JlZ2lzdGVyX2NvbmZpZyhBU05fSU5URUdFUiwgInNubXAiLCAidGltZW91dCIsCisJCSAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCUkFSWV9JRCwgTkVUU05NUF9EU19MSUJfVElNRU9VVCk7CisgICAgbmV0c25tcF9kc19yZWdpc3Rlcl9jb25maWcoQVNOX0lOVEVHRVIsICJzbm1wIiwgInJldHJpZXMiLAorCQkgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQlJBUllfSUQsIE5FVFNOTVBfRFNfTElCX1JFVFJJRVMpOwogCiAgICAgbmV0c25tcF9yZWdpc3Rlcl9zZXJ2aWNlX2hhbmRsZXJzKCk7CiB9CkBAIC04NDQsNiArODQ2LDExIEBACiAjaWYgZGVmaW5lZChORVRTTk1QX1VTRV9PUEVOU1NMKSAmJiBkZWZpbmVkKEhBVkVfTElCU1NMKQogICAgIG5ldHNubXBfY2VydHNfaW5pdCgpOwogI2VuZGlmCisjaWZkZWYgRE5TU0VDX0xPQ0FMX1ZBTElEQVRJT04KKyAgICBuZXRzbm1wX2RzX3JlZ2lzdGVyX2NvbmZpZyhBU05fQk9PTEVBTiwgInNubXAiLCAiZG5zc2VjV2Fybk9ubHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCUkFSWV9JRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9ETlNTRUNfV0FSTl9PTkxZKTsKKyNlbmRpZgogCiAgICAgcmVhZF9wcmVtaWJfY29uZmlncygpOwogI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfTUlCX0xPQURJTkcKQEAgLTkwNSw2ICs5MTIsOSBAQAogI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfTUlCX0xPQURJTkcKICAgICBzaHV0ZG93bl9taWIoKTsKICNlbmRpZiAvKiBORVRTTk1QX0RJU0FCTEVfTUlCX0xPQURJTkcgKi8KKyNpZiBkZWZpbmVkKE5FVFNOTVBfVVNFX09QRU5TU0wpICYmIGRlZmluZWQoSEFWRV9MSUJTU0wpCisgICAgbmV0c25tcF9jZXJ0c19zaHV0ZG93bigpOworI2VuZGlmCiAgICAgdW5yZWdpc3Rlcl9hbGxfY29uZmlnX2hhbmRsZXJzKCk7CiAgICAgbmV0c25tcF9jb250YWluZXJfZnJlZV9saXN0KCk7CiAgICAgY2xlYXJfc2VjX21vZCgpOwpAQCAtOTEyLDEwICs5MjIsOSBAQAogICAgIG5ldHNubXBfY2xlYXJfdGRvbWFpbl9saXN0KCk7CiAgICAgY2xlYXJfY2FsbGJhY2soKTsKICAgICBuZXRzbm1wX2RzX3NodXRkb3duKCk7Ci0gICAgY2xlYXJfdXNlcl9saXN0KCk7CiAgICAgbmV0c25tcF9jbGVhcl9kZWZhdWx0X3RhcmdldCgpOwogICAgIG5ldHNubXBfY2xlYXJfZGVmYXVsdF9kb21haW4oKTsKLSAgICBmcmVlX2V0aW1lbGlzdCgpOworICAgIHNodXRkb3duX3NlY21vZCgpOwogCiAgICAgaW5pdF9zbm1wX2luaXRfZG9uZSAgPSAwOwogICAgIF9pbml0X3NubXBfaW5pdF9kb25lID0gMDsKQEAgLTk0OSw2ICs5NTgsOCBAQAogLyoKICAqIGV4dGVuZGVkIG9wZW4gCiAgKi8KK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzbm1wX29wZW5fZXgsIG5ldHNubXBfdW51c2VkKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NOTVBfT1BFTl9FWAogbmV0c25tcF9zZXNzaW9uICoKIHNubXBfb3Blbl9leChuZXRzbm1wX3Nlc3Npb24gKnNlc3Npb24sCiAgICAgICAgICAgICAgaW50ICgqZnByZV9wYXJzZSkJKG5ldHNubXBfc2Vzc2lvbiAqLCBuZXRzbm1wX3RyYW5zcG9ydCAqLApAQCAtOTgzLDYgKzk5NCw3IEBACiAKICAgICByZXR1cm4gKHNscC0+c2Vzc2lvbik7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TTk1QX09QRU5fRVggKi8KIAogc3RhdGljIHN0cnVjdCBzZXNzaW9uX2xpc3QgKgogX3Nlc3NfY29weShuZXRzbm1wX3Nlc3Npb24gKiBpbl9zZXNzaW9uKQpAQCAtMTE3MiwxMCArMTE4NCwyMiBAQAogICAgICAgICBzZXNzaW9uLT5zZWN1cml0eU5hbWVMZW4gPSBzdHJsZW4oY3ApOwogICAgIH0KIAotICAgIGlmIChzZXNzaW9uLT5yZXRyaWVzID09IFNOTVBfREVGQVVMVF9SRVRSSUVTKQotICAgICAgICBzZXNzaW9uLT5yZXRyaWVzID0gREVGQVVMVF9SRVRSSUVTOwotICAgIGlmIChzZXNzaW9uLT50aW1lb3V0ID09IFNOTVBfREVGQVVMVF9USU1FT1VUKQotICAgICAgICBzZXNzaW9uLT50aW1lb3V0ID0gREVGQVVMVF9USU1FT1VUOworICAgIGlmIChzZXNzaW9uLT5yZXRyaWVzID09IFNOTVBfREVGQVVMVF9SRVRSSUVTKSB7CisgICAgICAgIGludCByZXRyeSA9IG5ldHNubXBfZHNfZ2V0X2ludChORVRTTk1QX0RTX0xJQlJBUllfSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9SRVRSSUVTKTsKKyAgICAgICAgaWYgKHJldHJ5IDwgMCkKKyAgICAgICAgICAgIHNlc3Npb24tPnJldHJpZXMgPSBERUZBVUxUX1JFVFJJRVM7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNlc3Npb24tPnJldHJpZXMgPSByZXRyeTsKKyAgICB9CisgICAgaWYgKHNlc3Npb24tPnRpbWVvdXQgPT0gU05NUF9ERUZBVUxUX1RJTUVPVVQpIHsKKyAgICAgICAgaW50IHRpbWVvdXQgPSBuZXRzbm1wX2RzX2dldF9pbnQoTkVUU05NUF9EU19MSUJSQVJZX0lELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9USU1FT1VUKTsKKyAgICAgICAgaWYgKHRpbWVvdXQgPD0gMCkKKyAgICAgICAgICAgIHNlc3Npb24tPnRpbWVvdXQgPSBERUZBVUxUX1RJTUVPVVQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNlc3Npb24tPnRpbWVvdXQgPSB0aW1lb3V0ICogT05FX1NFQzsKKyAgICB9CiAgICAgc2Vzc2lvbi0+c2Vzc2lkID0gc25tcF9nZXRfbmV4dF9zZXNzaWQoKTsKIAogICAgIHNubXBfY2FsbF9jYWxsYmFja3MoU05NUF9DQUxMQkFDS19MSUJSQVJZLCBTTk1QX0NBTExCQUNLX1NFU1NJT05fSU5JVCwKQEAgLTEyMjcsNiArMTI1MSw3IEBACiAgICAgcmV0dXJuIHBzbDsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NOTVBWM19QUk9CRV9DT05URVhURU5HSU5FSURfUkZDNTM0MwogLyoqCiAgKiBwcm9iZSBmb3IgZW5naW5lSUQgdXNpbmcgUkZDIDUzNDMgcHJvYmluZyBtZWNoYW5pc21zCiAgKgpAQCAtMTMxOCw2ICsxMzQzLDcgQEAKICAgICB9CiAgICAgcmV0dXJuIFNOTVBFUlJfU1VDQ0VTUzsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NOTVBWM19QUk9CRV9DT05URVhURU5HSU5FSURfUkZDNTM0MyAqLwogCiAKIC8qKgpAQCAtMTMzOSwxNiArMTM2NSwxNyBAQAogc25tcHYzX2VuZ2luZUlEX3Byb2JlKHN0cnVjdCBzZXNzaW9uX2xpc3QgKnNscCwKICAgICAgICAgICAgICAgICAgICAgICBuZXRzbm1wX3Nlc3Npb24gKiBpbl9zZXNzaW9uKQogewotICAgIG5ldHNubXBfcGR1ICAgICpwZHUgPSBOVUxMLCAqcmVzcG9uc2UgPSBOVUxMOwogICAgIG5ldHNubXBfc2Vzc2lvbiAqc2Vzc2lvbjsKLSAgICB1bnNpZ25lZCBpbnQgICAgaTsKICAgICBpbnQgICAgICAgICAgICAgc3RhdHVzOworICAgIHN0cnVjdCBzbm1wX3NlY21vZF9kZWYgKnNwdHIgPSBOVUxMOwogCiAgICAgaWYgKHNscCA9PSBOVUxMIHx8IHNscC0+c2Vzc2lvbiA9PSBOVUxMKSB7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAgIHNlc3Npb24gPSBzbHAtPnNlc3Npb247CisgICAgbmV0c25tcF9hc3NlcnRfb3JfcmV0dXJuKHNlc3Npb24gIT0gTlVMTCwgMCk7CisgICAgc3B0ciA9IGZpbmRfc2VjX21vZChzZXNzaW9uLT5zZWN1cml0eU1vZGVsKTsKIAogICAgIC8qCiAgICAgICogSWYgd2UgYXJlIG9wZW5pbmcgYSBWMyBzZXNzaW9uIGFuZCB3ZSBkb24ndCBrbm93IGVuZ2luZUlEIHdlIG11c3QgcHJvYmUKQEAgLTEzNTYsOTAgKzEzODMsMzAgQEAKICAgICAgKiBsaXN0IHNvIHRoYXQgdGhlIHJlc3BvbnNlIGNhbiBoYW5kbGVkIGNvcnJlY3RseS4gCiAgICAgICovCiAKLSAgICBpZiAoKHNlc3Npb24tPmZsYWdzICYgU05NUF9GTEFHU19ET05UX1BST0JFKSA9PSBTTk1QX0ZMQUdTX0RPTlRfUFJPQkUpCi0gICAgICAgIHJldHVybiAxOwotCi0gICAgaWYgKHNlc3Npb24tPnZlcnNpb24gPT0gU05NUF9WRVJTSU9OXzMpIHsKLSAgICAgICAgc3RydWN0IHNubXBfc2VjbW9kX2RlZiAqc3B0ciA9IGZpbmRfc2VjX21vZChzZXNzaW9uLT5zZWN1cml0eU1vZGVsKTsKLQorICAgIGlmIChzZXNzaW9uLT52ZXJzaW9uID09IFNOTVBfVkVSU0lPTl8zICYmCisgICAgICAgICgwID09IChzZXNzaW9uLT5mbGFncyAmIFNOTVBfRkxBR1NfRE9OVF9QUk9CRSkpKSB7CiAgICAgICAgIGlmIChOVUxMICE9IHNwdHIgJiYgTlVMTCAhPSBzcHRyLT5wcm9iZV9lbmdpbmVpZCkgewogICAgICAgICAgICAgREVCVUdNU0dUTCgoInNubXBfYXBpIiwgInByb2JpbmcgZm9yIGVuZ2luZUlEIHVzaW5nIHNlY3VyaXR5IG1vZGVsIGNhbGxiYWNrLi4uXG4iKSk7CiAgICAgICAgICAgICAvKiBzZWN1cml0eSBtb2RlbCBzcGVjaWZpYyBtZWNoYW5pc20gb2YgZGV0ZXJtaW5pbmcgZW5naW5lSUQgKi8KLSAgICAgICAgICAgIHN0YXR1cyA9ICgqc3B0ci0+cHJvYmVfZW5naW5laWQpIChzbHAsIHNlc3Npb24pOwotICAgICAgICAgICAgaWYgKHN0YXR1cykKKyAgICAgICAgICAgIHN0YXR1cyA9ICgqc3B0ci0+cHJvYmVfZW5naW5laWQpIChzbHAsIGluX3Nlc3Npb24pOworICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBTTk1QRVJSX1NVQ0NFU1MpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICByZXR1cm4gMTsgLyogc3VjY2VzcyEgKi8KLSAgICAgICAgfSBlbHNlIGlmIChzZXNzaW9uLT5zZWN1cml0eUVuZ2luZUlETGVuID09IDApIHsKLSAgICAgICAgICAgIGlmIChzbm1wdjNfYnVpbGRfcHJvYmVfcGR1KCZwZHUpICE9IDApIHsKLSAgICAgICAgICAgICAgICBERUJVR01TR1RMKCgic25tcF9hcGkiLCAidW5hYmxlIHRvIGNyZWF0ZSBwcm9iZSBQRFVcbiIpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIERFQlVHTVNHVEwoKCJzbm1wX2FwaSIsICJwcm9iaW5nIGZvciBlbmdpbmVJRC4uLlxuIikpOwotICAgICAgICAgICAgc2Vzc2lvbi0+ZmxhZ3MgfD0gU05NUF9GTEFHU19ET05UX1BST0JFOyAvKiBwcmV2ZW50IHJlY3Vyc2lvbiAqLwotICAgICAgICAgICAgc3RhdHVzID0gc25tcF9zZXNzX3N5bmNoX3Jlc3BvbnNlKHNscCwgcGR1LCAmcmVzcG9uc2UpOwotCi0gICAgICAgICAgICBpZiAoKHJlc3BvbnNlID09IE5VTEwpICYmIChzdGF0dXMgPT0gU1RBVF9TVUNDRVNTKSkgewotICAgICAgICAgICAgICAgIHN0YXR1cyA9IFNUQVRfRVJST1I7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7Ci0gICAgICAgICAgICBjYXNlIFNUQVRfU1VDQ0VTUzoKLSAgICAgICAgICAgICAgICBpbl9zZXNzaW9uLT5zX3NubXBfZXJybm8gPSBTTk1QRVJSX0lOVkFMSURfTVNHOyAvKiBYWD8/ICovCi0gICAgICAgICAgICAgICAgREVCVUdNU0dUTCgoInNubXBfc2Vzc19vcGVuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXJyb3I6IGV4cGVjdGVkIFJlcG9ydCBhcyByZXNwb25zZSB0byBwcm9iZTogJXMgKCVsZClcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc25tcF9lcnJzdHJpbmcocmVzcG9uc2UtPmVycnN0YXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLT5lcnJzdGF0KSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFNUQVRfRVJST1I6ICAgLyogdGhpcyBpcyB3aGF0IHdlIGV4cGVjdGVkIC0+IFJlcG9ydCA9PSBTVEFUX0VSUk9SICovCi0gICAgICAgICAgICAgICAgaW5fc2Vzc2lvbi0+c19zbm1wX2Vycm5vID0gU05NUEVSUl9VTktOT1dOX0VOR19JRDsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgU1RBVF9USU1FT1VUOgotICAgICAgICAgICAgICAgIGluX3Nlc3Npb24tPnNfc25tcF9lcnJubyA9IFNOTVBFUlJfVElNRU9VVDsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgREVCVUdNU0dUTCgoInNubXBfc2Vzc19vcGVuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5hYmxlIHRvIGNvbm5lY3Qgd2l0aCByZW1vdGUgZW5naW5lOiAlcyAoJWQpXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNubXBfYXBpX2VycnN0cmluZyhzZXNzaW9uLT5zX3NubXBfZXJybm8pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24tPnNfc25tcF9lcnJubykpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoc2xwLT5zZXNzaW9uLT5zZWN1cml0eUVuZ2luZUlETGVuID09IDApIHsKLSAgICAgICAgICAgICAgICBERUJVR01TR1RMKCgic25tcF9hcGkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmFibGUgdG8gZGV0ZXJtaW5lIHJlbW90ZSBlbmdpbmUgSURcbiIpKTsKLSAgICAgICAgICAgICAgICAvKiBjbGVhciB0aGUgZmxhZyBzbyB0aGF0IHByb2JlIG9jY3VycyBvbiBuZXh0IGluZm9ybSAqLwotICAgICAgICAgICAgICAgIHNlc3Npb24tPmZsYWdzICY9IH5TTk1QX0ZMQUdTX0RPTlRfUFJPQkU7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGluX3Nlc3Npb24tPnNfc25tcF9lcnJubyA9IFNOTVBFUlJfU1VDQ0VTUzsKLSAgICAgICAgICAgIGlmIChzbm1wX2dldF9kb19kZWJ1Z2dpbmcoKSkgewotICAgICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJzbm1wX3Nlc3Nfb3BlbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgcHJvYmUgZm91bmQgZW5naW5lSUQ6ICAiKSk7Ci0gICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNscC0+c2Vzc2lvbi0+c2VjdXJpdHlFbmdpbmVJRExlbjsgaSsrKQotICAgICAgICAgICAgICAgICAgICBERUJVR01TRygoInNubXBfc2Vzc19vcGVuIiwgIiUwMngiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xwLT5zZXNzaW9uLT5zZWN1cml0eUVuZ2luZUlEW2ldKSk7Ci0gICAgICAgICAgICAgICAgREVCVUdNU0coKCJzbm1wX3Nlc3Nfb3BlbiIsICJcbiIpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIC8qCi0gICAgICAgICAqIGlmIGJvb3QvdGltZSBzdXBwbGllZCBzZXQgaXQgZm9yIHRoaXMgZW5naW5lSUQgCi0gICAgICAgICAqLwotICAgICAgICBpZiAoc2Vzc2lvbi0+ZW5naW5lQm9vdHMgfHwgc2Vzc2lvbi0+ZW5naW5lVGltZSkgewotICAgICAgICAgICAgc2V0X2VuZ2luZXRpbWUoc2Vzc2lvbi0+c2VjdXJpdHlFbmdpbmVJRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24tPnNlY3VyaXR5RW5naW5lSURMZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5lbmdpbmVCb290cywgc2Vzc2lvbi0+ZW5naW5lVGltZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbihzbHAtPnNlc3Npb24pICE9IFNOTVBFUlJfU1VDQ0VTUykgewotICAgICAgICAgICAgaW5fc2Vzc2lvbi0+c19zbm1wX2Vycm5vID0gU05NUEVSUl9VTktOT1dOX1VTRVJfTkFNRTsgICAgICAgLyogWFg/PyAqLwotICAgICAgICAgICAgREVCVUdNU0dUTCgoInNubXBfYXBpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJzbm1wdjNfZW5naW5lX3Byb2JlKCk6IGZhaWxlZCgyKSB0byBjcmVhdGUgYSBuZXcgdXNlciBmcm9tIHNlc3Npb25cbiIpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIFhYWDogZGVmYXVsdCB0byB0aGUgZGVmYXVsdCBSRkM1MzQzIGNvbnRleHRFbmdpbmVJRCBQcm9iZT8gKi8KICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgfQogCisgICAgLyoKKyAgICAgKiBzZWUgaWYgdGhlcmUgaXMgYSBob29rIHRvIGNhbGwgbm93IHRoYXQgd2UncmUgZG9uZSBwcm9iaW5nIGZvciBhbgorICAgICAqIGVuZ2luZUlECisgICAgICovCisgICAgaWYgKHNwdHIgJiYgc3B0ci0+cG9zdF9wcm9iZV9lbmdpbmVpZCkgeworICAgICAgICBzdGF0dXMgPSAoKnNwdHItPnBvc3RfcHJvYmVfZW5naW5laWQpKHNscCwgaW5fc2Vzc2lvbik7CisgICAgICAgIGlmIChzdGF0dXMgIT0gU05NUEVSUl9TVUNDRVNTKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCiAgICAgcmV0dXJuIDE7CiB9CiAKQEAgLTE1ODksMTIgKzE1NTYsMTIgQEAKICAgICAgICAgaWYgKGluX3Nlc3Npb24tPmZsYWdzICYgU05NUF9GTEFHU19TVFJFQU1fU09DS0VUKSB7CiAgICAgICAgICAgICB0cmFuc3BvcnQgPQogICAgICAgICAgICAgICAgIG5ldHNubXBfdGRvbWFpbl90cmFuc3BvcnRfZnVsbCgic25tcCIsIGluX3Nlc3Npb24tPnBlZXJuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbl9zZXNzaW9uLT5sb2NhbF9wb3J0LCAidGNwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5fc2Vzc2lvbi0+bG9jYWxfcG9ydCwgInRjcCx0Y3A2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB0cmFuc3BvcnQgPQogICAgICAgICAgICAgICAgIG5ldHNubXBfdGRvbWFpbl90cmFuc3BvcnRfZnVsbCgic25tcCIsIGluX3Nlc3Npb24tPnBlZXJuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbl9zZXNzaW9uLT5sb2NhbF9wb3J0LCAidWRwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5fc2Vzc2lvbi0+bG9jYWxfcG9ydCwgInVkcCx1ZHA2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAgICAgICAgIH0KIApAQCAtMTc4MywxOCArMTc1MCwxMSBAQAogICAgIGlmIChzbHAtPnNlc3Npb24tPnZlcnNpb24gPT0gU05NUF9WRVJTSU9OXzMpIHsKICAgICAgICAgREVCVUdNU0dUTCgoInNubXBfc2Vzc19hZGQiLAogICAgICAgICAgICAgICAgICAgICAiYWRkaW5nIHYzIHNlc3Npb24gLS0gbWF5YmUgZW5naW5lSUQgcHJvYmUgbm93XG4iKSk7Ci0gICAgICAgIGlmICghc25tcHYzX2VuZ2luZUlEX3Byb2JlKHNscCwgaW5fc2Vzc2lvbikpIHsKKyAgICAgICAgaWYgKCFzbm1wdjNfZW5naW5lSURfcHJvYmUoc2xwLCBzbHAtPnNlc3Npb24pKSB7CiAgICAgICAgICAgICBERUJVR01TR1RMKCgic25tcF9zZXNzX2FkZCIsICJlbmdpbmUgSUQgcHJvYmUgZmFpbGVkXG4iKSk7CiAgICAgICAgICAgICBzbm1wX3Nlc3NfY2xvc2Uoc2xwKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9Ci0gICAgICAgIGlmIChjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24oc2xwLT5zZXNzaW9uKSAhPSBTTk1QRVJSX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgIGluX3Nlc3Npb24tPnNfc25tcF9lcnJubyA9IFNOTVBFUlJfVU5LTk9XTl9VU0VSX05BTUU7Ci0gICAgICAgICAgICBERUJVR01TR1RMKCgic25tcF9hcGkiLAotICAgICAgICAgICAgICAgICAgICAgICAgInNubXBfc2Vzc19hZGQoKTogZmFpbGVkKDIpIHRvIGNyZWF0ZSBhIG5ldyB1c2VyIGZyb20gc2Vzc2lvblxuIikpOwotICAgICAgICAgICAgc25tcF9zZXNzX2Nsb3NlKHNscCk7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQogICAgIH0KIAogICAgIHNscC0+c2Vzc2lvbi0+ZmxhZ3MgJj0gflNOTVBfRkxBR1NfRE9OVF9QUk9CRTsKQEAgLTE4MjgsMjI1ICsxNzg4LDE3IEBACiAgICAgcmV0dXJuIHB2b2lkOwogfQogCi0KLQotLyoKLSAqIGNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbihuZXRzbm1wX3Nlc3Npb24gKnNlc3Npb24pOgotICogCi0gKiBjcmVhdGVzIGEgdXNlciBpbiB0aGUgdXNtIHRhYmxlIGZyb20gdGhlIGluZm9ybWF0aW9uIGluIGEgc2Vzc2lvbi4KLSAqIElmIHRoZSB1c2VyIGFscmVhZHkgZXhpc3RzLCBpdCBpcyB1cGRhdGVkIHdpdGggdGhlIGN1cnJlbnQKLSAqIGluZm9ybWF0aW9uIGZyb20gdGhlIHNlc3Npb24KLSAqIAotICogUGFyYW1ldGVyczoKLSAqIHNlc3Npb24gLS0gSU46IHBvaW50ZXIgdG8gdGhlIHNlc3Npb24gdG8gdXNlIHdoZW4gY3JlYXRpbmcgdGhlIHVzZXIuCi0gKiAKLSAqIFJldHVybnM6Ci0gKiBTTk1QRVJSX1NVQ0NFU1MKLSAqIFNOTVBFUlJfR0VORVJSIAotICovCiBpbnQKLWNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbihuZXRzbm1wX3Nlc3Npb24gKiBzZXNzaW9uKQotewotICAgIHN0cnVjdCB1c21Vc2VyICp1c2VyOwotICAgIGludCAgICAgICAgICAgICB1c2VyX2p1c3RfY3JlYXRlZCA9IDA7Ci0gICAgY2hhciAqY3A7CitjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24obmV0c25tcF9zZXNzaW9uICogc2Vzc2lvbikgeworI2lmZGVmIE5FVFNOTVBfU0VDTU9EX1VTTQorICAgIHJldHVybiB1c21fY3JlYXRlX3VzZXJfZnJvbV9zZXNzaW9uKHNlc3Npb24pOworI2Vsc2UKKyAgICBzbm1wX2xvZyhMT0dfRVJSLCAiY3JlYXRlX3VzZXJfZnJvbV9zZXNzaW9uIGNhbGxlZCB3aGVuIFVTTSB3YXNuJ3QgY29tcGlsZWQgaW4iKTsKKyAgICBuZXRzbm1wX2Fzc2VydCgwID09IDEpOworICAgIHJldHVybiBTTk1QX0VSUl9HRU5FUlI7CisjZW5kaWYKK30KIAotICAgIC8qCi0gICAgICogLSBkb24ndCBjcmVhdGUtYW5vdGhlci9jb3B5LWludG8gdXNlciBmb3IgdGhpcyBzZXNzaW9uIGJ5IGRlZmF1bHQKLSAgICAgKiAtIGJhaWwgbm93IChubyBlcnJvcikgaWYgd2UgZG9uJ3QgaGF2ZSBhbiBlbmdpbmVJRAotICAgICAqLwotICAgIGlmIChTTk1QX0ZMQUdTX1VTRVJfQ1JFQVRFRCA9PSAoc2Vzc2lvbi0+ZmxhZ3MgJiBTTk1QX0ZMQUdTX1VTRVJfQ1JFQVRFRCkgfHwKLSAgICAgICAgc2Vzc2lvbi0+c2VjdXJpdHlNb2RlbCAhPSBTTk1QX1NFQ19NT0RFTF9VU00gfHwKLSAgICAgICAgc2Vzc2lvbi0+dmVyc2lvbiAhPSBTTk1QX1ZFUlNJT05fMyB8fAotICAgICAgICBzZXNzaW9uLT5zZWN1cml0eU5hbWVMZW4gPT0gMCB8fAotICAgICAgICBzZXNzaW9uLT5zZWN1cml0eUVuZ2luZUlETGVuID09IDApCi0gICAgICAgIHJldHVybiBTTk1QRVJSX1NVQ0NFU1M7Ci0KLSAgICBzZXNzaW9uLT5mbGFncyB8PSBTTk1QX0ZMQUdTX1VTRVJfQ1JFQVRFRDsKLQotICAgIC8qCi0gICAgICogbm93IHRoYXQgd2UgaGF2ZSB0aGUgZW5naW5lSUQsIGNyZWF0ZSBhbiBlbnRyeSBpbiB0aGUgVVNNIGxpc3QKLSAgICAgKiBmb3IgdGhpcyB1c2VyIHVzaW5nIHRoZSBpbmZvcm1hdGlvbiBpbiB0aGUgc2Vzc2lvbiAKLSAgICAgKi8KLSAgICB1c2VyID0gdXNtX2dldF91c2VyX2Zyb21fbGlzdChzZXNzaW9uLT5zZWN1cml0eUVuZ2luZUlELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24tPnNlY3VyaXR5RW5naW5lSURMZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+c2VjdXJpdHlOYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzbV9nZXRfdXNlckxpc3QoKSwgMCk7Ci0gICAgaWYgKHVzZXIgPT0gTlVMTCkgewotICAgICAgICBERUJVR01TR1RMKCgic25tcF9hcGkiLCAiQnVpbGRpbmcgdXNlciAlcy4uLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+c2VjdXJpdHlOYW1lKSk7Ci0gICAgICAgIC8qCi0gICAgICAgICAqIHVzZXIgZG9lc24ndCBleGlzdCBzbyB3ZSBjcmVhdGUgYW5kIGFkZCBpdCAKLSAgICAgICAgICovCi0gICAgICAgIHVzZXIgPSAoc3RydWN0IHVzbVVzZXIgKikgY2FsbG9jKDEsIHNpemVvZihzdHJ1Y3QgdXNtVXNlcikpOwotICAgICAgICBpZiAodXNlciA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIFNOTVBFUlJfR0VORVJSOwotCi0gICAgICAgIC8qCi0gICAgICAgICAqIGNvcHkgaW4gdGhlIHNlY3VyaXR5TmFtZSAKLSAgICAgICAgICovCi0gICAgICAgIGlmIChzZXNzaW9uLT5zZWN1cml0eU5hbWUpIHsKLSAgICAgICAgICAgIHVzZXItPm5hbWUgPSBzdHJkdXAoc2Vzc2lvbi0+c2VjdXJpdHlOYW1lKTsKLSAgICAgICAgICAgIHVzZXItPnNlY05hbWUgPSBzdHJkdXAoc2Vzc2lvbi0+c2VjdXJpdHlOYW1lKTsKLSAgICAgICAgICAgIGlmICh1c2VyLT5uYW1lID09IE5VTEwgfHwgdXNlci0+c2VjTmFtZSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgdXNtX2ZyZWVfdXNlcih1c2VyKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gU05NUEVSUl9HRU5FUlI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvKgotICAgICAgICAgKiBjb3B5IGluIHRoZSBlbmdpbmVJRCAKLSAgICAgICAgICovCi0gICAgICAgIHVzZXItPmVuZ2luZUlEID0gbmV0c25tcF9tZW1kdXAoc2Vzc2lvbi0+c2VjdXJpdHlFbmdpbmVJRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5zZWN1cml0eUVuZ2luZUlETGVuKTsKLSAgICAgICAgaWYgKCF1c2VyLT5lbmdpbmVJRCkgewotICAgICAgICAgICAgdXNtX2ZyZWVfdXNlcih1c2VyKTsKLSAgICAgICAgICAgIHJldHVybiBTTk1QRVJSX0dFTkVSUjsKLSAgICAgICAgfQotICAgICAgICB1c2VyLT5lbmdpbmVJRExlbiA9IHNlc3Npb24tPnNlY3VyaXR5RW5naW5lSURMZW47Ci0KLSAgICAgICAgdXNlcl9qdXN0X2NyZWF0ZWQgPSAxOwotICAgIH0KLQotICAgIC8qCi0gICAgICogY29weSB0aGUgYXV0aCBwcm90b2NvbCAKLSAgICAgKi8KLSAgICBpZiAodXNlci0+YXV0aFByb3RvY29sID09IE5VTEwgJiYgc2Vzc2lvbi0+c2VjdXJpdHlBdXRoUHJvdG8gIT0gTlVMTCkgewotICAgICAgICBTTk1QX0ZSRUUodXNlci0+YXV0aFByb3RvY29sKTsKLSAgICAgICAgdXNlci0+YXV0aFByb3RvY29sID0KLSAgICAgICAgICAgIHNubXBfZHVwbGljYXRlX29iamlkKHNlc3Npb24tPnNlY3VyaXR5QXV0aFByb3RvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+c2VjdXJpdHlBdXRoUHJvdG9MZW4pOwotICAgICAgICBpZiAodXNlci0+YXV0aFByb3RvY29sID09IE5VTEwpIHsKLSAgICAgICAgICAgIHVzbV9mcmVlX3VzZXIodXNlcik7Ci0gICAgICAgICAgICByZXR1cm4gU05NUEVSUl9HRU5FUlI7Ci0gICAgICAgIH0KLSAgICAgICAgdXNlci0+YXV0aFByb3RvY29sTGVuID0gc2Vzc2lvbi0+c2VjdXJpdHlBdXRoUHJvdG9MZW47Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBjb3B5IHRoZSBwcml2IHByb3RvY29sIAotICAgICAqLwotICAgIGlmICh1c2VyLT5wcml2UHJvdG9jb2wgPT0gTlVMTCAmJiBzZXNzaW9uLT5zZWN1cml0eVByaXZQcm90byAhPSBOVUxMKSB7Ci0gICAgICAgIFNOTVBfRlJFRSh1c2VyLT5wcml2UHJvdG9jb2wpOwotICAgICAgICB1c2VyLT5wcml2UHJvdG9jb2wgPQotICAgICAgICAgICAgc25tcF9kdXBsaWNhdGVfb2JqaWQoc2Vzc2lvbi0+c2VjdXJpdHlQcml2UHJvdG8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5zZWN1cml0eVByaXZQcm90b0xlbik7Ci0gICAgICAgIGlmICh1c2VyLT5wcml2UHJvdG9jb2wgPT0gTlVMTCkgewotICAgICAgICAgICAgdXNtX2ZyZWVfdXNlcih1c2VyKTsKLSAgICAgICAgICAgIHJldHVybiBTTk1QRVJSX0dFTkVSUjsKLSAgICAgICAgfQotICAgICAgICB1c2VyLT5wcml2UHJvdG9jb2xMZW4gPSBzZXNzaW9uLT5zZWN1cml0eVByaXZQcm90b0xlbjsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIGNvcHkgaW4gdGhlIGF1dGhlbnRpY2F0aW9uIEtleS4gIElmIG5vdCBsb2NhbGl6ZWQsIGxvY2FsaXplIGl0IAotICAgICAqLwotICAgIGlmICh1c2VyLT5hdXRoS2V5ID09IE5VTEwpIHsKLSAgICAgICAgaWYgKHNlc3Npb24tPnNlY3VyaXR5QXV0aExvY2FsS2V5ICE9IE5VTEwKLSAgICAgICAgICAgICYmIHNlc3Npb24tPnNlY3VyaXR5QXV0aExvY2FsS2V5TGVuICE9IDApIHsKLSAgICAgICAgICAgIC8qIGFscmVhZHkgbG9jYWxpemVkIGtleSBwYXNzZWQgaW4uICB1c2UgaXQgKi8KLSAgICAgICAgICAgIFNOTVBfRlJFRSh1c2VyLT5hdXRoS2V5KTsKLSAgICAgICAgICAgIHVzZXItPmF1dGhLZXkgPSBuZXRzbm1wX21lbWR1cChzZXNzaW9uLT5zZWN1cml0eUF1dGhMb2NhbEtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5zZWN1cml0eUF1dGhMb2NhbEtleUxlbik7Ci0gICAgICAgICAgICBpZiAoIXVzZXItPmF1dGhLZXkpIHsKLSAgICAgICAgICAgICAgICB1c21fZnJlZV91c2VyKHVzZXIpOwotICAgICAgICAgICAgICAgIHJldHVybiBTTk1QRVJSX0dFTkVSUjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHVzZXItPmF1dGhLZXlMZW4gPSBzZXNzaW9uLT5zZWN1cml0eUF1dGhMb2NhbEtleUxlbjsKLSAgICAgICAgfSBlbHNlIGlmIChzZXNzaW9uLT5zZWN1cml0eUF1dGhLZXkgIT0gTlVMTAotICAgICAgICAgICAgICAgICAgICYmIHNlc3Npb24tPnNlY3VyaXR5QXV0aEtleUxlbiAhPSAwKSB7Ci0gICAgICAgICAgICBTTk1QX0ZSRUUodXNlci0+YXV0aEtleSk7Ci0gICAgICAgICAgICB1c2VyLT5hdXRoS2V5ID0gKHVfY2hhciAqKSBjYWxsb2MoMSwgVVNNX0xFTkdUSF9LVV9IQVNIQkxPQ0spOwotICAgICAgICAgICAgaWYgKHVzZXItPmF1dGhLZXkgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIHVzbV9mcmVlX3VzZXIodXNlcik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFNOTVBFUlJfR0VORVJSOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdXNlci0+YXV0aEtleUxlbiA9IFVTTV9MRU5HVEhfS1VfSEFTSEJMT0NLOwotICAgICAgICAgICAgaWYgKGdlbmVyYXRlX2t1bCh1c2VyLT5hdXRoUHJvdG9jb2wsIHVzZXItPmF1dGhQcm90b2NvbExlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+c2VjdXJpdHlFbmdpbmVJRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+c2VjdXJpdHlFbmdpbmVJRExlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+c2VjdXJpdHlBdXRoS2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5zZWN1cml0eUF1dGhLZXlMZW4sIHVzZXItPmF1dGhLZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1c2VyLT5hdXRoS2V5TGVuKSAhPSBTTk1QRVJSX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICB1c21fZnJlZV91c2VyKHVzZXIpOwotICAgICAgICAgICAgICAgIHJldHVybiBTTk1QRVJSX0dFTkVSUjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmICgoY3AgPSBuZXRzbm1wX2RzX2dldF9zdHJpbmcoTkVUU05NUF9EU19MSUJSQVJZX0lELCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfQVVUSExPQ0FMSVpFREtFWSkpKSB7Ci0gICAgICAgICAgICBzaXplX3QgYnVmbGVuID0gVVNNX0FVVEhfS1VfTEVOOwotICAgICAgICAgICAgU05NUF9GUkVFKHVzZXItPmF1dGhLZXkpOwotICAgICAgICAgICAgdXNlci0+YXV0aEtleSA9ICh1X2NoYXIgKiltYWxsb2MoYnVmbGVuKTsgLyogbWF4IGxlbmd0aCBuZWVkZWQgKi8KLSAgICAgICAgICAgIHVzZXItPmF1dGhLZXlMZW4gPSAwOwotICAgICAgICAgICAgLyogaXQgd2lsbCBiZSBhIGhleCBzdHJpbmcgKi8KLSAgICAgICAgICAgIGlmICghc25tcF9oZXhfdG9fYmluYXJ5KCZ1c2VyLT5hdXRoS2V5LCAmYnVmbGVuLCAmdXNlci0+YXV0aEtleUxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIGNwKSkgewotICAgICAgICAgICAgICAgIHVzbV9mcmVlX3VzZXIodXNlcik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFNOTVBFUlJfR0VORVJSOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBjb3B5IGluIHRoZSBwcml2YWN5IEtleS4gIElmIG5vdCBsb2NhbGl6ZWQsIGxvY2FsaXplIGl0IAotICAgICAqLwotICAgIGlmICh1c2VyLT5wcml2S2V5ID09IE5VTEwpIHsKLSAgICAgICAgaWYgKHNlc3Npb24tPnNlY3VyaXR5UHJpdkxvY2FsS2V5ICE9IE5VTEwKLSAgICAgICAgICAgICYmIHNlc3Npb24tPnNlY3VyaXR5UHJpdkxvY2FsS2V5TGVuICE9IDApIHsKLSAgICAgICAgICAgIC8qIGFscmVhZHkgbG9jYWxpemVkIGtleSBwYXNzZWQgaW4uICB1c2UgaXQgKi8KLSAgICAgICAgICAgIFNOTVBfRlJFRSh1c2VyLT5wcml2S2V5KTsKLSAgICAgICAgICAgIHVzZXItPnByaXZLZXkgPSBuZXRzbm1wX21lbWR1cChzZXNzaW9uLT5zZWN1cml0eVByaXZMb2NhbEtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5zZWN1cml0eVByaXZMb2NhbEtleUxlbik7Ci0gICAgICAgICAgICBpZiAoIXVzZXItPnByaXZLZXkpIHsKLSAgICAgICAgICAgICAgICB1c21fZnJlZV91c2VyKHVzZXIpOwotICAgICAgICAgICAgICAgIHJldHVybiBTTk1QRVJSX0dFTkVSUjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHVzZXItPnByaXZLZXlMZW4gPSBzZXNzaW9uLT5zZWN1cml0eVByaXZMb2NhbEtleUxlbjsKLSAgICAgICAgfSBlbHNlIGlmIChzZXNzaW9uLT5zZWN1cml0eVByaXZLZXkgIT0gTlVMTAotICAgICAgICAgICAgICAgICAgICYmIHNlc3Npb24tPnNlY3VyaXR5UHJpdktleUxlbiAhPSAwKSB7Ci0gICAgICAgICAgICBTTk1QX0ZSRUUodXNlci0+cHJpdktleSk7Ci0gICAgICAgICAgICB1c2VyLT5wcml2S2V5ID0gKHVfY2hhciAqKSBjYWxsb2MoMSwgVVNNX0xFTkdUSF9LVV9IQVNIQkxPQ0spOwotICAgICAgICAgICAgaWYgKHVzZXItPnByaXZLZXkgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIHVzbV9mcmVlX3VzZXIodXNlcik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFNOTVBFUlJfR0VORVJSOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdXNlci0+cHJpdktleUxlbiA9IFVTTV9MRU5HVEhfS1VfSEFTSEJMT0NLOwotICAgICAgICAgICAgaWYgKGdlbmVyYXRlX2t1bCh1c2VyLT5hdXRoUHJvdG9jb2wsIHVzZXItPmF1dGhQcm90b2NvbExlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+c2VjdXJpdHlFbmdpbmVJRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+c2VjdXJpdHlFbmdpbmVJRExlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+c2VjdXJpdHlQcml2S2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5zZWN1cml0eVByaXZLZXlMZW4sIHVzZXItPnByaXZLZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1c2VyLT5wcml2S2V5TGVuKSAhPSBTTk1QRVJSX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICB1c21fZnJlZV91c2VyKHVzZXIpOwotICAgICAgICAgICAgICAgIHJldHVybiBTTk1QRVJSX0dFTkVSUjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmICgoY3AgPSBuZXRzbm1wX2RzX2dldF9zdHJpbmcoTkVUU05NUF9EU19MSUJSQVJZX0lELCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfUFJJVkxPQ0FMSVpFREtFWSkpKSB7Ci0gICAgICAgICAgICBzaXplX3QgYnVmbGVuID0gVVNNX1BSSVZfS1VfTEVOOwotICAgICAgICAgICAgU05NUF9GUkVFKHVzZXItPnByaXZLZXkpOwotICAgICAgICAgICAgdXNlci0+cHJpdktleSA9ICh1X2NoYXIgKiltYWxsb2MoYnVmbGVuKTsgLyogbWF4IGxlbmd0aCBuZWVkZWQgKi8KLSAgICAgICAgICAgIHVzZXItPnByaXZLZXlMZW4gPSAwOwotICAgICAgICAgICAgLyogaXQgd2lsbCBiZSBhIGhleCBzdHJpbmcgKi8KLSAgICAgICAgICAgIGlmICghc25tcF9oZXhfdG9fYmluYXJ5KCZ1c2VyLT5wcml2S2V5LCAmYnVmbGVuLCAmdXNlci0+cHJpdktleUxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIGNwKSkgewotICAgICAgICAgICAgICAgIHVzbV9mcmVlX3VzZXIodXNlcik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFNOTVBFUlJfR0VORVJSOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHVzZXJfanVzdF9jcmVhdGVkKSB7Ci0gICAgICAgIC8qCi0gICAgICAgICAqIGFkZCB0aGUgdXNlciBpbnRvIHRoZSBkYXRhYmFzZSAKLSAgICAgICAgICovCi0gICAgICAgIHVzZXItPnVzZXJTdGF0dXMgPSBSU19BQ1RJVkU7Ci0gICAgICAgIHVzZXItPnVzZXJTdG9yYWdlVHlwZSA9IFNUX1JFQURPTkxZOwotICAgICAgICB1c21fYWRkX3VzZXIodXNlcik7Ci0gICAgfQotCi0gICAgcmV0dXJuIFNOTVBFUlJfU1VDQ0VTUzsKLQotCi19ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGVuZCBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24oKSAqLwogCiAvKgogICogIERvIGEgImRlZXAgZnJlZSgpIiBvZiBhIG5ldHNubXBfc2Vzc2lvbi4KQEAgLTIyMDgsNDkgKzE5NjAsNiBAQAogICAgIHJldHVybiAxOwogfQogCi1zdGF0aWMgaW50Ci1zbm1wdjNfYnVpbGRfcHJvYmVfcGR1KG5ldHNubXBfcGR1ICoqcGR1KQotewotICAgIHN0cnVjdCB1c21Vc2VyICp1c2VyOwotCi0gICAgLyoKLSAgICAgKiBjcmVhdGUgdGhlIHBkdSAKLSAgICAgKi8KLSAgICBpZiAoIXBkdSkKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICpwZHUgPSBzbm1wX3BkdV9jcmVhdGUoU05NUF9NU0dfR0VUKTsKLSAgICBpZiAoISgqcGR1KSkKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICgqcGR1KS0+dmVyc2lvbiA9IFNOTVBfVkVSU0lPTl8zOwotICAgICgqcGR1KS0+c2VjdXJpdHlOYW1lID0gc3RyZHVwKCIiKTsKLSAgICAoKnBkdSktPnNlY3VyaXR5TmFtZUxlbiA9IHN0cmxlbigoKnBkdSktPnNlY3VyaXR5TmFtZSk7Ci0gICAgKCpwZHUpLT5zZWN1cml0eUxldmVsID0gU05NUF9TRUNfTEVWRUxfTk9BVVRIOwotICAgICgqcGR1KS0+c2VjdXJpdHlNb2RlbCA9IFNOTVBfU0VDX01PREVMX1VTTTsKLQotICAgIC8qCi0gICAgICogY3JlYXRlIHRoZSBlbXB0eSB1c2VyIAotICAgICAqLwotICAgIHVzZXIgPSB1c21fZ2V0X3VzZXIoTlVMTCwgMCwgKCpwZHUpLT5zZWN1cml0eU5hbWUpOwotICAgIGlmICh1c2VyID09IE5VTEwpIHsKLSAgICAgICAgdXNlciA9IChzdHJ1Y3QgdXNtVXNlciAqKSBjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCB1c21Vc2VyKSk7Ci0gICAgICAgIGlmICh1c2VyID09IE5VTEwpIHsKLSAgICAgICAgICAgIHNubXBfZnJlZV9wZHUoKnBkdSk7Ci0gICAgICAgICAgICAqcGR1ID0gKG5ldHNubXBfcGR1ICopIE5VTEw7Ci0gICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIH0KLSAgICAgICAgdXNlci0+bmFtZSA9IHN0cmR1cCgoKnBkdSktPnNlY3VyaXR5TmFtZSk7Ci0gICAgICAgIHVzZXItPnNlY05hbWUgPSBzdHJkdXAoKCpwZHUpLT5zZWN1cml0eU5hbWUpOwotICAgICAgICB1c2VyLT5hdXRoUHJvdG9jb2xMZW4gPSBzaXplb2YodXNtTm9BdXRoUHJvdG9jb2wpIC8gc2l6ZW9mKG9pZCk7Ci0gICAgICAgIHVzZXItPmF1dGhQcm90b2NvbCA9Ci0gICAgICAgICAgICBzbm1wX2R1cGxpY2F0ZV9vYmppZCh1c21Ob0F1dGhQcm90b2NvbCwgdXNlci0+YXV0aFByb3RvY29sTGVuKTsKLSAgICAgICAgdXNlci0+cHJpdlByb3RvY29sTGVuID0gc2l6ZW9mKHVzbU5vUHJpdlByb3RvY29sKSAvIHNpemVvZihvaWQpOwotICAgICAgICB1c2VyLT5wcml2UHJvdG9jb2wgPQotICAgICAgICAgICAgc25tcF9kdXBsaWNhdGVfb2JqaWQodXNtTm9Qcml2UHJvdG9jb2wsIHVzZXItPnByaXZQcm90b2NvbExlbik7Ci0gICAgICAgIHVzbV9hZGRfdXNlcih1c2VyKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyB2b2lkCiBzbm1wdjNfY2FsY19tc2dfZmxhZ3MoaW50IHNlY19sZXZlbCwgaW50IG1zZ19jb21tYW5kLCB1X2NoYXIgKiBmbGFncykKIHsKQEAgLTIzNDAsOSArMjA0OSwxMyBAQAogICAgICAgICAvKgogICAgICAgICAgKiBGYWxsdGhyb3VnaCAKICAgICAgICAgICovCisjaWZuZGVmIE5FVFNOTVBfTk9USUZZX09OTFkKICAgICBjYXNlIFNOTVBfTVNHX0dFVDoKICAgICBjYXNlIFNOTVBfTVNHX0dFVE5FWFQ6CisjZW5kaWYgLyogISBORVRTTk1QX05PVElGWV9PTkxZICovCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgU05NUF9NU0dfU0VUOgorI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICBjYXNlIFNOTVBfTVNHX0lORk9STToKICAgICAgICAgaWYgKHBkdS0+ZXJyc3RhdCA9PSBTTk1QX0RFRkFVTFRfRVJSU1RBVCkKICAgICAgICAgICAgIHBkdS0+ZXJyc3RhdCA9IDA7CkBAIC0yMzUwLDYgKzIwNjMsNyBAQAogICAgICAgICAgICAgcGR1LT5lcnJpbmRleCA9IDA7CiAgICAgICAgIGJyZWFrOwogCisjaWZuZGVmIE5FVFNOTVBfTk9USUZZX09OTFkKICAgICBjYXNlIFNOTVBfTVNHX0dFVEJVTEs6CiAgICAgICAgIGlmIChwZHUtPm1heF9yZXBldGl0aW9ucyA8IDApIHsKICAgICAgICAgICAgIHNlc3Npb24tPnNfc25tcF9lcnJubyA9IFNOTVBFUlJfQkFEX1JFUEVUSVRJT05TOwpAQCAtMjM2MCw2ICsyMDc0LDcgQEAKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKKyNlbmRpZiAvKiAhIE5FVFNOTVBfTk9USUZZX09OTFkgKi8KIAogICAgIGNhc2UgU05NUF9NU0dfVFJBUDoKICAgICAgICAgc2Vzc2lvbi0+c19zbm1wX2Vycm5vID0gU05NUEVSUl9WMV9JTl9WMjsKQEAgLTMwMjYsOSArMjc0MSwxMyBAQAogICAgICAgICAvKgogICAgICAgICAgKiBGYWxsdGhyb3VnaCAKICAgICAgICAgICovCisjaWZuZGVmIE5FVFNOTVBfTk9USUZZX09OTFkKICAgICBjYXNlIFNOTVBfTVNHX0dFVDoKICAgICBjYXNlIFNOTVBfTVNHX0dFVE5FWFQ6CisjZW5kaWYgLyogISBORVRTTk1QX05PVElGWV9PTkxZICovCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgIGNhc2UgU05NUF9NU0dfU0VUOgorI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KICAgICAgICAgLyoKICAgICAgICAgICogYWxsIHZlcnNpb25zIHN1cHBvcnQgdGhlc2UgUERVIHR5cGVzIAogICAgICAgICAgKi8KQEAgLTMwNjMsNiArMjc4Miw3IEBACiAgICAgICAgICAgICBwZHUtPmVycmluZGV4ID0gMDsKICAgICAgICAgYnJlYWs7CiAKKyNpZm5kZWYgTkVUU05NUF9OT1RJRllfT05MWQogICAgIGNhc2UgU05NUF9NU0dfR0VUQlVMSzoKICAgICAgICAgLyoKICAgICAgICAgICogbm90IHN1cHBvcnRlZCBpbiBTTk1QdjEgYW5kIFNOTVBzZWMgCkBAIC0zMDgyLDYgKzI4MDIsNyBAQAogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qICEgTkVUU05NUF9OT1RJRllfT05MWSAqLwogCiAgICAgY2FzZSBTTk1QX01TR19UUkFQOgogICAgICAgICAvKgpAQCAtMzE2NSw3ICsyODg2LDYgQEAKICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgaWYgKDAgPT0gc2Vzc2lvbi0+Y29tbXVuaXR5X2xlbikgewogICAgICAgICAgICAgICAgIFNOTVBfRlJFRShwZHUtPmNvbW11bml0eSk7Ci0gICAgICAgICAgICAgICAgcGR1LT5jb21tdW5pdHkgPSBOVUxMOwogICAgICAgICAgICAgfSBlbHNlIGlmIChwZHUtPmNvbW11bml0eV9sZW4gPT0gc2Vzc2lvbi0+Y29tbXVuaXR5X2xlbikgewogICAgICAgICAgICAgICAgIG1lbW1vdmUocGR1LT5jb21tdW5pdHksCiAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5jb21tdW5pdHksIHNlc3Npb24tPmNvbW11bml0eV9sZW4pOwpAQCAtNDA3Niw5ICszNzk2LDcgQEAKICAgICAgICAgICAgIERFQlVHSU5ERU5UQUREKC00KTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChtYWxsb2NidWYpIHsKLSAgICAgICAgICAgIFNOTVBfRlJFRShtYWxsb2NidWYpOwotICAgICAgICB9CisgICAgICAgIFNOTVBfRlJFRShtYWxsb2NidWYpOwogICAgICAgICByZXR1cm4gcmV0X3ZhbDsKICAgICB9CiAKQEAgLTQwOTEsOSArMzgwOSw3IEBACiAgICAgaWYgKGRhdGEgPT0gTlVMTCkgewogICAgICAgICBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMoU1RBVF9TTk1QSU5BU05QQVJTRUVSUlMpOwogICAgICAgICBERUJVR0lOREVOVEFERCgtNCk7Ci0gICAgICAgIGlmIChtYWxsb2NidWYpIHsKLSAgICAgICAgICAgIFNOTVBfRlJFRShtYWxsb2NidWYpOwotICAgICAgICB9CisgICAgICAgIFNOTVBfRlJFRShtYWxsb2NidWYpOwogICAgICAgICByZXR1cm4gU05NUEVSUl9BU05fUEFSU0VfRVJSOwogICAgIH0KIApAQCAtNDExNiwxNSArMzgzMiwxMSBAQAogICAgIGlmIChyZXQgIT0gU05NUEVSUl9TVUNDRVNTKSB7CiAgICAgICAgIEVSUk9SX01TRygiZXJyb3IgcGFyc2luZyBQRFUiKTsKICAgICAgICAgc25tcF9pbmNyZW1lbnRfc3RhdGlzdGljKFNUQVRfU05NUElOQVNOUEFSU0VFUlJTKTsKLSAgICAgICAgaWYgKG1hbGxvY2J1ZikgewotICAgICAgICAgICAgU05NUF9GUkVFKG1hbGxvY2J1Zik7Ci0gICAgICAgIH0KKyAgICAgICAgU05NUF9GUkVFKG1hbGxvY2J1Zik7CiAgICAgICAgIHJldHVybiBTTk1QRVJSX0FTTl9QQVJTRV9FUlI7CiAgICAgfQogCi0gICAgaWYgKG1hbGxvY2J1ZikgewotICAgICAgICBTTk1QX0ZSRUUobWFsbG9jYnVmKTsKLSAgICB9CisgICAgU05NUF9GUkVFKG1hbGxvY2J1Zik7CiAgICAgcmV0dXJuIFNOTVBFUlJfU1VDQ0VTUzsKIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZW5kIHNubXB2M19wYXJzZSgpICovCiAKQEAgLTQyMzYsNyArMzk0OCwxMSBAQAogICAgIC8qCiAgICAgICogZmluZCB0aGUgYXBwcm9wcmlhdGUgZXJyb3IgY291bnRlciAgCiAgICAgICovCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU1RBVElTVElDUwogICAgIGx0bXAgPSBzbm1wX2dldF9zdGF0aXN0aWMoc3RhdF9pbmQpOworI2Vsc2UgLyogIU5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU1RBVElTVElDUyAqLworICAgIGx0bXAgPSAxOworI2VuZGlmIC8qICFORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NUQVRJU1RJQ1MgKi8KIAogICAgIC8qCiAgICAgICogcmV0dXJuIHRoZSBhcHByb3ByaWF0ZSBlcnJvciBjb3VudGVyICAKQEAgLTQ3MTUsMTIgKzQ0MzEsMTYgQEAKICAgICAgICAgICogZmFsbHRocm91Z2ggCiAgICAgICAgICAqLwogCisjaWZuZGVmIE5FVFNOTVBfTk9USUZZX09OTFkKICAgICBjYXNlIFNOTVBfTVNHX0dFVDoKICAgICBjYXNlIFNOTVBfTVNHX0dFVE5FWFQ6CiAgICAgY2FzZSBTTk1QX01TR19HRVRCVUxLOgorI2VuZGlmIC8qICEgTkVUU05NUF9OT1RJRllfT05MWSAqLworI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKKyAgICBjYXNlIFNOTVBfTVNHX1NFVDoKKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAgICAgY2FzZSBTTk1QX01TR19UUkFQMjoKICAgICBjYXNlIFNOTVBfTVNHX0lORk9STToKLSAgICBjYXNlIFNOTVBfTVNHX1NFVDoKICAgICAgICAgLyoKICAgICAgICAgICogUERVIGlzIG5vdCBhbiBTTk1QdjEgVFJBUCAKICAgICAgICAgICovCkBAIC00OTY3LDE4ICs0Njg3LDYgQEAKICAgICB9CiAKICAgICAvKgotICAgICAqIGNoZWNrIHRoYXQgaXQgYWdyZWVzIHdpdGggZW5naW5lSUQgcmV0dXJuZWQgZnJvbSBVU00gYWJvdmUKLSAgICAgKiAqIG9ubHkgYSB3YXJuaW5nIGJlY2F1c2UgdGhpcyBjb3VsZCBiZSBsZWdhbCBpZiB3ZSBhcmUgYSBwcm94eQotICAgICAqLwotICAgIGlmIChwZHUtPnNlY3VyaXR5TW9kZWwgPT0gTkVUU05NUF9TRUNNT0RfVVNNICYmCi0gICAgICAgIChwZHUtPnNlY3VyaXR5RW5naW5lSURMZW4gIT0gcGR1LT5jb250ZXh0RW5naW5lSURMZW4gfHwKLSAgICAgICAgIG1lbWNtcChwZHUtPnNlY3VyaXR5RW5naW5lSUQsIHBkdS0+Y29udGV4dEVuZ2luZUlELAotICAgICAgICAgICAgICAgIHBkdS0+c2VjdXJpdHlFbmdpbmVJRExlbikgIT0gMCkpIHsKLSAgICAgICAgREVCVUdNU0dUTCgoInNjb3BlZFBEVV9wYXJzZSIsCi0gICAgICAgICAgICAgICAgICAgICJOb3RlOiBzZWN1cml0eSBhbmQgY29udGV4dCBlbmdpbmVJRHMgZGlmZmVyXG4iKSk7Ci0gICAgfQotCi0gICAgLyoKICAgICAgKiBwYXJzZSBjb250ZXh0TmFtZSBmcm9tIHNjb3BlZFBkdQogICAgICAqLwogICAgIHRtcF9idWZfbGVuID0gU05NUF9NQVhfQ09OVEVYVF9TSVpFOwpAQCAtNTE0NSwxNiArNDg1Myw2IEBACiAgICAgICAgICAgICByZXR1cm4gMDsgLyogc19zbm1wX2Vycm5vIGFscmVhZHkgc2V0ICovCiAgICAgfQogCi0gICAgLyoKLSAgICAgKiBjaGVjayB0byBzZWUgaWYgd2UgbmVlZCB0byBjcmVhdGUgYSB2MyB1c2VyIGZyb20gdGhlIHNlc3Npb24gaW5mbwotICAgICAqLwotICAgIGlmIChjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24oc2Vzc2lvbikgIT0gU05NUEVSUl9TVUNDRVNTKSB7Ci0gICAgICAgIHNlc3Npb24tPnNfc25tcF9lcnJubyA9IFNOTVBFUlJfVU5LTk9XTl9VU0VSX05BTUU7ICAvKiBYWD8/ICovCi0gICAgICAgIERFQlVHTVNHVEwoKCJzbm1wX2FwaSIsCi0gICAgICAgICAgICAgICAgICAgICJzbm1wX3NlbmQoKTogZmFpbGVkKDIpIHRvIGNyZWF0ZSBhIG5ldyB1c2VyIGZyb20gc2Vzc2lvblxuIikpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KICAgICBpZiAoKHBrdGJ1ZiA9ICh1X2NoYXIgKiltYWxsb2MoMjA0OCkpID09IE5VTEwpIHsKICAgICAgICAgREVCVUdNU0dUTCgoInNlc3NfYXN5bmNfc2VuZCIsCiAgICAgICAgICAgICAgICAgICAgICJjb3VsZG4ndCBtYWxsb2MgaW5pdGlhbCBwYWNrZXQgYnVmZmVyXG4iKSk7CkBAIC01MTc1LDggKzQ4NzMsMTAgQEAKICAgICAgKi8KICAgICBpZiAocGR1LT52YXJpYWJsZXMgPT0gTlVMTCkgewogICAgICAgICBzd2l0Y2ggKHBkdS0+Y29tbWFuZCkgewotICAgICAgICBjYXNlIFNOTVBfTVNHX0dFVDoKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAgICAgICAgIGNhc2UgU05NUF9NU0dfU0VUOgorI2VuZGlmIC8qICFORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKyAgICAgICAgY2FzZSBTTk1QX01TR19HRVQ6CiAgICAgICAgIGNhc2UgU05NUF9NU0dfR0VUTkVYVDoKICAgICAgICAgY2FzZSBTTk1QX01TR19HRVRCVUxLOgogICAgICAgICBjYXNlIFNOTVBfTVNHX1JFU1BPTlNFOgpAQCAtNTI4OSw3ICs0OTg5LDcgQEAKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAKLSAgICAgICAgZ2V0dGltZW9mZGF5KCZ0diwgKHN0cnVjdCB0aW1lem9uZSAqKSAwKTsKKyAgICAgICAgbmV0c25tcF9nZXRfbW9ub3RvbmljX2Nsb2NrKCZ0dik7CiAgICAgICAgIHJwLT5wZHUgPSBwZHU7CiAgICAgICAgIHJwLT5yZXF1ZXN0X2lkID0gcGR1LT5yZXFpZDsKICAgICAgICAgcnAtPm1lc3NhZ2VfaWQgPSBwZHUtPm1zZ2lkOwpAQCAtNTMwMSwxMSArNTAwMSwxMSBAQAogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcnAtPnRpbWVvdXQgPSBzZXNzaW9uLT50aW1lb3V0OwogICAgICAgICB9Ci0gICAgICAgIHJwLT50aW1lID0gdHY7CisgICAgICAgIHJwLT50aW1lTSA9IHR2OwogICAgICAgICB0di50dl91c2VjICs9IHJwLT50aW1lb3V0OwogICAgICAgICB0di50dl9zZWMgKz0gdHYudHZfdXNlYyAvIDEwMDAwMDBMOwogICAgICAgICB0di50dl91c2VjICU9IDEwMDAwMDBMOwotICAgICAgICBycC0+ZXhwaXJlID0gdHY7CisgICAgICAgIHJwLT5leHBpcmVNID0gdHY7CiAKICAgICAgICAgLyoKICAgICAgICAgICogWFggbG9jayBzaG91bGQgYmUgcGVyIHNlc3Npb24gISAKQEAgLTU1MTIsOSArNTIxMiw3IEBACiAgIGlmIChpc3AtPmhvb2tfcHJlKSB7CiAgICAgaWYgKGlzcC0+aG9va19wcmUoc3AsIHRyYW5zcG9ydCwgb3BhcXVlLCBvbGVuZ3RoKSA9PSAwKSB7CiAgICAgICBERUJVR01TR1RMKCgic2Vzc19wcm9jZXNzX3BhY2tldCIsICJwcmUtcGFyc2UgZmFpbFxuIikpOwotICAgICAgaWYgKG9wYXF1ZSAhPSBOVUxMKSB7Ci0JU05NUF9GUkVFKG9wYXF1ZSk7Ci0gICAgICB9CisgICAgICBTTk1QX0ZSRUUob3BhcXVlKTsKICAgICAgIHJldHVybiAtMTsKICAgICB9CiAgIH0KQEAgLTU1MjcsOSArNTIyNSw3IEBACiAKICAgaWYgKHBkdSA9PSBOVUxMKSB7CiAgICAgc25tcF9sb2coTE9HX0VSUiwgInBkdSBmYWlsZWQgdG8gYmUgY3JlYXRlZFxuIik7Ci0gICAgaWYgKG9wYXF1ZSAhPSBOVUxMKSB7Ci0gICAgICBTTk1QX0ZSRUUob3BhcXVlKTsKLSAgICB9CisgICAgU05NUF9GUkVFKG9wYXF1ZSk7CiAgICAgcmV0dXJuIC0xOwogICB9CiAKQEAgLTU3MTUsMTkgKzU0MTEsMTQgQEAKIAkvKgogCSAqIFN1Y2Nlc3NmdWwsIHNvIGRlbGV0ZSByZXF1ZXN0LiAgCiAJICovCi0JaWYgKGlzcC0+cmVxdWVzdHMgPT0gcnApIHsKLQkgIGlzcC0+cmVxdWVzdHMgPSBycC0+bmV4dF9yZXF1ZXN0OwotCSAgaWYgKGlzcC0+cmVxdWVzdHNFbmQgPT0gcnApIHsKLQkgICAgaXNwLT5yZXF1ZXN0c0VuZCA9IE5VTEw7Ci0JICB9Ci0JfSBlbHNlIHsKKwlpZiAob3JwKQogCSAgb3JwLT5uZXh0X3JlcXVlc3QgPSBycC0+bmV4dF9yZXF1ZXN0OwotCSAgaWYgKGlzcC0+cmVxdWVzdHNFbmQgPT0gcnApIHsKLQkgICAgaXNwLT5yZXF1ZXN0c0VuZCA9IG9ycDsKLQkgIH0KLQl9CisgICAgICAgIGVsc2UKKwkgIGlzcC0+cmVxdWVzdHMgPSBycC0+bmV4dF9yZXF1ZXN0OworICAgICAgICBpZiAoaXNwLT5yZXF1ZXN0c0VuZCA9PSBycCkKKwkgIGlzcC0+cmVxdWVzdHNFbmQgPSBvcnA7CiAJc25tcF9mcmVlX3BkdShycC0+cGR1KTsKLQlmcmVlKChjaGFyICopIHJwKTsKKwlmcmVlKHJwKTsKIAkvKgogCSAqIFRoZXJlIHNob3VsZG4ndCBiZSBhbnkgbW9yZSByZXF1ZXN0cyB3aXRoIHRoZSBzYW1lIHJlcWlkLiAgCiAJICovCkBAIC01OTgyLDkgKzU2NzMsNyBAQAogICAgICAgICBzcC0+c19lcnJubyA9IGVycm5vOwogICAgICAgICBzbm1wX3NldF9kZXRhaWwoc3RyZXJyb3IoZXJybm8pKTsKICAgICAgICAgU05NUF9GUkVFKHJ4YnVmKTsKLSAgICAgICAgaWYgKG9wYXF1ZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBTTk1QX0ZSRUUob3BhcXVlKTsKLSAgICAgICAgfQorICAgICAgICBTTk1QX0ZSRUUob3BhcXVlKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIApAQCAtNjAxOCw5ICs1NzA3LDcgQEAKICAgICAgICAgREVCVUdNU0dUTCgoInNlc3NfcmVhZCIsICJmZCAlZCBjbG9zZWRcbiIsIHRyYW5zcG9ydC0+c29jaykpOwogICAgICAgICB0cmFuc3BvcnQtPmZfY2xvc2UodHJhbnNwb3J0KTsKICAgICAgICAgU05NUF9GUkVFKGlzcC0+cGFja2V0KTsKLSAgICAgICAgaWYgKG9wYXF1ZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBTTk1QX0ZSRUUob3BhcXVlKTsKLSAgICAgICAgfQorICAgICAgICBTTk1QX0ZSRUUob3BhcXVlKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIApAQCAtNjA2MCw5ICs1NzQ3LDcgQEAKIAkJfQogCQlERUJVR01TR1RMKCgic2Vzc19yZWFkIiwgImZkICVkIGNsb3NlZFxuIiwgdHJhbnNwb3J0LT5zb2NrKSk7CiAgICAgICAgICAgICAgICAgdHJhbnNwb3J0LT5mX2Nsb3NlKHRyYW5zcG9ydCk7Ci0gICAgICAgICAgICAgICAgaWYgKG9wYXF1ZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIFNOTVBfRlJFRShvcGFxdWUpOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTTk1QX0ZSRUUob3BhcXVlKTsKICAgICAgICAgICAgICAgICAvKiogWFhYLXJrczogd2h5IG5vIFNOTVBfRlJFRShpc3AtPnBhY2tldCk7ID8/ICovCiAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICAgfQpAQCAtNjA4Miw5ICs1NzY3LDcgQEAKICAgICAgICAgICAgICAgICBpZiAocHB0ciAhPSBpc3AtPnBhY2tldCkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8qIG9wYXF1ZSBmcmVlZCBmb3IgdXMgb3V0c2lkZSBvZiBsb29wLiAqLwogCi0gICAgICAgICAgICAgICAgaWYgKG9wYXF1ZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIFNOTVBfRlJFRShvcGFxdWUpOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTTk1QX0ZSRUUob3BhcXVlKTsKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgIH0KIApAQCAtNjEzMyw5ICs1ODE2LDcgQEAKIAkgICAgb2YgdGhlIG9wYXF1ZSBwb2ludGVyLCBzbyB3ZSBzdGlsbCBuZWVkIHRvIGZyZWUoKSB0aGUgb3BhcXVlCiAJICAgIHBvaW50ZXIgaXRzZWxmLiAgKi8KIAotCWlmIChvcGFxdWUgIT0gTlVMTCkgewotCSAgICBTTk1QX0ZSRUUob3BhcXVlKTsKLQl9CisJU05NUF9GUkVFKG9wYXF1ZSk7CiAKICAgICAgICAgaWYgKGlzcC0+cGFja2V0X2xlbiA+PSBNQVhJTVVNX1BBQ0tFVF9TSVpFKSB7CiAgICAgICAgICAgICAvKgpAQCAtNjE1Niw3ICs1ODM3LDYgQEAKICAgICAgICAgICAgICAqIGZvb3RwcmludCBkb3duLgogICAgICAgICAgICAgICovCiAgICAgICAgICAgICBTTk1QX0ZSRUUoaXNwLT5wYWNrZXQpOwotICAgICAgICAgICAgaXNwLT5wYWNrZXQgPSBOVUxMOwogICAgICAgICAgICAgaXNwLT5wYWNrZXRfc2l6ZSA9IDA7CiAgICAgICAgICAgICBpc3AtPnBhY2tldF9sZW4gPSAwOwogICAgICAgICAgICAgcmV0dXJuIHJjOwpAQCAtNjQwNCw5ICs2MDg0LDEwIEBACiAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgIHJlcXVlc3RzKys7CiAgICAgICAgICAgICBmb3IgKHJwID0gc2xwLT5pbnRlcm5hbC0+cmVxdWVzdHM7IHJwOyBycCA9IHJwLT5uZXh0X3JlcXVlc3QpIHsKLSAgICAgICAgICAgICAgICBpZiAoKCF0aW1lcmlzc2V0KCZlYXJsaWVzdCkKLSAgICAgICAgICAgICAgICAgICAgIHx8ICh0aW1lcmNtcCgmcnAtPmV4cGlyZSwgJmVhcmxpZXN0LCA8KSkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGVhcmxpZXN0ID0gcnAtPmV4cGlyZTsKKyAgICAgICAgICAgICAgICBpZiAoIXRpbWVyaXNzZXQoJmVhcmxpZXN0KQorICAgICAgICAgICAgICAgICAgICB8fCAodGltZXJpc3NldCgmcnAtPmV4cGlyZU0pCisgICAgICAgICAgICAgICAgICAgICAgICAmJiB0aW1lcmNtcCgmcnAtPmV4cGlyZU0sICZlYXJsaWVzdCwgPCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGVhcmxpZXN0ID0gcnAtPmV4cGlyZU07CiAgICAgICAgICAgICAgICAgICAgIERFQlVHTVNHKCgidmVyYm9zZTpzZXNzX3NlbGVjdCIsIih0byBpbiAlZC4lMDZkIHNlYykgIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KWVhcmxpZXN0LnR2X3NlYywgKGludCllYXJsaWVzdC50dl91c2VjKSk7CiAgICAgICAgICAgICAgICAgfQpAQCAtNjQyMyw3ICs2MTA0LDcgQEAKICAgICB9CiAgICAgREVCVUdNU0coKCJzZXNzX3NlbGVjdCIsICJcbiIpKTsKIAotICAgIGdldHRpbWVvZmRheSgmbm93LCBOVUxMKTsKKyAgICBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soJm5vdyk7CiAKICAgICBpZiAobmV0c25tcF9kc19nZXRfYm9vbGVhbihORVRTTk1QX0RTX0xJQlJBUllfSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfQUxBUk1fRE9OVF9VU0VfU0lHKSAmJgpAQCAtNjQ1MSw3ICs2MTMyLDcgQEAKICAgICAgICAgdGltZV90IG92ZXJkdWVfbXMgPSAtKGVhcmxpZXN0LnR2X3NlYyAqIDEwMDAgKyBlYXJsaWVzdC50dl91c2VjIC8gMTAwMCk7CiAgICAgICAgIGlmIChvdmVyZHVlX21zID49IDEwKQogICAgICAgICAgICAgREVCVUdNU0dUKCgidmVyYm9zZTpzZXNzX3NlbGVjdCIsInRpbWVyIG92ZXJkdWUgYnkgJWxkIG1zXG4iLAotICAgICAgICAgICAgICAgICAgICAgICBvdmVyZHVlX21zKSk7CisgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSBvdmVyZHVlX21zKSk7CiAgICAgICAgIHRpbWVyY2xlYXIoJmVhcmxpZXN0KTsKICAgICB9IGVsc2UgewogICAgICAgICBERUJVR01TR1QoKCJ2ZXJib3NlOnNlc3Nfc2VsZWN0IiwidGltZXIgZHVlIGluICVkLiUwNmQgc2VjXG4iLApAQCAtNjU2MCw5ICs2MjQxLDcgQEAKICAgICAgICAgICogVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLiAgCiAgICAgICAgICAqLwogICAgICAgICBERUJVR01TR1RMKCgic2Vzc19yZXNlbmQiLCAiZW5jb2RpbmcgZmFpbHVyZVxuIikpOwotICAgICAgICBpZiAocGt0YnVmICE9IE5VTEwpIHsKLSAgICAgICAgICAgIFNOTVBfRlJFRShwa3RidWYpOwotICAgICAgICB9CisgICAgICAgIFNOTVBfRlJFRShwa3RidWYpOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCkBAIC02NTgwLDcgKzYyNTksNyBAQAogCiAgICAgaWYgKHBrdGJ1ZiAhPSBOVUxMKSB7CiAgICAgICAgIFNOTVBfRlJFRShwa3RidWYpOwotICAgICAgICBwa3RidWYgPSBwYWNrZXQgPSBOVUxMOworICAgICAgICBwYWNrZXQgPSBOVUxMOwogICAgIH0KIAogICAgIGlmIChyZXN1bHQgPCAwKSB7CkBAIC02NTg5LDEzICs2MjY4LDEzIEBACiAgICAgICAgIHNubXBfc2V0X2RldGFpbChzdHJlcnJvcihlcnJubykpOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgZ2V0dGltZW9mZGF5KCZub3csIChzdHJ1Y3QgdGltZXpvbmUgKikgMCk7CisgICAgICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmbm93KTsKICAgICAgICAgdHYgPSBub3c7Ci0gICAgICAgIHJwLT50aW1lID0gdHY7CisgICAgICAgIHJwLT50aW1lTSA9IHR2OwogICAgICAgICB0di50dl91c2VjICs9IHJwLT50aW1lb3V0OwogICAgICAgICB0di50dl9zZWMgKz0gdHYudHZfdXNlYyAvIDEwMDAwMDBMOwogICAgICAgICB0di50dl91c2VjICU9IDEwMDAwMDBMOwotICAgICAgICBycC0+ZXhwaXJlID0gdHY7CisgICAgICAgIHJwLT5leHBpcmVNID0gdHY7CiAgICAgfQogICAgIHJldHVybiAwOwogfQpAQCAtNjYyMSw3ICs2MzAwLDcgQEAKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGdldHRpbWVvZmRheSgmbm93LCAoc3RydWN0IHRpbWV6b25lICopIDApOworICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmbm93KTsKIAogICAgIC8qCiAgICAgICogRm9yIGVhY2ggcmVxdWVzdCBvdXRzdGFuZGluZywgY2hlY2sgdG8gc2VlIGlmIGl0IGhhcyBleHBpcmVkLgpAQCAtNjYzNSw3ICs2MzE0LDcgQEAKICAgICAgICAgICAgIGZyZWVtZSA9IE5VTEw7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoKHRpbWVyY21wKCZycC0+ZXhwaXJlLCAmbm93LCA8KSkpIHsKKyAgICAgICAgaWYgKCh0aW1lcmNtcCgmcnAtPmV4cGlyZU0sICZub3csIDwpKSkgewogICAgICAgICAgICAgaWYgKChzcHRyID0gZmluZF9zZWNfbW9kKHJwLT5wZHUtPnNlY3VyaXR5TW9kZWwpKSAhPSBOVUxMICYmCiAgICAgICAgICAgICAgICAgc3B0ci0+cGR1X3RpbWVvdXQgIT0gTlVMTCkgewogICAgICAgICAgICAgICAgIC8qCkBAIC02NjYzLDE4ICs2MzQyLDEzIEBACiAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKE5FVFNOTVBfQ0FMTEJBQ0tfT1BfVElNRURfT1VULCBzcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnAtPnBkdS0+cmVxaWQsIHJwLT5wZHUsIG1hZ2ljKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGlzcC0+cmVxdWVzdHMgPT0gcnApIHsKLSAgICAgICAgICAgICAgICAgICAgaXNwLT5yZXF1ZXN0cyA9IHJwLT5uZXh0X3JlcXVlc3Q7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpc3AtPnJlcXVlc3RzRW5kID09IHJwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpc3AtPnJlcXVlc3RzRW5kID0gTlVMTDsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKG9ycCkKICAgICAgICAgICAgICAgICAgICAgb3JwLT5uZXh0X3JlcXVlc3QgPSBycC0+bmV4dF9yZXF1ZXN0OwotICAgICAgICAgICAgICAgICAgICBpZiAoaXNwLT5yZXF1ZXN0c0VuZCA9PSBycCkgewotICAgICAgICAgICAgICAgICAgICAgICAgaXNwLT5yZXF1ZXN0c0VuZCA9IG9ycDsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzbm1wX2ZyZWVfcGR1KHJwLT5wZHUpOyAvKiBGSVggIHJwIGlzIGFscmVhZHkgZnJlZSdkISAqLworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgaXNwLT5yZXF1ZXN0cyA9IHJwLT5uZXh0X3JlcXVlc3Q7CisgICAgICAgICAgICAgICAgaWYgKGlzcC0+cmVxdWVzdHNFbmQgPT0gcnApCisgICAgICAgICAgICAgICAgICAgIGlzcC0+cmVxdWVzdHNFbmQgPSBvcnA7CisgICAgICAgICAgICAgICAgc25tcF9mcmVlX3BkdShycC0+cGR1KTsKICAgICAgICAgICAgICAgICBmcmVlbWUgPSBycDsKICAgICAgICAgICAgICAgICBjb250aW51ZTsgICAgICAgLyogZG9uJ3QgdXBkYXRlIG9ycCBiZWxvdyAqLwogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTY5MjcsNiArNjYwMSw3IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9PSURfSVNfU1VCVFJFRQogLyoqIElkZW50aWNhbCB0byBuZXRzbm1wX29pZF9lcXVhbHMsIGV4Y2VwdCBvbmx5IHRoZSBsZW5ndGggdXAgdG8gbGVuMSBpcyBjb21wYXJlZC4KICAqIEZ1bmN0aW9uYWxseSwgdGhpcyBkZXRlcm1pbmVzIGlmIGluX25hbWUyIGlzIGVxdWFsIG9yIGEgc3VidHJlZSBvZiBpbl9uYW1lMQogICogQHBhcmFtIGluX25hbWUxIEEgcG9pbnRlciB0byB0aGUgZmlyc3Qgb2lkLgpAQCAtNjk0Nyw2ICs2NjIyLDcgQEAKIAogICAgIHJldHVybiAwOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfT0lEX0lTX1NVQlRSRUUgKi8KIAogLyoqIEdpdmVuIHR3byBPSURzLCBkZXRlcm1pbmUgdGhlIGNvbW1vbiBwcmVmaXggdG8gdGhlbSBib3RoLgogICogQHBhcmFtIGluX25hbWUxIEEgcG9pbnRlciB0byB0aGUgZmlyc3Qgb2lkLgpAQCAtNzY5MCw2ICs3MzY2LDcgQEAKICAgICByZXR1cm4gcmV0dXJuT2lkOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU1RBVElTVElDUwogLyoKICAqIGdlbmVyaWMgc3RhdGlzdGljcyBjb3VudGVyIGZ1bmN0aW9ucyAKICAqLwpAQCAtNzcyOCw1ICs3NDA1LDUgQEAKIHsKICAgICBtZW1zZXQoc3RhdGlzdGljcywgMCwgc2l6ZW9mKHN0YXRpc3RpY3MpKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NUQVRJU1RJQ1MgKi8KIC8qKiAgQH0gKi8KLQpkaWZmIC0tZ2l0IGEvc25tcGxpYi9zbm1wX2NsaWVudC5jIGIvc25tcGxpYi9zbm1wX2NsaWVudC5jCmluZGV4IGJmZjMyNWUuLmFiN2E1OGMgMTAwNjQ0Ci0tLSBhL3NubXBsaWIvc25tcF9jbGllbnQuYworKysgYi9zbm1wbGliL3NubXBfY2xpZW50LmMKQEAgLTQwLDYgKzQwLDcgQEAKICAqICBAewogICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KQEAgLTk4LDYgKzk5LDEyIEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL3BkdV9hcGkuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHNubXBfY2xpZW50X2FsbCwgbGlibmV0c25tcCkKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHNubXBfc3BsaXRfcGR1LCBzbm1wX2NsaWVudF9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yoc25tcF9yZXNldF92YXJfdHlwZXMsIHNubXBfY2xpZW50X2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihxdWVyeV9zZXRfZGVmYXVsdF9zZXNzaW9uLCBzbm1wX2NsaWVudF9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yocm93X2NyZWF0ZSwgc25tcF9jbGllbnRfYWxsKQogCiAjaWZuZGVmIEJTRDRfMwogI2RlZmluZSBCU0Q0XzIKQEAgLTU4Nyw2ICs1OTQsNyBAQAogICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGNsb25lZCBQRFUgaWYgc3VjY2Vzc2Z1bC4KICAqIFJldHVybnMgMCBpZiBmYWlsdXJlLgogICovCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU05NUF9TUExJVF9QRFUKIG5ldHNubXBfcGR1ICAgICoKIHNubXBfc3BsaXRfcGR1KG5ldHNubXBfcGR1ICpwZHUsIGludCBza2lwX2NvdW50LCBpbnQgY29weV9jb3VudCkKIHsKQEAgLTU5Nyw2ICs2MDUsNyBAQAogCiAgICAgcmV0dXJuIG5ld3BkdTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NOTVBfU1BMSVRfUERVICovCiAKIAogLyoKQEAgLTczNSw2ICs3NDQsOCBAQAogICAgIHJldHVybiBjb3VudDsKIH0KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGNvdW50X3ZhcmJpbmRzX29mX3R5cGUsIG5ldHNubXBfdW51c2VkKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NPVU5UX1ZBUkJJTkRTX09GX1RZUEUKIGludAogY291bnRfdmFyYmluZHNfb2ZfdHlwZShuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKiB2YXJfcHRyLCB1X2NoYXIgdHlwZSkKIHsKQEAgLTc0Niw3ICs3NTcsMTAgQEAKIAogICAgIHJldHVybiBjb3VudDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NPVU5UX1ZBUkJJTkRTX09GX1RZUEUgKi8KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGZpbmRfdmFyaW5kX29mX3R5cGUsIG5ldHNubXBfdW51c2VkKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0ZJTkRfVkFSSU5EX09GX1RZUEUKIG5ldHNubXBfdmFyaWFibGVfbGlzdCAqCiBmaW5kX3ZhcmJpbmRfb2ZfdHlwZShuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKiB2YXJfcHRyLCB1X2NoYXIgdHlwZSkKIHsKQEAgLTc1NSw2ICs3NjksNyBAQAogCiAgICAgcmV0dXJuIHZhcl9wdHI7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9GSU5EX1ZBUklORF9PRl9UWVBFICovCiAKIG5ldHNubXBfdmFyaWFibGVfbGlzdCoKIGZpbmRfdmFyYmluZF9pbl9saXN0KCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZibGlzdCwKQEAgLTk5OCw2ICsxMDEzLDcgQEAKICAgICB9CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TTk1QX1JFU0VUX1ZBUl9UWVBFUwogdm9pZAogc25tcF9yZXNldF92YXJfdHlwZXMobmV0c25tcF92YXJpYWJsZV9saXN0ICogdmJsLCB1X2NoYXIgbmV3X3R5cGUpCiB7CkBAIC0xMDA2LDYgKzEwMjIsNyBAQAogICAgICAgICB2YmwgPSB2YmwtPm5leHRfdmFyaWFibGU7CiAgICAgfQogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU05NUF9SRVNFVF9WQVJfVFlQRVMgKi8KIAogaW50CiBzbm1wX3N5bmNoX3Jlc3BvbnNlX2NiKG5ldHNubXBfc2Vzc2lvbiAqIHNzLApAQCAtMTIxMywxMiArMTIzMCwxNiBAQAogICoKICAqLwogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oPgorCiBzdGF0aWMgbmV0c25tcF9zZXNzaW9uICpfZGVmX3F1ZXJ5X3Nlc3Npb24gPSBOVUxMOworCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUVVFUllfU0VUX0RFRkFVTFRfU0VTU0lPTgogdm9pZAogbmV0c25tcF9xdWVyeV9zZXRfZGVmYXVsdF9zZXNzaW9uKCBuZXRzbm1wX3Nlc3Npb24gKnNlc3MpIHsKICAgICBERUJVR01TR1RMKCgiaXF1ZXJ5IiwgInNldCBkZWZhdWx0IHNlc3Npb24gJXBcbiIsIHNlc3MpKTsKICAgICBfZGVmX3F1ZXJ5X3Nlc3Npb24gPSBzZXNzOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUVVFUllfU0VUX0RFRkFVTFRfU0VTU0lPTiAqLwogCiAvKioKICAqIFJldHVybiBhIHBvaW50ZXIgdG8gdGhlIGRlZmF1bHQgaW50ZXJuYWwgcXVlcnkgc2Vzc2lvbi4KQEAgLTEzMTEsNiArMTMzMiw3IEBACiAgICAgICAgICAgICAgICAgICAgIERFQlVHTVNHVkFSKCgiaXF1ZXJ5OnJlc3VsdCIsIHZ0bXApKTsKICAgICAgICAgICAgICAgICBERUJVR01TRygoImlxdWVyeTpyZXN1bHQiLCAiXG4iKSk7CiAgICAgICAgICAgICB9CisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogICAgICAgICAgICAgaWYgKHJlcXVlc3QgIT0gU05NUF9NU0dfU0VUICYmCiAgICAgICAgICAgICAgICAgcmVzcG9uc2UtPmVycmluZGV4ICE9IDApIHsKICAgICAgICAgICAgICAgICBERUJVR01TR1RMKCgiaXF1ZXJ5IiwgInJldHJ5aW5nIHF1ZXJ5ICglZCwgJWxkKVxuIiwgcmV0LCByZXNwb25zZS0+ZXJyaW5kZXgpKTsKQEAgLTEzMjAsNiArMTM0Miw3IEBACiAgICAgICAgICAgICAgICAgaWYgKCBwZHUgIT0gTlVMTCApCiAgICAgICAgICAgICAgICAgICAgIGdvdG8gcmV0cnk7CiAgICAgICAgICAgICB9CisjZW5kaWYgLyogIU5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgZm9yICh2YjEgPSByZXNwb25zZS0+dmFyaWFibGVzLCB2YjIgPSBsaXN0OwogICAgICAgICAgICAgICAgICB2YjE7CkBAIC0xMzU5LDEwICsxMzgyLDEyIEBACiB9CiAKIAorI2lmbmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKIGludCBuZXRzbm1wX3F1ZXJ5X3NldChuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKmxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9zZXNzaW9uICAgICAgICpzZXNzaW9uKXsKICAgICByZXR1cm4gX3F1ZXJ5KCBsaXN0LCBTTk1QX01TR19TRVQsIHNlc3Npb24gKTsKIH0KKyNlbmRpZiAvKiAhTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKIC8qCiAgKiBBIHdhbGsgbmVlZHMgYSBiaXQgbW9yZSB3b3JrLgpAQCAtMTQ4MCw2ICsxNTA1LDggQEAKICAgICByZXR1cm4gaW5wdXQtPmxhc3RfcnVuLT5yZXN1bHQ7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfUk9XX0NSRUFURQogLyoqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogcm93IGNyZWF0ZSBzdGF0ZSBtYWNoaW5lIHN0ZXBzCkBAIC0xODU2LDYgKzE4ODMsOCBAQAogCiAgICAgcmV0dXJuIFNOTVBFUlJfU1VDQ0VTUzsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1JPV19DUkVBVEUgKi8KKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KIAogCiAvKiogQH0gKi8KZGlmZiAtLWdpdCBhL3NubXBsaWIvc25tcF9lbnVtLmMgYi9zbm1wbGliL3NubXBfZW51bS5jCmluZGV4IDM5OTY2ZmEuLjhhNmJkMzggMTAwNjQ0Ci0tLSBhL3NubXBsaWIvc25tcF9lbnVtLmMKKysrIGIvc25tcGxpYi9zbm1wX2VudW0uYwpAQCAtMSw0ICsxLDUgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaWZkZWYgSEFWRV9TVERMSUJfSAogI2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtMjIsNiArMjMsMTMgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yoc25tcF9lbnVtX2FsbCwgbGlibmV0c25tcCkKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHNlX2ZpbmRfZnJlZV92YWx1ZV9pbl9zbGlzdCwgc25tcF9lbnVtX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzbm1wX2VudW1fc3RvcmVfbGlzdCwgc25tcF9lbnVtX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzbm1wX2VudW1fc3RvcmVfc2xpc3QsIHNubXBfZW51bV9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yoc25tcF9lbnVtX2NsZWFyLCBzbm1wX2VudW1fYWxsKQorCiBzdHJ1Y3Qgc25tcF9lbnVtX2xpc3Rfc3RyIHsKICAgICBjaGFyICAgICAgICAgICAqbmFtZTsKICAgICBzdHJ1Y3Qgc25tcF9lbnVtX2xpc3QgKmxpc3Q7CkBAIC0xNzcsNiArMTg1LDcgQEAKICAgICByZWFkX2NvbmZpZ19zdG9yZSh0eXBlLCBsaW5lKTsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NOTVBfRU5VTV9TVE9SRV9MSVNUCiB2b2lkCiBzZV9zdG9yZV9saXN0KHVuc2lnbmVkIGludCBtYWpvciwgdW5zaWduZWQgaW50IG1pbm9yLCBjb25zdCBjaGFyICp0eXBlKQogewpAQCAtMTg1LDYgKzE5NCw3IEBACiAgICAgc25wcmludGYodG9rZW4sIHNpemVvZih0b2tlbiksICIlZDolZCIsIG1ham9yLCBtaW5vcik7CiAgICAgc2Vfc3RvcmVfZW51bV9saXN0KHNlX2ZpbmRfbGlzdChtYWpvciwgbWlub3IpLCB0b2tlbiwgdHlwZSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TTk1QX0VOVU1fU1RPUkVfTElTVCAqLwogCiBzdHJ1Y3Qgc25tcF9lbnVtX2xpc3QgKgogc2VfZmluZF9saXN0KHVuc2lnbmVkIGludCBtYWpvciwgdW5zaWduZWQgaW50IG1pbm9yKQpAQCAtMzMxLDE4ICszNDEsMTkgQEAKICAgICByZXR1cm4gKHNlX2ZpbmRfbGFiZWxfaW5fbGlzdChzZV9maW5kX3NsaXN0KGxpc3RuYW1lKSwgdmFsdWUpKTsKIH0KIAotCiBpbnQKIHNlX2ZpbmRfdmFsdWVfaW5fc2xpc3QoY29uc3QgY2hhciAqbGlzdG5hbWUsIGNvbnN0IGNoYXIgKmxhYmVsKQogewogICAgIHJldHVybiAoc2VfZmluZF92YWx1ZV9pbl9saXN0KHNlX2ZpbmRfc2xpc3QobGlzdG5hbWUpLCBsYWJlbCkpOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU0VfRklORF9GUkVFX1ZBTFVFX0lOX1NMSVNUCiBpbnQKIHNlX2ZpbmRfZnJlZV92YWx1ZV9pbl9zbGlzdChjb25zdCBjaGFyICpsaXN0bmFtZSkKIHsKICAgICByZXR1cm4gKHNlX2ZpbmRfZnJlZV92YWx1ZV9pbl9saXN0KHNlX2ZpbmRfc2xpc3QobGlzdG5hbWUpKSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TRV9GSU5EX0ZSRUVfVkFMVUVfSU5fU0xJU1QgKi8KIAogaW50CiBzZV9hZGRfcGFpcl90b19zbGlzdChjb25zdCBjaGFyICpsaXN0bmFtZSwgY2hhciAqbGFiZWwsIGludCB2YWx1ZSkKQEAgLTQyNywxMiArNDM4LDcgQEAKICAgICByZXR1cm47CiB9CiAKLXZvaWQKLXNlX2NsZWFyX3NsaXN0KGNvbnN0IGNoYXIgKmxpc3RuYW1lKQotewotICAgIHNlX2NsZWFyX2xpc3Qoc2VfZmluZF9zbGlzdF9wdHIobGlzdG5hbWUpKTsKLX0KLQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NOTVBfRU5VTV9TVE9SRV9TTElTVAogdm9pZAogc2Vfc3RvcmVfc2xpc3QoY29uc3QgY2hhciAqbGlzdG5hbWUsIGNvbnN0IGNoYXIgKnR5cGUpCiB7CkBAIC00NDksNiArNDU1LDE0IEBACiAgICAgc2Vfc3RvcmVfc2xpc3QoKGNoYXIgKiljbGllbnRhcmdzLCBhcHBuYW1lKTsKICAgICByZXR1cm4gU05NUEVSUl9TVUNDRVNTOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU05NUF9FTlVNX1NUT1JFX1NMSVNUICovCisKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TTk1QX0VOVU1fQ0xFQVIKK3ZvaWQKK3NlX2NsZWFyX3NsaXN0KGNvbnN0IGNoYXIgKmxpc3RuYW1lKQoreworICAgIHNlX2NsZWFyX2xpc3Qoc2VfZmluZF9zbGlzdF9wdHIobGlzdG5hbWUpKTsKK30KIAogdm9pZAogc2VfY2xlYXJfYWxsX2xpc3RzKHZvaWQpCkBAIC00NTgsMyArNDcyLDQgQEAKICAgICBmb3IgKHNwdHIgPSBzbGlzdHN0b3JhZ2U7IHNwdHIgIT0gTlVMTDsgc3B0ciA9IHNwdHItPm5leHQpCiAgICAgICAgIHNlX2NsZWFyX2xpc3QoJihzcHRyLT5saXN0KSk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TTk1QX0VOVU1fQ0xFQVIgKi8KZGlmZiAtLWdpdCBhL3NubXBsaWIvc25tcF9sb2dnaW5nLmMgYi9zbm1wbGliL3NubXBfbG9nZ2luZy5jCmluZGV4IGIzMGYxNjUuLmEyY2Q1NWEgMTAwNjQ0Ci0tLSBhL3NubXBsaWIvc25tcF9sb2dnaW5nLmMKKysrIGIvc25tcGxpYi9zbm1wX2xvZ2dpbmcuYwpAQCAtMTgsNiArMTgsNyBAQAogICogIEB7CiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaWYgSEFWRV9NQUxMT0NfSAogI2luY2x1ZGUgPG1hbGxvYy5oPgpAQCAtODQsNiArODUsMjIgQEAKICNlbmRpZgogI2VuZGlmCiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihsb2dnaW5nX2FsbCwgbGlibmV0c25tcCkKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGxvZ2dpbmdfb3V0cHV0cywgbG9nZ2luZ19hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YobG9nZ2luZ19maWxlLCBsb2dnaW5nX291dHB1dHMpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YobG9nZ2luZ19zdGRpbywgbG9nZ2luZ19vdXRwdXRzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGxvZ2dpbmdfc3lzbG9nLCBsb2dnaW5nX291dHB1dHMpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YobG9nZ2luZ19leHRlcm5hbCwgbG9nZ2luZ19hbGwpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihlbmFibGVfc3RkZXJybG9nLCBsb2dnaW5nX2FsbCkKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGxvZ2dpbmdfZW5hYmxlX2NhbGxsb2csIG5ldHNubXBfdW51c2VkKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGxvZ2dpbmdfZW5hYmxlX2xvZ2hhbmRsZXIsIG5ldHNubXBfdW51c2VkKQorCisvKiBkZWZhdWx0IHRvIHRoZSBmaWxlL3N0ZGlvL3N5c2xvZyBzZXQgKi8KK25ldHNubXBfZmVhdHVyZV93YW50KGxvZ2dpbmdfb3V0cHV0cykKKwogLyoKICAqIGxvZ2hfaGVhZDogIEEgbGlzdCBvZiBhbGwgbG9nIGhhbmRsZXJzLCBpbiBpbmNyZWFzaW5nIG9yZGVyIG9mIHByaW9yaXR5CiAgKiBsb2doX3ByaW9yaXRpZXM6ICAnSW5kZXhlcycgaW50byB0aGlzIGxpc3QsIGJ5IHByaW9yaXR5CkBAIC05Miw3ICsxMDksOSBAQAogbmV0c25tcF9sb2dfaGFuZGxlciAqbG9naF9wcmlvcml0aWVzW0xPR19ERUJVRysxXTsKIHN0YXRpYyBpbnQgIGxvZ2hfZW5hYmxlZCA9IDA7CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NZU0xPRwogc3RhdGljIGNoYXIgc3lzbG9nbmFtZVs2NF0gPSBERUZBVUxUX0xPR19JRDsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1lTTE9HICovCiAKIHZvaWQKIG5ldHNubXBfZGlzYWJsZV90aGlzX2xvZ2hhbmRsZXIobmV0c25tcF9sb2dfaGFuZGxlciAqbG9naCkKQEAgLTExMyw4ICsxMzIsMTAgQEAKICAgICArK2xvZ2hfZW5hYmxlZDsKIH0KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfRklMRQogdm9pZAogbmV0c25tcF9lbmFibGVfZmlsZWxvZyhuZXRzbm1wX2xvZ19oYW5kbGVyICpsb2doLCBpbnQgZG9udF96ZXJvX2xvZyk7CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX0ZJTEUgKi8KIAogI2lmbmRlZiBIQVZFX1ZTTlBSSU5URgogICAgICAgICAgICAgICAgIC8qCkBAIC0xNTQsNiArMTc1LDcgQEAKIC8qCiAgKiBUaGVzZSBkZWZpbml0aW9ucyBoYW5kbGUgNC4yIHN5c3RlbXMgd2l0aG91dCBhZGRpdGlvbmFsIHN5c2xvZyBmYWNpbGl0aWVzLgogICovCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TWVNMT0cKICNpZm5kZWYgTE9HX0NPTlMKICNkZWZpbmUgTE9HX0NPTlMJMCAgICAgICAvKiBEb24ndCBib3RoZXIgaWYgbm90IGRlZmluZWQuLi4gKi8KICNlbmRpZgpAQCAtMTkwLDYgKzIxMiw3IEBACiAjaWZuZGVmIExPR19VU0VSCiAjZGVmaW5lIExPR19VU0VSCTAKICNlbmRpZgorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TWVNMT0cgKi8KIAogLyogU2V0IGxpbmUgYnVmZmVyaW5nIG1vZGUgZm9yIGEgc3RyZWFtLiAqLwogdm9pZApAQCAtMjg1LDYgKzMwOCw3IEBACiAgICAgcmV0dXJuIHByaV9sb3c7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NZU0xPRwogaW50CiBkZWNvZGVfZmFjaWxpdHkoIGNoYXIgKm9wdGFyZyApCiB7CkBAIC0zMTksNiArMzQzLDcgQEAKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1lTTE9HICovCiAKIGludAogc25tcF9sb2dfb3B0aW9ucyhjaGFyICpvcHRhcmcsIGludCBhcmdjLCBjaGFyICpjb25zdCAqYXJndikKQEAgLTM3NSw2ICs0MDAsNyBAQAogICAgIERFQlVHTVNHVCgoImxvZ2dpbmc6b3B0aW9ucyIsICIqY3A6ICclYydcbiIsICpjcCkpOwogICAgIHN3aXRjaCAoKmNwKSB7CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NURElPCiAgICAgLyoKICAgICAgKiBMb2cgdG8gU3RhbmRhcmQgRXJyb3IKICAgICAgKi8KQEAgLTQxMSw2ICs0MzcsNyBAQAogICAgICAgICAgICAgbG9naC0+aW1hZ2ljICA9IDE7CSAgICAvKiBzdGRvdXQsIG5vdCBzdGRlcnIgKi8KIAl9CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TVERJTyAqLwogCiAgICAgLyoKICAgICAgKiBMb2cgdG8gYSBuYW1lZCBmaWxlCkBAIC00MjAsNiArNDQ3LDcgQEAKICAgICAgICAgaWYgKHByaW9yaXR5ID09IC0xIHx8ICFhcmd2KSAgcmV0dXJuIC0xOwogICAgICAgICBvcHRhcmcgPSBhcmd2Wysrb3B0aW5kXTsKICAgICAgICAgLyogRmFsbHRocm91Z2ggKi8KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX0ZJTEUKICAgICBjYXNlICdmJzoKICAgICAgICAgaWYgKGluY19vcHRpbmQpCiAgICAgICAgICAgICBvcHRpbmQrKzsKQEAgLTQzNiw3ICs0NjQsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCX0FQUEVORF9MT0dGSUxFUykpOwogCX0KICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX0ZJTEUgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1lTTE9HCiAgICAgLyoKICAgICAgKiBMb2cgdG8gc3lzbG9nCiAgICAgICovCkBAIC00NjgsNiArNDk4LDcgQEAKIAkgICAgc25tcF9lbmFibGVfc3lzbG9nX2lkZW50KHNubXBfbG9nX3N5c2xvZ25hbWUoTlVMTCksIGZhY2lsaXR5KTsKIAl9CiAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TWVNMT0cgKi8KIAogICAgIC8qCiAgICAgICogRG9uJ3QgbG9nIApAQCAtNDk5LDYgKzUzMCw3IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NZU0xPRwogY2hhciAqCiBzbm1wX2xvZ19zeXNsb2duYW1lKGNvbnN0IGNoYXIgKnBzdHIpCiB7CkBAIC01MDcsMjAgKzUzOSwyOSBAQAogCiAgIHJldHVybiBzeXNsb2duYW1lOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TWVNMT0cgKi8KIAogdm9pZAogc25tcF9sb2dfb3B0aW9uc191c2FnZShjb25zdCBjaGFyICpsZWFkLCBGSUxFICogb3V0ZikKIHsKICAgICBjb25zdCBjaGFyICpwcmkxX21zZyA9ICIgZm9yIGxldmVsICdwcmknIGFuZCBhYm92ZSI7CiAgICAgY29uc3QgY2hhciAqcHJpMl9tc2cgPSAiIGZvciBsZXZlbHMgJ3AxJyB0byAncDInIjsKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NURElPCiAgICAgZnByaW50ZihvdXRmLCAiJXNlOiAgICAgICAgICAgbG9nIHRvIHN0YW5kYXJkIGVycm9yXG4iLCBsZWFkKTsKICAgICBmcHJpbnRmKG91dGYsICIlc286ICAgICAgICAgICBsb2cgdG8gc3RhbmRhcmQgb3V0cHV0XG4iLCBsZWFkKTsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1RESU8gKi8KICAgICBmcHJpbnRmKG91dGYsICIlc246ICAgICAgICAgICBkb24ndCBsb2cgYXQgYWxsXG4iLCBsZWFkKTsKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX0ZJTEUKICAgICBmcHJpbnRmKG91dGYsICIlc2YgZmlsZTogICAgICBsb2cgdG8gdGhlIHNwZWNpZmllZCBmaWxlXG4iLCBsZWFkKTsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfRklMRSAqLworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1lTTE9HCiAgICAgZnByaW50ZihvdXRmLCAiJXNzIGZhY2lsaXR5OiAgbG9nIHRvIHN5c2xvZyAodmlhIHRoZSBzcGVjaWZpZWQgZmFjaWxpdHkpXG4iLCBsZWFkKTsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1lTTE9HICovCiAgICAgZnByaW50ZihvdXRmLCAiXG4lcyh2YXJpYW50cylcbiIsIGxlYWQpOworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfRklMRQogICAgIGZwcmludGYob3V0ZiwgIiVzW0VPTl0gcHJpOiAgIGxvZyB0byBzdGFuZGFyZCBlcnJvciwgb3V0cHV0IG9yIC9kZXYvbnVsbCVzXG4iLCBsZWFkLCBwcmkxX21zZyk7CiAgICAgZnByaW50ZihvdXRmLCAiJXNbRU9OXSBwMS1wMjogbG9nIHRvIHN0YW5kYXJkIGVycm9yLCBvdXRwdXQgb3IgL2Rldi9udWxsJXNcbiIsIGxlYWQsIHByaTJfbXNnKTsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfRklMRSAqLwogICAgIGZwcmludGYob3V0ZiwgIiVzW0ZTXSBwcmkgdG9rZW46ICAgIGxvZyB0byBmaWxlL3N5c2xvZyVzXG4iLCBsZWFkLCBwcmkxX21zZyk7CiAgICAgZnByaW50ZihvdXRmLCAiJXNbRlNdIHAxLXAyIHRva2VuOiAgbG9nIHRvIGZpbGUvc3lzbG9nJXNcbiIsIGxlYWQsIHByaTJfbXNnKTsKIH0KQEAgLTU1NSw2ICs1OTYsNyBAQAogICAgIHJldHVybiBzYnVmOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TWVNMT0cKIHZvaWQKIHNubXBfZGlzYWJsZV9zeXNsb2dfZW50cnkobmV0c25tcF9sb2dfaGFuZGxlciAqbG9naCkKIHsKQEAgLTU4NCw3ICs2MjYsOSBAQAogICAgICAgICBpZiAobG9naC0+ZW5hYmxlZCAmJiBsb2doLT50eXBlID09IE5FVFNOTVBfTE9HSEFORExFUl9TWVNMT0cpCiAgICAgICAgICAgICBzbm1wX2Rpc2FibGVfc3lzbG9nX2VudHJ5KGxvZ2gpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TWVNMT0cgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfRklMRQogdm9pZAogc25tcF9kaXNhYmxlX2ZpbGVsb2dfZW50cnkobmV0c25tcF9sb2dfaGFuZGxlciAqbG9naCkKIHsKQEAgLTU5OCw3ICs2NDIsOSBAQAogICAgIH0KICAgICBuZXRzbm1wX2Rpc2FibGVfdGhpc19sb2doYW5kbGVyKGxvZ2gpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19GSUxFICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX0ZJTEUKIHZvaWQKIHNubXBfZGlzYWJsZV9maWxlbG9nKHZvaWQpCiB7CkBAIC02MDgsNyArNjU0LDkgQEAKICAgICAgICAgaWYgKGxvZ2gtPmVuYWJsZWQgJiYgbG9naC0+dHlwZSA9PSBORVRTTk1QX0xPR0hBTkRMRVJfRklMRSkKICAgICAgICAgICAgIHNubXBfZGlzYWJsZV9maWxlbG9nX2VudHJ5KGxvZ2gpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19GSUxFICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NURElPCiAvKgogICogcmV0dXJucyB0aGF0IHN0YXR1cyBvZiBzdGRlcnIgbG9nZ2luZwogICoKQEAgLTY0MCw3ICs2ODgsOSBAQAogICAgICAgICAgICAgbmV0c25tcF9kaXNhYmxlX3RoaXNfbG9naGFuZGxlcihsb2doKTsKIAl9CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NURElPICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX0VOQUJMRV9DQUxMTE9HCiB2b2lkCiBzbm1wX2Rpc2FibGVfY2FsbGxvZyh2b2lkKQogewpAQCAtNjUxLDYgKzcwMSw3IEBACiAgICAgICAgICAgICBuZXRzbm1wX2Rpc2FibGVfdGhpc19sb2doYW5kbGVyKGxvZ2gpOwogCX0KIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfRU5BQkxFX0NBTExMT0cgKi8KIAogdm9pZAogc25tcF9kaXNhYmxlX2xvZyh2b2lkKQpAQCAtNjU4LDEwICs3MDksMTQgQEAKICAgICBuZXRzbm1wX2xvZ19oYW5kbGVyICpsb2doOwogCiAgICAgZm9yIChsb2doID0gbG9naF9oZWFkOyBsb2doOyBsb2doID0gbG9naC0+bmV4dCkgeworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1lTTE9HCiAgICAgICAgIGlmIChsb2doLT50eXBlID09IE5FVFNOTVBfTE9HSEFORExFUl9TWVNMT0cpCiAgICAgICAgICAgICBzbm1wX2Rpc2FibGVfc3lzbG9nX2VudHJ5KGxvZ2gpOworI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TWVNMT0cgKi8KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX0ZJTEUKICAgICAgICAgaWYgKGxvZ2gtPnR5cGUgPT0gTkVUU05NUF9MT0dIQU5ETEVSX0ZJTEUpCiAgICAgICAgICAgICBzbm1wX2Rpc2FibGVfZmlsZWxvZ19lbnRyeShsb2doKTsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfRklMRSAqLwogICAgICAgICBuZXRzbm1wX2Rpc2FibGVfdGhpc19sb2doYW5kbGVyKGxvZ2gpOwogICAgIH0KIH0KQEAgLTY3NCwxNSArNzI5LDIwIEBACiBuZXRzbm1wX2xvZ2dpbmdfcmVzdGFydCh2b2lkKQogewogICAgIG5ldHNubXBfbG9nX2hhbmRsZXIgKmxvZ2g7CisgICAgaW50IGRvbmVvbmUgPSAwOwogCiAgICAgZm9yIChsb2doID0gbG9naF9oZWFkOyBsb2doOyBsb2doID0gbG9naC0+bmV4dCkgewogICAgICAgICBpZiAoMCA9PSBsb2doLT5lbmFibGVkKQogICAgICAgICAgICAgY29udGludWU7CisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TWVNMT0cKICAgICAgICAgaWYgKGxvZ2gtPnR5cGUgPT0gTkVUU05NUF9MT0dIQU5ETEVSX1NZU0xPRykgewogICAgICAgICAgICAgc25tcF9kaXNhYmxlX3N5c2xvZ19lbnRyeShsb2doKTsKICAgICAgICAgICAgIHNubXBfZW5hYmxlX3N5c2xvZ19pZGVudChsb2doLT50b2tlbiwoaW50KShpbnRwdHJfdClsb2doLT5tYWdpYyk7CisgICAgICAgICAgICBkb25lb25lID0gMTsKICAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChsb2doLT50eXBlID09IE5FVFNOTVBfTE9HSEFORExFUl9GSUxFKSB7CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NZU0xPRyAqLworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfRklMRQorICAgICAgICBpZiAobG9naC0+dHlwZSA9PSBORVRTTk1QX0xPR0hBTkRMRVJfRklMRSAmJiAhZG9uZW9uZSkgewogICAgICAgICAgICAgc25tcF9kaXNhYmxlX2ZpbGVsb2dfZW50cnkobG9naCk7CiAgICAgICAgICAgICAvKiogaG1tLCBkb24ndCB6ZXJvIHN0YXR1cyBpc24ndCBzYXZlZC4uIGkgdGhpbmsgaXQncwogICAgICAgICAgICAgICogc2FmZXIgbm90IHRvIG92ZXJ3cml0ZSwgaW4gY2FzZSBhIGh1cCBpcyBqdXN0IHRvCkBAIC02OTAsMTEgKzc1MCwxMyBAQAogICAgICAgICAgICAgICovCiAgICAgICAgICAgICBuZXRzbm1wX2VuYWJsZV9maWxlbG9nKGxvZ2gsIDEpOwogICAgICAgICB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX0ZJTEUgKi8KICAgICB9CiB9CiAKIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NZU0xPRwogdm9pZAogc25tcF9lbmFibGVfc3lzbG9nKHZvaWQpCiB7CkBAIC03NTQsNyArODE2LDkgQEAKICAgICAgICAgfQogICAgIH0KIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1lTTE9HICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX0ZJTEUKIHZvaWQKIG5ldHNubXBfZW5hYmxlX2ZpbGVsb2cobmV0c25tcF9sb2dfaGFuZGxlciAqbG9naCwgaW50IGRvbnRfemVyb19sb2cpCiB7CkBAIC04MDQsOCArODY4LDExIEBACiAgICAgICAgICAgICAgICAgbmV0c25tcF9lbmFibGVfZmlsZWxvZyhsb2doLCBkb250X3plcm9fbG9nKTsKICAgICB9CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX0ZJTEUgKi8KIAogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfRU5BQkxFX1NUREVSUkxPRworLyogdXNlZCBpbiB0aGUgcGVybCBtb2R1bGVzIGFuZCBpcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VudC5jICovCiB2b2lkCiBzbm1wX2VuYWJsZV9zdGRlcnJsb2codm9pZCkKIHsKQEAgLTgyNiw4ICs4OTMsOSBAQAogICAgICAgICAgICAgbG9naC0+dG9rZW4gICAgPSBzdHJkdXAoInN0ZGVyciIpOwogICAgIH0KIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0VOQUJMRV9TVERFUlJMT0cgKi8KIAotCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19FTkFCTEVfQ0FMTExPRwogdm9pZAogc25tcF9lbmFibGVfY2FsbGxvZyh2b2lkKQkvKiBYWFggLSBvciB0YWtlIGEgY2FsbGJhY2sgcm91dGluZSA/Pz8gKi8KIHsKQEAgLTg0Nyw3ICs5MTUsNyBAQAogICAgICAgICAgICAgbG9naC0+dG9rZW4gICAgPSBzdHJkdXAoImNhbGxiYWNrIik7CiAgICAgfQogfQotCisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX0VOQUJMRV9DQUxMTE9HICovCiAKIAogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwpAQCAtOTMzLDE3ICsxMDAxLDIzIEBACiAgICAgY2FzZSBORVRTTk1QX0xPR0hBTkRMRVJfU1RET1VUOgogICAgICAgICBsb2doLT5pbWFnaWMgID0gMTsKICAgICAgICAgLyogZmFsbHRocm91Z2ggKi8KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NURElPCiAgICAgY2FzZSBORVRTTk1QX0xPR0hBTkRMRVJfU1RERVJSOgogICAgICAgICBsb2doLT5oYW5kbGVyID0gbG9nX2hhbmRsZXJfc3Rkb3V0ZXJyOwogICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1RESU8gKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfRklMRQogICAgIGNhc2UgTkVUU05NUF9MT0dIQU5ETEVSX0ZJTEU6CiAgICAgICAgIGxvZ2gtPmhhbmRsZXIgPSBsb2dfaGFuZGxlcl9maWxlOwogICAgICAgICBsb2doLT5pbWFnaWMgID0gMTsKICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX0ZJTEUgKi8KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NZU0xPRwogICAgIGNhc2UgTkVUU05NUF9MT0dIQU5ETEVSX1NZU0xPRzoKICAgICAgICAgbG9naC0+aGFuZGxlciA9IGxvZ19oYW5kbGVyX3N5c2xvZzsKICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NZU0xPRyAqLwogICAgIGNhc2UgTkVUU05NUF9MT0dIQU5ETEVSX0NBTExCQUNLOgogICAgICAgICBsb2doLT5oYW5kbGVyID0gbG9nX2hhbmRsZXJfY2FsbGJhY2s7CiAgICAgICAgIGJyZWFrOwpAQCAtOTYxLDYgKzEwMzUsNyBAQAogfQogCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX0VOQUJMRV9MT0dIQU5ETEVSCiBpbnQKIG5ldHNubXBfZW5hYmxlX2xvZ2hhbmRsZXIoIGNvbnN0IGNoYXIgKnRva2VuICkKIHsKQEAgLTk4NSw2ICsxMDYwLDcgQEAKICAgICBuZXRzbm1wX2Rpc2FibGVfdGhpc19sb2doYW5kbGVyKGxvZ2gpOwogICAgIHJldHVybiAxOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19FTkFCTEVfTE9HSEFORExFUiAqLwogCiBpbnQKIG5ldHNubXBfcmVtb3ZlX2xvZ2hhbmRsZXIoIG5ldHNubXBfbG9nX2hhbmRsZXIgKmxvZ2ggKQpAQCAtMTAxMSw2ICsxMDg3LDcgQEAKIAogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TVERJTwogaW50CiBsb2dfaGFuZGxlcl9zdGRvdXRlcnIoICBuZXRzbm1wX2xvZ19oYW5kbGVyKiBsb2doLCBpbnQgcHJpLCBjb25zdCBjaGFyICpzdHIpCiB7CkBAIC0xMDM4LDggKzExMTUsMTAgQEAKIAogICAgIHJldHVybiAxOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TVERJTyAqLwogCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NZU0xPRwogI2lmZGVmIFdJTjMyCiBpbnQKIGxvZ19oYW5kbGVyX3N5c2xvZyggIG5ldHNubXBfbG9nX2hhbmRsZXIqIGxvZ2gsIGludCBwcmksIGNvbnN0IGNoYXIgKnN0cikKQEAgLTExMjMsOCArMTIwMiwxMCBAQAogICAgIHJldHVybiAxOwogfQogI2VuZGlmIC8qICFXSU4zMiAqLworI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TWVNMT0cgKi8KIAogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19GSUxFCiBpbnQKIGxvZ19oYW5kbGVyX2ZpbGUoICAgIG5ldHNubXBfbG9nX2hhbmRsZXIqIGxvZ2gsIGludCBwcmksIGNvbnN0IGNoYXIgKnN0cikKIHsKQEAgLTExNjEsNiArMTI0Miw3IEBACiAgICAgbG9naC0+aW1hZ2ljID0gc3RyW3N0cmxlbihzdHIpIC0gMV0gPT0gJ1xuJzsKICAgICByZXR1cm4gMTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfRklMRSAqLwogCiBpbnQKIGxvZ19oYW5kbGVyX2NhbGxiYWNrKG5ldHNubXBfbG9nX2hhbmRsZXIqIGxvZ2gsIGludCBwcmksIGNvbnN0IGNoYXIgKnN0cikKQEAgLTExOTUsMTAgKzEyNzcsMTIgQEAKIHZvaWQKIHNubXBfbG9nX3N0cmluZyhpbnQgcHJpb3JpdHksIGNvbnN0IGNoYXIgKnN0cikKIHsKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NURElPCiAgICAgc3RhdGljIGludCBzdGRlcnJfZW5hYmxlZCA9IDA7CiAgICAgc3RhdGljIG5ldHNubXBfbG9nX2hhbmRsZXIgbGggPSB7IDEsIDAsIDAsIDAsICJzdGRlcnIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dfaGFuZGxlcl9zdGRvdXRlcnIsIDAsIE5VTEwsICBOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMIH07CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NURElPICovCiAgICAgbmV0c25tcF9sb2dfaGFuZGxlciAqbG9naDsKIAogICAgIC8qCkBAIC0xMjA2LDIxICsxMjkwLDIzIEBACiAgICAgICogSWYgeW91IGRvbid0IHdhbnQgc3RkZXJyIGxvZ2dpbmcsIHRoZW4gZW5hYmxlIHNvbWV0aGluZyBlbHNlLgogICAgICAqLwogICAgIGlmICgwID09IGxvZ2hfZW5hYmxlZCkgeworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfU1RESU8KICAgICAgICAgaWYgKCFzdGRlcnJfZW5hYmxlZCkgewogICAgICAgICAgICAgKytzdGRlcnJfZW5hYmxlZDsKICAgICAgICAgICAgIG5ldHNubXBfc2V0X2xpbmVfYnVmZmVyaW5nKHN0ZGVycik7Ci0gICAgICAgICAgICBsb2dfaGFuZGxlcl9zdGRvdXRlcnIoICZsaCwgTE9HX1dBUk5JTkcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBsb2cgaGFuZGxpbmcgZW5hYmxlZCAtIHVzaW5nIHN0ZGVyciBsb2dnaW5nXG4iKTsKICAgICAgICAgfQogICAgICAgICBsb2dfaGFuZGxlcl9zdGRvdXRlcnIoICZsaCwgcHJpb3JpdHksIHN0ciApOworI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TVERJTyAqLwogCiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTE9HR0lOR19TVERJTwogICAgIGVsc2UgaWYgKHN0ZGVycl9lbmFibGVkKSB7CiAgICAgICAgIHN0ZGVycl9lbmFibGVkID0gMDsKICAgICAgICAgbG9nX2hhbmRsZXJfc3Rkb3V0ZXJyKCAmbGgsIExPR19JTkZPLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMb2cgaGFuZGxpbmcgZGVmaW5lZCAtIGRpc2FibGluZyBzdGRlcnJcbiIgKTsKICAgICB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX1NURElPICovCiAgICAgICAgIAogCiAgICAgLyoKQEAgLTEzNjQsMTEgKzE0NTAsMTMgQEAKICAgICB9CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9MT0dHSU5HX0VYVEVSTkFMCiAvKiBleHRlcm5hbCBhY2Nlc3MgdG8gbG9naF9oZWFkIHZhcmlhYmxlICovCiBuZXRzbm1wX2xvZ19oYW5kbGVyICAqCiBnZXRfbG9naF9oZWFkKHZvaWQpCiB7CiAJcmV0dXJuIGxvZ2hfaGVhZDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0xPR0dJTkdfRVhURVJOQUwgKi8KIAogLyoqICBAfSAqLwpkaWZmIC0tZ2l0IGEvc25tcGxpYi9zbm1wX29wZW5zc2wuYyBiL3NubXBsaWIvc25tcF9vcGVuc3NsLmMKaW5kZXggZTEzZTU5ZS4uM2IwZWFhOCAxMDA2NDQKLS0tIGEvc25tcGxpYi9zbm1wX29wZW5zc2wuYworKysgYi9zbm1wbGliL3NubXBfb3BlbnNzbC5jCkBAIC02LDcgKzYsMTYgQEAKIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAKLSNpZiBkZWZpbmVkKE5FVFNOTVBfVVNFX09QRU5TU0wpICYmIGRlZmluZWQoSEFWRV9MSUJTU0wpCisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KKworI2lmIGRlZmluZWQoTkVUU05NUF9VU0VfT1BFTlNTTCkgJiYgZGVmaW5lZChIQVZFX0xJQlNTTCkgJiYgIWRlZmluZWQoTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DRVJUX1VUSUwpCisKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNvbnRhaW5lcl9mcmVlX2FsbCkKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKG9wZW5zc2xfY2VydF9nZXRfc3ViamVjdEFsdE5hbWVzLCBuZXRzbm1wX3VudXNlZCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihvcGVuc3NsX2h0Mm5pZCwgbmV0c25tcF91bnVzZWQpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yob3BlbnNzbF9lcnJfbG9nLCBuZXRzbm1wX3VudXNlZCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjZXJ0X2R1bXBfbmFtZXMsIG5ldHNubXBfdW51c2VkKQogCiAjaW5jbHVkZSA8Y3R5cGUuaD4KIApAQCAtMTMxLDYgKzE0MCw3IEBACiAgICAgcmV0dXJuIF9jZXJ0X2dldF9uYW1lKG9jZXJ0LCBOSURfY29tbW9uTmFtZSwgYnVmLCBsZW4sIDApOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0VSVF9EVU1QX05BTUVTCiAvKiogbmV0c25tcF9vcGVuc3NsX2NlcnRfZHVtcF9uYW1lOiBkdW1wIHN1YmplY3QgbmFtZXMgaW4gY2VydAogICovCiB2b2lkCkBAIC0xNzQsNiArMTg0LDcgQEAKICAgICAgICAgICAgICAgICAgICBwcmVmaXhfc2hvcnQsIEFTTjFfU1RSSU5HX2RhdGEob25hbWVfZW50cnktPnZhbHVlKSkpOwogICAgIH0KIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0NFUlRfRFVNUF9OQU1FUyAqLwogCiBzdGF0aWMgY2hhciAqCiBfY2VydF9nZXRfZXh0ZW5zaW9uKFg1MDlfRVhURU5TSU9OICAqb2V4dCwgY2hhciAqKmJ1ZiwgaW50ICpsZW4sIGludCBmbGFncykKQEAgLTM2OCw4ICszNzksNyBAQAogICAgIHJldHVybiBydG47CiB9CiAKLS8qKgotICovCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfT1BFTlNTTF9DRVJUX0dFVF9TVUJKRUNUQUxUTkFNRVMKIC8qKiBuZXRzbm1wX29wZW5zc2xfY2VydF9nZXRfc3ViamVjdEFsdE5hbWU6IGdldCBzdWJqZWN0QWx0TmFtZSBmb3IgY2VydC4KICAqIGlmIGEgcG9pbnRlciB0byBhIGJ1ZmZlciBhbmQgaXRzIGxlbmd0aCBhcmUgc3BlY2lmaWVkLCB0aGV5IHdpbGwgYmUKICAqIHVzZWQuIG90aGVyd2lzZSwgYSBuZXcgYnVmZmVyIHdpbGwgYmUgYWxsb2NhdGVkLCB3aGljaCB0aGUgY2FsbGVyIHdpbGwKQEAgLTM4MCw2ICszOTAsNyBAQAogewogICAgIHJldHVybiBfY2VydF9nZXRfZXh0ZW5zaW9uX2lkX3N0cihvY2VydCwgTklEX3N1YmplY3RfYWx0X25hbWUsIGJ1ZiwgbGVuLCAwKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX09QRU5TU0xfQ0VSVF9HRVRfU1VCSkVDVEFMVE5BTUVTICovCiAKIHZvaWQKIG5ldHNubXBfb3BlbnNzbF9jZXJ0X2R1bXBfZXh0ZW5zaW9ucyhYNTA5ICpvY2VydCkKQEAgLTQ0MCw2ICs0NTEsNyBAQAogICAgIHJldHVybiAwOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfT1BFTlNTTF9IVDJOSUQKIGludAogX2h0Mm5pZChpbnQgaHQpCiB7CkBAIC00NDcsNiArNDU5LDcgQEAKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIF9odG1hcFtodF07CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9PUEVOU1NMX0hUMk5JRCAqLwogCiAvKioKICAqIHJldHVybnMgYWxsb2NhdGVkIHBvaW50ZXIgY2FsbGVyIG11c3QgZnJlZS4KQEAgLTQ5NSw3ICs1MDgsNyBAQAogICAgICAgICAgICAgZGlnZXN0ID0gRVZQX3NoYTEoKTsKICAgICAgICAgICAgIGJyZWFrOwogCi0jaWZuZGVmIE9QRU5TU0xfTk9fU0hBMjU2CisjaWZkZWYgSEFWRV9FVlBfU0hBMjI0CiAgICAgICAgIGNhc2UgTlNfSEFTSF9TSEEyMjQ6CiAgICAgICAgICAgICBkaWdlc3QgPSBFVlBfc2hhMjI0KCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTUwNSw3ICs1MTgsNyBAQAogICAgICAgICAgICAgYnJlYWs7CiAKICNlbmRpZgotI2lmbmRlZiBPUEVOU1NMX05PX1NIQTUxMgorI2lmZGVmIEhBVkVfRVZQX1NIQTM4NAogICAgICAgICBjYXNlIE5TX0hBU0hfU0hBMzg0OgogICAgICAgICAgICAgZGlnZXN0ID0gRVZQX3NoYTM4NCgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC03OTksNiArODEyLDcgQEAKIH0KIAogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfT1BFTlNTTF9FUlJfTE9HCiB2b2lkCiBuZXRzbm1wX29wZW5zc2xfZXJyX2xvZyhjb25zdCBjaGFyICpwcmVmaXgpCiB7CkBAIC04MDksNiArODIzLDcgQEAKICAgICAgICAgICAgICAgICAgRVJSX0dFVF9MSUIoZXJyKSwgRVJSX0dFVF9GVU5DKGVyciksIEVSUl9HRVRfUkVBU09OKGVycikpOwogICAgIH0KIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX09QRU5TU0xfRVJSX0xPRyAqLwogCiB2b2lkCiBuZXRzbm1wX29wZW5zc2xfbnVsbF9jaGVja3MoU1NMICpzc2wsIGludCAqbnVsbF9hdXRoLCBpbnQgKm51bGxfY2lwaGVyKQpAQCAtODYxLDQgKzg3Niw0IEBACiAgICAgfQogfQogCi0jZW5kaWYgLyogTkVUU05NUF9VU0VfT1BFTlNTTCAmJiBIQVZFX0xJQlNTTCAqLworI2VuZGlmIC8qIE5FVFNOTVBfVVNFX09QRU5TU0wgJiYgSEFWRV9MSUJTU0wgJiYgIWRlZmluZWQoTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DRVJUX1VUSUwpICovCmRpZmYgLS1naXQgYS9zbm1wbGliL3NubXBfcGFyc2VfYXJncy5jIGIvc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYwppbmRleCA5NDdhNzhhLi42ODQyZDBlIDEwMDY0NAotLS0gYS9zbm1wbGliL3NubXBfcGFyc2VfYXJncy5jCisrKyBiL3NubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMKQEAgLTIxMCw3ICsyMTAsNyBAQAogICAgICAqIGluaXRpYWxpemUgc2Vzc2lvbiB0byBkZWZhdWx0IHZhbHVlcyAKICAgICAgKi8KICAgICBzbm1wX3Nlc3NfaW5pdChzZXNzaW9uKTsKLSAgICBzdHJjcHkoT3B0cywgIlk6VmhIbTpNOk86STpQOkQ6ZHY6cjp0OmM6WjplOkU6bjp1Omw6eDpYOmE6QTpwOlQ6LTozOnM6UzpMOiIpOworICAgIHN0cmNweShPcHRzLCAiWTpWaEhtOk06TzpJOlA6RDpkdjpyOnQ6YzpaOmU6RTpuOnU6bDp4Olg6YTpBOnA6VDotOjM6TDoiKTsKICAgICBpZiAobG9jYWxPcHRzKSB7CiAgICAgICAgIGlmIChzdHJsZW4obG9jYWxPcHRzKSArIHN0cmxlbihPcHRzKSA+PSBzaXplb2YoT3B0cykpIHsKICAgICAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJUb28gbWFueSBsb2NhbE9wdHMgaW4gc25tcF9wYXJzZV9hcmdzKClcbiIpOwpAQCAtNTU3LDYgKzU1Nyw3IEBACiAKICAgICAgICAgICAgIGJyZWFrOwogCisjaWZkZWYgTkVUU05NUF9TRUNNT0RfVVNNCiAgICAgICAgIGNhc2UgJ2EnOgogI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfTUQ1CiAgICAgICAgICAgICBpZiAoIXN0cmNhc2VjbXAob3B0YXJnLCAiTUQ1IikpIHsKQEAgLTYzMCw2ICs2MzEsNyBAQAogCSAgICB9CiAgICAgICAgICAgICBicmVhazsKICNlbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU05NUFYzX0NNRF9PUFRJT05TICovCisjZW5kaWYgLyogTkVUU05NUF9TRUNNT0RfVVNNICovCiAKICAgICAgICAgY2FzZSAnPyc6CiAgICAgICAgICAgICByZXR1cm4gKE5FVFNOTVBfUEFSU0VfQVJHU19FUlJPUl9VU0FHRSk7CkBAIC02OTAsNiArNjkyLDkgQEAKICAgICAgICAgfQogICAgIH0KIAorI2lmZGVmIE5FVFNOTVBfU0VDTU9EX1VTTQorICAgIC8qIFhYWDogdGhpcyBzaG91bGQgaWRlYWxseSBiZSBtb3ZlZCB0byBzbm1wdXNtLmMgc29tZWhvdyAqLworCiAgICAgLyoKICAgICAgKiBtYWtlIG1hc3RlciBrZXkgZnJvbSBwYXNzIHBocmFzZXMgCiAgICAgICovCkBAIC03NzAsNiArNzc1LDggQEAKICAgICAgICAgICAgIHJldHVybiAoTkVUU05NUF9QQVJTRV9BUkdTX0VSUk9SKTsKICAgICAgICAgfQogICAgIH0KKyNlbmRpZiAvKiBORVRTTk1QX1NFQ01PRF9VU00gKi8KKwogICAgIC8qCiAgICAgICogZ2V0IHRoZSBob3N0bmFtZSAKICAgICAgKi8KZGlmZiAtLWdpdCBhL3NubXBsaWIvc25tcF9zZWNtb2QuYyBiL3NubXBsaWIvc25tcF9zZWNtb2QuYwppbmRleCBhOGNmOTI4Li45ZTYwYTQyIDEwMDY0NAotLS0gYS9zbm1wbGliL3NubXBfc2VjbW9kLmMKKysrIGIvc25tcGxpYi9zbm1wX3NlY21vZC5jCkBAIC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmg+CiAKKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgorCiBzdGF0aWMgc3RydWN0IHNubXBfc2VjbW9kX2xpc3QgKnJlZ2lzdGVyZWRfc2VydmljZXMgPSBOVUxMOwogCiBzdGF0aWMgU05NUENhbGxiYWNrIHNldF9kZWZhdWx0X3NlY21vZDsKQEAgLTUxLDYgKzUzLDExIEBACiAjaW5jbHVkZSAic25tcHNtX2luaXQuaCIKIH0KIAordm9pZAorc2h1dGRvd25fc2VjbW9kKHZvaWQpCit7CisgICAgI2luY2x1ZGUgInNubXBzbV9zaHV0ZG93bi5oIgorfQogCiBpbnQKIHJlZ2lzdGVyX3NlY19tb2QoaW50IHNlY21vZCwgY29uc3QgY2hhciAqbW9kbmFtZSwKQEAgLTk5LDYgKzEwNiw4IEBACiAgICAgcmV0dXJuIFNOTVBFUlJfU1VDQ0VTUzsKIH0KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHVucmVnaXN0ZXJfc2VjX21vZCwgbmV0c25tcF91bnVzZWQpCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVU5SRUdJU1RFUl9TRUNfTU9ECiBpbnQKIHVucmVnaXN0ZXJfc2VjX21vZChpbnQgc2VjbW9kKQogewpAQCAtMTIxLDYgKzEzMCw3IEBACiAgICAgICovCiAgICAgcmV0dXJuIFNOTVBFUlJfR0VORVJSOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVU5SRUdJU1RFUl9TRUNfTU9EICovCiAKIHZvaWQgICAgICAgICAgICAKIGNsZWFyX3NlY19tb2Qodm9pZCkKQEAgLTE1Myw2ICsxNjMsMTkgQEAKICAgICByZXR1cm4gTlVMTDsKIH0KIAorLyogdHJ5IHRvIHBpY2sgYSByZWFzb25hYmxlIHNlY3VyaXR5IG1vZHVsZSBkZWZhdWx0IGJhc2VkIG9uIHdoYXQgd2FzCisgICBjb21waWxlZCBpbnRvIHRoZSBuZXQtc25tcCBwYWNrYWdlICovCisjaWZkZWYgVVNNX1NFQ19NT0RFTF9OVU1CRVIKKyNkZWZpbmUgTkVUU05NUF9TRUNNT0RfREVGQVVMVF9NT0RFTCAgVVNNX1NFQ19NT0RFTF9OVU1CRVIKKyNlbGlmIGRlZmluZWQoVFNNX1NFQ19NT0RFTF9OVU1CRVIpCisjZGVmaW5lIE5FVFNOTVBfU0VDTU9EX0RFRkFVTFRfTU9ERUwgIFRTTV9TRUNfTU9ERUxfTlVNQkVSCisjZWxpZiBkZWZpbmVkKEtTTV9TRUNfTU9ERUxfTlVNQkVSKQorI2RlZmluZSBORVRTTk1QX1NFQ01PRF9ERUZBVUxUX01PREVMICBLU01fU0VDX01PREVMX05VTUJFUgorI2Vsc2UKKy8qIGVsc2Ugd2UgZ2l2ZSB1cCBhbmQgbGVhdmUgaXQgYmxhbmsgKi8KKyNkZWZpbmUgTkVUU05NUF9TRUNNT0RfREVGQVVMVF9NT0RFTCAgLTEKKyNlbmRpZgorCiBzdGF0aWMgaW50CiBzZXRfZGVmYXVsdF9zZWNtb2QoaW50IG1ham9yLCBpbnQgbWlub3IsIHZvaWQgKnNlcnZlcmFyZywgdm9pZCAqY2xpZW50YXJnKQogewpAQCAtMTcyLDExICsxOTUsMTEgQEAKICAgICAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLAogICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmtub3duIHNlY3VyaXR5IG1vZGVsIG5hbWU6ICVzLiAgRm9yY2luZyBVU00gaW5zdGVhZC5cbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY3B0cik7Ci0gICAgICAgICAgICAgICAgc2Vzcy0+c2VjdXJpdHlNb2RlbCA9IFVTTV9TRUNfTU9ERUxfTlVNQkVSOworICAgICAgICAgICAgICAgIHNlc3MtPnNlY3VyaXR5TW9kZWwgPSBORVRTTk1QX1NFQ01PRF9ERUZBVUxUX01PREVMOwogICAgICAgICAgICAgICAgIHJldHVybiBTTk1QRVJSX0dFTkVSUjsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNlc3MtPnNlY3VyaXR5TW9kZWwgPSBVU01fU0VDX01PREVMX05VTUJFUjsKKyAgICAgICAgICAgIHNlc3MtPnNlY3VyaXR5TW9kZWwgPSBORVRTTk1QX1NFQ01PRF9ERUZBVUxUX01PREVMOwogICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiBTTk1QRVJSX1NVQ0NFU1M7CmRpZmYgLS1naXQgYS9zbm1wbGliL3NubXBfdHJhbnNwb3J0LmMgYi9zbm1wbGliL3NubXBfdHJhbnNwb3J0LmMKaW5kZXggNGRmOTYwMi4uYWRhNDc4MSAxMDA2NDQKLS0tIGEvc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jCisrKyBiL3NubXBsaWIvc25tcF90cmFuc3BvcnQuYwpAQCAtMSw0ICsxLDUgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaW5jbHVkZSA8bmV0LXNubXAvdHlwZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg+CkBAIC03MCw2ICs3MSwxMSBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodHJhbnNwb3J0X2FsbCwgbGlibmV0c25tcCkKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRkb21haW5fc3VwcG9ydCwgdHJhbnNwb3J0X2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0ZG9tYWluX3RyYW5zcG9ydF9vaWQsIHRyYW5zcG9ydF9hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yoc29ja2FkZHJfc2l6ZSwgdHJhbnNwb3J0X2FsbCkKIAogLyoKICAqIE91ciBsaXN0IG9mIHN1cHBvcnRlZCB0cmFuc3BvcnQgZG9tYWlucy4gIApAQCAtOTksOSArMTA1LDYgQEAKIHN0YXRpYyB2b2lkICAgICBuZXRzbm1wX3Rkb21haW5fZHVtcCh2b2lkKTsKIAogCi0vKgotICogTWFrZSBhIGRlZXAgY29weSBvZiBhbiBuZXRzbm1wX3RyYW5zcG9ydC4gIAotICovCiAKIHZvaWQKIGluaXRfc25tcF90cmFuc3BvcnQodm9pZCkKQEAgLTExMiwxNiArMTE1LDIyIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfRE9OVF9MT0FEX0hPU1RfRklMRVMpOwogfQogCisvKgorICogTWFrZSBhIGRlZXAgY29weSBvZiBhbiBuZXRzbm1wX3RyYW5zcG9ydC4gIAorICovCiBuZXRzbm1wX3RyYW5zcG9ydCAqCiBuZXRzbm1wX3RyYW5zcG9ydF9jb3B5KG5ldHNubXBfdHJhbnNwb3J0ICp0KQogewogICAgIG5ldHNubXBfdHJhbnNwb3J0ICpuID0gTlVMTDsKIAotICAgIG4gPSAobmV0c25tcF90cmFuc3BvcnQgKikgbWFsbG9jKHNpemVvZihuZXRzbm1wX3RyYW5zcG9ydCkpOworICAgIGlmICh0ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgbiA9IFNOTVBfTUFMTE9DX1RZUEVERUYobmV0c25tcF90cmFuc3BvcnQpOwogICAgIGlmIChuID09IE5VTEwpIHsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIG1lbXNldChuLCAwLCBzaXplb2YobmV0c25tcF90cmFuc3BvcnQpKTsKIAogICAgIGlmICh0LT5kb21haW4gIT0gTlVMTCkgewogICAgICAgICBuLT5kb21haW4gPSB0LT5kb21haW47CkBAIC0xODAsNiArMTg5LDcgQEAKICAgICBuLT5mX2ZtdGFkZHIgPSB0LT5mX2ZtdGFkZHI7CiAgICAgbi0+c29jayA9IHQtPnNvY2s7CiAgICAgbi0+ZmxhZ3MgPSB0LT5mbGFnczsKKyAgICBuLT5iYXNlX3RyYW5zcG9ydCA9IG5ldHNubXBfdHJhbnNwb3J0X2NvcHkodC0+YmFzZV90cmFuc3BvcnQpOwogCiAgICAgLyogZ2l2ZSB0aGUgdHJhbnNwb3J0IGEgY2hhbmNlIHRvIGRvICJzcGVjaWFsIHRoaW5ncyIgKi8KICAgICBpZiAodC0+Zl9jb3B5KQpAQCAtMTk2LDE1ICsyMDYsMTEgQEAKICAgICBpZiAoTlVMTCA9PSB0KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAodC0+bG9jYWwgIT0gTlVMTCkgewotICAgICAgICBTTk1QX0ZSRUUodC0+bG9jYWwpOwotICAgIH0KLSAgICBpZiAodC0+cmVtb3RlICE9IE5VTEwpIHsKLSAgICAgICAgU05NUF9GUkVFKHQtPnJlbW90ZSk7Ci0gICAgfQotICAgIGlmICh0LT5kYXRhICE9IE5VTEwpIHsKLSAgICAgICAgU05NUF9GUkVFKHQtPmRhdGEpOwotICAgIH0KKyAgICBTTk1QX0ZSRUUodC0+bG9jYWwpOworICAgIFNOTVBfRlJFRSh0LT5yZW1vdGUpOworICAgIFNOTVBfRlJFRSh0LT5kYXRhKTsKKyAgICBuZXRzbm1wX3RyYW5zcG9ydF9mcmVlKHQtPmJhc2VfdHJhbnNwb3J0KTsKKwogICAgIFNOTVBfRlJFRSh0KTsKIH0KIApAQCAtMjMwLDYgKzIzNiwyOCBAQAogCiAgICAgcmV0dXJuIHN0cjsKIH0KKworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1NPQ0tBRERSX1NJWkUKK2ludAorbmV0c25tcF9zb2NrYWRkcl9zaXplKHN0cnVjdCBzb2NrYWRkciAqc2EpCit7CisgICAgaWYgKE5VTEwgPT0gc2EpCisgICAgICAgIHJldHVybiAwOworCisgICAgc3dpdGNoIChzYS0+c2FfZmFtaWx5KSB7CisgICAgICAgIGNhc2UgQUZfSU5FVDoKKyAgICAgICAgICAgIHJldHVybiBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKTsKKyAgICAgICAgYnJlYWs7CisjaWZkZWYgTkVUU05NUF9FTkFCTEVfSVBWNgorICAgICAgICBjYXNlIEFGX0lORVQ2OgorICAgICAgICAgICAgcmV0dXJuIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW42KTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TT0NLQUREUl9TSVpFICovCiAgICAgCiBpbnQKIG5ldHNubXBfdHJhbnNwb3J0X3NlbmQobmV0c25tcF90cmFuc3BvcnQgKnQsIHZvaWQgKnBhY2tldCwgaW50IGxlbmd0aCwKQEAgLTI5OSw2ICszMjcsNyBAQAogCiAKIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RET01BSU5fU1VQUE9SVAogaW50CiBuZXRzbm1wX3Rkb21haW5fc3VwcG9ydChjb25zdCBvaWQgKiBpbl9vaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5fbGVuLApAQCAtMzE3LDcgKzM0Niw3IEBACiAgICAgfQogICAgIHJldHVybiAwOwogfQotCisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9URE9NQUlOX1NVUFBPUlQgKi8KIAogCiB2b2lkCkBAIC0zOTUsNiArNDI0LDggQEAKIAogCiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0ZG9tYWluX3VucmVnaXN0ZXIsIG5ldHNubXBfdW51c2VkKQorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RET01BSU5fVU5SRUdJU1RFUgogaW50CiBuZXRzbm1wX3Rkb21haW5fdW5yZWdpc3RlcihuZXRzbm1wX3Rkb21haW4gKm4pCiB7CkBAIC00MTUsNiArNDQ2LDcgQEAKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVERPTUFJTl9VTlJFR0lTVEVSICovCiAKIAogc3RhdGljIG5ldHNubXBfdGRvbWFpbiAqCkBAIC00NjYsMTAgKzQ5OCw3IEBACiAgICAgY29uc3QgY2hhciAqIGNvbnN0ICpzcGVjID0gTlVMTDsKICAgICBpbnQgICAgICAgICAgICAgICAgIGFueV9mb3VuZCA9IDA7CiAgICAgY2hhciBidWZbU05NUF9NQVhQQVRIXTsKLSAgICBleHRlcm4gY29uc3QgY2hhciAqY3VyZmlsZW5hbWU7CQkvKiBmcm9tIHJlYWRfY29uZmlnLmMgKi8KLSAgICBjb25zdCBjaGFyICAgICAgICAqcHJldl9jdXJmaWxlbmFtZTsKLQotICAgIHByZXZfY3VyZmlsZW5hbWUgPSBjdXJmaWxlbmFtZTsKKyAgICBjaGFyICoqbHNwZWMgPSAwOwogCiAgICAgREVCVUdNU0dUTCgoInRkb21haW4iLAogICAgICAgICAgICAgICAgICJ0ZG9tYWluX3RyYW5zcG9ydF9mdWxsKFwiJXNcIiwgXCIlc1wiLCAlZCwgXCIlc1wiLCBcIiVzXCIpXG4iLApAQCAtNTU5LDcgKzU4OCwyMSBAQAogICAgICAgICAgICAgREVCVUdNU0dUTCgoInRkb21haW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgIlVzZSB1c2VyIHNwZWNpZmllZCBkZWZhdWx0IGRvbWFpbiBcIiVzXCJcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X2RvbWFpbikpOwotICAgICAgICAgICAgbWF0Y2ggPSBmaW5kX3Rkb21haW4oZGVmYXVsdF9kb21haW4pOworICAgICAgICAgICAgaWYgKCFzdHJjaHIoZGVmYXVsdF9kb21haW4sICcsJykpCisgICAgICAgICAgICAgICAgbWF0Y2ggPSBmaW5kX3Rkb21haW4oZGVmYXVsdF9kb21haW4pOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGNvbW1hcyA9IDA7CisgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY3AgPSBkZWZhdWx0X2RvbWFpbjsKKyAgICAgICAgICAgICAgICBjaGFyICpkdXAgPSBzdHJkdXAoZGVmYXVsdF9kb21haW4pOworCisgICAgICAgICAgICAgICAgd2hpbGUgKCorK2NwKSBpZiAoKmNwID09ICcsJykgY29tbWFzKys7CisgICAgICAgICAgICAgICAgbHNwZWMgPSBjYWxsb2MoY29tbWFzKzIsIHNpemVvZihjaGFyICopKTsKKyAgICAgICAgICAgICAgICBjb21tYXMgPSAxOworICAgICAgICAgICAgICAgIGxzcGVjWzBdID0gc3RydG9rKGR1cCwgIiwiKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoKGxzcGVjW2NvbW1hcysrXSA9IHN0cnRvayhOVUxMLCAiLCIpKSkKKyAgICAgICAgICAgICAgICAgICAgOworICAgICAgICAgICAgICAgIHNwZWMgPSAoY29uc3QgY2hhciAqIGNvbnN0ICopbHNwZWM7CisgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBzcGVjID0gbmV0c25tcF9sb29rdXBfZGVmYXVsdF9kb21haW5zKGFwcGxpY2F0aW9uKTsKICAgICAgICAgICAgIGlmIChzcGVjID09IE5VTEwpIHsKQEAgLTU5OSwxMiArNjQyLDE5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAiZGVmYXVsdCBhZGRyZXNzIFwiJXNcIlxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoLT5wcmVmaXhbMF0sIGFkZHIgPyBhZGRyIDogIltOSUxdIiwKICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHIyID8gYWRkcjIgOiAiW05JTF0iKSk7Ci0gICAgICAgICAgICBpZiAobWF0Y2gtPmZfY3JlYXRlX2Zyb21fdHN0cmluZykKKyAgICAgICAgICAgIGlmIChtYXRjaC0+Zl9jcmVhdGVfZnJvbV90c3RyaW5nKSB7CisgICAgICAgICAgICAgICAgTkVUU05NUF9MT0dPTkNFKChMT0dfV0FSTklORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc3BvcnQgZG9tYWluICVzIHVzZXMgZGVwcmVjYXRlZCBmX2NyZWF0ZV9mcm9tX3RzdHJpbmdcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaC0+cHJlZml4WzBdKSk7CiAgICAgICAgICAgICAgICAgdCA9IG1hdGNoLT5mX2NyZWF0ZV9mcm9tX3RzdHJpbmcoYWRkciwgbG9jYWwpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHQgPSBtYXRjaC0+Zl9jcmVhdGVfZnJvbV90c3RyaW5nX25ldyhhZGRyLCBsb2NhbCwgYWRkcjIpOwogICAgICAgICAgICAgaWYgKHQpIHsKLSAgICAgICAgICAgICAgICBjdXJmaWxlbmFtZSA9IHByZXZfY3VyZmlsZW5hbWU7CisgICAgICAgICAgICAgICAgaWYgKGxzcGVjKSB7CisgICAgICAgICAgICAgICAgICAgIGZyZWUobHNwZWNbMF0pOworICAgICAgICAgICAgICAgICAgICBmcmVlKGxzcGVjKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgcmV0dXJuIHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTYxNiw3ICs2NjYsMTAgQEAKICAgICB9CiAgICAgaWYgKCFhbnlfZm91bmQpCiAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJObyBzdXBwb3J0IGZvciBhbnkgY2hlY2tlZCB0cmFuc3BvcnQgZG9tYWluXG4iKTsKLSAgICBjdXJmaWxlbmFtZSA9IHByZXZfY3VyZmlsZW5hbWU7CisgICAgaWYgKGxzcGVjKSB7CisgICAgICAgIGZyZWUobHNwZWNbMF0pOworICAgICAgICBmcmVlKGxzcGVjKTsKKyAgICB9CiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKQEAgLTYzMCw2ICs2ODMsNyBAQAogfQogCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9URE9NQUlOX1RSQU5TUE9SVF9PSUQKIG5ldHNubXBfdHJhbnNwb3J0ICoKIG5ldHNubXBfdGRvbWFpbl90cmFuc3BvcnRfb2lkKGNvbnN0IG9pZCAqIGRvbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBkb21fbGVuLApAQCAtNjU0LDYgKzcwOCw3IEBACiAgICAgc25tcF9sb2coTE9HX0VSUiwgIk5vIHN1cHBvcnQgZm9yIHJlcXVlc3RlZCB0cmFuc3BvcnQgZG9tYWluXG4iKTsKICAgICByZXR1cm4gTlVMTDsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RET01BSU5fVFJBTlNQT1JUX09JRCAqLwogCiBuZXRzbm1wX3RyYW5zcG9ydCoKIG5ldHNubXBfdHJhbnNwb3J0X29wZW4oY29uc3QgY2hhciogYXBwbGljYXRpb24sIGNvbnN0IGNoYXIqIHN0ciwgaW50IGxvY2FsKQpkaWZmIC0tZ2l0IGEvc25tcGxpYi9zbm1wa3NtLmMgYi9zbm1wbGliL3NubXBrc20uYwppbmRleCA0YjY0MDAzLi43ZDMwNjEyIDEwMDY0NAotLS0gYS9zbm1wbGliL3NubXBrc20uYworKysgYi9zbm1wbGliL3NubXBrc20uYwpAQCAtNjYsNiArNjYsMTIgQEAKICNkZWZpbmUgVElDS0VUX0NMSUVOVCh4KQkoeCktPmVuY19wYXJ0Mi0+Y2xpZW50CiAjZW5kaWYJCQkJLyogTkVUU05NUF9VU0VfS0VSQkVST1NfSEVJTURBTCAqLwogCisjaWYgSEFWRV9FVF9DT01fRVJSX0gKKyNpbmNsdWRlIDxldC9jb21fZXJyLmg+CisjZWxpZiBIQVZFX0NPTV9FUlJfSAorI2luY2x1ZGUgPGNvbV9lcnIuaD4KKyNlbmRpZgorCiAjaW5jbHVkZSA8bmV0LXNubXAvb3V0cHV0X2FwaS5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2NvbmZpZ19hcGkuaD4KICNpbmNsdWRlIDxuZXQtc25tcC91dGlsaXRpZXMuaD4KQEAgLTI1Myw2ICsyNTksMTAgQEAKICAgICByZWdpc3Rlcl9zZWNfbW9kKE5FVFNOTVBfU0VDX01PREVMX0tTTSwgImtzbSIsIGRlZik7CiB9CiAKK3ZvaWQgc2h1dGRvd25fa3NtKHZvaWQpCit7Cit9CisKIC8qCiAgKiBUaGVzZSByb3V0aW5lcyBpbXBsZW1lbnQgYSBzaW1wbGUgY2FjaGUgZm9yIGluZm9ybWF0aW9uIHdlIG5lZWQgdG8KICAqIHByb2Nlc3MgcmVzcG9uc2VzLiAgV2hlbiB3ZSBzZW5kIG91dCBhIHJlcXVlc3QsIGl0IGNvbnRhaW5zIGFuIEFQX1JFUTsKZGlmZiAtLWdpdCBhL3NubXBsaWIvc25tcHRzbS5jIGIvc25tcGxpYi9zbm1wdHNtLmMKaW5kZXggYTM4YzYzMi4uNDJkZTY4MiAxMDA2NDQKLS0tIGEvc25tcGxpYi9zbm1wdHNtLmMKKysrIGIvc25tcGxpYi9zbm1wdHNtLmMKQEAgLTksNiArOSw3IEBACiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KIAorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KIAogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oPgpAQCAtMjYsNiArMjcsOSBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNTQ1RQRG9tYWluLmg+CiAjZW5kaWYKIAorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoc25tcHYzX3Byb2JlX2NvbnRleHRFbmdpbmVJRF9yZmM1MzQzKQorbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUocm93X2NyZWF0ZSkKKwogI2luY2x1ZGUgPHVuaXN0ZC5oPgogCiBzdGF0aWMgaW50ICAgICAgdHNtX3Nlc3Npb25faW5pdChuZXRzbm1wX3Nlc3Npb24gKik7CkBAIC02Nyw2ICs3MSwxMiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCX1RTTV9VU0VfUFJFRklYKTsKIH0KIAorLyoqIHNodXRkb3duIHRoZSBUU00gc2VjdXJpdHkgbW9kdWxlICovCit2b2lkCitzaHV0ZG93bl90c20odm9pZCkKK3sKK30KKwogLyoKICAqIEluaXRpYWxpemUgc3BlY2lmaWMgc2Vzc2lvbiBpbmZvcm1hdGlvbiAocmlnaHQgbm93LCBqdXN0IHNldCB1cCB0aGluZ3MgdG8KICAqIG5vdCBkbyBhbiBlbmdpbmVJRCBwcm9iZSkKQEAgLTU0MCw3ICs1NTAsNyBAQAogICAgICAgIG1lc3NhZ2UuKi8KICAgICBpZiAocGFybXMtPnNlY0xldmVsID4gdG1TdGF0ZVJlZi0+dHJhbnNwb3J0U2VjdXJpdHlMZXZlbCkgewogICAgICAgICBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMoU1RBVF9UU01fU05NUFRTTUlOQURFUVVBVEVTRUNVUklUWUxFVkVMUyk7Ci0gICAgICAgIERFQlVHTVNHVEwoKCJ0c20iLCAiaW5hZGVxdWF0ZSBzZWN1cml0eSBsZXZlbCAlZFxuIiwgcGFybXMtPnNlY0xldmVsKSk7CisgICAgICAgIERFQlVHTVNHVEwoKCJ0c20iLCAiaW5hZGVxdWF0ZSBzZWN1cml0eSBsZXZlbDogJWRcbiIsIHBhcm1zLT5zZWNMZXZlbCkpOwogICAgICAgICAvKiBuZXQtc25tcCByZXR1cm5zIGVycm9yIGNvZGVzIG5vdCBPSURzLCB3aGljaCBhcmUgZGVhbHQgd2l0aCBsYXRlciAqLwogICAgICAgICByZXR1cm4gU05NUEVSUl9VTlNVUFBPUlRFRF9TRUNfTEVWRUw7CiAgICAgfQpkaWZmIC0tZ2l0IGEvc25tcGxpYi9zbm1wdXNtLmMgYi9zbm1wbGliL3NubXB1c20uYwppbmRleCA4NzgwNTk2Li42YTljZWMzIDEwMDY0NAotLS0gYS9zbm1wbGliL3NubXB1c20uYworKysgYi9zbm1wbGliL3NubXB1c20uYwpAQCAtMjIsNiArMjIsNyBAQAogICovCiAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTcxLDYgKzcyLDExIEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oPgogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodXNtX2FsbCwgbGlibmV0c25tcCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih1c21fc3VwcG9ydCwgdXNtX2FsbCkKKworbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUodXNtX3N1cHBvcnQpCisKIG9pZCAgICAgICAgICAgICB1c21Ob0F1dGhQcm90b2NvbFsxMF0gPSB7IDEsIDMsIDYsIDEsIDYsIDMsIDEwLCAxLCAxLCAxIH07CiAjaWZuZGVmIE5FVFNOTVBfRElTQUJMRV9NRDUKIG9pZCAgICAgICAgICAgICB1c21ITUFDTUQ1QXV0aFByb3RvY29sWzEwXSA9CkBAIC04OSw2ICs5NSwxNiBAQAogc3RhdGljIHVfaW50ICAgIGR1bW15X2V0aW1lLCBkdW1teV9lYm9vdDsgICAgICAgLyogRm9yIElTRU5HSU5FS05PV04oKS4gKi8KIAogLyoKKyAqIFNldCB1cCBkZWZhdWx0IHNubXB2MyBwYXJhbWV0ZXIgdmFsdWUgc3RvcmFnZS4KKyAqLworI2lmZGVmIE5FVFNOTVBfU0VDTU9EX1VTTQorc3RhdGljIGNvbnN0IG9pZCAqZGVmYXVsdEF1dGhUeXBlID0gTlVMTDsKK3N0YXRpYyBzaXplX3QgICBkZWZhdWx0QXV0aFR5cGVMZW4gPSAwOworc3RhdGljIGNvbnN0IG9pZCAqZGVmYXVsdFByaXZUeXBlID0gTlVMTDsKK3N0YXRpYyBzaXplX3QgICBkZWZhdWx0UHJpdlR5cGVMZW4gPSAwOworI2VuZGlmIC8qIE5FVFNOTVBfU0VDTU9EX1VTTSAqLworCisvKgogICogR2xvYmFscy4KICAqLwogc3RhdGljIHVfaW50ICAgIHNhbHRfaW50ZWdlcjsKQEAgLTE1OCw2ICsxNzQsMjEgQEAKIH0KIAogCitpbnQKK2ZyZWVfZW5naW5ldGltZV9vbl9zaHV0ZG93bihpbnQgbWFqb3JpZCwgaW50IG1pbm9yaWQsIHZvaWQgKnNlcnZlcmFyZywKKwkJCSAgICB2b2lkICpjbGllbnRhcmcpCit7CisgICAgdV9jaGFyIGVuZ2luZUlEW1NOTVBfTUFYX0VOR19TSVpFXTsKKyAgICBzaXplX3QgZW5naW5lSURfbGVuID0gc2l6ZW9mKGVuZ2luZUlEKTsKKworICAgIERFQlVHTVNHVEwoKCJzbm1wdjMiLCAiZnJlZSBlbmdpbmV0aW1lIGNhbGxiYWNrIGNhbGxlZFxuIikpOworCisgICAgZW5naW5lSURfbGVuID0gc25tcHYzX2dldF9lbmdpbmVJRChlbmdpbmVJRCwgZW5naW5lSURfbGVuKTsKKyAgICBpZiAoZW5naW5lSURfbGVuID4gMCkKKwlmcmVlX2VuZ2luZXRpbWUoZW5naW5lSUQsIGVuZ2luZUlEX2xlbik7CisgICAgcmV0dXJuIDA7Cit9CisKIHN0cnVjdCB1c21TdGF0ZVJlZmVyZW5jZSAqCiB1c21fbWFsbG9jX3VzbVN0YXRlUmVmZXJlbmNlKHZvaWQpCiB7CkBAIC0yMTQzLDExICsyMTc0LDcgQEAKICAgICAgICAgaWYgKGJvb3RzX3VpbnQgPT0gRU5HSU5FQk9PVF9NQVgKICAgICAgICAgICAgIHx8IGJvb3RzX3VpbnQgIT0gbXlCb290cwogICAgICAgICAgICAgfHwgdGltZV9kaWZmZXJlbmNlID4gVVNNX1RJTUVfV0lORE9XKSB7Ci0gICAgICAgICAgICBpZiAoc25tcF9pbmNyZW1lbnRfc3RhdGlzdGljKFNUQVRfVVNNU1RBVFNOT1RJTlRJTUVXSU5ET1dTKSA9PQotICAgICAgICAgICAgICAgIDApIHsKLSAgICAgICAgICAgICAgICBERUJVR01TR1RMKCgidXNtIiwgIiVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gaW5jcmVtZW50IHN0YXRpc3RpYy4iKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMoU1RBVF9VU01TVEFUU05PVElOVElNRVdJTkRPV1MpOwogCiAgICAgICAgICAgICBERUJVR01TR1RMKCgidXNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICJib290X3VpbnQgJXUgbXlCb290cyAldSB0aW1lX2RpZmYgJXUgPT4gbm90IGluIHRpbWUgd2luZG93XG4iLApAQCAtMjM2MCwxNiArMjM4NywxMCBAQAogICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAqIFRoaXMgaW5kaWNhdGVzIGEgZGVjcnlwdGlvbkVycm9yLiAgCiAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIGlmIChzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMoU1RBVF9VU01TVEFUU0RFQ1JZUFRJT05FUlJPUlMpID09Ci0gICAgICAgICAgICAgICAgMCkgewotICAgICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJ1c20iLCAiJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBpbmNyZW1lbnQgc3RhdGlzdGljLiIpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNubXBfaW5jcmVtZW50X3N0YXRpc3RpYyhTVEFUX1VTTVNUQVRTREVDUllQVElPTkVSUk9SUyk7CiAgICAgICAgICAgICByZXR1cm4gU05NUEVSUl9VU01fREVDUllQVElPTkVSUk9SOwogICAgICAgICB9Ci0gICAgICAgIGlmIChzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMoU1RBVF9TTk1QSU5BU05QQVJTRUVSUlMpID09IDApIHsKLSAgICAgICAgICAgIERFQlVHTVNHVEwoKCJ1c20iLCAiJXNcbiIsICJGYWlsZWQgdG8gaW5jcmVtZW50IHN0YXRpc3RpYy4iKSk7Ci0gICAgICAgIH0KKyAgICAgICAgc25tcF9pbmNyZW1lbnRfc3RhdGlzdGljKFNUQVRfU05NUElOQVNOUEFSU0VFUlJTKTsKICAgICAgICAgcmV0dXJuIFNOTVBFUlJfVVNNX1BBUlNFRVJST1I7CiAgICAgfQogCkBAIC0yMzgwLDEwICsyNDAxLDcgQEAKICAgICAgKiBjYWxsaW5nIG1vZHVsZS4KICAgICAgKi8KICAgICBpZiAoKHNlY0xldmVsID09IFNOTVBfU0VDX0xFVkVMX0FVVEhQUklWKSAmJiAoc2FsdF9sZW5ndGggIT0gOCkpIHsKLSAgICAgICAgaWYgKHNubXBfaW5jcmVtZW50X3N0YXRpc3RpYyhTVEFUX1VTTVNUQVRTREVDUllQVElPTkVSUk9SUykgPT0gCi0gICAgICAgICAgICAwKSB7Ci0gICAgICAgICAgICBERUJVR01TR1RMKCgidXNtIiwgIiVzXG4iLCAiRmFpbGVkIGluY3JlbWVudCBzdGF0aXN0aWMuIikpOwotICAgICAgICB9CisgICAgICAgIHNubXBfaW5jcmVtZW50X3N0YXRpc3RpYyhTVEFUX1VTTVNUQVRTREVDUllQVElPTkVSUk9SUyk7CiAgICAgICAgIHJldHVybiBTTk1QRVJSX1VTTV9ERUNSWVBUSU9ORVJST1I7CiAgICAgfQogCkBAIC0yNDMxLDExICsyNDQ5LDcgQEAKICAgICAgICAgKCFzZXNzICYmIChtc2dfZmxhZ3MgJiBTTk1QX01TR19GTEFHX1JQUlRfQklUKSkpIHsKICAgICAgICAgaWYgKElTRU5HSU5FS05PV04oc2VjRW5naW5lSUQsICpzZWNFbmdpbmVJRExlbikgPT0gRkFMU0UpIHsKICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJ1c20iLCAiVW5rbm93biBFbmdpbmUgSUQuXG4iKSk7Ci0gICAgICAgICAgICBpZiAoc25tcF9pbmNyZW1lbnRfc3RhdGlzdGljKFNUQVRfVVNNU1RBVFNVTktOT1dORU5HSU5FSURTKSA9PQotICAgICAgICAgICAgICAgIDApIHsKLSAgICAgICAgICAgICAgICBERUJVR01TR1RMKCgidXNtIiwgIiVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gaW5jcmVtZW50IHN0YXRpc3RpYy4iKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMoU1RBVF9VU01TVEFUU1VOS05PV05FTkdJTkVJRFMpOwogICAgICAgICAgICAgcmV0dXJuIFNOTVBFUlJfVVNNX1VOS05PV05FTkdJTkVJRDsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CkBAIC0yNDU5LDkgKzI0NzMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIXNlc3MpKSA/IDAgOiAxKSkpCiAgICAgICAgID09IE5VTEwpIHsKICAgICAgICAgREVCVUdNU0dUTCgoInVzbSIsICJVbmtub3duIFVzZXIoJXMpXG4iLCBzZWNOYW1lKSk7Ci0gICAgICAgIGlmIChzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMoU1RBVF9VU01TVEFUU1VOS05PV05VU0VSTkFNRVMpID09IDApIHsKLSAgICAgICAgICAgIERFQlVHTVNHVEwoKCJ1c20iLCAiJXNcbiIsICJGYWlsZWQgdG8gaW5jcmVtZW50IHN0YXRpc3RpYy4iKSk7Ci0gICAgICAgIH0KKyAgICAgICAgc25tcF9pbmNyZW1lbnRfc3RhdGlzdGljKFNUQVRfVVNNU1RBVFNVTktOT1dOVVNFUk5BTUVTKTsKICAgICAgICAgcmV0dXJuIFNOTVBFUlJfVVNNX1VOS05PV05TRUNVUklUWU5BTUU7CiAgICAgfQogCkBAIC0yNDc5LDEwICsyNDkxLDcgQEAKICAgICBpZiAoMSA9PSByYykgewogICAgICAgICBERUJVR01TR1RMKCgidXNtIiwgIlVuc3VwcG9ydGVkIFNlY3VyaXR5IExldmVsICglZCkuXG4iLAogICAgICAgICAgICAgICAgICAgICBzZWNMZXZlbCkpOwotICAgICAgICBpZiAoc25tcF9pbmNyZW1lbnRfc3RhdGlzdGljCi0gICAgICAgICAgICAoU1RBVF9VU01TVEFUU1VOU1VQUE9SVEVEU0VDTEVWRUxTKSA9PSAwKSB7Ci0gICAgICAgICAgICBERUJVR01TR1RMKCgidXNtIiwgIiVzXG4iLCAiRmFpbGVkIHRvIGluY3JlbWVudCBzdGF0aXN0aWMuIikpOwotICAgICAgICB9CisgICAgICAgIHNubXBfaW5jcmVtZW50X3N0YXRpc3RpYyhTVEFUX1VTTVNUQVRTVU5TVVBQT1JURURTRUNMRVZFTFMpOwogICAgICAgICByZXR1cm4gU05NUEVSUl9VU01fVU5TVVBQT1JURURTRUNVUklUWUxFVkVMOwogICAgIH0gZWxzZSBpZiAocmMgIT0gMCkgewogICAgICAgICBERUJVR01TR1RMKCgidXNtIiwgIlVua25vd24gaXNzdWUuXG4iKSk7CkBAIC0yNTAwLDEwICsyNTA5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmF0dXJlLCBzaWduYXR1cmVfbGVuZ3RoKQogICAgICAgICAgICAgIT0gU05NUF9FUlJfTk9FUlJPUikgewogICAgICAgICAgICAgREVCVUdNU0dUTCgoInVzbSIsICJWZXJpZmljYXRpb24gZmFpbGVkLlxuIikpOwotICAgICAgICAgICAgaWYgKHNubXBfaW5jcmVtZW50X3N0YXRpc3RpYyhTVEFUX1VTTVNUQVRTV1JPTkdESUdFU1RTKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgREVCVUdNU0dUTCgoInVzbSIsICIlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGluY3JlbWVudCBzdGF0aXN0aWMuIikpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgc25tcF9pbmNyZW1lbnRfc3RhdGlzdGljKFNUQVRfVVNNU1RBVFNXUk9OR0RJR0VTVFMpOwogCSAgICBzbm1wX2xvZyhMT0dfV0FSTklORywgIkF1dGhlbnRpY2F0aW9uIGZhaWxlZCBmb3IgJXNcbiIsCiAJCQkJdXNlci0+bmFtZSk7CiAgICAgICAgICAgICByZXR1cm4gU05NUEVSUl9VU01fQVVUSEVOVElDQVRJT05GQUlMVVJFOwpAQCAtMjU5NCw5ICsyNjAwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVuY3J5cHRlZCBzUERVIikpID09IE5VTEwpIHsKICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJ1c20iLCAiJXNcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHdoaWxlIHBhcnNpbmcgZW5jcnlwdGVkIHNQRFUuIikpOwotICAgICAgICAgICAgaWYgKHNubXBfaW5jcmVtZW50X3N0YXRpc3RpYyhTVEFUX1NOTVBJTkFTTlBBUlNFRVJSUykgPT0gMCkgewotICAgICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJ1c20iLCAiJXNcbiIsICJGYWlsZWQgaW5jcmVtZW50IHN0YXRpc3RpYy4iKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMoU1RBVF9TTk1QSU5BU05QQVJTRUVSUlMpOwogICAgICAgICAgICAgdXNtX2ZyZWVfdXNtU3RhdGVSZWZlcmVuY2UoKnNlY1N0YXRlUmVmKTsKICAgICAgICAgICAgICpzZWNTdGF0ZVJlZiA9IE5VTEw7CiAgICAgICAgICAgICByZXR1cm4gU05NUEVSUl9VU01fUEFSU0VFUlJPUjsKQEAgLTI2MTcsMTAgKzI2MjEsNyBAQAogICAgICAgICAgICAgICAgIERFQlVHTVNHVEwoKCJ1c20iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDaXBoZXJ0ZXh0IGlzICVsdSBieXRlcywgbm90IGFuIGludGVnZXIgbXVsdGlwbGUgb2YgOCAocmVtICVsdSlcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpcmVtYWluaW5nLCAodW5zaWduZWQgbG9uZylyZW1haW5pbmcgJSA4KSk7Ci0gICAgICAgICAgICAgICAgaWYgKHNubXBfaW5jcmVtZW50X3N0YXRpc3RpYyhTVEFUX1VTTVNUQVRTREVDUllQVElPTkVSUk9SUykgPT0KLSAgICAgICAgICAgICAgICAgICAgMCkgewotICAgICAgICAgICAgICAgICAgICBERUJVR01TR1RMKCgidXNtIiwgIiVzXG4iLCAiRmFpbGVkIGluY3JlbWVudCBzdGF0aXN0aWMuIikpOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMoU1RBVF9VU01TVEFUU0RFQ1JZUFRJT05FUlJPUlMpOwogICAgICAgICAgICAgICAgIHVzbV9mcmVlX3VzbVN0YXRlUmVmZXJlbmNlKCpzZWNTdGF0ZVJlZik7CiAgICAgICAgICAgICAgICAgKnNlY1N0YXRlUmVmID0gTlVMTDsKICAgICAgICAgICAgICAgICByZXR1cm4gU05NUEVSUl9VU01fREVDUllQVElPTkVSUk9SOwpAQCAtMjYzMCwxMCArMjYzMSw3IEBACiAKICAgICAgICAgICAgIGlmICggIXVzZXItPnByaXZLZXkgKSB7CiAgICAgICAgICAgICAgICAgREVCVUdNU0dUTCgoInVzbSIsICJObyBwcml2YWN5IHBhc3MgcGhyYXNlIGZvciAlc1xuIiwgdXNlci0+c2VjTmFtZSkpOwotICAgICAgICAgICAgICAgIGlmIChzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMoU1RBVF9VU01TVEFUU0RFQ1JZUFRJT05FUlJPUlMpID09Ci0gICAgICAgICAgICAgICAgICAgIDApIHsKLSAgICAgICAgICAgICAgICAgICAgREVCVUdNU0dUTCgoInVzbSIsICIlc1xuIiwgIkZhaWxlZCBpbmNyZW1lbnQgc3RhdGlzdGljLiIpKTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc25tcF9pbmNyZW1lbnRfc3RhdGlzdGljKFNUQVRfVVNNU1RBVFNERUNSWVBUSU9ORVJST1JTKTsKICAgICAgICAgICAgICAgICB1c21fZnJlZV91c21TdGF0ZVJlZmVyZW5jZSgqc2VjU3RhdGVSZWYpOwogICAgICAgICAgICAgICAgICpzZWNTdGF0ZVJlZiA9IE5VTEw7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFNOTVBFUlJfVVNNX0RFQ1JZUFRJT05FUlJPUjsKQEAgLTI2NjUsMTAgKzI2NjMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZV9wdHIsIHJlbWFpbmluZywgKnNjb3BlZFBkdSwgc2NvcGVkUGR1TGVuKQogICAgICAgICAgICAgIT0gU05NUF9FUlJfTk9FUlJPUikgewogICAgICAgICAgICAgREVCVUdNU0dUTCgoInVzbSIsICIlc1xuIiwgIkZhaWxlZCBkZWNyeXB0aW9uLiIpKTsKLSAgICAgICAgICAgIGlmIChzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMKLSAgICAgICAgICAgICAgICAoU1RBVF9VU01TVEFUU0RFQ1JZUFRJT05FUlJPUlMpID09IDApIHsKLSAgICAgICAgICAgICAgICBERUJVR01TR1RMKCgidXNtIiwgIiVzXG4iLCAiRmFpbGVkIGluY3JlbWVudCBzdGF0aXN0aWMuIikpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgc25tcF9pbmNyZW1lbnRfc3RhdGlzdGljKFNUQVRfVVNNU1RBVFNERUNSWVBUSU9ORVJST1JTKTsKICAgICAgICAgICAgIHJldHVybiBTTk1QRVJSX1VTTV9ERUNSWVBUSU9ORVJST1I7CiAgICAgICAgIH0KICNpZmRlZiBORVRTTk1QX0VOQUJMRV9URVNUSU5HX0NPREUKQEAgLTI4NTcsMTAgKzI4NTIsMzUyIEBACiAgICAgcmV0dXJuIFNOTVBFUlJfU1VDQ0VTUzsKIH0KIAorCisvKgorICogdXNtX2NyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbihuZXRzbm1wX3Nlc3Npb24gKnNlc3Npb24pOgorICogCisgKiBjcmVhdGVzIGEgdXNlciBpbiB0aGUgdXNtIHRhYmxlIGZyb20gdGhlIGluZm9ybWF0aW9uIGluIGEgc2Vzc2lvbi4KKyAqIElmIHRoZSB1c2VyIGFscmVhZHkgZXhpc3RzLCBpdCBpcyB1cGRhdGVkIHdpdGggdGhlIGN1cnJlbnQKKyAqIGluZm9ybWF0aW9uIGZyb20gdGhlIHNlc3Npb24KKyAqIAorICogUGFyYW1ldGVyczoKKyAqIHNlc3Npb24gLS0gSU46IHBvaW50ZXIgdG8gdGhlIHNlc3Npb24gdG8gdXNlIHdoZW4gY3JlYXRpbmcgdGhlIHVzZXIuCisgKiAKKyAqIFJldHVybnM6CisgKiBTTk1QRVJSX1NVQ0NFU1MKKyAqIFNOTVBFUlJfR0VORVJSIAorICovCitpbnQKK3VzbV9jcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24obmV0c25tcF9zZXNzaW9uICogc2Vzc2lvbikKK3sKKyAgICBzdHJ1Y3QgdXNtVXNlciAqdXNlcjsKKyAgICBpbnQgICAgICAgICAgICAgdXNlcl9qdXN0X2NyZWF0ZWQgPSAwOworICAgIGNoYXIgKmNwOworCisgICAgLyoKKyAgICAgKiAtIGRvbid0IGNyZWF0ZS1hbm90aGVyL2NvcHktaW50byB1c2VyIGZvciB0aGlzIHNlc3Npb24gYnkgZGVmYXVsdAorICAgICAqIC0gYmFpbCBub3cgKG5vIGVycm9yKSBpZiB3ZSBkb24ndCBoYXZlIGFuIGVuZ2luZUlECisgICAgICovCisgICAgaWYgKFNOTVBfRkxBR1NfVVNFUl9DUkVBVEVEID09IChzZXNzaW9uLT5mbGFncyAmIFNOTVBfRkxBR1NfVVNFUl9DUkVBVEVEKSB8fAorICAgICAgICBzZXNzaW9uLT5zZWN1cml0eU1vZGVsICE9IFNOTVBfU0VDX01PREVMX1VTTSB8fAorICAgICAgICBzZXNzaW9uLT52ZXJzaW9uICE9IFNOTVBfVkVSU0lPTl8zIHx8CisgICAgICAgIHNlc3Npb24tPnNlY3VyaXR5TmFtZUxlbiA9PSAwIHx8CisgICAgICAgIHNlc3Npb24tPnNlY3VyaXR5RW5naW5lSURMZW4gPT0gMCkKKyAgICAgICAgcmV0dXJuIFNOTVBFUlJfU1VDQ0VTUzsKKworICAgIERFQlVHTVNHVEwoKCJ1c20iLCAibm8gZmxhZyBkZWZpbmVkLi4uICBjb250aW51aW5nXG4iKSk7CisgICAgc2Vzc2lvbi0+ZmxhZ3MgfD0gU05NUF9GTEFHU19VU0VSX0NSRUFURUQ7CisKKyAgICAvKgorICAgICAqIG5vdyB0aGF0IHdlIGhhdmUgdGhlIGVuZ2luZUlELCBjcmVhdGUgYW4gZW50cnkgaW4gdGhlIFVTTSBsaXN0CisgICAgICogZm9yIHRoaXMgdXNlciB1c2luZyB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIHNlc3Npb24gCisgICAgICovCisgICAgdXNlciA9IHVzbV9nZXRfdXNlcl9mcm9tX2xpc3Qoc2Vzc2lvbi0+c2VjdXJpdHlFbmdpbmVJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5zZWN1cml0eUVuZ2luZUlETGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24tPnNlY3VyaXR5TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c21fZ2V0X3VzZXJMaXN0KCksIDApOworICAgIERFQlVHTVNHVEwoKCJ1c20iLCAidXNlciBleGlzdHM/IHg9JXBcbiIsIHVzZXIpKTsKKyAgICBpZiAodXNlciA9PSBOVUxMKSB7CisgICAgICAgIERFQlVHTVNHVEwoKCJ1c20iLCAiQnVpbGRpbmcgdXNlciAlcy4uLlxuIiwKKyAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi0+c2VjdXJpdHlOYW1lKSk7CisgICAgICAgIC8qCisgICAgICAgICAqIHVzZXIgZG9lc24ndCBleGlzdCBzbyB3ZSBjcmVhdGUgYW5kIGFkZCBpdCAKKyAgICAgICAgICovCisgICAgICAgIHVzZXIgPSAoc3RydWN0IHVzbVVzZXIgKikgY2FsbG9jKDEsIHNpemVvZihzdHJ1Y3QgdXNtVXNlcikpOworICAgICAgICBpZiAodXNlciA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIFNOTVBFUlJfR0VORVJSOworCisgICAgICAgIC8qCisgICAgICAgICAqIGNvcHkgaW4gdGhlIHNlY3VyaXR5TmFtZSAKKyAgICAgICAgICovCisgICAgICAgIGlmIChzZXNzaW9uLT5zZWN1cml0eU5hbWUpIHsKKyAgICAgICAgICAgIHVzZXItPm5hbWUgPSBzdHJkdXAoc2Vzc2lvbi0+c2VjdXJpdHlOYW1lKTsKKyAgICAgICAgICAgIHVzZXItPnNlY05hbWUgPSBzdHJkdXAoc2Vzc2lvbi0+c2VjdXJpdHlOYW1lKTsKKyAgICAgICAgICAgIGlmICh1c2VyLT5uYW1lID09IE5VTEwgfHwgdXNlci0+c2VjTmFtZSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgdXNtX2ZyZWVfdXNlcih1c2VyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gU05NUEVSUl9HRU5FUlI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBjb3B5IGluIHRoZSBlbmdpbmVJRCAKKyAgICAgICAgICovCisgICAgICAgIHVzZXItPmVuZ2luZUlEID0gbmV0c25tcF9tZW1kdXAoc2Vzc2lvbi0+c2VjdXJpdHlFbmdpbmVJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5zZWN1cml0eUVuZ2luZUlETGVuKTsKKyAgICAgICAgaWYgKHNlc3Npb24tPnNlY3VyaXR5RW5naW5lSUQgJiYgIXVzZXItPmVuZ2luZUlEKSB7CisgICAgICAgICAgICB1c21fZnJlZV91c2VyKHVzZXIpOworICAgICAgICAgICAgcmV0dXJuIFNOTVBFUlJfR0VORVJSOworICAgICAgICB9CisgICAgICAgIHVzZXItPmVuZ2luZUlETGVuID0gc2Vzc2lvbi0+c2VjdXJpdHlFbmdpbmVJRExlbjsKKworICAgICAgICB1c2VyX2p1c3RfY3JlYXRlZCA9IDE7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBjb3B5IHRoZSBhdXRoIHByb3RvY29sIAorICAgICAqLworICAgIGlmICh1c2VyLT5hdXRoUHJvdG9jb2wgPT0gTlVMTCAmJiBzZXNzaW9uLT5zZWN1cml0eUF1dGhQcm90byAhPSBOVUxMKSB7CisgICAgICAgIFNOTVBfRlJFRSh1c2VyLT5hdXRoUHJvdG9jb2wpOworICAgICAgICB1c2VyLT5hdXRoUHJvdG9jb2wgPQorICAgICAgICAgICAgc25tcF9kdXBsaWNhdGVfb2JqaWQoc2Vzc2lvbi0+c2VjdXJpdHlBdXRoUHJvdG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5zZWN1cml0eUF1dGhQcm90b0xlbik7CisgICAgICAgIGlmICh1c2VyLT5hdXRoUHJvdG9jb2wgPT0gTlVMTCkgeworICAgICAgICAgICAgdXNtX2ZyZWVfdXNlcih1c2VyKTsKKyAgICAgICAgICAgIHJldHVybiBTTk1QRVJSX0dFTkVSUjsKKyAgICAgICAgfQorICAgICAgICB1c2VyLT5hdXRoUHJvdG9jb2xMZW4gPSBzZXNzaW9uLT5zZWN1cml0eUF1dGhQcm90b0xlbjsKKyAgICB9CisKKyAgICAvKgorICAgICAqIGNvcHkgdGhlIHByaXYgcHJvdG9jb2wgCisgICAgICovCisgICAgaWYgKHVzZXItPnByaXZQcm90b2NvbCA9PSBOVUxMICYmIHNlc3Npb24tPnNlY3VyaXR5UHJpdlByb3RvICE9IE5VTEwpIHsKKyAgICAgICAgU05NUF9GUkVFKHVzZXItPnByaXZQcm90b2NvbCk7CisgICAgICAgIHVzZXItPnByaXZQcm90b2NvbCA9CisgICAgICAgICAgICBzbm1wX2R1cGxpY2F0ZV9vYmppZChzZXNzaW9uLT5zZWN1cml0eVByaXZQcm90bywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24tPnNlY3VyaXR5UHJpdlByb3RvTGVuKTsKKyAgICAgICAgaWYgKHVzZXItPnByaXZQcm90b2NvbCA9PSBOVUxMKSB7CisgICAgICAgICAgICB1c21fZnJlZV91c2VyKHVzZXIpOworICAgICAgICAgICAgcmV0dXJuIFNOTVBFUlJfR0VORVJSOworICAgICAgICB9CisgICAgICAgIHVzZXItPnByaXZQcm90b2NvbExlbiA9IHNlc3Npb24tPnNlY3VyaXR5UHJpdlByb3RvTGVuOworICAgIH0KKworICAgIC8qCisgICAgICogY29weSBpbiB0aGUgYXV0aGVudGljYXRpb24gS2V5LiAgSWYgbm90IGxvY2FsaXplZCwgbG9jYWxpemUgaXQgCisgICAgICovCisgICAgaWYgKHVzZXItPmF1dGhLZXkgPT0gTlVMTCkgeworICAgICAgICBpZiAoc2Vzc2lvbi0+c2VjdXJpdHlBdXRoTG9jYWxLZXkgIT0gTlVMTAorICAgICAgICAgICAgJiYgc2Vzc2lvbi0+c2VjdXJpdHlBdXRoTG9jYWxLZXlMZW4gIT0gMCkgeworICAgICAgICAgICAgLyogYWxyZWFkeSBsb2NhbGl6ZWQga2V5IHBhc3NlZCBpbi4gIHVzZSBpdCAqLworICAgICAgICAgICAgU05NUF9GUkVFKHVzZXItPmF1dGhLZXkpOworICAgICAgICAgICAgdXNlci0+YXV0aEtleSA9IG5ldHNubXBfbWVtZHVwKHNlc3Npb24tPnNlY3VyaXR5QXV0aExvY2FsS2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24tPnNlY3VyaXR5QXV0aExvY2FsS2V5TGVuKTsKKyAgICAgICAgICAgIGlmICghdXNlci0+YXV0aEtleSkgeworICAgICAgICAgICAgICAgIHVzbV9mcmVlX3VzZXIodXNlcik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFNOTVBFUlJfR0VORVJSOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdXNlci0+YXV0aEtleUxlbiA9IHNlc3Npb24tPnNlY3VyaXR5QXV0aExvY2FsS2V5TGVuOworICAgICAgICB9IGVsc2UgaWYgKHNlc3Npb24tPnNlY3VyaXR5QXV0aEtleSAhPSBOVUxMCisgICAgICAgICAgICAgICAgICAgJiYgc2Vzc2lvbi0+c2VjdXJpdHlBdXRoS2V5TGVuICE9IDApIHsKKyAgICAgICAgICAgIFNOTVBfRlJFRSh1c2VyLT5hdXRoS2V5KTsKKyAgICAgICAgICAgIHVzZXItPmF1dGhLZXkgPSAodV9jaGFyICopIGNhbGxvYygxLCBVU01fTEVOR1RIX0tVX0hBU0hCTE9DSyk7CisgICAgICAgICAgICBpZiAodXNlci0+YXV0aEtleSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgdXNtX2ZyZWVfdXNlcih1c2VyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gU05NUEVSUl9HRU5FUlI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB1c2VyLT5hdXRoS2V5TGVuID0gVVNNX0xFTkdUSF9LVV9IQVNIQkxPQ0s7CisgICAgICAgICAgICBpZiAoZ2VuZXJhdGVfa3VsKHVzZXItPmF1dGhQcm90b2NvbCwgdXNlci0+YXV0aFByb3RvY29sTGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5zZWN1cml0eUVuZ2luZUlELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5zZWN1cml0eUVuZ2luZUlETGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5zZWN1cml0eUF1dGhLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24tPnNlY3VyaXR5QXV0aEtleUxlbiwgdXNlci0+YXV0aEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnVzZXItPmF1dGhLZXlMZW4pICE9IFNOTVBFUlJfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIHVzbV9mcmVlX3VzZXIodXNlcik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFNOTVBFUlJfR0VORVJSOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKChjcCA9IG5ldHNubXBfZHNfZ2V0X3N0cmluZyhORVRTTk1QX0RTX0xJQlJBUllfSUQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9BVVRITE9DQUxJWkVES0VZKSkpIHsKKyAgICAgICAgICAgIHNpemVfdCBidWZsZW4gPSBVU01fQVVUSF9LVV9MRU47CisgICAgICAgICAgICBTTk1QX0ZSRUUodXNlci0+YXV0aEtleSk7CisgICAgICAgICAgICB1c2VyLT5hdXRoS2V5ID0gKHVfY2hhciAqKW1hbGxvYyhidWZsZW4pOyAvKiBtYXggbGVuZ3RoIG5lZWRlZCAqLworICAgICAgICAgICAgdXNlci0+YXV0aEtleUxlbiA9IDA7CisgICAgICAgICAgICAvKiBpdCB3aWxsIGJlIGEgaGV4IHN0cmluZyAqLworICAgICAgICAgICAgaWYgKCFzbm1wX2hleF90b19iaW5hcnkoJnVzZXItPmF1dGhLZXksICZidWZsZW4sICZ1c2VyLT5hdXRoS2V5TGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgY3ApKSB7CisgICAgICAgICAgICAgICAgdXNtX2ZyZWVfdXNlcih1c2VyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gU05NUEVSUl9HRU5FUlI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIGNvcHkgaW4gdGhlIHByaXZhY3kgS2V5LiAgSWYgbm90IGxvY2FsaXplZCwgbG9jYWxpemUgaXQgCisgICAgICovCisgICAgaWYgKHVzZXItPnByaXZLZXkgPT0gTlVMTCkgeworICAgICAgICBpZiAoc2Vzc2lvbi0+c2VjdXJpdHlQcml2TG9jYWxLZXkgIT0gTlVMTAorICAgICAgICAgICAgJiYgc2Vzc2lvbi0+c2VjdXJpdHlQcml2TG9jYWxLZXlMZW4gIT0gMCkgeworICAgICAgICAgICAgLyogYWxyZWFkeSBsb2NhbGl6ZWQga2V5IHBhc3NlZCBpbi4gIHVzZSBpdCAqLworICAgICAgICAgICAgU05NUF9GUkVFKHVzZXItPnByaXZLZXkpOworICAgICAgICAgICAgdXNlci0+cHJpdktleSA9IG5ldHNubXBfbWVtZHVwKHNlc3Npb24tPnNlY3VyaXR5UHJpdkxvY2FsS2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24tPnNlY3VyaXR5UHJpdkxvY2FsS2V5TGVuKTsKKyAgICAgICAgICAgIGlmICghdXNlci0+cHJpdktleSkgeworICAgICAgICAgICAgICAgIHVzbV9mcmVlX3VzZXIodXNlcik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFNOTVBFUlJfR0VORVJSOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdXNlci0+cHJpdktleUxlbiA9IHNlc3Npb24tPnNlY3VyaXR5UHJpdkxvY2FsS2V5TGVuOworICAgICAgICB9IGVsc2UgaWYgKHNlc3Npb24tPnNlY3VyaXR5UHJpdktleSAhPSBOVUxMCisgICAgICAgICAgICAgICAgICAgJiYgc2Vzc2lvbi0+c2VjdXJpdHlQcml2S2V5TGVuICE9IDApIHsKKyAgICAgICAgICAgIFNOTVBfRlJFRSh1c2VyLT5wcml2S2V5KTsKKyAgICAgICAgICAgIHVzZXItPnByaXZLZXkgPSAodV9jaGFyICopIGNhbGxvYygxLCBVU01fTEVOR1RIX0tVX0hBU0hCTE9DSyk7CisgICAgICAgICAgICBpZiAodXNlci0+cHJpdktleSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgdXNtX2ZyZWVfdXNlcih1c2VyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gU05NUEVSUl9HRU5FUlI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB1c2VyLT5wcml2S2V5TGVuID0gVVNNX0xFTkdUSF9LVV9IQVNIQkxPQ0s7CisgICAgICAgICAgICBpZiAoZ2VuZXJhdGVfa3VsKHVzZXItPmF1dGhQcm90b2NvbCwgdXNlci0+YXV0aFByb3RvY29sTGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5zZWN1cml0eUVuZ2luZUlELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5zZWN1cml0eUVuZ2luZUlETGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLT5zZWN1cml0eVByaXZLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24tPnNlY3VyaXR5UHJpdktleUxlbiwgdXNlci0+cHJpdktleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnVzZXItPnByaXZLZXlMZW4pICE9IFNOTVBFUlJfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIHVzbV9mcmVlX3VzZXIodXNlcik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFNOTVBFUlJfR0VORVJSOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKChjcCA9IG5ldHNubXBfZHNfZ2V0X3N0cmluZyhORVRTTk1QX0RTX0xJQlJBUllfSUQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9QUklWTE9DQUxJWkVES0VZKSkpIHsKKyAgICAgICAgICAgIHNpemVfdCBidWZsZW4gPSBVU01fUFJJVl9LVV9MRU47CisgICAgICAgICAgICBTTk1QX0ZSRUUodXNlci0+cHJpdktleSk7CisgICAgICAgICAgICB1c2VyLT5wcml2S2V5ID0gKHVfY2hhciAqKW1hbGxvYyhidWZsZW4pOyAvKiBtYXggbGVuZ3RoIG5lZWRlZCAqLworICAgICAgICAgICAgdXNlci0+cHJpdktleUxlbiA9IDA7CisgICAgICAgICAgICAvKiBpdCB3aWxsIGJlIGEgaGV4IHN0cmluZyAqLworICAgICAgICAgICAgaWYgKCFzbm1wX2hleF90b19iaW5hcnkoJnVzZXItPnByaXZLZXksICZidWZsZW4sICZ1c2VyLT5wcml2S2V5TGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgY3ApKSB7CisgICAgICAgICAgICAgICAgdXNtX2ZyZWVfdXNlcih1c2VyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gU05NUEVSUl9HRU5FUlI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAodXNlcl9qdXN0X2NyZWF0ZWQpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogYWRkIHRoZSB1c2VyIGludG8gdGhlIGRhdGFiYXNlIAorICAgICAgICAgKi8KKyAgICAgICAgdXNlci0+dXNlclN0YXR1cyA9IFJTX0FDVElWRTsKKyAgICAgICAgdXNlci0+dXNlclN0b3JhZ2VUeXBlID0gU1RfUkVBRE9OTFk7CisgICAgICAgIHVzbV9hZGRfdXNlcih1c2VyKTsKKyAgICB9CisKKyAgICByZXR1cm4gU05NUEVSUl9TVUNDRVNTOworCisKK30KKworLyogQSB3cmFwcGVyIGFyb3VuZCB0aGUgaG9vayAqLworaW50Cit1c21fY3JlYXRlX3VzZXJfZnJvbV9zZXNzaW9uX2hvb2sodm9pZCAqc2xwLCBuZXRzbm1wX3Nlc3Npb24gKnNlc3Npb24pCit7CisgICAgREVCVUdNU0dUTCgoInVzbSIsICJwb3RlbnRpYWxseSBib290c3RyYXBwaW5nIHRoZSBVU00gdGFibGUgZnJvbSBzZXNzaW9uIGRhdGFcbiIpKTsKKyAgICByZXR1cm4gdXNtX2NyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbihzZXNzaW9uKTsKK30KKworc3RhdGljIGludAordXNtX2J1aWxkX3Byb2JlX3BkdShuZXRzbm1wX3BkdSAqKnBkdSkKK3sKKyAgICBzdHJ1Y3QgdXNtVXNlciAqdXNlcjsKKworICAgIC8qCisgICAgICogY3JlYXRlIHRoZSBwZHUgCisgICAgICovCisgICAgaWYgKCFwZHUpCisgICAgICAgIHJldHVybiAtMTsKKyAgICAqcGR1ID0gc25tcF9wZHVfY3JlYXRlKFNOTVBfTVNHX0dFVCk7CisgICAgaWYgKCEoKnBkdSkpCisgICAgICAgIHJldHVybiAtMTsKKyAgICAoKnBkdSktPnZlcnNpb24gPSBTTk1QX1ZFUlNJT05fMzsKKyAgICAoKnBkdSktPnNlY3VyaXR5TmFtZSA9IHN0cmR1cCgiIik7CisgICAgKCpwZHUpLT5zZWN1cml0eU5hbWVMZW4gPSBzdHJsZW4oKCpwZHUpLT5zZWN1cml0eU5hbWUpOworICAgICgqcGR1KS0+c2VjdXJpdHlMZXZlbCA9IFNOTVBfU0VDX0xFVkVMX05PQVVUSDsKKyAgICAoKnBkdSktPnNlY3VyaXR5TW9kZWwgPSBTTk1QX1NFQ19NT0RFTF9VU007CisKKyAgICAvKgorICAgICAqIGNyZWF0ZSB0aGUgZW1wdHkgdXNlciAKKyAgICAgKi8KKyAgICB1c2VyID0gdXNtX2dldF91c2VyKE5VTEwsIDAsICgqcGR1KS0+c2VjdXJpdHlOYW1lKTsKKyAgICBpZiAodXNlciA9PSBOVUxMKSB7CisgICAgICAgIHVzZXIgPSAoc3RydWN0IHVzbVVzZXIgKikgY2FsbG9jKDEsIHNpemVvZihzdHJ1Y3QgdXNtVXNlcikpOworICAgICAgICBpZiAodXNlciA9PSBOVUxMKSB7CisgICAgICAgICAgICBzbm1wX2ZyZWVfcGR1KCpwZHUpOworICAgICAgICAgICAgKnBkdSA9IChuZXRzbm1wX3BkdSAqKSBOVUxMOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIHVzZXItPm5hbWUgPSBzdHJkdXAoKCpwZHUpLT5zZWN1cml0eU5hbWUpOworICAgICAgICB1c2VyLT5zZWNOYW1lID0gc3RyZHVwKCgqcGR1KS0+c2VjdXJpdHlOYW1lKTsKKyAgICAgICAgdXNlci0+YXV0aFByb3RvY29sTGVuID0gc2l6ZW9mKHVzbU5vQXV0aFByb3RvY29sKSAvIHNpemVvZihvaWQpOworICAgICAgICB1c2VyLT5hdXRoUHJvdG9jb2wgPQorICAgICAgICAgICAgc25tcF9kdXBsaWNhdGVfb2JqaWQodXNtTm9BdXRoUHJvdG9jb2wsIHVzZXItPmF1dGhQcm90b2NvbExlbik7CisgICAgICAgIHVzZXItPnByaXZQcm90b2NvbExlbiA9IHNpemVvZih1c21Ob1ByaXZQcm90b2NvbCkgLyBzaXplb2Yob2lkKTsKKyAgICAgICAgdXNlci0+cHJpdlByb3RvY29sID0KKyAgICAgICAgICAgIHNubXBfZHVwbGljYXRlX29iamlkKHVzbU5vUHJpdlByb3RvY29sLCB1c2VyLT5wcml2UHJvdG9jb2xMZW4pOworICAgICAgICB1c21fYWRkX3VzZXIodXNlcik7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitpbnQgdXNtX2Rpc2NvdmVyX2VuZ2luZWlkKHZvaWQgKnNscHYsIG5ldHNubXBfc2Vzc2lvbiAqc2Vzc2lvbikgeworICAgIG5ldHNubXBfcGR1ICAgICpwZHUgPSBOVUxMLCAqcmVzcG9uc2UgPSBOVUxMOworICAgIGludCBzdGF0dXMsIGk7CisgICAgc3RydWN0IHNlc3Npb25fbGlzdCAqc2xwID0gKHN0cnVjdCBzZXNzaW9uX2xpc3QgKikgc2xwdjsKKworICAgIGlmICh1c21fYnVpbGRfcHJvYmVfcGR1KCZwZHUpICE9IDApIHsKKyAgICAgICAgREVCVUdNU0dUTCgoInNubXBfYXBpIiwgInVuYWJsZSB0byBjcmVhdGUgcHJvYmUgUERVXG4iKSk7CisgICAgICAgIHJldHVybiBTTk1QX0VSUl9HRU5FUlI7CisgICAgfQorICAgIERFQlVHTVNHVEwoKCJzbm1wX2FwaSIsICJwcm9iaW5nIGZvciBlbmdpbmVJRC4uLlxuIikpOworICAgIHNlc3Npb24tPmZsYWdzIHw9IFNOTVBfRkxBR1NfRE9OVF9QUk9CRTsgLyogcHJldmVudCByZWN1cnNpb24gKi8KKyAgICBzdGF0dXMgPSBzbm1wX3Nlc3Nfc3luY2hfcmVzcG9uc2Uoc2xwLCBwZHUsICZyZXNwb25zZSk7CisKKyAgICBpZiAoKHJlc3BvbnNlID09IE5VTEwpICYmIChzdGF0dXMgPT0gU1RBVF9TVUNDRVNTKSkgeworICAgICAgICBzdGF0dXMgPSBTVEFUX0VSUk9SOworICAgIH0KKworICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgY2FzZSBTVEFUX1NVQ0NFU1M6CisgICAgICAgIHNlc3Npb24tPnNfc25tcF9lcnJubyA9IFNOTVBFUlJfSU5WQUxJRF9NU0c7IC8qIFhYPz8gKi8KKyAgICAgICAgREVCVUdNU0dUTCgoInNubXBfc2Vzc19vcGVuIiwKKyAgICAgICAgICAgICAgICAgICAgImVycm9yOiBleHBlY3RlZCBSZXBvcnQgYXMgcmVzcG9uc2UgdG8gcHJvYmU6ICVzICglbGQpXG4iLAorICAgICAgICAgICAgICAgICAgICBzbm1wX2VycnN0cmluZyhyZXNwb25zZS0+ZXJyc3RhdCksCisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLT5lcnJzdGF0KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU1RBVF9FUlJPUjogICAvKiB0aGlzIGlzIHdoYXQgd2UgZXhwZWN0ZWQgLT4gUmVwb3J0ID09IFNUQVRfRVJST1IgKi8KKyAgICAgICAgc2Vzc2lvbi0+c19zbm1wX2Vycm5vID0gU05NUEVSUl9VTktOT1dOX0VOR19JRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTVEFUX1RJTUVPVVQ6CisgICAgICAgIHNlc3Npb24tPnNfc25tcF9lcnJubyA9IFNOTVBFUlJfVElNRU9VVDsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgREVCVUdNU0dUTCgoInNubXBfc2Vzc19vcGVuIiwKKyAgICAgICAgICAgICAgICAgICAgInVuYWJsZSB0byBjb25uZWN0IHdpdGggcmVtb3RlIGVuZ2luZTogJXMgKCVkKVxuIiwKKyAgICAgICAgICAgICAgICAgICAgc25tcF9hcGlfZXJyc3RyaW5nKHNlc3Npb24tPnNfc25tcF9lcnJubyksCisgICAgICAgICAgICAgICAgICAgIHNlc3Npb24tPnNfc25tcF9lcnJubykpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpZiAoc2xwLT5zZXNzaW9uLT5zZWN1cml0eUVuZ2luZUlETGVuID09IDApIHsKKyAgICAgICAgREVCVUdNU0dUTCgoInNubXBfYXBpIiwKKyAgICAgICAgICAgICAgICAgICAgInVuYWJsZSB0byBkZXRlcm1pbmUgcmVtb3RlIGVuZ2luZSBJRFxuIikpOworICAgICAgICAvKiBjbGVhciB0aGUgZmxhZyBzbyB0aGF0IHByb2JlIG9jY3VycyBvbiBuZXh0IGluZm9ybSAqLworICAgICAgICBzZXNzaW9uLT5mbGFncyAmPSB+U05NUF9GTEFHU19ET05UX1BST0JFOworICAgICAgICByZXR1cm4gU05NUF9FUlJfR0VORVJSOworICAgIH0KKworICAgIHNlc3Npb24tPnNfc25tcF9lcnJubyA9IFNOTVBFUlJfU1VDQ0VTUzsKKyAgICBpZiAoc25tcF9nZXRfZG9fZGVidWdnaW5nKCkpIHsKKyAgICAgICAgREVCVUdNU0dUTCgoInNubXBfc2Vzc19vcGVuIiwKKyAgICAgICAgICAgICAgICAgICAgIiAgcHJvYmUgZm91bmQgZW5naW5lSUQ6ICAiKSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzbHAtPnNlc3Npb24tPnNlY3VyaXR5RW5naW5lSURMZW47IGkrKykKKyAgICAgICAgICAgIERFQlVHTVNHKCgic25tcF9zZXNzX29wZW4iLCAiJTAyeCIsCisgICAgICAgICAgICAgICAgICAgICAgc2xwLT5zZXNzaW9uLT5zZWN1cml0eUVuZ2luZUlEW2ldKSk7CisgICAgICAgIERFQlVHTVNHKCgic25tcF9zZXNzX29wZW4iLCAiXG4iKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBpZiBib290L3RpbWUgc3VwcGxpZWQgc2V0IGl0IGZvciB0aGlzIGVuZ2luZUlEIAorICAgICAqLworICAgIGlmIChzZXNzaW9uLT5lbmdpbmVCb290cyB8fCBzZXNzaW9uLT5lbmdpbmVUaW1lKSB7CisgICAgICAgIHNldF9lbmdpbmV0aW1lKHNlc3Npb24tPnNlY3VyaXR5RW5naW5lSUQsCisgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24tPnNlY3VyaXR5RW5naW5lSURMZW4sCisgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24tPmVuZ2luZUJvb3RzLCBzZXNzaW9uLT5lbmdpbmVUaW1lLAorICAgICAgICAgICAgICAgICAgICAgICBUUlVFKTsKKyAgICB9CisgICAgcmV0dXJuIFNOTVBFUlJfU1VDQ0VTUzsKK30KKwogdm9pZAogaW5pdF91c20odm9pZCkKIHsKICAgICBzdHJ1Y3Qgc25tcF9zZWNtb2RfZGVmICpkZWY7CisgICAgY2hhciAqdHlwZTsKIAogICAgIERFQlVHTVNHVEwoKCJpbml0X3VzbSIsICJ1bml0X3VzbTogJSIgTkVUU05NUF9QUklvICJ1ICUiIE5FVFNOTVBfUFJJbyAidVxuIiwKICAgICAgICAgICAgICAgICB1c21Ob1ByaXZQcm90b2NvbFswXSwgdXNtTm9Qcml2UHJvdG9jb2xbMV0pKTsKQEAgLTI4ODIsNiArMzIxOSw4IEBACiAgICAgZGVmLT5wZHVfZnJlZV9zdGF0ZV9yZWYgPSB1c21fZnJlZV91c21TdGF0ZVJlZmVyZW5jZTsKICAgICBkZWYtPnNlc3Npb25fc2V0dXAgPSB1c21fc2Vzc2lvbl9pbml0OwogICAgIGRlZi0+aGFuZGxlX3JlcG9ydCA9IHVzbV9oYW5kbGVfcmVwb3J0OworICAgIGRlZi0+cHJvYmVfZW5naW5laWQgPSB1c21fZGlzY292ZXJfZW5naW5laWQ7CisgICAgZGVmLT5wb3N0X3Byb2JlX2VuZ2luZWlkID0gdXNtX2NyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbl9ob29rOwogICAgIHJlZ2lzdGVyX3NlY19tb2QoVVNNX1NFQ19NT0RFTF9OVU1CRVIsICJ1c20iLCBkZWYpOwogCiAgICAgc25tcF9yZWdpc3Rlcl9jYWxsYmFjayhTTk1QX0NBTExCQUNLX0xJQlJBUlksCkBAIC0yODk2LDYgKzMyMzUsMzkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBfQ0FMTEJBQ0tfU0hVVERPV04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlX2VuZ2luZUlELCBOVUxMKTsKIAorICAgIHJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKCJzbm1wIiwgImRlZkF1dGhUeXBlIiwgc25tcHYzX2F1dGh0eXBlX2NvbmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgIk1ENXxTSEEiKTsKKyAgICByZWdpc3Rlcl9jb25maWdfaGFuZGxlcigic25tcCIsICJkZWZQcml2VHlwZSIsIHNubXB2M19wcml2dHlwZV9jb25mLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisjaWZkZWYgSEFWRV9BRVMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiREVTfEFFUyIKKyNlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRFUyAoQUVTIHN1cHBvcnQgbm90IGF2YWlsYWJsZSkiCisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisKKyAgICAvKgorICAgICAqIEZyZWUgc3R1ZmYgYXQgc2h1dGRvd24gdGltZQorICAgICAqLworICAgIHNubXBfcmVnaXN0ZXJfY2FsbGJhY2soU05NUF9DQUxMQkFDS19MSUJSQVJZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgU05NUF9DQUxMQkFDS19TSFVURE9XTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWVfZW5naW5ldGltZV9vbl9zaHV0ZG93biwgTlVMTCk7CisKKworICAgIHR5cGUgPSBuZXRzbm1wX2RzX2dldF9zdHJpbmcoTkVUU05NUF9EU19MSUJSQVJZX0lELCBORVRTTk1QX0RTX0xJQl9BUFBUWVBFKTsKKworICAgIHJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKHR5cGUsICJ1c2VyU2V0QXV0aFBhc3MiLCB1c21fc2V0X3Bhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgIHJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKHR5cGUsICJ1c2VyU2V0UHJpdlBhc3MiLCB1c21fc2V0X3Bhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgIHJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKHR5cGUsICJ1c2VyU2V0QXV0aEtleSIsIHVzbV9zZXRfcGFzc3dvcmQsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIodHlwZSwgInVzZXJTZXRQcml2S2V5IiwgdXNtX3NldF9wYXNzd29yZCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICByZWdpc3Rlcl9jb25maWdfaGFuZGxlcih0eXBlLCAidXNlclNldEF1dGhMb2NhbEtleSIsIHVzbV9zZXRfcGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CisgICAgcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIodHlwZSwgInVzZXJTZXRQcml2TG9jYWxLZXkiLCB1c21fc2V0X3Bhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOwogfQogCiB2b2lkCkBAIC0zMDA0LDYgKzMzNzYsMTMgQEAKIAogfQogCit2b2lkCitzaHV0ZG93bl91c20odm9pZCkKK3sKKyAgICBmcmVlX2V0aW1lbGlzdCgpOworICAgIGNsZWFyX3VzZXJfbGlzdCgpOworfQorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi1vLSoqKioqKgogICogdXNtX2NoZWNrX3NlY0xldmVsCiAgKgpAQCAtMzQwOSw2ICszNzg4LDcgQEAKIAogCiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAvKgogICogdGFrZSBhIGdpdmVuIHVzZXIgYW5kIGNsb25lIHRoZSBzZWN1cml0eSBpbmZvIGludG8gYW5vdGhlciAKICAqLwpAQCAtMzQ3Miw2ICszODUyLDcgQEAKICAgICB9CiAgICAgcmV0dXJuIHRvOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLwogCiAvKgogICogdXNtX2NyZWF0ZV91c2VyKHZvaWQpOgpAQCAtMzkzNywzICs0MzE4LDM1NSBAQAogICAgICAgICB9CiAgICAgfQogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBlbmQgdXNtX3NldF9wYXNzd29yZCgpICovCisKK3ZvaWQKK3VzbV9wYXJzZV9jcmVhdGVfdXNtVXNlcihjb25zdCBjaGFyICp0b2tlbiwgY2hhciAqbGluZSkKK3sKKyAgICBjaGFyICAgICAgICAgICAqY3A7CisgICAgY2hhciAgICAgICAgICAgIGJ1ZltTTk1QX01BWEJVRl9NRURJVU1dOworICAgIHN0cnVjdCB1c21Vc2VyICpuZXd1c2VyOworICAgIHVfY2hhciAgICAgICAgICB1c2VyS2V5W1NOTVBfTUFYQlVGX1NNQUxMXSwgKnRtcHA7CisgICAgc2l6ZV90ICAgICAgICAgIHVzZXJLZXlMZW4gPSBTTk1QX01BWEJVRl9TTUFMTDsKKyAgICBzaXplX3QgICAgICAgICAgcHJpdktleUxlbiA9IDA7CisgICAgc2l6ZV90ICAgICAgICAgIHJldDsKKyAgICBpbnQgICAgICAgICAgICAgcmV0MjsKKyAgICBpbnQgICAgICAgICAgICAgdGVzdGNhc2U7CisKKyAgICBuZXd1c2VyID0gdXNtX2NyZWF0ZV91c2VyKCk7CisKKyAgICAvKgorICAgICAqIFJFQUQ6IFNlY3VyaXR5IE5hbWUgCisgICAgICovCisgICAgY3AgPSBjb3B5X253b3JkKGxpbmUsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOworCisgICAgLyoKKyAgICAgKiBtaWdodCBiZSBhIC1lIEVOR0lORUlEIGFyZ3VtZW50IAorICAgICAqLworICAgIGlmIChzdHJjbXAoYnVmLCAiLWUiKSA9PSAwKSB7CisgICAgICAgIHNpemVfdCAgICAgICAgICBlYnVmX2xlbiA9IDMyLCBlb3V0X2xlbiA9IDA7CisgICAgICAgIHVfY2hhciAgICAgICAgICplYnVmID0gKHVfY2hhciAqKSBtYWxsb2MoZWJ1Zl9sZW4pOworCisgICAgICAgIGlmIChlYnVmID09IE5VTEwpIHsKKyAgICAgICAgICAgIGNvbmZpZ19wZXJyb3IoIm1hbGxvYyBmYWlsdXJlIHByb2Nlc3NpbmcgLWUgZmxhZyIpOworICAgICAgICAgICAgdXNtX2ZyZWVfdXNlcihuZXd1c2VyKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIEdldCB0aGUgc3BlY2lmaWVkIGVuZ2luZWlkIGZyb20gdGhlIGxpbmUuICAKKyAgICAgICAgICovCisgICAgICAgIGNwID0gY29weV9ud29yZChjcCwgYnVmLCBzaXplb2YoYnVmKSk7CisgICAgICAgIGlmICghc25tcF9oZXhfdG9fYmluYXJ5KCZlYnVmLCAmZWJ1Zl9sZW4sICZlb3V0X2xlbiwgMSwgYnVmKSkgeworICAgICAgICAgICAgY29uZmlnX3BlcnJvcigiaW52YWxpZCBFbmdpbmVJRCBhcmd1bWVudCB0byAtZSIpOworICAgICAgICAgICAgdXNtX2ZyZWVfdXNlcihuZXd1c2VyKTsKKyAgICAgICAgICAgIFNOTVBfRlJFRShlYnVmKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIG5ld3VzZXItPmVuZ2luZUlEID0gZWJ1ZjsKKyAgICAgICAgbmV3dXNlci0+ZW5naW5lSURMZW4gPSBlb3V0X2xlbjsKKyAgICAgICAgY3AgPSBjb3B5X253b3JkKGNwLCBidWYsIHNpemVvZihidWYpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBuZXd1c2VyLT5lbmdpbmVJRCA9IHNubXB2M19nZW5lcmF0ZV9lbmdpbmVJRCgmcmV0KTsKKyAgICAgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgICAgICB1c21fZnJlZV91c2VyKG5ld3VzZXIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG5ld3VzZXItPmVuZ2luZUlETGVuID0gcmV0OworICAgIH0KKworICAgIG5ld3VzZXItPnNlY05hbWUgPSBzdHJkdXAoYnVmKTsKKyAgICBuZXd1c2VyLT5uYW1lID0gc3RyZHVwKGJ1Zik7CisKKyAgICBpZiAoIWNwKQorICAgICAgICBnb3RvIGFkZDsgICAgICAgICAgICAgICAvKiBubyBhdXRoZW50aWNhdGlvbiBvciBwcml2YWN5IHR5cGUgKi8KKworICAgIC8qCisgICAgICogUkVBRDogQXV0aGVudGljYXRpb24gVHlwZSAKKyAgICAgKi8KKyNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX01ENQorICAgIGlmIChzdHJuY21wKGNwLCAiTUQ1IiwgMykgPT0gMCkgeworICAgICAgICBtZW1jcHkobmV3dXNlci0+YXV0aFByb3RvY29sLCB1c21ITUFDTUQ1QXV0aFByb3RvY29sLAorICAgICAgICAgICAgICAgc2l6ZW9mKHVzbUhNQUNNRDVBdXRoUHJvdG9jb2wpKTsKKyAgICB9IGVsc2UKKyNlbmRpZgorICAgICAgICBpZiAoc3RybmNtcChjcCwgIlNIQSIsIDMpID09IDApIHsKKyAgICAgICAgbWVtY3B5KG5ld3VzZXItPmF1dGhQcm90b2NvbCwgdXNtSE1BQ1NIQTFBdXRoUHJvdG9jb2wsCisgICAgICAgICAgICAgICBzaXplb2YodXNtSE1BQ1NIQTFBdXRoUHJvdG9jb2wpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBjb25maWdfcGVycm9yKCJVbmtub3duIGF1dGhlbnRpY2F0aW9uIHByb3RvY29sIik7CisgICAgICAgIHVzbV9mcmVlX3VzZXIobmV3dXNlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjcCA9IHNraXBfdG9rZW4oY3ApOworCisgICAgLyoKKyAgICAgKiBSRUFEOiBBdXRoZW50aWNhdGlvbiBQYXNzIFBocmFzZSBvciBrZXkKKyAgICAgKi8KKyAgICBpZiAoIWNwKSB7CisgICAgICAgIGNvbmZpZ19wZXJyb3IoIm5vIGF1dGhlbnRpY2F0aW9uIHBhc3MgcGhyYXNlIik7CisgICAgICAgIHVzbV9mcmVlX3VzZXIobmV3dXNlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY3AgPSBjb3B5X253b3JkKGNwLCBidWYsIHNpemVvZihidWYpKTsKKyAgICBpZiAoc3RyY21wKGJ1ZiwiLW0iKSA9PSAwKSB7CisgICAgICAgIC8qIGEgbWFzdGVyIGtleSBpcyBzcGVjaWZpZWQgKi8KKyAgICAgICAgY3AgPSBjb3B5X253b3JkKGNwLCBidWYsIHNpemVvZihidWYpKTsKKyAgICAgICAgcmV0ID0gc2l6ZW9mKHVzZXJLZXkpOworICAgICAgICB0bXBwID0gdXNlcktleTsKKyAgICAgICAgdXNlcktleUxlbiA9IDA7CisgICAgICAgIGlmICghc25tcF9oZXhfdG9fYmluYXJ5KCZ0bXBwLCAmcmV0LCAmdXNlcktleUxlbiwgMCwgYnVmKSkgeworICAgICAgICAgICAgY29uZmlnX3BlcnJvcigiaW52YWxpZCBrZXkgdmFsdWUgYXJndW1lbnQgdG8gLW0iKTsKKyAgICAgICAgICAgIHVzbV9mcmVlX3VzZXIobmV3dXNlcik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHN0cmNtcChidWYsIi1sIikgIT0gMCkgeworICAgICAgICAvKiBhIHBhc3N3b3JkIGlzIHNwZWNpZmllZCAqLworICAgICAgICB1c2VyS2V5TGVuID0gc2l6ZW9mKHVzZXJLZXkpOworICAgICAgICByZXQyID0gZ2VuZXJhdGVfS3UobmV3dXNlci0+YXV0aFByb3RvY29sLCBuZXd1c2VyLT5hdXRoUHJvdG9jb2xMZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICh1X2NoYXIgKikgYnVmLCBzdHJsZW4oYnVmKSwgdXNlcktleSwgJnVzZXJLZXlMZW4pOworICAgICAgICBpZiAocmV0MiAhPSBTTk1QRVJSX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIGNvbmZpZ19wZXJyb3IoImNvdWxkIG5vdCBnZW5lcmF0ZSB0aGUgYXV0aGVudGljYXRpb24ga2V5IGZyb20gdGhlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInN1cHBsaWVkIHBhc3MgcGhyYXNlLiIpOworICAgICAgICAgICAgdXNtX2ZyZWVfdXNlcihuZXd1c2VyKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0gICAgICAgIAorICAgICAgICAKKyAgICAvKgorICAgICAqIEFuZCB0dXJuIGl0IGludG8gYSBsb2NhbGl6ZWQga2V5IAorICAgICAqLworICAgIHJldDIgPSBzY19nZXRfcHJvcGVybGVuZ3RoKG5ld3VzZXItPmF1dGhQcm90b2NvbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXd1c2VyLT5hdXRoUHJvdG9jb2xMZW4pOworICAgIGlmIChyZXQyIDw9IDApIHsKKyAgICAgICAgY29uZmlnX3BlcnJvcigiQ291bGQgbm90IGdldCBwcm9wZXIgYXV0aGVudGljYXRpb24gcHJvdG9jb2wga2V5IGxlbmd0aCIpOworCXVzbV9mcmVlX3VzZXIobmV3dXNlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbmV3dXNlci0+YXV0aEtleSA9ICh1X2NoYXIgKikgbWFsbG9jKHJldDIpOworCisgICAgaWYgKHN0cmNtcChidWYsIi1sIikgPT0gMCkgeworICAgICAgICAvKiBhIGxvY2FsIGtleSBpcyBkaXJlY3RseSBzcGVjaWZpZWQgKi8KKyAgICAgICAgY3AgPSBjb3B5X253b3JkKGNwLCBidWYsIHNpemVvZihidWYpKTsKKyAgICAgICAgbmV3dXNlci0+YXV0aEtleUxlbiA9IDA7CisgICAgICAgIHJldCA9IHJldDI7CisgICAgICAgIGlmICghc25tcF9oZXhfdG9fYmluYXJ5KCZuZXd1c2VyLT5hdXRoS2V5LCAmcmV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmV3dXNlci0+YXV0aEtleUxlbiwgMCwgYnVmKSkgeworICAgICAgICAgICAgY29uZmlnX3BlcnJvcigiaW52YWxpZCBrZXkgdmFsdWUgYXJndW1lbnQgdG8gLWwiKTsKKyAgICAgICAgICAgIHVzbV9mcmVlX3VzZXIobmV3dXNlcik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJldCAhPSBuZXd1c2VyLT5hdXRoS2V5TGVuKSB7CisgICAgICAgICAgICBjb25maWdfcGVycm9yKCJpbXByb3BlciBrZXkgbGVuZ3RoIHRvIC1sIik7CisgICAgICAgICAgICB1c21fZnJlZV91c2VyKG5ld3VzZXIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgbmV3dXNlci0+YXV0aEtleUxlbiA9IHJldDI7CisgICAgICAgIHJldDIgPSBnZW5lcmF0ZV9rdWwobmV3dXNlci0+YXV0aFByb3RvY29sLCBuZXd1c2VyLT5hdXRoUHJvdG9jb2xMZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXd1c2VyLT5lbmdpbmVJRCwgbmV3dXNlci0+ZW5naW5lSURMZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyS2V5LCB1c2VyS2V5TGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3dXNlci0+YXV0aEtleSwgJm5ld3VzZXItPmF1dGhLZXlMZW4pOworICAgICAgICBpZiAocmV0MiAhPSBTTk1QRVJSX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIGNvbmZpZ19wZXJyb3IoImNvdWxkIG5vdCBnZW5lcmF0ZSBsb2NhbGl6ZWQgYXV0aGVudGljYXRpb24ga2V5ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIihLdWwpIGZyb20gdGhlIG1hc3RlciBrZXkgKEt1KS4iKTsKKyAgICAgICAgICAgIHVzbV9mcmVlX3VzZXIobmV3dXNlcik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWNwKQorICAgICAgICBnb3RvIGFkZDsgICAgICAgICAgICAgICAvKiBubyBwcml2YWN5IHR5cGUgKHdoaWNoIGlzIGxlZ2FsKSAqLworCisgICAgLyoKKyAgICAgKiBSRUFEOiBQcml2YWN5IFR5cGUgCisgICAgICovCisgICAgdGVzdGNhc2UgPSAwOworI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfREVTCisgICAgaWYgKHN0cm5jbXAoY3AsICJERVMiLCAzKSA9PSAwKSB7CisgICAgICAgIG1lbWNweShuZXd1c2VyLT5wcml2UHJvdG9jb2wsIHVzbURFU1ByaXZQcm90b2NvbCwKKyAgICAgICAgICAgICAgIHNpemVvZih1c21ERVNQcml2UHJvdG9jb2wpKTsKKyAgICAgICAgdGVzdGNhc2UgPSAxOworCS8qIERFUyB1c2VzIGEgMTI4IGJpdCBrZXksIDY0IGJpdHMgb2Ygd2hpY2ggaXMgYSBzYWx0ICovCisJcHJpdktleUxlbiA9IDE2OworICAgIH0KKyNlbmRpZgorI2lmZGVmIEhBVkVfQUVTCisgICAgaWYgKHN0cm5jbXAoY3AsICJBRVMxMjgiLCA2KSA9PSAwIHx8CisgICAgICAgICAgICAgICBzdHJuY21wKGNwLCAiQUVTIiwgMykgPT0gMCkgeworICAgICAgICBtZW1jcHkobmV3dXNlci0+cHJpdlByb3RvY29sLCB1c21BRVNQcml2UHJvdG9jb2wsCisgICAgICAgICAgICAgICBzaXplb2YodXNtQUVTUHJpdlByb3RvY29sKSk7CisgICAgICAgIHRlc3RjYXNlID0gMTsKKwlwcml2S2V5TGVuID0gMTY7CisgICAgfQorI2VuZGlmCisgICAgaWYgKHRlc3RjYXNlID09IDApIHsKKyAgICAgICAgY29uZmlnX3BlcnJvcigiVW5rbm93biBwcml2YWN5IHByb3RvY29sIik7CisgICAgICAgIHVzbV9mcmVlX3VzZXIobmV3dXNlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjcCA9IHNraXBfdG9rZW4oY3ApOworICAgIC8qCisgICAgICogUkVBRDogRW5jcnlwdGlvbiBQYXNzIFBocmFzZSBvciBrZXkKKyAgICAgKi8KKyAgICBpZiAoIWNwKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIGFzc3VtZSB0aGUgc2FtZSBhcyB0aGUgYXV0aGVudGljYXRpb24ga2V5IAorICAgICAgICAgKi8KKyAgICAgICAgbmV3dXNlci0+cHJpdktleSA9IG5ldHNubXBfbWVtZHVwKG5ld3VzZXItPmF1dGhLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXd1c2VyLT5hdXRoS2V5TGVuKTsKKyAgICAgICAgbmV3dXNlci0+cHJpdktleUxlbiA9IG5ld3VzZXItPmF1dGhLZXlMZW47CisgICAgfSBlbHNlIHsKKyAgICAgICAgY3AgPSBjb3B5X253b3JkKGNwLCBidWYsIHNpemVvZihidWYpKTsKKyAgICAgICAgCisgICAgICAgIGlmIChzdHJjbXAoYnVmLCItbSIpID09IDApIHsKKyAgICAgICAgICAgIC8qIGEgbWFzdGVyIGtleSBpcyBzcGVjaWZpZWQgKi8KKyAgICAgICAgICAgIGNwID0gY29weV9ud29yZChjcCwgYnVmLCBzaXplb2YoYnVmKSk7CisgICAgICAgICAgICByZXQgPSBzaXplb2YodXNlcktleSk7CisgICAgICAgICAgICB0bXBwID0gdXNlcktleTsKKyAgICAgICAgICAgIHVzZXJLZXlMZW4gPSAwOworICAgICAgICAgICAgaWYgKCFzbm1wX2hleF90b19iaW5hcnkoJnRtcHAsICZyZXQsICZ1c2VyS2V5TGVuLCAwLCBidWYpKSB7CisgICAgICAgICAgICAgICAgY29uZmlnX3BlcnJvcigiaW52YWxpZCBrZXkgdmFsdWUgYXJndW1lbnQgdG8gLW0iKTsKKyAgICAgICAgICAgICAgICB1c21fZnJlZV91c2VyKG5ld3VzZXIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAoYnVmLCItbCIpICE9IDApIHsKKyAgICAgICAgICAgIC8qIGEgcGFzc3dvcmQgaXMgc3BlY2lmaWVkICovCisgICAgICAgICAgICB1c2VyS2V5TGVuID0gc2l6ZW9mKHVzZXJLZXkpOworICAgICAgICAgICAgcmV0MiA9IGdlbmVyYXRlX0t1KG5ld3VzZXItPmF1dGhQcm90b2NvbCwgbmV3dXNlci0+YXV0aFByb3RvY29sTGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVfY2hhciAqKSBidWYsIHN0cmxlbihidWYpLCB1c2VyS2V5LCAmdXNlcktleUxlbik7CisgICAgICAgICAgICBpZiAocmV0MiAhPSBTTk1QRVJSX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICBjb25maWdfcGVycm9yKCJjb3VsZCBub3QgZ2VuZXJhdGUgdGhlIHByaXZhY3kga2V5IGZyb20gdGhlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdXBwbGllZCBwYXNzIHBocmFzZS4iKTsKKyAgICAgICAgICAgICAgICB1c21fZnJlZV91c2VyKG5ld3VzZXIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgICAgCisgICAgICAgIAorICAgICAgICAvKgorICAgICAgICAgKiBBbmQgdHVybiBpdCBpbnRvIGEgbG9jYWxpemVkIGtleSAKKyAgICAgICAgICovCisgICAgICAgIHJldDIgPSBzY19nZXRfcHJvcGVybGVuZ3RoKG5ld3VzZXItPmF1dGhQcm90b2NvbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3dXNlci0+YXV0aFByb3RvY29sTGVuKTsKKyAgICAgICAgaWYgKHJldDIgPCAwKSB7CisgICAgICAgICAgICBjb25maWdfcGVycm9yKCJjb3VsZCBub3QgZ2V0IHByb3BlciBrZXkgbGVuZ3RoIHRvIHVzZSBmb3IgdGhlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInByaXZhY3kgYWxnb3JpdGhtLiIpOworICAgICAgICAgICAgdXNtX2ZyZWVfdXNlcihuZXd1c2VyKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBuZXd1c2VyLT5wcml2S2V5ID0gKHVfY2hhciAqKSBtYWxsb2MocmV0Mik7CisKKyAgICAgICAgaWYgKHN0cmNtcChidWYsIi1sIikgPT0gMCkgeworICAgICAgICAgICAgLyogYSBsb2NhbCBrZXkgaXMgZGlyZWN0bHkgc3BlY2lmaWVkICovCisgICAgICAgICAgICBjcCA9IGNvcHlfbndvcmQoY3AsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOworICAgICAgICAgICAgcmV0ID0gcmV0MjsKKyAgICAgICAgICAgIG5ld3VzZXItPnByaXZLZXlMZW4gPSAwOworICAgICAgICAgICAgaWYgKCFzbm1wX2hleF90b19iaW5hcnkoJm5ld3VzZXItPnByaXZLZXksICZyZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmV3dXNlci0+cHJpdktleUxlbiwgMCwgYnVmKSkgeworICAgICAgICAgICAgICAgIGNvbmZpZ19wZXJyb3IoImludmFsaWQga2V5IHZhbHVlIGFyZ3VtZW50IHRvIC1sIik7CisgICAgICAgICAgICAgICAgdXNtX2ZyZWVfdXNlcihuZXd1c2VyKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBuZXd1c2VyLT5wcml2S2V5TGVuID0gcmV0MjsKKyAgICAgICAgICAgIHJldDIgPSBnZW5lcmF0ZV9rdWwobmV3dXNlci0+YXV0aFByb3RvY29sLCBuZXd1c2VyLT5hdXRoUHJvdG9jb2xMZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3dXNlci0+ZW5naW5lSUQsIG5ld3VzZXItPmVuZ2luZUlETGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJLZXksIHVzZXJLZXlMZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3dXNlci0+cHJpdktleSwgJm5ld3VzZXItPnByaXZLZXlMZW4pOworICAgICAgICAgICAgaWYgKHJldDIgIT0gU05NUEVSUl9TVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgY29uZmlnX3BlcnJvcigiY291bGQgbm90IGdlbmVyYXRlIGxvY2FsaXplZCBwcml2YWN5IGtleSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKEt1bCkgZnJvbSB0aGUgbWFzdGVyIGtleSAoS3UpLiIpOworICAgICAgICAgICAgICAgIHVzbV9mcmVlX3VzZXIobmV3dXNlcik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKChuZXd1c2VyLT5wcml2S2V5TGVuID49IHByaXZLZXlMZW4pIHx8IChwcml2S2V5TGVuID09IDApKXsKKyAgICAgIG5ld3VzZXItPnByaXZLZXlMZW4gPSBwcml2S2V5TGVuOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgIC8qIFRoZSBwcml2S2V5IGxlbmd0aCBpcyBzbWFsbGVyIHRoYW4gcmVxdWlyZWQgYnkgcHJpdlByb3RvY29sICovCisgICAgICB1c21fZnJlZV91c2VyKG5ld3VzZXIpOworICAgICAgcmV0dXJuOworICAgIH0KKworICBhZGQ6CisgICAgdXNtX2FkZF91c2VyKG5ld3VzZXIpOworICAgIERFQlVHTVNHVEwoKCJ1c21Vc2VyIiwgImNyZWF0ZWQgYSBuZXcgdXNlciAlcyBhdCAiLCBuZXd1c2VyLT5zZWNOYW1lKSk7CisgICAgREVCVUdNU0dIRVgoKCJ1c21Vc2VyIiwgbmV3dXNlci0+ZW5naW5lSUQsIG5ld3VzZXItPmVuZ2luZUlETGVuKSk7CisgICAgREVCVUdNU0coKCJ1c21Vc2VyIiwgIlxuIikpOworfQorCit2b2lkCitzbm1wdjNfYXV0aHR5cGVfY29uZihjb25zdCBjaGFyICp3b3JkLCBjaGFyICpjcHRyKQoreworI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfTUQ1CisgICAgaWYgKHN0cmNhc2VjbXAoY3B0ciwgIk1ENSIpID09IDApCisgICAgICAgIGRlZmF1bHRBdXRoVHlwZSA9IHVzbUhNQUNNRDVBdXRoUHJvdG9jb2w7CisgICAgZWxzZQorI2VuZGlmCisgICAgICAgIGlmIChzdHJjYXNlY21wKGNwdHIsICJTSEEiKSA9PSAwKQorICAgICAgICBkZWZhdWx0QXV0aFR5cGUgPSB1c21ITUFDU0hBMUF1dGhQcm90b2NvbDsKKyAgICBlbHNlCisgICAgICAgIGNvbmZpZ19wZXJyb3IoIlVua25vd24gYXV0aGVudGljYXRpb24gdHlwZSIpOworICAgIGRlZmF1bHRBdXRoVHlwZUxlbiA9IFVTTV9MRU5HVEhfT0lEX1RSQU5TRk9STTsKKyAgICBERUJVR01TR1RMKCgic25tcHYzIiwgInNldCBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIHR5cGU6ICVzXG4iLCBjcHRyKSk7Cit9CisKK2NvbnN0IG9pZCAgICAgICoKK2dldF9kZWZhdWx0X2F1dGh0eXBlKHNpemVfdCAqIGxlbikKK3sKKyAgICBpZiAoZGVmYXVsdEF1dGhUeXBlID09IE5VTEwpIHsKKyAgICAgICAgZGVmYXVsdEF1dGhUeXBlID0gU05NUF9ERUZBVUxUX0FVVEhfUFJPVE87CisgICAgICAgIGRlZmF1bHRBdXRoVHlwZUxlbiA9IFNOTVBfREVGQVVMVF9BVVRIX1BST1RPTEVOOworICAgIH0KKyAgICBpZiAobGVuKQorICAgICAgICAqbGVuID0gZGVmYXVsdEF1dGhUeXBlTGVuOworICAgIHJldHVybiBkZWZhdWx0QXV0aFR5cGU7Cit9CisKK3ZvaWQKK3NubXB2M19wcml2dHlwZV9jb25mKGNvbnN0IGNoYXIgKndvcmQsIGNoYXIgKmNwdHIpCit7CisgICAgaW50IHRlc3RjYXNlID0gMDsKKworI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfREVTCisgICAgaWYgKHN0cmNhc2VjbXAoY3B0ciwgIkRFUyIpID09IDApIHsKKyAgICAgICAgdGVzdGNhc2UgPSAxOworICAgICAgICBkZWZhdWx0UHJpdlR5cGUgPSB1c21ERVNQcml2UHJvdG9jb2w7CisgICAgfQorI2VuZGlmCisKKyNpZiBIQVZFX0FFUworICAgIC8qIFhYWCBBRVM6IGFzc3VtZXMgb2lkIGxlbmd0aCA9PSBkZXMgb2lkIGxlbmd0aCAqLworICAgIGlmIChzdHJjYXNlY21wKGNwdHIsICJBRVMxMjgiKSA9PSAwIHx8CisgICAgICAgIHN0cmNhc2VjbXAoY3B0ciwgIkFFUyIpID09IDApIHsKKyAgICAgICAgdGVzdGNhc2UgPSAxOworICAgICAgICBkZWZhdWx0UHJpdlR5cGUgPSB1c21BRVMxMjhQcml2UHJvdG9jb2w7CisgICAgfQorI2VuZGlmCisgICAgaWYgKHRlc3RjYXNlID09IDApCisgICAgICAgIGNvbmZpZ19wZXJyb3IoIlVua25vd24gcHJpdmFjeSB0eXBlIik7CisgICAgZGVmYXVsdFByaXZUeXBlTGVuID0gU05NUF9ERUZBVUxUX1BSSVZfUFJPVE9MRU47CisgICAgREVCVUdNU0dUTCgoInNubXB2MyIsICJzZXQgZGVmYXVsdCBwcml2YWN5IHR5cGU6ICVzXG4iLCBjcHRyKSk7Cit9CisKK2NvbnN0IG9pZCAgICAgICoKK2dldF9kZWZhdWx0X3ByaXZ0eXBlKHNpemVfdCAqIGxlbikKK3sKKyAgICBpZiAoZGVmYXVsdFByaXZUeXBlID09IE5VTEwpIHsKKyNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX0RFUworICAgICAgICBkZWZhdWx0UHJpdlR5cGUgPSB1c21ERVNQcml2UHJvdG9jb2w7CisjZWxzZQorICAgICAgICBkZWZhdWx0UHJpdlR5cGUgPSB1c21BRVNQcml2UHJvdG9jb2w7CisjZW5kaWYKKyAgICAgICAgZGVmYXVsdFByaXZUeXBlTGVuID0gVVNNX0xFTkdUSF9PSURfVFJBTlNGT1JNOworICAgIH0KKyAgICBpZiAobGVuKQorICAgICAgICAqbGVuID0gZGVmYXVsdFByaXZUeXBlTGVuOworICAgIHJldHVybiBkZWZhdWx0UHJpdlR5cGU7Cit9CisKZGlmZiAtLWdpdCBhL3NubXBsaWIvc25tcHYzLmMgYi9zbm1wbGliL3NubXB2My5jCmluZGV4IDhiNDkzNjIuLjQzNWNhZmQgMTAwNjQ0Ci0tLSBhL3NubXBsaWIvc25tcHYzLmMKKysrIGIvc25tcGxpYi9zbm1wdjMuYwpAQCAtNzUsNiArNzUsOCBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaD4KIAorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CisKIHN0YXRpYyB1X2xvbmcgICBlbmdpbmVCb290cyA9IDE7CiBzdGF0aWMgdW5zaWduZWQgaW50IGVuZ2luZUlEVHlwZSA9IEVOR0lORUlEX1RZUEVfTkVUU05NUF9STkQ7CiBzdGF0aWMgdW5zaWduZWQgY2hhciAqZW5naW5lSUQgPSBOVUxMOwpAQCAtODUsMTAwICs4NywxMCBAQAogc3RhdGljIHNpemVfdCAgIG9sZEVuZ2luZUlETGVuZ3RoID0gMDsKIHN0YXRpYyBzdHJ1Y3QgdGltZXZhbCBzbm1wdjNzdGFydHRpbWU7CiAKLS8qCi0gKiBTZXQgdXAgZGVmYXVsdCBzbm1wdjMgcGFyYW1ldGVyIHZhbHVlIHN0b3JhZ2UuCi0gKi8KLXN0YXRpYyBjb25zdCBvaWQgKmRlZmF1bHRBdXRoVHlwZSA9IE5VTEw7Ci1zdGF0aWMgc2l6ZV90ICAgZGVmYXVsdEF1dGhUeXBlTGVuID0gMDsKLXN0YXRpYyBjb25zdCBvaWQgKmRlZmF1bHRQcml2VHlwZSA9IE5VTEw7Ci1zdGF0aWMgc2l6ZV90ICAgZGVmYXVsdFByaXZUeXBlTGVuID0gMDsKLQotLyogdGhpcyBpcyBwcm9iYWJseSBhbiBvdmVyLWtpbGwgaWZkZWYsIGJ1dCB3aHkgbm90ICovCi0jaWYgZGVmaW5lZChIQVZFX1NZU19USU1FU19IKSAmJiBkZWZpbmVkKEhBVkVfVU5JU1REX0gpICYmIGRlZmluZWQoSEFWRV9USU1FUykgJiYgZGVmaW5lZChfU0NfQ0xLX1RDSykgJiYgZGVmaW5lZChIQVZFX1NZU0NPTkYpICYmIGRlZmluZWQoVUlOVF9NQVgpCi0KLSNkZWZpbmUgU05NUF9VU0VfVElNRVMgMQotCi1zdGF0aWMgY2xvY2tfdCBzbm1wdjNzdGFydENsb2NrOwotc3RhdGljIGxvbmcgY2xvY2t0aWNrcyA9IDA7Ci1zdGF0aWMgdW5zaWduZWQgaW50IGxhc3RjYWxsdGltZSA9IDA7Ci1zdGF0aWMgdW5zaWduZWQgaW50IHdyYXBjb3VudGVyID0gMDsKLQotI2VuZGlmIC8qIHRpbWVzKCkgdGVzdHMgKi8KLQogI2lmIGRlZmluZWQoSUZIV0FERFJMRU4pICYmIGRlZmluZWQoU0lPQ0dJRkhXQUREUikKIHN0YXRpYyBpbnQgICAgICBnZXRId0FkZHJlc3MoY29uc3QgY2hhciAqbmV0d29ya0RldmljZSwgY2hhciAqYWRkcmVzc091dCk7CiAjZW5kaWYKIAotdm9pZAotc25tcHYzX2F1dGh0eXBlX2NvbmYoY29uc3QgY2hhciAqd29yZCwgY2hhciAqY3B0cikKLXsKLSNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX01ENQotICAgIGlmIChzdHJjYXNlY21wKGNwdHIsICJNRDUiKSA9PSAwKQotICAgICAgICBkZWZhdWx0QXV0aFR5cGUgPSB1c21ITUFDTUQ1QXV0aFByb3RvY29sOwotICAgIGVsc2UKLSNlbmRpZgotICAgICAgICBpZiAoc3RyY2FzZWNtcChjcHRyLCAiU0hBIikgPT0gMCkKLSAgICAgICAgZGVmYXVsdEF1dGhUeXBlID0gdXNtSE1BQ1NIQTFBdXRoUHJvdG9jb2w7Ci0gICAgZWxzZQotICAgICAgICBjb25maWdfcGVycm9yKCJVbmtub3duIGF1dGhlbnRpY2F0aW9uIHR5cGUiKTsKLSAgICBkZWZhdWx0QXV0aFR5cGVMZW4gPSBVU01fTEVOR1RIX09JRF9UUkFOU0ZPUk07Ci0gICAgREVCVUdNU0dUTCgoInNubXB2MyIsICJzZXQgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiB0eXBlOiAlc1xuIiwgY3B0cikpOwotfQotCi1jb25zdCBvaWQgICAgICAqCi1nZXRfZGVmYXVsdF9hdXRodHlwZShzaXplX3QgKiBsZW4pCi17Ci0gICAgaWYgKGRlZmF1bHRBdXRoVHlwZSA9PSBOVUxMKSB7Ci0gICAgICAgIGRlZmF1bHRBdXRoVHlwZSA9IFNOTVBfREVGQVVMVF9BVVRIX1BST1RPOwotICAgICAgICBkZWZhdWx0QXV0aFR5cGVMZW4gPSBTTk1QX0RFRkFVTFRfQVVUSF9QUk9UT0xFTjsKLSAgICB9Ci0gICAgaWYgKGxlbikKLSAgICAgICAgKmxlbiA9IGRlZmF1bHRBdXRoVHlwZUxlbjsKLSAgICByZXR1cm4gZGVmYXVsdEF1dGhUeXBlOwotfQotCi12b2lkCi1zbm1wdjNfcHJpdnR5cGVfY29uZihjb25zdCBjaGFyICp3b3JkLCBjaGFyICpjcHRyKQotewotICAgIGludCB0ZXN0Y2FzZSA9IDA7Ci0KLSNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX0RFUwotICAgIGlmIChzdHJjYXNlY21wKGNwdHIsICJERVMiKSA9PSAwKSB7Ci0gICAgICAgIHRlc3RjYXNlID0gMTsKLSAgICAgICAgZGVmYXVsdFByaXZUeXBlID0gdXNtREVTUHJpdlByb3RvY29sOwotICAgIH0KLSNlbmRpZgotCi0jaWYgSEFWRV9BRVMKLSAgICAvKiBYWFggQUVTOiBhc3N1bWVzIG9pZCBsZW5ndGggPT0gZGVzIG9pZCBsZW5ndGggKi8KLSAgICBpZiAoc3RyY2FzZWNtcChjcHRyLCAiQUVTMTI4IikgPT0gMCB8fAotICAgICAgICBzdHJjYXNlY21wKGNwdHIsICJBRVMiKSA9PSAwKSB7Ci0gICAgICAgIHRlc3RjYXNlID0gMTsKLSAgICAgICAgZGVmYXVsdFByaXZUeXBlID0gdXNtQUVTMTI4UHJpdlByb3RvY29sOwotICAgIH0KLSNlbmRpZgotICAgIGlmICh0ZXN0Y2FzZSA9PSAwKQotICAgICAgICBjb25maWdfcGVycm9yKCJVbmtub3duIHByaXZhY3kgdHlwZSIpOwotICAgIGRlZmF1bHRQcml2VHlwZUxlbiA9IFNOTVBfREVGQVVMVF9QUklWX1BST1RPTEVOOwotICAgIERFQlVHTVNHVEwoKCJzbm1wdjMiLCAic2V0IGRlZmF1bHQgcHJpdmFjeSB0eXBlOiAlc1xuIiwgY3B0cikpOwotfQotCi1jb25zdCBvaWQgICAgICAqCi1nZXRfZGVmYXVsdF9wcml2dHlwZShzaXplX3QgKiBsZW4pCi17Ci0gICAgaWYgKGRlZmF1bHRQcml2VHlwZSA9PSBOVUxMKSB7Ci0jaWZuZGVmIE5FVFNOTVBfRElTQUJMRV9ERVMKLSAgICAgICAgZGVmYXVsdFByaXZUeXBlID0gdXNtREVTUHJpdlByb3RvY29sOwotI2Vsc2UKLSAgICAgICAgZGVmYXVsdFByaXZUeXBlID0gdXNtQUVTUHJpdlByb3RvY29sOwotI2VuZGlmCi0gICAgICAgIGRlZmF1bHRQcml2VHlwZUxlbiA9IFVTTV9MRU5HVEhfT0lEX1RSQU5TRk9STTsKLSAgICB9Ci0gICAgaWYgKGxlbikKLSAgICAgICAgKmxlbiA9IGRlZmF1bHRQcml2VHlwZUxlbjsKLSAgICByZXR1cm4gZGVmYXVsdFByaXZUeXBlOwotfQotCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi1vLSoqKioqKgogICogc25tcHYzX3NlY0xldmVsX2NvbmYKICAqCkBAIC0zNTIsNiArMjY0LDcgQEAKIAogICAgICAgICBicmVhazsKIAorI2lmZGVmIE5FVFNOTVBfU0VDTU9EX1VTTQogICAgIGNhc2UgJ2EnOgogI2lmbmRlZiBORVRTTk1QX0RJU0FCTEVfTUQ1CiAgICAgICAgIGlmICghc3RyY2FzZWNtcChvcHRhcmcsICJNRDUiKSkgewpAQCAtNDAyLDYgKzMxNSw3IEBACiAgICAgY2FzZSAnWCc6CiAgICAgICAgICpYcHN6ID0gb3B0YXJnOwogICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBORVRTTk1QX1NFQ01PRF9VU00gKi8KIAogICAgIGNhc2UgJ20nOiB7CiAgICAgICAgIHNpemVfdCBidWZTaXplID0gc2l6ZW9mKHNlc3Npb24tPnNlY3VyaXR5QXV0aEtleSk7CkBAIC01MjgsNyArNDQyLDcgQEAKICAgICAgICAgICogZ2V0IHRoZSBob3N0IG5hbWUgYW5kIHNhdmUgdGhlIGluZm9ybWF0aW9uIAogICAgICAgICAgKi8KICAgICAgICAgZ2V0aG9zdG5hbWUoKGNoYXIgKikgYnVmLCBzaXplb2YoYnVmKSk7Ci0gICAgICAgIGhlbnQgPSBnZXRob3N0YnluYW1lKChjaGFyICopIGJ1Zik7CisgICAgICAgIGhlbnQgPSBuZXRzbm1wX2dldGhvc3RieW5hbWUoKGNoYXIgKikgYnVmKTsKICAgICAgICAgaWYgKGhlbnQgJiYgaGVudC0+aF9hZGRydHlwZSA9PSBBRl9JTkVUNikgewogICAgICAgICAgICAgbG9jYWxFbmdpbmVJRFR5cGUgPSBFTkdJTkVJRF9UWVBFX0lQVjY7CiAgICAgICAgIH0gZWxzZSB7CkBAIC01NTEsNyArNDY1LDcgQEAKICAgICAgICAgICogZ2V0IHRoZSBob3N0IG5hbWUgYW5kIHNhdmUgdGhlIGluZm9ybWF0aW9uIAogICAgICAgICAgKi8KICAgICAgICAgZ2V0aG9zdG5hbWUoKGNoYXIgKikgYnVmLCBzaXplb2YoYnVmKSk7Ci0gICAgICAgIGhlbnQgPSBnZXRob3N0YnluYW1lKChjaGFyICopIGJ1Zik7CisgICAgICAgIGhlbnQgPSBuZXRzbm1wX2dldGhvc3RieW5hbWUoKGNoYXIgKikgYnVmKTsKICAgICB9CiAjZW5kaWYKICNlbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSEFWRV9HRVRIT1NUTkFNRSAqLwpAQCAtNzQ0LDI5NyArNjU4LDYgQEAKICAgICByZXR1cm4gMDsKIH0KIAotaW50Ci1mcmVlX2VuZ2luZXRpbWVfb25fc2h1dGRvd24oaW50IG1ham9yaWQsIGludCBtaW5vcmlkLCB2b2lkICpzZXJ2ZXJhcmcsCi0JCQkgICAgdm9pZCAqY2xpZW50YXJnKQotewotICAgIERFQlVHTVNHVEwoKCJzbm1wdjMiLCAiZnJlZSBlbmdpbmV0aW1lIGNhbGxiYWNrIGNhbGxlZFxuIikpOwotICAgIGlmIChlbmdpbmVJRCAhPSBOVUxMKQotCWZyZWVfZW5naW5ldGltZShlbmdpbmVJRCwgZW5naW5lSURMZW5ndGgpOwotICAgIHJldHVybiAwOwotfQotCi12b2lkCi11c21fcGFyc2VfY3JlYXRlX3VzbVVzZXIoY29uc3QgY2hhciAqdG9rZW4sIGNoYXIgKmxpbmUpCi17Ci0gICAgY2hhciAgICAgICAgICAgKmNwOwotICAgIGNoYXIgICAgICAgICAgICBidWZbU05NUF9NQVhCVUZfTUVESVVNXTsKLSAgICBzdHJ1Y3QgdXNtVXNlciAqbmV3dXNlcjsKLSAgICB1X2NoYXIgICAgICAgICAgdXNlcktleVtTTk1QX01BWEJVRl9TTUFMTF0sICp0bXBwOwotICAgIHNpemVfdCAgICAgICAgICB1c2VyS2V5TGVuID0gU05NUF9NQVhCVUZfU01BTEw7Ci0gICAgc2l6ZV90ICAgICAgICAgIHByaXZLZXlMZW4gPSAwOwotICAgIHNpemVfdCAgICAgICAgICByZXQ7Ci0gICAgaW50ICAgICAgICAgICAgIHJldDI7Ci0gICAgaW50ICAgICAgICAgICAgIHRlc3RjYXNlOwotCi0gICAgbmV3dXNlciA9IHVzbV9jcmVhdGVfdXNlcigpOwotCi0gICAgLyoKLSAgICAgKiBSRUFEOiBTZWN1cml0eSBOYW1lIAotICAgICAqLwotICAgIGNwID0gY29weV9ud29yZChsaW5lLCBidWYsIHNpemVvZihidWYpKTsKLQotICAgIC8qCi0gICAgICogbWlnaHQgYmUgYSAtZSBFTkdJTkVJRCBhcmd1bWVudCAKLSAgICAgKi8KLSAgICBpZiAoc3RyY21wKGJ1ZiwgIi1lIikgPT0gMCkgewotICAgICAgICBzaXplX3QgICAgICAgICAgZWJ1Zl9sZW4gPSAzMiwgZW91dF9sZW4gPSAwOwotICAgICAgICB1X2NoYXIgICAgICAgICAqZWJ1ZiA9ICh1X2NoYXIgKikgbWFsbG9jKGVidWZfbGVuKTsKLQotICAgICAgICBpZiAoZWJ1ZiA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBjb25maWdfcGVycm9yKCJtYWxsb2MgZmFpbHVyZSBwcm9jZXNzaW5nIC1lIGZsYWciKTsKLSAgICAgICAgICAgIHVzbV9mcmVlX3VzZXIobmV3dXNlcik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICAvKgotICAgICAgICAgKiBHZXQgdGhlIHNwZWNpZmllZCBlbmdpbmVpZCBmcm9tIHRoZSBsaW5lLiAgCi0gICAgICAgICAqLwotICAgICAgICBjcCA9IGNvcHlfbndvcmQoY3AsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOwotICAgICAgICBpZiAoIXNubXBfaGV4X3RvX2JpbmFyeSgmZWJ1ZiwgJmVidWZfbGVuLCAmZW91dF9sZW4sIDEsIGJ1ZikpIHsKLSAgICAgICAgICAgIGNvbmZpZ19wZXJyb3IoImludmFsaWQgRW5naW5lSUQgYXJndW1lbnQgdG8gLWUiKTsKLSAgICAgICAgICAgIHVzbV9mcmVlX3VzZXIobmV3dXNlcik7Ci0gICAgICAgICAgICBTTk1QX0ZSRUUoZWJ1Zik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBuZXd1c2VyLT5lbmdpbmVJRCA9IGVidWY7Ci0gICAgICAgIG5ld3VzZXItPmVuZ2luZUlETGVuID0gZW91dF9sZW47Ci0gICAgICAgIGNwID0gY29weV9ud29yZChjcCwgYnVmLCBzaXplb2YoYnVmKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbmV3dXNlci0+ZW5naW5lSUQgPSBzbm1wdjNfZ2VuZXJhdGVfZW5naW5lSUQoJnJldCk7Ci0gICAgICAgIGlmIChyZXQgPT0gMCkgewotICAgICAgICAgICAgdXNtX2ZyZWVfdXNlcihuZXd1c2VyKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBuZXd1c2VyLT5lbmdpbmVJRExlbiA9IHJldDsKLSAgICB9Ci0KLSAgICBuZXd1c2VyLT5zZWNOYW1lID0gc3RyZHVwKGJ1Zik7Ci0gICAgbmV3dXNlci0+bmFtZSA9IHN0cmR1cChidWYpOwotCi0gICAgaWYgKCFjcCkKLSAgICAgICAgZ290byBhZGQ7ICAgICAgICAgICAgICAgLyogbm8gYXV0aGVudGljYXRpb24gb3IgcHJpdmFjeSB0eXBlICovCi0KLSAgICAvKgotICAgICAqIFJFQUQ6IEF1dGhlbnRpY2F0aW9uIFR5cGUgCi0gICAgICovCi0jaWZuZGVmIE5FVFNOTVBfRElTQUJMRV9NRDUKLSAgICBpZiAoc3RybmNtcChjcCwgIk1ENSIsIDMpID09IDApIHsKLSAgICAgICAgbWVtY3B5KG5ld3VzZXItPmF1dGhQcm90b2NvbCwgdXNtSE1BQ01ENUF1dGhQcm90b2NvbCwKLSAgICAgICAgICAgICAgIHNpemVvZih1c21ITUFDTUQ1QXV0aFByb3RvY29sKSk7Ci0gICAgfSBlbHNlCi0jZW5kaWYKLSAgICAgICAgaWYgKHN0cm5jbXAoY3AsICJTSEEiLCAzKSA9PSAwKSB7Ci0gICAgICAgIG1lbWNweShuZXd1c2VyLT5hdXRoUHJvdG9jb2wsIHVzbUhNQUNTSEExQXV0aFByb3RvY29sLAotICAgICAgICAgICAgICAgc2l6ZW9mKHVzbUhNQUNTSEExQXV0aFByb3RvY29sKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgY29uZmlnX3BlcnJvcigiVW5rbm93biBhdXRoZW50aWNhdGlvbiBwcm90b2NvbCIpOwotICAgICAgICB1c21fZnJlZV91c2VyKG5ld3VzZXIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY3AgPSBza2lwX3Rva2VuKGNwKTsKLQotICAgIC8qCi0gICAgICogUkVBRDogQXV0aGVudGljYXRpb24gUGFzcyBQaHJhc2Ugb3Iga2V5Ci0gICAgICovCi0gICAgaWYgKCFjcCkgewotICAgICAgICBjb25maWdfcGVycm9yKCJubyBhdXRoZW50aWNhdGlvbiBwYXNzIHBocmFzZSIpOwotICAgICAgICB1c21fZnJlZV91c2VyKG5ld3VzZXIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGNwID0gY29weV9ud29yZChjcCwgYnVmLCBzaXplb2YoYnVmKSk7Ci0gICAgaWYgKHN0cmNtcChidWYsIi1tIikgPT0gMCkgewotICAgICAgICAvKiBhIG1hc3RlciBrZXkgaXMgc3BlY2lmaWVkICovCi0gICAgICAgIGNwID0gY29weV9ud29yZChjcCwgYnVmLCBzaXplb2YoYnVmKSk7Ci0gICAgICAgIHJldCA9IHNpemVvZih1c2VyS2V5KTsKLSAgICAgICAgdG1wcCA9IHVzZXJLZXk7Ci0gICAgICAgIHVzZXJLZXlMZW4gPSAwOwotICAgICAgICBpZiAoIXNubXBfaGV4X3RvX2JpbmFyeSgmdG1wcCwgJnJldCwgJnVzZXJLZXlMZW4sIDAsIGJ1ZikpIHsKLSAgICAgICAgICAgIGNvbmZpZ19wZXJyb3IoImludmFsaWQga2V5IHZhbHVlIGFyZ3VtZW50IHRvIC1tIik7Ci0gICAgICAgICAgICB1c21fZnJlZV91c2VyKG5ld3VzZXIpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChzdHJjbXAoYnVmLCItbCIpICE9IDApIHsKLSAgICAgICAgLyogYSBwYXNzd29yZCBpcyBzcGVjaWZpZWQgKi8KLSAgICAgICAgdXNlcktleUxlbiA9IHNpemVvZih1c2VyS2V5KTsKLSAgICAgICAgcmV0MiA9IGdlbmVyYXRlX0t1KG5ld3VzZXItPmF1dGhQcm90b2NvbCwgbmV3dXNlci0+YXV0aFByb3RvY29sTGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAodV9jaGFyICopIGJ1Ziwgc3RybGVuKGJ1ZiksIHVzZXJLZXksICZ1c2VyS2V5TGVuKTsKLSAgICAgICAgaWYgKHJldDIgIT0gU05NUEVSUl9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBjb25maWdfcGVycm9yKCJjb3VsZCBub3QgZ2VuZXJhdGUgdGhlIGF1dGhlbnRpY2F0aW9uIGtleSBmcm9tIHRoZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJzdXBwbGllZCBwYXNzIHBocmFzZS4iKTsKLSAgICAgICAgICAgIHVzbV9mcmVlX3VzZXIobmV3dXNlcik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9ICAgICAgICAKLSAgICAgICAgCi0gICAgLyoKLSAgICAgKiBBbmQgdHVybiBpdCBpbnRvIGEgbG9jYWxpemVkIGtleSAKLSAgICAgKi8KLSAgICByZXQyID0gc2NfZ2V0X3Byb3Blcmxlbmd0aChuZXd1c2VyLT5hdXRoUHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3dXNlci0+YXV0aFByb3RvY29sTGVuKTsKLSAgICBpZiAocmV0MiA8PSAwKSB7Ci0gICAgICAgIGNvbmZpZ19wZXJyb3IoIkNvdWxkIG5vdCBnZXQgcHJvcGVyIGF1dGhlbnRpY2F0aW9uIHByb3RvY29sIGtleSBsZW5ndGgiKTsKLQl1c21fZnJlZV91c2VyKG5ld3VzZXIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG5ld3VzZXItPmF1dGhLZXkgPSAodV9jaGFyICopIG1hbGxvYyhyZXQyKTsKLQotICAgIGlmIChzdHJjbXAoYnVmLCItbCIpID09IDApIHsKLSAgICAgICAgLyogYSBsb2NhbCBrZXkgaXMgZGlyZWN0bHkgc3BlY2lmaWVkICovCi0gICAgICAgIGNwID0gY29weV9ud29yZChjcCwgYnVmLCBzaXplb2YoYnVmKSk7Ci0gICAgICAgIG5ld3VzZXItPmF1dGhLZXlMZW4gPSAwOwotICAgICAgICByZXQgPSByZXQyOwotICAgICAgICBpZiAoIXNubXBfaGV4X3RvX2JpbmFyeSgmbmV3dXNlci0+YXV0aEtleSwgJnJldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ld3VzZXItPmF1dGhLZXlMZW4sIDAsIGJ1ZikpIHsKLSAgICAgICAgICAgIGNvbmZpZ19wZXJyb3IoImludmFsaWQga2V5IHZhbHVlIGFyZ3VtZW50IHRvIC1sIik7Ci0gICAgICAgICAgICB1c21fZnJlZV91c2VyKG5ld3VzZXIpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXQgIT0gbmV3dXNlci0+YXV0aEtleUxlbikgewotICAgICAgICAgICAgY29uZmlnX3BlcnJvcigiaW1wcm9wZXIga2V5IGxlbmd0aCB0byAtbCIpOwotICAgICAgICAgICAgdXNtX2ZyZWVfdXNlcihuZXd1c2VyKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIG5ld3VzZXItPmF1dGhLZXlMZW4gPSByZXQyOwotICAgICAgICByZXQyID0gZ2VuZXJhdGVfa3VsKG5ld3VzZXItPmF1dGhQcm90b2NvbCwgbmV3dXNlci0+YXV0aFByb3RvY29sTGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3dXNlci0+ZW5naW5lSUQsIG5ld3VzZXItPmVuZ2luZUlETGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcktleSwgdXNlcktleUxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3VzZXItPmF1dGhLZXksICZuZXd1c2VyLT5hdXRoS2V5TGVuKTsKLSAgICAgICAgaWYgKHJldDIgIT0gU05NUEVSUl9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBjb25maWdfcGVycm9yKCJjb3VsZCBub3QgZ2VuZXJhdGUgbG9jYWxpemVkIGF1dGhlbnRpY2F0aW9uIGtleSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICIoS3VsKSBmcm9tIHRoZSBtYXN0ZXIga2V5IChLdSkuIik7Ci0gICAgICAgICAgICB1c21fZnJlZV91c2VyKG5ld3VzZXIpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKCFjcCkKLSAgICAgICAgZ290byBhZGQ7ICAgICAgICAgICAgICAgLyogbm8gcHJpdmFjeSB0eXBlICh3aGljaCBpcyBsZWdhbCkgKi8KLQotICAgIC8qCi0gICAgICogUkVBRDogUHJpdmFjeSBUeXBlIAotICAgICAqLwotICAgIHRlc3RjYXNlID0gMDsKLSNpZm5kZWYgTkVUU05NUF9ESVNBQkxFX0RFUwotICAgIGlmIChzdHJuY21wKGNwLCAiREVTIiwgMykgPT0gMCkgewotICAgICAgICBtZW1jcHkobmV3dXNlci0+cHJpdlByb3RvY29sLCB1c21ERVNQcml2UHJvdG9jb2wsCi0gICAgICAgICAgICAgICBzaXplb2YodXNtREVTUHJpdlByb3RvY29sKSk7Ci0gICAgICAgIHRlc3RjYXNlID0gMTsKLQkvKiBERVMgdXNlcyBhIDEyOCBiaXQga2V5LCA2NCBiaXRzIG9mIHdoaWNoIGlzIGEgc2FsdCAqLwotCXByaXZLZXlMZW4gPSAxNjsKLSAgICB9Ci0jZW5kaWYKLSNpZmRlZiBIQVZFX0FFUwotICAgIGlmIChzdHJuY21wKGNwLCAiQUVTMTI4IiwgNikgPT0gMCB8fAotICAgICAgICAgICAgICAgc3RybmNtcChjcCwgIkFFUyIsIDMpID09IDApIHsKLSAgICAgICAgbWVtY3B5KG5ld3VzZXItPnByaXZQcm90b2NvbCwgdXNtQUVTUHJpdlByb3RvY29sLAotICAgICAgICAgICAgICAgc2l6ZW9mKHVzbUFFU1ByaXZQcm90b2NvbCkpOwotICAgICAgICB0ZXN0Y2FzZSA9IDE7Ci0JcHJpdktleUxlbiA9IDE2OwotICAgIH0KLSNlbmRpZgotICAgIGlmICh0ZXN0Y2FzZSA9PSAwKSB7Ci0gICAgICAgIGNvbmZpZ19wZXJyb3IoIlVua25vd24gcHJpdmFjeSBwcm90b2NvbCIpOwotICAgICAgICB1c21fZnJlZV91c2VyKG5ld3VzZXIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY3AgPSBza2lwX3Rva2VuKGNwKTsKLSAgICAvKgotICAgICAqIFJFQUQ6IEVuY3J5cHRpb24gUGFzcyBQaHJhc2Ugb3Iga2V5Ci0gICAgICovCi0gICAgaWYgKCFjcCkgewotICAgICAgICAvKgotICAgICAgICAgKiBhc3N1bWUgdGhlIHNhbWUgYXMgdGhlIGF1dGhlbnRpY2F0aW9uIGtleSAKLSAgICAgICAgICovCi0gICAgICAgIG5ld3VzZXItPnByaXZLZXkgPSBuZXRzbm1wX21lbWR1cChuZXd1c2VyLT5hdXRoS2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3dXNlci0+YXV0aEtleUxlbik7Ci0gICAgICAgIG5ld3VzZXItPnByaXZLZXlMZW4gPSBuZXd1c2VyLT5hdXRoS2V5TGVuOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGNwID0gY29weV9ud29yZChjcCwgYnVmLCBzaXplb2YoYnVmKSk7Ci0gICAgICAgIAotICAgICAgICBpZiAoc3RyY21wKGJ1ZiwiLW0iKSA9PSAwKSB7Ci0gICAgICAgICAgICAvKiBhIG1hc3RlciBrZXkgaXMgc3BlY2lmaWVkICovCi0gICAgICAgICAgICBjcCA9IGNvcHlfbndvcmQoY3AsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOwotICAgICAgICAgICAgcmV0ID0gc2l6ZW9mKHVzZXJLZXkpOwotICAgICAgICAgICAgdG1wcCA9IHVzZXJLZXk7Ci0gICAgICAgICAgICB1c2VyS2V5TGVuID0gMDsKLSAgICAgICAgICAgIGlmICghc25tcF9oZXhfdG9fYmluYXJ5KCZ0bXBwLCAmcmV0LCAmdXNlcktleUxlbiwgMCwgYnVmKSkgewotICAgICAgICAgICAgICAgIGNvbmZpZ19wZXJyb3IoImludmFsaWQga2V5IHZhbHVlIGFyZ3VtZW50IHRvIC1tIik7Ci0gICAgICAgICAgICAgICAgdXNtX2ZyZWVfdXNlcihuZXd1c2VyKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoc3RyY21wKGJ1ZiwiLWwiKSAhPSAwKSB7Ci0gICAgICAgICAgICAvKiBhIHBhc3N3b3JkIGlzIHNwZWNpZmllZCAqLwotICAgICAgICAgICAgdXNlcktleUxlbiA9IHNpemVvZih1c2VyS2V5KTsKLSAgICAgICAgICAgIHJldDIgPSBnZW5lcmF0ZV9LdShuZXd1c2VyLT5hdXRoUHJvdG9jb2wsIG5ld3VzZXItPmF1dGhQcm90b2NvbExlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1X2NoYXIgKikgYnVmLCBzdHJsZW4oYnVmKSwgdXNlcktleSwgJnVzZXJLZXlMZW4pOwotICAgICAgICAgICAgaWYgKHJldDIgIT0gU05NUEVSUl9TVUNDRVNTKSB7Ci0gICAgICAgICAgICAgICAgY29uZmlnX3BlcnJvcigiY291bGQgbm90IGdlbmVyYXRlIHRoZSBwcml2YWN5IGtleSBmcm9tIHRoZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VwcGxpZWQgcGFzcyBwaHJhc2UuIik7Ci0gICAgICAgICAgICAgICAgdXNtX2ZyZWVfdXNlcihuZXd1c2VyKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gICAgICAgIAotICAgICAgICAKLSAgICAgICAgLyoKLSAgICAgICAgICogQW5kIHR1cm4gaXQgaW50byBhIGxvY2FsaXplZCBrZXkgCi0gICAgICAgICAqLwotICAgICAgICByZXQyID0gc2NfZ2V0X3Byb3Blcmxlbmd0aChuZXd1c2VyLT5hdXRoUHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3VzZXItPmF1dGhQcm90b2NvbExlbik7Ci0gICAgICAgIGlmIChyZXQyIDwgMCkgewotICAgICAgICAgICAgY29uZmlnX3BlcnJvcigiY291bGQgbm90IGdldCBwcm9wZXIga2V5IGxlbmd0aCB0byB1c2UgZm9yIHRoZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJwcml2YWN5IGFsZ29yaXRobS4iKTsKLSAgICAgICAgICAgIHVzbV9mcmVlX3VzZXIobmV3dXNlcik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgbmV3dXNlci0+cHJpdktleSA9ICh1X2NoYXIgKikgbWFsbG9jKHJldDIpOwotCi0gICAgICAgIGlmIChzdHJjbXAoYnVmLCItbCIpID09IDApIHsKLSAgICAgICAgICAgIC8qIGEgbG9jYWwga2V5IGlzIGRpcmVjdGx5IHNwZWNpZmllZCAqLwotICAgICAgICAgICAgY3AgPSBjb3B5X253b3JkKGNwLCBidWYsIHNpemVvZihidWYpKTsKLSAgICAgICAgICAgIHJldCA9IHJldDI7Ci0gICAgICAgICAgICBuZXd1c2VyLT5wcml2S2V5TGVuID0gMDsKLSAgICAgICAgICAgIGlmICghc25tcF9oZXhfdG9fYmluYXJ5KCZuZXd1c2VyLT5wcml2S2V5LCAmcmV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ld3VzZXItPnByaXZLZXlMZW4sIDAsIGJ1ZikpIHsKLSAgICAgICAgICAgICAgICBjb25maWdfcGVycm9yKCJpbnZhbGlkIGtleSB2YWx1ZSBhcmd1bWVudCB0byAtbCIpOwotICAgICAgICAgICAgICAgIHVzbV9mcmVlX3VzZXIobmV3dXNlcik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbmV3dXNlci0+cHJpdktleUxlbiA9IHJldDI7Ci0gICAgICAgICAgICByZXQyID0gZ2VuZXJhdGVfa3VsKG5ld3VzZXItPmF1dGhQcm90b2NvbCwgbmV3dXNlci0+YXV0aFByb3RvY29sTGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3VzZXItPmVuZ2luZUlELCBuZXd1c2VyLT5lbmdpbmVJRExlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyS2V5LCB1c2VyS2V5TGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3VzZXItPnByaXZLZXksICZuZXd1c2VyLT5wcml2S2V5TGVuKTsKLSAgICAgICAgICAgIGlmIChyZXQyICE9IFNOTVBFUlJfU1VDQ0VTUykgewotICAgICAgICAgICAgICAgIGNvbmZpZ19wZXJyb3IoImNvdWxkIG5vdCBnZW5lcmF0ZSBsb2NhbGl6ZWQgcHJpdmFjeSBrZXkgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIihLdWwpIGZyb20gdGhlIG1hc3RlciBrZXkgKEt1KS4iKTsKLSAgICAgICAgICAgICAgICB1c21fZnJlZV91c2VyKG5ld3VzZXIpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICgobmV3dXNlci0+cHJpdktleUxlbiA+PSBwcml2S2V5TGVuKSB8fCAocHJpdktleUxlbiA9PSAwKSl7Ci0gICAgICBuZXd1c2VyLT5wcml2S2V5TGVuID0gcHJpdktleUxlbjsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAvKiBUaGUgcHJpdktleSBsZW5ndGggaXMgc21hbGxlciB0aGFuIHJlcXVpcmVkIGJ5IHByaXZQcm90b2NvbCAqLwotICAgICAgdXNtX2ZyZWVfdXNlcihuZXd1c2VyKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgYWRkOgotICAgIHVzbV9hZGRfdXNlcihuZXd1c2VyKTsKLSAgICBERUJVR01TR1RMKCgidXNtVXNlciIsICJjcmVhdGVkIGEgbmV3IHVzZXIgJXMgYXQgIiwgbmV3dXNlci0+c2VjTmFtZSkpOwotICAgIERFQlVHTVNHSEVYKCgidXNtVXNlciIsIG5ld3VzZXItPmVuZ2luZUlELCBuZXd1c2VyLT5lbmdpbmVJRExlbikpOwotICAgIERFQlVHTVNHKCgidXNtVXNlciIsICJcbiIpKTsKLX0KLQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiotby0qKioqKioKICAqIGVuZ2luZUJvb3RzX2NvbmYKICAqCkBAIC0xMTIwLDkgKzc0Myw3IEBACiAgICAgICAgIC8qCiAgICAgICAgICAqIFNlZSBpZiBhbHJlYWR5IHNldCBpZiBzbyBlcmFzZSAmIHJlbGVhc2UgaXQgCiAgICAgICAgICAqLwotICAgICAgICBpZiAoTlVMTCAhPSBlbmdpbmVJRE5pYykgewotICAgICAgICAgICAgU05NUF9GUkVFKGVuZ2luZUlETmljKTsKLSAgICAgICAgfQorICAgICAgICBTTk1QX0ZSRUUoZW5naW5lSUROaWMpOwogICAgICAgICBlbmdpbmVJRE5pYyA9ICh1X2NoYXIgKikgbWFsbG9jKHN0cmxlbihjcHRyKSArIDEpOwogICAgICAgICBpZiAoTlVMTCAhPSBlbmdpbmVJRE5pYykgewogICAgICAgICAgICAgc3RyY3B5KChjaGFyICopIGVuZ2luZUlETmljLCBjcHRyKTsKQEAgLTEyMjcsNiArODQ4LDggQEAKIC8qCiAgKiBtZXJlbHkgY2FsbCAKICAqLworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKGdldF9lbmdpbmV0aW1lX2FsYXJtLCBuZXRzbm1wX3VudXNlZCkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9HRVRfRU5HSU5FVElNRV9BTEFSTQogdm9pZAogZ2V0X2VuZ2luZXRpbWVfYWxhcm0odW5zaWduZWQgaW50IHJlZ251bSwgdm9pZCAqY2xpZW50YXJncykKIHsKQEAgLTEyMzQsNiArODU3LDcgQEAKICAgICAgICB3cmFwcGluZyBvZiB0aGUgdGltZXMoKSBvdXRwdXQgKi8KICAgICBzbm1wdjNfbG9jYWxfc25tcEVuZ2luZVRpbWUoKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX0dFVF9FTkdJTkVUSU1FX0FMQVJNICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLW8tKioqKioqCiAgKiBpbml0X3NubXB2MwpAQCAtMTI0OCwxOSArODcyLDcgQEAKIHZvaWQKIGluaXRfc25tcHYzKGNvbnN0IGNoYXIgKnR5cGUpCiB7Ci0jaWYgU05NUF9VU0VfVElNRVMKLSAgc3RydWN0IHRtcyBkdW1teTsKLQotICAvKiBmaXhtZTogLTEgaXMgZmF1bHQgY29kZS4uLiAqLwotICBzbm1wdjNzdGFydENsb2NrID0gdGltZXMoJmR1bW15KTsKLQotICAvKiByZW1lbWJlciBob3cgbWFueSB0aWNrcyBwZXIgc2Vjb25kIHRoZXJlIGFyZSwgc2luY2UgdGltZXMoKSByZXR1cm5zIHRoaXMgKi8KLQotICBjbG9ja3RpY2tzID0gc3lzY29uZihfU0NfQ0xLX1RDSyk7Ci0KLSNlbmRpZiAvKiBTTk1QX1VTRV9USU1FUyAqLwotCi0gICAgZ2V0dGltZW9mZGF5KCZzbm1wdjNzdGFydHRpbWUsIE5VTEwpOworICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmc25tcHYzc3RhcnR0aW1lKTsKIAogICAgIGlmICghdHlwZSkKICAgICAgICAgdHlwZSA9ICJfX3NubXBhcHBfXyI7CkBAIC0xMjgyLDEzICs4OTQsNiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc25tcHYzX3N0b3JlLCAodm9pZCAqKSBzdHJkdXAodHlwZSkpOwogCiAgICAgLyoKLSAgICAgKiBGcmVlIHN0dWZmIGF0IHNodXRkb3duIHRpbWUKLSAgICAgKi8KLSAgICBzbm1wX3JlZ2lzdGVyX2NhbGxiYWNrKFNOTVBfQ0FMTEJBQ0tfTElCUkFSWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOTVBfQ0FMTEJBQ0tfU0hVVERPV04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlX2VuZ2luZXRpbWVfb25fc2h1dGRvd24sIE5VTEwpOwotCi0gICAgLyoKICAgICAgKiBpbml0aWFsaXplIHN1Ym1vZHVsZXMgCiAgICAgICovCiAgICAgLyoKQEAgLTEzNDgsMzAgKzk1Myw5IEBACiAgICAgcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoInNubXAiLCAiZGVmVmVyc2lvbiIsIHZlcnNpb25fY29uZiwgTlVMTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMXwyY3wzIik7CiAKLSAgICByZWdpc3Rlcl9jb25maWdfaGFuZGxlcigic25tcCIsICJkZWZBdXRoVHlwZSIsIHNubXB2M19hdXRodHlwZV9jb25mLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsICJNRDV8U0hBIik7Ci0gICAgcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoInNubXAiLCAiZGVmUHJpdlR5cGUiLCBzbm1wdjNfcHJpdnR5cGVfY29uZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotI2lmZGVmIEhBVkVfQUVTCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRFU3xBRVMiKTsKLSNlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRFUyAoQUVTIHN1cHBvcnQgbm90IGF2YWlsYWJsZSkiKTsKLSNlbmRpZgogICAgIHJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKCJzbm1wIiwgImRlZlNlY3VyaXR5TGV2ZWwiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNubXB2M19zZWNMZXZlbF9jb25mLCBOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJub0F1dGhOb1ByaXZ8YXV0aE5vUHJpdnxhdXRoUHJpdiIpOwotICAgIHJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKHR5cGUsICJ1c2VyU2V0QXV0aFBhc3MiLCB1c21fc2V0X3Bhc3N3b3JkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOwotICAgIHJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKHR5cGUsICJ1c2VyU2V0UHJpdlBhc3MiLCB1c21fc2V0X3Bhc3N3b3JkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOwotICAgIHJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKHR5cGUsICJ1c2VyU2V0QXV0aEtleSIsIHVzbV9zZXRfcGFzc3dvcmQsIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0gICAgcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIodHlwZSwgInVzZXJTZXRQcml2S2V5IiwgdXNtX3NldF9wYXNzd29yZCwgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLSAgICByZWdpc3Rlcl9jb25maWdfaGFuZGxlcih0eXBlLCAidXNlclNldEF1dGhMb2NhbEtleSIsIHVzbV9zZXRfcGFzc3dvcmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7Ci0gICAgcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIodHlwZSwgInVzZXJTZXRQcml2TG9jYWxLZXkiLCB1c21fc2V0X3Bhc3N3b3JkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOwogfQogCiAvKgpAQCAtMTQwNiwxMiArOTkwLDE0IEBACiAgICAgICAgIGVuZ2luZUJvb3RzID0gMTsKICAgICB9CiAKKyNpZmRlZiBORVRTTk1QX1NFQ01PRF9VU00KICAgICAvKgotICAgICAqIHNldCBvdXIgbG9jYWwgZW5naW5lVGltZSBpbiB0aGUgTENEIHRpbWluZyBjYWNoZSAKKyAgICAgKiBmb3IgVVNNIHNldCBvdXIgbG9jYWwgZW5naW5lVGltZSBpbiB0aGUgTENEIHRpbWluZyBjYWNoZSAKICAgICAgKi8KICAgICBzZXRfZW5naW5ldGltZShjX2VuZ2luZUlELCBlbmdpbmVJRExlbiwKICAgICAgICAgICAgICAgICAgICBzbm1wdjNfbG9jYWxfc25tcEVuZ2luZUJvb3RzKCksCiAgICAgICAgICAgICAgICAgICAgc25tcHYzX2xvY2FsX3NubXBFbmdpbmVUaW1lKCksIFRSVUUpOworI2VuZGlmIC8qIE5FVFNOTVBfU0VDTU9EX1VTTSAqLwogCiAgICAgU05NUF9GUkVFKGNfZW5naW5lSUQpOwogICAgIHJldHVybiBTTk1QRVJSX1NVQ0NFU1M7CkBAIC0xNTI1LDEwICsxMTExLDcgQEAKICAgICBpZiAoIWRlc3QgfHwgIWRlc3RsZW4pCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKCpkZXN0KSB7Ci0gICAgICAgIFNOTVBfRlJFRSgqZGVzdCk7Ci0gICAgICAgICpkZXN0ID0gTlVMTDsKLSAgICB9CisgICAgU05NUF9GUkVFKCpkZXN0KTsKICAgICAqZGVzdGxlbiA9IDA7CiAKICAgICBpZiAoc3JjbGVuICYmIHNyYykgewpAQCAtMTU3NiwzOCArMTE1OSwzMyBAQAogCiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGVuZCBzbm1wdjNfZ2VuZXJhdGVfZW5naW5lSUQoKSAqLwogCi0vKgotICogc25tcHYzX2xvY2FsX3NubXBFbmdpbmVUaW1lKCk6IHJldHVybiB0aGUgbnVtYmVyIG9mIHNlY29uZHMgc2luY2UgdGhlCi0gKiBzbm1wdjMgZW5naW5lIGxhc3QgaW5jcmVtZW50ZWQgZW5naW5lX2Jvb3RzIAorLyoqCisgKiBSZXR1cm4gdGhlIHZhbHVlIG9mIHNubXBFbmdpbmVUaW1lLiBBY2NvcmRpbmcgdG8gUkZDIDM0MTQgc25tcEVuZ2luZVRpbWUKKyAqIGlzIGEgMzEtYml0IGNvdW50ZXIuIGVuZ2luZUJvb3RzIG11c3QgYmUgaW5jcmVtZW50ZWQgZXZlcnkgdGltZSB0aGF0CisgKiBjb3VudGVyIHdyYXBzIGFyb3VuZC4KKyAqCisgKiBAc2VlIFNlZSBhbHNvIDxhIGhyZWY9Imh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM0MTQiPlJGQyAzNDE0PC9hPi4KKyAqCisgKiBAbm90ZSBJdCBpcyBhc3N1bWVkIHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYXQgbGVhc3Qgb25jZSBldmVyeQorICogICAyKiozMSBzZWNvbmRzLgogICovCiB1X2xvbmcKIHNubXB2M19sb2NhbF9zbm1wRW5naW5lVGltZSh2b2lkKQogewotI2lmZGVmIFNOTVBfVVNFX1RJTUVTCi0gIHN0cnVjdCB0bXMgZHVtbXk7Ci0gIGNsb2NrX3Qgbm93ID0gdGltZXMoJmR1bW15KTsKLSAgLyogZml4bWU6IC0xIGlzIGZhdWx0IGNvZGUuLi4gKi8KLSAgdW5zaWduZWQgaW50IHJlc3VsdDsKKyNpZmRlZiBORVRTTk1QX0ZFQVRVUkVfQ0hFQ0tJTkcKKyAgICBuZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZShjYWxjdWxhdGVfc2VjdGltZV9kaWZmKQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9DSEVDS0lORyAqLwogCi0gIGlmIChub3cgPCBzbm1wdjNzdGFydENsb2NrKSB7Ci0gICAgICByZXN1bHQgPSBVSU5UX01BWCAtIChzbm1wdjNzdGFydENsb2NrIC0gbm93KTsKLSAgfSBlbHNlIHsKLSAgICAgIHJlc3VsdCA9IG5vdyAtIHNubXB2M3N0YXJ0Q2xvY2s7Ci0gIH0KLSAgaWYgKHJlc3VsdCA8IGxhc3RjYWxsdGltZSkgewotICAgICAgLyogd3JhcHBlZCAqLwotICAgICAgd3JhcGNvdW50ZXIrKzsKLSAgfQotICBsYXN0Y2FsbHRpbWUgPSByZXN1bHQ7Ci0gIHJlc3VsdCA9ICAoVUlOVF9NQVgvY2xvY2t0aWNrcykqd3JhcGNvdW50ZXIgKyByZXN1bHQvY2xvY2t0aWNrczsKLQotICByZXR1cm4gcmVzdWx0OwotI2Vsc2UgLyogIVNOTVBfVVNFX1RJTUVTICovCisgICAgc3RhdGljIHVpbnQzMl90IGxhc3RfZW5naW5lVGltZTsKICAgICBzdHJ1Y3QgdGltZXZhbCAgbm93OworICAgIHVpbnQzMl90IGVuZ2luZVRpbWU7CiAKLSAgICBnZXR0aW1lb2ZkYXkoJm5vdywgTlVMTCk7Ci0gICAgcmV0dXJuIGNhbGN1bGF0ZV9zZWN0aW1lX2RpZmYoJm5vdywgJnNubXB2M3N0YXJ0dGltZSk7Ci0jZW5kaWYgLyogSEFWRV9TWVNfVElNRVNfSCAqLworICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmbm93KTsKKyAgICBlbmdpbmVUaW1lID0gY2FsY3VsYXRlX3NlY3RpbWVfZGlmZigmbm93LCAmc25tcHYzc3RhcnR0aW1lKSAmIDB4N2ZmZmZmZmZMOworICAgIGlmIChlbmdpbmVUaW1lIDwgbGFzdF9lbmdpbmVUaW1lKQorICAgICAgICBlbmdpbmVCb290cysrOworICAgIGxhc3RfZW5naW5lVGltZSA9IGVuZ2luZVRpbWU7CisgICAgcmV0dXJuIGVuZ2luZVRpbWU7CiB9CiAKIApAQCAtMTY3OSwxOCArMTI1NywxNyBAQAogI2VuZGlmCiAKICNpZmRlZiBORVRTTk1QX0VOQUJMRV9URVNUSU5HX0NPREUKLS8qCi0gKiBzbm1wdjNfc2V0X2VuZ2luZUJvb3RzQW5kVGltZSgpOiB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IGV4aXN0LiAgR28gYXdheS4gCi0gKi8KLS8qCi0gKiBJdCBjZXJ0YWlubHkgc2hvdWxkIG5ldmVyIGJlIHVzZWQsIHVubGVzcyBpbiBhIHRlc3Rpbmcgc2NlbmVybywKLSAqIHdoaWNoIGlzIHdoeSBpdCB3YXMgY3JlYXRlZCAKKy8qKgorICogU2V0IFNOTVB2MyBlbmdpbmVCb290cyBhbmQgc3RhcnQgdGltZS4KKyAqCisgKiBAbm90ZSBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGV4aXN0LiBHbyBhd2F5LiBJdCBjZXJ0YWlubHkgc2hvdWxkIG5ldmVyIGJlCisgKiAgIHVzZWQsIHVubGVzcyBpbiBhIHRlc3Rpbmcgc2NlbmFyaW8sIHdoaWNoIGlzIHdoeSBpdCB3YXMgY3JlYXRlZAogICovCiB2b2lkCiBzbm1wdjNfc2V0X2VuZ2luZUJvb3RzQW5kVGltZShpbnQgYm9vdHMsIGludCB0dGltZSkKIHsKICAgICBlbmdpbmVCb290cyA9IGJvb3RzOwotICAgIGdldHRpbWVvZmRheSgmc25tcHYzc3RhcnR0aW1lLCBOVUxMKTsKKyAgICBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soJnNubXB2M3N0YXJ0dGltZSk7CiAgICAgc25tcHYzc3RhcnR0aW1lLnR2X3NlYyAtPSB0dGltZTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvc25tcGxpYi9zdHJ0b3VsbC5jIGIvc25tcGxpYi9zdHJ0b3VsbC5jCmluZGV4IDZjOThmYzQuLjllZTUzYjQgMTAwNjQ0Ci0tLSBhL3NubXBsaWIvc3RydG91bGwuYworKysgYi9zbm1wbGliL3N0cnRvdWxsLmMKQEAgLTIwLDYgKzIwLDggQEAKIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgogCisjaWZuZGVmIEhBVkVfU1RSVE9VTEwKKwogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8Y3R5cGUuaD4KICNpbmNsdWRlIDxsaW1pdHMuaD4KQEAgLTE1NiwzICsxNTgsNSBAQAogICAgICAgICAqZW5kcHRyID0gKGNoYXIgKikgbnB0cjsKICAgICByZXR1cm4gMDsKIH0KKworI2VuZGlmIC8qIEhBVkVfU1RSVE9VTEwgKi8KZGlmZiAtLWdpdCBhL3NubXBsaWIvc3lzdGVtLmMgYi9zbm1wbGliL3N5c3RlbS5jCmluZGV4IDQyNTIyYzYuLmE4MmVkY2QgMTAwNjQ0Ci0tLSBhL3NubXBsaWIvc3lzdGVtLmMKKysrIGIvc25tcGxpYi9zeXN0ZW0uYwpAQCAtNDIsNiArNDIsNyBAQAogICogU3lzdGVtIGRlcGVuZGVudCByb3V0aW5lcyBnbyBoZXJlCiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8Y3R5cGUuaD4KICNpbmNsdWRlIDxlcnJuby5oPgpAQCAtMTYyLDYgKzE2MywxOSBAQAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2VuZGlmCiAKKyNpZiBIQVZFX0FSUEFfSU5FVF9ICisjaW5jbHVkZSA8YXJwYS9pbmV0Lmg+CisjZW5kaWYKKworI2lmZGVmIEROU1NFQ19MT0NBTF9WQUxJREFUSU9OCisjaWYgMSAvKkhBVkVfQVJQQV9OQU1FU0VSX0gqLworI2luY2x1ZGUgPGFycGEvbmFtZXNlci5oPgorI2VuZGlmCisjaW5jbHVkZSA8dmFsaWRhdG9yL3ZhbGlkYXRvci5oPgorLyogTmV0U05NUCBhbmQgRE5TU0VDLVRvb2xzIGJvdGggZGVmaW5lIEZSRUUuIFdlJ2xsIG5vdCB1c2UgZWl0aGVyIGhlcmUuICovCisjdW5kZWYgRlJFRQorI2VuZGlmCisKICNpbmNsdWRlIDxuZXQtc25tcC90eXBlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL291dHB1dF9hcGkuaD4KICNpbmNsdWRlIDxuZXQtc25tcC91dGlsaXRpZXMuaD4KQEAgLTE3MCw2ICsxODQsMTYgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oPiAvKiBmb3IgZ2V0X3RlbXBfZmlsZV9wYXR0ZXJuKCkgKi8KIAorI2luY2x1ZGUgImluZXRfbnRvcC5oIgorCisvKiBOZXRTTk1QIGFuZCBETlNTRUMtVG9vbHMgYm90aCBkZWZpbmUgRlJFRS4gV2UnbGwgbm90IHVzZSBlaXRoZXIgaGVyZS4gKi8KKyN1bmRlZiBGUkVFCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihzeXN0ZW1fYWxsLCBsaWJuZXRzbm1wKQorCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodXNlcl9pbmZvcm1hdGlvbiwgc3lzdGVtX2FsbCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjYWxjdWxhdGVfc2VjdGltZV9kaWZmLCBzeXN0ZW1fYWxsKQorCiAjaWZuZGVmIElGRl9MT09QQkFDSwogIwlkZWZpbmUgSUZGX0xPT1BCQUNLIDAKICNlbmRpZgpAQCAtMTgwLDYgKzIwNCwxMCBAQAogIyBkZWZpbmUgTE9PUEJBQ0sgICAgMHg3ZjAwMDAwMQogI2VuZGlmCiAKKyNpZm5kZWYgRUFJX0ZBSUwKKyMgZGVmaW5lIEVBSV9GQUlMICAgIC00ICAgIC8qIE5vbi1yZWNvdmVyYWJsZSBmYWlsdXJlIGluIG5hbWUgcmVzLiAgKi8KKyNlbmRpZgorCiAjaWYgZGVmaW5lZChIQVZFX0ZPUkspCiBzdGF0aWMgdm9pZAogX2RhZW1vbl9wcmVwKGludCBzdGRlcnJfbG9nKQpAQCAtNTY0LDE0ICs1OTIsMTYgQEAKICAgICBzaXplX3QgICAgICAgICAgbGVuOwogI2VsaWYgZGVmaW5lZChORVRTTk1QX0NBTl9VU0VfTkxJU1QpCiAgICAgaW50ICAgICAgICAgICAgIGttZW07Ci0gICAgc3RhdGljIHN0cnVjdCBubGlzdCBubFtdID0gewogI2lmICFkZWZpbmVkKGhwdXgpCi0gICAgICAgIHsoY2hhciAqKSAiX2Jvb3R0aW1lIn0sCisgICAgc3RhdGljIGNoYXIgYm9vdHRpbWVfbmFtZVtdID0gIl9ib290dGltZSI7CiAjZWxzZQotICAgICAgICB7KGNoYXIgKikgImJvb3R0aW1lIn0sCisgICAgc3RhdGljIGNoYXIgYm9vdHRpbWVfbmFtZVtdID0gImJvb3R0aW1lIjsKICNlbmRpZgotICAgICAgICB7KGNoYXIgKikgIiJ9Ci0gICAgfTsKKyAgICBzdGF0aWMgY2hhciBlbXB0eV9uYW1lW10gPSAiIjsKKyAgICBzdHJ1Y3Qgbmxpc3QgbmxbMl0gPSB7IH07CisKKyAgICBubFswXS5uX25hbWUgPSBib290dGltZV9uYW1lOworICAgIG5sWzFdLm5fbmFtZSA9IGVtcHR5X25hbWU7CiAjZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE5FVFNOTVBfQ0FOX1VTRV9TWVNDVEwgKi8KICNlbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaHB1eDEwIHx8IGhwdXggMTEgKi8KIApAQCAtNjI1LDEwICs2NTUsMTEgQEAKIGdldF91cHRpbWUodm9pZCkKIHsKICNpZiBkZWZpbmVkKGFpeDQpIHx8IGRlZmluZWQoYWl4NSkgfHwgZGVmaW5lZChhaXg2KSB8fCBkZWZpbmVkKGFpeDcpCisgICAgc3RhdGljIGNoYXIgbGJvbHRfbmFtZVtdID0gImxib2x0IjsKICAgICBzdHJ1Y3Qgbmxpc3Qgbmw7CiAgICAgaW50IGttZW07CiAgICAgdGltZV90IGxib2x0OwotICAgIG5sLm5fbmFtZSA9IChjaGFyICopICJsYm9sdCI7CisgICAgbmwubl9uYW1lID0gbGJvbHRfbmFtZTsKICAgICBpZihrbmxpc3QoJm5sLCAxLCBzaXplb2Yoc3RydWN0IG5saXN0KSkgIT0gMCkgcmV0dXJuKDApOwogICAgIGlmKG5sLm5fdHlwZSA9PSAwIHx8IG5sLm5fdmFsdWUgPT0gMCkgcmV0dXJuKDApOwogICAgIGlmKChrbWVtID0gb3BlbigiL2Rldi9tZW0iLCAwKSkgPCAwKSByZXR1cm4gMDsKQEAgLTY4NywxMCArNzE4LDI4IEBACiAjZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICEgV0lOMzIgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCisjaWZkZWYgRE5TU0VDX0xPQ0FMX1ZBTElEQVRJT04KK3N0YXRpYyB2YWxfY29udGV4dF90ICpfdmFsX2NvbnRleHQgPSBOVUxMOworCitzdGF0aWMgdmFsX2NvbnRleHRfdCAqCituZXRzbm1wX3ZhbGlkYXRvcl9jb250ZXh0KHZvaWQpCit7CisgICAgaWYgKE5VTEwgPT0gX3ZhbF9jb250ZXh0KSB7CisgICAgICAgIGludCByYzsKKyAgICAgICAgY2hhciAqYXBwdHlwZSA9IG5ldHNubXBfZHNfZ2V0X3N0cmluZyhORVRTTk1QX0RTX0xJQlJBUllfSUQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCX0FQUFRZUEUpOworICAgICAgICBERUJVR01TR1RMKCgiZG5zOnNlYzpjb250ZXh0IiwgImNyZWF0aW5nIGRuc3NlYyBjb250ZXh0IGZvciAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgYXBwdHlwZSkpOworICAgICAgICByYyA9IHZhbF9jcmVhdGVfY29udGV4dChhcHB0eXBlLCAmX3ZhbF9jb250ZXh0KTsKKyAgICB9CisKKyAgICByZXR1cm4gX3ZhbF9jb250ZXh0OworfQorI2VuZGlmIC8qIEROU1NFQ19MT0NBTF9WQUxJREFUSU9OICovCisKIGludAogbmV0c25tcF9nZXRob3N0YnluYW1lX3Y0KGNvbnN0IGNoYXIqIG5hbWUsIGluX2FkZHJfdCAqYWRkcl9vdXQpCiB7Ci0KICNpZiBIQVZFX0dFVEFERFJJTkZPCiAgICAgc3RydWN0IGFkZHJpbmZvICphZGRycyA9IE5VTEw7CiAgICAgc3RydWN0IGFkZHJpbmZvIGhpbnQ7CkBAIC03MDIsMTcgKzc1MSwxMSBAQAogICAgIGhpbnQuYWlfc29ja3R5cGUgPSBTT0NLX0RHUkFNOwogICAgIGhpbnQuYWlfcHJvdG9jb2wgPSAwOwogCi0gICAgZXJyID0gZ2V0YWRkcmluZm8obmFtZSwgTlVMTCwgJmhpbnQsICZhZGRycyk7CisgICAgZXJyID0gbmV0c25tcF9nZXRhZGRyaW5mbyhuYW1lLCBOVUxMLCAmaGludCwgJmFkZHJzKTsKICAgICBpZiAoZXJyICE9IDApIHsKLSNpZiBIQVZFX0dBSV9TVFJFUlJPUgotICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiZ2V0YWRkcmluZm86ICVzICVzXG4iLCBuYW1lLAotICAgICAgICAgICAgICAgICBnYWlfc3RyZXJyb3IoZXJyKSk7Ci0jZWxzZQotICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiZ2V0YWRkcmluZm86ICVzIChlcnJvciAlZClcbiIsIG5hbWUsCi0gICAgICAgICAgICAgICAgIGVycik7Ci0jZW5kaWYKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KKwogICAgIGlmIChhZGRycyAhPSBOVUxMKSB7CiAgICAgICAgIG1lbWNweShhZGRyX291dCwKICAgICAgICAgICAgICAgICYoKHN0cnVjdCBzb2NrYWRkcl9pbiAqKSBhZGRycy0+YWlfYWRkciktPnNpbl9hZGRyLApAQCAtNzI3LDcgKzc3MCw3IEBACiAjZWxpZiBIQVZFX0dFVEhPU1RCWU5BTUUKICAgICBzdHJ1Y3QgaG9zdGVudCAqaHAgPSBOVUxMOwogCi0gICAgaHAgPSBnZXRob3N0YnluYW1lKG5hbWUpOworICAgIGhwID0gbmV0c25tcF9nZXRob3N0YnluYW1lKG5hbWUpOwogICAgIGlmIChocCA9PSBOVUxMKSB7CiAgICAgICAgIERFQlVHTVNHVEwoKCJnZXRfdGhpc2FkZHIiLAogICAgICAgICAgICAgICAgICAgICAiaG9zdG5hbWUgKGNvdWxkbid0IHJlc29sdmUpXG4iKSk7CkBAIC03NjMsNiArODA2LDE5NiBAQAogI2VuZGlmCiB9CiAKK2ludAorbmV0c25tcF9nZXRhZGRyaW5mbyhjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpzZXJ2aWNlLAorICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgYWRkcmluZm8gKmhpbnRzLCBzdHJ1Y3QgYWRkcmluZm8gKipyZXMpCit7CisjaWYgSEFWRV9HRVRBRERSSU5GTworICAgIHN0cnVjdCBhZGRyaW5mbyAqYWRkcnMgPSBOVUxMOworICAgIHN0cnVjdCBhZGRyaW5mbyBoaW50OworICAgIGludCAgICAgICAgICAgICBlcnI7CisjaWZkZWYgRE5TU0VDX0xPQ0FMX1ZBTElEQVRJT04KKyAgICB2YWxfc3RhdHVzX3QgICAgdmFsX3N0YXR1czsKKyNlbmRpZgorCisgICAgREVCVUdNU0dUTCgoImRuczpnZXRhZGRyaW5mbyIsICJsb29raW5nIHVwICIpKTsKKyAgICBpZiAobmFtZSkKKyAgICAgICAgREVCVUdNU0coKCJkbnM6Z2V0YWRkcmluZm8iLCAiXCIlc1wiIiwgbmFtZSkpOworICAgIGVsc2UKKyAgICAgICAgREVCVUdNU0coKCJkbnM6Z2V0YWRkcmluZm8iLCAiPE5VTEw+IikpOworCisgICAgaWYgKHNlcnZpY2UpCisJREVCVUdNU0coKCJkbnM6Z2V0YWRkcmluZm8iLCAiOlwiJXNcIiIsIHNlcnZpY2UpKTsKKworICAgIGlmIChoaW50cykKKwlERUJVR01TRygoImRuczpnZXRhZGRyaW5mbyIsICIgd2l0aCBoaW50ICh7IC4uLiB9KSIpKTsKKyAgICBlbHNlCisJREVCVUdNU0coKCJkbnM6Z2V0YWRkcmluZm8iLCAiIHdpdGggbm8gaGludCIpKTsKKworICAgIERFQlVHTVNHKCgiZG5zOmdldGFkZHJpbmZvIiwgIlxuIikpOworCisgICAgaWYgKE5VTEwgPT0gaGludHMpIHsKKyAgICAgICAgbWVtc2V0KCZoaW50LCAwLCBzaXplb2YgaGludCk7CisgICAgICAgIGhpbnQuYWlfZmxhZ3MgPSAwOworICAgICAgICBoaW50LmFpX2ZhbWlseSA9IFBGX0lORVQ7CisgICAgICAgIGhpbnQuYWlfc29ja3R5cGUgPSBTT0NLX0RHUkFNOworICAgICAgICBoaW50LmFpX3Byb3RvY29sID0gMDsKKyAgICAgICAgaGludHMgPSAmaGludDsKKyAgICB9IGVsc2UgeworICAgICAgICBtZW1jcHkoJmhpbnQsIGhpbnRzLCBzaXplb2YgaGludCk7CisgICAgfQorCisjaWZuZGVmIEROU1NFQ19MT0NBTF9WQUxJREFUSU9OCisgICAgZXJyID0gZ2V0YWRkcmluZm8obmFtZSwgTlVMTCwgJmhpbnQsICZhZGRycyk7CisjZWxzZSAvKiBETlNTRUNfTE9DQUxfVkFMSURBVElPTiAqLworICAgIGVyciA9IHZhbF9nZXRhZGRyaW5mbyhuZXRzbm1wX3ZhbGlkYXRvcl9jb250ZXh0KCksIG5hbWUsIE5VTEwsICZoaW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmYWRkcnMsICZ2YWxfc3RhdHVzKTsKKyAgICBERUJVR01TR1RMKCgiZG5zOnNlYzp2YWwiLCAiZXJyICVkLCB2YWxfc3RhdHVzICVkIC8gJXM7IHRydXN0ZWQ6ICVkXG4iLAorICAgICAgICAgICAgICAgIGVyciwgdmFsX3N0YXR1cywgcF92YWxfc3RhdHVzKHZhbF9zdGF0dXMpLAorICAgICAgICAgICAgICAgIHZhbF9pc3RydXN0ZWQodmFsX3N0YXR1cykpKTsKKyAgICBpZiAoISB2YWxfaXN0cnVzdGVkKHZhbF9zdGF0dXMpKSB7CisgICAgICAgIGludCByYzsKKyAgICAgICAgaWYgKChlcnIgIT0gMCkgJiYgVkFMX0dFVEFERFJJTkZPX0hBU19TVEFUVVMoZXJyKSkgeworICAgICAgICAgICAgc25tcF9sb2coTE9HX1dBUk5JTkcsCisgICAgICAgICAgICAgICAgICAgICAiV0FSTklORzogVU5UUlVTVEVEIGVycm9yIGluIEROUyByZXNvbHV0aW9uIGZvciAlcyFcbiIsCisgICAgICAgICAgICAgICAgICAgICBuYW1lKTsKKyAgICAgICAgICAgIHJjID0gRUFJX0ZBSUw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzbm1wX2xvZyhMT0dfV0FSTklORywKKyAgICAgICAgICAgICAgICAgICAgICJUaGUgYXV0aGVudGljaXR5IG9mIEROUyByZXNwb25zZSBpcyBub3QgdHJ1c3RlZCAoJXMpXG4iLAorICAgICAgICAgICAgICAgICAgICAgcF92YWxfc3RhdHVzKHZhbF9zdGF0dXMpKTsKKyAgICAgICAgICAgIHJjID0gRUFJX05PTkFNRTsKKyAgICAgICAgfQorICAgICAgICAvKiogY29udGludWUgYW55d2F5cyBpZiBETlNTRUNfV0FSTl9PTkxZIGlzIHNldCAqLworICAgICAgICBpZiAoIW5ldHNubXBfZHNfZ2V0X2Jvb2xlYW4oTkVUU05NUF9EU19MSUJSQVJZX0lELCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCX0ROU1NFQ19XQVJOX09OTFkpKQorICAgICAgICAgICAgcmV0dXJuIHJjOworICAgIH0KKworCisjZW5kaWYgLyogRE5TU0VDX0xPQ0FMX1ZBTElEQVRJT04gKi8KKyAgICAqcmVzID0gYWRkcnM7CisgICAgaWYgKCgwID09IGVycikgJiYgYWRkcnMgJiYgYWRkcnMtPmFpX2FkZHIpIHsKKyAgICAgICAgREVCVUdNU0dUTCgoImRuczpnZXRhZGRyaW5mbyIsICJhbnN3ZXIgeyBBRl9JTkVULCAlczolaHUgfVxuIiwKKyAgICAgICAgICAgICAgICAgICAgaW5ldF9udG9hKCgoc3RydWN0IHNvY2thZGRyX2luKilhZGRycy0+YWlfYWRkciktPnNpbl9hZGRyKSwKKyAgICAgICAgICAgICAgICAgICAgbnRvaHMoKChzdHJ1Y3Qgc29ja2FkZHJfaW4qKWFkZHJzLT5haV9hZGRyKS0+c2luX3BvcnQpKSk7CisgICAgfQorICAgIHJldHVybiBlcnI7CisjZWxzZQorICAgIE5FVFNOTVBfTE9HT05DRSgoTE9HX0VSUiwgImdldGFkZHJpbmZvIG5vdCBhdmFpbGFibGUiKSk7CisgICAgcmV0dXJuIEVBSV9GQUlMOworI2VuZGlmIC8qIGdldGFkZHJpbmZvICovCit9CisKK3N0cnVjdCBob3N0ZW50ICoKK25ldHNubXBfZ2V0aG9zdGJ5bmFtZShjb25zdCBjaGFyICpuYW1lKQoreworI2lmIEhBVkVfR0VUSE9TVEJZTkFNRQorI2lmZGVmIEROU1NFQ19MT0NBTF9WQUxJREFUSU9OCisgICAgdmFsX3N0YXR1c190IHZhbF9zdGF0dXM7CisjZW5kaWYKKyAgICBzdHJ1Y3QgaG9zdGVudCAqaHAgPSBOVUxMOworCisgICAgaWYgKE5VTEwgPT0gbmFtZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBERUJVR01TR1RMKCgiZG5zOmdldGhvc3RieW5hbWUiLCAibG9va2luZyB1cCAlc1xuIiwgbmFtZSkpOworCisjaWZkZWYgRE5TU0VDX0xPQ0FMX1ZBTElEQVRJT04KKyAgICBocCAgPSB2YWxfZ2V0aG9zdGJ5bmFtZShuZXRzbm1wX3ZhbGlkYXRvcl9jb250ZXh0KCksIG5hbWUsICZ2YWxfc3RhdHVzKTsKKyAgICBERUJVR01TR1RMKCgiZG5zOnNlYzp2YWwiLCAidmFsX3N0YXR1cyAlZCAvICVzOyB0cnVzdGVkOiAlZFxuIiwKKyAgICAgICAgICAgICAgICB2YWxfc3RhdHVzLCBwX3ZhbF9zdGF0dXModmFsX3N0YXR1cyksCisgICAgICAgICAgICAgICAgdmFsX2lzdHJ1c3RlZCh2YWxfc3RhdHVzKSkpOworICAgIGlmICghdmFsX2lzdHJ1c3RlZCh2YWxfc3RhdHVzKSkgeworICAgICAgICBzbm1wX2xvZyhMT0dfV0FSTklORywKKyAgICAgICAgICAgICAgICAgIlRoZSBhdXRoZW50aWNpdHkgb2YgRE5TIHJlc3BvbnNlIGlzIG5vdCB0cnVzdGVkICglcylcbiIsCisgICAgICAgICAgICAgICAgIHBfdmFsX3N0YXR1cyh2YWxfc3RhdHVzKSk7CisgICAgICAgIC8qKiBjb250aW51ZSBhbnl3YXlzIGlmIEROU1NFQ19XQVJOX09OTFkgaXMgc2V0ICovCisgICAgICAgIGlmICghbmV0c25tcF9kc19nZXRfYm9vbGVhbihORVRTTk1QX0RTX0xJQlJBUllfSUQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfRE5TU0VDX1dBUk5fT05MWSkpCisgICAgICAgICAgICBocCA9IE5VTEw7CisgICAgfQorICAgIGVsc2UgaWYgKHZhbF9kb2VzX25vdF9leGlzdCh2YWxfc3RhdHVzKSAmJiBocCkKKyAgICAgICAgaHAgPSBOVUxMOworI2Vsc2UKKyAgICBocCA9IGdldGhvc3RieW5hbWUobmFtZSk7CisjZW5kaWYKKyAgICBpZiAoaHAgPT0gTlVMTCkgeworICAgICAgICBERUJVR01TR1RMKCgiZG5zOmdldGhvc3RieW5hbWUiLAorICAgICAgICAgICAgICAgICAgICAiY291bGRuJ3QgcmVzb2x2ZSAlc1xuIiwgbmFtZSkpOworICAgIH0gZWxzZSBpZiAoaHAtPmhfYWRkcnR5cGUgIT0gQUZfSU5FVCkgeworICAgICAgICBERUJVR01TR1RMKCgiZG5zOmdldGhvc3RieW5hbWUiLAorICAgICAgICAgICAgICAgICAgICAid2FybmluZzogcmVzcG9uc2UgZm9yICVzIG5vdCBBRl9JTkVUIVxuIiwgbmFtZSkpOworICAgIH0gZWxzZSB7CisgICAgICAgIERFQlVHTVNHVEwoKCJkbnM6Z2V0aG9zdGJ5bmFtZSIsCisgICAgICAgICAgICAgICAgICAgICIlcyByZXNvbHZlZCBva2F5XG4iLCBuYW1lKSk7CisgICAgfQorICAgIHJldHVybiBocDsKKyNlbHNlCisgICAgTkVUU05NUF9MT0dPTkNFKChMT0dfRVJSLCAiZ2V0aG9zdGJ5bmFtZSBub3QgYXZhaWxhYmxlIikpOworICAgIHJldHVybiBOVUxMOworI2VuZGlmIC8qIEhBVkVfR0VUSE9TVEJZTkFNRSAqLworfQorCisvKioKKyAqIExvb2sgdXAgdGhlIGhvc3QgbmFtZSB2aWEgRE5TLgorICoKKyAqIEBwYXJhbVtpbl0gYWRkciBQb2ludGVyIHRvIHRoZSBhZGRyZXNzIHRvIHJlc29sdmUuIFRoaXMgYXJndW1lbnQgcG9pbnRzIGUuZy4KKyAqICAgdG8gYSBzdHJ1Y3QgaW5fYWRkciBmb3IgQUZfSU5FVCBvciB0byBhIHN0cnVjdCBpbjZfYWRkciBmb3IgQUZfSU5FVDYuCisgKiBAcGFyYW1baW5dIGxlbiAgTGVuZ3RoIGluIGJ5dGVzIG9mICphZGRyLgorICogQHBhcmFtW2luXSB0eXBlIEFkZHJlc3MgZmFtaWx5LCBlLmcuIEFGX0lORVQgb3IgQUZfSU5FVDYuCisgKgorICogQHJldHVybiBQb2ludGVyIHRvIGEgaG9zdGVudCBzdHJ1Y3R1cmUgaWYgYWRkcmVzcyBsb29rdXAgc3VjY2VlZGVkIG9yIE5VTEwKKyAqICAgaWYgdGhlIGxvb2t1cCBmYWlsZWQuCisgKgorICogQHNlZSBTZWUgYWxzbyB0aGUgZ2V0aG9zdGJ5YWRkcigpIG1hbiBwYWdlLgorICovCitzdHJ1Y3QgaG9zdGVudCAqCituZXRzbm1wX2dldGhvc3RieWFkZHIoY29uc3Qgdm9pZCAqYWRkciwgc29ja2xlbl90IGxlbiwgaW50IHR5cGUpCit7CisjaWYgSEFWRV9HRVRIT1NUQllBRERSCisgICAgc3RydWN0IGhvc3RlbnQgKmhwID0gTlVMTDsKKyAgICBjaGFyIGJ1Zls2NF07CisKKyAgICBERUJVR01TR1RMKCgiZG5zOmdldGhvc3RieWFkZHIiLCAicmVzb2x2aW5nICVzXG4iLAorICAgICAgICAgICAgICAgIGluZXRfbnRvcCh0eXBlLCBhZGRyLCBidWYsIHNpemVvZihidWYpKSkpOworCisjaWZkZWYgRE5TU0VDX0xPQ0FMX1ZBTElEQVRJT04KKyAgICB2YWxfc3RhdHVzX3QgdmFsX3N0YXR1czsKKyAgICBocCA9IHZhbF9nZXRob3N0YnlhZGRyKG5ldHNubXBfdmFsaWRhdG9yX2NvbnRleHQoKSwgYWRkciwgbGVuLCB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJnZhbF9zdGF0dXMpOworICAgIERFQlVHTVNHVEwoKCJkbnM6c2VjOnZhbCIsICJ2YWxfc3RhdHVzICVkIC8gJXM7IHRydXN0ZWQ6ICVkXG4iLAorICAgICAgICAgICAgICAgIHZhbF9zdGF0dXMsIHBfdmFsX3N0YXR1cyh2YWxfc3RhdHVzKSwKKyAgICAgICAgICAgICAgICB2YWxfaXN0cnVzdGVkKHZhbF9zdGF0dXMpKSk7CisgICAgaWYgKCF2YWxfaXN0cnVzdGVkKHZhbF9zdGF0dXMpKSB7CisgICAgICAgIHNubXBfbG9nKExPR19XQVJOSU5HLAorICAgICAgICAgICAgICAgICAiVGhlIGF1dGhlbnRpY2l0eSBvZiBETlMgcmVzcG9uc2UgaXMgbm90IHRydXN0ZWQgKCVzKVxuIiwKKyAgICAgICAgICAgICAgICAgcF92YWxfc3RhdHVzKHZhbF9zdGF0dXMpKTsKKyAgICAgICAgLyoqIGNvbnRpbnVlIGFueXdheXMgaWYgRE5TU0VDX1dBUk5fT05MWSBpcyBzZXQgKi8KKyAgICAgICAgaWYgKCFuZXRzbm1wX2RzX2dldF9ib29sZWFuKE5FVFNOTVBfRFNfTElCUkFSWV9JRCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9ETlNTRUNfV0FSTl9PTkxZKSkKKyAgICAgICAgICAgIGhwID0gTlVMTDsKKyAgICB9CisgICAgZWxzZSBpZiAodmFsX2RvZXNfbm90X2V4aXN0KHZhbF9zdGF0dXMpICYmIGhwKQorICAgICAgICBocCA9IE5VTEw7CisjZWxzZQorICAgIGhwID0gZ2V0aG9zdGJ5YWRkcihhZGRyLCBsZW4sIHR5cGUpOworI2VuZGlmCisgICAgaWYgKGhwID09IE5VTEwpIHsKKyAgICAgICAgREVCVUdNU0dUTCgoImRuczpnZXRob3N0YnlhZGRyIiwgImNvdWxkbid0IHJlc29sdmUgYWRkclxuIikpOworICAgIH0gZWxzZSBpZiAoaHAtPmhfYWRkcnR5cGUgIT0gQUZfSU5FVCkgeworICAgICAgICBERUJVR01TR1RMKCgiZG5zOmdldGhvc3RieWFkZHIiLAorICAgICAgICAgICAgICAgICAgICAid2FybmluZzogcmVzcG9uc2UgZm9yIGFkZHIgbm90IEFGX0lORVQhXG4iKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgREVCVUdNU0dUTCgoImRuczpnZXRob3N0YnlhZGRyIiwgImFkZHIgcmVzb2x2ZWQgb2theVxuIikpOworICAgIH0KKyAgICByZXR1cm4gaHA7CisjZWxzZQorICAgIE5FVFNOTVBfTE9HT05DRSgoTE9HX0VSUiwgImdldGhvc3RieWFkZHIgbm90IGF2YWlsYWJsZSIpKTsKKyAgICByZXR1cm4gTlVMTDsKKyNlbmRpZgorfQorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogI2lmbmRlZiBIQVZFX1NUUk5DQVNFQ01QCkBAIC04NTUsNDEgKzEwODgsMzIgQEAKIH0KICNlbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSEFWRV9TRVRFTlYgKi8KIAotLyogcmV0dXJucyBjZW50aXNlY29uZHMgKi8KK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihjYWxjdWxhdGVfdGltZV9kaWZmLCBuZXRzbm1wX3VudXNlZCkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DQUxDVUxBVEVfVElNRV9ESUZGCisvKioKKyAqIENvbXB1dGUgKCpub3cgLSAqdGhlbikgaW4gY2VudGlzZWNvbmRzLgorICovCiBpbnQKIGNhbGN1bGF0ZV90aW1lX2RpZmYoY29uc3Qgc3RydWN0IHRpbWV2YWwgKm5vdywgY29uc3Qgc3RydWN0IHRpbWV2YWwgKnRoZW4pCiB7Ci0gICAgc3RydWN0IHRpbWV2YWwgIHRtcCwgZGlmZjsKLSAgICBtZW1jcHkoJnRtcCwgbm93LCBzaXplb2Yoc3RydWN0IHRpbWV2YWwpKTsKLSAgICB0bXAudHZfc2VjLS07Ci0gICAgdG1wLnR2X3VzZWMgKz0gMTAwMDAwMEw7Ci0gICAgZGlmZi50dl9zZWMgPSB0bXAudHZfc2VjIC0gdGhlbi0+dHZfc2VjOwotICAgIGRpZmYudHZfdXNlYyA9IHRtcC50dl91c2VjIC0gdGhlbi0+dHZfdXNlYzsKLSAgICBpZiAoZGlmZi50dl91c2VjID4gMTAwMDAwMEwpIHsKLSAgICAgICAgZGlmZi50dl91c2VjIC09IDEwMDAwMDBMOwotICAgICAgICBkaWZmLnR2X3NlYysrOwotICAgIH0KLSAgICByZXR1cm4gKChkaWZmLnR2X3NlYyAqIDEwMCkgKyAoZGlmZi50dl91c2VjIC8gMTAwMDApKTsKLX0KKyAgICBzdHJ1Y3QgdGltZXZhbCAgZGlmZjsKIAotLyogcmV0dXJucyBkaWZmIGluIHJvdW5kZWQgc2Vjb25kcyAqLworICAgIE5FVFNOTVBfVElNRVJTVUIobm93LCB0aGVuLCAmZGlmZik7CisgICAgcmV0dXJuIChpbnQpKGRpZmYudHZfc2VjICogMTAwICsgZGlmZi50dl91c2VjIC8gMTAwMDApOworfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0FMQ1VMQVRFX1RJTUVfRElGRiAqLworCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfQ0FMQ1VMQVRFX1NFQ1RJTUVfRElGRgorLyoqIENvbXB1dGUgcm91bmRlZCAoKm5vdyAtICp0aGVuKSBpbiBzZWNvbmRzLiAqLwogdV9pbnQKIGNhbGN1bGF0ZV9zZWN0aW1lX2RpZmYoY29uc3Qgc3RydWN0IHRpbWV2YWwgKm5vdywgY29uc3Qgc3RydWN0IHRpbWV2YWwgKnRoZW4pCiB7Ci0gICAgc3RydWN0IHRpbWV2YWwgIHRtcCwgZGlmZjsKLSAgICBtZW1jcHkoJnRtcCwgbm93LCBzaXplb2Yoc3RydWN0IHRpbWV2YWwpKTsKLSAgICB0bXAudHZfc2VjLS07Ci0gICAgdG1wLnR2X3VzZWMgKz0gMTAwMDAwMEw7Ci0gICAgZGlmZi50dl9zZWMgPSB0bXAudHZfc2VjIC0gdGhlbi0+dHZfc2VjOwotICAgIGRpZmYudHZfdXNlYyA9IHRtcC50dl91c2VjIC0gdGhlbi0+dHZfdXNlYzsKLSAgICBpZiAoZGlmZi50dl91c2VjID49IDEwMDAwMDBMKSB7Ci0gICAgICAgIGRpZmYudHZfdXNlYyAtPSAxMDAwMDAwTDsKLSAgICAgICAgZGlmZi50dl9zZWMrKzsKLSAgICB9Ci0gICAgaWYgKGRpZmYudHZfdXNlYyA+PSA1MDAwMDBMKQotICAgICAgICByZXR1cm4gZGlmZi50dl9zZWMgKyAxOwotICAgIHJldHVybiAgZGlmZi50dl9zZWM7CisgICAgc3RydWN0IHRpbWV2YWwgIGRpZmY7CisKKyAgICBORVRTTk1QX1RJTUVSU1VCKG5vdywgdGhlbiwgJmRpZmYpOworICAgIHJldHVybiBkaWZmLnR2X3NlYyArIChkaWZmLnR2X3VzZWMgPj0gNTAwMDAwTCk7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9DQUxDVUxBVEVfU0VDVElNRV9ESUZGICovCiAKICNpZm5kZWYgSEFWRV9TVFJDQVNFU1RSCiAvKgpAQCAtMTE0NSw2ICsxMzY5LDE3IEBACiAjZW5kaWYKIH0KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHN0cl90b191aWQsIHVzZXJfaW5mb3JtYXRpb24pCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU1RSX1RPX1VJRAorLyoqCisgKiBDb252ZXJ0IGEgdXNlciBuYW1lIG9yIG51bWJlciBpbnRvIG51bWVyaWMgZm9ybS4KKyAqCisgKiBAcGFyYW1baW5dIHVzZXJvcnVpZCBFaXRoZXIgYSBVbml4IHVzZXIgbmFtZSBvciB0aGUgQVNDSUkgcmVwcmVzZW50YXRpb24KKyAqICAgb2YgYSB1c2VyIG51bWJlci4KKyAqCisgKiBAcmV0dXJuIEVpdGhlciBhIHVzZXIgbnVtYmVyID4gMCBvciAwIGlmIHVzZXJvcnVpZCBpcyBub3QgYSB2YWxpZCB1c2VyCisgKiAgIG5hbWUsIG5vdCBhIHZhbGlkIHVzZXIgbnVtYmVyIG9yIHRoZSBuYW1lIG9mIHRoZSByb290IHVzZXIuCisgKi8KIGludCBuZXRzbm1wX3N0cl90b191aWQoY29uc3QgY2hhciAqdXNlcm9ydWlkKSB7CiAgICAgaW50IHVpZDsKICNpZiBIQVZFX0dFVFBXTkFNICYmIEhBVkVfUFdEX0gKQEAgLTExNTMsMzcgKzEzODgsNDkgQEAKIAogICAgIHVpZCA9IGF0b2kodXNlcm9ydWlkKTsKIAotICAgIGlmICggdWlkID09IDAgKSB7CisgICAgaWYgKHVpZCA9PSAwKSB7CiAjaWYgSEFWRV9HRVRQV05BTSAmJiBIQVZFX1BXRF9ICi0gICAgICAgIHB3ZCA9IGdldHB3bmFtKCB1c2Vyb3J1aWQgKTsKLSAgICAgICAgaWYgKHB3ZCkKLSAgICAgICAgICAgIHVpZCA9IHB3ZC0+cHdfdWlkOwotICAgICAgICBlbHNlCisgICAgICAgIHB3ZCA9IGdldHB3bmFtKHVzZXJvcnVpZCk7CisgICAgICAgIHVpZCA9IHB3ZCA/IHB3ZC0+cHdfdWlkIDogMDsKKyAgICAgICAgZW5kcHdlbnQoKTsKICNlbmRpZgorICAgICAgICBpZiAodWlkID09IDApCiAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfV0FSTklORywgIkNhbid0IGlkZW50aWZ5IHVzZXIgKCVzKS5cbiIsIHVzZXJvcnVpZCk7CiAgICAgfQogICAgIHJldHVybiB1aWQ7CiAgICAgCiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9TVFJfVE9fVUlEICovCiAKLWludCBuZXRzbm1wX3N0cl90b19naWQoY29uc3QgY2hhciAqZ3JvdXBvcmdpZCkgeworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHN0cl90b19naWQsIHVzZXJfaW5mb3JtYXRpb24pCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU1RSX1RPX0dJRAorLyoqCisgKiBDb252ZXJ0IGEgZ3JvdXAgbmFtZSBvciBudW1iZXIgaW50byBudW1lcmljIGZvcm0uCisgKgorICogQHBhcmFtW2luXSBncm91cG9yZ2lkIEVpdGhlciBhIFVuaXggZ3JvdXAgbmFtZSBvciB0aGUgQVNDSUkgcmVwcmVzZW50YXRpb24KKyAqICAgb2YgYSBncm91cCBudW1iZXIuCisgKgorICogQHJldHVybiBFaXRoZXIgYSBncm91cCBudW1iZXIgPiAwIG9yIDAgaWYgZ3JvdXBvcmdpZCBpcyBub3QgYSB2YWxpZCBncm91cAorICogICBuYW1lLCBub3QgYSB2YWxpZCBncm91cCBudW1iZXIgb3IgdGhlIHJvb3QgZ3JvdXAuCisgKi8KK2ludCBuZXRzbm1wX3N0cl90b19naWQoY29uc3QgY2hhciAqZ3JvdXBvcmdpZCkKK3sKICAgICBpbnQgZ2lkOwotI2lmIEhBVkVfR0VUR1JOQU0gJiYgSEFWRV9HUlBfSAotICAgIHN0cnVjdCBncm91cCAgKmdycDsKLSNlbmRpZgogCiAgICAgZ2lkID0gYXRvaShncm91cG9yZ2lkKTsKIAotICAgIGlmICggZ2lkID09IDAgKSB7CisgICAgaWYgKGdpZCA9PSAwKSB7CiAjaWYgSEFWRV9HRVRHUk5BTSAmJiBIQVZFX0dSUF9ICi0gICAgICAgIGdycCA9IGdldGdybmFtKCBncm91cG9yZ2lkICk7Ci0gICAgICAgIGlmIChncnApCi0gICAgICAgICAgICBnaWQgPSBncnAtPmdyX2dpZDsKLSAgICAgICAgZWxzZQorICAgICAgICBzdHJ1Y3QgZ3JvdXAgICpncnA7CisKKyAgICAgICAgZ3JwID0gZ2V0Z3JuYW0oZ3JvdXBvcmdpZCk7CisgICAgICAgIGdpZCA9IGdycCA/IGdycC0+Z3JfZ2lkIDogMDsKKyAgICAgICAgZW5kZ3JlbnQoKTsKICNlbmRpZgotICAgICAgICAgICAgc25tcF9sb2coTE9HX1dBUk5JTkcsICJDYW4ndCBpZGVudGlmeSBncm91cCAoJXMpLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgIGdyb3Vwb3JnaWQpOworICAgICAgICBpZiAoZ2lkID09IDApCisgICAgICAgICAgICBzbm1wX2xvZyhMT0dfV0FSTklORywgIkNhbid0IGlkZW50aWZ5IGdyb3VwICglcykuXG4iLCBncm91cG9yZ2lkKTsKICAgICB9CiAKICAgICByZXR1cm4gZ2lkOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU1RSX1RPX0dJRCAqLwpkaWZmIC0tZ2l0IGEvc25tcGxpYi90ZXN0X2JpbmFyeV9hcnJheS5jIGIvc25tcGxpYi90ZXN0X2JpbmFyeV9hcnJheS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NGIxZjBlLi4wMDAwMDAwCi0tLSBhL3NubXBsaWIvdGVzdF9iaW5hcnlfYXJyYXkuYworKysgL2Rldi9udWxsCkBAIC0xLDE3MSArMCwwIEBACi0jaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+Ci0KLSNpZiBIQVZFX0lPX0gKLSNpbmNsdWRlIDxpby5oPgotI2VuZGlmCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpZiBIQVZFX1NURExJQl9ICi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jZW5kaWYKLSNpZiBIQVZFX01BTExPQ19ICi0jaW5jbHVkZSA8bWFsbG9jLmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpZiBIQVZFX1NUUklOR19ICi0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jZWxzZQotI2luY2x1ZGUgPHN0cmluZ3MuaD4KLSNlbmRpZgotCi0jaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaD4KLSNpbmNsdWRlIDxuZXQtc25tcC90eXBlcy5oPgotI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaD4KLSNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oPgotI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oPgotI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaD4KLSNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg+Ci0KLSNkZWZpbmUgVEVTVF9TSVpFIDcKLQotdm9pZAotcHJpbnRfaW50KG5ldHNubXBfaW5kZXggKmksIHZvaWQgKnYpCi17Ci0gICAgcHJpbnRmKCJpdGVtICVwID0gJWxkXG4iLCBpLCBpLT5vaWRzWzBdKTsKLX0KLQotaW50Ci10ZXN0X2ludCh2b2lkKQotewotICAgIG9pZCBvMSA9IDE7Ci0gICAgb2lkIG8yID0gMjsKLSAgICBvaWQgbzMgPSA2OwotICAgIG9pZCBvNCA9IDg7Ci0gICAgb2lkIG81ID0gOTsKLSAgICBvaWQgb3ggPSA3OwotICAgIG9pZCBveSA9IDEwOwotICAgIG5ldHNubXBfaW5kZXggaTEsaTIsaTMsaTQsaTUsaXgsaXksICppcDsKLSAgICBuZXRzbm1wX2luZGV4ICphW1RFU1RfU0laRV0gPSB7ICZpMSwgJmkyLCAmaTMsICZpeCwgJmk0LCAmaTUsICZpeSB9OwotICAgIG5ldHNubXBfY29udGFpbmVyICpjID0gbmV0c25tcF9jb250YWluZXJfZ2V0X2JpbmFyeV9hcnJheSgpOwotICAgIGludCBpOwotCi0gICAgYy0+Y29tcGFyZSA9IG5ldHNubXBfY29tcGFyZV9uZXRzbm1wX2luZGV4OwotICAgIAotICAgIGkxLm9pZHMgPSAmbzE7Ci0gICAgaTIub2lkcyA9ICZvMjsKLSAgICBpMy5vaWRzID0gJm8zOwotICAgIGk0Lm9pZHMgPSAmbzQ7Ci0gICAgaTUub2lkcyA9ICZvNTsKLSAgICBpeC5vaWRzID0gJm94OwotICAgIGl5Lm9pZHMgPSAmb3k7Ci0gICAgaTEubGVuID0gaTIubGVuID0gaTMubGVuID0gaTQubGVuID0gaTUubGVuID0gaXgubGVuID0gaXkubGVuID0gMTsKLQotICAgIHByaW50ZigiQ3JlYXRpbmcgY29udGFpbmVyLi4uXG4iKTsKLQotICAgIHByaW50ZigiSW5zZXJ0aW5nIGRhdGEuLi5cbiIpOwotICAgIENPTlRBSU5FUl9JTlNFUlQoYywmaTQpOwotICAgIENPTlRBSU5FUl9JTlNFUlQoYywmaTIpOwotICAgIENPTlRBSU5FUl9JTlNFUlQoYywmaTMpOwotICAgIENPTlRBSU5FUl9JTlNFUlQoYywmaTEpOwotICAgIENPTlRBSU5FUl9JTlNFUlQoYywmaTUpOwotCi0gICAgcHJpbnRmKCJGb3IgZWFjaC4uLlxuIik7Ci0gICAgQ09OVEFJTkVSX0ZPUl9FQUNIKGMsIHByaW50X2ludCwgTlVMTCk7Ci0gICAgcHJpbnRmKCJEb25lLlxuIik7Ci0KLSAgICBwcmludGYoIlxuIik7Ci0gICAgaXAgPSBDT05UQUlORVJfRklSU1QoYyk7Ci0gICAgcHJpbnRmKCJGaW5kIGZpcnN0ID0gJXAgJWxkXG4iLGlwLCBpcC0+b2lkc1swXSk7Ci0gICAgd2hpbGUoIGlwICkgewotICAgICAgICBpcCA9IENPTlRBSU5FUl9ORVhUKGMsaXApOwotICAgICAgICBpZihpcCkKLSAgICAgICAgICAgIHByaW50ZigiRmluZCBuZXh0ID0gJXAgJWxkXG4iLGlwLCBpcC0+b2lkc1swXSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHByaW50ZigiRmluZCBuZXh0ID0gJXNcbiIsaXApOwotICAgIH0KLQotICAgIGZvciggaT0wOyBpIDwgVEVTVF9TSVpFOyArK2kpIHsKLSAgICAgICAgcHJpbnRmKCJcbiIpOwotICAgICAgICBpcCA9IENPTlRBSU5FUl9GSU5EKGMsYVtpXSk7Ci0gICAgICAgIHByaW50ZigiRmluZCAlbGQgPSAlcCAlbGRcbiIsIGFbaV0tPm9pZHNbMF0sIGlwLCBpcCA/IGlwLT5vaWRzWzBdIDogMCk7Ci0gICAgICAgIGlwID0gQ09OVEFJTkVSX05FWFQoYyxhW2ldKTsKLSAgICAgICAgcHJpbnRmKCJOZXh0ICVsZCA9ICVwICVsZFxuIiwgYVtpXS0+b2lkc1swXSwgaXAsIGlwID8gaXAtPm9pZHNbMF0gOiAwKTsKLSAgICB9Ci0KLSAgICBwcmludGYoIkRvbmUuXG4iKTsKLQotICAgIHJldHVybiAwOwotfQotCi12b2lkCi1wcmludF9zdHJpbmcoY2hhciAqaSwgdm9pZCAqdikKLXsKLSAgICBwcmludGYoIml0ZW0gJXNcbiIsIGkpOwotfQotCi1pbnQKLW15X3N0cmNtcChjaGFyICpsaHMsIGNoYXIgKnJocykKLXsKLSAgICBpbnQgcmMgPSBzdHJjbXAobGhzLHJocyk7Ci0vKiAgICAgIHByaW50ZigiJXMgJWQgJXNcbiIsbGhzLCByYywgcmhzKTsgKi8KLSAgICByZXR1cm4gcmM7Ci19Ci0KLWludAotdGVzdF9zdHJpbmcoKQotewotICAgIGNvbnN0IGNoYXIgKm8xID0gInplYnJhIjsKLSAgICBjb25zdCBjaGFyICpvMiA9ICJiLXR3byI7Ci0gICAgY29uc3QgY2hhciAqbzMgPSAiYiI7Ci0gICAgY29uc3QgY2hhciAqbzQgPSAiY2VkYXIiOwotICAgIGNvbnN0IGNoYXIgKm81ID0gImFscGhhIjsKLSAgICBjb25zdCBjaGFyICpveCA9ICJkZXYiOwotICAgIGNvbnN0IGNoYXIgKm95ID0gImFhIjsKLSAgICBjb25zdCBjaGFyICogaXA7Ci0gICAgCi0gICAgY29uc3QgY2hhciAqYVtURVNUX1NJWkVdID0geyBvMSwgbzIsIG8zLCBveCwgbzQsIG81LCBveSB9OwotICAgIG5ldHNubXBfY29udGFpbmVyICpjID0gbmV0c25tcF9jb250YWluZXJfZ2V0X2JpbmFyeV9hcnJheSgpOwotICAgIGludCBpOwotCi0gICAgYy0+Y29tcGFyZSA9IG15X3N0cmNtcDsKLSAgICAKLSAgICBwcmludGYoIkNyZWF0aW5nIGNvbnRhaW5lci4uLlxuIik7Ci0KLSAgICBwcmludGYoIkluc2VydGluZyBkYXRhLi4uXG4iKTsKLSAgICBDT05UQUlORVJfSU5TRVJUKGMsbzQpOwotICAgIENPTlRBSU5FUl9JTlNFUlQoYyxvMik7Ci0gICAgQ09OVEFJTkVSX0lOU0VSVChjLG8zKTsKLSAgICBDT05UQUlORVJfSU5TRVJUKGMsbzEpOwotICAgIENPTlRBSU5FUl9JTlNFUlQoYyxvNSk7Ci0gICAgcHJpbnRmKCJcbiIpOwotICAgIHByaW50ZigiRm9yIGVhY2guLi5cbiIpOwotICAgIENPTlRBSU5FUl9GT1JfRUFDSChjLCBwcmludF9zdHJpbmcsIE5VTEwpOwotICAgIHByaW50ZigiRG9uZS5cbiIpOwotCi0gICAgcHJpbnRmKCJcbiIpOwotICAgIGlwID0gQ09OVEFJTkVSX0ZJUlNUKGMpOwotICAgIHByaW50ZigiRmluZCBmaXJzdCA9ICVzXG4iLGlwKTsKLSAgICB3aGlsZSggaXAgKSB7Ci0gICAgICAgIGlwID0gQ09OVEFJTkVSX05FWFQoYyxpcCk7Ci0gICAgICAgIHByaW50ZigiRmluZCBuZXh0ID0gJXNcbiIsaXApOwotICAgIH0KLQotICAgIGZvciggaT0wOyBpIDwgVEVTVF9TSVpFOyArK2kpIHsKLSAgICAgICAgcHJpbnRmKCJcbiIpOwotICAgICAgICBpcCA9IENPTlRBSU5FUl9GSU5EKGMsYVtpXSk7Ci0gICAgICAgIHByaW50ZigiRmluZCAlcyA9ICVzXG4iLCBhW2ldLCBpcCk7Ci0gICAgICAgIGlwID0gQ09OVEFJTkVSX05FWFQoYyxhW2ldKTsKLSAgICAgICAgcHJpbnRmKCJOZXh0ICVzID0gJXNcbiIsIGFbaV0sIGlwKTsKLSAgICB9Ci0KLSAgICBwcmludGYoIkRvbmUuXG4iKTsKLQotICAgIHJldHVybiAwOwotfQotCi1pbnQKLW1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQotewotCi0gICAgdGVzdF9pbnQoKTsKLSAgICB0ZXN0X3N0cmluZygpOwotfQpkaWZmIC0tZ2l0IGEvc25tcGxpYi90ZXh0X3V0aWxzLmMgYi9zbm1wbGliL3RleHRfdXRpbHMuYwppbmRleCA3MTQ4ZGNjLi4zMjU5NmJlIDEwMDY0NAotLS0gYS9zbm1wbGliL3RleHRfdXRpbHMuYworKysgYi9zbm1wbGliL3RleHRfdXRpbHMuYwpAQCAtMSw0ICsxLDUgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg+CiAKICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtNDIsNyArNDMsMTQgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L2ZpbGVfdXRpbHMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3RleHRfdXRpbHMuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRleHRfdXRpbHMsIGxpYm5ldHNubXApCiAKK25ldHNubXBfZmVhdHVyZV9wcm92aWRlKHRleHRfdXRpbHMpCisjaWZkZWYgTkVUU05NUF9GRUFUVVJFX1JFUVVJUkVfVEVYVF9VVElMUworbmV0c25tcF9mZWF0dXJlX3JlcXVpcmUoZmlsZV91dGlscykKKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVRVUlSRV9URVhUX1VUSUxTICovCisKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9URVhUX1VUSUxTCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKICAqIFByb3RvdHlwZXMKQEAgLTE0Nyw2ICsxNTUsOCBAQAogICAgIHJldHVybiBjOwogfQogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodGV4dF90b2tlbl9jb250YWluZXJfZnJvbV9maWxlLCBuZXRzbm1wX3VudXNlZCkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9URVhUX1RPS0VOX0NPTlRBSU5FUl9GUk9NX0ZJTEUKIG5ldHNubXBfY29udGFpbmVyICoKIG5ldHNubXBfdGV4dF90b2tlbl9jb250YWluZXJfZnJvbV9maWxlKGNvbnN0IGNoYXIgKmZpbGUsIHVfaW50IGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9jb250YWluZXIgKmNpbiwgdm9pZCAqY29udGV4dCkKQEAgLTE5OSw2ICsyMDksNyBAQAogICAgIAogICAgIHJldHVybiBjOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVEVYVF9UT0tFTl9DT05UQUlORVJfRlJPTV9GSUxFICovCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTUxMCwzICs1MjEsNiBAQAogICAgIHJldHVybiBQTUxQX1JDX01FTU9SWV9VU0VEOwogfQogCisjZWxzZSAgLyogISBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RFWFRfVVRJTFMgKi8KK25ldHNubXBfZmVhdHVyZV91bnVzZWQodGV4dF91dGlscyk7CisjZW5kaWYgLyogISBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1RFWFRfVVRJTFMgKi8KZGlmZiAtLWdpdCBhL3NubXBsaWIvdG9vbHMuYyBiL3NubXBsaWIvdG9vbHMuYwppbmRleCBmOTk1MWI5Li4yOWU1ZmVmIDEwMDY0NAotLS0gYS9zbm1wbGliL3Rvb2xzLmMKKysrIGIvc25tcGxpYi90b29scy5jCkBAIC0xNCw2ICsxNCw3IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpbmNsdWRlIDxjdHlwZS5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC00OCw2ICs0OSw5IEBACiAjaWZkZWYgSEFWRV9BUlBBX0lORVRfSAogI2luY2x1ZGUgPGFycGEvaW5ldC5oPgogI2VuZGlmCisjaWZkZWYgSEFWRV9WQUxHUklORF9NRU1DSEVDS19ICisjaW5jbHVkZSA8dmFsZ3JpbmQvbWVtY2hlY2suaD4KKyNlbmRpZgogI2lmZGVmIGN5Z3dpbgogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNlbmRpZgpAQCAtNjgsNiArNzIsMjMgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L21pYi5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaD4KIAorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHRvb2xzX2FsbCwgbGlibmV0c25tcCkKKworbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKG1lbW9yeV93cmFwcGVycywgdG9vbHNfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHZhbGdyaW5kLCB0b29sc19hbGwpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2Yoc3RyaW5nX3RpbWVfdG9fc2VjcywgdG9vbHNfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKG5ldHNubXBfY2hlY2tfZGVmaW5lZG5lc3MsIHZhbGdyaW5kKQorCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodWF0aW1lX3JlYWR5LCBuZXRzbm1wX3VudXNlZCkKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0aW1ldmFsX3R0aWNrcywgbmV0c25tcF91bnVzZWQpCisKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihtZW1vcnlfc3RyZHVwLCBtZW1vcnlfd3JhcHBlcnMpCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YobWVtb3J5X2NhbGxvYywgbWVtb3J5X3dyYXBwZXJzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKG1lbW9yeV9tYWxsb2MsIG1lbW9yeV93cmFwcGVycykKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZihtZW1vcnlfcmVhbGxvYywgbWVtb3J5X3dyYXBwZXJzKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKG1lbW9yeV9mcmVlLCBtZW1vcnlfd3JhcHBlcnMpCisKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9NRU1PUllfV1JBUFBFUlMKIC8qKgogICogVGhpcyBmdW5jdGlvbiBpcyBhIHdyYXBwZXIgZm9yIHRoZSBzdHJkdXAgZnVuY3Rpb24uCiAgKgpAQCAtNzgsNiArOTksOCBAQAogewogICAgIHJldHVybiBzdHJkdXAocHRyKTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX01FTU9SWV9TVFJEVVAgKi8KKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9NRU1PUllfQ0FMTE9DCiAvKioKICAqIFRoaXMgZnVuY3Rpb24gaXMgYSB3cmFwcGVyIGZvciB0aGUgY2FsbG9jIGZ1bmN0aW9uLgogICovCkBAIC04NSw3ICsxMDgsOCBAQAogewogICAgIHJldHVybiBjYWxsb2Mobm1lbWIsIHNpemUpOwogfQotCisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9NRU1PUllfQ0FMTE9DICovCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTUVNT1JZX01BTExPQwogLyoqCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIGEgd3JhcHBlciBmb3IgdGhlIG1hbGxvYyBmdW5jdGlvbi4KICAqLwpAQCAtOTMsNyArMTE3LDggQEAKIHsKICAgICByZXR1cm4gbWFsbG9jKHNpemUpOwogfQotCisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9NRU1PUllfTUFMTE9DICovCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTUVNT1JZX1JFQUxMT0MKIC8qKgogICogVGhpcyBmdW5jdGlvbiBpcyBhIHdyYXBwZXIgZm9yIHRoZSByZWFsbG9jIGZ1bmN0aW9uLgogICovCkBAIC0xMDEsNyArMTI2LDggQEAKIHsKICAgICByZXR1cm4gcmVhbGxvYyhwdHIsIHNpemUpOwogfQotCisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9NRU1PUllfUkVBTExPQyAqLworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX01FTU9SWV9GUkVFCiAvKioKICAqIFRoaXMgZnVuY3Rpb24gaXMgYSB3cmFwcGVyIGZvciB0aGUgZnJlZSBmdW5jdGlvbi4KICAqIEl0IGNhbGxzIGZyZWUgb25seSBpZiB0aGUgY2FsbGluZyBwYXJhbWV0ZXIgaGFzIGEgbm9uLXplcm8gdmFsdWUuCkBAIC0xMTEsNiArMTM3LDcgQEAKICAgICBpZiAocHRyKQogICAgICAgICBmcmVlKHB0cik7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9NRU1PUllfRlJFRSAqLwogCiAvKioKICAqIFRoaXMgZnVuY3Rpb24gaW5jcmVhc2UgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciBwb2ludGVkIGF0IGJ5ICpidWYsIHdoaWNoIGlzCkBAIC0xODAsNiArMjA3LDkgQEAKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmICghKmJ1ZikKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBzdHJjcHkoKGNoYXIgKikgKCpidWYgKyAqb3V0X2xlbiksIChjb25zdCBjaGFyICopIHMpOwogICAgICpvdXRfbGVuICs9IHN0cmxlbigoY2hhciAqKSAoKmJ1ZiArICpvdXRfbGVuKSk7CiAgICAgcmV0dXJuIDE7CkBAIC0yMDAsNiArMjMwLDcgQEAKIAogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBlbmQgZnJlZV96ZXJvKCkgKi8KIAorI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1VTTV9TQ0FQSQogLyoqCiAgKiBSZXR1cm5zIHBvaW50ZXIgdG8gYWxsb2NhZWQgJiBzZXQgYnVmZmVyIG9uIHN1Y2Nlc3MsIHNpemUgY29udGFpbnMKICAqIG51bWJlciBvZiByYW5kb20gYnl0ZXMgZmlsbGVkLiAgYnVmIGlzIE5VTEwgYW5kICpzaXplIHNldCB0byBLTVQKQEAgLTIzMCw2ICsyNjEsNyBAQAogICAgIHJldHVybiBidWY7CiAKIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZW5kIG1hbGxvY19yYW5kb20oKSAqLworI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVVNNX1NDQVBJICovCiAKIC8qKgogICogRHVwbGljYXRlcyBhIG1lbW9yeSBibG9jay4KQEAgLTI1Miw2ICsyODQsMzkgQEAKICAgICByZXR1cm4gdG87CiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGVuZCBuZXRzbm1wX21lbWR1cCgpICovCiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9ORVRTTk1QX0NIRUNLX0RFRklORURORVNTCisvKioKKyAqIFdoZW4gcnVubmluZyB1bmRlciBWYWxncmluZCwgY2hlY2sgd2hldGhlciBhbGwgYnl0ZXMgaW4gdGhlIHJhbmdlIFtwYWNrZXQsCisgKiBwYWNrZXQrbGVuZ3RoKSBhcmUgZGVmaW5lZC4gTGV0IFZhbGdyaW5kIHByaW50IGEgYmFja3RyYWNlIGlmIG9uZSBvciBtb3JlCisgKiBieXRlcyB3aXRoIHVuaW5pdGlhbGl6ZWQgdmFsdWVzIGhhdmUgYmVlbiBmb3VuZC4gVGhpcyBmdW5jdGlvbiBjYW4gaGVscCB0bworICogZmluZCB0aGUgY2F1c2Ugb2YgdW5kZWZpbmVkIHZhbHVlIGVycm9ycyBpZiAtLXRyYWNrLW9yaWdpbnM9eWVzIGlzIG5vdAorICogc3VmZmljaWVudC4gRG9lcyBub3RoaW5nIHdoZW4gbm90IHJ1bm5pbmcgdW5kZXIgVmFsZ3JpbmQuCisgKgorICogTm90ZTogdGhpcyByZXF1aXJlcyBhIGZhaXJseSByZWNlbnQgdmFsZ3JpbmQuCisgKi8KK3ZvaWQKK25ldHNubXBfY2hlY2tfZGVmaW5lZG5lc3MoY29uc3Qgdm9pZCAqcGFja2V0LCBzaXplX3QgbGVuZ3RoKQoreworI2lmIGRlZmluZWQoX19WQUxHUklORF9NQUpPUl9fKSAmJiBkZWZpbmVkKF9fVkFMR1JJTkRfTUlOT1JfXykgICBcCisgICAgJiYgKF9fVkFMR1JJTkRfTUFKT1JfXyA+IDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfHwgKF9fVkFMR1JJTkRfTUFKT1JfXyA9PSAzICYmIF9fVkFMR1JJTkRfTUlOT1JfXyA+PSA2KSkKKworICAgIGlmIChSVU5OSU5HX09OX1ZBTEdSSU5EKSB7CisgICAgICAgIGludCBpOworICAgICAgICBjaGFyIHZiaXRzOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKFZBTEdSSU5EX0dFVF9WQklUUygoY29uc3QgY2hhciAqKXBhY2tldCArIGksICZ2Yml0cywgMSkgPT0gMQorICAgICAgICAgICAgICAgICYmIHZiaXRzKQorICAgICAgICAgICAgICAgIFZBTEdSSU5EX1BSSU5URl9CQUNLVFJBQ0UoIlVuZGVmaW5lZDogYnl0ZSAlZC8lZCIsIGksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KWxlbmd0aCk7CisgICAgICAgIH0KKyAgICB9CisKKyNlbmRpZgorfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfTkVUU05NUF9DSEVDS19ERUZJTkVETkVTUyAqLworCiAvKiogY29waWVzIGEgKHBvc3NpYmxlKSB1bnRlcm1pbmF0ZWQgc3RyaW5nIG9mIGEgZ2l2ZW4gbGVuZ3RoIGludG8gYQogICogIG5ldyBidWZmZXIgYW5kIG51bGwgdGVybWluYXRlcyBpdCBhcyB3ZWxsIChuZXcgYnVmZmVyIE1BWSBiZSBvbmUKICAqICBieXRlIGxvbmdlciB0byBhY2NvdW50IGZvciB0aGlzICovCkBAIC0zNzAsMTEgKzQzNSwxNCBAQAogaGV4X3RvX2JpbmFyeTIoY29uc3QgdV9jaGFyICogaW5wdXQsIHNpemVfdCBsZW4sIGNoYXIgKipvdXRwdXQpCiB7CiAgICAgdV9pbnQgICAgICAgICAgIG9sZW4gPSAobGVuIC8gMikgKyAobGVuICUgMik7Ci0gICAgY2hhciAgICAgICAgICAgKnMgPSAoY2hhciAqKSBjYWxsb2MoMSwgKG9sZW4pID8gb2xlbiA6IDEpLCAqb3AgPSBzOworICAgIGNoYXIgICAgICAgICAgICpzID0gY2FsbG9jKDEsIG9sZW4gPyBvbGVuIDogMSksICpvcCA9IHM7CiAgICAgY29uc3QgdV9jaGFyICAgKmlwID0gaW5wdXQ7CiAKIAogICAgICpvdXRwdXQgPSBOVUxMOworICAgIGlmICghcykKKyAgICAgICAgZ290byBoZXhfdG9fYmluYXJ5Ml9xdWl0OworCiAgICAgKm9wID0gMDsKICAgICBpZiAobGVuICUgMikgewogICAgICAgICBpZiAoIWlzeGRpZ2l0KCppcCkpCkBAIC0zODMsNyArNDUxLDcgQEAKICAgICAgICAgaXArKzsKICAgICB9CiAKLSAgICB3aGlsZSAoaXAgLSBpbnB1dCA8IChpbnQpIGxlbikgeworICAgIHdoaWxlIChpcCA8IGlucHV0ICsgbGVuKSB7CiAgICAgICAgIGlmICghaXN4ZGlnaXQoKmlwKSkKICAgICAgICAgICAgIGdvdG8gaGV4X3RvX2JpbmFyeTJfcXVpdDsKICAgICAgICAgKm9wID0gSEVYMlZBTCgqaXApIDw8IDQ7CkBAIC04MDYsOCArODc0LDExIEBACiAKIAogLyoqCi0gKiBjcmVhdGUgYSBuZXcgdGltZSBtYXJrZXIuCi0gKiBOT1RFOiBDYWxsZXIgbXVzdCBmcmVlIHRpbWUgbWFya2VyIHdoZW4gbm8gbG9uZ2VyIG5lZWRlZC4KKyAqIENyZWF0ZSBhIG5ldyByZWFsLXRpbWUgbWFya2VyLgorICoKKyAqIFxkZXByZWNhdGVkIFVzZSBuZXRzbm1wX3NldF9tb25vdG9uaWNfbWFya2VyKCkgaW5zdGVhZC4KKyAqCisgKiBAbm90ZSBDYWxsZXIgbXVzdCBmcmVlIHRpbWUgbWFya2VyIHdoZW4gbm8gbG9uZ2VyIG5lZWRlZC4KICAqLwogbWFya2VyX3QKIGF0aW1lX25ld01hcmtlcih2b2lkKQpAQCAtODE4LDcgKzg4OSw4IEBACiB9CiAKIC8qKgotICogc2V0IGEgdGltZSBtYXJrZXIuCisgKiBTZXQgYSB0aW1lIG1hcmtlciB0byB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgcmVhbC10aW1lIGNsb2NrLgorICogXGRlcHJlY2F0ZWQgVXNlIG5ldHNubXBfc2V0X21vbm90b25pY19tYXJrZXIoKSBpbnN0ZWFkLgogICovCiB2b2lkCiBhdGltZV9zZXRNYXJrZXIobWFya2VyX3QgcG0pCkBAIC04MjksOSArOTAxLDg4IEBACiAgICAgZ2V0dGltZW9mZGF5KChzdHJ1Y3QgdGltZXZhbCAqKSBwbSwgTlVMTCk7CiB9CiAKKy8qKgorICogUXVlcnkgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIG1vbm90b25pYyBjbG9jay4KKyAqCisgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHZhbHVlIG9mIGEgbW9ub3RvbmljIGNsb2NrIGlmIHN1Y2ggYSBjbG9jayBpcyBwcm92aWRlZCBieQorICogdGhlIG9wZXJhdGluZyBzeXN0ZW0gb3IgdGhlIHdhbGwgY2xvY2sgdGltZSBpZiBubyBzdWNoIGNsb2NrIGlzIHByb3ZpZGVkIGJ5CisgKiB0aGUgb3BlcmF0aW5nIHN5c3RlbS4gQSBtb25vdG9uaWMgY2xvY2sgaXMgYSBjbG9jayB0aGF0IGlzIG5ldmVyIGFkanVzdGVkCisgKiBiYWNrd2FyZHMgYW5kIHRoYXQgcHJvY2VlZHMgYXQgdGhlIHNhbWUgcmF0ZSBhcyB3YWxsIGNsb2NrIHRpbWUuCisgKgorICogQHBhcmFtW291dF0gdHYgUG9pbnRlciB0byBtb25vdG9uaWMgY2xvY2sgdGltZS4KKyAqLwordm9pZCBuZXRzbm1wX2dldF9tb25vdG9uaWNfY2xvY2soc3RydWN0IHRpbWV2YWwqIHR2KQoreworI2lmIGRlZmluZWQoSEFWRV9DTE9DS19HRVRUSU1FKSAmJiBkZWZpbmVkKENMT0NLX01PTk9UT05JQykKKyAgICBzdHJ1Y3QgdGltZXNwZWMgdHM7CisgICAgaW50IHJlczsKKworICAgIHJlcyA9IGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmdHMpOworICAgIGlmIChyZXMgPj0gMCkgeworICAgICAgICB0di0+dHZfc2VjID0gdHMudHZfc2VjOworICAgICAgICB0di0+dHZfdXNlYyA9IHRzLnR2X25zZWMgLyAxMDAwOworICAgIH0gZWxzZSB7CisgICAgICAgIGdldHRpbWVvZmRheSh0diwgTlVMTCk7CisgICAgfQorI2VsaWYgZGVmaW5lZChXSU4zMikKKyAgICAvKgorICAgICAqIFdpbmRvd3M6IHJldHVybiB0aWNrIGNvdW50LiBOb3RlOiB0aGUgcmF0ZSBhdCB3aGljaCB0aGUgdGljayBjb3VudAorICAgICAqIGluY3JlYXNlcyBpcyBub3QgYWRqdXN0ZWQgYnkgdGhlIHRpbWUgc3luY2hyb25pemF0aW9uIGFsZ29yaXRobSwgc28KKyAgICAgKiBleHBlY3QgYW4gZXJyb3Igb2YgPD0gMTAwIHBwbSBmb3IgdGhlIHJhdGUgYXQgd2hpY2ggdGhpcyBjbG9jaworICAgICAqIGluY3JlYXNlcy4KKyAgICAgKi8KKyAgICB0eXBlZGVmIFVMT05HTE9ORyAoV0lOQVBJICogcGZHZXRUaWNrQ291bnQ2NCkodm9pZCk7CisgICAgc3RhdGljIGludCBzX2luaXRpYWxpemVkOworICAgIHN0YXRpYyBwZkdldFRpY2tDb3VudDY0IHNfcGZHZXRUaWNrQ291bnQ2NDsKKyAgICB1aW50NjRfdCBub3c2NDsKKworICAgIGlmICghc19pbml0aWFsaXplZCkgeworICAgICAgICBITU9EVUxFIGhLZXJuZWwzMiA9IEdldE1vZHVsZUhhbmRsZSgia2VybmVsMzIiKTsKKyAgICAgICAgc19wZkdldFRpY2tDb3VudDY0ID0KKyAgICAgICAgICAgIChwZkdldFRpY2tDb3VudDY0KSBHZXRQcm9jQWRkcmVzcyhoS2VybmVsMzIsICJHZXRUaWNrQ291bnQ2NCIpOworICAgICAgICBzX2luaXRpYWxpemVkID0gVFJVRTsKKyAgICB9CisKKyAgICBpZiAoc19wZkdldFRpY2tDb3VudDY0KSB7CisgICAgICAgIC8qIFdpbmRvd3MgVmlzdGEsIFdpbmRvd3MgMjAwOCBvciBhbnkgbGF0ZXIgV2luZG93cyB2ZXJzaW9uICovCisgICAgICAgIG5vdzY0ID0gKCpzX3BmR2V0VGlja0NvdW50NjQpKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLyogV2luZG93cyBYUCwgV2luZG93cyAyMDAzIG9yIGFueSBlYXJsaWVyIFdpbmRvd3MgdmVyc2lvbiAqLworICAgICAgICBzdGF0aWMgdWludDMyX3Qgc193cmFwcywgc19sYXN0OworICAgICAgICB1aW50MzJfdCBub3c7CisKKyAgICAgICAgbm93ID0gR2V0VGlja0NvdW50KCk7CisgICAgICAgIGlmIChub3cgPCBzX2xhc3QpCisgICAgICAgICAgICBzX3dyYXBzKys7CisgICAgICAgIHNfbGFzdCA9IG5vdzsKKyAgICAgICAgbm93NjQgPSAoKHVpbnQ2NF90KXNfd3JhcHMgPDwgMzIpIHwgbm93OworICAgIH0KKyAgICB0di0+dHZfc2VjID0gbm93NjQgLyAxMDAwOworICAgIHR2LT50dl91c2VjID0gKG5vdzY0ICUgMTAwMCkgKiAxMDAwOworI2Vsc2UKKyAgICAvKiBBdCBsZWFzdCBGcmVlQlNEIDQgZG9lc24ndCBwcm92aWRlIG1vbm90b25pYyBjbG9jayBzdXBwb3J0LiAqLworI3dhcm5pbmcgTm90IHN1cmUgaG93IHRvIHF1ZXJ5IGEgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGNsb2NrIG9uIHlvdXIgc3lzdGVtLiBcCitUaW1lcnMgd2lsbCBub3Qgd29yayBjb3JyZWN0bHkgaWYgdGhlIHN5c3RlbSBjbG9jayBpcyBhZGp1c3RlZCBieSBlLmcuIG50cGQuCisgICAgZ2V0dGltZW9mZGF5KHR2LCBOVUxMKTsKKyNlbmRpZgorfQorCisvKioKKyAqIFNldCBhIHRpbWUgbWFya2VyIHRvIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBtb25vdG9uaWMgY2xvY2suCisgKi8KK3ZvaWQKK25ldHNubXBfc2V0X21vbm90b25pY19tYXJrZXIobWFya2VyX3QgKnBtKQoreworICAgIGlmICghKnBtKQorICAgICAgICAqcG0gPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCB0aW1ldmFsKSk7CisgICAgaWYgKCpwbSkKKyAgICAgICAgbmV0c25tcF9nZXRfbW9ub3RvbmljX2Nsb2NrKCpwbSk7Cit9CiAKIC8qKgogICogUmV0dXJucyB0aGUgZGlmZmVyZW5jZSAoaW4gbXNlYykgYmV0d2VlbiB0aGUgdHdvIG1hcmtlcnMKKyAqCisgKiBcZGVwcmVjYXRlZCBEb24ndCB1c2UgaW4gbmV3IGNvZGUuCiAgKi8KIGxvbmcKIGF0aW1lX2RpZmYoY29uc3RfbWFya2VyX3QgZmlyc3QsIGNvbnN0X21hcmtlcl90IHNlY29uZCkKQEAgLTg0MCwxMSArOTkxLDEzIEBACiAKICAgICBORVRTTk1QX1RJTUVSU1VCKChjb25zdCBzdHJ1Y3QgdGltZXZhbCAqKSBzZWNvbmQsIChjb25zdCBzdHJ1Y3QgdGltZXZhbCAqKSBmaXJzdCwgJmRpZmYpOwogCi0gICAgcmV0dXJuIChkaWZmLnR2X3NlYyAqIDEwMDAgKyBkaWZmLnR2X3VzZWMgLyAxMDAwKTsKKyAgICByZXR1cm4gKGxvbmcpKGRpZmYudHZfc2VjICogMTAwMCArIGRpZmYudHZfdXNlYyAvIDEwMDApOwogfQogCiAvKioKICAqIFJldHVybnMgdGhlIGRpZmZlcmVuY2UgKGluIHVfbG9uZyBtc2VjKSBiZXR3ZWVuIHRoZSB0d28gbWFya2VycworICoKKyAqIFxkZXByZWNhdGVkIERvbid0IHVzZSBpbiBuZXcgY29kZS4KICAqLwogdV9sb25nCiB1YXRpbWVfZGlmZihjb25zdF9tYXJrZXJfdCBmaXJzdCwgY29uc3RfbWFya2VyX3Qgc2Vjb25kKQpAQCAtODU5LDYgKzEwMTIsOCBAQAogLyoqCiAgKiBSZXR1cm5zIHRoZSBkaWZmZXJlbmNlIChpbiB1X2xvbmcgMS8xMDB0aCBzZWNzKSBiZXR3ZWVuIHRoZSB0d28gbWFya2VycwogICogKGZ1bmN0aW9uYWxseSB0aGlzIGlzIHdoYXQgc3lzVXBUaW1lIG5lZWRzKQorICoKKyAqIFxkZXByZWNhdGVkIERvbid0IHVzZSBpbiBuZXcgY29kZS4KICAqLwogdV9sb25nCiB1YXRpbWVfaGRpZmYoY29uc3RfbWFya2VyX3QgZmlyc3QsIGNvbnN0X21hcmtlcl90IHNlY29uZCkKQEAgLTg3Miw2ICsxMDI3LDggQEAKIC8qKgogICogVGVzdDogSGFzIChtYXJrZWQgdGltZSBwbHVzIGRlbHRhKSBleGNlZWRlZCBjdXJyZW50IHRpbWUgPwogICogUmV0dXJucyAwIGlmIHRlc3QgZmFpbHMgb3IgY2Fubm90IGJlIHRlc3RlZCAobm8gbWFya2VyKS4KKyAqCisgKiBcZGVwcmVjYXRlZCBVc2UgbmV0c25tcF9yZWFkeV9tb25vdG9uaWMoKSBpbnN0ZWFkLgogICovCiBpbnQKIGF0aW1lX3JlYWR5KGNvbnN0X21hcmtlcl90IHBtLCBpbnQgZGVsdGFfbXMpCkBAIC04OTEsOSArMTA0OCwxMiBAQAogICAgIHJldHVybiAxOwogfQogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVUFUSU1FX1JFQURZCiAvKioKICAqIFRlc3Q6IEhhcyAobWFya2VkIHRpbWUgcGx1cyBkZWx0YSkgZXhjZWVkZWQgY3VycmVudCB0aW1lID8KICAqIFJldHVybnMgMCBpZiB0ZXN0IGZhaWxzIG9yIGNhbm5vdCBiZSB0ZXN0ZWQgKG5vIG1hcmtlcikuCisgKgorICogXGRlcHJlY2F0ZWQgVXNlIG5ldHNubXBfcmVhZHlfbW9ub3RvbmljKCkgaW5zdGVhZC4KICAqLwogaW50CiB1YXRpbWVfcmVhZHkoY29uc3RfbWFya2VyX3QgcG0sIHVuc2lnbmVkIGludCBkZWx0YV9tcykKQEAgLTkxMiw2ICsxMDcyLDMzIEBACiAKICAgICByZXR1cm4gMTsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1VBVElNRV9SRUFEWSAqLworCisvKioKKyAqIElzIHRoZSBjdXJyZW50IHRpbWUgcGFzdCAobWFya2VkIHRpbWUgcGx1cyBkZWx0YSkgPworICoKKyAqIEBwYXJhbVtpbl0gcG0gUG9pbnRlciB0byBtYXJrZWQgdGltZSBhcyBvYnRhaW5lZCB2aWEKKyAqICAgbmV0c25tcF9zZXRfbW9ub3RvbmljX21hcmtlcigpLgorICogQHBhcmFtW2luXSBkZWx0YV9tcyBUaW1lIGRlbHRhIGluIG1pbGxpc2Vjb25kcy4KKyAqCisgKiBAcmV0dXJuIHBtICE9IE5VTEwgJiYgbm93ID49ICgqcG0gKyBkZWx0YV9tcykKKyAqLworaW50CituZXRzbm1wX3JlYWR5X21vbm90b25pYyhjb25zdF9tYXJrZXJfdCBwbSwgaW50IGRlbHRhX21zKQoreworICAgIHN0cnVjdCB0aW1ldmFsICBub3csIGRpZmYsIGRlbHRhOworCisgICAgbmV0c25tcF9hc3NlcnQoZGVsdGFfbXMgPj0gMCk7CisgICAgaWYgKHBtKSB7CisgICAgICAgIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygmbm93KTsKKyAgICAgICAgTkVUU05NUF9USU1FUlNVQigmbm93LCAoY29uc3Qgc3RydWN0IHRpbWV2YWwgKikgcG0sICZkaWZmKTsKKyAgICAgICAgZGVsdGEudHZfc2VjID0gZGVsdGFfbXMgLyAxMDAwOworICAgICAgICBkZWx0YS50dl91c2VjID0gKGRlbHRhX21zICUgMTAwMCkgKiAxMDAwVUw7CisgICAgICAgIHJldHVybiB0aW1lcmNtcCgmZGlmZiwgJmRlbHRhLCA+PSkgPyBUUlVFIDogRkFMU0U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIEZBTFNFOworICAgIH0KK30KIAogCiAgICAgICAgIC8qCkBAIC05MTksNyArMTEwNiw5IEBACiAgICAgICAgICAqLwogCiAvKioKLSAqIFJldHVybiB0aGUgbnVtYmVyIG9mIHRpbWVUaWNrcyBzaW5jZSB0aGUgZ2l2ZW4gbWFya2VyIAorICogUmV0dXJuIHRoZSBudW1iZXIgb2YgdGltZVRpY2tzIHNpbmNlIHRoZSBnaXZlbiBtYXJrZXIKKyAqCisgKiBcZGVwcmVjYXRlZCBEb24ndCB1c2UgaW4gbmV3IGNvZGUuCiAgKi8KIGludAogbWFya2VyX3R0aWNrcyhjb25zdF9tYXJrZXJfdCBwbSkKQEAgLTkzMiwxMSArMTEyMSwxNiBAQAogICAgIHJldHVybiByZXMgLyAxMDsgICAgICAgICAgICAvKiBhdGltZV9kaWZmIHdvcmtzIGluIG1zZWMsIG5vdCBjc2VjICovCiB9CiAKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9USU1FVkFMX1RUSUNLUworLyoqCisgKiBcZGVwcmVjYXRlZCBEb24ndCB1c2UgaW4gbmV3IGNvZGUuCisgKi8KIGludAogdGltZXZhbF90dGlja3MoY29uc3Qgc3RydWN0IHRpbWV2YWwgKnR2KQogewogICAgIHJldHVybiBtYXJrZXJfdHRpY2tzKChjb25zdF9tYXJrZXJfdCkgdHYpOwogfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVElNRVZBTF9UVElDS1MgKi8KIAogLyoqCiAgKiBOb24gV2luZG93czogIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBkZXNpcmVkIGVudmlyb25tZW50IHZhcmlhYmxlICAKQEAgLTk5NSw4ICsxMTg5LDcgQEAKICAgICAgICAgICAgIE5VTEwsICAgICAgICAgICAgICAgLyogSnVzdCBnZXQgdGhlIHNpemUgKi8KICAgICAgICAgICAgICZrZXlfdmFsdWVfc2l6ZSkgPT0gRVJST1JfU1VDQ0VTUykgewogCi0gICAgICAgIGlmIChrZXlfdmFsdWUpCi0gICAgICAgICAgU05NUF9GUkVFKGtleV92YWx1ZSk7CisgICAgICAgIFNOTVBfRlJFRShrZXlfdmFsdWUpOwogCiAgICAgICAgIC8qIEFsbG9jYXRlIG1lbW9yeSBuZWVkZWQgKzEgdG8gYWxsb3cgUmVnUXVlcnlWYWx1ZUV4QSB0byBOVUxMIHRlcm1pbmF0ZSB0aGUKICAgICAgICAgICogc3RyaW5nIGRhdGEgaW4gcmVnaXN0cnkgaXMgbWlzc2luZyBvbmUgKHdoaWNoIGlzIHVubGlrZWx5KS4KQEAgLTEwMzcsOCArMTIzMCw3IEBACiAgICAgICAgICAgICBOVUxMLCAgICAgICAgICAgICAgIC8qIEp1c3QgZ2V0IHRoZSBzaXplICovCiAgICAgICAgICAgICAma2V5X3ZhbHVlX3NpemUpID09IEVSUk9SX1NVQ0NFU1MpIHsKIAotICAgICAgICBpZiAoa2V5X3ZhbHVlKQotICAgICAgICAgIFNOTVBfRlJFRShrZXlfdmFsdWUpOworICAgICAgICBTTk1QX0ZSRUUoa2V5X3ZhbHVlKTsKIAogICAgICAgICAvKiBBbGxvY2F0ZSBtZW1vcnkgbmVlZGVkICsxIHRvIGFsbG93IFJlZ1F1ZXJ5VmFsdWVFeEEgdG8gTlVMTCB0ZXJtaW5hdGUgdGhlCiAgICAgICAgICAqIHN0cmluZyBkYXRhIGluIHJlZ2lzdHJ5IGlzIG1pc3Npbmcgb25lICh3aGljaCBpcyB1bmxpa2VseSkuCkBAIC0xMTIwLDMgKzEzMTIsNjUgQEAKIAogICAgIHJldHVybiAwOwogfQorCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU1RSSU5HX1RJTUVfVE9fU0VDUworLyoqCisgKiBUYWtlcyBhIHRpbWUgc3RyaW5nIGxpa2UgNGggYW5kIGNvbnZlcnRzIGl0IHRvIHNlY29uZHMuCisgKiBUaGUgc3RyaW5nIHRpbWUgZ2l2ZW4gbWF5IGVuZCBpbiAncycgZm9yIHNlY29uZHMgKHRoZSBkZWZhdWx0CisgKiBhbnl3YXkgaWYgbm8gc3VmZml4IGlzIHNwZWNpZmllZCksCisgKiAnbScgZm9yIG1pbnV0ZXMsICdoJyBmb3IgaG91cnMsICdkJyBmb3IgZGF5cywgb3IgJ3cnIGZvciB3ZWVrcy4gIFRoZQorICogdXBwZXIgY2FzZSB2ZXJzaW9ucyBhcmUgYWxzbyBhY2NlcHRlZC4KKyAqCisgKiBAcGFyYW0gdGltZV9zdHJpbmcgVGhlIHRpbWUgc3RyaW5nIHRvIGNvbnZlcnQuCisgKgorICogQHJldHVybiBzZWNvbmRzIGNvbnZlcnRlZCBmcm9tIHRoZSBzdHJpbmcKKyAqIEByZXR1cm4gLTEgIDogb24gZmFpbHVyZQorICovCitpbnQKK25ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2Vjcyhjb25zdCBjaGFyICp0aW1lX3N0cmluZykgeworICAgIGludCBzZWNzID0gLTE7CisgICAgaWYgKCF0aW1lX3N0cmluZyB8fCAhdGltZV9zdHJpbmdbMF0pCisgICAgICAgIHJldHVybiBzZWNzOworCisgICAgc2VjcyA9IGF0b2kodGltZV9zdHJpbmcpOworCisgICAgaWYgKGlzZGlnaXQoKHVuc2lnbmVkIGNoYXIpdGltZV9zdHJpbmdbc3RybGVuKHRpbWVfc3RyaW5nKS0xXSkpCisgICAgICAgIHJldHVybiBzZWNzOyAvKiBubyBsZXR0ZXIgc3BlY2lmaWVkLCBpdCdzIGFscmVhZHkgaW4gc2Vjb25kcyAqLworICAgIAorICAgIHN3aXRjaCAodGltZV9zdHJpbmdbc3RybGVuKHRpbWVfc3RyaW5nKS0xXSkgeworICAgIGNhc2UgJ3MnOgorICAgIGNhc2UgJ1MnOgorICAgICAgICAvKiBhbHJlYWR5IGluIHNlY29uZHMgKi8KKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlICdtJzoKKyAgICBjYXNlICdNJzoKKyAgICAgICAgc2VjcyA9IHNlY3MgKiA2MDsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlICdoJzoKKyAgICBjYXNlICdIJzoKKyAgICAgICAgc2VjcyA9IHNlY3MgKiA2MCAqIDYwOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgJ2QnOgorICAgIGNhc2UgJ0QnOgorICAgICAgICBzZWNzID0gc2VjcyAqIDYwICogNjAgKiAyNDsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlICd3JzoKKyAgICBjYXNlICdXJzoKKyAgICAgICAgc2VjcyA9IHNlY3MgKiA2MCAqIDYwICogMjQgKiA3OworICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJ0aW1lIHN0cmluZyAlcyBjb250YWlucyBhbiBpbnZhbGlkIHN1ZmZpeCBsZXR0ZXJcbiIsCisgICAgICAgICAgICAgICAgIHRpbWVfc3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIERFQlVHTVNHVEwoKCJzdHJpbmdfdGltZV90b19zZWNzIiwgIkNvbnZlcnRlZCB0aW1lIHN0cmluZyAlcyB0byAlZFxuIiwKKyAgICAgICAgICAgICAgICB0aW1lX3N0cmluZywgc2VjcykpOworICAgIHJldHVybiBzZWNzOworfQorI2VuZGlmIC8qIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfU1RSSU5HX1RJTUVfVE9fU0VDUyAqLwpkaWZmIC0tZ2l0IGEvc25tcGxpYi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmMgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4uYwppbmRleCAyYjI4Y2IzLi41YWM2OWExIDEwMDY0NAotLS0gYS9zbm1wbGliL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4uYworKysgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4uYwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL2NvbmZpZ19hcGkuaD4KIAogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg+CiAKIAogb2lkIG5ldHNubXBfQUFMNVBWQ0RvbWFpblsxMF0gPSB7IE5FVFNOTVBfRU5URVJQUklTRV9NSUIsIDMsIDMsIDMgfTsKQEAgLTE3MiwxMSArMTczLDE2IEBACiB7CiAgICAgbmV0c25tcF90cmFuc3BvcnQgKnQgPSBOVUxMOwogCisjaWZkZWYgTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVAorICAgIGlmIChsb2NhbCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisjZW5kaWYgLyogTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVCAqLworCiAgICAgaWYgKGFkZHIgPT0gTlVMTCB8fCBhZGRyLT5zYXBfZmFtaWx5ICE9IEFGX0FUTVBWQykgewogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICB0ID0gKG5ldHNubXBfdHJhbnNwb3J0ICopIG1hbGxvYyhzaXplb2YobmV0c25tcF90cmFuc3BvcnQpKTsKKyAgICB0ID0gU05NUF9NQUxMT0NfVFlQRURFRihuZXRzbm1wX3RyYW5zcG9ydCk7CiAgICAgaWYgKHQgPT0gTlVMTCkgewogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CkBAIC0xODksOCArMTk1LDYgQEAKICAgICAgICAgZnJlZShzdHIpOwogICAgIH0KIAotICAgIG1lbXNldCh0LCAwLCBzaXplb2YobmV0c25tcF90cmFuc3BvcnQpKTsKLQogICAgIHQtPmRvbWFpbiA9IG5ldHNubXBfQUFMNVBWQ0RvbWFpbjsKICAgICB0LT5kb21haW5fbGVuZ3RoID0KICAgICAgICAgc2l6ZW9mKG5ldHNubXBfQUFMNVBWQ0RvbWFpbikgLyBzaXplb2YobmV0c25tcF9BQUw1UFZDRG9tYWluWzBdKTsKQEAgLTIyNCw2ICsyMjgsNyBAQAogICAgIH0KIAogICAgIGlmIChsb2NhbCkgeworI2lmbmRlZiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUCiAgICAgICAgIHQtPmxvY2FsID0gKHVuc2lnbmVkIGNoYXIqKW1hbGxvYyg4KTsKICAgICAgICAgaWYgKHQtPmxvY2FsID09IE5VTEwpIHsKICAgICAgICAgICAgIG5ldHNubXBfdHJhbnNwb3J0X2ZyZWUodCk7CkBAIC0yNDcsNiArMjUyLDkgQEAKICAgICAgICAgICAgIG5ldHNubXBfdHJhbnNwb3J0X2ZyZWUodCk7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQorI2Vsc2UgLyogTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVCAqLworICAgICAgICByZXR1cm4gTlVMTDsKKyNlbmRpZiAvKiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUICovCiAgICAgfSBlbHNlIHsKICAgICAgICAgdC0+cmVtb3RlID0gKHVuc2lnbmVkIGNoYXIqKW1hbGxvYyg4KTsKICAgICAgICAgaWYgKHQtPnJlbW90ZSA9PSBOVUxMKSB7CmRpZmYgLS1naXQgYS9zbm1wbGliL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmMgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmMKaW5kZXggMTc1YzIyOC4uOTUwMThiOCAxMDA2NDQKLS0tIGEvc25tcGxpYi90cmFuc3BvcnRzL3NubXBDYWxsYmFja0RvbWFpbi5jCisrKyBiL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4uYwpAQCAtMjg5LDEwICsyODksNyBAQAogICAgICAgICAvKgogICAgICAgICAgKiB3ZSBkb24ndCBuZWVkIHRoZSB0cmFuc3BvcnQgZGF0YSBhbnkgbW9yZSAKICAgICAgICAgICovCi0gICAgICAgIGlmICgqb3BhcXVlKSB7Ci0gICAgICAgICAgICBTTk1QX0ZSRUUoKm9wYXF1ZSk7Ci0gICAgICAgICAgICAqb3BhcXVlID0gTlVMTDsKLSAgICAgICAgfQorICAgICAgICBTTk1QX0ZSRUUoKm9wYXF1ZSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLyoKICAgICAgICAgICogd2UncmUgdGhlIHNlcnZlciwgc2VuZCBpdCB0byB0aGUgcGVyc29uIHRoYXQgc2VudCB1cyB0aGUgcmVxdWVzdCAKQEAgLTMwMSwxMCArMjk4LDcgQEAKICAgICAgICAgLyoKICAgICAgICAgICogd2UgZG9uJ3QgbmVlZCB0aGUgdHJhbnNwb3J0IGRhdGEgYW55IG1vcmUgCiAgICAgICAgICAqLwotICAgICAgICBpZiAoKm9wYXF1ZSkgewotICAgICAgICAgICAgU05NUF9GUkVFKCpvcGFxdWUpOwotICAgICAgICAgICAgKm9wYXF1ZSA9IE5VTEw7Ci0gICAgICAgIH0KKyAgICAgICAgU05NUF9GUkVFKCpvcGFxdWUpOwogICAgICAgICBvdGhlcl9zaWRlID0gZmluZF90cmFuc3BvcnRfZnJvbV9jYWxsYmFja19udW0oZnJvbSk7CiAgICAgICAgIGlmICghb3RoZXJfc2lkZSkgewogICAgICAgICAgICAgc25tcF9mcmVlX3BkdShjcC0+cGR1KTsKQEAgLTM1OSw3ICszNTMsNyBAQAogewogICAgIERFQlVHTVNHVEwoKCJ0cmFuc3BvcnRfY2FsbGJhY2siLCAiaG9va19hY2NlcHQgZW50ZXJcbiIpKTsKICAgICBERUJVR01TR1RMKCgidHJhbnNwb3J0X2NhbGxiYWNrIiwgImhvb2tfYWNjZXB0IGV4aXRcbiIpKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gLTE7CiB9CiAKIApkaWZmIC0tZ2l0IGEvc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYwppbmRleCBhNTA5MThiLi5iN2RjNzY3IDEwMDY0NAotLS0gYS9zbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYworKysgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYwpAQCAtMTgsNyArMTgsMTMgQEAKIAogI2lmZGVmIEhBVkVfTElCU1NMX0RUTFMKIAorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CisKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNlcnRfdXRpbCkKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKHNvY2thZGRyX3NpemUpCisKICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oPgogCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KQEAgLTgwLDEwICs4Niw2IEBACiAjZGVmaW5lIElOQUREUl9OT05FCS0xCiAjZW5kaWYKIAotI2lmbmRlZiBNU0dfRE9OVFdBSVQKLSNkZWZpbmUgTVNHX0RPTlRXQUlUIDAKLSNlbmRpZgotCiAjZGVmaW5lIFdFX0FSRV9TRVJWRVIgMAogI2RlZmluZSBXRV9BUkVfQ0xJRU5UIDEKIApAQCAtOTEsNiArOTMsOSBAQAogc2l6ZV90ICAgICAgICAgIG5ldHNubXBEVExTVURQRG9tYWluX2xlbiA9IE9JRF9MRU5HVEgobmV0c25tcERUTFNVRFBEb21haW4pOwogCiBzdGF0aWMgbmV0c25tcF90ZG9tYWluIGR0bHN1ZHBEb21haW47CisjaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfVURQSVBWNl9ET01BSU4KK3N0YXRpYyBpbnQgb3BlbnNzbF9hZGRyX2luZGV4NiA9IDA7CisjZW5kaWYKIAogLyogdGhpcyBzdG9yZXMgb3BlbnNzbCBjcmVkZW50aWFscyBmb3IgZWFjaCBjb25uZWN0aW9uIHNpbmNlIG9wZW5zc2wKICAgIGNhbid0IGRvIGl0IGZvciB1cyBhdCB0aGUgbW9tZW50OyBob3BlZnVsbHkgZnV0dXJlIHZlcnNpb25zIHdpbGwKQEAgLTk4LDkgKzEwMyw3IEBACiB0eXBlZGVmIHN0cnVjdCBiaW9fY2FjaGVfcyB7CiAgICBCSU8gKnJlYWRfYmlvOyAgLyogT3BlblNTTCB3aWxsIHJlYWQgaXRzIGluY29taW5nIFNTTCBwYWNrZXRzIGZyb20gaGVyZSAqLwogICAgQklPICp3cml0ZV9iaW87IC8qIE9wZW5TU0wgd2lsbCB3cml0ZSBpdHMgb3V0Z29pbmcgU1NMIHBhY2tldHMgdG8gaGVyZSAqLwotICAgc3RydWN0IHNvY2thZGRyX2luIHNvY2thZGRyOwotICAgdWludDMyX3QgaXB2NGFkZHI7Ci0gICB1X3Nob3J0IHBvcnRudW07CisgICBuZXRzbm1wX3NvY2thZGRyX3N0b3JhZ2Ugc2FzOwogICAgdV9pbnQgZmxhZ3M7CiAgICBzdHJ1Y3QgYmlvX2NhY2hlX3MgKm5leHQ7CiAgICBpbnQgbXNnbnVtOwpAQCAtMTIzLDI0ICsxMjYsMzYgQEAKIHN0YXRpYyBpbnQgbmV0c25tcF9kdGxzX2dlbl9jb29raWUoU1NMICpzc2wsIHVuc2lnbmVkIGNoYXIgKmNvb2tpZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpjb29raWVfbGVuKTsKIAotCiAvKiB0aGlzIHN0b3JlcyByZW1vdGUgY29ubmVjdGlvbnMgaW4gYSBsaXN0IHRvIHNlYXJjaCB0aHJvdWdoICovCiAvKiBYWFg6IG9wdGltaXplIGZvciBzZWFyY2hpbmcgKi8KIC8qIFhYWDogaGFuZGxlIHN0YXRlIGlzc3VlcyBmb3IgbmV3IGNvbm5lY3Rpb25zIHRvIHJlZHVjZSBET1MgaXNzdWVzICovCiAvKiAgICAgIChUTFMgc2hvdWxkIGRvIHRoaXMsIGJ1dCBvcGVuc3NsIGNhbid0IGRvIG1vcmUgdGhhbiBvbmUgY3R4IHBlciBzb2NrICovCiAvKiBYWFg6IHB1dCBhIHRpbWVyIG9uIHRoZSBjYWNoZSBmb3IgZXhwaXJhcnkgcHVycG9zZXMgKi8KLXN0YXRpYyBiaW9fY2FjaGUgKmZpbmRfYmlvX2NhY2hlKHN0cnVjdCBzb2NrYWRkcl9pbiAqZnJvbV9hZGRyKSB7CitzdGF0aWMgYmlvX2NhY2hlICpmaW5kX2Jpb19jYWNoZShuZXRzbm1wX3NvY2thZGRyX3N0b3JhZ2UgKmZyb21fYWRkcikgewogICAgIGJpb19jYWNoZSAqY2FjaGVwID0gTlVMTDsKLSAgICBjYWNoZXAgPSBiaW9jYWNoZTsKLSAgICB3aGlsZShjYWNoZXApIHsKKyAgICAKKyAgICBmb3IoY2FjaGVwID0gYmlvY2FjaGU7IGNhY2hlcDsgY2FjaGVwID0gY2FjaGVwLT5uZXh0KSB7CiAKLSAgICAgICAgaWYgKGNhY2hlcC0+aXB2NGFkZHIgPT0gZnJvbV9hZGRyLT5zaW5fYWRkci5zX2FkZHIgJiYKLSAgICAgICAgICAgIGNhY2hlcC0+cG9ydG51bSA9PSBmcm9tX2FkZHItPnNpbl9wb3J0KSB7Ci0gICAgICAgICAgICAvKiBmb3VuZCBhbiBleGlzdGluZyBjb25uZWN0aW9uICovCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgIGNhY2hlcCA9IGNhY2hlcC0+bmV4dDsKKyAgICAgICAgaWYgKGNhY2hlcC0+c2FzLnNhLnNhX2ZhbWlseSAhPSBmcm9tX2FkZHItPnNhLnNhX2ZhbWlseSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmICgoZnJvbV9hZGRyLT5zYS5zYV9mYW1pbHkgPT0gQUZfSU5FVCkgJiYKKyAgICAgICAgICAgICgoY2FjaGVwLT5zYXMuc2luLnNpbl9hZGRyLnNfYWRkciAhPQorICAgICAgICAgICAgICBmcm9tX2FkZHItPnNpbi5zaW5fYWRkci5zX2FkZHIpIHx8CisgICAgICAgICAgICAgKGNhY2hlcC0+c2FzLnNpbi5zaW5fcG9ydCAhPSBmcm9tX2FkZHItPnNpbi5zaW5fcG9ydCkpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCisgICAgICAgIGVsc2UgaWYgKChmcm9tX2FkZHItPnNhLnNhX2ZhbWlseSA9PSBBRl9JTkVUNikgJiYKKyAgICAgICAgICAgICAgICAgKChjYWNoZXAtPnNhcy5zaW42LnNpbjZfcG9ydCAhPSBmcm9tX2FkZHItPnNpbjYuc2luNl9wb3J0KSB8fAorICAgICAgICAgICAgICAgICAgKGNhY2hlcC0+c2FzLnNpbjYuc2luNl9zY29wZV9pZCAhPQorICAgICAgICAgICAgICAgICAgIGZyb21fYWRkci0+c2luNi5zaW42X3Njb3BlX2lkKSB8fAorICAgICAgICAgICAgICAgICAgKG1lbWNtcChjYWNoZXAtPnNhcy5zaW42LnNpbjZfYWRkci5zNl9hZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tX2FkZHItPnNpbjYuc2luNl9hZGRyLnM2X2FkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihmcm9tX2FkZHItPnNpbjYuc2luNl9hZGRyLnM2X2FkZHIpKSAhPSAwKSkpCisgICAgICAgICAgICBjb250aW51ZTsKKyNlbmRpZgorICAgICAgICAvKiBmb3VuZCBhbiBleGlzdGluZyBjb25uZWN0aW9uICovCisgICAgICAgIGJyZWFrOwogICAgIH0KICAgICByZXR1cm4gY2FjaGVwOwogfQpAQCAtMTkzLDcgKzIwOCw3IEBACiAKIHN0YXRpYyBiaW9fY2FjaGUgKgogc3RhcnRfbmV3X2NhY2hlZF9jb25uZWN0aW9uKG5ldHNubXBfdHJhbnNwb3J0ICp0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzb2NrYWRkcl9pbiAqcmVtb3RlX2FkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9zb2NrYWRkcl9zdG9yYWdlICpyZW1vdGVfYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgd2VfYXJlX2NsaWVudCkgewogICAgIGJpb19jYWNoZSAqY2FjaGVwID0gTlVMTDsKICAgICBfbmV0c25tcFRMU0Jhc2VEYXRhICp0bHNkYXRhOwpAQCAtMjcwLDkgKzI4NSwxNCBAQAogICAgIGNhY2hlcC0+bmV4dCA9IGJpb2NhY2hlOwogICAgIGJpb2NhY2hlID0gY2FjaGVwOwogCi0gICAgY2FjaGVwLT5pcHY0YWRkciA9IHJlbW90ZV9hZGRyLT5zaW5fYWRkci5zX2FkZHI7Ci0gICAgY2FjaGVwLT5wb3J0bnVtID0gcmVtb3RlX2FkZHItPnNpbl9wb3J0OwotICAgIG1lbWNweSgmY2FjaGVwLT5zb2NrYWRkciwgcmVtb3RlX2FkZHIsIHNpemVvZigqcmVtb3RlX2FkZHIpKTsKKyAgICBpZiAocmVtb3RlX2FkZHItPnNhLnNhX2ZhbWlseSA9PSBBRl9JTkVUKQorICAgICAgICBtZW1jcHkoJmNhY2hlcC0+c2FzLnNpbiwgJnJlbW90ZV9hZGRyLT5zaW4sIHNpemVvZihyZW1vdGVfYWRkci0+c2luKSk7CisjaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfVURQSVBWNl9ET01BSU4KKyAgICBlbHNlIGlmIChyZW1vdGVfYWRkci0+c2Euc2FfZmFtaWx5ID09IEFGX0lORVQ2KQorICAgICAgICBtZW1jcHkoJmNhY2hlcC0+c2FzLnNpbjYsICZyZW1vdGVfYWRkci0+c2luNiwgc2l6ZW9mKHJlbW90ZV9hZGRyLT5zaW42KSk7CisjZW5kaWYKKyAgICBlbHNlCisgICAgICAgIERJRUhFUkUoInVua25vd24gYWRkcmVzcyBmYW1pbHkiKTsKIAogICAgIC8qIGNyZWF0ZSBjYWNoaW5nIG1lbW9yeSBiaW9zIGZvciBPcGVuU1NMIHRvIHJlYWQgYW5kIHdyaXRlIHRvICovCiAKQEAgLTM4Niw3ICs0MDYsOCBAQAogfQogCiBzdGF0aWMgYmlvX2NhY2hlICoKLWZpbmRfb3JfY3JlYXRlX2Jpb19jYWNoZShuZXRzbm1wX3RyYW5zcG9ydCAqdCwgc3RydWN0IHNvY2thZGRyX2luICpmcm9tX2FkZHIsCitmaW5kX29yX2NyZWF0ZV9iaW9fY2FjaGUobmV0c25tcF90cmFuc3BvcnQgKnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9zb2NrYWRkcl9zdG9yYWdlICpmcm9tX2FkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHdlX2FyZV9jbGllbnQpIHsKICAgICBiaW9fY2FjaGUgKmNhY2hlcCA9IGZpbmRfYmlvX2NhY2hlKGZyb21fYWRkcik7CiAgICAgaWYgKE5VTEwgPT0gY2FjaGVwKSB7CkBAIC00MDEsNiArNDIyLDQ3IEBACiAgICAgcmV0dXJuIGNhY2hlcDsKIH0KIAorc3RhdGljIG5ldHNubXBfaW5kZXhlZF9hZGRyX3BhaXIgKgorX2V4dHJhY3RfYWRkcl9wYWlyKG5ldHNubXBfdHJhbnNwb3J0ICp0LCB2b2lkICpvcGFxdWUsIGludCBvbGVuKQoreworICAgIG5ldHNubXBfaW5kZXhlZF9hZGRyX3BhaXIgKmFkZHJfcGFpciA9IE5VTEw7CisKKyAgICBpZiAob3BhcXVlICYmIG9sZW4gPT0gc2l6ZW9mKG5ldHNubXBfdG1TdGF0ZVJlZmVyZW5jZSkpIHsKKyAgICAgICAgbmV0c25tcF90bVN0YXRlUmVmZXJlbmNlICp0bVN0YXRlUmVmID0KKyAgICAgICAgICAgIChuZXRzbm1wX3RtU3RhdGVSZWZlcmVuY2UgKikgb3BhcXVlOworCisgICAgICAgIGlmICh0bVN0YXRlUmVmLT5oYXZlX2FkZHJlc3NlcykKKyAgICAgICAgICAgIGFkZHJfcGFpciA9ICYodG1TdGF0ZVJlZi0+YWRkcmVzc2VzKTsKKyAgICB9CisgICAgaWYgKChOVUxMID09IGFkZHJfcGFpcikgJiYgKE5VTEwgIT0gdCkpIHsKKyAgICAgICAgaWYgKHQtPmRhdGEgIT0gTlVMTCAmJgorICAgICAgICAgICAgdC0+ZGF0YV9sZW5ndGggPT0gc2l6ZW9mKG5ldHNubXBfaW5kZXhlZF9hZGRyX3BhaXIpKQorICAgICAgICAgICAgYWRkcl9wYWlyID0gKG5ldHNubXBfaW5kZXhlZF9hZGRyX3BhaXIgKikgKHQtPmRhdGEpOworICAgICAgICBlbHNlIGlmICh0LT5kYXRhICE9IE5VTEwgJiYKKyAgICAgICAgICAgICAgICAgdC0+ZGF0YV9sZW5ndGggPT0gc2l6ZW9mKF9uZXRzbm1wVExTQmFzZURhdGEpKSB7CisgICAgICAgICAgICBfbmV0c25tcFRMU0Jhc2VEYXRhICp0bHNkYXRhID0gKF9uZXRzbm1wVExTQmFzZURhdGEgKikgdC0+ZGF0YTsKKyAgICAgICAgICAgIGFkZHJfcGFpciA9IChuZXRzbm1wX2luZGV4ZWRfYWRkcl9wYWlyICopICh0bHNkYXRhLT5hZGRyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBhZGRyX3BhaXI7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc29ja2FkZHIgKgorX2ZpbmRfcmVtb3RlX3NvY2thZGRyKG5ldHNubXBfdHJhbnNwb3J0ICp0LCB2b2lkICpvcGFxdWUsIGludCBvbGVuLCBpbnQgKnNvY2tsZW4pCit7CisgICAgbmV0c25tcF9pbmRleGVkX2FkZHJfcGFpciAqYWRkcl9wYWlyID0gX2V4dHJhY3RfYWRkcl9wYWlyKHQsIG9wYXF1ZSwgb2xlbik7CisgICAgc3RydWN0IHNvY2thZGRyICpzYSA9IE5VTEw7CisKKyAgICBpZiAoTlVMTCA9PSBhZGRyX3BhaXIpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgc2EgPSAmYWRkcl9wYWlyLT5yZW1vdGVfYWRkci5zYTsKKyAgICAqc29ja2xlbiA9IG5ldHNubXBfc29ja2FkZHJfc2l6ZShzYSk7CisgICAgcmV0dXJuIHNhOworfQorCisKIC8qCiAgKiBSZWFkcyBkYXRhIGZyb20gb3VyIGludGVybmFsIG9wZW5zc2wgb3V0Z29pbmcgQklPIGFuZCBzZW5kcyBhbnkKICAqIHF1ZXVlZCBwYWNrZXRzIG91dCB0aGUgVURQIHBvcnQKQEAgLTQyMSwxNyArNDgzLDE0IEBACiAgICAgICAgIERFQlVHTVNHVEwoKCJkdGxzdWRwIiwgImhhdmUgJWQgYnl0ZXMgdG8gc2VuZFxuIiwgb3V0c2l6ZSkpOwogCiAgICAgICAgIC8qIHNob3VsZCBhbHdheXMgYmUgdHJ1ZS4gKi8KLSNpZiBkZWZpbmVkKFhYWEZJWE1FKSAmJiBkZWZpbmVkKGxpbnV4KSAmJiBkZWZpbmVkKElQX1BLVElORk8pCi0gICAgICAgIC8qIFhYWDogYmVmb3JlIHRoaXMgY2FuIHdvcmssIHdlIG5lZWQgdG8gcmVtZW1iZXIgYWRkcmVzcyB3ZQotICAgICAgICAgICByZWNlaXZlZCBpdCBmcm9tIChhZGRyX3BhaXIpICovCi0gICAgICAgIHJjMiA9IG5ldHNubXBfdWRwX3NlbmR0byh0LT5zb2NrLCBhZGRyX3BhaXItPmxvY2FsX2FkZHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyX3BhaXItPmlmX2luZGV4LCBhZGRyX3BhaXItPnJlbW90ZV9hZGRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0YnVmLCBvdXRzaXplKTsKLSNlbHNlCi0gICAgICAgIHJjMiA9IHNlbmR0byh0LT5zb2NrLCBvdXRidWYsIG91dHNpemUsIDAsCi0gICAgICAgICAgICAgICAgICAgICAoc3RydWN0IHNvY2thZGRyICopJmNhY2hlcC0+c29ja2FkZHIsIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHIpKTsKLSNlbmRpZiAvKiBsaW51eCAmJiBJUF9QS1RJTkZPICovCi0KKyAgICAgICAgaW50IHNvY2tzaXplOworICAgICAgICBzdHJ1Y3Qgc29ja2FkZHIgKnNhOworICAgICAgICBzYSA9IF9maW5kX3JlbW90ZV9zb2NrYWRkcih0LCBOVUxMLCAwLCAmc29ja3NpemUpOworICAgICAgICBpZiAoTlVMTCA9PSBzYSkKKyAgICAgICAgICAgIHNhID0gJmNhY2hlcC0+c2FzLnNhOworICAgICAgICBzb2Nrc2l6ZSA9IG5ldHNubXBfc29ja2FkZHJfc2l6ZShzYSk7CisgICAgICAgIHJjMiA9IHQtPmJhc2VfdHJhbnNwb3J0LT5mX3NlbmQodCwgb3V0YnVmLCBvdXRzaXplLCAodm9pZCoqKSZzYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc29ja3NpemUpOwogICAgICAgICBpZiAocmMyID09IC0xKSB7CiAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiZmFpbGVkIHRvIHNlbmQgYSBEVExTIHNwZWNpZmljIHBhY2tldFxuIik7CiAgICAgICAgIH0KQEAgLTU0NSw3ICs2MDQsNiBAQAogICAgICAgICAgICAgICAgICAgICAgdm9pZCAqKm9wYXF1ZSwgaW50ICpvbGVuZ3RoKQogewogICAgIGludCAgICAgICAgICAgICByYyA9IC0xOwotICAgIHNvY2tsZW5fdCAgICAgICBmcm9tbGVuID0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcik7CiAgICAgbmV0c25tcF9pbmRleGVkX2FkZHJfcGFpciAqYWRkcl9wYWlyID0gTlVMTDsKICAgICBzdHJ1Y3Qgc29ja2FkZHIgKmZyb207CiAgICAgbmV0c25tcF90bVN0YXRlUmVmZXJlbmNlICp0bVN0YXRlUmVmID0gTlVMTDsKQEAgLTU3NywxNCArNjM1LDEyIEBACiAgICAgZnJvbSA9IChzdHJ1Y3Qgc29ja2FkZHIgKikgJihhZGRyX3BhaXItPnJlbW90ZV9hZGRyKTsKIAogICAgIHdoaWxlIChyYyA8IDApIHsKLSNpZiBkZWZpbmVkKGxpbnV4KSAmJiBkZWZpbmVkKElQX1BLVElORk8pCi0gICAgICAgIHNvY2tsZW5fdCBsb2NhbF9hZGRyX2xlbiA9IHNpemVvZihhZGRyX3BhaXItPmxvY2FsX2FkZHIpOwotICAgICAgICByYyA9IG5ldHNubXBfdWRwX3JlY3Zmcm9tKHQtPnNvY2ssIGJ1Ziwgc2l6ZSwgZnJvbSwgJmZyb21sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cnVjdCBzb2NrYWRkciopJihhZGRyX3BhaXItPmxvY2FsX2FkZHIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZsb2NhbF9hZGRyX2xlbiwgJihhZGRyX3BhaXItPmlmX2luZGV4KSk7Ci0jZWxzZQotICAgICAgICByYyA9IHJlY3Zmcm9tKHQtPnNvY2ssIGJ1Ziwgc2l6ZSwgTVNHX0RPTlRXQUlULCBmcm9tLCAmZnJvbWxlbik7Ci0jZW5kaWYgLyogbGludXggJiYgSVBfUEtUSU5GTyAqLworICAgICAgICBjaGFyICpvcGFxdWUgPSBOVUxMOworICAgICAgICBpbnQgb2xlbjsKKyAgICAgICAgcmMgPSB0LT5iYXNlX3RyYW5zcG9ydC0+Zl9yZWN2KHQsIGJ1Ziwgc2l6ZSwgKHZvaWQqKikmb3BhcXVlLCAmb2xlbik7CisgICAgICAgIGlmIChyYyA+IDApCisgICAgICAgICAgICBtZW1jcHkoZnJvbSwgb3BhcXVlLCBvbGVuKTsKKyAgICAgICAgU05NUF9GUkVFKG9wYXF1ZSk7CiAgICAgICAgIGlmIChyYyA8IDAgJiYgZXJybm8gIT0gRUlOVFIpIHsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC04NzcsNiArOTMzLDcgQEAKICAgICAgICAgICAgIHRsc2RhdGEtPmZsYWdzIHw9IE5FVFNOTVBfVExTQkFTRV9DRVJUX0ZQX1ZFUklGSUVEOwogICAgICAgICAgICAgREVCVUdNU0dUTCgoImR0bHN1ZHAiLCAiVmVyaWZpZWQgdGhlIHNlcnZlcidzIGNlcnRpZmljYXRlXG4iKSk7CiAgICAgICAgIH0gZWxzZSB7CisjaWZuZGVmIE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQKICAgICAgICAgICAgIC8qIHZlcmlmeSB0aGF0IHRoZSBjbGllbnQncyBjZXJ0aWZpY2F0ZSBpcyB0aGUgY29ycmVjdCBvbmUgKi8KICAgICAgICAgCiAgICAgICAgICAgICBpZiAoKHZlcmlmeXJlc3VsdCA9IG5ldHNubXBfdGxzYmFzZV92ZXJpZnlfY2xpZW50X2NlcnQodGxzZGF0YS0+c3NsLCB0bHNkYXRhKSkKQEAgLTkwMCw2ICs5NTcsOSBAQAogICAgICAgICAgICAgfQogICAgICAgICAgICAgdGxzZGF0YS0+ZmxhZ3MgfD0gTkVUU05NUF9UTFNCQVNFX0NFUlRfRlBfVkVSSUZJRUQ7CiAgICAgICAgICAgICBERUJVR01TR1RMKCgiZHRsc3VkcCIsICJWZXJpZmllZCB0aGUgY2xpZW50J3MgY2VydGlmaWNhdGVcbiIpKTsKKyNlbHNlIC8qIE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQgKi8KKyAgICAgICAgICAgIHJldHVybiBOVUxMOworI2VuZGlmIC8qIE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQgKi8KICAgICAgICAgfQogICAgIH0KIApAQCAtOTExLDcgKzk3MSw5IEBACiAgICAgfQogCiAgICAgREVCVUdJRiAoIjk6ZHRsc3VkcCIpIHsKLSAgICAgICAgY2hhciAqc3RyID0gbmV0c25tcF91ZHBfZm10YWRkcihOVUxMLCBhZGRyX3BhaXIsIHNpemVvZihuZXRzbm1wX2luZGV4ZWRfYWRkcl9wYWlyKSk7CisgICAgICAgIGNoYXIgKnN0ciA9CisgICAgICAgICAgICB0LT5iYXNlX3RyYW5zcG9ydC0+Zl9mbXRhZGRyKHQsIGFkZHJfcGFpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YobmV0c25tcF9pbmRleGVkX2FkZHJfcGFpcikpOwogICAgICAgICBERUJVR01TR1RMKCgiOTpkdGxzdWRwIiwKICAgICAgICAgICAgICAgICAgICAgInJlY3Zmcm9tIGZkICVkIGdvdCAlZCBieXRlcyAoZnJvbSAlcylcbiIsCiAgICAgICAgICAgICAgICAgICAgIHQtPnNvY2ssIHJjLCBzdHIpKTsKQEAgLTk1OSwzOSArMTAyMSwyNSBAQAogewogICAgIGludCByYyA9IC0xOwogICAgIG5ldHNubXBfaW5kZXhlZF9hZGRyX3BhaXIgKmFkZHJfcGFpciA9IE5VTEw7Ci0gICAgc3RydWN0IHNvY2thZGRyICp0byA9IE5VTEw7CiAgICAgYmlvX2NhY2hlICpjYWNoZXAgPSBOVUxMOwogICAgIG5ldHNubXBfdG1TdGF0ZVJlZmVyZW5jZSAqdG1TdGF0ZVJlZiA9IE5VTEw7CiAgICAgdV9jaGFyIG91dGJ1Zls2NTUzNV07CiAgICAgX25ldHNubXBUTFNCYXNlRGF0YSAqdGxzZGF0YSA9IE5VTEw7CisgICAgaW50IHNvY2tzaXplOworICAgIHN0cnVjdCBzb2NrYWRkciAqc2E7CiAgICAgCiAgICAgREVCVUdUUkFDRVRPSygiOTpkdGxzdWRwIik7CiAgICAgREVCVUdNU0dUTCgoImR0bHN1ZHAiLCAic2VuZGluZyAlZCBieXRlc1xuIiwgc2l6ZSkpOwogCi0gICAgLyogZGV0ZXJtaW5lIHJlbW90ZSBhZGRyZXNzZXMgKi8KLSAgICBpZiAob3BhcXVlICE9IE5VTEwgJiYgKm9wYXF1ZSAhPSBOVUxMICYmCi0gICAgICAgICpvbGVuZ3RoID09IHNpemVvZihuZXRzbm1wX3RtU3RhdGVSZWZlcmVuY2UpKSB7Ci0gICAgICAgIHRtU3RhdGVSZWYgPSAobmV0c25tcF90bVN0YXRlUmVmZXJlbmNlICopICpvcGFxdWU7Ci0KLSAgICAgICAgaWYgKHRtU3RhdGVSZWYtPmhhdmVfYWRkcmVzc2VzKQotICAgICAgICAgICAgYWRkcl9wYWlyID0gJih0bVN0YXRlUmVmLT5hZGRyZXNzZXMpOwotICAgICAgICBlbHNlIGlmICh0ICE9IE5VTEwgJiYgdC0+ZGF0YSAhPSBOVUxMICYmCi0gICAgICAgICAgICAgICAgIHQtPmRhdGFfbGVuZ3RoID09IHNpemVvZihuZXRzbm1wX2luZGV4ZWRfYWRkcl9wYWlyKSkKLSAgICAgICAgICAgIGFkZHJfcGFpciA9IChuZXRzbm1wX2luZGV4ZWRfYWRkcl9wYWlyICopICh0LT5kYXRhKTsKLSAgICAgICAgZWxzZSBpZiAodCAhPSBOVUxMICYmIHQtPmRhdGEgIT0gTlVMTCAmJgotICAgICAgICAgICAgICAgICB0LT5kYXRhX2xlbmd0aCA9PSBzaXplb2YoX25ldHNubXBUTFNCYXNlRGF0YSkpIHsKLSAgICAgICAgICAgIHRsc2RhdGEgPSAoX25ldHNubXBUTFNCYXNlRGF0YSAqKSB0LT5kYXRhOwotICAgICAgICAgICAgYWRkcl9wYWlyID0gKG5ldHNubXBfaW5kZXhlZF9hZGRyX3BhaXIgKikgKHRsc2RhdGEtPnJlbW90ZV9hZGRyKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSBpZiAodCAhPSBOVUxMICYmIHQtPmRhdGEgIT0gTlVMTCAmJgotICAgICAgICAgICAgICAgdC0+ZGF0YV9sZW5ndGggPT0gc2l6ZW9mKG5ldHNubXBfaW5kZXhlZF9hZGRyX3BhaXIpKSB7Ci0gICAgICAgIGFkZHJfcGFpciA9IChuZXRzbm1wX2luZGV4ZWRfYWRkcl9wYWlyICopICh0LT5kYXRhKTsKLSAgICB9IGVsc2UgaWYgKHQgIT0gTlVMTCAmJiB0LT5kYXRhICE9IE5VTEwgJiYKLSAgICAgICAgICAgICAgIHQtPmRhdGFfbGVuZ3RoID09IHNpemVvZihfbmV0c25tcFRMU0Jhc2VEYXRhKSkgewotICAgICAgICB0bHNkYXRhID0gKF9uZXRzbm1wVExTQmFzZURhdGEgKikgdC0+ZGF0YTsKLSAgICAgICAgYWRkcl9wYWlyID0gKG5ldHNubXBfaW5kZXhlZF9hZGRyX3BhaXIgKikgKHRsc2RhdGEtPnJlbW90ZV9hZGRyKTsKKyAgICBpZiAoTlVMTCA9PSB0IHx8IHQtPnNvY2sgPD0gMCkgeworICAgICAgICBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMoU1RBVF9UTFNUTV9TTk1QVExTVE1TRVNTSU9OSU5WQUxJRENBQ0hFUyk7CisgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJpbnZhbGlkIG5ldHNubXBfZHRsc3VkcF9zZW5kIHVzYWdlXG4iKTsKKyAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIAorICAgIC8qIGRldGVybWluZSByZW1vdGUgYWRkcmVzc2VzICovCisgICAgYWRkcl9wYWlyID0gX2V4dHJhY3RfYWRkcl9wYWlyKHQsIG9wYXF1ZSA/ICpvcGFxdWUgOiBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGVuZ3RoID8gKm9sZW5ndGggOiAwKTsKICAgICBpZiAoTlVMTCA9PSBhZGRyX3BhaXIpIHsKICAgICAgIC8qIFJGQzU5NTM6IHNlY3Rpb24gNS4yLCBzdGVwIDE6CiAgICAgICAgMSkgIElmIHRtU3RhdGVSZWZlcmVuY2UgZG9lcyBub3QgcmVmZXIgdG8gYSBjYWNoZSBjb250YWluaW5nIHZhbHVlcwpAQCAtMTAwNiwxNCArMTA1NCw2IEBACiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAKLSAgICB0byA9IChzdHJ1Y3Qgc29ja2FkZHIgKikgJihhZGRyX3BhaXItPnJlbW90ZV9hZGRyKTsKLQotICAgIGlmIChOVUxMID09IHRvIHx8IE5VTEwgPT0gdCB8fCB0LT5zb2NrIDw9IDApIHsKLSAgICAgICAgc25tcF9pbmNyZW1lbnRfc3RhdGlzdGljKFNUQVRfVExTVE1fU05NUFRMU1RNU0VTU0lPTklOVkFMSURDQUNIRVMpOwotICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiaW52YWxpZCBuZXRzbm1wX2R0bHN1ZHBfc2VuZCB1c2FnZVxuIik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0KICAgICAvKiBSRkM1OTUzOiBzZWN0aW9uIDUuMiwgc3RlcCAyOgogICAgICAgIDIpICBFeHRyYWN0IHRoZSB0bVNlc3Npb25JRCwgdG1UcmFuc3BvcnREb21haW4sIHRtVHJhbnNwb3J0QWRkcmVzcywKICAgICAgICAgICAgdG1TZWN1cml0eU5hbWUsIHRtUmVxdWVzdGVkU2VjdXJpdHlMZXZlbCwgYW5kIHRtU2FtZVNlY3VyaXR5CkBAIC0xMDI3LDYgKzEwNjcsOSBAQAogICAgICAgIC0gaWYgd2UgZG9uJ3QgaGF2ZSBhIHNlc3Npb24geWV0IChlZywgbm8gdG1TZXNzaW9uSUQgZnJvbSB0aGUKICAgICAgICAgIHNwZWNzKSB0aGVuIHdlIGNyZWF0ZSBvbmUgYXV0b21hdGljYWxseSBoZXJlLgogICAgICovCisgICAgaWYgKG9wYXF1ZSAhPSBOVUxMICYmICpvcGFxdWUgIT0gTlVMTCAmJgorICAgICAgICBvbGVuZ3RoICE9IE5VTEwgJiYgKm9sZW5ndGggPT0gc2l6ZW9mKG5ldHNubXBfdG1TdGF0ZVJlZmVyZW5jZSkpCisgICAgICAgIHRtU3RhdGVSZWYgPSAobmV0c25tcF90bVN0YXRlUmVmZXJlbmNlICopICpvcGFxdWU7CiAKIAogICAgIC8qIFJGQzU5NTM6IHNlY3Rpb24gNS4yLCBzdGVwIDM6CkBAIC0xMTA4LDcgKzExNTEsNyBAQAogICAgIH0KIAogICAgIERFQlVHSUYgKCI5OmR0bHN1ZHAiKSB7Ci0gICAgICAgIGNoYXIgKnN0ciA9IG5ldHNubXBfdWRwX2ZtdGFkZHIoTlVMTCwgKHZvaWQgKikgYWRkcl9wYWlyLAorICAgICAgICBjaGFyICpzdHIgPSB0LT5iYXNlX3RyYW5zcG9ydC0+Zl9mbXRhZGRyKHQsICh2b2lkICopIGFkZHJfcGFpciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YobmV0c25tcF9pbmRleGVkX2FkZHJfcGFpcikpOwogICAgICAgICBERUJVR01TR1RMKCgiOTpkdGxzdWRwIiwgInNlbmQgJWQgYnl0ZXMgZnJvbSAlcCB0byAlcyBvbiBmZCAlZFxuIiwKICAgICAgICAgICAgICAgICAgICAgc2l6ZSwgYnVmLCBzdHIsIHQtPnNvY2spKTsKQEAgLTExNzYsMTQgKzEyMTksOSBAQAogICAgICAgICAvKiBpbiB0aGVvcnkgYW4gb2sgdGhpbmcgKi8KICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotI2lmIGRlZmluZWQoRklYTUUpICYmIGRlZmluZWQobGludXgpICYmIGRlZmluZWQoSVBfUEtUSU5GTykKLSAgICAvKiBYWFg6IGJlZm9yZSB0aGlzIGNhbiB3b3JrLCB3ZSBuZWVkIHRvIHJlbWVtYmVyIGFkZHJlc3Mgd2UKLSAgICAgICByZWNlaXZlZCBpdCBmcm9tIChhZGRyX3BhaXIpICovCi0gICAgcmMgPSBuZXRzbm1wX3VkcGJhc2Vfc2VuZHRvKHQtPnNvY2ssICZjYWNoZXAtPnNvY2thZGRyICByZW1vdGUgIGFkZHJfcGFpciA/ICYoYWRkcl9wYWlyLT5sb2NhbF9hZGRyKSA6IE5VTEwsIHRvLCBvdXRidWYsIHJjKTsKLSNlbHNlCi0gICAgcmMgPSBzZW5kdG8odC0+c29jaywgb3V0YnVmLCByYywgMCwgKHN0cnVjdCBzb2NrYWRkciAqKSZjYWNoZXAtPnNvY2thZGRyLAotICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHIpKTsKLSNlbmRpZiAvKiBsaW51eCAmJiBJUF9QS1RJTkZPICovCisgICAgc29ja3NpemUgPSBuZXRzbm1wX3NvY2thZGRyX3NpemUoJmNhY2hlcC0+c2FzLnNhKTsKKyAgICBzYSA9ICZjYWNoZXAtPnNhcy5zYTsKKyAgICByYyA9IHQtPmJhc2VfdHJhbnNwb3J0LT5mX3NlbmQodCwgb3V0YnVmLCByYywgKHZvaWQqKikmc2EsICZzb2Nrc2l6ZSk7CiAKICAgICByZXR1cm4gcmM7CiB9CkBAIC0xMjA3LDcgKzEyNDUsNyBAQAogICAgICAgICAgICAgc25tcFRsc3RtU2Vzc2lvblNlcnZlckNsb3NlcyBjb3VudGVyIGFzIGFwcHJvcHJpYXRlLgogICAgICovCiAgICAgc25tcF9pbmNyZW1lbnRfc3RhdGlzdGljKFNUQVRfVExTVE1fU05NUFRMU1RNU0VTU0lPTkNMSUVOVENMT1NFUyk7Ci0gICAgCisKICAgICAvKiBSRkM1OTUzOiBzZWN0aW9uIDUuNCwgc3RlcCAyOgogICAgICAgICAyKSAgTG9vayB1cCB0aGUgc2Vzc2lvbiB1c2luZyB0aGUgdG1TZXNzaW9uSUQuCiAgICAgKi8KQEAgLTEyMTcsOCArMTI1NSw4IEBACiAgICAgaWYgKE5VTEwgIT0gdC0+ZGF0YSAmJiB0LT5kYXRhX2xlbmd0aCA9PSBzaXplb2YoX25ldHNubXBUTFNCYXNlRGF0YSkpIHsKICAgICAgICAgdGxzYmFzZSA9IChfbmV0c25tcFRMU0Jhc2VEYXRhICopIHQtPmRhdGE7CiAKLSAgICAgICAgaWYgKHRsc2Jhc2UtPnJlbW90ZV9hZGRyKQotICAgICAgICAgICAgY2FjaGVwID0gZmluZF9iaW9fY2FjaGUoKHN0cnVjdCBzb2NrYWRkcl9pbiAqKXRsc2Jhc2UtPnJlbW90ZV9hZGRyKTsKKyAgICAgICAgaWYgKHRsc2Jhc2UtPmFkZHIpCisgICAgICAgICAgICBjYWNoZXAgPSBmaW5kX2Jpb19jYWNoZSgmdGxzYmFzZS0+YWRkci0+cmVtb3RlX2FkZHIpOwogICAgIH0KIAogICAgIC8qIFJGQzU5NTM6IHNlY3Rpb24gNS40LCBzdGVwIDM6CkBAIC0xMjM3LDExICsxMjc1LDExIEBACiAgICAgICAgIGludCBvcGFxdWVfbGVuID0gMDsKICAgICAgICAgZmRfc2V0IHJlYWRmczsKICAgICAgICAgc3RydWN0IHRpbWV2YWwgdHY7Ci0KKyAKICAgICAgICAgREVCVUdNU0dUTCgoImR0bHN1ZHA6Y2xvc2UiLAogCQkgICAgIiUiIE5FVFNOTVBfUFJJeiAiZCBieXRlcyByZW1haW4gaW4gd3JpdGVfY2FjaGVcbiIsCiAgICAgICAgICAgICAgICAgICAgIGNhY2hlcC0+d3JpdGVfY2FjaGVfbGVuKSk7Ci0KKyAKICAgICAgICAgLyoKICAgICAgICAgICogaWYgbmVnb3RpYXRpb25zIGhhdmUgY29tcGxldGVkIGFuZCB3ZSd2ZSByZWNlaXZlZCBkYXRhLCB0cnkgYW5kCiAgICAgICAgICAqIHNlbmQgYW55IHF1ZXVlZCBwYWNrZXRzLgpAQCAtMTI1OCw3ICsxMjk2LDcgQEAKICAgICAgICAgICAgICAgICBfbmV0c25tcF9iaW9fdHJ5X2FuZF93cml0ZV9idWZmZXJlZCh0LCBjYWNoZXApOwogICAgICAgICAgICAgICAgIGlmIChjYWNoZXAtPndyaXRlX2NhY2hlX2xlbiA9PSAwKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKLQorIAogICAgICAgICAgICAgICAgIC8qIGlmIHdlJ3ZlIGZhaWxlZCB0aGF0LCB3ZSBwcm9iYWJseSBuZWVkIHRvIHdhaXQgZm9yIHBhY2tldHMgKi8KICAgICAgICAgICAgICAgICBGRF9aRVJPKCZyZWFkZnMpOwogICAgICAgICAgICAgICAgIEZEX1NFVCh0LT5zb2NrLCAmcmVhZGZzKTsKQEAgLTEzMDgsNiArMTM0NiwxMyBAQAogY2hhciAqCiBuZXRzbm1wX2R0bHN1ZHBfZm10YWRkcihuZXRzbm1wX3RyYW5zcG9ydCAqdCwgdm9pZCAqZGF0YSwgaW50IGxlbikKIHsKKyAgICBpbnQgICAgICAgICAgICAgIHNhX2xlbjsKKyAgICBzdHJ1Y3Qgc29ja2FkZHIgKnNhID0gX2ZpbmRfcmVtb3RlX3NvY2thZGRyKHQsIGRhdGEsIGxlbiwgJnNhX2xlbik7CisgICAgaWYgKHNhKSB7CisgICAgICAgIGRhdGEgPSBzYTsKKyAgICAgICAgbGVuID0gc2FfbGVuOworICAgIH0KKwogICAgIHJldHVybiBuZXRzbm1wX2lwdjRfZm10YWRkcigiRFRMU1VEUCIsIHQsIGRhdGEsIGxlbik7CiB9CiAKQEAgLTEzMTcsNDYgKzEzNjIsNDQgQEAKICAqIHRoZSByZW1vdGUgYWRkcmVzcyB0byBzZW5kIHRoaW5ncyB0by4gIAogICovCiAKLW5ldHNubXBfdHJhbnNwb3J0ICoKLW5ldHNubXBfZHRsc3VkcF90cmFuc3BvcnQoc3RydWN0IHNvY2thZGRyX2luICphZGRyLCBpbnQgbG9jYWwpCitzdGF0aWMgbmV0c25tcF90cmFuc3BvcnQgKgorX3RyYW5zcG9ydF9jb21tb24obmV0c25tcF90cmFuc3BvcnQgKnQsIGludCBsb2NhbCkKIHsKLSAgICBuZXRzbm1wX3RyYW5zcG9ydCAqdCA9IE5VTEw7CisgICAgY2hhciAqdG1wID0gTlVMTDsKKyAgICBpbnQgdG1wX2xlbjsKIAogICAgIERFQlVHVFJBQ0VUT0soIjk6ZHRsc3VkcCIpOwogCi0gICAgdCA9IG5ldHNubXBfdWRwaXB2NGJhc2VfdHJhbnNwb3J0KGFkZHIsIGxvY2FsKTsKICAgICBpZiAoTlVMTCA9PSB0KQogICAgICAgICByZXR1cm4gTlVMTDsKIAorICAgIC8qKiBzYXZlIGJhc2UgdHJhbnNwb3J0IGZvciBjbGllbnRzOyBuZWVkIGluIHNlbmQvcmVjdiBmdW5jdGlvbnMgbGF0ZXIgKi8KKyAgICBpZiAodC0+ZGF0YSkgeyAvKiBkb24ndCBjb3B5IGRhdGEgKi8KKyAgICAgICAgdG1wID0gdC0+ZGF0YTsKKyAgICAgICAgdG1wX2xlbiA9IHQtPmRhdGFfbGVuZ3RoOworICAgICAgICB0LT5kYXRhID0gTlVMTDsKKyAgICB9CisgICAgdC0+YmFzZV90cmFuc3BvcnQgPSBuZXRzbm1wX3RyYW5zcG9ydF9jb3B5KHQpOworCisgICAgaWYgKHRtcCkgeworICAgICAgICB0LT5kYXRhID0gdG1wOworICAgICAgICB0LT5kYXRhX2xlbmd0aCA9IHRtcF9sZW47CisgICAgfQogICAgIGlmIChOVUxMICE9IHQtPmRhdGEgJiYKICAgICAgICAgdC0+ZGF0YV9sZW5ndGggPT0gc2l6ZW9mKG5ldHNubXBfaW5kZXhlZF9hZGRyX3BhaXIpKSB7CiAgICAgICAgIF9uZXRzbm1wVExTQmFzZURhdGEgKnRsc2RhdGEgPQogICAgICAgICAgICAgbmV0c25tcF90bHNiYXNlX2FsbG9jYXRlX3Rsc2RhdGEodCwgbG9jYWwpOwotICAgICAgICB0bHNkYXRhLT5yZW1vdGVfYWRkciA9IHQtPmRhdGE7CisgICAgICAgIHRsc2RhdGEtPmFkZHIgPSB0LT5kYXRhOwogICAgICAgICB0LT5kYXRhID0gdGxzZGF0YTsKICAgICAgICAgdC0+ZGF0YV9sZW5ndGggPSBzaXplb2YoX25ldHNubXBUTFNCYXNlRGF0YSk7CiAgICAgfQogCi0gICAgaWYgKCFsb2NhbCkgewotICAgICAgICAvKiBkdGxzIG5lZWRzIHRvIGJpbmQgdGhlIHNvY2tldCBmb3IgU1NMX3dyaXRlIHRvIHdvcmsgKi8KLSAgICAgICAgaWYgKGNvbm5lY3QodC0+c29jaywgKHN0cnVjdCBzb2NrYWRkciAqKSBhZGRyLCBzaXplb2YoKmFkZHIpKSA9PSAtMSkKLSAgICAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJkdGxzOiBmYWlsZWQgdG8gY29ubmVjdFxuIik7Ci0gICAgfQotCi0gICAgLyogWFhYOiBQb3RlbnRpYWxseSBzZXQgc29jayBvcHRzIGhlcmUgKFNPX1NOREJVRi9TT19SQ1ZfQlVGKSAqLyAgICAgIAotICAgIC8qIFhYWDogYW5kIGJ1ZiBzaXplICovICAgICAgICAKLQogICAgIC8qCiAgICAgICogU2V0IERvbWFpbgogICAgICAqLwogICAgIHQtPmRvbWFpbiA9IG5ldHNubXBEVExTVURQRG9tYWluOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICB0LT5kb21haW5fbGVuZ3RoID0gbmV0c25tcERUTFNVRFBEb21haW5fbGVuOyAgICAgCiAKLSAgICAvKgotICAgICAqIDE2LWJpdCBsZW5ndGggZmllbGQsIDggYnl0ZSBEVExTIGhlYWRlciwgMjAgYnl0ZSBJUHY0IGhlYWRlciAgCi0gICAgICovCi0gICAgdC0+bXNnTWF4U2l6ZSAgICAgID0gMHhmZmZmIC0gOCAtIDIwOwotCiAgICAgdC0+Zl9yZWN2ICAgICAgICAgID0gbmV0c25tcF9kdGxzdWRwX3JlY3Y7CiAgICAgdC0+Zl9zZW5kICAgICAgICAgID0gbmV0c25tcF9kdGxzdWRwX3NlbmQ7CiAgICAgdC0+Zl9jbG9zZSAgICAgICAgID0gbmV0c25tcF9kdGxzdWRwX2Nsb3NlOwpAQCAtMTM3MCwyOSArMTQxMywxMDAgQEAKICAgICByZXR1cm4gdDsKIH0KIAotCi12b2lkCi1uZXRzbm1wX2R0bHN1ZHBfYWdlbnRfY29uZmlnX3Rva2Vuc19yZWdpc3Rlcih2b2lkKQorbmV0c25tcF90cmFuc3BvcnQgKgorbmV0c25tcF9kdGxzdWRwX3RyYW5zcG9ydChzdHJ1Y3Qgc29ja2FkZHJfaW4gKmFkZHIsIGludCBsb2NhbCkKIHsKKyAgICBuZXRzbm1wX3RyYW5zcG9ydCAqdCA9IE5VTEw7CisKKyAgICBERUJVR1RSQUNFVE9LKCJkdGxzdWRwIik7CisKKyAgICB0ID0gbmV0c25tcF91ZHBfdHJhbnNwb3J0KGFkZHIsIGxvY2FsKTsKKyAgICBpZiAoTlVMTCA9PSB0KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIF90cmFuc3BvcnRfY29tbW9uKHQsIGxvY2FsKTsKKworICAgIGlmICghbG9jYWwpIHsKKyAgICAgICAgLyogZHRscyBuZWVkcyB0byBiaW5kIHRoZSBzb2NrZXQgZm9yIFNTTF93cml0ZSB0byB3b3JrICovCisgICAgICAgIGlmIChjb25uZWN0KHQtPnNvY2ssIChzdHJ1Y3Qgc29ja2FkZHIgKikgYWRkciwgc2l6ZW9mKCphZGRyKSkgPT0gLTEpCisgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiZHRsczogZmFpbGVkIHRvIGNvbm5lY3RcbiIpOworICAgIH0KKworICAgIHJldHVybiB0OwogfQogCiAKKyNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBJUFY2X0RPTUFJTgorCitjaGFyICoKK25ldHNubXBfZHRsc3VkcDZfZm10YWRkcihuZXRzbm1wX3RyYW5zcG9ydCAqdCwgdm9pZCAqZGF0YSwgaW50IGxlbikKK3sKKyAgICBpbnQgICAgICAgICAgICAgIHNhX2xlbjsKKyAgICBzdHJ1Y3Qgc29ja2FkZHIgKnNhID0gX2ZpbmRfcmVtb3RlX3NvY2thZGRyKHQsIGRhdGEsIGxlbiwgJnNhX2xlbik7CisgICAgaWYgKHNhKSB7CisgICAgICAgIGRhdGEgPSBzYTsKKyAgICAgICAgbGVuID0gc2FfbGVuOworICAgIH0KKworICAgIHJldHVybiBuZXRzbm1wX2lwdjZfZm10YWRkcigiRFRMU1VEUDYiLCB0LCBkYXRhLCBsZW4pOworfQorCisvKgorICogT3BlbiBhIERUTFMtYmFzZWQgdHJhbnNwb3J0IGZvciBTTk1QLiAgTG9jYWwgaXMgVFJVRSBpZiBhZGRyIGlzIHRoZSBsb2NhbAorICogYWRkcmVzcyB0byBiaW5kIHRvIChpLmUuIHRoaXMgaXMgYSBzZXJ2ZXItdHlwZSBzZXNzaW9uKTsgb3RoZXJ3aXNlIGFkZHIgaXMgCisgKiB0aGUgcmVtb3RlIGFkZHJlc3MgdG8gc2VuZCB0aGluZ3MgdG8uICAKKyAqLworCituZXRzbm1wX3RyYW5zcG9ydCAqCituZXRzbm1wX2R0bHN1ZHA2X3RyYW5zcG9ydChzdHJ1Y3Qgc29ja2FkZHJfaW42ICphZGRyLCBpbnQgbG9jYWwpCit7CisgICAgbmV0c25tcF90cmFuc3BvcnQgKnQgPSBOVUxMOworCisgICAgREVCVUdUUkFDRVRPSygiZHRsc3VkcCIpOworCisgICAgdCA9IG5ldHNubXBfdWRwNl90cmFuc3BvcnQoYWRkciwgbG9jYWwpOworICAgIGlmIChOVUxMID09IHQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgX3RyYW5zcG9ydF9jb21tb24odCwgbG9jYWwpOworCisgICAgaWYgKCFsb2NhbCkgeworICAgICAgICAvKiBkdGxzIG5lZWRzIHRvIGJpbmQgdGhlIHNvY2tldCBmb3IgU1NMX3dyaXRlIHRvIHdvcmsgKi8KKyAgICAgICAgaWYgKGNvbm5lY3QodC0+c29jaywgKHN0cnVjdCBzb2NrYWRkciAqKSBhZGRyLCBzaXplb2YoKmFkZHIpKSA9PSAtMSkKKyAgICAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJkdGxzOiBmYWlsZWQgdG8gY29ubmVjdFxuIik7CisgICAgfQorCisgICAgLyogWFhYOiBQb3RlbnRpYWxseSBzZXQgc29jayBvcHRzIGhlcmUgKFNPX1NOREJVRi9TT19SQ1ZfQlVGKSAqLyAgICAgIAorICAgIC8qIFhYWDogYW5kIGJ1ZiBzaXplICovICAgICAgICAKKworICAgIHQtPmZfZm10YWRkciAgICAgICA9IG5ldHNubXBfZHRsc3VkcDZfZm10YWRkcjsKKworICAgIHJldHVybiB0OworfQorI2VuZGlmCiAKIAogbmV0c25tcF90cmFuc3BvcnQgKgogbmV0c25tcF9kdGxzdWRwX2NyZWF0ZV90c3RyaW5nKGNvbnN0IGNoYXIgKnN0ciwgaW50IGlzc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmRlZmF1bHRfdGFyZ2V0KQogeworI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCisgICAgc3RydWN0IHNvY2thZGRyX2luNiBhZGRyNjsKKyNlbmRpZgogICAgIHN0cnVjdCBzb2NrYWRkcl9pbiBhZGRyOwogICAgIG5ldHNubXBfdHJhbnNwb3J0ICp0OwogICAgIF9uZXRzbm1wVExTQmFzZURhdGEgKnRsc2RhdGE7CiAgICAgY2hhciBidWZbU1BSSU5UX01BWF9MRU5dLCAqY3A7CiAKLSAgICBpZiAobmV0c25tcF9zb2NrYWRkcl9pbjIoJmFkZHIsIHN0ciwgZGVmYXVsdF90YXJnZXQpKSB7CisgICAgaWYgKG5ldHNubXBfc29ja2FkZHJfaW4yKCZhZGRyLCBzdHIsIGRlZmF1bHRfdGFyZ2V0KSkKICAgICAgICAgdCA9IG5ldHNubXBfZHRsc3VkcF90cmFuc3BvcnQoJmFkZHIsIGlzc2VydmVyKTsKLSAgICB9IGVsc2UgeworI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCisgICAgZWxzZSBpZiAobmV0c25tcF9zb2NrYWRkcl9pbjZfMigmYWRkcjYsIHN0ciwgZGVmYXVsdF90YXJnZXQpKQorICAgICAgICB0ID0gbmV0c25tcF9kdGxzdWRwNl90cmFuc3BvcnQoJmFkZHI2LCBpc3NlcnZlcik7CisjZW5kaWYKKyAgICBlbHNlCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KKwogCiAgICAgLyogc2VlIGlmIHdlIGNhbiBleHRyYWN0IHRoZSByZW1vdGUgaG9zdG5hbWUgKi8KICAgICBpZiAoIWlzc2VydmVyICYmIHQgJiYgdC0+ZGF0YSAmJiBzdHIpIHsKQEAgLTE0MjMsNiArMTUzNywxNiBAQAogICAgICAgICBhZGRyLnNpbl9wb3J0ID0gaHRvbnMocG9ydHRtcCk7CiAgICAgICAgIHJldHVybiBuZXRzbm1wX2R0bHN1ZHBfdHJhbnNwb3J0KCZhZGRyLCBsb2NhbCk7CiAgICAgfQorI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCisgICAgZWxzZSBpZiAob19sZW4gPT0gMTgpIHsKKyAgICAgICAgc3RydWN0IHNvY2thZGRyX2luNiBhZGRyNjsKKyAgICAgICAgdW5zaWduZWQgc2hvcnQgcG9ydHRtcCA9IChvWzE2XSA8PCA4KSArIG9bMTddOworICAgICAgICBhZGRyNi5zaW42X2ZhbWlseSA9IEFGX0lORVQ2OworICAgICAgICBtZW1jcHkoKHVfY2hhciAqKSAmIChhZGRyNi5zaW42X2FkZHIuczZfYWRkciksIG8sIDQpOworICAgICAgICBhZGRyNi5zaW42X3BvcnQgPSBodG9ucyhwb3J0dG1wKTsKKyAgICAgICAgcmV0dXJuIG5ldHNubXBfZHRsc3VkcDZfdHJhbnNwb3J0KCZhZGRyNiwgbG9jYWwpOworICAgIH0KKyNlbmRpZgogICAgIHJldHVybiBOVUxMOwogfQogCkBAIC0xNDMwLDE2ICsxNTU0LDMyIEBACiBuZXRzbm1wX2R0bHN1ZHBfY3Rvcih2b2lkKQogewogICAgIGNoYXIgaW5kZXhuYW1lW10gPSAiX25ldHNubXBfYWRkcl9pbmZvIjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciAqcHJlZml4ZXNbXSA9IHsgImR0bHN1ZHAiLCAiZHRscyIKKyNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBJUFY2X0RPTUFJTgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICJkdGxzdWRwNiIsICJkdGxzNiIKKyNlbmRpZgorICAgIH07CisgICAgaW50IGksIG51bV9wcmVmaXhlcyA9IHNpemVvZihwcmVmaXhlcykgLyBzaXplb2YoY2hhciAqKTsKKyNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBJUFY2X0RPTUFJTgorICAgIGNoYXIgaW5kZXhuYW1lNltdID0gIl9uZXRzbm1wX2FkZHJfaW5mbzYiOworI2VuZGlmCiAKICAgICBERUJVR01TR1RMKCgiZHRsc3VkcCIsICJyZWdpc3RlcmluZyBEVExTIGNvbnN0cnVjdG9yXG4iKSk7CiAKICAgICAvKiBjb25maWcgc2V0dGluZ3MgKi8KIAorI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCisgICAgaWYgKCFvcGVuc3NsX2FkZHJfaW5kZXg2KQorICAgICAgICBvcGVuc3NsX2FkZHJfaW5kZXg2ID0KKyAgICAgICAgICAgIFNTTF9nZXRfZXhfbmV3X2luZGV4KDAsIGluZGV4bmFtZTYsIE5VTEwsIE5VTEwsIE5VTEwpOworI2VuZGlmCisKICAgICBkdGxzdWRwRG9tYWluLm5hbWUgPSBuZXRzbm1wRFRMU1VEUERvbWFpbjsKICAgICBkdGxzdWRwRG9tYWluLm5hbWVfbGVuZ3RoID0gbmV0c25tcERUTFNVRFBEb21haW5fbGVuOwotICAgIGR0bHN1ZHBEb21haW4ucHJlZml4ID0gKGNvbnN0IGNoYXIqKiljYWxsb2MoMywgc2l6ZW9mKGNoYXIgKikpOwotICAgIGR0bHN1ZHBEb21haW4ucHJlZml4WzBdID0gImR0bHN1ZHAiOwotICAgIGR0bHN1ZHBEb21haW4ucHJlZml4WzFdID0gImR0bHMiOworICAgIGR0bHN1ZHBEb21haW4ucHJlZml4ID0gKGNvbnN0IGNoYXIqKiljYWxsb2MobnVtX3ByZWZpeGVzICsgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihjaGFyICopKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3ByZWZpeGVzOyArKyBpKQorICAgICAgICBkdGxzdWRwRG9tYWluLnByZWZpeFtpXSA9IHByZWZpeGVzW2ldOwogCiAgICAgZHRsc3VkcERvbWFpbi5mX2NyZWF0ZV9mcm9tX3RzdHJpbmcgICAgID0gTlVMTDsKICAgICBkdGxzdWRwRG9tYWluLmZfY3JlYXRlX2Zyb21fdHN0cmluZ19uZXcgPSBuZXRzbm1wX2R0bHN1ZHBfY3JlYXRlX3RzdHJpbmc7CkBAIC0xNDYzLDYgKzE2MDMsOSBAQAogdHlwZWRlZiB1bmlvbiB7CiAgICAgICAgc3RydWN0IHNvY2thZGRyIHNhOwogICAgICAgIHN0cnVjdCBzb2NrYWRkcl9pbiBzNDsKKyNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBJUFY2X0RPTUFJTgorICAgICAgIHN0cnVjdCBzb2NrYWRkcl9pbjYgczY7CisjZW5kaWYKIH0gX3BlZXJfdW5pb247CiAKIGludCBuZXRzbm1wX2R0bHNfZ2VuX2Nvb2tpZShTU0wgKnNzbCwgdW5zaWduZWQgY2hhciAqY29va2llLApAQCAtMTQ5MCw3ICsxNjMzLDcgQEAKICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgImR0bHM6IGZhaWxlZCB0byBnZXQgdGhlIHBlZXIgYWRkcmVzc1xuIik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICBwZWVyID0gKF9wZWVyX3VuaW9uICopJmNhY2hlcC0+c29ja2FkZHI7CisgICAgcGVlciA9IChfcGVlcl91bmlvbiAqKSZjYWNoZXAtPnNhczsKIAogICAgIC8qIENyZWF0ZSBidWZmZXIgd2l0aCBwZWVyJ3MgYWRkcmVzcyBhbmQgcG9ydCAqLwogICAgIGxlbmd0aCA9IDA7CkBAIC0xNDk5LDYgKzE2NDIsMTIgQEAKICAgICAgICAgbGVuZ3RoICs9IHNpemVvZihzdHJ1Y3QgaW5fYWRkcik7CiAgICAgICAgIGxlbmd0aCArPSBzaXplb2YocGVlci0+czQuc2luX3BvcnQpOwogICAgICAgICBicmVhazsKKyNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBJUFY2X0RPTUFJTgorICAgIGNhc2UgQUZfSU5FVDY6CisgICAgICAgIGxlbmd0aCArPSBzaXplb2Yoc3RydWN0IGluNl9hZGRyKTsKKyAgICAgICAgbGVuZ3RoICs9IHNpemVvZihwZWVyLT5zNi5zaW42X3BvcnQpOworICAgICAgICBicmVhazsKKyNlbmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJkdGxzIGdlbmVyYXRpbmcgY29va2llOiB1bmtub3duIGZhbWlseTogJWRcbiIsCiAgICAgICAgICAgICAgICAgIHBlZXItPnNhLnNhX2ZhbWlseSk7CkBAIC0xNTE5LDYgKzE2NjgsMTYgQEAKICAgICAgICAgICAgICAgICZwZWVyLT5zNC5zaW5fYWRkciwKICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgaW5fYWRkcikpOwogICAgICAgICBicmVhazsKKyNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBJUFY2X0RPTUFJTgorICAgIGNhc2UgQUZfSU5FVDY6CisgICAgICAgIG1lbWNweShidWZmZXIsCisgICAgICAgICAgICAgICAmcGVlci0+czYuc2luNl9wb3J0LAorICAgICAgICAgICAgICAgc2l6ZW9mKHBlZXItPnM2LnNpbjZfcG9ydCkpOworICAgICAgICBtZW1jcHkoYnVmZmVyICsgc2l6ZW9mKHBlZXItPnM2LnNpbjZfcG9ydCksCisgICAgICAgICAgICAgICAmcGVlci0+czYuc2luNl9hZGRyLAorICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpbjZfYWRkcikpOworICAgICAgICBicmVhazsKKyNlbmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJkdGxzOiB1bmtub3duIGFkZHJlc3MgZmFtaWx5IGdlbmVyYXRpbmcgYSBjb29raWVcbiIpOwogICAgICAgICByZXR1cm4gMDsKQEAgLTE1NTYsNyArMTcxNSw3IEBACiAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJkdGxzOiBmYWlsZWQgdG8gZ2V0IHRoZSBwZWVyIGFkZHJlc3NcbiIpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgcGVlciA9IChfcGVlcl91bmlvbiAqKSZjYWNoZXAtPnNvY2thZGRyOworICAgIHBlZXIgPSAoX3BlZXJfdW5pb24gKikmY2FjaGVwLT5zYXM7CiAKICAgICAvKiBDcmVhdGUgYnVmZmVyIHdpdGggcGVlcidzIGFkZHJlc3MgYW5kIHBvcnQgKi8KICAgICBsZW5ndGggPSAwOwpAQCAtMTU2NSw2ICsxNzI0LDEyIEBACiAgICAgICAgIGxlbmd0aCArPSBzaXplb2Yoc3RydWN0IGluX2FkZHIpOwogICAgICAgICBsZW5ndGggKz0gc2l6ZW9mKHBlZXItPnM0LnNpbl9wb3J0KTsKICAgICAgICAgYnJlYWs7CisjaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfVURQSVBWNl9ET01BSU4KKyAgICBjYXNlIEFGX0lORVQ2OgorICAgICAgICBsZW5ndGggKz0gc2l6ZW9mKHN0cnVjdCBpbjZfYWRkcik7CisgICAgICAgIGxlbmd0aCArPSBzaXplb2YocGVlci0+czYuc2luNl9wb3J0KTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICBkZWZhdWx0OgogICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLAogICAgICAgICAgICAgICAgICAiZHRsczogdW5rbm93biBhZGRyZXNzIGZhbWlseSAlZCBnZW5lcmF0aW5nIGEgY29va2llXG4iLApAQCAtMTU4Niw2ICsxNzUxLDE2IEBACiAgICAgICAgICAgICAgICAmcGVlci0+czQuc2luX2FkZHIsCiAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IGluX2FkZHIpKTsKICAgICAgICAgYnJlYWs7CisjaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfVURQSVBWNl9ET01BSU4KKyAgICBjYXNlIEFGX0lORVQ2OgorICAgICAgICBtZW1jcHkoYnVmZmVyLAorICAgICAgICAgICAgICAgJnBlZXItPnM2LnNpbjZfcG9ydCwKKyAgICAgICAgICAgICAgIHNpemVvZihwZWVyLT5zNi5zaW42X3BvcnQpKTsKKyAgICAgICAgbWVtY3B5KGJ1ZmZlciArIHNpemVvZihwZWVyLT5zNi5zaW42X3BvcnQpLAorICAgICAgICAgICAgICAgJnBlZXItPnM2LnNpbjZfYWRkciwKKyAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgaW42X2FkZHIpKTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICBkZWZhdWx0OgogICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLAogICAgICAgICAgICAgICAgICAiZHRsczogdW5rbm93biBhZGRyZXNzIGZhbWlseSAlZCBnZW5lcmF0aW5nIGEgY29va2llXG4iLApkaWZmIC0tZ2l0IGEvc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4uYyBiL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmMKaW5kZXggZmRjODA3MS4uMTM0NjE1NiAxMDA2NDQKLS0tIGEvc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4uYworKysgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5jCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvY29uZmlnX2FwaS5oPgogCiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaD4KIAogI2RlZmluZSBTTk1QX0lQWF9ERUZBVUxUX1BPUlQJMzY4NzkgICAvKiAgU3BlY2lmaWVkIGluIFJGQyAxNDIwLiAgKi8KIHN0YXRpYyBuZXRzbm1wX3Rkb21haW4gaXB4RG9tYWluOwpAQCAtMTgyLDExICsxODMsMTYgQEAKICAgICBuZXRzbm1wX3RyYW5zcG9ydCAqdCA9IE5VTEw7CiAgICAgaW50ICAgICAgICAgICAgIHJjID0gMDsKIAorI2lmZGVmIE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQKKyAgICBpZiAobG9jYWwpCisgICAgICAgIHJldHVybiBOVUxMOworI2VuZGlmIC8qIE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQgKi8KKwogICAgIGlmIChhZGRyID09IE5VTEwgfHwgYWRkci0+c2lweF9mYW1pbHkgIT0gQUZfSVBYKSB7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAotICAgIHQgPSAobmV0c25tcF90cmFuc3BvcnQgKikgbWFsbG9jKHNpemVvZihuZXRzbm1wX3RyYW5zcG9ydCkpOworICAgIHQgPSBTTk1QX01BTExPQ19UWVBFREVGKG5ldHNubXBfdHJhbnNwb3J0KTsKICAgICBpZiAodCA9PSBOVUxMKSB7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KQEAgLTE5OSw4ICsyMDUsNiBAQAogICAgICAgICBmcmVlKHN0cik7CiAgICAgfQogCi0gICAgbWVtc2V0KHQsIDAsIHNpemVvZihuZXRzbm1wX3RyYW5zcG9ydCkpOwotCiAgICAgdC0+ZG9tYWluID0gbmV0c25tcElQWERvbWFpbjsKICAgICB0LT5kb21haW5fbGVuZ3RoID0gbmV0c25tcElQWERvbWFpbl9sZW47CiAKQEAgLTIxMSw2ICsyMTUsNyBAQAogICAgIH0KIAogICAgIGlmIChsb2NhbCkgeworI2lmbmRlZiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUCiAgICAgICAgIHQtPmxvY2FsID0gKHVuc2lnbmVkIGNoYXIqKW1hbGxvYygxMik7CiAgICAgICAgIGlmICh0LT5sb2NhbCA9PSBOVUxMKSB7CiAgICAgICAgICAgICBuZXRzbm1wX3RyYW5zcG9ydF9mcmVlKHQpOwpAQCAtMjM2LDYgKzI0MSw5IEBACiAgICAgICAgIH0KICAgICAgICAgdC0+ZGF0YSA9IE5VTEw7CiAgICAgICAgIHQtPmRhdGFfbGVuZ3RoID0gMDsKKyNlbHNlIC8qIE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQgKi8KKyAgICAgICAgcmV0dXJuIE5VTEw7CisjZW5kaWYgLyogTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVCAqLwogICAgIH0gZWxzZSB7CiAgICAgICAgIHQtPnJlbW90ZSA9ICh1bnNpZ25lZCBjaGFyKiltYWxsb2MoMTIpOwogICAgICAgICBpZiAodC0+cmVtb3RlID09IE5VTEwpIHsKZGlmZiAtLWdpdCBhL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYyBiL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYwppbmRleCA5ZjRiNmE5Li4wNWUxNTBiIDEwMDY0NAotLS0gYS9zbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMKKysrIGIvc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jCkBAIC0yMDIsMTkgKzIwMiwxOSBAQAogICAgICAgICB0byA9IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKikgJihhZGRyX3BhaXItPnJlbW90ZV9hZGRyKTsKICAgICAgICAgaWYgKHRvID09IE5VTEwpIHsKICAgICAgICAgICAgIHNucHJpbnRmKHRtcCwgc2l6ZW9mKHRtcCksICIlczogdW5rbm93bi0+WyVzXTolaHUiLCBwcmVmaXgsCi0gICAgICAgICAgICAgICAgICAgICBpbmV0X250b2EoYWRkcl9wYWlyLT5sb2NhbF9hZGRyLnNpbl9hZGRyKSwKLSAgICAgICAgICAgICAgICAgICAgIG50b2hzKGFkZHJfcGFpci0+bG9jYWxfYWRkci5zaW5fcG9ydCkpOworICAgICAgICAgICAgICAgICAgICAgaW5ldF9udG9hKGFkZHJfcGFpci0+bG9jYWxfYWRkci5zaW4uc2luX2FkZHIpLAorICAgICAgICAgICAgICAgICAgICAgbnRvaHMoYWRkcl9wYWlyLT5sb2NhbF9hZGRyLnNpbi5zaW5fcG9ydCkpOwogICAgICAgICB9IGVsc2UgaWYgKCB0ICYmIHQtPmZsYWdzICYgTkVUU05NUF9UUkFOU1BPUlRfRkxBR19IT1NUTkFNRSApIHsKICAgICAgICAgICAgIC8qIFhYWDogaG1tLi4uICB3aHkgaXNuJ3QgdGhpcyBwcmVmaXhlZCAqLwogICAgICAgICAgICAgLyogYXNzdW1pbmcgaW50ZW50aW9uYWwgKi8KLSAgICAgICAgICAgIGhvc3QgPSBnZXRob3N0YnlhZGRyKChjaGFyICopJnRvLT5zaW5fYWRkciwgNCwgQUZfSU5FVCk7CisgICAgICAgICAgICBob3N0ID0gbmV0c25tcF9nZXRob3N0YnlhZGRyKChjaGFyICopJnRvLT5zaW5fYWRkciwgc2l6ZW9mKHN0cnVjdCBpbl9hZGRyKSwgQUZfSU5FVCk7CiAgICAgICAgICAgICByZXR1cm4gKGhvc3QgPyBzdHJkdXAoaG9zdC0+aF9uYW1lKSA6IE5VTEwpOyAKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHNucHJpbnRmKHRtcCwgc2l6ZW9mKHRtcCksICIlczogWyVzXTolaHUtPiIsIHByZWZpeCwKICAgICAgICAgICAgICAgICAgICAgIGluZXRfbnRvYSh0by0+c2luX2FkZHIpLCBudG9ocyh0by0+c2luX3BvcnQpKTsKICAgICAgICAgICAgIHNucHJpbnRmKHRtcCArIHN0cmxlbih0bXApLCBzaXplb2YodG1wKS1zdHJsZW4odG1wKSwgIlslc106JWh1IiwKLSAgICAgICAgICAgICAgICAgICAgIGluZXRfbnRvYShhZGRyX3BhaXItPmxvY2FsX2FkZHIuc2luX2FkZHIpLAotICAgICAgICAgICAgICAgICAgICAgbnRvaHMoYWRkcl9wYWlyLT5sb2NhbF9hZGRyLnNpbl9wb3J0KSk7CisgICAgICAgICAgICAgICAgICAgICBpbmV0X250b2EoYWRkcl9wYWlyLT5sb2NhbF9hZGRyLnNpbi5zaW5fYWRkciksCisgICAgICAgICAgICAgICAgICAgICBudG9ocyhhZGRyX3BhaXItPmxvY2FsX2FkZHIuc2luLnNpbl9wb3J0KSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgdG1wW3NpemVvZih0bXApLTFdID0gJ1wwJzsKZGlmZiAtLWdpdCBhL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYyBiL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYwppbmRleCAwMWY4MWI5Li4xYWQ2ODg4IDEwMDY0NAotLS0gYS9zbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMKKysrIGIvc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jCkBAIC0zLDggKzMsMTEgQEAKIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgogCisjaWZkZWYgTkVUU05NUF9FTkFCTEVfSVBWNgorCiAjaW5jbHVkZSA8bmV0LXNubXAvdHlwZXMuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg+CiAKICNpbmNsdWRlIDxzdGRkZWYuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtOTAsNyArOTMsNyBAQAogICAgIGNoYXIgYWRkcltJTkVUNl9BRERSU1RSTEVOXTsKICAgICBjaGFyIHRtcFtJTkVUNl9BRERSU1RSTEVOICsgMThdOwogCi0gICAgREVCVUdNU0dUTCgoIm5ldHNubXBfdWRwNiIsICJmbXRhZGRyOiB0ID0gJXAsIGRhdGEgPSAlcCwgbGVuID0gJWRcbiIsIHQsCisgICAgREVCVUdNU0dUTCgoIm5ldHNubXBfaXB2NiIsICJmbXRhZGRyOiB0ID0gJXAsIGRhdGEgPSAlcCwgbGVuID0gJWRcbiIsIHQsCiAgICAgICAgICAgICAgICAgZGF0YSwgbGVuKSk7CiAgICAgaWYgKGRhdGEgIT0gTlVMTCAmJiBsZW4gPT0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbjYpKSB7CiAgICAgICAgIHRvID0gKHN0cnVjdCBzb2NrYWRkcl9pbjYgKikgZGF0YTsKQEAgLTM0MCwxNiArMzQzLDkgQEAKICAgICAgICAgICAgIGhpbnQuYWlfc29ja3R5cGUgPSBTT0NLX0RHUkFNOwogICAgICAgICAgICAgaGludC5haV9wcm90b2NvbCA9IDA7CiAKLSAgICAgICAgICAgIGVyciA9IGdldGFkZHJpbmZvKHBlZXJuYW1lLCBOVUxMLCAmaGludCwgJmFkZHJzKTsKKyAgICAgICAgICAgIGVyciA9IG5ldHNubXBfZ2V0YWRkcmluZm8ocGVlcm5hbWUsIE5VTEwsICZoaW50LCAmYWRkcnMpOwogICAgICAgICB9CiAgICAgICAgIGlmIChlcnIgIT0gMCkgewotI2lmIEhBVkVfR0FJX1NUUkVSUk9SCi0gICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiZ2V0YWRkcmluZm8oXCIlc1wiLCBOVUxMLCAuLi4pOiAlc1xuIiwgcGVlcm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICBnYWlfc3RyZXJyb3IoZXJyKSk7Ci0jZWxzZQotICAgICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgImdldGFkZHJpbmZvKFwiJXNcIiwgTlVMTCwgLi4uKTogKGVycm9yICVkKVxuIiwKLSAgICAgICAgICAgICAgICAgICAgIHBlZXJuYW1lLCBlcnIpOwotI2VuZGlmCiAgICAgICAgICAgICBmcmVlKHBlZXJuYW1lKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CkBAIC0zNzQsNyArMzcwLDcgQEAKICAgICAgICAgREVCVUdNU0dUTCgoIm5ldHNubXBfc29ja2FkZHJfaW42XzIiLCAiaG9zdG5hbWUgKHJlc29sdmVkIG9rYXkpXG4iKSk7CiAgICAgICAgIG1lbWNweSgmKGFkZHItPnNpbjZfYWRkciksIGhwLT5oX2FkZHIsIGhwLT5oX2xlbmd0aCk7CiAjZWxpZiBIQVZFX0dFVEhPU1RCWU5BTUUKLSAgICAgICAgaHAgPSBnZXRob3N0YnluYW1lKHBlZXJuYW1lKTsKKyAgICAgICAgaHAgPSBuZXRzbm1wX2dldGhvc3RieW5hbWUocGVlcm5hbWUpOwogICAgICAgICBpZiAoaHAgPT0gTlVMTCkgewogICAgICAgICAgICAgREVCVUdNU0dUTCgoIm5ldHNubXBfc29ja2FkZHJfaW42XzIiLAogICAgICAgICAgICAgICAgICAgICAgICAgImhvc3RuYW1lIChjb3VsZG4ndCByZXNvbHZlKVxuIikpOwpAQCAtNDIzLDMgKzQxOSw1IEBACiAgICAgc3ByaW50ZihidWYsICI6JXUiLCByZW1vdGVfcG9ydCk7CiAgICAgcmV0dXJuIG5ldHNubXBfc29ja2FkZHJfaW42XzIoYWRkciwgaW5wZWVybmFtZSwgcmVtb3RlX3BvcnQgPyBidWYgOiBOVUxMKTsKIH0KKworI2VuZGlmIC8qIE5FVFNOTVBfRU5BQkxFX0lQVjYgKi8KZGlmZiAtLWdpdCBhL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmMgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jCmluZGV4IDdmNTFmODYuLmE5ZWQ4MWYgMTAwNjQ0Ci0tLSBhL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmMKKysrIGIvc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYwpAQCAtMSw0ICsxLDUgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oPgogCiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wU1NIRG9tYWluLmg+CiAKQEAgLTYwLDYgKzYxLDggQEAKICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBTb2NrZXRCYXNlRG9tYWluLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oPgogCituZXRzbm1wX2ZlYXR1cmVfcmVxdWlyZSh1c2VyX2luZm9ybWF0aW9uKQorCiAjZGVmaW5lIE1BWF9OQU1FX0xFTkdUSCAxMjcKIAogI2RlZmluZSBORVRTTk1QX1NTSFRPU05NUF9WRVJTSU9OMSAgICAgIDEKQEAgLTgwLDEwICs4Myw2IEBACiBjb25zdCBvaWQgbmV0c25tcF9zbm1wU1NIRG9tYWluW10gPSB7IFRSQU5TUE9SVF9ET01BSU5fU1NIX0lQIH07CiBzdGF0aWMgbmV0c25tcF90ZG9tYWluIHNzaERvbWFpbjsKIAotY29uc3QgY2hhciAqa2V5ZmlsZTE9Ii9ob21lL2hhcmRha2VyLy5zc2gvaWRfcnNhLnB1YiI7Ci1jb25zdCBjaGFyICprZXlmaWxlMj0iL2hvbWUvaGFyZGFrZXIvLnNzaC9pZF9yc2EiOwotY29uc3QgY2hhciAqdXNlcm5hbWU9ImhhcmRha2VyIjsKLQogI2RlZmluZSBTTk1QU1NIRE9NQUlOX1VTRV9FWFRFUk5BTF9QSVBFIDEKIAogLyoKQEAgLTU4NCw2ICs1ODMsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCX1NTSFRPU05NUF9TT0NLRVQpOwogICAgIGNoYXIgdG1wc29ja3BhdGhbTUFYUEFUSExFTl07CiAKKyNpZmRlZiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUCisgICAgaWYgKGxvY2FsKQorICAgICAgICByZXR1cm4gTlVMTDsKKyNlbmRpZiAvKiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUICovCisKICAgICBpZiAoYWRkciA9PSBOVUxMIHx8IGFkZHItPnNpbl9mYW1pbHkgIT0gQUZfSU5FVCkgewogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CkBAIC01OTIsNyArNTk2LDYgQEAKICAgICBpZiAodCA9PSBOVUxMKSB7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBtZW1zZXQodCwgMCwgc2l6ZW9mKG5ldHNubXBfdHJhbnNwb3J0KSk7CiAKICAgICB0LT5kb21haW4gPSBuZXRzbm1wX3NubXBTU0hEb21haW47CiAgICAgdC0+ZG9tYWluX2xlbmd0aCA9IG5ldHNubXBfc25tcFNTSERvbWFpbl9sZW47CkBAIC02MDcsNiArNjEwLDcgQEAKICAgICB0LT5kYXRhX2xlbmd0aCA9IHNpemVvZihuZXRzbm1wX3NzaF9hZGRyX3BhaXIpOwogCiAgICAgaWYgKGxvY2FsKSB7CisjaWZuZGVmIE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQKICNpZmRlZiBTTk1QU1NIRE9NQUlOX1VTRV9FWFRFUk5BTF9QSVBFCiAKICAgICAgICAgLyogWFhYOiBzZXQgdC0+bG9jYWwgYW5kIHQtPmxvY2FsX2xlbmd0aCAqLwpAQCAtNzE1LDkgKzcxOSw0MiBAQAogICAgICAgICAvKiBYWFg6IHZlcmlmeSB3ZSdyZSBpbnNpZGUgc3NoICovCiAgICAgICAgIHQtPnNvY2sgPSBTVERJTl9GSUxFTk87CiAjZW5kaWYgLyogISBTTk1QU1NIRE9NQUlOX1VTRV9FWFRFUk5BTF9QSVBFICovCi0KKyNlbHNlIC8qIE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQgKi8KKyAgICAgICAgcmV0dXJuIE5VTEw7CisjZW5kaWYgLyogTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVCAqLwogICAgIH0gZWxzZSB7Ci0gICAgICAgIC8qIFhYWDogbmVlZCBhbiBpcHY2IGZyaWVuZGx5IG9uZSB0b28gKHNpZ2gpICovCisgICAgICAgIGNoYXIgKnVzZXJuYW1lOworICAgICAgICBjaGFyICprZXlmaWxlcHViOworICAgICAgICBjaGFyICprZXlmaWxlcHJpdjsKKyAgICAgICAgCisgICAgICAgIC8qIHVzZSB0aGUgcmVxdWVzdGVkIHVzZXIgbmFtZSAqLworICAgICAgICAvKiBYWFg6IGRlZmF1bHQgdG8gdGhlIGN1cnJlbnQgdXNlciBuYW1lIG9uIHRoZSBzeXN0ZW0gbGlrZSBzc2ggZG9lcyAqLworICAgICAgICB1c2VybmFtZSA9IG5ldHNubXBfZHNfZ2V0X3N0cmluZyhORVRTTk1QX0RTX0xJQlJBUllfSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCX1NTSF9VU0VSTkFNRSk7CisgICAgICAgIGlmICghdXNlcm5hbWUgfHwgMCA9PSAqdXNlcm5hbWUpIHsKKyAgICAgICAgICAgIHNubXBfbG9nKExPR19FUlIsICJZb3UgbXVzdCBzcGVjaWZ5IGEgc3NoIHVzZXJuYW1lIHRvIHVzZS4gIFNlZSB0aGUgc25tcC5jb25mIG1hbnVhbCBwYWdlXG4iKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisKKyAgICAgICAgLyogdXNlIHRoZSByZXF1ZXN0ZWQgcHVibGljIGtleSBmaWxlICovCisgICAgICAgIGtleWZpbGVwdWIgPSBuZXRzbm1wX2RzX2dldF9zdHJpbmcoTkVUU05NUF9EU19MSUJSQVJZX0lELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCX1NTSF9QVUJLRVkpOworICAgICAgICBpZiAoIWtleWZpbGVwdWIgfHwgMCA9PSAqa2V5ZmlsZXB1YikgeworICAgICAgICAgICAgLyogWFhYOiBkZWZhdWx0IHRvIH4vLnNzaC9pZF9yc2EucHViICovCisgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiWW91IG11c3Qgc3BlY2lmeSBhIHNzaCBwdWJsaWMga2V5IGZpbGUgdG8gdXNlLiAgU2VlIHRoZSBzbm1wLmNvbmYgbWFudWFsIHBhZ2VcbiIpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKworICAgICAgICAvKiB1c2UgdGhlIHJlcXVlc3RlZCBwcml2YXRlIGtleSBmaWxlICovCisgICAgICAgIGtleWZpbGVwcml2ID0gbmV0c25tcF9kc19nZXRfc3RyaW5nKE5FVFNOTVBfRFNfTElCUkFSWV9JRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfU1NIX1BSSVZLRVkpOworICAgICAgICBpZiAoIWtleWZpbGVwcml2IHx8IDAgPT0gKmtleWZpbGVwcml2KSB7CisgICAgICAgICAgICAvKiBYWFg6IGRlZmF1bHQgdG8ga2V5ZmlsZXB1YiB3aXRob3V0IHRoZSAucHViIHN1ZmZpeCAqLworICAgICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgIllvdSBtdXN0IHNwZWNpZnkgYSBzc2ggcHJpdmF0ZSBrZXkgZmlsZSB0byB1c2UuICBTZWUgdGhlIHNubXAuY29uZiBtYW51YWwgcGFnZVxuIik7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorCisgICAgICAgIC8qIHh4eDogbmVlZCBhbiBpcHY2IGZyaWVuZGx5IG9uZSB0b28gKHNpZ2gpICovCiAKICAgICAgICAgLyogWFhYOiBub3QgaWRlYWwgd2hlbiBzdHJ1Y3RzIGRvbid0IGFjdHVhbGx5IG1hdGNoIHNpemUgd2lzZSAqLwogICAgICAgICBtZW1jcHkoJihhZGRyX3BhaXItPnJlbW90ZV9hZGRyKSwgYWRkciwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbikpOwpAQCAtODA0LDcgKzg0MSw3IEBACiAgICAgICAgICAgICAvKiBwdWJsaWMga2V5ICovCiAgICAgICAgICAgICBpZiAobGlic3NoMl91c2VyYXV0aF9wdWJsaWNrZXlfZnJvbWZpbGUoYWRkcl9wYWlyLT5zZXNzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleWZpbGUxLCBrZXlmaWxlMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlmaWxlcHViLCBrZXlmaWxlcHJpdiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKSkgewogICAgICAgICAgICAgICAgIHNubXBfbG9nKExPR19FUlIsIkF1dGhlbnRpY2F0aW9uIGJ5IHB1YmxpYyBrZXkgZmFpbGVkIVxuIik7CiAgICAgICAgICAgICAgICAgZ290byBzaHV0ZG93bjsKQEAgLTk1NCw2ICs5OTEsMTggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQlJBUllfSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfU1NIVE9TTk1QX1NPQ0tFVCk7CiAKKyAgICBuZXRzbm1wX2RzX3JlZ2lzdGVyX2NvbmZpZyhBU05fT0NURVRfU1RSLCAic25tcCIsICJzc2h1c2VybmFtZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJSQVJZX0lELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCX1NTSF9VU0VSTkFNRSk7CisKKyAgICBuZXRzbm1wX2RzX3JlZ2lzdGVyX2NvbmZpZyhBU05fT0NURVRfU1RSLCAic25tcCIsICJzc2hwdWJsaWNrZXkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCUkFSWV9JRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9TU0hfUFVCS0VZKTsKKworICAgIG5ldHNubXBfZHNfcmVnaXN0ZXJfY29uZmlnKEFTTl9PQ1RFVF9TVFIsICJzbm1wIiwgInNzaHByaXZhdGVrZXkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCUkFSWV9JRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9TU0hfUFJJVktFWSk7CisKICAgICBERUJVR01TR1RMKCgic3NoIiwgInJlZ2lzdGVyaW5nIHRoZSBzc2ggZG9tYWluXG4iKSk7CiAgICAgbmV0c25tcF90ZG9tYWluX3JlZ2lzdGVyKCZzc2hEb21haW4pOwogfQpkaWZmIC0tZ2l0IGEvc25tcGxpYi90cmFuc3BvcnRzL3NubXBTVEREb21haW4uYyBiL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1RERG9tYWluLmMKaW5kZXggMjFlMGQ3OS4uMGExYzNmOSAxMDA2NDQKLS0tIGEvc25tcGxpYi90cmFuc3BvcnRzL3NubXBTVEREb21haW4uYworKysgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFNURERvbWFpbi5jCkBAIC0xNTQsMTEgKzE1NCwxMCBAQAogewogICAgIG5ldHNubXBfdHJhbnNwb3J0ICp0OwogCi0gICAgdCA9IChuZXRzbm1wX3RyYW5zcG9ydCAqKSBtYWxsb2Moc2l6ZW9mKG5ldHNubXBfdHJhbnNwb3J0KSk7CisgICAgdCA9IFNOTVBfTUFMTE9DX1RZUEVERUYobmV0c25tcF90cmFuc3BvcnQpOwogICAgIGlmICh0ID09IE5VTEwpIHsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIG1lbXNldCh0LCAwLCBzaXplb2YobmV0c25tcF90cmFuc3BvcnQpKTsKIAogICAgIHQtPmRvbWFpbiA9IG5ldHNubXBfc25tcFNURERvbWFpbjsKICAgICB0LT5kb21haW5fbGVuZ3RoID0KZGlmZiAtLWdpdCBhL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jCmluZGV4IGExMDNmMDYuLjdmZWIwMjggMTAwNjQ0Ci0tLSBhL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMKKysrIGIvc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wU29ja2V0QmFzZURvbWFpbi5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcFRDUEJhc2VEb21haW4uaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg+CiAKIC8qCiAgKiBuZWVkcyB0byBiZSBpbiBzeW5jIHdpdGggdGhlIGRlZmluaXRpb25zIGluIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCkBAIC03NiwxMCArNzcsOSBAQAogICAgIHN0cnVjdCBzb2NrYWRkciAqZmFyZW5kID0gTlVMTDsKICAgICBuZXRzbm1wX3VkcF9hZGRyX3BhaXIgKmFkZHJfcGFpciA9IE5VTEw7CiAgICAgaW50ICAgICAgICAgICAgIG5ld3NvY2sgPSAtMTsKLSAgICBzb2NrbGVuX3QgICAgICAgZmFyZW5kbGVuID0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbik7CisgICAgc29ja2xlbl90ICAgICAgIGZhcmVuZGxlbiA9IHNpemVvZihuZXRzbm1wX3VkcF9hZGRyX3BhaXIpOwogCi0gICAgYWRkcl9wYWlyID0gKG5ldHNubXBfdWRwX2FkZHJfcGFpciAqKW1hbGxvYyhzaXplb2YobmV0c25tcF91ZHBfYWRkcl9wYWlyKSk7Ci0KKyAgICBhZGRyX3BhaXIgPSAobmV0c25tcF91ZHBfYWRkcl9wYWlyICopbWFsbG9jKGZhcmVuZGxlbik7CiAgICAgaWYgKGFkZHJfcGFpciA9PSBOVUxMKSB7CiAgICAgICAgIC8qCiAgICAgICAgICAqIEluZGljYXRlIHRoYXQgdGhlIGFjY2VwdGFuY2Ugb2YgdGhpcyBzb2NrZXQgZmFpbGVkLiAgCkBAIC04OCw3ICs4OCw3IEBACiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAgICAgbWVtc2V0KGFkZHJfcGFpciwgMCwgc2l6ZW9mICphZGRyX3BhaXIpOwotICAgIGZhcmVuZCA9IChzdHJ1Y3Qgc29ja2FkZHIgKikgJihhZGRyX3BhaXItPnJlbW90ZV9hZGRyKTsKKyAgICBmYXJlbmQgPSAmYWRkcl9wYWlyLT5yZW1vdGVfYWRkci5zYTsKIAogICAgIGlmICh0ICE9IE5VTEwgJiYgdC0+c29jayA+PSAwKSB7CiAgICAgICAgIG5ld3NvY2sgPSBhY2NlcHQodC0+c29jaywgZmFyZW5kLCAmZmFyZW5kbGVuKTsKQEAgLTk2LDcgKzk2LDcgQEAKICAgICAgICAgaWYgKG5ld3NvY2sgPCAwKSB7CiAgICAgICAgICAgICBERUJVR01TR1RMKCgibmV0c25tcF90Y3AiLCAiYWNjZXB0IGZhaWxlZCByYyAlZCBlcnJubyAlZCBcIiVzXCJcbiIsCiAJCQluZXdzb2NrLCBlcnJubywgc3RyZXJyb3IoZXJybm8pKSk7Ci0gICAgICAgICAgICBmcmVlKGZhcmVuZCk7CisgICAgICAgICAgICBmcmVlKGFkZHJfcGFpcik7CiAgICAgICAgICAgICByZXR1cm4gbmV3c29jazsKICAgICAgICAgfQogCkBAIC0xMzAsNyArMTMwLDcgQEAKIAogICAgICAgICByZXR1cm4gbmV3c29jazsKICAgICB9IGVsc2UgewotICAgICAgICBmcmVlKGZhcmVuZCk7CisgICAgICAgIGZyZWUoYWRkcl9wYWlyKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIH0KQEAgLTE1MCwxNiArMTUwLDE5IEBACiAgICAgbmV0c25tcF91ZHBfYWRkcl9wYWlyICphZGRyX3BhaXIgPSBOVUxMOwogICAgIGludCByYyA9IDA7CiAKKyNpZmRlZiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUCisgICAgaWYgKGxvY2FsKQorICAgICAgICByZXR1cm4gTlVMTDsKKyNlbmRpZiAvKiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUICovCiAKICAgICBpZiAoYWRkciA9PSBOVUxMIHx8IGFkZHItPnNpbl9mYW1pbHkgIT0gQUZfSU5FVCkgewogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICB0ID0gKG5ldHNubXBfdHJhbnNwb3J0ICopIG1hbGxvYyhzaXplb2YobmV0c25tcF90cmFuc3BvcnQpKTsKKyAgICB0ID0gU05NUF9NQUxMT0NfVFlQRURFRihuZXRzbm1wX3RyYW5zcG9ydCk7CiAgICAgaWYgKHQgPT0gTlVMTCkgewogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0gICAgbWVtc2V0KHQsIDAsIHNpemVvZihuZXRzbm1wX3RyYW5zcG9ydCkpOwogCiAgICAgYWRkcl9wYWlyID0gKG5ldHNubXBfdWRwX2FkZHJfcGFpciAqKW1hbGxvYyhzaXplb2YobmV0c25tcF91ZHBfYWRkcl9wYWlyKSk7CiAgICAgaWYgKGFkZHJfcGFpciA9PSBOVUxMKSB7CkBAIC0xODQsNiArMTg3LDcgQEAKICAgICB0LT5mbGFncyA9IE5FVFNOTVBfVFJBTlNQT1JUX0ZMQUdfU1RSRUFNOwogCiAgICAgaWYgKGxvY2FsKSB7CisjaWZuZGVmIE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQKICAgICAgICAgaW50IG9wdCA9IDE7CiAKICAgICAgICAgLyoKQEAgLTI0Miw3ICsyNDYsOSBAQAogICAgICAgICAvKgogICAgICAgICAgKiBubyBidWZmZXIgc2l6ZSBvbiBsaXN0ZW4gc29ja2V0IC0gZG9lc24ndCBtYWtlIHNlbnNlCiAgICAgICAgICAqLwotCisjZWxzZSAvKiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUICovCisgICAgICAgIHJldHVybiBOVUxMOworI2VuZGlmIC8qIE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQgKi8KICAgICB9IGVsc2UgewogICAgICAgdC0+cmVtb3RlID0gKHVfY2hhciAqKW1hbGxvYyg2KTsKICAgICAgICAgaWYgKHQtPnJlbW90ZSA9PSBOVUxMKSB7CmRpZmYgLS1naXQgYS9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYyBiL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jCmluZGV4IDJhNTllZWEuLmQyZTBhMmQgMTAwNjQ0Ci0tLSBhL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jCisrKyBiL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaD4KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BCYXNlRG9tYWluLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS90b29scy5oPgogCiAjaW5jbHVkZSAiaW5ldF9udG9wLmgiCiAKQEAgLTE0MCwxNSArMTQxLDE5IEBACiAgICAgbmV0c25tcF90cmFuc3BvcnQgKnQgPSBOVUxMOwogICAgIGludCAgICAgICAgICAgICByYyA9IDA7CiAKKyNpZmRlZiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUCisgICAgaWYgKGxvY2FsKQorICAgICAgICByZXR1cm4gTlVMTDsKKyNlbmRpZiAvKiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUICovCisKICAgICBpZiAoYWRkciA9PSBOVUxMIHx8IGFkZHItPnNpbjZfZmFtaWx5ICE9IEFGX0lORVQ2KSB7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAotICAgIHQgPSAobmV0c25tcF90cmFuc3BvcnQgKikgbWFsbG9jKHNpemVvZihuZXRzbm1wX3RyYW5zcG9ydCkpOworICAgIHQgPSBTTk1QX01BTExPQ19UWVBFREVGKG5ldHNubXBfdHJhbnNwb3J0KTsKICAgICBpZiAodCA9PSBOVUxMKSB7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBtZW1zZXQodCwgMCwgc2l6ZW9mKG5ldHNubXBfdHJhbnNwb3J0KSk7CiAKICAgICBERUJVR0lGKCJuZXRzbm1wX3RjcDYiKSB7CiAgICAgICAgIGNoYXIgKnN0ciA9IG5ldHNubXBfdGNwNl9mbXRhZGRyKE5VTEwsICh2b2lkICopYWRkciwKQEAgLTE1OCwxNCArMTYzLDEyIEBACiAgICAgICAgIGZyZWUoc3RyKTsKICAgICB9CiAKLSAgICBtZW1zZXQodCwgMCwgc2l6ZW9mKG5ldHNubXBfdHJhbnNwb3J0KSk7Ci0KLSAgICB0LT5kYXRhID0gbWFsbG9jKHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW42KSk7CisgICAgdC0+ZGF0YSA9IG1hbGxvYyhzaXplb2YobmV0c25tcF9pbmRleGVkX2FkZHJfcGFpcikpOwogICAgIGlmICh0LT5kYXRhID09IE5VTEwpIHsKICAgICAgICAgbmV0c25tcF90cmFuc3BvcnRfZnJlZSh0KTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIHQtPmRhdGFfbGVuZ3RoID0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbjYpOworICAgIHQtPmRhdGFfbGVuZ3RoID0gc2l6ZW9mKG5ldHNubXBfaW5kZXhlZF9hZGRyX3BhaXIpOwogICAgIG1lbWNweSh0LT5kYXRhLCBhZGRyLCBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luNikpOwogCiAgICAgdC0+ZG9tYWluID0gbmV0c25tcF9UQ1BJUHY2RG9tYWluOwpAQCAtMTgwLDYgKzE4Myw3IEBACiAgICAgdC0+ZmxhZ3MgPSBORVRTTk1QX1RSQU5TUE9SVF9GTEFHX1NUUkVBTTsKIAogICAgIGlmIChsb2NhbCkgeworI2lmbmRlZiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUCiAgICAgICAgIGludCBvcHQgPSAxOwogCiAgICAgICAgIC8qCkBAIC0yNDgsNyArMjUyLDkgQEAKICAgICAgICAgLyoKICAgICAgICAgICogbm8gYnVmZmVyIHNpemUgb24gbGlzdGVuIHNvY2tldCAtIGRvZXNuJ3QgbWFrZSBzZW5zZQogICAgICAgICAgKi8KLQorI2Vsc2UgLyogTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVCAqLworICAgICAgICByZXR1cm4gTlVMTDsKKyNlbmRpZiAvKiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUICovCiAgICAgfSBlbHNlIHsKICAgICAgICAgdC0+cmVtb3RlID0gKHVuc2lnbmVkIGNoYXIqKW1hbGxvYygxOCk7CiAgICAgICAgIGlmICh0LT5yZW1vdGUgPT0gTlVMTCkgewpkaWZmIC0tZ2l0IGEvc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYwppbmRleCBiMWU5NDY1Li5jNTRkNmFkIDEwMDY0NAotLS0gYS9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYworKysgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYwpAQCAtMSw1ICsxLDkgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KIAorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CisKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNlcnRfdXRpbCkKKwogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaD4KIAogI2lmIEhBVkVfRE1BTExPQ19ICkBAIC0zNCw2ICszOCw3IEBACiAjaW5jbHVkZSA8b3BlbnNzbC94NTA5djMuaD4KIAogI2luY2x1ZGUgPG5ldC1zbm1wL3R5cGVzLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvY29uZmlnX2FwaS5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaD4KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaD4KQEAgLTQ1LDYgKzUwLDcgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaD4KIAogI2RlZmluZSBMT0dBTkRESUUobXNnKSBkbyB7IHNubXBfbG9nKExPR19FUlIsICIlc1xuIiwgbXNnKTsgcmV0dXJuIDA7IH0gd2hpbGUoMCkKQEAgLTE1MSwyNiArMTU3LDI2IEBACiAKICAgICBpZiAoIXRsc2RhdGEtPnRoZWlyX2ZpbmdlcnByaW50ICYmIHRsc2RhdGEtPnRoZWlyX2lkZW50aXR5KSB7CiAgICAgICAgIC8qIHdlIGhhdmUgYW4gaWRlbnRpdHk7IHRyeSBhbmQgZmluZCBpdCdzIGZpbmdlcnByaW50ICovCi0gICAgICAgIG5ldHNubXBfY2VydCAqdGhlaXJfY2VydDsKLSAgICAgICAgdGhlaXJfY2VydCA9CisgICAgICAgIG5ldHNubXBfY2VydCAqcGVlcl9jZXJ0OworICAgICAgICBwZWVyX2NlcnQgPQogICAgICAgICAgICAgbmV0c25tcF9jZXJ0X2ZpbmQoTlNfQ0VSVF9SRU1PVEVfUEVFUiwgTlNfQ0VSVEtFWV9NVUxUSVBMRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRsc2RhdGEtPnRoZWlyX2lkZW50aXR5KTsKIAotICAgICAgICBpZiAodGhlaXJfY2VydCkKKyAgICAgICAgaWYgKHBlZXJfY2VydCkKICAgICAgICAgICAgIHRsc2RhdGEtPnRoZWlyX2ZpbmdlcnByaW50ID0KLSAgICAgICAgICAgICAgICBuZXRzbm1wX29wZW5zc2xfY2VydF9nZXRfZmluZ2VycHJpbnQodGhlaXJfY2VydC0+b2NlcnQsIC0xKTsKKyAgICAgICAgICAgICAgICBuZXRzbm1wX29wZW5zc2xfY2VydF9nZXRfZmluZ2VycHJpbnQocGVlcl9jZXJ0LT5vY2VydCwgLTEpOwogICAgIH0KIAogICAgIGlmICghdGxzZGF0YS0+dGhlaXJfZmluZ2VycHJpbnQgJiYgdHJ5X2RlZmF1bHQpIHsKICAgICAgICAgLyogdHJ5IGZvciB0aGUgZGVmYXVsdCBpbnN0ZWFkICovCi0gICAgICAgIG5ldHNubXBfY2VydCAqdGhlaXJfY2VydDsKLSAgICAgICAgdGhlaXJfY2VydCA9CisgICAgICAgIG5ldHNubXBfY2VydCAqcGVlcl9jZXJ0OworICAgICAgICBwZWVyX2NlcnQgPQogICAgICAgICAgICAgbmV0c25tcF9jZXJ0X2ZpbmQoTlNfQ0VSVF9SRU1PVEVfUEVFUiwgTlNfQ0VSVEtFWV9ERUZBVUxULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAKLSAgICAgICAgaWYgKHRoZWlyX2NlcnQpCisgICAgICAgIGlmIChwZWVyX2NlcnQpCiAgICAgICAgICAgICB0bHNkYXRhLT50aGVpcl9maW5nZXJwcmludCA9Ci0gICAgICAgICAgICAgICAgbmV0c25tcF9vcGVuc3NsX2NlcnRfZ2V0X2ZpbmdlcnByaW50KHRoZWlyX2NlcnQtPm9jZXJ0LCAtMSk7CisgICAgICAgICAgICAgICAgbmV0c25tcF9vcGVuc3NsX2NlcnRfZ2V0X2ZpbmdlcnByaW50KHBlZXJfY2VydC0+b2NlcnQsIC0xKTsKICAgICB9CiAgICAgCiAgICAgaWYgKHRsc2RhdGEtPnRoZWlyX2ZpbmdlcnByaW50KSB7CkBAIC01NzksOCArNTg1LDcgQEAKICAgICAgICAgTE9HQU5ERElFKCJjYW4ndCBjcmVhdGUgYSBuZXcgY29udGV4dCIpOwogICAgIH0KIAotICAgIGlkX2NlcnQgPSBuZXRzbm1wX2NlcnRfZmluZChOU19DRVJUX0lERU5USVRZLCBOU19DRVJUS0VZX0RFRkFVTFQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKikxKTsKKyAgICBpZF9jZXJ0ID0gbmV0c25tcF9jZXJ0X2ZpbmQoTlNfQ0VSVF9JREVOVElUWSwgTlNfQ0VSVEtFWV9ERUZBVUxULCBOVUxMKTsKICAgICBpZiAoIWlkX2NlcnQpCiAgICAgICAgIExPR0FORERJRSAoImVycm9yIGZpbmRpbmcgc2VydmVyIGlkZW50aXR5IGtleXMiKTsKIApAQCAtNjIxLDI0ICs2MjYsMjggQEAKIAogICAgIHRsc2RhdGEgPSB0LT5kYXRhOwogCi0gICAgaWYgKHN0cmNtcCh0b2tlbiwgIm91cl9pZGVudGl0eSIpID09IDApIHsKKyAgICBpZiAoKHN0cmNtcCh0b2tlbiwgImxvY2FsQ2VydCIpID09IDApIHx8CisgICAgICAgIChzdHJjbXAodG9rZW4sICJvdXJfaWRlbnRpdHkiKSA9PSAwKSkgewogICAgICAgICBTTk1QX0ZSRUUodGxzZGF0YS0+b3VyX2lkZW50aXR5KTsKICAgICAgICAgdGxzZGF0YS0+b3VyX2lkZW50aXR5ID0gc3RyZHVwKHZhbHVlKTsKICAgICAgICAgREVCVUdNU0dUKCgidGxzOmNvbmZpZyIsIm91ciBpZGVudGl0eSAlc1xuIiwgdmFsdWUpKTsKICAgICB9CiAKLSAgICBpZiAoc3RyY21wKHRva2VuLCAidGhlaXJfaWRlbnRpdHkiKSA9PSAwKSB7CisgICAgaWYgKChzdHJjbXAodG9rZW4sICJwZWVyQ2VydCIpID09IDApIHx8CisgICAgICAgIChzdHJjbXAodG9rZW4sICJ0aGVpcl9pZGVudGl0eSIpID09IDApKSB7CiAgICAgICAgIFNOTVBfRlJFRSh0bHNkYXRhLT50aGVpcl9pZGVudGl0eSk7CiAgICAgICAgIHRsc2RhdGEtPnRoZWlyX2lkZW50aXR5ID0gc3RyZHVwKHZhbHVlKTsKICAgICAgICAgREVCVUdNU0dUKCgidGxzOmNvbmZpZyIsInRoZWlyIGlkZW50aXR5ICVzXG4iLCB2YWx1ZSkpOwogICAgIH0KIAotICAgIGlmIChzdHJjbXAodG9rZW4sICJ0aGVpcl9ob3N0bmFtZSIpID09IDApIHsKKyAgICBpZiAoKHN0cmNtcCh0b2tlbiwgInBlZXJIb3N0bmFtZSIpID09IDApIHx8CisgICAgICAgIChzdHJjbXAodG9rZW4sICJ0aGVpcl9ob3N0bmFtZSIpID09IDApKSB7CiAgICAgICAgIFNOTVBfRlJFRSh0bHNkYXRhLT50aGVpcl9ob3N0bmFtZSk7CiAgICAgICAgIHRsc2RhdGEtPnRoZWlyX2hvc3RuYW1lID0gc3RyZHVwKHZhbHVlKTsKICAgICB9CiAKLSAgICBpZiAoc3RyY21wKHRva2VuLCAidHJ1c3RfY2VydCIpID09IDApIHsKKyAgICBpZiAoKHN0cmNtcCh0b2tlbiwgInRydXN0X2NlcnQiKSA9PSAwKSB8fAorICAgICAgICAoc3RyY21wKHRva2VuLCAidHJ1c3RDZXJ0IikgPT0gMCkpIHsKICAgICAgICAgU05NUF9GUkVFKHRsc2RhdGEtPnRydXN0X2NlcnQpOwogICAgICAgICB0bHNkYXRhLT50cnVzdF9jZXJ0ID0gc3RyZHVwKHZhbHVlKTsKICAgICB9CkBAIC03MDUsNiArNzE0LDMyIEBACiAgICAgcmV0dXJuIG9wZW5zc2xfbG9jYWxfaW5kZXg7CiB9CiAKK3N0YXRpYyB2b2lkIF9wYXJzZV9jbGllbnRfY2VydChjb25zdCBjaGFyICp0b2ssIGNoYXIgKmxpbmUpCit7CisgICAgY29uZmlnX3B3YXJuKCJjbGllbnRDZXJ0IGlzIGRlcHJlY2F0ZWQuIENsaWVudHMgc2hvdWxkIHVzZSBsb2NhbENlcnQsIHNlcnZlcnMgc2hvdWxkIHVzZSBwZWVyQ2VydCIpOworICAgIGlmICgqbGluZSA9PSAnIicpIHsKKyAgICAgICAgY2hhciBidWZbU05NUF9NQVhCVUZdOworICAgICAgICBjb3B5X253b3JkKGxpbmUsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOworICAgICAgICBuZXRzbm1wX2RzX3NldF9zdHJpbmcoTkVUU05NUF9EU19MSUJSQVJZX0lELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfWDUwOV9DTElFTlRfUFVCLCBidWYpOworICAgIH0gZWxzZQorICAgICAgICBuZXRzbm1wX2RzX3NldF9zdHJpbmcoTkVUU05NUF9EU19MSUJSQVJZX0lELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfWDUwOV9DTElFTlRfUFVCLCBsaW5lKTsKK30KKworc3RhdGljIHZvaWQgX3BhcnNlX3NlcnZlcl9jZXJ0KGNvbnN0IGNoYXIgKnRvaywgY2hhciAqbGluZSkKK3sKKyAgICBjb25maWdfcHdhcm4oInNlcnZlckNlcnQgaXMgZGVwcmVjYXRlZC4gQ2xpZW50cyBzaG91bGQgdXNlIHBlZXJDZXJ0LCBzZXJ2ZXJzIHNob3VsZCB1c2UgbG9jYWxDZXJ0LiIpOworICAgIGlmICgqbGluZSA9PSAnIicpIHsKKyAgICAgICAgY2hhciBidWZbU05NUF9NQVhCVUZdOworICAgICAgICBjb3B5X253b3JkKGxpbmUsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOworICAgICAgICBuZXRzbm1wX2RzX3NldF9zdHJpbmcoTkVUU05NUF9EU19MSUJSQVJZX0lELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfWDUwOV9DTElFTlRfUFVCLCBidWYpOworICAgIH0gZWxzZQorICAgICAgICBuZXRzbm1wX2RzX3NldF9zdHJpbmcoTkVUU05NUF9EU19MSUJSQVJZX0lELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfWDUwOV9TRVJWRVJfUFVCLCBsaW5lKTsKK30KKwogdm9pZAogbmV0c25tcF90bHNiYXNlX2N0b3Iodm9pZCkgewogCkBAIC03MzEsMjYgKzc2NiwyNSBAQAogICAgICAqLwogCiAgICAgLyogdGhlIHB1YmxpYyBjbGllbnQgY2VydCB0byBhdXRoZW50aWNhdGUgd2l0aCAqLwotICAgIG5ldHNubXBfZHNfcmVnaXN0ZXJfY29uZmlnKEFTTl9PQ1RFVF9TVFIsICJzbm1wIiwgImNsaWVudENlcnQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCUkFSWV9JRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9YNTA5X0NMSUVOVF9QVUIpOwotICAgIC8qIFhYWDogdGhpcyBvbmUgbmVlZHMgdG8gZ28gYXdheSBiZWZvcmUgNS42IGZpbmFsICovCi0gICAgbmV0c25tcF9kc19yZWdpc3Rlcl9jb25maWcoQVNOX09DVEVUX1NUUiwgInNubXAiLCAiZGVmWDUwOUNsaWVudFB1YiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJSQVJZX0lELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCX1g1MDlfQ0xJRU5UX1BVQik7CisgICAgcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoInNubXAiLCAiY2xpZW50Q2VydCIsIF9wYXJzZV9jbGllbnRfY2VydCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKIAogICAgIC8qCiAgICAgICogZm9yIHRoZSBzZXJ2ZXIKICAgICAgKi8KIAogICAgIC8qIFRoZSBYNTA5IHNlcnZlciBrZXkgdG8gdXNlICovCi0gICAgbmV0c25tcF9kc19yZWdpc3Rlcl9jb25maWcoQVNOX09DVEVUX1NUUiwgInNubXAiLCAic2VydmVyQ2VydCIsCisgICAgcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoInNubXAiLCAic2VydmVyQ2VydCIsIF9wYXJzZV9zZXJ2ZXJfY2VydCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAvKgorICAgICAqIHJlbW92ZSBjZXJ0IGNvbmZpZyBhbWJpZ3VpdHk6IGxvY2FsQ2VydCwgcGVlckNlcnQKKyAgICAgKi8KKyAgICBuZXRzbm1wX2RzX3JlZ2lzdGVyX2NvbmZpZyhBU05fT0NURVRfU1RSLCAic25tcCIsICJsb2NhbENlcnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVFNOTVBfRFNfTElCUkFSWV9JRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9YNTA5X1NFUlZFUl9QVUIpOwotICAgIC8qIFhYWDogdGhpcyBvbmUgbmVlZHMgdG8gZ28gYXdheSBiZWZvcmUgNS42IGZpbmFsICovCi0gICAgbmV0c25tcF9kc19yZWdpc3Rlcl9jb25maWcoQVNOX09DVEVUX1NUUiwgInNubXAiLCAiZGVmWDUwOVNlcnZlclB1YiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfVExTX0xPQ0FMX0NFUlQpOworICAgIG5ldHNubXBfZHNfcmVnaXN0ZXJfY29uZmlnKEFTTl9PQ1RFVF9TVFIsICJzbm1wIiwgInBlZXJDZXJ0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQlJBUllfSUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUU05NUF9EU19MSUJfWDUwOV9TRVJWRVJfUFVCKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVRTTk1QX0RTX0xJQl9UTFNfUEVFUl9DRVJUKTsKIAogICAgIC8qCiAgICAgICogcmVnaXN0ZXIgb3VyIGJvb3Qtc3RyYXBwaW5nIG5lZWRzCkBAIC05MDAsNiArOTM0LDggQEAKICAgICByZXR1cm4gU05NUEVSUl9TVUNDRVNTOwogfQogCituZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YoX3g1MDlfZ2V0X2Vycm9yLCBuZXRzbm1wX3VudXNlZCkKKyNpZm5kZWYgTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9fWDUwOV9HRVRfRVJST1IKIGNvbnN0IGNoYXIgKiBfeDUwOV9nZXRfZXJyb3IoaW50IHg1MDlmYWlsdmFsdWUsIGNvbnN0IGNoYXIgKmxvY2F0aW9uKSB7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIgKnJlYXNvbiA9IE5VTEw7CiAgICAgCkBAIC0xMDU1LDYgKzEwOTEsNyBAQAogCiAgICAgcmV0dXJuIHJlYXNvbjsKIH0KKyNlbmRpZiAvKiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX19YNTA5X0dFVF9FUlJPUiAqLwogCiB2b2lkIF9vcGVuc3NsX2xvZ19lcnJvcihpbnQgcmMsIFNTTCAqY29uLCBjb25zdCBjaGFyICpsb2NhdGlvbikgewogICAgIGNvbnN0IGNoYXIgICAgICpyZWFzb24sICpmaWxlLCAqZGF0YTsKZGlmZiAtLWdpdCBhL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jCmluZGV4IGUzODBiZDUuLjQ3M2QwMmMgMTAwNjQ0Ci0tLSBhL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMKKysrIGIvc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYwpAQCAtOSw2ICs5LDEwIEBACiAgKi8KICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KIAorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CisKK25ldHNubXBfZmVhdHVyZV9yZXF1aXJlKGNlcnRfdXRpbCkKKwogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oPgogCiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTEyOSw5ICsxMzMsOSBAQAogICAgICAgICBuZXd0bHNkYXRhLT50aGVpcl9ob3N0bmFtZSA9IHN0cmR1cChvbGR0bHNkYXRhLT50aGVpcl9ob3N0bmFtZSk7CiAgICAgaWYgKG9sZHRsc2RhdGEtPnRydXN0X2NlcnQpCiAgICAgICAgIG5ld3Rsc2RhdGEtPnRydXN0X2NlcnQgPSBzdHJkdXAob2xkdGxzZGF0YS0+dHJ1c3RfY2VydCk7Ci0gICAgaWYgKG9sZHRsc2RhdGEtPnJlbW90ZV9hZGRyKQotICAgICAgICBuZXd0bHNkYXRhLT5yZW1vdGVfYWRkciA9IG5ldHNubXBfbWVtZHVwKG9sZHRsc2RhdGEtPnJlbW90ZV9hZGRyLAotICAgICAgICAgICAgICAgc2l6ZW9mKG5ldHNubXBfaW5kZXhlZF9hZGRyX3BhaXIpKTsKKyAgICBpZiAob2xkdGxzZGF0YS0+YWRkcikKKyAgICAgICAgbmV3dGxzZGF0YS0+YWRkciA9IG5ldHNubXBfbWVtZHVwKG9sZHRsc2RhdGEtPmFkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoKm9sZHRsc2RhdGEtPmFkZHIpKTsKIAogICAgIHJldHVybiAwOwogfQpAQCAtNzIzLDggKzcyNyw2IEBACiAgICAgICAgICAgICBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMoU1RBVF9UTFNUTV9TTk1QVExTVE1TRVNTSU9OT1BFTkVSUk9SUyk7CiAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAidGxzdGNwOiBmYWlsZWQgdG8gY3JlYXRlIGJpb1xuIik7CiAgICAgICAgICAgICBfb3BlbnNzbF9sb2dfZXJyb3IocmMsIE5VTEwsICJCSU8gY3JlYXRpb24iKTsKLSAgICAgICAgICAgIFNOTVBfRlJFRSh0bHNkYXRhKTsKLSAgICAgICAgICAgIFNOTVBfRlJFRSh0KTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTczNiw4ICs3MzgsNiBAQAogCQkgICAgIHRsc2RhdGEtPmFkZHJfc3RyaW5nKTsKICAgICAgICAgICAgIF9vcGVuc3NsX2xvZ19lcnJvcihyYywgTlVMTCwgIkJJT19kb19jb25uZWN0Iik7CiAgICAgICAgICAgICBCSU9fZnJlZShiaW8pOwotICAgICAgICAgICAgU05NUF9GUkVFKHRsc2RhdGEpOwotICAgICAgICAgICAgU05NUF9GUkVFKHQpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KIApAQCAtNzQ3LDggKzc0Nyw2IEBACiAgICAgICAgICAgICBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMoU1RBVF9UTFNUTV9TTk1QVExTVE1TRVNTSU9OT1BFTkVSUk9SUyk7CiAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAidGxzdGNwOiBmYWlsZWQgdG8gY3JlYXRlIGEgU1NMIGNvbm5lY3Rpb25cbiIpOwogICAgICAgICAgICAgQklPX2ZyZWUoYmlvKTsKLSAgICAgICAgICAgIFNOTVBfRlJFRSh0bHNkYXRhKTsKLSAgICAgICAgICAgIFNOTVBfRlJFRSh0KTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CiAgICAgICAgIApAQCAtNzYyLDggKzc2MCw2IEBACiAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAidGxzdGNwOiBmYWlsZWQgdG8gY3JlYXRlIGEgU1NMIGNvbm5lY3Rpb25cbiIpOwogICAgICAgICAgICAgU1NMX3NodXRkb3duKHNzbCk7CiAgICAgICAgICAgICBCSU9fZnJlZShiaW8pOwotICAgICAgICAgICAgU05NUF9GUkVFKHRsc2RhdGEpOwotICAgICAgICAgICAgU05NUF9GUkVFKHQpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KIApAQCAtNzc0LDggKzc3MCw2IEBACiAgICAgICAgICAgICBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMoU1RBVF9UTFNUTV9TTk1QVExTVE1TRVNTSU9OT1BFTkVSUk9SUyk7CiAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAidGxzdGNwOiBmYWlsZWQgdG8gc3NsX2Nvbm5lY3RcbiIpOwogICAgICAgICAgICAgQklPX2ZyZWUoYmlvKTsKLSAgICAgICAgICAgIFNOTVBfRlJFRSh0bHNkYXRhKTsKLSAgICAgICAgICAgIFNOTVBfRlJFRSh0KTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CiAKQEAgLTgzMCw4ICs4MjQsNiBAQAogICAgICAgICAgICAgc25tcF9sb2coTE9HX0VSUiwgInRsc3RjcDogZmFpbGVkIHRvIHZlcmlmeSBzc2wgY2VydGlmaWNhdGVcbiIpOwogICAgICAgICAgICAgU1NMX3NodXRkb3duKHNzbCk7CiAgICAgICAgICAgICBCSU9fZnJlZShiaW8pOwotICAgICAgICAgICAgU05NUF9GUkVFKHRsc2RhdGEpOwotICAgICAgICAgICAgU05NUF9GUkVFKHQpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KIApAQCAtODY5LDYgKzg2MSw3IEBACiAgICAgICAgIHQtPnNvY2sgPSBCSU9fZ2V0X2ZkKGJpbywgTlVMTCk7CiAKICAgICB9IGVsc2UgeworI2lmbmRlZiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUCiAgICAgICAgIC8qIElzIHRoZSBzZXJ2ZXIgKi8KICAgICAgICAgCiAgICAgICAgIC8qIENyZWF0ZSB0aGUgc29ja2V0IGJpbyAqLwpAQCAtODc4LDggKzg3MSw2IEBACiAgICAgICAgIHQtPmxvY2FsID0gKHZvaWQgKikgc3RyZHVwKHRsc2RhdGEtPmFkZHJfc3RyaW5nKTsKICAgICAgICAgdC0+bG9jYWxfbGVuZ3RoID0gc3RybGVuKHRsc2RhdGEtPmFkZHJfc3RyaW5nKSsxOwogICAgICAgICBpZiAoTlVMTCA9PSB0bHNkYXRhLT5hY2NlcHRfYmlvKSB7Ci0gICAgICAgICAgICBTTk1QX0ZSRUUodCk7Ci0gICAgICAgICAgICBTTk1QX0ZSRUUodGxzZGF0YSk7CiAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiVExTVENQOiBGYWxpZWQgdG8gY3JlYXRlIGEgYWNjZXB0IEJJT1xuIik7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQpAQCAtODg3LDggKzg3OCw2IEBACiAgICAgICAgIC8qIG9wZW5zc2wgcmVxdWlyZXMgYW4gaW5pdGlhbCBhY2NlcHQgdG8gYmluZCgpIHRoZSBzb2NrZXQgKi8KICAgICAgICAgaWYgKEJJT19kb19hY2NlcHQodGxzZGF0YS0+YWNjZXB0X2JpbykgPD0gMCkgewogCSAgICBfb3BlbnNzbF9sb2dfZXJyb3IocmMsIHRsc2RhdGEtPnNzbCwgIkJJT19kb19fYWNjZXB0Iik7Ci0gICAgICAgICAgICBTTk1QX0ZSRUUodCk7Ci0gICAgICAgICAgICBTTk1QX0ZSRUUodGxzZGF0YSk7CiAgICAgICAgICAgICBzbm1wX2xvZyhMT0dfRVJSLCAiVExTVENQOiBGYWxpZWQgdG8gZG8gZmlyc3QgYWNjZXB0IG9uIHRoZSBUTFMgYWNjZXB0IEJJT1xuIik7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQpAQCAtODk5LDYgKzg4OCw5IEBACiAKICAgICAgICAgdC0+c29jayA9IEJJT19nZXRfZmQodGxzZGF0YS0+YWNjZXB0X2JpbywgTlVMTCk7CiAgICAgICAgIHQtPmZsYWdzIHw9IE5FVFNOTVBfVFJBTlNQT1JUX0ZMQUdfTElTVEVOOworI2Vsc2UgLyogTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVCAqLworICAgICAgICByZXR1cm4gTlVMTDsKKyNlbmRpZiAvKiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUICovCiAgICAgfQogICAgIHJldHVybiB0OwogfQpAQCAtOTE3LDEyICs5MDksMTYgQEAKICAgICBjaGFyICpjcDsKICAgICBjaGFyIGJ1ZltTUFJJTlRfTUFYX0xFTl07CiAgICAgCisjaWZkZWYgTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVAorICAgIGlmIChpc3NlcnZlcikKKyAgICAgICAgcmV0dXJuIE5VTEw7CisjZW5kaWYgLyogTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVCAqLworCiAgICAgLyogYWxsb2NhdGUgb3VyIHRyYW5zcG9ydCBzdHJ1Y3R1cmUgKi8KICAgICB0ID0gU05NUF9NQUxMT0NfVFlQRURFRihuZXRzbm1wX3RyYW5zcG9ydCk7CiAgICAgaWYgKE5VTEwgPT0gdCkgewogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0gICAgbWVtc2V0KHQsIDAsIHNpemVvZihuZXRzbm1wX3RyYW5zcG9ydCkpOwogCiAgICAgLyogYWxsb2NhdGUgb3VyIFRMUyBzcGVjaWZpYyBkYXRhICovCiAgICAgaWYgKE5VTEwgPT0gKHRsc2RhdGEgPSBuZXRzbm1wX3Rsc2Jhc2VfYWxsb2NhdGVfdGxzZGF0YSh0LCBpc3NlcnZlcikpKQpkaWZmIC0tZ2l0IGEvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYwppbmRleCA1Y2IyOGQ2Li44NDk3ZjcxIDEwMDY0NAotLS0gYS9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYworKysgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYwpAQCAtMyw2ICszLDkgQEAKIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgogCisjaW5jbHVkZSA8bmV0LXNubXAvdHlwZXMuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmg+CisKICNpbmNsdWRlIDxzdGRkZWYuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgpAQCAtMTUsOSArMTgsNiBAQAogI2Vsc2UKICNpbmNsdWRlIDxzdHJpbmdzLmg+CiAjZW5kaWYKLSNpZiBIQVZFX1NZU19TT0NLRVRfSAotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNlbmRpZgogI2lmIEhBVkVfTkVUSU5FVF9JTl9ICiAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgogI2VuZGlmCkBAIC0zNyw3ICszNyw2IEBACiAKICNpbmNsdWRlIDxuZXQtc25tcC90eXBlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaD4KLSNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS90b29scy5oPgpAQCAtNTMsMTIgKzUyLDYgQEAKICNkZWZpbmUgTVNHX05PU0lHTkFMIDAKICNlbmRpZgogCi0jaWYgZGVmaW5lZChJUF9SRUNWRFNUQUREUikgJiYgZGVmaW5lZChfX0RyYWdvbkZseV9fKQotIyBpZm5kZWYgSVBfU0VORFNSQ0FERFIKLSMgIGRlZmluZSBJUF9TRU5EU1JDQUREUiBJUF9SRUNWRFNUQUREUiAvKiBEcmFnb25GbHkgQlNEICovCi0jIGVuZGlmCi0jZW5kaWYKLQogdm9pZAogX25ldHNubXBfdWRwX3NvY2tvcHRfc2V0KGludCBmZCwgaW50IGxvY2FsKQogewpAQCAtMzkzLDcgKzM4Niw3IEBACiAgICAgICAgICAgICAgICAgICAgICB2b2lkICoqb3BhcXVlLCBpbnQgKm9sZW5ndGgpCiB7CiAgICAgaW50ICAgICAgICAgICAgIHJjID0gLTE7Ci0gICAgc29ja2xlbl90ICAgICAgIGZyb21sZW4gPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyKTsKKyAgICBzb2NrbGVuX3QgICAgICAgZnJvbWxlbiA9IHNpemVvZihuZXRzbm1wX3NvY2thZGRyX3N0b3JhZ2UpOwogICAgIG5ldHNubXBfaW5kZXhlZF9hZGRyX3BhaXIgKmFkZHJfcGFpciA9IE5VTEw7CiAgICAgc3RydWN0IHNvY2thZGRyICpmcm9tOwogCkBAIC00MDUsNyArMzk4LDcgQEAKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1lbXNldChhZGRyX3BhaXIsIDAsIHNpemVvZihuZXRzbm1wX2luZGV4ZWRfYWRkcl9wYWlyKSk7Ci0gICAgICAgICAgICBmcm9tID0gKHN0cnVjdCBzb2NrYWRkciAqKSAmKGFkZHJfcGFpci0+cmVtb3RlX2FkZHIpOworICAgICAgICAgICAgZnJvbSA9ICZhZGRyX3BhaXItPnJlbW90ZV9hZGRyLnNhOwogICAgICAgICB9CiAKIAl3aGlsZSAocmMgPCAwKSB7CkBAIC00NTIsMTQgKzQ0NSwxNSBAQAogICAgIHN0cnVjdCBzb2NrYWRkciAqdG8gPSBOVUxMOwogCiAgICAgaWYgKG9wYXF1ZSAhPSBOVUxMICYmICpvcGFxdWUgIT0gTlVMTCAmJgotICAgICAgICAqb2xlbmd0aCA9PSBzaXplb2YobmV0c25tcF9pbmRleGVkX2FkZHJfcGFpcikpIHsKKyAgICAgICAgKCgqb2xlbmd0aCA9PSBzaXplb2YobmV0c25tcF9pbmRleGVkX2FkZHJfcGFpcikgfHwKKyAgICAgICAgICAoKm9sZW5ndGggPT0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbikpKSkpIHsKICAgICAgICAgYWRkcl9wYWlyID0gKG5ldHNubXBfaW5kZXhlZF9hZGRyX3BhaXIgKikgKCpvcGFxdWUpOwogICAgIH0gZWxzZSBpZiAodCAhPSBOVUxMICYmIHQtPmRhdGEgIT0gTlVMTCAmJgogICAgICAgICAgICAgICAgIHQtPmRhdGFfbGVuZ3RoID09IHNpemVvZihuZXRzbm1wX2luZGV4ZWRfYWRkcl9wYWlyKSkgewogICAgICAgICBhZGRyX3BhaXIgPSAobmV0c25tcF9pbmRleGVkX2FkZHJfcGFpciAqKSAodC0+ZGF0YSk7CiAgICAgfQogCi0gICAgdG8gPSAoc3RydWN0IHNvY2thZGRyICopICYoYWRkcl9wYWlyLT5yZW1vdGVfYWRkcik7CisgICAgdG8gPSAmYWRkcl9wYWlyLT5yZW1vdGVfYWRkci5zYTsKIAogICAgIGlmICh0byAhPSBOVUxMICYmIHQgIT0gTlVMTCAmJiB0LT5zb2NrID49IDApIHsKICAgICAgICAgREVCVUdJRigibmV0c25tcF91ZHAiKSB7CkBAIC00NzIsNyArNDY2LDcgQEAKIAl3aGlsZSAocmMgPCAwKSB7CiAjaWZkZWYgbmV0c25tcF91ZHBiYXNlX3JlY3Zmcm9tX3NlbmR0b19kZWZpbmVkCiAgICAgICAgICAgICByYyA9IG5ldHNubXBfdWRwX3NlbmR0byh0LT5zb2NrLAotICAgICAgICAgICAgICAgICAgICBhZGRyX3BhaXIgPyAmKGFkZHJfcGFpci0+bG9jYWxfYWRkci5zaW5fYWRkcikgOiBOVUxMLAorICAgICAgICAgICAgICAgICAgICBhZGRyX3BhaXIgPyAmKGFkZHJfcGFpci0+bG9jYWxfYWRkci5zaW4uc2luX2FkZHIpIDogTlVMTCwKICAgICAgICAgICAgICAgICAgICAgYWRkcl9wYWlyID8gYWRkcl9wYWlyLT5pZl9pbmRleCA6IDAsIHRvLCBidWYsIHNpemUpOwogI2Vsc2UKICAgICAgICAgICAgIHJjID0gc2VuZHRvKHQtPnNvY2ssIGJ1Ziwgc2l6ZSwgMCwgdG8sIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHIpKTsKZGlmZiAtLWdpdCBhL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jCmluZGV4IDdmYTJlZmQuLmEwYWJkOGMgMTAwNjQ0Ci0tLSBhL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMKKysrIGIvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYwpAQCAtMTEsNiArMTEsMTAgQEAKIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgogCisjaW5jbHVkZSA8bmV0LXNubXAvdHlwZXMuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oPgorCiAjaW5jbHVkZSA8c3RkZGVmLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KQEAgLTUzLDggKzU3LDYgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9jb25maWdfYXBpLmg+CiAKICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg+Ci0jaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmg+Ci0jaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaD4KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBTb2NrZXRCYXNlRG9tYWluLmg+CiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaD4KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg+CkBAIC03MCwxMiArNzIsNiBAQAogI2RlZmluZSBJTkVUX0FERFJTVFJMRU4gMTYKICNlbmRpZgogCi0jaWYgZGVmaW5lZChJUF9SRUNWRFNUQUREUikgJiYgZGVmaW5lZChfX0RyYWdvbkZseV9fKQotIyBpZm5kZWYgSVBfU0VORFNSQ0FERFIKLSMgIGRlZmluZSBJUF9TRU5EU1JDQUREUiBJUF9SRUNWRFNUQUREUiAvKiBEcmFnb25GbHkgQlNEICovCi0jIGVuZGlmCi0jZW5kaWYKLQogc3RhdGljIG5ldHNubXBfdGRvbWFpbiB1ZHBEb21haW47CiAKIC8qCmRpZmYgLS1naXQgYS9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmMgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmMKaW5kZXggNzgwOWNhZS4uOGMwZmIwNSAxMDA2NDQKLS0tIGEvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jCisrKyBiL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYwpAQCAtMyw2ICszLDkgQEAKIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgogCisjaW5jbHVkZSA8bmV0LXNubXAvdHlwZXMuaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oPgorCiAjaW5jbHVkZSA8c3RkZGVmLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KQEAgLTM2LDE3ICszOSw4IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg+CiAKICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBTb2NrZXRCYXNlRG9tYWluLmg+Ci0jaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaD4KLSNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmg+Ci0KLSNpZiBkZWZpbmVkKElQX1JFQ1ZEU1RBRERSKSAmJiBkZWZpbmVkKF9fRHJhZ29uRmx5X18pCi0jIGlmbmRlZiBJUF9TRU5EU1JDQUREUgotIyAgZGVmaW5lIElQX1NFTkRTUkNBRERSIElQX1JFQ1ZEU1RBRERSIC8qIERyYWdvbkZseSBCU0QgKi8KLSMgZW5kaWYKLSNlbmRpZgogCiAjaWYgZGVmaW5lZChIQVZFX0lQX1BLVElORk8pIHx8IGRlZmluZWQoSEFWRV9JUF9SRUNWRFNUQUREUikKLQogaW50IG5ldHNubXBfdWRwaXB2NF9yZWN2ZnJvbShpbnQgcywgdm9pZCAqYnVmLCBpbnQgbGVuLCBzdHJ1Y3Qgc29ja2FkZHIgKmZyb20sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tsZW5fdCAqZnJvbWxlbiwgc3RydWN0IHNvY2thZGRyICpkc3RpcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2xlbl90ICpkc3RsZW4sIGludCAqaWZfaW5kZXgpCkBAIC03MSw2ICs2NSwxMSBAQAogICAgIG5ldHNubXBfaW5kZXhlZF9hZGRyX3BhaXIgYWRkcl9wYWlyOwogICAgIHNvY2tsZW5fdCAgICAgICBsb2NhbF9hZGRyX2xlbjsKIAorI2lmZGVmIE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQKKyAgICBpZiAobG9jYWwpCisgICAgICAgIHJldHVybiBOVUxMOworI2VuZGlmIC8qIE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQgKi8KKwogICAgIGlmIChhZGRyID09IE5VTEwgfHwgYWRkci0+c2luX2ZhbWlseSAhPSBBRl9JTkVUKSB7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KQEAgLTk5LDEzICs5OCwxNCBAQAogICAgIF9uZXRzbm1wX3VkcF9zb2Nrb3B0X3NldCh0LT5zb2NrLCBsb2NhbCk7CiAKICAgICBpZiAobG9jYWwpIHsKKyNpZm5kZWYgTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVAogICAgICAgICAvKgogICAgICAgICAgKiBUaGlzIHNlc3Npb24gaXMgaW50ZW5lZGVkIGFzIGEgc2VydmVyLCBzbyB3ZSBtdXN0IGJpbmQgb24gdG8gdGhlCiAgICAgICAgICAqIGdpdmVuIElQIGFkZHJlc3MsIHdoaWNoIG1heSBpbmNsdWRlIGFuIGludGVyZmFjZSBhZGRyZXNzLCBvciBjb3VsZAogICAgICAgICAgKiBiZSBJTkFERFJfQU5ZLCBidXQgY2VydGFpbmx5IGluY2x1ZGVzIGEgcG9ydCBudW1iZXIuCiAgICAgICAgICAqLwogCi0gICAgICB0LT5sb2NhbCA9ICh1X2NoYXIgKikgbWFsbG9jKDYpOworICAgICAgICB0LT5sb2NhbCA9ICh1X2NoYXIgKikgbWFsbG9jKDYpOwogICAgICAgICBpZiAodC0+bG9jYWwgPT0gTlVMTCkgewogICAgICAgICAgICAgbmV0c25tcF90cmFuc3BvcnRfZnJlZSh0KTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMTYwLDYgKzE2MCw5IEBACiAgICAgICAgIH0KICAgICAgICAgdC0+ZGF0YSA9IE5VTEw7CiAgICAgICAgIHQtPmRhdGFfbGVuZ3RoID0gMDsKKyNlbHNlIC8qIE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQgKi8KKyAgICAgICAgcmV0dXJuIE5VTEw7CisjZW5kaWYgLyogTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVCAqLwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8qCiAgICAgICAgICAqIFRoaXMgaXMgYSBjbGllbnQgc2Vzc2lvbi4gIElmIHdlJ3ZlIGJlZW4gZ2l2ZW4gYQpkaWZmIC0tZ2l0IGEvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYwppbmRleCA1NWUzNjEwLi4xOGRlODc2IDEwMDY0NAotLS0gYS9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYworKysgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYwpAQCAtMSw2ICsxLDcgQEAKICNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KIAogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oPgogCiAjaW5jbHVkZSA8bmV0LXNubXAvdHlwZXMuaD4KIApAQCAtNjQsNiArNjUsNyBAQAogCiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaD4KKyNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg+CiAKICNpbmNsdWRlICJpbmV0X250b3AuaCIKICNpbmNsdWRlICJpbmV0X3B0b24uaCIKQEAgLTE1Miw3ICsxNTQsOCBAQAogICAgICAgICAqb2xlbmd0aCA9PSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luNikpIHsKICAgICAgICAgdG8gPSAoc3RydWN0IHNvY2thZGRyICopICgqb3BhcXVlKTsKICAgICB9IGVsc2UgaWYgKHQgIT0gTlVMTCAmJiB0LT5kYXRhICE9IE5VTEwgJiYKLSAgICAgICAgICAgICAgIHQtPmRhdGFfbGVuZ3RoID09IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW42KSkgeworICAgICAgICAgICAgICAgKCh0LT5kYXRhX2xlbmd0aCA9PSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luNikpIHx8CisgICAgICAgICAgICAgICAgKHQtPmRhdGFfbGVuZ3RoID09IHNpemVvZihuZXRzbm1wX2luZGV4ZWRfYWRkcl9wYWlyKSkpKSB7CiAgICAgICAgIHRvID0gKHN0cnVjdCBzb2NrYWRkciAqKSAodC0+ZGF0YSk7CiAgICAgfQogCkBAIC0xODgsMTEgKzE5MSwxNiBAQAogICAgIG5ldHNubXBfdHJhbnNwb3J0ICp0ID0gTlVMTDsKICAgICBpbnQgICAgICAgICAgICAgcmMgPSAwOwogCisjaWZkZWYgTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVAorICAgIGlmIChsb2NhbCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisjZW5kaWYgLyogTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVCAqLworCiAgICAgaWYgKGFkZHIgPT0gTlVMTCB8fCBhZGRyLT5zaW42X2ZhbWlseSAhPSBBRl9JTkVUNikgewogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICB0ID0gKG5ldHNubXBfdHJhbnNwb3J0ICopIG1hbGxvYyhzaXplb2YobmV0c25tcF90cmFuc3BvcnQpKTsKKyAgICB0ID0gU05NUF9NQUxMT0NfVFlQRURFRihuZXRzbm1wX3RyYW5zcG9ydCk7CiAgICAgaWYgKHQgPT0gTlVMTCkgewogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CkBAIC0yMDUsOCArMjEzLDYgQEAKICAgICAgICAgZnJlZShzdHIpOwogICAgIH0KIAotICAgIG1lbXNldCh0LCAwLCBzaXplb2YobmV0c25tcF90cmFuc3BvcnQpKTsKLQogICAgIHQtPmRvbWFpbiA9IG5ldHNubXBfVURQSVB2NkRvbWFpbjsKICAgICB0LT5kb21haW5fbGVuZ3RoID0KICAgICAgICAgc2l6ZW9mKG5ldHNubXBfVURQSVB2NkRvbWFpbikgLyBzaXplb2YobmV0c25tcF9VRFBJUHY2RG9tYWluWzBdKTsKQEAgLTIyMCw4ICsyMjYsOSBAQAogICAgIF9uZXRzbm1wX3VkcF9zb2Nrb3B0X3NldCh0LT5zb2NrLCBsb2NhbCk7CiAKICAgICBpZiAobG9jYWwpIHsKKyNpZm5kZWYgTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVAogICAgICAgICAvKgotICAgICAgICAgKiBUaGlzIHNlc3Npb24gaXMgaW50ZW5lZGVkIGFzIGEgc2VydmVyLCBzbyB3ZSBtdXN0IGJpbmQgb24gdG8gdGhlCisgICAgICAgICAqIFRoaXMgc2Vzc2lvbiBpcyBpbnRlbmRlZCBhcyBhIHNlcnZlciwgc28gd2UgbXVzdCBiaW5kIG9uIHRvIHRoZQogICAgICAgICAgKiBnaXZlbiBJUCBhZGRyZXNzLCB3aGljaCBtYXkgaW5jbHVkZSBhbiBpbnRlcmZhY2UgYWRkcmVzcywgb3IgY291bGQKICAgICAgICAgICogYmUgSU5BRERSX0FOWSwgYnV0IGNlcnRhaW5seSBpbmNsdWRlcyBhIHBvcnQgbnVtYmVyLgogICAgICAgICAgKi8KQEAgLTI1NSwyMCArMjYyLDIzIEBACiAgICAgICAgIHQtPmxvY2FsX2xlbmd0aCA9IDE4OwogICAgICAgICB0LT5kYXRhID0gTlVMTDsKICAgICAgICAgdC0+ZGF0YV9sZW5ndGggPSAwOworI2Vsc2UgLyogTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVCAqLworICAgICAgICByZXR1cm4gTlVMTDsKKyNlbmRpZiAvKiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUICovCiAgICAgfSBlbHNlIHsKICAgICAgICAgLyoKICAgICAgICAgICogVGhpcyBpcyBhIGNsaWVudCBzZXNzaW9uLiAgU2F2ZSB0aGUgYWRkcmVzcyBpbiB0aGUKICAgICAgICAgICogdHJhbnNwb3J0LXNwZWNpZmljIGRhdGEgcG9pbnRlciBmb3IgbGF0ZXIgdXNlIGJ5IG5ldHNubXBfdWRwNl9zZW5kLgogICAgICAgICAgKi8KIAotICAgICAgICB0LT5kYXRhID0gbWFsbG9jKHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW42KSk7CisgICAgICAgIHQtPmRhdGEgPSBtYWxsb2Moc2l6ZW9mKG5ldHNubXBfaW5kZXhlZF9hZGRyX3BhaXIpKTsKICAgICAgICAgaWYgKHQtPmRhdGEgPT0gTlVMTCkgewogICAgICAgICAgICAgbmV0c25tcF9zb2NrZXRiYXNlX2Nsb3NlKHQpOwogICAgICAgICAgICAgbmV0c25tcF90cmFuc3BvcnRfZnJlZSh0KTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CiAgICAgICAgIG1lbWNweSh0LT5kYXRhLCBhZGRyLCBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luNikpOwotICAgICAgICB0LT5kYXRhX2xlbmd0aCA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW42KTsKKyAgICAgICAgdC0+ZGF0YV9sZW5ndGggPSBzaXplb2YobmV0c25tcF9pbmRleGVkX2FkZHJfcGFpcik7CiAgICAgICAgIHQtPnJlbW90ZSA9ICh1bnNpZ25lZCBjaGFyKiltYWxsb2MoMTgpOwogICAgICAgICBpZiAodC0+cmVtb3RlID09IE5VTEwpIHsKICAgICAgICAgICAgIG5ldHNubXBfc29ja2V0YmFzZV9jbG9zZSh0KTsKQEAgLTU0MCw3ICs1NTAsNyBAQAogCiAgICAgICAgICAgICAgICAgaGludHMuYWlfZmFtaWx5ID0gQUZfSU5FVDY7CiAgICAgICAgICAgICAgICAgaGludHMuYWlfc29ja3R5cGUgPSBTT0NLX0RHUkFNOwotICAgICAgICAgICAgICAgIGdhaV9lcnJvciA9IGdldGFkZHJpbmZvKHNvdXJjZSwgTlVMTCwgJmhpbnRzLCAmcmVzKTsKKyAgICAgICAgICAgICAgICBnYWlfZXJyb3IgPSBuZXRzbm1wX2dldGFkZHJpbmZvKHNvdXJjZSwgTlVMTCwgJmhpbnRzLCAmcmVzKTsKICAgICAgICAgICAgICAgICBpZiAoZ2FpX2Vycm9yICE9IDApIHsKICAgICAgICAgICAgICAgICAgICAgY29uZmlnX3BlcnJvcihnYWlfc3RyZXJyb3IoZ2FpX2Vycm9yKSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jIGIvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmMKaW5kZXggMWJkNWVmNi4uNDdkZmZjMSAxMDA2NDQKLS0tIGEvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmMKKysrIGIvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmMKQEAgLTEsNCArMSw1IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CisjaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtZmVhdHVyZXMuaD4KIAogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaD4KQEAgLTM0LDcgKzM1LDEwIEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaD4KICNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oPiAvKiBta2RpcmhpZXIgKi8KKyNpbmNsdWRlIDxuZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg+CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih0cmFuc3BvcnRfdW5peF9zb2NrZXRfYWxsLCB0cmFuc3BvcnRfYWxsKQorbmV0c25tcF9mZWF0dXJlX2NoaWxkX29mKHVuaXhfc29ja2V0X3BhdGhzLCB0cmFuc3BvcnRfdW5peF9zb2NrZXRfYWxsKQogCiAjaWZuZGVmIE5FVFNOTVBfU1RSRUFNX1FVRVVFX0xFTgogI2RlZmluZSBORVRTTk1QX1NUUkVBTV9RVUVVRV9MRU4gIDUKQEAgLTI1OSw2ICsyNjMsNyBAQAogc3RhdGljIGludCBjcmVhdGVfcGF0aCA9IDA7CiBzdGF0aWMgbW9kZV90IGNyZWF0ZV9tb2RlOwogCisjaWZuZGVmIE5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVU5JWF9TT0NLRVRfUEFUSFMKIC8qKiBJZiB0cnlpbmcgdG8gY3JlYXRlIHVuaXggc29ja2V0cyBpbiBub25leGlzdGluZyBkaXJlY3RvcmllcyB0aGVuCiAgKiAgdHJ5IHRvIGNyZWF0ZSB0aGUgZGlyZWN0b3J5IHdpdGggbWFzayBtb2RlLgogICovCkBAIC0yNzUsNiArMjgwLDcgQEAKIHsKICAgICBjcmVhdGVfcGF0aCA9IDA7CiB9CisjZW5kaWYgLyogTkVUU05NUF9GRUFUVVJFX1JFTU9WRV9VTklYX1NPQ0tFVF9QQVRIUyAqLwogCiAvKgogICogT3BlbiBhIFVuaXgtZG9tYWluIHRyYW5zcG9ydCBmb3IgU05NUC4gIExvY2FsIGlzIFRSVUUgaWYgYWRkciBpcyB0aGUgbG9jYWwKQEAgLTI5MCwxMSArMjk2LDE4IEBACiAgICAgc29ja2FkZHJfdW5fcGFpciAqc3VwID0gTlVMTDsKICAgICBpbnQgICAgICAgICAgICAgcmMgPSAwOwogCisjaWZkZWYgTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVAorICAgIC8qIFNQRUNJQUwgQ0lSQ1VNU1RBTkNFOiBXZSBzdGlsbCB3YW50IEFnZW50WCB0byBiZSBhYmxlIHRvIG9wZXJhdGUsCisgICAgICAgc28gd2UgYWxsb3cgZm9yIHVuaXggZG9tYWluIHNvY2t0ZXMgdG8gc3RpbGwgbGlzdGVuIHdoZW4gZXZlcnl0aGluZworICAgICAgIGVsc2UgaXNuJ3QgYWxsb3dlZCB0by4gIFRodXMsIHdlIGlnbm9yZSB0aGlzIGRlZmluZSBpbiB0aGlzIGZpbGUuCisgICAgKi8KKyNlbmRpZiAvKiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUICovCisKICAgICBpZiAoYWRkciA9PSBOVUxMIHx8IGFkZHItPnN1bl9mYW1pbHkgIT0gQUZfVU5JWCkgewogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICB0ID0gKG5ldHNubXBfdHJhbnNwb3J0ICopIG1hbGxvYyhzaXplb2YobmV0c25tcF90cmFuc3BvcnQpKTsKKyAgICB0ID0gU05NUF9NQUxMT0NfVFlQRURFRihuZXRzbm1wX3RyYW5zcG9ydCk7CiAgICAgaWYgKHQgPT0gTlVMTCkgewogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CkBAIC0zMDcsOCArMzIwLDYgQEAKICAgICAgICAgZnJlZShzdHIpOwogICAgIH0KIAotICAgIG1lbXNldCh0LCAwLCBzaXplb2YobmV0c25tcF90cmFuc3BvcnQpKTsKLQogICAgIHQtPmRvbWFpbiA9IG5ldHNubXBfVW5peERvbWFpbjsKICAgICB0LT5kb21haW5fbGVuZ3RoID0KICAgICAgICAgc2l6ZW9mKG5ldHNubXBfVW5peERvbWFpbikgLyBzaXplb2YobmV0c25tcF9Vbml4RG9tYWluWzBdKTsKZGlmZiAtLWdpdCBhL3NubXBsaWIvdWNkX2NvbXBhdC5jIGIvc25tcGxpYi91Y2RfY29tcGF0LmMKaW5kZXggYmYyMWJlOC4uNjRjMWUxMyAxMDA2NDQKLS0tIGEvc25tcGxpYi91Y2RfY29tcGF0LmMKKysrIGIvc25tcGxpYi91Y2RfY29tcGF0LmMKQEAgLTQsNiArNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPgorI2luY2x1ZGUgPG5ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg+CiAKICNpbmNsdWRlIDxuZXQtc25tcC90eXBlcy5oPgogI2luY2x1ZGUgPG5ldC1zbm1wL3Nlc3Npb25fYXBpLmg+CkBAIC0xMSw2ICsxMiw5IEBACiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9taWIuaD4JLyogZm9yIE9JRCBPL1AgZm9ybWF0IGVudW1zICovCiAjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS91Y2RfY29tcGF0Lmg+CiAKK25ldHNubXBfZmVhdHVyZV9jaGlsZF9vZih1Y2RfY29tcGF0aWJpbGl0eSwgbGlibmV0c25tcCkKKworI2lmbmRlZiBORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1VDRF9DT01QQVRJQklMSVRZCiAvKgogICogdXNlIDxuZXRzbm1wX3Nlc3Npb24gKiktPnNfc25tcF9lcnJubyBpbnN0ZWFkIAogICovCkBAIC0yMjEsMyArMjI1LDYgQEAKIHsKICAgbmV0c25tcF9kc19zaHV0ZG93bigpOwogfQorI2Vsc2UgLyogIU5FVFNOTVBfRkVBVFVSRV9SRU1PVkVfVUNEX0NPTVBBVElCSUxJVFkgKi8KK25ldHNubXBfZmVhdHVyZV91bnVzZWQodWNkX2NvbXBhdGliaWxpdHkpOworI2VuZGlmIC8qICFORVRTTk1QX0ZFQVRVUkVfUkVNT1ZFX1VDRF9DT01QQVRJQklMSVRZICovCmRpZmYgLS1naXQgYS9zbm1wbGliL3ZhY20uYyBiL3NubXBsaWIvdmFjbS5jCmluZGV4IDJkYTFkZjkuLmM2Mzk3ODUgMTAwNjQ0Ci0tLSBhL3NubXBsaWIvdmFjbS5jCisrKyBiL3NubXBsaWIvdmFjbS5jCkBAIC04NDIsNiArODQyLDcgQEAKICAgICByZXR1cm4gZ3A7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiB2b2lkCiB2YWNtX2Rlc3Ryb3lHcm91cEVudHJ5KGludCBzZWN1cml0eU1vZGVsLCBjb25zdCBjaGFyICpzZWN1cml0eU5hbWUpCiB7CkBAIC04NjcsNiArODY4LDcgQEAKICAgICBmcmVlKHZwKTsKICAgICByZXR1cm47CiB9CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKIHZvaWQKIHZhY21fZGVzdHJveUFsbEdyb3VwRW50cmllcyh2b2lkKQpAQCAtMTAzOCw2ICsxMDQwLDcgQEAKICAgICByZXR1cm4gdnA7CiB9CiAKKyNpZm5kZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiB2b2lkCiB2YWNtX2Rlc3Ryb3lBY2Nlc3NFbnRyeShjb25zdCBjaGFyICpncm91cE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpjb250ZXh0UHJlZml4LApAQCAtMTA2OSw2ICsxMDcyLDcgQEAKICAgICBmcmVlKHZwKTsKICAgICByZXR1cm47CiB9CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKIHZvaWQKIHZhY21fZGVzdHJveUFsbEFjY2Vzc0VudHJpZXModm9pZCkKQEAgLTExNDIsMTIgKzExNDYsMTQgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld1N1YnRyZWVMZW4pOwogfQogCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAogdm9pZAogdmFjbV9kZXN0cm95Vmlld0VudHJ5KGNvbnN0IGNoYXIgKnZpZXdOYW1lLAogICAgICAgICAgICAgICAgICAgICAgIG9pZCAqIHZpZXdTdWJ0cmVlLCBzaXplX3Qgdmlld1N1YnRyZWVMZW4pCiB7CiAgICAgbmV0c25tcF92aWV3X2Rlc3Ryb3koICZ2aWV3TGlzdCwgdmlld05hbWUsIHZpZXdTdWJ0cmVlLCB2aWV3U3VidHJlZUxlbik7CiB9CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCiAKIHZvaWQKIHZhY21fZGVzdHJveUFsbFZpZXdFbnRyaWVzKHZvaWQpCmRpZmYgLS1naXQgYS90ZXN0aW5nL1JVTlRFU1RTIGIvdGVzdGluZy9SVU5URVNUUwppbmRleCA2OWZiYWU0Li40OTMzMzA3IDEwMDc1NQotLS0gYS90ZXN0aW5nL1JVTlRFU1RTCisrKyBiL3Rlc3RpbmcvUlVOVEVTVFMKQEAgLTEyLDEzICsxMiwxNyBAQAogCiAjIE1ha2Ugc3VyZSBNaW5HVyAvIE1TWVMgdXNlcnMgaGF2ZSB0aGUgcHNraWxsLmV4ZSBwcm9ncmFtIHRvIHN0b3AgdGhlIGFnZW50IGFuZAogIyBzbm1wdHJhcGQKLWlmIFsgIngkT1NUWVBFIiA9ICJ4bXN5cyIgLWEgInhgdHlwZSBwc2tpbGwuZXhlIDI+L2Rldi9udWxsYCIgPSAieCIgXTsgdGhlbgotICAgIGVjaG8gIkNvdWxkIG5vdCBmaW5kIHBza2lsbC5leGUuIEFib3J0aW5nIHRlc3RzLiIKLSAgICBlY2hvICJwc2tpbGwuZXhlIGNhbiBiZSBpbnN0YWxsZWQgYXMgZm9sbG93czoiCi0gICAgZWNobyAiIC0gRG93bmxvYWQgcHNraWxsLmV4ZSBmcm9tIGh0dHA6Ly90ZWNobmV0Lm1pY3Jvc29mdC5jb20vZW4tdXMvc3lzaW50ZXJuYWxzL2RlZmF1bHQuYXNweC4iCi0gICAgZWNobyAiIC0gQ29weSBwc2tpbGwuZXhlIHRvIEM6XFxNaW5HV1xcbXN5c1xcMS4wXFxiaW4uIgotICAgIGV4aXQgMQotZmkgCitpZiBbICJ4JE9TVFlQRSIgPSAieG1zeXMiIF07IHRoZW4KKyAgICBmb3IgZSBpbiBwc2tpbGwuZXhlIHBzbGlzdC5leGU7IGRvCisJaWYgWyAieGB0eXBlICRlIDI+L2Rldi9udWxsYCIgPSAieCIgXTsgdGhlbgorCSAgICBlY2hvICJDb3VsZCBub3QgZmluZCAkZS4gQWJvcnRpbmcgdGVzdHMuIgorCSAgICBlY2hvICIkZSBjYW4gYmUgaW5zdGFsbGVkIGFzIGZvbGxvd3M6IgorCSAgICBlY2hvICItIERvd25sb2FkIFBTVG9vbHMuemlwIGZyb20gaHR0cDovL3RlY2huZXQubWljcm9zb2Z0LmNvbS9lbi11cy9zeXNpbnRlcm5hbHMvZGVmYXVsdC4iCisJICAgIGVjaG8gIi0gQ29weSAkZSB0byBDOlxcTWluR1dcXG1zeXNcXDEuMFxcYmluLiIKKwkgICAgZXhpdCAxCisJZmkKKyAgICBkb25lCitmaQogCiBzdWNjZXNzX2NvdW50PTAKIGZhaWxlZF9jb3VudD0wCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M2NvbmZpZyBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzY29uZmlnCmluZGV4IDQzYTdmYjIuLjU1ZGY1YjQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzY29uZmlnCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzY29uZmlnCkBAIC0xLDUgKzEsNyBAQAogIyEvYmluL3NoCiAKK1NLSVBJRk5PVCBORVRTTk1QX1NFQ01PRF9VU00KKwogWyAieCRTTk1QX1NNVVhfU09DS0VUIiA9ICJ4IiBdICYmIFNOTVBfU01VWF9TT0NLRVQ9MS4wLjAuMAogCiBDT05GSUdBR0VOVCBbc25tcF0gcGVyc2lzdGVudGRpciAkU05NUF9UTVBfUEVSU0lTVEVOVERJUgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdiYXNlIGIvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdiYXNlCmluZGV4IDk5YmRhMDQuLmIyZTFlYjIgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdXNtY29uZmlnYmFzZQorKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3VzbWNvbmZpZ2Jhc2UKQEAgLTIyLDYgKzIyLDggQEAKICMgICBURVNUUFJJVkFSR1NbTk9QQVNTXVsyXQogIwogCitTS0lQSUZOT1QgTkVUU05NUF9TRUNNT0RfVVNNCisKICMjIERlZmF1bHRzCiBbICJ4JERFRlNFQ1VSSVRZTEVWRUwiID0gIngiIF0gJiYgREVGU0VDVVJJVFlMRVZFTD1hdXRoUHJpdgogCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3ZhY21jb25maWcgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3ZhY21jb25maWcKaW5kZXggM2Q3YmY5NS4uN2MzNWUzNiAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN2YWNtY29uZmlnCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdmFjbWNvbmZpZwpAQCAtMTAsNiArMTAsNyBAQAogIyBYWFg6IGRvIGF1dG9zZWxlY3Rpb24gb2Ygc3VwcG9ydGVkIGFsZ29yaXRobXMKIFNLSVBJRiBORVRTTk1QX0RJU0FCTEVfTUQ1CiBTS0lQSUYgTkVUU05NUF9ESVNBQkxFX0RFUworU0tJUElGTk9UIE5FVFNOTVBfU0VDTU9EX1VTTQogCiBDT05GSUdBR0VOVCBbc25tcF0gcGVyc2lzdGVudGRpciAkU05NUF9UTVBfUEVSU0lTVEVOVERJUgogCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2YW55Y29uZmlnIGIvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdmFueWNvbmZpZwppbmRleCBiOTFlYjBmLi44Y2I1M2RjIDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2YW55Y29uZmlnCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3Zhbnljb25maWcKQEAgLTI2LDQgKzI2LDQgQEAKIAogQ09ORklHQUdFTlQgZ3JvdXAgICB0ZXN0Y29tbXVuaXR5Z3JvdXAgICRzbm1wX3ZlcnNpb24gICAgIHRlc3Rjb21tdW5pdHlzZWMKIENPTkZJR0FHRU5UIHZpZXcgICAgYWxsICAgICBpbmNsdWRlZCAuMSA4MAotQ09ORklHQUdFTlQgImFjY2VzcyAgdGVzdGNvbW11bml0eWdyb3VwICAiJyIiJyIgYW55IG5vYXV0aCBleGFjdCBhbGwgJHNubXBfd3JpdGVfYWNjZXNzIG5vbmUiCitDT05GSUdBR0VOVCAiYWNjZXNzICB0ZXN0Y29tbXVuaXR5Z3JvdXAgICcnIGFueSBub2F1dGggZXhhY3QgYWxsICRzbm1wX3dyaXRlX2FjY2VzcyBub25lIgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0MXNubXB2MmNzZXRfc2ltcGxlIGIvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0MXNubXB2MmNzZXRfc2ltcGxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4ZDliYWUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTQxc25tcHYyY3NldF9zaW1wbGUKQEAgLTAsMCArMSwzNSBAQAorIyEvYmluL3NoCisKKy4gLi4vc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaAorCitIRUFERVIgU05NUHYyYyBzZXQgb2Ygc3lzdGVtLnN5c0NvbnRhY3QuMAorCitTS0lQSUYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCitTS0lQSUYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCitTS0lQSUYgTkVUU05NUF9ESVNBQkxFX1NOTVBWMkMKK1NLSVBJRk5PVCBVU0lOR19NSUJJSV9TWVNURU1fTUlCX01PRFVMRQorCisjCisjIEJlZ2luIHRlc3QKKyMKKworIyBzdGFuZGFyZCBWMkMgY29uZmlndXJhdGlvbjogdGVzdGNvbXVubml0eQorc25tcF93cml0ZV9hY2Nlc3M9J2FsbCcKKy4gLi9TdjJjY29uZmlnCitTVEFSVEFHRU5UCisKK0NBUFRVUkUgInNubXBnZXQgLU9uICRTTk1QX0ZMQUdTIC1jIHRlc3Rjb21tdW5pdHkgLXYgMmMgJFNOTVBfVFJBTlNQT1JUX1NQRUM6JFNOTVBfVEVTVF9ERVNUJFNOTVBfU05NUERfUE9SVCAuMS4zLjYuMS4yLjEuMS40LjAiCisKK0NIRUNLICIuMS4zLjYuMS4yLjEuMS40LjAgPSBTVFJJTkc6IgorCitDQVBUVVJFICJzbm1wc2V0IC1PbiAkU05NUF9GTEFHUyAtYyB0ZXN0Y29tbXVuaXR5IC12IDJjICRTTk1QX1RSQU5TUE9SVF9TUEVDOiRTTk1QX1RFU1RfREVTVCRTTk1QX1NOTVBEX1BPUlQgLjEuMy42LjEuMi4xLjEuNC4wIHMgZm9vYmFydGVzdGluZ2JheiIKKworQ0hFQ0sgIi4xLjMuNi4xLjIuMS4xLjQuMCA9IFNUUklORzoiCisKK0NBUFRVUkUgInNubXBnZXQgLU9uICRTTk1QX0ZMQUdTIC1jIHRlc3Rjb21tdW5pdHkgLXYgMmMgJFNOTVBfVFJBTlNQT1JUX1NQRUM6JFNOTVBfVEVTVF9ERVNUJFNOTVBfU05NUERfUE9SVCAuMS4zLjYuMS4yLjEuMS40LjAiCisKK0NIRUNLICJTVFJJTkc6IGZvb2JhcnRlc3RpbmdiYXoiCisKK1NUT1BBR0VOVAorCitGSU5JU0hFRApkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfc2ltcGxlIGIvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfc2ltcGxlCmluZGV4IDZlM2I4MTQuLjFjZDBlOTQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNnNubXB2MmNnZXRmYWlsX3NpbXBsZQorKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTZzbm1wdjJjZ2V0ZmFpbF9zaW1wbGUKQEAgLTEwLDYgKzEwLDcgQEAKIAogU0tJUElGIE5FVFNOTVBfRElTQUJMRV9TTk1QVjJDCiBTS0lQSUZOT1QgVVNJTkdfTUlCSUlfU1lTVEVNX01JQl9NT0RVTEUKK1NLSVBJRk5PVCBVU0lOR19NSUJJSV9WQUNNX0NPTkZfTU9EVUxFCiAKICMKICMgQmVnaW4gdGVzdApkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX3NpbXBsZSBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19zaW1wbGUKaW5kZXggYTU5YjY5Yi4uZDAxYTRlZiAxMDA3NTUKLS0tIGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX3NpbXBsZQorKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfc2ltcGxlCkBAIC0xNyw2ICsxNyw3IEBACiBERUZQUklWVFlQRT0iREVTIgogLiAuL1N2M2NvbmZpZwogCitBR0VOVF9GTEFHUz0iJEFHRU5UX0ZMQUdTIC1JLXdpbkV4dERMTCIKIFNUQVJUQUdFTlQKIAogQ0FQVFVSRSAic25tcGdldCAtT24gJFNOTVBfRkxBR1MgJFBSSVZURVNUQVJHUyAkU05NUF9UUkFOU1BPUlRfU1BFQzokU05NUF9URVNUX0RFU1QkU05NUF9TTk1QRF9QT1JUIC4xLjMuNi4xLjIuMS4xLjMuMCIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19zaW1wbGUgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfc2ltcGxlCmluZGV4IGNiZmNjYTcuLjU2MWNkYWIgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19zaW1wbGUKKysrIGIvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX3NpbXBsZQpAQCAtMTcsNiArMTcsNyBAQAogREVGQVVUSFRZUEU9IlNIQSIKIC4gLi9TdjNjb25maWcKIAorQUdFTlRfRkxBR1M9IiRBR0VOVF9GTEFHUyAtSS13aW5FeHRETEwiCiBTVEFSVEFHRU5UCiAKIENBUFRVUkUgInNubXBnZXQgLU9uICRTTk1QX0ZMQUdTICRQUklWVEVTVEFSR1MgJFNOTVBfVFJBTlNQT1JUX1NQRUM6JFNOTVBfVEVTVF9ERVNUJFNOTVBfU05NUERfUE9SVCAuMS4zLjYuMS4yLjEuMS4zLjAiCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjdzbm1wdjNEZWZhdWx0c19zaW1wbGUgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjdzbm1wdjNEZWZhdWx0c19zaW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2JiZjVlMAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyN3NubXB2M0RlZmF1bHRzX3NpbXBsZQpAQCAtMCwwICsxLDM5IEBACisjIS9iaW4vc2gKKworLiAuLi9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoCisKK0hFQURFUiBTTk1QdjMgZ2V0IHVzaW5nIGRlZmF1bHQgY29uZmlnIG9mIC4xLjMuNi4xLjIuMS4xLjMuMAorCitTS0lQSUZOT1QgTkVUU05NUF9DQU5fRE9fQ1JZUFRPCitTS0lQSUZOT1QgTkVUU05NUF9FTkFCTEVfU0NBUElfQVVUSFBSSVYKK1NLSVBJRk5PVCBIQVZFX0FFU19DRkIxMjhfRU5DUllQVAorCisjCisjIEJlZ2luIHRlc3QKKyMKKworIyBzdGFuZGFyZCBWMyBjb25maWd1cmF0aW9uIGZvciB0ZW1wbGF0ZVNIQSB1c2VyCitERUZQUklWVFlQRT0iQUVTIgorREVGQVVUSFRZUEU9IlNIQSIKKy4gLi9TdjNjb25maWcKKworU1RBUlRBR0VOVAorCitDT05GSUdBUFAgZGVmVmVyc2lvbiAzCitDT05GSUdBUFAgZGVmUHJpdlR5cGUgQUVTCitDT05GSUdBUFAgZGVmQXV0aFR5cGUgU0hBCitDT05GSUdBUFAgZGVmQ29udGV4dCBcIlwiCitDT05GSUdBUFAgZGVmQXV0aFBhc3NQaHJhc2UgaW5pdGlhbF90ZXN0X3Bhc3NfYXV0aAorQ09ORklHQVBQIGRlZlByaXZQYXNzUGhyYXNlIGluaXRpYWxfdGVzdF9wYXNzX2F1dGgKK0NPTkZJR0FQUCBkZWZTZWN1cml0eUxldmVsIGF1dGhQcml2CitDT05GSUdBUFAgZGVmU2VjdXJpdHlOYW1lIGluaXRpYWwKKworIyBtYWtlIHN1cmUgdGhhdCB0aGUgYWJvdmUgY29uZmlndXJhdGlvbiB0b2tlbnMgcHJvcGVybHkgc2V0IHRoaW5ncyB1cCBzbyB0aGF0CisjIG5vIGZsYWdzIGFyZSBuZWVkZWQKK0NBUFRVUkUgInNubXBnZXQgLU9uICRTTk1QX0ZMQUdTICRTTk1QX1RSQU5TUE9SVF9TUEVDOiRTTk1QX1RFU1RfREVTVCRTTk1QX1NOTVBEX1BPUlQgLjEuMy42LjEuMi4xLjEuMy4wIgorCitTVE9QQUdFTlQKKworQ0hFQ0sgIi4xLjMuNi4xLjIuMS4xLjMuMCA9IFRpbWV0aWNrczoiCisKK0ZJTklTSEVECmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fc2ltcGxlIGIvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX3NpbXBsZQppbmRleCA0MGU0Y2FjLi4yOGVhYWU4IDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fc2ltcGxlCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9zaW1wbGUKQEAgLTUsNiArNSw3IEBACiBIRUFERVIgU05NUHYzIGFnZW50IFVTTSB1c2VyIG1hbmFnZW1lbnQgd2l0aCBzbm1wdXNtCiAKIFNLSVBJRiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKK1NLSVBJRiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKIFNLSVBJRk5PVCBVU0lOR19TTk1QVjNfVVNNVVNFUl9NT0RVTEUKIFNLSVBJRk5PVCBORVRTTk1QX0NBTl9ET19DUllQVE8KIFNLSVBJRk5PVCBORVRTTk1QX0VOQUJMRV9TQ0FQSV9BVVRIUFJJVgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9zaW1wbGUgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X3NpbXBsZQppbmRleCBjYTMzZGM5Li5iZTdhYWI2IDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X3NpbXBsZQorKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X3NpbXBsZQpAQCAtOSw3ICs5LDggQEAKIFNLSVBJRk5PVCBVU0lOR19TTk1QVjNfVVNNVVNFUl9NT0RVTEUKIFNLSVBJRiAgICBORVRTTk1QX1NOTVBUUkFQRF9ESVNBQkxFX0FHRU5UWAogU0tJUElGICAgIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAotU0tJUElGTk9UIE5FVFNOTVBfVVNFX09QRU5TU0wKK1NLSVBJRiAgICBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKK1NLSVBJRk5PVCBORVRTTk1QX0NBTl9ET19DUllQVE8KIFNLSVBJRk5PVCBORVRTTk1QX0VOQUJMRV9TQ0FQSV9BVVRIUFJJVgogCiAjCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fc2ltcGxlIGIvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX3NpbXBsZQppbmRleCAzMjM3ZWZhLi45OWNiNWViIDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fc2ltcGxlCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9zaW1wbGUKQEAgLTIsNiArMiw4IEBACiAKIC4gLi4vc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaAogCitTS0lQSUZOT1QgTkVUU05NUF9TRUNNT0RfVVNNCisKIERFRlNFQ1VSSVRZTEVWRUw9bm9BdXRoTm9Qcml2CiAKIEhFQURFUiAiU05NUHYzIGluZm9ybXMgKG5vQXV0aE5vUHJpdikgcmVjZWl2ZWQgYW5kIHNlbnQgYnkgdG9vbHMiCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX3NpbXBsZSBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfc2ltcGxlCmluZGV4IGQxNGFmYmEuLjBmMTg1NzcgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfc2ltcGxlCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfc2ltcGxlCkBAIC0yLDYgKzIsOCBAQAogCiAuIC4uL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2gKIAorU0tJUElGTk9UIE5FVFNOTVBfU0VDTU9EX1VTTQorCiBERUZTRUNVUklUWUxFVkVMPWF1dGhOb1ByaXYKIAogSEVBREVSICJTTk1QdjMgaW5mb3JtcyAoYXV0aE5vUHJpdikgcmVjZWl2ZWQgYW5kIHNlbnQgYnkgdG9vbHMiCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9zaW1wbGUgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9zaW1wbGUKaW5kZXggNzQzMTcxYS4uOGUxYmU2YiAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUxc25tcHYyY3RyYXBfc2ltcGxlCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MXNubXB2MmN0cmFwX3NpbXBsZQpAQCAtNSw2ICs1LDcgQEAKIEhFQURFUiBTTk1QdjJjIHRyYXBzIHJlY2VpdmVkIGFuZCBzZW50IGJ5IHRvb2xzCiAKIFNLSVBJRiBORVRTTk1QX0RJU0FCTEVfU05NUFYyQworU0tJUElGTk9UIFVTSU5HX01JQklJX1ZBQ01fQ09ORl9NT0RVTEUKIAogIwogIyBCZWdpbiB0ZXN0CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTJzbm1wdjJjaW5mb3JtX3NpbXBsZSBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fc2ltcGxlCmluZGV4IDc3ZjNhNGMuLjQyMDhkZjggMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fc2ltcGxlCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fc2ltcGxlCkBAIC01LDYgKzUsNyBAQAogSEVBREVSIFNOTVB2MmMgaW5mb3JtcyByZWNlaXZlZCBhbmQgc2VudCBieSB0b29scwogCiBTS0lQSUYgTkVUU05NUF9ESVNBQkxFX1NOTVBWMkMKK1NLSVBJRk5PVCBVU0lOR19NSUJJSV9WQUNNX0NPTkZfTU9EVUxFCiAKICMKICMgQmVnaW4gdGVzdApkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfc2ltcGxlIGIvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfc2ltcGxlCmluZGV4IDA3M2QzYzQuLjZhNDM5ODkgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX3NpbXBsZQorKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0Ml9zaW1wbGUKQEAgLTIsNiArMiw4IEBACiAKIC4gLi4vc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaAogCitTS0lQSUZOT1QgTkVUU05NUF9TRUNNT0RfVVNNCisKIEhFQURFUiBzbm1wdHJhcGQgZGlzY2FyZHMgb2YgdW5hdXRob3JpemVkIG5vdGlmaWNhdGlvbiB0eXBlcyAKIAogIwpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfc2ltcGxlIGIvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfc2ltcGxlCmluZGV4IDE0MjZiNGEuLjA3OGVmMzggMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QzX3NpbXBsZQorKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19zaW1wbGUKQEAgLTIsNiArMiw4IEBACiAKIC4gLi4vc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaAogCitTS0lQSUZOT1QgTkVUU05NUF9TRUNNT0RfVVNNCisKIEhFQURFUiBzbm1wdHJhcGQgZGlzY2FyZHMgb2YgaW5jb3JyZWN0IHZpZXcgdHlwZXMgCiAKICMKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3Rfc2ltcGxlIGIvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9zaW1wbGUKaW5kZXggZTI1ZTM5ZS4uNGUyZmMxMCAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9zaW1wbGUKKysrIGIvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9zaW1wbGUKQEAgLTIsNiArMiw4IEBACiAKIC4gLi4vc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaAogCitTS0lQSUZOT1QgTkVUU05NUF9TRUNNT0RfVVNNCisKIEhFQURFUiBzbm1wdHJhcGQgYXV0aG9yaXphdGlvbiBmYWlsdXJlIG9mIG5vbiBhdXRob3JpemVkIHVzZXJzCiAKICMKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGUgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlCmluZGV4IDJjMWY3YTYuLjUzZDViOTAgMTAwNzU1Ci0tLSBhL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGUKKysrIGIvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZQpAQCAtMTksNiArMTksNyBAQAogCiBTS0lQSUYgTkVUU05NUF9ESVNBQkxFX1NOTVBWMkMKIFNLSVBJRk5PVCBVU0lOR19VVElMSVRJRVNfRVhFQ1VURV9NT0RVTEUKK1NLSVBJRk5PVCBIQVZFX1NJR0hVUAogCiAjCiAjIEJlZ2luIHRlc3QKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlCmluZGV4IDdlNzIzYmIuLjcwZGVjZjQgMTAwNzU1Ci0tLSBhL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUKKysrIGIvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZQpAQCAtNyw2ICs3LDcgQEAKIFNLSVBJRiBORVRTTk1QX0RJU0FCTEVfU05NUFYyQwogU0tJUElGTk9UIE5FVFNOTVBfRU1CRURERURfUEVSTAogU0tJUElGTk9UIEhBVkVfU0lHSFVQCitTS0lQSUZOT1QgTkVUU05NUF9TRUNNT0RfVVNNCiAKICMKICMgQmVnaW4gdGVzdApkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUKaW5kZXggNWViZjg2My4uYzIwYTNmZiAxMDA3NTUKLS0tIGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZQorKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlCkBAIC03LDYgKzcsNyBAQAogU0tJUElGIE5FVFNOTVBfRElTQUJMRV9TTk1QVjJDCiBTS0lQSUZOT1QgTkVUU05NUF9FTUJFRERFRF9QRVJMCiBTS0lQSUZOT1QgSEFWRV9TSUdIVVAKK1NLSVBJRk5PVCBORVRTTk1QX1NFQ01PRF9VU00KIAogIwogIyBCZWdpbiB0ZXN0CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGUgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGUKaW5kZXggNjhjMzhmOS4uZjQxOTI2NiAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZQpAQCAtMjEsMTEgKzIxLDEwIEBACiAjIEJlZ2luIHRlc3QKICMKIAoraW5kZXg9JyJoZWxsbyInCiBpZiBbICJ4JE9TVFlQRSIgPSAieG1zeXMiIF07IHRoZW4KLSAgICBpbmRleD0nXCJoZWxsb1wiJwogICAgIENPTkZJR0FHRU5UIGV4dGVuZCBoZWxsbyAkTVNZU19TSCAtYyAiJyIgZWNobyBoZWxsb193b3JsZCAiJyIKIGVsc2UKLSAgICBpbmRleD0nImhlbGxvIicKICAgICBDT05GSUdBR0VOVCBleHRlbmQgaGVsbG8gL3Vzci9iaW4vZW52IGVjaG8gaGVsbG9fd29ybGQKIGZpCiAKQEAgLTMzLDE1ICszMiwxNSBAQAogCiAjIE5FVC1TTk1QLUVYVEVORC1NSUI6Om5zRXh0ZW5kT3V0cHV0MUxpbmUuImhlbGxvIiA9IFNUUklORzogImhlbGxvX3dvcmxkIgogQ0FQVFVSRSAiJFNOTVBHRVQgJFNOTVBfRkxBR1MgLSRzbm1wX3ZlcnNpb24gLWMgJFRFU1RDT01NVU5JVFkgJFNOTVBfVFJBTlNQT1JUX1NQRUM6JFNOTVBfVEVTVF9ERVNUJFNOTVBfU05NUERfUE9SVCAuMS4zLjYuMS40LjEuODA3Mi4xLjMuMi4zLjEuMS4kaW5kZXgiCi1DSEVDS09SRElFICJoZWxsb193b3JsZCIKK0NIRUNLT1JESUUgIlNUUklORzogaGVsbG9fd29ybGQiCiAKICNORVQtU05NUC1FWFRFTkQtTUlCOjpuc0V4dGVuZE91dHB1dEZ1bGwuImhlbGxvIiA9IFNUUklORzogImhlbGxvX3dvcmxkIgogQ0FQVFVSRSAiJFNOTVBHRVQgJFNOTVBfRkxBR1MgLSRzbm1wX3ZlcnNpb24gLWMgJFRFU1RDT01NVU5JVFkgJFNOTVBfVFJBTlNQT1JUX1NQRUM6JFNOTVBfVEVTVF9ERVNUJFNOTVBfU05NUERfUE9SVCAuMS4zLjYuMS40LjEuODA3Mi4xLjMuMi4zLjEuMi4kaW5kZXgiCi1DSEVDS09SRElFICJoZWxsb193b3JsZCIKK0NIRUNLT1JESUUgIlNUUklORzogaGVsbG9fd29ybGQiCiAKICNORVQtU05NUC1FWFRFTkQtTUlCOjpuc0V4dGVuZE91dExpbmUuImhlbGxvIi4xID0gU1RSSU5HOiAiaGVsbG9fd29ybGQiCiBDQVBUVVJFICIkU05NUEdFVCAkU05NUF9GTEFHUyAtJHNubXBfdmVyc2lvbiAtYyAkVEVTVENPTU1VTklUWSAkU05NUF9UUkFOU1BPUlRfU1BFQzokU05NUF9URVNUX0RFU1QkU05NUF9TTk1QRF9QT1JUIC4xLjMuNi4xLjQuMS44MDcyLjEuMy4yLjQuMS4yLiRpbmRleC4xIgotQ0hFQ0tPUkRJRSAiaGVsbG9fd29ybGQiCitDSEVDS09SRElFICJTVFJJTkc6IGhlbGxvX3dvcmxkIgogCiAjTkVULVNOTVAtRVhURU5ELU1JQjo6bnNFeHRlbmRPdXROdW1MaW5lcy4iaGVsbG8iID0gSU5URUdFUjogMQogQ0FQVFVSRSAiJFNOTVBHRVQgJFNOTVBfRkxBR1MgLSRzbm1wX3ZlcnNpb24gLWMgJFRFU1RDT01NVU5JVFkgJFNOTVBfVFJBTlNQT1JUX1NQRUM6JFNOTVBfVEVTVF9ERVNUJFNOTVBfU05NUERfUE9SVCAuMS4zLjYuMS40LjEuODA3Mi4xLjMuMi4zLjEuMy4kaW5kZXgiCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfc2ltcGxlIGIvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X3NpbXBsZQppbmRleCBjNzY3MDY0Li44NzkzOWJkIDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfc2ltcGxlCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9zaW1wbGUKQEAgLTgsNiArOCw3IEBACiBTS0lQSUZOT1QgVVNJTkdfQUdFTlRYX1NVQkFHRU5UX01PRFVMRQogU0tJUElGTk9UIFVTSU5HX01JQklJX1NZU1RFTV9NSUJfTU9EVUxFCiBTS0lQSUYgICAgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCitTS0lQSUYgICAgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAKICMKICMgQmVnaW4gdGVzdApkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEyYWdlbnR4c2V0ZmFpbF9zaW1wbGUgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX3NpbXBsZQppbmRleCA0ZjFmMGNiLi5kNjEwYjQxIDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX3NpbXBsZQorKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX3NpbXBsZQpAQCAtOCw2ICs4LDcgQEAKIFNLSVBJRk5PVCBVU0lOR19BR0VOVFhfU1VCQUdFTlRfTU9EVUxFCiBTS0lQSUZOT1QgVVNJTkdfTUlCSUlfU1lTVEVNX01JQl9NT0RVTEUKIFNLSVBJRiAgICBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKK1NLSVBJRiAgICBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKIAogIwogIyBCZWdpbiB0ZXN0CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTNhZ2VudHh0cmFwX3NpbXBsZSBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfc2ltcGxlCmluZGV4IGJlMmI5YmUuLjRmYTVlMmYgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfc2ltcGxlCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfc2ltcGxlCkBAIC03LDYgKzcsNyBAQAogU0tJUElGTk9UIFVTSU5HX0FHRU5UWF9NQVNURVJfTU9EVUxFCiBTS0lQSUZOT1QgVVNJTkdfQUdFTlRYX1NVQkFHRU5UX01PRFVMRQogU0tJUElGTk9UIFVTSU5HX0VYQU1QTEVTX0VYQU1QTEVfTU9EVUxFCitTS0lQSUZOT1QgTkVUU05NUF9TRUNNT0RfVVNNCiAKICMKICMgQmVnaW4gdGVzdApkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGUgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX3NpbXBsZQppbmRleCAzODBjMGVmLi41ODQ3NWQwIDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX3NpbXBsZQorKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX3NpbXBsZQpAQCAtNSw2ICs1LDcgQEAKIEhFQURFUiBBZ2VudFggdHJhcCBzZW5kaW5nIHN1cHBvcnQgdXNpbmcgYWdlbnR4dHJhcAogCiBTS0lQSUZOT1QgVVNJTkdfQUdFTlRYX01BU1RFUl9NT0RVTEUKK1NLSVBJRk5PVCBORVRTTk1QX1NFQ01PRF9VU00KIAogIwogIyBCZWdpbiB0ZXN0CkBAIC0zNyw3ICszOCw3IEBACiBTVE9QVFJBUEQKIAogIyBDaGVjayB0aGF0IHRoZSB0cmFwIHdhcyByZWNlaXZlZAotQ0hFQ0tUUkFQRCAibW9zdGx5X2hhcm1sZXNzIgorQ0hFQ0tUUkFQRCAiPSBTVFJJTkc6IFwiKm1vc3RseV9oYXJtbGVzc1wiKiIKIAogIyBhbGwgZG9uZSAod2hldykKIEZJTklTSEVECmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9zaW1wbGUgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9zaW1wbGUKaW5kZXggYzg3NjY4Yy4uZGQxOTY0MSAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfc2ltcGxlCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X3NpbXBsZQpAQCAtOCw2ICs4LDcgQEAKIFNLSVBJRk5PVCBVU0lOR19NSUJJSV9TWVNURU1fTUlCX01PRFVMRQogU0tJUElGICAgIE5FVFNOTVBfRElTQUJMRV9TTk1QVjJDCiBTS0lQSUYgICAgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCitTS0lQSUYgICAgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAKICMgWFhYOiB1Y2Qtc25tcC9wcm94eSBkb2Vzbid0IHByb3Blcmx5IHN1cHBvcnQgVENQIC0tIHJlbW92ZSB0aGlzIG9uY2UgaXQgZG9lcwogWyAieCRTTk1QX1RSQU5TUE9SVF9TUEVDIiA9ICJ4dGNwIiAtbyAieCRTTk1QX1RSQU5TUE9SVF9TUEVDIiA9ICJ4dGNwNiIgXSAmJiBTS0lQIFRlc3QgZG9lcyBub3Qgc3VwcG9ydCBUQ1AKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9zaW1wbGUgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfc2ltcGxlCmluZGV4IDdmNTdiZTkuLjdmMjc4NzMgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9zaW1wbGUKKysrIGIvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIycHJveHlzZXRmYWlsX3NpbXBsZQpAQCAtOCw2ICs4LDcgQEAKIFNLSVBJRk5PVCBVU0lOR19NSUJJSV9TWVNURU1fTUlCX01PRFVMRQogU0tJUElGICAgIE5FVFNOTVBfRElTQUJMRV9TTk1QVjJDCiBTS0lQSUYgICAgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCitTS0lQSUYgICAgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCiAKICMgWFhYOiB1Y2Qtc25tcC9wcm94eSBkb2Vzbid0IHByb3Blcmx5IHN1cHBvcnQgVENQIC0tIHJlbW92ZSB0aGlzIG9uY2UgaXQgZG9lcwogWyAieCRTTk1QX1RSQU5TUE9SVF9TUEVDIiA9ICJ4dGNwIiBdICYmIFNLSVAgVGVzdCBkb2VzIG5vdCBzdXBwb3J0IFRDUApkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMwc25tcHYxdmFjbWdldF9zaW1wbGUgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X3NpbXBsZQppbmRleCAxOTc0YjdmLi44MDYyM2Y0IDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X3NpbXBsZQorKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X3NpbXBsZQpAQCAtMTYsNiArMTYsNyBAQAogc25tcF92ZXJzaW9uPXYxCiAuIC4vU3ZhY21jb25maWcKIAorQUdFTlRfRkxBR1M9IiRBR0VOVF9GTEFHUyAtSS13aW5FeHRETEwiCiBTVEFSVEFHRU5UCiAKIENBUFRVUkUgInNubXBnZXQgLU9uICRTTk1QX0ZMQUdTIC1jIHRlc3Rjb21tdW5pdHkxIC12IDEgJFNOTVBfVFJBTlNQT1JUX1NQRUM6JFNOTVBfVEVTVF9ERVNUJFNOTVBfU05NUERfUE9SVCAuMS4zLjYuMS4yLjEuMS4xLjAiIApkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQxc25tcHYyY3ZhY21nZXRmYWlsX3NpbXBsZSBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbF9zaW1wbGUKaW5kZXggNWY2NjViYS4uY2QzNjJhYSAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQxc25tcHYyY3ZhY21nZXRmYWlsX3NpbXBsZQorKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfc2ltcGxlCkBAIC02LDYgKzYsOCBAQAogCiBTS0lQSUYgTkVUU05NUF9ESVNBQkxFX1NOTVBWMkMKIFNLSVBJRiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKK1NLSVBJRiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKK1NLSVBJRk5PVCBVU0lOR19NSUJJSV9WQUNNX0NPTkZfTU9EVUxFCiAKICMKICMgQmVnaW4gdGVzdApkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTU0ZGlzbWFucGluZ21pYl9zaW1wbGUgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTRkaXNtYW5waW5nbWliX3NpbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWNmZmUwCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTU0ZGlzbWFucGluZ21pYl9zaW1wbGUKQEAgLTAsMCArMSwxMTYgQEAKKyMhL2Jpbi9zaAorCisuIC4uL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2gKKworSEVBREVSIERJU01BTiBQSU5HIE1JQgorCitbICIkVUlEIiA9IDAgXSB8fCBTS0lQICJOb3QgcGVybWl0dGVkIHRvIGNyZWF0ZSByYXcgc29ja2V0cyIKK1NLSVBJRk5PVCBVU0lOR19ESVNNQU5fUElOR19NSUJfTU9EVUxFCitTS0lQSUYgTkVUU05NUF9ESVNBQkxFX1NOTVBWMQorCisjIFNOTVB2Mi1UQworYWN0aXZlPTEKK2NyZWF0ZUFuZFdhaXQ9NQorZGVzdHJveT02CisjIERJU01BTi1QSU5HLU1JQgorRElTTUFOX1BJTkdfTUlCPS4xLjMuNi4xLjIuMS44MC4xCitwaW5nQ3RsRW50cnk9JHtESVNNQU5fUElOR19NSUJ9LjIuMQorcGluZ0N0bFRhcmdldEFkZHJlc3NUeXBlPSR7cGluZ0N0bEVudHJ5fS4zCitwaW5nQ3RsVGFyZ2V0QWRkcmVzVHlwZUlwdjQ9MQorcGluZ0N0bFRhcmdldEFkZHJlc3M9JHtwaW5nQ3RsRW50cnl9LjQKK3BpbmdDdGxQcm9iZUNvdW50PSR7cGluZ0N0bEVudHJ5fS43CitwaW5nQ3RsQWRtaW5TdGF0dXM9JHtwaW5nQ3RsRW50cnl9LjgKK3BpbmdDdGxBZG1pblN0YXR1c0VuYWJsZWQ9MQorcGluZ0N0bEZyZXF1ZW5jeT0ke3BpbmdDdGxFbnRyeX0uMTAKK3BpbmdDdGxEZXNjcj0ke3BpbmdDdGxFbnRyeX0uMTcKK3BpbmdDdGxSb3dTdGF0dXM9JHtwaW5nQ3RsRW50cnl9LjIzCitwaW5nUmVzdWx0c0VudHJ5PSR7RElTTUFOX1BJTkdfTUlCfS4zLjEKK3BpbmdSZXN1bHRzUHJvYmVSZXNwb25zZXM9JHtwaW5nUmVzdWx0c0VudHJ5fS43CitwaW5nUmVzdWx0c1NlbnRQcm9iZXM9JHtwaW5nUmVzdWx0c0VudHJ5fS44CisjIFRlc3QgY29uZmlndXJhdGlvbgorVEFSR0VUX0FERFJFU1M9MTI3LjAuMC4xCitJRFhQRlg9OC43OC4xMDEuMTE2LjQ1LjgzLjc4Ljc3LjgwLjYuODQuNDkuNTMuNTIgIyAiTmV0LVNOTVAiLiJUMTU0IgorSURYUz0iJHtJRFhQRlh9Ljk1LjQ5ICR7SURYUEZYfS45NS41MCAke0lEWFBGWH0uOTUuNTEiCitQUk9CRV9DT1VOVD01CisKKworIworIyBCZWdpbiB0ZXN0CisjCisKKyMgc3RhbmRhcmQgVjEgY29uZmlndXJhdGlvbjogdGVzdGNvbW11bml0eQorc25tcF93cml0ZV9hY2Nlc3M9J2FsbCcKKy4gLi9TdjFjb25maWcKKworU1RBUlRBR0VOVAorCitmb3IgSURYIGluICRJRFhTOyBkbworCitDQVBUVVJFICJzbm1wc2V0IC1PbmUgJFNOTVBfRkxBR1MgLWMgdGVzdGNvbW11bml0eSAtdjEgICAgICAgICAgXAorICAgICAgICAgJFNOTVBfVFJBTlNQT1JUX1NQRUM6JFNOTVBfVEVTVF9ERVNUJFNOTVBfU05NUERfUE9SVCAgIFwKKyAgICAgICAgICRwaW5nQ3RsUm93U3RhdHVzLiRJRFggaSAkZGVzdHJveSIKKworQ0hFQ0sgIl4kcGluZ0N0bFJvd1N0YXR1cy4kSURYID0gSU5URUdFUjogJGRlc3Ryb3kiCisKK0NBUFRVUkUgInNubXBzZXQgLU9uZSAkU05NUF9GTEFHUyAtYyB0ZXN0Y29tbXVuaXR5IC12MSAgICAgICAgICBcCisgICAgICAgICAkU05NUF9UUkFOU1BPUlRfU1BFQzokU05NUF9URVNUX0RFU1QkU05NUF9TTk1QRF9QT1JUICAgXAorICAgICAgICAgJHBpbmdDdGxSb3dTdGF0dXMuJElEWCBpICRjcmVhdGVBbmRXYWl0IgorCitDSEVDSyAiXiRwaW5nQ3RsUm93U3RhdHVzLiRJRFggPSBJTlRFR0VSOiAkY3JlYXRlQW5kV2FpdCIKKworQ0FQVFVSRSAic25tcHNldCAtT25lICRTTk1QX0ZMQUdTIC1jIHRlc3Rjb21tdW5pdHkgLXYxICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICRTTk1QX1RSQU5TUE9SVF9TUEVDOiRTTk1QX1RFU1RfREVTVCRTTk1QX1NOTVBEX1BPUlQgICAgICAgICAgIFwKKyAgICAgICAgICRwaW5nQ3RsVGFyZ2V0QWRkcmVzc1R5cGUuJElEWCBpICRwaW5nQ3RsVGFyZ2V0QWRkcmVzVHlwZUlwdjQgIFwKKyAgICAgICAgICRwaW5nQ3RsVGFyZ2V0QWRkcmVzcy4kSURYIHMgJFRBUkdFVF9BRERSRVNTICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICRwaW5nQ3RsRnJlcXVlbmN5LiRJRFggdSAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICRwaW5nQ3RsRGVzY3IuJElEWCBzIFNjcmlwdEdlbmVyYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICRwaW5nQ3RsUHJvYmVDb3VudC4kSURYIHUgJHtQUk9CRV9DT1VOVH0gICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICRwaW5nQ3RsQWRtaW5TdGF0dXMuJElEWCBpICRwaW5nQ3RsQWRtaW5TdGF0dXNFbmFibGVkIgorCitDSEVDSyAiXiRwaW5nQ3RsQWRtaW5TdGF0dXMuJElEWCA9IElOVEVHRVI6ICRwaW5nQ3RsQWRtaW5TdGF0dXNFbmFibGVkIgorCitDQVBUVVJFICJzbm1wc2V0IC1PbmUgJFNOTVBfRkxBR1MgLWMgdGVzdGNvbW11bml0eSAtdjEgICAgICAgICAgXAorICAgICAgICAgJFNOTVBfVFJBTlNQT1JUX1NQRUM6JFNOTVBfVEVTVF9ERVNUJFNOTVBfU05NUERfUE9SVCAgIFwKKyAgICAgICAgICRwaW5nQ3RsUm93U3RhdHVzLiRJRFggaSAkYWN0aXZlIgorCitDSEVDSyAiXiRwaW5nQ3RsUm93U3RhdHVzLiRJRFggPSBJTlRFR0VSOiAkYWN0aXZlIgorCitkb25lCisKK3NsZWVwICR7UFJPQkVfQ09VTlR9CitzbGVlcCAyCisKK2ZvciBJRFggaW4gJElEWFM7IGRvCisKK0NBUFRVUkUgInNubXBnZXQgLU9uICRTTk1QX0ZMQUdTIC1jIHRlc3Rjb21tdW5pdHkgLXYxICAgICAgICAgICBcCisgICAgICAgICAkU05NUF9UUkFOU1BPUlRfU1BFQzokU05NUF9URVNUX0RFU1QkU05NUF9TTk1QRF9QT1JUICAgXAorICAgICAgICAgJHBpbmdSZXN1bHRzU2VudFByb2Jlcy4kSURYIgorCitDSEVDSyAiXiRwaW5nUmVzdWx0c1NlbnRQcm9iZXMuJElEWCA9IEdhdWdlMzI6ICR7UFJPQkVfQ09VTlR9IgorCitDQVBUVVJFICJzbm1wZ2V0IC1PbiAkU05NUF9GTEFHUyAtYyB0ZXN0Y29tbXVuaXR5IC12MSAgICAgICAgICAgXAorICAgICAgICAgJFNOTVBfVFJBTlNQT1JUX1NQRUM6JFNOTVBfVEVTVF9ERVNUJFNOTVBfU05NUERfUE9SVCAgIFwKKyAgICAgICAgICRwaW5nUmVzdWx0c1Byb2JlUmVzcG9uc2VzLiRJRFgiCisKK0NIRUNLICJeJHBpbmdSZXN1bHRzUHJvYmVSZXNwb25zZXMuJElEWCA9IEdhdWdlMzI6ICR7UFJPQkVfQ09VTlR9IgorCitkb25lCisKKyMgRGVsZXRlIGZpcnN0IHJvdyBhbmQgbGVhdmUgdGhlIHJlbWFpbmluZyByb3dzIGluIHRoZSB0YWJsZS4KKworZm9yIElEWCBpbiAkSURYUzsgZG8KKworQ0FQVFVSRSAic25tcHNldCAtT25lICRTTk1QX0ZMQUdTIC1jIHRlc3Rjb21tdW5pdHkgLXYxICAgICAgICAgIFwKKyAgICAgICAgICRTTk1QX1RSQU5TUE9SVF9TUEVDOiRTTk1QX1RFU1RfREVTVCRTTk1QX1NOTVBEX1BPUlQgICBcCisgICAgICAgICAkcGluZ0N0bFJvd1N0YXR1cy4kSURYIGkgJGRlc3Ryb3kiCisKK0NIRUNLICJeJHBpbmdDdGxSb3dTdGF0dXMuJElEWCA9IElOVEVHRVI6ICRkZXN0cm95IgorCiticmVhaworCitkb25lCisKK1NUT1BBR0VOVAorCisKK0ZJTklTSEVECmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNjFzbm1wVGFyZ2V0QWRkcl9zaW1wbGUgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNjFzbm1wVGFyZ2V0QWRkcl9zaW1wbGUKaW5kZXggYzdjYWE2YS4uMDBlMDk0ZSAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYxc25tcFRhcmdldEFkZHJfc2ltcGxlCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE2MXNubXBUYXJnZXRBZGRyX3NpbXBsZQpAQCAtMzIsMTEgKzMyLDI0IEBACiAKIENIRUNLT1JESUUgIm5vQ3JlYXRpb24iCiAKKyMgQ3JlYXRlIGFuIGVudHJ5IHdpdGggaW5kZXggJ0JcMEEnCitDQVBUVVJFICJzbm1wc2V0IC1PbiAtT2UgJFNOTVBfRkxBR1MgJEFVVEhURVNUQVJHUyAkU05NUF9UUkFOU1BPUlRfU1BFQzokU05NUF9URVNUX0RFU1QkU05NUF9TTk1QRF9QT1JUIC4xLjMuNi4xLjYuMy4xMi4xLjIuMS45LjY2LjAuNjUgaSA1IgorCitDSEVDS09SRElFICIuMS4zLjYuMS42LjMuMTIuMS4yLjEuOS42Ni4wLjY1ID0gSU5URUdFUjogNSIKKworIyBDaGVjayB0aGF0IHRoZSB0YWJsZSBjb250YWlucyB0aGUgJ0JcMEEnIGVudHJ5IGFuZCBubyBvdGhlcgorQ0FQVFVSRSAic25tcHdhbGsgLU9uIC1PZSAkU05NUF9GTEFHUyAkQVVUSFRFU1RBUkdTICRTTk1QX1RSQU5TUE9SVF9TUEVDOiRTTk1QX1RFU1RfREVTVCRTTk1QX1NOTVBEX1BPUlQgLjEuMy42LjEuNi4zLjEyLjEuMi4xLjkiCisKK0NIRUNLICJeLjEuMy42LjEuNi4zLjEyLjEuMi4xLjkiCitDSEVDS09SRElFICIuMS4zLjYuMS42LjMuMTIuMS4yLjEuOS42Ni4wLjY1ID0iCisKKyMgRGVsZXRlIGFuIGVudHJ5IHdpdGggaW5kZXggJ0JcMEEnCitDQVBUVVJFICJzbm1wc2V0IC1PbiAtT2UgJFNOTVBfRkxBR1MgJEFVVEhURVNUQVJHUyAkU05NUF9UUkFOU1BPUlRfU1BFQzokU05NUF9URVNUX0RFU1QkU05NUF9TTk1QRF9QT1JUIC4xLjMuNi4xLjYuMy4xMi4xLjIuMS45LjY2LjAuNjUgaSA2IgorCiAjIENyZWF0ZSBhbiBlbnRyeSB3aXRoIGluZGV4ICdBJwogQ0FQVFVSRSAic25tcHNldCAtT24gLU9lICRTTk1QX0ZMQUdTICRBVVRIVEVTVEFSR1MgJFNOTVBfVFJBTlNQT1JUX1NQRUM6JFNOTVBfVEVTVF9ERVNUJFNOTVBfU05NUERfUE9SVCAuMS4zLjYuMS42LjMuMTIuMS4yLjEuOS42NSBpIDUiCiAKIENIRUNLT1JESUUgIi4xLjMuNi4xLjYuMy4xMi4xLjIuMS45LjY1ID0gSU5URUdFUjogNSIKLUNIRUNLT1JESUUgIi4xLjMuNi4xLjYuMy4xMi4xLjIuMS45LjY1ID0iCiAKICMgQ2hlY2sgdGhhdCB0aGUgdGFibGUgY29udGFpbnMgb25lIGFuZCBvbmx5IG9uZSBlbnRyeQogQ0FQVFVSRSAic25tcHdhbGsgLU9uIC1PZSAkU05NUF9GTEFHUyAkQVVUSFRFU1RBUkdTICRTTk1QX1RSQU5TUE9SVF9TUEVDOiRTTk1QX1RFU1RfREVTVCRTTk1QX1NOTVBEX1BPUlQgLjEuMy42LjEuNi4zLjEyLjEuMi4xLjkiCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy9yZWFkLW9ubHkvVDAxNDFzbm1wdjJjc2V0ZmFpbF9zaW1wbGUgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9yZWFkLW9ubHkvVDAxNDFzbm1wdjJjc2V0ZmFpbF9zaW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTcwNWY0OQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL3JlYWQtb25seS9UMDE0MXNubXB2MmNzZXRmYWlsX3NpbXBsZQpAQCAtMCwwICsxLDMyIEBACisjIS9iaW4vc2gKKworLiAuLi9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoCisKK0hFQURFUiBTTk1QdjJjIHNldCBmYWlsdXJlIHRvIHN5c3RlbS5zeXNDb250YWN0LjAKKworU0tJUElGTk9UIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAorU0tJUElGIE5FVFNOTVBfRElTQUJMRV9TTk1QVjJDCitTS0lQSUZOT1QgVVNJTkdfTUlCSUlfU1lTVEVNX01JQl9NT0RVTEUKKworIworIyBCZWdpbiB0ZXN0CisjCisKKyMgc3RhbmRhcmQgVjJDIGNvbmZpZ3VyYXRpb246IHRlc3Rjb211bm5pdHkKK3NubXBfd3JpdGVfYWNjZXNzPSdhbGwnCisoY2QgLi4vZGVmYXVsdCA7IC4gLi9TdjJjY29uZmlnKQorU1RBUlRBR0VOVAorCitDQVBUVVJFICJzbm1wZ2V0IC1PbiAkU05NUF9GTEFHUyAtYyB0ZXN0Y29tbXVuaXR5IC12IDJjICRTTk1QX1RSQU5TUE9SVF9TUEVDOiRTTk1QX1RFU1RfREVTVCRTTk1QX1NOTVBEX1BPUlQgLjEuMy42LjEuMi4xLjEuNC4wIgorCitDSEVDSyAiLjEuMy42LjEuMi4xLjEuNC4wID0gU1RSSU5HOiIKKworQ0FQVFVSRSAic25tcHNldCAtciAwIC10IDEgLU9uICRTTk1QX0ZMQUdTIC1jIHRlc3Rjb21tdW5pdHkgLXYgMmMgJFNOTVBfVFJBTlNQT1JUX1NQRUM6JFNOTVBfVEVTVF9ERVNUJFNOTVBfU05NUERfUE9SVCAuMS4zLjYuMS4yLjEuMS40LjAgcyBmb29iYXJ0ZXN0aW5nYmF6IgorCitDSEVDSyAiVGltZW91dDogTm8gUmVzcG9uc2UiCisKK1NUT1BBR0VOVAorCitDSEVDS0FHRU5UICdCYWQgUERVIHR5cGUgcmVjZWl2ZWQnCisKK0ZJTklTSEVECmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jIGIvdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYwppbmRleCAzZTBmZDU4Li5kNjhmNjYzIDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMKQEAgLTQwMSw5ICs0MDEsNyBAQAogICAgICAgICBmcHJpbnRmKHN0ZG91dCwgIiMgZW5naW5lSUQlcyAobGVuPSVkKTogICVzXG4iLAogICAgICAgICAgICAgICAgIChpc2RlZmF1bHQpID8gIiAoZGVmYXVsdCkiIDogIiIsCiAgICAgICAgICAgICAgICAgZW5naW5lSURfbGVuLCAoKHMgIT0gMCkgPyAoKHVfY2hhciAqKSBzKSA6IGVuZ2luZUlEKSk7Ci0gICAgaWYgKHMpIHsKLSAgICAgICAgU05NUF9GUkVFKHMpOwotICAgIH0KKyAgICBTTk1QX0ZSRUUocyk7CiAKIAogCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaCBiL3Rlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoCmluZGV4IDVkMWRjNTAuLjJhMGE4YWYgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoCkBAIC03LDYgKzcsMjggQEAKICMgICpTTk1QX1BFUlNJU1RFTlRfRklMRTogd2hlcmUgdG8gc3RvcmUgdGhlIGFnZW50J3MgcGVyc2lzdGVudCBpbmZvcm1hdGlvbgogIyAgICAgICAgICAgICAgICAgICAgICAgICAoWFhYOiB0aGlzIHNob3VsZCBiZSBzcGVjaWZpYyB0byBqdXN0IHRoZSBhZ2VudCkKIAorIyBNaW5HVy9NU1lTIG9ubHk6IHRyYW5zbGF0ZSBhbiBNU1lTIHBhdGggYmFjayBpbnRvIGEgRE9TIHBhdGggc3VjaCB0aGF0IHNubXBkCisjIGFuZCB0aGUgTmV0LVNOTVAgYXBwbGljYXRpb25zIGNhbiB1bmRlcnN0YW5kIGl0LiBPbmUgb2YgdGhlIGZlYXR1cmVzIG9mIE1TWVMKKyMgaXMgdGhhdCBpZiBhIFBPU0lYLXN0eWxlIHBhdGggaXMgcGFzc2VkIGFzIGEgY29tbWFuZC1saW5lIGFyZ3VtZW50IHRvIGFuCisjIGV4ZWN1dGFibGUgdGhhdCBNU1lTIHRyYW5zbGF0ZXMgdGhhdCBwYXRoIHRvIGEgRE9TLXN0eWxlIHBhdGggYmVmb3JlCisjIHN0YXJ0aW5nIHRoZSBleGVjdXRhYmxlLiBUaGlzIGlzIGEga2V5IGZlYXR1cmUgb2YgTVNZUyB0aGF0IG1ha2VzIGl0CisjIHBvc3NpYmxlIHRvIHJ1biBzaGVsbCBzY3JpcHRzIHVubW9kaWZpZWQgYW5kIGF0IHRoZSBzYW1lIHRpbWUgdG8gdXNlCisjIGV4ZWN1dGFibGVzIHRoYXQgYWNjZXB0IERPUy1zdHlsZSBwYXRocy4gVGhlcmUgaXMgbm8gc3VwcG9ydCBob3dldmVyIGZvcgorIyBhdXRvbWF0aWNhbCB0cmFuc2xhdGlvbiBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdGhhdCBjb250YWluIHBhdGhzLiBIZW5jZQorIyB0aGlzIGZ1bmN0aW9uIHRoYXQgdHJhbnNsYXRlcyBwYXRocyBleHBsaWNpdGx5LgordHJhbnNsYXRlX3BhdGgoKSB7CisgIGlmIFsgIiRPU1RZUEUiID0gbXN5cyBdOyB0aGVuCisgICAgbG9jYWwgdD1gc2V0IFwKKyAgICAgICAgICAgICB8IHNlZCAtbiAtZSAicy9eJDE9J1woLipcKSckLyR7U05NUF9FTlZfU0VQQVJBVE9SfVwxL3AiIFwKKyAgICAgICAgICAgICAgICAgICAgICAtZSAicy9eJDE9XCguKlwpJC8ke1NOTVBfRU5WX1NFUEFSQVRPUn1cMS9wIiBcCisgICAgICAgICAgICAgfCBzZWQgLWUgInN8JHtTTk1QX0VOVl9TRVBBUkFUT1J9L2MvfCR7U05NUF9FTlZfU0VQQVJBVE9SfWM6L3xnIiBcCisgICAgICAgICAgICAgICAgICAgLWUgInN8JHtTTk1QX0VOVl9TRVBBUkFUT1J9L3RtcC98JHtTTk1QX0VOVl9TRVBBUkFUT1J9Yzovd2luZG93cy90ZW1wL3xnIiBcCisgICAgICAgICAgICAgfCBzZWQgLWUgInMvXiR7U05NUF9FTlZfU0VQQVJBVE9SfS8vIiBcCisgICAgICAgICAgICBgCisgICAgZXZhbCAiJDE9JyR0JyIKKyAgZmkKK30KKwogIwogIyBPbmx5IGFsbG93IG91cnNlbHZlcyB0byBiZSBldmFsJ2VkIG9uY2UKICMKQEAgLTQ4LDYgKzcwLDggQEAKICAgICBleHBvcnQgU05NUF9WRVJCT1NFCiBmaQogCitTTk1QX0VOVl9TRVBBUkFUT1I9ImAke2J1aWxkZGlyfS9uZXQtc25tcC1jb25maWcgLS1lbnYtc2VwYXJhdG9yYCIKKwogaWYgWyAieCRNSUJESVJTIiA9ICJ4IiBdOyB0aGVuCiAgIGlmIFsgIngkU05NUF9QUkVGRVJfTkVBUl9NSUJTIiA9ICJ4MSIgXTsgdGhlbgogICAgIE1JQkRJUlM9JHtzcmNkaXJ9L21pYnMKQEAgLTEwMyw2ICsxMjcsNyBAQAogICAgICAgICB0ZXN0bnVtPTAKICAgICBmaQogICAgIFNOTVBfVE1QRElSPSIvdG1wL3NubXAtdGVzdC0kdGVzdG51bS0kJCIKKyAgICB0cmFuc2xhdGVfcGF0aCBTTk1QX1RNUERJUgogICAgIGV4cG9ydCBTTk1QX1RNUERJUgogICAgIGlmIFsgLWQgJFNOTVBfVE1QRElSIF07IHRoZW4KIAllY2hvICIkMDogRVJST1I6ICRTTk1QX1RNUERJUiBhbHJlYWR5IGV4aXN0ZWQuIgpAQCAtMTEwLDcgKzEzNSw3IEBACiAgICAgZmkKICAgZmkKICAgaWYgWyAhIC1kICRTTk1QX1RNUERJUiBdOyB0aGVuCi0gICAgbWtkaXIgJFNOTVBfVE1QRElSCisgICAgbWtkaXIgLXAgJFNOTVBfVE1QRElSCiAgICAgY2htb2QgMDcwMCAkU05NUF9UTVBESVIKICAgZmkKICAgaWYgWyAieCRTTk1QX1RNUF9QRVJTSVNURU5URElSIiA9ICJ4IiBdOyB0aGVuCkBAIC0xMzAsNyArMTU1LDYgQEAKIAogU05NUF9JR05PUkVfV0lORE9XU19SRUdJU1RSWT0idHJ1ZSIKIGV4cG9ydCBTTk1QX0lHTk9SRV9XSU5ET1dTX1JFR0lTVFJZCi1TTk1QX0VOVl9TRVBBUkFUT1I9ImAke2J1aWxkZGlyfS9uZXQtc25tcC1jb25maWcgLS1lbnYtc2VwYXJhdG9yYCIKIFNOTVBfUEVSTFBST0c9ImAke2J1aWxkZGlyfS9uZXQtc25tcC1jb25maWcgLS1wZXJscHJvZ2AiCiBTTk1QX1RFU1RESVI9IiRTTk1QX0JBU0VESVIvdGVzdHMiCiBTTk1QX0NPTkZJR19GSUxFPSIkU05NUF9UTVBESVIvc25tcGQuY29uZiIKQEAgLTE0NCw4ICsxNjgsMTAgQEAKIFNOTVBfQUdFTlRYX1BJRF9GSUxFPSIkU05NUF9UTVBESVIvYWdlbnR4LnBpZCIKIFNOTVBfQUdFTlRYX0xPR19GSUxFPSIkU05NUF9UTVBESVIvYWdlbnR4LmxvZyIKIFNOTVBDT05GUEFUSD0iJHtTTk1QX1RNUERJUn0ke1NOTVBfRU5WX1NFUEFSQVRPUn0ke1NOTVBfVE1QX1BFUlNJU1RFTlRESVJ9IgordHJhbnNsYXRlX3BhdGggU05NUENPTkZQQVRICiBleHBvcnQgU05NUENPTkZQQVRICiBTTk1QX1BFUlNJU1RFTlRfRElSPSRTTk1QX1RNUF9QRVJTSVNURU5URElSCit0cmFuc2xhdGVfcGF0aCBTTk1QX1BFUlNJU1RFTlRfRElSCiBleHBvcnQgU05NUF9QRVJTSVNURU5UX0RJUgogI1NOTVBfUEVSU0lTVEVOVF9GSUxFPSIkU05NUF9UTVBfUEVSU0lTVEVOVERJUi9wZXJzaXN0ZW50LXN0b3JlLmNvbmYiCiAjZXhwb3J0IFNOTVBfUEVSU0lTVEVOVF9GSUxFCkBAIC0xNzUsOCArMjAxLDEyIEBACiBmaQogCiBpZiBbICJ4JE9TVFlQRSIgPSAieG1zeXMiIF07IHRoZW4KLSAgICAjIFRvIGRvOiBtYWtlIGNvbmZpZ3VyZSBmaW5kIG91dCB0aGUgcGF0aCBvZiBNU1lTJyBzaC5leGUuCi0gICAgTVNZU19TSD0iYzovbXN5cy8xLjAvYmluL3NoLmV4ZSIKKyAgICAjIE9idGFpbiB0aGUgTVNZUyBpbnN0YWxsYXRpb24gcGF0aCBmcm9tIHRoZSAhQzogZW52aXJvbm1lbnQgdmFyaWFibGUsCisgICAgIyByZW1vdmUgc3Vycm91bmRpbmcgc2luZ2xlIHF1b3RlcyBhbmQgY29udmVydCBiYWNrc2xhc2hlcyBpbnRvIGZvcndhcmQKKyAgICAjIHNsYXNoZXMuCisgICAgTVNZU19QQVRIPSIkKHNldCBcCisgICAgICAgICAgICAgICAgIHwgc2VkIC1uICdzfF5cIUM6PSciJyInXCguKlwpJyInIickfFwxfHAnIHwgc2VkICdzfFxcfC98ZycpIgorICAgIE1TWVNfU0g9IiRNU1lTX1BBVEgvc2guZXhlIgogZmkKIAogUFJPQkVfRk9SX1BPUlQoKSB7CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoIGIvdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaAppbmRleCAyZGYyYzk1Li43MThlZGM0IDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2gKQEAgLTY4LDggKzY4LDggQEAKIH0KIAogQ0FOX1VTTEVFUCgpIHsKLSAgIGlmIFsgIiRTTk1QX0NBTl9VU0xFRVAiID0gMCAtbyAiJFNOTVBfQ0FOX1VTTEVFUCIgPSAwIF0gOyB0aGVuCi0gICAgIHJldHVybiAkU05NUF9DQU5fVVNMRUVQCisgICBpZiBbICIkU05NUF9DQU5fVVNMRUVQIiA9IDAgLW8gIiRTTk1QX0NBTl9VU0xFRVAiID0gMSBdIDsgdGhlbgorICAgICByZXR1cm4gMAogICAgZmkKICAgIHNsZWVwIC4xID4gL2Rldi9udWxsIDI+JjEKICAgIGlmIFsgJD8gPSAwIF0gOyB0aGVuCkBAIC0xMzQsNyArMTM0LDcgQEAKIAltaXNzaW5nZmlsZXM9IiIKIAogCWZvciBmIGluICQqOyBkbwotCQlbIC1lICIkZiIgXSAmJiBjb250aW51ZQorCQlbIC1mICIkZiIgXSAmJiBjb250aW51ZQogCQllY2hvICJGQUlMRUQ6IENhbm5vdCBmaW5kIGZpbGUgXCIkZlwiLiIKIAkJbWlzc2luZ2ZpbGVzPXRydWUKIAlkb25lCkBAIC0xNTEsNyArMTUxLDcgQEAKICMKIFNUQVJUVEVTVCgpIHsKICAgICAgICAgTkVXT1VUUFVURklMRQotCVsgISAtZSAiJGp1bmtvdXRwdXRmaWxlIiBdICYmIHsKKwlbICEgLWYgIiRqdW5rb3V0cHV0ZmlsZSIgXSAmJiB7CiAJCXRvdWNoICRqdW5rb3V0cHV0ZmlsZQogCQlyZXR1cm4KIAl9CkBAIC0yODYsNyArMjg2LDcgQEAKICAgICBzaGlmdAogICAgIHNoaWZ0CiAgICAgaWYgWyAkU05NUF9WRVJCT1NFIC1ndCAwIF07IHRoZW4KLQllY2hvIC1uICJjaGVja2luZyBvdXRwdXQgZm9yIFwiJCpcIi4uLiIKKwllY2hvIC1uICJjaGVja2luZyAkY2hrZmlsZSBmb3IgJGNrZmNvdW50IFwiJCpcIi4uLiIKICAgICBmaQogCiAgICAgaWYgWyAtZiAkY2hrZmlsZSBdOyB0aGVuCkBAIC0zNTYsODUgKzM1Niw4MyBAQAogICAgIENIRUNLRklMRUNPVU5UICRTTk1QX1NOTVBEX0xPR19GSUxFICRjb3VudCAkQAogfQogCi1XQUlURk9SQUdFTlRTSFVUVElOR0RPV04oKSB7Ci0gICAgaWYgWyAieCRPU1RZUEUiICE9ICJ4bXN5cyIgXTsgdGhlbgotICAgICAgICBXQUlURk9SQUdFTlQgInNodXR0aW5nIGRvd24iCisjIFJldHVybiAwICh0cnVlKSBpZiBhIHByb2Nlc3Mgd2l0aCBwaWQgJDEgZXhpc3RzIGFuZCAxIChmYWxzZSkgaWYgbm8gcHJvY2VzcworIyB3aXRoIHBpZCAkMSBleGlzdHMuCitJU1JVTk5JTkcoKSB7CisgICAgaWYgWyAieCRPU1RZUEUiID0gInhtc3lzIiBdOyB0aGVuCisJcHNsaXN0LmV4ZSAiJDEiIDI+JjEgfCB3aGlsZSByZWFkIG5hbWUgcHNwaWQgcmVzdDsgZG8KKwkgICAgaWYgWyAiJDEiID0gIiRwc3BpZCIgXTsgdGhlbgorCQlyZXR1cm4gMAorCSAgICBmaQorCWRvbmUKKwlyZXR1cm4gMQogICAgIGVsc2UKLQlDQU5fVVNMRUVQCi0JaWYgWyAkU05NUF9DQU5fVVNMRUVQID0gMSBdIDsgdGhlbgotCSAgc2xlZXB0aW1lPWBleHByICRTTk1QX1NMRUVQICcqJyA1MGAKLQllbHNlIAotCSAgc2xlZXB0aW1lPWBleHByICRTTk1QX1NMRUVQICcqJyA1YAotCWZpCi0gICAgICAgIHNubXBkX3BpZD1gY2F0ICRTTk1QX1NOTVBEX1BJRF9GSUxFYAotICAgICAgICB3aGlsZSBbICRzbGVlcHRpbWUgLWd0IDAgXSAmJiBraWxsIC0wICIkc25tcGRfcGlkIiAyPi9kZXYvbnVsbDsgZG8KLSAgICAgICAgICAgIGlmIFsgJFNOTVBfQ0FOX1VTTEVFUCA9IDEgXTsgdGhlbgotICAgICAgICAgICAgICAgIHNsZWVwIC4xCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgc2xlZXAgMQotICAgICAgICAgICAgZmkKLSAgICAgICAgICAgIHNsZWVwdGltZT1gZXhwciAkc2xlZXB0aW1lIC0gMWAKLSAgICAgICAgZG9uZQorICAgICAgICBraWxsIC0wICIkMSIgMj4vZGV2L251bGwKICAgICBmaQogfQogCisjIEVjaG8gYSBjb21tYW5kIHRoYXQgYXNrcyB0aGUgcHJvY2VzcyB3aXRoIHBpZCAkMSB0byBzdG9wLgorRUNIT1NFTkRTSUdURVJNKCkgeworICAgIGlmIFsgIngkT1NUWVBFIiA9ICJ4bXN5cyIgXTsgdGhlbgorICAgICAgICBlY2hvIHBza2lsbC5leGUgJDEKKyAgICBlbHNlCisgICAgICAgIGVjaG8ga2lsbCAtVEVSTSAkMQorICAgIGZpCit9CisKKyMgRWNobyBhIGNvbW1hbmQgdGhhdCBzdG9wcyB0aGUgcHJvY2VzcyB3aXRoIHBpZCAkMSBmb3JjaWJseS4KK0VDSE9TRU5EU0lHS0lMTCgpIHsKKyAgICBpZiBbICJ4JE9TVFlQRSIgPSAieG1zeXMiIF07IHRoZW4KKyAgICAgICAgZWNobyBwc2tpbGwuZXhlICQxCisgICAgZWxzZQorICAgICAgICBlY2hvIGtpbGwgLUtJTEwgJDEKKyAgICBmaQorfQorCisjIFdhaXQgdW50aWwgdGhlIHNoZWxsIHN0YXRlbWVudCAiJEAiIGV2YWx1YXRlcyB0byBmYWxzZS4KK1dBSVRGT1JOT1RDT05EKCkgeworICAgIENBTl9VU0xFRVAKKyAgICBpZiBbICRTTk1QX0NBTl9VU0xFRVAgPSAxIF0gOyB0aGVuCisgICAgICAgIHNsZWVwdGltZT1gZXhwciAkU05NUF9TTEVFUCAnKicgNTBgCisgICAgZWxzZSAKKyAgICAgICAgc2xlZXB0aW1lPWBleHByICRTTk1QX1NMRUVQICcqJyA1YAorICAgIGZpCisgICAgd2hpbGUgWyAkc2xlZXB0aW1lIC1ndCAwIF0gJiYgZXZhbCAiJEAiOyBkbworICAgICAgICBpZiBbICRTTk1QX0NBTl9VU0xFRVAgPSAxIF07IHRoZW4KKyAgICAgICAgICAgIHNsZWVwIC4xCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNsZWVwIDEKKyAgICAgICAgZmkKKyAgICAgICAgc2xlZXB0aW1lPWBleHByICRzbGVlcHRpbWUgLSAxYAorICAgIGRvbmUKK30KKworIyBXYWl0IHVudGlsIHRoZSBzaGVsbCBzdGF0ZW1lbnQgIiRAIiBldmFsdWF0ZXMgdG8gdHJ1ZS4KK1dBSVRGT1JDT05EKCkgeworICAgIFdBSVRGT1JOT1RDT05EIGlmICIkQDsiIHRoZW4gZmFsc2UgIjsiIGVsc2UgdHJ1ZSAiOyIgZmkKK30KKwogV0FJVEZPUkFHRU5UKCkgewogICAgIFdBSVRGT1IgIiRAIiAkU05NUF9TTk1QRF9MT0dfRklMRQorICAgIGlmIFsgJFNOTVBfQ0FOX1VTTEVFUCA9IDEgXTsgdGhlbgorICAgICAgICBzbGVlcCAuMQorICAgIGVsc2UKKyAgICAgICAgc2xlZXAgMQorICAgIGZpCiB9CiAKIFdBSVRGT1JUUkFQRCgpIHsKICAgICBXQUlURk9SICIkQCIgJFNOTVBfU05NUFRSQVBEX0xPR19GSUxFCisgICAgaWYgWyAkU05NUF9DQU5fVVNMRUVQID0gMSBdOyB0aGVuCisgICAgICAgIHNsZWVwIC4xCisgICAgZWxzZQorICAgICAgICBzbGVlcCAxCisgICAgZmkKIH0KIAorIyBXYWl0IHVudGlsIHBhdHRlcm4gIiQxIiBhcHBlYXJzIGluIGZpbGUgIiQyIi4KIFdBSVRGT1IoKSB7Ci0gICMjIHNhdmUgdGhlIHByZXZpb3VzIHNhdmUgc3RhdGUgYW5kIHRlc3QgcmVzdWx0Ci0gICAgc2F2ZV9zdGF0ZT0kT0tfVE9fU0FWRV9SRVNVTFQKLSAgICBzYXZlX3Rlc3Q9JHNubXBfbGFzdF90ZXN0X3Jlc3VsdAotICAgIE9LX1RPX1NBVkVfUkVTVUxUPTAKLQotICAgIHNsZWVwdGltZT0kU05NUF9TTEVFUAotICAgIG9sZHNsZWVwdGltZT0kU05NUF9TTEVFUAotICAgIGlmIFsgIiQxIiAhPSAiIiBdIDsgdGhlbgotCUNBTl9VU0xFRVAKLQlpZiBbICRTTk1QX0NBTl9VU0xFRVAgPSAxIF0gOyB0aGVuCi0JICBzbGVlcHRpbWU9YGV4cHIgJFNOTVBfU0xFRVAgJyonIDUwYAotICAgICAgICAgIFNOTVBfU0xFRVA9LjEKLQllbHNlIAotCSAgc2xlZXB0aW1lPWBleHByICRTTk1QX1NMRUVQICcqJyA1YAotCSAgU05NUF9TTEVFUD0xCi0JZmkKLSAgICAgICAgd2hpbGUgWyAkc2xlZXB0aW1lIC1ndCAwIF0gOyBkbwotCSAgaWYgWyAiJDIiID0gIiIgXSA7IHRoZW4KLSAgICAgICAgICAgIENIRUNLQ09VTlQgbm9lcnJvciAiJEAiCi0gICAgICAgICAgZWxzZQotCSAgICBDSEVDS0ZJTEVDT1VOVCAiJDIiIG5vZXJyb3IgIiQxIgotCSAgZmkKLSAgICAgICAgICBpZiBbICIkc25tcF9sYXN0X3Rlc3RfcmVzdWx0IiAhPSAiIiBdIDsgdGhlbgotICAgICAgICAgICAgICBpZiBbICIkc25tcF9sYXN0X3Rlc3RfcmVzdWx0IiAtZ3QgMCBdIDsgdGhlbgotCSAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICBmaQotCSAgZmkKLSAgICAgICAgICBERUxBWQotICAgICAgICAgIHNsZWVwdGltZT1gZXhwciAkc2xlZXB0aW1lIC0gMWAKLSAgICAgICAgZG9uZQotCi0JIyB0aGUgYWJvdmUgbXVsdGktY2hlY2svc2xlZXAgZG9lc24ndCByZXBvcnQgZXJyb3JzIG91dCBvZiBUQVAKLSAgICAgICAgIyB0aGlzIGZpbmFsIGNoZWNrIHdpbGwgcmVwb3J0IG9ubHkgMSAKLQlpZiBbICIkMiIgPSAiIiBdIDsgdGhlbgotICAgICAgICAgIENIRUNLQ09VTlQgYXRsZWFzdG9uZSAiJEAiCi0gICAgICAgIGVsc2UKLQkgIENIRUNLRklMRUNPVU5UICIkMiIgYXRsZWFzdG9uZSAiJDEiCi0JZmkKLSAgICAgICAgU05NUF9TTEVFUD0kb2xkc2xlZXB0aW1lCi0gICAgZWxzZQotICAgICAgICBpZiBbICRTTk1QX1NMRUVQIC1uZSAwIF0gOyB0aGVuCi0JICAgIHNsZWVwICRTTk1QX1NMRUVQCi0gICAgICAgIGZpCi0gICAgZmkKLQotICAjIyByZXN0b3JlIHRoZSBwcmV2aW91cyBzYXZlIHN0YXRlIGFuZCB0ZXN0IHJlc3VsdAotICAgIE9LX1RPX1NBVkVfUkVTVUxUPSRzYXZlX3N0YXRlCi0gICAgc25tcF9sYXN0X3Rlc3RfcmVzdWx0PSRzYXZlX3Rlc3QKKyAgICBXQUlURk9SQ09ORCBncmVwICIkMSIgIiQyIiAiPi9kZXYvbnVsbCIgIjI+JjEiCiB9CiAKIEdPT0QoKSB7CkBAIC00NTUsMTYgKzQ1Myw2IEBACiAgICAgZWNobyAiIyAkQCIgPj4gJFNOTVBfVE1QRElSL2ludm9rZWQKIH0KIAotIyBXQUlURk9ST1JESUUgImdyZXAgc3RyaW5nIiBbImZpbGUiXQotV0FJVEZPUk9SRElFKCkgewotICAgIFdBSVRGT1IgIiQxIiAiJDIiCi0gICAgaWYgWyAiJHNubXBfbGFzdF90ZXN0X3Jlc3VsdCIgIT0gMCBdIDsgdGhlbgotICAgICAgICBCQUQKLSAgICAgICAgRklOSVNIRUQKLSAgICBmaQotICAgIEdPT0QKLX0KLQogIyBDSEVDS09SRElFICJncmVwIHN0cmluZyIgWyJmaWxlIl0gLi4gRkFJTCBpZiAiZ3JlcCBzdHJpbmciIGlzICpub3QqIGZvdW5kCiBDSEVDS09SRElFKCkgewogICAgIGlmIFsgIngkMiIgPSAieCIgXTsgdGhlbgpAQCAtNTIwLDcgKzUwOCw2IEBACiAjCiAjIGNvbW1vbiB0byBTVEFSVEFHRU5UIGFuZCBTVEFSVFRSQVBECiAjIGxvZyBjb21tYW5kIHRvICJpbnZva2VkIiBmaWxlCi0jIGRlbGF5IGFmdGVyIGNvbW1hbmQgdG8gYWxsb3cgZm9yIHNldHRsZQogIwogU1RBUlRQUk9HKCkgewogICAgIGlmIFsgIngkRFlOQU1JQ19BTkFMWVpFUiIgIT0gIngiIF07IHRoZW4KQEAgLTU2OCw3ICs1NTUsOCBAQAogICAgICAgICBQT1JUX1NQRUM9IiR7U05NUF9UUkFOU1BPUlRfU1BFQ306JHtTTk1QX1RFU1RfREVTVH0ke1BPUlRfU1BFQ30iCiAgICAgZmkKICAgICBTVEFSVFBST0cKLSAgICBXQUlURk9SQUdFTlQgIk5FVC1TTk1QIHZlcnNpb24iCisgICAgV0FJVEZPUkNPTkQgdGVzdCAtZiAkU05NUF9TTk1QRF9QSURfRklMRQorICAgIFdBSVRGT1JBR0VOVCAiTkVULVNOTVAudmVyc2lvbiIKIH0KIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtby0KQEAgLTU4Miw3ICs1NzAsOCBAQAogICAgICAgICBQT1JUX1NQRUM9IiR7U05NUF9UUkFOU1BPUlRfU1BFQ306JHtTTk1QX1RFU1RfREVTVH0ke1BPUlRfU1BFQ30iCiAgICAgZmkKICAgICBTVEFSVFBST0cKLSAgICBXQUlURk9SVFJBUEQgIk5FVC1TTk1QIHZlcnNpb24iCisgICAgV0FJVEZPUkNPTkQgdGVzdCAtZiAkU05NUF9TTk1QVFJBUERfUElEX0ZJTEUKKyAgICBXQUlURk9SVFJBUEQgIk5FVC1TTk1QLnZlcnNpb24iCiB9CiAKICMjIHNlbmRpbmcgU0lHSFVQIGZvciByZWNvbmZpZ3VyYXRpb24KQEAgLTU5NSw2ICs1ODQsNyBAQAogICAgICAgICAgIENPTU1BTkQ9ImtpbGwgLUhVUCBgY2F0ICQxYCIKICAgICAgICAgZmkKIAllY2hvICRDT01NQU5EID4+ICRTTk1QX1RNUERJUi9pbnZva2VkCisJVkVSQk9TRV9PVVQgMCAkQ09NTUFORAogCSRDT01NQU5EID4gL2Rldi9udWxsIDI+JjEKICAgICBmaQogfQpAQCAtNjE5LDE0ICs2MDksMTMgQEAKICMgICAgdGhpcyBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCBmb3IgaW50ZXJhY3Rpb24gYmV0d2VlbgogIyAgICBtYXN0ZXIgYWdlbnQgYW5kIHN1YiBhZ2VudC4KIFNUT1BQUk9HKCkgewotICAgIGlmIFsgLWYgJDEgXTsgdGhlbgotICAgICAgICBpZiBbICJ4JE9TVFlQRSIgPSAieG1zeXMiIF07IHRoZW4KLSAgICAgICAgICBDT01NQU5EPSJwc2tpbGwuZXhlIGBjYXQgJDFgIgotICAgICAgICBlbHNlCi0gICAgICAgICAgQ09NTUFORD0ia2lsbCAtVEVSTSBgY2F0ICQxYCIKLSAgICAgICAgZmkKLQllY2hvICRDT01NQU5EID4+ICRTTk1QX1RNUERJUi9pbnZva2VkCi0JJENPTU1BTkQgPiAvZGV2L251bGwgMj4mMQorICAgIHBpZD0iYGNhdCAkMSAyPi9kZXYvbnVsbGAiCisgICAgaWYgWyAieCRwaWQiICE9ICJ4IiBdOyB0aGVuCisJQ09NTUFORD0iYEVDSE9TRU5EU0lHVEVSTSAkcGlkYCIKKwllY2hvICIkQ09NTUFORCAoJDEpIiA+PiAkU05NUF9UTVBESVIvaW52b2tlZAorCVZFUkJPU0VfT1VUIDAgIiRDT01NQU5EICgkMSkiCisgICAgICAgICRDT01NQU5EID4vZGV2L251bGwgMj4mMQorICAgICAgICBXQUlURk9STk9UQ09ORCAiSVNSVU5OSU5HICRwaWQiCiAgICAgZmkKIH0KIApAQCAtNjM1LDcgKzYyNCw2IEBACiBTVE9QQUdFTlQoKSB7CiAgICAgU0FWRV9SRVNVTFRTCiAgICAgU1RPUFBST0cgJFNOTVBfU05NUERfUElEX0ZJTEUKLSAgICBXQUlURk9SQUdFTlRTSFVUVElOR0RPV04KICAgICBpZiBbICRTTk1QX1ZFUkJPU0UgLWd0IDEgXTsgdGhlbgogCWVjaG8gIkFnZW50IE91dHB1dDoiCiAJZWNobyAiJHNlcGFyYXRvciBbc3Rkb3V0XSIKQEAgLTY1MSw5ICs2MzksNiBAQAogU1RPUFRSQVBEKCkgewogICAgIFNBVkVfUkVTVUxUUwogICAgIFNUT1BQUk9HICRTTk1QX1NOTVBUUkFQRF9QSURfRklMRQotICAgIGlmIFsgIngkT1NUWVBFIiAhPSAieG1zeXMiIF07IHRoZW4KLSAgICAgICAgV0FJVEZPUlRSQVBEICJTdG9wcGVkIgotICAgIGZpCiAgICAgaWYgWyAkU05NUF9WRVJCT1NFIC1ndCAxIF07IHRoZW4KIAllY2hvICJzbm1wdHJhcGQgT3V0cHV0OiIKIAllY2hvICIkc2VwYXJhdG9yIFtzdGRvdXRdIgpAQCAtNjcxLDMzICs2NTYsMTkgQEAKICAgICAjIyBubyBtb3JlIGNoYW5nZXMgdG8gdGVzdCByZXN1bHQuCiAgICAgT0tfVE9fU0FWRV9SRVNVTFQ9MAogCisgICAgcGlkcz0iYGNhdCAkU05NUF9UTVBESVIvKnBpZCogMj4vZGV2L251bGxgIgogICAgIGlmIFsgIiRTTk1QRFNUQVJURUQiID0gIjEiIF0gOyB0aGVuCiAgICAgICBTVE9QQUdFTlQKICAgICBmaQogICAgIGlmIFsgIiRUUkFQRFNUQVJURUQiID0gIjEiIF0gOyB0aGVuCiAgICAgICBTVE9QVFJBUEQKICAgICBmaQotICAgIGZvciBwZmlsZSBpbiAkU05NUF9UTVBESVIvKnBpZCogOyBkbwotICAgICAgICBpZiBbICJ4JHBmaWxlIiA9ICJ4JFNOTVBfVE1QRElSLypwaWQqIiBdOyB0aGVuCi0gICAgICAgICAgICBCQUQgIihubyBwaWQgZmlsZShzKSBmb3VuZCkgIgotICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgZmkKLSAgICAgICAgaWYgWyAhIC1mICRwZmlsZSBdOyB0aGVuCi0gICAgICAgICAgICBCQUQgIignJHBmaWxlJyBkaXNhcHBlYXJlZCkgIgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgZmkKLQlwaWQ9YGNhdCAkcGZpbGVgCi0gICAgICAgICMgV2hlbiBub3QgcnVubmluZyBvbiBNaW5HVywgY2hlY2sgd2hldGhlciBzbm1wZCBpcyBzdGlsbCBydW5uaW5nLgotICAgICAgICBpZiBbICJ4JE9TVFlQRSIgPSAieG1zeXMiIF0gfHwgeyBwcyAtZSAyPi9kZXYvbnVsbCB8IGVncmVwICJeWwkgXSokcGlkWwkgXSsiID4gL2Rldi9udWxsIDI+JjE7IH07IHRoZW4KLSAgICAgICAgICAgIGlmIFsgIngkT1NUWVBFIiAhPSAieG1zeXMiIF07IHRoZW4KLSAgICAgICAgICAgICAgICBTTk1QX1NBVkVfVE1QRElSPXllcwotICAgICAgICAgICAgZmkKLSAgICAgICAgICAgIGlmIFsgIngkT1NUWVBFIiA9ICJ4bXN5cyIgXTsgdGhlbgotICAgICAgICAgICAgICBDT01NQU5EPSJwc2tpbGwuZXhlICRwaWQiCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgIENPTU1BTkQ9ImtpbGwgLTkgJHBpZCIKLSAgICAgICAgICAgIGZpCi0JICAgIGVjaG8gJENPTU1BTkQgIigkcGZpbGUpIiA+PiAkU05NUF9UTVBESVIvaW52b2tlZAorICAgIGZvciBwaWQgaW4gJHBpZHM7IGRvCisgICAgICAgIGlmIElTUlVOTklORyAkcGlkOyB0aGVuCisJICAgIFNOTVBfU0FWRV9UTVBESVI9eWVzCisJICAgIENPTU1BTkQ9ImBFQ0hPU0VORFNJR0tJTEwgJHBpZGAiCisJICAgIGVjaG8gIiRDT01NQU5EICgkcGZpbGUpIiA+PiAkU05NUF9UTVBESVIvaW52b2tlZAorCSAgICBWRVJCT1NFX09VVCAwICIkQ09NTUFORCAoJHBmaWxlKSIKIAkgICAgJENPTU1BTkQgPiAvZGV2L251bGwgMj4mMQogCSAgICByZXR1cm5fdmFsdWU9MQogCWZpCkBAIC03MjgsNyArNjk5LDcgQEAKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLW8tCiAjCiBWRVJCT1NFX09VVCgpIHsKLSAgICBpZiBbICRTTk1QX1ZFUkJPU0UgPiAkMSBdOyB0aGVuCisgICAgaWYgWyAkU05NUF9WRVJCT1NFIC1ndCAkMSBdOyB0aGVuCiAJc2hpZnQKIAllY2hvICIkKiIKICAgICBmaQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuIGIvdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuCmluZGV4IGViMzdlOTYuLjE5NzgwMDkgMTAwNzU1Ci0tLSBhL3Rlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bgorKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW4KQEAgLTExLDcgKzExLDggQEAKICAgICBpZiBjZCB0ZXN0aW5nIDI+L2Rldi9udWxsOyB0aGVuCiAgICAgICAgOgogICAgIGVsc2UKLSAgICAgICBlY2hvICJFcnJvcjogJDAgbXVzdCBiZSBzdGFydGVkIGZyb20gaW5zaWRlIHRoZSB0ZXN0aW5nIGRpcmVjdG9yeS4iCisgICAgICAgZWNobyAiRXJyb3I6ICQwIG11c3QgYmUgc3RhcnRlZCBmcm9tIGluc2lkZSB0aGUgdGVzdGluZyBkaXJlY3RvcnkgaW4gdGhlIHNvdXJjZSB0cmVlLiIKKyAgICAgICBlY2hvICJUaGUgYnVpbGRkaXIgZW52aXJvbm1lbnQgdmFyaWFibGUgY2FuIGJlIHNldCB0byBwb2ludCB0byB0aGUgYnVpbGQgZGlyZWN0b3J5LiIKICAgICAgICBleGl0IDEKICAgICBmaQogZmkKQEAgLTI0LDcgKzI1LDggQEAKICAgICBpZiBjZCB0ZXN0aW5nIDI+L2Rldi9udWxsOyB0aGVuCiAgICAgICAgOgogICAgIGVsc2UKLSAgICAgICBlY2hvICJFcnJvcjogJDAgbXVzdCBiZSBzdGFydGVkIGZyb20gaW5zaWRlIHRoZSB0ZXN0aW5nIGRpcmVjdG9yeS4iCisgICAgICAgZWNobyAiRXJyb3I6ICQwIG11c3QgYmUgc3RhcnRlZCBmcm9tIGluc2lkZSB0aGUgdGVzdGluZyBkaXJlY3RvcnkgaW4gdGhlIHNvdXJjZSB0cmVlLiIKKyAgICAgICBlY2hvICJUaGUgYnVpbGRkaXIgZW52aXJvbm1lbnQgdmFyaWFibGUgY2FuIGJlIHNldCB0byBwb2ludCB0byB0aGUgYnVpbGQgZGlyZWN0b3J5LiIKICAgICAgICBleGl0IDEKICAgICBmaQogZmkKQEAgLTQ3LDcgKzQ5LDEyIEBACiBleHBvcnQgU05NUF9PUklHRElSCiAKIFNOTVBfVVBESVI9JHtidWlsZGRpcn0gICAgICAgICAgIyMgYnVpbGQgZGlyZWN0b3J5Ci1TTk1QX1NMRUVQPSR7U05NUF9TTEVFUDo9MX0gCSMjIGRlZmF1bHQgc2Vjb25kcyB0byBzbGVlcAoraWYgWyAieCREWU5BTUlDX0FOQUxZWkVSIiA9ICJ4IiBdOyB0aGVuCisgICAgU05NUF9TTEVFUF9ERUZBVUxUPTEKK2Vsc2UKKyAgICBTTk1QX1NMRUVQX0RFRkFVTFQ9MTAKK2ZpCitTTk1QX1NMRUVQPSR7U05NUF9TTEVFUDo9JFNOTVBfU0xFRVBfREVGQVVMVH0gCSMjIGRlZmF1bHQgc2Vjb25kcyB0byBzbGVlcAogZXhwb3J0IFNOTVBfU0xFRVAKIAogIyBGaW5kIGV4ZWN1dGFibGVzIGluIHNvdXJjZSBmaXJzdCwgdGhlbiBidWlsZCwgdGhlbiBleGlzdGluZyBQQVRILgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA0c25tcF9lbnVtX2NsaWIuYyBiL3Rlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNHNubXBfZW51bV9jbGliLmMKaW5kZXggNzJlZTVjOS4uZDI4YjE5YiAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA0c25tcF9lbnVtX2NsaWIuYworKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDRzbm1wX2VudW1fY2xpYi5jCkBAIC04NywxMCArODcsMTAgQEAKIE9LKHNlX2ZpbmRfbGlzdCgyLCAzKSwgImxpc3QgKDIsIDMpIHNob3VsZCBiZSBwcmVzZW50Iik7CiBpZiAoc2VfZmluZF9saXN0KDIsIDMpKSB7CiAgIE9LKHNlX2ZpbmRfdmFsdWUoMiwgMywgImtpd2lmcnVpdCIpID09IDMsCi0gICAgICJsb29rdXAgYnkgc3RyaW5nIHNob3VsZCByZXR1cm4gdGhlIHByb3BlciB2YWx1ZSIpCisgICAgICJsb29rdXAgYnkgc3RyaW5nIHNob3VsZCByZXR1cm4gdGhlIHByb3BlciB2YWx1ZSIpOwogICBzZV9maW5kX3Jlc3VsdCA9IHNlX2ZpbmRfbGFiZWwoMiwgMywgMik7CiAgIE9LKHNlX2ZpbmRfcmVzdWx0ICYmIHN0cmNtcChzZV9maW5kX3Jlc3VsdCwgInBlYXIiKSA9PSAwLAotICAgICAibG9va3VwIGJ5IGxhYmVsIHNob3VsZCByZXR1cm4gdGhlIHByb3BlciBzdHJpbmciKQorICAgICAibG9va3VwIGJ5IGxhYmVsIHNob3VsZCByZXR1cm4gdGhlIHByb3BlciBzdHJpbmciKTsKIH0KIAogc2VfcmVhZF9jb25mKCJlbnVtIiwKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNXRhYmxlX2RhdGFzZXRfY2FnZW50bGliLmMgYi90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDV0YWJsZV9kYXRhc2V0X2NhZ2VudGxpYi5jCmluZGV4IGY5MDZjNTUuLmNhYzk0MGUgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNXRhYmxlX2RhdGFzZXRfY2FnZW50bGliLmMKKysrIGIvdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA1dGFibGVfZGF0YXNldF9jYWdlbnRsaWIuYwpAQCAtMTUsNiArMTUsNyBAQAogaW50MzJfdCBpdmFsOwogaW50MzJfdCBpLCBqOwogCitpbml0X2FnZW50KCJzbm1wZCIpOwogaW5pdF9zbm1wKCJzbm1wZCIpOwogCiB0ZHMgPSBuZXRzbm1wX2NyZWF0ZV90YWJsZV9kYXRhX3NldCgidGFibGVfZGF0YXNldCB1bml0LXRlc3QiKTsKQEAgLTUyLDUgKzUzLDYgQEAKIG5ldHNubXBfZGVsZXRlX3RhYmxlX2RhdGFfc2V0KHRkcyk7CiAKIHNubXBfc2h1dGRvd24oInNubXBkIik7CitzaHV0ZG93bl9hZ2VudCgpOwogCiBPSyhUUlVFLCAiZG9uZSIpOwpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jYWdlbnRsaWIuYyBiL3Rlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNnNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fY2FnZW50bGliLmMKaW5kZXggYWVmNDJkMS4uZWQ3YWU2OCAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jYWdlbnRsaWIuYworKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NhZ2VudGxpYi5jCkBAIC0xLDI0ICsxLDQxIEBACiAvKiBIRUFERVIgVGVzdGluZyBTTk1QIGhhbmRsZXIgcmVnaXN0cmF0aW9uICovCiAKIHN0YXRpYyBvaWQgT2lkW10gPSB7IDEsIDMsIDYsIDEsIDMsIDMyNyB9OyAvKiBleHBlcmltZW50YWwuMzI3ICovCi1uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uICpoYW5kbGVyOwotbmV0c25tcF9taWJfaGFuZGxlciAqZGggPSBOVUxMOworbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiAqaGFuZGxlciwgKmhhbmRsZXIyOworbmV0c25tcF9taWJfaGFuZGxlciAqZGg7CituZXRzbm1wX2NhY2hlICpuYywgKm5jMjsKIAogaW5pdF9zbm1wKCJzbm1wIik7CiAKIGhhbmRsZXIgPSBuZXRzbm1wX2NyZWF0ZV9oYW5kbGVyX3JlZ2lzdHJhdGlvbigiZXhwZXJpbWVudGFsLjMyNyIsIE5VTEwsCiAJT2lkLCBPSURfTEVOR1RIKE9pZCksIEhBTkRMRVJfQ0FOX1JXUklURSk7CiBPSyhoYW5kbGVyICE9IE5VTEwsICJIYW5kbGVyIGNyZWF0aW9uLiIpOwotaGFuZGxlci0+aGFuZGxlci0+bXl2b2lkID0gbWFsbG9jKDMyOSk7Ci1oYW5kbGVyLT5oYW5kbGVyLT5kYXRhX2ZyZWUgPSBmcmVlOworCituYyA9IG5ldHNubXBfY2FjaGVfY3JlYXRlKDEwLCBOVUxMLCBOVUxMLCBPaWQsIE9JRF9MRU5HVEgoT2lkKSk7CitPSyhuYywgIm5ldHNubXBfY2FjaGUgYWxsb2NhdGlvbiIpOworT0soc25tcF9vaWRfY29tcGFyZShuYy0+cm9vdG9pZCwgbmMtPnJvb3RvaWRfbGVuLCBPaWQsIE9JRF9MRU5HVEgoT2lkKSkgPT0gMCwKKyAgICJIYW5kbGVyIHByaXZhdGUgT0lELiIpOworCitoYW5kbGVyLT5oYW5kbGVyLT5teXZvaWQgPSBuYzsKK25ldHNubXBfY2FjaGVfaGFuZGxlcl9vd25zX2NhY2hlKGhhbmRsZXItPmhhbmRsZXIpOworCituYzIgPSBoYW5kbGVyLT5oYW5kbGVyLT5teXZvaWQ7CitPSyhuYzIsICJIYW5kbGVyIHByaXZhdGUgZGF0YSIpOworT0soc25tcF9vaWRfY29tcGFyZShuYzItPnJvb3RvaWQsIG5jMi0+cm9vdG9pZF9sZW4sIE9pZCwgT0lEX0xFTkdUSChPaWQpKSA9PSAwLAorICAgIkhhbmRsZXIgcHJpdmF0ZSBPSUQuIik7CiAKIE9LKG5ldHNubXBfcmVnaXN0ZXJfaW5zdGFuY2UoaGFuZGxlcikgPT0gTUlCX1JFR0lTVEVSRURfT0ssCiAgICAiTUlCIHJlZ2lzdHJhdGlvbi4iKTsKIAotI2lmIDAKK2hhbmRsZXIyID0gbmV0c25tcF9jcmVhdGVfaGFuZGxlcl9yZWdpc3RyYXRpb24oImV4cGVyaW1lbnRhbC4zMjciLCBOVUxMLAorICAgICAgICBPaWQsIE9JRF9MRU5HVEgoT2lkKSwgSEFORExFUl9DQU5fUldSSVRFKTsKK09LKGhhbmRsZXIyICE9IE5VTEwsICJTZWNvbmQgcmVnaXN0cmF0aW9uIik7CisKK09LKG5ldHNubXBfcmVnaXN0ZXJfaW5zdGFuY2UoaGFuZGxlcjIpID09IE1JQl9EVVBMSUNBVEVfUkVHSVNUUkFUSU9OLAorICAgIkR1cGxpY2F0ZSBNSUIgcmVnaXN0cmF0aW9uLiIpOworCiBkaCA9IG5ldHNubXBfaGFuZGxlcl9kdXAoaGFuZGxlci0+aGFuZGxlcik7CiBPSyhkaCwgIkhhbmRsZXIgZHVwbGljYXRpb24uIik7Ci0jZW5kaWYKIAogT0sobmV0c25tcF91bnJlZ2lzdGVyX2hhbmRsZXIoaGFuZGxlcikgPT0gU05NUEVSUl9TVUNDRVNTLAogICAgIkhhbmRsZXIgdW5yZWdpc3RyYXRpb24uIik7CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMTBuZXRzbm1wX3N0cmluZ190aW1lX3RvX3NlY3NfY2xpYi5jIGIvdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDEwbmV0c25tcF9zdHJpbmdfdGltZV90b19zZWNzX2NsaWIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzFhZWViCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDEwbmV0c25tcF9zdHJpbmdfdGltZV90b19zZWNzX2NsaWIuYwpAQCAtMCwwICsxLDQ1IEBACisvKiBIRUFERVIgVGVzdGluZyB0aGUgbmV0c25tcF9zdHJpbmdfdGltZV90b19zZWNzIEFQSSAqLworaW50IHNlY3M7CisKKyNkZWZpbmUgVEVTVElUKHgseSkgXAorICAgIE9LRih5ID09IChzZWNzID0gbmV0c25tcF9zdHJpbmdfdGltZV90b19zZWNzKHgpKSwgXAorICAgICAgICAoIm5ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2VjcyBvZiAlcyByZXR1cm5lZCAlZCwgbm90IDUiLCB4LCBzZWNzKSkKKworVEVTVElUKCI1IiwgNSk7CitURVNUSVQoIjUiLCA1KTsKKworVEVTVElUKCI1cyIsIDUpOworVEVTVElUKCI1UyIsIDUpOworCitURVNUSVQoIjVtIiwgNSAqIDYwKTsKK1RFU1RJVCgiNU0iLCA1ICogNjApOworCitURVNUSVQoIjVoIiwgNSAqIDYwICogNjApOworVEVTVElUKCI1SCIsIDUgKiA2MCAqIDYwKTsKKworVEVTVElUKCI1ZCIsIDUgKiA2MCAqIDYwICogMjQpOworVEVTVElUKCI1RCIsIDUgKiA2MCAqIDYwICogMjQpOworCitURVNUSVQoIjV3IiwgNSAqIDYwICogNjAgKiAyNCAqIDcpOworVEVTVElUKCI1VyIsIDUgKiA2MCAqIDYwICogMjQgKiA3KTsKKworLyogbm93IHdpdGggbG9uZ2VyIHRpbWVzICovCitURVNUSVQoIjEyMzQiLCAxMjM0KTsKK1RFU1RJVCgiMTIzNCIsIDEyMzQpOworCitURVNUSVQoIjEyMzRzIiwgMTIzNCk7CitURVNUSVQoIjEyMzRTIiwgMTIzNCk7CisKK1RFU1RJVCgiMTIzNG0iLCAxMjM0ICogNjApOworVEVTVElUKCIxMjM0TSIsIDEyMzQgKiA2MCk7CisKK1RFU1RJVCgiMTIzNGgiLCAxMjM0ICogNjAgKiA2MCk7CitURVNUSVQoIjEyMzRIIiwgMTIzNCAqIDYwICogNjApOworCitURVNUSVQoIjEyMzRkIiwgMTIzNCAqIDYwICogNjAgKiAyNCk7CitURVNUSVQoIjEyMzREIiwgMTIzNCAqIDYwICogNjAgKiAyNCk7CisKK1RFU1RJVCgiMTIzNHciLCAxMjM0ICogNjAgKiA2MCAqIDI0ICogNyk7CitURVNUSVQoIjEyMzRXIiwgMTIzNCAqIDYwICogNjAgKiAyNCAqIDcpOworCisKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAxMXNubXBfb2xkX2FwaV9yZWdpc3RyYXRpb25fY2FnZW50bGliLmMgYi90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMTFzbm1wX29sZF9hcGlfcmVnaXN0cmF0aW9uX2NhZ2VudGxpYi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmMWQ0NDkKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMTFzbm1wX29sZF9hcGlfcmVnaXN0cmF0aW9uX2NhZ2VudGxpYi5jCkBAIC0wLDAgKzEsNDYgQEAKKy8qIEhFQURFUiBUZXN0aW5nIFNOTVAgaGFuZGxlciByZWdpc3RyYXRpb24gdmlhIHRoZSBvbGQgQVBJICovCisKK3N0YXRpYyBvaWQgT2lkW10gPSB7IDEsIDMsIDYsIDEsIDMsIDMyNyB9OyAvKiBleHBlcmltZW50YWwuMzI3ICovCitzdHJ1Y3QgdmFyaWFibGUgdmFyX2FycmF5W10gPSB7CisgICAgeyAwLCAwLyp0eXBlKi8sIDAvKmFjbCovLCBOVUxMLypmaW5kVmFyKi8sIDcsIHsgMSwgMywgNiwgMSwgMywgMzI3LCAxIH0gfSwKKyAgICB7IDAsIDAvKnR5cGUqLywgMC8qYWNsKi8sIE5VTEwvKmZpbmRWYXIqLywgNywgeyAxLCAzLCA2LCAxLCAzLCAzMjcsIDIgfSB9LAorICAgIHsgMCwgMC8qdHlwZSovLCAwLyphY2wqLywgTlVMTC8qZmluZFZhciovLCA3LCB7IDEsIDMsIDYsIDEsIDMsIDMyNywgMyB9IH0sCit9OworbmV0c25tcF9zZXNzaW9uICpzZXNzOworaW50IHJlczsKKworaW5pdF9zbm1wKCJzbm1wIik7CisKK3Nlc3MgPSBjYWxsb2MoMSwgc2l6ZW9mKCpzZXNzKSk7Citzbm1wX3Nlc3NfaW5pdChzZXNzKTsKKworcmVzID0gCituZXRzbm1wX3JlZ2lzdGVyX29sZF9hcGkoImV4cC4zMjcuYSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgdmFyX2FycmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih2YXJfYXJyYXlbMF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih2YXJfYXJyYXkpL3NpemVvZih2YXJfYXJyYXlbMF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgIE9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoT2lkKS9zaXplb2YoT2lkWzBdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAyLCAvKiBwcmlvcml0eSAqLworICAgICAgICAgICAgICAgICAgICAgICAgIDAsIC8qIHJhbmdlX3N1YmlkICovCisgICAgICAgICAgICAgICAgICAgICAgICAgMCwgLyogcmFuZ2VfdWJvdW5kICovCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAiY29udGV4dCIsIDUvKnRpbWVvdXQqLywgMC8qZmxhZ3MgLSBpZ25vcmVkKi8pOworT0socmVzID09IFNOTVBFUlJfU1VDQ0VTUywgIkhhbmRsZXIgcmVnaXN0cmF0aW9uICgxKS4iKTsKKworLyogVmVyaWZ5IHRoYXQgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiBkb2VzIG5vdCBjYXVzZSBhbnkgaGF2b2MuICovCityZXMgPSAKK25ldHNubXBfcmVnaXN0ZXJfb2xkX2FwaSgiZXhwLjMyNy5iIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB2YXJfYXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHZhcl9hcnJheVswXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHZhcl9hcnJheSkvc2l6ZW9mKHZhcl9hcnJheVswXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgT2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihPaWQpL3NpemVvZihPaWRbMF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgIDIsIC8qIHByaW9yaXR5ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgMCwgLyogcmFuZ2Vfc3ViaWQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAwLCAvKiByYW5nZV91Ym91bmQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICJjb250ZXh0IiwgNS8qdGltZW91dCovLCAwLypmbGFncyAtIGlnbm9yZWQqLyk7CitPSyhyZXMgPT0gU05NUEVSUl9TVUNDRVNTLCAiSGFuZGxlciByZWdpc3RyYXRpb24gKDIpLiIpOworCitzbm1wX3NodXRkb3duKCJzbm1wIik7CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMTJiaW5hcnlfYXJyYXlfb2lkX2NsaWIuYyBiL3Rlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAxMmJpbmFyeV9hcnJheV9vaWRfY2xpYi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlZWI1MDIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMTJiaW5hcnlfYXJyYXlfb2lkX2NsaWIuYwpAQCAtMCwwICsxLDcyIEBACisvKiBIRUFERVIgVGVzdGluZyBiaW5hcnkgT0lEIGFycmF5ICovCisKK3N0YXRpYyBjb25zdCBjaGFyIHRlc3RfbmFtZVtdID0gImJpbmFyeS1hcnJheS1vZi1PSURzLXRlc3QiOworb2lkIG8xID0gMTsKK29pZCBvMiA9IDI7CitvaWQgbzMgPSA2Oworb2lkIG80ID0gODsKK29pZCBvNSA9IDk7CitvaWQgb3ggPSA3Oworb2lkIG95ID0gMTA7CituZXRzbm1wX2luZGV4IGkxLCBpMiwgaTMsIGk0LCBpNSwgaXgsIGl5LCAqaXA7Citjb25zdCBuZXRzbm1wX2luZGV4ICpjb25zdCBpX2xhc3QgPSAmaTU7CituZXRzbm1wX2luZGV4ICphW10gPSB7ICZpeCwgJml5IH07CituZXRzbm1wX2luZGV4ICpiW10gPSB7ICZpNCwgJmkyLCAmaTMsICZpMSwgJmk1IH07CituZXRzbm1wX2NvbnRhaW5lciAqYzsKK2ludCBpOworCitpbml0X3NubXAodGVzdF9uYW1lKTsKKworYyA9IG5ldHNubXBfY29udGFpbmVyX2dldF9iaW5hcnlfYXJyYXkoKTsKK2MtPmNvbXBhcmUgPSBuZXRzbm1wX2NvbXBhcmVfbmV0c25tcF9pbmRleDsKKyAgICAKK2kxLm9pZHMgPSAmbzE7CitpMi5vaWRzID0gJm8yOworaTMub2lkcyA9ICZvMzsKK2k0Lm9pZHMgPSAmbzQ7CitpNS5vaWRzID0gJm81OworaXgub2lkcyA9ICZveDsKK2l5Lm9pZHMgPSAmb3k7CitpMS5sZW4gPSBpMi5sZW4gPSBpMy5sZW4gPSBpNC5sZW4gPSBpNS5sZW4gPSBpeC5sZW4gPSBpeS5sZW4gPSAxOworCitmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGIpL3NpemVvZihiWzBdKTsgKytpKQorICAgIENPTlRBSU5FUl9JTlNFUlQoYywgYltpXSk7CisKK2ZvciAoaXAgPSBDT05UQUlORVJfRklSU1QoYyk7IGlwOyBpcCA9IENPTlRBSU5FUl9ORVhUKGMsIGlwKSkgeworICAgIGZvciAoaSA9IHNpemVvZihiKS9zaXplb2YoYlswXSkgLSAxOyBpID49IDA7IC0taSkKKyAgICAgICAgaWYgKGMtPmNvbXBhcmUoaXAsIGJbaV0pID09IDApCisgICAgICAgICAgICBicmVhazsKKyAgICBPS0YoaSA+PSAwLCAoIk9JRCBiWyVkXSA9ICUiIE5FVFNOTVBfUFJJbyAiZCBwcmVzZW50IiwgaSwgYltpXS0+b2lkc1swXSkpOworfQorCitmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGIpL3NpemVvZihiWzBdKTsgKytpKSB7CisgICAgaXAgPSBDT05UQUlORVJfRklORChjLCBiW2ldKTsKKyAgICBPS0YoaXAsICgiVmFsdWUgYlslZF0gPSAlIiBORVRTTk1QX1BSSW8gImQgcHJlc2VudCIsIGksIGJbaV0tPm9pZHNbMF0pKTsKKyAgICBpcCA9IENPTlRBSU5FUl9ORVhUKGMsIGJbaV0pOworICAgIGlmIChjLT5jb21wYXJlKGJbaV0sIGlfbGFzdCkgPCAwKQorICAgICAgICBPS0YoaXAgJiYgYy0+Y29tcGFyZShiW2ldLCBpcCkgPCAwLAorICAgICAgICAgICAgKCJTdWNjZXNzb3Igb2YgYlslZF0gPSAlIiBORVRTTk1QX1BSSW8gImQgaXMgJSIgTkVUU05NUF9QUklvICJkIiwKKyAgICAgICAgICAgICBpLCBiW2ldLT5vaWRzWzBdLCBpcC0+b2lkc1swXSkpOworICAgIGVsc2UKKyAgICAgICAgT0tGKCFpcCwgKCJObyBzdWNjZXNzb3IgZm91bmQgZm9yIGJbJWRdID0gJSIgTkVUU05NUF9QUklvICJkIiwgaSwKKyAgICAgICAgICAgICAgICAgIGJbaV0tPm9pZHNbMF0pKTsKK30KKworZm9yIChpID0gMDsgaSA8IHNpemVvZihhKS9zaXplb2YoYVswXSk7ICsraSkgeworICAgIGlwID0gQ09OVEFJTkVSX0ZJTkQoYywgYVtpXSk7CisgICAgT0tGKCFpcCwgKCJhWyVkXSA9ICUiIE5FVFNOTVBfUFJJbyAiZCBhYnNlbnQiLCBpLCBhW2ldLT5vaWRzWzBdKSk7CisgICAgaXAgPSBDT05UQUlORVJfTkVYVChjLCBhW2ldKTsKKyAgICBpZiAoYy0+Y29tcGFyZShhW2ldLCBpX2xhc3QpIDwgMCkKKyAgICAgICAgT0tGKGlwICYmIGMtPmNvbXBhcmUoaXAsIGFbaV0pID4gMCwKKyAgICAgICAgICAgICgiU3VjY2Vzc29yIG9mIGFbJWRdID0gJSIgTkVUU05NUF9QUklvICJkIGlzICUiIE5FVFNOTVBfUFJJbyAiZCIsCisgICAgICAgICAgICAgaSwgYVtpXS0+b2lkc1swXSwgaXAtPm9pZHNbMF0pKTsKKyAgICBlbHNlCisgICAgICAgIE9LRighaXAsICgiTm8gc3VjY2Vzc29yIGZvdW5kIGZvciBhWyVkXSA9ICUiIE5FVFNOTVBfUFJJbyAiZCIsIGksCisgICAgICAgICAgICAgICAgICBhW2ldLT5vaWRzWzBdKSk7Cit9CisKK3doaWxlICgoaXAgPSBDT05UQUlORVJfRklSU1QoYykpKQorICBDT05UQUlORVJfUkVNT1ZFKGMsIGlwKTsKK0NPTlRBSU5FUl9GUkVFKGMpOworCitzbm1wX3NodXRkb3duKHRlc3RfbmFtZSk7CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMTNiaW5hcnlfYXJyYXlfc3RyaW5nX2NsaWIuYyBiL3Rlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAxM2JpbmFyeV9hcnJheV9zdHJpbmdfY2xpYi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjNDM2MWIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMTNiaW5hcnlfYXJyYXlfc3RyaW5nX2NsaWIuYwpAQCAtMCwwICsxLDU5IEBACisvKiBIRUFERVIgVGVzdGluZyBiaW5hcnkgc3RyaW5nIGFycmF5ICovCisKK3N0YXRpYyBjb25zdCBjaGFyIHRlc3RfbmFtZVtdID0gImJpbmFyeS1hcnJheS1vZi1zdHJpbmdzLXRlc3QiOworY29uc3QgY2hhciBvMVtdID0gInplYnJhIjsKK2NvbnN0IGNoYXIgbzJbXSA9ICJiLXR3byI7Citjb25zdCBjaGFyIG8zW10gPSAiYiI7Citjb25zdCBjaGFyIG80W10gPSAiY2VkYXIiOworY29uc3QgY2hhciBvNVtdID0gImFscGhhIjsKK2NvbnN0IGNoYXIgb3hbXSA9ICJkZXYiOworY29uc3QgY2hhciBveVtdID0gImFhIjsKK2NvbnN0IGNoYXIqIGNvbnN0IG9fbGFzdCA9IG8xOworY29uc3QgY2hhciAqaXA7Citjb25zdCBjaGFyICpjb25zdCBhW10gPSB7IG94LCBveSB9OworY29uc3QgY2hhciAqY29uc3QgYltdID0geyBvNCwgbzIsIG8zLCBvMSwgbzUgfTsKK25ldHNubXBfY29udGFpbmVyICpjOworaW50IGk7CisKK2luaXRfc25tcCh0ZXN0X25hbWUpOworCitjID0gbmV0c25tcF9jb250YWluZXJfZ2V0X2JpbmFyeV9hcnJheSgpOworYy0+Y29tcGFyZSA9IChuZXRzbm1wX2NvbnRhaW5lcl9jb21wYXJlKilzdHJjbXA7CisgICAgCitmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGIpL3NpemVvZihiWzBdKTsgKytpKQorICAgIENPTlRBSU5FUl9JTlNFUlQoYywgYltpXSk7CisKK2ZvciAoaXAgPSBDT05UQUlORVJfRklSU1QoYyk7IGlwOyBpcCA9IENPTlRBSU5FUl9ORVhUKGMsIGlwKSkgeworICAgIGZvciAoaSA9IHNpemVvZihiKS9zaXplb2YoYlswXSkgLSAxOyBpID49IDA7IC0taSkKKyAgICAgICAgaWYgKGMtPmNvbXBhcmUoaXAsIGJbaV0pID09IDApCisgICAgICAgICAgICBicmVhazsKKyAgICBPS0YoaSA+PSAwLCAoInN0cmluZyBiWyVkXSA9IFwiJXNcIiBwcmVzZW50IiwgaSwgYltpXSkpOworfQorCitmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGIpL3NpemVvZihiWzBdKTsgKytpKSB7CisgICAgaXAgPSBDT05UQUlORVJfRklORChjLCBiW2ldKTsKKyAgICBPS0YoaXAsICgiYlslZF0gPSBcIiVzXCIgcHJlc2VudCIsIGksIGJbaV0pKTsKKyAgICBpcCA9IENPTlRBSU5FUl9ORVhUKGMsIGJbaV0pOworICAgIGlmIChjLT5jb21wYXJlKGJbaV0sIG9fbGFzdCkgPCAwKQorICAgICAgICBPS0YoaXAgJiYgYy0+Y29tcGFyZShiW2ldLCBpcCkgPCAwLAorICAgICAgICAgICAgKCJTdWNjZXNzb3Igb2YgYlslZF0gPSBcIiVzXCIgaXMgXCIlc1wiIiwgaSwgYltpXSwgaXApKTsKKyAgICBlbHNlCisgICAgICAgIE9LRighaXAsICgiTm8gc3VjY2Vzc29yIGZvdW5kIGZvciBiWyVkXSA9IFwiJXNcIiIsIGksIGJbaV0pKTsKK30KKworZm9yIChpID0gMDsgaSA8IHNpemVvZihhKS9zaXplb2YoYVswXSk7ICsraSkgeworICAgIGlwID0gQ09OVEFJTkVSX0ZJTkQoYywgYVtpXSk7CisgICAgT0tGKCFpcCwgKCJhWyVkXSA9IFwiJXNcIiBhYnNlbnQiLCBpLCBhW2ldKSk7CisgICAgaXAgPSBDT05UQUlORVJfTkVYVChjLCBhW2ldKTsKKyAgICBpZiAoYy0+Y29tcGFyZShhW2ldLCBvX2xhc3QpIDwgMCkKKyAgICAgICAgT0tGKGlwICYmIGMtPmNvbXBhcmUoaXAsIGFbaV0pID4gMCwKKyAgICAgICAgICAgICgiU3VjY2Vzc29yIG9mIGFbJWRdID0gXCIlc1wiIGlzIFwiJXNcIiIsIGksIGFbaV0sIGlwKSk7CisgICAgZWxzZQorICAgICAgICBPS0YoIWlwLCAoIk5vIHN1Y2Nlc3NvciBmb3VuZCBmb3IgYVslZF0gPSBcIiVzXCIiLCBpLCBhW2ldKSk7Cit9CisKK3doaWxlICgoaXAgPSBDT05UQUlORVJfRklSU1QoYykpKQorICBDT05UQUlORVJfUkVNT1ZFKGMsIGlwKTsKK0NPTlRBSU5FUl9GUkVFKGMpOworCitzbm1wX3NodXRkb3duKHRlc3RfbmFtZSk7CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMTRnZXRob3N0YnlhZGRyX2NsaWIuYyBiL3Rlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAxNGdldGhvc3RieWFkZHJfY2xpYi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxYTU3OGUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMTRnZXRob3N0YnlhZGRyX2NsaWIuYwpAQCAtMCwwICsxLDk3IEBACisvKgorICogSEVBREVSIFRlc3RpbmcgbmV0c25tcF9nZXRob3N0YnlhZGRyKCkgCisgKi8KKworU09DS19TVEFSVFVQOworCit7CisgICAgaW50ICAgICAgICAgICAgIHJhbl90ZXN0ID0gMDsKKyNpZmRlZiBIQVZFX0dFVEhPU1RCWUFERFIKKyAgICBzdHJ1Y3QgaG9zdGVudCAqaCwgKmgyID0gTlVMTDsKKyAgICBzdHJ1Y3QgaW5fYWRkciAgdjRsb29wOworICAgIHN0cnVjdCBzb2NrYWRkcl9pbiBzaW5fYWRkcjsKKyAgICBpbnQgICAgICAgICAgICAgczsKKworICAgIHY0bG9vcC5zX2FkZHIgPSBodG9ubChJTkFERFJfTE9PUEJBQ0spOworICAgIG1lbXNldCgmc2luX2FkZHIsIDAsIHNpemVvZihzaW5fYWRkcikpOworICAgIHNpbl9hZGRyLnNpbl9mYW1pbHkgPSBBRl9JTkVUOworICAgIHNpbl9hZGRyLnNpbl9hZGRyID0gdjRsb29wOworICAgIHMgPSBzb2NrZXQoQUZfSU5FVCwgU09DS19ER1JBTSwgMCk7CisgICAgaWYgKHMgPj0gMCkgeworICAgICAgICBpZiAoYmluZChzLCAoc3RydWN0IHNvY2thZGRyICopICZzaW5fYWRkciwgc2l6ZW9mKHNpbl9hZGRyKSkgPj0gMCkgeworICAgICAgICAgICAgaCA9IG5ldHNubXBfZ2V0aG9zdGJ5YWRkcigmdjRsb29wLCBzaXplb2YodjRsb29wKSwgQUZfSU5FVCk7CisgICAgICAgICAgICBpZiAoaCkKKyAgICAgICAgICAgICAgICBoMiA9IGdldGhvc3RieW5hbWUoaC0+aF9uYW1lKTsKKyAgICAgICAgICAgIE9LRihoICYmIChzdHJjbXAoaC0+aF9uYW1lLCAibG9jYWxob3N0IikgPT0gMCB8fAorICAgICAgICAgICAgICAgICAgICAgIChoMiAmJiBtZW1jbXAoaDItPmhfYWRkciwgJnY0bG9vcC5zX2FkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodjRsb29wLnNfYWRkcikpID09IDApKSwKKyAgICAgICAgICAgICAgICAoIjEyNy4wLjAuMSBsb29rdXAgKCVzIC0+ICVzKSIsIGggPyBoLT5oX25hbWUgOiAiKGZhaWxlZCkiLAorICAgICAgICAgICAgICAgICBoMiA/IGluZXRfbnRvYSgqKHN0cnVjdCBpbl9hZGRyICopIGgyLT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaF9hZGRyKSA6ICIoZmFpbGVkKSIpKTsKKyAgICAgICAgICAgIHJhbl90ZXN0ID0gMTsKKyAgICAgICAgfQorICAgICAgICBjbG9zZShzKTsKKyAgICB9CisjZW5kaWYKKyAgICBpZiAoIXJhbl90ZXN0KQorICAgICAgICBPS0YoMSwgKCJTa2lwcGVkIElQdjQgdGVzdCIpKTsKK30KKworeworICAgIHN0cnVjdCBob3N0ZW50ICpoOworI2lmZGVmIGN5Z3dpbgorICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW42X2FkZHIgdjZsb29wID0geyB7IElONkFERFJfTE9PUEJBQ0tfSU5JVCB9IH07CisjZWxzZQorICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW42X2FkZHIgdjZsb29wID0gSU42QUREUl9MT09QQkFDS19JTklUOworI2VuZGlmCisgICAgc3RydWN0IHNvY2thZGRyX2luNiBzaW42X2FkZHI7CisgICAgc3RydWN0IGFkZHJpbmZvIGhpbnRzLCAqYWRkciA9IE5VTEwsICphcDsKKyAgICBjaGFyICAgICAgICAgICAgYnVmWzY0XTsKKyAgICBpbnQgICAgICAgICAgICAgcywgcmVzLCByYW5fdGVzdCA9IDA7CisKKyAgICBtZW1zZXQoJnNpbjZfYWRkciwgMCwgc2l6ZW9mKHNpbjZfYWRkcikpOworICAgIHNpbjZfYWRkci5zaW42X2ZhbWlseSA9IEFGX0lORVQ2OworICAgIHNpbjZfYWRkci5zaW42X2FkZHIgPSB2Nmxvb3A7CisgICAgcyA9IHNvY2tldChBRl9JTkVUNiwgU09DS19ER1JBTSwgMCk7CisgICAgaWYgKHMgPj0gMCkgeworICAgICAgICBpZiAoYmluZChzLCAoc3RydWN0IHNvY2thZGRyICopICZzaW42X2FkZHIsIHNpemVvZihzaW42X2FkZHIpKSA+PQorICAgICAgICAgICAgMCkgeworICAgICAgICAgICAgc3RyY3B5KGJ1ZiwgIihmYWlsZWQpIik7CisgICAgICAgICAgICBoID0gbmV0c25tcF9nZXRob3N0YnlhZGRyKCZ2Nmxvb3AsIHNpemVvZih2Nmxvb3ApLCBBRl9JTkVUNik7CisgICAgICAgICAgICBpZiAoaCkgeworICAgICAgICAgICAgICAgIG1lbXNldCgmaGludHMsIDAsIHNpemVvZihoaW50cykpOworICAgICAgICAgICAgICAgIGhpbnRzLmFpX2ZhbWlseSA9IEFGX0lORVQ2OworICAgICAgICAgICAgICAgIHJlcyA9IGdldGFkZHJpbmZvKGgtPmhfbmFtZSwgTlVMTCwgJmhpbnRzLCAmYWRkcik7CisgICAgICAgICAgICAgICAgaWYgKHJlcyA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoYXAgPSBhZGRyOyBhcDsgYXAgPSBhcC0+YWlfbmV4dCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFwLT5haV9mYW1pbHkgPT0gQUZfSU5FVDYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmV0X250b3AoYXAtPmFpX2ZhbWlseSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJigoc3RydWN0IHNvY2thZGRyX2luNiAqKSBhcC0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWlfYWRkciktPnNpbjZfYWRkciwgYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoYnVmKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFhcCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cmNweShidWYsICJubyBBRl9JTkVUNiBhZGRyZXNzIGZvdW5kIik7CisgICAgICAgICAgICAgICAgICAgIGlmIChhZGRyKQorICAgICAgICAgICAgICAgICAgICAgICAgZnJlZWFkZHJpbmZvKGFkZHIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJnZXRhZGRyaW5mbygpIGZhaWxlZDogJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlcnJvcihlcnJubykpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIE9LRihoICYmIChzdHJjbXAoaC0+aF9uYW1lLCAibG9jYWxob3N0IikgPT0gMCB8fAorICAgICAgICAgICAgICAgICAgICAgIChyZXMgPT0gMCAmJiBtZW1jbXAoYWRkci0+YWlfYWRkciwgJnNpbjZfYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzaW42X2FkZHIpKSA9PSAwKSksCisgICAgICAgICAgICAgICAgKCI6OjEgbG9va3VwICglcyAtPiAlcykiLCBoID8gaC0+aF9uYW1lIDogIihmYWlsZWQpIiwKKyAgICAgICAgICAgICAgICAgYnVmKSk7CisgICAgICAgICAgICByYW5fdGVzdCA9IDE7CisgICAgICAgIH0KKyAgICAgICAgY2xvc2Uocyk7CisgICAgfQorICAgIGlmICghcmFuX3Rlc3QpCisgICAgICAgIE9LRigxLCAoIlNraXBwZWQgSVB2NiB0ZXN0IikpOworfQorCitTT0NLX0NMRUFOVVA7CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDFwZHVfdHlwZV9jbGliLmMgYi90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDFwZHVfdHlwZV9jbGliLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzcxYWE2MQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwMXBkdV90eXBlX2NsaWIuYwpAQCAtMCwwICsxLDEzIEBACisvKiBIRUFERVIgUERVIHR5cGUgZGVzY3JpcHRpb25zICovCitjb25zdCBjaGFyICpwZHVfZGVzY3JpcHRpb247CitwZHVfZGVzY3JpcHRpb24gPSBzbm1wX3BkdV90eXBlKFNOTVBfTVNHX0dFVCk7CitPS0YoKHN0cmNtcChwZHVfZGVzY3JpcHRpb24sICJHRVQiKSA9PSAwKSwKKyAgICAoIlNOTVAgR0VUIFBEVSB0eXBlIGRpZCBub3QgcmV0dXJuIHRoZSBleHBlY3RlZCBpZGVudGlmaWVyIChHRVQpOiAlcyIsCisgICAgIHBkdV9kZXNjcmlwdGlvbikpOworCisjaWZkZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCitwZHVfZGVzY3JpcHRpb24gPSBzbm1wX3BkdV90eXBlKDE2Myk7CitPS0YoKHN0cmNtcChwZHVfZGVzY3JpcHRpb24sICI/MHhBMz8iKSA9PSAwKSwKKyAgICAoIlNOTVAgU0VUIFBEVSB0eXBlIGRpZCBub3QgcmV0dXJuIHRoZSBleHBlY3RlZCB1bmtub3duIGlkZW50aWZpZXIgKD8weEEzPyk6ICVzIiwKKyAgICAgcGR1X2Rlc2NyaXB0aW9uKSk7CisjZW5kaWYgLyogTkVUU05NUF9OT19XUklURV9TVVBQT1JUICovCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDJwZHVfYnVpbGRfY2xpYi5jIGIvdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmJhNjllCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIuYwpAQCAtMCwwICsxLDY3IEBACisvKiBIRUFERVIgUERVIGJ1aWxkaW5nICovCisKK1NPQ0tfU1RBUlRVUDsKKworbmV0c25tcF9wZHUgKnBkdTsKK3VfY2hhciAqcGFja2V0Oworc2l6ZV90IHBhY2tldF9sZW4sIG9mZnNldCA9IDA7CituZXRzbm1wX3Nlc3Npb24gc2Vzc2lvbiwgKnNzOworaW50IHJjOworCisvKiBwcm90b3R5cGUgY29waWVkIGZyb20gc25tcF9hcGkuYyAqLworaW50ICAgICAgICAgICAgIHNubXBfYnVpbGQodV9jaGFyICoqIHBrdCwgc2l6ZV90ICogcGt0X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqIG9mZnNldCwgbmV0c25tcF9zZXNzaW9uICogcHNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0c25tcF9wZHUgKnBkdSk7CisKK2luaXRfc25tcCgidGVzdGluZyIpOworc25tcF9zZXNzX2luaXQoJnNlc3Npb24pOworc2Vzc2lvbi52ZXJzaW9uID0gU05NUF9WRVJTSU9OXzJjOworc2Vzc2lvbi5wZWVybmFtZSA9IHN0cmR1cCgidWRwOjEyNy4wLjAuMSIpOyAvKiB3ZSB3b24ndCBhY3R1YWxseSBjb25uZWN0ICovCitzZXNzaW9uLmNvbW11bml0eSA9ICh1X2NoYXIgKikgc3RyZHVwKCJib2d1cyIpOworc2Vzc2lvbi5jb21tdW5pdHlfbGVuID0gc3RybGVuKChjaGFyICopIHNlc3Npb24uY29tbXVuaXR5KTsKK3NzID0gc25tcF9vcGVuKCZzZXNzaW9uKTsKKworT0tGKChzcyAhPSBOVUxMKSwgKCJDcmVhdGluZyBhIHNlc3Npb24gZmFpbGVkIikpOworaWYgKHNzID09IE5VTEwpCisgICAgc25tcF9wZXJyb3IoImFjayIpOworCitwYWNrZXRfbGVuID0gNDA5NjsKK3BhY2tldCA9IG1hbGxvYyhwYWNrZXRfbGVuKTsKKworcGR1ID0gc25tcF9wZHVfY3JlYXRlKFNOTVBfTVNHX0dFVCk7CitwZHUtPnZlcnNpb24gPSBzZXNzaW9uLnZlcnNpb247CisKK09LRigocGR1ICE9IE5VTEwpLCAoIkNyZWF0aW5nIGEgR0VUIFBEVSBmYWlsZWQiKSk7CisKK3JjID0gc25tcF9idWlsZCgmcGFja2V0LCAmcGFja2V0X2xlbiwgJm9mZnNldCwgc3MsIHBkdSk7CisKKyNpZm5kZWYgTkVUU05NUF9OT1RJRllfT05MWQorT0tGKChyYyA9PSBTTk1QRVJSX1NVQ0NFU1MpLAorICAgICgiQnVpbGRpbmcgYSBHRVQgUERVL3BhY2tldCBzaG91bGQgaGF2ZSB3b3JrZWQ6ICVkIiwgcmMpKTsKKyNlbHNlIC8qIE5FVFNOTVBfTk9USUZZX09OTFkgKi8KK09LRigocmMgIT0gU05NUEVSUl9TVUNDRVNTKSwKKyAgICAoIkJ1aWxkaW5nIGEgR0VUIFBEVS9wYWNrZXQgc2hvdWxkIGhhdmUgZmFpbGVkOiAlZCIsIHJjKSk7CisjZW5kaWYgLyogTkVUU05NUF9OT1RJRllfT05MWSAqLworCitvZmZzZXQgPSAwOworcGR1LT5jb21tYW5kID0gMTYzOyAvKiBhIFNFVCBtZXNzYWdlICovCityYyA9IHNubXBfYnVpbGQoJnBhY2tldCwgJnBhY2tldF9sZW4sICZvZmZzZXQsIHNzLCBwZHUpOworCisjaWZuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAorT0tGKChyYyA9PSBTTk1QRVJSX1NVQ0NFU1MpLAorICAgICgiQnVpbGRpbmcgYSBTRVQgUERVL3BhY2tldCBzaG91bGQgaGF2ZSBzdWNjZWVkZWQ6ICVkIiwgcmMpKTsKKyNlbHNlIC8qIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAqLworT0tGKChyYyAhPSBTTk1QRVJSX1NVQ0NFU1MpLAorICAgICgiQnVpbGRpbmcgYSBTRVQgUERVL3BhY2tldCBzaG91bGQgaGF2ZSBmYWlsZWQ6ICVkIiwgcmMpKTsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KKworCisKK29mZnNldCA9IDA7CitwZHUtPmNvbW1hbmQgPSBTTk1QX01TR19JTkZPUk07CityYyA9IHNubXBfYnVpbGQoJnBhY2tldCwgJnBhY2tldF9sZW4sICZvZmZzZXQsIHNzLCBwZHUpOworCitPS0YoKHJjID09IFNOTVBFUlJfU1VDQ0VTUyksCisgICAgKCJCdWlsZGluZyBhbiBJTkZPUk0gUERVL3BhY2tldCBzaG91bGQgaGF2ZSBzdWNjZWVkOiAlZCIsIHJjKSk7CisKK1NPQ0tfQ0xFQU5VUDsKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwM3BkdV9wYXJzZV9jbGliLmMgYi90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDNwZHVfcGFyc2VfY2xpYi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkNTg4MmQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDNwZHVfcGFyc2VfY2xpYi5jCkBAIC0wLDAgKzEsMjIgQEAKKy8qIEhFQURFUiBQYXJzaW5nIG9mIFBEVXMgKi8KK25ldHNubXBfcGR1IHBkdTsKK2ludCByYzsKK3VfY2hhciBkYXRhW10gPSB7IAorICAgIDB4QTIsIDB4MUQsIDB4MDIsIDB4MDQsIDB4NEUsIDB4MzksCisgICAgMHhCMiwgMHg4RSwgMHgwMiwgMHgwMSwgMHgwMCwgMHgwMiwgMHgwMSwgMHgwMCwKKyAgICAweDMwLCAweDBGLCAweDMwLCAweDBELCAweDA2LCAweDA4LCAweDJCLCAweDA2LAorICAgIDB4MDEsIDB4MDIsIDB4MDEsIDB4MDEsIDB4MDQsIDB4MDAsIDB4MDQsIDB4MDEsCisgICAgMHg2NgorfTsKK3NpemVfdCBkYXRhX2xlbmd0aD1zaXplb2YoZGF0YSk7CisKK3JjID0gc25tcF9wZHVfcGFyc2UoJnBkdSwgZGF0YSwgJmRhdGFfbGVuZ3RoKTsKKworT0tGKChyYyA9PSAwKSwgKCJQYXJzaW5nIG9mIGEgZ2VuZXJpYyBQRFUgZmFpbGVkIikpOworCisjaWZkZWYgTkVUU05NUF9OT19XUklURV9TVVBQT1JUCitkYXRhWzBdID0gMHhBMzsgLyogY2hhbmdlcyBpdCB0byBhIFNFVCBwZHUgKi8KK3JjID0gc25tcF9wZHVfcGFyc2UoJnBkdSwgZGF0YSwgJmRhdGFfbGVuZ3RoKTsKKworT0tGKChyYyAhPSAwKSwgKCJQYXJzaW5nIG9mIGEgZ2VuZXJpYyBTRVQgUERVIHN1Y2NlZWRlZCIpKTsKKyNlbmRpZiAvKiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQgKi8KZGlmZiAtLWdpdCBhL3dpbjMyL0NvbmZpZ3VyZSBiL3dpbjMyL0NvbmZpZ3VyZQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IGJjNjhhZmUuLmEzNmRiMGIKLS0tIGEvd2luMzIvQ29uZmlndXJlCisrKyBiL3dpbjMyL0NvbmZpZ3VyZQpAQCAtMTA0LDQ3ICsxMDQsNTUgQEAKICAgfQogfQogCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBDcmVhdGUgbWFpbiBNYWtlZmlsZQotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQXJndW1lbnRzOgorIyAkMTogTmFtZSBvZiBvdXRwdXQgZmlsZQorIyAkMjogTmFtZSBvZiBpbnB1dCBmaWxlCisjICQzOiBSZWZlcmVuY2UgdG8gYSBoYXNoIHdpdGggc3Vic3RpdHV0aW9ucy4gQSBzdWJzdGl0dXRpb24gaXMgYW4gYXJyYXkgd2l0aAorIyAgICAgdHdvIGVsZW1lbnRzIHdoZXJlIGVsZW1lbnQgWzBdIGlzIHRoZSBwYXR0ZXJuIHRvIHNlYXJjaCBmb3IgYW5kIGVsZW1lbnQKKyMgICAgIFsxXSB0aGUgcmVwbGFjZW1lbnQgdGV4dC4KK3N1YiBzdWJzdGl0dXRlCiB7Ci0gIG15ICRtYWtlZmlsZV9vdXQgPSAiTWFrZWZpbGUiOwotICBteSAkbWFrZWZpbGVfaW4gID0gIk1ha2VmaWxlLmluIjsKKyAgbXkgJG91dCAgPSBzaGlmdDsKKyAgbXkgJGluICAgPSBzaGlmdDsKKyAgbXkgJHN1YnMgPSBzaGlmdDsKIAotICBvcGVuIChNQUtFX09VVCwgIj4kbWFrZWZpbGVfb3V0IikgfHwgZGllICJDYW4ndCBPcGVuICRtYWtlZmlsZV9vdXRcbiI7Ci0gIG9wZW4gKE1BS0VfSU4sICI8JG1ha2VmaWxlX2luIikgfHwgZGllICJDYW4ndCBPcGVuICRtYWtlZmlsZV9pblxuIjsKKyAgb3BlbiAoT1VULCAiPiRvdXQiKSB8fCBkaWUgIkNhbid0IG9wZW4gJG91dFxuIjsKKyAgb3BlbiAoSU4sICAiPCRpbiIpICB8fCBkaWUgIkNhbid0IG9wZW4gJGluXG4iOwogCi0gIHByaW50ICJjcmVhdGluZyAkbWFrZWZpbGVfb3V0XG4iOworICBwcmludCAiY3JlYXRpbmcgJG91dFxuIjsKIAotICB3aGlsZSAoPE1BS0VfSU4+KQotICB7CisgIHdoaWxlICg8SU4+KSB7CiAgICAgY2hvbXA7Ci0gICAgaWYgKCRzZGsgPT0gMSkgewotICAgICAgcy9eU0RLPS9TREs9dHJ1ZS87CisgICAgZm9yZWFjaCBteSAkZSAoa2V5cyAlJHN1YnMpIHsKKyAgICAgICAgbXkgJHAgPSAkJHN1YnN7JGV9WzBdOworICAgICAgICBteSAkcSA9ICQkc3Vic3skZX1bMV07CisgICAgICAgIHMvJHAvJHEvOwogICAgIH0KLSAgICBlbHNlIHsKLSAgICAgIHMvXlNESz0vU0RLPWZhbHNlLzsKLSAgICB9Ci0KLSAgICBzL15MSU5LVFlQRT0vTElOS1RZUEU9JGxpbmt0eXBlLzsKLSAgICBzL15DRkc9L0NGRz0kY29uZmlnLzsKLSAgICBzL15QUkVGSVg9L1BSRUZJWD0kcHJlZml4LzsKLSAgICBzL15QUkVGSVhfRE9TPS9QUkVGSVhfRE9TPSRwcmVmaXhkb3MvOwotICAgIHMvXlNTTD0uKi9TU0w9JG9wZW5zc2wvOwotCi0gICAgcHJpbnQgTUFLRV9PVVQgJF8gLiAiXG4iOworICAgIHByaW50IE9VVCAkXyAuICJcbiI7CiAgIH0KKworICBjbG9zZSBJTjsKKyAgY2xvc2UgT1VUOwogfQogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIwotIyBDcmVhdGUgTWFrZWZpbGVzIGZvciBhcHBsaWNhdGlvbnMgZnJvbQotIyBNYWtlZmlsZS1hcHBzLmluCi0jIChleGNlcHQgZm9yIHNubXBuZXRzdGF0KQorIyBQZXJmb3JtIHN1YnN0aXR1dGlvbnMKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitteSAlc3VicyA9ICgKKyAgICAiY2ZnIiA9PiBbICJeQ0ZHPSIsICAgICAgICAiQ0ZHPSRjb25maWciICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAiaW50IiA9PiBbICJeSU5URElSPSIsICAgICAiSU5URElSPS5cXCRjb25maWciICAgICAgICAgICAgICAgICAgXSwKKyAgICAibG5rIiA9PiBbICJeTElOS1RZUEU9IiwgICAiTElOS1RZUEU9JGxpbmt0eXBlIiAgICAgICAgICAgICAgICAgXSwKKyAgICAib3V0IiA9PiBbICJeT1VURElSPSIsICAgICAiT1VURElSPS5cXCRjb25maWciICAgICAgICAgICAgICAgICAgXSwKKyAgICAicGZ4IiA9PiBbICJeUFJFRklYPSIsICAgICAiUFJFRklYPSRwcmVmaXgiICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAiZG9zIiA9PiBbICJeUFJFRklYX0RPUz0iLCAiUFJFRklYX0RPUz0kcHJlZml4ZG9zIiAgICAgICAgICAgICAgXSwKKyAgICAic2RrIiA9PiBbICJeU0RLPSIsICAgICAgICAkc2RrID09IDEgPyAiU0RLPXRydWUiIDogIlNESz1mYWxzZSIgXSwKKyAgICApOworCitzdWJzdGl0dXRlKCJNYWtlZmlsZSIsICJNYWtlZmlsZS5pbiIsIFwlc3Vicyk7CitzdWJzdGl0dXRlKCJsb2NhbC9NYWtlZmlsZSIsICJsb2NhbC9NYWtlZmlsZS5pbiIsIFwlc3Vicyk7CisKIG15IEBwcm9ncmFtcyA9IHF3CiAvZW5jb2RlX2tleWNoYW5nZQogc25tcGJ1bGtnZXQKQEAgLTE2NSwyNDAgKzE3Myw1MSBAQAogLzsKIAogZm9yZWFjaCBteSAkcHJvZ05hbWUgKEBwcm9ncmFtcykgewotCi0gIG15ICRtYWtlZmlsZV9vdXQgPSAiJHByb2dOYW1lXFxNYWtlZmlsZSI7Ci0gIG15ICRtYWtlZmlsZV9pbiA9ICJNYWtlZmlsZS1hcHBzLmluIjsKLQotICBteSAkb3V0ZGlyID0gJGNvbmZpZzsKLSAgbXkgJGludGRpciA9ICRjb25maWc7Ci0KLSAgb3BlbiAoTUFLRV9PVVQsICI+JG1ha2VmaWxlX291dCIpIHx8IGRpZSAiQ2FuJ3QgT3BlbiAkbWFrZWZpbGVfb3V0XG4iOwotICBvcGVuIChNQUtFX0lOLCAiPCRtYWtlZmlsZV9pbiIpIHx8IGRpZSAiQ2FuJ3QgT3BlbiAkbWFrZWZpbGVfaW5cbiI7Ci0KLSAgcHJpbnQgImNyZWF0aW5nICRtYWtlZmlsZV9vdXRcbiI7Ci0KLSAgd2hpbGUgKDxNQUtFX0lOPikKLSAgewotICAgIGNob21wOwotCi0gICAgcy9eTElOS1RZUEU9L0xJTktUWVBFPSRsaW5rdHlwZS87Ci0gICAgcy9eUFJPR05BTUU9L1BST0dOQU1FPSRwcm9nTmFtZS87Ci0gICAgcy9eQ0ZHPS9DRkc9JGNvbmZpZy87Ci0gICAgcy9eT1VURElSPS9PVVRESVI9LlxcJG91dGRpci87Ci0gICAgcy9eSU5URElSPS9JTlRESVI9LlxcJGludGRpci87Ci0gICAgcy9eU1NMPS4qL1NTTD0kb3BlbnNzbC87Ci0KLSAgICBwcmludCBNQUtFX09VVCAkXyAuICJcbiI7Ci0gIH0KKyAgICAkc3Vic3sicHJnIn0gPSBbICJeUFJPR05BTUU9IiwgIlBST0dOQU1FPSRwcm9nTmFtZSIgXTsKKyAgICBzdWJzdGl0dXRlKCIkcHJvZ05hbWUvTWFrZWZpbGUiLCAiTWFrZWZpbGUtYXBwcy5pbiIsIFwlc3Vicyk7CiB9CiAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIENyZWF0ZSBNYWtlZmlsZXMgZm9yIHNubXBuZXRzdGF0IGZyb20KLSMgc25tcG5ldHN0YXRcTWFrZWZpbGUuaW4KLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1teSBAcHJvZ3JhbXMgPSBxdwotL3NubXBuZXRzdGF0Ci0vOwotCi1mb3JlYWNoIG15ICRwcm9nTmFtZSAoQHByb2dyYW1zKSB7Ci0KLSAgbXkgJG1ha2VmaWxlX291dCA9ICIkcHJvZ05hbWVcXE1ha2VmaWxlIjsKLSAgbXkgJG1ha2VmaWxlX2luID0gIiRwcm9nTmFtZVxcTWFrZWZpbGUuaW4iOwotCi0gIG15ICRvdXRkaXIgPSAkY29uZmlnOwotICBteSAkaW50ZGlyID0gJGNvbmZpZzsKLQotICBvcGVuIChNQUtFX09VVCwgIj4kbWFrZWZpbGVfb3V0IikgfHwgZGllICJDYW4ndCBPcGVuICRtYWtlZmlsZV9vdXRcbiI7Ci0gIG9wZW4gKE1BS0VfSU4sICI8JG1ha2VmaWxlX2luIikgfHwgZGllICJDYW4ndCBPcGVuICRtYWtlZmlsZV9pblxuIjsKLQotICBwcmludCAiY3JlYXRpbmcgJG1ha2VmaWxlX291dFxuIjsKLQotICB3aGlsZSAoPE1BS0VfSU4+KQotICB7Ci0gICAgY2hvbXA7Ci0KLSAgICBzL15MSU5LVFlQRT0vTElOS1RZUEU9JGxpbmt0eXBlLzsKLSAgICBzL15QUk9HTkFNRT0vUFJPR05BTUU9JHByb2dOYW1lLzsKLSAgICBzL15DRkc9L0NGRz0kY29uZmlnLzsKLSAgICBzL15PVVRESVI9L09VVERJUj0uXFwkb3V0ZGlyLzsKLSAgICBzL15JTlRESVI9L0lOVERJUj0uXFwkaW50ZGlyLzsKLSAgICBzL15TU0w9LiovU1NMPSRvcGVuc3NsLzsKLQotICAgIHByaW50IE1BS0VfT1VUICRfIC4gIlxuIjsKLSAgfQorZm9yZWFjaCBteSAkcHJvZ05hbWUgKCJsaWJhZ2VudCIsICJsaWJuZXRzbm1wdHJhcGQiLCAibG9jYWwiLAorICAgICAgICAgICAgICAgICAgICAgICJuZXRzbm1wbWlicyIsICJzbm1wZCIsICJzbm1wdHJhcGQiLCAic25tcG5ldHN0YXQiLAorICAgICAgICAgICAgICAgICAgICAgICRsaW5rdHlwZSBlcSAiZHluYW1pYyIgPyAibGlic25tcF9kbGwiIDogImxpYnNubXAiKSB7CisgICAgJHN1YnN7InByZyJ9ID0gWyAiXlBST0dOQU1FPSIsICJQUk9HTkFNRT0kcHJvZ05hbWUiIF07CisgICAgc3Vic3RpdHV0ZSgiJHByb2dOYW1lL01ha2VmaWxlIiwgIiRwcm9nTmFtZS9NYWtlZmlsZS5pbiIsIFwlc3Vicyk7CiB9CiAKK215ICVzdWJzID0gKAorICAgICJlbnYiID0+IFsgIlxARU5WX1NFUEFSQVRPUlxAIiwgIjsiIF0KKyk7CiAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIENyZWF0ZSBNYWtlZmlsZXMgZm9yIGxpYnJhcmllcwotIyBmcm9tIG5hbWVcTWFrZWZpbGUuaW4KLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1teSBAcHJvZ3JhbXMgPSBxdwotL2xpYmFnZW50Ci1saWJuZXRzbm1wdHJhcGQKLW5ldHNubXBtaWJzCi0vOworc3Vic3RpdHV0ZSgiLi4vbG9jYWwvc25tcGNvbmYiLCAiLi4vbG9jYWwvc25tcGNvbmYuaW4iLCBcJXN1YnMpOwogCisKK215ICVzdWJzID0gKAorICAgICJ2ZXIiID0+IFsgIl4jZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTi4qIiwKKyAgICAgICAgICAgICAgICIjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiBcIiR2ZXJzaW9uXCIiIF0KKyAgICApOworaWYgKCRwcmVmaXggbmUgIiIpIHsKKyAgICAkc3Vic3sicGZ4In0gPSBbICJeI2RlZmluZSBJTlNUQUxMX0JBU0UuKiIsICIjZGVmaW5lIElOU1RBTExfQkFTRSBcIiRwcmVmaXhcIiIgXTsKK30KIGlmICgkbGlua3R5cGUgZXEgImR5bmFtaWMiKSB7Ci0gIHB1c2ggKEBwcm9ncmFtcywgImxpYnNubXBfZGxsIik7CisgICAgJHN1YnN7ImRsbCJ9ID0gWyAiXi4qI3VuZGVmIE5FVFNOTVBfVVNFX0RMTC4qIiwgIiNkZWZpbmUgTkVUU05NUF9VU0VfRExMIDEiIF07CiB9Ci1lbHNlIHsKLSAgcHVzaCAoQHByb2dyYW1zLCAibGlic25tcCIpOworaWYgKCRzZGsgPT0gMSkgeworICAgICRzdWJzeyJzZGsifSA9IFsgIl4uKiN1bmRlZiBIQVZFX1dJTjMyX1BMQVRGT1JNX1NESy4qIiwgIiNkZWZpbmUgSEFWRV9XSU4zMl9QTEFURk9STV9TREsgMSIgXTsKK30KK2lmICgkb3BlbnNzbCA9PSAxKSB7CisgICAgJHN1YnN7InNzbCJ9ID0gWyAiXi4qI3VuZGVmIE5FVFNOTVBfVVNFX09QRU5TU0wuKiIsICIjZGVmaW5lIE5FVFNOTVBfVVNFX09QRU5TU0wgMSIgXTsKK30gZWxzZSB7CisgICAgJHN1YnN7InNzbCJ9ID0gWyAiXi4qI3VuZGVmIE5FVFNOTVBfVVNFX0lOVEVSTkFMX01ENS4qIiwgIiNkZWZpbmUgTkVUU05NUF9VU0VfSU5URVJOQUxfTUQ1IDEiIF07Cit9CitpZiAoJGJfaXB2NiA9PSAxKSB7CisgICAgJHN1YnN7ImlwdjYifSA9IFsgIl4uKiN1bmRlZiBORVRTTk1QX0VOQUJMRV9JUFY2LioiLCAiI2RlZmluZSBORVRTTk1QX0VOQUJMRV9JUFY2IDEiIF07Cit9CitpZiAoJGJfd2luZXh0ZGxsID09IDEpIHsKKyAgICAkc3Vic3sid2luZXh0ZGxsIn0gPSBbICJeLiojdW5kZWYgVVNJTkdfV0lORVhURExMX01PRFVMRS4qIiwgIiNkZWZpbmUgVVNJTkdfV0lORVhURExMX01PRFVMRSAxIiBdOwogfQogCi1mb3JlYWNoIG15ICRwcm9nTmFtZSAoQHByb2dyYW1zKSB7Ci0KLSAgbXkgJG1ha2VmaWxlX291dCA9ICIkcHJvZ05hbWVcXE1ha2VmaWxlIjsKLSAgbXkgJG1ha2VmaWxlX2luID0gIiRwcm9nTmFtZVxcTWFrZWZpbGUuaW4iOwotCi0gIG15ICRvdXRkaXIgPSAkY29uZmlnOwotICBteSAkaW50ZGlyID0gJGNvbmZpZzsKLQotICBvcGVuIChNQUtFX09VVCwgIj4kbWFrZWZpbGVfb3V0IikgfHwgZGllICJDYW4ndCBPcGVuICRtYWtlZmlsZV9vdXRcbiI7Ci0gIG9wZW4gKE1BS0VfSU4sICI8JG1ha2VmaWxlX2luIikgfHwgZGllICJDYW4ndCBPcGVuICRtYWtlZmlsZV9pblxuIjsKLQotICBwcmludCAiY3JlYXRpbmcgJG1ha2VmaWxlX291dFxuIjsKLQotICB3aGlsZSAoPE1BS0VfSU4+KQotICB7Ci0gICAgY2hvbXA7Ci0KLSAgICBpZiAoJHNkayA9PSAxKSB7Ci0gICAgICBzL15TREs9L1NESz10cnVlLzsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICBzL15TREs9L1NESz1mYWxzZS87Ci0gICAgfQotCi0gICAgcy9eUFJPR05BTUU9L1BST0dOQU1FPSRwcm9nTmFtZS87Ci0gICAgcy9eQ0ZHPS9DRkc9JGNvbmZpZy87Ci0gICAgcy9eT1VURElSPS9PVVRESVI9LlxcJG91dGRpci87Ci0gICAgcy9eSU5URElSPS9JTlRESVI9LlxcJGludGRpci87Ci0gICAgcy9eU1NMPS4qL1NTTD0kb3BlbnNzbC87Ci0gICAgcHJpbnQgTUFLRV9PVVQgJF8gLiAiXG4iOwotICB9Ci19Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIENyZWF0ZSBNYWtlZmlsZXMgZm9yIGRhZW1vbnMKLSMgZnJvbSBuYW1lXE1ha2VmaWxlLmluCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotbXkgQHByb2dyYW1zID0gcXcKLS9zbm1wZAotc25tcHRyYXBkCi0vOwotCi1mb3JlYWNoIG15ICRwcm9nTmFtZSAoQHByb2dyYW1zKSB7Ci0KLSAgbXkgJG1ha2VmaWxlX291dCA9ICIkcHJvZ05hbWVcXE1ha2VmaWxlIjsKLSAgbXkgJG1ha2VmaWxlX2luID0gIiRwcm9nTmFtZVxcTWFrZWZpbGUuaW4iOwotCi0gIG15ICRvdXRkaXIgPSAkY29uZmlnOwotICBteSAkaW50ZGlyID0gJGNvbmZpZzsKLQotICBvcGVuIChNQUtFX09VVCwgIj4kbWFrZWZpbGVfb3V0IikgfHwgZGllICJDYW4ndCBPcGVuICRtYWtlZmlsZV9vdXRcbiI7Ci0gIG9wZW4gKE1BS0VfSU4sICI8JG1ha2VmaWxlX2luIikgfHwgZGllICJDYW4ndCBPcGVuICRtYWtlZmlsZV9pblxuIjsKLQotICBwcmludCAiY3JlYXRpbmcgJG1ha2VmaWxlX291dFxuIjsKLQotICB3aGlsZSAoPE1BS0VfSU4+KQotICB7Ci0gICAgY2hvbXA7Ci0KLSAgICBpZiAoJHNkayA9PSAxKSB7Ci0gICAgICBzL15TREs9L1NESz10cnVlLzsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICBzL15TREs9L1NESz1mYWxzZS87Ci0gICAgfQotCi0gICAgcy9eTElOS1RZUEU9L0xJTktUWVBFPSRsaW5rdHlwZS87Ci0gICAgcy9eUFJPR05BTUU9L1BST0dOQU1FPSRwcm9nTmFtZS87Ci0gICAgcy9eQ0ZHPS9DRkc9JGNvbmZpZy87Ci0gICAgcy9eT1VURElSPS9PVVRESVI9LlxcJG91dGRpci87Ci0gICAgcy9eSU5URElSPS9JTlRESVI9LlxcJGludGRpci87Ci0gICAgcy9eU1NMPS4qL1NTTD0kb3BlbnNzbC87Ci0KLSAgICBwcmludCBNQUtFX09VVCAkXyAuICJcbiI7Ci0gIH0KLX0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgQ3JlYXRlIE1ha2VmaWxlIGZvciBQZXJsIHNjcmlwdHMgaW4gbG9jYWwKLSMgZnJvbSBsb2NhbFxNYWtlZmlsZS5pbgotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotbXkgJG1ha2VmaWxlX291dCA9ICJsb2NhbFxcTWFrZWZpbGUiOwotbXkgJG1ha2VmaWxlX2luID0gImxvY2FsXFxNYWtlZmlsZS5pbiI7Ci0KLW15ICRvdXRkaXIgPSAkY29uZmlnOwotCi1vcGVuIChNQUtFX09VVCwgIj4kbWFrZWZpbGVfb3V0IikgfHwgZGllICJDYW4ndCBPcGVuICRtYWtlZmlsZV9vdXRcbiI7Ci1vcGVuIChNQUtFX0lOLCAiPCRtYWtlZmlsZV9pbiIpIHx8IGRpZSAiQ2FuJ3QgT3BlbiAkbWFrZWZpbGVfaW5cbiI7Ci0KLXByaW50ICJjcmVhdGluZyAkbWFrZWZpbGVfb3V0XG4iOwotCi13aGlsZSAoPE1BS0VfSU4+KQotewotICBjaG9tcDsKLQotICBzL15PVVRESVI9L09VVERJUj0uXFwkb3V0ZGlyLzsKLSAgcy9eUFJFRklYPS9QUkVGSVg9JHByZWZpeC87Ci0gIHMvXlBSRUZJWF9ET1M9L1BSRUZJWF9ET1M9JHByZWZpeGRvcy87Ci0KLSAgcHJpbnQgTUFLRV9PVVQgJF8gLiAiXG4iOwotfQotCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIENyZWF0ZSBuZXQtc25tcC1jb25maWcuaAotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLXsKLSAgbXkgJGZpbGVfb3V0ID0gIm5ldC1zbm1wXFxuZXQtc25tcC1jb25maWcuaCI7Ci0gIG15ICRmaWxlX2luID0gIm5ldC1zbm1wXFxuZXQtc25tcC1jb25maWcuaC5pbiI7Ci0KLSAgb3BlbiAoRklMRV9PVVQsICI+JGZpbGVfb3V0IikgfHwgZGllICJDYW4ndCBPcGVuICRmaWxlX291dFxuIjsKLSAgb3BlbiAoRklMRV9JTiwgIjwkZmlsZV9pbiIpIHx8IGRpZSAiQ2FuJ3QgT3BlbiAkZmlsZV9pblxuIjsKLQotICBwcmludCAiY3JlYXRpbmcgJGZpbGVfb3V0XG4iOwotCi0gIHdoaWxlICg8RklMRV9JTj4pCi0gIHsKLSAgICBjaG9tcDsKLSAgICBzL14jZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTi4qLyNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OIFwiJHZlcnNpb25cIi87Ci0gICAgaWYgKCRwcmVmaXggbmUgIiIpIHsKLSAgICAgIHMvXiNkZWZpbmUgSU5TVEFMTF9CQVNFLiovI2RlZmluZSBJTlNUQUxMX0JBU0UgXCIkcHJlZml4XCIvOwotICAgIH0KLSAgICBpZiAoJGxpbmt0eXBlIGVxICJkeW5hbWljIikgewotICAgICAgcy9eLiojdW5kZWYgTkVUU05NUF9VU0VfRExMLiovI2RlZmluZSBORVRTTk1QX1VTRV9ETEwgMS87Ci0gICAgfQotICAgIGlmICgkc2RrID09IDEpIHsKLSAgICAgIHMvXi4qI3VuZGVmIEhBVkVfV0lOMzJfUExBVEZPUk1fU0RLLiovI2RlZmluZSBIQVZFX1dJTjMyX1BMQVRGT1JNX1NESyAxLzsKLSAgICB9Ci0gICAgaWYgKCRvcGVuc3NsID09IDEpIHsKLSAgICAgIHMvXi4qI3VuZGVmIE5FVFNOTVBfVVNFX09QRU5TU0wuKi8jZGVmaW5lIE5FVFNOTVBfVVNFX09QRU5TU0wgMS87Ci0gICAgfQotICAgIGlmICgkYl9pcHY2ID09IDEpIHsKLSAgICAgIHMvXi4qI3VuZGVmIE5FVFNOTVBfRU5BQkxFX0lQVjYuKi8jZGVmaW5lIE5FVFNOTVBfRU5BQkxFX0lQVjYgMS87Ci0gICAgfQotICAgIGlmICgkYl93aW5leHRkbGwgPT0gMSkgewotICAgICAgcy9eLiojdW5kZWYgVVNJTkdfV0lORVhURExMX01PRFVMRS4qLyNkZWZpbmUgVVNJTkdfV0lORVhURExMX01PRFVMRSAxLzsKLSAgICB9Ci0KLSAgICBwcmludCBGSUxFX09VVCAkXyAuICJcbiI7Ci0gIH0KLX0KLQorc3Vic3RpdHV0ZSgibmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgiLCAibmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4iLAorICAgICAgICAgICBcJXN1YnMpOwogCiBwcmludCBxcS8KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvd2luMzIvTWFrZWZpbGUtYXBwcy5pbiBiL3dpbjMyL01ha2VmaWxlLWFwcHMuaW4KaW5kZXggMjExM2FkZS4uYmNmYjI2ZSAxMDA2NDQKLS0tIGEvd2luMzIvTWFrZWZpbGUtYXBwcy5pbgorKysgYi93aW4zMi9NYWtlZmlsZS1hcHBzLmluCkBAIC0zLDcgKzMsNiBAQAogT1VURElSPQogSU5URElSPQogTElOS1RZUEU9Ci1TU0w9CiAKICMgU2V0IHRvIDEgdG8gYWxsb3cgdGhlIGJ1aWxkaW5nIHVzaW5nIHRoZSBETEwgdmVyc2lvbiBvZiBTTk1QTElCLgogQUxMT1dfRExMPTEKZGlmZiAtLWdpdCBhL3dpbjMyL2J1aWxkLnBsIGIvd2luMzIvYnVpbGQucGwKaW5kZXggYzE5MWYyOC4uNDAwN2ZhZSAxMDA2NDQKLS0tIGEvd2luMzIvYnVpbGQucGwKKysrIGIvd2luMzIvYnVpbGQucGwKQEAgLTUsMzIgKzUsNDkgQEAKICMgTWFyY2ggMTJ0aCwgMjAwNAogIwogdXNlIHN0cmljdDsKLW15ICRvcGVuc3NsID0gImRpc2FibGVkIjsKLW15ICRiX2lwdjYgPSAiZGlzYWJsZWQiOwotbXkgJGJfd2luZXh0ZGxsID0gImRpc2FibGVkIjsKLW15ICRzZGsgPSAiZGlzYWJsZWQiOwordXNlIHdhcm5pbmdzOwordXNlIENvbmZpZzsKK3VzZSBDd2QgJ2Fic19wYXRoJzsKK3VzZSBGaWxlOjpCYXNlbmFtZTsKK3VzZSBjb25zdGFudCBmYWxzZSA9PiAwOwordXNlIGNvbnN0YW50IHRydWUgPT4gMTsKK215ICR0YXJnZXRfYXJjaCA9ICRFTlZ7VEFSR0VUX0NQVX0gPyAkRU5We1RBUkdFVF9DUFV9IDogJEVOVntQbGF0Zm9ybX0gPworICAgICAgICAgICAgICAgICAgJEVOVntQbGF0Zm9ybX0gOiAieDg2IjsKK2lmICgkdGFyZ2V0X2FyY2ggbmUgIng4NiIgJiYgJHRhcmdldF9hcmNoIG5lICJ4NjQiKSB7CisgICAgcHJpbnQgIkVycm9yOiB1bnN1cHBvcnRlZCB0YXJnZXQgYXJjaGl0ZWN0dXJlICR0YXJnZXRfYXJjaFxuIjsKKyAgICBkaWU7Cit9CitteSBAcGVybF9hcmNoID0gc3BsaXQoLy0vLCAkQ29uZmlne2FyY2huYW1lfSk7CitpZiAoJHBlcmxfYXJjaFsxXSBuZSAkdGFyZ2V0X2FyY2gpIHsKKyAgICBwcmludCAicGVybF9hcmNoID0gJHBlcmxfYXJjaFsxXSBkb2VzIG5vdCBtYXRjaCB0YXJnZXRfYXJjaCA9ICR0YXJnZXRfYXJjaFxuIjsKKyAgICBkaWU7Cit9CitteSAkb3BlbnNzbCA9IGZhbHNlOworbXkgJGRlZmF1bHRfb3BlbnNzbGRpciA9ICR0YXJnZXRfYXJjaCBlcSAieDY0IiA/CisgICAgIkM6XFxPcGVuU1NMLVdpbjY0IiA6ICJDOlxcT3BlblNTTC1XaW4zMiI7CitteSAkZGVmYXVsdF9vcGVuc3NsaW5jZGlyID0gJGRlZmF1bHRfb3BlbnNzbGRpciAuICJcXGluY2x1ZGUiOworbXkgJG9wZW5zc2xpbmNkaXIgPSAkZGVmYXVsdF9vcGVuc3NsaW5jZGlyOworbXkgJGRlZmF1bHRfb3BlbnNzbGxpYmRpciA9ICRkZWZhdWx0X29wZW5zc2xkaXIgLiAiXFxsaWJcXFZDIjsKK215ICRvcGVuc3NsbGliZGlyID0gJGRlZmF1bHRfb3BlbnNzbGxpYmRpcjsKK215ICRiX2lwdjYgPSBmYWxzZTsKK215ICRiX3dpbmV4dGRsbCA9IGZhbHNlOworbXkgJHNkayA9IGZhbHNlOwogbXkgJGRlZmF1bHRfaW5zdGFsbF9iYXNlID0gImM6L3VzciI7CiBteSAkaW5zdGFsbF9iYXNlID0gJGRlZmF1bHRfaW5zdGFsbF9iYXNlOwotbXkgJGluc3RhbGwgPSAiZW5hYmxlZCI7Ci1teSAkaW5zdGFsbF9kZXZlbCA9ICJkaXNhYmxlZCI7Ci1teSAkcGVybCA9ICJkaXNhYmxlZCI7Ci1teSAkcGVybF9pbnN0YWxsID0gImRpc2FibGVkIjsKLW15ICRsb2dnaW5nID0gImVuYWJsZWQiOwotbXkgJGRlYnVnID0gImRpc2FibGVkIjsKK215ICRpbnN0YWxsID0gdHJ1ZTsKK215ICRpbnN0YWxsX2RldmVsID0gZmFsc2U7CitteSAkcGVybCA9IGZhbHNlOworbXkgJHBlcmxfaW5zdGFsbCA9IGZhbHNlOworbXkgJGxvZ2dpbmcgPSB0cnVlOworbXkgJGRlYnVnID0gZmFsc2U7CiBteSAkY29uZmlnT3B0cyA9ICIiOwotbXkgJGxpbmt0eXBlID0gInN0YXRpYyI7CitteSAkbGlua19keW5hbWljID0gZmFsc2U7CiBteSAkb3B0aW9uOwogCi0jIFByZXBlbmQgd2luMzJcIGlmIHJ1bm5pbmcgZnJvbSBtYWluIGRpcmVjdG9yeQotbXkgJGN1cnJlbnRfcHdkID0gYCVDT01TUEVDJSAvYyBjZGA7Ci1jaG9tcCAkY3VycmVudF9wd2Q7Ci1pZiAoISAoJGN1cnJlbnRfcHdkID1+IC9cXHdpbjMyJC8pKSB7Ci0gIGNoZGlyICgid2luMzIiKTsKLSAgJGN1cnJlbnRfcHdkID0gYCVDT01TUEVDJSAvYyBjZGA7Ci0gIGNob21wICRjdXJyZW50X3B3ZDsKLX0KKyMgUGF0aCBvZiB0aGlzIHNjcmlwdCAoc291cmNlIHRyZWUgcGF0aCArICJ3aW4zMiIpLgorbXkgJGN1cnJlbnRfcHdkID0gZGlybmFtZShhYnNfcGF0aCgkMCkpOwogCi1pZiAoIC1kICRFTlZ7TVNWQ0Rpcn0gfHwgLWQgJEVOVntWQ0lOU1RBTExESVJ9KSB7CitpZiAoIC1kICRFTlZ7TVNWQ0Rpcn0gfHwgLWQgJEVOVntWQ0lOU1RBTExESVJ9IHx8IGRlZmluZWQoJEVOVntUQVJHRVRfQ1BVfSkgKSB7CiB9CiBlbHNlIHsKICAgcHJpbnQgIlxuUGxlYXNlIHJ1biBWQ1ZBUlMzMi5CQVQgZmlyc3QgdG8gc2V0IHVwIHRoZSBWaXN1YWwgU3R1ZGlvIGJ1aWxkXG4iIC4KQEAgLTQyLDEzMiArNTksODkgQEAKIHdoaWxlICgxKSB7CiAgIHByaW50ICJcblxuTmV0LVNOTVAgYnVpbGQgYW5kIGluc3RhbGwgb3B0aW9uc1xuIjsKICAgcHJpbnQgIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuIjsKLSAgcHJpbnQgIjEuICBPcGVuU1NMIHN1cHBvcnQ6ICAgICAgICAgICAgICAgICIgLiAkb3BlbnNzbC4gIlxuIjsKLSAgcHJpbnQgIjIuICBQbGF0Zm9ybSBTREsgc3VwcG9ydDogICAgICAgICAgICIgLiAkc2RrIC4gIlxuIjsKKyAgcHJpbnQgIjEuICBPcGVuU1NMIHN1cHBvcnQ6ICAgICAgICAgICAgICAgICIgLiAoJG9wZW5zc2wgPyAiZW5hYmxlZCIgOiAiZGlzYWJsZWQiKS4gIlxuIjsKKyAgcHJpbnQgIjIuICBPcGVuU1NMIGluY2x1ZGUgZGlyZWN0b3J5OiAgICAgICIgLiAkb3BlbnNzbGluY2Rpci4gIlxuIjsKKyAgcHJpbnQgIjMuICBPcGVuU1NMIGxpYnJhcnkgZGlyZWN0b3I6ICAgICAgICIgLiAkb3BlbnNzbGxpYmRpci4gIlxuIjsKKyAgcHJpbnQgIjQuICBQbGF0Zm9ybSBTREsgc3VwcG9ydDogICAgICAgICAgICIgLiAoJHNkayA/ICJlbmFibGVkIiA6ICJkaXNhYmxlZCIpIC4gIlxuIjsKICAgcHJpbnQgIlxuIjsKLSAgcHJpbnQgIjMuICBJbnN0YWxsIHBhdGg6ICAgICAgICAgICAgICAgICAgICIgLiAkaW5zdGFsbF9iYXNlIC4gIlxuIjsKLSAgcHJpbnQgIjQuICBJbnN0YWxsIGFmdGVyIGJ1aWxkOiAgICAgICAgICAgICIgLiAkaW5zdGFsbCAuICJcbiI7CisgIHByaW50ICI1LiAgSW5zdGFsbCBwYXRoOiAgICAgICAgICAgICAgICAgICAiIC4gJGluc3RhbGxfYmFzZSAuICJcbiI7CisgIHByaW50ICI2LiAgSW5zdGFsbCBhZnRlciBidWlsZDogICAgICAgICAgICAiIC4gKCRpbnN0YWxsID8gImVuYWJsZWQiIDogImRpc2FibGVkIikgLiAiXG4iOwogICBwcmludCAiXG4iOwotICBwcmludCAiNS4gIFBlcmwgbW9kdWxlczogICAgICAgICAgICAgICAgICAgIiAuICRwZXJsIC4gIlxuIjsKLSAgcHJpbnQgIjYuICBJbnN0YWxsIHBlcmwgbW9kdWxlczogICAgICAgICAgICIgLiAkcGVybF9pbnN0YWxsIC4gIlxuIjsKKyAgcHJpbnQgIjcuICBQZXJsIG1vZHVsZXM6ICAgICAgICAgICAgICAgICAgICIgLiAoJHBlcmwgPyAiZW5hYmxlZCIgOiAiZGlzYWJsZWQiKSAuICJcbiI7CisgIHByaW50ICI4LiAgSW5zdGFsbCBwZXJsIG1vZHVsZXM6ICAgICAgICAgICAiIC4gKCRwZXJsX2luc3RhbGwgPyAiZW5hYmxlZCIgOiAiZGlzYWJsZWQiKSAuICJcbiI7CiAgIHByaW50ICJcbiI7Ci0gIHByaW50ICI3LiAgUXVpZXQgYnVpbGQgKGxvZ2dlZCk6ICAgICAgICAgICAiIC4gJGxvZ2dpbmcgLiAiXG4iOwotICBwcmludCAiOC4gIERlYnVnIG1vZGU6ICAgICAgICAgICAgICAgICAgICAgIiAuICRkZWJ1ZyAuICJcbiI7CisgIHByaW50ICI5LiAgUXVpZXQgYnVpbGQgKGxvZ2dlZCk6ICAgICAgICAgICAiIC4gKCRsb2dnaW5nID8gImVuYWJsZWQiIDogImRpc2FibGVkIikgLiAiXG4iOworICBwcmludCAiMTAuIERlYnVnIG1vZGU6ICAgICAgICAgICAgICAgICAgICAgIiAuICgkZGVidWcgPyAiZW5hYmxlZCIgOiAiZGlzYWJsZWQiKSAuICJcbiI7CiAgIHByaW50ICJcbiI7Ci0gIHByaW50ICI5LiAgSVB2NiB0cmFuc3BvcnRzIChyZXF1aXJlcyBTREspOiAiIC4gJGJfaXB2NiAuICJcbiI7Ci0gIHByaW50ICIxMC4gd2luRXh0RExMIGFnZW50IChyZXF1aXJlcyBTREspOiAiIC4gJGJfd2luZXh0ZGxsIC4gIlxuIjsKKyAgcHJpbnQgIjExLiBJUHY2IHRyYW5zcG9ydHMgKHJlcXVpcmVzIFNESyk6ICIgLiAoJGJfaXB2NiA/ICJlbmFibGVkIiA6ICJkaXNhYmxlZCIpIC4gIlxuIjsKKyAgcHJpbnQgIjEyLiB3aW5FeHRETEwgYWdlbnQgKHJlcXVpcmVzIFNESyk6ICIgLiAoJGJfd2luZXh0ZGxsID8gImVuYWJsZWQiIDogImRpc2FibGVkIikgLiAiXG4iOwogICBwcmludCAiXG4iOwotICBwcmludCAiMTEuIExpbmsgdHlwZTogICAgICAgICAgICAgICAgICAgICAgIiAuICRsaW5rdHlwZSAuICJcbiI7CisgIHByaW50ICIxMy4gTGluayB0eXBlOiAgICAgICAgICAgICAgICAgICAgICAiIC4gKCRsaW5rX2R5bmFtaWMgPyAiZHluYW1pYyIgOiAic3RhdGljIikgLiAiXG4iOwogICBwcmludCAiXG4iOwotICBwcmludCAiMTIuIEluc3RhbGwgZGV2ZWxvcG1lbnQgZmlsZXMgICAgICAgIiAuICRpbnN0YWxsX2RldmVsIC4gIlxuIjsKKyAgcHJpbnQgIjE0LiBJbnN0YWxsIGRldmVsb3BtZW50IGZpbGVzICAgICAgICIgLiAoJGluc3RhbGxfZGV2ZWwgPyAiZW5hYmxlZCIgOiAiZGlzYWJsZWQiKSAuICJcbiI7CiAgIHByaW50ICJcbkYuICBGaW5pc2hlZCAtIHN0YXJ0IGJ1aWxkXG4iOwogICBwcmludCAiUS4gIFF1aXQgLSBhYm9ydCBidWlsZFxuXG4iOwogICBwcmludCAiU2VsZWN0IG9wdGlvbiB0byBzZXQgLyB0b2dnbGU6ICI7CiAKICAgY2hvbXAgKCRvcHRpb24gPSA8Pik7CiAgIGlmICgkb3B0aW9uIGVxICIxIikgewotICAgIGlmICgkb3BlbnNzbCBlcSAiZW5hYmxlZCIpIHsKLSAgICAgICRvcGVuc3NsID0gImRpc2FibGVkIjsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAkb3BlbnNzbCA9ICJlbmFibGVkIjsKLSAgICB9CisgICAgJG9wZW5zc2wgPSAhJG9wZW5zc2w7CiAgIH0KICAgZWxzaWYgKCRvcHRpb24gZXEgIjIiKSB7Ci0gICAgaWYgKCRzZGsgZXEgImVuYWJsZWQiKSB7Ci0gICAgICAkc2RrID0gImRpc2FibGVkIjsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAkc2RrID0gImVuYWJsZWQiOwotICAgIH0KLSAgfQotICBlbHNpZiAoJG9wdGlvbiBlcSAiOSIpIHsKLSAgICBpZiAoJGJfaXB2NiBlcSAiZW5hYmxlZCIpIHsKLSAgICAgICRiX2lwdjYgPSAiZGlzYWJsZWQiOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICRiX2lwdjYgPSAiZW5hYmxlZCI7Ci0gICAgICBpZiAoJHNkayA9ICJkaXNhYmxlZCIpIHsKLSAgICAgICAgcHJpbnQgIlxuXG4qIFNESyByZXF1aXJlZCBmb3IgSVB2NiBhbmQgaGFzIGJlZW4gYXV0b21hdGljYWxseSBlbmFibGVkIjsKLSAgICAgICAgJHNkayA9ICJlbmFibGVkIjsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgZWxzaWYgKCRvcHRpb24gZXEgIjEwIikgewotICAgIGlmICgkYl93aW5leHRkbGwgZXEgImVuYWJsZWQiKSB7Ci0gICAgICAkYl93aW5leHRkbGwgPSAiZGlzYWJsZWQiOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICRiX3dpbmV4dGRsbCA9ICJlbmFibGVkIjsKLSAgICAgIGlmICgkc2RrID0gImRpc2FibGVkIikgewotICAgICAgICBwcmludCAiXG5cbiogU0RLIHJlcXVpcmVkIGZvciBJUHY2IGFuZCBoYXMgYmVlbiBhdXRvbWF0aWNhbGx5IGVuYWJsZWQiOwotICAgICAgICAkc2RrID0gImVuYWJsZWQiOwotICAgICAgfQotICAgIH0KKyAgICBwcmludCAiUGxlYXNlIGVudGVyIHRoZSBPcGVuU1NMIGluY2x1ZGUgZGlyZWN0b3J5IFskb3BlbnNzbGluY2Rpcl06ICI7CisgICAgY2hvbXAgKCRvcGVuc3NsaW5jZGlyID0gPD4pOworICAgICRvcGVuc3NsaW5jZGlyID1+IHMvXFwvXC8vZzsKKyAgICAkb3BlbnNzbGluY2RpciA9ICRkZWZhdWx0X29wZW5zc2xpbmNkaXIgaWYgKCRvcGVuc3NsaW5jZGlyIGVxICIiKTsKICAgfQogICBlbHNpZiAoJG9wdGlvbiBlcSAiMyIpIHsKLSAgICBwcmludCAiUGxlYXNlIGVudGVyIHRoZSBuZXcgaW5zdGFsbCBwYXRoIFskZGVmYXVsdF9pbnN0YWxsX2Jhc2VdOiAiOwotICAgIGNob21wICgkaW5zdGFsbF9iYXNlID0gPD4pOwotICAgIGlmICgkaW5zdGFsbF9iYXNlIGVxICIiKSB7Ci0gICAgICAkaW5zdGFsbF9iYXNlID0gJGRlZmF1bHRfaW5zdGFsbF9iYXNlOwotICAgIH0KLSAgICAkaW5zdGFsbF9iYXNlID1+IHMvXFwvXC8vZzsKKyAgICBwcmludCAiUGxlYXNlIGVudGVyIHRoZSBPcGVuU1NMIGxpYnJhcnkgZGlyZWN0b3J5IFskb3BlbnNzbGxpYmRpcl06ICI7CisgICAgY2hvbXAgKCRvcGVuc3NsbGliZGlyID0gPD4pOworICAgICRvcGVuc3NsbGliZGlyID1+IHMvXFwvXC8vZzsKKyAgICAkb3BlbnNzbGxpYmRpciA9ICRkZWZhdWx0X29wZW5zc2xsaWJkaXIgaWYgKCRvcGVuc3NsbGliZGlyIGVxICIiKTsKICAgfQogICBlbHNpZiAoJG9wdGlvbiBlcSAiNCIpIHsKLSAgICBpZiAoJGluc3RhbGwgZXEgImVuYWJsZWQiKSB7Ci0gICAgICAkaW5zdGFsbCA9ICJkaXNhYmxlZCI7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgJGluc3RhbGwgPSAiZW5hYmxlZCI7CisgICAgJHNkayA9ICEkc2RrOworICB9CisgIGVsc2lmICgkb3B0aW9uIGVxICIxMSIpIHsKKyAgICAkYl9pcHY2ID0gISRiX2lwdjY7CisgICAgaWYgKCRiX2lwdjYgJiYgISRzZGspIHsKKyAgICAgIHByaW50ICJcblxuKiBTREsgcmVxdWlyZWQgZm9yIElQdjYgYW5kIGhhcyBiZWVuIGF1dG9tYXRpY2FsbHkgZW5hYmxlZCI7CisgICAgICAkc2RrID0gdHJ1ZTsKICAgICB9CiAgIH0KICAgZWxzaWYgKCRvcHRpb24gZXEgIjEyIikgewotICAgIGlmICgkaW5zdGFsbF9kZXZlbCBlcSAiZW5hYmxlZCIpIHsKLSAgICAgICRpbnN0YWxsX2RldmVsID0gImRpc2FibGVkIjsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAkaW5zdGFsbF9kZXZlbCA9ICJlbmFibGVkIjsKKyAgICAkYl93aW5leHRkbGwgPSAhJGJfd2luZXh0ZGxsOworICAgIGlmICgkYl93aW5leHRkbGwgJiYgISRzZGspIHsKKyAgICAgIHByaW50ICJcblxuKiBTREsgcmVxdWlyZWQgZm9yIElQdjYgYW5kIGhhcyBiZWVuIGF1dG9tYXRpY2FsbHkgZW5hYmxlZCI7CisgICAgICAkc2RrID0gdHJ1ZTsKICAgICB9CiAgIH0KICAgZWxzaWYgKCRvcHRpb24gZXEgIjUiKSB7Ci0gICAgaWYgKCRwZXJsIGVxICJlbmFibGVkIikgewotICAgICAgJHBlcmwgPSAiZGlzYWJsZWQiOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICRwZXJsID0gImVuYWJsZWQiOwotICAgIH0KKyAgICBwcmludCAiUGxlYXNlIGVudGVyIHRoZSBuZXcgaW5zdGFsbCBwYXRoIFskZGVmYXVsdF9pbnN0YWxsX2Jhc2VdOiAiOworICAgIGNob21wICgkaW5zdGFsbF9iYXNlID0gPD4pOworICAgICRpbnN0YWxsX2Jhc2UgPX4gcy9cXC9cLy9nOworICAgICRpbnN0YWxsX2Jhc2UgPSAkZGVmYXVsdF9pbnN0YWxsX2Jhc2UgaWYgKCRpbnN0YWxsX2Jhc2UgZXEgIiIpOwogICB9CiAgIGVsc2lmICgkb3B0aW9uIGVxICI2IikgewotICAgIGlmICgkcGVybF9pbnN0YWxsIGVxICJlbmFibGVkIikgewotICAgICAgJHBlcmxfaW5zdGFsbCA9ICJkaXNhYmxlZCI7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgJHBlcmxfaW5zdGFsbCA9ICJlbmFibGVkIjsKLSAgICB9CisgICAgJGluc3RhbGwgPSAhJGluc3RhbGw7CisgIH0KKyAgZWxzaWYgKCRvcHRpb24gZXEgIjE0IikgeworICAgICRpbnN0YWxsX2RldmVsID0gISRpbnN0YWxsX2RldmVsOwogICB9CiAgIGVsc2lmICgkb3B0aW9uIGVxICI3IikgewotICAgIGlmICgkbG9nZ2luZyBlcSAiZW5hYmxlZCIpIHsKLSAgICAgICRsb2dnaW5nID0gImRpc2FibGVkIjsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAkbG9nZ2luZyA9ICJlbmFibGVkIjsKLSAgICB9CisgICAgJHBlcmwgPSAhJHBlcmw7CiAgIH0KICAgZWxzaWYgKCRvcHRpb24gZXEgIjgiKSB7Ci0gICAgaWYgKCRkZWJ1ZyBlcSAiZW5hYmxlZCIpIHsKLSAgICAgICRkZWJ1ZyA9ICJkaXNhYmxlZCI7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgJGRlYnVnID0gImVuYWJsZWQiOwotICAgIH0KKyAgICAkcGVybF9pbnN0YWxsID0gISRwZXJsX2luc3RhbGw7CiAgIH0KLSAgZWxzaWYgKCRvcHRpb24gZXEgIjExIikgewotICAgIGlmICgkbGlua3R5cGUgZXEgInN0YXRpYyIpIHsKLSAgICAgICRsaW5rdHlwZSA9ICJkeW5hbWljIjsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAkbGlua3R5cGUgPSAic3RhdGljIjsKLSAgICB9CisgIGVsc2lmICgkb3B0aW9uIGVxICI5IikgeworICAgICRsb2dnaW5nID0gISRsb2dnaW5nOworICB9CisgIGVsc2lmICgkb3B0aW9uIGVxICIxMCIpIHsKKyAgICAkZGVidWcgPSAhJGRlYnVnOworICB9CisgIGVsc2lmICgkb3B0aW9uIGVxICIxMyIpIHsKKyAgICAkbGlua19keW5hbWljID0gISRsaW5rX2R5bmFtaWM7CiAgIH0KICAgZWxzaWYgKGxjKCRvcHRpb24pIGVxICJmIikgewogICAgIGxhc3Q7CkBAIC0xNzcsMTUgKzE1MSwxNiBAQAogICB9CiB9CiAKLSRjb25maWdPcHRzIC49ICRvcGVuc3NsIGVxICJlbmFibGVkIiA/ICItLXdpdGgtc3NsIiA6ICIiOworbXkgJGxpbmt0eXBlID0gJGxpbmtfZHluYW1pYyA/ICJkeW5hbWljIiA6ICJzdGF0aWMiOworJGNvbmZpZ09wdHMgLj0gJG9wZW5zc2wgPyAiLS13aXRoLXNzbCIgOiAiIjsKICRjb25maWdPcHRzIC49ICIgIjsKLSRjb25maWdPcHRzIC49ICRzZGsgZXEgImVuYWJsZWQiID8gIi0td2l0aC1zZGsiIDogIiI7CiskY29uZmlnT3B0cyAuPSAkc2RrID8gIi0td2l0aC1zZGsiIDogIiI7CiAkY29uZmlnT3B0cyAuPSAiICI7Ci0kY29uZmlnT3B0cyAuPSAkYl9pcHY2IGVxICJlbmFibGVkIiA/ICItLXdpdGgtaXB2NiIgOiAiIjsKKyRjb25maWdPcHRzIC49ICRiX2lwdjYgPyAiLS13aXRoLWlwdjYiIDogIiI7CiAkY29uZmlnT3B0cyAuPSAiICI7Ci0kY29uZmlnT3B0cyAuPSAkYl93aW5leHRkbGwgZXEgImVuYWJsZWQiID8gIi0td2l0aC13aW5leHRkbGwiIDogIiI7CiskY29uZmlnT3B0cyAuPSAkYl93aW5leHRkbGwgPyAiLS13aXRoLXdpbmV4dGRsbCIgOiAiIjsKICRjb25maWdPcHRzIC49ICIgIjsKLSRjb25maWdPcHRzIC49ICRkZWJ1ZyBlcSAiZW5hYmxlZCIgPyAiLS1jb25maWc9ZGVidWciIDogIi0tY29uZmlnPXJlbGVhc2UiOworJGNvbmZpZ09wdHMgLj0gJGRlYnVnID8gIi0tY29uZmlnPWRlYnVnIiA6ICItLWNvbmZpZz1yZWxlYXNlIjsKIAogIyBTZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzCiAKQEAgLTE5MywxNDQgKzE2OCw5NCBAQAogJEVOVntOT19FWFRFUk5BTF9ERVBTfT0iMSI7CiAKICMgU2V0IFBBVEggZW52aXJvbm1lbnQgdmFyaWFibGUgc28gUGVybCBtYWtlIHRlc3RzIGNhbiBsb2NhdGUgdGhlIERMTAotJEVOVntQQVRIfSA9ICIkY3VycmVudF9wd2RcXGJpblxcIiAuICgkZGVidWcgZXEgImVuYWJsZWQiID8gImRlYnVnIiA6ICJyZWxlYXNlIiApIC4gIjskRU5We1BBVEh9IjsKKyRFTlZ7UEFUSH0gPSAiJGN1cnJlbnRfcHdkXFxiaW5cXCIgLiAoJGRlYnVnID8gImRlYnVnIiA6ICJyZWxlYXNlIiApIC4gIjskRU5We1BBVEh9IjsKKworJEVOVntJTkNMVURFfSAuPSAiOyRvcGVuc3NsaW5jZGlyIjsKKyRFTlZ7TElCfSAgICAgLj0gIjskb3BlbnNzbGxpYmRpciI7CiAKICMgU2V0IE1JQkRJUlMgZW52aXJvbm1lbnQgdmFyaWFibGUgc28gUGVybCBtYWtlIHRlc3RzIGNhbiBsb2NhdGUgdGhlIG1pYnMKLW15ICR0ZW1wX21pYmRpciA9ICIkY3VycmVudF9wd2QvLi4vbWlicyI7Ci0kdGVtcF9taWJkaXIgPX4gcy9cXC9cLy9nOwotJEVOVntNSUJESVJTfT0kdGVtcF9taWJkaXI7CiskRU5We01JQkRJUlN9ID0gZGlybmFtZSgkY3VycmVudF9wd2QpIC4gIi9taWJzIjsKIAogIyBTZXQgU05NUENPTkZQQVRIIGVudmlyb25tZW50IHZhcmlhYmxlIHNvIFBlcmwgY29uZi50IHRlc3QgY2FuIGxvY2F0ZQogIyB0aGUgY29uZmlndXJhdGlvbiBmaWxlcy4KICMgU2VlIHRoZSBub3RlIGFib3V0IGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgV2luMzIgc2VjdGlvbiBvZgogIyBwZXJsL1NOTVAvUkVBRE1FIGZvciBkZXRhaWxzIG9uIHdoeSB0aGlzIGlzIG5lZWRlZC4KLSRFTlZ7U05NUENPTkZQQVRIfT0idCI7JEVOVntTTk1QQ09ORlBBVEh9OworJEVOVntTTk1QQ09ORlBBVEh9PSJ0IjsKIAogcHJpbnQgIlxuQnVpbGRpbmcuLi5cbiI7CiAKLWlmICgkbG9nZ2luZyBlcSAiZW5hYmxlZCIpIHsKLSAgcHJpbnQgIlxuQ3JlYXRpbmcgKi5vdXQgbG9nIGZpbGVzLlxuXG4iOworcHJpbnQgIlxuQ3JlYXRpbmcgKi5vdXQgbG9nIGZpbGVzLlxuXG4iOworCitwcmludCAiRGVsZXRpbmcgb2xkIGxvZyBmaWxlcy4uLlxuIjsKK3N5c3RlbSgiZGVsICoub3V0IiAuICgkbG9nZ2luZyA/ICIgPiBOVUw6IDI+JjEiIDogIiIpKTsKKworIyBEZWxldGUgbmV0LXNubXAtY29uZmlnLmggZnJvbSBtYWluIGluY2x1ZGUgZm9sZGVyIGp1c3QgaW4gY2FzZSBpdCB3YXMgY3JlYXRlZCBieSBhIEN5Z3dpbiBvciBNaW5HVyBidWlsZAordW5saW5rICIuLi9pbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIjsKK3VubGluayAiLi4vc25tcGxpYi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmgiOworCitwcmludCAiUnVubmluZyBDb25maWd1cmUuLi5cbiI7CitzeXN0ZW0oInBlcmwgQ29uZmlndXJlICRjb25maWdPcHRzIC0tbGlua3R5cGU9JGxpbmt0eXBlIC0tcHJlZml4PVwiJGluc3RhbGxfYmFzZVwiIiAuICgkbG9nZ2luZyA/ICIgPiBjb25maWd1cmUub3V0IDI+JjEiIDogIiIpKSA9PSAwIHx8IGRpZSAoJGxvZ2dpbmcgPyAiQnVpbGQgZXJyb3IgKHNlZSBjb25maWd1cmUub3V0KSIgOiAiQnVpbGQgZXJyb3IgKHNlZSBhYm92ZSkiKTsKKworcHJpbnQgIkNsZWFuaW5nLi4uXG4iOworc3lzdGVtKCJubWFrZSAvbm9sb2dvIGNsZWFuIiAuICgkbG9nZ2luZyA/ICIgPiBjbGVhbi5vdXQgMj4mMSIgOiAiIikpID09IDAgfHwgZGllICgkbG9nZ2luZyA/ICJCdWlsZCBlcnJvciAoc2VlIGNsZWFuLm91dCkiIDogIkJ1aWxkIGVycm9yIChzZWUgYWJvdmUpIik7CisKK3ByaW50ICJCdWlsZGluZyBtYWluIHBhY2thZ2UuLi5cbiI7CitzeXN0ZW0oIm5tYWtlIC9ub2xvZ28iIC4gKCRsb2dnaW5nID8gIiA+IG1ha2Uub3V0IDI+JjEiIDogIiIpKSA9PSAwIHx8IGRpZSAoJGxvZ2dpbmcgPyAiQnVpbGQgZXJyb3IgKHNlZSBtYWtlLm91dCkiIDogIkJ1aWxkIGVycm9yIChzZWUgYWJvdmUpIik7CisKK2lmICgkcGVybCkgeworICBpZiAoISRsaW5rX2R5bmFtaWMpIHsKKyAgICBwcmludCAiUnVubmluZyBDb25maWd1cmUgZm9yIERMTC4uLlxuIjsKKyAgICBzeXN0ZW0oInBlcmwgQ29uZmlndXJlICRjb25maWdPcHRzIC0tbGlua3R5cGU9ZHluYW1pYyAtLXByZWZpeD1cIiRpbnN0YWxsX2Jhc2VcIiIgLiAoJGxvZ2dpbmcgPyAiID4gcGVybGNvbmZpZ3VyZS5vdXQgMj4mMSIgOiAiIikpID09IDAgfHwgZGllICgkbG9nZ2luZyA/ICJCdWlsZCBlcnJvciAoc2VlIHBlcmxjb25maWd1cmUub3V0KSIgOiAiQnVpbGQgZXJyb3IgKHNlZSBhYm92ZSkiKTsKKworICAgIHByaW50ICJDbGVhbmluZyBsaWJyYXJpZXMuLi5cbiI7CisgICAgc3lzdGVtKCJubWFrZSAvbm9sb2dvIGxpYnNfY2xlYW4iIC4gKCRsb2dnaW5nID8gIiA+PiBjbGVhbi5vdXQgMj4mMSIgOiAiIikpID09IDAgfHwgZGllICgkbG9nZ2luZyA/ICJCdWlsZCBlcnJvciAoc2VlIGNsZWFuLm91dCkiIDogIkJ1aWxkIGVycm9yIChzZWUgYWJvdmUpIik7CisKKyAgICBwcmludCAiQnVpbGRpbmcgRExMIGxpYnJhcmllcy4uLlxuIjsKKyAgICBzeXN0ZW0oIm5tYWtlIC9ub2xvZ28gbGlicyIgLiAoJGxvZ2dpbmcgPyAiID4gZGxsLm91dCAyPiYxIiA6ICIiKSkgPT0gMCB8fCBkaWUgKCRsb2dnaW5nID8gIkJ1aWxkIGVycm9yIChzZWUgZGxsLm91dCkiIDogIkJ1aWxkIGVycm9yIChzZWUgYWJvdmUpIik7CisgIH0KKworICBwcmludCAiQ2xlYW5pbmcgUGVybC4uLi5cbiI7CisgIHN5c3RlbSgibm1ha2UgL25vbG9nbyBwZXJsX2NsZWFuIiAuICgkbG9nZ2luZyA/ICIgPj4gY2xlYW4ub3V0IDI+JjEiIDogIiIpKTsgIyBJZiBhbHJlYWR5IGNsZWFuZWQsIE1ha2VmaWxlIGlzIGdvbmUgc28gZG9uJ3Qgd29ycnkgYWJvdXQgZXJyb3JzIQorCisgIHByaW50ICJCdWlsZGluZyBQZXJsIG1vZHVsZXMuLi5cbiI7CisgIHN5c3RlbSgibm1ha2UgL25vbG9nbyBwZXJsIiAuICgkbG9nZ2luZyA/ICIgPiBwZXJsbWFrZS5vdXQgMj4mMSIgOiAiIikpID09IDAgfHwgZGllICgkbG9nZ2luZyA/ICJCdWlsZCBlcnJvciAoc2VlIHBlcmxtYWtlLm91dCkiIDogIkJ1aWxkIGVycm9yIChzZWUgYWJvdmUpIik7CisKKyAgcHJpbnQgIlRlc3RpbmcgUGVybCBtb2R1bGVzLi4uXG4iOworICBzeXN0ZW0oIm5tYWtlIC9ub2xvZ28gcGVybF90ZXN0IiAuICgkbG9nZ2luZyA/ICIgPiBwZXJsdGVzdC5vdXQgMj4mMSIgOiAiIikpOyAjIERvbid0IGRpZSBpZiBhbGwgdGhlIHRlc3RzIGRvbid0IHBhc3MuLgorCisgIGlmICgkcGVybF9pbnN0YWxsKSB7CisgICAgcHJpbnQgIkluc3RhbGxpbmcgUGVybCBtb2R1bGVzLi4uXG4iOworICAgIHN5c3RlbSgibm1ha2UgL25vbG9nbyBwZXJsX2luc3RhbGwiIC4gKCRsb2dnaW5nID8gIiA+IHBlcmxpbnN0YWxsLm91dCAyPiYxIiA6ICIiKSkgPT0gMCB8fCBkaWUgKCRsb2dnaW5nID8gIkJ1aWxkIGVycm9yIChzZWUgcGVybGluc3RhbGwub3V0KSIgOiAiQnVpbGQgZXJyb3IgKHNlZSBhYm92ZSkiKTsKKyAgfQorCisgIHByaW50ICJcblNlZSBwZXJsdGVzdC5vdXQgZm9yIFBlcmwgdGVzdCByZXN1bHRzXG4iOwogfQogCi1pZiAoJGxvZ2dpbmcgZXEgImVuYWJsZWQiKSB7Ci0gIHByaW50ICJEZWxldGluZyBvbGQgbG9nIGZpbGVzLi4uXG4iOwotICBzeXN0ZW0oImRlbCAqLm91dCA+IE5VTDogMj4mMSIpOwotCi0gICMgRGVsZXRlIG5ldC1zbm1wLWNvbmZpZy5oIGZyb20gbWFpbiBpbmNsdWRlIGZvbGRlciBqdXN0IGluIGNhc2UgaXQgd2FzIGNyZWF0ZWQgYnkgYSBDeWd3aW4gb3IgTWluR1cgYnVpbGQKLSAgc3lzdGVtKCJkZWwgLi5cXGluY2x1ZGVcXG5ldC1zbm1wXFxuZXQtc25tcC1jb25maWcuaCA+IE5VTDogMj4mMSIpOwotICB1bmxpbmsgIi4uL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oIjsKLQotICBwcmludCAiUnVubmluZyBDb25maWd1cmUuLi5cbiI7Ci0gIHN5c3RlbSgicGVybCBDb25maWd1cmUgJGNvbmZpZ09wdHMgLS1saW5rdHlwZT0kbGlua3R5cGUgLS1wcmVmaXg9XCIkaW5zdGFsbF9iYXNlXCIgPiBjb25maWd1cmUub3V0IDI+JjEiKSA9PSAwIHx8IGRpZSAiQnVpbGQgZXJyb3IgKHNlZSBjb25maWd1cmUub3V0KSI7Ci0KLSAgcHJpbnQgIkNsZWFuaW5nLi4uXG4iOwotICBzeXN0ZW0oIm5tYWtlIC9ub2xvZ28gY2xlYW4gPiBjbGVhbi5vdXQgMj4mMSIpID09IDAgfHwgZGllICJCdWlsZCBlcnJvciAoc2VlIGNsZWFuLm91dCkiOwotCi0gIHByaW50ICJCdWlsZGluZyBtYWluIHBhY2thZ2UuLi5cbiI7Ci0gIHN5c3RlbSgibm1ha2UgL25vbG9nbyA+IG1ha2Uub3V0IDI+JjEiKSA9PSAwIHx8IGRpZSAiQnVpbGQgZXJyb3IgKHNlZSBtYWtlLm91dCkiOwotCi0gIGlmICgkcGVybCBlcSAiZW5hYmxlZCIpIHsKLSAgICBpZiAoJGxpbmt0eXBlIGVxICJzdGF0aWMiKSB7Ci0gICAgICBwcmludCAiUnVubmluZyBDb25maWd1cmUgZm9yIERMTC4uLlxuIjsKLSAgICAgIHN5c3RlbSgicGVybCBDb25maWd1cmUgJGNvbmZpZ09wdHMgLS1saW5rdHlwZT1keW5hbWljIC0tcHJlZml4PVwiJGluc3RhbGxfYmFzZVwiID4gcGVybGNvbmZpZ3VyZS5vdXQgMj4mMSIpID09IDAgfHwgZGllICJCdWlsZCBlcnJvciAoc2VlIHBlcmxjb25maWd1cmUub3V0KSI7Ci0KLSAgICAgIHByaW50ICJDbGVhbmluZyBsaWJyYXJpZXMuLi5cbiI7Ci0gICAgICBzeXN0ZW0oIm5tYWtlIC9ub2xvZ28gbGlic19jbGVhbiA+PiBjbGVhbi5vdXQgMj4mMSIpID09IDAgfHwgZGllICJCdWlsZCBlcnJvciAoc2VlIGNsZWFuLm91dCkiOwotCi0gICAgICBwcmludCAiQnVpbGRpbmcgRExMIGxpYnJhcmllcy4uLlxuIjsKLSAgICAgIHN5c3RlbSgibm1ha2UgL25vbG9nbyBsaWJzID4gZGxsLm91dCAyPiYxIikgPT0gMCB8fCBkaWUgIkJ1aWxkIGVycm9yIChzZWUgZGxsLm91dCkiOwotICAgIH0KLQotICAgIHByaW50ICJDbGVhbmluZyBQZXJsLi4uLlxuIjsKLSAgICBzeXN0ZW0oIm5tYWtlIC9ub2xvZ28gcGVybF9jbGVhbiA+PiBjbGVhbi5vdXQgMj4mMSIpOyAjIElmIGFscmVhZHkgY2xlYW5lZCwgTWFrZWZpbGUgaXMgZ29uZSBzbyBkb24ndCB3b3JyeSBhYm91dCBlcnJvcnMhCi0KLSAgICBwcmludCAiQnVpbGRpbmcgUGVybCBtb2R1bGVzLi4uXG4iOwotICAgIHN5c3RlbSgibm1ha2UgL25vbG9nbyBwZXJsID4gcGVybG1ha2Uub3V0IDI+JjEiKSA9PSAwIHx8IGRpZSAiQnVpbGQgZXJyb3IgKHNlZSBwZXJsbWFrZS5vdXQpIjsKLQotICAgIHByaW50ICJUZXN0aW5nIFBlcmwgbW9kdWxlcy4uLlxuIjsKLSAgICBzeXN0ZW0oIm5tYWtlIC9ub2xvZ28gcGVybF90ZXN0ID4gcGVybHRlc3Qub3V0IDI+JjEiKTsgIyBEb24ndCBkaWUgaWYgYWxsIHRoZSB0ZXN0cyBkb24ndCBwYXNzLi4KLQotICAgIGlmICgkcGVybF9pbnN0YWxsIGVxICJlbmFibGVkIikgewotICAgICAgcHJpbnQgIkluc3RhbGxpbmcgUGVybCBtb2R1bGVzLi4uXG4iOwotICAgICAgc3lzdGVtKCJubWFrZSAvbm9sb2dvIHBlcmxfaW5zdGFsbCA+IHBlcmxpbnN0YWxsLm91dCAyPiYxIikgPT0gMCB8fCBkaWUgIkJ1aWxkIGVycm9yIChzZWUgcGVybGluc3RhbGwub3V0KSI7Ci0gICAgfQotCi0gICAgcHJpbnQgIlxuU2VlIHBlcmx0ZXN0Lm91dCBmb3IgUGVybCB0ZXN0IHJlc3VsdHNcbiI7Ci0gIH0KLQotICBwcmludCAiXG4iOwotICBpZiAoJGluc3RhbGwgZXEgImVuYWJsZWQiKSB7Ci0gICAgcHJpbnQgIkluc3RhbGxpbmcgbWFpbiBwYWNrYWdlLi4uXG4iOwotICAgIHN5c3RlbSgibm1ha2UgL25vbG9nbyBpbnN0YWxsID4gaW5zdGFsbC5vdXQgMj4mMSIpID09IDAgfHwgZGllICJCdWlsZCBlcnJvciAoc2VlIGluc3RhbGwub3V0KSI7Ci0gIH0KLSAgZWxzZSB7Ci0gICAgcHJpbnQgIlR5cGUgbm1ha2UgaW5zdGFsbCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHRvICRpbnN0YWxsX2Jhc2VcbiI7Ci0gIH0KLQotICBpZiAoJGluc3RhbGxfZGV2ZWwgZXEgImVuYWJsZWQiKSB7Ci0gICAgcHJpbnQgIkluc3RhbGxpbmcgZGV2ZWxvcG1lbnQgZmlsZXMuLi5cbiI7Ci0gICAgc3lzdGVtKCJubWFrZSAvbm9sb2dvIGluc3RhbGxfZGV2ZWwgPiBpbnN0YWxsX2RldmVsLm91dCAyPiYxIikgPT0gMCB8fCBkaWUgIkJ1aWxkIGVycm9yIChzZWUgaW5zdGFsbF9kZXZlbC5vdXQpIjsKLSAgfQotICBlbHNlIHsKLSAgICBwcmludCAiVHlwZSBubWFrZSBpbnN0YWxsX2RldmVsIHRvIGluc3RhbGwgdGhlIGRldmVsb3BtZW50IGZpbGVzIHRvICRpbnN0YWxsX2Jhc2VcbiI7Ci0gIH0KLQotICBpZiAoJHBlcmxfaW5zdGFsbCBlcSAiZGlzYWJsZWQiICYmICRwZXJsIGVxICJlbmFibGVkIikgewotICAgIHByaW50ICJUeXBlIG5tYWtlIHBlcmxfaW5zdGFsbCB0byBpbnN0YWxsIHRoZSBQZXJsIG1vZHVsZXNcbiI7Ci0gIH0KK3ByaW50ICJcbiI7CitpZiAoJGluc3RhbGwpIHsKKyAgcHJpbnQgIkluc3RhbGxpbmcgbWFpbiBwYWNrYWdlLi4uXG4iOworICBzeXN0ZW0oIm5tYWtlIC9ub2xvZ28gaW5zdGFsbCIgLiAoJGxvZ2dpbmcgPyAiID4gaW5zdGFsbC5vdXQgMj4mMSIgOiAiIikpID09IDAgfHwgZGllICgkbG9nZ2luZyA/ICJCdWlsZCBlcnJvciAoc2VlIGluc3RhbGwub3V0KSIgOiAiQnVpbGQgZXJyb3IgKHNlZSBhYm92ZSkiKTsKIH0KIGVsc2UgewotICBzeXN0ZW0oImRlbCAqLm91dCIpOworICBwcmludCAiVHlwZSBubWFrZSBpbnN0YWxsIHRvIGluc3RhbGwgdGhlIHBhY2thZ2UgdG8gJGluc3RhbGxfYmFzZVxuIjsKK30KIAotICAjIERlbGV0ZSBuZXQtc25tcC1jb25maWcuaCBmcm9tIG1haW4gaW5jbHVkZSBmb2xkZXIganVzdCBpbiBjYXNlIGl0IHdhcyBjcmVhdGVkIGJ5IGEgQ3lnd2luIG9yIE1pbkdXIGJ1aWxkCi0gIHN5c3RlbSgiZGVsIC4uXFxpbmNsdWRlXFxuZXQtc25tcFxcbmV0LXNubXAtY29uZmlnLmggPiBOVUw6IDI+JjEiKTsKK2lmICgkaW5zdGFsbF9kZXZlbCkgeworICBwcmludCAiSW5zdGFsbGluZyBkZXZlbG9wbWVudCBmaWxlcy4uLlxuIjsKKyAgc3lzdGVtKCJubWFrZSAvbm9sb2dvIGluc3RhbGxfZGV2ZWwgPiBpbnN0YWxsX2RldmVsLm91dCAyPiYxIikgPT0gMCB8fCBkaWUgIkJ1aWxkIGVycm9yIChzZWUgaW5zdGFsbF9kZXZlbC5vdXQpIjsKK30KK2Vsc2UgeworICBwcmludCAiVHlwZSBubWFrZSBpbnN0YWxsX2RldmVsIHRvIGluc3RhbGwgdGhlIGRldmVsb3BtZW50IGZpbGVzIHRvICRpbnN0YWxsX2Jhc2VcbiI7Cit9CiAKLSAgc3lzdGVtKCJwZXJsIENvbmZpZ3VyZSAkY29uZmlnT3B0cyAtLWxpbmt0eXBlPSRsaW5rdHlwZSAtLXByZWZpeD1cIiRpbnN0YWxsX2Jhc2VcIiIpID09IDAgfHwgZGllICJCdWlsZCBlcnJvciAoc2VlIGFib3ZlKSI7Ci0gIHN5c3RlbSgibm1ha2UgL25vbG9nbyBjbGVhbiIpID09IDAgfHwgZGllICJCdWlsZCBlcnJvciAoc2VlIGFib3ZlKSI7Ci0gIHN5c3RlbSgibm1ha2UgL25vbG9nbyIpID09IDAgfHwgZGllICJCdWlsZCBlcnJvciAoc2VlIGFib3ZlKSI7Ci0KLSAgaWYgKCRwZXJsIGVxICJlbmFibGVkIikgewotICAgIGlmICgkbGlua3R5cGUgZXEgInN0YXRpYyIpIHsKLSAgICAgIHN5c3RlbSgicGVybCBDb25maWd1cmUgJGNvbmZpZ09wdHMgLS1saW5rdHlwZT1keW5hbWljIC0tcHJlZml4PVwiJGluc3RhbGxfYmFzZVwiIikgPT0gMCB8fCBkaWUgIkJ1aWxkIGVycm9yIChzZWUgYWJvdmUpIjsKLSAgICAgIHN5c3RlbSgibm1ha2UgL25vbG9nbyBsaWJzX2NsZWFuIikgPT0gMCB8fCBkaWUgIkJ1aWxkIGVycm9yIChzZWUgYWJvdmUpIjsKLSAgICAgIHN5c3RlbSgibm1ha2UgL25vbG9nbyBsaWJzIikgPT0gMCB8fCBkaWUgIkJ1aWxkIGVycm9yIChzZWUgYWJvdmUpIjsKLSAgICB9Ci0KLSAgICBzeXN0ZW0oIm5tYWtlIC9ub2xvZ28gcGVybF9jbGVhbiIpOyAjIElmIGFscmVhZHkgY2xlYW5lZCwgTWFrZWZpbGUgaXMgZ29uZSBzbyBkb24ndCB3b3JyeSBhYm91dCBlcnJvcnMhCi0gICAgc3lzdGVtKCJubWFrZSAvbm9sb2dvIHBlcmwiKSA9PSAwIHx8IGRpZSAiQnVpbGQgZXJyb3IgKHNlZSBhYm92ZSkiOwotCi0gICAgbXkgJHBhdGhfb2xkID0gJEVOVntQQVRIfTsKLSAgICAkRU5We1BBVEh9ID0gIiRjdXJyZW50X3B3ZFxcYmluXFwiIC4gKCRkZWJ1ZyBlcSAiZW5hYmxlZCIgPyAiZGVidWciIDogInJlbGVhc2UiICkgLiAiOyRFTlZ7UEFUSH0iOwotICAgIHN5c3RlbSgibm1ha2UgL25vbG9nbyBwZXJsX3Rlc3QiKTsgIyBEb24ndCBkaWUgaWYgYWxsIHRoZSB0ZXN0cyBkb24ndCBwYXNzLi4KLSAgICAkRU5We1BBVEh9ID0gJHBhdGhfb2xkOwotCi0gICAgaWYgKCRwZXJsX2luc3RhbGwgZXEgImVuYWJsZWQiKSB7Ci0gICAgICBwcmludCAiSW5zdGFsbGluZyBQZXJsIG1vZHVsZXMuLi5cbiI7Ci0gICAgICBzeXN0ZW0oIm5tYWtlIC9ub2xvZ28gcGVybF9pbnN0YWxsIikgPT0gMCB8fCBkaWUgIkJ1aWxkIGVycm9yIChzZWUgYWJvdmUpIjsKLSAgICB9Ci0gIH0KLQotICBwcmludCAiXG4iOwotICBpZiAoJGluc3RhbGwgZXEgImVuYWJsZWQiKSB7Ci0gICAgcHJpbnQgIkluc3RhbGxpbmcgbWFpbiBwYWNrYWdlLi4uXG4iOwotICAgIHN5c3RlbSgibm1ha2UgL25vbG9nbyBpbnN0YWxsIikgPT0gMCB8fCBkaWUgIkJ1aWxkIGVycm9yIChzZWUgYWJvdmUpIjsKLSAgfQotICBlbHNlIHsKLSAgICBwcmludCAiVHlwZSBubWFrZSBpbnN0YWxsIHRvIGluc3RhbGwgdGhlIHBhY2thZ2UgdG8gJGluc3RhbGxfYmFzZVxuIjsKLSAgfQotCi0gIGlmICgkaW5zdGFsbF9kZXZlbCBlcSAiZW5hYmxlZCIpIHsKLSAgICBwcmludCAiSW5zdGFsbGluZyBkZXZlbG9wbWVudCBmaWxlcy4uLlxuIjsKLSAgICBzeXN0ZW0oIm5tYWtlIC9ub2xvZ28gaW5zdGFsbF9kZXZlbCA+IGluc3RhbGxfZGV2ZWwub3V0IDI+JjEiKSA9PSAwIHx8IGRpZSAiQnVpbGQgZXJyb3IgKHNlZSBpbnN0YWxsX2RldmVsLm91dCkiOwotICB9Ci0gIGVsc2UgewotICAgIHByaW50ICJUeXBlIG5tYWtlIGluc3RhbGxfZGV2ZWwgdG8gaW5zdGFsbCB0aGUgZGV2ZWxvcG1lbnQgZmlsZXMgdG8gJGluc3RhbGxfYmFzZVxuIjsKLSAgfQotCi0gIGlmICgkcGVybF9pbnN0YWxsIGVxICJkaXNhYmxlZCIgJiYgJHBlcmwgZXEgImVuYWJsZWQiKSB7Ci0gICAgcHJpbnQgIlR5cGUgbm1ha2UgcGVybF9pbnN0YWxsIHRvIGluc3RhbGwgdGhlIFBlcmwgbW9kdWxlc1xuIjsKLSAgfQoraWYgKCRwZXJsICYmICEkcGVybF9pbnN0YWxsKSB7CisgIHByaW50ICJUeXBlIG5tYWtlIHBlcmxfaW5zdGFsbCB0byBpbnN0YWxsIHRoZSBQZXJsIG1vZHVsZXNcbiI7CiB9CiAKIHByaW50ICJcbkRvbmUhXG4iOwogCisjIExvY2FsIFZhcmlhYmxlczoKKyMgbW9kZTogcGVybAorIyBwZXJsLWluZGVudC1sZXZlbDogMgorIyBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyMgRW5kOgpkaWZmIC0tZ2l0IGEvd2luMzIvY29uZmlnLmggYi93aW4zMi9jb25maWcuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTQxY2I5YS4uMDAwMDAwMAotLS0gYS93aW4zMi9jb25maWcuaAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotLyoKLSAqIEV2ZXJ5b25lIHNob3VsZCBiZSBpbmNsdWRpbmcgdGhlIG5ldyBzdHlsZSBjb25maWcgaGVhZGVyLgotICogRm9yIG5vdywgd2UnbGwgZG8gaXQgZm9yIHRoZW0gZm9yIGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5LgotICovCi0jaW5jbHVkZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+CmRpZmYgLS1naXQgYS93aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5iYXQgYi93aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5iYXQKaW5kZXggYmEyMzRiYS4uNjBlMTcyOCAxMDA3NTUKLS0tIGEvd2luMzIvZGlzdC9idWlsZC1iaW5hcnkuYmF0CisrKyBiL3dpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LmJhdApAQCAtMSw1ICsxLDMgQEAKIEBlY2hvIG9mZgogCi1jZCB3aW4zMiA+IE5VTDogMj4mMQotcGVybCBidWlsZC1iaW5hcnkucGwKLQorcGVybCAlfmRwMFxidWlsZC1iaW5hcnkucGwKZGlmZiAtLWdpdCBhL3dpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsIGIvd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGwKaW5kZXggZDEwMmRmYi4uYjA2NGNjOCAxMDA3NTUKLS0tIGEvd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGwKKysrIGIvd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGwKQEAgLTUsMjcgKzUsNDggQEAKICMgTWF5IDEwdGgsIDIwMDkKICMKIHVzZSBzdHJpY3Q7Cit1c2UgRmlsZTo6QmFzZW5hbWU7CiB1c2UgRmlsZTo6Q29weTsKK3VzZSBGaWxlOjpTcGVjOwogdXNlIEN3ZCAnYWJzX3BhdGgnOwogCiBwcmludCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iOwogCi1teSAkdGFyX2NvbW1hbmQgPSAnQzpcbXN5c1wxLjBcYmluXHRhci5leGUnOwotbXkgJGd6aXBfY29tbWFuZCA9ICdDOlxtc3lzXDEuMFxiaW5cZ3ppcC5leGUnOworbXkgJHRhcl9jb21tYW5kOworbXkgJGd6aXBfY29tbWFuZDsKK2ZvciBteSAkbXN5c2JpbmRpciAoKCJDOlxcbXN5c1xcMS4wXFxiaW4iLCAiQzpcXG1pbmd3XFxtc3lzXFwxLjBcXGJpbiIpKSB7CisgICAgJHRhcl9jb21tYW5kID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkbXN5c2JpbmRpciwgInRhci5leGUiKTsKKyAgICAkZ3ppcF9jb21tYW5kID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkbXN5c2JpbmRpciwgImd6aXAuZXhlIik7CisgICAgbGFzdCBpZiAoLWYgJHRhcl9jb21tYW5kKTsKK30KIAogaWYgKCEgKC1mICR0YXJfY29tbWFuZCkpIHsKLSAgZGllICgiQ291bGQgbm90IGZpbmQgdGFyIGNvbW1hbmQgKCR0YXJfY29tbWFuZCkiKTsKKyAgZGllICgiQ291bGQgbm90IGZpbmQgdGFyIGNvbW1hbmQiKTsKIH0KIGVsc2UgewogICBwcmludCAidGFyIGNvbW1hbmQ6ICAkdGFyX2NvbW1hbmRcbiI7CiB9CiBpZiAoISAoLWYgJGd6aXBfY29tbWFuZCkpIHsKLSAgZGllICgiQ291bGQgbm90IGZpbmQgZ3ppcCBjb21tYW5kICgkZ3ppcF9jb21tYW5kKSIpOworICBkaWUgKCJDb3VsZCBub3QgZmluZCBnemlwIGNvbW1hbmQiKTsKIH0KIGVsc2UgewogICBwcmludCAiZ3ppcCBjb21tYW5kOiAkZ3ppcF9jb21tYW5kXG4iOwogfQogCitteSAkbWFrZW5zaXM7Citmb3IgbXkgJG5zaXNkaXIgKCgiQzpcXFByb2dyYW0gRmlsZXNcXE5TSVMiLCAiQzpcXFByb2dyYW0gRmlsZXMgKHg4NilcXE5TSVMiKSkgeworICAgICRtYWtlbnNpcyA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoJG5zaXNkaXIsICJtYWtlbnNpcy5leGUiKTsKKyAgICBsYXN0IGlmICgtZiAkbWFrZW5zaXMpOworfQorZGllKCJtYWtlbnNpcy5leGUgbm90IGZvdW5kIikgaWYgKCEoLWYgJG1ha2Vuc2lzKSk7CisKK215ICR0YXJnZXRfYXJjaCA9ICRFTlZ7VEFSR0VUX0NQVX0gPyAkRU5We1RBUkdFVF9DUFV9IDogJEVOVntQbGF0Zm9ybX0gPworICAgICAgICAgICAgICAgICAgJEVOVntQbGF0Zm9ybX0gOiAieDg2IjsKK215ICRvcGVuc3NsZGlyID0gJHRhcmdldF9hcmNoIGVxICJ4NjQiID8gIkM6XFxPcGVuU1NMLVdpbjY0IiA6CisgICAgICAgICAgICAgICAgICJDOlxcT3BlblNTTC1XaW4zMiI7CitteSAkb3BlbnNzbGluY2RpciA9ICRvcGVuc3NsZGlyIC4gIlxcaW5jbHVkZSI7CitteSAkb3BlbnNzbGxpYmRpciA9ICRvcGVuc3NsZGlyIC4gIlxcbGliXFxWQyI7CisKIG15ICR2ZXJzaW9uID0gInVua25vd24iOwogbXkgJHZlcnNpb25fZm9yX3BlcmwgPSAidW5rbm93biI7CiBteSAkdmVyc2lvbl9tYWo7CkBAIC00OSwzMyArNzAsMTAgQEAKIG15ICRsaW5rdHlwZSA9ICJzdGF0aWMiOwogbXkgJG9wdGlvbjsKIAotIyBQcmVwZW5kIHdpbjMyXCBpZiBydW5uaW5nIGZyb20gbWFpbiBkaXJlY3RvcnkKLW15ICRjdXJyZW50X3B3ZCA9IGAlQ09NU1BFQyUgL2MgY2RgOwotY2hvbXAgJGN1cnJlbnRfcHdkOwotbXkgJHRvcF9kaXI7Ci1teSAkd2luMzJfZGlyOwotbXkgJHBlcmxfZGlyOwotCi1pZiAoJGN1cnJlbnRfcHdkID1+IC9cXHdpbjMyXFxkaXN0JC8pIHsKLSAgJHdpbjMyX2RpciA9ICIkY3VycmVudF9wd2QvLi4vIjsKLSAgJHRvcF9kaXIgPSAiJGN1cnJlbnRfcHdkLy4uLy4uLyI7Ci0gICRwZXJsX2RpciA9ICIkY3VycmVudF9wd2QvLi4vLi4vcGVybC8iOwotfQotZWxzaWYgKCRjdXJyZW50X3B3ZCA9fiAvXFx3aW4zMiQvKSB7Ci0gICR3aW4zMl9kaXIgPSAkY3VycmVudF9wd2Q7Ci0gICR0b3BfZGlyID0gIiRjdXJyZW50X3B3ZC8uLi8iOwotICAkcGVybF9kaXIgPSAiJGN1cnJlbnRfcHdkLy4uL3BlcmwvIjsKLX0KLWVsc2UgeyAgIyBBc3N1bWUgdG9wIGxldmVsIGZvbGRlcgotICAkd2luMzJfZGlyID0gIiRjdXJyZW50X3B3ZC93aW4zMi8iOwotICAkdG9wX2RpciA9ICRjdXJyZW50X3B3ZDsKLSAgJHBlcmxfZGlyID0gIiRjdXJyZW50X3B3ZC9wZXJsLyI7Ci19Ci0KLSR0b3BfZGlyID0gYWJzX3BhdGgoJHRvcF9kaXIpOwotJHdpbjMyX2RpciA9IGFic19wYXRoKCR3aW4zMl9kaXIpOwotJHBlcmxfZGlyID0gYWJzX3BhdGgoJHBlcmxfZGlyKTsKLQorbXkgJHNjcmlwdGRpciA9IGRpcm5hbWUoYWJzX3BhdGgoJDApKTsKK215ICR3aW4zMl9kaXIgPSBkaXJuYW1lKCRzY3JpcHRkaXIpOworbXkgJHRvcF9kaXIgPSBkaXJuYW1lKCR3aW4zMl9kaXIpOworbXkgJHBlcmxfZGlyID0gRmlsZTo6U3BlYy0+Y2F0ZGlyKCR0b3BfZGlyLCAicGVybCIpOwogCiBwcmludCAiXG50b3BfZGlyOiAgICAgICR0b3BfZGlyXG4iOwogcHJpbnQgIndpbjMyX2RpcjogICAgJHdpbjMyX2RpclxuIjsKQEAgLTkwLDkgKzg4LDcgQEAKICAgZXhpdDsKIH0KIAotaWYgKCAtZCAkRU5We01TVkNEaXJ9IHx8IC1kICRFTlZ7VkNJTlNUQUxMRElSfSkgewotfQotZWxzZSB7CitpZiAoISgtZCAkRU5We01TVkNEaXJ9KSAmJiAhKC1kICRFTlZ7VkNJTlNUQUxMRElSfSkgJiYgIWRlZmluZWQoJEVOVntUQVJHRVRfQ1BVfSkpIHsKICAgcHJpbnQgIlxuUGxlYXNlIHJ1biBWQ1ZBUlMzMi5CQVQgZmlyc3QgdG8gc2V0IHVwIHRoZSBWaXN1YWwgU3R1ZGlvIGJ1aWxkXG4iIC4KICAgICAgICAgImVudmlyb25tZW50LlxuXG4iOwogICBleGl0OwpAQCAtMTg5LDI3ICsxODUsNiBAQAogJGluc3RhbGwgPSAiZW5hYmxlZCI7CiAkaW5zdGFsbF9kZXZlbCA9ICJlbmFibGVkIjsKIAotcHJpbnQgIlxuXG5CdWlsZGluZyB3aXRoIG9wdGlvbnM6XG4iOwotcHJpbnQgIj09PT09PT09PT09PT09PT09PT09PT1cblxuIjsKLXByaW50ICIxLiAgT3BlblNTTCBzdXBwb3J0OiAgICAgICAgICAgICAgICAiIC4gJG9wZW5zc2wuICJcbiI7Ci1wcmludCAiMi4gIFBsYXRmb3JtIFNESyBzdXBwb3J0OiAgICAgICAgICAgIiAuICRzZGsgLiAiXG4iOwotcHJpbnQgIlxuIjsKLXByaW50ICIzLiAgSW5zdGFsbCBwYXRoOiAgICAgICAgICAgICAgICAgICAiIC4gJGluc3RhbGxfYmFzZSAuICJcbiI7Ci1wcmludCAiNC4gIEluc3RhbGwgYWZ0ZXIgYnVpbGQ6ICAgICAgICAgICAgIiAuICRpbnN0YWxsIC4gIlxuIjsKLXByaW50ICJcbiI7Ci1wcmludCAiNS4gIFBlcmwgbW9kdWxlczogICAgICAgICAgICAgICAgICAgIiAuICRwZXJsIC4gIlxuIjsKLXByaW50ICI2LiAgSW5zdGFsbCBwZXJsIG1vZHVsZXM6ICAgICAgICAgICAiIC4gJHBlcmxfaW5zdGFsbCAuICJcbiI7Ci1wcmludCAiXG4iOwotcHJpbnQgIjcuICBRdWlldCBidWlsZCAobG9nZ2VkKTogICAgICAgICAgICIgLiAkbG9nZ2luZyAuICJcbiI7Ci1wcmludCAiOC4gIERlYnVnIG1vZGU6ICAgICAgICAgICAgICAgICAgICAgIiAuICRkZWJ1ZyAuICJcbiI7Ci1wcmludCAiXG4iOwotcHJpbnQgIjkuICBJUHY2IHRyYW5zcG9ydHMgKHJlcXVpcmVzIFNESyk6ICIgLiAkYl9pcHY2IC4gIlxuIjsKLXByaW50ICIxMC4gd2luRXh0RExMIGFnZW50IChyZXF1aXJlcyBTREspOiAiIC4gJGJfd2luZXh0ZGxsIC4gIlxuIjsKLXByaW50ICJcbiI7Ci1wcmludCAiMTEuIExpbmsgdHlwZTogICAgICAgICAgICAgICAgICAgICAgIiAuICRsaW5rdHlwZSAuICJcbiI7Ci1wcmludCAiXG4iOwotcHJpbnQgIjEyLiBJbnN0YWxsIGRldmVsb3BtZW50IGZpbGVzICAgICAgICIgLiAkaW5zdGFsbF9kZXZlbCAuICJcbiI7Ci0KIGNoZGlyICR3aW4zMl9kaXI7CiAmYnVpbGQoKTsKICZjcmVhdGVfcGVybF9wYWNrYWdlKCk7CkBAIC0yMjgsMjcgKzIwMyw2IEBACiAkaW5zdGFsbCA9ICJkaXNhYmxlZCI7CiAkaW5zdGFsbF9kZXZlbCA9ICJkaXNhYmxlZCI7CiAKLXByaW50ICJcblxuQnVpbGRpbmcgd2l0aCBvcHRpb25zOlxuIjsKLXByaW50ICI9PT09PT09PT09PT09PT09PT09PT09XG5cbiI7Ci1wcmludCAiMS4gIE9wZW5TU0wgc3VwcG9ydDogICAgICAgICAgICAgICAgIiAuICRvcGVuc3NsLiAiXG4iOwotcHJpbnQgIjIuICBQbGF0Zm9ybSBTREsgc3VwcG9ydDogICAgICAgICAgICIgLiAkc2RrIC4gIlxuIjsKLXByaW50ICJcbiI7Ci1wcmludCAiMy4gIEluc3RhbGwgcGF0aDogICAgICAgICAgICAgICAgICAgIiAuICRpbnN0YWxsX2Jhc2UgLiAiXG4iOwotcHJpbnQgIjQuICBJbnN0YWxsIGFmdGVyIGJ1aWxkOiAgICAgICAgICAgICIgLiAkaW5zdGFsbCAuICJcbiI7Ci1wcmludCAiXG4iOwotcHJpbnQgIjUuICBQZXJsIG1vZHVsZXM6ICAgICAgICAgICAgICAgICAgICIgLiAkcGVybCAuICJcbiI7Ci1wcmludCAiNi4gIEluc3RhbGwgcGVybCBtb2R1bGVzOiAgICAgICAgICAgIiAuICRwZXJsX2luc3RhbGwgLiAiXG4iOwotcHJpbnQgIlxuIjsKLXByaW50ICI3LiAgUXVpZXQgYnVpbGQgKGxvZ2dlZCk6ICAgICAgICAgICAiIC4gJGxvZ2dpbmcgLiAiXG4iOwotcHJpbnQgIjguICBEZWJ1ZyBtb2RlOiAgICAgICAgICAgICAgICAgICAgICIgLiAkZGVidWcgLiAiXG4iOwotcHJpbnQgIlxuIjsKLXByaW50ICI5LiAgSVB2NiB0cmFuc3BvcnRzIChyZXF1aXJlcyBTREspOiAiIC4gJGJfaXB2NiAuICJcbiI7Ci1wcmludCAiMTAuIHdpbkV4dERMTCBhZ2VudCAocmVxdWlyZXMgU0RLKTogIiAuICRiX3dpbmV4dGRsbCAuICJcbiI7Ci1wcmludCAiXG4iOwotcHJpbnQgIjExLiBMaW5rIHR5cGU6ICAgICAgICAgICAgICAgICAgICAgICIgLiAkbGlua3R5cGUgLiAiXG4iOwotcHJpbnQgIlxuIjsKLXByaW50ICIxMi4gSW5zdGFsbCBkZXZlbG9wbWVudCBmaWxlcyAgICAgICAiIC4gJGluc3RhbGxfZGV2ZWwgLiAiXG4iOwotCiBjaGRpciAkd2luMzJfZGlyOwogJmJ1aWxkKCk7CiAKQEAgLTI4MCwyNyArMjM0LDYgQEAKICRpbnN0YWxsID0gImVuYWJsZWQiOwogJGluc3RhbGxfZGV2ZWwgPSAiZW5hYmxlZCI7CiAKLXByaW50ICJcblxuQnVpbGRpbmcgd2l0aCBvcHRpb25zOlxuIjsKLXByaW50ICI9PT09PT09PT09PT09PT09PT09PT09XG5cbiI7Ci1wcmludCAiMS4gIE9wZW5TU0wgc3VwcG9ydDogICAgICAgICAgICAgICAgIiAuICRvcGVuc3NsLiAiXG4iOwotcHJpbnQgIjIuICBQbGF0Zm9ybSBTREsgc3VwcG9ydDogICAgICAgICAgICIgLiAkc2RrIC4gIlxuIjsKLXByaW50ICJcbiI7Ci1wcmludCAiMy4gIEluc3RhbGwgcGF0aDogICAgICAgICAgICAgICAgICAgIiAuICRpbnN0YWxsX2Jhc2UgLiAiXG4iOwotcHJpbnQgIjQuICBJbnN0YWxsIGFmdGVyIGJ1aWxkOiAgICAgICAgICAgICIgLiAkaW5zdGFsbCAuICJcbiI7Ci1wcmludCAiXG4iOwotcHJpbnQgIjUuICBQZXJsIG1vZHVsZXM6ICAgICAgICAgICAgICAgICAgICIgLiAkcGVybCAuICJcbiI7Ci1wcmludCAiNi4gIEluc3RhbGwgcGVybCBtb2R1bGVzOiAgICAgICAgICAgIiAuICRwZXJsX2luc3RhbGwgLiAiXG4iOwotcHJpbnQgIlxuIjsKLXByaW50ICI3LiAgUXVpZXQgYnVpbGQgKGxvZ2dlZCk6ICAgICAgICAgICAiIC4gJGxvZ2dpbmcgLiAiXG4iOwotcHJpbnQgIjguICBEZWJ1ZyBtb2RlOiAgICAgICAgICAgICAgICAgICAgICIgLiAkZGVidWcgLiAiXG4iOwotcHJpbnQgIlxuIjsKLXByaW50ICI5LiAgSVB2NiB0cmFuc3BvcnRzIChyZXF1aXJlcyBTREspOiAiIC4gJGJfaXB2NiAuICJcbiI7Ci1wcmludCAiMTAuIHdpbkV4dERMTCBhZ2VudCAocmVxdWlyZXMgU0RLKTogIiAuICRiX3dpbmV4dGRsbCAuICJcbiI7Ci1wcmludCAiXG4iOwotcHJpbnQgIjExLiBMaW5rIHR5cGU6ICAgICAgICAgICAgICAgICAgICAgICIgLiAkbGlua3R5cGUgLiAiXG4iOwotcHJpbnQgIlxuIjsKLXByaW50ICIxMi4gSW5zdGFsbCBkZXZlbG9wbWVudCBmaWxlcyAgICAgICAiIC4gJGluc3RhbGxfZGV2ZWwgLiAiXG4iOwotCiBjaGRpciAkd2luMzJfZGlyOwogJmJ1aWxkKCk7CiAmY3JlYXRlX3BlcmxfcGFja2FnZSgpOwpAQCAtMzE5LDI3ICsyNTIsNiBAQAogJGluc3RhbGwgPSAiZGlzYWJsZWQiOwogJGluc3RhbGxfZGV2ZWwgPSAiZGlzYWJsZWQiOwogCi1wcmludCAiXG5cbkJ1aWxkaW5nIHdpdGggb3B0aW9uczpcbiI7Ci1wcmludCAiPT09PT09PT09PT09PT09PT09PT09PVxuXG4iOwotcHJpbnQgIjEuICBPcGVuU1NMIHN1cHBvcnQ6ICAgICAgICAgICAgICAgICIgLiAkb3BlbnNzbC4gIlxuIjsKLXByaW50ICIyLiAgUGxhdGZvcm0gU0RLIHN1cHBvcnQ6ICAgICAgICAgICAiIC4gJHNkayAuICJcbiI7Ci1wcmludCAiXG4iOwotcHJpbnQgIjMuICBJbnN0YWxsIHBhdGg6ICAgICAgICAgICAgICAgICAgICIgLiAkaW5zdGFsbF9iYXNlIC4gIlxuIjsKLXByaW50ICI0LiAgSW5zdGFsbCBhZnRlciBidWlsZDogICAgICAgICAgICAiIC4gJGluc3RhbGwgLiAiXG4iOwotcHJpbnQgIlxuIjsKLXByaW50ICI1LiAgUGVybCBtb2R1bGVzOiAgICAgICAgICAgICAgICAgICAiIC4gJHBlcmwgLiAiXG4iOwotcHJpbnQgIjYuICBJbnN0YWxsIHBlcmwgbW9kdWxlczogICAgICAgICAgICIgLiAkcGVybF9pbnN0YWxsIC4gIlxuIjsKLXByaW50ICJcbiI7Ci1wcmludCAiNy4gIFF1aWV0IGJ1aWxkIChsb2dnZWQpOiAgICAgICAgICAgIiAuICRsb2dnaW5nIC4gIlxuIjsKLXByaW50ICI4LiAgRGVidWcgbW9kZTogICAgICAgICAgICAgICAgICAgICAiIC4gJGRlYnVnIC4gIlxuIjsKLXByaW50ICJcbiI7Ci1wcmludCAiOS4gIElQdjYgdHJhbnNwb3J0cyAocmVxdWlyZXMgU0RLKTogIiAuICRiX2lwdjYgLiAiXG4iOwotcHJpbnQgIjEwLiB3aW5FeHRETEwgYWdlbnQgKHJlcXVpcmVzIFNESyk6ICIgLiAkYl93aW5leHRkbGwgLiAiXG4iOwotcHJpbnQgIlxuIjsKLXByaW50ICIxMS4gTGluayB0eXBlOiAgICAgICAgICAgICAgICAgICAgICAiIC4gJGxpbmt0eXBlIC4gIlxuIjsKLXByaW50ICJcbiI7Ci1wcmludCAiMTIuIEluc3RhbGwgZGV2ZWxvcG1lbnQgZmlsZXMgICAgICAgIiAuICRpbnN0YWxsX2RldmVsIC4gIlxuIjsKLQogY2hkaXIgJHdpbjMyX2RpcjsKICZidWlsZCgpOwogCkBAIC0zNzYsNyArMjg4LDcgQEAKIAogY2hkaXIgJHRvcF9kaXI7CiBjb3B5KCd3aW4zMlxkaXN0XGluc3RhbGxlclxTZXRFblZhci5uc2knLCIkaW5zdGFsbF9iYXNlLyIpIHx8IGRpZSAoIkNvdWxkIG5vdCBjb3B5IGZpbGU6ICQ/Iik7Ci1jb3B5KCd3aW4zMlxkaXN0XGluc3RhbGxlclxuZXQtc25tcC5uc2knLCIkaW5zdGFsbF9iYXNlL25ldC1zbm1wLm5zaS5pbiIpIHx8IGRpZSAoIkNvdWxkIG5vdCBjb3B5IGZpbGU6ICQ/Iik7Citjb3B5KCd3aW4zMlxkaXN0XGluc3RhbGxlclxuZXQtc25tcC5uc2knLCIkaW5zdGFsbF9iYXNlL25ldC1zbm1wLm5zaSIpIHx8IGRpZSAoIkNvdWxkIG5vdCBjb3B5IGZpbGU6ICQ/Iik7CiBjb3B5KCd3aW4zMlxkaXN0XGluc3RhbGxlclxBZGQyUGF0aC5uc2knLCIkaW5zdGFsbF9iYXNlLyIpIHx8IGRpZSAoIkNvdWxkIG5vdCBjb3B5IGZpbGU6ICQ/Iik7CiBjb3B5KCd3aW4zMlxkaXN0XGluc3RhbGxlclxuZXQtc25tcC1oZWFkZXIxLmJtcCcsIiRpbnN0YWxsX2Jhc2UvIikgfHwgZGllICgiQ291bGQgbm90IGNvcHkgZmlsZTogJD8iKTsKIApAQCAtMzkxLDQyICszMDMsMjAgQEAKIG9wZW4gKFRFTVAsICI+JGluc3RhbGxfYmFzZS9ldGMvc25tcC9zbm1wLmNvbmYiKSB8fCBkaWUgKCJDb3VsZCBub3QgY3JlYXRlIGZpbGU6ICQ/Iik7CiBjbG9zZSBURU1QOwogCi0jCi0jIEJ1aWxkIG5ldC1zbm1wLm5zaSBmaWxlCi0jCi0gIHsKLSAgICBteSAkZmlsZV9vdXQgPSAiJGluc3RhbGxfYmFzZS9uZXQtc25tcC5uc2kiOwotICAgIG15ICRmaWxlX2luID0gIiRpbnN0YWxsX2Jhc2UvbmV0LXNubXAubnNpLmluIjsKLSAgCi0gICAgb3BlbiAoRklMRV9PVVQsICI+JGZpbGVfb3V0IikgfHwgZGllICJDYW4ndCBPcGVuICRmaWxlX291dFxuIjsKLSAgICBvcGVuIChGSUxFX0lOLCAiPCRmaWxlX2luIikgfHwgZGllICJDYW4ndCBPcGVuICRmaWxlX2luXG4iOwotICAgIAotICAgIHByaW50ICJjcmVhdGluZyAkZmlsZV9vdXRcbiI7Ci0JICAKLSAgICB3aGlsZSAoPEZJTEVfSU4+KQotICAgIHsKLSAgICAgIGNob21wOwotICAgICAgcy8hZGVmaW5lIFBST0RVQ1RfTUFKX1ZFUlNJT04uKi8hZGVmaW5lIFBST0RVQ1RfTUFKX1ZFUlNJT04gXCIkdmVyc2lvbl9tYWpcIi87Ci0gICAgICBzLyFkZWZpbmUgUFJPRFVDVF9NSU5fVkVSU0lPTi4qLyFkZWZpbmUgUFJPRFVDVF9NSU5fVkVSU0lPTiBcIiR2ZXJzaW9uX21pblwiLzsKLSAgICAgIHMvIWRlZmluZSBQUk9EVUNUX1JFVklTSU9OLiovIWRlZmluZSBQUk9EVUNUX1JFVklTSU9OIFwiJHZlcnNpb25fcmV2XCIvOwotICAgICAgcy8hZGVmaW5lIFBST0RVQ1RfRVhFX1ZFUlNJT04uKi8hZGVmaW5lIFBST0RVQ1RfRVhFX1ZFUlNJT04gXCIkaW5zdGFsbGVyX2V4ZV92ZXJzaW9uXCIvOwotCSAgaWYgKCRFTlZ7TElCfSA9fiAvXFx4NjQvKSB7Ci0gICAgICAgICAgICBzLyFkZWZpbmUgSU5TVEFMTEVSX1BMQVRGT1JNLiovIWRlZmluZSBJTlNUQUxMRVJfUExBVEZPUk0gXCJ4NjRcIi87Ci0gICAgICAgICAgICBzLyFkZWZpbmUgUFJPRFVDVF9FWEVfU1VGRklYLiovIWRlZmluZSBQUk9EVUNUX0VYRV9TVUZGSVggXCIueDY0LmV4ZVwiLzsKLSAgICAgICAgICAgIHMvIWRlZmluZSBXSU4zMl9QTEFURk9STS4qLyFkZWZpbmUgUFJPRFVDVF9FWEVfU1VGRklYIFwieDY0XCIvOwotCSAgfQotCSAgZWxzZSB7Ci0gICAgICAgICAgICBzLyFkZWZpbmUgSU5TVEFMTEVSX1BMQVRGT1JNLiovIWRlZmluZSBJTlNUQUxMRVJfUExBVEZPUk0gXCJ4ODZcIi87Ci0gICAgICAgICAgICBzLyFkZWZpbmUgUFJPRFVDVF9FWEVfU1VGRklYLiovIWRlZmluZSBQUk9EVUNUX0VYRV9TVUZGSVggXCIueDg2LmV4ZSIvOwotICAgICAgICAgICAgcy8hZGVmaW5lIFBST0RVQ1RfRVhFX1NVRkZJWC4qLyFkZWZpbmUgUFJPRFVDVF9FWEVfU1VGRklYIFwiLng4Ni5leGUiLzsKLSAgICAgICAgICAgIHMvIWRlZmluZSBXSU4zMl9QTEFURk9STS4qLyFkZWZpbmUgUFJPRFVDVF9FWEVfU1VGRklYIFwieDg2XCIvOwotCSAgfQotICAKLSAgICAgIHByaW50IEZJTEVfT1VUICRfIC4gIlxuIjsKLSAgICB9Ci0gICAgY2xvc2UgRklMRV9JTjsKLSAgICBjbG9zZSBGSUxFX09VVDsKLSAgfQorcHJpbnQgIlxuXG5Db3B5aW5nIGRvY3VtZW50YXRpb246XG4iOworcHJpbnQgIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiI7CisKKyMgVG8gZG86IHJlcGxhY2UgdGhlIHR3byBsaW5lcyBiZWxvdyB3aXRoIGNvbW1hbmRzIHRoYXQgYnVpbGQgdGhlIC5jaG0gZmlsZS4KK29wZW4gb3V0LCAiPiRpbnN0YWxsX2Jhc2UvZG9jcy9uZXQtc25tcC5jaG0iOworY2xvc2Ugb3V0OworCitwcmludCAiXG5cbkJ1aWxkaW5nIGluc3RhbGxlcjpcbiI7CitwcmludCAiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuIjsKKworbXkgJHN1ZmZpeCA9ICRFTlZ7TElCfSA9fiAvXFx4NjR8XFxhbWQ2NC8gPyAieDY0IiA6ICJ4ODYiOworaWYgKHN5c3RlbSgiXCIkbWFrZW5zaXNcIiAvRFBST0RVQ1RfTUFKX1ZFUlNJT049XCIkdmVyc2lvbl9tYWpcIiAvRFBST0RVQ1RfTUlOX1ZFUlNJT049XCIkdmVyc2lvbl9taW5cIiAvRFBST0RVQ1RfUkVWSVNJT049XCIkdmVyc2lvbl9yZXZcIiAvRFBST0RVQ1RfRVhFX1ZFUlNJT049XCIkaW5zdGFsbGVyX2V4ZV92ZXJzaW9uXCIgL0RJTlNUQUxMRVJfUExBVEZPUk09XCIkc3VmZml4XCIgXCIkaW5zdGFsbF9iYXNlL25ldC1zbm1wLm5zaVwiIikgIT0gMCkgeworICAgIGRpZSgiQnVpbGRpbmcgaW5zdGFsbGVyIGZhaWxlZCIpOworfQogCiBwcmludCAiXG49PT09PT09XG4iOwogcHJpbnQgIkRvbmUhISFcbiI7CkBAIC00NTcsNiArMzQ3LDI2IEBACiAKICMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIHN1YiBidWlsZCB7CisgIHByaW50ICJcblxuQnVpbGRpbmcgd2l0aCBvcHRpb25zOlxuIjsKKyAgcHJpbnQgIj09PT09PT09PT09PT09PT09PT09PT1cblxuIjsKKyAgcHJpbnQgIjEuICBPcGVuU1NMIHN1cHBvcnQ6ICAgICAgICAgICAgICAgICIgLiAkb3BlbnNzbC4gIlxuIjsKKyAgcHJpbnQgIjIuICBQbGF0Zm9ybSBTREsgc3VwcG9ydDogICAgICAgICAgICIgLiAkc2RrIC4gIlxuIjsKKyAgcHJpbnQgIlxuIjsKKyAgcHJpbnQgIjMuICBJbnN0YWxsIHBhdGg6ICAgICAgICAgICAgICAgICAgICIgLiAkaW5zdGFsbF9iYXNlIC4gIlxuIjsKKyAgcHJpbnQgIjQuICBJbnN0YWxsIGFmdGVyIGJ1aWxkOiAgICAgICAgICAgICIgLiAkaW5zdGFsbCAuICJcbiI7CisgIHByaW50ICJcbiI7CisgIHByaW50ICI1LiAgUGVybCBtb2R1bGVzOiAgICAgICAgICAgICAgICAgICAiIC4gJHBlcmwgLiAiXG4iOworICBwcmludCAiNi4gIEluc3RhbGwgcGVybCBtb2R1bGVzOiAgICAgICAgICAgIiAuICRwZXJsX2luc3RhbGwgLiAiXG4iOworICBwcmludCAiXG4iOworICBwcmludCAiNy4gIFF1aWV0IGJ1aWxkIChsb2dnZWQpOiAgICAgICAgICAgIiAuICRsb2dnaW5nIC4gIlxuIjsKKyAgcHJpbnQgIjguICBEZWJ1ZyBtb2RlOiAgICAgICAgICAgICAgICAgICAgICIgLiAkZGVidWcgLiAiXG4iOworICBwcmludCAiXG4iOworICBwcmludCAiOS4gIElQdjYgdHJhbnNwb3J0cyAocmVxdWlyZXMgU0RLKTogIiAuICRiX2lwdjYgLiAiXG4iOworICBwcmludCAiMTAuIHdpbkV4dERMTCBhZ2VudCAocmVxdWlyZXMgU0RLKTogIiAuICRiX3dpbmV4dGRsbCAuICJcbiI7CisgIHByaW50ICJcbiI7CisgIHByaW50ICIxMS4gTGluayB0eXBlOiAgICAgICAgICAgICAgICAgICAgICAiIC4gJGxpbmt0eXBlIC4gIlxuIjsKKyAgcHJpbnQgIlxuIjsKKyAgcHJpbnQgIjEyLiBJbnN0YWxsIGRldmVsb3BtZW50IGZpbGVzICAgICAgICIgLiAkaW5zdGFsbF9kZXZlbCAuICJcbiI7CiAKICAgJGNUbXAgPSAoJG9wZW5zc2wgZXEgImVuYWJsZWQiID8gIi0td2l0aC1zc2wiIDogIiIgKTsKICAgJGNvbmZpZ09wdHMgPSAiJGNUbXAiOwpAQCAtNDczLDEyICszODMsMTUgQEAKICAgCiAgICMgU2V0IHRvIG5vdCBzZWFyY2ggZm9yIG5vbi1leGlzdGVudCAiLmRlcCIgZmlsZXMKICAgJEVOVntOT19FWFRFUk5BTF9ERVBTfT0iMSI7Ci0gIAorCisgICRFTlZ7SU5DTFVERX0gLj0gIjskb3BlbnNzbGluY2RpciI7CisgICRFTlZ7TElCfSAgICAgLj0gIjskb3BlbnNzbGxpYmRpciI7CisKICAgIyBTZXQgUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZSBzbyBQZXJsIG1ha2UgdGVzdHMgY2FuIGxvY2F0ZSB0aGUgRExMCi0gICRFTlZ7UEFUSH0gPSAiJGN1cnJlbnRfcHdkXFxiaW5cXCIgLiAoJGRlYnVnIGVxICJlbmFibGVkIiA/ICJkZWJ1ZyIgOiAicmVsZWFzZSIgKSAuICI7JEVOVntQQVRIfSI7CisgICRFTlZ7UEFUSH0gPSBGaWxlOjpTcGVjLT5jYXRkaXIoJHRvcF9kaXIsICJiaW4iLCAkZGVidWcgZXEgImVuYWJsZWQiID8gImRlYnVnIiA6ICJyZWxlYXNlIikgLiAiOyRFTlZ7UEFUSH0iOwogICAKICAgIyBTZXQgTUlCRElSUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBzbyBQZXJsIG1ha2UgdGVzdHMgY2FuIGxvY2F0ZSB0aGUgbWlicwotICBteSAkdGVtcF9taWJkaXIgPSAiJGN1cnJlbnRfcHdkLy4uL21pYnMiOworICBteSAkdGVtcF9taWJkaXIgPSBGaWxlOjpTcGVjLT5jYXRkaXIoJHRvcF9kaXIsICJtaWJzIik7CiAgICR0ZW1wX21pYmRpciA9fiBzL1xcL1wvL2c7CiAgICRFTlZ7TUlCRElSU309JHRlbXBfbWliZGlyOwogICAKZGlmZiAtLWdpdCBhL3dpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaSBiL3dpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaQppbmRleCA1ZTZmYzc1Li4yNDAzZDc3IDEwMDY0NAotLS0gYS93aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2kKKysrIGIvd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpCkBAIC0zLDE3ICszLDE0IEBACiAKICFpbmNsdWRlIHg2NC5uc2gKICFpbmNsdWRlICJTZWN0aW9ucy5uc2giCi0KLTsgQnVpbGRpbmcgYSB4ODYgb3IgeDY0IGJpbmFyeQotIWRlZmluZSBJTlNUQUxMRVJfUExBVEZPUk0gIng2NCIJCQorIWluY2x1ZGUgRmlsZUZ1bmMubnNoCishaW5zZXJ0bWFjcm8gR2V0UGFyYW1ldGVycworIWluc2VydG1hY3JvIEdldE9wdGlvbnMKK3ZhciBjbWRMaW5lUGFyYW1ldGVycwogCiA7IEhNIE5JUyBFZGl0IFdpemFyZCBoZWxwZXIgZGVmaW5lcwogIWRlZmluZSBQUk9EVUNUX05BTUUgIk5ldC1TTk1QIgotIWRlZmluZSBQUk9EVUNUX01BSl9WRVJTSU9OICI1IgotIWRlZmluZSBQUk9EVUNUX01JTl9WRVJTSU9OICI1IgotIWRlZmluZSBQUk9EVUNUX1JFVklTSU9OICJwcmUyIgotIWRlZmluZSBQUk9EVUNUX0VYRV9WRVJTSU9OICIxIgotIWRlZmluZSBQUk9EVUNUX0VYRV9TVUZGSVggIi54NjQuZXhlIgorIWRlZmluZSBQUk9EVUNUX0VYRV9TVUZGSVggIi4ke0lOU1RBTExFUl9QTEFURk9STX0uZXhlIgogIWRlZmluZSBQUk9EVUNUX1dFQl9TSVRFICJodHRwOi8vd3d3Lm5ldC1zbm1wLm9yZyIKICFkZWZpbmUgUFJPRFVDVF9ESVJfUkVHS0VZICJTb2Z0d2FyZVxOZXQtU05NUCIKICFkZWZpbmUgUFJPRFVDVF9VTklOU1RfS0VZICJTb2Z0d2FyZVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxVbmluc3RhbGxcJHtQUk9EVUNUX05BTUV9IgpAQCAtNzUsNyArNzIsNyBAQAogOyBNVUkgZW5kIC0tLS0tLQogCiBOYW1lICIke1BST0RVQ1RfTkFNRX0gJHtQUk9EVUNUX01BSl9WRVJTSU9OfS4ke1BST0RVQ1RfTUlOX1ZFUlNJT059LiR7UFJPRFVDVF9SRVZJU0lPTn0iCi1PdXRGaWxlICIuLlxcbmV0LXNubXAtJHtQUk9EVUNUX01BSl9WRVJTSU9OfS5cCitPdXRGaWxlICJuZXQtc25tcC0ke1BST0RVQ1RfTUFKX1ZFUlNJT059LlwKICAgICAgICAgICAgICAgICAgICR7UFJPRFVDVF9NSU5fVkVSU0lPTn0uXAogICAgICAgICAgICAgICAgICAgJHtQUk9EVUNUX1JFVklTSU9OfVwKICAgICAgICAgICAgICAgICAgIC0ke1BST0RVQ1RfRVhFX1ZFUlNJT059XApAQCAtMTAxLDExICs5OCw2IEBACiAgIEZpbGUgIlJFQURNRS50eHQiCiAgIFNldE91dFBhdGggIiRJTlNURElSXGJpbiIKIAotICBGaWxlICJiaW5cbXN2Y205MC5kbGwiCi0gIEZpbGUgImJpblxtc3ZjcDkwLmRsbCIKLSAgRmlsZSAiYmluXG1zdmNyOTAuZGxsIgotICBGaWxlICJiaW5cTWljcm9zb2Z0LlZDOTAuQ1JULm1hbmlmZXN0IgotCiAgIEZpbGUgImJpblxuZXRzbm1wLmRsbCIKICAgRmlsZSAiYmluXGVuY29kZV9rZXljaGFuZ2UuZXhlIgogICBGaWxlICJiaW5cc25tcHZhY20uZXhlIgpAQCAtMTMyLDExICsxMjQsNiBAQAogICBGaWxlICJSRUFETUUudHh0IgogICBTZXRPdXRQYXRoICIkSU5TVERJUlxiaW4iCiAKLSAgRmlsZSAiYmluXG1zdmNtOTAuZGxsIgotICBGaWxlICJiaW5cbXN2Y3A5MC5kbGwiCi0gIEZpbGUgImJpblxtc3ZjcjkwLmRsbCIKLSAgRmlsZSAiYmluXE1pY3Jvc29mdC5WQzkwLkNSVC5tYW5pZmVzdCIKLQogICBGaWxlICJiaW4uc3NsXG5ldHNubXAuZGxsIgogICBGaWxlICJiaW4uc3NsXGVuY29kZV9rZXljaGFuZ2UuZXhlIgogICBGaWxlICJiaW4uc3NsXHNubXB2YWNtLmV4ZSIKQEAgLTIwOCwxMSArMTk1LDYgQEAKICAgICA7IERlbGV0ZSBhZ2VudCBvdGhlcndpc2UgcmUtaW5zdGFsbGluZyBhIGRpZmZlcmVudCBhZ2VudCBtYXkgbm90IHdvcmsgYmVjYXVzZSBvZiBkYXRlIHN0YW1wcwogICAgIERlbGV0ZSAiJElOU1RESVJcYmluXHNubXBkLmV4ZSIgIAogCi0gICAgRmlsZSAiYmluXG1zdmNtOTAuZGxsIgotICAgIEZpbGUgImJpblxtc3ZjcDkwLmRsbCIKLSAgICBGaWxlICJiaW5cbXN2Y3I5MC5kbGwiCi0gICAgRmlsZSAiYmluXE1pY3Jvc29mdC5WQzkwLkNSVC5tYW5pZmVzdCIKLQogICAgIFN0ckNtcCAkb3BlblNTTCAiZmFsc2UiIFNFQzAyX25vT3BlblNTTCBTRUMwMl9PcGVuU1NMCiAgICAgU0VDMDJfbm9PcGVuU1NMOgogICAgICAgRmlsZSAiYmluXHNubXBkLmV4ZSIKQEAgLTIzMyw2ICsyMTUsOCBAQAogICAgIEZpbGUgInVucmVnaXN0ZXJhZ2VudC5iYXQiCiAgICAgQ2FsbCBDcmVhdGVBZ2VudEJhdHMKIAorCUNsZWFyRXJyb3JzCisJU3RyQ21wICRJQ09OU19HUk9VUCAiIiBTRUMwMl9Ob1NlcnZpY2UKICAgICBDcmVhdGVEaXJlY3RvcnkgIiRTTVBST0dSQU1TXCRJQ09OU19HUk9VUFxTZXJ2aWNlIgogICAgIENyZWF0ZVNob3J0Q3V0ICIkU01QUk9HUkFNU1wkSUNPTlNfR1JPVVBcU2VydmljZVxSZWdpc3RlciBBZ2VudCBTZXJ2aWNlLmxuayIgIiRJTlNURElSXHJlZ2lzdGVyYWdlbnQuYmF0IgogICAgIENyZWF0ZVNob3J0Q3V0ICIkU01QUk9HUkFNU1wkSUNPTlNfR1JPVVBcU2VydmljZVxVbnJlZ2lzdGVyIEFnZW50IFNlcnZpY2UubG5rIiAiJElOU1RESVJcdW5yZWdpc3RlcmFnZW50LmJhdCIKQEAgLTI0OCwxMSArMjMyLDYgQEAKICAgICA7IERlbGV0ZSBhZ2VudCBvdGhlcndpc2UgcmUtaW5zdGFsbGluZyBhIGRpZmZlcmVudCBhZ2VudCBtYXkgbm90IHdvcmsgYmVjYXVzZSBvZiBkYXRlIHN0YW1wcwogICAgIERlbGV0ZSAiJElOU1RESVJcYmluXHNubXBkLmV4ZSIgIAogCi0gICAgRmlsZSAiYmluXG1zdmNtOTAuZGxsIgotICAgIEZpbGUgImJpblxtc3ZjcDkwLmRsbCIKLSAgICBGaWxlICJiaW5cbXN2Y3I5MC5kbGwiCi0gICAgRmlsZSAiYmluXE1pY3Jvc29mdC5WQzkwLkNSVC5tYW5pZmVzdCIKLQogICAgIFN0ckNtcCAkb3BlblNTTCAiZmFsc2UiIFNFQzAzX25vT3BlblNTTCBTRUMwM19PcGVuU1NMCiAgICAgU0VDMDNfbm9PcGVuU1NMOgogICAgICAgRmlsZSAvb25hbWU9c25tcGQuZXhlICJiaW5cc25tcGQtd2luRXh0RExMLmV4ZSIKQEAgLTI3Myw2ICsyNTIsOCBAQAogICAgIEZpbGUgInVucmVnaXN0ZXJhZ2VudC5iYXQiCiAgICAgQ2FsbCBDcmVhdGVBZ2VudEJhdHMKIAorCUNsZWFyRXJyb3JzCisJU3RyQ21wICRJQ09OU19HUk9VUCAiIiBTRUMwM19Ob1NlcnZpY2UKICAgICBDcmVhdGVEaXJlY3RvcnkgIiRTTVBST0dSQU1TXCRJQ09OU19HUk9VUFxTZXJ2aWNlIgogICAgIENyZWF0ZVNob3J0Q3V0ICIkU01QUk9HUkFNU1wkSUNPTlNfR1JPVVBcU2VydmljZVxSZWdpc3RlciBBZ2VudCBTZXJ2aWNlLmxuayIgIiRJTlNURElSXHJlZ2lzdGVyYWdlbnQuYmF0IgogICAgIENyZWF0ZVNob3J0Q3V0ICIkU01QUk9HUkFNU1wkSUNPTlNfR1JPVVBcU2VydmljZVxVbnJlZ2lzdGVyIEFnZW50IFNlcnZpY2UubG5rIiAiJElOU1RESVJcdW5yZWdpc3RlcmFnZW50LmJhdCIKQEAgLTI4OSwxMSArMjcwLDYgQEAKIAogICBTdHJDbXAgJG9wZW5TU0wgImZhbHNlIiBTRUMwNF9ub09wZW5TU0wgU0VDMDRfT3BlblNTTAogCi0gIEZpbGUgImJpblxtc3ZjbTkwLmRsbCIKLSAgRmlsZSAiYmluXG1zdmNwOTAuZGxsIgotICBGaWxlICJiaW5cbXN2Y3I5MC5kbGwiCi0gIEZpbGUgImJpblxNaWNyb3NvZnQuVkM5MC5DUlQubWFuaWZlc3QiCi0KICAgU0VDMDRfbm9PcGVuU1NMOgogICBGaWxlICJiaW5cc25tcHRyYXBkLmV4ZSIKICAgZ290byBTRUMwNF9jb250aW51ZQpAQCAtMzE3LDYgKzI5Myw4IEBACiAgIEZpbGUgInVucmVnaXN0ZXJ0cmFwZC5iYXQiCiAgIENhbGwgQ3JlYXRlVHJhcGRCYXRzCiAgIAorICBDbGVhckVycm9ycworICBTdHJDbXAgJElDT05TX0dST1VQICIiIE5vVHJhcFNlcnZpY2UKICAgQ3JlYXRlU2hvcnRDdXQgIiRTTVBST0dSQU1TXCRJQ09OU19HUk9VUFxTZXJ2aWNlXFJlZ2lzdGVyIFRyYXAgU2VydmljZS5sbmsiICIkSU5TVERJUlxyZWdpc3RlcnRyYXBkLmJhdCIKICAgQ3JlYXRlU2hvcnRDdXQgIiRTTVBST0dSQU1TXCRJQ09OU19HUk9VUFxTZXJ2aWNlXFVucmVnaXN0ZXIgVHJhcCBTZXJ2aWNlLmxuayIgIiRJTlNURElSXHVucmVnaXN0ZXJ0cmFwZC5iYXQiCiAgIApAQCAtMzc4LDEwICszNTYsMTQgQEAKIFNlY3Rpb25FbmQKIAogU2VjdGlvbiAtQWRkaXRpb25hbEljb25zCisgIENsZWFyRXJyb3JzCisgIFN0ckNtcCAkSUNPTlNfR1JPVVAgIiIgbm9BZGRpdGlvbmFsSXRlbXMKICAgQ3JlYXRlRGlyZWN0b3J5ICIkU01QUk9HUkFNU1wkSUNPTlNfR1JPVVAiCiAgIENyZWF0ZVNob3J0Q3V0ICIkU01QUk9HUkFNU1wkSUNPTlNfR1JPVVBcVW5pbnN0YWxsLmxuayIgIiRJTlNURElSXHVuaW5zdC5leGUiCiAgIENyZWF0ZVNob3J0Q3V0ICIkU01QUk9HUkFNU1wkSUNPTlNfR1JPVVBcTmV0LVNOTVAgSGVscC5sbmsiICIkSU5TVERJUlxkb2NzXE5ldC1TTk1QLmNobSIKICAgQ3JlYXRlU2hvcnRDdXQgIiRTTVBST0dSQU1TXCRJQ09OU19HUk9VUFxSRUFETUUubG5rIiAiJElOU1RESVJcUkVBRE1FLnR4dCIKKyAgCisgIG5vQWRkaXRpb25hbEl0ZW1zOgogU2VjdGlvbkVuZAogCiBTZWN0aW9uIC1Qb3N0CkBAIC02ODksNiArNjcxLDE2IEBACiBTZXRSZWdWaWV3IDY0CQk7IFByZXZlbnQgdGhlIGluc3RhbGxlciBmcm9tIHVzaW5nIHRoZSBXb3c2NDMyTm9kZSBIS0xNIHN1YmtleSBvbiA2NC1iaXQgc3lzdGVtcwogUHVzaCAkMAogUHVzaCAkUjAKK1B1c2ggJFIxCisKKzsgQ2hlY2sgZm9yIC8/IGNvbW1hbmQgbGluZSB1c2FnZSBvcHRpb24KKyR7R2V0UGFyYW1ldGVyc30gJFIxCitTdHJDcHkgJGNtZExpbmVQYXJhbWV0ZXJzICRSMQorQ2xlYXJFcnJvcnMKKyR7R2V0T3B0aW9uc30gJGNtZExpbmVQYXJhbWV0ZXJzICcvPycgJFIwCitJZkVycm9ycyArMyAwCitNZXNzYWdlQm94IE1CX09LICJPcHRpb25zOiRcbiAgXFN0YXJ0TWVudT17R3JvdXBOYW1lfSRcbiAgXEFnZW50PXN0YW5kYXJkfGV4dERMTHxub25lICAgKGRlZmF1bHQgc3RhbmRhcmQpJFxuICBcbm9UcmFwZCRcdChkZWZhdWx0IFxUcmFwZCkkXG4gIFxub1BlcmwkXHQkXHQoZGVmYXVsdCBcUGVybCkkXG4gIFxEZXYkXHQkXHQoZGVmYXVsdCBcbm9EZXYpJFxuICBcT3BlblNTTCRcdChkZWZhdWx0IFxub09wZW5TU0wpIgorQWJvcnQKIAogOyBNYWtlIHN1cmUgd2UncmUgcnVubmluZyBXaW5kb3dzIDIwMDAgKDUuMCkgb3IgaGlnaGVyCiBDbGVhckVycm9ycwpAQCAtNzQ2LDEwICs3MzgsMTIxIEBACiA7IFN0b3JlIGN1cnJlbnQgc3RhdHVzIG9mIFNFQzA3IChTU0wpLiAgVXNlZCBmb3IgY2hlY2tpbmcgaWYgT3BlblNTTCBpcyBpbnN0YWxsZWQuCiBTZWN0aW9uR2V0RmxhZ3MgJHtTRUMwN30gJFI5CiAKKzsgcHJvY2VzcyBvdGhlciBjb21tYW5kIGxpbmUgcGFyYW1ldGVycworQ2FsbCBwYXJzZVBhcmFtZXRlcnMKKwogUG9wICRSMAogUG9wICQwCiBGdW5jdGlvbkVuZAogCitGdW5jdGlvbiBwYXJzZVBhcmFtZXRlcnMKKyAgUHVzaCAkUjAKKyAgUHVzaCAkMAorCisgIDsgL1N0YXJ0TWVudT0KKyAgQ2xlYXJFcnJvcnMKKyAgJHtHZXRPcHRpb25zfSAkY21kTGluZVBhcmFtZXRlcnMgIi9TdGFydE1lbnU9IiAgJFIwCisgIElmRXJyb3JzICsyIDAKKyAgU3RyQ3B5ICRJQ09OU19HUk9VUCAkUjAKKworICA7IC97bm8sfVRyYXBkICAKKyAgQ2xlYXJFcnJvcnMKKyAgJHtHZXRPcHRpb25zfSAkY21kTGluZVBhcmFtZXRlcnMgIi9UcmFwZCIgICRSMAorICBJZkVycm9ycyArNCAwCisgIFNlY3Rpb25HZXRGbGFncyAke1NFQzA0fSAkMAorICBJbnRPcCAkMCAkMCB8ICR7U0ZfU0VMRUNURUR9CisgIFNlY3Rpb25TZXRGbGFncyAke1NFQzA0fSAkMAorICBDbGVhckVycm9ycworICAke0dldE9wdGlvbnN9ICRjbWRMaW5lUGFyYW1ldGVycyAiL25vVHJhcGQiICAkUjAKKyAgSWZFcnJvcnMgKzQgMAorICBTZWN0aW9uR2V0RmxhZ3MgJHtTRUMwNH0gJDAKKyAgSW50T3AgJDAgJDAgJiAke1NFQ1RJT05fT0ZGfQorICBTZWN0aW9uU2V0RmxhZ3MgJHtTRUMwNH0gJDAKKworICA7IC97bm8sfVBlcmwgIAorICBDbGVhckVycm9ycworICAke0dldE9wdGlvbnN9ICRjbWRMaW5lUGFyYW1ldGVycyAiL1BlcmwiICAkUjAKKyAgSWZFcnJvcnMgKzQgMAorICBTZWN0aW9uR2V0RmxhZ3MgJHtTRUMwNX0gJDAKKyAgSW50T3AgJDAgJDAgfCAke1NGX1NFTEVDVEVEfQorICBTZWN0aW9uU2V0RmxhZ3MgJHtTRUMwNX0gJDAKKyAgQ2xlYXJFcnJvcnMKKyAgJHtHZXRPcHRpb25zfSAkY21kTGluZVBhcmFtZXRlcnMgIi9ub1BlcmwiICAkUjAKKyAgSWZFcnJvcnMgKzQgMAorICBTZWN0aW9uR2V0RmxhZ3MgJHtTRUMwNX0gJDAKKyAgSW50T3AgJDAgJDAgJiAke1NFQ1RJT05fT0ZGfQorICBTZWN0aW9uU2V0RmxhZ3MgJHtTRUMwNX0gJDAKKworICA7IC97bm8sfURldiAgCisgIENsZWFyRXJyb3JzCisgICR7R2V0T3B0aW9uc30gJGNtZExpbmVQYXJhbWV0ZXJzICIvRGV2IiAgJFIwCisgIElmRXJyb3JzICs0IDAKKyAgU2VjdGlvbkdldEZsYWdzICR7U0VDMDZ9ICQwCisgIEludE9wICQwICQwIHwgJHtTRl9TRUxFQ1RFRH0KKyAgU2VjdGlvblNldEZsYWdzICR7U0VDMDZ9ICQwCisgIENsZWFyRXJyb3JzCisgICR7R2V0T3B0aW9uc30gJGNtZExpbmVQYXJhbWV0ZXJzICIvbm9EZXYiICAkUjAKKyAgSWZFcnJvcnMgKzQgMAorICBTZWN0aW9uR2V0RmxhZ3MgJHtTRUMwNn0gJDAKKyAgSW50T3AgJDAgJDAgJiAke1NFQ1RJT05fT0ZGfQorICBTZWN0aW9uU2V0RmxhZ3MgJHtTRUMwNn0gJDAKKworICA7IC97bm8sfU9wZW5TU0wgIAorICBDbGVhckVycm9ycworICAke0dldE9wdGlvbnN9ICRjbWRMaW5lUGFyYW1ldGVycyAiL09wZW5TU0wiICAkUjAKKyAgSWZFcnJvcnMgKzQgMAorICBTZWN0aW9uR2V0RmxhZ3MgJHtTRUMwN30gJDAKKyAgSW50T3AgJDAgJDAgfCAke1NGX1NFTEVDVEVEfQorICBTZWN0aW9uU2V0RmxhZ3MgJHtTRUMwN30gJDAKKyAgQ2xlYXJFcnJvcnMKKyAgJHtHZXRPcHRpb25zfSAkY21kTGluZVBhcmFtZXRlcnMgIi9ub09wZW5TU0wiICAkUjAKKyAgSWZFcnJvcnMgKzQgMAorICBTZWN0aW9uR2V0RmxhZ3MgJHtTRUMwN30gJDAKKyAgSW50T3AgJDAgJDAgJiAke1NFQ1RJT05fT0ZGfQorICBTZWN0aW9uU2V0RmxhZ3MgJHtTRUMwN30gJDAKKworICA7IC9BZ2VudD0gIAorICBDbGVhckVycm9ycworICAke0dldE9wdGlvbnN9ICRjbWRMaW5lUGFyYW1ldGVycyAiL0FnZW50PSIgICRSMAorICBJZkVycm9ycyBlbmRPZkFnZW50IDAKKyAgOyAvQWdlbnQ9bm9uZQorICBDbGVhckVycm9ycworICBTdHJDbXAgJFIwICJub25lIiAwIHN0YW5kYXJkQWdlbnQKKyAgU2VjdGlvbkdldEZsYWdzICR7U0VDMDJ9ICQwCisgIEludE9wICQwICQwICYgJHtTRUNUSU9OX09GRn0KKyAgU2VjdGlvblNldEZsYWdzICR7U0VDMDJ9ICQwCisgIFNlY3Rpb25HZXRGbGFncyAke1NFQzAzfSAkMAorICBJbnRPcCAkMCAkMCAmICR7U0VDVElPTl9PRkZ9CisgIFNlY3Rpb25TZXRGbGFncyAke1NFQzAzfSAkMAorICBHb3RvIGVuZE9mQWdlbnQKKyAgCisgIHN0YW5kYXJkQWdlbnQ6CisgIDsgL0FnZW50PXN0YW5kYXJkCisgIENsZWFyRXJyb3JzCisgIFN0ckNtcCAkUjAgInN0YW5kYXJkIiAwIHdpbkV4dERMTEFnZW50CisgIFNlY3Rpb25HZXRGbGFncyAke1NFQzAyfSAkMAorICBJbnRPcCAkMCAkMCB8ICR7U0ZfU0VMRUNURUR9CisgIFNlY3Rpb25TZXRGbGFncyAke1NFQzAyfSAkMAorICBTZWN0aW9uR2V0RmxhZ3MgJHtTRUMwM30gJDAKKyAgSW50T3AgJDAgJDAgJiAke1NFQ1RJT05fT0ZGfQorICBTZWN0aW9uU2V0RmxhZ3MgJHtTRUMwM30gJDAKKyAgR290byBlbmRPZkFnZW50CisgIAorICB3aW5FeHRETExBZ2VudDoKKyAgOyAvQWdlbnQ9ZXh0RExMCisgIENsZWFyRXJyb3JzCisgIFN0ckNtcCAkUjAgImV4dERMTCIgMCBlbmRPZkFnZW50CisgIFNlY3Rpb25HZXRGbGFncyAke1NFQzAyfSAkMAorICBJbnRPcCAkMCAkMCAmICR7U0VDVElPTl9PRkZ9CisgIFNlY3Rpb25TZXRGbGFncyAke1NFQzAyfSAkMAorICBTZWN0aW9uR2V0RmxhZ3MgJHtTRUMwM30gJDAKKyAgSW50T3AgJDAgJDAgfCAke1NGX1NFTEVDVEVEfQorICBTZWN0aW9uU2V0RmxhZ3MgJHtTRUMwM30gJDAKKyAgZW5kT2ZBZ2VudDoKKyAgCisgIFBvcCAkUjAgIAorRnVuY3Rpb25FbmQKKwogRnVuY3Rpb24gLm9uU2VsQ2hhbmdlCiAKIDsgICFpbnNlcnRtYWNybyBTdGFydFJhZGlvQnV0dG9ucyAkMgpAQCAtODM5LDExICs5NDIsOCBAQAogICBEZWxldGUgIiRJTlNURElSXGRvY3NcQ09QWUlORyIKICAgRGVsZXRlICIkSU5TVERJUlxkb2NzXE5ldC1TTk1QLmNobSIKICAgRGVsZXRlICIkSU5TVERJUlxiaW5cbmV0LXNubXAtcGVybC10ZXN0LnBsIgotCi0gIERlbGV0ZSAiJElOU1RESVJcYmluXG1zdmNtOTAuZGxsIgotICBEZWxldGUgIiRJTlNURElSXGJpblxtc3ZjcDkwLmRsbCIKLSAgRGVsZXRlICIkSU5TVERJUlxiaW5cbXN2Y3I5MC5kbGwiCi0gIERlbGV0ZSAiJElOU1RESVJcYmluXE1pY3Jvc29mdC5WQzkwLkNSVC5tYW5pZmVzdCIKKyAgOyBpZGVhbGx5IHdlIHNob3VsZCBjaGVjayB3aGV0aGVyIHRoaXMgZmlsZSBoYXMgY2hhbmdlZAorICBEZWxldGUgIiRJTlNURElSXGV0Y1xzbm1wXHNubXAuY29uZiIKIAogICBEZWxldGUgIiRJTlNURElSXGJpblxzbm1wdHJhcGQuZXhlIgogICBEZWxldGUgIiRJTlNURElSXGJpblxzbm1wZC5leGUiCkBAIC04OTMsNiArOTkzLDcgQEAKICAgRGVsZXRlICIkSU5TVERJUlxzaGFyZVxzbm1wXHNubXBjb25mLWRhdGFcc25tcHRyYXBkLWRhdGFcbG9nZ2luZyIKICAgRGVsZXRlICIkSU5TVERJUlxzaGFyZVxzbm1wXHNubXBjb25mLWRhdGFcc25tcHRyYXBkLWRhdGFccnVudGltZSIKICAgRGVsZXRlICIkSU5TVERJUlxzaGFyZVxzbm1wXG1pYnNcQUdFTlRYLU1JQi50eHQiCisgIERlbGV0ZSAiJElOU1RESVJcc2hhcmVcc25tcFxtaWJzXEJSSURHRS1NSUIudHh0IgogICBEZWxldGUgIiRJTlNURElSXHNoYXJlXHNubXBcbWlic1xESVNNQU4tRVZFTlQtTUlCLnR4dCIKICAgRGVsZXRlICIkSU5TVERJUlxzaGFyZVxzbm1wXG1pYnNcRElTTUFOLUVYUFJFU1NJT04tTUlCLnR4dCIKICAgRGVsZXRlICIkSU5TVERJUlxzaGFyZVxzbm1wXG1pYnNcRElTTUFOLU5TTE9PS1VQLU1JQi50eHQiCkBAIC05MjcsNiArMTAyOCw3IEBACiAgIERlbGV0ZSAiJElOU1RESVJcc2hhcmVcc25tcFxtaWJzXE5FVC1TTk1QLU1JQi50eHQiCiAgIERlbGV0ZSAiJElOU1RESVJcc2hhcmVcc25tcFxtaWJzXE5FVC1TTk1QLU1PTklUT1ItTUlCLnR4dCIKICAgRGVsZXRlICIkSU5TVERJUlxzaGFyZVxzbm1wXG1pYnNcTkVULVNOTVAtUEFTUy1NSUIudHh0IgorICBEZWxldGUgIiRJTlNURElSXHNoYXJlXHNubXBcbWlic1xORVQtU05NUC1QRVJJT0RJQy1OT1RJRlktTUlCLnR4dCIKICAgRGVsZXRlICIkSU5TVERJUlxzaGFyZVxzbm1wXG1pYnNcTkVULVNOTVAtU1lTVEVNLU1JQi50eHQiCiAgIERlbGV0ZSAiJElOU1RESVJcc2hhcmVcc25tcFxtaWJzXE5FVC1TTk1QLVRDLnR4dCIKICAgRGVsZXRlICIkSU5TVERJUlxzaGFyZVxzbm1wXG1pYnNcTkVULVNOTVAtVkFDTS1NSUIudHh0IgpAQCAtOTQ0LDYgKzEwNDYsOCBAQAogICBEZWxldGUgIiRJTlNURElSXHNoYXJlXHNubXBcbWlic1xTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0IgogICBEZWxldGUgIiRJTlNURElSXHNoYXJlXHNubXBcbWlic1xTTk1QLVBST1hZLU1JQi50eHQiCiAgIERlbGV0ZSAiJElOU1RESVJcc2hhcmVcc25tcFxtaWJzXFNOTVAtVEFSR0VULU1JQi50eHQiCisgIERlbGV0ZSAiJElOU1RESVJcc2hhcmVcc25tcFxtaWJzXFNOTVAtVExTLVRNLU1JQi50eHQiCisgIERlbGV0ZSAiJElOU1RESVJcc2hhcmVcc25tcFxtaWJzXFNOTVAtVFNNLU1JQi50eHQiCiAgIERlbGV0ZSAiJElOU1RESVJcc2hhcmVcc25tcFxtaWJzXFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0IgogICBEZWxldGUgIiRJTlNURElSXHNoYXJlXHNubXBcbWlic1xTTk1QLVVTTS1BRVMtTUlCLnR4dCIKICAgRGVsZXRlICIkSU5TVERJUlxzaGFyZVxzbm1wXG1pYnNcU05NUC1VU00tREgtT0JKRUNUUy1NSUIudHh0IgpAQCAtOTY1LDggKzEwNjksOCBAQAogICBEZWxldGUgIiRJTlNURElSXHNoYXJlXHNubXBcbWlic1xVQ0QtU05NUC1NSUItT0xELnR4dCIKICAgRGVsZXRlICIkSU5TVERJUlxzaGFyZVxzbm1wXG1pYnNcVURQLU1JQi50eHQiCiAgIERlbGV0ZSAiJElOU1RESVJcc2hhcmVcc25tcFxtaWJzXC5pbmRleCIKKyAgRGVsZXRlICIkSU5TVERJUlxzbm1wXHBlcnNpc3RcbWliX2luZGV4ZXNcMCIKIAotICBTZXRPdXRQYXRoICIkSU5TVERJUlxzaGFyZVxzbm1wIgogICBEZWxldGUgIiRJTlNURElSXHNoYXJlXHNubXBcbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mIgogICBEZWxldGUgIiRJTlNURElSXHNoYXJlXHNubXBcbWliMmMuYXJyYXktdXNlci5jb25mIgogICBEZWxldGUgIiRJTlNURElSXHNoYXJlXHNubXBcbWliMmMuY2hlY2tfdmFsdWVzLmNvbmYiCkBAIC05OTEsNyArMTA5NSw2IEBACiAgIERlbGV0ZSAiJElOU1RESVJcc2hhcmVcc25tcFxtaWIyYy5zY2FsYXIuY29uZiIKICAgRGVsZXRlICIkSU5TVERJUlxzaGFyZVxzbm1wXG1pYjJjLnRhYmxlX2RhdGEuY29uZiIKIAotICBTZXRPdXRQYXRoICIkSU5TVERJUlxzaGFyZVxzbm1wXG1pYjJjLWRhdGEiCiAgIERlbGV0ZSAiJElOU1RESVJcc2hhcmVcc25tcFxtaWIyYy1kYXRhXGRlZmF1bHQtbWZkLXRvcC5tMmMiCiAgIERlbGV0ZSAiJElOU1RESVJcc2hhcmVcc25tcFxtaWIyYy1kYXRhXGRldGFpbHMtZW51bXMubTJpIgogICBEZWxldGUgIiRJTlNURElSXHNoYXJlXHNubXBcbWliMmMtZGF0YVxkZXRhaWxzLW5vZGUubTJpIgpAQCAtMTAzNCw3ICsxMTM3LDcgQEAKICAgRGVsZXRlICIkSU5TVERJUlxzaGFyZVxzbm1wXG1pYjJjLWRhdGFcbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYyIKICAgRGVsZXRlICIkSU5TVERJUlxzaGFyZVxzbm1wXG1pYjJjLWRhdGFcbWZkLWludGVyZmFjZS5tMmMiCiAgIERlbGV0ZSAiJElOU1RESVJcc2hhcmVcc25tcFxtaWIyYy1kYXRhXG1mZC1tYWtlZmlsZS5tMm0iCi0gIERlbGV0ZSAiJElOU1RESVJcc2hhcmVcc25tcFxtaWIyYy1kYXRhXG1mZC1wZXJzaXN0ZW5jZS5tMm0iCisgIERlbGV0ZSAiJElOU1RESVJcc2hhcmVcc25tcFxtaWIyYy1kYXRhXG1mZC1wZXJzaXN0ZW5jZS5tMmkiCiAgIERlbGV0ZSAiJElOU1RESVJcc2hhcmVcc25tcFxtaWIyYy1kYXRhXG1mZC1yZWFkbWUubTJjIgogICBEZWxldGUgIiRJTlNURElSXHNoYXJlXHNubXBcbWliMmMtZGF0YVxtZmQtdG9wLm0yYyIKICAgRGVsZXRlICIkSU5TVERJUlxzaGFyZVxzbm1wXG1pYjJjLWRhdGFcbm9kZS1nZXQubTJpIgpAQCAtMTA1OCw3ICsxMTYxLDYgQEAKICAgRGVsZXRlICIkSU5TVERJUlxzaGFyZVxzbm1wXG1pYjJjLWRhdGFcc3ludGF4LVJvd1N0YXR1cy12YXJiaW5kLXZhbGlkYXRlLm0yaSIKICAgRGVsZXRlICIkSU5TVERJUlxzaGFyZVxzbm1wXG1pYjJjLWRhdGFcc3ludGF4LVN0b3JhZ2VUeXBlLWRlcGVuZGVuY2llcy5tMmkiCiAgIERlbGV0ZSAiJElOU1RESVJcc2hhcmVcc25tcFxtaWIyYy1kYXRhXHN5bnRheC1UZXN0QW5kSW5jci1nZXQubTJpIgotICBEZWxldGUgIiRJTlNURElSXHNoYXJlXHNubXBcbWliMmMtZGF0YVwiCiAKICAgRGVsZXRlICIkU01QUk9HUkFNU1wkSUNPTlNfR1JPVVBcTmV0LVNOTVAgSGVscC5sbmsiCiAgIERlbGV0ZSAiJFNNUFJPR1JBTVNcJElDT05TX0dST1VQXFVuaW5zdGFsbC5sbmsiCkBAIC0xMjcwLDggKzEzNzIsNiBAQAogICBEZWxldGUgIiRJTlNURElSXGxpYlxuZXRzbm1wbWlicy5saWIiCiAgIERlbGV0ZSAiJElOU1RESVJcbGliXG5ldHNubXAuZXhwIgogICAKLSAgUk1EaXIgIiRTTVBST0dSQU1TXCRJQ09OU19HUk9VUFxTZXJ2aWNlIgotICBSTURpciAiJFNNUFJPR1JBTVNcJElDT05TX0dST1VQIgogICBSTURpciAiJElOU1RESVJccGVybFx4ODYiCiAgIFJNRGlyICIkSU5TVERJUlxwZXJsIgogICBSTURpciAiJElOU1RESVJcbGliIgpAQCAtMTI5NSw2ICsxMzk1LDcgQEAKICAgUk1EaXIgIiRJTlNURElSXHNoYXJlIgogCiAgIFJNRGlyICIkSU5TVERJUlx0ZW1wIgorICBSTURpciAiJElOU1RESVJcc25tcFxwZXJzaXN0XG1pYl9pbmRleGVzIgogICBSTURpciAiJElOU1RESVJcc25tcFxwZXJzaXN0IgogICBSTURpciAiJElOU1RESVJcc25tcCIKICAgUk1EaXIgIiRJTlNURElSXGV0Y1xzbm1wIgpAQCAtMTMwNCw2ICsxNDA1LDMxIEBACiAgIFJNRGlyICIkSU5TVERJUlxpbmNsdWRlIgogICBSTURpciAiJElOU1RESVJcbG9nIgogICBSTURpciAiJElOU1RESVIiCisgIAorICA7IFN0YXJ0IE1lbnUgZW50cmllcyBtYXkgaGF2ZSBiZWVuIGluc3RhbGxlZCBmb3IgdGhlIGN1cnJlbnQgdXNlciBvbmx5LAorICA7IG9yIGZvciBBbGwgVXNlcnMuICBTbyBsZXQncyBkZWxldGUgYm90aCBzZXRzLi4uLgorICBTZXRTaGVsbFZhckNvbnRleHQgY3VycmVudAorICBEZWxldGUgIiRTTVBST0dSQU1TXCRJQ09OU19HUk9VUFxVbmluc3RhbGwubG5rIgorICBEZWxldGUgIiRTTVBST0dSQU1TXCRJQ09OU19HUk9VUFxOZXQtU05NUCBIZWxwLmxuayIKKyAgRGVsZXRlICIkU01QUk9HUkFNU1wkSUNPTlNfR1JPVVBcUkVBRE1FLmxuayIKKyAgRGVsZXRlICIkU01QUk9HUkFNU1wkSUNPTlNfR1JPVVBcU2VydmljZVxSZWdpc3RlciBBZ2VudCBTZXJ2aWNlLmxuayIKKyAgRGVsZXRlICIkU01QUk9HUkFNU1wkSUNPTlNfR1JPVVBcU2VydmljZVxVbnJlZ2lzdGVyIEFnZW50IFNlcnZpY2UubG5rIgorICBEZWxldGUgIiRTTVBST0dSQU1TXCRJQ09OU19HUk9VUFxTZXJ2aWNlXFJlZ2lzdGVyIFRyYXAgU2VydmljZS5sbmsiCisgIERlbGV0ZSAiJFNNUFJPR1JBTVNcJElDT05TX0dST1VQXFNlcnZpY2VcVW5yZWdpc3RlciBUcmFwIFNlcnZpY2UubG5rIgorICBSTURpciAiJFNNUFJPR1JBTVNcJElDT05TX0dST1VQXFNlcnZpY2UiCisgIFJNRGlyICIkU01QUk9HUkFNU1wkSUNPTlNfR1JPVVAiCisKKyAgU2V0U2hlbGxWYXJDb250ZXh0IGFsbAorICBEZWxldGUgIiRTTVBST0dSQU1TXCRJQ09OU19HUk9VUFxVbmluc3RhbGwubG5rIgorICBEZWxldGUgIiRTTVBST0dSQU1TXCRJQ09OU19HUk9VUFxOZXQtU05NUCBIZWxwLmxuayIKKyAgRGVsZXRlICIkU01QUk9HUkFNU1wkSUNPTlNfR1JPVVBcUkVBRE1FLmxuayIKKyAgRGVsZXRlICIkU01QUk9HUkFNU1wkSUNPTlNfR1JPVVBcU2VydmljZVxSZWdpc3RlciBBZ2VudCBTZXJ2aWNlLmxuayIKKyAgRGVsZXRlICIkU01QUk9HUkFNU1wkSUNPTlNfR1JPVVBcU2VydmljZVxVbnJlZ2lzdGVyIEFnZW50IFNlcnZpY2UubG5rIgorICBEZWxldGUgIiRTTVBST0dSQU1TXCRJQ09OU19HUk9VUFxTZXJ2aWNlXFJlZ2lzdGVyIFRyYXAgU2VydmljZS5sbmsiCisgIERlbGV0ZSAiJFNNUFJPR1JBTVNcJElDT05TX0dST1VQXFNlcnZpY2VcVW5yZWdpc3RlciBUcmFwIFNlcnZpY2UubG5rIgorICBSTURpciAiJFNNUFJPR1JBTVNcJElDT05TX0dST1VQXFNlcnZpY2UiCisgIFJNRGlyICIkU01QUk9HUkFNU1wkSUNPTlNfR1JPVVAiCisgIAogICA7IERlbGV0ZSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzCiAgIDtQdXNoICJTTk1QQ09ORlBBVEgiCiAgIDtDYWxsIHVuLkRlbGV0ZUVudlN0cgpAQCAtMTMyMSwxMyArMTQ0NywyMyBAQAogCiBGdW5jdGlvbiBJc1NTTEluc3RhbGxlZAogICBQdXNoICRSMAotICBSZWFkRW52U3RyICRSMCAiT1BFTlNTTF9DT05GIgotICBJZkZpbGVFeGlzdHMgIiRSMCIgMCBub1NTTAotICAgIEdvdG8gY29udGludWVJbnN0YWxsCisgIFB1c2ggJFIxCisKKyAgR2V0RExMVmVyc2lvbiBsaWJlYXkzMi5kbGwgJFIwICRSMQorICBJZkVycm9ycyBub1NTTAorCisgIDsgQ29udGludWUgaW5zdGFsbGluZyBpZiB0aGUgRExMIHZlcnNpb24gaXMgPj0gMS4wLjAuMAorICBJbnRDbXBVIDY1NTM2ICRSMCBjb250aW51ZUluc3RhbGwgY29udGludWVJbnN0YWxsCisKKyAgTWVzc2FnZUJveCBNQl9PSyAiVGhpcyBwYWNrYWdlIGlzIGtub3duIG5vdCB0byB3b3JrIHdpdGggT3BlblNTTCB2ZXJzaW9ucyBiZWZvcmUgMS4wLjAuICBQbGVhc2UgaW5zdGFsbCB0aGUgbGF0ZXN0IE9wZW5TU0wgdmVyc2lvbiBmcm9tIGh0dHA6Ly93d3cuc2xwcm93ZWIuY29tL3Byb2R1Y3RzL1dpbjMyT3BlblNTTC5odG1sIGFuZCB0cnkgYWdhaW4uIgorICBRdWl0CisKICAgbm9TU0w6CiAgICAgTWVzc2FnZUJveCBNQl9ZRVNOT3xNQl9JQ09OUVVFU1RJT04gIk9wZW5TU0wgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGluc3RhbGxlZC4gIE9wZW5TU0wgaXMgcmVxdWlyZWQgZm9yIHRoaXMgaW5zdGFsbGF0aW9uIG9mIE5ldC1TTk1QLiAgUGxlYXNlIGluc3RhbGwgT3BlblNTTCBmcm9tIGh0dHA6Ly93d3cuc2xwcm93ZWIuY29tL3Byb2R1Y3RzL1dpbjMyT3BlblNTTC5odG1sIGFuZCB0cnkgYWdhaW4uICBXb3VsZCB5b3UgbGlrZSB0byBjb250aW51ZSBpbnN0YWxsaW5nIGFueXdheXM/IiBJRFlFUyBjb250aW51ZUluc3RhbGwKICAgUXVpdAorICAKICAgY29udGludWVJbnN0YWxsOgorICBQb3AgJFIxCiAgIFBvcCAkUjAKIEZ1bmN0aW9uRW5kCiAKZGlmZiAtLWdpdCBhL3dpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AgYi93aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwCmluZGV4IDVlMTkzNjYuLjVhMjUyZjUgMTAwNjQ0Ci0tLSBhL3dpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AKKysrIGIvd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcApAQCAtNTAsNyArNTAsNyBAQAogIyBBREQgQlNDMzIgL25vbG9nbw0KIExJTkszMj1saW5rLmV4ZQ0KICMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGFkdmFwaTMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvbWFjaGluZTpJMzg2DQotIyBBREQgTElOSzMyIG5ldHNubXAubGliIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9wZGI6bm9uZSAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9yZWxlYXNlL2VuY29kZV9rZXljaGFuZ2UuZXhlIiAvbGlicGF0aDoiLi4vbGliL3JlbGVhc2UiDQorIyBBREQgTElOSzMyIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9wZGI6bm9uZSAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9yZWxlYXNlL2VuY29kZV9rZXljaGFuZ2UuZXhlIiAvbGlicGF0aDoiLi4vbGliL3JlbGVhc2UiDQogDQogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImVuY29kZV9rZXljaGFuZ2UgLSBXaW4zMiBEZWJ1ZyINCiANCkBAIC03NCw3ICs3NCw3IEBACiAjIEFERCBCU0MzMiAvbm9sb2dvDQogTElOSzMyPWxpbmsuZXhlDQogIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9wZGJ0eXBlOnNlcHQNCi0jIEFERCBMSU5LMzIgbmV0c25tcC5saWIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9kZWJ1Zy9lbmNvZGVfa2V5Y2hhbmdlLmV4ZSIgL3BkYnR5cGU6c2VwdCAvbGlicGF0aDoiLi4vbGliL2RlYnVnIg0KKyMgQUREIExJTkszMiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvaW5jcmVtZW50YWw6bm8gL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL2RlYnVnL2VuY29kZV9rZXljaGFuZ2UuZXhlIiAvcGRidHlwZTpzZXB0IC9saWJwYXRoOiIuLi9saWIvZGVidWciDQogDQogIUVORElGIA0KIA0KZGlmZiAtLWdpdCBhL3dpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluIGIvd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4KaW5kZXggMzBhNmNmNi4uYWJjZDgyZSAxMDA2NDQKLS0tIGEvd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4KKysrIGIvd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4KQEAgLTM1LDYgKzM1LDcgQEAKIAkiJChJTlRESVIpXHNjYWxhcl9ncm91cC5vYmoiIFwKIAkiJChJTlRESVIpXHNlcmlhbGl6ZS5vYmoiIFwKIAkiJChJTlRESVIpXHNubXBfYWdlbnQub2JqIiBcCisJIiQoSU5URElSKVxzbm1wX2dldF9zdGF0aXN0aWMub2JqIiBcCiAJIiQoSU5URElSKVxzbm1wX3ZhcnMub2JqIiBcCiAJIiQoSU5URElSKVxzdGFzaF9jYWNoZS5vYmoiIFwKIAkiJChJTlRESVIpXHN0YXNoX3RvX25leHQub2JqIiBcCkBAIC0yMzYsNiArMjM3LDEyIEBACiAJJChDUFApICQoQ1BQX1BST0opICQoU09VUkNFKQogCiAKK1NPVVJDRT0uLlwuLlxhZ2VudFxoZWxwZXJzXHNubXBfZ2V0X3N0YXRpc3RpYy5jCisKKyIkKElOVERJUilcc25tcF9nZXRfc3RhdGlzdGljLm9iaiIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIKKwkkKENQUCkgJChDUFBfUFJPSikgJChTT1VSQ0UpCisKKwogU09VUkNFPS4uXC4uXGFnZW50XGhlbHBlcnNcc3Rhc2hfY2FjaGUuYwogCiAiJChJTlRESVIpXHN0YXNoX2NhY2hlLm9iaiIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIKZGlmZiAtLWdpdCBhL3dpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCBiL3dpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcAppbmRleCA4OTJlOGQzLi42MzY0MmMyIDEwMDY0NAotLS0gYS93aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AKKysrIGIvd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwCkBAIC0xNzcsNiArMTc3LDEwIEBACiAjIEVuZCBTb3VyY2UgRmlsZQ0KICMgQmVnaW4gU291cmNlIEZpbGUNCiANCitTT1VSQ0U9Li5cLi5cYWdlbnRcaGVscGVyc1xzbm1wX2dldF9zdGF0aXN0aWMuYw0KKyMgRW5kIFNvdXJjZSBGaWxlDQorIyBCZWdpbiBTb3VyY2UgRmlsZQ0KKw0KIFNPVVJDRT0uLlwuLlxhZ2VudFxoZWxwZXJzXHN0YXNoX2NhY2hlLmMNCiAjIEVuZCBTb3VyY2UgRmlsZQ0KICMgQmVnaW4gU291cmNlIEZpbGUNCmRpZmYgLS1naXQgYS93aW4zMi9saWJzbm1wL01ha2VmaWxlLmluIGIvd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbgppbmRleCA1MWY1ZDRmLi45OGQ4M2M4IDEwMDY0NAotLS0gYS93aW4zMi9saWJzbm1wL01ha2VmaWxlLmluCisrKyBiL3dpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4KQEAgLTE3LDcgKzE3LDYgQEAKIAkiJChJTlRESVIpXGNhbGxiYWNrLm9iaiIgXAogCSIkKElOVERJUilcY2hlY2tfdmFyYmluZC5vYmoiIFwKIAkiJChJTlRESVIpXGNsb3NlZGlyLm9iaiIgXAotCSIkKElOVERJUilcY211X2NvbXBhdC5vYmoiIFwKIAkiJChJTlRESVIpXGNvbnRhaW5lci5vYmoiIFwKIAkiJChJTlRESVIpXGNvbnRhaW5lcl9iaW5hcnlfYXJyYXkub2JqIiBcCiAJIiQoSU5URElSKVxjb250YWluZXJfaXRlcmF0b3Iub2JqIiBcCkBAIC05NSw5ICs5NCw5IEBACiAKIENQUD1jbC5leGUKICFJRiAgIiQoQ0ZHKSIgPT0gInJlbGVhc2UiCi1DUFBfUFJPSj0vbm9sb2dvIC9NRCAvVzMgL0VIc2MgL1ppIC9PMiAvSSAiLiIgL0kgIi4uIiAvSSAiLi5cLi5cc25tcGxpYiIgL0kgIi4uXC4uIiAvSSAiLi5cLi5caW5jbHVkZSIgL0QgIldJTjMyIiAvRCAiX0JJTkRfVE9fQ1VSUkVOVF9WQ0xJQlNfVkVSU0lPTiIgL0QgIk5ERUJVRyIgL0QgIl9DT05TT0xFIiAvRCAiX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MiIC9EICJfQ1JUX05PTlNURENfTk9fV0FSTklOR1MiIC9EICJfTUJDUyIgL0ZvIiQoSU5URElSKVxcIiAvRmQiJChJTlRESVIpXFwkKFBST0dOQU1FKS5wZGIiIC9GRCAvYyAKK0NQUF9QUk9KPS9ub2xvZ28gL01EIC9XMyAvRUhzYyAvWmkgL08yIC9JICIuIiAvSSAiLi4iIC9JICIuLlwuLlxzbm1wbGliIiAvSSAiLi5cLi4iIC9JICIuLlwuLlxpbmNsdWRlIiAvRCAiV0lOMzIiIC9EICJOREVCVUciIC9EICJfQ09OU09MRSIgL0QgIl9DUlRfU0VDVVJFX05PX1dBUk5JTkdTIiAvRCAiX0NSVF9OT05TVERDX05PX1dBUk5JTkdTIiAvRCAiX01CQ1MiIC9GbyIkKElOVERJUilcXCIgL0ZkIiQoSU5URElSKVxcJChQUk9HTkFNRSkucGRiIiAvRkQgL2MgCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiZGVidWciCi1DUFBfUFJPSj0vbm9sb2dvIC9NRGQgL1czIC9HbSAvRUhzYyAvWmkgL09kIC9JICIuIiAvSSAiLi4iIC9JICIuLlwuLlxzbm1wbGliIiAvSSAiLi5cLi4iIC9JICIuLlwuLlxpbmNsdWRlIiAvRCAiV0lOMzIiIC9EICJfQklORF9UT19DVVJSRU5UX1ZDTElCU19WRVJTSU9OIiAvRCAiX0RFQlVHIiAvRCAiX0NPTlNPTEUiIC9EICJfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUyIgL0QgIl9DUlRfTk9OU1REQ19OT19XQVJOSU5HUyIgL0QgIl9NQkNTIiAvRm8iJChJTlRESVIpXFwiIC9GZCIkKElOVERJUilcXCQoUFJPR05BTUUpLnBkYiIgL0ZEIC9jIAorQ1BQX1BST0o9L25vbG9nbyAvTURkIC9XMyAvR20gL0VIc2MgL1ppIC9PZCAvSSAiLiIgL0kgIi4uIiAvSSAiLi5cLi5cc25tcGxpYiIgL0kgIi4uXC4uIiAvSSAiLi5cLi5caW5jbHVkZSIgL0QgIldJTjMyIiAvRCAiX0RFQlVHIiAvRCAiX0NPTlNPTEUiIC9EICJfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUyIgL0QgIl9DUlRfTk9OU1REQ19OT19XQVJOSU5HUyIgL0QgIl9NQkNTIiAvRm8iJChJTlRESVIpXFwiIC9GZCIkKElOVERJUilcXCQoUFJPR05BTUUpLnBkYiIgL0ZEIC9jIAogIUVORElGCiAKIC5jeyQoSU5URElSKX0ub2JqOjoKQEAgLTE1OCwxMiArMTU3LDYgQEAKIAkkKENQUCkgJChDUFBfUFJPSikgJChTT1VSQ0UpCiAKIAotU09VUkNFPS4uXC4uXHNubXBsaWJcY211X2NvbXBhdC5jCi0KLSIkKElOVERJUilcY211X2NvbXBhdC5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCi0JJChDUFApICQoQ1BQX1BST0opICQoU09VUkNFKQotCi0KIFNPVVJDRT0uLlwuLlxzbm1wbGliXGNvbnRhaW5lci5jCiAKICIkKElOVERJUilcY29udGFpbmVyLm9iaiIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIKZGlmZiAtLWdpdCBhL3dpbjMyL2xpYnNubXAvbGlic25tcC5kc3AgYi93aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwCmluZGV4IDY0NDg4MDIuLjIzODYzMzEgMTAwNjQ0Ci0tLSBhL3dpbjMyL2xpYnNubXAvbGlic25tcC5kc3AKKysrIGIvd2luMzIvbGlic25tcC9saWJzbm1wLmRzcApAQCAtMTAxLDEwICsxMDEsNiBAQAogIyBFbmQgU291cmNlIEZpbGUNCiAjIEJlZ2luIFNvdXJjZSBGaWxlDQogDQotU09VUkNFPS4uXC4uXHNubXBsaWJcY211X2NvbXBhdC5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQogU09VUkNFPS4uXC4uXHNubXBsaWJcY29udGFpbmVyLmMNCiAjIEVuZCBTb3VyY2UgRmlsZQ0KICMgQmVnaW4gU291cmNlIEZpbGUNCkBAIC0zNjksMTAgKzM2NSw2IEBACiAjIEVuZCBTb3VyY2UgRmlsZQ0KICMgQmVnaW4gU291cmNlIEZpbGUNCiANCi1TT1VSQ0U9Ii4uXC4uXGluY2x1ZGVcbmV0LXNubXBcbGlicmFyeVxjbXVfY29tcGF0LmgiDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQogU09VUkNFPSIuLlwuLlxpbmNsdWRlXG5ldC1zbm1wXGxpYnJhcnlcY29udGFpbmVyLmgiDQogIyBFbmQgU291cmNlIEZpbGUNCiAjIEJlZ2luIFNvdXJjZSBGaWxlDQpkaWZmIC0tZ2l0IGEvd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4gYi93aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbgppbmRleCAzMWFlMWJkLi4wYWFmNDFiIDEwMDY0NAotLS0gYS93aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbgorKysgYi93aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbgpAQCAtMiw3ICsyLDYgQEAKIENGRz0KIE9VVERJUj0KIElOVERJUj0KLVNTTD0KIFNESz0KIAogIUlGICIkKE9TKSIgPT0gIldpbmRvd3NfTlQiCkBAIC0xOCw3ICsxNyw2IEBACiAJIiQoSU5URElSKVxjYWxsYmFjay5vYmoiIFwKIAkiJChJTlRESVIpXGNoZWNrX3ZhcmJpbmQub2JqIiBcCiAJIiQoSU5URElSKVxjbG9zZWRpci5vYmoiIFwKLQkiJChJTlRESVIpXGNtdV9jb21wYXQub2JqIiBcCiAJIiQoSU5URElSKVxjb250YWluZXIub2JqIiBcCiAJIiQoSU5URElSKVxjb250YWluZXJfYmluYXJ5X2FycmF5Lm9iaiIgXAogCSIkKElOVERJUilcY29udGFpbmVyX2l0ZXJhdG9yLm9iaiIgXApAQCAtMTc0LDEyICsxNzIsNiBAQAogCSQoQ1BQKSAkKENQUF9QUk9KKSAkKFNPVVJDRSkKIAogCi1TT1VSQ0U9Li5cLi5cc25tcGxpYlxjbXVfY29tcGF0LmMKLQotIiQoSU5URElSKVxjbXVfY29tcGF0Lm9iaiIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIKLQkkKENQUCkgJChDUFBfUFJPSikgJChTT1VSQ0UpCi0KLQogU09VUkNFPS4uXC4uXHNubXBsaWJcY29udGFpbmVyLmMKIAogIiQoSU5URElSKVxjb250YWluZXIub2JqIiA6ICQoU09VUkNFKSAiJChJTlRESVIpIgpkaWZmIC0tZ2l0IGEvd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwIGIvd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCmluZGV4IDY0MDdkNDIuLjEyYzA0MTQgMTAwNjQ0Ci0tLSBhL3dpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAorKysgYi93aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKQEAgLTEwOCwxMCArMTA4LDYgQEAKICMgRW5kIFNvdXJjZSBGaWxlDQogIyBCZWdpbiBTb3VyY2UgRmlsZQ0KIA0KLVNPVVJDRT0uLlwuLlxzbm1wbGliXGNtdV9jb21wYXQuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KIFNPVVJDRT0uLlwuLlxzbm1wbGliXGNvbnRhaW5lci5jDQogIyBFbmQgU291cmNlIEZpbGUNCiAjIEJlZ2luIFNvdXJjZSBGaWxlDQpAQCAtMzc2LDEwICszNzIsNiBAQAogIyBFbmQgU291cmNlIEZpbGUNCiAjIEJlZ2luIFNvdXJjZSBGaWxlDQogDQotU09VUkNFPSIuLlwuLlxpbmNsdWRlXG5ldC1zbm1wXGxpYnJhcnlcY211X2NvbXBhdC5oIg0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KIFNPVVJDRT0iLi5cLi5caW5jbHVkZVxuZXQtc25tcFxsaWJyYXJ5XGNvbnRhaW5lci5oIg0KICMgRW5kIFNvdXJjZSBGaWxlDQogIyBCZWdpbiBTb3VyY2UgRmlsZQ0KZGlmZiAtLWdpdCBhL3dpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIGIvd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKaW5kZXggN2Q2ZTNiNy4uMTYwODU2MyAxMDA2NDQKLS0tIGEvd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKKysrIGIvd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKQEAgLTUsMTIgKzUsMTQgQEAKICNkZWZpbmUgTkVUX1NOTVBfQ09ORklHX0gKIAogLyogX01TQ19WRVIgdmFsdWVzCi0gICAxNjAwID0gMTAuMCAoMjAxMCkKLSAgIDE1MDAgPSAgOS4wICgyMDA4KQotICAgMTQwMCA9ICA4LjAgKDIwMDUpCi0gICAxMzEwID0gIDcuMSAoMjAwMykKLSAgIDEzMDAgPSAgNy4wICgyMDAyKQotICAgMTIwMCA9ICA2LjAKKyAgIDE4MDAgPSBNU1ZDKysgMTIuMCAoVmlzdWFsIFN0dWRpbyAyMDEzKQorICAgMTcwMCA9IE1TVkMrKyAxMS4wIChWaXN1YWwgU3R1ZGlvIDIwMTIpCisgICAxNjAwID0gTVNWQysrIDEwLjAgKFZpc3VhbCBTdHVkaW8gMjAxMCkKKyAgIDE1MDAgPSBNU1ZDKysgIDkuMCAoVmlzdWFsIFN0dWRpbyAyMDA4KQorICAgMTQwMCA9IE1TVkMrKyAgOC4wIChWaXN1YWwgU3R1ZGlvIDIwMDUpCisgICAxMzEwID0gTVNWQysrICA3LjEgKFZpc3VhbCBTdHVkaW8gMjAwMykKKyAgIDEzMDAgPSBNU1ZDKysgIDcuMCAoVmlzdWFsIFN0dWRpbyAyMDAyKQorICAgMTIwMCA9IE1TVkMrKyAgNi4wCiAqLwogCiAjaWZkZWYgX01TQ19WRVIKQEAgLTE1ODIsMTUgKzE1ODQsMTQgQEAKICNpZm5kZWYgSEFWRV9TVERJTlRfSAogdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVpbnQ4X3Q7CiB0eXBlZGVmIGNoYXIgaW50OF90OwotdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1aW50MTZfdDsKLXR5cGVkZWYgc2hvcnQgaW50MTZfdDsKK3R5cGVkZWYgdW5zaWduZWQgX19pbnQxNiB1aW50MTZfdDsKK3R5cGVkZWYgX19pbnQxNiBpbnQxNl90OwogdHlwZWRlZiB1bnNpZ25lZCBfX2ludDMyIHVpbnQzMl90OwotdHlwZWRlZiBsb25nIGludDMyX3Q7Cit0eXBlZGVmIF9faW50MzIgaW50MzJfdDsKIHR5cGVkZWYgdW5zaWduZWQgX19pbnQ2NCB1aW50NjRfdDsKIHR5cGVkZWYgX19pbnQ2NCBpbnQ2NF90OwogdHlwZWRlZiB1bnNpZ25lZCBfX2ludDY0IHVpbnRtYXhfdDsKIHR5cGVkZWYgX19pbnQ2NCBpbnRtYXhfdDsKLXR5cGVkZWYgdW5zaWduZWQgc2hvcnQgICB1aW50MTZfdDsKICNlbHNlIC8qIEhBVkVfU1RESU5UX0ggKi8KICNpbmNsdWRlIDxzdGRpbnQuaD4KICNlbmRpZiAvKiBIQVZFX1NURElOVF9IICovCkBAIC0xNjE3LDEwICsxNjE4LDE3IEBACiAjZW5kaWYKIAogI2lmbmRlZiBfX2NwbHVzcGx1cworI2lmZGVmIF9NU0NfVkVSCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0ODA0KSAvLyAnLScgOiB1bnNhZmUgdXNlIG9mIHR5cGUgJ2Jvb2wnIGluIG9wZXJhdGlvbgorI2VuZGlmCiBlbnVtIHsKICAgICBuZXRzbm1wX2NvbXBpbGVfdGltZV91aW50cHRyX3Rfc2l6ZV9jaGVjawogICAgICAgICA9IHNpemVvZihzdHJ1Y3QgbmV0c25tcF9jb21waWxlX3RpbWVfdWludHB0cl90X3NpemVfY2hlY2tfcyB7IGludDotIShzaXplb2YodWludHB0cl90KSA9PSBzaXplb2Yodm9pZCopKTsgfSkKIH07CisjaWZkZWYgX01TQ19WRVIKKyNwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKICNlbmRpZgogCiAvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGNsb3Nlc29ja2V0IGZ1bmN0aW9uLiAgKi8KQEAgLTE2NzcsNyArMTY4NSw3IEBACiAvKiBNU1ZDIE9wZW5TU0wgbGlua2VyIHNldHRpbmdzLiAqLwogI2lmIGRlZmluZWQoX01TQ19WRVIpCiAjICBpZiBkZWZpbmVkKE5FVFNOTVBfVVNFX09QRU5TU0wpCi0jICAgIGlmZGVmIE5FVFNOTVBfVVNFX0RMTAorIyAgICBpZmRlZiBfRExMCiAjICAgICAgaWZkZWYgX0RFQlVHCiAjICAgICAgICBwcmFnbWEgY29tbWVudChsaWIsICJsaWJlYXkzMk1EZC5saWIiKQogIyAgICAgIGVsc2UKQEAgLTE2OTEsNiArMTY5OSw3IEBACiAjICAgICAgZW5kaWYKICMgICAgZW5kaWYKICMgICAgcHJhZ21hIGNvbW1lbnQobGliLCAiZ2RpMzIubGliIikKKyMgICAgcHJhZ21hIGNvbW1lbnQobGliLCAidXNlcjMyLmxpYiIpCiAjICBlbmRpZgogI2VuZGlmCiAKQEAgLTE3NTEsNyArMTc2MCwxMSBAQAogI2VuZGlmCiAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RydG91bGwnIGZ1bmN0aW9uLiAqLworI2lmIF9NU0NfVkVSID49IDE4MDAKKyNkZWZpbmUgSEFWRV9TVFJUT1VMTCAxCisjZWxzZQogLyogI3VuZGVmIEhBVkVfU1RSVE9VTEwgKi8KKyNlbmRpZgogCiAvKgogICogTW9kdWxlIGNvbmZpZ3VyYXRpb24gYW5kIGNvbnRyb2wgc3RhcnRzIGhlcmUuCmRpZmYgLS1naXQgYS93aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiBiL3dpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCmluZGV4IDA0YWE5OWMuLjk2OTM3MzAgMTAwNjQ0Ci0tLSBhL3dpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCisrKyBiL3dpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCkBAIC01LDEyICs1LDE0IEBACiAjZGVmaW5lIE5FVF9TTk1QX0NPTkZJR19ICiAKIC8qIF9NU0NfVkVSIHZhbHVlcwotICAgMTYwMCA9IDEwLjAgKDIwMTApCi0gICAxNTAwID0gIDkuMCAoMjAwOCkKLSAgIDE0MDAgPSAgOC4wICgyMDA1KQotICAgMTMxMCA9ICA3LjEgKDIwMDMpCi0gICAxMzAwID0gIDcuMCAoMjAwMikKLSAgIDEyMDAgPSAgNi4wCisgICAxODAwID0gTVNWQysrIDEyLjAgKFZpc3VhbCBTdHVkaW8gMjAxMykKKyAgIDE3MDAgPSBNU1ZDKysgMTEuMCAoVmlzdWFsIFN0dWRpbyAyMDEyKQorICAgMTYwMCA9IE1TVkMrKyAxMC4wIChWaXN1YWwgU3R1ZGlvIDIwMTApCisgICAxNTAwID0gTVNWQysrICA5LjAgKFZpc3VhbCBTdHVkaW8gMjAwOCkKKyAgIDE0MDAgPSBNU1ZDKysgIDguMCAoVmlzdWFsIFN0dWRpbyAyMDA1KQorICAgMTMxMCA9IE1TVkMrKyAgNy4xIChWaXN1YWwgU3R1ZGlvIDIwMDMpCisgICAxMzAwID0gTVNWQysrICA3LjAgKFZpc3VhbCBTdHVkaW8gMjAwMikKKyAgIDEyMDAgPSBNU1ZDKysgIDYuMAogKi8KIAogI2lmZGVmIF9NU0NfVkVSCkBAIC0xNTgyLDE1ICsxNTg0LDE0IEBACiAjaWZuZGVmIEhBVkVfU1RESU5UX0gKIHR5cGVkZWYgdW5zaWduZWQgY2hhciB1aW50OF90OwogdHlwZWRlZiBjaGFyIGludDhfdDsKLXR5cGVkZWYgdW5zaWduZWQgc2hvcnQgdWludDE2X3Q7Ci10eXBlZGVmIHNob3J0IGludDE2X3Q7Cit0eXBlZGVmIHVuc2lnbmVkIF9faW50MTYgdWludDE2X3Q7Cit0eXBlZGVmIF9faW50MTYgaW50MTZfdDsKIHR5cGVkZWYgdW5zaWduZWQgX19pbnQzMiB1aW50MzJfdDsKLXR5cGVkZWYgbG9uZyBpbnQzMl90OwordHlwZWRlZiBfX2ludDMyIGludDMyX3Q7CiB0eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgdWludDY0X3Q7CiB0eXBlZGVmIF9faW50NjQgaW50NjRfdDsKIHR5cGVkZWYgdW5zaWduZWQgX19pbnQ2NCB1aW50bWF4X3Q7CiB0eXBlZGVmIF9faW50NjQgaW50bWF4X3Q7Ci10eXBlZGVmIHVuc2lnbmVkIHNob3J0ICAgdWludDE2X3Q7CiAjZWxzZSAvKiBIQVZFX1NURElOVF9IICovCiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAjZW5kaWYgLyogSEFWRV9TVERJTlRfSCAqLwpAQCAtMTYxNywxMCArMTYxOCwxNyBAQAogI2VuZGlmCiAKICNpZm5kZWYgX19jcGx1c3BsdXMKKyNpZmRlZiBfTVNDX1ZFUgorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDgwNCkgLy8gJy0nIDogdW5zYWZlIHVzZSBvZiB0eXBlICdib29sJyBpbiBvcGVyYXRpb24KKyNlbmRpZgogZW51bSB7CiAgICAgbmV0c25tcF9jb21waWxlX3RpbWVfdWludHB0cl90X3NpemVfY2hlY2sKICAgICAgICAgPSBzaXplb2Yoc3RydWN0IG5ldHNubXBfY29tcGlsZV90aW1lX3VpbnRwdHJfdF9zaXplX2NoZWNrX3MgeyBpbnQ6LSEoc2l6ZW9mKHVpbnRwdHJfdCkgPT0gc2l6ZW9mKHZvaWQqKSk7IH0pCiB9OworI2lmZGVmIF9NU0NfVkVSCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCiAjZW5kaWYKIAogLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBjbG9zZXNvY2tldCBmdW5jdGlvbi4gICovCkBAIC0xNjc3LDcgKzE2ODUsNyBAQAogLyogTVNWQyBPcGVuU1NMIGxpbmtlciBzZXR0aW5ncy4gKi8KICNpZiBkZWZpbmVkKF9NU0NfVkVSKQogIyAgaWYgZGVmaW5lZChORVRTTk1QX1VTRV9PUEVOU1NMKQotIyAgICBpZmRlZiBORVRTTk1QX1VTRV9ETEwKKyMgICAgaWZkZWYgX0RMTAogIyAgICAgIGlmZGVmIF9ERUJVRwogIyAgICAgICAgcHJhZ21hIGNvbW1lbnQobGliLCAibGliZWF5MzJNRGQubGliIikKICMgICAgICBlbHNlCkBAIC0xNjkxLDYgKzE2OTksNyBAQAogIyAgICAgIGVuZGlmCiAjICAgIGVuZGlmCiAjICAgIHByYWdtYSBjb21tZW50KGxpYiwgImdkaTMyLmxpYiIpCisjICAgIHByYWdtYSBjb21tZW50KGxpYiwgInVzZXIzMi5saWIiKQogIyAgZW5kaWYKICNlbmRpZgogCkBAIC0xNzUxLDcgKzE3NjAsMTEgQEAKICNlbmRpZgogCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnRvdWxsJyBmdW5jdGlvbi4gKi8KKyNpZiBfTVNDX1ZFUiA+PSAxODAwCisjZGVmaW5lIEhBVkVfU1RSVE9VTEwKKyNlbHNlCiAvKiAjdW5kZWYgSEFWRV9TVFJUT1VMTCAqLworI2VuZGlmCiAKIC8qCiAgKiBNb2R1bGUgY29uZmlndXJhdGlvbiBhbmQgY29udHJvbCBzdGFydHMgaGVyZS4KZGlmZiAtLWdpdCBhL3dpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCBiL3dpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcAppbmRleCBmZTVlNWFlLi4zOTU5OWRiIDEwMDY0NAotLS0gYS93aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AKKysrIGIvd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwCkBAIC01MCw3ICs1MCw3IEBACiAjIEFERCBCU0MzMiAvbm9sb2dvDQogTElOSzMyPWxpbmsuZXhlDQogIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9tYWNoaW5lOkkzODYNCi0jIEFERCBMSU5LMzIgbmV0c25tcC5saWIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL3BkYjpub25lIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL3JlbGVhc2Uvc25tcGJ1bGtnZXQuZXhlIiAvbGlicGF0aDoiLi4vbGliL3JlbGVhc2UiDQorIyBBREQgTElOSzMyIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9wZGI6bm9uZSAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9yZWxlYXNlL3NubXBidWxrZ2V0LmV4ZSIgL2xpYnBhdGg6Ii4uL2xpYi9yZWxlYXNlIg0KIA0KICFFTFNFSUYgICIkKENGRykiID09ICJzbm1wYnVsa2dldCAtIFdpbjMyIERlYnVnIg0KIA0KQEAgLTc0LDcgKzc0LDcgQEAKICMgQUREIEJTQzMyIC9ub2xvZ28NCiBMSU5LMzI9bGluay5leGUNCiAjIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBhZHZhcGkzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2RlYnVnIC9tYWNoaW5lOkkzODYgL3BkYnR5cGU6c2VwdA0KLSMgQUREIExJTkszMiBuZXRzbm1wLmxpYiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvaW5jcmVtZW50YWw6bm8gL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL2RlYnVnL3NubXBidWxrZ2V0LmV4ZSIgL3BkYnR5cGU6c2VwdCAvbGlicGF0aDoiLi4vbGliL2RlYnVnIg0KKyMgQUREIExJTkszMiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvaW5jcmVtZW50YWw6bm8gL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL2RlYnVnL3NubXBidWxrZ2V0LmV4ZSIgL3BkYnR5cGU6c2VwdCAvbGlicGF0aDoiLi4vbGliL2RlYnVnIg0KIA0KICFFTkRJRiANCiANCmRpZmYgLS1naXQgYS93aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCBiL3dpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCmluZGV4IGVhOGJiMGMuLjkxZTk0ZDMgMTAwNjQ0Ci0tLSBhL3dpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCisrKyBiL3dpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCkBAIC01MCw3ICs1MCw3IEBACiAjIEFERCBCU0MzMiAvbm9sb2dvDQogTElOSzMyPWxpbmsuZXhlDQogIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9tYWNoaW5lOkkzODYNCi0jIEFERCBMSU5LMzIgbmV0c25tcC5saWIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL3BkYjpub25lIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL3JlbGVhc2Uvc25tcGJ1bGt3YWxrLmV4ZSIgL2xpYnBhdGg6Ii4uL2xpYi9yZWxlYXNlIg0KKyMgQUREIExJTkszMiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvcGRiOm5vbmUgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vcmVsZWFzZS9zbm1wYnVsa3dhbGsuZXhlIiAvbGlicGF0aDoiLi4vbGliL3JlbGVhc2UiDQogDQogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInNubXBidWxrd2FsayAtIFdpbjMyIERlYnVnIg0KIA0KQEAgLTc0LDcgKzc0LDcgQEAKICMgQUREIEJTQzMyIC9ub2xvZ28NCiBMSU5LMzI9bGluay5leGUNCiAjIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBhZHZhcGkzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2RlYnVnIC9tYWNoaW5lOkkzODYgL3BkYnR5cGU6c2VwdA0KLSMgQUREIExJTkszMiBuZXRzbm1wLmxpYiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvaW5jcmVtZW50YWw6bm8gL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL2RlYnVnL3NubXBidWxrd2Fsay5leGUiIC9wZGJ0eXBlOnNlcHQgL2xpYnBhdGg6Ii4uL2xpYi9kZWJ1ZyINCisjIEFERCBMSU5LMzIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9kZWJ1Zy9zbm1wYnVsa3dhbGsuZXhlIiAvcGRidHlwZTpzZXB0IC9saWJwYXRoOiIuLi9saWIvZGVidWciDQogDQogIUVORElGIA0KIA0KZGlmZiAtLWdpdCBhL3dpbjMyL3NubXBkL01ha2VmaWxlLmluIGIvd2luMzIvc25tcGQvTWFrZWZpbGUuaW4KaW5kZXggNjUyZGQ4MC4uMWIxYjNhYyAxMDA2NDQKLS0tIGEvd2luMzIvc25tcGQvTWFrZWZpbGUuaW4KKysrIGIvd2luMzIvc25tcGQvTWFrZWZpbGUuaW4KQEAgLTMsNyArMyw2IEBACiBPVVRESVI9CiBJTlRESVI9CiBTREs9Ci1TU0w9CiBMSU5LVFlQRT0KIAogIyBTZXQgdG8gMSB0byBhbGxvdyB0aGUgYnVpbGRpbmcgdXNpbmcgdGhlIERMTCB2ZXJzaW9uIG9mIFNOTVBMSUIuCmRpZmYgLS1naXQgYS93aW4zMi9zbm1wZC9zbm1wZC5kc3AgYi93aW4zMi9zbm1wZC9zbm1wZC5kc3AKaW5kZXggNTUzNDMwNi4uNDVlMmNhZCAxMDA2NDQKLS0tIGEvd2luMzIvc25tcGQvc25tcGQuZHNwCisrKyBiL3dpbjMyL3NubXBkL3NubXBkLmRzcApAQCAtNTAsNyArNTAsNyBAQAogIyBBREQgQlNDMzIgL25vbG9nbw0KIExJTkszMj1saW5rLmV4ZQ0KICMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGFkdmFwaTMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvbWFjaGluZTpJMzg2DQotIyBBREQgTElOSzMyIG5ldHNubXAubGliIG5ldHNubXBhZ2VudC5saWIgbmV0c25tcG1pYnMubGliIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9wZGI6bm9uZSAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9yZWxlYXNlL3NubXBkLmV4ZSIgL2xpYnBhdGg6Ii4uL2xpYi9yZWxlYXNlIg0KKyMgQUREIExJTkszMiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvcGRiOm5vbmUgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vcmVsZWFzZS9zbm1wZC5leGUiIC9saWJwYXRoOiIuLi9saWIvcmVsZWFzZSINCiANCiAhRUxTRUlGICAiJChDRkcpIiA9PSAic25tcGQgLSBXaW4zMiBEZWJ1ZyINCiANCkBAIC03NCw3ICs3NCw3IEBACiAjIEFERCBCU0MzMiAvbm9sb2dvDQogTElOSzMyPWxpbmsuZXhlDQogIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9wZGJ0eXBlOnNlcHQNCi0jIEFERCBMSU5LMzIgbmV0c25tcC5saWIgbmV0c25tcGFnZW50LmxpYiBuZXRzbm1wbWlicy5saWIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9kZWJ1Zy9zbm1wZC5leGUiIC9wZGJ0eXBlOnNlcHQgL2xpYnBhdGg6Ii4uL2xpYi9kZWJ1ZyINCisjIEFERCBMSU5LMzIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9kZWJ1Zy9zbm1wZC5leGUiIC9wZGJ0eXBlOnNlcHQgL2xpYnBhdGg6Ii4uL2xpYi9kZWJ1ZyINCiANCiAhRU5ESUYgDQogDQpkaWZmIC0tZ2l0IGEvd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AgYi93aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcAppbmRleCBiMTdiODIyLi43ZjVhNWQzIDEwMDY0NAotLS0gYS93aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcAorKysgYi93aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcApAQCAtNTAsNyArNTAsNyBAQAogIyBBREQgQlNDMzIgL25vbG9nbw0KIExJTkszMj1saW5rLmV4ZQ0KICMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGFkdmFwaTMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvbWFjaGluZTpJMzg2DQotIyBBREQgTElOSzMyIG5ldHNubXAubGliIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9wZGI6bm9uZSAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9yZWxlYXNlL3NubXBkZWx0YS5leGUiIC9saWJwYXRoOiIuLi9saWIvcmVsZWFzZSINCisjIEFERCBMSU5LMzIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL3BkYjpub25lIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL3JlbGVhc2Uvc25tcGRlbHRhLmV4ZSIgL2xpYnBhdGg6Ii4uL2xpYi9yZWxlYXNlIg0KIA0KICFFTFNFSUYgICIkKENGRykiID09ICJzbm1wZGVsdGEgLSBXaW4zMiBEZWJ1ZyINCiANCkBAIC03NCw3ICs3NCw3IEBACiAjIEFERCBCU0MzMiAvbm9sb2dvDQogTElOSzMyPWxpbmsuZXhlDQogIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9wZGJ0eXBlOnNlcHQNCi0jIEFERCBMSU5LMzIgbmV0c25tcC5saWIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9kZWJ1Zy9zbm1wZGVsdGEuZXhlIiAvcGRidHlwZTpzZXB0IC9saWJwYXRoOiIuLi9saWIvZGVidWciDQorIyBBREQgTElOSzMyIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9pbmNyZW1lbnRhbDpubyAvZGVidWcgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vZGVidWcvc25tcGRlbHRhLmV4ZSIgL3BkYnR5cGU6c2VwdCAvbGlicGF0aDoiLi4vbGliL2RlYnVnIg0KIA0KICFFTkRJRiANCiANCmRpZmYgLS1naXQgYS93aW4zMi9zbm1wZGYvc25tcGRmLmRzcCBiL3dpbjMyL3NubXBkZi9zbm1wZGYuZHNwCmluZGV4IDg4YzNmNmQuLmUyZTRiOTQgMTAwNjQ0Ci0tLSBhL3dpbjMyL3NubXBkZi9zbm1wZGYuZHNwCisrKyBiL3dpbjMyL3NubXBkZi9zbm1wZGYuZHNwCkBAIC01MCw3ICs1MCw3IEBACiAjIEFERCBCU0MzMiAvbm9sb2dvDQogTElOSzMyPWxpbmsuZXhlDQogIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9tYWNoaW5lOkkzODYNCi0jIEFERCBMSU5LMzIgbmV0c25tcC5saWIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL3BkYjpub25lIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL3JlbGVhc2Uvc25tcGRmLmV4ZSIgL2xpYnBhdGg6Ii4uL2xpYi9yZWxlYXNlIg0KKyMgQUREIExJTkszMiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvcGRiOm5vbmUgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vcmVsZWFzZS9zbm1wZGYuZXhlIiAvbGlicGF0aDoiLi4vbGliL3JlbGVhc2UiDQogDQogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInNubXBkZiAtIFdpbjMyIERlYnVnIg0KIA0KQEAgLTc0LDcgKzc0LDcgQEAKICMgQUREIEJTQzMyIC9ub2xvZ28NCiBMSU5LMzI9bGluay5leGUNCiAjIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBhZHZhcGkzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2RlYnVnIC9tYWNoaW5lOkkzODYgL3BkYnR5cGU6c2VwdA0KLSMgQUREIExJTkszMiBuZXRzbm1wLmxpYiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvaW5jcmVtZW50YWw6bm8gL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL2RlYnVnL3NubXBkZi5leGUiIC9wZGJ0eXBlOnNlcHQgL2xpYnBhdGg6Ii4uL2xpYi9kZWJ1ZyINCisjIEFERCBMSU5LMzIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9kZWJ1Zy9zbm1wZGYuZXhlIiAvcGRidHlwZTpzZXB0IC9saWJwYXRoOiIuLi9saWIvZGVidWciDQogDQogIUVORElGIA0KIA0KZGlmZiAtLWdpdCBhL3dpbjMyL3NubXBnZXQvc25tcGdldC5kc3AgYi93aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwCmluZGV4IDY0OTgwZWQuLjA2MDMyMzIgMTAwNjQ0Ci0tLSBhL3dpbjMyL3NubXBnZXQvc25tcGdldC5kc3AKKysrIGIvd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcApAQCAtNTAsNyArNTAsNyBAQAogIyBBREQgQlNDMzIgL25vbG9nbw0KIExJTkszMj1saW5rLmV4ZQ0KICMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGFkdmFwaTMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvbWFjaGluZTpJMzg2DQotIyBBREQgTElOSzMyIG5ldHNubXAubGliIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9wZGI6bm9uZSAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9yZWxlYXNlL3NubXBnZXQuZXhlIiAvbGlicGF0aDoiLi4vbGliL3JlbGVhc2UiDQorIyBBREQgTElOSzMyIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9wZGI6bm9uZSAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9yZWxlYXNlL3NubXBnZXQuZXhlIiAvbGlicGF0aDoiLi4vbGliL3JlbGVhc2UiDQogDQogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInNubXBnZXQgLSBXaW4zMiBEZWJ1ZyINCiANCkBAIC03NCw3ICs3NCw3IEBACiAjIEFERCBCU0MzMiAvbm9sb2dvDQogTElOSzMyPWxpbmsuZXhlDQogIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9wZGJ0eXBlOnNlcHQNCi0jIEFERCBMSU5LMzIgbmV0c25tcC5saWIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9kZWJ1Zy9zbm1wZ2V0LmV4ZSIgL3BkYnR5cGU6c2VwdCAvbGlicGF0aDoiLi4vbGliL2RlYnVnIg0KKyMgQUREIExJTkszMiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvaW5jcmVtZW50YWw6bm8gL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL2RlYnVnL3NubXBnZXQuZXhlIiAvcGRidHlwZTpzZXB0IC9saWJwYXRoOiIuLi9saWIvZGVidWciDQogDQogIUVORElGIA0KIA0KZGlmZiAtLWdpdCBhL3dpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCBiL3dpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcAppbmRleCAyMzMxOTlkLi5jYjYzYzg0IDEwMDY0NAotLS0gYS93aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AKKysrIGIvd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwCkBAIC01MCw3ICs1MCw3IEBACiAjIEFERCBCU0MzMiAvbm9sb2dvDQogTElOSzMyPWxpbmsuZXhlDQogIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9tYWNoaW5lOkkzODYNCi0jIEFERCBMSU5LMzIgbmV0c25tcC5saWIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL3BkYjpub25lIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL3JlbGVhc2Uvc25tcGdldG5leHQuZXhlIiAvbGlicGF0aDoiLi4vbGliL3JlbGVhc2UiDQorIyBBREQgTElOSzMyIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9wZGI6bm9uZSAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9yZWxlYXNlL3NubXBnZXRuZXh0LmV4ZSIgL2xpYnBhdGg6Ii4uL2xpYi9yZWxlYXNlIg0KIA0KICFFTFNFSUYgICIkKENGRykiID09ICJzbm1wZ2V0bmV4dCAtIFdpbjMyIERlYnVnIg0KIA0KQEAgLTc0LDcgKzc0LDcgQEAKICMgQUREIEJTQzMyIC9ub2xvZ28NCiBMSU5LMzI9bGluay5leGUNCiAjIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBhZHZhcGkzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2RlYnVnIC9tYWNoaW5lOkkzODYgL3BkYnR5cGU6c2VwdA0KLSMgQUREIExJTkszMiBuZXRzbm1wLmxpYiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvaW5jcmVtZW50YWw6bm8gL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL2RlYnVnL3NubXBnZXRuZXh0LmV4ZSIgL3BkYnR5cGU6c2VwdCAvbGlicGF0aDoiLi4vbGliL2RlYnVnIg0KKyMgQUREIExJTkszMiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvaW5jcmVtZW50YWw6bm8gL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL2RlYnVnL3NubXBnZXRuZXh0LmV4ZSIgL3BkYnR5cGU6c2VwdCAvbGlicGF0aDoiLi4vbGliL2RlYnVnIg0KIA0KICFFTkRJRiANCiANCmRpZmYgLS1naXQgYS93aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiBiL3dpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCmluZGV4IGUyN2Q5N2QuLjA1YTAxZTggMTAwNjQ0Ci0tLSBhL3dpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCisrKyBiL3dpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCkBAIC0yLDcgKzIsNiBAQAogQ0ZHPQogT1VURElSPQogSU5URElSPQotU1NMPQogTElOS1RZUEU9CiAKICMgU2V0IHRvIDEgdG8gYWxsb3cgdGhlIGJ1aWxkaW5nIHVzaW5nIHRoZSBETEwgdmVyc2lvbiBvZiBTTk1QTElCLgpAQCAtMjMsOCArMjIsMTAgQEAKIAktQGVyYXNlICIkKElOVERJUilcaWYub2JqIgogCS1AZXJhc2UgIiQoSU5URElSKVxpbmV0Lm9iaiIKIAktQGVyYXNlICIkKElOVERJUilcaW5ldDYub2JqIgorCS1AZXJhc2UgIiQoSU5URElSKVxpbmV0eC5vYmoiCiAJLUBlcmFzZSAiJChJTlRESVIpXG1haW4ub2JqIgogCS1AZXJhc2UgIiQoSU5URElSKVxyb3V0ZS5vYmoiCisJLUBlcmFzZSAiJChJTlRESVIpXHJvdXRleC5vYmoiCiAJLUBlcmFzZSAiJChJTlRESVIpXGZmcy5vYmoiCiAJLUBlcmFzZSAiJChJTlRESVIpXHZjPz8uaWRiIgogCS1AZXJhc2UgIiQoSU5URElSKVx3aW5zdHViLm9iaiIKQEAgLTg2LDggKzg3LDEwIEBACiAJIiQoSU5URElSKVxpZi5vYmoiIFwKIAkiJChJTlRESVIpXGluZXQub2JqIiBcCiAJIiQoSU5URElSKVxpbmV0Ni5vYmoiIFwKKwkiJChJTlRESVIpXGluZXR4Lm9iaiIgXAogCSIkKElOVERJUilcbWFpbi5vYmoiIFwKIAkiJChJTlRESVIpXHJvdXRlLm9iaiIgXAorCSIkKElOVERJUilccm91dGV4Lm9iaiIgXAogCSIkKElOVERJUilcZmZzLm9iaiIgXAogCSIkKElOVERJUilcd2luc3R1Yi5vYmoiCiAKQEAgLTExNiwxMCArMTE5LDE0IEBACiAJLUBlcmFzZSAiJChJTlRESVIpXGluZXQuc2JyIgogCS1AZXJhc2UgIiQoSU5URElSKVxpbmV0Ni5vYmoiCiAJLUBlcmFzZSAiJChJTlRESVIpXGluZXQ2LnNiciIKKwktQGVyYXNlICIkKElOVERJUilcaW5ldHgub2JqIgorCS1AZXJhc2UgIiQoSU5URElSKVxpbmV0eC5zYnIiCiAJLUBlcmFzZSAiJChJTlRESVIpXG1haW4ub2JqIgogCS1AZXJhc2UgIiQoSU5URElSKVxtYWluLnNiciIKIAktQGVyYXNlICIkKElOVERJUilccm91dGUub2JqIgogCS1AZXJhc2UgIiQoSU5URElSKVxyb3V0ZS5zYnIiCisJLUBlcmFzZSAiJChJTlRESVIpXHJvdXRleC5vYmoiCisJLUBlcmFzZSAiJChJTlRESVIpXHJvdXRleC5zYnIiCiAJLUBlcmFzZSAiJChJTlRESVIpXGZmcy5vYmoiCiAJLUBlcmFzZSAiJChJTlRESVIpXGZmcy5zYnIiCiAJLUBlcmFzZSAiJChJTlRESVIpXHZjPz8uaWRiIgpAQCAtMTgyLDggKzE4OSwxMCBAQAogCSIkKElOVERJUilcaWYuc2JyIiBcCiAJIiQoSU5URElSKVxpbmV0LnNiciIgXAogCSIkKElOVERJUilcaW5ldDYuc2JyIiBcCisJIiQoSU5URElSKVxpbmV0eC5zYnIiIFwKIAkiJChJTlRESVIpXG1haW4uc2JyIiBcCiAJIiQoSU5URElSKVxyb3V0ZS5zYnIiIFwKKwkiJChJTlRESVIpXHJvdXRleC5zYnIiIFwKIAkiJChJTlRESVIpXGZmcy5zYnIiIFwKIAkiJChJTlRESVIpXHdpbnN0dWIuc2JyIgogCkBAIC0xOTgsOCArMjA3LDEwIEBACiAJIiQoSU5URElSKVxpZi5vYmoiIFwKIAkiJChJTlRESVIpXGluZXQub2JqIiBcCiAJIiQoSU5URElSKVxpbmV0Ni5vYmoiIFwKKwkiJChJTlRESVIpXGluZXR4Lm9iaiIgXAogCSIkKElOVERJUilcbWFpbi5vYmoiIFwKIAkiJChJTlRESVIpXHJvdXRlLm9iaiIgXAorCSIkKElOVERJUilccm91dGV4Lm9iaiIgXAogCSIkKElOVERJUilcZmZzLm9iaiIgXAogCSIkKElOVERJUilcd2luc3R1Yi5vYmoiCiAKQEAgLTI4Myw2ICsyOTQsMTEgQEAKIAogIUVORElGIAogCitTT1VSQ0U9Li5cLi5cYXBwc1wkKFBST0dOQU1FKVxpbmV0eC5jCisKKyIkKElOVERJUilcaW5ldHgub2JqIgkiJChJTlRESVIpXGluZXR4LnNiciIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIKKwkkKENQUCkgJChDUFBfUFJPSikgJChTT1VSQ0UpCisKIFNPVVJDRT0uLlwuLlxhcHBzXCQoUFJPR05BTUUpXG1haW4uYwogCiAhSUYgICIkKENGRykiID09ICJyZWxlYXNlIgpAQCAtMzE5LDYgKzMzNSwxMSBAQAogCiAhRU5ESUYgCiAKK1NPVVJDRT0uLlwuLlxhcHBzXCQoUFJPR05BTUUpXHJvdXRleC5jCisKKyIkKElOVERJUilccm91dGV4Lm9iaiIJIiQoSU5URElSKVxyb3V0ZXguc2JyIiA6ICQoU09VUkNFKSAiJChJTlRESVIpIgorCSQoQ1BQKSAkKENQUF9QUk9KKSAkKFNPVVJDRSkKKwogU09VUkNFPS4uXC4uXGFwcHNcJChQUk9HTkFNRSlcZmZzLmMKIAogIUlGICAiJChDRkcpIiA9PSAicmVsZWFzZSIKZGlmZiAtLWdpdCBhL3dpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCBiL3dpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDI1ZWMwMzEuLjJlZGE1NzUKLS0tIGEvd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwCisrKyBiL3dpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcApAQCAtNTAsNyArNTAsNyBAQAogIyBBREQgQlNDMzIgL25vbG9nbw0KIExJTkszMj1saW5rLmV4ZQ0KICMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGFkdmFwaTMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvbWFjaGluZTpJMzg2DQotIyBBREQgTElOSzMyIG5ldHNubXAubGliIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9wZGI6bm9uZSAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9yZWxlYXNlL3NubXBuZXRzdGF0LmV4ZSIgL2xpYnBhdGg6Ii4uL2xpYi9yZWxlYXNlIg0KKyMgQUREIExJTkszMiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvcGRiOm5vbmUgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vcmVsZWFzZS9zbm1wbmV0c3RhdC5leGUiIC9saWJwYXRoOiIuLi9saWIvcmVsZWFzZSINCiANCiAhRUxTRUlGICAiJChDRkcpIiA9PSAic25tcG5ldHN0YXQgLSBXaW4zMiBEZWJ1ZyINCiANCkBAIC03NCw3ICs3NCw3IEBACiAjIEFERCBCU0MzMiAvbm9sb2dvDQogTElOSzMyPWxpbmsuZXhlDQogIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9wZGJ0eXBlOnNlcHQNCi0jIEFERCBMSU5LMzIgbmV0c25tcC5saWIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9kZWJ1Zy9zbm1wbmV0c3RhdC5leGUiIC9wZGJ0eXBlOnNlcHQgL2xpYnBhdGg6Ii4uL2xpYi9kZWJ1ZyINCisjIEFERCBMSU5LMzIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9kZWJ1Zy9zbm1wbmV0c3RhdC5leGUiIC9wZGJ0eXBlOnNlcHQgL2xpYnBhdGg6Ii4uL2xpYi9kZWJ1ZyINCiANCiAhRU5ESUYgDQogDQpAQCAtODQsNiArODQsMTAgQEAKICMgTmFtZSAic25tcG5ldHN0YXQgLSBXaW4zMiBEZWJ1ZyINCiAjIEJlZ2luIFNvdXJjZSBGaWxlDQogDQorU09VUkNFPS4uXC4uXGFwcHNcc25tcG5ldHN0YXRcZmZzLmMNCisjIEVuZCBTb3VyY2UgRmlsZQ0KKyMgQmVnaW4gU291cmNlIEZpbGUNCisNCiBTT1VSQ0U9Li5cLi5cYXBwc1xzbm1wbmV0c3RhdFxpZi5jDQogIyBFbmQgU291cmNlIEZpbGUNCiAjIEJlZ2luIFNvdXJjZSBGaWxlDQpAQCAtOTYsNiArMTAwLDEwIEBACiAjIEVuZCBTb3VyY2UgRmlsZQ0KICMgQmVnaW4gU291cmNlIEZpbGUNCiANCitTT1VSQ0U9Li5cLi5cYXBwc1xzbm1wbmV0c3RhdFxpbmV0eC5jDQorIyBFbmQgU291cmNlIEZpbGUNCisjIEJlZ2luIFNvdXJjZSBGaWxlDQorDQogU09VUkNFPS4uXC4uXGFwcHNcc25tcG5ldHN0YXRcbWFpbi5jDQogIyBFbmQgU291cmNlIEZpbGUNCiAjIEJlZ2luIFNvdXJjZSBGaWxlDQpAQCAtMTA0LDcgKzExMiw3IEBACiAjIEVuZCBTb3VyY2UgRmlsZQ0KICMgQmVnaW4gU291cmNlIEZpbGUNCiANCi1TT1VSQ0U9Li5cLi5cYXBwc1xzbm1wbmV0c3RhdFxmZnMuYw0KK1NPVVJDRT0uLlwuLlxhcHBzXHNubXBuZXRzdGF0XHJvdXRleC5jDQogIyBFbmQgU291cmNlIEZpbGUNCiAjIEJlZ2luIFNvdXJjZSBGaWxlDQogDQpkaWZmIC0tZ2l0IGEvd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCBiL3dpbjMyL3NubXBzZXQvc25tcHNldC5kc3AKaW5kZXggZmRlY2EzMC4uYWQwZjUwOSAxMDA2NDQKLS0tIGEvd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcAorKysgYi93aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwCkBAIC01MCw3ICs1MCw3IEBACiAjIEFERCBCU0MzMiAvbm9sb2dvDQogTElOSzMyPWxpbmsuZXhlDQogIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9tYWNoaW5lOkkzODYNCi0jIEFERCBMSU5LMzIgbmV0c25tcC5saWIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL3BkYjpub25lIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL3JlbGVhc2Uvc25tcHNldC5leGUiIC9saWJwYXRoOiIuLi9saWIvcmVsZWFzZSINCisjIEFERCBMSU5LMzIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL3BkYjpub25lIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL3JlbGVhc2Uvc25tcHNldC5leGUiIC9saWJwYXRoOiIuLi9saWIvcmVsZWFzZSINCiANCiAhRUxTRUlGICAiJChDRkcpIiA9PSAic25tcHNldCAtIFdpbjMyIERlYnVnIg0KIA0KQEAgLTc0LDcgKzc0LDcgQEAKICMgQUREIEJTQzMyIC9ub2xvZ28NCiBMSU5LMzI9bGluay5leGUNCiAjIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBhZHZhcGkzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2RlYnVnIC9tYWNoaW5lOkkzODYgL3BkYnR5cGU6c2VwdA0KLSMgQUREIExJTkszMiBuZXRzbm1wLmxpYiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvaW5jcmVtZW50YWw6bm8gL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL2RlYnVnL3NubXBzZXQuZXhlIiAvcGRidHlwZTpzZXB0IC9saWJwYXRoOiIuLi9saWIvZGVidWciDQorIyBBREQgTElOSzMyIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9pbmNyZW1lbnRhbDpubyAvZGVidWcgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vZGVidWcvc25tcHNldC5leGUiIC9wZGJ0eXBlOnNlcHQgL2xpYnBhdGg6Ii4uL2xpYi9kZWJ1ZyINCiANCiAhRU5ESUYgDQogDQpkaWZmIC0tZ2l0IGEvd2luMzIvc25tcHNtX2luaXQuaCBiL3dpbjMyL3NubXBzbV9pbml0LmgKaW5kZXggODAxNWZmNi4uYzhhNDEwYiAxMDA2NDQKLS0tIGEvd2luMzIvc25tcHNtX2luaXQuaAorKysgYi93aW4zMi9zbm1wc21faW5pdC5oCkBAIC0xLDIgKzEgQEAKLS8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBjb25maWd1cmUuICBEbyBub3QgbW9kaWZ5IGJ5IGhhbmQuICovCiBpbml0X3VzbSgpOwpkaWZmIC0tZ2l0IGEvd2luMzIvc25tcHNtX3NodXRkb3duLmggYi93aW4zMi9zbm1wc21fc2h1dGRvd24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTBjNTUxCi0tLSAvZGV2L251bGwKKysrIGIvd2luMzIvc25tcHNtX3NodXRkb3duLmgKQEAgLTAsMCArMSBAQAorc2h1dGRvd25fdXNtKCk7CmRpZmYgLS1naXQgYS93aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwIGIvd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcAppbmRleCAxYjY4MzczLi5lNmE0MTAwIDEwMDY0NAotLS0gYS93aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwCisrKyBiL3dpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AKQEAgLTUwLDcgKzUwLDcgQEAKICMgQUREIEJTQzMyIC9ub2xvZ28NCiBMSU5LMzI9bGluay5leGUNCiAjIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBhZHZhcGkzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL21hY2hpbmU6STM4Ng0KLSMgQUREIExJTkszMiBuZXRzbm1wLmxpYiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvcGRiOm5vbmUgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vcmVsZWFzZS9zbm1wc3RhdHVzLmV4ZSIgL2xpYnBhdGg6Ii4uL2xpYi9yZWxlYXNlIg0KKyMgQUREIExJTkszMiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvcGRiOm5vbmUgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vcmVsZWFzZS9zbm1wc3RhdHVzLmV4ZSIgL2xpYnBhdGg6Ii4uL2xpYi9yZWxlYXNlIg0KIA0KICFFTFNFSUYgICIkKENGRykiID09ICJzbm1wc3RhdHVzIC0gV2luMzIgRGVidWciDQogDQpAQCAtNzQsNyArNzQsNyBAQAogIyBBREQgQlNDMzIgL25vbG9nbw0KIExJTkszMj1saW5rLmV4ZQ0KICMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGFkdmFwaTMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0DQotIyBBREQgTElOSzMyIG5ldHNubXAubGliIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9pbmNyZW1lbnRhbDpubyAvZGVidWcgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vZGVidWcvc25tcHN0YXR1cy5leGUiIC9wZGJ0eXBlOnNlcHQgL2xpYnBhdGg6Ii4uL2xpYi9kZWJ1ZyINCisjIEFERCBMSU5LMzIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9kZWJ1Zy9zbm1wc3RhdHVzLmV4ZSIgL3BkYnR5cGU6c2VwdCAvbGlicGF0aDoiLi4vbGliL2RlYnVnIg0KIA0KICFFTkRJRiANCiANCmRpZmYgLS1naXQgYS93aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCBiL3dpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwCmluZGV4IDc1Zjk2NGYuLjFkZmMxMzggMTAwNjQ0Ci0tLSBhL3dpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwCisrKyBiL3dpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwCkBAIC01MCw3ICs1MCw3IEBACiAjIEFERCBCU0MzMiAvbm9sb2dvDQogTElOSzMyPWxpbmsuZXhlDQogIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9tYWNoaW5lOkkzODYNCi0jIEFERCBMSU5LMzIgbmV0c25tcC5saWIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL3BkYjpub25lIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL3JlbGVhc2Uvc25tcHRhYmxlLmV4ZSIgL2xpYnBhdGg6Ii4uL2xpYi9yZWxlYXNlIg0KKyMgQUREIExJTkszMiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvcGRiOm5vbmUgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vcmVsZWFzZS9zbm1wdGFibGUuZXhlIiAvbGlicGF0aDoiLi4vbGliL3JlbGVhc2UiDQogDQogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInNubXB0YWJsZSAtIFdpbjMyIERlYnVnIg0KIA0KQEAgLTc0LDcgKzc0LDcgQEAKICMgQUREIEJTQzMyIC9ub2xvZ28NCiBMSU5LMzI9bGluay5leGUNCiAjIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBhZHZhcGkzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2RlYnVnIC9tYWNoaW5lOkkzODYgL3BkYnR5cGU6c2VwdA0KLSMgQUREIExJTkszMiBuZXRzbm1wLmxpYiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvaW5jcmVtZW50YWw6bm8gL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL2RlYnVnL3NubXB0YWJsZS5leGUiIC9wZGJ0eXBlOnNlcHQgL2xpYnBhdGg6Ii4uL2xpYi9kZWJ1ZyINCisjIEFERCBMSU5LMzIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9kZWJ1Zy9zbm1wdGFibGUuZXhlIiAvcGRidHlwZTpzZXB0IC9saWJwYXRoOiIuLi9saWIvZGVidWciDQogDQogIUVORElGIA0KIA0KZGlmZiAtLWdpdCBhL3dpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCBiL3dpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcAppbmRleCBkZmIwY2YxLi44OWMwOGU5IDEwMDY0NAotLS0gYS93aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AKKysrIGIvd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwCkBAIC01MCw3ICs1MCw3IEBACiAjIEFERCBCU0MzMiAvbm9sb2dvDQogTElOSzMyPWxpbmsuZXhlDQogIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9tYWNoaW5lOkkzODYNCi0jIEFERCBMSU5LMzIgbmV0c25tcC5saWIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL3BkYjpub25lIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL3JlbGVhc2Uvc25tcHRlc3QuZXhlIiAvbGlicGF0aDoiLi4vbGliL3JlbGVhc2UiDQorIyBBREQgTElOSzMyIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9wZGI6bm9uZSAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9yZWxlYXNlL3NubXB0ZXN0LmV4ZSIgL2xpYnBhdGg6Ii4uL2xpYi9yZWxlYXNlIg0KIA0KICFFTFNFSUYgICIkKENGRykiID09ICJzbm1wdGVzdCAtIFdpbjMyIERlYnVnIg0KIA0KQEAgLTc0LDcgKzc0LDcgQEAKICMgQUREIEJTQzMyIC9ub2xvZ28NCiBMSU5LMzI9bGluay5leGUNCiAjIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBhZHZhcGkzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2RlYnVnIC9tYWNoaW5lOkkzODYgL3BkYnR5cGU6c2VwdA0KLSMgQUREIExJTkszMiBuZXRzbm1wLmxpYiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvaW5jcmVtZW50YWw6bm8gL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL2RlYnVnL3NubXB0ZXN0LmV4ZSIgL3BkYnR5cGU6c2VwdCAvbGlicGF0aDoiLi4vbGliL2RlYnVnIg0KKyMgQUREIExJTkszMiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvaW5jcmVtZW50YWw6bm8gL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL2RlYnVnL3NubXB0ZXN0LmV4ZSIgL3BkYnR5cGU6c2VwdCAvbGlicGF0aDoiLi4vbGliL2RlYnVnIg0KIA0KICFFTkRJRiANCiANCmRpZmYgLS1naXQgYS93aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwIGIvd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcAppbmRleCBhM2ViZGU1Li5jM2VjYTAyIDEwMDY0NAotLS0gYS93aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwCisrKyBiL3dpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKQEAgLTUwLDcgKzUwLDcgQEAKICMgQUREIEJTQzMyIC9ub2xvZ28NCiBMSU5LMzI9bGluay5leGUNCiAjIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBhZHZhcGkzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL21hY2hpbmU6STM4Ng0KLSMgQUREIExJTkszMiBuZXRzbm1wLmxpYiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvcGRiOm5vbmUgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vcmVsZWFzZS9zbm1wdHJhbnNsYXRlLmV4ZSIgL2xpYnBhdGg6Ii4uL2xpYi9yZWxlYXNlIg0KKyMgQUREIExJTkszMiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvcGRiOm5vbmUgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vcmVsZWFzZS9zbm1wdHJhbnNsYXRlLmV4ZSIgL2xpYnBhdGg6Ii4uL2xpYi9yZWxlYXNlIg0KIA0KICFFTFNFSUYgICIkKENGRykiID09ICJzbm1wdHJhbnNsYXRlIC0gV2luMzIgRGVidWciDQogDQpAQCAtNzQsNyArNzQsNyBAQAogIyBBREQgQlNDMzIgL25vbG9nbw0KIExJTkszMj1saW5rLmV4ZQ0KICMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGFkdmFwaTMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0DQotIyBBREQgTElOSzMyIG5ldHNubXAubGliIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9pbmNyZW1lbnRhbDpubyAvZGVidWcgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vZGVidWcvc25tcHRyYW5zbGF0ZS5leGUiIC9wZGJ0eXBlOnNlcHQgL2xpYnBhdGg6Ii4uL2xpYi9kZWJ1ZyINCisjIEFERCBMSU5LMzIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9kZWJ1Zy9zbm1wdHJhbnNsYXRlLmV4ZSIgL3BkYnR5cGU6c2VwdCAvbGlicGF0aDoiLi4vbGliL2RlYnVnIg0KIA0KICFFTkRJRiANCiANCmRpZmYgLS1naXQgYS93aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AgYi93aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AKaW5kZXggOGQyN2VlMS4uYzM0ZmZkOCAxMDA2NDQKLS0tIGEvd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwCisrKyBiL3dpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcApAQCAtNTAsNyArNTAsNyBAQAogIyBBREQgQlNDMzIgL25vbG9nbw0KIExJTkszMj1saW5rLmV4ZQ0KICMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGFkdmFwaTMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvbWFjaGluZTpJMzg2DQotIyBBREQgTElOSzMyIG5ldHNubXAubGliIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9wZGI6bm9uZSAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9yZWxlYXNlL3NubXB0cmFwLmV4ZSIgL2xpYnBhdGg6Ii4uL2xpYi9yZWxlYXNlIg0KKyMgQUREIExJTkszMiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvcGRiOm5vbmUgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vcmVsZWFzZS9zbm1wdHJhcC5leGUiIC9saWJwYXRoOiIuLi9saWIvcmVsZWFzZSINCiANCiAhRUxTRUlGICAiJChDRkcpIiA9PSAic25tcHRyYXAgLSBXaW4zMiBEZWJ1ZyINCiANCkBAIC03NCw3ICs3NCw3IEBACiAjIEFERCBCU0MzMiAvbm9sb2dvDQogTElOSzMyPWxpbmsuZXhlDQogIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9wZGJ0eXBlOnNlcHQNCi0jIEFERCBMSU5LMzIgbmV0c25tcC5saWIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9kZWJ1Zy9zbm1wdHJhcC5leGUiIC9wZGJ0eXBlOnNlcHQgL2xpYnBhdGg6Ii4uL2xpYi9kZWJ1ZyINCisjIEFERCBMSU5LMzIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9kZWJ1Zy9zbm1wdHJhcC5leGUiIC9wZGJ0eXBlOnNlcHQgL2xpYnBhdGg6Ii4uL2xpYi9kZWJ1ZyINCiANCiAhRU5ESUYgDQogDQpkaWZmIC0tZ2l0IGEvd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluIGIvd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluCmluZGV4IGRjNGZlNTAuLjJmYTVjY2IgMTAwNjQ0Ci0tLSBhL3dpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbgorKysgYi93aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW4KQEAgLTIsNyArMiw2IEBACiBDRkc9CiBPVVRESVI9CiBJTlRESVI9Ci1TU0w9CiBMSU5LVFlQRT0KIAogIyBTZXQgdG8gMSB0byBhbGxvdyB0aGUgYnVpbGRpbmcgdXNpbmcgdGhlIERMTCB2ZXJzaW9uIG9mIFNOTVBMSUIuCmRpZmYgLS1naXQgYS93aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcCBiL3dpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwCmluZGV4IDUwMzkxOGEuLjlmNDkzODkgMTAwNjQ0Ci0tLSBhL3dpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwCisrKyBiL3dpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwCkBAIC01MCw3ICs1MCw3IEBACiAjIEFERCBCU0MzMiAvbm9sb2dvDQogTElOSzMyPWxpbmsuZXhlDQogIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9tYWNoaW5lOkkzODYNCi0jIEFERCBMSU5LMzIgbmV0c25tcC5saWIgbmV0c25tcGFnZW50LmxpYiBuZXRzbm1wbWlicy5saWIgbmV0c25tcHRyYXBkLmxpYiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvcGRiOm5vbmUgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vcmVsZWFzZS9zbm1wdHJhcGQuZXhlIiAvbGlicGF0aDoiLi4vbGliL3JlbGVhc2UiDQorIyBBREQgTElOSzMyIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9wZGI6bm9uZSAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9yZWxlYXNlL3NubXB0cmFwZC5leGUiIC9saWJwYXRoOiIuLi9saWIvcmVsZWFzZSINCiANCiAhRUxTRUlGICAiJChDRkcpIiA9PSAic25tcHRyYXBkIC0gV2luMzIgRGVidWciDQogDQpAQCAtNzQsNyArNzQsNyBAQAogIyBBREQgQlNDMzIgL25vbG9nbw0KIExJTkszMj1saW5rLmV4ZQ0KICMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGFkdmFwaTMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0DQotIyBBREQgTElOSzMyIG5ldHNubXAubGliIG5ldHNubXBhZ2VudC5saWIgbmV0c25tcG1pYnMubGliIG5ldHNubXB0cmFwZC5saWIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9kZWJ1Zy9zbm1wdHJhcGQuZXhlIiAvcGRidHlwZTpzZXB0IC9saWJwYXRoOiIuLi9saWIvZGVidWciDQorIyBBREQgTElOSzMyIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9pbmNyZW1lbnRhbDpubyAvZGVidWcgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vZGVidWcvc25tcHRyYXBkLmV4ZSIgL3BkYnR5cGU6c2VwdCAvbGlicGF0aDoiLi4vbGliL2RlYnVnIg0KIA0KICFFTkRJRiANCiANCmRpZmYgLS1naXQgYS93aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwIGIvd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcAppbmRleCBkYjQzZjJlLi5hMWMwMTI0IDEwMDY0NAotLS0gYS93aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwCisrKyBiL3dpbjMyL3NubXB1c20vc25tcHVzbS5kc3AKQEAgLTUwLDcgKzUwLDcgQEAKICMgQUREIEJTQzMyIC9ub2xvZ28NCiBMSU5LMzI9bGluay5leGUNCiAjIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBhZHZhcGkzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL21hY2hpbmU6STM4Ng0KLSMgQUREIExJTkszMiBuZXRzbm1wLmxpYiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvcGRiOm5vbmUgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vcmVsZWFzZS9zbm1wdXNtLmV4ZSIgL2xpYnBhdGg6Ii4uL2xpYi9yZWxlYXNlIg0KKyMgQUREIExJTkszMiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvcGRiOm5vbmUgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vcmVsZWFzZS9zbm1wdXNtLmV4ZSIgL2xpYnBhdGg6Ii4uL2xpYi9yZWxlYXNlIg0KIA0KICFFTFNFSUYgICIkKENGRykiID09ICJzbm1wdXNtIC0gV2luMzIgRGVidWciDQogDQpAQCAtNzQsNyArNzQsNyBAQAogIyBBREQgQlNDMzIgL25vbG9nbw0KIExJTkszMj1saW5rLmV4ZQ0KICMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGFkdmFwaTMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0DQotIyBBREQgTElOSzMyIG5ldHNubXAubGliIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9pbmNyZW1lbnRhbDpubyAvZGVidWcgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vZGVidWcvc25tcHVzbS5leGUiIC9wZGJ0eXBlOnNlcHQgL2xpYnBhdGg6Ii4uL2xpYi9kZWJ1ZyINCisjIEFERCBMSU5LMzIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9kZWJ1Zy9zbm1wdXNtLmV4ZSIgL3BkYnR5cGU6c2VwdCAvbGlicGF0aDoiLi4vbGliL2RlYnVnIg0KIA0KICFFTkRJRiANCiANCmRpZmYgLS1naXQgYS93aW4zMi9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaCBiL3dpbjMyL3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3NjNjZjgKLS0tIC9kZXYvbnVsbAorKysgYi93aW4zMi9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaApAQCAtMCwwICsxIEBACisjaW5jbHVkZSA8bmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmg+CmRpZmYgLS1naXQgYS93aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AgYi93aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AKaW5kZXggMDg1NjgzMi4uMmZkNTNmZCAxMDA2NDQKLS0tIGEvd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwCisrKyBiL3dpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcApAQCAtNTAsNyArNTAsNyBAQAogIyBBREQgQlNDMzIgL25vbG9nbw0KIExJTkszMj1saW5rLmV4ZQ0KICMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGFkdmFwaTMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvbWFjaGluZTpJMzg2DQotIyBBREQgTElOSzMyIG5ldHNubXAubGliIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9wZGI6bm9uZSAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9yZWxlYXNlL3NubXB2YWNtLmV4ZSIgL2xpYnBhdGg6Ii4uL2xpYi9yZWxlYXNlIg0KKyMgQUREIExJTkszMiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvcGRiOm5vbmUgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vcmVsZWFzZS9zbm1wdmFjbS5leGUiIC9saWJwYXRoOiIuLi9saWIvcmVsZWFzZSINCiANCiAhRUxTRUlGICAiJChDRkcpIiA9PSAic25tcHZhY20gLSBXaW4zMiBEZWJ1ZyINCiANCkBAIC03NCw3ICs3NCw3IEBACiAjIEFERCBCU0MzMiAvbm9sb2dvDQogTElOSzMyPWxpbmsuZXhlDQogIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9wZGJ0eXBlOnNlcHQNCi0jIEFERCBMSU5LMzIgbmV0c25tcC5saWIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9kZWJ1Zy9zbm1wdmFjbS5leGUiIC9wZGJ0eXBlOnNlcHQgL2xpYnBhdGg6Ii4uL2xpYi9kZWJ1ZyINCisjIEFERCBMSU5LMzIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2luY3JlbWVudGFsOm5vIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4uL2Jpbi9kZWJ1Zy9zbm1wdmFjbS5leGUiIC9wZGJ0eXBlOnNlcHQgL2xpYnBhdGg6Ii4uL2xpYi9kZWJ1ZyINCiANCiAhRU5ESUYgDQogDQpkaWZmIC0tZ2l0IGEvd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwIGIvd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwCmluZGV4IDVkODE5NTcuLjY3NTk4ZjEgMTAwNjQ0Ci0tLSBhL3dpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcAorKysgYi93aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AKQEAgLTUwLDcgKzUwLDcgQEAKICMgQUREIEJTQzMyIC9ub2xvZ28NCiBMSU5LMzI9bGluay5leGUNCiAjIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBhZHZhcGkzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL21hY2hpbmU6STM4Ng0KLSMgQUREIExJTkszMiBuZXRzbm1wLmxpYiBhZHZhcGkzMi5saWIgd3MyXzMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvcGRiOm5vbmUgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vcmVsZWFzZS9zbm1wd2Fsay5leGUiIC9saWJwYXRoOiIuLi9saWIvcmVsZWFzZSINCisjIEFERCBMSU5LMzIgYWR2YXBpMzIubGliIHdzMl8zMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL3BkYjpub25lIC9tYWNoaW5lOkkzODYgL291dDoiLi4vYmluL3JlbGVhc2Uvc25tcHdhbGsuZXhlIiAvbGlicGF0aDoiLi4vbGliL3JlbGVhc2UiDQogDQogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInNubXB3YWxrIC0gV2luMzIgRGVidWciDQogDQpAQCAtNzQsNyArNzQsNyBAQAogIyBBREQgQlNDMzIgL25vbG9nbw0KIExJTkszMj1saW5rLmV4ZQ0KICMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGFkdmFwaTMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0DQotIyBBREQgTElOSzMyIG5ldHNubXAubGliIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9pbmNyZW1lbnRhbDpubyAvZGVidWcgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vZGVidWcvc25tcHdhbGsuZXhlIiAvcGRidHlwZTpzZXB0IC9saWJwYXRoOiIuLi9saWIvZGVidWciDQorIyBBREQgTElOSzMyIGFkdmFwaTMyLmxpYiB3czJfMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9pbmNyZW1lbnRhbDpubyAvZGVidWcgL21hY2hpbmU6STM4NiAvb3V0OiIuLi9iaW4vZGVidWcvc25tcHdhbGsuZXhlIiAvcGRidHlwZTpzZXB0IC9saWJwYXRoOiIuLi9saWIvZGVidWciDQogDQogIUVORElGIA0KIA0K